白丝美女被狂躁免费视频网站,500av导航大全精品,yw.193.cnc爆乳尤物未满,97se亚洲综合色区,аⅴ天堂中文在线网官网

首頁 / 專利庫 / 電腦圖像 / 運動矢量 / 用于針對屏幕內(nèi)容編碼的編碼器側(cè)判定的方法和系統(tǒng)

用于針對屏幕內(nèi)容編碼的編碼器側(cè)判定的方法和系統(tǒng)

閱讀:1031發(fā)布:2020-07-08

專利匯可以提供用于針對屏幕內(nèi)容編碼的編碼器側(cè)判定的方法和系統(tǒng)專利檢索,專利查詢,專利分析的服務(wù)。并且針對屏幕內(nèi)容視頻或其他視頻的編碼的 編碼器 側(cè)判定中的創(chuàng)新可按各種方式 加速 編碼。例如,這些創(chuàng)新中的一些涉及通過標(biāo)識不同參考圖片中用于 運動估計 的合適開始點來加速運動估計的方式。這些編碼器側(cè)判定中的許多通過在條件被滿足時終止對 塊 的編碼或跳過對某些模式或選項的評估來加速編碼。例如,這些創(chuàng)新中的一些涉及在基于散列的 塊匹配 被使用時加速編碼的方式。又一些創(chuàng)新涉及標(biāo)識某些圖片內(nèi)預(yù)測模式在編碼期間何時應(yīng)當(dāng)或不應(yīng)當(dāng)被評估的方式。其他創(chuàng)新涉及其他編碼方面。,下面是用于針對屏幕內(nèi)容編碼的編碼器側(cè)判定的方法和系統(tǒng)專利的具體信息內(nèi)容。

1.一種在計算設(shè)備中用于針對屏幕內(nèi)容編碼的編碼器側(cè)判定的方法,包括:
對視頻進(jìn)行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),包括:
為當(dāng)前圖片的當(dāng)前執(zhí)行運動估計以為所述當(dāng)前塊選擇運動矢量(“MV”)值,包括評估多個參考圖片中的每一者中的一個或多個候選MV值,其中對于所述多個參考圖片中的每一者,所述運動估計的開始點僅用使用該參考圖片的先前編碼的塊的一個或多個MV值來確定為有可能以良好的預(yù)測產(chǎn)生MV值的點而無需縮放;以及
使用所述當(dāng)前塊的MV值來對所述當(dāng)前塊進(jìn)行編碼;以及
在比特流中輸出經(jīng)編碼的數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,為所述當(dāng)前塊執(zhí)行運動估計包括對于所述多個參考圖片中的每一者:
從使用那個參考圖片的先前編碼的塊的一個或多個MV值確定MV預(yù)測值;以及將所述MV預(yù)測值所指示的位置用作那個參考圖片中用于運動估計的開始點。
3.如權(quán)利要求1所述的方法,其特征在于,所述先前編碼的塊包括所述當(dāng)前塊的空間上相鄰的塊以及包括所述當(dāng)前塊的較大的塊中的至少一者。
4.如權(quán)利要求1所述的方法,其特征在于,所述先前編碼的塊的一個或多個MV值包括在所述先前編碼的塊的編碼期間被使用的至少一些實際MV值以及在針對所述先前編碼的塊的運動估計期間被評估但在所述先前編碼的塊的編碼期間沒有被使用的至少一些候選MV值。
5.如權(quán)利要求1所述方法,其特征在于,對所述視頻進(jìn)行編碼包括對于所述當(dāng)前圖片:
為所述當(dāng)前圖片的具有第一尺寸的塊執(zhí)行動估計;
緩沖具有所述第一尺寸的塊的MV值;
為所述當(dāng)前圖片的具有第二尺寸的塊執(zhí)行運動估計,包括使用經(jīng)緩沖的MV值中的至少一些來為所述第二尺寸的塊選擇用于所述運動估計的開始點。
6.如權(quán)利要求5所述的方法,其特征在于,經(jīng)緩沖的MV值包括在具有所述第一尺寸的塊的編碼期間被使用的至少一些實際MV值,以及在針對具有所述第一尺寸的塊的運動估計期間被評估、但在具有所述第一尺寸的塊的編碼期間沒有被使用的至少一些候選MV值。
7.如權(quán)利要求1所述方法,其特征在于,所述視頻是屏幕內(nèi)容視頻。
8.一種適于執(zhí)行權(quán)利要求1-7中的任一項所述的方法的計算設(shè)備。
9.一種在計算設(shè)備中用于針對屏幕內(nèi)容編碼的編碼器側(cè)判定的系統(tǒng),包括:
用于對視頻進(jìn)行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù)的裝置,包括:
用于為當(dāng)前圖片的當(dāng)前塊執(zhí)行運動估計以為所述當(dāng)前塊選擇運動矢量(“MV”)值的裝置,包括用于評估多個參考圖片中的每一者中的一個或多個候選MV值的裝置,其中對于所述多個參考圖片中的每一者,所述運動估計的開始點僅用使用該參考圖片的先前編碼的塊的一個或多個MV值來確定為有可能以良好的預(yù)測產(chǎn)生MV值的點而無需縮放;以及用于使用所述當(dāng)前塊的MV值來對所述當(dāng)前塊進(jìn)行編碼的裝置;以及
用于在比特流中輸出經(jīng)編碼的數(shù)據(jù)的裝置。

說明書全文

用于針對屏幕內(nèi)容編碼的編碼器側(cè)判定的方法和系統(tǒng)

技術(shù)領(lǐng)域

[0001] 本發(fā)明涉及編解碼,尤其涉及針對視頻的編解碼。

背景技術(shù)

[0002] 工程師使用壓縮(也叫做源譯碼或源編碼)來降低數(shù)字視頻的比特率。壓縮通過將視頻信息轉(zhuǎn)換成較低比特率的形式來降低存儲和傳送該信息的成本。解壓(也被稱為解碼)從壓縮的形式中重構(gòu)一種版本的原始信息?!熬?a href='/zhuanli/list-14544-1.html' target='_blank'>解碼器”是編碼器/解碼器系統(tǒng)。
[0003] 在過去的二十年中,已采用了各種視頻編解碼器標(biāo)準(zhǔn),包括ITU-T?H.261、H.262(MPEG-2或ISO/IEC?13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC?14496-10)標(biāo)準(zhǔn)、MPEG-1(ISO/IEC?11172?1?172-2)和MPEG-4可視(ISO/IEC?14496-2)標(biāo)準(zhǔn)以及SMPTE?421M(VC-1)標(biāo)準(zhǔn)。最近,H.265/HEVC標(biāo)準(zhǔn)(ITU-T?H.265或ISO/IEC?23008-2)已被批準(zhǔn)。目前,(例如,用于可縮放視頻編碼/解碼、用于在樣本比特深度或色度采樣率方面具有較高保真度的視頻的編碼/解碼、用于屏幕捕捉內(nèi)容、或用于多視圖編碼/解碼的)H.265/HEVC標(biāo)準(zhǔn)的擴展處于開發(fā)中。視頻編解碼器標(biāo)準(zhǔn)通常定義針對經(jīng)編碼的視頻比特流的句法的選項,從而詳述當(dāng)在編碼和解碼時使用特定特征時該比特流中的參數(shù)。在許多情況下,視頻編解碼器標(biāo)準(zhǔn)還提供關(guān)于解碼器應(yīng)當(dāng)執(zhí)行以在解碼時取得一致的結(jié)果的解碼操作的細(xì)節(jié)。除了編解碼器標(biāo)準(zhǔn)外,各種專用編解碼器格式定義針對經(jīng)編碼的視頻比特流的句法的其他選項以及相應(yīng)的解碼操作。
[0004] 如當(dāng)前在一些參考軟件中針對H.265/HEVC標(biāo)準(zhǔn)(及其擴展)實現(xiàn)的,編碼器側(cè)判定在各種情況下(尤其是在編碼模式和屏幕內(nèi)容視頻的選項方面)并不被高效地作出。

發(fā)明內(nèi)容

[0005] 簡言之,詳細(xì)描述呈現(xiàn)了在針對屏幕內(nèi)容視頻或其他視頻的編碼的編碼器側(cè)判定方面的創(chuàng)新。例如,這些創(chuàng)新中的一些涉及通過標(biāo)識出不同參考圖片中用于運動估計的合適開始點來加速該運動估計的方式。其他創(chuàng)新涉及在基于散列的匹配被使用時加速編碼的方式。又一些創(chuàng)新涉及用于標(biāo)識某些圖片內(nèi)預(yù)測模式在編碼期間何時應(yīng)當(dāng)或不應(yīng)當(dāng)被評估的方式,該標(biāo)識可加速編碼。其他創(chuàng)新涉及其他編碼方面。
[0006] 根據(jù)本文中描述的創(chuàng)新的第一方面,在視頻的編碼期間,視頻編碼器為當(dāng)前圖片的當(dāng)前塊執(zhí)行運動估計以為當(dāng)前塊選擇運動矢量(“MV”)值。作為運動估計的一部分,視頻編碼器評估多個參考圖片中的每一者中的一個或多個候選MV值。對于多個參考圖片中的每一者,視頻編碼器僅用使用該參考圖片的先前編碼的塊的一個或多個MV值(即不用使用任何其他參考圖片的先前編碼的塊的任何MV值)來確定用于運動估計的開始點。例如,編碼器從使用參考圖片的先前編碼的塊的(諸)MV值確定MV預(yù)測值,隨后將這些MV預(yù)測值所指示的位置用作那個參考圖片中用于運動估計的開始點。視頻編碼器使用當(dāng)前塊的MV值來對當(dāng)前塊進(jìn)行編碼。
[0007] 根據(jù)這些創(chuàng)新的另一方面,在圖像或視頻的編碼期間,編碼器對當(dāng)前圖片的當(dāng)前塊執(zhí)行基于散列的塊匹配。基于條件是否被滿足,編碼器確定是否為當(dāng)前塊跳過一個或多個編碼階段。該條件取決于在針對當(dāng)前塊的基于散列的塊匹配期間是否發(fā)現(xiàn)了匹配。該條件還可取決于其他因素(例如,當(dāng)前塊的預(yù)期質(zhì)量相對于用于該匹配的候選塊的質(zhì)量和/或當(dāng)前塊的塊尺寸相對于閾值塊尺寸)?;谠摯_定的結(jié)果,編碼器為當(dāng)前塊選擇性地跳過(諸)編碼階段。
[0008] 例如,該針對當(dāng)前塊的基于散列的塊匹配被執(zhí)行用于運動估計,并且有可能被跳過的(諸)編碼階段包括針對當(dāng)前塊的部分精密(fractional-precision)運動估計或?qū)Ξ?dāng)前塊的編碼模式和編碼選項的評估。或者,該針對當(dāng)前塊的基于散列的塊匹配被執(zhí)行用于塊矢量估計,并且有可能被跳過的(諸)編碼階段包括對當(dāng)前塊的圖片內(nèi)編碼模式和編碼選項的評估。
[0009] 根據(jù)本文中描述的這些創(chuàng)新的另一方面,在圖像或視頻的編碼期間,編碼器測量該圖像或視頻的單元(例如,塊、片、圖片)中的不同色彩的數(shù)目。至少部分地基于該測量的結(jié)果,編碼器為該單元確定是否跳過一個或多個圖片內(nèi)預(yù)測模式(例如,內(nèi)塊復(fù)制(“BC”)預(yù)測和/或字典編碼模式)。例如,編碼器將該測量的結(jié)果與閾值進(jìn)行比較。如果沒有為該單元跳過(諸)圖片內(nèi)預(yù)測模式,則編碼器為該單元評估(諸)圖片內(nèi)預(yù)測模式。
[0010] 根據(jù)本文中描述的這些創(chuàng)新的另一方面,在圖像或視頻的編碼期間,編碼器為當(dāng)前圖片的當(dāng)前塊標(biāo)識空間圖片內(nèi)預(yù)測的候選方向集合。在對候選方向集合中的每一者執(zhí)行了速率失真分析后,編碼器選擇候選方向集合中的一個候選方向以供使用那個候選方向來對當(dāng)前塊進(jìn)行編碼,而無需基于速率失真優(yōu)化的量化(“RDOQ”)。隨后,在當(dāng)前塊是使用所選的候選方向來進(jìn)行編碼時,編碼器為當(dāng)前塊確定如何對殘留四叉樹進(jìn)行編碼。在該階段,編碼器用RDOQ執(zhí)行速率失真分析以得到對殘留四叉樹進(jìn)行編碼的不同方式。
[0011] 根據(jù)本文中描述的這些創(chuàng)新的另一方面,在圖像或視頻的編碼期間,編碼器檢查當(dāng)前塊是否是使用幀內(nèi)BC預(yù)測來編碼的。取決于當(dāng)前塊是否是使用幀內(nèi)BC預(yù)測來編碼的,編碼器為當(dāng)前塊啟用或禁用變換模式。編碼器隨后對當(dāng)前塊進(jìn)行編碼。例如,如果當(dāng)前塊是使用幀內(nèi)BC預(yù)測來編碼的,則編碼器評估當(dāng)前塊的變換跳躍模式而不評估變換模式。否則(當(dāng)前塊不是使用幀內(nèi)BC預(yù)測來編碼的),編碼器評估當(dāng)前塊的變換跳躍模式以及變換模式。
[0012] 針對編碼器側(cè)判定的創(chuàng)新可以被實現(xiàn)為方法的一部分、被適配成執(zhí)行該方法的計算系統(tǒng)的一部分或存儲用于使計算系統(tǒng)執(zhí)行該方法的計算機可執(zhí)行指令的有形計算機可讀介質(zhì)的一部分。各創(chuàng)新可以結(jié)合地或分開地使用。
[0013] 參考附圖閱讀以下詳細(xì)描述,將更清楚本發(fā)明的前述和其他目標(biāo)、特征和優(yōu)點。

附圖說明

[0014] 圖1是其中可實現(xiàn)所描述的一些實施例的示例計算系統(tǒng)的示圖。
[0015] 圖2a和2b是其中可實現(xiàn)所描述的一些實施例的示例網(wǎng)絡(luò)環(huán)境的示圖。
[0016] 圖3是結(jié)合其可實現(xiàn)所描述的一些實施例的示例編碼器系統(tǒng)的示圖。
[0017] 圖4a和4b是示出結(jié)合其可實現(xiàn)所描述的一些實施例的示例視頻編碼器的示圖。
[0018] 圖5是示出針對圖片的塊的運動估計的示圖。
[0019] 圖6和7是示出確定不同的參考圖片中用于運動估計的開始點的示例方法的示圖。
[0020] 圖8是示出用于執(zhí)行運動估計的通用技術(shù)的流程圖,其中某參考圖片中的開始點是僅用使用該參考圖片的MV值來確定的。
[0021] 圖9和10是示出對圖片的塊和該塊在塊匹配中的候選塊的幀內(nèi)BC預(yù)測的示圖。
[0022] 圖11是示出在基于散列的塊匹配中的候選塊的散列值的表。
[0023] 圖12a-12c是示出為基于散列的塊匹配組織候選塊的示例數(shù)據(jù)結(jié)構(gòu)的表。
[0024] 圖13a-13c是示出為迭代的基于散列的塊匹配組織候選塊的示例數(shù)據(jù)結(jié)構(gòu)的表。
[0025] 圖14和15是示出用于取決于基于散列的塊匹配的結(jié)果選擇性地跳過一個或多個編碼階段的技術(shù)的流程圖。
[0026] 圖16是示出自然視頻和屏幕捕捉視頻的塊的特征的示圖。
[0027] 圖17是示出用于取決于對視頻單元中的不同色彩的數(shù)目的測量選擇性地跳過對一個或多個圖片內(nèi)預(yù)測模式的評估的通用技術(shù)的流程圖。
[0028] 圖18是示出示例空間圖片內(nèi)預(yù)測方向的示圖。
[0029] 圖19是示出殘留四叉樹的示例組織的示圖。
[0030] 圖20是示出用于為用空間圖片內(nèi)預(yù)測編碼的塊作出編碼判定的示例技術(shù)的流程圖。
[0031] 圖21是示出用于為用幀內(nèi)BC預(yù)測編碼的塊選擇性地跳過變換模式的通用技術(shù)的流程圖。

具體實施方式

[0032] 該詳細(xì)描述呈現(xiàn)了用于對屏幕內(nèi)容視頻或其他視頻進(jìn)行編碼的編碼器側(cè)判定方面的創(chuàng)新。例如,這些創(chuàng)新中的一些涉及通過標(biāo)識出不同參考圖片中用于運動估計的合適開始點來該加速運動估計的方式。這些編碼器側(cè)判定中的許多通過在條件被滿足時終止對塊的編碼或跳過對某些模式或選項的評估來加速編碼。例如,這些創(chuàng)新中的一些涉及用于在基于散列的塊匹配被使用時加速編碼的方式。又一些創(chuàng)新涉及標(biāo)識某些圖片內(nèi)預(yù)測模式在編碼期間何時應(yīng)當(dāng)或不應(yīng)當(dāng)被評估的方式。其他創(chuàng)新涉及其他編碼方面。
[0033] 雖然本文中描述的操作是被適當(dāng)描述為由視頻編碼器來執(zhí)行,但在許多情況中,這些操作可由另一類型的媒體處理工具(例如圖像編碼器)來執(zhí)行。
[0034] 本文中描述的一些創(chuàng)新是參考專用于H.265/HEVC標(biāo)準(zhǔn)的句法元素和操作來示出的。例如,對H.265/HEVC標(biāo)準(zhǔn)的草稿版本JCTVC-P1005—即2014年2月的“高效視頻編碼(HEVC)范圍擴展文本規(guī)范:第6稿”JCTVC-P1005_vl作出參考。本文中描述的各創(chuàng)新還可以被實現(xiàn)為針對其它標(biāo)準(zhǔn)或格式。
[0035] 本文中描述的許多創(chuàng)新可以在對諸如屏幕捕捉內(nèi)容之類的某種“人工”創(chuàng)建的視頻內(nèi)容進(jìn)行編碼時改善速率-失真性能。屏幕捕捉內(nèi)容典型地包括重復(fù)的結(jié)構(gòu)(例如圖形、文本字符)。屏幕捕捉內(nèi)容通常以具有高色度采樣分辨率的格式(例如YUV?4:4:4或RGB?4:4:4)被編碼,雖然它也可以以具有較低的色度采樣分辨率(例如YUV?4:2:0)的格式被編碼。
編碼/解碼屏幕捕捉內(nèi)容的常見場景包括遠(yuǎn)程桌面會議和對自然視頻或其它“經(jīng)混合的內(nèi)容”視頻的圖形覆蓋的編碼/解碼。本文中描述的創(chuàng)新中的若干個(例如,取決于基于散列的塊匹配的結(jié)果來加速運動估計或塊矢量估計、選擇性地跳過某些圖片內(nèi)預(yù)測模式)被適配成用于對屏幕內(nèi)容或其他人工創(chuàng)建的視頻進(jìn)行編碼。這些創(chuàng)新也可以被用于自然視頻,但可能不像那樣有效。本文中描述的其他創(chuàng)新(例如,對運動估計的開始位置的計算)對于對自然視頻或人工創(chuàng)建的視頻進(jìn)行編碼是有效的。
[0036] 更一般地,本文中描述的各示例的各種替代是可能的。例如,本文中描述的一些方法可以通過改變描述的方法動作的順序、通過拆分、重復(fù)或忽略某些方法動作等來更改。所公開的技術(shù)的各方面能夠被組合地或分開地使用。不同的實施例使用所描述的創(chuàng)新中的一個或多個。本文中描述的一些創(chuàng)新解決了背景中指出的一個或多個問題。通常,所給出的技術(shù)/工具并不解決所有這些問題。
[0037] I.示例計算系統(tǒng)
[0038] 圖1示出了其中可實現(xiàn)幾個所描述的創(chuàng)新的合適計算系統(tǒng)(100)的概括示例。計算系統(tǒng)(100)并不旨對使用范圍或功能提出任何限制,因為這些創(chuàng)新可以在不同的通用或?qū)S糜嬎阆到y(tǒng)中實現(xiàn)。
[0039] 參考圖1,計算系統(tǒng)(100)包括一個或多個處理單元(110、115)和存儲器(120、125)。處理單元(110、115)執(zhí)行計算機可執(zhí)行指令。處理單元可以是通用中央處理單元(“CPU”)、專用集成電路(“ASIC”)中的處理器或任意其它類型的處理器。在多處理系統(tǒng)中,多個處理單元執(zhí)行計算機可執(zhí)行指令以提高處理能。例如,圖1示出中央處理單元(110)以及圖形處理單元或協(xié)處理單元(115)。有形存儲器(120、125)可以是易失性存儲器(例如,寄存器、高速緩存、RAM)、非易失性存儲器(例如,ROM、EEPROM、閃存等)或兩者的某種組合,可由處理單元存取。存儲器(120,125)存儲實現(xiàn)針對屏幕內(nèi)容編碼的編碼器側(cè)判定的一個或多個創(chuàng)新的軟件(180),該軟件采用適用于由(諸)處理單元執(zhí)行的計算機可執(zhí)行指令的形式。
[0040] 計算系統(tǒng)可具有附加的特征。例如,計算系統(tǒng)(100)包括存儲(140)、一個或多個輸入設(shè)備(150)、一個或多個輸出設(shè)備(160)以及一個或多個通信連接(170)。諸如總線、控制器或網(wǎng)絡(luò)之類的互連機制(未示出)將計算系統(tǒng)(100)的各組件互連。通常,操作系統(tǒng)軟件(未示出)為在計算系統(tǒng)(100)中執(zhí)行的其它軟件提供操作環(huán)境,并協(xié)調(diào)計算系統(tǒng)(100)的各組件的活動。
[0041] 有形存儲(140)可以是可移動或不可移動的,并包括磁盤、磁帶或磁帶盒、CD-ROM、DVD或可用于儲存信息并可在計算系統(tǒng)(100)內(nèi)訪問的任何其他介質(zhì)。存儲(140)存儲實現(xiàn)針對屏幕內(nèi)容編碼的編碼器側(cè)判定的一個或多個創(chuàng)新的軟件(180)的指令。
[0042] (諸)輸入設(shè)備(150)可以是觸摸輸入設(shè)備(諸如鍵盤、鼠標(biāo)、筆或跟蹤球)、語音輸入設(shè)備、掃描設(shè)備或向計算系統(tǒng)(100)提供輸入的另一設(shè)備。對于視頻,(諸)輸入設(shè)備(150)可以是相機、視頻卡、TV調(diào)諧卡、屏幕捕捉模塊或接受模擬或數(shù)字形式的視頻輸入的類似設(shè)備、或?qū)⒁曨l輸入讀到計算系統(tǒng)(100)中的CD-ROM或CD-RW。(諸)輸出設(shè)備(160)可以是顯示器、打印機、揚聲器、CD刻錄機或提供來自計算系統(tǒng)(100)的輸出的另一設(shè)備。
[0043] (諸)通信連接(170)允許通過通信介質(zhì)與另一計算實體通信。通信介質(zhì)傳達(dá)諸如計算機可執(zhí)行指令、音頻或視頻輸入或輸出、或已調(diào)制數(shù)據(jù)信號中的其他數(shù)據(jù)之類的信息。已調(diào)制數(shù)據(jù)信號是使其一個或多個特征以在信號中編碼信息的方式設(shè)置或改變的信號。作為示例而非限制,通信介質(zhì)可以使用電的、光學(xué)的、RF或其它載體。
[0044] 各創(chuàng)新可以在計算機可讀介質(zhì)的一般上下文中描述。計算機可讀介質(zhì)是可在計算環(huán)境內(nèi)訪問的任何可用有形介質(zhì)。作為示例而非局限,對于計算系統(tǒng)(100),計算機可讀介質(zhì)包括存儲器(120、125)、存儲(140)、和以上任意的組合。
[0045] 各創(chuàng)新可在計算機可執(zhí)行指令(諸如包括在程序模塊中的在目標(biāo)現(xiàn)實或虛擬處理器上在計算系統(tǒng)中執(zhí)行的那些計算機可執(zhí)行指令)的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。如各實施例中所描述的,這些程序模塊的功能可以被組合,或者在這些程序模塊之間拆分。針對各程序模塊的計算機可執(zhí)行指令可以在本地或分布式計算系統(tǒng)中執(zhí)行。
[0046] 術(shù)語“系統(tǒng)”和“設(shè)備”在此被互換地使用。除非上下文明確指示,否則,術(shù)語并不暗示對計算系統(tǒng)或計算設(shè)備的類型的任何限制。一般來說,計算系統(tǒng)或計算設(shè)備可以是本地的或分布式的,并且可以包括具有實現(xiàn)本文中描述的功能的軟件的專用硬件和/或通用硬件的任意組合。
[0047] 所公開的方法還可使用被配置成執(zhí)行所公開的方法中的任一者的專用計算硬件來實現(xiàn)。例如,所公開的方法可以由被專設(shè)計或配置成實現(xiàn)所公開的方法中的任一者的集成電路(例如,諸如ASIC數(shù)字信號處理器(“DSP”)之類的ASIC、圖像處理單元(“GPU”)、或諸如場可編程門陣列(“FPGA”)之類的可編程邏輯器件(“PLD”))來實現(xiàn)。
[0048] 為了呈現(xiàn)起見,本詳細(xì)描述使用了如“確定”和“使用”等術(shù)語來描述計算系統(tǒng)中的計算機操作。這些術(shù)語是對由計算機執(zhí)行的操作的高級抽象,且不應(yīng)與人類所執(zhí)行的動作混淆。對應(yīng)于這些術(shù)語的實際的計算機操作取決于實現(xiàn)而不同。
[0049] II.示例網(wǎng)絡(luò)環(huán)境
[0050] 圖2a和2b示出了包括視頻編碼器(220)和視頻解碼器(270)的示例網(wǎng)絡(luò)環(huán)境(201,202)。編碼器(220)和解碼器(270)使用合適的通信協(xié)議通過網(wǎng)絡(luò)(250)連接。網(wǎng)絡(luò)(250)可包括因特網(wǎng)或另一計算機網(wǎng)絡(luò)
[0051] 在圖2a所示的網(wǎng)絡(luò)環(huán)境(201)中,每個實時通信(“RTC”)工具(210)都包括用于雙向通信的編碼器(220)和解碼器(270)兩者。給定的編碼器(220)可以產(chǎn)生符合H.265/HEVC標(biāo)準(zhǔn)、SMPTE?421M標(biāo)準(zhǔn)、ISO/IEC?14496-10標(biāo)準(zhǔn)(也稱為H.264或AVC)、另一標(biāo)準(zhǔn)、或?qū)S酶袷降淖冃突驍U展的輸出,使得相應(yīng)的解碼器(270)接受來自編碼器(220)的經(jīng)編碼的數(shù)據(jù)。雙向通信可以是視頻會議、視頻電話呼叫或其它雙方或多方通信場景的部分。雖然,圖2a中的網(wǎng)絡(luò)環(huán)境(201)包括兩個實時通信工具(210),但網(wǎng)絡(luò)環(huán)境(201)可改為包括參與多方通信的三個或更多個實時通信工具(210)。
[0052] 實時通信工具(210)管理編碼器(220)做出的編碼。圖3示出可以被包括在實時通信工具(210)中的示例編碼器系統(tǒng)(300)。替換地,實時通信工具(210)使用另一編碼器系統(tǒng)。實時通信工具(210)還管理解碼器(270)做出的解碼。圖4a示出可以被包括在實時通信工具(210)中的示例解碼器系統(tǒng)(400)。替換地,實時通信工具(210)使用另一解碼器系統(tǒng)。
[0053] 在圖2b中示出的網(wǎng)絡(luò)環(huán)境(202)中,編碼工具(212)包括編碼供遞送給多個回放工具(214)的視頻的編碼器(220),此多個回放工具(214)包括解碼器(270)。單向通信可被提供用于視頻監(jiān)視系統(tǒng)、web相機監(jiān)視系統(tǒng)、屏幕捕捉模塊、遠(yuǎn)程桌面會議演示或在其中編碼視頻并將其從一個位置發(fā)送到一個或多個其它位置的其它場景。雖然在圖2b中的網(wǎng)絡(luò)環(huán)境(202)包括兩個回放工具(214),但該網(wǎng)絡(luò)環(huán)境(202)可以包括更多或更少的回放工具(214)。一般來說,回放工具(214)與編碼工具(212)通信以確定回放工具(214)要接收的視頻流?;胤殴ぞ?214)接收該流、緩沖所接收的經(jīng)編碼的數(shù)據(jù)達(dá)合適的時間段并開始解碼和回放。
[0054] 圖3示出可以被包括在編碼工具(212)中的示例編碼器系統(tǒng)(300)。替換地,編碼工具(212)使用另一編碼器系統(tǒng)。編碼工具(212)還可以包括用于管理與一個或多個回放工具(214)的連接的服務(wù)器側(cè)控制器邏輯。圖4b示出可以被包括在回放工具(214)中的示例解碼器系統(tǒng)(400)。替換地,回放工具(214)使用另一解碼器系統(tǒng)?;胤殴ぞ?214)還可以包括用于管理與一個或多個編碼工具(212)的連接的客戶機側(cè)控制器邏輯。
[0055] III.示例編碼器系統(tǒng)
[0056] 圖3是結(jié)合其可實現(xiàn)所描述的一些實施例的示例編碼器系統(tǒng)(300)的框圖。編碼器系統(tǒng)(300)可以是能夠用多種編碼模式中的任一者(諸如用于實時通信的低等待時間編碼模式、轉(zhuǎn)碼模式和用于從文件或流中產(chǎn)生供回放的媒體的較高等待時間編碼模式)操作的通用編碼工具,或它可以是適用于一種這樣的編碼模式的專用編碼工具。編碼器系統(tǒng)(300)可以適用于編碼特定類型的內(nèi)容(例如屏幕捕捉內(nèi)容)。編碼器系統(tǒng)(300)可以被實現(xiàn)為操作系統(tǒng)模塊、應(yīng)用庫的部分、獨立的應(yīng)用??傮w上,編碼器系統(tǒng)(300)從視頻源(310)接收源視頻幀序列(311)并產(chǎn)生經(jīng)編碼的數(shù)據(jù)作為到信道(390)的輸出。輸出到信道的經(jīng)編碼的數(shù)據(jù)可包括使用如本文中所述的編碼器側(cè)判定編碼的內(nèi)容。
[0057] 視頻源(310)可以是相機、調(diào)諧卡、存儲介質(zhì)、屏幕捕捉模塊或其它數(shù)字視頻源。視頻源(310)以例如每秒30幀的幀速率產(chǎn)生視頻幀序列。如本文中所使用的,術(shù)語“幀”一般指代源、經(jīng)編碼的或經(jīng)重構(gòu)的圖像數(shù)據(jù)。對于逐行掃描視頻,幀是逐行掃描視頻幀。對于隔行視頻,在各示例實施例中,隔行視頻幀可以在編碼之前被去隔行。替換地,兩個互補的隔行視頻場可以被編碼在一起作為單個視頻幀或者被編碼成兩個經(jīng)分開編碼的場。除了指示逐行掃描視頻幀或隔行掃描視頻幀之外,術(shù)語“幀”或“圖片”可以指示單個非成對的視頻場、互補的成對視頻場、表示在給定時間的視頻對象的視頻對象平面、或較大圖像中的感興趣區(qū)域。視頻對象平面或區(qū)域可以是包括場景的多個對象或區(qū)域的較大圖像的一部分。
[0058] 抵達(dá)的源幀(311)被存儲在包括多個幀緩沖器存儲區(qū)域(321、322、…、32n)的源幀臨時存儲器存儲區(qū)域(320)中。幀緩沖器(321、322等)在源幀存儲區(qū)域(320)中保持一個源幀。在一個或多個源幀(311)已被存儲在幀緩沖器(321、322等)中后,幀選擇器(330)從源幀存儲區(qū)域(320)中選擇一個體源幀。幀選擇器(330)選擇幀以供輸入到編碼器(340)的順序可不同于視頻源(310)產(chǎn)生這些幀的順序,例如某些幀的編碼可以被按序延遲,從而允許一些更后面的幀被先編碼并由此促成時間上向后的預(yù)測。在編碼器(340)之前,編碼器系統(tǒng)(300)可包括預(yù)處理器(未示出),該預(yù)處理器在編碼之前執(zhí)行對選中的幀(331)的預(yù)處理(例如濾波)。預(yù)處理可包括色彩空間轉(zhuǎn)換成主要(例如亮度)和次要(例如偏向紅色和偏向藍(lán)色的色度差)分量以及用于編碼的重采樣處理(例如以減少色度分量的空間分辨率)。通常,在編碼之前,視頻已被轉(zhuǎn)換成諸如YUV的色彩空間,其中亮度(Y)分量的樣本值表示明亮度或強度值,而色度(U,V)分量的樣本值表示色差值。色差值(以及從YUV色彩空間到諸如RGB的另一色彩空間和/或從另一色彩空間到Y(jié)UV色彩空間的轉(zhuǎn)換操作)的精確定義取決于實現(xiàn)。通常,如在此所用,術(shù)語YUV指示具有亮度(或照度)分量和一個或多個色度(或色差)分量的任意色彩空間,包括Y’UV、YIQ、Y’IQ和YDbDr以及諸如YCbCr和YCoCg之類的變體。色度采樣值可以被子采樣到較低的色度采樣率(例如用于YUV?4:2:0格式),或者色度采樣值可以具有與亮度采樣值相同的分辨率(例如用于YUV?4:4:4格式)?;蛘撸曨l可用另一格式(例如RGB?4:4:4格式、GBR?4:4:4格式或BGR?4:4:4格式)來編碼。
[0059] 編碼器(340)編碼選中的幀(331)以產(chǎn)生經(jīng)編碼的幀(341)并且還產(chǎn)生存儲器管理控制操作(“MMCO”)信號(342)或參考圖片集(“RPS”)信息。RPS是在針對當(dāng)前幀或任意后續(xù)幀的運動補償中可用于供參考的幀集。如果當(dāng)前幀不是已被編碼的第一幀,則在執(zhí)行其編碼處理時,編碼器(340)可以使用已經(jīng)被存儲在經(jīng)解碼幀的臨時存儲器存儲區(qū)域(360)中的一個或多個先前被編碼/解碼的幀(369)。這樣的存儲的經(jīng)解碼幀(369)被用作用于當(dāng)前源幀(331)的內(nèi)容的幀間預(yù)測的參考幀。MMCO/RPS信息(342)向解碼器指示哪些經(jīng)重構(gòu)的幀可被用作參考幀,并且因此應(yīng)該被存儲在幀存儲區(qū)域中。
[0060] 一般來說,編碼器(340)包括執(zhí)行編碼任務(wù)的多個編碼模塊,編碼任務(wù)為諸如分割成小塊、幀內(nèi)預(yù)測估計和預(yù)測、運動估計和補償、頻率變換、量化和熵編碼。由編碼器(340)執(zhí)行的確切操作可以取決于壓縮格式而變化。輸出的經(jīng)編碼數(shù)據(jù)的格式可以是H.265/HEVC格式、Windows媒體視頻格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的變型或擴展。
[0061] 編碼器(340)可以將幀分割成相同尺寸或不同尺寸的多個小塊。例如,編碼器(340)沿小塊行和小塊列來拆分幀,這些小塊行和小塊列利用幀邊界定義在該幀內(nèi)的小塊的平和垂直邊界,其中每個小塊是矩形區(qū)域。小塊通常被用于提供并行處理的選項。幀還可以被組織成一個或多個片,其中一個片可以是整個幀或該幀的區(qū)域。片可以獨立于幀中的其它片編碼,這改善了錯誤復(fù)原性。出于編碼和解碼的目的,片或小塊的內(nèi)容被進(jìn)一步分隔成塊或其它采樣值集。
[0062] 對于根據(jù)H.265/HEVC標(biāo)準(zhǔn)的句法來說,編碼器將幀(或片或小塊)的內(nèi)容拆分成編碼樹單元。編碼樹單元(“CTU”)包括被組織為亮度編碼樹塊(“CTB”)的亮度采樣值,并且對應(yīng)的色度采樣值被組織為兩個色度CTB。CTU(及其CTB)的尺寸由編碼器來選擇,并且可例如為64x64、32x32或16x16個樣本值。CTU包括一個或多個編碼單元。編碼單元(“CU”)具有亮度編碼塊(“CB”)和兩個對應(yīng)的色度CB。例如,具有64x64亮度CTB和兩個64x64色度CTB(YUV?4:4:4格式)的CTU可以被拆分成4個CU,其中每個CU包括一32x32亮度CB和兩個32x32色度CB,并且每個CU可能被進(jìn)一步拆分成更小的CU?;蛘撸鳛榱硪皇纠?,具有64x64亮度CTB和兩個
32x32色度CTB(YUV?4:2:0格式)的CTU可以被拆分成4個CU,其中每個CU包括一32x32亮度CB和兩個16x16色度CB,并且每個CU可能被進(jìn)一步拆分成更小的CU。CU的最小允許尺寸(例如8×8、16×16)可被信號化在比特流中。
[0063] 通常,CU具有諸如幀間或幀內(nèi)之類的預(yù)測模式。出于信號化預(yù)測信息(例如預(yù)測模式細(xì)節(jié)、移位值等)和/或預(yù)測處理的目的,CU包括一個或多個預(yù)測單元。預(yù)測單元(“PU”)具有亮度預(yù)測塊(“PB”)和兩個對應(yīng)的色度PB。對于幀內(nèi)預(yù)測的CU,PU與CU具有相同的尺寸,除非CU具有最小尺寸(例如8×8)。在那個情況下,CU可被拆分成四個較小的PU(例如,如果最小CU尺寸為8x8,則PU為4x4),或者PU可具有最小CU尺寸,如CU的句法元素所指示的。出于殘留編碼/解碼的目的,CU還具有一個或多個變換單元,其中變換單元(“TU”)具有一變換塊(“TB”)和兩個色度TB。在幀內(nèi)預(yù)測的CU中的PU可以包含單個TU(尺寸與PU相同)或多個TU。編碼器決定如何將視頻分割成CTU、CU、PU、TU等。
[0064] 在H.265/HEVC實現(xiàn)中,片可以包括單個片段(獨立的片段)或被劃分成多個片段(獨立的片段和一個或多個從屬的片段)。片段是在小塊掃描中包含在單個網(wǎng)絡(luò)抽象層(“NAL”)單元中的連續(xù)排序的整數(shù)個CTU。對于獨立的片段,片段頭部包括適用于該獨立的片段的句法元素的值。對于從屬片段,截斷的片段頭部包括適用于該從屬片段的句法元素的幾個值,并且從屬片段的其它句法元素的值是以解碼順序從在前的獨立的片段的值中推導(dǎo)出來的。
[0065] 如本文中所使用的,術(shù)語“塊”可以指示宏塊、預(yù)測單元、殘留數(shù)據(jù)單元、或者CB、PB或TB,或者某些其它樣本值集,這取決于上下文。
[0066] 回到圖3,編碼器根據(jù)來自源幀(331)中的其它、先前重構(gòu)的樣本值的預(yù)測來表示該幀(331)內(nèi)編碼的塊。對于幀內(nèi)BC預(yù)測,圖片內(nèi)估計器估計塊相對于其它、先前重構(gòu)的采樣值的塊的位移。幀內(nèi)預(yù)測參考區(qū)域是幀中用于生成塊的BC預(yù)測值的樣本值區(qū)域。幀內(nèi)預(yù)測區(qū)域可以用(在BV估計中確定的)塊矢量(“BV”)值來指示。對于BV估計期間的基于散列的塊匹配,散列表可被使用。對于塊的空間內(nèi)預(yù)測,圖片內(nèi)估計器估計相鄰的經(jīng)重構(gòu)的樣本值到該塊的外插。圖片內(nèi)估計器可以輸出經(jīng)熵編碼的預(yù)測信息(例如幀內(nèi)BC預(yù)測的BV值或幀內(nèi)空間預(yù)測的預(yù)測模式(方向))。幀內(nèi)預(yù)測預(yù)測器應(yīng)用預(yù)測信息來確定幀內(nèi)預(yù)測值。以下描述了在圖片內(nèi)編碼期間作出判定的示例方法。
[0067] 編碼器(340)依據(jù)來自參考幀的預(yù)測來表示源幀(331)的幀間編碼的預(yù)測的塊。運動估計器估計塊相對于一個或多個參考幀(369)的運動。對于運動估計期間的基于散列的塊匹配,散列表可被使用。當(dāng)使用多個參考幀時,這多個參考幀可來自不同的時間方向或相同的時間方向。經(jīng)運動補償?shù)念A(yù)測參考區(qū)域是在參考幀中被用于生成當(dāng)前幀的采樣值的塊的經(jīng)運動補償?shù)念A(yù)測值的采樣值的區(qū)域。運動估計器輸出經(jīng)熵編碼的諸如運動矢量(“MV”)信息之類的運動信息。運動補償器將MV應(yīng)用于參考幀(369)以確定用于幀間預(yù)測的經(jīng)運動補償?shù)念A(yù)測值。以下描述了在圖片內(nèi)編碼期間作出判定的示例方法。
[0068] 編碼器可以確定在塊預(yù)測值(幀內(nèi)或幀間)和對應(yīng)的原始值之間的差值(如果有的話)。這些預(yù)測殘留值將進(jìn)一步使用頻率變換、量化和熵編碼來編碼。例如,編碼器(340)為圖片、小塊、片和/或視頻的其它部分設(shè)置量化參數(shù)(“QP”)的值,并相應(yīng)地量化變換系數(shù)。編碼器(340)的熵編碼器壓縮經(jīng)量化的變換系數(shù)值以及某些輔助信息(例如MV信息、BV預(yù)測值的索引值、BV差、QP值、模式判定、參數(shù)選擇)。典型的熵編碼技術(shù)包括指數(shù)-Golomb編碼、Golomb-Rice編碼、算術(shù)編碼、差分編碼、Huffman編碼、行程長度編碼、可變長度對可變長度(“V2V”)編碼、可變長度對固定長度(“V2F”)編碼、Lempel-Ziv(“LZ”)編碼、字典編碼、概率區(qū)間劃分熵編碼(“PIPE”)和上述編碼的組合。熵編碼器可對不同種類的信息使用不同的編碼技術(shù),并可組合地應(yīng)用多個技術(shù)(例如,通過應(yīng)用Golomb-Rice編碼,隨后應(yīng)用算術(shù)編碼),并可從特定編碼技術(shù)內(nèi)的多個碼表中進(jìn)行選擇。
[0069] 自適應(yīng)去塊濾波器可以被包括在編碼器(340)中的運動補償循環(huán)內(nèi)以平滑經(jīng)解碼的幀中的塊邊界行和/或列上的間斷??商鎿Q地或另外地應(yīng)用其它濾波(諸如去振鈴濾波、自適應(yīng)環(huán)路濾波(“ALF”)或樣本自適應(yīng)偏移(“SAO”)濾波,未示出)作為內(nèi)環(huán)路濾波操作。
[0070] 由編碼器(340)產(chǎn)生的經(jīng)編碼的數(shù)據(jù)包括針對各層比特流句法的句法元素。對于根據(jù)H.265/HEVC的標(biāo)準(zhǔn)的句法,例如,圖片參數(shù)集(“PPS”)是包含了與圖片相關(guān)聯(lián)的句法元素的句法結(jié)構(gòu)。PPS可被用于單個圖片,或者PPS可被重用于序列中的多個圖片。PPS典型地與圖片的經(jīng)編碼的數(shù)據(jù)分開地發(fā)送信號(例如PPS的一個NAL單元和用于圖片的經(jīng)編碼的數(shù)據(jù)的一個或多個其它NAL單元)。在圖片的經(jīng)編碼數(shù)據(jù)內(nèi),句法元素指示要為該圖片使用哪個PPS。類似地,對于根據(jù)H.265/HEVC的標(biāo)準(zhǔn)的句法,序列參數(shù)集(“SPS”)是包含了與圖片的序列相關(guān)聯(lián)的句法元素的句法結(jié)構(gòu)。比特流可包括單個SPS或多個SPS。SPS通常被信號化成與序列的其它數(shù)據(jù)分開,并且其它數(shù)據(jù)中的句法元素指示要使用哪個SPS。
[0071] 經(jīng)編碼的幀(341)和MMCO/RPS信息(342)(或與MMCO/RPS信息(342)等價的信息,因為在編碼器(340)處已經(jīng)知道各幀的依賴關(guān)系和排序結(jié)構(gòu))由解碼處理仿真器(350)處理。解碼處理仿真器(350)實現(xiàn)了解碼器的一些功能,例如對任務(wù)進(jìn)行解碼以重構(gòu)參考幀。以與MMCO/RPS信息(342)相一致的方式,解碼處理仿真器(350)確定給定的經(jīng)編碼幀(341)是否需要被重構(gòu)并被存儲以供在對要編碼的后續(xù)幀的幀間預(yù)測中用作參考幀。如果經(jīng)編碼的幀(341)需要被存儲,則解碼處理仿真器(350)對將由解碼器進(jìn)行的解碼處理建模,該解碼器接收經(jīng)編碼的幀(341)并產(chǎn)生相應(yīng)的經(jīng)解碼的幀(351)。通過這么做,當(dāng)編碼器(340)已經(jīng)使用已被存儲在經(jīng)解碼幀存儲區(qū)域(360)中的經(jīng)解碼的幀(369)時,解碼處理仿真器(350)還使用來自存儲區(qū)域(360)的經(jīng)解碼的幀(369)作為解碼處理的一部分。
[0072] 經(jīng)解碼幀臨時存儲器存儲區(qū)域(360)包括多個幀緩沖存儲區(qū)域(361,362,…,36n)。以與MMCO/RPS信息(342)相一致的方式,解碼處理仿真器(350)管理存儲區(qū)域(360)中的內(nèi)容,以便標(biāo)識出具有編碼器(340)不再需要將其用作參考幀的幀的任何幀緩沖器(361、
362等)。在對解碼處理進(jìn)行建模之后,解碼處理仿真器(350)在幀緩沖(361,362等)中存儲已經(jīng)以此方式標(biāo)識出的新解碼的幀(351)。
[0073] 經(jīng)編碼的幀(341)和MMCO/RPS信息(342)被緩沖在臨時的經(jīng)編碼數(shù)據(jù)區(qū)域(370)中。被聚集在經(jīng)編碼數(shù)據(jù)區(qū)域(370)中的經(jīng)編碼數(shù)據(jù)將一個或多個圖片的經(jīng)編碼數(shù)據(jù)作為基本經(jīng)編碼視頻比特流的句法的一部分來包含。在經(jīng)編碼數(shù)據(jù)區(qū)域(370)中被聚集的經(jīng)編碼數(shù)據(jù)還可包括與經(jīng)編碼的視頻數(shù)據(jù)相關(guān)的媒體元數(shù)據(jù)(例如作為一個或多個補充增強信息(“SEI”)消息或視頻可用性信息(“VUI”)消息中的一個或多個參數(shù))。
[0074] 來自臨時經(jīng)編碼數(shù)據(jù)區(qū)域(370)的經(jīng)聚集的數(shù)據(jù)(371)由信道編碼器(380)處理。信道編碼器(380)可以分組化和/或復(fù)用經(jīng)聚集的數(shù)據(jù)以供作為媒體流傳輸或存儲(例如根據(jù)媒體程序流或傳輸流格式,例如ITU-T?H.222.0|ISO/IEC?13818-1或因特網(wǎng)實時傳輸協(xié)議格式(例如IETF?RFC?3550)),在這種情況中,信道編碼器(380)可以將句法元素作為媒體傳輸流的句法的部分加入?;蛘?,信道編碼器(380)可以將經(jīng)聚集的數(shù)據(jù)組織作為文件存儲(例如根據(jù)媒體容器格式,諸如ISO/IEC?14496-12),在這種情況中信道編碼器(380)可以將句法元素作為媒體存儲文件的句法的部分加入?;蛘?,更一般地,信道編碼器(380)可以實現(xiàn)一個或多個媒體系統(tǒng)復(fù)用協(xié)議或傳輸協(xié)議,在這種情況中,信道編碼器(380)可以添加句法元素作為(諸)協(xié)議的句法的一部分。信道編碼器(380)將輸出提供給信道(390),該信道(390)表示存儲、通信連接或該輸出的另一信道。信道編碼器(380)或信道(390)還可以包括例如用于前向糾錯(“FEC”)編碼和模擬信號調(diào)制的其它元素(未示出)。
[0075] IV.示例視頻編碼器
[0076] 圖4a和4b是可結(jié)合其實現(xiàn)所描述的一些實施例的通用視頻編碼器(400)的框圖。編碼器(400)接收包括當(dāng)前圖片的視頻圖片序列作為輸入視頻信號(405)并在經(jīng)編碼視頻比特流(495)中產(chǎn)生經(jīng)編碼的數(shù)據(jù)作為輸出。
[0077] 編碼器(400)是基于塊的并使用取決于實現(xiàn)的塊格式。塊還可在不同的階段上被進(jìn)一步細(xì)分,例如在預(yù)測、頻率變換和/或熵編碼階段。例如,圖片可以被劃分成64x64塊、32x32塊或16x16塊,這些塊隨后可以被劃分成更小的樣本值塊以用于編碼和解碼。在針對H.265/HEVC標(biāo)準(zhǔn)的編碼的實現(xiàn)中,編碼器將圖片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
[0078] 編碼器(400)使用圖片內(nèi)編碼和/或圖片間編碼來壓縮圖片。編碼器(400)的許多組件被用于圖片內(nèi)編碼和圖片間編碼兩者。由這些組件執(zhí)行的確切操作可取決于所壓縮的信息的類型而變化。
[0079] 小塊化模塊(410)可選地將圖片分割成相同尺寸或不同尺寸的多個小塊。例如,小塊化模塊(410)沿小塊行和小塊列來拆分圖片,所述小塊行和小塊列利用圖片邊界定義在圖片內(nèi)的小塊的水平和垂直邊界,其中每個小塊是矩形區(qū)域。在H.265/HEVC實現(xiàn)中,編碼器(400)將圖片分割成一個或多個片,其中每個片包括一個或多個片段。
[0080] 通用編碼控件(420)接收輸入視頻信號(405)的圖片以及來自編碼器(400)的各個模塊的反饋(未示出)。整體上,通用編碼控件(420)將控制信號(未示出)提供給其它模塊(例如小塊化模塊(410)、變換器、縮放器、量化器(430)、縮放器和逆變換器(435)、圖片內(nèi)估計器(440)、運動估計器(450)以及幀內(nèi)/幀間切換)以設(shè)置和改變編碼期間的編碼參數(shù)。具體地,通用編碼控制(420)可在編碼期間管理關(guān)于編碼模式的判定。通用編碼控件(420)還可以估計編碼期間的中間結(jié)果,例如執(zhí)行速率-失真分析來估計。通用編碼控件(420)產(chǎn)生指示在編碼期間所做出的判定的通用控制數(shù)據(jù)(422),使得對應(yīng)的解碼器可以作出一致的判定。通用控制數(shù)據(jù)(422)被提供給頭部格式化器和熵編碼器(490)。
[0081] 如果使用圖片間預(yù)測來預(yù)測當(dāng)前的圖片,運動估計器(450)相對于一個或多個參考圖片估計輸入視頻信號(405)的當(dāng)前圖片的采樣值的塊的運動。經(jīng)解碼的圖片緩沖器(470)緩沖一個或多個經(jīng)重構(gòu)的先前編碼的圖片以供用作參考圖片。對于運動估計期間的基于散列的塊匹配,運動估計器(450)可使用塊散列字典(未示出)來尋找當(dāng)前塊的MV值。塊散列字典是為基于散列的塊匹配組織候選塊的數(shù)據(jù)結(jié)構(gòu),如以下所描述的。塊散列字典是散列表的示例。運動估計器(450)可使用來自基于散列的塊匹配的結(jié)果作出關(guān)于是否執(zhí)行某些編碼階段(例如,部分精密運動估計、針對經(jīng)運動補償?shù)膲K的編碼模式和選項的評估)的判定,如以下所描述的。
[0082] 當(dāng)使用多個參考圖片時,這多個參考圖片可以來自不同的時間方向或相同的時間方向。運動估計器(450)可使用以下解釋的方法來確定不同參考圖片中用于運動估計的開始點。
[0083] 運動估計器(450)產(chǎn)生諸如MV數(shù)據(jù)、合并模式索引值和參考圖片選擇數(shù)據(jù)的輔助信息運動數(shù)據(jù)(452)。運動數(shù)據(jù)(452)被提供給頭部格式化器和熵編碼器(490)以及運動補償器(455)。
[0084] 運動補償器(455)將MV應(yīng)用于來自經(jīng)解碼的圖片緩沖器(470)的(諸)經(jīng)重構(gòu)的參考圖片。運動補償器(455)產(chǎn)生針對當(dāng)前圖片的經(jīng)運動補償?shù)念A(yù)測。
[0085] 在編碼器(400)內(nèi)的分開的路徑中,圖片內(nèi)估計器(440)確定如何執(zhí)行對輸入視頻信號(405)的當(dāng)前圖片的樣本值塊的圖片內(nèi)預(yù)測。當(dāng)前圖片可全部或部分使用圖片內(nèi)編碼來編碼。對于空間內(nèi)預(yù)測,使用當(dāng)前圖片的重構(gòu)(438)的值,圖片內(nèi)估計器(440)確定如何從當(dāng)前圖片的鄰近的、先前重構(gòu)的樣本值中空間地預(yù)測當(dāng)前圖片的當(dāng)前塊的樣本值。圖片內(nèi)估計器(440)可使用以下解釋的方法來確定要對當(dāng)前塊使用的空間預(yù)測的方向(并作出針對當(dāng)前塊的其他編碼判定)。
[0086] 或者,對于使用BV值的幀內(nèi)BC預(yù)測,圖片內(nèi)估計器(440)估計當(dāng)前塊的樣本值到當(dāng)前圖片內(nèi)的不同候選參考區(qū)域的位移。針對BV估計期間的基于散列的塊匹配,圖片內(nèi)估計器(440)可使用塊散列字典(441)來尋找當(dāng)前塊的BV值。塊散列字典(441)是為基于散列的塊匹配組織候選塊的數(shù)據(jù)結(jié)構(gòu),如以下所描述的。塊散列字典(441)是散列表的示例。圖片內(nèi)估計器(440)可使用來自基于散列的塊匹配的結(jié)果作出關(guān)于是否執(zhí)行某些編碼階段(例如,針對幀內(nèi)BC預(yù)測的塊的編碼模式和選項的評估)的判定,如以下所描述的。在圖4b中,塊散列字典(441)是基于原始樣本值構(gòu)建的。替換地,塊散列字典可基于重構(gòu)的樣本值來構(gòu)建并在編碼器期間被更新,以存儲關(guān)于新的候選塊(如變得可用于供在基于散列的塊匹配時使用的那些候選塊)的信息。
[0087] 或者,對于圖片內(nèi)字典編碼模式,塊中的像素是使用存儲在字典或其他位置的先前的樣本值來編碼的,其中一像素是位于同處的各樣本值的集合(例如,RGB三元組或YUV三元組)。例如,編碼器(400)可計算先前重構(gòu)的樣本值(例如,1個像素、2個像素、4個像素、8個像素并以此類推的群組)的散列值并將那些散列值與正被編碼的當(dāng)前像素集合的散列值進(jìn)行比較。長度為一或更多的匹配可在先前重構(gòu)的樣本值中基于散列比較來標(biāo)識出。(諸)當(dāng)前像素(或樣本值)可使用標(biāo)識在先前像素內(nèi)(例如,字典中)的位置的偏移以及指示從該偏移預(yù)測出的像素數(shù)的長度以各種1-D和偽2-D字典模式來編碼。通常,沒有計算出針對用圖片內(nèi)字典編碼模式編碼的塊的殘留值。
[0088] 圖片內(nèi)估計器(440)產(chǎn)生幀內(nèi)預(yù)測數(shù)據(jù)(442)作為副信息,幀內(nèi)預(yù)測數(shù)據(jù)(442)為諸如指示幀內(nèi)預(yù)測是否使用空間預(yù)測、幀內(nèi)BC預(yù)測或字典模式、預(yù)測模式方向(用于空間內(nèi)預(yù)測)、BV值(用于幀內(nèi)BC預(yù)測)以及偏移和長度(用于字典模式)的信息。幀內(nèi)預(yù)測數(shù)據(jù)(442)被提供給頭部格式化器和熵編碼器(490)以及圖片內(nèi)預(yù)測器(445)。
[0089] 根據(jù)幀內(nèi)預(yù)測數(shù)據(jù)(442),圖片內(nèi)預(yù)測器(445)從當(dāng)前圖片的鄰近的先前重構(gòu)的采樣值中在空間上預(yù)測當(dāng)前圖片的當(dāng)前塊的采樣值?;蛘?,對于幀內(nèi)BC預(yù)測,圖片內(nèi)預(yù)測器(445)使用圖片內(nèi)預(yù)測參考區(qū)域的先前重構(gòu)的樣本值來預(yù)測當(dāng)前塊的樣本值,圖片內(nèi)預(yù)測參考區(qū)域由針對當(dāng)前塊的BV值指示。在一些情況中,BV值可以是BV預(yù)測值(預(yù)測的BV值)。在其它情況中,BV值可以不同于其被預(yù)測的BV值,在該情況中BV差異指示了在被預(yù)測的值BV和BV值之間的差值?;蛘?,對于圖片內(nèi)字典模式,圖片內(nèi)預(yù)測器(445)使用偏移和長度重構(gòu)各像素。
[0090] 幀內(nèi)/幀間切換選擇對給定塊的預(yù)測(458)將是經(jīng)運動補償?shù)念A(yù)測還是圖片內(nèi)預(yù)測。編碼器(400)可取決于某一塊中的色彩的數(shù)目而為該塊跳過對某些編碼模式(諸如幀內(nèi)BC預(yù)測和/或字典編碼)的評估。
[0091] 對于非字典模式,預(yù)測(458)的塊和輸入視頻信號(405)的原始當(dāng)前圖片的對應(yīng)部分之間的差異(如果有的話)為非跳躍模式塊提供殘留值(418)。在當(dāng)前圖片的重構(gòu)期間,對于非跳躍模式塊(其不是用字典模式編碼的),經(jīng)重構(gòu)的殘留值與預(yù)測(458)組合來從視頻信號(405)中產(chǎn)生對原始內(nèi)容的近似或精確的重構(gòu)(438)。(在有損壓縮中,一些信息從視頻信號(405)中丟失。)
[0092] 在變換器、縮放器、量化器(430)中,對于非字典模式,頻率變換器將空間域視頻信息轉(zhuǎn)換為頻域(即頻譜、變換)數(shù)據(jù)。對于基于塊的視頻編碼,頻率變換器將離散余弦變換(“DCT”)、其整數(shù)近似、或其它類型的前向塊變換(例如離散正弦變換或其整數(shù)近似)應(yīng)用于預(yù)測殘留數(shù)據(jù)的塊(如果預(yù)測(458)為空則應(yīng)用于采樣值數(shù)據(jù)),產(chǎn)生頻率變換系數(shù)的塊。變換器、縮放器、量化器(430)可以應(yīng)用具有可變塊尺寸的變換。在這種情況中,變換器、縮放器、量化器(430)可以使用以下解釋的方法來確定要使用哪些塊尺寸的變換來得到當(dāng)前塊的殘留值。在一些情況下,編碼器(400)還可跳過變換步驟。例如,對于幀內(nèi)BC預(yù)測的塊,編碼器(400)可跳過變換步驟,如以下解釋的。
[0093] 縮放器、量化器對變換系數(shù)進(jìn)行縮放和量化。例如,量化器將以逐圖片基礎(chǔ)、逐小塊基礎(chǔ)、逐片基礎(chǔ)、逐塊基礎(chǔ)、頻率專用基礎(chǔ)或其它基礎(chǔ)來變化的量化步進(jìn)尺寸將死區(qū)標(biāo)量量化應(yīng)用于頻域數(shù)據(jù)。經(jīng)量化的變換系數(shù)數(shù)據(jù)(432)被提供給頭部格式化器和熵編碼器(490)。
[0094] 在縮放器和逆變換器(435)中,對于非字典模式,縮放器/逆量化器對經(jīng)量化的變換系數(shù)執(zhí)行逆縮放和逆量化。當(dāng)變換階段沒有被跳過時,逆頻率變換器執(zhí)行逆頻率變換,生成經(jīng)重構(gòu)的預(yù)測殘留值或采樣值的塊。對于非跳躍模式塊(其不是用字典模式來編碼的),編碼器(400)將經(jīng)重構(gòu)的殘留值與預(yù)測(458)的值(例如,經(jīng)運動補償?shù)念A(yù)測值、圖片內(nèi)預(yù)測值)組合以形成重構(gòu)(438)。對于跳躍模式塊或字典模式塊,編碼器(400)使用預(yù)測(458)的值作為重構(gòu)(438)。
[0095] 對于圖片內(nèi)預(yù)測,重構(gòu)(438)的值可以被饋送回圖片內(nèi)估計器(440)和圖片內(nèi)預(yù)測器(445)。在一些實現(xiàn)中,重構(gòu)(438)的值還可用于更新塊散列字典(541)。同樣,重構(gòu)(438)的值可以被用于后續(xù)圖片的經(jīng)運動補償?shù)念A(yù)測。重構(gòu)(438)的值可以被進(jìn)一步濾波。對于視頻信號(405)的給定圖片,濾波控件(460)確定如何對重構(gòu)(438)的值執(zhí)行去塊濾波和SAO濾波。濾波控件(460)生成濾波控制數(shù)據(jù)(462),它被提供給頭部格式化器和熵編碼器(490)和合并器、(諸)濾波器(465)。
[0096] 在合并器、(諸)濾波器(465)中,編碼器(400)將來自不同小塊的內(nèi)容合并到圖片的經(jīng)重構(gòu)版本中。編碼器(400)根據(jù)濾波器控制數(shù)據(jù)(462)選擇性地執(zhí)行去塊濾波和SAO濾波,以便自適應(yīng)地平滑跨各圖片中的各邊界上的間斷??商鎿Q地或另外地應(yīng)用其它濾波(例如去振鈴濾波或ALF;未示出)。取決于編碼器(400)的設(shè)置,小塊邊界可以被選擇性地濾波或根本不被濾波,并且編碼器(400)可以在經(jīng)編碼的比特流內(nèi)提供指示是否應(yīng)用這樣的濾波的句法。經(jīng)解碼的圖片緩沖器(470)緩沖經(jīng)重構(gòu)的當(dāng)前圖片以供在后續(xù)的經(jīng)運動補償?shù)念A(yù)測中使用。
[0097] 頭部格式化器和熵編碼器(490)格式化和/或熵編碼通用控制數(shù)據(jù)(422)、量化的變換系數(shù)數(shù)據(jù)(432)、幀內(nèi)預(yù)測數(shù)據(jù)(442)、運動數(shù)據(jù)(452)以及濾波器控制數(shù)據(jù)(462)。對于運動數(shù)據(jù)(452),頭部格式化器和熵譯碼器(490)可以選擇并熵譯碼合并模式索引值,或可使用默認(rèn)的MV預(yù)測器。在一些情況中,頭部格式化器和熵譯碼器(490)還確定MV值(相對于MV值的MV預(yù)測器)的MV差異,隨后熵譯碼MV差異,例如使用上下文自適應(yīng)二進(jìn)制算術(shù)譯碼。對于幀內(nèi)預(yù)測數(shù)據(jù)(442),頭部格式化器和熵編碼器(490)可以選擇(幀內(nèi)BC預(yù)測的)BV預(yù)測值索引值并對其進(jìn)行熵編碼,或者可使用默認(rèn)BV預(yù)測值。在一些情況中,頭部格式化器和熵編碼器(490)還(相對于BV值的BV預(yù)測值)確定BV值的BV差,隨后對BV差進(jìn)行熵編碼,例如使用上下文自適應(yīng)二進(jìn)制算術(shù)編碼來對BV差進(jìn)行熵編碼。
[0098] 頭部格式化器和熵編碼器(490)在經(jīng)編碼的視頻比特流(495)中提供經(jīng)編碼的數(shù)據(jù)。經(jīng)編碼的視頻比特流的格式(495)可以是H.265/HEVC格式、Windows媒體視頻格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的變型或擴展。
[0099] 取決于期望的實現(xiàn)和壓縮類型,編碼器(400)的模塊可被添加、省略、分成多個模塊、與其它模塊組合、和/或用相似的模塊來替代。在替換實施例中,具有不同模塊和/或其它配置的模塊的編碼器執(zhí)行一個或多個所描述的技術(shù)。編碼器的具體實施例通常使用編碼器(400)的變型或補充版本。所示的編碼器(400)內(nèi)的各模塊之間的關(guān)系指示了信息在編碼器中的一般流動;為簡明起見,未示出其它關(guān)系。
[0100] V.確定不同參考圖片中用于運動估計的開始點。
[0101] 本章節(jié)呈現(xiàn)通過標(biāo)識不同參考圖片中用于運動估計的合適開始點來加速該運動估計的各種方式。
[0102] A.運動估計和MV值——介紹
[0103] 對于運動估計,當(dāng)前圖片中的當(dāng)前塊的樣本值是使用另一圖片(其被稱為參考圖片)中的樣本值來預(yù)測的。運動矢量(“MV”)值指示從當(dāng)前塊在參考圖片中的位置到參考圖片的包括用于預(yù)測的樣本值的區(qū)域(“參考區(qū)域”)的位移。參考區(qū)域為當(dāng)前塊提供預(yù)測的值。用于預(yù)測的樣本值是先前重構(gòu)的樣本值,由此這些樣本值可在編碼期間在編碼器處獲得并在解碼期間在解碼器處獲得。MV值在比特流中被信號化,并且解碼器可以使用該MV值來確定參考圖片的參考區(qū)域以用于預(yù)測,其也在解碼器處被重構(gòu)。當(dāng)多個參考圖片可用時,比特流還可包括關(guān)于要使用哪個參考圖片來找到參考區(qū)域的指示。
[0104] 圖5示出針對當(dāng)前圖片(510)的當(dāng)前塊(530)的運動預(yù)測。當(dāng)前塊可以是編碼單元(“CU”)的編碼塊(“CB”)、預(yù)測單元(“PU”)的預(yù)測塊(“PB”)、變換單元(“TU”)的變換塊(“TB”)或其它塊。
[0105] 當(dāng)前塊的尺寸可以是64×64、32×32、16×16、8×8或某個其它尺寸。更一般地,當(dāng)前塊的尺寸為m×n,其中m和n中的每一者都是整數(shù),并且其中m和n可彼此相等或可具有不同的值。這樣,當(dāng)前塊可以是正方形或矩形。或者,當(dāng)前塊可以具有某種其它形狀。
[0106] MV值(540)指示從當(dāng)前塊(530)的位置到參考圖片(550)中包括用于預(yù)測的樣本值的參考區(qū)域(有時被稱為參考塊)的位移(或偏移)。該MV值(540)所指示的參考區(qū)域有時被稱為當(dāng)前塊(530)的“匹配塊”。匹配塊可與當(dāng)前塊(530)相同,或它可以是當(dāng)前塊(530)的近似。假設(shè)當(dāng)前(530)塊的左上位置在當(dāng)前圖片(510)中的位置(x0,y0)處,并假設(shè)參考區(qū)域的左上位置在參考圖片(550)中的位置(x1,y1)處。MV值(540)指示位移(x1-x0,y1-y0)。例如,如果當(dāng)前塊的左上位置在位置(256,128)處,并且參考區(qū)域的左上位置在位置(126,104)處,該MV值為(-130,-24)。在本示例中,負(fù)水平位移指示在當(dāng)前塊的左邊的位置,而負(fù)垂直位移指示在當(dāng)前塊之上的位置。
[0107] 當(dāng)前塊(530)的參考區(qū)域是在運動估計期間從多個候選塊之中選出的。圖5還示出運動估計中針對當(dāng)前圖片(510)的當(dāng)前塊(530)的某些候選塊。四個MV值(541,542,543,544)指示四個候選參考塊的位移。一般來說,這些候選塊可在參考圖片(550)內(nèi)的任何地方。候選塊可與其它候選塊重疊,如針對MV值(543,544)所指示的候選塊示出的。運動估計的計算復(fù)雜度在MV值的搜索范圍包含參考圖片的全部區(qū)域時因當(dāng)前塊與大量候選塊比較,而特別成問題。當(dāng)運動估計針對多個參考圖片執(zhí)行時,該計算復(fù)雜性更加復(fù)雜。在許多情況下,編碼器可通過以下方式來限制運動估計的計算復(fù)雜性:在有可能以良好的預(yù)測產(chǎn)生MV值的點開始運動估計,隨后按需從那個開始點起向外擴展,以估計其他候選塊,并且只要編碼器尋找到足夠好的MV值就終止搜索過程。
[0108] 在針對多個參考圖片的運動估計的一些先前實現(xiàn)中,編碼器如下確定參考圖片中用于運動估計的開始點。編碼器將MV預(yù)測值的位置標(biāo)識成運動估計的開始點。例如,對于當(dāng)前塊,編碼器(使用被用來對空間上相鄰的塊或時間上相鄰的塊進(jìn)行編碼的MV值)獲得兩個MV預(yù)測值,并將具有較小預(yù)測誤差(或預(yù)測成本)的MV預(yù)測值選為參考圖片中用于運動估計的開始點。如果相鄰塊所使用的參考圖片與正被評估以找出當(dāng)前塊的運動估計的參考圖片不同,則編碼器根據(jù)圖序計數(shù)(“POC”)值中的差異來縮放MV預(yù)測值。
[0109] 例如,假設(shè)當(dāng)前圖片的POC值為10,而左邊的鄰近塊使用具有為9的POC值的參考圖片。左邊的鄰近塊的MV值為(1,2),并且其被用作針對當(dāng)前塊的MV預(yù)測值。對于具有為9的POC值的參考圖片中的運動估計,該運動估計的開始點是離開當(dāng)前塊的左上位置的坐標(biāo)(1,2)的位置。然而,對于另一參考圖片,MV預(yù)測值被縮放。例如,假設(shè)編碼器在具有為0的POC值的參考圖片中執(zhí)行運動估計。來自左邊的鄰近塊的MV預(yù)測值被縮放了因子(10-9)/(10-0)=10。因此,MV預(yù)測值變?yōu)?10,20),并且參考圖片(具有為0的POC值)中的運動估計的開始點是離開當(dāng)前塊的左上位置的坐標(biāo)(10,20)的位置。
[0110] 在許多情況下,通過縮放MV預(yù)測值來確定用于運動估計的開始點是不可靠的。具體地,這樣的開始點可導(dǎo)致對具有大幅度運動的視頻的低效運動估計,而具有大幅度運動的視頻對于屏幕捕捉視頻和其他人工創(chuàng)建的視頻而言是常見的。
[0111] B.選擇不同參考圖片中用于運動估計的合適開始點。
[0112] 本章節(jié)呈現(xiàn)通過標(biāo)識不同參考圖片中用于運動估計的合適開始點來加速該運動估計的各種方式。通過選擇較有可能快速地產(chǎn)生合適的MV值的開始點,可通過搜索過程的早期終止來降低運動估計的計算復(fù)雜性。
[0113] 圖6示出了確定不同的參考圖片中用于運動估計的開始點的示例方法。在該方法中,編碼器使用相鄰塊的MV值(其參考在參考圖片中的位置)來確定僅在同一參考圖片中的運動估計的開始點,而無需縮放。對于不同的參考圖片,編碼器使用不同的MV值(其參考在那個不同參考圖片中的位置)來確定運動估計的開始點,而無需縮放。編碼器可緩沖用于對當(dāng)前圖片中的塊進(jìn)行編碼的MV值(以及參考圖片的指示符)以及在針對當(dāng)前圖片的相應(yīng)塊的其他參考圖片的運動估計期間評估的最佳MV值,并在選擇用于運動估計的開始點時使用這樣的經(jīng)緩沖的MV值。
[0114] 在圖6中,當(dāng)前圖片(610)的當(dāng)前塊(630)包括分別在當(dāng)前塊(630)的左方、上方和右上方的三個空間上相鄰的塊(631、632、633)。對于空間上相鄰的塊(631、632、633)中的每一者,編碼器緩沖兩個MV值。這些MV值(641、642或643)之一指示在第一參考圖片(660)中的位置。其他MV值(651、652或653)指示在第二參考圖片(670)中的位置。對于第一參考圖片(660),編碼器基于與第一參考圖片(660)相關(guān)聯(lián)的鄰近MV值(641、642、643)來確定在由MV預(yù)測值(662)所指示的位置處的用于運動估計的開始點(664)。例如,編碼器將MV預(yù)測值(662)選為具有最佳預(yù)測成本或最低預(yù)測誤差的鄰近MV值(641、642或643),或?qū)V預(yù)測值(662)確定為是鄰近MV值(641、642、643)的逐分量的中值,或者以其他方式基于鄰近MV值(641、642、643)推導(dǎo)出MV預(yù)測值(662)。類似地,對于第二參考圖片(670),編碼器基于與第二參考圖片(670)相關(guān)聯(lián)的鄰近MV值(651、652、653)來確定在由MV預(yù)測值(672)所指示的位置處的用于運動估計的開始點(674)。例如,編碼器將MV預(yù)測值(672)選為具有最佳預(yù)測成本或最低預(yù)測誤差的鄰近MV值(651、652或653),或?qū)V預(yù)測值(672)確定為是鄰近MV值(651、652、653)的逐分量中值,或者以其他方式基于鄰近MV值(651、652、653)推導(dǎo)出MV預(yù)測值(672)。
[0115] 圖7示出了確定不同的參考圖片中用于運動估計的開始點的另一示例方法。在該方法中,編碼器將包括當(dāng)前塊的較大塊的MV值(其參考在參考圖片中的位置)用作僅在同一參考圖片中的運動估計的開始點,而無需縮放。對于不同的參考圖片,編碼器將較大塊的不同的MV值(其參考在那個不同參考圖片中的位置)用作運動估計的開始點,而無需縮放。編碼器可緩沖用于對當(dāng)前圖片中的給定尺寸(例如64x64)的塊進(jìn)行編碼的MV值(以及參考圖片的指示符)以及在針對給定尺寸的相應(yīng)塊的其他參考圖片的運動估計期間評估的最佳MV值,并在為較小的塊(例如,32x32塊、32x64塊或64x32塊)選擇用于運動估計的開始點時使用這樣的經(jīng)緩沖的MV值。這例如在編碼器評估不同尺寸的塊(諸如可變尺寸的PU)的MV值時可能是有幫助的。
[0116] 在圖7中,當(dāng)前圖片(710)的較大塊(735)包括當(dāng)前塊。對于較大塊(735),編碼器緩沖兩個MV值。這些MV值(745)之一指示第一參考圖片中的位置。其他MV值(755)指示第二參考圖片中的位置。對于第一參考圖片,編碼器基于與第一參考圖片相關(guān)聯(lián)的第一經(jīng)緩沖的MV值(745)來確定在由MV預(yù)測值所指示的位置處的用于運動估計的開始點。類似地,對于第二參考圖片,編碼器基于與第二參考圖片相關(guān)聯(lián)的第二經(jīng)緩沖的MV值(755)來確定在由MV預(yù)測值所指示的位置處的用于運動估計的開始點。
[0117] 當(dāng)多個不同尺寸的較大塊都具有經(jīng)緩沖的MV值(例如,用于為相應(yīng)的較大塊內(nèi)的16x16塊進(jìn)行運動估計的64x64塊、32x32塊和64x32塊)時,編碼器可根據(jù)規(guī)則(例如,下一較大塊的合適參考圖片的MV值,或針對合適參考圖片的、被較大塊中的大多數(shù)使用的MV值)或者通過標(biāo)識出哪一個MV值提供最佳預(yù)測性能或最低預(yù)測成本來選擇經(jīng)緩沖的MV值之一。
[0118] 替換地,編碼器可首先確定當(dāng)前圖片中的較小塊的MV值,緩沖與較小塊的不同參考圖片相關(guān)聯(lián)的MV值,并隨后使用經(jīng)緩沖的MV值來選擇用于與較小塊重疊的較大塊的運動估計的開始點。在該情況下,在確定用于針對較大塊的運動估計的開始點時,編碼器可根據(jù)規(guī)則(例如,第一較小塊的合適參考圖片的MV值,或合適的參考圖片的、被較小塊中的大多數(shù)使用的MV值)或者通過標(biāo)識出哪一個MV值提供最佳預(yù)測性能或最低預(yù)測成本來在較大塊內(nèi)的較小塊的經(jīng)緩沖的MV值之中進(jìn)行選擇。
[0119] 同樣,編碼器可在包括當(dāng)前塊的較大塊(或包括當(dāng)前塊的多個較大塊、或者當(dāng)前塊內(nèi)的一個或多個較小塊)的MV值和空間相鄰塊的MV值之間進(jìn)行選擇。例如,對于當(dāng)前的32x32塊,編碼器可將使用較大的64x64塊的MV值產(chǎn)生的預(yù)測誤差與使用來自空間上相鄰的
32x32塊的MV值產(chǎn)生的預(yù)測誤差進(jìn)行比較,并選擇具有較小預(yù)測誤差(或預(yù)測成本)的一個MV值來指示用于運動估計的開始點。對于最大尺寸的塊(例如,64x64),編碼器可使用與運動估計的開始點具有相同參考圖片的相鄰64x64塊的MV值。
[0120] 圖8是示出用于執(zhí)行運動估計的通用技術(shù)(800)的流程圖,其中某參考圖片中的開始點是僅用使用該參考圖片的MV值(即,不用使用任何其他參考圖片的任何MV值)來確定的。視頻編碼器(諸如參考圖3或圖4a-4b描述的編碼器)可執(zhí)行技術(shù)(800)。
[0121] 編碼器編碼視頻以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼器在比特流中輸出該經(jīng)編碼的數(shù)據(jù)。作為編碼的一部分,編碼器為當(dāng)前圖片的當(dāng)前塊執(zhí)行(810)運動估計,以便為當(dāng)前塊選擇MV值。作為運動估計的一部分,編碼器評估多個參考圖片中的每一者中的一個或多個候選MV值。對于多個參考圖片中的每一者,編碼器僅用使用那個參考圖片的先前編碼的塊的一個或多個MV值(即不用使用任何其他參考圖片的先前編碼的塊的任何MV值)來確定用于運動估計的開始點。先前編碼的塊可包括當(dāng)前圖片中的一個或多個較大的塊(其包括當(dāng)前塊)、當(dāng)前圖片中的一個或多個較小的塊(其與當(dāng)前塊重疊)、當(dāng)前圖片中的一個或多個空間上相鄰的塊或另一圖片中的時間上相鄰的塊。編碼器隨后使用針對當(dāng)前塊的MV值來對當(dāng)前塊進(jìn)行編碼(820)。
[0122] 例如,在執(zhí)行針對當(dāng)前塊的運動估計時,對于多個參考圖片中的每一者,編碼器從使用那個參考圖片的先前編碼的塊的一個或多個MV值中確定MV預(yù)測值。編碼器隨后將該MV預(yù)測值所指示的位置用作那個參考圖片中用于運動估計的開始點。替換地,開始點可以是MV預(yù)測值所指示的位置周圍的某一其他位置。
[0123] 編碼器緩沖先前編碼的塊的MV值以供在確定用于運動估計的開始點時使用。先前編碼的塊的MV值可包括在先前編碼的塊的編碼期間被使用的實際MV值。先前編碼的塊的MV值還可包括在針對先前編碼的塊的運動估計期間被評估、但在先前編碼的塊的編碼期間沒有被使用的候選MV值。
[0124] 對于當(dāng)前圖片,編碼器可按由上而下的方式執(zhí)行運動估計,該運動估計以最大尺寸的塊開始,并以最小尺寸的塊結(jié)束。例如,編碼器執(zhí)行針對當(dāng)前圖片的具有第一尺寸的塊的運動估計。編碼器緩沖具有第一尺寸的塊的MV值(例如,在具有第一尺寸的塊的編碼期間被使用的實際MV值,以及在針對具有第一尺寸的塊的運動估計期間被評估、但在具有第一尺寸的塊的編碼期間沒有被使用的候選MV值)。編碼器使用經(jīng)緩沖的MV值中的至少一些來執(zhí)行針對當(dāng)前圖片的具有第二尺寸的塊的運動估計,以為第二尺寸的塊選擇用于運動估計的開始點。替換地,對于當(dāng)前圖片,編碼器可按由下而上的方式執(zhí)行運動估計,該運動估計以最小尺寸的塊開始,并以最大尺寸的塊結(jié)束。
[0125] VI.基于基于散列的塊匹配的結(jié)果跳過編碼階段。
[0126] 本章節(jié)呈現(xiàn)在基于散列的塊匹配被使用時加速編碼的各種方式?;谏⒘械膲K匹配可被用于運動估計(如在先前章節(jié)中描述的)或用于塊矢量估計。
[0127] A.幀內(nèi)BC預(yù)測模式和BV值—介紹。
[0128] 對于幀內(nèi)BC預(yù)測,圖片的當(dāng)前塊的樣本值是使用同一圖片中的樣本值來預(yù)測的。BV值指示從當(dāng)前塊到圖片的包括用于預(yù)測的樣本值的區(qū)域(“參考區(qū)域”)的位移。參考區(qū)域提供了當(dāng)前塊的預(yù)測值。用于預(yù)測的樣本值是先前重構(gòu)的樣本值,由此這些樣本值可在編碼期間在編碼器處獲得并在解碼期間在解碼器處獲得。BV值在比特流中被信號化,并且解碼器可以使用BV值來確定圖片的參考區(qū)域以用于預(yù)測,其也在解碼器處被重構(gòu)。幀內(nèi)BC預(yù)測是一種形式的圖片內(nèi)預(yù)測—針對圖片的塊的幀內(nèi)BC預(yù)測不使用除了同一圖片中的樣本值以外的任何樣本值。
[0129] 圖9示出針對當(dāng)前圖片(910)的當(dāng)前塊(930)的幀內(nèi)BC預(yù)測。當(dāng)前塊可以是編碼單元(“CU”)的編碼塊(“CB”)、預(yù)測單元(“PU”)的預(yù)測塊(“PB”)、變換單元(“TU”)的變換塊(“TB”)或其它塊。當(dāng)前塊的尺寸可以是64×64、32×32、16×16、8×8或某個其它尺寸。更一般地,當(dāng)前塊的尺寸為m×n,其中m和n中的每一者都是整數(shù),并且其中m和n可彼此相等或可具有不同的值。這樣,當(dāng)前塊可以是正方形或矩形?;蛘撸?dāng)前塊可以具有某種其它形狀。
[0130] BV(940)指示當(dāng)前塊(930)到圖片的包括用于預(yù)測的樣本值的參考區(qū)域(950)的位移(或偏移)。由BV(940)指示的參考區(qū)域(950)有時被稱為當(dāng)前塊(930)的“匹配塊”。匹配塊可與當(dāng)前塊(930)相同,或它可以是當(dāng)前塊(930)的近似。假設(shè)當(dāng)前塊的左上位置是在當(dāng)前圖片中的位置(x0,y0)處,并假設(shè)參考區(qū)域的左上位置在當(dāng)前圖片中的位置(x1,y1)處。BV指示位移(x1-x0,y1-y0)。例如,如果當(dāng)前塊的左上位置是在位置(256,128)處,并且參考區(qū)域的左上位置在位置(126,104)處,BV值是(-130,-24)。在本示例中,負(fù)水平位移指示在當(dāng)前塊的左邊的位置,而負(fù)垂直位移指示在當(dāng)前塊之上的位置。
[0131] 幀內(nèi)BC預(yù)測可以通過利用使用BC操作的冗余性(例如在圖片內(nèi)部的重復(fù)的圖案)來改善譯碼的效率。然而,考慮到編碼器可能估計的候選塊的數(shù)量,為當(dāng)前塊查找匹配塊可以在計算上是復(fù)雜的并且耗時的。圖10示出在塊匹配操作中用于當(dāng)前圖片(1010)的當(dāng)前塊(1030)的某些候選塊。四個BV(1041,1042,1043,1044)指示了四個候選塊的位移。候選塊可在當(dāng)前圖片(1010)的經(jīng)重構(gòu)內(nèi)容內(nèi)的任何地方。(通常從左向右隨后從上到下編碼塊。)候選塊可以與其它候選塊重疊,如由BV(1043,1044)指示的候選塊所示。當(dāng)BV值的搜索范圍包括圖片的所有先前重構(gòu)的區(qū)域時,由于當(dāng)前塊可與其進(jìn)行比較的候選塊的較大數(shù)目,BV估計的計算復(fù)雜性特別成問題。對于整個幀的各候選塊,操作的數(shù)量甚至更高。類似地,如果搜索范圍包括另一先前重構(gòu)的幀(用于運動估計),操作的數(shù)量可能非常高。例如,對于涉及單個參考幀(或多個參考幀)的運動估計,由于當(dāng)前塊與之進(jìn)行比較的大量候選塊,逐樣本的塊匹配可可消耗非常大數(shù)目的操作。
[0132] B.基于散列的塊匹配
[0133] 當(dāng)編碼器使用基于塊的匹配時,該編碼器為多個候選塊的每一塊確定散列值。散列表存儲這些候選塊的散列值。編碼器還通過相同散列方法來確定當(dāng)前塊的散列值,并接著搜索散列表尋找匹配的散列值。如果兩個塊相同,它們的散列值相同。使用散列值,編碼器可快速且高效地標(biāo)識具有與當(dāng)前塊相同的散列值的候選塊,并過濾出具有不同散列值的候選塊。編碼器可接著進(jìn)一步評估具有與前塊相同的散列值的候選塊。(不同塊可具有相同散列值。因此,編碼器可在具有相同散列值的候選塊之中標(biāo)識出匹配當(dāng)前塊的候選塊。)基于散列的塊匹配通常使針對當(dāng)前塊的塊匹配過程加速。
[0134] 在某些示例實現(xiàn)中,在基于散列的塊匹配中考慮的候選塊包括輸入樣本值。即,候選塊是圖片的輸入版本的一部分。候選塊的散列值是從輸入的樣本值中確定的。
[0135] 在基于散列的塊匹配期間,編碼器使用輸入的樣本值為當(dāng)前塊確定塊散列值。
[0136] 編碼器將其(或以其他方式使用散列值)與從候選塊的輸入的樣本值中確定的散列值進(jìn)行比較。即便如此,來自匹配塊的經(jīng)重構(gòu)的樣本值被用于代表當(dāng)前塊。因此,BC預(yù)測操作(以及運動補償操作)仍使用經(jīng)重構(gòu)的樣本值。替換地,在基于散列的塊匹配中考慮的候選塊包括經(jīng)重構(gòu)的樣本值。
[0137] 即,候選塊是圖片中先前編碼接著重構(gòu)內(nèi)容的部分。候選塊的散列值從重構(gòu)的樣本值中確定。在基于散列的塊匹配期間,編碼器使用輸入的樣本值為當(dāng)前塊確定塊散列值。
[0138] 編碼器將其(或以其他方式使用散列值)與從候選塊的重構(gòu)的樣本值中確定的散列值進(jìn)行比較。
[0139] 圖11示出了在基于散列的塊匹配中用于候選塊B(x,y)的散列值(1100),其中x和y分別指示給定候選塊的左上位置的水平和垂直坐標(biāo)。候選塊具有使用散列函數(shù)h()確定的散列值。對于搜索范圍中的候選塊B(x,y),編碼器為該候選塊確定散列值h(B)。編碼器可為搜索范圍中的全部候選塊確定散列值?;蛘撸幋a器可篩選出具有某種樣本值模式(例如,用諸如空間圖片內(nèi)預(yù)測之類的另一預(yù)測模式容易地預(yù)測出的模式)的候選塊。
[0140] 一般而言,散列函數(shù)h()得到n個可能散列值,指定為h0到hn-1。對于給定散列值,具有那個散列值的候選塊聚成組。例如,在圖11中,候選塊B(1266,263)、B(1357,365)、B(1429,401),B(502,464)…具有散列值h0。各組可包括不同數(shù)量的候選塊。例如,在圖11中,散列值h4的組包括單個候選塊,而散列值h0的組包括4個以上候選塊。
[0141] 以此方式,可能的候選塊被分發(fā)到n個分類。例如,如果散列函數(shù)h()產(chǎn)生12比特散列值,則候選塊被拆分成212=4,096個類別。在一些實現(xiàn)中,每散列值的候選塊數(shù)可通過消除具有那個散列值的冗余、相同的塊或者通過篩選出具有某些樣本值圖案的候選塊被進(jìn)一步降低。同樣,在某些實現(xiàn)中,編碼器可使用不同的散列函數(shù)迭代地去除減少候選塊的數(shù)量。
[0142] 用于基于散列的塊匹配的散列函數(shù)取決于實現(xiàn)。散列函數(shù)可產(chǎn)生具有8比特、12比特、16比特、24比特、32比特或其它數(shù)量的比特的散列值。如果散列值具有更少比特,則數(shù)據(jù)結(jié)構(gòu)包括更少分類,但是每個分類可包括更多候選塊。換言之,使用具有更多比特的散列值有助于增加組織候選塊的數(shù)據(jù)結(jié)構(gòu)的尺寸。如果散列值具有更多比特,則數(shù)據(jù)結(jié)構(gòu)包括更多分類,但是每個分類可包括更少候選塊。散列函數(shù)h()可以是密碼散列函數(shù)、密碼散列函數(shù)的一部分、循環(huán)冗余校驗(“CRC”)函數(shù)、CRC的一部分、或另一散列函數(shù)(例如,使用求平均和XOR操作來確定候選塊或當(dāng)前塊的簽名)。某些類型的散列函數(shù)(例如,CRC函數(shù))將類似塊映射到不同散列值,其在搜索精確對應(yīng)于當(dāng)前塊的匹配塊時可能是高效的。其它類型的散列函數(shù)(例如,位置敏感散列函數(shù))將類似塊映射到相同散列值,其在匹配塊可近似當(dāng)前塊時可能是合適的。
[0143] 在基于散列的塊匹配期間,使用散列函數(shù)h(),編碼器為當(dāng)前塊B當(dāng)前確定散列值。在圖11中,散列值h(B當(dāng)前)是h3。使用當(dāng)前塊的散列值,編碼器可標(biāo)識具有相同散列值的候選塊(圖11中的輪廓框所示),并過濾出其它候選塊。當(dāng)散列函數(shù)將類似塊映射到不同散列值時,被標(biāo)識的候選塊(與當(dāng)前塊相同的散列值)包括可能與當(dāng)前塊相同的塊。當(dāng)散列函數(shù)將類似塊映射到相同散列值時,被標(biāo)識的候選塊(與當(dāng)前塊相同的散列值)包括可能與當(dāng)前塊相同的或可能非常接近當(dāng)前塊的塊。無論哪種方式,從這些標(biāo)識的候選塊中,編碼器可標(biāo)識當(dāng)前塊的匹配塊(例如,使用逐樣本的塊匹配操作)。
[0144] 總體地,因為散列值比較比逐樣本的塊匹配簡單得多,基于散列的塊匹配可使得在大搜索范圍中評估候選塊的過程高效得多。同樣,在編碼期間,候選塊的散列值可在針對圖片內(nèi)的不同塊的基于散列的塊匹配中重新使用。在該情況下,計算候選塊的散列值的成本可跨針對整個圖片的基于散列的塊匹配操作來分?jǐn)偂?/div>
[0145] C.用于基于散列的塊匹配的數(shù)據(jù)結(jié)構(gòu)。
[0146] 在某些示例實現(xiàn)中,編碼器使用根據(jù)它們的散列值組織候選塊的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)可幫助使得基于散列的塊匹配更加計算高效。數(shù)據(jù)結(jié)構(gòu)實現(xiàn),例如,如在此描述的塊散列字典或散列表。
[0147] 圖12a示出為基于散列的塊匹配組織候選塊的示例數(shù)據(jù)結(jié)構(gòu)(1200)。對于散列函數(shù)h(),n個可能散列值為h0到hn-1。具有相同散列值的候選塊在同一候選塊列表中分類。給定候選塊列表可包括零個或更多條目。例如,散列值h2的候選塊列表沒有條目,散列值h6的列表具有兩個條目,以及散列值h1的列表具有四個以上的條目。
[0148] 條目(hi,k)包括具有散列值hi的第k個候選塊的信息。如圖21中所示,候選塊列表中的條目可包括塊B(x,y)的地址(例如,塊的左上位置的水平和垂直坐標(biāo))。或者,如圖12c中所示,候選塊列表中的條目可包括塊B(x,y)的地址以及來自第二散列函數(shù)的散列值,其可用于進(jìn)行迭代的基于散列的塊匹配。
[0149] 在當(dāng)前塊的基于散列的塊匹配(用于BV估計或運動估計)期間,編碼器確定當(dāng)前塊的散列值h(B當(dāng)前)。編碼器保留具有相同散列值的候選塊列表并排除其它n-1個列表。為選擇匹配塊,編碼器可將當(dāng)前塊與保留的候選塊列表中的候選塊(如果有)進(jìn)行比較。因此,通過使用散列值h(B當(dāng)前)的簡單的查找操作,編碼器可消除候選塊的(n-1)/n(平均),并聚焦于保留的列表中余下的1/n候選塊(平均),顯著減少了樣本級塊匹配操作的數(shù)量。
[0150] 數(shù)據(jù)結(jié)構(gòu)可被認(rèn)為是其中每個條目代表一個候選塊的動態(tài)字典。當(dāng)候選塊的散列值從輸入樣本值中確定時,隨著為更多塊計算塊散列值,數(shù)據(jù)結(jié)構(gòu)增長。用塊散列值代表的塊的數(shù)量可變,取決于編碼器篩選出多少塊。同樣,具有給定散列值的塊的數(shù)量將隨圖片到圖片變化。在編碼期間,編碼器檢查具有匹配塊散列值的候選塊實際上可用于用作參考區(qū)域(例如,作為先前編碼和重構(gòu)的內(nèi)容的一部分)。當(dāng)候選塊的散列值從經(jīng)重構(gòu)的樣本值中被確定時,隨著更多候選塊被添加到圖片的經(jīng)重構(gòu)的內(nèi)容并且因此使得能夠用在圖片的后面的塊的基于散列的塊匹配中,數(shù)據(jù)結(jié)構(gòu)在編碼期間增長。具體地,在當(dāng)前塊被編碼后,與剛編碼的當(dāng)前塊重疊的新候選塊可用于用作參考區(qū)域。
[0151] 不同數(shù)據(jù)結(jié)構(gòu)可被用于不同尺寸的塊。例如,一個數(shù)據(jù)結(jié)構(gòu)包括8×8個候選塊的散列值、第二數(shù)據(jù)結(jié)構(gòu)包括16×16個候選塊的散列值、第三數(shù)據(jù)結(jié)構(gòu)包括32×32個候選塊的散列值,以此類推。在基于散列的塊匹配期間使用的數(shù)據(jù)結(jié)構(gòu)取決于當(dāng)前塊的尺寸??商鎿Q地,單個,統(tǒng)一數(shù)據(jù)結(jié)構(gòu)可被用于不同尺寸的塊。散列函數(shù)可產(chǎn)生一個n比特散列值,其中n比特散列值的m比特根據(jù)一個m比特散列函數(shù)指示給定塊尺寸的可能的塊中的散列值,而余下的n比特散列值的n-m比特指示給定塊尺寸。例如,14比特散列函數(shù)的前兩個比特可指示塊尺寸,而余下的12比特根據(jù)12比特的散列函數(shù)指示散列值?;蛘?,散列函數(shù)可產(chǎn)生m比特散列值而不考慮塊尺寸,且數(shù)據(jù)結(jié)構(gòu)中的候選塊的條目存儲指示候選塊的塊尺寸的信息,其可被用于基于散列的塊匹配中。
[0152] 對于高分辨率圖片,數(shù)據(jù)結(jié)構(gòu)可存儲代表很大數(shù)量的候選塊的信息。為了減少用于數(shù)據(jù)結(jié)構(gòu)的存儲器的量,編碼器可去除冗余值。例如,編碼器可跳過將相同的塊添加到該數(shù)據(jù)結(jié)構(gòu)。一般而言,通過去除相同塊來減少數(shù)據(jù)結(jié)構(gòu)的尺寸可傷及編碼效率。因此,通過決定是否去除相同塊,編碼器可折衷數(shù)據(jù)結(jié)構(gòu)的存儲器尺寸和編碼效率。編碼器還可取決于候選塊的內(nèi)容篩選出不可能從幀內(nèi)BC預(yù)測中獲益的候選塊。
[0153] D.迭代的基于散列的塊匹配。
[0154] 當(dāng)編碼器使用具有n個可能散列值的單個散列函數(shù)時,該編碼器可基于當(dāng)前塊的散列值來排除候選塊的n-1個列表,但編碼器可能還需要針對余下的候選塊(如果有)執(zhí)行樣本級塊匹配操作以查找具有匹配散列值的列表。同樣,當(dāng)更新組織候選塊的數(shù)據(jù)結(jié)構(gòu)時,編碼器可能需要執(zhí)行樣本級塊匹配操作來標(biāo)識相同的塊。總體而言,這些樣本級塊匹配操作可以是計算密集的。
[0155] 因此,在某些示例實現(xiàn)中,編碼器使用迭代的基于散列的塊匹配。迭代的基于散列的塊匹配可加速塊匹配過程,并且還可以加速更新組織候選塊的數(shù)據(jù)結(jié)構(gòu)的過程。
[0156] 迭代的基于散列的塊匹配使用以不同散列函數(shù)確定的多個散列值。對于塊B(當(dāng)前塊或候選塊),除了散列值h(B),編碼器使用不同散列函數(shù)h'()確定另一個散列值h'(B)。使用當(dāng)前塊的第一散列值h(B當(dāng)前),編碼器為第一散列函數(shù)h()標(biāo)識具有相同散列值的候選塊。為進(jìn)一步排除這些被標(biāo)識的候選塊的一些,編碼器使用當(dāng)前塊的使用不同散列函數(shù)確定的第二散列值h'(B當(dāng)前)。編碼器將第二散列值h'(B當(dāng)前)與先前標(biāo)識的候選塊的第二散列值(其具有相同第一散列值)進(jìn)行比較,以過濾出更多候選塊。散列表根據(jù)不同散列函數(shù)跟蹤候選塊的散列值。
[0157] 在圖12a的示例中,如果h(B當(dāng)前)=h3,那么編碼器選擇具有條目(3,0)、條目(3,1)、條目(3,2)、條目(3,3),…的候選塊用于進(jìn)一步細(xì)化。如圖12c中所示,對于候選塊B,條目包括塊地址和來自散列函數(shù)h'()的第二散列值h'(B)。編碼器將當(dāng)前塊的第二散列值h'(B當(dāng)前)與具有條目(3,0)、條目(3,1)、條目(3,2)、條目(3,3),…的各候選塊的第二散列值h'(B)進(jìn)行比較?;诘诙⒘兄当容^的結(jié)果,編碼器可排除更多候選塊,留下具有分別匹配h(B當(dāng)前)和h'(B當(dāng)前)的第一和第二散列值的候選塊(如果有)。編碼器可在任何余下的候選塊上執(zhí)行樣本級塊匹配以選擇匹配塊。
[0158] 圖13a-13c示出使用不同數(shù)據(jù)結(jié)構(gòu)的迭代的基于散列的塊匹配的另一示例。圖13a中的數(shù)據(jù)結(jié)構(gòu)(1300)通過來自第一散列函數(shù)h()的具有n1的可能散列值的第一散列值來組織候選塊。數(shù)據(jù)結(jié)構(gòu)(1300)包括從h0…h(huán)n1-1的散列值的列表。在該示例中,編碼器為當(dāng)前塊確定第一散列值h(B當(dāng)前)=h2,并從結(jié)構(gòu)(1300)選擇h2的列表。
[0159] 如圖13b所示,h2的列表(1310)包括進(jìn)一步通過來自第二散列函數(shù)h'()的第二散列值組織余下的候選塊的多個列表,其具有n2個可能散列值。列表(1310)包括從h'0…h(huán)'n2-1的散列值的列表,每個包括具有塊地址的條目(例如,各候選塊的左上位置的水平和垂直坐標(biāo)),如在圖13c中條目(1320)所示。在該示例中,編碼器為當(dāng)前塊確定第二散列值h'(B當(dāng)前)=h'0,并從列表(1310)選擇h'0的列表。對于h'0的列表中的候選塊,編碼器可執(zhí)行樣本級塊匹配以選擇匹配塊。在此示例中,第二散列值的列表對于第一散列值的給定列表是專用的。替換地,有針對第二散列值的一組列表,且編碼器標(biāo)識(1)在第一散列值的匹配列表中的且還(2)在第二散列值的匹配列表中的任何候選塊。
[0160] 除了基于散列的塊匹配之外,第二散列函數(shù)h'()可被用于簡化更新組織候選塊的數(shù)據(jù)結(jié)構(gòu)的過程。例如,當(dāng)編碼器檢查新候選塊是否與已經(jīng)表示在數(shù)據(jù)結(jié)構(gòu)中的候選塊相同時,編碼器可使用具有不同散列函數(shù)的多個散列值來過濾出不相同的塊。對于余下的候選塊,編碼器可執(zhí)行樣本級塊匹配以標(biāo)識任何相同塊。
[0161] 在前面的示例中,迭代基于散列的塊匹配以及更新使用兩個不同散列函數(shù)。替換地,編碼器使用三個、四個或更多個散列函數(shù)以進(jìn)一步加速基于散列的塊匹配或過濾出不相同的塊,并且因此減少樣本級塊匹配操作的數(shù)量。同樣,對于低復(fù)雜度的編碼器,在散列值匹配時,編碼器可跳過逐樣本的塊匹配操作。對于具有大量可能散列值的散列函數(shù),如果兩個塊的全部散列值匹配那么存在很高可能性兩個塊是相同的。
[0162] E.基于基于散列的塊匹配的結(jié)果跳過編碼階段。
[0163] 本章節(jié)呈現(xiàn)在基于散列的塊匹配被使用時加速編碼的各種方式。
[0164] 圖14示出用于取決于基于散列的塊匹配的結(jié)果選擇性地跳過一個或多個編碼階段的通用技術(shù)(1400)。圖像編碼器或視頻編碼器(諸如參考圖3或圖4a-4b描述的編碼器)可執(zhí)行技術(shù)(1400)。
[0165] 編碼器對圖像或視頻進(jìn)行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼器在比特流的一部分中輸出該經(jīng)編碼的數(shù)據(jù)。在編碼期間,編碼器為當(dāng)前圖片的當(dāng)前塊執(zhí)行(1410)基于散列的塊匹配。例如,編碼器使用以上描述的數(shù)據(jù)結(jié)構(gòu)之一來執(zhí)行基于散列的塊匹配?;谏⒘械膲K匹配可包括一些逐樣本的塊匹配操作,以在當(dāng)前塊與候選塊的散列值匹配后確認(rèn)當(dāng)前塊與候選塊匹配。
[0166] 編碼器檢查條件是否被滿足。該條件取決于在針對當(dāng)前塊的基于散列的塊匹配期間是否發(fā)現(xiàn)了匹配。一般來說,在基于散列的塊匹配中的匹配表示當(dāng)前塊和候選塊之間的匹配散列值。它還可表示當(dāng)前塊和候選塊之間的逐樣本匹配。
[0167] 該條件還可取決于其他因素,諸如(1)當(dāng)前塊的預(yù)期質(zhì)量相對于用于該匹配的候選塊的質(zhì)量,(2)當(dāng)前塊的塊尺寸相對于閾值塊尺寸,和/或(3)某些其他因素。
[0168] 當(dāng)前塊的預(yù)期質(zhì)量可由適用于當(dāng)前塊的量化參數(shù)(“QP”)值指示,并且候選塊的質(zhì)量可由候選塊的QP值指示。如果候選塊覆蓋具有不同QP值的各塊中的部分,則針對該候選塊的QP值可以是:(a)這些塊的不同QP值中最小的QP值,(b)覆蓋候選塊的最大部分的無論哪個塊的QP值,(c)這些塊的不同QP值中的平均QP值,(d)這些塊的不同QP值中的加權(quán)平均QP值,(e)這些塊的不同QP值中的最大QP值,或(f)從這些塊的不同QP值中的一者或多者中推導(dǎo)出的某一其他QP值。具體地,作為該條件的一部分,編碼器可檢查當(dāng)前塊的QP值大于或等于候選塊的QP值。如果當(dāng)前塊的QP值大于或等于候選塊的QP值,則當(dāng)前塊的預(yù)期誤差與候選塊的預(yù)期誤差相比相當(dāng)或更差。替換地,代替檢查當(dāng)前塊和候選塊的QP值,編碼器相對于候選塊來評估當(dāng)前塊的殘留值(例如,檢查殘留值中的能量、在頻率變換后對殘留值的非零頻率系數(shù)進(jìn)行計數(shù))。
[0169] 當(dāng)編碼器將當(dāng)前塊的塊尺寸與閾值塊尺寸進(jìn)行比較時,閾值塊尺寸可被設(shè)置成處于或大于編碼器對跳躍判定有信心的塊尺寸。一般來說,編碼器對針對較大塊的跳躍判定較有信心,而對針對較小塊的跳躍判定較不有信心。例如,閾值塊尺寸可以為64×64、32×32或某個其它塊尺寸。
[0170] 基于條件是否被滿足,編碼器確定(1420)是否為當(dāng)前塊跳過一個或多個編碼階段。隨后,基于該確定的結(jié)果(1420),編碼器為當(dāng)前塊選擇性地跳過(1430)(諸)編碼階段。
[0171] 例如,針對當(dāng)前塊的基于散列的塊匹配被執(zhí)行用于運動估計(且散列值是從輸入樣本值計算出的),并且編碼器選擇性地跳過針對當(dāng)前塊的部分精密運動估計。在一些示例實現(xiàn)中,編碼器執(zhí)行基于散列的塊匹配以在參考圖片中的整數(shù)樣本偏移處尋找到匹配的候選塊。如果基于散列的塊匹配過程在參考圖片中尋找到匹配,則編碼器跳過部分樣本運動估計(例如,在參考圖片中的1/2樣本偏移處和/或1/4樣本偏移處)。這節(jié)省了計算資源,而這些計算資源原本將被用來進(jìn)行對部分樣本值的插值和部分精密運動估計期間的逐樣本的值比較。作為該條件的一部分,編碼器還可檢查當(dāng)前塊和候選塊的QP值、當(dāng)前塊的塊尺寸和/或另一因素。
[0172] 作為另一示例,針對當(dāng)前塊的基于散列的塊匹配被執(zhí)行用于運動估計(且散列值是從輸入樣本值計算出的),并且編碼器選擇性地跳過對針對當(dāng)前塊的編碼模式和編碼選項的評估(例如,在基于散列的塊匹配后的對編碼模式和編碼選項的所有評估)。在一些示例實現(xiàn)中,如果編碼器使用基于散列的塊匹配在參考圖片中尋找到了匹配的候選塊,則編碼器可終止對當(dāng)前塊的編碼,這顯著地降低了編碼時間。對于跳過條件,編碼器還可(例如,通過將候選塊的QP值、平均QP值、加權(quán)平均QP值、最小QP值等與將被用于當(dāng)前塊的QP值進(jìn)行比較)檢查參考圖片中的候選塊的重構(gòu)質(zhì)量不差于當(dāng)前塊的預(yù)期重構(gòu)質(zhì)量,并檢查當(dāng)前塊的塊尺寸大于還是等于閾值塊尺寸(例如,64x64)。替換地,在該條件被滿足時,編碼器跳過一些而非全部對編碼模式和編碼選項的評估。
[0173] 作為另一示例,針對當(dāng)前塊的基于散列的塊匹配被執(zhí)行用于塊矢量估計(且散列值是從輸入樣本值計算出的),并且編碼器選擇性地跳過對針對當(dāng)前塊的圖片內(nèi)編碼模式和編碼選項的評估(例如,在基于散列的塊匹配后的對圖片內(nèi)編碼模式和編碼選項的所有評估)。在一些示例實現(xiàn)中,當(dāng)通過(用于運動估計的)基于散列的塊匹配沒有在參考圖片中尋找到匹配時,如果編碼器使用(用于BV估計的)基于散列的塊匹配在當(dāng)前圖片中尋找到匹配的候選塊,則編碼器可終止對當(dāng)前塊的編碼,這顯著地降低了編碼時間。作為該條件的一部分,編碼器還可檢查當(dāng)前塊和候選塊的QP值、當(dāng)前塊的塊尺寸和/或另一因素。
[0174] 圖15示出用于取決于基于散列的塊匹配的結(jié)果選擇性地跳過一個或多個編碼階段的更詳細(xì)的示例技術(shù)(1500)。圖像編碼器或視頻編碼器(諸如參考圖3或圖4a-4b描述的編碼器)可執(zhí)行技術(shù)(1500)。
[0175] 在編碼期間,編碼器針對當(dāng)前圖片的當(dāng)前塊選擇性地跳過一個或多個編碼階段。編碼器為當(dāng)前塊執(zhí)行(1510)基于散列的塊匹配。例如,編碼器使用以上描述的數(shù)據(jù)結(jié)構(gòu)之一執(zhí)行基于散列的塊匹配,其作為運動估計或塊矢量估計的一部分。基于散列的塊匹配可包括一些逐樣本的塊匹配操作,以在當(dāng)前塊與候選塊的散列值匹配后確認(rèn)當(dāng)前塊與候選塊匹配。
[0176] 編碼器檢查(1520)基于散列的塊匹配是否產(chǎn)生對當(dāng)前塊的匹配。如果基于散列的塊匹配產(chǎn)生匹配,則編碼器確定(1530)當(dāng)前塊和候選塊的QP值,隨后確定(1540)候選塊是否通過質(zhì)量檢查(例如,當(dāng)前塊的預(yù)期質(zhì)量不比候選塊的重構(gòu)質(zhì)量更好)。如果是這樣的,則編碼器確定(1550)當(dāng)前塊是否通過塊尺寸檢查(例如,當(dāng)前塊的塊尺寸大于或等于閾值塊尺寸)。如果所有三個檢查(1520、1540、1550)都通過了,則編碼器跳過(諸)編碼階段。否則,如果這三個檢查(1520、1540、1550)中的任何一者失敗了,則編碼器執(zhí)行(1560)被選擇性地跳過的(諸)編碼階段。
[0177] VII.選擇性地跳過各圖片內(nèi)預(yù)測模式。
[0178] 本章節(jié)呈現(xiàn)了標(biāo)識某些圖片內(nèi)預(yù)測模式何時應(yīng)當(dāng)或不應(yīng)當(dāng)在編碼期間被評估的各種方式,這些方式可加速編碼。具體地,某些圖片內(nèi)預(yù)測模式適用于屏幕捕捉內(nèi)容或其他人工創(chuàng)建的視頻。通過提供檢測人工創(chuàng)建的視頻的高概率方式,編碼器可在這樣的圖片內(nèi)預(yù)測模式何時可能是高效(例如,針對屏幕捕捉視頻或其他人工創(chuàng)建的視頻時)的方面評估這樣的圖片內(nèi)預(yù)測模式,并在它們可能是低效的時(例如,針對自然視頻時)跳過那些模式。
[0179] 圖16示出了自然視頻和屏幕捕捉視頻的典型塊(其描繪了相同的通用模式)的特征。自然視頻的塊(1610)包括逐漸改變的樣本值和不規(guī)則的線。相反,屏幕捕捉視頻的塊(1620)包括統(tǒng)一樣本值的更清晰的線和模式。同樣,不同色彩值的數(shù)目在自然視頻的塊(1610)和屏幕捕捉視頻的塊(1620)之間改變。屏幕捕捉視頻的塊(1620)包括三個色彩,而自然視頻的塊(1610)包括更多的不同色彩。
[0180] 圖17示出用于取決于對視頻單元中的不同色彩的數(shù)目的測量選擇性地跳過對一個或多個圖片內(nèi)預(yù)測模式的評估的通用技術(shù)(1700)。圖像編碼器或視頻編碼器(諸如參考圖3或圖4a-4b描述的編碼器)可執(zhí)行技術(shù)(1700)。
[0181] 編碼器對圖像或視頻進(jìn)行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼該將經(jīng)編碼的數(shù)據(jù)器作為比特流的一部分輸出。在編碼期間,編碼器測量(1710)圖像或視頻的單元(例如,塊、片、圖片)中不同色彩的數(shù)目。例如,編碼器對單元中的各樣本值之中的不同色彩進(jìn)行計數(shù)?;蛘撸幋a器在將單元中的樣本值聚類成更少的色彩(例如,對這些樣本值進(jìn)行量化,使得相似的樣本值變?yōu)橄嗤臉颖局?后,對這些樣本值之中不同色彩進(jìn)行計數(shù)?;蛘撸幋a器用某一其他方式測量單元中的不同色彩的數(shù)目。
[0182] 編碼器測量不同色彩的數(shù)目的方式取決于所使用的色彩空間。如果色彩空間例如為YUV(例如,YCbCr,YCoCg),則編碼器可對視頻單元中的不同Y值進(jìn)行計數(shù)?;蛘?,編碼器可對不同的YUV三元組(即,各位置處的像素的Y、U和V樣本值的不同組合)進(jìn)行計數(shù)。如果色彩空間為RGB(或GBR或BGR),則編碼器可對一個色彩分量或多個色彩分量中的樣本值進(jìn)行計數(shù)。或者,編碼器可對不同的三元組(即,各位置處的像素的R、G和B樣本值的不同組合)進(jìn)行計數(shù)。
[0183] 至少部分地基于該測量的結(jié)果,編碼器為該單元確定(1720)是否跳過一個或多個圖片內(nèi)預(yù)測模式。例如,圖片內(nèi)預(yù)測模式包括幀內(nèi)BC預(yù)測模式和/或圖片內(nèi)字典模式。為了確定是否跳過(諸)圖片內(nèi)預(yù)測模式,編碼器可將該測量的結(jié)果與閾值計數(shù)進(jìn)行比較。
[0184] 閾值計數(shù)的值取決于實現(xiàn),并且可例如為5、10、20或50。閾值計數(shù)可對所有的單元尺寸相同(例如,不理會塊尺寸)。或者,該閾值計數(shù)可針對不同的單元尺寸(例如,不同的塊尺寸)而不同。該閾值可以是預(yù)定義和靜態(tài)的,或者該閾值可以是可調(diào)整的(可調(diào)諧的)。例如,在對圖像或視頻進(jìn)行編碼之前,閾值可由用戶或應(yīng)用來調(diào)整以對編碼速度對照編碼效率的降低進(jìn)行折衷。一般來說,降低閾值通過跳過針對更多塊的(諸)圖片內(nèi)模式來增加編碼速度,但當(dāng)使用(諸)跳過的模式會很高效時,這可導(dǎo)致編碼效率的下降。
[0185] 如果沒有跳過(諸)圖片內(nèi)預(yù)測模式,則編碼器為該單元評估(1730)(諸)圖片內(nèi)預(yù)測模式。編碼器還為該單元評估(1740)一個或多個其他預(yù)測模式。如果跳過(諸)圖片內(nèi)預(yù)測模式,則編碼器僅為該單元評估(1740)(諸)其他預(yù)測模式。
[0186] 在一些示例實現(xiàn)中,編碼器選擇性地跳過針對塊的幀內(nèi)BC預(yù)測模式的評估,這取決于該塊中不同色彩的數(shù)目。幀內(nèi)BC預(yù)測主要是針對屏幕捕捉內(nèi)容中的塊設(shè)計的,并通常不適合用于自然視頻內(nèi)容。通常,屏幕捕捉內(nèi)容的某一塊中的不同色彩的數(shù)目不大。因此,如果塊中的不同色彩的數(shù)目大于閾值計數(shù),則編碼器跳過針對該塊的幀內(nèi)BC預(yù)測模式的評估,這趨于改善編碼速度。
[0187] 在一些示例實現(xiàn)中,編碼器選擇性地跳過針對塊的字典模式的評估,這取決于該塊中不同色彩的數(shù)目。字典模式通常適合用于屏幕捕捉內(nèi)容中的塊,但幾乎不適合用于自然視頻內(nèi)容。因此,如果塊中的不同色彩的數(shù)目大于閾值計數(shù),則編碼器跳過針對該塊的字典模式的評估,這趨于改善編碼速度。
[0188] VIII.針對用空間圖片內(nèi)預(yù)測模式的塊的編碼器側(cè)判定。
[0189] 本章節(jié)呈現(xiàn)執(zhí)行針對使用空間圖片內(nèi)預(yù)測被編碼的塊的編碼判定的各種方式。這樣的塊在自然視頻和人工創(chuàng)建的視頻中是常見的。
[0190] 圖18示出針對根據(jù)H.265/HEVC標(biāo)準(zhǔn)的塊的空間圖片內(nèi)預(yù)測的示例方向(1800)。這些方向包括33個有度的方向和兩個空方向(DC預(yù)測模式和平面預(yù)測模式)。對于一些類型的塊,所有35個方向都是可用的。對于其他類型的塊,這些方向的子集可用。對于其他標(biāo)準(zhǔn)或格式,編碼器可使用不同的空間預(yù)測方向。
[0191] 考慮到不同選項的數(shù)目,為當(dāng)前塊評估不同的空間預(yù)測方向(并為該塊作出其他編碼判定)可能非常耗時。在一個先前方法中,H.265/HEVC編碼器執(zhí)行三階段過程來作出這些判定。首先,編碼器得到最好的n個空間預(yù)測方向,其中n為2、3或某個其他計數(shù),這取決于實現(xiàn)。編碼器根據(jù)絕對變換差之和(“SATD”)對空間預(yù)測方向進(jìn)行排名,絕對變換差之和是基于對在空間預(yù)測方向被使用時得到的殘留值的失真的測量。編碼器可檢查最可能模式(“MPM”)是否被表示在最佳的n個空間預(yù)測方向中。如果不是,則編碼器可增加n,并將任何缺失的MPM添加到最佳的n個空間預(yù)測方向的集合中。
[0192] 接著,對于n個最佳預(yù)測方向,當(dāng)(針對殘留值的)變換尺寸是最大的變換尺寸時,編碼器根據(jù)速率失真優(yōu)化(“RDO”)來選擇最佳的預(yù)測方向。在該階段,編碼器使用速率失真優(yōu)化的量化(“RDOQ”),而這是非常耗時的。對于RDOQ,編碼器為每一系數(shù)設(shè)置最優(yōu)量化級別,從而基于速率失真效率適應(yīng)性地調(diào)整系數(shù)值。例如,對于給定預(yù)測方向,編碼器確定殘留值,以最大的變換尺寸執(zhí)行頻率變換,通過使用RDOQ來量化系數(shù),對經(jīng)量化的系數(shù)進(jìn)行熵編碼,重構(gòu)殘留值,并測量失真成本和速率成本。編碼器對其他n個預(yù)測方向中的每一個重復(fù)那個過程。
[0193] 最后,對于所選的預(yù)測方向,編碼器在確定殘留值的變換尺寸時通過RDOQ執(zhí)行RDO。殘留值被組織成殘留四叉樹(“RQT”)。圖19示出針對RQT的示例組織(1901、…、1908),這些示例組織在殘留值的塊如何被組織以用于頻率變換方面不同。許多針對RQT的其他可能的組織沒有被示出。例如,對于RQT的組織,編碼器以所選的預(yù)測方向?qū)⒖臻g預(yù)測應(yīng)用于變換塊,計算殘留量值,對變換塊的殘留值執(zhí)行頻率變換,使用RDOQ來量化系數(shù),對經(jīng)量化的變換系數(shù)進(jìn)行熵編碼,以及(用逆量化和逆變換)重構(gòu)變換塊的值。編碼器對當(dāng)前塊的任何其他變換塊重復(fù)那個過程,隨后測量失真成本和速率成本。編碼器對其他經(jīng)評估的RQT選項中的每一者重復(fù)那個過程,并選擇最佳的RQT選項。
[0194] 圖20示出了用于為用空間圖片內(nèi)預(yù)測編碼的塊作出編碼判決的示例技術(shù)(2000)。在許多場景中,技術(shù)(2000)與先前的方法相比顯著地要快,并且仍為使用空間圖片內(nèi)預(yù)測編碼的塊提供良好的編碼效率。圖像編碼器或視頻編碼器(諸如參考圖3或圖4a-4b描述的編碼器)可執(zhí)行技術(shù)(2000)。
[0195] 編碼器對圖像或視頻進(jìn)行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼器在比特流的一部分中輸出該經(jīng)編碼的數(shù)據(jù)。在編碼期間,對于當(dāng)前圖片的當(dāng)前塊,在第一階段中,編碼器為當(dāng)前塊標(biāo)識(2010)空間圖片內(nèi)預(yù)測的候選方向集合。例如,對于針對當(dāng)前塊的空間圖片內(nèi)預(yù)測的多個可能方向中的每一者,編碼器計算該可能方向的失真度量(諸如SAD或SATD)的值。隨后,編碼器根據(jù)多個可能方向的失真度量的值來選擇候選方向集合。編碼器可檢查MPM是否被表示在候選方向集合中。如果為否,則編碼器可將任何缺失的MPM添加到候選方向集合中。
[0196] 在第二階段,編碼器選擇(2020)候選方向集合中的一個候選方向。具體地,對于候選方向集合中的每一候選方向,編碼器使用那個候選方向來執(zhí)行針對當(dāng)前塊的編碼的速率失真分析,而無需RDOQ。通過忽略RDOQ,該第二階段比先前方法中的第二階段要快得多,這可顯著地降低總編碼時間。例如,對于候選方向集合中的每一候選方向,編碼器(a)在當(dāng)前塊是使用該候選方向來編碼的時,計算當(dāng)前塊的殘留值,(b)使用最大的變化尺寸來對這些殘留值進(jìn)行編碼,而無需RDOQ,(c)重構(gòu)這些殘留值,以及(d)測量速率成本和失真成本。編碼器隨后選擇具有最低成本的候選方向。
[0197] 在第三階段,在當(dāng)前塊是使用所選的候選方進(jìn)行編碼的時,編碼器確定(2030)如何對該塊的RQT進(jìn)行編碼。在該階段,編碼器用RDOQ執(zhí)行速率失真分析以得到對RQT進(jìn)行編碼的不同方式。例如,對于RQT的變換尺寸的多個組合中的每一者,編碼器使用該變換尺寸的組合以及RDOQ對RQT的殘留值進(jìn)行編碼。編碼器隨后選擇具有最低成本的RQT組合。
[0198] IX.為幀內(nèi)BC預(yù)測的塊跳過變換模式。
[0199] 本章節(jié)呈現(xiàn)了標(biāo)識變換模式何時應(yīng)當(dāng)或不應(yīng)當(dāng)在編碼期間被評估的各種方式,這些方式可加速編碼。諸如變換跳躍模式之類的某些編碼選項適用于屏幕捕捉內(nèi)容或其他人工創(chuàng)建的視頻。當(dāng)這樣的編碼選項可能是高效的時(例如,對于屏幕捕捉視頻或其他人工創(chuàng)建的視頻),編碼器可支持這些編碼選項,并禁用其他可能是低效的、沖突的編碼選項。與變換跳躍模式類似,幀內(nèi)BC預(yù)測模式適用于屏幕捕捉內(nèi)容或其他人工創(chuàng)建的視頻。
[0200] 圖21示出用于為用幀內(nèi)BC預(yù)測編碼的塊選擇性地跳過變換模式的通用技術(shù)(2100)。圖像編碼器或視頻編碼器(諸如參考圖3或圖4a-4b描述的編碼器)可執(zhí)行技術(shù)(2100)。
[0201] 編碼器對圖像或視頻進(jìn)行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼器在比特流的一部分中輸出該經(jīng)編碼的數(shù)據(jù)。在編碼期間,編碼器檢查(2110)當(dāng)前圖片的當(dāng)前塊是否是使用幀內(nèi)BC預(yù)測被編碼的。取決于當(dāng)前塊是否是使用幀內(nèi)BC預(yù)測來編碼的,編碼器為當(dāng)前塊啟用或禁用變換模式。例如,變換模式包括頻率變換、量化和熵編碼,然而變換跳躍模式缺少頻率變換但包括量化和熵編碼。
[0202] 編碼器隨后對當(dāng)前塊進(jìn)行編碼。如果當(dāng)前塊不是使用幀內(nèi)BC預(yù)測來編碼的,則編碼器為當(dāng)前塊評估(2120)變換模式(變換塊被啟用),并且還為當(dāng)前塊評估(2130)變換跳躍模式。在另一方面,如果當(dāng)前塊是使用幀內(nèi)BC預(yù)測來編碼的,則編碼器跳過對變換模式的評估,但仍為當(dāng)前塊評估(2130)變換跳躍模式。替換地,如果當(dāng)前塊是使用幀內(nèi)BC預(yù)測來編碼的,則編碼器自動地選擇變換跳躍模式,而無需評估變換跳躍模式。
[0203] 本章節(jié)描述了為幀內(nèi)BC預(yù)測的塊避免變換模式的評估的編碼器側(cè)判決。編碼器側(cè)判決不影響比特流句法(例如,變換跳躍標(biāo)志的信號化)。替換地,比特流句法可被更改(例如,在塊級)以避免信號化幀內(nèi)BC預(yù)測的塊的變換跳躍標(biāo)志。在該變型中,幀內(nèi)BC預(yù)測的塊被假設(shè)為使用變換跳躍模式。編碼器可信號化非幀內(nèi)BC預(yù)測的塊的變換跳躍標(biāo)志,但不信號化幀內(nèi)BC預(yù)測的塊的變換跳躍標(biāo)志。解碼器解析非幀內(nèi)BC預(yù)測的塊的變換跳躍標(biāo)志,但不解析幀內(nèi)BC預(yù)測的塊的變換跳躍標(biāo)志,幀內(nèi)BC預(yù)測的塊被假設(shè)為使用變換跳躍模式。
[0204] 鑒于可應(yīng)用所公開的本發(fā)明的原理的許多可能的實施例,應(yīng)當(dāng)認(rèn)識到,所示實施例僅是本發(fā)明的優(yōu)選示例,并且不應(yīng)認(rèn)為是限制本發(fā)明的范圍。相反,本發(fā)明的范圍由后續(xù)的權(quán)利要求來界定。我們要求作為我們的發(fā)明保護(hù)落入這些權(quán)利要求范圍和精神內(nèi)的所有內(nèi)容。
高效檢索全球?qū)@?/div>

專利匯是專利免費檢索,專利查詢,專利分析-國家發(fā)明專利查詢檢索分析平臺,是提供專利分析,專利查詢,專利檢索等數(shù)據(jù)服務(wù)功能的知識產(chǎn)權(quán)數(shù)據(jù)服務(wù)商。

我們的產(chǎn)品包含105個國家的1.26億組數(shù)據(jù),免費查、免費專利分析。

申請試用

分析報告

專利匯分析報告產(chǎn)品可以對行業(yè)情報數(shù)據(jù)進(jìn)行梳理分析,涉及維度包括行業(yè)專利基本狀況分析、地域分析、技術(shù)分析、發(fā)明人分析、申請人分析、專利權(quán)人分析、失效分析、核心專利分析、法律分析、研發(fā)重點分析、企業(yè)專利處境分析、技術(shù)處境分析、專利壽命分析、企業(yè)定位分析、引證分析等超過60個分析角度,系統(tǒng)通過AI智能系統(tǒng)對圖表進(jìn)行解讀,只需1分鐘,一鍵生成行業(yè)專利分析報告。

申請試用

QQ群二維碼
意見反饋