選擇運動向量精度的制作方法
【專利摘要】提出了在視頻編碼期間選擇運動向量(“MV”)精度的方法。這些方法可以便于在率失真性能和/或計算效率方面有效的壓縮。例如,視頻編碼器從多個MV精度中確定針對視頻的單位的MV精度,其包括一個或多個分?jǐn)?shù)樣本MV精度和整數(shù)樣本MV精度。視頻編碼器可以識別具有分?jǐn)?shù)樣本MV精度的一組MV值,然后至少部分地基于分?jǐn)?shù)部分為零的MV值(該組內(nèi))的流行,選擇針對單位的MV精度?;蛘撸曨l編碼器可以執(zhí)行率失真分析,其中率失真分析朝向整數(shù)樣本MV精度偏置?;蛘?,視頻編碼器可以收集關(guān)于視頻的信息,并至少部分地基于收集到的信息選擇針對所述單位的MV精度。
【專利說明】選擇運動向量精度
【背景技術(shù)】
[0001] 工程師使用壓縮(也稱為源編碼或源譯碼)來減少數(shù)字視頻的比特率。壓縮通過將 信息轉(zhuǎn)換為較低比特率形式而降低了存儲和傳輸視頻信息的成本。解壓縮(也稱作解碼)根 據(jù)壓縮形式重構(gòu)原始信息的版本。"編碼解碼器"是編碼器/解碼器系統(tǒng)。
[0002] 在過去的二十年里,采用了各種視頻編碼解碼器標(biāo)準(zhǔn),包括ITU-T H.261、H.262 (MPEG-2或IS0/IEC 13818-2)、Η· 263和H.264(MPEG-4AVC或IS0/IEC 14496-10)標(biāo)準(zhǔn)、MPEG-1(IS0/IEC 11172-2)和MPEG-4視覺(IS0/IEC 14496-2)標(biāo)準(zhǔn)、以及SMPTE 421M(VC-1)標(biāo)準(zhǔn)。 最近,批準(zhǔn)了HEVC標(biāo)準(zhǔn)(ITU-T H.265或IS0/IEC 23008-2)。目前正在開發(fā)HEVC標(biāo)準(zhǔn)的擴展 (例如,用于可擴展視頻編碼/解碼,用于對具有較高保真度的視頻在樣本位深度或色度采 樣率方面進行編碼/解碼,或用于多視圖編碼/解碼)。視頻編碼解碼器標(biāo)準(zhǔn)通常定義編碼視 頻比特流的語法的選項,詳述在編碼和解碼中使用特定特征時在比特流中的參數(shù)。在多種 情況下,視頻編碼解碼器標(biāo)準(zhǔn)還提供關(guān)于解碼器應(yīng)該執(zhí)行以實現(xiàn)解碼的一致性結(jié)果的解碼 操作的細(xì)節(jié)。除了編碼解碼器標(biāo)準(zhǔn)外,各種屬性編碼解碼器格式定義了用于編碼視頻比特 流和對應(yīng)的解碼操作的語法的其他選項。
[0003]通常,視頻壓縮技術(shù)包括"圖片內(nèi)"壓縮和"圖片間"壓縮。圖片內(nèi)壓縮技術(shù)壓縮個 體圖片,而圖片間壓縮技術(shù)參考先前的和/或后續(xù)的一張或多張圖片(通常稱作參考圖片或 錨定圖片)來壓縮圖片。
[0004] 圖片間壓縮技術(shù)通常使用運動估計和運動補償,通過利用視頻序列中的時間冗余 來減少比特率。運動估計是用于估計圖片之間的運動的過程。在一種常見技術(shù)中,使用運動 估計的編碼器試圖將當(dāng)前圖片中的當(dāng)前樣本值的塊與在另一圖片(參考圖片)中搜索區(qū)域 內(nèi)的相同大小的候選塊進行匹配。當(dāng)編碼器在參考圖片的搜索區(qū)域中發(fā)現(xiàn)精確的或"足夠 靠近"的匹配時,編碼器將在當(dāng)前和候選塊之間位置的變化參數(shù)化為運動數(shù)據(jù)(例如,運動 向量("MV"))IV通常是二維值,其具有表示左右空間位移的水平MV分量和表示上下空間位 移的垂直MV分量。通常,運動補償是根據(jù)參考圖片利用運動數(shù)據(jù)重構(gòu)圖片的過程。
[0005] MV可以表示當(dāng)前塊在參考圖片的共同定位的位置處開始的整數(shù)數(shù)量的樣本網(wǎng)格 位置方面的空間位移。例如,對于當(dāng)前圖片中位置(32,16)處的當(dāng)前塊,MV(-3,1)表示在參 考圖片中的位置(29,17)?;蛘撸琈V可以表示當(dāng)前塊在參考圖片的共同定位的位置處起的分 數(shù)數(shù)量(f ract i ona 1 number)的樣本網(wǎng)格位置方面的空間位移。例如,對于在當(dāng)前圖片的位 置(32,16)處的當(dāng)前塊,MV(-3.5,1.25)表示在參考圖片中的位置(28.5,17.25)。為了確定 在參考圖片中分?jǐn)?shù)偏移處的樣本值,編碼器通常在整數(shù)樣本位置處的樣本值之間進行插 值。這種插值可能是計算密集的。在運動補償期間,編碼器還執(zhí)行如在參考圖片中的分?jǐn)?shù)偏 移處計算樣本值所需的插值。
[0006] 不同視頻編碼解碼器標(biāo)準(zhǔn)和格式已經(jīng)使用了具有不同MV精度的MV。對于整數(shù)樣本 MV精度,MV分量表示空間位移的整數(shù)數(shù)量的樣本網(wǎng)格位置。對于分?jǐn)?shù)樣本MV精度,例如1 /2 樣本MV精度或1/4樣本MV精度,MV分量可以表示空間位移的整數(shù)數(shù)量的樣本網(wǎng)格位置或分 數(shù)數(shù)量的樣本網(wǎng)格位置。例如,如果MV精度是1/4樣本MV精度,則MV分量可以表示0樣本、 0.25樣本、0.5樣本、0.75樣本、1.0樣本、1.25樣本等的空間位移。一些視頻編碼解碼器標(biāo)準(zhǔn) 和格式支持在編碼期間切換MV精度。然而,在特定編碼場景中,不能有效進行關(guān)于使用哪個 MV精度的編碼器側(cè)決策。
【發(fā)明內(nèi)容】
[0007] 在
【發(fā)明內(nèi)容】
部分,詳細(xì)描述表示用于選擇運動向量("MV")精度的在編碼器側(cè)操作 中的創(chuàng)新。例如,當(dāng)視頻編碼器編碼視頻時,視頻編碼器確定針對視頻的單位的MV精度。
[0008] 根據(jù)本文描述的創(chuàng)新的一個方面,當(dāng)確定針對單位的MV精度時,視頻編碼器可以 識別具有分?jǐn)?shù)樣本MV精度的一組MV值。視頻編碼器可以至少部分地基于在所述一組MV值中 分?jǐn)?shù)部分為零的MV值的流行,而選擇針對所述單位的MV精度。
[0009] 根據(jù)本文描述的創(chuàng)新的另一方面,當(dāng)為單位確定MV精度時,視頻編碼器可以執(zhí)行 率失真分析以在多個MV精度之間進行決定,其包括一個或多個分?jǐn)?shù)樣本MV精度和整數(shù)樣本 MV精度。通過(a)縮放失真成本,(b)向失真成本添加懲罰,(c)縮放比特率成本,(d)向比特 率成本添加懲罰,和/或(e)調(diào)整拉格朗日乘數(shù),率失真分析朝向整數(shù)樣本MV精度偏置。
[0010] 根據(jù)本文描述的創(chuàng)新的另一方面,當(dāng)確定針對單位的MV精度時,視頻編碼器可以 收集關(guān)于視頻的信息,并至少部分地基于所收集到的信息從多個MV精度中選擇針對單位的 MV精度。多個MV精度包括一個或多個分?jǐn)?shù)樣本MV精度和整數(shù)樣本MV精度。
[0011]用于選擇MV精度的編碼器側(cè)的選項的創(chuàng)新可以實現(xiàn)為方法的一部分、適于執(zhí)行方 法的計算設(shè)備的一部分,或者存儲用于使得計算設(shè)備執(zhí)行方法的計算機可執(zhí)行指令的有形 計算機可讀介質(zhì)的一部分??梢越M合或分開使用各種創(chuàng)新。
[0012]根據(jù)以下結(jié)合附圖進行的詳細(xì)描述,本發(fā)明的前述和其它目的、特征和優(yōu)點將變 得更清晰。
【附圖說明】
[0013]圖1是可以實現(xiàn)一些所述實施例的示例性計算系統(tǒng)的圖。
[0014] 圖2a和2b是可以實現(xiàn)一些所述實施例的示例性網(wǎng)絡(luò)環(huán)境的圖。
[0015] 圖3是可以結(jié)合其實現(xiàn)一些所述實施例的示例性編碼器系統(tǒng)的圖。
[0016] 圖4a和4b是示出可以結(jié)合其實現(xiàn)一些所述實施例的示例性視頻編碼器的圖。
[0017]圖5是示出具有可以提供用于屏幕捕捉的輸入的內(nèi)容的計算機桌面環(huán)境的圖。
[0018]圖6是示出具有自然視頻內(nèi)容和人工視頻內(nèi)容的混合內(nèi)容視頻的圖。
[0019] 圖7a和7b是分別示出帶有具有整數(shù)樣本空間位移和分?jǐn)?shù)樣本空間位移的MV值的 運動補償?shù)膱D。
[0020] 圖8是示出在編碼期間用于適應(yīng)MV精度的廣義技術(shù)的流程圖。
[0021] 圖9是示出在編碼期間利用低復(fù)雜度方法用于適應(yīng)MV精度的示例性技術(shù)的流程 圖。
[0022] 圖10是示出根據(jù)低復(fù)雜度方法的一些變型的圖片的不同區(qū)域的圖。
【具體實施方式】
[0023] 詳細(xì)描述呈現(xiàn)了在編碼期間選擇運動向量("MV")精度的創(chuàng)新。這些方法可以便于 壓縮,其在率失真性能和/或計算效率方面是有效的。例如,視頻編碼器從多個MV精度確定 針對視頻的單位的MV精度,所述多個MV精度包括一個或多個分?jǐn)?shù)樣本MV精度和整數(shù)樣本MV 精度。視頻編碼器可以識別具有分?jǐn)?shù)樣本MV精度的一組MV值,然后至少部分地基于具有零 的分?jǐn)?shù)部分的MV值(組內(nèi))的流行,選擇針對單位的MV精度?;蛘?,視頻編碼解碼器可以執(zhí)行 率失真分析,其中率失真分析朝向整數(shù)樣本MV精度偏置?;蛘?,視頻編碼解碼器可以收集關(guān) 于視頻的信息,并至少部分地基于所收集的信息選擇針對單位的MV精度。或者,視頻編碼解 碼器可以以一些其它方式確定針對視頻的單位的MV精度。
[0024] 雖然本文描述的操作被適當(dāng)?shù)孛枋鰹橛梢曨l編碼器執(zhí)行,但是在許多情況下,所 述操作可以由其它類型的媒體處理工具執(zhí)行。
[0025] 結(jié)合HEVC標(biāo)準(zhǔn)專用的語法元素和操作示出了本文所描述的一些創(chuàng)新。本文描述的 創(chuàng)新還可以被實現(xiàn)用于其它標(biāo)準(zhǔn)或格式。
[0026] 更一般地,對本文描述的例子的各種變型都是可以的。例如,可以通過改變所描述 的方法動作的順序、通過分離、重復(fù)或省略某些方法動作等來改變一些本文描述的方法???以組合或分開地使用所公開技術(shù)的各個方面。不同實施例使用所描述創(chuàng)新中的一個或多 個。本文所描述的一些創(chuàng)新解決了背景中提到的一個或多個問題。通常,給定的技術(shù)/工具 并不能解決所有這種問題。
[0027] I.示例性計算系統(tǒng)
[0028]圖1示出了可以實現(xiàn)所描述的若干創(chuàng)新的適當(dāng)計算系統(tǒng)100的廣義例子。計算系統(tǒng) 1〇〇并不打算暗示對使用或功能的范圍的任何限制,因為創(chuàng)新可以實現(xiàn)于各種計算系統(tǒng)中, 包括適應(yīng)視頻編碼的專用計算系統(tǒng)。
[0029] 參考圖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、EEPR0M、閃存等)或者 兩者的某組合。存儲器(120、125)存儲實現(xiàn)在編碼期間用于選擇MV精度的一個或多個創(chuàng)新 的軟件(180),該軟件是適于由處理單元執(zhí)行的計算機可執(zhí)行指令的形式。
[0030] 計算系統(tǒng)可以具有額外的特征。例如,計算系統(tǒng)(100)包括存儲設(shè)備(140)、一個或 多個輸入設(shè)備(150)、一個或多個輸出設(shè)備(160)、以及一個或多個通信連接(170)。例如總 線、控制器或網(wǎng)絡(luò)的互連機構(gòu)(未示出)使得計算系統(tǒng)(100)的部件互連。通常,操作系統(tǒng)軟 件(未示出)提供在計算系統(tǒng)(100)內(nèi)執(zhí)行的其它軟件的操作環(huán)境,并協(xié)調(diào)計算系統(tǒng)(100)的 部件的活動。
[0031] 有形存儲設(shè)備(140)可以是可移除的或不可移除的,并包括磁盤、磁帶或卡帶、⑶-R0M、DVD或能夠用于存儲信息并在計算系統(tǒng)(100)內(nèi)被訪問的任意其它介質(zhì)。存儲設(shè)備 (140)存儲實現(xiàn)在編碼期間選擇MV精度的一個或多個創(chuàng)新的軟件(180)的指令。
[0032] 輸入設(shè)備(150)可以是觸摸輸入設(shè)備,例如,鍵盤、鼠標(biāo)、筆或軌跡球、語音輸入設(shè) 備、掃描設(shè)備、或向計算系統(tǒng)(100)提供輸入的其它設(shè)備。對于視頻,輸入設(shè)備(150)可以是 攝像機、視頻卡、TV調(diào)諧卡、屏幕捕捉模塊、或接受模擬或數(shù)字形式的視頻輸入的類似設(shè)備、 或?qū)⒁曨l輸入讀入到計算系統(tǒng)(100)中的⑶-ROM或⑶-RW。輸出設(shè)備(160)可以是顯示器、打 印機、揚聲器、CD刻錄機、或從計算系統(tǒng)(100)提供輸出的另一設(shè)備。
[0033]通信連接(170)使得能夠在通信介質(zhì)上與另一計算實體進行通信。通信介質(zhì)傳達(dá) 信息,例如,計算機可執(zhí)行指令、音頻或視頻輸入或輸出、或調(diào)制數(shù)據(jù)信號中的其它數(shù)據(jù)。調(diào) 制數(shù)據(jù)信號是具有一個或多個其特性集或以對信號中的信息進行編碼的方式而改變的信 號。通過示例而非限制的方式,通信介質(zhì)可以使用電、光、RF或其它載體。
[0034] 可以在計算機可讀介質(zhì)的一般上下文中描述創(chuàng)新。計算機可讀介質(zhì)是能夠在計算 環(huán)境中被訪問的任意可用的有形介質(zhì)。通過示例而非限制的方式,通過計算系統(tǒng)(100),計 算機可讀介質(zhì)包括存儲器(120、125)、存儲設(shè)備(140)和上述任意的組合。
[0035] 可以在計算機可執(zhí)行指令的一般上下文中描述創(chuàng)新,例如,包含于程序模塊中的 指令,其在目標(biāo)真實或虛擬處理器上在計算系統(tǒng)中執(zhí)行。一般而言,程序模塊包括例程、程 序、庫、對象、類別、部件、數(shù)據(jù)結(jié)構(gòu)等,其執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。程序模塊 的功能可以按照各個實施例所期望地在程序模塊之間組合或分離。可以在局部或分布式計 算系統(tǒng)中執(zhí)行用于程序模塊的計算機可執(zhí)行指令。
[0036] 術(shù)語"系統(tǒng)"和"設(shè)備"在本文中可交換使用。除非上下文中另有明確表示,否則任 一術(shù)語都不暗示對計算系統(tǒng)或計算設(shè)備的類型的任何限制。一般而言,計算系統(tǒng)或計算設(shè) 備可以是局部的或分布式的,并可以包括專用硬件和/或硬件與實現(xiàn)本文描述的功能的軟 件的任意組合。
[0037] 還可以利用配置為執(zhí)行任意所公開方法的專用計算硬件來實現(xiàn)所公開的方法。例 如,可以通過專門設(shè)計或配置為實現(xiàn)任意所公開方法的集成電路(例如,ASIC,如ASIC數(shù)字 信號處理器("DSP"),圖形處理單元("GPU"),或可編程邏輯設(shè)備("PLD"),如現(xiàn)場可編程門 陣列("FPGA"))來實現(xiàn)所公開的方法。
[0038]出于描述的原因,詳細(xì)的描述使用類似"確定"和"使用"的術(shù)語來描述計算系統(tǒng)中 的計算機操作。這些術(shù)語是計算機執(zhí)行的操作的高度抽象,并不應(yīng)該與人類執(zhí)行的動作混 淆。對應(yīng)于這些術(shù)語的實際計算機操作依賴于實現(xiàn)方式而變化。如本文所使用的,術(shù)語"優(yōu) 化(optimiz*)"(包括變形(如optimization和optimizing))指的是在給定決策范圍下選項 中的選擇,并不暗示優(yōu)化的選擇是決策的擴展范圍的"最佳"或"最優(yōu)"選擇。
[0039] II.示例性網(wǎng)絡(luò)環(huán)境
[0040] 圖2a和2b示出了示例性網(wǎng)絡(luò)環(huán)境(201、202),其包括視頻編碼器(220)和視頻解碼 器(270)。編碼器(220)和解碼器(270)利用適當(dāng)?shù)耐ㄐ艆f(xié)議通過網(wǎng)絡(luò)(250)連接。網(wǎng)絡(luò)(250) 可以包括互聯(lián)網(wǎng)或其它計算機網(wǎng)絡(luò)。
[0041]在圖2a所示的網(wǎng)絡(luò)環(huán)境(201)中,每個實時通信("RTC")工具(210)包括編碼器 (220)和解碼器(270)用于雙向通信。給定的編碼器(220)可以產(chǎn)生與HEVC標(biāo)準(zhǔn)(還已知為 H.265)、SMPTE 421M標(biāo)準(zhǔn)、IS0/IEC14496-10標(biāo)準(zhǔn)(還已知為H.264或AVC)、其它標(biāo)準(zhǔn)或?qū)傩?格式的變型或擴展兼容的輸出,對應(yīng)的解碼器(270)接受來自編碼器(220)的編碼數(shù)據(jù)。雙 向通信可以是以下項目的一部分:視頻會議、視頻電話呼叫、或其它兩方或多方通信場景。 雖然在圖2a中的網(wǎng)絡(luò)環(huán)境(201)包括兩個實時通信工具(210),但網(wǎng)絡(luò)環(huán)境(201)可以替代 地包括參與多方通信的三個或更多實時通信工具(210)。
[0042] 實時通信工具(210)通過編碼器(220)管理編碼。圖3示出了可以包含于實時通信 協(xié)議(210)中的示例性編碼器系統(tǒng)(300)。替代地,實時通信工具(210)使用另一編碼器系 統(tǒng)。實時通信工具(210)還通過解碼器(270)管理解碼。
[0043] 在圖2b中所示的網(wǎng)絡(luò)環(huán)境(202)中,編碼工具(212)包括編碼器(220),其編碼視頻 用于輸送到多個回放工具(214)(其包括解碼器(270))??梢詾橐曨l監(jiān)控系統(tǒng)、網(wǎng)絡(luò)攝像機 監(jiān)視系統(tǒng)、屏幕捕捉模塊、遠(yuǎn)程桌面會議呈現(xiàn)或?qū)σ曨l進行編碼并將其從一個位置發(fā)送到 一個或多個其它位置的其它場景提供單向通信。雖然圖2b中的網(wǎng)絡(luò)環(huán)境(202)包括兩個回 放工具(214),但網(wǎng)絡(luò)環(huán)境(202)可以包括更多或更少的回放工具(214)。一般而言,回放工 具(214)與編碼工具(212)通信以確定回放工具(214)接收的視頻流。回放工具(214)接收 流,在適當(dāng)周期內(nèi)緩沖接收到的編碼數(shù)據(jù),并開始解碼并進行回放。
[0044] 圖3示出了可以包含于編碼工具(212)中的示例性編碼器系統(tǒng)(300)。替代地,編碼 工具(212)使用另一編碼器系統(tǒng)。編碼工具(212)還可以包括服務(wù)器側(cè)控制器邏輯,用于管 理與一個或多個回放工具(214)的連接?;胤殴ぞ?214)還可以包括客戶端側(cè)控制器邏輯, 用于管理與編碼工具(212)的連接。
[0045] III.示例性編碼器系統(tǒng)
[0046] 圖3是結(jié)合其可以實現(xiàn)一些所述實施例的示例性編碼器系統(tǒng)(300)的框圖。編碼器 系統(tǒng)(300)可以是通用編碼工具,其能夠以任意多個編碼模式進行操作,所述編碼模式例如 是用于實時通信的低延遲編碼模式、轉(zhuǎn)碼模式、以及用于產(chǎn)生用于從文件或流回放的媒體 的較高延遲編碼模式;或者編碼器系統(tǒng)(300)可以是專用編碼工具,其適于一種這樣的編碼 模式。編碼器系統(tǒng)(300)可以實現(xiàn)為操作系統(tǒng)模塊,作為應(yīng)用庫的一部分或者作為獨立的應(yīng) 用??傊?,編碼器系統(tǒng)(300)從視頻源(310)接收源視頻幀序列(311),并產(chǎn)生經(jīng)編碼的數(shù)據(jù) 作為到信道(390)的輸出。輸出到信道的經(jīng)編碼的數(shù)據(jù)可以包括利用所選的MV精度而編碼 的內(nèi)容。
[0047] 視頻源(310)可以是攝像機、調(diào)諧卡、存儲介質(zhì)、屏幕捕捉模塊或其它數(shù)字視頻源。 視頻源(310)以例如每秒30幀的幀率產(chǎn)生視頻幀序列。如本文所使用的,術(shù)語"幀"通常指的 是源、編碼的或重構(gòu)的圖像數(shù)據(jù)。對于逐行掃描視頻,幀是逐行掃描視頻幀。對于交錯視頻, 在示例性實施例中,交錯視頻幀可以是在編碼之前被去交錯的。替代地,將兩個補充的交錯 視頻字段編碼到一起作為單個視頻幀或編碼為兩個分開編碼的字段。除了表示逐行掃描視 頻幀或交錯掃描視頻幀,術(shù)語"幀"或"圖片"可以表示單個非配對視頻字段、補充視頻字段 對、表示給定時間的視頻對象的視頻對象平面、或在較大圖像中的感興趣區(qū)域。視頻對象平 面或區(qū)域可以是包括多個對象或場景區(qū)域的較大圖像的一部分。
[0048]到達(dá)源幀(311)存儲于源幀臨時存儲器存儲區(qū)域(320)中,其包括多個幀緩沖器存 儲區(qū)域(321、322、"_、321〇。幀緩沖器(321、322等)在源幀存儲區(qū)域(320)中保存一個源幀。 在一個或多個源幀(311)已經(jīng)存儲于幀緩沖器(32U322等)之后,幀選擇器(330)從源幀存 儲區(qū)域(320)中選擇個體源幀。通過幀選擇器(330)選擇用于輸入到編碼器(340)中的幀的 順序可能不同于視頻源(310)產(chǎn)生幀的順序,例如,對一些幀的編碼可能在順序上延遲,從 而允許一些后續(xù)幀首先被編碼并因此便于暫時反向預(yù)測。在編碼器(340)之前,編碼器系統(tǒng) (300)可以包括預(yù)處理器(未示出),其在編碼之前執(zhí)行所選幀(331)的預(yù)處理(例如,過濾)。 預(yù)處理可以包括顏色空間轉(zhuǎn)換為主要(例如,亮度)和次要(例如,朝向紅色和朝向藍(lán)色的色 度差)分量,并對處理進行重采樣(例如,減少色度分量的空間分辨率)以進行編碼。一般而 言,在編碼之前,視頻已經(jīng)轉(zhuǎn)換為顏色空間,例如YUV,其中亮度(Y)分量的樣本值表示亮度 或強度值,并且色度(υ,ν)分量的樣本值表示顏色差值??梢詫ι炔蓸又颠M行子采樣到較 低色度采樣率(例如,用于YUV 4:2:0格式或YUV 4:2:2),或者色度樣本值可以具有與亮度 樣本值相同的分辨率(例如,用于YUV 4:4:4格式)。在YUV 4:2:0格式中,水平地通過兩個因 素且垂直地通過兩個因素對色度分量進行降低采樣。在YUV 4:2:2格式中,水平地通過兩個 因素對色度分量進行降低采樣。或者可以以另一格式(例如,RGB 4:4:4格式)對視頻進行編 碼。
[0049] 編碼器(340)對所選幀(331)進行編碼以產(chǎn)生經(jīng)編碼的幀(341),并且還產(chǎn)生存儲 器管理控制操作("MMC0")信號(342)或參考圖片集("RPS")信息。如果當(dāng)前幀不是已經(jīng)編碼 的第一幀,則當(dāng)執(zhí)行其編碼過程時,編碼器(340)可以使用一個或多個先前編碼/解碼的幀 (369),該幀(369)已經(jīng)存儲于解碼幀臨時存儲器存儲區(qū)域(360)內(nèi)。這種存儲的解碼幀 (369)用作當(dāng)前源幀(331)的內(nèi)容的幀間預(yù)測的參考幀。麗C0/RPS信息(342)向編碼器表明 哪個重構(gòu)幀可以用作參考幀,并因此應(yīng)該存儲于幀存儲區(qū)域內(nèi)。
[0050] 一般而言,編碼器(340)包括執(zhí)行編碼任務(wù)的多個編碼模塊,所述任務(wù)例如分割成 瓦片(tile),幀內(nèi)預(yù)測估計和預(yù)測,運動估計和補償,頻率轉(zhuǎn)換,量化和熵編碼。編碼器 (340)執(zhí)行的準(zhǔn)確操作可以依賴于壓縮格式而變化。輸出編碼數(shù)據(jù)的格式可以是HEVC格式 (H. 265)、Windows媒體視頻格式、VC-1 格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、 !1.261格式(例如,!1.261、!1.262、!1.263、!1.264)或其它格式的變型或擴展。
[0051] 編碼器(340)可以將幀分割為相同尺寸或不同尺寸的多個瓦片。例如,編碼器 (340)將幀沿著瓦片行和瓦片列進行分割,借助幀邊界,所述瓦片行和瓦片列定義在幀內(nèi)的 瓦片的水平和垂直邊界,其中每個瓦片是矩形區(qū)域。瓦片通常用于提供用于并行處理的選 項。可以將幀組織為一個或多個切片,其中切片可以是整個幀或幀的區(qū)域。可以對切片獨立 于幀中其它切片進行解碼,這改善了誤差恢復(fù)。為了進行編碼和解碼,切片或瓦片的內(nèi)容還 被分隔為塊或樣本的其它集合。
[0052]對于根據(jù)HEVC標(biāo)準(zhǔn)的語法,編碼器將幀(或切片或瓦片)的內(nèi)容分割成編碼樹單 元。編碼樹單元("CTU")包括組織為亮度編碼樹塊("CTB")的亮度樣本值以及組織為兩個色 度CTB的對應(yīng)的色度樣本值。CTU(及其CTB)的大小由編碼器進行選擇。亮度CTB例如可以包 含64164、32132、16116的亮度樣本值。(^1]包括一個或多個編碼單元。編碼單元("〇]")具有 亮度編碼塊("CB")和兩個對應(yīng)的色度CB。例如,具有64x64亮度CTB和兩個64x64的色度CTB (YUV 4:4:4格式)的CTU可以被分割成四個⑶,每個⑶包括32x32的亮度CB和兩個32x32的色 度CB,每個CU還可能被分割成更小的CU?;蛘?,作為另一例子,具有64x64亮度CTB和兩個 32x32色度CTB(YUV 4: 2:0格式)的CTU可以被分割為四個⑶,每個⑶包括32x32亮度CB和兩 個16x16色度CB,每個⑶還可以被分割成更小的⑶。CU的最小可允許尺寸(例如,8x8、16xl6) 可以在比特流中用信號傳遞。
[0053] -般而言,CU具有例如幀間或幀內(nèi)的預(yù)測模式。CU包括一個或多個預(yù)測單元,用于 對預(yù)測信息(例如,預(yù)測模式細(xì)節(jié)、位移值等)和/或預(yù)測處理進行信號傳遞的目的。預(yù)測單 元("PU")具有亮度預(yù)測塊("PB")和兩個色度PB。對于幀內(nèi)預(yù)測的CU,PU具有與CU相同的尺 寸,除非CU具有最小尺寸(例如,8x8)。在這種情況下,CU可以分割成四個較小的PU(例如,當(dāng) 最小CU尺寸是8x8時,每個是4x4),或者PU可以具有最小CU尺寸,如由CU的語法元素指示的。 CU還具有一個或多個變換單元,用于殘差編碼/解碼的目的,其中變換單元("TU")具有亮度 變換塊("ΤΒ")和兩個色度ΤΒ。在幀內(nèi)預(yù)測⑶中的PU可以包含單個TU(在尺寸上等于PU)或多 個TU。編碼器決定如何將視頻分割為CTU、⑶、PU、TU等。在H. 264/AVC標(biāo)準(zhǔn)的上下文中,術(shù)語 "宏塊"指示類似于H.265/HEVC標(biāo)準(zhǔn)的CTU的塊狀區(qū)域的塊狀區(qū)域,并且術(shù)語"子宏塊分割" 指示類似于CU或PU的塊狀區(qū)域的塊狀區(qū)域。如本文所使用的,術(shù)語"±夬"可以表示CB、PB、TB、 CTU、⑶、PU、TU、宏塊、子宏塊分割或其它樣本值集合,這取決于上下文。
[0054]返回圖3,編碼器以根據(jù)幀(331)中其它先前重構(gòu)的樣本值的預(yù)測的方式呈現(xiàn)源幀 (331)的內(nèi)部編碼塊。對于塊內(nèi)復(fù)制("B〇預(yù)測,圖片內(nèi)估計器估計塊相對其它先前重構(gòu)樣 本值的位移。幀內(nèi)預(yù)測參考區(qū)域(或簡稱幀內(nèi)預(yù)測區(qū)域)是用于生成塊的BC預(yù)測值的幀中的 樣本的區(qū)域。幀內(nèi)預(yù)測區(qū)域可以用塊向量("BV")值(在BV估計中確定的)來指示。對于塊的 幀內(nèi)空間預(yù)測,圖片內(nèi)估計器估計相鄰的重構(gòu)樣本值到塊的外推。圖片內(nèi)估計器可以輸出 預(yù)測信息(例如,BC內(nèi)預(yù)測的BV值或幀內(nèi)空間預(yù)測的預(yù)測模式(方向)),其是熵編碼的。幀內(nèi) 預(yù)測預(yù)測器應(yīng)用預(yù)測信息來確定幀內(nèi)預(yù)測值。
[0055]編碼器(340)表示按照根據(jù)參考幀的預(yù)測的方式的源幀(331)的幀間編碼的預(yù)測 塊。運動估計器估計塊相對于一個或多個參考幀(369)的運動。運動估計器可以選擇如文本 所述的運動向量("MV")精度(例如,整數(shù)樣本MV精度、1/2樣本MV精度或1/4樣本MV精度),然 后在運動估計期間使用所選的MV精度。當(dāng)使用多個參考幀時,多個參考幀可以來自不同的 時間方向或相同的時間方向。運動補償預(yù)測參考區(qū)域是在用于生成當(dāng)前幀的樣本塊的運動 補償?shù)念A(yù)測值的參考幀中樣本的區(qū)域。運動估計器輸出運動信息,例如,MV信息,其是熵編 碼的。運動補償器將具有所選MV精度的MV值應(yīng)用于參考幀(369),以確定用于幀間預(yù)測的運 動補償?shù)念A(yù)測值。
[0056]編碼器可以確定塊的(幀內(nèi)或幀間)預(yù)測值和對應(yīng)的原始值之間的差(如果有的 話)。利用頻率變換(如果頻率變換不被省略)、量化和熵編碼對這些預(yù)測殘差值進一步編 碼。例如,編碼器(340)設(shè)置用于圖片、瓦片、切片和/或視頻的其它部分的量化參數(shù)("QP") 的值,并因此量化變換系數(shù)。編碼器(340)的熵編碼器壓縮量化變換系數(shù)值以及某些邊帶信 息(例如,MV信息、所選MV精度、BV值、QP值、模式?jīng)Q策、參數(shù)選擇)。典型的熵編碼技術(shù)包括指 數(shù)哥倫布編碼、Golomb-Rice編碼、算數(shù)編碼、差分編碼、霍夫曼編碼、行程編碼、可變長度到 可變長度("V2V")編碼、可變長度到固定長度("V2F")編碼、Lempel-Zi V( "LZ")編碼、詞典編 碼、概率區(qū)間分割熵編碼("PIPE")以及上述組合。熵編碼器可以針對不同種類的信息使用 不同的編碼技術(shù),可以應(yīng)用組合的多個技術(shù)(例如,通過應(yīng)用Golomb-Rice編碼之后是算數(shù) 編碼),并可以從特定編碼技術(shù)中的多個代碼表中進行選擇。在一些實現(xiàn)方式中,頻率變換 可以被省略。在這種情況下,可以量化和熵編碼預(yù)測殘差值。
[0057]在編碼器(340)中的運動補償循環(huán)(也就是,"循環(huán)中"過濾)內(nèi)包括自適應(yīng)去塊濾 波來平滑跨解碼幀中的塊邊界行和/或列的不連續(xù)性。其它過濾(例如,未示出的去環(huán)過濾、 自適應(yīng)循環(huán)過濾("ALF")或樣本適應(yīng)偏移("SA0")過濾)可以替代的或額外地應(yīng)用為循環(huán)內(nèi) 過濾操作。
[0058] 通過解碼過程模擬器(350)處理編碼幀(341)和MMC0/RPS信息(342)(或者等價于 MMC0/RPS信息(342)的信息,因為在編碼器(340)處已知幀的依賴性和順序結(jié)構(gòu))。解碼過程 模擬器(350)實現(xiàn)解碼器的一些功能,例如,解碼任務(wù)以重構(gòu)參考幀。以與MM⑶/RPS信息 (342)-致的方式,解碼過程模擬器(350)確定給定的編碼幀(341)是否需要被重構(gòu),并存儲 用作將被編碼的后續(xù)幀的幀間預(yù)測中的參考幀。如果編碼幀(341)需要被存儲,則解碼過程 模擬器(350)對接收編碼幀(341)且產(chǎn)生對應(yīng)解碼幀(351)的解碼器所要進行的解碼過程進 行建模。這樣,當(dāng)編碼器(340)已經(jīng)使用存儲于解碼幀存儲區(qū)域(360)內(nèi)的解碼幀(369)時, 解碼過程模擬器(350)還使用來自存儲區(qū)域(360)的解碼幀(369)作為解碼過程的一部分。
[0059] 解碼幀臨時存儲器存儲區(qū)域(360)包括多個幀緩沖器存儲區(qū)域(361、362、···、 36η)。以與MMC0/RPS信息(342) -致的方式,解碼過程模擬器(350)管理存儲區(qū)域(360)的內(nèi) 容,以便識別具有編碼器(340)不再需要用作參考幀的幀的任意幀緩沖器(36U362等)。在 對解碼過程建模之后,解碼過程模擬器(350)在幀緩沖器(36U362等)中存儲以這種方式識 別出的新解碼的幀(351)。
[0060] 編碼幀(341)和麗⑶/RPS信息(342)在臨時編碼數(shù)據(jù)區(qū)域(370)中緩沖。在編碼數(shù) 據(jù)區(qū)域(370)內(nèi)聚集的編碼數(shù)據(jù)包含用于一個或多個圖片的編碼數(shù)據(jù)作為元素編碼視頻比 特流的語法的一部分。在編碼數(shù)據(jù)區(qū)域(370)中聚集的編碼數(shù)據(jù)還可能包括與編碼視頻數(shù) 據(jù)相關(guān)的媒體元數(shù)據(jù)(例如,作為在一個或多個補充增強信息("SEI")消息或視頻可用信息 ("VUI")消息中的一個或多個參數(shù))。
[0061] 通過信道編碼器(380)對來自臨時編碼數(shù)據(jù)區(qū)域(370)的聚集數(shù)據(jù)(371)進行處 理。信道編碼器(380)可以分封化和/或多路復(fù)用聚集的數(shù)據(jù)以進行傳輸或存儲為媒體流 (例如,根據(jù)媒體程序流或傳輸流格式,例如,ITU-T H.222.0| IS0/IEC 13818-1或互聯(lián)網(wǎng)實 時傳輸協(xié)議格式,例如IETF RFC 3550),在該情況下,信道編碼器(380)可以添加語法元素 作為媒體傳輸流的語法的一部分。或者,信道編碼器(380)可以組織聚集數(shù)據(jù)用于存儲為文 件(例如,根據(jù)媒體容器格式,例如,IS0/IEC 14496-12),在該情況下,信道編碼器(380)可 以添加語法元素作為媒體存儲文件的語法的一部分?;蛘吒话愕?,信道編碼器(380)可以 實現(xiàn)一個或多個媒體系統(tǒng)多路復(fù)用協(xié)議或傳輸協(xié)議,在該情況下,信道編碼器(380)可以添 加語法元素作為協(xié)議的語法的一部分。信道編碼器(380)向信道(390)提供輸出,其表示存 儲、通信連接或用于輸出的另一信道。信道編碼器(380)或信道(390)還可以包括其它元件 (未示出),例如,用于前向糾錯("FEC")編碼和模擬信號調(diào)制。
[0062] IV.示例性視頻編碼器
[0063]圖4a和4b是可以結(jié)合其實現(xiàn)一些所述實施例的廣義視頻編碼器(400)的框圖。編 碼器(400)接收包括當(dāng)前圖片的視頻圖片序列作為輸入視頻信號(405),并在編碼視頻比特 流(495)中產(chǎn)生編碼數(shù)據(jù)作為輸出。
[0064] 編碼器(400)是基于塊的,且使用依賴于實現(xiàn)方式的塊格式。塊還可以在不同階段 被細(xì)分,例如,在預(yù)測、頻率變換和/或熵編碼階段。例如,圖片可以被劃分為64x64塊、32x32 塊或16x16塊,其反過來可以劃分為較小塊的樣本值用于編碼和解碼。在針對HEVC標(biāo)準(zhǔn)的編 碼的實現(xiàn)方式中,編碼器將圖片分割為CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
[0065] 編碼器(400)利用圖片內(nèi)編碼和/或圖片間編碼來壓縮圖片。編碼器(400)的許多 部件用于圖片內(nèi)編碼和圖片間編碼。通過這些部件執(zhí)行的準(zhǔn)確操作可以依賴于被壓縮的信 息類型而變化。
[0066] 瓦片模塊(410)可選地將圖片分割為相同尺寸或不同尺寸的多個瓦片。例如,瓦片 模塊(410)沿著瓦片行和瓦片列分割圖片,借助圖片邊界,所述瓦片行和瓦片列定義圖片內(nèi) 瓦片的水平和垂直邊界,其中每個瓦片是矩形區(qū)域。
[0067]通用編碼控制件(420)從編碼器(400)的各個模塊接收用于輸入視頻信號(405)的 圖片以及反饋(未示出)??傊?,通用編碼控制件(420)向其它模塊(例如,瓦片模塊(410)、變 換器/縮放器/量化器(430)、縮放器/逆變換器(435)、圖片內(nèi)估計器(440)、運動估計器 (450)和內(nèi)/間切換)提供控制信號(未示出),以在編碼期間設(shè)置和改變編碼參數(shù)。特別地, 結(jié)合運動估計器(450),通用編碼控制件(420)可以在編碼期間確定MV精度。通用編碼控制 件(420)還可以在編碼期間評估中間結(jié)果,例如,執(zhí)行率失真分析。通用編碼控制件(420)產(chǎn) 生指示在編碼期間做出的決策的通用控制數(shù)據(jù)(422),從而對應(yīng)的解碼器可以做出一致決 策。向標(biāo)題格式化器/熵編碼器(490)提供通用控制數(shù)據(jù)(422)。
[0068]如果利用圖片間預(yù)測來預(yù)測當(dāng)前圖片,則運動估計器(450)估計輸入視頻信號 (405)的當(dāng)前圖片(相對一個或多個參考圖片)的樣本值的塊運動。如本文所述,運動估計器 (450)可以選擇運動向量("MV")精度(例如,整數(shù)樣本MV精度、1/2樣本MV精度或1/4樣本MV 精度),然后在運動估計期間使用所選的MV精度。解碼圖片緩沖器(470)緩沖一個或多個重 構(gòu)的先前編碼的圖片以用作參考圖片。當(dāng)使用多個參考圖片時,多個參考圖片可以來自于 不同時間方向或相同時間方向。運動估計器(450)產(chǎn)生邊帶信息運動數(shù)據(jù)(452),例如,MV數(shù) 據(jù)、合并模式索引值和參考圖片選擇數(shù)據(jù)、以及表示所選的MV精度的邊帶信息。將包括運動 數(shù)據(jù)(452)的邊帶信息提供給標(biāo)題格式化器/熵編碼器(490)以及運動補償器(455)。
[0069]運動補償器(455)將具有所選的MV精度的MV值應(yīng)用到來自解碼圖片緩沖器(470) 的重構(gòu)的參考圖片。當(dāng)圖片的色度數(shù)據(jù)具有與亮度數(shù)據(jù)相同的分辨率時(例如,當(dāng)格式是 YUV 4:4:4或RGB 4:4:4格式時),應(yīng)用于色度塊的MV值可以與應(yīng)用于亮度塊的MV值相同。在 另一方面,當(dāng)圖片的色度數(shù)據(jù)具有相對于亮度數(shù)據(jù)減少的分辨率時(例如,當(dāng)格式是YUV4: 2:0格式或YUV 4:2: 2格式時),應(yīng)用于色度塊上的MV值可以是按比例縮小的MV值,并可以對 其化整,以調(diào)節(jié)色度分辨率的差(例如,對于YUV4: 2:0格式,通過用2除MV值的垂直和水平分 量,以及對其舍位或化整到用于色度運動補償處理的精度;對于YUV 4:2:2格式,通過用2除 MV值的水平分量,以及對其舍位或化整到用于色度運動補償處理的精度)。運動補償器 (455)針對當(dāng)前圖片產(chǎn)生運動補償預(yù)測。
[0070] 在編碼器(400)的分開的路徑中,圖片內(nèi)估計器(440)確定如何執(zhí)行輸入視頻信號 (405)的當(dāng)前圖片的樣本值的塊的圖片內(nèi)預(yù)測??梢岳脠D片內(nèi)編碼對當(dāng)前圖片進行整體 或局部編碼。利用當(dāng)前圖片的重構(gòu)(438)的值,對于空間內(nèi)預(yù)測,圖片內(nèi)估計器(440)確定如 何根據(jù)當(dāng)前圖片的鄰近的先前重構(gòu)的樣本值來空間上預(yù)測當(dāng)前圖片的當(dāng)前塊的樣本值。或 者,對于利用BV值的BC內(nèi)預(yù)測,圖片內(nèi)估計器(440)估計當(dāng)前塊的樣本值到當(dāng)前圖片內(nèi)的不 同候選區(qū)域的位移。
[0071] 圖片內(nèi)估計器(440)產(chǎn)生邊帶信息內(nèi)預(yù)測數(shù)據(jù)(442),例如,指示內(nèi)預(yù)測是否使用 空間預(yù)測或BC內(nèi)預(yù)測(例如,每個塊內(nèi)標(biāo)記值)、預(yù)測模式方向(對于空間內(nèi)預(yù)測)和BV值(對 于BC內(nèi)預(yù)測)的信息。將內(nèi)預(yù)測數(shù)據(jù)(442)提供到標(biāo)題格式化器/熵編碼器(490)以及圖片內(nèi) 預(yù)測器(445)。
[0072]根據(jù)內(nèi)預(yù)測數(shù)據(jù)(442),圖片內(nèi)預(yù)測器(445)根據(jù)當(dāng)前圖片的鄰近的先前重構(gòu)的樣 本值在空間上預(yù)測當(dāng)前圖片的當(dāng)前塊的樣本值?;蛘撸瑢τ贐C內(nèi)預(yù)測,圖片內(nèi)預(yù)測器(445) 利用內(nèi)預(yù)測區(qū)域的先前重構(gòu)的樣本值預(yù)測當(dāng)前塊的樣本值,其由當(dāng)前塊的BV值指示。
[0073] 內(nèi)/間切換選擇運動補償預(yù)測或圖片內(nèi)預(yù)測的值用作給定塊的預(yù)測(458)。當(dāng)沒有 略過殘差編碼時,在預(yù)測(458)的塊與輸入視頻信號(405)的原始當(dāng)前圖片的對應(yīng)部分之間 的差(如果有的話)提供殘差值(418)。在重構(gòu)當(dāng)前圖片期間,當(dāng)已經(jīng)對殘差值進行編碼/信 號傳遞時,組合重構(gòu)的殘差值與預(yù)測(458)以從視頻信號(405)產(chǎn)生原始內(nèi)容的重構(gòu)(438)。 然而,在有損壓縮中,仍會從視頻信號(405)中丟失一些信息。
[0074] 在變換器/縮放器/量化器(430)中,當(dāng)沒有略過頻率變換時,頻率變換器將空間域 視頻數(shù)據(jù)轉(zhuǎn)換為頻域(即,頻譜、變換)數(shù)據(jù)。對于基于塊的視頻編碼,頻率變換器對預(yù)測殘 差數(shù)據(jù)的塊(或當(dāng)預(yù)測(458)是空時對樣本值數(shù)據(jù))應(yīng)用離散余弦變換("DCT")、其整數(shù)近 似、或另一類型的前向塊變換(例如,離散正弦變換或其整數(shù)近似),產(chǎn)生頻率變換系數(shù)的 塊。編碼器(400)還能夠指示略過這種變換步驟。縮放器/量化器縮放且量化變換系數(shù)。例 如,量化器將死區(qū)標(biāo)量量化應(yīng)用到具有基于逐幀、逐瓦片、逐切片、逐塊、專用頻率或其它而 變化的量化步長尺寸的頻域數(shù)據(jù)上。將量化變換系數(shù)數(shù)據(jù)(432)提供給標(biāo)題格式化器/熵編 碼器(490)。如果略過頻率變換,則縮放器/量化器可以縮放和量化預(yù)測殘余數(shù)據(jù)的塊(或者 當(dāng)預(yù)測(458)為空時的樣本值數(shù)據(jù)),產(chǎn)生提供給標(biāo)題格式化器/熵編碼器(490)的量化值。
[0075] 在縮放器/逆變換器(435)中,縮放器/逆量化器對量化的變換系數(shù)執(zhí)行逆縮放和 逆量化。逆頻率變換器執(zhí)行逆頻率變換,產(chǎn)生重構(gòu)預(yù)測殘差值或樣本值的塊。如果已經(jīng)略過 了變換階段,則也略過逆頻率變換。在這種情況下,縮放器/逆量化器可以對預(yù)測殘差數(shù)據(jù) (或樣本值數(shù)據(jù))的塊執(zhí)行逆縮放和逆量化,產(chǎn)生重構(gòu)值。當(dāng)已經(jīng)對殘差值編碼/信號傳遞 時,編碼器(400)組合重構(gòu)的殘差值與預(yù)測值(458)(例如,運動補償預(yù)測值,圖片內(nèi)預(yù)測值) 以形成重構(gòu)(438)。當(dāng)尚未對殘差值編碼/信號傳遞時,編碼器(400)使用預(yù)測值(458)作為 重構(gòu)(438)。
[0076]對于圖片內(nèi)預(yù)測,可以將重構(gòu)(438)的值饋送回圖片內(nèi)估計器(440)和圖片內(nèi)預(yù)測 器(445)。另外,重構(gòu)(438)的值可以用于后續(xù)圖片的運動補償預(yù)測。重構(gòu)(438)的值可以進 一步被過濾。針對給定的視頻信號(405)的圖片,過濾控制件(460)確定如何在重構(gòu)(438)的 值上執(zhí)行去塊過濾和SA0過濾。過濾控制件(460)產(chǎn)生過濾控制數(shù)據(jù)(462),該數(shù)據(jù)被提供給 標(biāo)題格式化器/熵編碼器(490)和合并器/過濾器(465)。
[0077]在合并器/過濾器(465)中,編碼器(400)將來自不同瓦片的內(nèi)容合并到重構(gòu)版本 的圖片中。編碼器(400)根據(jù)過濾控制數(shù)據(jù)(462)選擇性執(zhí)行去塊過濾和SA0過濾,從而適應(yīng) 地平滑跨幀中的邊界的不連續(xù)性。可以替代地或額外的應(yīng)用其它過濾(例如,未示出的去環(huán) 過濾或ALF)。瓦片邊界可以取決于編碼器(400)的設(shè)置而選擇性過濾或根本不過濾,并且編 碼器(400)可以提供編碼比特流中的語法以指示是否應(yīng)用這種過濾。解碼圖片緩沖器(470) 緩沖重構(gòu)的當(dāng)前圖片以用于后續(xù)的運動補償預(yù)測。
[0078]標(biāo)題格式化器/熵編碼器(490)對通用控制數(shù)據(jù)(422)、量化變換系數(shù)數(shù)據(jù)(432), 內(nèi)預(yù)測數(shù)據(jù)(422)、運動數(shù)據(jù)(452),以及過濾控制數(shù)據(jù)(462)格式化和/或熵編碼??梢詫V 值進行預(yù)測性編碼。例如,標(biāo)題格式化器/熵編碼器(490)使用指數(shù)哥倫布編碼用于在MV預(yù) 測之后對各種語法元素進行熵編碼,例如,差分MV值的語法元素。
[0079]標(biāo)題格式化器/熵編碼器(490)提供編碼視頻比特流(495)中的編碼數(shù)據(jù)。編碼視 頻比特流(495)的格式可以是HEVC格式、Windows媒體視頻格式、VC-1格式、MPEG-x格式(例 如,MPEG-1、MPEG-2 或 MPEG-4 )、Η·26χ 格式(例如,Η·261、Η·262、Η·263、Η·264)或其它格式的 變型或擴展。
[0080]取決于期望壓縮的實現(xiàn)方式和類型,可以添加、省略編碼器的模塊,將其分割成多 個模塊,使其與其它模塊組合和/或以類似模塊進行替代。在替代實施例中,具有不同模塊 的編碼器和/或模塊的其它配置執(zhí)行一個或多個所描述的技術(shù)。編碼器的具體實施例通常 使用變型或補充版本的編碼器(400)。在編碼器(400)內(nèi)的模塊之間示出的關(guān)系指示在編碼 器中的信息的一般流;為了簡便的原因未示出其它關(guān)系。
[0081 ] V.在編碼期間選擇MV精度
[0082] 該部分表示用于在編碼期間選擇運動向量("MV")精度的各種方法。這些方法可以 便于壓縮,其在編碼和解碼的率失真性能和/或計算效率方面是有效的。
[0083] 當(dāng)對任意類型的視頻編碼時可以應(yīng)用本文所描述的用于選擇MV精度的方法。然 而,特別地,當(dāng)編碼某些人工創(chuàng)建的視頻內(nèi)容(例如,屏幕捕捉內(nèi)容)時,如本文所描述的選 擇MV精度可以改善性能。
[0084] A ·視頻類型
[0085] 通常,屏幕捕捉視頻(也稱作屏幕內(nèi)容視頻或屏幕捕捉內(nèi)容)表示呈現(xiàn)生成計算機 屏幕或其它顯示器的內(nèi)容的處理的圖形的輸出。這與自然視頻形成對比,自然視頻指的是 從真實世界對象的攝像機傳感器視圖捕捉到的視頻圖像,或具有類似特性的視頻。屏幕捕 捉視頻通常包含所呈現(xiàn)的文本、計算機圖形、動畫生成內(nèi)容或從計算機顯示器的呈現(xiàn)過程 的輸出捕捉到的其它類似類型的內(nèi)容,這與(或除了)僅攝像機捕捉視頻內(nèi)容相反。編碼/解 碼屏幕捕捉內(nèi)容的共同場景包括遠(yuǎn)程桌面會議和在自然視頻或其它"混合內(nèi)容"視頻上的 圖片或文本覆蓋的編碼/解碼。本文描述的若干創(chuàng)新適應(yīng)于編碼屏幕捕捉視頻或其它人工 創(chuàng)造視頻。這些創(chuàng)新還可以用于自然視頻,但是可能不一樣有效。本文描述的其它創(chuàng)新在編 碼自然視頻或人工創(chuàng)造視頻方面是有效的。
[0086] 圖5示出了具有可以為屏幕捕捉提供輸入的內(nèi)容的計算機桌面環(huán)境(510)。例如, 屏幕捕捉視頻可以表示整個計算機桌面(511)的一系列圖像。或者,屏幕捕捉視頻可以表示 計算機桌面環(huán)境的窗口之一的一些列圖像,例如,包括游戲內(nèi)容的app窗口(513),具有網(wǎng)頁 內(nèi)容的瀏覽器窗口(512)或者具有文字處理器內(nèi)容的窗口(514)。
[0087] 與利用視頻攝像機捕捉到的自然視頻內(nèi)容相比,如計算機生成的、人工創(chuàng)造的視 頻內(nèi)容一樣,屏幕捕捉內(nèi)容趨向于具有相對少的離散樣本值。例如,屏幕捕捉內(nèi)容的區(qū)域通 常包括單一均勻顏色,而自然視頻內(nèi)容中的區(qū)域更可能包括逐漸變換的顏色。另外,屏幕捕 捉內(nèi)容通常包括獨特結(jié)構(gòu)(例如,圖形、文本特性),其逐幀準(zhǔn)確地重復(fù),即使內(nèi)容在空間上 可能被替代(例如,由于滾動)。屏幕捕捉內(nèi)容通常以具有高色度采樣分辨率的格式(例如, YUV 4:4:4或RGB 4:4:4)編碼,但是其還可以以具有較低色度采樣分辨率的格式(例如,YUV 4:2:0,YUV 4:2:2)編碼。
[0088]圖6示出了混合內(nèi)容視頻(620 ),其包括一些自然視頻(621)和一些人工創(chuàng)造的視 頻內(nèi)容。人工創(chuàng)造的視頻內(nèi)容包括在自然視頻(621)和在自然視頻(621)下運行的收報機 (ticker)(623)旁邊的圖形(622)。類似于圖5所示的屏幕捕捉內(nèi)容,在圖6中示出的人工創(chuàng) 造的視頻內(nèi)容傾向于具有相對少的離散樣本值。其還傾向于具有(例如,由于滾動)逐幀準(zhǔn) 確重復(fù)的獨特結(jié)構(gòu)(例如,圖形、文本特性)。
[0089]可以從顯示設(shè)備的輸出緩沖器中或從一個或多個存儲幀的緩沖器中周期性讀取 屏幕捕捉視頻或混合內(nèi)容視頻。或者,可以從屏幕捕捉模塊(其可以從顯示設(shè)備的輸出緩沖 器中周期性地讀取值,從操作系統(tǒng)模塊攔截顯示命令,或者以其它方式捕捉待顯示的樣本 值)提供屏幕捕捉視頻。屏幕捕捉視頻或混合內(nèi)容視頻可以來自"現(xiàn)場"流或來自在存儲設(shè) 備中先前記錄的流。
[0090] 不同的MV精度
[0091] 在多個編碼場景中,當(dāng)編碼屏幕捕捉視頻或其它人工創(chuàng)造的視頻內(nèi)容時,大部分 MV值表示整數(shù)樣本空間位移,并且非常少的MV值表示分?jǐn)?shù)樣本空間位移。這提供了機會來 減少MV精度以改善整體性能。
[0092] 圖7a示出了帶有具有整數(shù)樣本空間位移的MV(720)的運動補償。MV(720)指示向左 的四個樣本以及一個向上樣本的空間位移,相對于當(dāng)前塊的參考圖片中的共同定位位置 (710)。例如,對于在當(dāng)前圖片中位置(64,96)處的4x4當(dāng)前塊,MV(720)表示4x4預(yù)測區(qū)域 (730) ,其在參考圖片上的位置是(60,95)。預(yù)測區(qū)域(730)包括在參考圖片中整數(shù)樣本位置 處的重構(gòu)的樣本值。編碼器或解碼器不需要執(zhí)行插值來確定預(yù)測區(qū)域(730)的值。
[0093] 圖7b示出了帶有具有分?jǐn)?shù)樣本空間位移的MV(721)的運動補償。MV(721)指示向左 的3.75個樣本和向上的0.5個樣本的空間位移,相對于當(dāng)前塊在參考圖片中共同定位的位 置(710)。例如,對于在當(dāng)前圖片中位置(64,96)處的4x4當(dāng)前塊,MV(721)指示4x4預(yù)測區(qū)域 (731) ,其在參考圖片上的位置是(60.25,95.5)。預(yù)測區(qū)域(731)包括在參考圖片中分?jǐn)?shù)樣 本位置處的插值樣本值。編碼器或解碼器執(zhí)行插值來確定預(yù)測區(qū)域(731)的樣本值。當(dāng)允許 分?jǐn)?shù)樣本空間位移時,存在可以與當(dāng)前塊匹配的多個候選預(yù)測區(qū)域,并因此運動補償預(yù)測 的質(zhì)量通常會改善至少一些類型的視頻內(nèi)容(例如,自然視頻)。
[0094] 當(dāng)MV精度對于視頻的單位是整數(shù)樣本精度時,在該單位中的塊的所有的MV值表示 整數(shù)樣本空間位移。當(dāng)MV精度對于視頻的單位是分?jǐn)?shù)樣本精度時,在該單位中的塊的MV值 可以表示分?jǐn)?shù)樣本空間位移或整數(shù)樣本空間位移。也就是,當(dāng)MV精度對視頻的單位是分?jǐn)?shù) 樣本精度時,在該單位中塊的一些MV值可以表示分?jǐn)?shù)樣本空間位移,而在該單位中塊的其 它MV值指示整數(shù)樣本空間位移。
[0095] 當(dāng)使用運動估計和運動補償對塊進行編碼時,編碼器通常計算在塊的樣本值及其 運動補償預(yù)測之間的逐樣本差(也稱作殘差值或誤差值)。然后對殘差值進行編碼。對于殘 差值,編碼效率取決于殘差值的復(fù)雜度以及引入多少損失或失真作為壓縮過程的一部分。 通常,良好的運動補償預(yù)測密切近似塊,從而殘差值是可以有效編碼的小幅度差。在另一方 面,不良的運動補償預(yù)測通常產(chǎn)生包括較大幅度值的殘差值,其更難以有效編碼。編碼器通 ?;ㄙM大比例的編碼時間執(zhí)行運動估計,試圖找到良好的匹配,并因此改善率失真性能。
[0096] 當(dāng)編碼解碼器使用具有整數(shù)樣本MV精度的MV值時,編碼器和解碼器不需要針對運 動補償在參考圖片的樣本值之間執(zhí)行插值操作,因為MV值指示整數(shù)樣本空間位移。當(dāng)編碼 解碼器使用具有分?jǐn)?shù)樣本MV精度的MV值時,編碼器和解碼器可以針對運動補償在參考圖片 的樣本值之間執(zhí)行插值操作(至少對于指示分?jǐn)?shù)樣本空間位移的MV值增加了計算復(fù)雜度), 但是相對于整數(shù)樣本MV精度,運動補償預(yù)測趨向于更密切近似塊(導(dǎo)致具有較小有效值的 殘差值)。
[0097] C.MV值的表示
[0098] 通常利用含義取決于相關(guān)聯(lián)的MV精度的整數(shù)值來表示MV值。對于整數(shù)樣本MV精 度,例如,整數(shù)值1指示1個樣本的空間位移,整數(shù)值2表示2個樣本的空間位移,等等。對于1/ 4樣本MV精度,例如,整數(shù)值1指示0.25個樣本的空間位移。整數(shù)值2、3、4和5分別指示0.5、 0.75、1.0和1.25個樣本的空間位移。不管MV精度,整數(shù)值可以指示空間位移的幅度,并且分 開的標(biāo)志值可以指示位移是正的還是負(fù)的??梢岳脙蓚€整數(shù)值表示給定的MV值的水平MV 分量和垂直MV分量。因此,表示MV值的兩個整數(shù)值的含義取決于MV精度。例如,對于具有2樣 本水平位移以及沒有垂直位移的MV值,如果MV精度是1/4樣本MV精度,則MV值表示為(8,0)。 然而,如果MV精度是整數(shù)樣本MV精度,則MV值表示為(2,0)。
[0099]在編碼視頻數(shù)據(jù)的比特流中的MV值通常是熵編碼的(例如,基于MV分量方式)。還 可以相對于預(yù)測MV值不同地對MV值進行編碼(例如,基于MV分量方式)。在許多情況下,MV值 等于預(yù)測的MV值,從而差分MV值為零,其可以被非常有效地編碼??梢岳弥笖?shù)哥倫布編 碼、上下文自適應(yīng)二進制算術(shù)編碼或熵編碼的另一形式,對差分MV值(或在不使用MV預(yù)測時 的MV值)進行熵編碼。雖然在MV值(或差分MV值)和編碼比特之間的確切關(guān)系取決于所使用 的熵編碼形式,但一般而言,較小的值會被更有效地編碼(也就是,利用較少的比特),這是 因為它們更普通,而較大的值會被效率較低地編碼(也就是,利用更多的比特),這是因為它 們較不常見。
[0100] D.自適應(yīng)MV精度一介紹
[0101] 為了總結(jié)先前的三個部分,使用具有整數(shù)樣本MV精度的MV值趨向于降低與用信號 傳遞MV值相關(guān)聯(lián)的比特率,并降低編碼和解碼的計算復(fù)雜度(通過避免在參考圖片中分?jǐn)?shù) 樣本位置處樣本值的插值),但是可能降低運動補償預(yù)測的質(zhì)量,并因此至少對于一些類型 的視頻內(nèi)容,增加殘差值的幅度。在另一方面,使用具有分?jǐn)?shù)樣本MV精度的MV值趨向于增加 與用信號傳遞MV值相關(guān)聯(lián)的比特率,并增加編碼和解碼的計算復(fù)雜度(通過包括在參考圖 片中分?jǐn)?shù)樣本位置處的樣本值的插值),但是可能改善運動補償預(yù)測的質(zhì)量,并至少對于一 些類型的視頻內(nèi)容,減小殘差值的幅度。通常,計算復(fù)雜度、用信號傳遞MV值的比特率以及 運動補償預(yù)測的質(zhì)量隨著MV精度增加而增加(例如,從整數(shù)樣本到1/2樣本,或從1/2樣本到 1/4樣本),直到收益遞減點。同時,雖然增加的MV精度趨向于增加用信號傳遞MV值所需的比 特率,但在編碼自然內(nèi)容時,運動補償預(yù)測的質(zhì)量中的相關(guān)聯(lián)改善可能減少發(fā)送殘差值的 足夠近似所需的比特率,并因此減少用足夠圖片質(zhì)量編碼視頻內(nèi)容所需的總比特率。
[0102] 當(dāng)對屏幕捕捉視頻或其它人工創(chuàng)造的視頻內(nèi)容進行編碼時,分?jǐn)?shù)樣本MV精度的添 加成本(在比特率和計算復(fù)雜度方面)可能是不公平的。例如,如果大部分MV值表示整數(shù)樣 本空間位移,而只有非常少的MV值表示分?jǐn)?shù)樣本空間位移,則不能保證分?jǐn)?shù)樣本MV精度的 添加成本。編碼器可以在運動估計期間略過搜索分?jǐn)?shù)樣本位置(并略過插值操作以確定分 數(shù)樣本位置處的樣本值)。對于這種內(nèi)容,通過使用具有整數(shù)樣本MV精度的MV值,可以減少 比特率和計算復(fù)雜度,而沒有對運動補償預(yù)測質(zhì)量的顯著懲罰。
[0103] 由于分?jǐn)?shù)樣本MV精度對于其它類型的視頻內(nèi)容(例如,攝像機捕捉到的自然視頻) 可能仍是有用的,所以編碼器和解碼器可以適于在MV精度之間切換。例如,編碼器和解碼器 可以對于屏幕捕捉視頻使用整數(shù)樣本MV精度,但是對于自然視頻使用分?jǐn)?shù)樣本MV精度(例 如,1/4樣本MV精度)。在下一段中描述在選擇MV精度時編碼器可以遵從的方法。編碼器可以 利用比特流中的一個或多個語法元素向解碼器用信號傳遞所選擇的MV精度。
[0104] 在用信號傳遞MV精度的一種方法中,當(dāng)啟用自適應(yīng)選擇MV精度時,編碼器逐切片 選擇MV精度。在序列參數(shù)集("SPS")、圖片參數(shù)集("PPS")或其它語法結(jié)構(gòu)中的標(biāo)記值指示 是否啟用MV精度的自適應(yīng)選擇。如果是,則在給定切片的切片標(biāo)題中的一個或多個語法元 素指示對所述切片的塊的所選擇的MV精度。例如,標(biāo)記值0指示1/4樣本MV精度,標(biāo)記值1指 示整數(shù)樣本MV精度。
[0105] 在用信號傳遞MV精度的另一方法中,編碼器逐圖片或逐切片選擇MV精度。PPS中的 語法元素指示三種MV精度模式之一 :(0)對于與PPS相關(guān)聯(lián)的圖片的切片的MV值的1/4樣本 MV精度,(1)對于與PPS相關(guān)聯(lián)的圖片的切片的MV值的整數(shù)樣本MV精度,或(2)取決于每切片 標(biāo)題用信號傳遞的標(biāo)記值的切片自適應(yīng)MV精度,其中在切片的切片標(biāo)題中的標(biāo)記值可以針 對切片的MV值指示1/4樣本MV精度或整數(shù)樣本MV精度。對于在一個實現(xiàn)方式中關(guān)于該方法 的額外細(xì)節(jié),參見JCTVC-P0277。
[0106] 在用信號傳遞MV精度的另一方法中,當(dāng)啟用MV精度的自適應(yīng)選擇時,編碼器逐CU 選擇MV精度。對于給定CU的結(jié)構(gòu)中的一個或多個語法元素指示所述CU的塊的所選擇的MV精 度。例如,在CU的CU語法結(jié)構(gòu)中的標(biāo)記值表示對于與CU相關(guān)聯(lián)的所有PU的MV值是具有整數(shù) 樣本MV精度還是1/4樣本MV精度。對于在一個實現(xiàn)方式中關(guān)于該方法的額外細(xì)節(jié),參見 JCTVC-P0283。
[0107] 在這些方法的任一個中,編碼器和解碼器可以針對水平和垂直MV分量使用不同的 MV精度。當(dāng)對已經(jīng)水平或垂直縮放的屏幕捕捉視頻編碼(例如,利用在未縮放維度中的整數(shù) 樣本MV精度,以及利用在縮放維度中的分?jǐn)?shù)樣本MV精度)時,這可能是有用的。在一些實現(xiàn) 方式中,如果不能單獨通過調(diào)整QP值而實現(xiàn)率控制,則編碼器可以水平或垂直調(diào)整屏幕捕 捉視頻的大小以減小比特率,然后對調(diào)整大小后的視頻進行編碼。在解碼器側(cè),在解碼后將 視頻縮放回其原始維度。編碼器可以用信號傳遞水平MV分量的MV精度(例如,利用第一標(biāo)記 值或語法元素)并還可以用信號傳遞垂直MV分量的MV精度(例如,利用第二標(biāo)記值或語法元 素)到解碼器。
[0108] 更一般地,當(dāng)啟用MV精度的自適應(yīng)選擇時,編碼器以某種方式選擇MV精度并用信 號傳遞所選的MV精度。例如,在SPS、PPS或其它語法結(jié)構(gòu)中的標(biāo)記值可以表示是否啟用自適 應(yīng)選擇MV精度。當(dāng)啟用自適應(yīng)MV精度時,在序列-層語法、圖片組-層語法("G0P-層語法")、 圖片-層語法、切片-層語法、瓦片-層語法、塊-層語法或其它語法結(jié)構(gòu)中的一個或多個語法 元素可以指示MV值的所選的MV精度。或者,在序列-層語法、G0P-層語法、圖片-層語法、切 片-標(biāo)題-層語法、切片-數(shù)據(jù)-層語法、瓦片-層語法、塊-層語法或其它語法結(jié)構(gòu)中的一個或 多個語法元素可以指示不同MV分量的MV精度。當(dāng)存在兩個可用MV精度時,標(biāo)記值可以指示 在兩個MV精度之間的選擇。當(dāng)存在更多可用MV精度時,整數(shù)值可以指示在這些MV精度之間 的選擇。
[0109] 除了修改用信號傳遞/解析指示所選MV精度的語法元素外,可以修改解碼以改變 取決于所選MV精度如何解釋用信號傳遞的MV值。如何編碼和重構(gòu)MV值的細(xì)節(jié)可以取決于MV 精度而變化。例如,當(dāng)MV精度是整數(shù)樣本精度時,可以對預(yù)測到的MV值化整為最接近的整 數(shù),并且差分MV值可以指示整數(shù)樣本偏移?;蛘?,當(dāng)MV精度是1/4樣本精度時,可以對預(yù)測的 MV值化整到最接近的1/4樣本偏移,并且差分MV值可以指示1/4樣本偏移?;蛘?,可以用某種 其它方式用信號傳遞MV值。當(dāng)MV值具有整數(shù)樣本MV精度且視頻使用4:2:2或4:2:0色度采樣 時,可以通過縮放等導(dǎo)出色度MV值,這可能導(dǎo)致色度的1/2樣本位移。或者,可以將色度MV值 化整為整數(shù)值。
[0110] E.選擇MV精度的方法
[0111] 當(dāng)在視頻編碼期間自適應(yīng)MV精度時,編碼器針對視頻的單位選擇MV精度。編碼器 可以基于來自適配源的線索(hint)選擇MV精度來使用(參見以下的方法1)。例如,視頻源可 以指示視頻是屏幕捕捉內(nèi)容或自然視頻(由攝像機捕捉到的)。或者編碼器可以基于對各種 MV精度的詳盡評估來選擇MV精度(參見以下的方法2)。或者,編碼器可以基于分析來自先前 單元的統(tǒng)計數(shù)據(jù)和/或正在編碼的當(dāng)前單位的統(tǒng)計數(shù)據(jù)來選擇MV精度(參見下文的方法3-4) 〇
[0112] 對選擇MV精度的一些方法進行自適應(yīng)于屏幕捕捉編碼場景。當(dāng)編碼任意類型的視 頻內(nèi)容時更一般地應(yīng)用其它方法。
[0113] 在本段描述的一些例子中,編碼器在使用1/4樣本MV精度和整數(shù)樣本MV精度之間 進行選擇。更一般地,編碼器在多個可用MV精度之間進行選擇,其可以包括整數(shù)樣本MV精 度、1 /2樣本MV精度、1 /4樣本MV精度和/或另一MV精度。
[0114] 當(dāng)編碼器針對視頻的單位選擇MV精度時,視頻的單位可以是序列、G0P、圖片、切 片、瓦片、CU、PU、其它塊或其它類型的視頻的單位。取決于在復(fù)雜度和靈活度之間期望的權(quán) 衡,以高度局部基礎(chǔ)(例如,逐CU)、較大的逐區(qū)域(例如,逐瓦片或逐切片)、整個圖片基礎(chǔ)、 或者更全局的基礎(chǔ)(例如,每個編碼會話、每個序列、每個G0P、或檢測到的場景變化之間的 每個圖片序列)選擇MV精度可能是合適的。
[0115] 1.使用來自應(yīng)用、操作系統(tǒng)或視頻源的線索的方法
[0116]編碼器可以基于由應(yīng)用、操作系統(tǒng)或視頻源用信號傳遞的線索來選擇MV精度。例 如,線索可以指示將被編碼的視頻內(nèi)容由特定應(yīng)用呈現(xiàn),所述應(yīng)用例如是文字處理器、電子 表單應(yīng)用或網(wǎng)絡(luò)瀏覽器(不具有嵌入式視頻區(qū)域,其可以是自然視頻內(nèi)容)。利用這種應(yīng)用 呈現(xiàn)可以趨向于僅產(chǎn)生內(nèi)容的整數(shù)樣本空間位移?;谶@種線索,編碼器可以選擇整數(shù)樣 本MV精度。對于以文字處理器、電子表單應(yīng)用、網(wǎng)絡(luò)瀏覽器或不經(jīng)常呈現(xiàn)自然視頻內(nèi)容的其 它應(yīng)用呈現(xiàn)的內(nèi)容,整數(shù)樣本MV精度可能優(yōu)于分?jǐn)?shù)樣本MV精度。(但是當(dāng)已經(jīng)對視頻調(diào)整大 小時,分?jǐn)?shù)樣本MV精度可能是更可取的。)
[0117] 或者,線索可以指示通過屏幕捕捉模塊或者通常輸送人工創(chuàng)造的視頻內(nèi)容的其它 視頻源輸送視頻內(nèi)容。對于這種內(nèi)容,整數(shù)樣本MV精度可能優(yōu)于分?jǐn)?shù)樣本MV精度,從而編碼 器選擇整數(shù)樣本MV精度。(但是當(dāng)已經(jīng)對視頻調(diào)整大小時,分?jǐn)?shù)樣本MV精度可能是更可取 的。)
[0118] 在另一方面,如果線索指示視頻內(nèi)容是由攝像機、DVD或其它磁盤或調(diào)諧卡輸送的 或者由視頻播放器呈現(xiàn)的,則編碼器可以選擇分?jǐn)?shù)樣本MV精度。對于這種內(nèi)容,分?jǐn)?shù)樣本MV 精度可能優(yōu)于整數(shù)樣本MV精度。
[0119] 線索可以應(yīng)用于編碼會話、一系列幀、單個視頻幀或部分視頻幀(例如,對應(yīng)于與 應(yīng)用相關(guān)聯(lián)的窗口的區(qū)域)。
[0120] 在一些情況下,編碼器可能不接收或可能不能解釋視頻源、操作系統(tǒng)或應(yīng)用提供 的關(guān)于視頻內(nèi)容本質(zhì)的線索?;蛘撸€索可能是不正確的或令人誤解的(例如,對于包括自 然視頻內(nèi)容和人工創(chuàng)造的視頻內(nèi)容的混合內(nèi)容視頻,或?qū)τ谝呀?jīng)調(diào)整大小的視頻)。在這種 情況下,編碼器可以使用另一方法確定應(yīng)該選擇哪個MV精度。
[0121] 2 ·強力編碼方法
[0122] 在選擇MV精度的另一組方法中,編碼器利用不同的MV精度對視頻的單位多次進行 編碼(例如,一次利用整數(shù)采樣MV精度,一次利用1/4樣本MV精度)。編碼器選擇提供最佳性 能的MV精度,并在對所述單位進行編碼用于輸出時使用所選的MV精度。視頻的單位可以是 塊、PU、CU、切片、瓦片、圖片、G0P、序列或其它類型的視頻的單位。通常,編碼器以這種方法 執(zhí)行多次編碼。
[0123] 為了評估哪個MV精度提供了最佳性能,編碼器可以在編碼單位期間使用不同MV精 度時,確定率失真成本,并選擇具有最低率失真成本的選項。率失真成本具有失真成本D和 比特率成本R,其具有因子λ(通常稱作拉格朗日乘子),該因子相對失真成本,對比特率成本 加權(quán)(D+AR)或反之亦然(R+λ?)。比特率成本可以是估計的或?qū)嶋H的比特率成本。通常,失真 成本基于對原始樣本和重構(gòu)樣本的比較。可以將失真成本測量為絕對差的和("SAD")、絕對 Hadamard變換差的和("SAHD")或絕對變換差的其它和("SATD")、平方誤差的和("SSE")、均 方誤差("MSE")、均值方差或另一失真基準(zhǔn)。因子λ可以在編碼期間變化(例如,當(dāng)量化步長 較大時增加比特率成本的相對權(quán)重)。率失真成本通常提供對不同MV精度選項性能的最準(zhǔn) 確的評估,但還具有最高的計算復(fù)雜度。
[0124] 編碼器可以將率失真成本函數(shù)的一個或多個項改變?yōu)槭孤适д娣治龀蛘麛?shù)樣 本MV精度選項偏置。例如,當(dāng)利用率失真分析在多個MV精度之間進行決策以確定視頻的單 位的MV精度時,通過縮放失真成本,對失真成本增加懲罰,縮放比特率成本,向比特率成本 增加懲罰和/或調(diào)整拉格朗日乘子因子,使率失真分析朝向整數(shù)樣本MV精度偏置。當(dāng)評估分 數(shù)樣本MV精度時,編碼器可以按比例放大失真成本(通過大于1的因子),按比例放大比特率 成本(通過大于1的因子),增加失真懲罰,增加比特率懲罰和/或使用較大的拉格朗日乘子 因子。或者,當(dāng)評估整數(shù)樣本MV精度時,編碼器可以按比例縮小失真成本(通過小于1的因 子),按比例縮小比特率成本(通過小于1的因子),和/或使用較小的拉格朗日乘子因子。
[0125] 編碼器可以在編碼期間改變朝向或背離整數(shù)樣本MV精度的偏置程度。例如,編碼 器可以取決于整數(shù)樣本MV值可能更適合編碼視頻內(nèi)容(例如,當(dāng)視頻內(nèi)容可能是人工創(chuàng)造 的內(nèi)容時增加朝向整數(shù)樣本MV精度的偏置)的置信度而朝向整數(shù)樣本MV精度調(diào)整偏置?;?者,編碼器可以取決于編碼和/或解碼的計算能力而朝向整數(shù)樣本MV精度調(diào)整偏置(例如, 當(dāng)可用計算能力較低時增加朝向整數(shù)樣本MV精度的偏置)。
[0126] 替代地,編碼器可以使用另一方法來評估哪個MV精度提供最佳性能。例如,編碼器 針對給定的量化步長測量哪個MV精度導(dǎo)致最低比特的編碼數(shù)據(jù)?;蛘撸幋a器僅對使用不 同MV精度的編碼的失真進行評估?;蛘撸幋a器使用采樣器測量,例如,與整數(shù)樣本MV精度 相比分?jǐn)?shù)樣本MV精度的失真減少益處,其可以最夠簡單以確定單次編碼。例如,當(dāng)使用分?jǐn)?shù) 樣本MV精度時,與使用整數(shù)樣本MV精度時相比,編碼器檢查失真減少的量(按照SAD、SATD、 TSE、MSE或其它失真基準(zhǔn))。
[0127] 強力編碼方法可以是計算密集的。與使用固定MV精度編碼相比,它們可能涉及大 量額外計算、額外存儲器存儲以及額外的存儲器讀取和寫入操作。
[0128] 3.使用內(nèi)容分析的方法
[0129] 在選擇MV精度的另一方法集中,編碼器基于對輸入視頻內(nèi)容和/或編碼視頻內(nèi)容 的分析針對視頻的單位選擇MV精度。視頻的單位可以是塊、PB、PU、CU、CTU、子宏塊分割、宏 塊、切片、瓦片、圖片、GOP、序列或其它類型的視頻的單位。
[0130]圖8示出了在編碼期間自適應(yīng)MV精度的技術(shù)(800)??梢酝ㄟ^編碼器執(zhí)行技術(shù) (800),所述編碼器例如參考圖3或圖4a和4b所描述的或者通過其它編碼器。根據(jù)技術(shù) (800 ),在對視頻編碼期間,編碼器從視頻的單位的多個MV精度確定MV精度。多個MV精度可 以包括一個或多個分?jǐn)?shù)樣本MV精度以及整數(shù)樣本MV精度。例如,多個MV精度可以包括整數(shù) 樣本MV精度和1/4樣本MV精度。或者,多個MV精度可以包括整數(shù)樣本MV精度、1/2樣本MV精度 和1/4樣本MV精度。
[0131 ]具體地,當(dāng)對視頻的單位進行編碼時,編碼器確定(810)是否改變MV精度。在編碼 開始時,編碼器可以根據(jù)默認(rèn)值初始設(shè)置MV精度,或者就像改變MV精度一樣進行。對于視頻 的后面的單位,編碼器可以使用當(dāng)前MV精度(其用于一個或多個先前編碼的單位)或改變MV 精度。例如,編碼器可以在發(fā)生定義事件時(例如,在對閾值數(shù)量的單位進行編碼之后,在場 景變化之后,在確定已經(jīng)改變了視頻類型之后)決定改變MV精度。
[0132] 為了改變MV精度,編碼器收集(820)關(guān)于視頻的信息。通常,所收集到的信息可以 是輸入視頻的特性或經(jīng)編碼視頻的特性。所收集到的信息可以涉及視頻的正在被編碼的當(dāng) 前單位和/或涉及先前編碼的單位。(當(dāng)所收集到的信息涉及視頻的一個或多個先前編碼的 單位時,可以在編碼先前單位之前、期間或之后收集(820)這種信息。該收集(820)不同于圖 8所示的定時,而且不管關(guān)于改變MV精度的決策(810)而發(fā)生)。編碼器然后至少部分地基于 所收集到的信息選擇(830)針對視頻的單位的MV精度。
[0133] 作為一個例子,編碼器可以收集針對當(dāng)前單位的樣本值。少量離散樣本值的存在 趨向于表示屏幕捕捉內(nèi)容,并因此暗示應(yīng)該選擇整數(shù)樣本MV精度。在另一方面,大量離散樣 本值的存在傾向于指示自然視頻,并因此暗示應(yīng)該選擇分?jǐn)?shù)樣本MV精度??梢詫颖局到M 織為直方圖。可以從YUV顏色空間中的僅亮度(Y)樣本、從YUV顏色空間中的亮度和色度(U, V)樣本、從RGB顏色空間中的R、G和B樣本或從RGB顏色空間中的僅G(或R或B)樣本收集樣本 值。例如,當(dāng)選擇MV精度時,編碼器在所收集到的樣本值中確定不同的樣本值的計數(shù)。編碼 器比較該計數(shù)與閾值。如果計數(shù)低于閾值,則編碼器選擇整數(shù)樣本MV精度。如果計數(shù)高于閾 值,則編碼器選擇分?jǐn)?shù)樣本MV精度。可以利用任一選項處理邊界條件(計數(shù)等于閾值),取決 于實現(xiàn)方式?;蛘撸幋a器考慮來自所收集到的樣本值的統(tǒng)計。例如,編碼器確定最常見的 收集樣本值X是否占樣本值的多于y%。如果是,則編碼器選擇整數(shù)樣本MV精度;否則,編碼 器選擇分?jǐn)?shù)樣本MV精度。X和y的值取決于實現(xiàn)方式。X的值可以是10或者一些其它計數(shù)。y的 值可以是80、90或一些其它小于100的百分比。
[0134] 作為另一例子,編碼器可以針對用各自的MV精度編碼的當(dāng)前單位的塊收集失真測 量。例如,當(dāng)使用分?jǐn)?shù)樣本MV精度時,與整數(shù)樣本MV精度相比,編碼器記錄失真中的改善(減 ?。.?dāng)選擇MV精度時,編碼器確定失真的減小是否證明MV精度的增加。
[0135] 再如,編碼器可以收集針對一個或多個先前單位的MV值(具有分?jǐn)?shù)樣本MV精度)。 可以根據(jù)其分?jǐn)?shù)部分的值組織所收集的MV值,例如,對于1/4樣本MV精度MV值,在直方圖中 對于分?jǐn)?shù)部分為〇的MV值的二進數(shù)(b in ),對于分?jǐn)?shù)部分為0.25的MV值的二進數(shù),對于分?jǐn)?shù) 部分為〇. 5的MV值的二進數(shù),以及對于分?jǐn)?shù)部分為0.75的MV值的二進數(shù)。在下一段中將描述 該方法的低復(fù)雜度變型。
[0136] 例如,編碼器可以收集關(guān)于使用分?jǐn)?shù)樣本MV精度編碼的塊的MV數(shù)據(jù)(差分MV值)的 編碼比特的計數(shù)的信息。差分MV值的低平均數(shù)量的比特指示常規(guī)(可預(yù)測)運動,并且在整 數(shù)樣本MV精度合適時更常見。用于差分MV值的高平均數(shù)比特在分?jǐn)?shù)樣本MV精度合適時更常 見。當(dāng)選擇MV精度時,編碼器在差分MV值的編碼比特的計數(shù)中測量比特的平均(或中間)數(shù)。 編碼器比較測量與閾值。如果測量低于閾值,則編碼器選擇整數(shù)樣本MV精度。如果測量高于 閾值,則編碼器選擇分?jǐn)?shù)樣本MV精度。可以使用任意選項處理邊界條件(測量等于閾值),取 決于實現(xiàn)方式。
[0137] 再如,當(dāng)編碼單位時,編碼器評估單位的每個塊(例如,PU)的多個MV精度,并且收 集每個塊指示哪個MV精度為所述塊提供最佳性能的信息。當(dāng)使用整數(shù)樣本MV精度對塊進行 編碼時,編碼器可以確定率失真成本(例如,D+AR);并還在使用分?jǐn)?shù)樣本MV精度對塊進行編 碼時,確定率失真成本(例如,D+AR)。編碼器確定有多少次多個MV精度中的每個對單位中的 各個塊是最佳的,并選擇具有最大計數(shù)的MV精度。例如,對于圖片中的每個塊,當(dāng)使用整數(shù) 樣本MV精度對塊進行編碼時,編碼器確定率失真成本;并還在使用1/4樣本MV精度對塊進行 編碼時,確定率失真成本。編碼器對次數(shù)整數(shù)樣本MV精度計數(shù)更好,并且對次數(shù)1/4樣本MV 精度計數(shù)更好,然后挑選兩者中較高者。替代地,編碼器確定對多少次整數(shù)樣本MV精度計數(shù) 對于單位的塊最佳,然后僅在計數(shù)高于單位中塊的數(shù)量的閾值百分比時選擇整數(shù)樣本MV精 度。在一些實現(xiàn)方式中,編碼器考慮具有MV任意值的塊。在其它實現(xiàn)方式中,編碼器僅考慮 具有非零值MV的塊??梢詫o定單位的塊執(zhí)行多個MV精度的該塊方式的評估,以便選擇針 對一個或多個后續(xù)單位的MV精度,而不管用于給定單位的MV精度模式?;蛘?,可以針對給定 單位執(zhí)行多個MV精度的塊方式評估,以便為給定單位選擇MV精度。
[0138] 替代地,編碼器使用另一方法來收集信息并至少部分地基于所選的信息選擇MV精 度。
[0139] 返回圖8,不管MV精度是否變化,編碼器使用所選的MV精度對單位進行編碼(840)。 在視頻的單位內(nèi)的塊(例如,PU、宏塊或其它塊)的MV值具有所選的MV精度。編碼器例如以比 特流輸出用于當(dāng)前單位的編碼數(shù)據(jù)。編碼數(shù)據(jù)可以包括指示所選的MV精度的語法元素。 [0140]編碼器決定(850)是否繼續(xù)下一單位。如果是,則編碼器決定(810)是否改變針對 下一單位的MV精度。因此,可以選擇針對每個單位(例如,每段、每G0P、每圖片、每切片、每 CTU、每CU、每PU、每PB、每宏塊、每子宏塊分割)的MV精度。或者,為了減小復(fù)雜度,單位的MV 精度可以不時變化(例如,周期性或當(dāng)發(fā)生預(yù)定事件時),然后對于一個或多個后續(xù)單位重 復(fù)。
[0141] 當(dāng)編碼器逐圖片使用相同的瓦片模式時,編碼器可以逐圖片重復(fù)每瓦片MV精度。 逐圖片共同定位的瓦片可以使用相同的MV精度。類似地,逐圖片共同定位的切片可以使用 相同的MV精度。例如,假設(shè)視頻描繪了計算機桌面,并且部分桌面具有顯示自然視頻內(nèi)容的 窗口??梢灾饒D片在桌面的區(qū)域內(nèi)使用分?jǐn)?shù)樣本MV精度,而顯示文本或其它呈現(xiàn)內(nèi)容的其 它區(qū)域使用整數(shù)樣本MV精度編碼。
[0142] 在該方法集中,編碼器可以使用單次編碼。對于正在編碼的視頻的當(dāng)前單位,用于 當(dāng)前單位的所選的MV精度至少部分地取決于從視頻的一個或多個先前單位所收集到的信 息(以編碼順序,其還被稱作解碼順序或比特流順序,而不是輸入順序,其還被稱作時間順 序、輸出順序或顯示順序)。
[0143] 替代地,在該方法集中,編碼器可以利用短的預(yù)見性窗口使用多次編碼或解碼(有 時稱作1.5次編碼)。對于正在編碼的視頻的當(dāng)前單位,所選的MV精度至少部分地取決于從 當(dāng)前單位收集到的信息。選擇的針對當(dāng)前單位的MV精度還可以至少部分地取決于從視頻的 一個或多個先前單位收集到的信息(以編碼順序而非輸入順序)。
[0144] 在該方法集中,編碼器可以至少部分地基于整數(shù)樣本MV精度是合適的置信度,調(diào) 整朝向或背離整數(shù)樣本MV精度的偏置量。編碼器還可以至少部分地基于編碼和/或解碼的 計算能力(如果較少計算能力可用,則優(yōu)選整數(shù)樣本MV精度來減少計算復(fù)雜度),調(diào)整朝向 或背離整數(shù)樣本MV精度的偏置量。例如,為了優(yōu)選整數(shù)樣本MV精度,編碼器可以調(diào)整在比較 操作中使用的閾值,以使得更可能選擇整數(shù)樣本MV精度。
[0145] 在該方法集中,所選的MV精度可以用于視頻的單位內(nèi)的塊的MV值的水平MV分量 和/或垂直MV分量,其中允許水平MV分量和垂直MV分量具有不同的MV精度?;蛘撸x的MV 精度可以用于視頻的單位內(nèi)的塊的MV值的水平MV分量和垂直MV分量兩者,其中水平MV分量 和垂直MV分量具有相同的MV精度。
[0146] 在該方法集中,(例如,比特流中的)編碼視頻包括指示單位的所選MV精度的一個 或多個語法元素。替代地,編碼視頻可能缺乏指示該單位的所選MV精度的任何語法元素(參 見下文,在關(guān)于非規(guī)范方法的段中)。例如,即使比特流支持用新號傳遞具有分?jǐn)?shù)樣本MV精 度的MV值,編碼器可以將視頻的單位的運動估計約束到僅使用具有分?jǐn)?shù)部分為0的MV值。這 可以通過避免插值操作而產(chǎn)生編碼和解碼的計算復(fù)雜度。
[0147] 4.使用低復(fù)雜度內(nèi)容分析的方法
[0148] 為了簡化決策制定過程,編碼器可以在選擇MV精度之前考慮較小的數(shù)據(jù)集,或者 當(dāng)選擇MV精度時使用較簡單的決策邏輯,避免多次編碼。
[0149] 圖9示出了利用低復(fù)雜度方法在編碼期間自適應(yīng)MV精度的技術(shù)(900)??梢酝ㄟ^編 碼器執(zhí)行技術(shù)(900),所述編碼器例如是參考圖3或圖4a和4b所描述的,或者通過其它編碼 器。技術(shù)(900)詳述了一種收集關(guān)于視頻的信息并至少部分地基于收集到的信息選擇MV精 度的方法,如參考圖8所描述的。
[0150] 根據(jù)技術(shù)(900),在對視頻編碼期間,編碼器確定視頻的單位的MV精度。當(dāng)確定針 對所述單位的MV精度時,編碼器識別(910)具有分?jǐn)?shù)樣本MV精度的MV值集合??梢栽试S該MV 值集合包括零值MV和非零值MV?;蛘撸梢詫V值集合約束為僅包括非零值MV?;蛘?,還可 以將MV值集合約束為僅包括來自具有特定塊尺寸或更大塊尺寸的塊的非零值MV。
[0151] 編碼器至少部分地基于在MV值集合中分?jǐn)?shù)部分為零的MV值的流行而選擇(920)針 對單位的MV精度??梢愿鶕?jù)分?jǐn)?shù)部分為零的MV值集合的分?jǐn)?shù)來測量所述流行。例如,對于圖 片,編碼器可以確定分?jǐn)?shù)部分為零的MV值的百分比?;蛘?,對于使用MV值集合的區(qū)域或區(qū)域 集,可以根據(jù)分?jǐn)?shù)部分為零的區(qū)域或區(qū)域集的分?jǐn)?shù)測量流行。如果分?jǐn)?shù)超過閾值,則選擇的 針對單位的MV精度是整數(shù)樣本MV進度。如果分?jǐn)?shù)沒有超過閾值,則選擇的針對單位的MV精 度是分?jǐn)?shù)樣本MV精度??梢允褂萌我膺x項處理邊界條件(分?jǐn)?shù)等于閾值),取決于實現(xiàn)方式。
[0152] 選擇(920)針對單位的MV精度還可以至少部分地基于非零值MV的流行,從而當(dāng)存 在閾值量的非零值MV時允許切換到整數(shù)樣本MV精度??梢砸苑橇阒礛V的MV值的分?jǐn)?shù)的形 式,以使用非零值MV的塊的計數(shù)的形式,或者以使用非零值MV的區(qū)域或區(qū)域集的分?jǐn)?shù)的形 式,來測量非零值MV的流行。在這種情況下,可以從區(qū)域或區(qū)域集的非零值MV中識別出具有 分?jǐn)?shù)樣本MV精度的MV值集合。因此,編碼器可以考慮在作為非零值MV的MV集合中分?jǐn)?shù)部分 為零的非零值MV的流行。例如,當(dāng)滿足以下兩個條件時編碼器切換到整數(shù)樣本MV精度:(1) 檢測到足夠大量的非零值MV,以及(2)在非零值MV集合中,存在足夠多的分?jǐn)?shù)部分為零的非 零值MV(或者替代地,足夠少的具有非零分?jǐn)?shù)部分的非零值MV)。可以通過對MV值進行計數(shù) (不管其相關(guān)聯(lián)的塊大?。蛲ㄟ^考慮MV值的相關(guān)聯(lián)的塊大小(例如,因為一些MV值被應(yīng)用 于比其它塊大的塊中),來確定非零值MV的流行和具有分?jǐn)?shù)部分為零的MV值的流行。
[0153]編碼器使用選擇的針對單位的MV精度對該單位進行編碼。在視頻的單位中的塊 (例如,PU、宏塊或其它塊)的MV值具有該單位的選擇的MV精度。編碼器例如以比特流輸出用 于當(dāng)前單位的經(jīng)編碼的數(shù)據(jù)。經(jīng)編碼的數(shù)據(jù)可以包括指示選擇的針對單位的MV精度的語法 元素。
[0154]為了減少編碼器設(shè)置MV精度所花費的時間量,在選擇了針對單位的整數(shù)樣本MV精 度之后,選擇的MV精度可以用于后續(xù)視頻單位,直到事件使得MV精度切換回分?jǐn)?shù)樣本MV精 度。例如,事件可以是對定義數(shù)量的單位進行編碼、場景變化、或基于在編碼期間的觀察確 定切換回分?jǐn)?shù)樣本MV精度是有利的。
[0155] 在一個示例性實現(xiàn)方式中,編碼器對視頻的單位(例如,圖片、瓦片、切片或CU)僅 編碼一次。在開始時,編碼器使用1/4樣本MV精度對單位編碼。在編碼期間,編碼器確定MV值 的分?jǐn)?shù)部分是否是零。例如,編碼器測量MV值的什么分?jǐn)?shù)具有非零分?jǐn)?shù)部分?;蛘撸捎谝?些MV值比其它影響較大的圖片區(qū)域,所以編碼器測量圖片間預(yù)測區(qū)域的什么分?jǐn)?shù)使用具有 非零分?jǐn)?shù)部分的MV值(測量區(qū)域,而不是MV值的計數(shù))。如果分?jǐn)?shù)超過閾值(其取決于實現(xiàn)方 式,例如是75% ),則編碼器對于視頻的一個或多個后續(xù)單位切換到整數(shù)樣本MV精度。
[0156] 在該示例性實現(xiàn)方式中,在編碼器切換到整數(shù)樣本的MV精度之后,編碼器可以無 限期地保持整數(shù)樣本MV精度,或者直到至少臨時地定義的事件觸發(fā)切換回分?jǐn)?shù)樣本MV精 度。例如,所述事件可以是編碼特定數(shù)量的單位(例如,100個單位)?;蛘?,所述事件可以是 場景變化?;蛘撸鍪录梢允腔谠诰幋a時收集到的統(tǒng)計,確定切換回分?jǐn)?shù)樣本MV精度 可能是有利的。(可以在對一些有限量的區(qū)域編碼期間收集這種統(tǒng)計,以決定分?jǐn)?shù)樣本MV精 度對該區(qū)域更好,然后應(yīng)用于對于一個或多個單位切換MV精度)。
[0157] 不管視頻內(nèi)容是自然視頻內(nèi)容還是人工創(chuàng)造的視頻內(nèi)容,大部分視頻可能是靜止 的。例如,靜止部分可能是自然視頻中的固定背景或屏幕捕捉內(nèi)容中的固定內(nèi)容。視頻的靜 止部分具有零值MV,當(dāng)MV精度是分?jǐn)?shù)樣本MV精度時其分?jǐn)?shù)部分為零。存在大量零值MV將使 得考慮具有非零分?jǐn)?shù)部分的MV值的分?jǐn)?shù)的決策邏輯混亂。
[0158] 因此,編碼器可以從考慮中排除零值MV。圖10示出了包括(大部分)具有零值MV的 非移動部分(1001)和(大部分)具有非零值MV的兩個移動部分(1002、1003)的圖片1000。編 碼器考慮移動部分(1002、1003)中的非零值MV,但是不考慮非移動部分(1001)的MV值。當(dāng)分 數(shù)部分為零的非零值MV的分?jǐn)?shù)(在移動部分(1002、1003)中)超過閾值時(或者當(dāng)使用分?jǐn)?shù) 部分為零的非零MV的圖片的分?jǐn)?shù)(以區(qū)域的形式)超過閾值時),編碼器可以切換到整數(shù)樣 本MV精度。
[0159] 編碼器還可以檢查被評估超過閾值量的非零值MV的數(shù)量,從而基于少量MV值而不 做出決策。這可以使得決策制定過程更健壯。
[0160] 在另一示例性實現(xiàn)方式中,編碼器使用1/4樣本MV精度對給定的視頻的單位(例 如,圖片、瓦片、切片或CU)進行編碼。如果(1)多于X%的單位使用具有非零值MV的圖片間預(yù) 測,以及(2)多于y%的使用非零MV的單位部分具有整數(shù)值MV(分?jǐn)?shù)部分為零),則編碼器對 于視頻的一個或多個后續(xù)單位切換到整數(shù)樣本MV精度。X和y的值取決于實現(xiàn)方式,并且例 如可以分別是5和75。
[0161] 在類似的示例性實現(xiàn)方式中,編碼器使用1/4樣本MV精度對給定的視頻的單位(例 如,圖片、瓦片、切片或CU)進行編碼。如果(1)單位中多于z個PU具有非零值MV,以及(2)那些 PU中有多于y%具有整數(shù)值MV(分?jǐn)?shù)部分為零),則編碼器對于視頻的一個或多個后續(xù)單位 切換到整數(shù)樣本MV精度。z和y的值取決于實現(xiàn)方式,并且例如可以分別是100和75。
[0162] 較大區(qū)域的MV值可能比較小區(qū)域的MV值更可靠。編碼器可以限定評估那些MV值。 例如,編碼器可以僅為特定塊尺寸或更大(例如,16x16或更大)的塊評估MV值。
[0163] 在另一示例性實現(xiàn)方式中,編碼器使用1/4樣本MV精度對給定的視頻的單位(例 如,圖片、瓦片、切片或CU)進行編碼。如果(1)單位中多于z個PU是w X w或更大并具有非零 值MV,以及(2)那些PU中多于y%具有整數(shù)值MV(分?jǐn)?shù)部分為零),則編碼器對于視頻的一個 或多個后續(xù)單位切換到整數(shù)樣本MV精度?!?、 2和7的值取決于實現(xiàn)方式,并且例如可以分別 是16、100和75。
[0164] 5.非規(guī)范方法
[0165] 在大部分先前的例子中,編碼器在比特流中用信號傳遞在編碼數(shù)據(jù)中指示選擇的 MV精度的一個或多個語法元素。解碼器解析指示選擇的MV精度的語法元素,并根據(jù)選擇的 MV精度解釋MV值。
[0166] 替代地,在非規(guī)范方法中,編碼器并不用信號傳遞指示編碼器所選的MV精度的任 何語法元素。例如,編碼器在整數(shù)樣本MV精度和分?jǐn)?shù)樣本MV精度之間進行選擇,但是總是在 分?jǐn)?shù)樣本MV精度處對MV值進行編碼。編碼器在分?jǐn)?shù)樣本MV精度處重構(gòu)并應(yīng)用MV值。
[0167] 當(dāng)選擇整數(shù)樣本MV精度時,編碼器可以通過避免分?jǐn)?shù)樣本偏移處的樣本值的插 值,以及通過評估僅在整數(shù)樣本偏移處的候選預(yù)測區(qū)域,來簡化運動估計。另外,如果MV預(yù) 測產(chǎn)生分?jǐn)?shù)值(例如,使用時間MV預(yù)測),則編碼器可以僅考慮這些MV差,其可能導(dǎo)致在向分 數(shù)值MV預(yù)測添加 MV差時的整數(shù)值(例如,來自臨時MV預(yù)測)。在解碼期間,可以通過避免在分 數(shù)樣本偏移處的樣本值的插值而簡化運動補償。
[0168] 在前述段中描述的某些方法(例如,利用通過縮放失真成本和/或比特率成本的縮 放率失真成本,或添加失真成本懲罰或比特率成本懲罰,或調(diào)整權(quán)重因子)還可以適應(yīng)于非 規(guī)范方法。編碼器可以在編碼期間改變朝向或背離整數(shù)樣本MV精度的偏置程度。通過縮放、 懲罰和/或權(quán)重因子,編碼器可以取決于整數(shù)樣本MV值可能更適于編碼視頻內(nèi)容的置信度, 或取決于編碼或解碼的計算能力,而朝向整數(shù)樣本MV精度調(diào)整偏置。
[0169] 6.備選和變型
[0170] 在一些使用場景中,圖片的編碼順序(也稱作解碼順序或解碼的順序)不同于輸 入/攝像機捕捉和顯示的時間順序(也稱作顯示順序)。當(dāng)選擇MV精度時,編碼器可以考慮這 種重排序。例如,編碼器可以基于圖片的時間順序而不是圖片的編碼順序來選擇MV精度。 [0171]在本文描述的多個例子中,以分開的部件或過程實現(xiàn)BC內(nèi)預(yù)測和運動補償,并且 以分開的部件或過程實現(xiàn)BV估計和運動估計。替代地,BC內(nèi)預(yù)測可以實現(xiàn)為運動補償?shù)奶?殊情況,并BV估計可以實現(xiàn)為運動估計的特殊情況,對此,將當(dāng)前圖片用作參考圖片。在這 種實現(xiàn)方式中,BV值可以作為MV值用信號傳遞,但是用于BC內(nèi)預(yù)測(在當(dāng)前圖片內(nèi))而不是 圖片間預(yù)測。如本文使用的術(shù)語,"BC內(nèi)預(yù)測"表示在當(dāng)前圖片內(nèi)的預(yù)測,不管是使用圖片內(nèi) 預(yù)測模塊、運動補償模塊還是一些其它模塊提供預(yù)測。類似地,可以使用MV值或使用不同類 型的參數(shù)或語法元素來呈現(xiàn)BV值,并且可以使用圖片內(nèi)估計模塊、運動估計模塊或一些其 它模塊來提供BV估計。本文所描述的用于選擇MV精度的方法可以應(yīng)用于確定將用作BC內(nèi)預(yù) 測的BV值的MV值的精度(也就是,當(dāng)前圖片作為參考圖片)。
[0172] VI.創(chuàng)新特征
[0173] 除了下文呈現(xiàn)的權(quán)利要求外,本文描述的創(chuàng)新特征包括但不限于以下:
[0174]
[0175]
[0176] 考慮到可以應(yīng)用所公開的本發(fā)明的原理的多種可能實施例,可以認(rèn)識到的是,圖 示實施例僅是本發(fā)明的優(yōu)選示例,而不應(yīng)該認(rèn)為是限制本發(fā)明的范圍。而是,本發(fā)明的范圍 由后續(xù)權(quán)利要求所定義。因此,我們要求在這些權(quán)利要求的范圍和精神內(nèi)的所有內(nèi)容為我 們的發(fā)明。
【主權(quán)項】
1. 在具有視頻編碼器的計算設(shè)備中,一種方法包括: 對視頻進行編碼,包括確定針對所述視頻的單位的運動向量("MV")精度,其中針對在 所述視頻的所述單位內(nèi)的塊的MV值具有針對所述單位的MV精度,并且其中確定針對所述單 位的MV精度包括: 識別具有分?jǐn)?shù)樣本MV精度的一組MV值;以及 至少部分地基于在所述一組MV值內(nèi)分?jǐn)?shù)部分為零的MV值的流行,來選擇針對所述單位 的MV精度;以及 輸出經(jīng)編碼的視頻。2. 根據(jù)權(quán)利要求1所述的方法,其中: 根據(jù)分?jǐn)?shù)部分為零的所述一組MV值的分?jǐn)?shù)來測量所述流行;或者 區(qū)域或區(qū)域集使用所述一組MV值,并且根據(jù)使用分?jǐn)?shù)部分為零的MV值之一的區(qū)域或區(qū) 域集的分?jǐn)?shù)來測量所述流行。3. 根據(jù)權(quán)利要求2所述的方法,其中,如果所述分?jǐn)?shù)超過閾值,則所選擇的針對所述單 位的MV精度是整數(shù)樣本MV精度,并且其中,如果所述分?jǐn)?shù)沒有超過所述閾值,則所選擇的針 對所述單位的MV精度是分?jǐn)?shù)樣本MV精度。4. 根據(jù)權(quán)利要求1所述的方法,其中,所選擇的針對所述單位的MV精度是整數(shù)樣本MV精 度,其中所選擇的針對所述單位的MV精度還用于所述視頻的后續(xù)單位,直到事件引起切換 回所述分?jǐn)?shù)樣本MV精度,并且其中所述事件是: 對定義數(shù)量的單位進行編碼; 場景變化;或者 基于在編碼期間的觀察,確定切換回所述分?jǐn)?shù)樣本MV精度是有利的。5. 根據(jù)權(quán)利要求1所述的方法,其中,所述一組MV值: 被允許包括零值MV和非零值MV; 被約束為僅包括非零值MV;或 被約束為僅包括來自具有特定塊尺寸或更大塊尺寸的塊的非零值MV。6. 根據(jù)權(quán)利要求1所述的方法,其中,選擇針對所述單位的MV精度還至少部分地基于非 零值MV的流行,從而當(dāng)存在閾值量的非零值MV時允許切換到整數(shù)樣本MV精度,其中根據(jù)(a) 非零值MV的MV值的分?jǐn)?shù),(b)使用非零值MV的塊的計數(shù),或(c)使用非零值MV的區(qū)域或區(qū)域 集的分?jǐn)?shù),來測量非零值MV的流行,并且其中從所述區(qū)域或區(qū)域集的非零值MV中識別出具 有分?jǐn)?shù)樣本MV精度的所述一組MV值。7. 在具有視頻編碼器的計算設(shè)備中,一種方法包括: 對視頻進行編碼,包括從多個MV精度中確定針對所述視頻的單位的運動向量("MV")精 度,所述多個MV精度包括一個或多個分?jǐn)?shù)樣本MV精度和整數(shù)樣本MV精度,其中在所述視頻 的所述單位內(nèi)的塊的MV值具有針對所述單位的MV精度,并且其中所述確定包括: 收集關(guān)于所述視頻的信息;以及 至少部分地基于所收集的信息,選擇針對所述單位的MV精度; 以及 輸出經(jīng)編碼的視頻。8. 根據(jù)權(quán)利要求7所述的方法,其中所收集到的信息包括樣本值,其中所述樣本值被組 織為直方圖,并且其中選擇針對所述單位的MV精度包括: 在所收集到的信息中確定獨特樣本值的計數(shù);以及 將所述計數(shù)與閾值進行比較,其中如果所述計數(shù)低于所述閾值,則選擇所述整數(shù)樣本 MV精度,并且其中如果所述計數(shù)高于所述閾值,則選擇一個或多個分?jǐn)?shù)樣本MV精度之一。9. 根據(jù)權(quán)利要求7所述的方法,其中,所收集到的信息包括針對用分別多個MV精度編碼 的塊的失真測量,并且其中選擇針對所述單位的MV精度包括: 確定失真的減少是否證明了MV精度的增加。10. 根據(jù)權(quán)利要求7所述的方法,其中,所收集到的信息包括在所述一個或多個分?jǐn)?shù)樣 本MV精度之一處的MV值,根據(jù)其分?jǐn)?shù)部分的值對所收集到的MV值進行組織。11. 根據(jù)權(quán)利要求1或7所述的方法,其中: 所述編碼是單次編碼,所述視頻的所述單位是所述視頻的當(dāng)前單位,并且所選擇的針 對所述當(dāng)前單位的MV精度至少部分地取決于所述視頻的一個或多個先前單位;或者 所述編碼是多次編碼,所述視頻的所述單位是所述視頻的當(dāng)前單位,并且所選擇的針 對所述當(dāng)前單位的MV精度至少部分地取決于所述視頻的當(dāng)前單位。12. 根據(jù)權(quán)利要求1或7所述的方法,其中,所述方法還包括: 至少部分地基于(a)整數(shù)樣本MV精度是合適的置信度和/或(b)編碼和/或解碼的計算 能力,來調(diào)整朝向或背離整數(shù)樣本MV精度的偏置量。13. 根據(jù)權(quán)利要求1或7所述的方法,其中,所選擇的針對所述單位的MV精度是針對于所 述視頻的所述單位內(nèi)的塊的所述MV值的水平MV分量和/或垂直MV分量的。14. 根據(jù)權(quán)利要求1或7所述的方法,其中,所述單位選自包括以下項的組:序列、在場景 變化之間的圖片系列、圖片組、圖片、瓦片、切片編碼樹單元以及編碼單元;并且其中,所述 塊是預(yù)測塊、預(yù)測單元、宏塊或子宏塊分割。15. 在具有視頻編碼器的計算設(shè)備中,一種方法包括: 對視頻進行編碼,包括確定針對所述視頻的單位的運動向量("MV")精度,其中在所述 視頻的所述單位內(nèi)的塊的MV值具有針對所述單位的MV精度,其中所述確定包括:執(zhí)行率失 真分析以在多個MV精度之間進行決定,所述多個MV精度包括一個或多個分?jǐn)?shù)樣本MV精度和 整數(shù)樣本MV精度,并且其中通過(a)縮放失真成本,(b)向所述失真成本添加懲罰,(c)縮放 比特率成本,(d)向所述比特率成本添加懲罰,和/或(e)調(diào)整拉格朗日乘子因子,來將所述 率失真分析朝向所述整數(shù)樣本MV精度偏置;以及 輸出經(jīng)編碼的視頻。
【文檔編號】H04N19/136GK105900420SQ201480072763
【公開日】2016年8月24日
【申請日】2014年12月19日
【發(fā)明人】G·J·沙利文, Y·周, 李明杰, C-L·林
【申請人】微軟技術(shù)許可有限責(zé)任公司