TW202133619A - 用於合併估計區域的基於歷史的運動向量預測約束 - Google Patents

用於合併估計區域的基於歷史的運動向量預測約束 Download PDF

Info

Publication number
TW202133619A
TW202133619A TW109146822A TW109146822A TW202133619A TW 202133619 A TW202133619 A TW 202133619A TW 109146822 A TW109146822 A TW 109146822A TW 109146822 A TW109146822 A TW 109146822A TW 202133619 A TW202133619 A TW 202133619A
Authority
TW
Taiwan
Prior art keywords
block
mer
coordinate
upper left
value
Prior art date
Application number
TW109146822A
Other languages
English (en)
Inventor
黃翰
錢偉榮
瓦迪姆 賽萊金
瑪塔 卡克基維克茲
Original Assignee
美商高通公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商高通公司 filed Critical 美商高通公司
Publication of TW202133619A publication Critical patent/TW202133619A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one

Abstract

一種用於解碼視訊資料的設備可以被配置為儲存基於歷史的運動向量預測因數(HMVP)的表;決定視訊資料的第一塊的運動資訊;回應於決定第一塊位於運動估計區域(MER)的右下角而將第一塊的運動資訊添加到HMVP的表;及使用HMVP的表來解碼視訊資料的第二塊。

Description

用於合併估計區域的基於歷史的運動向量預測約束
本專利申請案請求享有於2019年12月31日提出申請的美國臨時專利申請62/955,977的權益,其中每個的全部內容經由引用的方式合併於此。
本案內容涉及視訊編碼和視訊解碼。
數位視訊功能可以結合到各種設備中,包括數位電視、數位直接廣播系統、無線廣播系統、個人數位助理(PDA)、膝上型電腦或桌上型電腦、平板電腦、電子書閱讀器、數碼相機、數位錄製設備、數位媒體播放機、視訊遊戲裝置、視訊遊戲機、蜂巢或衛星無線電電話、所謂的「智慧型電話」、視訊電話會議設備、視訊串流設備等。數位視訊設備實施視訊解碼技術,例如MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、第10部分、進階視訊解碼(AVC)、ITU-T H.265/高效視訊解碼(HEVC)以及此類標準的擴展。經由實施此類視訊解碼技術,視訊設備可以更有效地傳送、接收、編碼、解碼及/或儲存數位視訊資訊。
視訊解碼技術包括空間(圖片內)預測及/或時間(圖片間)預測,以減少或消除視訊序列中固有的冗餘。對於基於塊的視訊解碼,可以將視訊片段(例如,視訊圖片或視訊圖片的一部分)劃分為視訊塊,這些視訊塊也可以稱為解碼樹單元(CTU)、解碼單元(CU)及/或解碼節點。相對於同一圖片中相鄰塊中的參考取樣,使用空間預測對圖片的訊框內解碼(I)片段中的視訊塊進行編碼。圖片的互解碼(P或B)片段中的視訊塊可使用相對於同一圖片中相鄰塊中參考取樣的空間預測,或相對於其他參考圖片中參考取樣的時間預測。可以將圖片稱為訊框,並且可以將參考圖片稱為參考訊框。
合併估計區域(MER)大體代表一或多個塊的區域,其中視訊編碼器和視訊解碼器可並行地匯出區域的塊的合併候選列表。如下面將更詳細地解釋的,基於歷史的運動向量預測因數(HMVP)的現有實施方式可以阻止使用MER實現的合併候選列表匯出的並行化。因此,HMVP的現有實施方式可能不能與MER結合使用。本案內容描述了用於以使得HMVP能夠與MER結合使用的方式來維護HMVP表的技術。具體而言,經由回應於決定第一塊位於MER的右下角而將塊的運動資訊添加到HMVP的表,視訊編碼器和視訊解碼器在實現MER的並行化的同時,能夠同時實施HMVP。
根據一個示例,一種用於解碼視訊資料的方法包括:儲存基於歷史的運動向量預測因數(HMVP)的表;決定視訊資料的第一塊的運動資訊;回應於決定第一塊位於運動估計區域(MER)的右下角而將第一塊的運動資訊添加到HMVP的表;及使用HMVP的表來解碼視訊資料的第二塊。
根據另一示例,一種用於解碼視訊資料的設備包括:記憶體,其被配置為儲存視訊資料;及一或多個處理器,其在電路中實施且被配置為儲存基於歷史的運動向量預測因數(HMVP)的表;決定視訊資料的第一塊的運動資訊;回應於決定第一塊位於運動估計區域(MER)的右下角而將第一塊的運動資訊添加到HMVP的表;及使用HMVP的表來解碼視訊資料的第二塊。
根據另一示例,一種儲存指令的電腦可讀取儲存媒體,該等指令在由一或多個處理器執行時使所述一或多個處理器進行以下操作:儲存基於歷史的運動向量預測因數(HMVP)的表;決定視訊資料的第一塊的運動資訊;回應於決定第一塊位於運動估計區域(MER)的右下角而將第一塊的運動資訊添加到HMVP的表;及使用HMVP的表來解碼視訊資料的第二塊。
根據另一示例,一種用於解碼視訊資料的設備包括用於儲存基於歷史的運動向量預測因數(HMVP)的表的構件;用於決定視訊資料的第一塊的運動資訊的構件;用於回應於決定第一塊位於運動估計區域(MER)的右下角而將第一塊的運動資訊添加到HMVP的表的構件;及用於使用HMVP的表來解碼視訊資料的第二塊的構件。
在附圖和以下說明中闡述了一或多個示例的細節。依據說明書和附圖以及申請專利範圍,其他特徵、目的和優點將是顯而易見的。
視訊解碼(例如,視訊編碼及/或視訊解碼)通常涉及從同一圖片中的已解碼視訊資料塊(例如,訊框內預測)或不同圖片中的已解碼視訊資料塊(例如,訊框間預測)預測視訊資料塊。在一些情況下,視訊編碼器還經由將預測塊與原始塊進行比較來計算殘差資料。因此,殘差資料表示預測塊與原始塊之間的差。為了減少用信號發送殘差資料所需的位元的數量,視訊編碼器變換並量化殘差資料,並在經編碼位元串流中用信號發送經變換且經量化的殘差資料。經由變換和量化程序實現的壓縮可以是有損的,意味著變換和量化程序可將失真引入到經解碼視訊資料中。
視訊解碼器解碼殘差資料並將其添加到預測塊以產生比單獨的預測塊更緊密地匹配原始視訊塊的經重構視訊塊。由於經由變換和量化殘差資料而引入的損失,第一重構塊可具有失真或偽像。一種常見類型的偽像或失真稱為塊效應,其中用於解碼視訊資料的塊的邊界是可見的。
為了進一步改進經解碼視訊的品質,視訊解碼器可對經重構視訊塊執行一或多個濾波操作。這些濾波操作的示例包括解塊濾波、取樣自適應偏移(SAO)濾波和自適應迴路濾波(ALF)。用於這些濾波操作的參數可由視訊編碼器決定且在經編碼視訊位元串流中明確地用信號發送,或可由視訊解碼器隱含地決定而不需要在經編碼視訊位元串流中明確地用信號發送參數。
如下文將更詳細描述,當使用訊框間預測來解碼視訊資料塊時,視訊編碼器和視訊解碼器可被配置為在各種模式中解碼塊。一種此類模式是合併模式。在合併模式中,視訊編碼器和視訊解碼器被配置為產生合併候選清單,其中列表之每一者合併候選包括用於預測塊的運動資訊。例如,運動資訊可包括一或多個運動向量和一或多個參考圖片辨識符。
經由實施相同列表產生程序且僅使用來自已解碼塊的可用資訊,視訊編碼器和視訊解碼器可被配置為產生具有相同順序的相同合併候選的相同列表。因此,對於在合併模式中用信號發送運動資訊的視訊編碼器,視訊編碼器可在經編碼位元串流中包括標識合併候選中的一個的索引。由於視訊解碼器已構造與視訊編碼器相同的清單,所以視訊解碼器可決定與合併候選相關聯的運動資訊,所述合併候選與所接收索引相關聯。在合併模式中,視訊解碼器基於與合併候選相關聯的運動資訊決定預測塊,該合併候選與所接收索引相關聯。
視訊編碼器和視訊解碼器可經由以預定義順序添加與塊相同的圖片中的空間相鄰塊、不同圖片中的同一位置塊、人工產生的候選、預設候選或其它此類候選的運動資訊來產生塊的合併候選列表。在一些情況下,視訊編碼器和視訊解碼器還可被配置為添加基於歷史的候選,基於歷史的候選包括可不對應於空間相鄰塊或同一位置塊的先前使用的運動資訊。為了決定基於歷史的候選,視訊編碼器和視訊解碼器可各自維持(例如,儲存和更新)基於歷史的運動向量預測HMVP表。視訊編碼器和視訊解碼器可將預定義數量的運動向量儲存在HMVP表中。當將新運動向量添加到HMVP表時,可移除較舊的運動向量(例如,以先進先出方式)。在一些情況下,視訊編碼器和視訊解碼器可被配置為將來自HMVP表的條目的運動資訊添加到用於合併經解碼視訊塊的合併候選清單。
視訊編碼器和視訊解碼器還可被配置為使用視訊資料的圖片中的合併估計區域(MER)來解碼塊。視訊編碼器及/或視訊解碼器可被配置為針對MER內的複數個塊(例如,解碼單元)並行地執行合併模式運動向量預測程序(例如,運動向量預測因數列表構造,例如合併候選列表構造)。
如下面將更詳細地解釋的,HMVP的現有實施方式可以阻止使用MER實現的合併候選列表匯出的並行化。因此,HMVP的現有實施方式可能不能與MER結合使用。本案內容描述了用於以使得HMVP能夠與MER結合使用的方式來維護HMVP表的技術。具體而言,經由回應於決定第一塊位於運動估計區域的右下角而將塊的運動資訊添加到HMVP的表,視訊編碼器和視訊解碼器能夠同時實施HMVP和MER兩者。
如本案內容中所使用,術語視訊解碼一般代表視訊編碼或視訊解碼。類似地,術語視訊解碼器可一般代表視訊編碼器或視訊解碼器。此外,本案內容中關於視訊解碼所描述的某些技術還可應用於視訊編碼,且反之亦然。例如,視訊編碼器和視訊解碼器通常被配置為執行相同程序或互逆程序。例如,視訊編碼器和視訊解碼器兩者可被配置為使用相同規則來產生HMVP表,使得視訊編碼器和視訊解碼器兩者可維持相同HMVP表而不需要任何顯著訊號傳遞管理負擔。此外,視訊編碼器通常執行視訊解碼(也稱為重構)作為決定如何編碼視訊資料的程序的一部分。
圖1是示出可以執行本案內容的技術的示例性視訊編碼和解碼系統100的方塊圖。本案內容的技術通常針對解碼(編碼及/或解碼)視訊資料。通常,視訊資料包括用於處理視訊的任何資料。因此,視訊資料可以包括原始的、未編碼的視訊、編碼的視訊、解碼的(例如,重構的)視訊以及視訊元資料,例如訊號傳遞資料。
如圖1所示,在該示例中,系統100包括源設備102,該源設備102提供將由目的地設備116解碼和顯示的編碼視訊資料。特別地,源設備102經由電腦可讀取媒體110將視訊資料提供給目的地設備116。源設備102和目的地設備116可以包括各種設備中的任何設備,包括桌上型電腦、筆記本(即膝上型)電腦、行動設備、平板電腦、機上盒、電話手機(例如智慧型電話)、電視、相機、顯示裝置、數位媒體播放機、視訊遊戲機、視訊串流媒體設備、廣播接收器設備等。在一些情況下,源設備102和目的地設備116可以被配備用於無線通訊,因此可以被稱為無線通訊設備。
在圖1的示例中,源設備102包括視訊源104、記憶體106、視訊編碼器200和輸出介面108。目的地設備116包括輸入介面122、視訊解碼器300、記憶體120和顯示裝置118。根據本案內容,源設備102的視訊編碼器和目的地設備116的視訊解碼器300可以被配置為應用本文所揭示的用於更新HMVP表的技術。因此,源設備102代表視訊編碼設備的示例,而目的地設備116代表視訊解碼設備的示例。在其他示例中,源設備和目的地設備可以包括其他元件或佈置。例如,源設備102可以從諸如外部攝像機的外部視訊源接收視訊資料。同樣,目的地設備116可以與外部顯示裝置連接,而不是包括整合的顯示裝置。
如圖1所示的系統100僅是一個示例。通常,任何數位視訊編碼及/或解碼設備都可以執行本文所揭示的用於更新HMVP表的技術。源設備102和目的地設備116僅僅是此類解碼設備的示例,其中源設備102產生解碼的視訊資料以傳輸到目的地設備116。本案內容將「解碼」設備稱為執行資料的解碼(編碼及/或解碼)的設備。因此,視訊編碼器200和視訊解碼器300分別表示解碼設備的示例,具體地是視訊編碼器和視訊解碼器。在一些示例中,源設備102和目的地設備116可以以基本上對稱的方式操作,使得源設備102和目的地設備116之每一者包括視訊編碼和解碼用元件。因此,系統100可以支援源設備102和目的地設備116之間的單向或雙向視訊傳輸,例如,用於視訊串流傳輸、視訊重播、視訊廣播或視訊電話。
通常,視訊源104代表視訊資料(即原始未編碼的視訊資料)的源,並將視訊資料的圖片(也稱為「訊框」)的序列提供給編碼圖片的資料的視訊編碼器200。源設備102的視訊源104可以包括視訊擷取裝置,諸如攝像機,包含先前擷取的原始視訊的視訊檔案及/或視訊饋送介面,以從視訊內容提供者接收視訊。作為另一替代,視訊源104可以產生基於電腦圖形的資料作為源視訊,或者是即時視訊、存檔視訊和電腦產生的視訊的組合。在每種情況下,視訊編碼器200編碼擷取的、預擷取的或電腦產生的視訊資料。視訊編碼器200可以將圖片從接收到的順序(有時稱為「顯示順序」)重新排列為用於編碼的編碼順序。視訊編碼器200可以產生包括編碼的視訊資料的位元串流。然後,源設備102可以經由輸出介面108將編碼的視訊資料輸出到電腦可讀取媒體110上,以經由例如目的地設備116的輸入介面122進行接收及/或提取。
源設備102的記憶體106和目的地設備116的記憶體120代表通用記憶體。在一些示例中,記憶體106、120可以儲存原始視訊資料,例如,來自視訊源104的原始視訊和來自視訊解碼器300的原始解碼的視訊資料。另外或可替代地,記憶體106、120可以儲存可以由例如視訊編碼器200和視訊解碼器300分別執行的軟體指令。儘管在該示例中記憶體106和記憶體120與視訊編碼器200和視訊解碼器300分開顯示,但應理解,視訊編碼器200和視訊解碼器300還可包括內部記憶體,以實現功能上相似或等效的目的。此外,記憶體106、120可儲存例如從視訊編碼器200輸出並輸入到視訊解碼器300的編碼視訊資料。在一些示例中,可以將記憶體106、120的部分分配為一或多個視訊緩衝器,例如,用以儲存原始、解碼及/或編碼的視訊資料。
電腦可讀取媒體110可以代表能夠將編碼的視訊資料從源設備102傳輸到目的地設備116的任何類型的媒體或設備。在一個示例中,電腦可讀取媒體110代表用於使源設備102能夠即時地例如經由無線電頻率網路或基於電腦的網路將編碼的視訊資料直接傳送到目的地設備116的通訊媒體。根據諸如無線通訊協定的通訊標準,輸出介面108可以調制包括編碼的視訊資料的傳輸信號,並且輸入介面122可以對接收到的傳輸信號進行解調。通訊媒體可以包括任何無線或有線通訊媒體,例如無線電頻率(RF)頻譜或一或多條實體傳輸線。通訊媒體可以形成諸如區域網路、廣域網的基於封包的網路或諸如網際網路的全球網路的部分。通訊媒體可以包括路由器、交換機、基地台或任何其他可用於促進從源設備102到目的地設備116的通訊的設備。
在一些示例中,源設備102可以從輸出介面108向儲存裝置112輸出編碼的資料。類似地,目的地設備116可以經由輸入介面122從儲存裝置112存取編碼的資料。儲存裝置112可以包括多種分散式或本地存取的資料儲存媒體中的任何一種,例如硬碟、藍光光碟、DVD、CD-ROM、快閃記憶體、揮發性或非揮發性記憶體,或任何其他合適的媒體用於儲存編碼視訊資料的數位儲存媒體。
在一些示例中,源設備102可以將編碼視訊資料輸出到檔案伺服器114或可以儲存由源設備102產生的編碼視訊資料的另一中間儲存裝置。目的地設備116可以經由串流傳輸或下載來存取來自檔案伺服器114的儲存視訊資料。
檔案伺服器114可以是能夠儲存編碼視訊資料並將該編碼視訊資料傳送到目的地設備116的任何類型的伺服器設備。檔案伺服器114可以代表網路服務器(例如,用於網站),被配置為提供檔案傳輸通訊協定服務(諸如檔案傳輸通訊協定(FTP)或單向傳輸的檔遞送(FLUTE)協定)的伺服器,內容遞送網路(CDN)設備、超文字傳輸協定(HTTP)伺服器、多媒體廣播多播服務(MBMS)或增強型MBMS(eMBMS)伺服器、及/或網路附接儲存(NAS)設備。檔案伺服器114可以另外或可替換地實施一或多個HTTP串流傳輸協定,諸如基於HTTP的動態自適應串流傳輸(DASH)、HTTP實況串流傳輸(HLS)、即時串流傳輸協定(RTSP)、HTTP動態串流傳輸等。
目的地設備116可以經由包括網際網路連接的任何標準資料連接來存取來自檔案伺服器114的編碼視訊資料。這可以包括適合存取儲存在檔案伺服器114上的編碼視訊資料的無線通道(例如Wi-Fi連接)、有線連接(例如數位用戶線路(DSL)、纜線數據機等)或兩者的組合。輸入介面122可以被配置為根據上述用於從檔案伺服器114提取或接收媒體資料的各種協定中的任何一或多個協定或者用於提取媒體資料的其他此類協定進行操作。
輸出介面108和輸入介面122可以代表無線發射器/接收器、數據機、有線聯網單元(例如,乙太網路卡)、根據各種IEEE 802.11標準中的任何一個進行操作的無線通訊元件,或者其他實體元件。在輸出介面108和輸入介面122包括無線元件的示例中,輸出介面108和輸入介面122可以被配置為根據諸如4G、4G-LTE(長期演進)、LTE Advanced、5G等的蜂巢通訊標準來傳輸諸如編碼視訊資料的資料。在輸出介面108包括無線發射器的一些示例中,輸出介面108和輸入介面122可以配置為根據其他無線標準(例如IEEE 802.11規範、IEEE 802.15規範(例如ZigBee™)、藍芽™標準等)來傳輸諸如編碼視訊資料的資料。在一些示例中,源設備102及/或目的地設備116可以包括各自的片上系統(SoC)設備。例如,源設備102可以包括SoC設備以執行歸屬於視訊編碼器200及/或輸出介面108的功能,並且目的地設備116可以包括SoC設備以執行歸屬於視訊解碼器300及/或輸入介面122的功能。
本案內容的技術可以應用於支援各種多媒體應用中的任何一種的視訊解碼,例如空中電視廣播、有線電視傳輸、衛星電視傳輸、網際網路串流視訊傳輸(例如經由HTTP的動態自適應串流傳輸(DASH))、編碼到資料儲存媒體上的數位視訊、對儲存在資料儲存媒體上的數位視訊進行解碼或其他應用。
目的地設備116的輸入介面122從電腦可讀取媒體110(例如,通訊媒體、儲存裝置112、檔案伺服器114等)接收編碼視訊位元串流。經編碼視訊位元串流可以包括由視訊編碼器200定義的訊號傳遞資訊,其也由視訊解碼器300使用,例如具有描述視訊塊或其他解碼單元(例如,片段、圖片、圖片組、序列等)的特性及/或處理的值的語法元素。顯示裝置118向使用者顯示解碼視訊資料的解碼圖片。顯示裝置118可以代表多種顯示裝置中的任何一種,例如液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器或另一類型的顯示裝置。
儘管未在圖1中示出,但在一些示例中,視訊編碼器200和視訊解碼器300可以各自與音訊編碼器及/或音訊解碼器整合,並且可以包括適當的MUX-DEMUX單元或其他硬體及/或軟體,以處理包括通用資料串流中的音訊和視訊兩者的多工串流。如果適用,MUX-DEMUX單元可以符合ITU H.223多工器協定或其他協定,例如使用者資料包通訊協定(UDP)。
視訊編碼器200和視訊解碼器300可以各自實現為各種合適的編碼器及/或解碼器電路中的任何一種,例如一或多個微處理器、數位訊號處理器(DSP)、專用積體電路(ASIC)、現場可程式化閘陣列(FPGA)、個別邏輯、軟體、硬體、韌體或其任何組合。當部分地以軟體實施技術時,設備可將用於軟體的指令儲存在合適的非暫時性電腦可讀取媒體中,並使用一或多個處理器以硬體方式執行指令以執行本案內容的技術。可以將視訊編碼器200和視訊解碼器300中的每一個包括在一或多個編碼器或解碼器中,其中的任何一個可以被整合為相應設備中的組合編碼器/解碼器(CODEC)的部分。包括視訊編碼器200及/或視訊解碼器300的設備可以包括積體電路、微處理器及/或無線通訊設備,例如蜂巢式電話。
視訊編碼器200和視訊解碼器300可以根據視訊編碼標準(例如ITU-T H.265,也稱為高效視訊編碼(HEVC)或其擴展,例如多視圖及/或可縮放視訊編碼擴展))進行操作。可替代地,視訊編碼器200和視訊解碼器300可以根據諸如聯合探索測試模型(JEM)或ITU-T H.266(也稱為多功能視訊編碼(VVC))的其他專有或行業標準進行操作。Bross等人描述了VVC標準的最新草案:「Versatile Video Coding (Draft 7),」ITU-T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的聯合視訊專家組(JVET),第16次會議:Geneva, CH, 2019年10月1-11日,JVET-P2001-v14(以下稱「VVC 草案7」)。Bross等人描述了VVC標準的另一草案:「Versatile Video Coding (草案10)」,ITU-T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的聯合視訊專家組(JVET),第18次會議:電話會議,2020年6月22日-7月1日, JVET-S2001-v17 (以下稱「VVC 草案10」)。」然而,本案內容的技術不限於任何特定的編碼標準。
通常,視訊編碼器200和視訊解碼器300可以執行圖片的基於塊的解碼。術語「塊」通常是指包括要處理的資料的結構(例如,在編碼及/或解碼程序中的編碼、解碼或以其他方式使用的)。例如,塊可以包括亮度及/或色度資料的取樣的二維矩陣。通常,視訊編碼器200和視訊解碼器300可以對以YUV(例如,Y、Cb、Cr)格式表示的視訊資料進行解碼。即,不是編碼圖片的取樣的紅色、綠色和藍色(RGB)資料,而是視訊編碼器200和視訊解碼器300可以對亮度和色度分量進行解碼,其中色度分量可以包括紅色調和藍色調色度分量。在一些示例中,視訊編碼器200在編碼之前將接收到的RGB格式的資料轉換成YUV表示,並且視訊解碼器300將YUV表示轉換成RGB格式。可替代地,預處理和後處理單元(未示出)可以執行這些轉換。
本案內容大體可以涉及圖片的解碼(例如,編碼和解碼)以包括編碼或解碼圖片的資料的程序。類似地,本案內容可以涉及圖片的塊的解碼以包括編碼或解碼塊的資料的程序,例如,預測及/或殘差解碼。編碼視訊位元串流大體包括用於語法元素的一系列值,這些值表示解碼決策(例如,解碼模式)以及圖片到塊的劃分。因此,對解碼圖片或塊的提及通常應被理解為解碼用於形成圖片或塊的語法元素的值。
HEVC定義各種塊,包括解碼單元(CU)、預測單元(PU)和變換單元(TU)。根據HEVC,視訊解碼器(例如,視訊編碼器200)根據四叉樹結構將解碼樹單元(CTU)劃分為CU。即,視訊解碼器將CTU和CU劃分為四個相等的不重疊的正方形,四叉樹的每個節點具有零個或四個子節點。沒有子節點的節點可以被稱為「葉節點」,並且這種葉節點的CU可以包括一或多個PU及/或一或多個TU。視訊解碼器可進一步劃分PU和TU。例如,在HEVC中,殘差四叉樹(RQT)代表TU的劃分。在HEVC中,PU代表訊框間預測資料,而TU代表殘差資料。訊框內預測的CU包括訊框內預測資訊,例如訊框內模式指示。
作為另一個示例,視訊編碼器200和視訊解碼器300可以被配置為根據VVC進行操作。根據VVC,視訊解碼器(例如,視訊編碼器200)將圖片劃分為複數個解碼樹單元(CTU)。視訊編碼器200可根據諸如四叉樹-二叉樹(QTBT)結構或多類型樹(MTT)結構的樹結構來劃分CTU。QTBT結構消除了多個劃分類型的概念,例如HEVC的CU、PU和TU之間的分隔。QTBT結構包括兩個級別:根據四叉樹劃分而劃分的第一級,以及根據二叉樹劃分而劃分的第二級。QTBT結構的根節點對應於CTU。二叉樹的葉節點對應於解碼單元(CU)。
在MTT劃分結構中,可以使用四叉樹(QT)劃分,二叉樹(BT)劃分以及一或多個類型的三叉樹(TT)(也稱為三元樹(TT))劃分來對塊進行劃分。三叉或三元樹劃分是將一個塊分為三個子塊的劃分。在一些示例中,三叉或三元樹劃分在不經由中心分割原始塊的情況下將一個塊分為三個子塊。MTT中的劃分類型(例如QT、BT和TT)可以是對稱的或不對稱的。
在一些示例中,視訊編碼器200和視訊解碼器300可以使用單個QTBT或MTT結構來表示亮度和色度分量之每一者,而在其他示例中,視訊編碼器200和視訊解碼器300可以使用兩個或更多個QTBT或MTT結構,例如用於亮度分量的一個QTBT/MTT結構和用於兩個色度分量的另一個QTBT/MTT結構(或用於各個色度分量的兩個QTBT/MTT結構)。
視訊編碼器200和視訊解碼器300可以被配置為針對每個HEVC、QTBT劃分、MTT劃分或其他劃分結構使用四叉樹劃分。為了說明的目的,相對於QTBT劃分提供了本案內容的技術的描述。然而,應理解,本案內容的技術還可應用於被配置為使用四叉樹分割或其它類型的劃分的視訊解碼器。
在一些示例中,CTU包括亮度取樣的解碼樹塊CTB、具有三個取樣陣列的圖片的色度取樣的兩個對應CTB,或單色圖片或使用用於解碼取樣的三個單獨色彩平面和語法結構解碼的圖片的取樣的CTB。CTB可以是某個N值的N×N的取樣塊,使得將分量分成CTB是劃分。分量是來自以4:2:0、4:2:2或4:4:4顏色格式構成圖片的三個陣列(亮度和兩個色度)之一的陣列或單個取樣,或者是以單色格式構成圖片的陣列或陣列的單個取樣。在一些示例中,解碼塊是某個M和N的值的M×N取樣塊,使得將CTB分為解碼塊是劃分。
在圖片中可以以各種方式封包塊(例如,CTU或CU)。作為一個示例,區塊可以指圖片中的特定圖塊內的CTU行的矩形區域。圖塊可以是圖片中的特定圖塊列和特定圖塊行內的CTU的矩形區域。圖塊列代表具有等於圖片的高度的高度和由語法元素指定的寬度(例如,例如在圖片參數集中)的CTU的矩形區域。圖塊行代表具有由語法元素指定的高度(例如,例如在圖片參數集中)和等於圖片的寬度的的寬度的CTU的矩形區域。
在一些示例中,可以將圖塊劃分為多個區塊,每個區塊可以包括該圖塊內的一或多個CTU行。未被劃分成多區磚的圖塊也可以被稱為區塊。然而,作為圖塊的真子集的區塊可以不被稱為圖塊。
也可以將圖片中的區塊佈置在切片中。切片可為圖片的整數數量個區塊,其可獨有地包含於單個網路抽象層NAL單元中。在一些示例中,切片包括多個完整的圖塊或者僅包括一個圖塊的完整區塊的連續序列。
本案內容可互換地使用「N×N」和「N乘N」來代表按照垂直和水平尺寸的塊(例如CU或其他視訊塊)的取樣尺寸,例如16×16取樣或16乘16取樣。通常,16×16 CU在垂直方向上具有16個取樣(y=16),在水平方向上具有16個取樣(x=16)。同樣,N×N CU通常在垂直方向上具有N個取樣,在水平方向上具有N個取樣,其中N表示非負整數值。CU中的取樣可以按行和列排列。此外,CU在水平方向上不必具有與垂直方向上相同數量的取樣。例如,CU可包括N×M個取樣,其中M不一定等於N。
視訊編碼器200對表示預測及/或殘差資訊以及其他資訊的CU的視訊資料進行編碼。預測資訊指示將如何預測CU以便形成用於CU的預測塊。殘差資訊通常表示編碼之前的CU取樣與預測塊之間的逐取樣差。
為了預測CU,視訊編碼器200通常可經由訊框間預測或訊框內預測來形成用於CU的預測塊。訊框間預測通常是指根據先前編碼的圖片的資料來預測CU,而訊框內預測通常是指根據同一圖片的先前編碼的資料來預測CU。為了執行訊框間預測,視訊編碼器200可使用一或多個運動向量來產生預測塊。視訊編碼器200通常可以例如按照CU與參考塊之間的差執行運動搜索以辨識與CU緊密匹配的參考塊。視訊編碼器200可使用絕對差之和(SAD),平方差之和(SSD),平均絕對差(MAD),均方差(MSD)或其他此類差值計算來計算差值度量,以決定參考塊是否與當前CU緊密匹配。在一些示例中,視訊編碼器200可使用單向預測或雙向預測來預測當前CU。
視訊編碼器200可以各種方式用信號發送塊的運動參數。這種運動參數可包括運動向量、參考索引、參考圖片清單指示符及/或與運動相關的其它資料。在一些示例中,視訊編碼器200和視訊解碼器300可使用運動預測來減少用於用信號發送運動參數的資料量。運動預測可包括基於一或多個其它塊的運動參數來決定塊(例如,PU、CU等)的運動參數。存在各種類型的運動預測。例如,合併模式和進階運動向量預測(AMVP)模式是兩種類型的運動預測。
在合併模式中,視訊編碼器200產生候選列表。候選列表包括指示一或多個源塊的運動參數的候選集合。源塊可以在空間上或時間上與當前塊相鄰。此外,在合併模式中,視訊編碼器200可從候選列表中選擇候選並可使用由被選擇的候選指示的運動參數作為當前塊的運動參數。視訊編碼器200可用信號發送被選擇的候選在候選列表中的位置。視訊解碼器300可基於從位元串流獲得的資訊決定到候選清單中的索引。另外,視訊解碼器300可產生相同候選清單並可基於索引決定被選擇的候選。視訊解碼器300可接著使用被選擇的候選的運動參數來產生當前塊的預測因數塊。
跳過模式類似於合併模式。在跳過模式中,視訊編碼器200和視訊解碼器300以與視訊編碼器200和視訊解碼器300在合併模式中使用候選清單相同的方式產生和使用候選清單。然而,當視訊編碼器200使用跳過模式用信號發送當前塊的運動參數時,視訊編碼器200不用信號發送當前塊的任何殘差資料。因此,視訊解碼器300可基於由候選列表中的被選擇的候選的運動參數指示的一或多個參考塊而決定當前塊的預測因數塊。視訊解碼器300可接著在當前塊的解碼塊中重構取樣,使得經重構取樣等於當前塊的預測因數塊中的對應取樣。
AMVP模式類似於合併模式,因為視訊編碼器200可產生當前塊的候選列表並可從候選列表中選擇候選。然而,對於在決定當前塊的預測因數塊中使用的每個相應參考塊,視訊編碼器200可用信號發送當前塊的相應運動向量差(MVD)、當前塊的相應參考索引和指示候選清單中的被選擇的候選的相應候選索引。塊的MVD可指示塊的運動向量與被選擇的候選的運動向量之間的差。當前塊的參考索引指示參考圖片,從該參考圖片決定參考塊。
此外,當使用AMVP模式時,對於在決定當前塊的預測因數塊中使用的每個相應參考塊,視訊解碼器300可決定當前塊的MVD、當前塊的參考索引以及候選索引和運動向量預測MVP標誌。視訊解碼器300可產生相同候選清單並可基於候選索引在候選清單中決定被選擇的候選。如前述,該候選列表可包括與相同參考索引相關聯的相鄰塊的運動向量以及基於時間參考圖片中的同一位置塊的相鄰塊的運動參數匯出的時間運動向量預測因數。視訊解碼器300可經由將MVD添加到由選定AMVP候選指示的運動向量來恢復當前塊的運動向量。即,視訊解碼器300可基於由選定AMVP候選指示的運動向量和MVD來決定當前塊的運動向量。視訊解碼器300可接著使用當前塊的一或多個經恢復運動向量來產生當前塊的預測因數塊。
當視訊解碼器(例如,視訊編碼器200或視訊解碼器300)產生當前塊的AMVP候選清單時,視訊解碼器可基於含有空間上相鄰於當前PU的位置的參考塊(例如,空間相鄰塊)的運動參數匯出一或多個AMVP候選,並基於時間上相鄰於當前PU的PU的運動參數匯出一或多個AMVP候選。候選清單可包括與相同參考索引相關聯的參考塊的運動向量以及基於時間參考圖片中的同一位置塊的相鄰塊的運動參數(即,運動參數)匯出的時間運動向量預測因數。合併候選列表或AMVP候選列表中的候選基於時間上相鄰於當前塊的參考塊的運動參數。本案內容可使用術語「時間運動向量預測因數」來代表處於與當前塊不同的時間實例中且用於運動向量預測的塊。
VVC的一些示例還提供了仿射運動補償模式,可以將其視為訊框間預測模式。在仿射運動補償模式中,視訊編碼器200可以決定表示非平移運動(例如放大或縮小、旋轉、透視運動或其他不規則運動類型)的兩個或更多個運動向量。
為了執行訊框內預測,視訊編碼器200可選擇訊框內預測模式以產生預測塊。VVC的一些示例提供了67種訊框內預測模式,包括各種定向模式,以及平面模式和DC模式。通常,視訊編碼器200選擇訊框內預測模式,該訊框內預測模式描述到當前塊(例如,CU的塊)的相鄰取樣,從其預測當前塊的取樣。假設視訊編碼器200以光柵掃瞄順序(從左到右,從上到下)編碼CTU和CU,則此類取樣通常可以在與當前塊相同的圖片中當前塊的上方、上方及左側或左側。
視訊編碼器200編碼表示當前塊的預測模式的資料。例如,對於訊框間預測模式,視訊編碼器200可以編碼表示使用各種可用訊框間預測模式中的哪一個的資料以及對應模式的運動資訊。對於單向或雙向訊框間預測,例如,視訊編碼器200可以使用AMVP或合併模式來編碼運動向量。視訊編碼器200可以使用類似模式來編碼仿射運動補償模式的運動向量。
在諸如塊的訊框內預測或訊框間預測之類的預測之後,視訊編碼器200可計算該塊的殘差資料。殘差資料(例如殘差塊)表示該塊與使用相應預測模式形成的該塊的預測塊之間的逐取樣差。視訊編碼器200可將一或多個變換應用於殘差塊,以在變換域而非取樣域中產生經變換的資料。例如,視訊編碼器200可將離散餘弦變換(DCT)、整數變換、小波變換或概念上類似的變換應用於殘差視訊資料。另外,視訊編碼器200可在第一變換之後應用次級變換,例如,與模式相關的不可分離的次級變換(MDNSST)、與信號相關的變換、Karhunen-Loeve變換(KLT)等。視訊編碼器200在應用一或多個變換之後產生變換係數。
如前述,在用以產生變換係數的任何變換之後,視訊編碼器200可執行變換係數的量化。量化通常是指對變換係數進行量化以可能減少用於表示變換係數的資料量,從而提供進一步壓縮的程序。經由執行量化程序,視訊編碼器200可減小與一些或所有變換係數相關聯的位元深度。例如,視訊編碼器200可在量化期間將n位元值捨入為m位元值,其中n大於m。在一些示例中,為了執行量化,視訊編碼器200可執行待量化的值的按位元右移。
在量化之後,視訊編碼器200可掃瞄變換係數,從而從包括量化的變換係數的二維矩陣產生一維向量。可以將掃瞄設計為將較高能量(因此較低頻率)的變換係數放置在向量的前面,並將較低能量(因此較高頻率)的變換係數放置在向量的後面。在一些示例中,視訊編碼器200可利用預定義的掃瞄順序來掃瞄經量化的變換係數以產生序列化的向量,然後對向量的經量化的變換係數進行熵編碼。在其他示例中,視訊編碼器200可以執行自適應掃瞄。在掃瞄經量化的變換係數以形成一維向量之後,視訊編碼器200可以例如根據上下文自適應二進位算術編碼(CABAC)對一維向量進行熵編碼。視訊編碼器200還可對語法元素的值進行熵編碼,該語法元素描述與編碼視訊資料相關聯的元資料,以供視訊解碼器300在解碼視訊資料時使用。
為了執行CABAC,視訊編碼器200可將上下文模型內的上下文分配給要傳送的符號。上下文可以涉及例如符號的相鄰值是否為零值。概率決定可以基於分配給符號的上下文。
視訊編碼器200還可以例如在圖片頭、塊頭、片段頭中,向視訊解碼器300產生語法資料,例如基於塊的語法資料、基於圖片的語法資料和基於序列的語法資料,或其他語法資料,例如序列參數集(SPS)、圖片參數集(PPS)或視訊參數集(VPS)。視訊解碼器300可類似地解碼此類語法資料以決定如何解碼對應的視訊資料。
以此方式,視訊編碼器200可以產生包括編碼視訊資料的位元串流,例如,描述將圖片劃分為塊(例如,CU)的語法元素以及塊的預測及/或殘差資訊。最終,視訊解碼器300可以接收位元串流並對編碼視訊資料進行解碼。
通常,視訊解碼器300執行視訊編碼器200所執行的程序的互逆程序以解碼位元串流的編碼視訊資料。例如,視訊解碼器300可使用CABAC以與視訊編碼器200的CABAC編碼程序雖然互逆但基本相似的方式來解碼位元串流的語法元素的值。語法元素可定義將圖片劃分為CTU的劃分資訊,根據相應的劃分結構(例如QTBT結構)劃分每個CTU,以定義CTU的CU。語法元素可進一步定義視訊資料的塊(例如,CU)的預測和殘差資訊。
殘差資訊可以由例如量化的變換係數表示。視訊解碼器300可對塊的量化的變換係數進行逆量化和逆變換以再現該塊的殘差塊。視訊解碼器300使用信號通知的預測模式(訊框內或訊框間預測)和相關的預測資訊(例如,用於訊框間預測的運動資訊)來形成該塊的預測塊。視訊解碼器300然後可以組合預測塊和殘差塊(在逐取樣的基礎上)以再現原始塊。視訊解碼器300可執行附加處理,例如執行解塊處理以減少沿塊的邊界的視覺偽像。
本案內容通常可以提及「用信號發送」某些資訊,例如語法元素。術語「用信號發送」通常可以代表語法元素及/或用於解碼編碼的視訊資料的其他資料的值的通訊。即,視訊編碼器200可以用信號發送位元串流中的語法元素的值。通常,用信號發送是指在位元串流中產生值。如前述,源設備102可以基本上即時地或非即時地(諸如在將語法元素儲存到儲存裝置112以供稍後由目的地設備116提取時可能發生)將位元串流傳輸到目的地設備116。
圖2A和圖2B是示出示例性四叉樹二叉樹(QTBT)結構130以及對應的解碼樹單元(CTU)132的概念圖。實線表示四叉樹拆分,而虛線表示二叉樹拆分。在二叉樹的每個拆分(即非葉)節點中,發信號通知一個標誌以指示使用哪種拆分類型(即,水平或垂直),在該示例中,0表示水平拆分,而1表示垂直拆分。對於四叉樹拆分,因為四叉樹節點將一個塊水平和垂直拆分為大小相等的4個子塊,因此無需指示拆分類型。因此,視訊編碼器200可以編碼並且視訊解碼器300可以解碼QTBT結構130的區域樹級別(即,實線)的語法元素(例如,拆分資訊)和QTBT結構130的預測樹級別(例如,虛線)的語法元素(例如,拆分資訊)。視訊編碼器200可以編碼並且視訊解碼器300可以解碼用於由QTBT結構130的終端葉節點表示的CU的視訊資料,例如預測和變換資料。
一般而言,圖2B的CTU 132可以與定義與第一和第二級處的QTBT結構130的節點相對應的塊的大小的參數相關聯。這些參數可以包括CTU大小(表示取樣中CTU 132的大小)、最小四叉樹大小(MinQTSize,表示允許的最小四叉樹葉節點大小)、最大二叉樹大小(MaxBTSize,表示允許的最大二叉樹根節點大小)、最大二叉樹深度(MaxBTDepth,表示允許的最大二叉樹深度)和最小二叉樹大小(MinBTSize,表示允許的最小二叉樹葉節點大小)。
與CTU相對應的QTBT結構的根節點可以在QTBT結構的第一級處具有四個子節點,每個子節點可以根據四叉樹劃分來劃分。即,第一級的節點是葉節點(沒有子節點)或具有四個子節點。QTBT結構130的示例將此類節點表示為包括具有用於分支的實線的父節點和子節點。如果第一級的節點不大於允許的最大二叉樹根節點大小(MaxBTSize),則隨後可以經由相應的二叉樹進一步對節點進行劃分。可以反覆運算一個節點的二叉樹拆分,直到拆分產生的節點達到允許的最小二叉樹葉節點大小(MinBTSize)或允許的最大二叉樹深度(MaxBTDepth)。QTBT結構130的示例將此類節點表示為具有用於分支的虛線。將二叉樹葉節點稱為解碼單元(CU),其用於預測(例如,畫面內預測或畫面間預測)和變換,而無需任何進一步的劃分。如前述,CU也可以被稱為「視訊塊」或「塊」。
在QTBT劃分結構的一個示例中,將CTU大小設置為128×128(亮度取樣和兩個相應的64×64色度取樣),將MinQTSize設置為16×16,將MaxBTSize設置為64×64,將MinBTSize(用於寬度和高度)設置為4,將MaxBTDepth設置為4。將四叉樹劃分首先應用於CTU,以產生四叉樹葉節點。四叉樹葉節點的大小可以從16×16(即MinQTSize)到128×128(即CTU大小)。如果四叉樹葉節點為128×128,則將不會經由二叉樹進一步拆分葉四叉樹節點,因為其大小超過了MaxBTSize(在該示例中為64×64)。否則,四叉樹葉節點將經由二叉樹進一步劃分。因此,四叉樹葉節點也是二叉樹的根節點,並且具有二叉樹深度0。當二叉樹的深度達到MaxBTDepth(在該示例中為4)時,不允許進一步拆分。寬度等於MinBTSize(在該示例中為4)的二叉樹節點意味著對於該二叉樹節點不允許進一步的垂直拆分(即,劃分寬度)。類似地,高度等於MinBTSize的二叉樹節點意味著對於該二叉樹節點不允許進一步的水平拆分(即,劃分高度)。如前述,將二叉樹的葉節點稱為CU,並且根據預測和變換對其進行進一步處理而無需進一步劃分。
如上文所介紹的,視訊編碼器200和視訊解碼器300可被配置為在合併模式中對視訊資料塊進行解碼,該合併模式是用於用信號發送訊框間預測運動資訊的模式。在一些示例視訊編碼器(例如,HEVC和VVC)中的合併候選列表構造程序可能由於使用空間合併候選而在相鄰塊之間引入相依性。在一些示例視訊編碼器實施方案中,通常並行或至少以管線方式執行相鄰塊的運動估計階段(例如,由圖3的運動估計單元222執行的運動估計)以增加處理量。由於相鄰塊之間的相依性,相鄰塊的合併候選列表不能被並行產生,並可代表並行編碼器/解碼器設計的瓶頸。
因此,在HEVC中引入了並行合併估計程序。HEVC中的並行合併估計程序使用其中視訊編碼器200和視訊解碼器300可同時匯出兩個或更多個塊的合併候選清單的區域(例如,MER)的指示。視訊編碼器200和視訊解碼器300可並行地匯出MER內的所有塊的合併候選列表。在一些示例中,MER可以包括單個塊。即,視訊編碼器200(例如,經由運動估計單元222和運動補償單元224)和視訊解碼器300(例如,經由運動補償單元316)可針對所指示區域(例如,MER)內的多個塊並行地執行合併候選列表構造程序。
視訊編碼器200和視訊解碼器300可經由檢查候選塊是否在所指示的MER內部來決定針對其執行並行合併候選列表構造程序的塊。不將與當前塊在同一MER中的候選塊包括在合併候選列表中。因此,在合併候選清單構造時不需要可獲得該候選的運動資料。
在MER的大小為32×32取樣的示例中,視訊編碼器200和視訊解碼器300可被配置為針對32×32取樣區域中的所有塊(例如,解碼單元或預測單元)並行地構造合併候選列表,因為在相同32×32 MER內的所有合併候選未添加到合併候選列表中。圖3圖示將CTU 150劃分為七個CU和十個PU的示例。第一CU包括PU0和PU1,第二CU包括PU2,第三CU包括PU3,第四CU包括PU4,第五CU包括PU5和PU6,第六CU包括PU7,且第七CU包括PU8和PU9。在圖3中,CTU 150包括64×64亮度解碼樹塊。獨立執行針對32×32 MER 152內的PU(虛線框)的運動估計,從而使得能夠針對每個MER 152內的PU並行地執行運動估計(例如,包括合併候選列表構造)。出於解釋的目的,圖3圖示PU0、PU5和PU9的可能的空間合併候選。
在圖3的示例中,PU0的合併候選154可用於合併候選列表中,因為那些合併候選在包括PU0的32×32 MER外部。對於包含PU2-PU6的32×32 MER,PU2-PU6的合併候選列表不能包括來自PU2-PU6中的任一個的運動資料,因為該MER內的合併估計和合併候選列表構造應是獨立的(例如,將並存執行)。因此,參考PU5,合併候選156不可用,因為合併候選156在包含PU5的同一MER中。PU5的合併候選158不可用,因為該候選位置尚未被解碼。因此,PU5的合併列表可僅包括時間候選(如果可用)和零MV候選。對於PU9,合併候選154可用,因為那些合併候選在包含PU9的MER外部。合併候選156不可用,因為合併候選156與PU9在同一MER中,並且合併候選158不可用,因為那些候選位置尚未被解碼。
為了使得編碼器(例如,視訊編碼器200)能夠權衡並行性和解碼效率,並行合併估計水平(例如,MER的大小)可以是自適應的並且使用語法元素來用信號發送。例如,視訊編碼器200可以用信號發送指示圖片參數集(PPS)中的MER的大小的語法元素(例如,log2_parallel_merge_level_minus2)。在HEVC中允許以下MER大小:4×4(並行合併列表構造是不可能的)、8×8、16×16、32×32和64×64。由較大MER實現的較高程度的並行化從合併候選列表中排除更多潛在候選。然而,較大的MER可能降低解碼效率。
VVC草案7中的HMVP阻止合併候選列表匯出的並行化。HMVP合併候選在空間MVP和TMVP之後被添加到合併列表。在如在VVC草案7中實施的HMVP中,先前經解碼塊的運動資訊儲存在表中並用作當前CU的MVP。在編碼/解碼程序期間維持具有多個HMVP候選的表。當遇到新的CTU行時,表被復位(清空)。每當存在非子塊經訊框間解碼CU時,將相關聯的運動資訊添加到表的最後條目作為新HMVP候選。然而,對於在MER內並行解碼的塊,先前經解碼塊的運動資訊可能是未知的,從而導致不能使用HMVP或者導致MER實現的並行度降低。
本案內容描述了用於在使用MER時限制將HMVP候選添加到HMVP表的程序,使得HMVP和MER兩者可彼此結合使用。根據本案內容的一種技術,限制HMVP表的更新,使得當且僅當以下各項中的一項為真時-(1)當前塊的大小大於或等於MER大小或(2)當前塊位於當前MER的右下角,才將當前塊的相關聯運動資訊添加到HMVP表的最後條目作為新HMVP候選。返回參考圖3,PU1、PU6、PU7和PU9是在MER的右下處的塊的示例。
例如,如果實施第一條件,則視訊編碼器200和視訊解碼器300可被配置為儲存HMVP的表;決定視訊資料的第一塊的運動資訊;回應於決定第一塊大於或等於MER的大小,將第一塊的運動資訊添加到HMVP的表;及使用HMVP的表來解碼視訊資料的第二塊。如果實施第二條件,則視訊編碼器200和視訊解碼器300可被配置為儲存HMVP的表;決定視訊資料的第一塊的運動資訊;回應於決定第一塊位於MER的右下角,將第一塊的運動資訊添加到HMVP的表;及使用HMVP的表來解碼視訊資料的第二塊。
在一些示例中,當且僅當以下各項中的一項為真時,才將當前塊的相關聯運動資訊添加到表的最後條目作為新HMVP候選: 1)cbWidth >= merSize 且 cbHeight >= merSize 2)floor(xCb / merSize) < floor (xCb + cbWidth) / merSize 且floor(yCb / merSize) < floor(yCb + cbHeight) / merSize 其中xCb和yCb是當前塊中左上取樣的座標,cbWidth和cbHeight是當前塊的寬度和高度,merSize是MER的大小。Floor(x)是獲得小於或等於x的最大整數值的運算元。例如,視訊編碼器200和視訊解碼器300可被配置為決定第一塊的左上取樣的x座標的值加上第一塊的寬度除以MER的大小的值是否大於左上取樣的x座標除以MER的大小,並決定第一塊的左上取樣的y座標的值加上第一塊的高度除以MER的大小是否大於左上取樣的y座標的值除以MER的大小。視訊編碼器200和視訊解碼器300可被配置為回應於決定第一塊的左上取樣的x座標的值加上第一塊的寬度除以MER的大小大於左上取樣的x座標的值除以MER的大小,並回應於決定第一塊的左上取樣的y座標的值加上第一塊的高度除以MER的大小大於左上取樣的y座標的值除以MER的大小,將第一塊的運動資訊添加到HMVP的表。
在另一示例中,當且僅當以下各項中的一項為真時,才將當前塊的相關聯運動資訊添加到表的最後條目作為新HMVP候選: 1)cbWidth >= merSize 且 cbHeight >= merSize 2)floor(xCb / merSize) + 1 == floor (xCb + cbWidth) / merSize 且 floor(yCb / merSize) + 1 == floor(yCb + cbHeight) / merSize。
在本案內容的一些示例中,可維持第二HMVP表。當對MER內部的當前塊進行解碼時,使用第二表而不是原始表。並且不用當前塊的相關聯運動資訊來更新第二HMVP表。用當前塊的相關聯運動資訊更新原始HMVP表。當對包括一或多個MER的當前塊進行解碼時,使用原始表。
在一些示例中,維持第二HMVP表。當對MER內部的當前塊進行解碼時,使用第二表而不是原始表。並且不用當前塊的相關聯運動資訊來更新第二HMVP表。用位於MER內的一些特定位置處的有限數量的塊的相關聯運動資訊來更新原始HMVP表。在一些示例中,如果當前塊位於當前MER的右下角,則用當前塊的相關聯運動資訊來更新原始HMVP表。在一些示例中,如果當前塊位於當前MER的中心,則用當前塊的相關聯運動資訊來更新原始HMVP表。在一些示例中,如果當前塊位於當前MER的左上角,則用當前塊的相關聯運動資訊來更新原始HMVP表。
圖4是示出可執行本案內容的技術的示例視訊編碼器200的方塊圖。提供圖4是出於解釋的目的,且不應被視為限制如本案內容中廣泛地例示和描述的技術。出於解釋的目的,本案內容描述根據JEM、VVC(ITU-T H.266,正在研發中)及HEVC(ITU-T H.265)的技術的視訊編碼器200。然而,本案內容的技術可由被配置為符合其它視訊解碼標準的視訊編碼設備執行。
在圖4的示例中,視訊編碼器200包括視訊資料記憶體230、模式選擇單元202、殘差產生單元204、變換處理單元206、量化單元208、逆量化單元210、逆變換處理單元212、重構單元214、濾波器單元216、解碼圖片緩衝器(DPB)218和熵編碼單元220。可以在一或多個處理器中或在處理電路中實現視訊資料記憶體230、模式選擇單元202、殘差產生單元204、變換處理單元206、量化單元208、逆量化單元210、逆變換處理單元、重構單元214、濾波器單元216、DPB 218和熵編碼單元220中的任何一個或全部。例如,視訊編碼器200的單元可實施為作為硬體電路的部分或作為處理器、ASIC、FPGA的部分的一或多個電路或邏輯元件。此外,視訊編碼器200可包括額外的或替代的處理器或處理電路,以執行這些和其他功能。
視訊資料記憶體230可以儲存將由視訊編碼器200的元件編碼的視訊資料。視訊編碼器200可以從例如視訊源104(圖1)接收儲存在視訊資料記憶體230中的視訊資料。DPB 218可以用作參考圖片記憶體,其儲存參考視訊資料,以供視訊編碼器200在預測後續視訊資料時使用。視訊資料記憶體230和DPB 218可以由多種儲存裝置中的任何一個形成,例如動態隨機存取記憶體(DRAM),包括同步DRAM(SDRAM),磁阻RAM(MRAM),電阻性RAM(RRAM)或其他類型的儲存裝置。視訊資料記憶體230和DPB 218可以由相同的儲存裝置或分離的儲存裝置提供。在各種示例中,視訊資料記憶體230可以與視訊編碼器200的其他元件在晶片上,如圖所示,或者相對於那些元件在晶片外。
在本案內容中,對視訊資料記憶體230的提及不應被解釋為限於視訊編碼器200內部的記憶體,除非如此具體地描述,或者視訊編碼器200外部的記憶體,除非如此具體地描述。而是,對視訊資料記憶體230的提及應被理解為儲存視訊編碼器200所接收的用於編碼的視訊資料(例如,要編碼的當前塊的視訊資料)的參考記憶體。圖1的記憶體106還可以提供對視訊編碼器200的各個單元的輸出的臨時儲存。
示出圖4的各個單元以幫助理解由視訊編碼器200執行的操作。這些單元可以被實現為固定功能電路、可程式化電路或其組合。固定功能電路是指提供特定功能並預先設置可以執行的操作的電路。可程式化電路是指可以被程式化以執行各種任務並且在可以執行的操作中提供靈活功能的電路。例如,可程式化電路可以執行使可程式化電路以軟體或韌體的指令所定義的方式進行操作的軟體或韌體。固定功能電路可以執行軟體指令(例如,以接收參數或輸出參數),但是固定功能電路執行的操作類型通常是不可變的。在一些示例中,一或多個單元可以是不同的電路塊(固定功能或可程式化的),並且在一些示例中,一或多個單元可以是積體電路。
視訊編碼器200可以包括由可程式化電路形成的算數邏輯單位(ALU)、基本功能單元(EFU)、數位電路、類比電路及/或可程式化核心。在使用由可程式化電路執行的軟體來執行視訊編碼器200的操作的示例中,記憶體106(圖1)可以儲存視訊編碼器200接收並執行的軟體的指令(例如目標代碼),或者在視訊編碼器200內的另一個記憶體(未顯示)可以儲存此類指令。
視訊資料記憶體230被配置為儲存接收到的視訊資料。視訊編碼器200可以從視訊資料記憶體230提取視訊資料的圖片,並將視訊資料提供給殘差產生單元204和模式選擇單元202。視訊資料記憶體230中的視訊資料可以是將被編碼的原始視訊資料。
模式選擇單元202包括運動估計單元222、運動補償單元224和訊框內預測單元226。模式選擇單元202可以包括其他功能單元,以根據其他預測模式執行視訊預測。作為示例,模式選擇單元202可以包括調色板單元、塊內複製單元(其可以是運動估計單元222及/或運動補償單元224的部分)、仿射單元、線性模型(LM)單元等。
模式選擇單元202大體協調多個編碼操作,以測試編碼參數的組合以及針對這種組合的結果速率失真值。編碼參數可以包括將CTU劃分為CU,用於CU的預測模式,用於CU的殘差資料的變換類型,用於CU的殘差資料的量化參數等等。模式選擇單元202可以最終選擇速率失真值優於其他測試的組合的編碼參數的組合。
視訊編碼器200可以將從視訊資料記憶體230提取到的圖片劃分為一系列CTU,並將一或多個CTU封裝在片段內。模式選擇單元202可以根據樹結構,例如上述HEVC的QTBT結構或四叉樹結構,來劃分圖片的CTU。如前述,視訊編碼器200可以根據樹結構經由劃分CTU來形成一或多個CU。通常也將此類CU稱為「視訊塊」或「塊」。
通常,模式選擇單元202還控制其元件(例如,運動估計單元222、運動補償單元224和訊框內預測單元226)以產生針對當前塊(例如,當前CU,或HEVC中,PU和TU的重疊部分)的預測塊。為了對當前塊進行訊框間預測,運動估計單元222可執行運動搜索以辨識一或多個參考圖片(例如,儲存在DPB 218中的一或多個先前編碼的圖片)中的一或多個緊密匹配的參考塊。特別地,運動估計單元222可以例如根據絕對差之和(SAD)、平方差之和(SSD)、平均絕對差(MAD)、均方差(MSD)等來計算表示潛在參考塊與當前塊的相似程度的值。運動估計單元222通常可使用當前塊與所考慮的參考塊之間的逐取樣差來執行這些計算。運動估計單元222可以辨識具有由這些計算產生的最低值的參考塊,其指示與當前塊最緊密匹配的參考塊。
運動估計單元222可形成一或多個運動向量(MV),其定義參考圖片中的參考塊相對於當前圖片中的當前塊的位置的位置。然後,運動估計單元222可將運動向量提供給運動補償單元224。例如,對於單向訊框間預測,運動估計單元222可提供單個運動向量,而對於雙向訊框間預測,運動估計單元222可以提供兩個運動向量。運動補償單元224然後可使用運動向量來產生預測塊。例如,運動補償單元224可以使用運動向量來提取參考塊的資料。作為另一示例,如果運動向量具有分數取樣精度,則運動補償單元224可以根據一或多個內插濾波器來內插預測塊的值。此外,對於雙向訊框間預測,運動補償單元224可以例如經由逐取樣平均或加權平均來提取由相應運動向量標識的兩個參考塊的資料,並組合所提取的資料。運動估計單元222和運動補償單元224可以被配置為如前述地使用MER來對塊進行解碼。
作為另一示例,對於訊框內預測或訊框內預測解碼,訊框內預測單元226可以根據與當前塊相鄰的取樣來產生預測塊。例如,對於定向模式,訊框內預測單元226通常可以在數學上組合相鄰取樣的值,並橫跨當前塊沿定義的方向填充這些計算出的值以產生預測塊。作為另一示例,對於DC模式,訊框內預測單元226可以計算當前塊的相鄰取樣的平均值,並且產生預測塊以為預測塊的每個取樣包括該所得平均值。
模式選擇單元202將預測塊提供給殘差產生單元204。殘差產生單元204從視訊資料記憶體230接收當前塊的原始未編碼版本,從模式選擇單元202接收預測塊。殘差產生單元204計算當前塊和預測塊之間的逐取樣差。所得的逐取樣差定義了當前塊的殘差塊。在一些示例中,殘差產生單元204還可決定殘差塊中的取樣值之間的差以使用殘差差分脈衝碼調制(RDPCM)來產生殘差塊。在一些示例中,可以使用執行二進位減法的一或多個減法器電路來形成殘差產生單元204。
在模式選擇單元202將CU劃分為PU的示例中,每個PU可與亮度預測單元和對應的色度預測單元相關聯。視訊編碼器200和視訊解碼器300可以支援具有各種大小的PU。如前述,CU的大小可以指的是CU的亮度編碼塊的大小,並且PU的大小可以指的是PU的亮度預測單元的大小。假設特定CU的大小為2N×2N,則視訊編碼器200可支援用於訊框內預測的2N×2N或N×N的PU大小,以及用於訊框間預測的2N×2N、2N×N、N×2N、N×N或類似的對稱的PU大小。視訊編碼器200和視訊解碼器300還可支援用於訊框間預測的2N×nU、2N×nD、nL×2N和nR×2N的PU大小的非對稱劃分。
在模式選擇單元202不將CU進一步劃分成PU的示例中,每個CU可以與亮度編碼塊和對應的色度編碼塊相關聯。如前述,CU的大小可以指CU的亮度編碼塊的大小。視訊編碼器200和視訊解碼器300可以支援2N×2N、2N×N或N×2N的CU大小。
對於其他視訊解碼技術(例如塊內複製模式解碼、仿射模式解碼和線性模型(LM)模式解碼,作為幾個示例),模式選擇單元202經由與解碼技術相關聯的相應單元,為正在編碼的當前塊產生預測塊。在一些示例中,例如調色板模式解碼,模式選擇單元202可以不產生預測塊,而是產生語法元素,該語法元素指示基於所選調色板重構塊的方式。在此類模式中,模式選擇單元202可以將這些語法元素提供給熵編碼單元220以進行編碼。
如前述,殘差產生單元204接收當前塊和對應的預測塊的視訊資料。殘差產生單元204然後為當前塊產生殘差塊。為了產生殘差塊,殘差產生單元204計算預測塊和當前塊之間的逐取樣差。
變換處理單元206將一或多個變換應用於殘差塊以產生變換係數的塊(在本文中稱為「變換係數塊」)。變換處理單元206可以將各種變換應用於殘差塊以形成變換係數塊。例如,變換處理單元206可以將離散餘弦變換(DCT)、方向變換、Karhunen-Loeve變換(KLT)或概念上類似的變換應用於殘差塊。在一些示例中,變換處理單元206可執行對殘差塊的多個變換,例如,一次變換和二次變換,例如旋轉變換。在一些示例中,變換處理單元206不將變換應用於殘差塊。
量化單元208可以量化變換係數塊中的變換係數,以產生量化的變換係數塊。量化單元208可以根據與當前塊相關聯的量化參數(QP)值來量化變換係數塊的變換係數。視訊編碼器200(例如,經由模式選擇單元202)可經由調整與CU相關聯的QP值來調整應用於與當前塊相關聯的變換係數塊的量化程度。量化可能會引入資訊丟失,因此,量化的變換係數可能具有比由變換處理單元206產生的原始變換係數更低的精度。
逆量化單元210和逆變換處理單元212可以分別對量化的變換係數塊應用逆量化和逆變換,以從變換係數塊重構殘差塊。重構單元214可以基於重構的殘差塊和由模式選擇單元202產生的預測塊來產生與當前塊相對應的重構塊(儘管可能具有某種程度的失真)。例如,重構單元214可以將重構的殘差塊的取樣添加到來自模式選擇單元202所產生的預測塊的對應取樣,以產生重構塊。
濾波器單元216可以對重構塊執行一或多個濾波器操作。例如,濾波器單元216可以執行解塊操作以減少沿著CU的邊緣的塊狀偽像。在一些示例中,可以跳過濾波器單元216的操作。
視訊編碼器200將重構塊儲存在DPB 218中。例如,在不需要濾波器單元216的操作的示例中,重構單元214可以將重構塊儲存到DPB 218。在需要濾波器單元216的操作的示例中,濾波器單元216可以將經濾波的重構塊儲存到DPB 218。運動估計單元222和運動補償單元224可以從DPB 218提取參考圖片,該參考圖片由重構(並且可能經濾波)的塊形成,以對後續編碼圖片的塊進行訊框間預測。另外,訊框內預測單元226可以使用當前圖片的DPB 218中的重構塊來對當前圖片中的其他塊進行訊框內預測。
通常,熵編碼單元220可對從視訊編碼器200的其他功能元件接收的語法元素進行熵編碼。例如,熵編碼單元220可對來自量化單元208的量化的變換係數塊進行熵編碼。作為另一示例,熵編碼單元220可以對來自模式選擇單元202的預測語法元素(例如,用於訊框間預測的運動資訊或用於訊框內預測的訊框內模式資訊)進行熵編碼。熵編碼單元220可以對語法元素(它們是視訊資料的另一個示例)執行一或多個熵編碼操作,以產生熵編碼的資料。例如,熵編碼單元220可以對資料執行上下文自適應可變長度編碼(CAVLC)操作、CABAC操作、可變至可變(V2V)長度編碼操作、基於語法的上下文自適應二進位算術編碼(SBAC)操作、概率間隔分割熵(PIPE)編碼操作、指數Golomb編碼操作或另一種熵編碼操作。在一些示例中,熵編碼單元220可以在未對語法元素進行熵編碼的旁通模式下操作。
視訊編碼器200可以輸出包括重構片段或圖片的塊所需的熵編碼語法元素的位元串流。特別地,熵編碼單元220可以輸出位元串流。
關於塊描述了上述操作。此類描述應該被理解為是針對亮度解碼塊及/或色度解碼塊的操作。如前述,在一些示例中,亮度解碼塊和色度解碼塊是CU的亮度和色度分量。在一些示例中,亮度解碼塊和色度解碼塊是PU的亮度和色度分量。
在一些示例中,不需要針對色度解碼塊重複關於亮度解碼塊執行的操作。作為一個示例,不需要為了辨識用於色度塊的運動向量(MV)和參考圖片而重複辨識用於亮度編碼塊的MV和參考圖片的操作。而是,可以縮放用於亮度編碼塊的MV以決定用於色度塊的MV,並且參考圖片可以是相同的。作為另一示例,對於亮度編碼塊和色度編碼塊,訊框內預測處理可以是相同的。
視訊編碼器200代表被配置為對視訊資料進行編碼的設備的示例,包括記憶體,被配置為儲存視訊資料;及一或多個處理單元,在電路中實施並被配置為執行本案內容的技術。例如,模式選擇單元202(例如,運動估計單元222及/或運動補償單元224)可儲存HMVP的表,該HMVP將在針對在合併模式中解碼的塊構造合併候選列表時使用。模式選擇單元202可以決定視訊資料的第一塊的運動資訊,回應於決定第一塊位於MER的右下角而將第一塊的運動資訊添加到HMVP的表,並且使用HMVP的表來解碼視訊資料的第二塊。模式選擇單元202可以例如使用來自HMVP的表的條目產生用於第二塊的合併候選列表。
圖5是示出可以執行本案內容的技術的示例視訊解碼器300的方塊圖。提供圖5是出於解釋的目的,且不應被視為限制如本案內容中廣泛地例示和描述的技術。出於解釋的目的,本案內容描述根據JEM、VVC(ITU-T H.266,正在研發中)及HEVC(ITU-T H.265)的技術的視訊解碼器300。然而,本案內容的技術可由被配置為用於其它視訊解碼標準的視訊解碼設備執行。
在圖5的示例中,視訊解碼器300包括編碼圖片緩衝器(CPB)記憶體320、熵解碼單元302、預測處理單元304、逆量化單元306、逆變換處理單元308、重構單元310、濾波器單元312和解碼圖片緩衝器(DPB)314。可以在一或多個處理器中或在處理電路中實現CPB記憶體320、熵解碼單元302、預測處理單元304、逆量化單元306、逆變換處理單元308、重構單元310、濾波器單元312和DPB 314中的任何一個或全部。例如,視訊解碼器300的單元可實施為作為硬體電路的部分或作為處理器、ASIC、FPGA的部分的一或多個電路或邏輯元件。此外,視訊解碼器300可以包括額外的或替代的處理器或處理電路,以執行這些和其他功能。
預測處理單元304包括運動補償單元316和訊框內預測單元318。預測處理單元304可以包括附加單元,以根據其他預測模式執行預測。作為示例,預測處理單元304可以包括調色板單元、塊內複製單元(其可以形成運動補償單元316的部分)、仿射單元、線性模型(LM)單元等。在其他示例中,視訊解碼器300可以包括更多、更少或不同的功能元件。
CPB記憶體320可以儲存將由視訊解碼器300的元件解碼的視訊資料,例如編碼視訊位元串流。例如,可以從電腦可讀取媒體110(圖1)獲得儲存在CPB記憶體320中的視訊資料。CPB記憶體320可以包括儲存來自編碼視訊位元串流的編碼視訊資料(例如,語法元素)的CPB。而且,CPB記憶體320可以儲存除了編碼圖片的語法元素之外的視訊資料,例如表示來自視訊解碼器300的各個單元的輸出的臨時資料。DPB 314通常儲存解碼圖片,視訊解碼器300可以輸出及/或在解碼編碼視訊位元串流的後續資料或圖片時使用該解碼圖片作為參考視訊資料。CPB記憶體320和DPB 314可以由各種儲存裝置中的任何一種形成,例如DRAM,包括SDRAM、MRAM、RRAM或其他類型的儲存裝置。CPB記憶體320和DPB 314可以由相同的儲存裝置或分離的儲存裝置提供。在各種示例中,CPB記憶體320可以與視訊解碼器300的其他元件在晶片上,或者相對於彼等元件在晶片外。
另外或可替代地,在一些示例中,視訊解碼器300可以從記憶體120(圖1)提取編碼視訊資料。即,記憶體120可以如前述與CPB記憶體320一起儲存資料。類似地,當以軟體實現視訊解碼器300的一些或全部功能以經由視訊解碼器300的處理電路來執行時,記憶體120可以儲存將由視訊解碼器300執行的指令。
示出圖5中所示的各種單元以幫助理解由視訊解碼器300執行的操作。這些單元可以被實現為固定功能電路、可程式化電路或其組合。類似於圖4,固定功能電路是指提供特定功能並預先設置可以執行的操作的電路。可程式化電路是指可以被程式化以執行各種任務並且在可以執行的操作中提供靈活功能的電路。例如,可程式化電路可以執行使可程式化電路以軟體或韌體的指令所定義的方式進行操作的軟體或韌體。固定功能電路可以執行軟體指令(例如,以接收參數或輸出參數),但是固定功能電路執行的操作類型通常是不可變的。在一些示例中,一或多個單元可以是不同的電路塊(固定功能或可程式化的),並且在一些示例中,一或多個單元可以是積體電路。
視訊解碼器300可以包括由可程式化電路形成的ALU、EFU、數位電路、類比電路及/或可程式化核心。在由在可程式化電路執行的軟體來執行視訊解碼器300的操作的示例中,片上或片外記憶體可以儲存視訊解碼器300接收並執行的軟體的指令(例如,目標代碼)。
熵解碼單元302可以從CPB接收編碼視訊資料並且對視訊資料進行熵解碼以再現語法元素。預測處理單元304、逆量化單元306、逆變換處理單元308、重構單元310和濾波器單元312可以基於從位元串流中提取的語法元素來產生解碼視訊資料。
通常,視訊解碼器300在逐塊的基礎上重構圖片。視訊解碼器300可單獨地在每個塊上執行重構操作(其中當前正在重構(即,解碼)的塊可被稱為「當前塊」)。
熵解碼單元302可以熵解碼定義量化的變換係數塊的量化的變換係數的語法元素以及諸如量化參數(QP)及/或變換模式指示的變換資訊。逆量化單元306可以使用與量化的變換係數塊相關聯的QP來決定量化度,並且同樣地,決定逆量化度以供逆量化單元306應用。逆量化單元306可以例如執行位元左移運算以對量化的變換係數進行逆量化。逆量化單元306可由此形成包括變換係數的變換係數塊。
在逆量化單元306形成變換係數塊之後,逆變換處理單元308可以將一或多個逆變換應用於變換係數塊以產生與當前塊相關聯的殘差塊。例如,逆變換處理單元308可以將逆DCT、逆整數變換、逆Karhunen-Loeve變換(KLT)、逆旋轉變換、逆方向變換或另一逆變換應用於變換係數塊。
此外,預測處理單元304根據由熵解碼單元302熵解碼的預測資訊語法元素來產生預測塊。例如,如果預測資訊語法元素指示當前塊是訊框間預測的,則運動補償單元316可以產生預測塊。在這種情況下,預測資訊語法元素可以指示DPB 314中的從其提取參考塊的參考圖片,以及運動向量,該運動向量標識參考圖片中參考塊相對於當前圖片中當前塊的位置的位置。運動補償單元316通常可以以與關於運動補償單元224(圖4)所描述的方式基本相似的方式來執行訊框間預測處理。運動補償單元316可以被配置為如前述地使用MER來對塊進行解碼。
作為另一示例,如果預測資訊語法元素指示當前塊是訊框內預測的,則訊框內預測單元318可以根據由預測資訊語法元素指示的訊框內預測模式來產生預測塊。同樣,訊框內預測單元318通常可以以與關於訊框內預測單元226(圖4)所描述的方式基本相似的方式來執行訊框內預測處理。訊框內預測單元318可以從DPB 314提取當前塊的相鄰取樣的資料。
重構單元310可以使用預測塊和殘差塊來重構當前塊。例如,重構單元310可以將殘差塊的取樣添加到預測塊的對應取樣以重構當前塊。
濾波器單元312可以對重構塊執行一或多個濾波器操作。例如,濾波器單元312可以執行解塊操作以減少沿著重構塊的邊緣的塊狀偽像。不一定在所有示例中都執行濾波器單元312的操作。
視訊解碼器300可將重構塊儲存在DPB 314中。例如,在未執行濾波器單元312的操作的示例中,重構單元310可將重構塊儲存到DPB 314。在執行濾波器單元312的操作的示例中,濾波器單元312可以將經濾波的重構塊儲存到DPB 314。如前述,DPB 314可以向預測處理單元304提供參考資訊,例如用於訊框內預測的當前圖片的取樣以及用於後續運動補償的先前解碼的圖片。此外,視訊解碼器300可以從DPB 314輸出經解碼圖片(例如,經解碼視訊),以用於隨後在顯示裝置(例如,圖1的顯示裝置118)上呈現。
視訊解碼器300代表視訊解碼設備的示例,包括記憶體,被配置為儲存視訊資料;及一或多個處理單元,在電路中實施並被配置為執行本案內容的技術。例如,預測處理單元304(例如,運動補償單元316)可儲存HMVP的表,該HMVP將在針對在合併模式中解碼的塊構造合併候選列表時使用。預測處理單元304可決定視訊資料的第一塊的運動資訊,回應於決定第一塊位於MER的右下角而將第一塊的運動資訊添加到HMVP的表,並且使用HMVP的表來解碼視訊資料的第二塊。預測處理單元304例如可以使用來自HMVP的表的條目產生用於第二塊的合併候選列表。
圖6是示出用於編碼當前塊的示例程序的流程圖。當前塊可包括當前CU。儘管關於視訊編碼器200(圖1和4)進行了描述,但應理解,可以將其他設備配置為執行與圖6類似的程序。
在該示例中,視訊編碼器200最初預測當前塊(350)。作為預測塊的部分,視訊編碼器200可維持如本文中所揭示的一或多個HMVP表,並可根據本文中所描述的技術更新彼等表。例如,視訊編碼器200可形成當前塊的預測塊。視訊編碼器200可接著計算當前塊的殘差塊(352)。為了計算殘差塊,視訊編碼器200可計算原始未編碼塊與當前塊的預測塊之間的差。視訊編碼器200可接著變換殘差塊並量化殘差塊的變換係數(354)。接下來,視訊編碼器200可掃瞄殘差塊的經量化變換係數(356)。在掃瞄期間或在掃瞄之後,視訊編碼器200可熵編碼變換係數(358)。例如,視訊編碼器200可使用CAVLC或CABAC來編碼變換係數。視訊編碼器200可隨後輸出塊的經熵編碼資料(360)。
圖7是示出用於解碼視訊資料的當前塊的示例程序的流程圖。當前塊可包括當前CU。儘管關於視訊解碼器300(圖1和圖5)進行了描述,但應理解,可以將其他設備配置為執行與圖7類似的程序。
視訊解碼器300可接收當前塊的經熵編碼資料,例如對應於當前塊的殘差塊的係數的經熵編碼預測資訊和經熵編碼資料(370)。視訊解碼器300可熵解碼經熵編碼資料以決定當前塊的預測資訊並再現殘差塊的係數(372)。視訊解碼器300可以例如使用如由當前塊的預測資訊指示的訊框內或訊框間預測模式來預測當前塊(374)以計算當前塊的預測塊。作為預測塊的部分,視訊解碼器300可維持如本文中所揭示的一或多個HMVP表,並可根據本文中所描述的技術更新那些表。視訊解碼器300可接著對所再現的係數進行逆掃瞄(376),以產生經量化變換係數塊。視訊解碼器300可接著對變換係數進行逆量化和逆變換以產生殘差塊(378)。視訊解碼器300可經由組合預測塊與殘差塊來最終解碼當前塊(380)。
圖8是示出用於解碼視訊資料的當前塊的示例程序的流程圖。當前塊可包括當前CU。將關於一般視訊解碼器來描述圖8的技術,該一般視訊解碼器可以例如對應於視訊解碼器300(圖1和圖5)、視訊編碼器200的視訊解碼迴路(圖1和圖4)或任何其它此類視訊解碼器。
視訊解碼器儲存HMVP的表(400)。視訊解碼器可以例如維持HMVP的表,並且在解碼新塊時,視訊解碼器可將用於解碼新塊的運動資訊添加到HMVP的表。解碼器還可以週期性地從HMVP的表中移除條目,以便限制表的大小。視訊解碼器決定視訊資料的第一塊的運動資訊(402)。視訊解碼器可以例如使用所決定的運動資訊來訊框間預測第一塊。
視訊解碼器回應於決定第一塊位於MER的右下角而將第一塊的運動資訊添加到HMVP的表(404)。MER可以是第一MER,第二塊可以屬於第二MER。為了回應於決定第一塊位於MER的右下角而將第一塊的運動資訊添加到HMVP的表,視訊解碼器可以例如決定第一塊的左上取樣的x座標的值加上第一塊的寬度除以MER的大小是否大於左上取樣的x座標的值除以MER的大小,並且決定第一塊的左上取樣的y座標的值加上第一塊的高度除以MER的大小是否大於左上取樣的y座標的值除以MER的大小。回應於決定第一塊的左上取樣的x座標的值加上第一塊的寬度除以MER的大小大於左上取樣的x座標的值除以MER的大小,並且回應於決定第一塊的左上取樣的y座標的值加上第一塊的高度除以MER的大小大於左上取樣的y座標的值除以MER的大小,視訊解碼器可以將第一塊的運動資訊添加到HMVP的表。
視訊解碼器使用HMVP的表來解碼視訊資料的第二塊(406)。為了使用HMVP的表來解碼視訊資料的第二塊,視訊解碼器可以例如被配置為產生第二塊的運動資訊的候選清單,該候選列表包括來自HMVP的表的候選;從運動向量的候選列表中選擇候選;及使用被選擇的候選來解碼視訊資料的第二塊。視訊解碼器可以例如輸出包括第一塊和第二塊的經解碼版本的經解碼視訊資料。在視訊解碼器正在操作以執行視訊編碼程序的實施方式中,視訊解碼器可以儲存包括第一塊和第二塊的經解碼版本的一或多個經解碼圖片,並使用一或多個所儲存的經解碼圖片來編碼視訊資料的其它圖片的其它塊。
以下條款表示以上介紹的技術和設備的示例實施方式。
條款1:一種解碼視訊資料的方法,包括:儲存基於歷史的運動向量預測因數(HMVP)的表;決定視訊資料的當前塊的運動資訊;及根據本案內容中所描述的任何技術或技術組合基於當前塊的所決定運動資訊來更新基於歷史的運動向量預測因數的表。
條款2:根據條款1的方法,其中基於當前塊的所決定運動資訊更新HMVP的表包括:回應於決定當前塊大於或等於運動估計區域的大小而將當前塊的運動資訊添加到HMVP的表。
條款3:根據條款1的方法,其中基於當前塊的所決定運動資訊更新HMVP的表包括:回應於決定當前塊位於運動估計區域的右下角而將當前塊的運動資訊添加到HMVP的表。
條款4:根據條款1至3中任一項的方法,還包括對於在當前塊之後正在解碼的第二當前塊,經由將來自HMVP的表的候選添加到候選列表來產生第二當前塊的候選列表。
條款5:一種解碼視訊資料的方法,包括:儲存第一基於歷史的運動向量預測因數(HMVP)的表;儲存第二HMVP的表;決定視訊資料的當前塊的運動資訊;及根據本案內容中所描述的任何技術或技術的組合基於當前塊的所決定運動資訊來更新第一HMVP的表及/或第二HMVP的表。
條款6:根據條款5的方法,還包括對於在當前塊之後正在解碼的第二當前塊,經由將來自第一HMVP的表或第二HMVP的表的候選添加到候選列表來產生第二當前塊的候選列表。
條款7:根據條款1至6中任一項的方法,其中編解碼包括解碼。
條款8:根據條款1至6中任一項的方法,其中編解碼包括編碼。
條款9:一種用於編解碼視訊資料的設備,設備包括用於執行根據條款1到8中任一項的方法的一或多個構件。
條款10:根據條款9的設備,其中一或多個構件包括在電路中實施的一或多個處理器。
條款11:根據條款9和10中任一項的設備,還包括用於儲存視訊資料的記憶體。
條款12:根據條款9-11中任一項的設備,還包括被配置為顯示經解碼視訊資料的顯示器。
條款13:根據條款9-12中任一項的設備,其中設備包括攝像機、電腦、行動設備、廣播接收器設備或機上盒中的一或多個。
條款14:根據條款9-13中任一項的設備,其中設備包括視訊解碼器。
條款15:根據條款9-14中任一項的設備,其中設備包括視訊編碼器。
條款16:一種電腦可讀取儲存媒體,其上儲存有指令,指令在被執行時使一或多個處理器執行根據條款1至8中任一項的方法。
應該認識到,根據示例,本文描述的任何技術的某些操作或事件可以以不同的循序執行,可以被添加、合併或完全省略(例如,並非所有描述的操作或事件都是實施該技術所必需的)。此外,在某些示例中,操作或事件可以例如經由多執行緒處理、中斷處理或多個處理器併發地而不是順序地執行。
在一或多個示例中,可以以硬體、軟體、韌體或其任意組合來實現所描述的功能。如果以軟體實現,則功能可以作為一或多個指令或代碼在電腦可讀取媒體上進行儲存或傳送,並由基於硬體的處理單元執行。電腦可讀取媒體包括電腦儲存媒體,其對應於諸如資料儲存媒體的有形媒體,或通訊媒體,包括例如根據通訊協定便於將電腦程式從一個地方轉移到另一個地方的任何媒體。以這種方式,電腦可讀取媒體通常可以對應於(1)非暫時性的有形電腦可讀取儲存媒體,或者(2)諸如信號或載波的通訊媒體。資料儲存媒體可以是可以由一台或多台電腦或一或多個處理器存取以提取指令、代碼及/或資料結構以實現本案內容中描述的技術的任何可用媒體。電腦程式產品可以包括電腦可讀取媒體。
例如,但是並不限於,此類電腦可讀取媒體可以包括RAM、ROM、EEPROM、CD-ROM或其它光碟儲存裝置、磁碟儲存裝置或其它磁儲存裝置、快閃記憶體或者可以用於以指令或資料結構的形式儲存所需程式碼並且能夠被電腦存取的任何其它媒體。此外,任何連接都可以適當地稱為電腦可讀取媒體。例如,如果用同軸電纜、纖維光纜、雙絞線、數位用戶線路路(DSL)或例如紅外、無線和微波的無線技術從網站、伺服器或其它遠端源反射軟體,則該同軸電纜、纖維光纜、雙絞線、DSL或例如紅外、無線和微波的無線技術也包含在媒體的定義中。然而,應當理解,電腦可讀取儲存媒體和資料儲存媒體不包括連接、載波、信號或其他暫時性媒體,而是針對非暫時性有形儲存媒體。本文所使用的磁碟和光碟包括壓縮碟(CD)、雷射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常磁性地再現資料,而光碟通常利用雷射光學地再現資料。上述的組合也包括在電腦可讀取媒體的範圍內。
指令可由一或多個處理器執行,例如一或多個DSP、通用微處理器、專用積體電路ASIC、FPGA或其他等效整合或個別邏輯電路。相應地,如本文所使用的術語「處理器」和「處理電路」可以指任何前述結構或適合於實現本文描述的技術的任何其他結構。另外,在一些態樣中,本文描述的功能可以在被配置用於編碼和解碼的專用硬體及/或軟體構件內提供,或結合在組合轉碼器中。同樣,該技術可以在一或多個電路或邏輯元件中完全實現。
本案內容的技術可以在包括無線手持機、積體電路(IC)或一組IC(例如,晶片組)的多種設備或裝置中實現。在本案內容中描述各種元件、模組或單元以強調被配置為執行所揭露技術的設備的功能態樣,但不一定需要由不同硬體單元來實現。而是,如前述,各種單元可以組合在轉碼器硬體單元中,或者由交互動操作的硬體單元的集合來提供,包括與合適的軟體及/或韌體相結合的如前述的一或多個處理器。
已經描述了各種示例。這些和其他示例在所附請求項的範圍內。
100:視訊編碼和解碼系統 102:源設備 104:視訊源 106:記憶體 108:輸出介面 110:電腦可讀取媒體 112:儲存裝置 114:檔案伺服器 116:目的地設備 118:顯示裝置 120:記憶體 122:輸入介面 130:示例性四叉樹二叉樹(QTBT)結構 132:解碼樹單元(CTU) 150:CTU 152:MER 154:合併候選 156:合併候選 158:合併候選 200:視訊編碼器 202:模式選擇單元 204:殘差產生單元 206:變換處理單元 208:量化單元 210:逆量化單元 212:逆變換處理單元 214:重構單元 216:濾波器單元 218:解碼圖片緩衝器(DPB) 220:熵編碼單元 222:運動估計單元 224:運動補償單元 226:訊框內預測單元 230:視訊資料記憶體 300:視訊解碼器 302:熵解碼單元 304:預測處理單元 306:逆量化單元 308:逆變換處理單元 310:重構單元 312:濾波器單元 314:解碼圖片緩衝器(DPB) 316:運動補償單元 318:訊框內預測單元 320:CPB記憶體 350,352,354,356,358,360:步驟 370,372,374,376,378,380:步驟 400,402,404,406:步驟
圖1是示出可以執行本案內容的技術的示例視訊編碼和解碼系統的方塊圖。
圖2A和圖2B是示出示例四叉樹二叉樹(QTBT)結構以及對應的解碼樹單元(CTU)的概念圖。
圖3是示出示例合併估計區域的概念圖。
圖4是示出可以執行本案內容的技術的示例視訊編碼器的方塊圖。
圖5是示出可以執行本案內容的技術的示例視訊解碼器的方塊圖。
圖6是示出示例視訊編碼程序的流程圖。
圖7是示出示例視訊解碼程序的流程圖。
圖8是示出示例視訊解碼程序的流程圖。
400,402,404,406:步驟

Claims (30)

  1. 一種用於解碼視訊資料的方法,該方法包括: 儲存基於歷史的運動向量預測因數(HMVP)的一表; 決定該視訊資料的一第一塊的運動資訊; 回應於決定該第一塊位於一運動估計區域(MER)的一右下角而將該第一塊的該運動資訊添加到該HMVP的表;及 使用該HMVP的表來解碼該視訊資料的一第二塊。
  2. 根據請求項1之方法,其中使用該HMVP的表來解碼該視訊資料的該第二塊包括: 針對該第二塊,產生運動資訊的一候選清單,其中該候選列表包括來自該HMVP的表的一候選; 從運動向量的該候選列表中選擇一候選;及 使用被選擇的候選來解碼該視訊資料的第二塊。
  3. 根據請求項1之方法,其中該MER是一第一MER,並且其中該第二塊屬於一第二MER。
  4. 根據請求項1之方法,其中回應於決定該第一塊位於該MER的該右下角而將該第一塊的運動資訊添加到HMVP的表包括: 決定該第一塊的一左上取樣的一x座標的一值加上該第一塊的一寬度除以該MER的一大小是否大於該左上取樣的該x座標的該值除以該MER的該大小;及 回應於決定該第一塊的該左上取樣的一x座標的該值加上該第一塊的一寬度除以該MER的該大小大於該左上取樣的該x座標的該值除以該MER的該大小而將該第一塊的運動資訊添加到該HMVP的表。
  5. 根據請求項1之方法,其中回應於決定該第一塊位於該MER的該右下角而將該第一塊的該運動資訊添加到該HMVP的表包括: 決定該第一塊的一左上取樣的一y座標的值加上該第一塊的一高度除以該MER的一大小是否大於該左上取樣的該y座標的該值除以該MER的該大小,以及 回應於決定該第一塊的該左上取樣的該y座標的該值加上該第一塊的該高度除以該MER的該大小大於該左上取樣的該y座標的該值除以該MER的該大小而將該第一塊的該運動資訊添加到該HMVP的表。
  6. 根據請求項1之方法,其中回應於決定該第一塊位於該MER的該右下角而將該第一塊的該運動資訊添加到該HMVP的表包括: 決定該第一塊的一左上取樣的一x座標的一值加上該第一塊的寬度除以該MER的大小是否大於該左上取樣的該x座標的該值除以該MER的該大小;及 決定該第一塊的一左上取樣的一y座標的一值加上該第一塊的一高度除以該MER的該大小是否大於該左上取樣的該y座標的該值除以該MER的該大小;及 回應於決定該第一塊的該左上取樣的x座標的該值加上該第一塊的一寬度除以該MER的該大小大於該左上取樣的該x座標的該值除以該MER的該大小,並且回應於決定該第一塊的該左上取樣的該y座標的該值加上該第一塊的該高度除以該MER的該大小大於該左上取樣的該y座標的該值除以該MER的該大小而將該第一塊的該運動資訊添加到該HMVP的表。
  7. 根據請求項1之方法,其中回應於決定該第一塊位於該MER的該右下角而將該第一塊的該運動資訊添加到該HMVP的表包括決定以下條件是否為真: floor(xCb / merSize) < floor (xCb + cbWidth) / merSize 且 floor(yCb / merSize) < floor(yCb + cbHeight) / merSize,其中 xCb表示該第一塊的一左上取樣的一x座標, yCb表示該第一塊的該左上取樣的y座標, cbWidth表示該第一塊的一寬度 cbHeight表示該第一塊的一高度, merSize表示MER)的一大小, <表示小於運算,以及 floor()表示一下限值運算。
  8. 根據請求項1之方法,還包括: 輸出包括該第一塊和該第二塊的經解碼版本的經解碼視訊資料。
  9. 根據請求項1之方法,其中作為視訊編碼程序的部分來執行該解碼方法,該方法還包括: 儲存包括該第一塊和該第二塊的經解碼版本的一或多個經解碼圖片;及 使用該一或多個所儲存的經解碼圖片來編碼該視訊資料的其它圖片的其它塊。
  10. 一種用於解碼視訊資料的設備,該設備包括: 一記憶體,其被配置為儲存視訊資料;及 一或多個處理器,其在電路中實施並且被配置為進行以下操作: 儲存基於歷史的運動向量預測因數(HMVP)的一表; 決定該視訊資料的一第一塊的運動資訊; 回應於決定該第一塊位於一運動估計區域(MER)的一右下角而將該第一塊的該運動資訊添加到該HMVP的表;及 使用該HMVP的該表來解碼該視訊資料的一第二塊。
  11. 根據請求項10之設備,其中為了使用該HMVP的表來解碼該視訊資料的該第二塊,該一或多個處理器還被配置為: 針對該第二塊,產生運動資訊的一候選清單,其中該候選列表包括來自該HMVP的表的一候選; 從該運動向量的候選列表中選擇一候選;及 使用被選擇的候選來解碼該視訊資料的該第二塊。
  12. 根據請求項10之設備,其中該MER是一第一MER,並且其中該第二塊屬於一第二MER。
  13. 根據請求項10之設備,其中為了回應於決定該第一塊位於該MER的該右下角而將該第一塊的該運動資訊添加到該HMVP的表,該一或多個處理器還被配置為進行以下操作: 決定該第一塊的一左上取樣的一x座標的一值加上該第一塊的一寬度除以該MER的一大小是否大於該左上取樣的該x座標的該值除以該MER的該大小;及 回應於決定該第一塊的該左上取樣的一x座標的該值加上該第一塊的一寬度除以該MER的該大小大於該左上取樣的該x座標的該值除以該MER的該大小而將該第一塊的該運動資訊添加到該HMVP的表。
  14. 根據請求項10之設備,其中為了回應於決定該第一塊位於該MER的該右下角而將該第一塊的該運動資訊添加到該HMVP的表,該一或多個處理器還被配置為進行以下操作: 決定該第一塊的一左上取樣的y座標的值加上該第一塊的高度除以該MER的大小是否大於該左上取樣的該y座標的該值除以該MER的該大小;及 回應於決定該第一塊的該左上取樣的該y座標的該值加上該第一塊的該高度除以該MER的該大小大於該左上取樣的該y座標的該值除以該MER的該大小而將該第一塊的該運動資訊添加到該HMVP的表。
  15. 根據請求項10之設備,其中為了回應於決定該第一塊位於該MER的該右下角而將該第一塊的該運動資訊添加到該HMVP的表,該一或多個處理器還被配置為進行以下操作: 決定該第一塊的一左上取樣的一x座標的一值加上該第一塊的一寬度除以該MER的一大小是否大於該左上取樣的該x座標的該值除以該MER的該大小; 決定該第一塊的一左上取樣的一y座標的一值加上該第一塊的一高度除以該MER的該大小是否大於該左上取樣的該y座標的該值除以該MER的該大小;及 回應於決定該第一塊的該左上取樣的一x座標的該值加上該第一塊的一寬度除以該MER的該大小大於該左上取樣的該x座標的該值除以該MER的該大小,並且回應於決定該第一塊的該左上取樣的該y座標的該值加上該第一塊的該高度除以該MER的該大小大於該左上取樣的該y座標的該值除以該MER的該大小而將該第一塊的該運動資訊添加到該HMVP的表。
  16. 根據請求項10之設備,其中為了回應於決定該第一塊位於該MER的該右下角而將該第一塊的該運動資訊添加到該HMVP的表,該一或多個處理器還被配置為決定以下條件是否為真: floor(xCb / merSize) < floor (xCb + cbWidth) / merSize 且 floor(yCb / merSize) < floor(yCb + cbHeight) / merSize,其中 xCb表示該第一塊的一左上取樣的一x座標, yCb表示該第一塊的該左上取樣的一y座標, cbWidth表示該第一塊的一寬度 cbHeight表示該第一塊的一高度, merSize表示該MER的一大小, <表示小於運算,以及 floor()表示下限值運算。
  17. 根據請求項10之設備,其中該一或多個處理器還被配置為進行以下操作: 輸出包括該第一塊和該第二塊的經解碼版本的經解碼視訊資料。
  18. 根據請求項10之設備,其中該設備包括一視訊編碼器,並且其中該一或多個處理器還被配置為進行以下操作: 儲存包括該第一塊和該第二塊的經解碼版本的一或多個經解碼圖片;及 使用一或多個所儲存的經解碼圖片來編碼該視訊資料的其它圖片的其它塊。
  19. 根據請求項10之設備,其中該設備包括一無線通訊設備,還包括被配置為接收經編碼視訊資料的一接收器。
  20. 根據請求項19之設備,其中該無線通訊設備包括一電話手持機,並且其中該接收器被配置為根據一無線通訊標準解調包括該經編碼視訊資料的一信號。
  21. 根據請求項10之設備,還包括: 一顯示器,其被配置為顯示經解碼視訊資料。
  22. 根據請求項10之設備,其中該設備包括一攝像機、一電腦、一行動設備、一廣播接收器設備或一機上盒中的一或多個。
  23. 根據請求項10之設備,其中該設備包括一無線通訊設備,還包括被配置為傳送經編碼視訊資料的一發射器。
  24. 根據請求項23之設備,其中該無線通訊設備包括一電話手持機,並且其中該發射器被配置為根據一無線通訊標準調制包括該經編碼視訊資料的一信號。
  25. 根據請求項10之設備,還包括: 一攝像機,其被配置為獲取該視訊資料。
  26. 一種儲存指令的電腦可讀取儲存媒體,該等指令在由一或多個處理器執行時使該一或多個處理器進行以下操作: 儲存基於歷史的運動向量預測因數(HMVP)的一表; 決定該視訊資料的一第一塊的運動資訊; 回應於決定該第一塊位於一運動估計區域(MER)的一右下角而將該第一塊的該運動資訊添加到該HMVP的表;及 使用該HMVP的表來解碼該視訊資料的一第二塊。
  27. 根據請求項26之電腦可讀取儲存媒體,其中為了使用該HMVP的表來解碼該視訊資料的該第二塊,該等指令使該一或多個處理器進行以下操作: 針對該第二塊,產生運動資訊的一候選清單,其中該候選列表包括來自該HMVP的表的一候選; 從該運動向量的候選列表中選擇一候選;及 使用被選擇的候選來解碼視訊資料的該第二塊。
  28. 根據請求項26之電腦可讀取儲存媒體,其中該MER是一第一MER,並且其中該第二塊屬於一第二MER。
  29. 根據請求項26之電腦可讀取儲存媒體,其中為了回應於決定該第一塊位於該MER的該右下角而將該第一塊的該運動資訊添加到該HMVP的表,該等指令使該一或多個處理器進行以下操作: 決定該第一塊的一左上取樣的一x座標的一值加上該第一塊的一寬度除以該MER的一大小是否大於該左上取樣的該x座標的該值除以該MER的該大小; 決定該第一塊的一左上取樣的一y座標的一值加上該第一塊的一高度除以該MER的該大小是否大於該左上取樣的該y座標的該值除以該MER的該大小;及 回應於決定該第一塊的該左上取樣的一x座標的該值加上該第一塊的一 寬度除以該MER的該大小大於該左上取樣的該x座標的該值除以該MER的該大小,並且回應於決定該第一塊的該左上取樣的該y座標的該值加上該第一塊的該高度除以該MER的該大小大於該左上取樣的該y座標的該值除以該MER的該大小而將該第一塊的該運動資訊添加到該HMVP的表。
  30. 根據請求項26之電腦可讀取儲存媒體,其中為了回應於決定該第一塊位於該MER的該右下角而將該第一塊的該運動資訊添加到該HMVP的表,該等指令使該一或多個處理器決定以下條件是否為真: floor(xCb / merSize) < floor (xCb + cbWidth) / merSize 且 floor(yCb / merSize) < floor(yCb + cbHeight) / merSize,其中 xCb表示該第一塊的一左上取樣的一x座標, yCb表示該第一塊的該左上取樣的一y座標, cbWidth表示該第一塊的一寬度 cbHeight表示該第一塊的一高度, merSize表示該MER的一大小, <表示小於運算,以及 floor()表示一下限值運算。
TW109146822A 2019-12-31 2020-12-30 用於合併估計區域的基於歷史的運動向量預測約束 TW202133619A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962955977P 2019-12-31 2019-12-31
US62/955,977 2019-12-31
US17/136,983 2020-12-29
US17/136,983 US11722692B2 (en) 2019-12-31 2020-12-29 History-based motion vector predictor constraint for merge estimation region

Publications (1)

Publication Number Publication Date
TW202133619A true TW202133619A (zh) 2021-09-01

Family

ID=76546766

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109146822A TW202133619A (zh) 2019-12-31 2020-12-30 用於合併估計區域的基於歷史的運動向量預測約束

Country Status (10)

Country Link
US (1) US11722692B2 (zh)
EP (1) EP4085629A1 (zh)
JP (1) JP2023508468A (zh)
KR (1) KR20220122997A (zh)
CN (1) CN115176472A (zh)
CL (1) CL2022001771A1 (zh)
CO (1) CO2022008965A2 (zh)
IL (1) IL293448A (zh)
TW (1) TW202133619A (zh)
WO (1) WO2021138428A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021045071A1 (ja) * 2019-09-03 2021-03-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
WO2023090924A1 (ko) * 2021-11-18 2023-05-25 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11606575B2 (en) * 2018-07-10 2023-03-14 Qualcomm Incorporated Multiple history based non-adjacent MVPs for wavefront processing of video coding
US10924731B2 (en) * 2018-08-28 2021-02-16 Tencent America LLC Complexity constraints on merge candidates list construction
US11184635B2 (en) * 2018-08-31 2021-11-23 Tencent America LLC Method and apparatus for video coding with motion vector constraints
WO2020067835A1 (ko) * 2018-09-28 2020-04-02 엘지전자 주식회사 어파인 예측을 이용하여 비디오 신호를 처리하기 위한 방법 및 장치
CN115514958A (zh) * 2018-11-02 2022-12-23 抖音视界有限公司 用于基于历史的运动矢量预测的表维护
US11012697B2 (en) * 2018-12-07 2021-05-18 Qualcomm Incorporated Shared candidate list and parallel candidate list derivation for video coding

Also Published As

Publication number Publication date
EP4085629A1 (en) 2022-11-09
US11722692B2 (en) 2023-08-08
WO2021138428A1 (en) 2021-07-08
CL2022001771A1 (es) 2023-02-10
CO2022008965A2 (es) 2022-07-19
KR20220122997A (ko) 2022-09-05
JP2023508468A (ja) 2023-03-02
IL293448A (en) 2022-07-01
US20210203982A1 (en) 2021-07-01
CN115176472A (zh) 2022-10-11

Similar Documents

Publication Publication Date Title
US11095916B2 (en) Wraparound motion compensation in video coding
TW202025752A (zh) 用於仿射模式之以歷史為基礎之運動向量預測
TW202101989A (zh) 用於視訊寫碼之參考圖像重採樣及框間寫碼工具
US11539982B2 (en) Merge estimation region for multi-type-tree block structure
TW202101984A (zh) 用於視訊寫碼之合併模式寫碼
TW202115977A (zh) 用於視訊編碼的跨分量自我調整迴路濾波
TW202041024A (zh) 用於視訊寫碼中具有運動向量差之合併模式之信令傳輸
TW202038611A (zh) 用於視訊寫碼之三角運動資訊
JP7423647B2 (ja) 異なるクロマフォーマットを使用した三角予測ユニットモードでのビデオコーディング
US20190320181A1 (en) Generation of motion vector predictors from multiple neighboring blocks in video coding
US10897617B2 (en) Rounding of motion vectors for adaptive motion vector difference resolution and increased motion vector storage precision in video coding
TW202123705A (zh) 低頻不可分離變換(lfnst)訊號傳遞
CN112514386A (zh) 网格编解码量化系数编解码
US20210203985A1 (en) Block-based delta pulse code modulation for video coding
TW202126040A (zh) 用於視訊編碼的簡化的調色板預測器更新
US20210092406A1 (en) Inter-layer reference picture signaling in video coding
TW202139696A (zh) 在進行視訊解碼時對區塊的色度變換跳過和聯合色度解碼賦能
US11722692B2 (en) History-based motion vector predictor constraint for merge estimation region
TW202131679A (zh) 在視訊編碼中利用縮減的歸零項的低頻不可分變換(lfnst)
TW202133621A (zh) 支援有損解碼和無損解碼兩者的殘差解碼
TW202133615A (zh) 基於色度變換跳過的用於色度的lfnst信號傳遞
TW202131696A (zh) 用於視訊編碼中的一般變換係數的基於方程的萊斯參數推導
TW202126041A (zh) 用於解碼器側運動精緻化及雙向光學流之參考圖像限制
JP2022524213A (ja) ビデオコーディングについての最後の位置コーディングに対するコンテキスト導出
US20210112279A1 (en) Signaling coding scheme for residual values in transform skip for video coding