背景
工程師使用壓縮(也叫做源編碼(sourcecoding或sourceencoding))來降低數(shù)字視頻的比特率。壓縮通過將視頻信息轉(zhuǎn)換成較低比特率的形式來降低存儲和傳送該信息的成本。解壓(也被稱為解碼)從壓縮的形式中重構(gòu)一種版本的原始信息?!熬幗獯a器”是編碼器/解碼器系統(tǒng)。
在過去的至少25年中,已采用了各種視頻編解碼器標準,包括itu-th.261、h.262(mpeg-2或iso/iec13818-2)、h.263、h.264(mpeg-4avc或iso/iec14496-10)標準、mpeg-1(iso/iec11172-2)和mpeg-4視覺(iso/iec14496-2)標準以及smpte421m(vc-1)標準。最近,h.265/hevc標準(itu-th.265或iso/iec23008-2)已被批準。視頻編解碼器標準通常定義針對經(jīng)編碼的視頻比特流的句法的選項,從而詳述當在編碼和解碼時使用特定特征時該比特流中的參數(shù)。在許多情況下,視頻編解碼器標準還提供關(guān)于視頻解碼器應(yīng)當執(zhí)行以在解碼時取得一致的結(jié)果的解碼操作的細節(jié)。除了編解碼器標準外,各種專用編解碼器格式定義針對經(jīng)編碼的視頻比特流的句法的其他選項以及相應(yīng)的解碼操作。
在典型的視頻序列中,給定圖片的大多數(shù)區(qū)域是相同的,或者相比于該給定圖片之前和之后的圖片僅稍微改變。大多數(shù)視頻編解碼器標準和格式使用圖片間預(yù)測來利用視頻序列中的這一圖片到圖片冗余。例如,如果使用圖片間預(yù)測來預(yù)測給定圖片中的樣本值塊,則視頻編碼器估計該塊相對于可供在編碼/解碼該給定圖片時參考的一個或多個先前編碼/解碼的其它圖片的運動。先前編碼/解碼的其它圖片被稱為參考圖片。當視頻編碼器找到參考圖片中的針對給定圖片中的塊的匹配塊時,視頻編碼器例如使用參考圖片的標識符以及匹配塊的位置(相對于給定圖片中的塊的位置)來表示該匹配塊。視頻編碼器可確定給定圖片中的塊與該匹配塊之間的差異,然后對這些差異進行編碼。
根據(jù)一些視頻編解碼器標準和格式,視頻編碼器和視頻解碼器應(yīng)用簡單規(guī)則來確定將哪些參考圖片保留在緩沖區(qū)中以用于圖片間預(yù)測,并且確定從緩沖區(qū)中移除哪些參考圖片。根據(jù)其它視頻編解碼器標準和格式,視頻編碼器具有對保留或從緩沖區(qū)中移除哪些參考圖片的更多控制,并且視頻編碼器將信息用信令通知給視頻解碼器以使得視頻解碼器能相應(yīng)地更新參考圖片?,F(xiàn)有的視頻編解碼器標準和格式在用于參考圖片管理的選項方面不夠靈活,這可損害編碼效率并導(dǎo)致視頻編碼/解碼期間低效地使用資源。
概述
總而言之,詳細描述提出了靈活參考圖片管理中的創(chuàng)新。例如,視頻編碼器和視頻解碼器使用保持在存儲器中并因此比常規(guī)參考圖片更長地可供用于視頻編碼和視頻解碼的參考圖片的全局參考圖片集(“grps”)。使用grps能通過使專門選擇的參考圖片在整個視頻編碼/解碼中可用來提高視頻編碼效率。或者,作為另一示例,視頻編碼器和視頻解碼器能剪輯參考圖片以使該參考圖片的有用區(qū)域被保留在存儲器中,同時丟棄該參考圖片的無幫助或冗余區(qū)域。參考圖片剪輯能減少存儲參考圖片所需的存儲器的量,或者能通過存儲更多樣的參考圖片集來改進對可用存儲器的利用?;蛘?,作為又一示例,視頻編碼器和視頻解碼器對參考圖片進行濾波以移除捕捉噪聲(例如,捕捉期間的由于相機缺陷而導(dǎo)致的噪聲)。經(jīng)去噪的參考圖片可提供圖片間預(yù)測的更好結(jié)果,由此提高視頻編碼效率。
根據(jù)本文描述的創(chuàng)新的一方面,視頻編碼器對視頻序列的一個或多個圖片進行編碼以產(chǎn)生經(jīng)編碼數(shù)據(jù),然后輸出該經(jīng)編碼數(shù)據(jù)作為比特流的一部分。作為編碼的一部分,視頻編碼器確定作為grps的一部分的全局參考圖片。視頻編碼器對全局參考圖片進行編碼以產(chǎn)生全局參考圖片的經(jīng)編碼數(shù)據(jù)。視頻編碼器還對其它圖片進行編碼以產(chǎn)生其它圖片的經(jīng)編碼數(shù)據(jù)。其它圖片包括被指定為隨機存取圖片(“rap”)的定義一個或多個隨機存取邊界的至少一個圖片。全局參考圖片跨該一個或多個隨機存取邊界可用,這能提高編碼效率。
對應(yīng)的視頻解碼器接收作為比特流的一部分的視頻序列的一個或多個圖片的經(jīng)編碼數(shù)據(jù),并解碼經(jīng)編碼數(shù)據(jù)以重構(gòu)圖片。經(jīng)編碼數(shù)據(jù)包括作為grps的一部分的全局參考圖片的經(jīng)編碼數(shù)據(jù)以及其它圖片的經(jīng)編碼數(shù)據(jù)。其它圖片包括被指定為rap的定義一個或多個隨機存取邊界的至少一個圖片。作為解碼的一部分,視頻解碼器解碼全局參考圖片。視頻解碼器還解碼其它圖片。全局參考圖片跨該一個或多個隨機存取邊界可用。
根據(jù)本文描述的創(chuàng)新的另一方面,視頻編碼器對視頻序列的一個或多個圖片進行編碼以產(chǎn)生經(jīng)編碼數(shù)據(jù),并且輸出該經(jīng)編碼數(shù)據(jù)作為比特流的一部分。作為編碼的一部分,視頻編碼器重構(gòu)圖片中的一個給定圖片。視頻編碼器根據(jù)剪輯參數(shù)來剪輯經(jīng)重構(gòu)圖片。在這樣做時,視頻編碼器裁剪經(jīng)重構(gòu)圖片的至少一些區(qū)域以產(chǎn)生經(jīng)剪輯圖片。視頻編碼器將經(jīng)剪輯圖片存儲在緩沖區(qū)中以供用作參考圖片,然后在運動補償操作中使用該參考圖片。參考圖片的剪輯可允許視頻編碼器減少用于緩沖參考圖片的存儲器的量?;蛘?,參考圖片的剪輯可允許視頻編碼器將更有用的參考圖片集存儲在給定量的存儲器中。對應(yīng)的視頻解碼器接收作為比特流的一部分的視頻序列的一個或多個圖片的經(jīng)編碼數(shù)據(jù),然后解碼經(jīng)編碼數(shù)據(jù)以重構(gòu)圖片。作為解碼的一部分,視頻解碼器重構(gòu)圖片中的一個給定圖片。視頻解碼器根據(jù)剪輯參數(shù)來剪輯經(jīng)重構(gòu)圖片。在這樣做時,視頻解碼器裁剪經(jīng)重構(gòu)圖片的至少一些區(qū)域以產(chǎn)生經(jīng)剪輯圖片。視頻解碼器將經(jīng)剪輯圖片存儲在緩沖區(qū)中以供用作參考圖片,然后在運動補償操作中使用該參考圖片。參考圖片的剪輯可允許視頻解碼器減少用于緩沖參考圖片的存儲器的量。或者,參考圖片的剪輯可允許視頻解碼器將更有用的參考圖片集存儲在給定量的存儲器中。
根據(jù)本文描述的創(chuàng)新的另一方面,視頻編碼器對視頻序列的一個或多個圖片進行編碼以產(chǎn)生經(jīng)編碼數(shù)據(jù),并且輸出該經(jīng)編碼數(shù)據(jù)作為比特流的一部分。作為編碼的一部分,視頻編碼器重構(gòu)圖片中的一個給定圖片。視頻編碼器用被適配成移除捕捉噪聲的濾波器來對經(jīng)重構(gòu)圖片進行濾波以產(chǎn)生經(jīng)去噪圖片。視頻編碼器將經(jīng)去噪圖片存儲在緩沖區(qū)中以供用作參考圖片,然后在運動補償操作中使用該參考圖片。在一些示例實現(xiàn)中,對參考圖片進行去噪能改進圖片間預(yù)測,這提高視頻編碼效率。
對應(yīng)的視頻解碼器接收作為比特流的一部分的視頻序列的一個或多個圖片的經(jīng)編碼數(shù)據(jù),并解碼經(jīng)編碼數(shù)據(jù)以重構(gòu)圖片。作為解碼的一部分,視頻解碼器重構(gòu)圖片中的一個給定圖片。視頻解碼器用被適配成移除捕捉噪聲的濾波器來對經(jīng)重構(gòu)圖片進行濾波以產(chǎn)生經(jīng)去噪圖片。視頻解碼器將經(jīng)去噪圖片存儲在緩沖區(qū)中以供用作參考圖片,然后在運動補償操作中使用該參考圖片。
各項創(chuàng)新可以被實現(xiàn)為方法的一部分、被配置為執(zhí)行該方法中的操作的計算系統(tǒng)的一部分或存儲用于使得計算系統(tǒng)執(zhí)行該方法中的操作的計算機可執(zhí)行指令的一個或多個計算機可讀介質(zhì)的一部分。各創(chuàng)新可以結(jié)合地或分開地使用。提供本概述以便以簡化的形式介紹將在以下詳細描述中進一步描述的一些概念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護的主題的范圍。參考附圖閱讀以下詳細描述,將更清楚本發(fā)明的前述和其他目標、特征和優(yōu)點。
附圖說明
圖1是示出可在其中實現(xiàn)所描述的一些實施例的示例計算系統(tǒng)的示圖。
圖2a和2b是示出可在其中實現(xiàn)所描述的一些實施例的示例網(wǎng)絡(luò)環(huán)境的示圖。
圖3是示出結(jié)合其可實現(xiàn)所描述的一些實施例的示例視頻編碼器系統(tǒng)的示圖。
圖4a和4b是示出結(jié)合其可實現(xiàn)所描述的一些實施例的示例視頻編碼器的示圖。
圖5是結(jié)合其可實現(xiàn)所描述的一些實施例的示例解碼器系統(tǒng)的示圖。
圖6是示出結(jié)合其可實現(xiàn)所描述的一些實施例的示例視頻解碼器的示圖。
圖7和8是分別示出用于視頻編碼和視頻解碼的通用技術(shù)的流程圖,這些技術(shù)包括靈活的參考圖片管理。
圖9是示出當編碼或解碼使用全局參考圖片集(“grps”)時的對經(jīng)解碼圖片緩沖區(qū)(“dpb”)的更新的示例。
圖10a-10d是示出比特流中的包括grps單元的經(jīng)編碼數(shù)據(jù)單元的示例序列的圖示。
圖11和12是分別示出用于使用作為grps的一部分的全局參考圖片來進行視頻編碼和視頻解碼的示例技術(shù)的流程圖。
圖13a-13e是示出參考圖片剪輯的示例的圖示。
圖14是示出涉及經(jīng)剪輯參考圖片的運動補償?shù)膱D示。
圖15是示出用于在視頻編碼或視頻解碼期間剪輯參考圖片的示例技術(shù)的流程圖。
圖16a-16b是分別示出使用參考圖片的去噪的視頻編碼器和視頻解碼器的示例的圖示。
圖17是示出用于在視頻編碼或視頻解碼期間對參考圖片進行去噪的示例技術(shù)的流程圖。
詳細描述
詳細描述提出了靈活的參考圖片管理中的創(chuàng)新。例如,視頻編碼器和視頻解碼器使用保持在存儲器中并因此比常規(guī)參考圖片更長地可供用于視頻編碼和視頻解碼的參考圖片的全局參考圖片集(“grps”)。使用grps能通過使專門選擇的參考圖片在整個視頻編碼和視頻解碼中可用來提高視頻編碼效率?;蛘?,作為另一示例,視頻編碼器和視頻解碼器能剪輯參考圖片以使該參考圖片的有用區(qū)域被保留在存儲器中,同時丟棄該參考圖片的無幫助或冗余區(qū)域。參考圖片剪輯能減少存儲參考圖片所需的存儲器的量,或者能通過存儲更多樣的參考圖片集來改進對可用存儲器的利用。或者,作為又一示例,視頻編碼器和視頻解碼器對參考圖片進行濾波以移除捕捉噪聲(例如,捕捉期間的由于相機缺陷而導(dǎo)致的噪聲)。經(jīng)去噪的參考圖片可提供圖片間預(yù)測的更好結(jié)果,由此提高視頻編碼效率。
本文中描述的一些創(chuàng)新是參考針對h.265/標準以及h.265標準的擴展或變體的條款來解說的。本文描述的創(chuàng)新還可被實現(xiàn)用于其它視頻編解碼器標準或格式的擴展或變體(例如,vp9格式、h.264標準),包括準許使用參考圖片來進行圖片間預(yù)測的將來視頻編解碼器標準或格式。
在本文中描述的示例中,不同的圖中的相同參考標記指示相同的組件、模塊或操作。取決于上下文,給定組件或模塊可接受不同類型的信息作為輸入和/或產(chǎn)生不同類型的信息作為輸出。
更一般地,本文中描述的各示例的各種替代是可能的。例如,本文中描述的一些方法可以通過改變描述的方法動作的順序、通過拆分、重復(fù)或忽略某些方法動作等來更改。所公開的技術(shù)的各方面能夠被組合地或分開地使用。例如,視頻編碼器和視頻解碼器可將grps與參考圖片剪輯和/或參考圖片去噪(可能包括grps中的全局參考圖片的剪輯或去噪)相結(jié)合地使用?;蛘?,作為另一示例,視頻編碼器和視頻解碼器可以在不使用grps的情況下使用參考圖片的剪輯和/或去噪。不同的實施例使用所描述的創(chuàng)新中的一個或多個。本文中描述的一些創(chuàng)新解決了背景中指出的一個或多個問題。通常,所給出的技術(shù)/工具并不解決所有這些問題。
示例計算機系統(tǒng)
圖1示出了在其中可實現(xiàn)若干所描述的發(fā)明的合適的計算環(huán)境(100)的一般化示例。計算系統(tǒng)(100)并不旨對使用范圍或功能提出任何限制,因為這些創(chuàng)新可以在不同的通用或?qū)S糜嬎阆到y(tǒng)中實現(xiàn)。
參考圖1,計算環(huán)境(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)針對靈活的參考圖片管理的一個或多個創(chuàng)新的軟件(180),該軟件是適用于由處理單元執(zhí)行的計算機可執(zhí)行指令的形式。
計算系統(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)的各組件的活動。
有形存儲(140)可以是可移動或不可移動的,并包括諸如磁盤、磁帶或磁帶盒等磁性介質(zhì)、諸如cd-rom、dvd之類的光學(xué)介質(zhì)或可用于儲存信息并可在計算系統(tǒng)(100)內(nèi)訪問的任何其他介質(zhì)。存儲(140)存儲實現(xiàn)針對靈活的參考圖片管理的一個或多個創(chuàng)新的軟件(180)的指令。
輸入設(shè)備(150)可以是觸摸輸入設(shè)備(諸如鍵盤、鼠標、筆或跟蹤球)、語音輸入設(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è)備。
通信連接(170)允許通過通信介質(zhì)與另一計算實體通信。通信介質(zhì)傳達諸如計算機可執(zhí)行指令、音頻或視頻輸入或輸出、或已調(diào)制數(shù)據(jù)信號中的其他數(shù)據(jù)之類的信息。已調(diào)制數(shù)據(jù)信號是使其一個或多個特征以在信號中編碼信息的方式設(shè)置或改變的信號。作為示例而非限制,通信介質(zhì)可以使用電的、光學(xué)的、rf或其它載體。
各創(chuàng)新可以在計算機可讀介質(zhì)的一般上下文中描述。計算機可讀介質(zhì)是可在計算環(huán)境內(nèi)訪問的任何可用有形介質(zhì)。作為示例而非限制,對于計算系統(tǒng)(100),計算機可讀介質(zhì)包括存儲器(120,125)、存儲(140)及其組合。由此,計算機可讀介質(zhì)可以是例如易失性存儲器、非易失性存儲器、光學(xué)介質(zhì)或磁性介質(zhì)。如本文中所使用的,術(shù)語計算機可讀介質(zhì)不包括瞬時信號或傳播載波。
各創(chuàng)新可在計算機可執(zhí)行指令(諸如包括在程序模塊中的在目標現(xiàn)實或虛擬處理器上在計算系統(tǒng)中執(zhí)行的那些計算機可執(zhí)行指令)的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。如各實施例中描述的,這些程序模塊的功能可以被組合,或者在這些程序模塊之間拆分。針對各程序模塊的計算機可執(zhí)行指令可以在本地或分布式計算系統(tǒng)中執(zhí)行。
術(shù)語“系統(tǒng)”和“設(shè)備”在此被互換地使用。除非上下文明確指示,否則,術(shù)語并不暗示對計算系統(tǒng)或計算設(shè)備的類型的任何限制。一般說來,計算系統(tǒng)或計算設(shè)備可以是本地的或分布式的,并且可以包括具有實現(xiàn)本文中描述的功能的軟件的專用硬件和/或通用硬件的任意組合。
所公開的方法還可使用被配置成執(zhí)行所公開的方法中的任一者的專用計算硬件來實現(xiàn)。例如,所公開的方法可以由被專門設(shè)計或配置成實現(xiàn)所公開的方法中的任一者的集成電路(例如,諸如asic數(shù)字信號處理器(“dsp”)之類的asic、圖像處理單元(“gpu”)、或諸如場可編程門陣列(“fpga”)之類的可編程邏輯器件(“pld”))來實現(xiàn)。
為了呈現(xiàn)起見,本詳細描述使用了如“確定”和“評估”等術(shù)語來描述計算系統(tǒng)中的計算機操作。這些術(shù)語是對由計算機執(zhí)行的操作的高級抽象,且不應(yīng)與人類所執(zhí)行的動作混淆。對應(yīng)于這些術(shù)語的實際的計算機操作取決于實現(xiàn)而不同。
示例網(wǎng)絡(luò)環(huán)境
圖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ò)。
在圖2a中所示的網(wǎng)絡(luò)環(huán)境(201)中,每個實時通信(“rtc”)工具(210)包括用于雙向通信的編碼器(220)和解碼器(270)兩者。給定的編碼器(220)可以產(chǎn)生輸出,該輸出遵循h(huán).265/hevc標準、smpte421m標準、iso/iec14496-10標準(也稱為h.264或avc)、另一標準的變體或擴展,或遵循針對接受來自編碼器(220)的經(jīng)編碼的數(shù)據(jù)的對應(yīng)的解碼器(270)的專用格式(諸如vp8或vp9)。雙向通信可以是視頻會議、視頻電話呼叫或其它雙方或多方通信場景的部分。雖然,圖2a中的網(wǎng)絡(luò)環(huán)境(201)包括兩個實時通信工具(210),但網(wǎng)絡(luò)環(huán)境(201)可改為包括參與多方通信的三個或更多的實時通信工具(210)。
實時通信工具(210)管理編碼器(220)作出的編碼。圖3示出可以被包括在實時通信工具(210)中的示例編碼器系統(tǒng)(300)。替換地,實時通信工具(210)使用另一編碼器系統(tǒng)。實時通信工具(210)還管理解碼器(270)作出的解碼。圖5示出可以被包括在實時通信工具(210)中的示例解碼器系統(tǒng)(500)。替換地,實時通信工具(210)使用另一解碼器系統(tǒng)。
在圖2b中示出的網(wǎng)絡(luò)環(huán)境(202)中,編碼工具(212)包括對供遞送給多個回放工具(214)的視頻進行編碼的編碼器(220),這些回放工具包括解碼器(270)。單向通信可被提供用于視頻監(jiān)視系統(tǒng)、web相機監(jiān)視系統(tǒng)、遠程桌面會議演示或共享、無線屏幕投射、云計算或游戲、在其中編碼視頻并將視頻從一個位置發(fā)送到一個或多個其它位置的其它場景。雖然在圖2b中的網(wǎng)絡(luò)環(huán)境(202)包括兩個回放工具(214),該網(wǎng)絡(luò)環(huán)境(202)可以包括更多或更少的回放工具(214)。一般來說,回放工具(214)與編碼工具(212)通信以確定回放工具(214)要接收的視頻流?;胤殴ぞ?214)接收該流、緩沖所接收的經(jīng)編碼數(shù)據(jù)達合適的時間段并開始解碼和回放。
圖3示出可以被包括在編碼工具(212)中的示例編碼器系統(tǒng)(300)。替換地,編碼工具(212)使用另一編碼器系統(tǒng)。編碼工具(212)還可以包括用于管理與一個或多個回放工具(214)的連接的服務(wù)器側(cè)控制器邏輯?;胤殴ぞ?214)可包括用于管理與編碼工具(212)的連接的客戶機側(cè)控制器邏輯。圖5示出可以被包括在回放工具(214)中的示例解碼器系統(tǒng)(500)。替換地,回放工具(214)使用另一解碼器系統(tǒng)。
示例編碼器系統(tǒng)。
圖3示出結(jié)合其可實現(xiàn)所描述的一些實施例的示例視頻編碼器系統(tǒng)(300)。視頻編碼器系統(tǒng)(300)包括具有靈活的參考圖片管理的視頻編碼器(340),視頻編碼器(340)在圖4a和4b中被進一步詳述。
視頻編碼器系統(tǒng)(300)可以是能夠用多種編碼模式中的任一者(諸如用于實時通信的低等待時間編碼模式、轉(zhuǎn)碼模式和用于從文件或流中產(chǎn)生供回放的媒體的較高等待時間編碼模式)操作的通用編碼工具,或它可以是適用于一種這樣的編碼模式的專用編碼工具。視頻編碼器系統(tǒng)(300)可適用于編碼特定類型的內(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ù)可包括使用本文中描述的一個或多個創(chuàng)新編碼的內(nèi)容。
視頻源(310)可以是相機、調(diào)諧卡、存儲介質(zhì)、屏幕捕捉模塊或其它數(shù)字視頻源。所述視頻源(310)以例如每秒30幀的幀速率產(chǎn)生視頻圖片序列。如在此所用,術(shù)語“圖片”一般是指源、經(jīng)編碼的或已重構(gòu)的圖像數(shù)據(jù)。對于逐行掃描視頻,圖片是逐行掃描視頻幀。對于隔行視頻,在各示例實施例中,隔行視頻幀可以在編碼之前被去隔行。替換地,兩個互補的隔行視頻場可以被編碼在一起作為單個視頻幀或者被編碼成兩個經(jīng)分開編碼的場。除了指示逐行掃描視頻幀或隔行掃描視頻幀之外,術(shù)語“圖片”可以指示單個非成對的視頻場、互補的成對視頻場、表示在給定時間或在較大的圖像中的感興趣區(qū)域處的視頻對象的視頻對象平面。視頻對象平面或區(qū)域可以是包括場景的多個對象或區(qū)域的較大圖像的一部分。
正在到達的源圖片(311)被存儲在包括多個圖片緩沖存儲區(qū)域(321,322,……,32n)的源圖片臨時存儲器存儲區(qū)域(320)中。圖片緩沖區(qū)(321,322等)在源圖片存儲區(qū)域(320)中保持一個源圖片。在已經(jīng)將一個或多個源圖片(311)存儲在圖片緩沖區(qū)(321,322等)中之后,圖片選擇器(330)從源圖片存儲區(qū)域(320)中選擇個體源圖片來編碼為當前圖片(331)。各圖片被圖片選擇器(330)選擇用于輸入到視頻編碼器(340)的次序可以與視頻源(310)產(chǎn)生這些圖片的次序不同,例如對某些圖片的編碼可在次序上被延遲,以便允許某些較后的圖片被先編碼并由此促成時間上的后向預(yù)測。視頻編碼器系統(tǒng)(300)可在視頻編碼器(340)之前包括在編碼之前對當前圖片(331)執(zhí)行預(yù)處理(例如濾波)的預(yù)處理器(未示出)。預(yù)處理可包括色彩空間轉(zhuǎn)換成主要(例如亮度)和次要(例如偏向紅色和偏向藍色的色度差)分量以及用于編碼的重采樣處理(例如以減少色度分量的空間分辨率)。一般來說,像素是針對在圖片中的位置的一個或多個搭配樣本值的集合,該集合對于不同的色度采樣格式可用不同的方式來布置。
視頻編碼器(340)對當前圖片(331)進行編碼以產(chǎn)生經(jīng)編碼的圖片(341)。如圖4a和4b所示,視頻編碼器(340)接收當前圖片(331)作為輸入視頻信號(405),并在經(jīng)編碼的視頻比特流(495)中產(chǎn)生經(jīng)編碼的圖片(341)的經(jīng)編碼的數(shù)據(jù)作為輸出。作為編碼的一部分,視頻編碼器(340)在一些情形中使用如本文描述的靈活的參考圖片管理的一個或多個特征。
通常,視頻編碼器(340)包括執(zhí)行諸如分隔成瓦片、圖片內(nèi)部預(yù)測估計和預(yù)測、運動估計和補償、頻率變換、量化和熵編碼之類的編碼任務(wù)。視頻編碼器(340)的許多組件被用于圖片內(nèi)編碼和圖片間編碼兩者。由視頻編碼器(340)執(zhí)行的確切操作可取決于壓縮格式而變化,并可取決于編碼器可選的實現(xiàn)判定而變化。輸出的經(jīng)編碼數(shù)據(jù)的格式可以是windows媒體視頻格式、vc-1格式、mpeg-x格式(例如,mpeg-1、mpeg-2或mpeg-4)、h.26x格式(例如,h.261、h.262、h.263或h.264)、或vpx格式、或其它格式的變型或擴展。
如圖4a所示,視頻編碼器(340)可包括圖塊劃分模塊(410)。使用圖塊劃分模塊(410),視頻編碼器(340)可將圖片分割成相同尺寸或不同尺寸的多個圖塊。例如,圖塊劃分模塊(410)沿圖塊行和圖塊列來拆分圖片,所述圖塊行和圖塊列利用圖片邊界定義在圖片內(nèi)的圖塊的水平和垂直邊界,其中每個圖塊是矩形區(qū)域。圖塊通常被用于提供并行處理的選項。圖片還可以被組織為一個或多個片,其中一個片可以是整個圖片或圖片的部分。片可以獨立于圖片中的其它片被解碼,這改善了錯誤復(fù)原力。出于編碼和解碼的目的,片或圖塊的內(nèi)容被進一步分割成塊或其它采樣值集。塊還可在不同的階段上被進一步細分,例如在預(yù)測、頻率變換和/或熵編碼階段。例如,圖片可以被劃分成64x64塊、32x32塊或16x16塊,這些塊進而可被劃分成更小的樣本值塊以用于編碼和解碼。
對于根據(jù)h.264/avc標準的句法,視頻編碼器(340)可以將圖片分割成相同尺寸或不同尺寸的多個片。視頻編碼器(340)將圖片(或片)的內(nèi)容拆分成各16x16宏塊。宏塊包括被組織為4個8x8亮度塊的亮度樣本值和被組織為8x8色度塊的相應(yīng)的色度樣本值。通常,宏塊具有諸如圖片間或圖片內(nèi)之類的預(yù)測模式。宏塊包括用于信號化預(yù)測信息(例如預(yù)測模式細節(jié)、運動向量(“mv”)信息等)和/或預(yù)測處理的目的的一個或多個預(yù)測單元(例如,各8x8塊、各4x4塊,這些塊可被稱為用于圖片間預(yù)測的分區(qū))。宏塊還具有用于殘留編碼/解碼目的的一個或多個殘留數(shù)據(jù)單元。
對于根據(jù)h.265/hevc標準的句法來說,視頻編碼器(340)將圖片(或片或圖塊)的內(nèi)容拆分成各編碼樹單元。編碼樹單元(“ctu”)包括被組織為亮度編碼樹塊(“ctb”)的亮度采樣值,并且對應(yīng)的色度樣本值被組織為兩個色度ctb。ctu(及其ctb)的尺寸由視頻編碼器選擇。亮度ctb可包含例如64x64、32x32或16x16亮度樣本值。ctu包括一個或多個編碼單元。編碼單元(“cu”)具有亮度編碼塊(“cb”)和兩個對應(yīng)的色度cb。例如,根據(jù)四叉樹句法,具有64x64亮度ctb和兩個64x64色度ctb(yuv4:4:4格式)的ctu可以被拆分成4個cu,其中每一cu包括一32x32亮度cb和兩個32x32色度cb,并且根據(jù)四叉樹句法,每一cu可能被進一步拆分成更小的cu。或者,作為另一示例,根據(jù)四叉樹句法,具有64x64亮度ctb和兩個32x32色度ctb(yuv4:2:0格式)的ctu可被拆分成4個cu,其中每一cu包括一32x32亮度cb和兩個16x16色度cb,并且根據(jù)四叉樹句法,每一cu可被進一步拆分成更小的cu。
在h.265/hevc實現(xiàn)中,cu具有諸如圖片間或圖片內(nèi)之類的預(yù)測模式。cu通常包括用于信號化預(yù)測信息(例如預(yù)測模式細節(jié)、移位值等)和/或預(yù)測處理的目的的一個或多個預(yù)測單元。預(yù)測單元(“pu”)具有亮度預(yù)測塊(“pb”)和兩個對應(yīng)的色度pb。根據(jù)h.265/hevc標準,對于圖片內(nèi)預(yù)測的cu,pu具有與該cu相同的尺寸,除非該cu具有最小尺寸(例如8x8)。在那個情況下,cu可被拆分成更小的pu(例如,對于圖片內(nèi)預(yù)測情況,如果最小cu尺寸為8x8,則被拆分成四個4x4pu),或者pu可具有最小cu尺寸,如cu的句法元素所指示的。對于圖片間預(yù)測的cu,該cu可具有一個、兩個或四個pu,其中拆分成四個pu僅在該cu具有最小可允許尺寸的情況下才被允許。
在h.265/hevc實現(xiàn)中,cu通常還具有用于殘留編碼和解碼的目的的一個或多個變換單元,其中變換單元(“tu”)具有亮度變換塊(“tb”)和兩個色度tb。cu可包含單個tu(在尺寸上等于該cu)或多個tu。根據(jù)四叉樹句法,tu可被拆分為四個更小的tu,這些tu可進而根據(jù)四叉樹句法被拆分成更小的tu。視頻編碼器決定如何將視頻分割成ctu(ctb)、cu(cb)、pu(pb)和tu(tb)。
在h.265/hevc實現(xiàn)中,片可包括單個片段(獨立的片段)或被劃分成多個片段(獨立的片段和一個或多個從屬的片段)。片段是包含在單個網(wǎng)絡(luò)抽象層(“nal”)單元中的在圖塊掃描中連續(xù)排序的整數(shù)個ctu。對于獨立的片段,片段首部包括適用于該獨立的片段的句法元素的值。對于從屬片段,截短的片段首部包括適用于該從屬片段的句法元素的幾個值,并且從屬片段的其它句法元素的值是以解碼順序從在前的獨立的片段的值中推導(dǎo)出來的。
如本文中所使用的,術(shù)語“塊”可指示宏塊、殘留數(shù)據(jù)單元、ctb、cb、pb或tb、或某些其它樣本值集,這取決于上下文。術(shù)語“單元”可指示宏塊、ctu、cu、pu、tu或某些其他塊集,或者它可指示單個塊,這取決于上下文。
如圖4a所示,視頻編碼器(340)包括通用編碼控件,該通用編碼控件(420)接收當前圖片(331)的輸入視頻信號(405)以及來自視頻編碼器(340)的各個模塊的反饋(未示出)。整體上,通用編碼控件(420)將控制信號(未示出)提供給其它模塊(例如圖塊劃分模塊(410)、變換器/縮放器/量化器(430)、縮放器/逆變換器(435)、圖片內(nèi)預(yù)測估計器(440)、運動估計器(450)以及圖片內(nèi)/圖片間切換)以設(shè)置和改變編碼期間的編碼參數(shù)。通用編碼控件(420)還可評估編碼期間的中間結(jié)果,通常考慮不同選項的比特率成本和/或失真成本。具體而言,通用編碼控件(420)決定對當前圖片(331)使用圖片內(nèi)預(yù)測還是圖片間預(yù)測。如果與運動估計器(450)相協(xié)同地對一單元使用圖片間預(yù)測,則通用編碼控件(420)決定哪些參考圖片將用于圖片間預(yù)測。通用編碼控件(420)確定將哪些參考圖片保留(例如,來自grps)在經(jīng)解碼圖片緩沖區(qū)(“dpb”)或其它緩沖區(qū)中。與濾波控件(460)相協(xié)同地,通用編碼控件(420)確定是否以及如何對參考圖片應(yīng)用剪輯和去噪。通用編碼控件(420)產(chǎn)生指示在編碼期間作出的判定的通用控制數(shù)據(jù)(422),使得對應(yīng)的解碼器可以作出一致的判定。例如,通用控制數(shù)據(jù)(420)包括指示是否更新被保留在dpb或其它緩沖區(qū)中的參考圖片的信息。通用控制數(shù)據(jù)(422)被提供給首部格式化器/熵編碼器(490)。
參考圖4b,如果當前圖片(331)中的一單元是使用圖片間預(yù)測來預(yù)測的,則運動估計器(450)估計該單元的樣本值塊相對于一個或多個參考圖片的運動。當前圖片(331)可全部或部分使用圖片間預(yù)測來編碼。當使用多個參考圖片時,這多個參考圖片可以來自不同的時間方向或相同的時間方向。運動估計器(450)潛在地評估處于上下文運動模式的候選mv以及其他候選mv。對于上下文運動模式,作為單元的候選mv,運動估計器(450)評估在運動補償時對局部鄰域中的某些相鄰單元使用的一個或多個mv或依據(jù)規(guī)則推導(dǎo)出的一個或多個mv。針對上下文運動模式的候選mv可包括來自空間上毗鄰的單元的mv、來自時間上毗鄰的單元的mv以及依據(jù)規(guī)則推導(dǎo)出的mv。在h.265/hevc標準中,合并模式是上下文運動模式的示例。在一些情況下,上下文運動模式可涉及多個推導(dǎo)出mv之間的競爭以及對多個推導(dǎo)出mv之一的選擇。運動估計器(450)可為當前圖片(331)的給定單元的分割(例如,在h.265/hevc標準中為針對cu的各pu的2n×2n、2n×n、n×2n或n×n分割)評估運動補償?shù)牟煌指钅J健?/p>
dpb(470)(其是如圖3所示的經(jīng)解碼圖片臨時存儲器存儲區(qū)域(360)的示例)緩沖一個或多個經(jīng)重構(gòu)的先前編碼的圖片以供用作參考圖片。在給定時間,dpb(470)可存儲grps中的一個或多個參考圖片、一個或多個經(jīng)剪輯參考圖片、一個或多個經(jīng)去噪?yún)⒖紙D片和/或一個或多個其它參考圖片。或者,grsp的參考圖片、經(jīng)剪輯參考圖片和/或經(jīng)去噪?yún)⒖紙D片可被存儲在不同的緩沖區(qū)中。
運動估計器(450)產(chǎn)生運動數(shù)據(jù)(452)作為輔助信息。具體地,運動數(shù)據(jù)(452)可包括指示上下文運動模式(例如,在h.265/hevc標準中為合并模式)是否被使用的信息,以及如果上下文運動模式被使用,則包括指示上下文運動模式的候選mv的信息(例如,在h.265/hevc標準中為合并模式索引值)。更一般地,運動數(shù)據(jù)(452)可包括mv數(shù)據(jù)和參考圖片選擇數(shù)據(jù)。運動數(shù)據(jù)(452)被提供給首部格式化器/熵編碼器(490)以及運動補償器(455)。運動補償器(455)將塊的mv應(yīng)用于來自dpb(470)或其它緩沖區(qū)的經(jīng)重構(gòu)的參考圖片。當使用經(jīng)剪輯參考圖片時,運動補償器(455)可調(diào)整mv所引用的位置以補償剪輯和/或縮放,如下所述。對于該塊,運動補償器(455)產(chǎn)生運動補償預(yù)測,其是用來生成該塊的運動補償預(yù)測值的參考圖片中的樣本值區(qū)域。
參考圖4b,如果當前圖片(331)的單元是使用圖片內(nèi)預(yù)測來預(yù)測的,則圖片內(nèi)預(yù)測估計器(440)確定如何執(zhí)行針對該單元的樣本值塊的圖片內(nèi)預(yù)測。當前圖片(331)可全部或部分使用圖片內(nèi)預(yù)測來編碼。對于圖片內(nèi)空間預(yù)測,圖片內(nèi)估計器(440)使用當前圖片(331)的重構(gòu)(438)的值來確定如何從當前圖片(331)的鄰近的、先前重構(gòu)的樣本值中空間地預(yù)測當前圖片(331)的塊的樣本值,例如估計鄰近的經(jīng)重構(gòu)的樣本值到該塊的外推?;蛘?,對于圖片內(nèi)塊復(fù)制模式,圖片內(nèi)預(yù)測估計器(440)使用指示當前圖片(331)的先前編碼/解碼的部分的偏移(有時被稱為塊向量)來確定如何預(yù)測當前圖片(331)的塊的樣本值。圖片內(nèi)塊復(fù)制模式可被實現(xiàn)為圖片間預(yù)測的特殊情況,其中參考圖片是當前圖片(331),并且僅當前圖片(331)的先前編碼/解碼的樣本值可被用于預(yù)測。作為輔助信息,圖片內(nèi)預(yù)測估計器(440)產(chǎn)生諸如所使用的預(yù)測模式/方向之類的圖片內(nèi)預(yù)測數(shù)據(jù)(442)。圖片內(nèi)預(yù)測數(shù)據(jù)(442)被提供給首部格式化器/熵編碼器(490)以及圖片內(nèi)預(yù)測器(445)。根據(jù)圖片內(nèi)預(yù)測數(shù)據(jù)(442),圖片內(nèi)預(yù)測器(445)從當前圖片(331)的鄰近的、先前重構(gòu)的樣本值中空間地預(yù)測當前圖片(331)的塊的樣本值,從而產(chǎn)生該塊的圖片內(nèi)預(yù)測值。或者,圖片內(nèi)預(yù)測器(445)使用圖片內(nèi)塊復(fù)制預(yù)測使用針對該塊的偏移(塊向量)來預(yù)測該塊的樣本值。
如圖4b所示,圖片內(nèi)/圖片間切換選擇針對給定單元的預(yù)測(458)將是運動補償預(yù)測還是圖片內(nèi)預(yù)測。針對當前圖片(331)的各單元的圖片內(nèi)/圖片間切換判定可使用各準則來作出。
視頻編碼器(340)可確定是否編碼并傳送某塊的預(yù)測值(圖片內(nèi)或圖片間)和對應(yīng)的原始值之間的差值(如果有的話)。預(yù)測(458)的塊和輸入視頻信號(405)的原始當前圖片(331)的對應(yīng)部分之間的差異(如果有的話)提供殘留(418)的值。如果被編碼/傳送,則殘留(418)的值使用頻率變換(如果該頻率變換不被跳過的話)、量化和熵編碼來編碼。在一些情況下,沒有為單元計算殘留。相反,殘留編碼被跳過,并且預(yù)測的樣本值被用作經(jīng)重構(gòu)的樣本值。
參考圖4a,當殘留(418)的值被編碼時,在變換器/縮放器/量化器(430)中,頻率變換器將空間域視頻信息轉(zhuǎn)換為頻域(即頻譜、變換)數(shù)據(jù)。對于基于塊的視頻編碼,頻率變換器將離散余弦變換(“dct”)、其整數(shù)近似、或另一類型的前向塊變換(例如離散正弦變換或其整數(shù)近似)應(yīng)用于殘留(418)的值塊(或者如果預(yù)測(458)為空則應(yīng)用于樣本值數(shù)據(jù)),從而產(chǎn)生頻率變換系數(shù)塊。變換器/縮放器/量化器(430)可以應(yīng)用具有可變塊尺寸的變換。在這種情況中,變換器/縮放器/量化器(430)可以確定要對當前塊的殘留值使用哪些塊尺寸的變換。例如,在h.265/hevc實現(xiàn)中,編碼器/縮放器/量化器(430)可通過四叉樹分解將tu拆分成四個更小的tu,這些tu中的每一者可進而被拆分成四個更小的tu,一直到最小tu尺寸。tu尺寸可以為32x32、16x16、8x8或4x4(涉及tu中的亮度tb的尺寸)。在h.265/hevc實現(xiàn)中,可以跳過頻率變換。在這種情況下,可以對殘留(418)的值進行量化和熵編碼。
參考圖4a,在編碼器/縮放器/量化器(430)中,縮放器/量化器縮放和量化變換系數(shù)。例如,量化器將以按逐圖片基礎(chǔ)、逐圖塊基礎(chǔ)、逐片基礎(chǔ)、逐塊基礎(chǔ)、頻率專用基礎(chǔ)或其它基礎(chǔ)來變化的量化步長尺寸將死區(qū)標量量化應(yīng)用于頻域數(shù)據(jù)。量化步長尺寸可取決于量化參數(shù)(“qp”),該量化參數(shù)的值是為視頻的圖片、圖塊、片和/或其他部分設(shè)置。在量化變換系數(shù)時,視頻編碼器(340)可使用率失真優(yōu)化量化(“rdoq”)(這是非常耗時的)或者應(yīng)用更簡單的量化規(guī)則。經(jīng)量化的變換系數(shù)數(shù)據(jù)(432)被提供給首部格式化器/熵編碼器(490)。如果頻率變換被跳過,則縮放器/量化器可對預(yù)測殘留數(shù)據(jù)塊(或如果預(yù)測(458)為空則對樣本值)進行縮放和量化,從而生成要提供給首部格式化器/熵編碼器(490)的經(jīng)量化的值。
如圖4a和4b所示,首部格式化器/熵編碼器(490)對通用控制數(shù)據(jù)(422)、經(jīng)量化的變換系數(shù)數(shù)據(jù)(432)、圖片內(nèi)預(yù)測數(shù)據(jù)(442)、運動數(shù)據(jù)(452)以及濾波控制數(shù)據(jù)(462)進行格式化和/或熵編碼。視頻編碼器(340)的熵編碼器壓縮經(jīng)量化的變換系數(shù)值以及某些輔助信息(例如mv信息、qp值、模式判定、參數(shù)選擇、剪輯參數(shù)、濾波參數(shù))。典型的熵編碼技術(shù)包括指數(shù)-golomb編碼、golomb-rice編碼、上下文自適應(yīng)二進制算術(shù)編碼(“cabac”)、差分編碼、huffman編碼、行程長度編碼、可變長度到可變長度(“v2v”)編碼、可變長度到固定長度(“v2f”)編碼、lempel-ziv(“l(fā)z”)編碼、字典編碼和上述編碼的組合。熵編碼器可對不同種類的信息使用不同的編碼技術(shù),并可組合地應(yīng)用多個技術(shù)(例如,通過在cabac的二值化時應(yīng)用指數(shù)-golomb編碼或golomb-rice編碼),并可從特定編碼技術(shù)內(nèi)的多個碼表中進行選擇。
視頻編碼器(340)在基本比特流(諸如圖4a中示出的經(jīng)編碼視頻比特流(495))中產(chǎn)生經(jīng)編碼圖片(341)的經(jīng)編碼數(shù)據(jù)。在圖4a中,首部格式化器/熵編碼器(490)在經(jīng)編碼的視頻比特流(495)中提供經(jīng)編碼的數(shù)據(jù)?;A(chǔ)比特流的句法通常是用編解碼器標準或格式或者其擴展或變型來定義的。例如,經(jīng)編碼的視頻比特流(495)的格式可以是windows媒體視頻格式、vc-1格式、mpeg-x格式(例如,mpeg-1、mpeg-2或mpeg-4)、h.26x格式(例如,h.261、h.262、h.263、h.264、h.265)、vpx格式或其它格式的變型或擴展。在從視頻編碼器(340)輸出后,基本比特流通常用容器格式被分組化或組織,如以下所解釋的。
基本比特流中的經(jīng)編碼的數(shù)據(jù)包括被組織為句法結(jié)構(gòu)的句法元素。一般來說,句法元素可以是任何數(shù)據(jù)元素,并且句法結(jié)構(gòu)是基本比特流中處于指定次序的零個或更多個句法元素。在h.264/avc標準和h.265/hevc標準中,nal單元是包含(1)對要跟隨的數(shù)據(jù)的類型的指示以及(2)該數(shù)據(jù)的一連串零個或更多個字節(jié)的句法結(jié)構(gòu)。例如,nal單元可包含片(經(jīng)編碼的片)的經(jīng)編碼的數(shù)據(jù)。或者,nal單元可包含標記grps中的參考圖片的經(jīng)編碼數(shù)據(jù)。nal單元的尺寸(以字節(jié)為單位)在nal單元之外被指示。經(jīng)編碼片nal單元以及某些其他限定類型的nal單元被稱為視頻編碼層(“vcl”)nal單元。訪問單元是處于連續(xù)比特流次序的一個或多個nal單元的集合,包含圖片的片的經(jīng)編碼的數(shù)據(jù),并可能包含諸如元數(shù)據(jù)之類的其他關(guān)聯(lián)數(shù)據(jù)。
對于根據(jù)h.264/avc或h.265/hevc的標準的句法,圖片參數(shù)集(“pps”)是包含可與圖片相關(guān)聯(lián)的句法元素的句法結(jié)構(gòu)。pps可被用于單個圖片,或者pps可被重用于序列中的多個圖片。pps通常被信號化為與圖片的經(jīng)編碼數(shù)據(jù)分開(例如,針對pps的一個nal單元和針對圖片的經(jīng)編碼數(shù)據(jù)的一個或多個其它nal單元)。在圖片的經(jīng)編碼數(shù)據(jù)內(nèi),句法元素指示要為該圖片使用哪個pps。類似地,對于遵照h.264/avc標準或h.265/hevc的標準的句法,序列參數(shù)集(“sps”)是包含了與圖片序列相關(guān)聯(lián)的句法元素的句法結(jié)構(gòu)。比特流可包括單個sps或多個sps。sps通常被信號化為與該序列的其它數(shù)據(jù)分開,并且其它數(shù)據(jù)中的句法元素指示要使用哪個sps。對于根據(jù)h.264/avc標準或h.265/hevc標準的句法,sps或pps是可以跨在被指定為隨機存取圖片(“rap”)的圖片處定義的隨機存取邊界來訪問的。即,sps和pps對于按比特流次序在隨機存取邊界之前的圖片是可訪問的,并且對于按比特流次序在隨機存取邊界之后的圖片是可訪問的。在一些示例實現(xiàn)中,grps是包含與全局參考圖片相關(guān)聯(lián)的句法元素的句法結(jié)構(gòu)。如同sps或pps,grps是可以跨在被指定為rap的圖片處定義的隨機存取邊界訪問的。不像sps或pps,grps還具有關(guān)于相關(guān)聯(lián)的圖片的經(jīng)編碼數(shù)據(jù)。
如圖3所示,視頻編碼器(340)還產(chǎn)生存儲器管理控制操作(“mmco”)信號(342)或參考圖片集(“rps”)信息。rps是可以被使用以供在對當前圖片或任意后續(xù)圖片的運動補償中的參考的圖片集。如果當前圖片(331)不是已經(jīng)被編碼的第一圖片,則在執(zhí)行其編碼處理時,視頻編碼器(340)可使用已被存儲在經(jīng)解碼圖片臨時存儲器存儲區(qū)域(360)中的一個或多個先前編碼/解碼的圖片(369)。這樣存儲的經(jīng)解碼圖片(369)被用作當前圖片(331)的內(nèi)容的圖片間預(yù)測的參考圖片。mmco/rps信息(342)向視頻解碼器指示哪些經(jīng)重構(gòu)的圖片可被用作參考圖片并因此應(yīng)當被存儲在圖片存儲區(qū)域中。圖4a和4b中的dpb(470)是經(jīng)解碼圖片臨時存儲器存儲區(qū)域(360)的示例。
參考圖3,經(jīng)編碼圖片(341)和mmco/rps信息(342)(或與mmco/rps信息(342)等價的信息,因為在視頻編碼器(340)處已經(jīng)知道各圖片的依賴關(guān)系和排序結(jié)構(gòu))由解碼過程仿真器(350)處理。解碼過程仿真器(350)實現(xiàn)視頻解碼器的一些功能,例如對任務(wù)進行解碼以重構(gòu)參考圖片。以與mmco/rps信息(342)相一致的方式,解碼過程仿真器(350)確定給定的經(jīng)編碼幀(341)是否需要被重構(gòu)并被存儲以供在對要編碼的后續(xù)圖片的圖片間預(yù)測中用作參考幀,以及是否應(yīng)對參考圖片執(zhí)行任何修改(諸如剪輯或去噪)。如果經(jīng)編碼的圖片(341)需要被存儲(且可能被修改),則解碼過程仿真器(350)對將由視頻解碼器進行的解碼處理建模,該視頻解碼器接收經(jīng)編碼的圖片(341)并產(chǎn)生相應(yīng)的經(jīng)解碼的圖片(351)。在這樣做時,當視頻編碼器(340)已經(jīng)使用已被存儲在經(jīng)解碼圖片存儲區(qū)域(360)中的經(jīng)解碼的圖片(369)時,解碼過程仿真器(350)還使用來自存儲區(qū)域(360)的經(jīng)解碼的圖片(369)作為解碼處理的一部分。
解碼過程仿真器(350)可被實現(xiàn)為視頻編碼器(340)的一部分。例如,解碼過程仿真器(350)包括如圖4a和4b中示出的某些模塊和邏輯。在當前圖片(331)的重構(gòu)期間,當殘留(418)的值已被編碼/信號化時,經(jīng)重構(gòu)的殘留值與預(yù)測(458)組合來為當前圖片(331)從視頻信號(405)中產(chǎn)生對原始內(nèi)容的近似或?qū)嶋H重構(gòu)(438)。(在有損壓縮中,一些信息從視頻信號(405)中丟失。)
參考圖4a,為了重構(gòu)殘留值,在縮放器/逆變換器(435)中,縮放器/逆量化器對經(jīng)量化的變換系數(shù)執(zhí)行逆縮放和逆量化。當變換階段尚未被跳過時,逆頻率變換器執(zhí)行逆頻率變換,從而產(chǎn)生經(jīng)重構(gòu)的預(yù)測殘留值或樣本值的塊。如果變換階段已經(jīng)被跳過,則也跳過逆頻率變換。在這種情況下,縮放器/逆量化器可對預(yù)測殘留數(shù)據(jù)(或樣本值數(shù)據(jù))的塊執(zhí)行逆縮放和逆量化,從而產(chǎn)生經(jīng)重構(gòu)的值。當殘留值已經(jīng)被編碼/信號化時,視頻編碼器(340)將經(jīng)重構(gòu)的殘留值與預(yù)測(458)的值(例如,運動補償預(yù)測值、圖片內(nèi)預(yù)測值)組合以形成重構(gòu)(438)。當殘留值尚未被編碼/信號化時,視頻編碼器(340)使用預(yù)測(458)的值作為重構(gòu)(438)。
參考圖4a和4b,對于圖片內(nèi)預(yù)測,重構(gòu)(438)的值可以被饋送回圖片內(nèi)預(yù)測估計器(440)和圖片內(nèi)預(yù)測器(445)。重構(gòu)(438)的值可被用于后續(xù)圖片的運動補償預(yù)測。重構(gòu)(438)的值可被進一步濾波。對于當前圖片(331),濾波控件(460)確定如何對重構(gòu)(438)的值執(zhí)行去塊濾波和樣本自適應(yīng)偏移(“sao”)濾波。濾波控件(460)還可確定如何對當前圖片(331)的重構(gòu)(438)的值進行剪輯和/或執(zhí)行去噪來作為參考圖片,如下所述。濾波控件(460)產(chǎn)生濾波控制數(shù)據(jù)(462),它被提供給頭部格式化器/熵編碼器(490)和合并器/濾波器(465)。
在合并器/濾波器(465)中,視頻編碼器(340)將來自不同圖塊的內(nèi)容合并到當前圖片的經(jīng)重構(gòu)版本中。視頻編碼器(340)根據(jù)濾波控制數(shù)據(jù)(462)和濾波器自適應(yīng)規(guī)則選擇性地執(zhí)行去塊濾波和sao濾波,以便自適應(yīng)地平滑當前圖片(331)中的各邊界上的間斷。在合并器/濾波器中,視頻編碼器(340)還可剪輯當前圖片(331)和/或執(zhí)行去噪,如下所述。可替換地或另外地應(yīng)用其它濾波(例如去振鈴濾波或自適應(yīng)環(huán)路濾波(“alf”);未示出)。取決于視頻編碼器(340)的設(shè)置,圖塊邊界可選擇性地被濾波或根本不被濾波,并且視頻編碼器(340)可在編碼比特流內(nèi)提供句法元素以指示是否應(yīng)用這樣的濾波。
在圖4a和4b中,dpb(470)緩沖經(jīng)重構(gòu)的當前圖片以供在后續(xù)的經(jīng)運動補償?shù)念A(yù)測中使用。更一般地,如圖3所示,經(jīng)解碼圖片臨時存儲器存儲區(qū)域(360)包括多個圖片緩沖區(qū)存儲區(qū)域(361,362,……,36n)。通過與mmco/rps信息(342)相一致的方式中,解碼過程仿真器(350)管理存儲區(qū)域(360)中的內(nèi)容,以便標識出具有視頻編碼器(340)不再需要將其用作參考圖片的圖片的任何圖片緩沖區(qū)(361,362等)。在對解碼處理進行建模之后,解碼過程仿真器(350)在圖片幀緩沖區(qū)(361、362等)中存儲已經(jīng)以此方式標識出的新解碼的圖片(351)。除了經(jīng)重構(gòu)的當前圖片之外,經(jīng)解碼圖片臨時存儲器存儲區(qū)域(360)還可存儲grps中的一個或多個全局參考圖片、一個或多個經(jīng)剪輯參考圖片和/或一個或多個經(jīng)去噪?yún)⒖紙D片。
如圖3所示,經(jīng)編碼的圖片(341)和mmco/rps信息(342)被緩沖在臨時經(jīng)編碼數(shù)據(jù)區(qū)域(370)中。被聚集在經(jīng)編碼數(shù)據(jù)區(qū)域(370)中的經(jīng)編碼數(shù)據(jù)包含一個或多個圖片(例如,grps中的全局參考圖片、其它圖片)的經(jīng)編碼數(shù)據(jù)作為基本比特流的句法的一部分。在經(jīng)編碼數(shù)據(jù)區(qū)域(370)中被聚集的經(jīng)編碼數(shù)據(jù)還可包括與經(jīng)編碼的視頻數(shù)據(jù)相關(guān)的媒體元數(shù)據(jù)(例如作為一個或多個補充增強信息(“sei”)消息或視頻可用性信息(“vui”)消息中的一個或多個參數(shù))。
來自臨時經(jīng)編碼數(shù)據(jù)區(qū)域(370)的經(jīng)聚集的數(shù)據(jù)(371)由信道編碼器(380)處理。信道編碼器(380)可以(例如根據(jù)諸如itu-th.222.0|iso/iec13818-1的媒體程序流或傳輸流格式,或諸如ietfrfc3550的因特網(wǎng)實時傳輸協(xié)議格式)分組化和/或復(fù)用經(jīng)聚集的數(shù)據(jù)供作為媒體流來傳輸或存儲,在這種情況中,信道編碼器(380)可以添加句法元素作為媒體傳輸流的句法的一部分?;蛘撸诺谰幋a器(380)可以(例如根據(jù)諸如iso/iec14496-12的媒體容器格式)組織經(jīng)聚集的數(shù)據(jù)以供作為文件來存儲,在這種情況中,信道編碼器(380)可以添加句法元素作為媒體存儲文件的句法的一部分?;蛘?,更一般地,信道編碼器(380)可以實現(xiàn)一個或多個媒體系統(tǒng)復(fù)用協(xié)議或傳輸協(xié)議,在這種情況中,信道編碼器(380)可以添加句法元素作為協(xié)議的句法的一部分。信道編碼器(380)將輸出提供給信道(390),該信道(390)表示存儲、通信連接或該輸出的另一信道。信道編碼器(380)或信道(390)還可以包括例如用于前向糾錯(“fec”)編碼和模擬信號調(diào)制的其它元素(未示出)。
取決于實現(xiàn)和期望的壓縮類型,視頻編碼器系統(tǒng)(300)和/或視頻編碼器(340)的各模塊可被添加、省略、拆分成多個模塊、與其它模塊組合、和/或用相似的模塊來替代。在替換實施例中,具有不同模塊和/或其他模塊配置的編碼器系統(tǒng)或編碼器執(zhí)行所描述的技術(shù)中的一個或多個。編碼器系統(tǒng)的具體實施例通常使用視頻編碼器系統(tǒng)(300)的變型或補充版本。視頻編碼器的具體實施例通常使用視頻編碼器340的變型或補充版本。所示出的在視頻編碼器系統(tǒng)(300)和視頻編碼器(340)內(nèi)的各模塊之間的關(guān)系指示了信息分別在視頻編碼器系統(tǒng)(300)和視頻編碼器(340)中的一般流動;為簡明起見,未示出其它關(guān)系。一般而言,視頻編碼器系統(tǒng)(300)或視頻編碼器(340)的給定模塊可由能在cpu上執(zhí)行的軟件、控制專用硬件(例如,用于視頻加速的圖形硬件)的軟件、或者專用硬件(例如,asic中)來實現(xiàn)。
示例解碼器系統(tǒng)。
圖5是結(jié)合其可實現(xiàn)所描述的一些實施例的示例視頻解碼器系統(tǒng)(500)的框圖。視頻解碼器系統(tǒng)(500)包括視頻解碼器(550),視頻解碼器(550)在圖6中被進一步詳述。
視頻解碼器系統(tǒng)(500)可以是能夠在多種解碼模式(例如針對實時通信的低等待時間解碼模式、代碼轉(zhuǎn)換模式以及針對來自文件或流的媒體回放的較高等待時間解碼模式)中的任一者中操作的通用解碼工具,或它可以是適用于一種這樣的解碼模式的專用解碼工具。視頻解碼器系統(tǒng)(500)可以被實現(xiàn)為操作系統(tǒng)模塊的部分、應(yīng)用庫的部分、獨立的應(yīng)用的部分或使用專用的硬件??傮w上,視頻解碼器系統(tǒng)(500)從信道(510)接收經(jīng)編碼的數(shù)據(jù)并產(chǎn)生經(jīng)重構(gòu)的圖片作為針對輸出目的地(590)的輸出。接收到的經(jīng)編碼的數(shù)據(jù)可包括使用本文中描述的一個或多個創(chuàng)新來編碼的內(nèi)容。
解碼器系統(tǒng)(500)包括信道(510),該信道(510)可表示存儲、通信連接或針對作為輸入的經(jīng)編碼數(shù)據(jù)的另一信道。信道(510)產(chǎn)生已經(jīng)被信道編碼的經(jīng)編碼的數(shù)據(jù)。信道解碼器(520)可以處理經(jīng)編碼數(shù)據(jù)。例如,信道解碼器(520)(例如根據(jù)諸如itu-th.222.0|iso/iec13818-1的媒體程序流或傳輸流格式,或諸如ietfrfc3550的因特網(wǎng)實時傳輸協(xié)議格式)去分組化和/或去復(fù)用已被組織以供作為媒體流來傳輸或存儲的數(shù)據(jù),在這種情況中,信道解碼器(520)可以解析所添加的作為媒體傳輸流的句法的一部分的句法元素?;蛘撸诺澜獯a器(520)(例如根據(jù)諸如iso/iec14496-12的媒體容器格式)來將已被組織為供作為文件來存儲的經(jīng)編碼的視頻數(shù)據(jù)分開,在這種情況中,信道解碼器(520)可以解析所添加的作為媒體存儲文件的句法的一部分的句法元素?;蛘?,更一般地,信道解碼器(520)可以實現(xiàn)一個或多個媒體系統(tǒng)去復(fù)用協(xié)議或傳輸協(xié)議,在這種情況中,信道解碼器(520)可以解析所添加的作為協(xié)議的句法的一部分的句法元素。信道(510)或信道解碼器(520)還可以包括例如用于fec解碼和模擬信號解調(diào)的其它元素(未示出)。
從信道解碼器(520)輸出的經(jīng)編碼的數(shù)據(jù)(521)被存儲在臨時經(jīng)編碼數(shù)據(jù)區(qū)域(530)中,直到已經(jīng)接收到足夠數(shù)量的這樣的數(shù)據(jù)。經(jīng)編碼的數(shù)據(jù)(521)包括經(jīng)編碼圖片(531)和mmco/rps信息(532)。經(jīng)編碼數(shù)據(jù)區(qū)域(530)中的經(jīng)編碼數(shù)據(jù)(521)包含一個或多個圖片(例如,grps中的全局參考圖片、其它圖片)的經(jīng)編碼數(shù)據(jù)作為基本經(jīng)編碼視頻比特流的句法的一部分。在經(jīng)編碼數(shù)據(jù)區(qū)域(530)中的經(jīng)編碼數(shù)據(jù)(521)還可包括與經(jīng)編碼的視頻數(shù)據(jù)相關(guān)的媒體元數(shù)據(jù)(例如作為一個或多個sei消息或vui消息中的一個或多個參數(shù))。
一般來說,經(jīng)編碼數(shù)據(jù)區(qū)域(530)臨時存儲經(jīng)編碼的數(shù)據(jù)(521),直到這樣的經(jīng)編碼的數(shù)據(jù)(521)被視頻解碼器(550)使用。此時,經(jīng)編碼的圖片(531)和mmco/rps信息(532)的經(jīng)編碼的數(shù)據(jù)被從經(jīng)編碼數(shù)據(jù)區(qū)域(530)傳送到視頻解碼器(550)。隨著解碼繼續(xù),新的經(jīng)編碼數(shù)據(jù)被添加到經(jīng)編碼數(shù)據(jù)區(qū)域(530)并且保留在經(jīng)編碼數(shù)據(jù)區(qū)域(530)中的最舊的經(jīng)編碼數(shù)據(jù)被傳輸?shù)揭曨l解碼器(550)。
視頻解碼器(550)解碼經(jīng)編碼圖片(531)以生成對應(yīng)的經(jīng)解碼圖片(551)。如圖6所示,視頻解碼器(550)接收經(jīng)編碼的圖片(531)作為輸入以作為經(jīng)編碼視頻比特流(605)的一部分,并且視頻解碼器(550)產(chǎn)生相應(yīng)的經(jīng)解碼圖片(551)作為輸出以作為經(jīng)重構(gòu)的視頻(695)。作為解碼的一部分,視頻解碼器(550)在一些情形中使用如本文描述的靈活的參考圖片管理的一個或多個特征。
一般地,視頻解碼器(550)包括執(zhí)行諸如熵解碼、逆量化、逆頻率變換、運動補償、圖片內(nèi)預(yù)測、和濾波之類的解碼任務(wù)的多個解碼模塊。解碼器(550)的許多組件被用于圖片內(nèi)解碼和圖片間解碼這兩者。由那些組件執(zhí)行的確切操作可取決于正被解壓的信息的類型而變化。經(jīng)編碼的視頻比特流的格式(605)可以是windows媒體視頻格式、vc-1格式、mpeg-x格式(例如,mpeg-1、mpeg-2或mpeg-4)、h.26x格式(例如,h.261、h.262、h.263、h.264、h.265)、或vpx格式、或其它格式的變型或擴展。
圖片可被組織成相同尺寸或不同尺寸的多個圖塊。一個圖片還可以被組織成一個或多個片。片或圖塊的內(nèi)容可被進一步組織成塊或其它樣本值集。塊可以在不同的階段被進一步細分。例如,圖片可以被劃分成64x64塊、32x32塊或16x16塊,這些塊可進而被劃分成更小的樣本值塊。在例如針對h.264/avc標準的各解碼實現(xiàn)中,圖片被劃分成各宏塊和塊。在例如針對h.265/hevc標準的解碼實現(xiàn)中,圖片被分割成各ctu(ctb)、cu(cb)、pu(pb)和tu(tb)。
參考圖6,緩沖區(qū)在經(jīng)編碼的視頻比特流(605)中接收經(jīng)編碼的數(shù)據(jù),并使得接收到的經(jīng)編碼數(shù)據(jù)可用于解析器/熵解碼器(610)。解析器/熵解碼器(610)通常應(yīng)用在編碼器(340)中執(zhí)行的熵編碼的逆對經(jīng)熵編碼的數(shù)據(jù)進行熵解碼(例如其中二值化使用指數(shù)-golomb或golomb-rice的上下文自適應(yīng)二進制算術(shù)解碼)。作為解析和熵解碼的結(jié)果,解析器/熵解碼器(610)產(chǎn)生通用控制數(shù)據(jù)(622)、經(jīng)量化的變換系數(shù)數(shù)據(jù)(632)、圖片內(nèi)預(yù)測數(shù)據(jù)(642)、運動數(shù)據(jù)(652)以及濾波控制數(shù)據(jù)(662)(例如,是否以及如何對參考圖片應(yīng)用剪輯和去噪)。
通用解碼控件(620)接收通用控制數(shù)據(jù)(622)。例如,通用控制數(shù)據(jù)(622)包括指示哪些參考圖片將被保留(例如,來自grps)在dpb(670)中。通用解碼控件(620)將控制信號(未示出)提供給其它模塊(例如縮放器/逆變換器(635)、圖片內(nèi)預(yù)測器(645)、運動補償器(655)、以及圖片內(nèi)/圖片間切換)以設(shè)置和改變解碼期間的解碼參數(shù)。
參考圖5,在適當時,當執(zhí)行其解碼處理時,視頻解碼器(550)可將一個或多個先前解碼的圖片(569)用作圖片間預(yù)測的參考圖片。視頻解碼器(550)從經(jīng)解碼圖片臨時存儲器存儲區(qū)域(560)中讀取這樣的先前解碼的圖片(569),經(jīng)解碼圖片臨時存儲器存儲區(qū)域例如是dpb(670)。在給定時間,dpb(670)可存儲grps中的一個或多個參考圖片、一個或多個經(jīng)剪輯參考圖片、一個或多個經(jīng)去噪?yún)⒖紙D片和/或一個或多個其它參考圖片?;蛘?,grsp的參考圖片、經(jīng)剪輯參考圖片和/或經(jīng)去噪?yún)⒖紙D片可被存儲在不同的緩沖區(qū)中。
參考圖6,如果當前圖片是使用圖片間預(yù)測來預(yù)測的,則運動補償器(655)接收運動數(shù)據(jù)(652),諸如mv數(shù)據(jù)、參考圖片選擇數(shù)據(jù)、以及合并模式索引值。運動補償器(655)將mv應(yīng)用于來自dpb(670)或其它緩沖區(qū)的經(jīng)重構(gòu)參考圖片。當使用經(jīng)剪輯參考圖片時,運動補償器(655)可調(diào)整mv所引用的位置以補償剪輯和/或縮放,如下所述。運動補償器(655)產(chǎn)生針對當前圖片中的圖片間編碼塊的運動補償?shù)念A(yù)測。
在視頻解碼器(550)的分開的路徑中,圖片內(nèi)預(yù)測器(645)接收圖片內(nèi)預(yù)測數(shù)據(jù)(642),諸如指示所使用的預(yù)測模式/方向的信息。對于圖片內(nèi)空間預(yù)測,圖片內(nèi)預(yù)測器(645)根據(jù)預(yù)測模式/方向使用當前圖片的重構(gòu)(638)的值,從當前圖片的相鄰的、先前重構(gòu)的樣本值中空間地預(yù)測當前圖片的當前塊的樣本值?;蛘撸瑢τ趫D片內(nèi)塊復(fù)制模式,圖片內(nèi)預(yù)測器(645)使用依據(jù)當前塊的位移(塊向量)指示的參考塊的先前重構(gòu)的樣本值來預(yù)測當前塊的樣本值。
圖片內(nèi)/圖片間切換選擇運動補償?shù)念A(yù)測或圖片內(nèi)預(yù)測的值用作給定塊的預(yù)測(658)。例如,當h.265/hevc句法被遵循時,可以基于為圖片中的cu編碼的句法元素來控制圖片內(nèi)/圖片間切換,該圖片可以包含圖片內(nèi)預(yù)測的cu和圖片間預(yù)測的cu。當殘留值已經(jīng)被編碼/信號化時,視頻解碼器(550)將預(yù)測(658)與重構(gòu)的殘留值組合以產(chǎn)生來自視頻信號的內(nèi)容的重構(gòu)(638)。當殘留值尚未被編碼/信號化時,視頻解碼器(550)將預(yù)測(658)的值用作重構(gòu)(638)。
視頻解碼器(550)還重構(gòu)預(yù)測殘留值。為了在殘留值已被編碼/信號化時重構(gòu)殘留,縮放器/逆變換器(635)接收并處理經(jīng)量化的變換系數(shù)數(shù)據(jù)(632)。在縮放器/逆變換器(635)中,縮放器/逆量化器對經(jīng)量化的變換系數(shù)執(zhí)行逆縮放和逆量化??s放器/逆變換器(635)基于比特流中的句法元素為圖片、小塊、片和/或視頻的其它部分設(shè)置qp值。逆頻率變換器執(zhí)行逆頻率變換,從而產(chǎn)生經(jīng)重構(gòu)的預(yù)測殘留值或樣本值的塊。例如,逆頻率變換器將逆塊變換應(yīng)用到頻率變換系數(shù),從而產(chǎn)生樣本值數(shù)據(jù)或預(yù)測殘留數(shù)據(jù)。逆頻率變換可以是逆dct、其整數(shù)近似、或另一種類型的逆頻率變換(例如逆離散正弦變換或其整數(shù)近似)。如果頻率變換在編碼期間被跳過,則逆頻率變換也被跳過。在這種情況下,縮放器/逆量化器可對預(yù)測殘留數(shù)據(jù)(或樣本值數(shù)據(jù))的塊執(zhí)行逆縮放和逆量化,從而產(chǎn)生經(jīng)重構(gòu)的值。視頻解碼器(550)將經(jīng)重構(gòu)的預(yù)測殘留值于預(yù)測(658)的預(yù)測值組合,從而產(chǎn)生重構(gòu)(638)的值。
對于圖片內(nèi)預(yù)測,重構(gòu)(638)的值可以被饋送回圖片內(nèi)預(yù)測器(645)。對于圖片間預(yù)測,重構(gòu)(638)的值可以被進一步濾波。在合并器/濾波器(665)中,視頻解碼器(550)將來自不同小塊的內(nèi)容合并到圖片的經(jīng)重構(gòu)版本中。視頻解碼器(550)根據(jù)濾波控制數(shù)據(jù)(662)和濾波自適應(yīng)規(guī)則來執(zhí)行去塊濾波和sao濾波,以便自適應(yīng)地平滑各圖片中的各邊界上的間斷。在合并器/濾波器中,視頻解碼器(550)還可剪輯當前圖片(作為參考圖片)和/或執(zhí)行去噪,如下所述??商鎿Q地或另外地應(yīng)用其它濾波(例如去振鈴濾波或alf;未示出)。圖塊邊界可以被選擇性地濾波或根本不被濾波,這取決于視頻解碼器(550)的設(shè)置或經(jīng)編碼的比特流數(shù)據(jù)內(nèi)的句法元素。dpb(670)緩沖經(jīng)重構(gòu)的當前圖片以供在后續(xù)的經(jīng)運動補償?shù)念A(yù)測中用作參考圖片。除了經(jīng)重構(gòu)的當前圖片之外,dpb(670)還可存儲grps中的一個或多個全局參考圖片、一個或多個經(jīng)剪輯參考圖片和/或一個或多個經(jīng)去噪?yún)⒖紙D片?;蛘撸琯rsp的全局參考圖片、經(jīng)剪輯參考圖片和/或經(jīng)去噪?yún)⒖紙D片可被存儲在另一緩沖區(qū)中。
視頻解碼器(550)還可包括后處理濾波器。后處理濾波器可包括去塊濾波、去振鈴濾波、自適應(yīng)維納濾波、膜顆粒再現(xiàn)濾波、sao濾波或另一種類的濾波。盡管“內(nèi)環(huán)路”濾波是在運動補償環(huán)路中對圖片的經(jīng)重構(gòu)的樣本值執(zhí)行的,并因此影響參考圖片的樣本值,但后處理濾波器是在經(jīng)重構(gòu)的樣本值被輸出以供顯示之前在運動補償環(huán)路外部被應(yīng)用于經(jīng)重構(gòu)的樣本值的。
參考圖5,經(jīng)解碼圖片臨時存儲器存儲區(qū)域(560)包括多個圖片緩沖器存儲區(qū)域(561,562,…,56n)。經(jīng)解碼圖片存儲區(qū)域(560)例如是dpb(670)。解碼器(550)使用mmco/ps信息(532)來標識該解碼器可將經(jīng)解碼的圖片(551)存儲在其中的圖片緩沖器(561、562等)。解碼器(550)將經(jīng)解碼的圖片(551)存儲在那個圖片緩沖器中。以與mmco/rps信息(532)一致的方式,解碼器(550)還確定是否將任何參考圖片從多個圖片緩沖存儲區(qū)域(561,562,……,56n)中移除。合并器/濾波器(665)修改(諸如剪輯或去噪)參考圖片后,多個圖片緩沖存儲區(qū)域(561,562,……,56n)可包括經(jīng)剪輯參考圖片和/或經(jīng)去噪?yún)⒖紙D片以及grps中的參考圖片。
輸出序列發(fā)生器(580)標識按顯示次序(也被稱為輸出次序)將產(chǎn)生的下一圖片何時可在經(jīng)編碼圖片存儲區(qū)域(560)中獲得。當將按顯示次序產(chǎn)生的下一圖片(581)可在經(jīng)解碼圖片存儲區(qū)域(560)中獲得時,輸出序列發(fā)生器(580)讀取該下一圖片并將其輸出到輸出目的地(590)(例如顯示器)。一般來說,輸出序列發(fā)生器(580)將圖片從經(jīng)解碼圖片存儲區(qū)域(560)中輸出的次序(顯示次序)可以與解碼器(550)解碼這些圖片的次序(比特流次序)不同。
取決于實現(xiàn)和所希望的解壓的類型,視頻解碼器系統(tǒng)(500)和/或視頻解碼器(550)的模塊可以被添加、省略、拆分成多個模塊、與其他模塊組合和/或替換為類似的模塊。在替換實施例中,具有不同模塊和/或其他模塊配置的解碼器系統(tǒng)或解碼器執(zhí)行所描述的技術(shù)中的一個或多個。解碼器系統(tǒng)的具體實施例通常使用視頻解碼器系統(tǒng)(500)的變型或補充版本。視頻解碼器的具體實施例通常使用視頻解碼器(550)的變型或補充版本。所示出的在視頻解碼器系統(tǒng)(500)和視頻解碼器(550)內(nèi)的各模塊之間的關(guān)系指示信息分別在視頻解碼器系統(tǒng)(500)和視頻解碼器(550)中的一般流動;為簡單起見,未示出其他關(guān)系。一般而言,視頻解碼器系統(tǒng)(500)的給定模塊或視頻解碼器(550)可由能在cpu上執(zhí)行的軟件、控制專用硬件(例如,用于視頻加速的圖形硬件)的軟件、或者專用硬件(例如,asic中)來實現(xiàn)。
靈活的參考圖片管理。
本章節(jié)描述了靈活的參考圖片管理中的創(chuàng)新。例如,創(chuàng)新包括視頻編碼/解碼期間的對全局參考圖片集(“grps”)的使用、視頻編碼/解碼期間的對參考圖片的剪輯、和/或視頻編碼/解碼期間的對參考圖片的去噪。在一些情形(例如,使用grps、參考圖片去噪)中,創(chuàng)新可通過提供更好的參考圖片以供進行圖片間預(yù)測來提高編碼效率。在其它情形(例如,參考圖片剪輯)中,創(chuàng)新可減少用于在視頻編碼/解碼期間存儲參考圖片的存儲器的量,由此節(jié)省計算資源。
靈活的參考圖片管理概述。
圖7示出了用于包括靈活的參考圖片管理的視頻編碼的通用技術(shù)(700)。視頻編碼器系統(tǒng)(諸如參考圖3描述的視頻編碼器系統(tǒng)(300)或另一視頻編碼器系統(tǒng))執(zhí)行該技術(shù)(700)。
視頻編碼器系統(tǒng)對視頻序列的一個或多個圖片進行編碼(710)以產(chǎn)生經(jīng)編碼數(shù)據(jù)。作為編碼的一部分,視頻編碼器系統(tǒng)使用靈活的參考圖片管理的一個或多個特征。例如,視頻編碼器系統(tǒng)在編碼期間使用grps(參見章節(jié)v.b以及例如圖11),在編碼期間執(zhí)行對參考圖片的剪輯(參見章節(jié)v.c以及例如圖15),和/或在編碼期間執(zhí)行對參考圖片的去噪(參見章節(jié)v.d以及例如圖17)。
視頻編碼器系統(tǒng)將經(jīng)編碼數(shù)據(jù)作為比特流的一部分來輸出(720)。經(jīng)編碼數(shù)據(jù)可包括視頻序列的圖片的經(jīng)編碼數(shù)據(jù)以及用于如下所述的靈活的參考圖片管理的特征的控制數(shù)據(jù)。視頻編碼器系統(tǒng)檢查(730)是否通過對視頻序列中的一個或多個后續(xù)圖片進行編碼來繼續(xù),并且如果是,則對后續(xù)圖片進行編碼(710)。
圖7所示的技術(shù)(700)可由計算機系統(tǒng)作為一種方法來執(zhí)行?;蛘撸嬎銠C系統(tǒng)可包括被配置成執(zhí)行用于圖7所示的技術(shù)(700)的視頻編碼操作的視頻編碼器并且還包括被配置成存儲比特流的一部分的緩沖區(qū)。或者,一種或多種計算機可讀介質(zhì)可存儲計算機可執(zhí)行指令,這些指令用于使得由此編程的計算機系統(tǒng)執(zhí)行用于圖7所示的技術(shù)(700)的視頻編碼操作。一種或多種計算機可讀介質(zhì)可存儲由圖7所示的技術(shù)(700)產(chǎn)生的經(jīng)編碼數(shù)據(jù)。
圖8示出了用于包括靈活的參考圖片管理的視頻解碼的對應(yīng)的通用技術(shù)(800)。視頻解碼器系統(tǒng)(諸如參考圖5描述的視頻解碼器系統(tǒng)(500)或另一視頻解碼器系統(tǒng))執(zhí)行該技術(shù)(800)。
視頻解碼器系統(tǒng)接收(810)作為比特流的一部分的視頻序列的一個或多個圖片的經(jīng)編碼數(shù)據(jù)。經(jīng)編碼數(shù)據(jù)可包括視頻序列的圖片的經(jīng)編碼數(shù)據(jù)以及用于如下所述的靈活的參考圖片管理的特征的控制數(shù)據(jù)。
視頻解碼器系統(tǒng)解碼(820)經(jīng)編碼數(shù)據(jù)以重構(gòu)視頻序列的圖片。作為解碼的一部分,視頻解碼器系統(tǒng)使用靈活的參考圖片管理的一個或多個特征。例如,視頻解碼器系統(tǒng)在解碼期間使用grps(參見章節(jié)v.b以及例如圖12),在解碼期間執(zhí)行對參考圖片的剪輯(參見章節(jié)v.c以及例如圖15),和/或在解碼期間執(zhí)行對參考圖片的去噪(參見章節(jié)v.d以及例如圖17)。視頻解碼器系統(tǒng)檢查(830)是否通過對視頻序列中的一個或多個后續(xù)圖片進行解碼來繼續(xù),并且如果是,則接收(810)后續(xù)圖片的經(jīng)編碼數(shù)據(jù)。
圖8所示的技術(shù)(800)可由計算機系統(tǒng)作為一種方法來執(zhí)行。或者,計算機系統(tǒng)可包括被配置成執(zhí)行用于圖8所示的技術(shù)(800)的視頻解碼操作的視頻解碼器并且還包括被配置成存儲比特流的一部分的緩沖區(qū)?;蛘?,一種或多種計算機可讀介質(zhì)可存儲計算機可執(zhí)行指令,這些指令用于使得由此編程的計算機系統(tǒng)執(zhí)行用于圖8所示的技術(shù)(800)的視頻解碼操作。一種或多種計算機可讀介質(zhì)可存儲被配置成供視頻解碼器通過用于圖8所示的技術(shù)(800)的視頻解碼操作來解碼的經(jīng)編碼數(shù)據(jù)。
全局參考圖片集。
本章節(jié)描述了在視頻編碼和視頻解碼期間使用grps中的創(chuàng)新。例如,視頻編碼器和視頻解碼器使用保持在存儲器中并因此比常規(guī)參考圖片更長地可供用于視頻編碼和視頻解碼的參考圖片的grps。使用grps能通過使專門選擇的全局參考圖片在整個視頻編碼和視頻解碼中可用來提高視頻編碼效率。
對grps的介紹。
在許多視頻編解碼器標準和格式中,視頻序列可包括被指定為隨機存取圖片(“rap”)的圖片。常規(guī)上,被指定為rap的圖片只使用圖片內(nèi)編碼來編碼,而沒有任何圖片間預(yù)測。正確的解碼可開始于指定rap。按比特流次序(也被稱為編碼次序或解碼次序)和顯示次序在指定rap后的圖片不依賴于按比特流次序在指定rap之前的參考圖片。除了幾個特例之外,在指定rap后編碼/解碼的圖片不依賴于在該指定rap之前編碼/解碼的參考圖片。(在一些編解碼器標準中,按比特流次序在指定rap后但按顯示次序在指定rap之前的圖片依賴于更早先的參考圖片,但這一圖片通常在隨機存取之際被丟棄。)當視頻解碼器檢測到被指定為rap的圖片時,視頻解碼器通常將所有參考圖片從其dpb中移除。雖然具有常規(guī)rap的編碼/解碼促成回放中的各種特征(例如,錯誤恢復(fù)、信道切換、不同比特率的流之間的切換),但rap難以高效地壓縮,因為圖片間預(yù)測未被使用。
對于根據(jù)h.264標準或h.265標準的句法,圖片參數(shù)集(“pps”)包含可與圖片相關(guān)聯(lián)的句法元素。pps可被用于單個圖片,或者pps可被重用于序列中的多個圖片。類似地,對于根據(jù)h.264標準或h.265標準的句法,序列參數(shù)集(“sps”)包含可與圖片序列相關(guān)聯(lián)的句法元素。通常,sps或pps在編碼或解碼期間保持活躍直到它被另一sps或pps替代。不像參考圖片,sps或pps跨指定rap處的隨機存取邊界保持活躍。即,按比特流次序在指定rap后編碼/解碼的圖片仍能使用來自按比特流次序在該指定rap之前的sps或pps。如果sps或pps在視頻解碼器檢測到指定rap時不可用,則視頻解碼器可快速瀏覽比特流以尋找sps或pps,或者視頻解碼器可請求sps或pps的重傳。為了更容易地定位sps或pps,sps或pps可以在比特流中周期性地重復(fù)。
例如,經(jīng)編碼數(shù)據(jù)的比特流可以如下組織:
sps0,pps0,rap00,p1,……,p29,rap130,p31,……,p59,rap260,p61,……
其中sps0指示第一sps(在比特流中其后可以是第二spssps1、第三spssps2等),且pps0指示第一pps(在比特流中其后可以是第二ppspps1、第三ppspps2等)。rap00、rap130和rap260指示每隔30個圖片出現(xiàn)的指定rap。rap00是第一rap,rap130是第二rap,rap260是第三rap,以此類推。p1、p2、……指示相對于一個或多個參考圖片使用圖片間預(yù)測來編碼的圖片。經(jīng)編碼數(shù)據(jù)單元的比特流次序是針對這些單元示出的次序。對于將被解碼和顯示的圖片,顯示次序由下標值指示。例如,rap130是第二rap,且其顯示次序為30。不顯示某些經(jīng)編碼數(shù)據(jù)單元(例如,對于sps或pps)。在該示例中,當檢測到指定rap時,視頻解碼器將所有參考圖片從其dpb中移除。由此,參考圖片鏈在指定rap處截斷。按比特流次序在指定rap后的圖片pn無法參考按比特流次序在該指定rap之前的任何圖片。另一方面,sps0和pps0保持活躍直到在解碼期間被替換,甚至在視頻解碼器檢測到指定rap后。
根據(jù)本章節(jié)中描述的創(chuàng)新,grps包括一個或多個全局參考圖片。如同sps或pps,grps中的全局參考圖片是全局可用的,而不管指定rap處的隨機存取邊界。對指定rap的檢測不會導(dǎo)致將grps中的全局參考圖片從dpb或其它緩沖區(qū)中移除。相反,grps中的全局參考圖片保持可用以供在視頻解碼器遇到指定rap后用作參考圖片。在一些示例實現(xiàn)中,指定rap可以在圖片間預(yù)測中將grps中的全局參考圖片用作參考圖片,這使得對指定rap的編碼變得高效得多。由此,grps可以被集成到視頻編碼/解碼中以支持隨機存取,同時還提高對于指定rap的編碼效率。
grps的示例使用。
圖9示出了視頻編碼或視頻解碼使用grps時的對dpb(470、670)的更新的示例(900)。在視頻編碼/解碼當中期間的某一時刻,dpb(470、670)包括grps中的三個參考圖片(grps0,grps1,grps2)以及五個常規(guī)參考圖片(ref0,……,ref4)。grps0是第一grps,grps1是第二grps,grps2是第三grps,以此類推。grps可被顯示(在該情形中它在以下示例中包括下標)或不被顯示(在該情形中它在以下示例中缺少下標)。當遇到指定rap時,視頻編碼器或視頻解碼器將五個常規(guī)參考圖片(ref0,……,ref4)從dpb(470、670)中移除。然而,dpb(470、670)保留三個全局參考圖片(grps0,grps1,grps2)。由此,這三個全局參考圖片(grps0,grps1,grps2)保持是跨指定rap定義的rap邊界可訪問的。指定rap可將這三個全局參考圖片(grps0,grps1,grps2)中的任一者用作參考圖片。甚至按比特流次序和顯示次序在指定rap后的圖片也可將這三個全局參考圖片(grps0,grps1,grps2)中的任一者用作參考圖片。
圖9示出了也存儲其它常規(guī)參考圖片的dpb(470、670)中的全局參考圖片。或者,grps中的全局參考圖片被分開存儲。例如,全局參考圖片被存儲在用于grps的單獨緩沖區(qū)中。將全局參考圖片存儲在單獨緩沖區(qū)中可簡化全局參考圖片的管理。
視頻編碼器確定何時向grps添加全局參考圖片。全局參考圖片可以是視頻序列中的將被解碼和顯示的實際圖片?;蛘撸謪⒖紙D片可以是從視頻序列的圖片中生成或人工創(chuàng)建的虛擬圖片,該虛擬圖片將在圖片間預(yù)測中被解碼和使用,但不被顯示。章節(jié)v.b.4描述了用于在確定作為grps的一部分的全局參考圖片時做出決策的各種辦法。視頻編碼器對全局參考圖片進行編碼并將全局參考圖片的經(jīng)編碼數(shù)據(jù)標記為grps的一部分。例如,nal單元類型標記比特流中的grps單元。或者,grps中的全局參考圖片的經(jīng)編碼數(shù)據(jù)用某一其它指示符來標記。視頻解碼器解碼并緩沖全局參考圖片。
圖10a-10d示出了比特流中的包括grps單元的經(jīng)編碼數(shù)據(jù)單元的示例序列(1010,1020,1030,1040)。經(jīng)編碼數(shù)據(jù)單元的比特流次序是圖10a-10d中針對這些單元示出的次序。對于將被解碼和顯示的圖片,顯示次序由下標值指示。某些經(jīng)編碼數(shù)據(jù)單元(例如,在一些情形中,對于sps或pps、對于grps中的全局參考圖片)不被顯示。由此,對于將被解碼但不被顯示的圖片(例如,一些grps),在圖10a-10d中未示出下標值。在一些情形中,比特流次序不同于顯示次序(例如,由于運動補償中的雙向預(yù)測或反向預(yù)測)。例如,在圖10a和10b中,若干圖片(p59、p60)按顯示次序比指定rap(rap261)更早,但按比特流次序比指定rap(rap261)更晚。
在圖10a中,示例序列(1010)包括grps中的全局參考圖片(grps00)、sps(sps0)和pps(pps0)的經(jīng)編碼數(shù)據(jù)。示例序列(1010)還包括每隔30個圖片出現(xiàn)并且定義隨機存取邊界的三個指定rap(rap01,rap131,rap261)的經(jīng)編碼數(shù)據(jù)以及其它圖片(pn)的經(jīng)編碼數(shù)據(jù)。grps、sps和pps可以是跨指定rap處定義的隨機存取邊界可訪問的。例如,在圖10a中,第三指定rap(rap261)定義隨機存取邊界。grps00、sps0和pps0對于按比特流次序和顯示次序在第三指定rap(rap261)之前的圖片(p58)是可訪問的,對于按顯示次序在第三指定rap(rap261)之前但按比特流次序在其之后的圖片(p59)是可訪問的,并且對于按比特流次序和顯示次序在第三指定rap(rap261)之后的圖片(p62)是可訪問的。由此,全局參考圖片(grps00)具有參數(shù)集的特性(跨隨機存取邊界可訪問,這意味著全局參考圖能由在不同的隨機存取時段中的各圖片共享)以及常規(guī)圖片的特性(包括比特流中的關(guān)于單獨的可解碼圖片內(nèi)容的經(jīng)編碼數(shù)據(jù))。
視頻編碼器和視頻解碼器可使用參考圖片標識符(“id”)來標識grps中的全局參考圖片。當另一圖片使用grps中的全局參考圖片來進行圖片間預(yù)測時,該另一圖片使用參考圖片id來定位緩沖區(qū)中的全局參考圖片。視頻編碼器和視頻解碼器可以對grps中的全局參考圖片使用參考圖片id的單獨集合(即,全局參考圖片id)。例如,grps中的每一全局參考圖片被指派唯一的全局參考圖片id?;蛘?,視頻編碼器和視頻解碼器可以對全局參考圖片以及其它常規(guī)參考圖片使用相同的參考圖片id集合。
視頻編碼器和視頻解碼器可將全局參考圖片納入現(xiàn)有過程中以用于在運動補償操作中使用參考圖片。例如,視頻編碼器/解碼器構(gòu)造參考圖片集以及一個或多個參考圖片列表。對于將要解碼的給定圖片,當前參考圖片集包括在對給定圖片以及按比特流次序晚于給定圖片的任何圖片的運動補償操作中可供參考的圖片。當使用grps時,當前參考圖片集包括一個或多個全局參考圖片。然后,視頻編碼器/解碼器從當前參考圖片集中構(gòu)造一個或多個參考圖片列表。參考圖片列表包括可用于在對給定圖片或其一部分(例如,對一片)的運動補償操作中參考的圖片。
在一些示例實現(xiàn)中,指定rap可使用圖片內(nèi)編碼或使用通過grps中的一個或多個全局參考圖片的圖片間預(yù)測來編碼。圖10b示出了比特流中的包括grps單元的經(jīng)編碼數(shù)據(jù)單元的另一示例序列(1020)。在該序列(1020)中,指定rap中的兩者(rap01和rap261)使用來自grps中的全局參考圖片(grps00)的圖片間預(yù)測來編碼。另一指定rap(rap131)使用圖片內(nèi)編碼來編碼。用來自grps中的全局參考圖片的圖片間預(yù)測來對指定rap編碼可極大地減少用于編碼指定rap的比特的量。提高的編碼效率的成本取決于全局參考圖片,該全局參考圖片被解碼和緩沖以使其可供后續(xù)解碼。
如果全局參考圖片不可用于指定rap或另一圖片的圖片間預(yù)測,則視頻解碼器可在本地快速瀏覽比特流的可用部分以查找全局參考圖片的經(jīng)編碼數(shù)據(jù),然后解碼并緩沖該全局參考圖片。或者,視頻解碼器可請求在流傳輸期間重傳全局參考圖片,然后解碼并緩沖全局參考圖片。這些操作可以向使用全局參考圖片來進行圖片間預(yù)測的解碼添加延遲。
為冗余起見,比特流可包括全局參考圖片的經(jīng)編碼數(shù)據(jù)的多個副本。圖10c示出了比特流中的包括多個grps單元的經(jīng)編碼數(shù)據(jù)單元的另一示例序列(1030)。在示例序列(1030)中,第一全局參考圖片(grps0)的經(jīng)編碼數(shù)據(jù)出現(xiàn)兩次。第一全局參考圖片(grps0)被解碼并且可以在圖片間預(yù)測中使用,但不被顯示。在圖10c的示例中,另一全局參考圖片(grps10)被解碼并顯示,并且可以在圖片間預(yù)測中使用。更一般地,grps中的全局參考圖片(如sps和pps一樣)可以在整個比特流中出現(xiàn)。
在前述示例中,每一全局參考圖片使用圖片內(nèi)壓縮來編碼。圖10d示出了比特流中的包括多個grps單元的經(jīng)編碼數(shù)據(jù)單元的另一示例序列(1040)。在圖10d的示例序列(1040)中,一個全局參考圖片(grps2)使用通過作為參考圖片的按比特流次序的更早先的全局參考圖片(grps0)的圖片間預(yù)測來編碼。另一全局參考圖片(grps10)使用圖片內(nèi)編碼來編碼。grps中的全局參考圖片在使用圖片間預(yù)測來編碼時只參考按比特流次序中更早先的全局參考圖片。潛在地,全局參考圖片可依賴于更早先的全局參考圖片鏈,在該情形中視頻解碼器解碼并緩沖該預(yù)測鏈中的尚不可用的任何更早先的全局參考圖片。為了限制解碼延遲,視頻編碼器可約束用于grps圖片間預(yù)測的預(yù)測鏈的長度。如果約束為0,則每一全局參考圖片都使用圖片內(nèi)編碼來編碼。在該情形中,使用全局參考圖片來進行對任何圖片的圖片間預(yù)測增加最多一個圖片的解碼延遲。
為了減少通過在圖片間預(yù)測中使用全局參考圖片而引入的解碼延遲,視頻解碼器可緩沖grps中的全局參考圖片。grps中的全局參考圖片可被緩沖在dpb或其它緩沖區(qū)中。在一些示例實現(xiàn)中,視頻解碼器基于由視頻編碼器用信令通知的控制信息來更新緩沖區(qū)中的全局參考圖片。或者,視頻解碼器在“最大努力”的基礎(chǔ)上緩沖grps中的全局參考圖片,通過快速瀏覽比特流或者請求重傳grps中的全局參考圖片的經(jīng)編碼數(shù)據(jù)來按需恢復(fù)丟失的全局參考圖片。例如,視頻解碼器緩沖最多n個全局參考圖片(其中n取決于實現(xiàn)),然后開始丟棄全局參考圖片(例如,開始于最近最少使用全局參考圖片或最老的全局參考圖片或者以某種其它方式標識要丟棄的全局參考圖片)。在該情形中,視頻解碼器在稍后解碼期間按需恢復(fù)所丟棄的全局參考圖片。
使用grps的示例編碼。
圖11示出了用于使用作為grps的一部分的全局參考圖片來進行視頻編碼的示例技術(shù)(1100)。視頻編碼器系統(tǒng)(諸如參考圖3描述的視頻編碼器系統(tǒng)(300)或另一視頻編碼器系統(tǒng))在對視頻序列的一個或多個圖片進行編碼以產(chǎn)生經(jīng)編碼數(shù)據(jù)時執(zhí)行該技術(shù)(1100)。
視頻編碼器系統(tǒng)確定(1110)作為grps的一部分的全局參考圖片。例如,視頻編碼器系統(tǒng)從視頻序列的一個或多個圖片中選擇全局參考圖片?;蛘撸鳛榱硪皇纠?,視頻編碼器系統(tǒng)從視頻序列的兩個或更多個圖片中創(chuàng)建全局參考圖片。下一章節(jié)描述了用于確定作為grps的一部分的全局參考圖片的各種辦法。
視頻編碼器系統(tǒng)對全局參考圖片進行編碼(1120)以產(chǎn)生全局參考圖片的經(jīng)編碼數(shù)據(jù)。例如,視頻編碼器系統(tǒng)只使用圖片內(nèi)壓縮操作來對全局參考圖片進行編碼?;蛘?,視頻編碼器系統(tǒng)使用圖片間壓縮操作來對全局參考圖片進行編碼。在該情形中,對全局參考圖片進行編碼使用另一全局參考圖片來在運動補償操作中進行參考。約束可限制grps內(nèi)的預(yù)測鏈的深度(例如,一個圖片、兩個圖片)。
視頻編碼器系統(tǒng)還對其它圖片進行編碼(1130)以產(chǎn)生其它圖片的經(jīng)編碼數(shù)據(jù)。其它圖片包括被指定為rap的圖片。全局參考圖片是跨隨機存取邊界可用的。由此,全局參考圖片可供用于對按比特流次序或顯示次序在指定rap之前的至少一個其它圖片進行編碼,并且全局參考圖片也可供對按比特流次序或顯示次序在指定rap之后的至少一個其它圖片進行編碼。作為對其它圖片進行編碼的一部分,指定rap可使用全局參考圖片來在運動補償操作中進行參考?;蛘撸莚ap圖片可使用全局參考圖片來在運動補償操作中進行參考。
在一些示例實現(xiàn)中,視頻編碼器系統(tǒng)還定義控制對其它圖片的編碼的一個或多個參數(shù)集。例如,參數(shù)集包括sps和pps。參數(shù)集是跨隨機存取邊界可用的。它們可供用于對按比特流次序在指定rap之前的至少一個其它圖片編碼,并且它們可供用于對按比特流次序在指定rap之后的至少一個其它圖片編碼。
包括全局參考圖片的經(jīng)編碼數(shù)據(jù)以及其它圖片的經(jīng)編碼數(shù)據(jù)在內(nèi)的經(jīng)編碼數(shù)據(jù)可作為比特流的一部分來輸出。全局參考圖片的經(jīng)編碼數(shù)據(jù)可以用比特流中的單元類型來被標記為是grps的一部分?;蛘?,全局參考圖片的經(jīng)編碼數(shù)據(jù)以某種其它方式標記。
在使用grps時的示例編碼器側(cè)決策。
視頻編碼器系統(tǒng)可使用各種辦法中的任一種來決定何時向grps添加全局參考圖片。在不同的辦法中,視頻編碼器系統(tǒng)以不同方式確定新全局參考圖片。
根據(jù)第一組辦法,視頻編碼器系統(tǒng)周期性地向grps添加另一全局參考圖片。如果全局參考圖片的計數(shù)已經(jīng)達到閾值,則視頻編碼器系統(tǒng)可將一全局參考圖片從grps中移除(例如,移除最老的全局參考圖片、移除最近最少使用的全局參考圖片)。在該第一組辦法中,全局參考圖片之間的時段歷時取決于實現(xiàn)。例如,歷時是10秒、15秒或某一其它秒數(shù)。在全局參考圖片之間的時段內(nèi),視頻編碼器系統(tǒng)可周期性地將圖片指定為使用圖片內(nèi)壓縮或使用通過一個或多個先前的全局參考圖片(例如,使用grps中的緊接在前的全局參考圖片)的圖片間預(yù)測來編碼的rap。
根據(jù)第二組辦法,視頻編碼器系統(tǒng)檢測視頻序列中的場景變化。在已經(jīng)檢測到場景變化后,視頻編碼器系統(tǒng)插入grps中的新全局參考圖片。具體而言,全局參考圖片可被用作針對屬于該場景的圖片的參考圖片。例如,視頻編碼器系統(tǒng)從場景變化后的一個或多個圖片中選擇或創(chuàng)建全局參考圖片?;蛘撸鳛榱硪皇纠?,視頻編碼器系統(tǒng)從grps內(nèi)標識先前已與視頻序列中的同一場景(或類似場景)相關(guān)聯(lián)的全局參考圖片。這在場景被重復(fù)時或者在場景來回切換時可以是有用的。在該情形中,視頻編碼器系統(tǒng)可以對相同(或相似)場景重用先前的全局參考圖片。當視頻解碼器系統(tǒng)已經(jīng)具有針對相同(或相似)場景的先前的全局參考圖片時,視頻編碼器系統(tǒng)可跳過全局參考圖片的經(jīng)編碼數(shù)據(jù)的輸出。在第二組辦法中,如同在第一組辦法中,如果全局參考圖片的計數(shù)已經(jīng)達到閾值,則視頻編碼器系統(tǒng)可將一全局參考圖片從grps中移除(例如,移除最老的全局參考圖片、移除最近最少使用的全局參考圖片)。
根據(jù)第三組辦法,視頻編碼器系統(tǒng)將視頻序列的至少某些圖片評估為全局參考圖片的選項,并且從所評估的選項中標識全局參考圖片。此類辦法可以是計算密集的,這使其相比于實時視頻編碼更適合離線視頻編碼。例如,假設(shè)視頻編碼器系統(tǒng)評估一系列圖片以標識一個或多個全局參考圖片的集合。視頻編碼器系統(tǒng)將指定rap(rap0、rap1、rap2、rap3等)認為是全局參考圖片的候選。為了簡化分析,每一指定rap使用最多一個全局參考圖片來用于圖片間預(yù)測,并且全局參考圖片本身使用圖片內(nèi)壓縮來編碼。對于指定rap中的每一rapi,視頻編碼器系統(tǒng)計算通過將指定rap中的另一rapj用作全局參考圖片來對rapi進行編碼的成本ci,j。當i等于j時,指定raprapi用圖片內(nèi)壓縮來編碼。成本ci,j可以是速率失真成本或另一成本度量。視頻編碼器系統(tǒng)為該系列選擇grp計數(shù)個全局參考圖片(例如,grp計數(shù)可以是1、2、3或某一其它全局參考圖片數(shù))。具體而言,對于grp計數(shù)個全局參考圖片的集合中的全局參考圖片a、b、……、g,視頻編碼器系統(tǒng)選擇對于其grp總成本被最小化的grp計數(shù)個全局參考圖片:grp總成本=ca,a+cb,b+…+cg,g+σiminjci,j,對于i不是a、b、……、g之一且j是a、b、……、g之一。總成本計及用圖片內(nèi)壓縮來對每一候選全局參考圖片進行編碼的成本(即,ca,a+cb,b+…+cg,g)??偝杀具€計及使用最佳候選全局參考圖片σiminjci,j來對所有其余指定rap進行編碼的成本。視頻編碼器系統(tǒng)可改為準許使用來自其它全局參考圖片的圖片間預(yù)測(而無需對全局參考圖片進行圖片內(nèi)編碼)來編碼全局參考圖片。
或者,視頻編碼器系統(tǒng)使用另一種辦法來決定何時向grps添加全局參考圖片并確定新的全局參考圖片。
使用grps的示例解碼。
圖12示出了用于使用作為grps的一部分的全局參考圖片來進行視頻解碼的示例技術(shù)(1200)。視頻解碼器系統(tǒng)(諸如參考圖5描述的視頻解碼器系統(tǒng)(500)或另一視頻解碼器系統(tǒng))在對經(jīng)編碼數(shù)據(jù)進行解碼以重構(gòu)視頻序列的一個或多個圖片時執(zhí)行該技術(shù)(1200)。視頻序列的圖片的經(jīng)編碼數(shù)據(jù)包括作為grps的一部分的全局參考圖片的經(jīng)編碼數(shù)據(jù)以及其它圖片的經(jīng)編碼數(shù)據(jù)。其它圖片包括被指定為rap的至少一個圖片。
參照圖12,視頻解碼器系統(tǒng)使用全局參考圖片的經(jīng)編碼數(shù)據(jù)來解碼(1210)全局參考圖片。例如,視頻解碼器系統(tǒng)只使用圖片內(nèi)解壓操作來對全局參考圖片進行解碼。或者,視頻解碼器系統(tǒng)使用圖片間解壓操作來對全局參考圖片進行解碼。在該情形中,對全局參考圖片進行解碼使用另一全局參考圖片來在運動補償操作中進行參考。
視頻解碼器系統(tǒng)還使用其它圖片的經(jīng)編碼數(shù)據(jù)來對其它圖片進行解碼(1220)。全局參考圖片是跨隨機存取邊界可用的。由此,全局參考圖片可供用于在按比特流次序或顯示次序在指定rap之前的至少一個其它圖片進行解碼,并且全局參考圖片也可供對按比特流次序或顯示次序在指定rap之后的至少一個其它圖片進行解碼。作為對其它圖片進行解碼的一部分,指定rap可使用全局參考圖片來在運動補償操作中進行參考。或者,非rap圖片可使用全局參考圖片來在運動補償操作中進行參考。
在一些示例實現(xiàn)中,視頻解碼器系統(tǒng)還接收控制對其它圖片的解碼的一個或多個參數(shù)集。例如,參數(shù)集包括sps和pps。參數(shù)集是跨隨機存取邊界可用的。它們可供用于對按比特流次序在指定rap之前的至少一個其它圖片解碼,并且它們可供用于對按比特流次序在指定rap之后的至少一個其它圖片解碼。
視頻解碼器系統(tǒng)可以按各種方式更新其dpb或其它緩沖區(qū)中的參考圖片。例如,在重構(gòu)視頻序列的圖片后,視頻解碼器系統(tǒng)將至少一個參考圖片從其dpb或其它緩沖區(qū)中移除,并且視頻解碼器系統(tǒng)將全局參考圖片存儲在其dpb或其它緩沖區(qū)中。一般而言,對指定rap的解碼不會導(dǎo)致將全局參考圖片從dpb或其它緩沖區(qū)中移除。
在解碼期間,視頻解碼器系統(tǒng)可確定全局參考圖片不可用。在該情形中,視頻解碼器系統(tǒng)可快速瀏覽比特流以定位全局參考圖片的經(jīng)編碼數(shù)據(jù)?;蛘撸曨l解碼器系統(tǒng)可請求重傳全局參考圖片的經(jīng)編碼數(shù)據(jù)。
參考圖片剪輯。
本章節(jié)描述了在視頻編碼和視頻解碼期間剪輯參考圖片中的創(chuàng)新。例如,視頻編碼器和視頻解碼器剪輯參考圖片以使該參考圖片的有用區(qū)域被保留在存儲器中,同時丟棄該參考圖片的無幫助或冗余區(qū)域。參考圖片剪輯可減少存儲參考圖片所需的存儲器的量。或者,參考圖片剪輯可通過存儲更多樣的參考圖片集以提供運動補償?shù)母眠x項來改進對可用存儲器的利用。
對參考圖片剪輯的介紹。
當視頻編碼/解碼使用參考圖片來進行圖片間預(yù)測時,參考圖片的某些區(qū)域可被頻繁地訪問,而參考圖片的其它區(qū)域根本未被訪問。此外,當緩沖區(qū)存儲多個參考圖片時,不同的參考圖片可包括針對一區(qū)域的不因圖片而異的相同圖片內(nèi)容。存儲不用于圖片間預(yù)測的區(qū)域的圖片內(nèi)容或者存儲重復(fù)區(qū)域的相同圖片內(nèi)容的冗余副本浪費視頻編碼器和視頻解碼器處的存儲器。
視頻編碼器和視頻解碼器可使用對參考圖片的剪輯來減少視頻編碼/解碼期間的對存儲器的利用。視頻編碼器/解碼器將參考圖片的一個或多個區(qū)域存儲在dpb或其它緩沖區(qū)中,而不是將整個參考圖片存儲在dpb或其它緩沖區(qū)中。如果參考圖片被仔細地剪輯,則維持高編碼效率。
或者,視頻編碼器和視頻解碼器可使用對參考圖片的剪輯來在視頻編碼/解碼期間提供更多樣的參考圖片集。對于可用于緩沖參考圖片的給定量的存儲器,對參考圖片的剪輯允許視頻編碼器/解碼器存儲來自更多參考圖片的多樣內(nèi)容,這能通過提供用于運動補償?shù)母噙x項來提高編碼效率。
參考圖片剪輯的示例使用。
圖13a示出了參考圖片剪輯的簡單示例(1310)。經(jīng)重構(gòu)圖片(1311)是原始參考圖片。剪輯參數(shù)定義經(jīng)重構(gòu)圖片(1311)內(nèi)的經(jīng)剪輯圖片(1312)的區(qū)域。經(jīng)重構(gòu)圖片(1311)的在經(jīng)剪輯圖片(1312)之外的區(qū)域被丟棄。
在圖13a中,從原始參考圖片中創(chuàng)建單個經(jīng)剪輯參考圖片?;蛘撸梢詮膯蝹€原始參考圖片中創(chuàng)建多個經(jīng)剪輯參考圖片。圖13b示出了其中從一個經(jīng)重構(gòu)圖片(1321)中創(chuàng)建兩個經(jīng)剪輯圖片(1322、1323)的示例(1320)。剪輯參數(shù)定義不重疊的兩個經(jīng)剪輯圖片(1322、1323)。經(jīng)重構(gòu)圖片(1321)的在經(jīng)剪輯圖片(1322、1323)之外的區(qū)域被丟棄。圖13c示出了其中從經(jīng)重構(gòu)圖片(1331)中創(chuàng)建兩個重疊的經(jīng)剪輯圖片(1332、1333)的示例(1330)。在該示例中,由剪輯參數(shù)定義的兩個經(jīng)剪輯圖片(1332、1333)共享來自經(jīng)重構(gòu)圖片(1331)的一些相同圖片內(nèi)容。經(jīng)重構(gòu)圖片(1331)的在經(jīng)剪輯圖片(1332、1333)之外的區(qū)域被丟棄。
在圖13a-13c的示例中,經(jīng)剪輯圖片未被縮放。或者,經(jīng)剪輯圖片可被縮放。圖13d示出了其中從經(jīng)重構(gòu)圖片(1341)中創(chuàng)建經(jīng)剪輯的經(jīng)縮放圖片(1342)的示例(1340)。剪輯參數(shù)定義經(jīng)剪輯的經(jīng)縮放圖片(1342)。經(jīng)重構(gòu)圖片(1341)的在經(jīng)剪輯的經(jīng)縮放圖片(1342)之外的區(qū)域被丟棄。通常,經(jīng)剪輯圖片被縮小以減少存儲器使用??s小經(jīng)剪輯參考圖片還可以在內(nèi)容隨圖片縮小時提高編碼效率。相反,放大經(jīng)剪輯參考圖片可以在內(nèi)容隨圖片放大時提高編碼效率。或者,參考圖片可以在不剪輯的情況下被放大或縮小。
在圖13a-13d中,一個或多個經(jīng)剪輯參考圖片替換原始參考圖片?;蛘?,原始參考圖片還可被保留以供在圖片間預(yù)測中使用。圖13e示出了其中從經(jīng)重構(gòu)圖片(1351)中創(chuàng)建經(jīng)剪輯圖片(1352)并且整個經(jīng)重構(gòu)圖片(1351)也被保留以供在圖片間預(yù)測中使用的示例(1350)。
在圖13a-13e的示例中,經(jīng)剪輯圖片是矩形的?;蛘?,經(jīng)剪輯圖片可具有另一形狀(例如,不規(guī)則形狀)。
每一經(jīng)剪輯參考圖片可被指派一參考圖片索引。當在圖片間預(yù)測中使用經(jīng)剪輯參考圖片時,參考圖片索引標識相應(yīng)的經(jīng)剪輯參考圖片。參考圖片索引還可用于在緩沖區(qū)中定位相應(yīng)的經(jīng)剪輯參考圖片。經(jīng)剪輯參考圖片的參考圖片索引的值可由視頻編碼器和視頻解碼器指派,它們應(yīng)用相同的規(guī)則來指派值。或者,經(jīng)剪輯參考圖片的參考圖片索引的值可由視頻編碼器指派并用信令通知給視頻解碼器。
在一些示例實現(xiàn)中,視頻編碼器決定是否剪輯參考圖片,并且如果是,則決定如何剪輯參考圖片。視頻編碼器向視頻解碼器發(fā)送剪輯信息以使得視頻解碼器能以相同的方式剪輯參考圖片。在其它示例實現(xiàn)中,視頻編碼器和視頻解碼器各自應(yīng)用規(guī)則以決定是否剪輯參考圖片,并且如果是,則決定如何剪輯參考圖片。在該情形中,視頻編碼器無需將剪輯信息用信令通知給視頻解碼器,因為視頻解碼器獨立導(dǎo)出經(jīng)剪輯參考圖片的剪輯參數(shù)。章節(jié)v.c.4描述了用于做出關(guān)于參考圖片剪輯的決策的各種辦法。
確定并存儲相應(yīng)的經(jīng)剪輯參考圖片的剪輯參數(shù)。例如,經(jīng)剪輯參考圖片的剪輯參數(shù)包括標識原始經(jīng)重構(gòu)圖片的圖片次序計數(shù)、原始經(jīng)重構(gòu)圖片的空間分辨率、以及經(jīng)剪輯參考圖片在原始經(jīng)重構(gòu)圖片內(nèi)的位置。經(jīng)剪輯參考圖片在原始經(jīng)重構(gòu)圖片內(nèi)的位置可以用經(jīng)剪輯參考圖片的兩個角(例如,左上角和右下角)的坐標、用經(jīng)剪輯參考圖片的一個角的坐標、以及用經(jīng)剪輯參考圖片的寬度/高度、或者以某種其它方式指定。在概念上,剪輯參數(shù)指定虛擬參考圖片,該虛擬參考圖片具有原始經(jīng)重構(gòu)圖片的尺寸,但只具有經(jīng)剪輯參考圖片在其在原始參考圖片內(nèi)的位置處的實際圖片內(nèi)容。縮放因子可指示適用于經(jīng)剪輯參考圖片的任何縮放。
視頻編碼器和視頻解碼器可通過在運動補償期間補償剪輯(以及可能的縮放)來在圖片間預(yù)測中使用經(jīng)剪輯參考圖片。視頻編碼器和視頻解碼器照常處置運動信息——當前塊的mv指示參考圖片相對于當前塊在參考圖片中的位于同處的位置的位移。該位移在參考圖片的原始分辨率中指定。對運動信息的編碼和解碼過程(例如,預(yù)測、熵編碼/解碼)不變(即,使用用于常規(guī)參考圖片的過程)。對于圖片間預(yù)測,視頻編碼器和視頻解碼器通過將偏移(由剪輯參數(shù)中的位置信息指示)與通過mv引用的位置合計(例如,從mv的值中減去該偏移、從當前塊在參考圖片中的位于同處的位置中減去該偏移、或者從由mv指示的最終位置中減去該偏移)來補償剪輯。當縮放因子已被應(yīng)用于參考圖片時,視頻編碼器和視頻解碼器使用該縮放因子來恰當?shù)貙v的值從參考圖片的原始分辨率縮放至經(jīng)縮放參考圖片的分辨率。而且,對于經(jīng)剪輯的經(jīng)縮放參考圖片,視頻編碼器和視頻解碼器縮放應(yīng)用于mv引用的位置的偏移。
圖14示出了涉及經(jīng)剪輯參考圖片的運動補償?shù)氖纠?1400)。在圖14中,當前圖片(1410)包括具有mv(1414)的當前塊(1412)。當前圖片(1410)中的當前塊(1412)的左上角處在位置(256、192)。mv(1414)指示相對于當前塊(1412)的左上角的位移(-127,-66)。
圖14示出了作為原始參考圖片的經(jīng)重構(gòu)圖片(1420)以及經(jīng)重構(gòu)圖片(1420)內(nèi)的經(jīng)剪輯參考圖片(1422)。經(jīng)剪輯參考圖片(1422)是經(jīng)重構(gòu)圖片(1420)中的矩形,該矩形的左上角是(96,64)且其右下角是(512,256)。
mv(1414)指示經(jīng)剪輯參考圖片(1422)中的其左上角處在位置(33,66)的預(yù)測塊(1424)。預(yù)測塊(1424)在經(jīng)剪輯參考圖片(1422)中的位置是當前塊(1412)的位置加上mv(1414)減去離經(jīng)剪輯參考圖片(1422)的位置的偏移:
(256,192)+(-127,-66)-(96,64)=(33,62)。
為了比較起見,mv(1414)將指示原始參考圖片中的其左上角在位置(129,126)的預(yù)測塊(1424)。預(yù)測塊(1424)在原始參考圖片(1420)中的位置將會是當前塊(1412)的位置加上mv(1414):
(256,192)+(-127,-66)=(129,126)。
剪輯參考圖片可顯著減少用于存儲參考圖片的存儲器的量。例如,考慮具有圖片組(“gop”)大小為8且啟用時間分級的分層b圖片編碼結(jié)構(gòu)。對于最低層,每第八個圖片(例如,按顯示次序的圖片0、8、16、24等)使用圖片內(nèi)編碼或相對于最低層中的前一圖片的圖片間預(yù)測來編碼。對于下一層,在最低層的圖片中間的圖片(例如,按顯示次序的圖片4、12、20、28等)被添加并使用雙向圖片間預(yù)測來編碼。對于下一層,在更低的兩層的圖片中間的圖片(例如,按顯示次序的圖片2、6、10、14等)被添加并使用雙向圖片間預(yù)測來編碼。最后,對于最后一層,在前三層的圖片之間的圖片(例如,按顯示次序的圖片1、3、5、7等)被添加并使用雙向圖片間預(yù)測來編碼。對于該編碼結(jié)構(gòu),視頻編碼器和視頻解碼器可能需要在解碼期間緩沖四個參考圖片:來自最低層的兩個經(jīng)重構(gòu)圖片、來自第二層的經(jīng)重構(gòu)圖片、以及來自第三層的經(jīng)重構(gòu)圖片。如果計算機系統(tǒng)只具有足夠的存儲器來緩沖兩個完整的參考圖片,則解碼對于在具有g(shù)op大小為8的分層b圖片編碼結(jié)構(gòu)中編碼的視頻而言將會是不可能的,因為無法緩沖四個完整參考圖片??筛臑槭褂酶〉膅op大小(諸如2),而編碼效率降低?;蛘?,參考圖片的剪輯可減少用于在gop大小為8時緩沖四個參考圖片的存儲器的量。在該情形中,視頻編碼器和視頻解碼器選擇性地將經(jīng)重構(gòu)圖片的各區(qū)域保留在經(jīng)剪輯參考圖片中,且受制于用于緩沖參考圖片的總存儲器的上限。
更一般而言,參考圖片的剪輯能減少用于緩沖啟用或禁用時間分級的各種編碼結(jié)構(gòu)(例如,分層b圖片編碼結(jié)構(gòu)、非分層b圖片編碼結(jié)構(gòu)、分層p圖片編碼結(jié)構(gòu)、非分層p圖片編碼結(jié)構(gòu))中的任一者編碼的視頻的參考圖片的存儲器的量。
編碼/解碼期間的示例參考圖片剪輯。
圖15示出了用于在視頻編碼或視頻解碼期間剪輯參考圖片的示例技術(shù)(1500)。視頻編碼器系統(tǒng)(諸如參考圖3描述的視頻編碼器系統(tǒng)(300)或另一視頻編碼器系統(tǒng))在對視頻序列的一個或多個圖片進行編碼以產(chǎn)生經(jīng)編碼數(shù)據(jù)時執(zhí)行該技術(shù)(1500)?;蛘撸曨l解碼器系統(tǒng)(諸如參考圖5描述的視頻解碼器系統(tǒng)(500)或另一視頻解碼器系統(tǒng))在對經(jīng)編碼數(shù)據(jù)進行解碼以重構(gòu)視頻序列的一個或多個圖片時執(zhí)行該技術(shù)(1500)。
參考圖15,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)重構(gòu)(1510)視頻序列的一個或多個圖片中的給定圖片。視頻編碼器/解碼器系統(tǒng)根據(jù)剪輯參數(shù)來剪輯(1520)經(jīng)重構(gòu)圖片。在這樣做時,視頻編碼器/解碼器系統(tǒng)裁剪經(jīng)重構(gòu)圖片的至少一些區(qū)域以產(chǎn)生經(jīng)剪輯圖片。視頻編碼器/解碼器系統(tǒng)還可結(jié)合空間分辨率的縮放。例如,視頻編碼器/解碼器系統(tǒng)在剪輯之前縮放經(jīng)重構(gòu)圖片?;蛘?,作為另一示例,視頻編碼器/解碼器系統(tǒng)縮放經(jīng)剪輯圖片。
在一些示例實現(xiàn)中,視頻編碼器系統(tǒng)和視頻解碼器系統(tǒng)根據(jù)一個或多個規(guī)則來確定剪輯參數(shù)。在該情形中,視頻編碼器系統(tǒng)無需在比特流中用信令通知指示剪輯參數(shù)的剪輯信息,因為視頻解碼器系統(tǒng)獨立導(dǎo)出剪輯參數(shù)。下一章節(jié)描述了用于設(shè)置可由視頻編碼器系統(tǒng)和視頻解碼器系統(tǒng)應(yīng)用的剪輯參數(shù)的示例辦法。
或者,視頻編碼器系統(tǒng)可確定并輸出指示剪輯參數(shù)的剪輯信息以作為比特流的一部分。在該情形中,視頻解碼器系統(tǒng)接收剪輯信息并用來確定剪輯參數(shù)。例如,剪輯信息包括指示經(jīng)剪輯圖片在經(jīng)重構(gòu)圖片中的位置的信息。該位置可以用經(jīng)重構(gòu)圖片中的經(jīng)剪輯圖片的左上角和右下角的坐標來指定?;蛘撸撐恢每梢杂媒?jīng)剪輯圖片的左上角和寬度/高度來指定?;蛘撸?jīng)剪輯圖片的位置可以按某種其他方式來指定。剪輯信息還可包括經(jīng)重構(gòu)圖片的標識符以及經(jīng)重構(gòu)圖片的原始空間分辨率。比特流中的縮放因子可指示在剪輯之前如何縮放經(jīng)重構(gòu)圖片或者如何縮放經(jīng)剪輯圖片。下一章節(jié)描述了用于設(shè)置可由視頻編碼器系統(tǒng)在定義剪輯信息時應(yīng)用的剪輯參數(shù)的示例辦法。
視頻編碼器/解碼器系統(tǒng)將經(jīng)剪輯圖片存儲(1530)在緩沖區(qū)中以供用作參考圖片。緩沖區(qū)可以是視頻編碼器/解碼器系統(tǒng)處的dpb或者其它緩沖區(qū)。視頻編碼器/解碼器系統(tǒng)隨后在運動補償操作中使用(1540)參考圖片。在一些示例實現(xiàn)中,在編碼/解碼當前圖片的當前塊時,視頻編碼器/解碼器系統(tǒng)確定當前塊的mv。當前塊在至少一個運動補償操作中參照參考圖片(經(jīng)剪輯參考圖片)。視頻編碼器/解碼器系統(tǒng)調(diào)整通過mv引用的位置以補償該剪輯。例如,視頻編碼器/解碼器系統(tǒng)合計(加或減)水平偏移和/或垂直偏移以計及經(jīng)剪輯圖片在原始經(jīng)重構(gòu)圖片內(nèi)的位置。視頻編碼器/解碼器系統(tǒng)還可調(diào)整mv以補償參考圖片的縮放。例如,視頻編碼器/解碼器系統(tǒng)將mv縮放與(經(jīng)剪輯)參考圖片相同的的縮放因子。視頻編碼器/解碼器系統(tǒng)還可調(diào)整對剪輯的偏移以補償參考圖片的縮放。
視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)向(經(jīng)剪輯)參考圖片指派參考圖片索引。參考圖片索引可由視頻編碼器系統(tǒng)和視頻解碼器系統(tǒng)根據(jù)一個或多個規(guī)則來指派?;蛘?,視頻編碼器系統(tǒng)可指派參考圖片索引并在比特流中用信令通知指示該參考圖片索引的信息,在該情形中視頻解碼器系統(tǒng)接收到該信息并相應(yīng)地指派參考圖片索引。
視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)可以從一個經(jīng)重構(gòu)圖片中生成多個經(jīng)剪輯參考圖片。例如,視頻編碼器/解碼器系統(tǒng)根據(jù)與先前使用的第一剪輯參數(shù)不同的第二(或第三、第四等)剪輯參數(shù)來剪輯經(jīng)重構(gòu)圖片。在這樣做時,視頻編碼器/解碼器系統(tǒng)裁剪經(jīng)重構(gòu)圖片的至少一些區(qū)域以產(chǎn)生與第一經(jīng)剪輯圖片不同的第二(或第三、第四等)經(jīng)剪輯圖片。視頻編碼器/解碼器系統(tǒng)將第二(或第三、第四等)經(jīng)剪輯圖片存儲在緩沖區(qū)中以供在圖片間預(yù)測中用作參考圖片,并向不同的經(jīng)剪輯參考圖片指派不同的參考圖片索引。當從同一經(jīng)重構(gòu)圖片中創(chuàng)建多個經(jīng)剪輯圖片時,該多個經(jīng)剪輯圖片可以是重疊或不重疊的。
除了緩沖從經(jīng)重構(gòu)圖片中生成的一個或多個經(jīng)剪輯參考圖片之外,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)還可將原始經(jīng)重構(gòu)圖片存儲在緩沖區(qū)中以供用作參考圖片。
設(shè)置剪輯參數(shù)時的示例決策。
視頻編碼器系統(tǒng)和視頻解碼器系統(tǒng)可使用各種辦法中的任一種來設(shè)置用于從經(jīng)重構(gòu)圖片中生成經(jīng)剪輯參考圖片的剪輯參數(shù)。
根據(jù)第一組辦法,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)設(shè)置剪輯參數(shù)以避免存儲參考圖片中的冗余圖片內(nèi)容。例如,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)將經(jīng)重構(gòu)圖片與先前已重構(gòu)的一個或多個其它圖片進行比較?;谠摫容^的結(jié)果,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)標識經(jīng)重構(gòu)圖片中的新區(qū)域,然后定義剪輯參數(shù)以包括該新區(qū)域但排除經(jīng)重構(gòu)圖片的至少一個其它區(qū)域?;蛘?,作為另一示例,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)標識經(jīng)重構(gòu)圖片中的從另一圖片復(fù)制的區(qū)域。視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)定義剪輯參數(shù)以排除所復(fù)制的區(qū)域但包括經(jīng)重構(gòu)圖片的至少一個其它區(qū)域(新的、非復(fù)制區(qū)域)。以此方式,視頻編碼器/解碼器系統(tǒng)可丟棄已直接從另一圖片復(fù)制的區(qū)域(沒有殘留值),但存儲其它區(qū)域作為經(jīng)剪輯參考圖片的一部分。
視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)可以對經(jīng)重構(gòu)圖片的更大部分做出決策,而不是在低級的逐塊基礎(chǔ)上標識新區(qū)域。例如,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)確定一部分中的閾值比例的塊是否缺少殘留值(即,是從另一圖片復(fù)制的)。如果是,則該部分被保留為經(jīng)剪輯參考圖片的一部分?;蛘?,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)確定一部分中的閾值比例的塊是否是圖片內(nèi)編碼的(并因此被假定為具有新圖片內(nèi)容)。如果是,則該部分被保留為經(jīng)剪輯參考圖片的一部分。對于任一測試,閾值比例取決于實現(xiàn)(例如,80%、90%)。
根據(jù)第二組辦法,視頻編碼器系統(tǒng)設(shè)置剪輯參數(shù)以保留實際上用于參考圖片的圖片內(nèi)容。例如,視頻編碼器系統(tǒng)測量在對一個或多個其它圖片的運動估計中將經(jīng)重構(gòu)圖片用作參考圖片。視頻編碼器系統(tǒng)標識經(jīng)重構(gòu)圖片中的已使用區(qū)域,然后定義剪輯參數(shù)以包括該已使用區(qū)域但排除經(jīng)重構(gòu)圖片的至少一個其它區(qū)域。視頻編碼器系統(tǒng)可同時評估多個經(jīng)重構(gòu)圖片以確定哪些區(qū)域?qū)嶋H上用于在對給定圖片的塊的圖片間預(yù)測中進行參考。如果一個經(jīng)重構(gòu)圖片的一區(qū)域從未被用來在圖片間預(yù)測中參考,則視頻編碼器系統(tǒng)移除該區(qū)域。在以此方式消除未使用區(qū)域,視頻編碼器系統(tǒng)可以在給定圖片的塊的圖片間預(yù)測中使用其余區(qū)域(現(xiàn)在是一個或多個經(jīng)剪輯參考圖片的一部分)。
視頻編碼器系統(tǒng)可以對經(jīng)重構(gòu)圖片的更大部分做出決策,而不是在低級的逐塊基礎(chǔ)上標識用于圖片間預(yù)測的區(qū)域。例如,視頻編碼器系統(tǒng)確定一部分中的閾值比例的內(nèi)容被用來在圖片間預(yù)測中參考。如果是,則該部分被保留為經(jīng)剪輯參考圖片的一部分。閾值比例取決于實現(xiàn)(例如,70%、80%、90%)。
或者,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)使用另一種辦法來設(shè)置剪輯參數(shù)。如果視頻編碼器系統(tǒng)和視頻解碼器系統(tǒng)獨立導(dǎo)出剪輯參數(shù),則視頻編碼器系統(tǒng)無需向視頻解碼器系統(tǒng)用信令通知剪輯參數(shù)。
參考圖片的去噪。
本章節(jié)描述了在視頻編碼和視頻解碼期間對參考圖片進行去噪中的創(chuàng)新。例如,視頻編碼器和視頻解碼器對參考圖片進行濾波以移除捕捉噪聲(例如,捕捉期間的由于相機缺陷而導(dǎo)致的噪聲)。經(jīng)去噪的參考圖片可提供圖片間預(yù)測的更好結(jié)果,由此提高視頻編碼效率。
對參考圖片去噪的介紹。
在相機捕捉視頻圖片時,捕捉到的圖片可包括由相機在捕捉過程期間隨機引入的噪聲。在一些情形中,輸入圖片中的隨機噪聲在編碼和解碼期間被衰減或消除(例如,由于量化)。然而,在其它情形中,輸入圖片中的隨機噪聲在整個編碼/解碼過程中被保留,以使得圖片的經(jīng)重構(gòu)版本也包括隨機噪聲。
隨機噪聲在不同的輸入圖片中是不同的。由于隨機噪聲,同一對象在不同的圖片中可具有不同的樣本值。由此,參考圖片中的隨機噪聲可損害使用該參考圖片的圖片間預(yù)測的質(zhì)量。例如,正在編碼的當前塊中的隨機噪聲不太可能匹配參考圖片的對應(yīng)塊中的隨機噪聲。
視頻編碼器和視頻解碼器可以對參考圖片進行濾波以移除該參考圖片中的隨機噪聲(例如,來自相機捕捉的噪聲)?!敖?jīng)去噪”參考圖片通常提供更接近匹配正在編碼的塊的預(yù)測塊,這減少了殘留值中的信息(或即能量)的量并由此提高編碼效率。通常,視頻編碼器和視頻解碼器執(zhí)行對參考圖片的去噪以從輸入圖片中移除隨機噪聲,并且還執(zhí)行(例如之后)對參考圖片的其它濾波以移除塊偽像、振鈴偽像以及其它類型的錯誤,這些錯誤是在編碼/解碼過程中加入的。
視頻編碼器和視頻解碼器將經(jīng)去噪?yún)⒖紙D片存儲在dpb或其它緩沖區(qū)中,從而有效地替換原始參考圖片。或者,視頻編碼器和視頻解碼器還可將原始參考圖片存儲在dpb或其它緩沖區(qū)中,以提供用于圖片間預(yù)測的另一選項。
參考圖片去噪的示例使用。
視頻編碼器和視頻解碼器各自可以在對參考圖片進行濾波以移除隨機噪聲時應(yīng)用同一規(guī)則集。在該情形中,視頻編碼器無需向視頻解碼器用信令通知任何濾波信息。視頻編碼器和視頻解碼器獨立導(dǎo)出用于濾波器的任何濾波參數(shù)并對參考圖片應(yīng)用濾波器。濾波器可以是固定濾波器,該固定濾波器在編碼/解碼期間不改變?;蛘撸瑸V波器可以是自適應(yīng)濾波器,該自適應(yīng)濾波器在編碼/解碼期間改變。例如,視頻編碼器和視頻解碼器在頻域中(例如,對頻域數(shù)據(jù))應(yīng)用低通濾波器。或者,視頻編碼器和視頻解碼器在空域/時域中計算平均樣本值。或者,視頻編碼器和視頻解碼器在空域/時域中計算中間樣本值。或者,視頻編碼器和視頻解碼器應(yīng)用使用塊匹配和三維(“bm3d”)濾波的濾波器。或者,視頻編碼器和視頻解碼器執(zhí)行某種其它類型的濾波以從經(jīng)重構(gòu)圖片中移除隨機噪聲。
確定用于在逐圖片的基礎(chǔ)上去噪的濾波參數(shù)可以是計算密集過程,尤其是在濾波使用bm3d濾波或類似濾波的情況下。在一些情形中,視頻解碼器系統(tǒng)缺少資源來確定用于去噪的濾波參數(shù)。為了解決該問題,視頻編碼器可以在編碼期間確定用于去噪的濾波參數(shù),然后將指示濾波參數(shù)的濾波信息用信令通知給視頻解碼器。視頻解碼器可使用濾波信息來快速確定用于濾波器的濾波參數(shù),視頻解碼器使用濾波參數(shù)來進行去噪。
圖16a和16b分別示出了使用參考圖片去噪的視頻編碼器(1600)和視頻解碼器(1650)的示例,其中視頻編碼器(1600)確定濾波參數(shù)并將其用信令通知給視頻解碼器(1650)。圖16a和16b所示的組件中的某一些對應(yīng)于圖4a和6中的組件。
參考圖16a,視頻編碼器(1600)包括執(zhí)行對參考圖片的去噪的濾波控件(460)以及一個或多個濾波器(465)。濾波控件(460)接收給定圖片的輸入版本(1605)以及給定圖片(即,參考圖片)的經(jīng)重構(gòu)版本(1607)。
濾波控件(460)計算濾波參數(shù)(1612)。例如,濾波控件(460)使用bm3d濾波或另一種類型的濾波來對給定圖片的輸入版本(1605)執(zhí)行去噪。然后,濾波控件(460)將給定圖片的經(jīng)去噪輸入版本用作優(yōu)化目標以導(dǎo)出濾波參數(shù)(1612)。該優(yōu)化產(chǎn)生將使得給定圖片的經(jīng)重構(gòu)版本(1607)更像給定圖片的經(jīng)去噪輸入版本的濾波參數(shù)。在一些示例實現(xiàn)中,濾波參數(shù)(1612)是自適應(yīng)環(huán)路濾波(“alf”)參數(shù)或者用于wiener濾波器的某一其它參數(shù)變體?;蛘?,濾波參數(shù)(1612)是另一種類型的濾波參數(shù)。
濾波參數(shù)(1612)被提供給濾波器(465)以及首部格式化器/熵編碼器(490)。首部格式化器/熵編碼器(490)產(chǎn)生濾波信息以供在經(jīng)編碼數(shù)據(jù)的比特流中輸出。濾波信息指示濾波參數(shù)。視頻編碼器中的濾波器(465)使用濾波參數(shù)(1612)來確定如何對給定圖片(參考圖片)的經(jīng)重構(gòu)版本(1607)進行去噪。濾波產(chǎn)生給定圖片(參考圖片)的經(jīng)去噪版本(1622),該經(jīng)去噪版本被提供給dpb(470)或另一緩沖區(qū)。
參考圖16b,視頻解碼器(1600)包括執(zhí)行對參考圖片的去噪的一個或多個濾波器(665)。濾波器(665)從解析器/熵解碼器(610)接收濾波參數(shù)(1612)。例如,濾波參數(shù)(1612)是alf參數(shù)或用于wiener濾波器的某一其它參數(shù)變體?;蛘?,濾波參數(shù)(1612)是另一種類型的濾波參數(shù)。
濾波器(665)還接收給定圖片(即,參考圖片)的經(jīng)重構(gòu)版本(1607)。視頻解碼器中的濾波器(665)使用濾波參數(shù)(1612)來確定如何對給定圖片(參考圖片)的經(jīng)重構(gòu)版本(1607)進行去噪。濾波產(chǎn)生給定圖片(參考圖片)的經(jīng)去噪版本(1622),該經(jīng)去噪版本被提供給dpb(670)或另一緩沖區(qū)。
編碼/解碼期間的參考圖片的示例去噪。
圖17示出了用于在視頻編碼或視頻解碼期間對參考圖片進行去噪的示例技術(shù)(1700)。視頻編碼器系統(tǒng)(諸如參考圖3描述的視頻編碼器系統(tǒng)(300)或另一視頻編碼器系統(tǒng))在對視頻序列的一個或多個圖片進行編碼以產(chǎn)生經(jīng)編碼數(shù)據(jù)時執(zhí)行該技術(shù)(1700)?;蛘?,視頻解碼器系統(tǒng)(諸如參考圖5描述的視頻解碼器系統(tǒng)(500)或另一視頻解碼器系統(tǒng))在對經(jīng)編碼數(shù)據(jù)進行解碼以重構(gòu)視頻序列的一個或多個圖片時執(zhí)行該技術(shù)(1700)。
參考圖17,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)重構(gòu)(1710)視頻序列的一個或多個圖片中的給定圖片。視頻編碼器/解碼器系統(tǒng)用被適配成移除隨機噪聲的濾波器來對經(jīng)重構(gòu)圖片進行濾波以產(chǎn)生經(jīng)去噪圖片。例如,濾波器是頻域低通濾波器的變體、空域/時域低通濾波器的變體、空域/時域中值濾波器的變體、或者使用塊匹配和三維濾波的濾波器。
在一些示例實現(xiàn)中,視頻編碼器系統(tǒng)和視頻解碼器系統(tǒng)各自根據(jù)一個或多個規(guī)則來確定用于濾波器的濾波參數(shù)。在該情形中,視頻編碼器系統(tǒng)無需在比特流中用信令通知指示濾波參數(shù)的濾波信息,因為視頻解碼器系統(tǒng)獨立導(dǎo)出濾波參數(shù)。
或者,視頻編碼器系統(tǒng)可確定濾波參數(shù),并輸出指示濾波參數(shù)的濾波信息以作為比特流的一部分。在該情形中,視頻解碼器系統(tǒng)接收濾波信息并用來確定濾波參數(shù)。例如,視頻編碼器系統(tǒng)對給定圖片的輸入版本進行濾波以產(chǎn)生該給定圖片的經(jīng)去噪輸入版本,然后基于將該給定圖片的經(jīng)去噪輸入版本域經(jīng)重構(gòu)圖片進行比較的結(jié)果來確定用于濾波器的濾波參數(shù)。具體而言,給定圖片的經(jīng)去噪輸入版本可被用作經(jīng)重構(gòu)圖片的優(yōu)化目標。
視頻編碼器/解碼器系統(tǒng)將經(jīng)去噪圖片存儲(1730)在緩沖區(qū)中以供用作參考圖片。緩沖區(qū)可以是視頻編碼器/解碼器系統(tǒng)處的dpb或者其它緩沖區(qū)。視頻編碼器/解碼器系統(tǒng)隨后在運動補償操作中使用(1740)參考圖片。
視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)向(經(jīng)去噪)參考圖片指派參考圖片索引。參考圖片索引可由視頻編碼器系統(tǒng)和視頻解碼器系統(tǒng)根據(jù)一個或多個規(guī)則來指派。或者,視頻編碼器系統(tǒng)可指派參考圖片索引并在比特流中用信令通知指示該參考圖片索引的信息,在該情形中視頻解碼器系統(tǒng)接收到該信息并相應(yīng)地指派參考圖片索引。
除了緩沖從經(jīng)重構(gòu)圖片中生成的經(jīng)去噪?yún)⒖紙D片之外,視頻編碼器系統(tǒng)或視頻解碼器系統(tǒng)還可將原始經(jīng)重構(gòu)圖片存儲在緩沖區(qū)中以供用作參考圖片。
特征。
不同的實施例可包括在以下特征表中示出的創(chuàng)造性特征中的一個或多個。
鑒于可應(yīng)用所公開的本發(fā)明的原理的許多可能的實施例,應(yīng)當認識到,所示實施例僅是本發(fā)明的優(yōu)選示例,并且不應(yīng)被認為是限制本發(fā)明的范圍。相反,本發(fā)明的范圍由所附權(quán)利要求書來限定。因此,要求保護落入這些權(quán)利要求的精神和范圍內(nèi)的所有內(nèi)容作為本發(fā)明。