TWI741239B - 視頻資料的幀間預測方法和裝置 - Google Patents

視頻資料的幀間預測方法和裝置 Download PDF

Info

Publication number
TWI741239B
TWI741239B TW107144405A TW107144405A TWI741239B TW I741239 B TWI741239 B TW I741239B TW 107144405 A TW107144405 A TW 107144405A TW 107144405 A TW107144405 A TW 107144405A TW I741239 B TWI741239 B TW I741239B
Authority
TW
Taiwan
Prior art keywords
motion information
image block
candidate motion
positions
candidate
Prior art date
Application number
TW107144405A
Other languages
English (en)
Other versions
TW201929545A (zh
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 TW201929545A publication Critical patent/TW201929545A/zh
Application granted granted Critical
Publication of TWI741239B publication Critical patent/TWI741239B/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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
    • 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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Abstract

本發明提供了一種視頻資料的幀間預測方法和裝置,能夠減少視頻傳輸的位元開銷,該方法包括:確定當前圖像塊的候選運動資訊清單,該候選運動資訊清單包括至少一組第一候選運動資訊、至少一組第二候選運動資訊,以及用於索引第一候選運動資訊和第二候選運動資訊的多個索引資訊;從候選運動資訊清單中確定目標運動資訊;根據該目標運動資訊,對該當前圖像塊執行幀間預測。

Description

視頻資料的幀間預測方法和裝置
本發明係指一種視頻編解碼領域,尤指一種視頻資料的幀間預測方法、裝置以及視訊轉碼器和視頻解碼器。
隨著光電採集技術的發展及不斷增長的高清數位視訊需求,視頻資料量越來越大,有限異構的傳輸頻寬、多樣化的視頻應用不斷地對視頻編碼效率提出了更高的需求,高效率視頻編碼(high efficient video coding,HEVC)標準的制定工作因需啟動。
視頻編碼壓縮的基本原理是利用空域、時域和碼字之間的相關性,盡可能去除冗餘。目前流行做法是採用基於塊的混合視頻編碼框架,通過預測(包括幀內預測和幀間預測)、變換、量化、熵編碼等步驟實現視頻編碼壓縮。這種編碼框架,顯示了很強的生命力,HEVC也仍沿用這種基於塊(tile)的混合視頻編碼框架。在各種視頻編/解碼方案中,運動估計/運動補償是一種影響編/解碼性能的關鍵技術。
由於視頻中鄰近幀中的景物存在著一定的相關性,因此,可將圖像分成若干塊或巨集塊,搜索出每個塊或宏塊在鄰近幀中的位置,並得出兩者之間的空間位置的相對偏移量,得到的相對偏移量即運動向量(motion vector,MV),得到運動向量的過程被稱為運動估計(motion estimation,ME),通過運動 估計可以去除幀間冗餘,減少視頻傳輸的位元開銷。
現有的一種運動估計方法是按照預設策略從當前編碼塊的相鄰編碼塊中選擇一個編碼塊,並利用該編碼塊的運動資訊推導出當前編碼塊的運動資訊,該方法無需編碼端向解碼端發送指示相鄰編碼塊的索引資訊,減少了視頻傳輸的位元開銷。然而,若相鄰編碼塊的上述運動資訊不可用,則編碼端需要重新選擇運動估計方法,並且向解碼端發送指示資訊指示重新選擇的運動估計方法,因此增加了視頻傳輸的位元開銷。
本發明提供了一種視頻資料的幀間預測方法、裝置以及視訊轉碼器、視頻解碼器,能夠減少視頻傳輸的位元開銷,以提高編解碼效率。
第一方面,提供了一種視頻資料的幀間預測方法,包括:確定當前圖像塊的候選運動資訊清單,所述候選運動資訊清單包括至少一組第一候選運動資訊、至少一組第二候選運動資訊,以及用於索引第一候選運動資訊和第二候選運動資訊的多個索引資訊,多個索引資訊與多組候選運動資訊一一對應,其中,第一候選運動資訊為基於當前圖像塊的第一相鄰圖像塊的預設位置的運動資訊和第一相鄰圖像塊的運動模型確定的運動資訊,第二候選運動資訊為與當前圖像塊的至少兩個預設位置分別相鄰的至少兩個圖元位置的運動資訊的集合,所述至少兩個圖元位置位於當前圖像塊的至少一個第二相鄰圖像塊;從候選運動資訊清單中確定目標運動資訊,所述目標運動資訊為至少一組第一候選運動資訊和所述至少一組第二候選運動資訊中滿足篩選規則的一組運動資訊;根據所述目標運動資訊,對所述當前圖像塊執行幀間預測。
應當理解的是,這裡的第一相鄰圖像塊和第二相鄰圖像塊僅僅是用於區分採用不同方式獲取候選運動資訊的過程中,被遍歷的當前圖像塊的空域 鄰近塊和/或當前圖像塊的時域鄰近塊;第一相鄰圖像塊可以包括當前圖像塊的空域鄰近塊和/或當前圖像塊的時域鄰近塊;第二相鄰圖像塊可以包括當前圖像塊的空域鄰近塊和/或當前圖像塊的時域鄰近塊。
需要說明的是,第一相鄰圖像塊的預設位置可以理解為所述第一相鄰圖像塊的角點位置,例如所述第一相鄰圖像塊的左上頂點和右上頂點,或者所述第一相鄰圖像塊的左上頂點和左下頂點,或者,所述第一相鄰圖像塊的左上頂點、左下頂點和右上頂點;所述當前圖像塊的至少兩個預設位置可以理解為所述當前圖像塊的至少兩個角點位置,亦可稱為當前圖像塊的至少兩個控制點,例如所述當前圖像塊的左上頂點和右上頂點,或者所述當前圖像塊的左上頂點和左下頂點,或者,所述當前圖像塊的左上頂點、左下頂點和右上頂點。
在一種示例下,所述目標運動資訊為滿足篩選規則的一組運動資訊,可以理解為從所述候選運動資訊清單中確定一組第一候選運動資訊或者一組第二候選運動資訊,其中,所述目標運動資訊編碼所述當前編碼塊的編碼率失真代價最小。
根據本實施例提供的幀間預測方法,編碼端或解碼端構建包括兩種候選運動資訊的候選運動資訊清單,該兩種候選運動資訊具有統一編排的索引資訊,若兩種候選運動資訊中的一種不適用於當前圖像塊,則編碼端可以從候選運動資訊清單包括的另一種候選運動資訊中選擇目標運動資訊,並將該目標運動資訊的索引資訊通過碼流發送給解碼端,由於候選運動資訊清單中的候選運動資訊具有唯一的索引資訊,因此,編碼端無需在碼流中傳遞指示編碼端使用的運動估計方法的指示資訊,從而減少了視頻傳輸的位元開銷。
可選地,第一候選運動資訊的索引資訊的位元數小於或等於第二候選運動資訊的索引資訊的位元數。
第一候選運動資訊為基於運動模型的運動資訊,根據第一候選運動 資訊進行編解碼的效率高於根據第二候選運動資訊進行編解碼的效率,因此,第一候選運動資訊為目標運動資訊的概率較大,因此,可以將第一候選運動資訊的索引資訊設置為位元數較小的索引資訊,有利於減小視頻傳輸的位元開銷。
可選地,多個索引資訊中第一索引資訊的位元數小於多個索引資訊中第二索引資訊的位元數,第一索引資訊對應先加入候選運動資訊清單的運動資訊,第二索引資訊對應後加入候選運動資訊清單的運動資訊;所述確定當前圖像塊的候選運動資訊清單,包括:先將第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單。
第一候選運動資訊為基於運動模型的運動資訊,根據第一候選運動資訊進行編解碼的效率高於根據第二候選運動資訊進行編解碼的效率,因此,第一候選運動資訊為目標運動資訊的概率較大,因此,可以將第一候選運動資訊的索引資訊設置為位元數較小的索引資訊,有利於減小視頻傳輸的位元開銷。
可選地,所述確定當前圖像塊的候選運動資訊清單,包括:當第一相鄰圖像塊為採用平動運動模型的相鄰圖像塊時,將第一相鄰圖像塊的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單;和/或,當第一相鄰圖像塊為採用非平動運動模型的圖像塊時,根據第一相鄰圖像塊的至少兩個預設位置的運動資訊以及第一相鄰圖像塊的運動模型推導出當前圖像塊對應的至少兩個預設位置的運動資訊,並將當前圖像塊對應的至少兩個預設位置的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單。
應當理解的是,非平動運動模型可以包括但不限於各種仿射運動模型,例如4參數的仿射運動模型、6參數的仿射運動模型或8參數的仿射運動模型。
若第一相鄰圖像塊的運動模型為平動運動模型,可以將其作為第一候選運動資訊直接加入候選運動資訊清單,從而提高了圖像效率;若第一相鄰圖像塊的運動模型為非平動運動模型,則需要根據該非平動運動模型對應的公 式以及第一相鄰圖像塊的預設位置的運動資訊生成第一候選運動資訊。
可選地,第一相鄰圖像塊包括採用平動運動模型的第一相鄰圖像塊和採用非平動運動模型的第一相鄰圖像塊,多個索引資訊中第一索引資訊的位元數小於多個索引資訊中第二索引資訊的位元數,第一索引資訊對應先加入候選運動資訊清單的運動資訊,第二索引資訊對應後加入候選運動資訊清單的運動資訊;
所述確定當前圖像塊的候選運動資訊清單,包括:
當採用非平動運動模型的第一相鄰圖像塊的數量大於或等於數量閾值時,基於採用非平動運動模型的第一相鄰圖像塊的至少兩個預設位置的運動資訊以及採用非平動模型的第一相鄰圖像塊的運動模型推導出當前圖像塊對應的至少兩個預設位置的運動資訊,並將當前圖像塊對應的至少兩個預設位置的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單。
若採用非平動運動模型的第一相鄰圖像塊的數量大於或等於數量閾值,則說明當前圖像塊為採用非平動運動模型的圖像塊的概率較大,因此,可以先將基於採用非平動運動模型的第一相鄰圖像塊推導出的第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單,由於先加入候選運動資訊清單的運動資訊的索引資訊的位元數較小,且目標運動資訊為先加入候選運動資訊清單的運動資訊的概率較大,因此,本實施例有利於減少視頻傳輸的位元開銷。
可選地,所述確定當前圖像塊的候選運動資訊清單,還包括:當候選運動資訊清單的長度小於長度閾值,且第一相鄰圖像塊還包括採用平動運動模型的第一相鄰圖像塊時,進一步將採用平動運動模型的第一相鄰圖像塊的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單,若候選運動資訊清 單的長度仍然小於長度閾值,再將零運動資訊加入所述候選運動資訊清單。
應當理解的是,這裡的候選運動資訊清單的長度,可以理解為當前已加入候選運動資訊清單中的候選運動資訊的數量;這裡的長度閾值可以理解為候選運動資訊清單的預設的最大候選運動資訊數量。
若第二候選運動資訊加入候選運動資訊清單之後,候選運動資訊清單長度小於長度閾值,並且第一相鄰圖像塊還包括採用平動運動模型的第一相鄰圖像塊,則將採用平動運動模型的第一相鄰圖像塊的運動資訊作為第一候選運動資訊加入候選運動資訊清單,若候選運動資訊清單的長度仍然小於長度閾值,再將零運動資訊加入候選運動資訊清單。
可選地,當採用非平動運動模型的第一相鄰圖像塊的數量大於或等於數量閾值時,第三候選運動資訊的索引資訊的位元數小於第二候選運動資訊的位元數,第三候選運動資訊為基於採用非平動運動模型的第一相鄰圖像塊的至少兩個預設位置的運動資訊以及採用非平動運動模型的第一相鄰圖像塊的運動模型推導出的一組第一候選運動資訊。
若採用非平動運動模型的第一相鄰圖像塊的數量大於或等於數量閾值,則說明當前圖像塊為採用非平動運動模型的圖像塊的概率較大,因此,可以將基於非平動運動模型的第一相鄰圖像塊推導出的第一候選運動資訊(即,第三候選運動資訊)的索引資訊設置為位元數較小的索引資訊,由於目標運動資訊為第三候選運動資訊的概率較大,因此,本實施例有利於減少視頻傳輸的位元開銷。
可選地,當候選運動資訊清單的長度小於長度閾值,且第一相鄰圖像塊還包括採用平動運動模型的第一相鄰圖像塊時,候選運動資訊清單還包括採用平動運動模型的第一相鄰圖像塊的運動資訊,所述採用平動運動模型的第一相鄰圖像塊的運動資訊為一組第一候選運動資訊,所述採用平動運動模型的 第一相鄰圖像塊的運動資訊的索引資訊的位元數大於或等於第二候選運動資訊的索引資訊的位元數。
若第二候選運動資訊加入候選運動資訊清單之後,候選運動資訊清單長度小於長度閾值,並且第一相鄰圖像塊還包括採用平動運動模型的第一相鄰圖像塊,則將採用平動運動模型的第一相鄰圖像塊的運動資訊作為第一候選運動資訊加入候選運動資訊清單,並將該第一候選運動資訊的索引資訊設置為位元數較大的索引資訊,若候選運動資訊清單的長度仍然小於長度閾值,再將零運動資訊加入候選運動資訊清單。
可選地,第一相鄰圖像塊包括採用平動運動模型的第一相鄰圖像塊和採用非平動運動模型的第一相鄰圖像塊,多個索引資訊中第一索引資訊的位元數小於多個索引資訊中第二索引資訊的位元數,第一索引資訊對應先加入候選運動資訊清單的運動資訊,第二索引資訊對應後加入候選運動資訊清單的運動資訊;所述確定當前圖像塊的候選運動資訊清單,包括:當採用非平動運動模型的第一相鄰圖像塊的數量小於或等於數量閾值時,先將採用平動運動模型的第一相鄰圖像塊的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單。
若採用非平動運動模型的第一相鄰圖像塊的數量小於或等於數量閾值,則說明當前圖像塊為採用非平動運動模型的圖像塊的概率較大,因此,可以先將基於採用平動運動模型的第一相鄰圖像塊的運動資訊作為第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單,由於先加入候選運動資訊清單的運動資訊的索引資訊的位元數較小,且目標運動資訊為先加入候選運動資訊清單的運動資訊的概率較大,因此,本實施例有 利於減少視頻傳輸的位元數。
可選地,所述確定當前圖像塊的候選運動資訊清單,還包括:當候選運動資訊清單的長度小於長度閾值,且第一相鄰圖像塊還包括非採用平動運動模型的第一相鄰圖像塊時,進一步基於採用非平動運動模型的第一相鄰圖像塊的至少兩個預設位置的運動資訊以及採用非平動模型的第一相鄰圖像塊的運動模型推導出當前圖像塊的至少兩個預設位置的運動資訊,將當前圖像塊的至少兩個預設位置的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單,若候選運動資訊清單的長度仍然小於長度閾值,再將零運動資訊加入所述候選運動資訊清單。
若第二候選運動資訊加入候選運動資訊清單之後,候選運動資訊清單長度小於長度閾值,並且第一相鄰圖像塊還包括採用非平動運動模型的第一相鄰圖像塊,則將基於採用非平動運動模型的第一相鄰圖像塊的運動資訊推導出的第一候選運動資訊加入候選運動資訊清單,若候選運動資訊清單的長度仍然小於長度閾值,再將零運動資訊加入候選運動資訊清單。從而可以擴大目標運動資訊的選擇範圍。
可選地,當採用非平動運動模型的第一相鄰圖像塊的數量小於或等於數量閾值時,採用平動運動模型的第一相鄰圖像塊的運動資訊為一組第一候選運動資訊,且所述採用平動運動模型的第一相鄰圖像塊的運動資訊的索引資訊的位元數小於第二候選運動資訊的位元數。
若採用非平動運動模型的第一相鄰圖像塊的數量小於或等於數量閾值,則說明當前圖像塊為採用平動運動模型的圖像塊的概率較大,因此,可以將採用平動運動模型的第一相鄰圖像塊的運動資訊作為第一候選運動資訊,並將該第一候選運動資訊的索引資訊設置為位元數較小的索引資訊,由於目標運動資訊為該第一候選運動資訊的概率較大,因此,本實施例有利於減少視頻傳 輸的位元開銷。
可選地,當候選運動資訊清單的長度小於長度閾值,且第一相鄰圖像塊還包括採用非平動運動模型的第一相鄰圖像塊時,候選運動資訊清單還包括第四候選運動資訊,第四候選運動資訊為基於採用非平動運動模型的第一相鄰圖像塊的至少兩個預設位置的運動資訊以及採用非平動運動模型的第一相鄰圖像塊的運動模型推導出的一組第一候選運動資訊,第四候選運動資訊的索引資訊的位元數大於或等於第二候選運動資訊的索引資訊的位元數。
若第二候選運動資訊加入候選運動資訊清單之後,候選運動資訊清單長度小於長度閾值,並且第一相鄰圖像塊還包括採用非平動運動模型的第一相鄰圖像塊,則將基於採用非平動運動模型的第一相鄰圖像塊的運動資訊推導出的運動資訊作為第一候選運動資訊加入候選運動資訊清單,並將該第一候選運動資訊的索引資訊設置為位元數較大的索引資訊,若候選運動資訊清單的長度仍然小於長度閾值,再將零運動資訊加入候選運動資訊清單。從而可以擴大目標運動資訊的選擇範圍。
可選地,第一候選運動資訊和第二候選運動資訊均為當前圖像塊的第一組位置的運動資訊,當前圖像塊中至少兩個預設位置為第二組位置,所述確定當前圖像塊的候選運動資訊清單,包括:當第二組位置與所述第一組位置相異時,根據位置變換公式以及第二位置對應的運動資訊推導出第二候選運動資訊。
當第一候選運動資訊對應的位置的數量和第二候選運動資訊對應的位置的數量相同時,根據本實施例得到的候選運動資訊清單中的運動資訊均為相同位置的運動資訊,從而減小了運動估計的複雜度。
可選地,第一候選運動資訊為當前圖像塊的第一組位置的運動資訊,第二候選運動資訊為當前圖像塊的第三組位置的運動資訊,所述方法還包 括:當第一組位置與第三組位置相異時,根據位置變換公式以及第二候選運動資訊推導出第五候選運動資訊,所述第五候選運動資訊對應的位置與第一組位置相同。
當第一候選運動資訊對應的位置的數量和第二候選運動資訊對應的位置的數量相同時,根據本實施得到的候選運動資訊清單中的運動資訊均為相同位置的運動資訊,從而減小了運動估計的複雜度。
第二方面,本發明提供了一種視頻資料的幀間預測裝置,包括用於實施第一方面的任意一種方法的若干個功能單元。舉例來說,視頻資料的幀間預測裝置可以包括:
候選運動資訊清單確定單元,用於確定當前圖像塊的候選運動資訊清單,所述候選運動資訊清單包括至少一組第一候選運動資訊、至少一組第二候選運動資訊,以及用於索引所述第一候選運動資訊和所述第二候選運動資訊的多個索引資訊,所述第一候選運動資訊為基於所述當前圖像塊的第一相鄰圖像塊的預設位置的運動資訊和所述第一相鄰圖像塊的運動模型確定的運動資訊,所述第二候選運動資訊為與所述當前圖像塊的至少兩個預設位置分別相鄰的至少兩個圖元位置的運動資訊的集合,所述至少兩個圖元位置位於所述當前圖像塊的至少一個第二相鄰圖像塊;
幀間預測處理單元,用於從所述候選運動資訊清單中確定目標運動資訊,所述目標運動資訊為所述至少一組第一候選運動資訊和所述至少一組第二候選運動資訊中滿足篩選規則的一組運動資訊;所述幀間預測處理單元還用於根據所述目標運動資訊,對所述當前圖像塊執行幀間預測。
上述幀間預測裝置例如可以應用在視頻編碼裝置(視訊轉碼器)或視頻解碼裝置(視頻解碼器)中。
協力廠商面,本發明提供了一種視訊轉碼器,該視訊轉碼器用於編 碼圖像塊,該視訊轉碼器包括:第二方面所述的幀間預測裝置,該幀間預測裝置用於基於目標運動資訊預測待編碼圖像塊的預測塊,所述目標運動資訊是候選運動資訊清單中滿足篩選規則的一組運動資訊;比如,所述目標運動資訊編碼所述當前圖像塊的編碼率失真代價最小;熵編碼器,用於將所述目標運動資訊的索引資訊編入碼流,所述目標運動資訊的索引資訊用於從所述候選運動資訊清單中確定所述目標運動資訊;重建器,用於根據所述預測塊重建所述待編碼圖像塊。
第四方面,本發明提供了一種視頻解碼器,所述視頻解碼器用於從碼流中解碼出圖像塊,所述視頻解碼器包括:熵解碼器,用於從碼流中解碼出目標運動資訊的索引資訊;第二方面所述的幀間預測裝置,所述幀間預測裝置用於基於目標運動資訊預測待解碼圖像塊的預測塊,所述目標運動資訊是候選運動資訊清單中所述解碼出的索引資訊對應的一組運動資訊;重建器,用於根據所述預測塊重建所述待解碼圖像塊。
第五方面,本發明提供一種用於編碼視頻資料的設備,所述設備包括:記憶體,用於存儲視頻資料,所述視頻資料包括一個或多個圖像塊;視訊轉碼器,用於確定當前圖像塊的候選運動資訊清單,所述候選運動資訊清單包括至少一組第一候選運動資訊、至少一組第二候選運動資訊,以及用於索引所述第一候選運動資訊和所述第二候選運動資訊的多個索引資訊,所述第一候選運動資訊為基於所述當前圖像塊的第一相鄰圖像塊的預設位置的運動資訊和所述第一相鄰圖像塊的運動模型確定的運動資訊,所述第二候 選運動資訊為與所述當前圖像塊的至少兩個預設位置分別相鄰的至少兩個圖元位置的運動資訊的集合,所述至少兩個圖元位置位於所述當前圖像塊的至少一個第二相鄰圖像塊;從所述候選運動資訊清單中確定目標運動資訊,所述目標運動資訊為所述至少一組第一候選運動資訊和所述至少一組第二候選運動資訊中滿足篩選規則的一組運動資訊;根據所述目標運動資訊,對所述當前圖像塊執行幀間預測;發送包括所述目標運動資訊的索引資訊的碼流。
第六方面,本發明提供一種用於解碼視頻資料的設備,所述設備包括:記憶體,用於存儲碼流形式的視頻資料;視頻解碼器,用於從碼流中解碼出索引資訊,該索引資訊用於確定目標運動資訊;確定當前圖像塊的候選運動資訊清單,所述候選運動資訊清單包括至少一組第一候選運動資訊、至少一組第二候選運動資訊,以及用於索引所述第一候選運動資訊和所述第二候選運動資訊的多個索引資訊,所述第一候選運動資訊為基於所述當前圖像塊的第一相鄰圖像塊的預設位置的運動資訊和所述第一相鄰圖像塊的運動模型確定的運動資訊,所述第二候選運動資訊為與所述當前圖像塊的至少兩個預設位置分別相鄰的至少兩個圖元位置的運動資訊的集合,所述至少兩個圖元位置位於所述當前圖像塊的至少一個第二相鄰圖像塊;根據從碼流中解碼出的索引資訊從所述候選運動資訊清單中確定目標運動資訊;根據所述目標運動資訊,對所述當前圖像塊執行幀間預測。
第七方面,本發明提供了一種編碼設備,包括:相互耦合的非易失性記憶體和處理器,所述處理器調用存儲在所述記憶體中的程式碼以執行第一方面的任意一種方法的部分或全部步驟。
第八方面,本發明提供了一種解編碼設備,包括:相互耦合的非易失性記憶體和處理器,所述處理器調用存儲在所述記憶體中的程式碼以執行第 一方面的任意一種方法的部分或全部步驟。
第九方面,本發明提供一種電腦可讀存儲介質,所述電腦可讀存儲介質存儲了程式碼,其中,所述程式碼包括用於執行第一方面的任意一種方法的部分或全部步驟的指令。
第十方面,本發明實施例提供一種電腦程式產品,當所述電腦程式產品在電腦上運行時,使得所述電腦執行第一方面的任意一種方法的部分或全部步驟。
應當理解的是,本發明的第二至十方面的技術方案與本發明的第一方面的技術方案一致,各方面及對應的可行實施方式所取得的有益效果相似,不再贅述。
400:方法
S410、S420、S430:步驟
100:視訊轉碼器
200:視頻解碼器
10:源裝置
20:目的地裝置
30:鏈路
40:存儲裝置
42:網路實體
140:輸出介面
240:輸入介面
120:視頻源
220:顯示裝置
101:變換器
102:量化器
103:熵編碼器
203:熵解碼器
104、204:反量化器
105、205:反變換器
106、206:濾波器單元
107、207:經解碼圖像緩衝器
108、208:預測處理單元
109、209:幀內預測器
110、210:幀間預測器
111、211:求和器
1000:幀間預測裝置
1001:候選運動資訊清單確定單元
1002:幀間預測處理單元
1110:處理器
1150:匯流排
1130:記憶體
1131:資料
1133:作業系統
1135:應用程式
1170:顯示器
第1圖是一種適用於本發明的視頻編碼方法的示意性流程圖;第2圖是一種適用於本發明的視頻解碼方法的示意性流程圖;第3圖是本發明提供的一種根據基於運動模型的仿射變換融合模式進行預測的方法的示意圖;第4圖是本發明提供的一種幀間預測的方法的示意性流程圖;第5圖是本發明提供的一種構造基於組合控制點的運動資訊的方法的示意圖;第6圖是本發明提供的一種基於構建候選運動資訊清單的方法的是異性戀流程圖;第7圖是本發明提供的一種視頻編碼及解碼系統的示意性框圖;第8圖是本發明提供的一種視訊轉碼器的示意性框圖;第9圖是本發明提供的一種視頻解碼器的示意性框圖; 第10圖是本發明提供的一種視頻資料的幀間預測裝置的示意性框圖;第11圖是本發明提供的一種編碼設備或解碼設備的示意性框圖。
為了便於理解本發明,首先對本發明提供的技術方案中可能涉及的技術特徵進行描述。
第1圖示出了一種適用於本發明的視頻編碼方法的示意性流程圖。
該視頻編碼方法包括幀內預測(intra prediction)、幀間預測(inter prediction)、變換(transform)、量化(quantization)、熵編碼(entropy encode)、環內濾波(in-loop filtering)等環節。將圖像劃分為編碼塊之後進行幀內預測或者幀間預測,並且在得到殘差之後進行變換量化,最終進行熵編碼並輸出碼流。此處編碼塊為由圖元點組成的M*N大小的陣列(M可以等於N,也可以不等於N),並且已知各個圖元點位置的圖元值。第1圖中,P表示預測值,Dn表示殘差,uFn'表示重建值(濾波前),Dn'表示殘差。
幀內預測是指利用當前圖像內已重建區域內圖元點的圖元值對當前編碼塊內圖元點的圖元值進行預測。
幀間預測是在已重建的圖像中,為當前圖像中的當前編碼塊尋找匹配的參考塊,將參考塊中的圖元點的圖元值作為當前編碼塊中圖元點的圖元值的預測資訊或者預測值(以下不再區分資訊和值),此過程即運動估計,並傳輸當前編碼塊的運動資訊。
需要說明的是,當前編碼塊的運動資訊包括了預測方向的指示資訊(通常為前向預測、後向預測或者雙向預測),一個或兩個指向參考塊的運動向量,以及參考塊所在圖像的指示資訊(通常記為參考幀索引)。
前向預測是指當前編碼塊從前向參考圖像集合中選擇至少一個參考圖像獲取至少一個參考塊。後向預測是指當前編碼塊從後向參考圖像集合中選 擇至少一個參考圖像獲取至少一個參考塊。雙向預測是指從前向和後向參考圖像集合中各選擇至少一個參考圖像獲取至少一個參考塊。當使用雙向預測方法時,當前編碼塊會存在至少兩個參考塊,每個參考塊各自需要運動向量和參考幀索引進行指示,然後根據至少兩個參考塊內圖元點的圖元值確定當前塊內圖元點圖元值的預測值。
運動估計過程需要為當前編碼塊在參考圖像中搜索多個參考塊,最終使用哪一個或者哪幾個參考塊用作預測則使用率失真優化(rate-distortion optimization,RDO)或者其它方法確定。
利用幀內預測方法或者幀間預測方法得到預測資訊之後,根據當前編碼塊內圖元點的圖元值和對應的預測資訊可以得到殘差資訊,例如可以通過當前編碼塊的圖元值與參考塊的圖元值直接相減的方式得到殘差資訊,也可以是通過其它可能的方式得到殘差值資訊。然後利用離散餘弦變換(discrete cosine transformation,DCT)等方法對殘差資訊進行變換,再對變換後的殘差資訊進行量化,熵編碼等操作,最終得到碼流,以便解碼端對碼流進行解碼。在編碼端的處理中,還可以對預測信號和重建殘差信號進行濾波操作,進而得到重建信號,並將其作為後續編碼的參考信號。
解碼端對碼流的處理類似於編碼端對圖像進行編碼的逆過程,第2圖示出了適用於本發明的碼流解碼方法的示意性流程圖。
如第2圖所示,首先利用熵解碼,反量化等操作變換得到殘差資訊,解碼端首先通過解析碼流得到當前待解碼塊的預測模式。如果是幀內預測,則利用當前待解碼塊周圍已重建區域內圖元點的圖元值構建預測資訊。如果是幀間預測,則需要得到當前解碼塊的運動資訊,並使用該運動資訊在已重建的圖像中確定參考塊,將參考塊內圖元點的圖元值作為預測資訊。使用預測資訊(亦稱為預測塊)和殘差資訊(亦稱為殘差塊),經過濾波操作便可以得到當前待解
碼塊的重建資訊(亦稱為重建塊),從而進一步得到重建的部分圖像。
在一些可能的實現方式中,可以通過非平動運動模型預測得到當前編碼塊的運動資訊。
在非平動運動模型預測的一些實現管道中,在編解碼端使用相同的運動模型推導出當前編碼塊內每一個子運動補償單元的運動資訊,根據子運動補償單元的運動資訊進行運動補償,得到預測塊,從而提高預測效率。常用的運動模型有6參數仿射模型或者4參數仿射變換模型。
4參數的仿射變換模型如公式(1)所示:
Figure 107144405-A0305-02-0018-1
4參數仿射變換模型可以通過兩個點數點的運動向量及其相對於當前編碼塊左上頂點點數的座標來表示,將用於表示運動模型參數的點數點記為控制點。若採用左上頂點(0,0)和右上頂點(W,0)點數點作為控制點,則先確定當前編碼塊左上頂點和右上頂點控制點的運動向量(vx0,vy0)和(vx1,vy1),然後根據公式(2)推導得到當前編碼塊中每一個子運動補償單元的運動資訊,其中(x,y)為子運動補償單元相對於當前編碼塊左上頂點點數的座標,W為當前編碼塊的寬度。
Figure 107144405-A0305-02-0018-2
6參數的仿射變換模型如公式(3)所示:
Figure 107144405-A0305-02-0018-3
6參數仿射變換模型可以通過三個控制點(亦稱為預設位置)的運動向量及其相對於當前編碼塊左上頂點點數的座標來表示。若採用左上頂點(0, 0)、右上頂點(W,0)和左下頂點(0,H)點數點作為控制點,則先確定當前編碼塊左上頂點、右上頂點和左下頂點控制點的運動向量(vx0,vy0)、(vx1,vy1)和(vx2,vy2),然後根據公式(4)推導得到當前編碼塊中每一個子運動補償單元的運動資訊,其中(x,y)為子運動補償單元相對於當前編碼塊左上頂點點數的座標,W和H分別為當前編碼塊的寬和高。需要說明的是,在本發明中,寬和高的定義可以參考圖像處理領域或視頻處理領域標準中相關的標準,例如,寬指的是當前編碼塊在水准方向上的點數點的數量,高指的是當前編碼塊在垂直方向上的數量。
Figure 107144405-A0305-02-0019-4
8參數的雙線性模型如公式(5)所示:
Figure 107144405-A0305-02-0019-5
8參數雙線性模型可以通過四個控制點的運動向量及其相對於當前編碼塊左上頂點點數的座標來表示。若採用左上頂點(0,0)、右上頂點(W,0)、左下頂點(0,H)和右下定點(W,H)點數點作為控制點,則先確定當前編碼塊左上頂點、右上頂點、左下頂點和右下頂點控制點的運動向量(vx0,vy0)、(vx1,vy1)、(vx2,vy2)和(vx3,vy3),然後根據公式(6)推導得到當前編碼塊中每一個子運動補償單元的運動資訊,其中(x,y)為子運動補償單元相對於當前編碼塊左上頂點點數的座標,W和H分別為當前編碼塊的寬度和高度。
Figure 107144405-A0305-02-0019-6
採用非平動運動模型進行預測的編碼塊稱為非平動編碼塊,仿射編碼塊是一種非平動編碼塊,可以使用仿射變換融合(affine model merge,AMM) 模式獲得非平動編碼塊的控制點的運動資訊。仿射變換融合模式有兩種,一種是基於運動模型的AMM模式,另一種是基於控制點的複雜融合(complex merge)模式。
第3圖示出了本發明提供的根據基於運動模型的AMM模式進行預測的方法。
在對當前編碼塊(也可稱為“當前塊”)的控制點的運動向量進行編碼時,從相鄰編碼塊(也可稱為“相鄰塊”,例如“空域鄰近塊”)中按照預設策略選擇一個編碼塊,利用該編碼塊的角點位元置(例如左上頂點和右上頂點)的運動資訊推導出當前塊角點位置(例如左上頂點和右上頂點)的運動資訊,使得當前塊與該編碼塊的運動模型相同。需要說明的是,上述運動模型相同指的是當前塊和相鄰塊在相同坐標系下的運動模型參數值以及參數個數相同,例如,當前塊和相鄰塊均採用4參數仿射編碼模型,或者,當前塊和相鄰塊均採用6參數仿射編碼模型,或者,當前塊和相鄰塊均採用8參數雙線性模型。
如第3圖所示,A、B、C、D和E為當前塊的相鄰編碼塊(即空域鄰近塊)的圖元位置(也可簡稱為“位置”),按照A、B、C、D、E的順序遍歷,找到一個仿射編碼塊,獲得該仿射編碼塊的預設位置(亦可稱為控制點,例如該仿射編碼塊的左上頂點和右上頂點)的運動資訊,進而推導出當前塊的對應的預設位置(亦可稱為控制點,例如當前塊的左上頂點和右上頂點)的運動資訊。 需要說明的是,這裡示例的A、B、C、D和E也可以理解為圖元樣本,例如可以是圖元點或包括至少兩個圖元點的區塊。若圖元樣本為區塊,則該區塊的大小例如為2*2,1*2、4*2、4*4或其他大小。
下面以A為例描述推導過程,其它情況以此類推: 若圖元位置A(例如left sample location A)所在的編碼塊為仿射編碼塊,則獲得該仿射編碼塊左上頂點(x2,y2)的運動向量(vx2,vy2)、右上頂點(x3,y3)的 運動向量(vx3,vy3);利用公式(7)計算得到當前編碼塊左上頂點(x0,y0)的運動向量(vx0,vy0),利用公式(8)計算得到當前編碼塊右上頂點(x1,y1)的運動向量(vx1,vy1)。
Figure 107144405-A0305-02-0021-10
Figure 107144405-A0305-02-0021-9
需要說明的是,其它獲得控制點的運動資訊的方法也可以應用到本發明中,為了簡潔,在此不再贅述。
由上可知,由於當前塊繼承相鄰塊的運動模型,因此,基於運動模型的AMM模式比基於控制點的複雜融合模式具有更高的編碼效率,然而,若相鄰塊的運動資訊不可用,則編碼端需要重新選擇運動估計方法,並且向解碼端發送指示資訊指示重新選擇的運動估計方法,因此增加了視頻傳輸的位元開銷,此外,即使相鄰塊的運動資訊可用。
本發明提供了一種視頻資料的幀間預測方法,能夠減少視頻傳輸的位元開銷,此外,還能夠擴大基於運動模型的AMM模式的適用範圍。
如第4圖所示,本發明實施例方法400可以包括: S410:確定當前圖像塊的候選運動資訊清單,所述候選運動資訊清單包括至少一組第一候選運動資訊、至少一組第二候選運動資訊,以及用於索引第一候選運動資訊和第二候選運動資訊的多個索引資訊,多個索引資訊與多組候選運動資訊一一對應,其中,第一候選運動資訊為基於當前圖像塊的第一相鄰圖像塊的預設位置的運動資訊和第一相鄰圖像塊的運動模型確定的運動資訊,第二候選運動資訊為與當前圖像塊的至少兩個預設位置分別相鄰的至少兩 個圖元位置的運動資訊的集合,所述至少兩個圖元位置位於當前圖像塊的至少一個第二相鄰圖像塊。
S420:從候選運動資訊清單中確定一組目標運動資訊。
S430:根據所述目標運動資訊對所述當前圖像塊執行幀間預測。
方法400可以由編碼端或解碼端執行,編碼端或解碼端可以是硬體設備,也可以是運行在通用硬體設備上的編碼軟體或解碼軟體,還可以是具有編碼功能的硬體設備與編碼軟體的集合,或者是具有解碼功能的硬體設備與解碼軟體的集合。應當理解的是,如果方法400由編碼端執行,則S420中,所述一組目標運動資訊為至少一組第一候選運動資訊和所述至少一組第二候選運動資訊中滿足篩選規則的一組運動資訊,例如所述目標運動資訊為所述候選運動資訊清單中,編碼所述當前圖像塊的編碼率失真代價最小的一組運動資訊;如果方法400由解碼端執行,則S420中,所述目標運動資訊為所述候選運動資訊清單中,解碼出的索引資訊指示的一組運動資訊。
當方法400由編碼端執行時,上述圖像塊應理解為編碼塊,例如,當前圖像塊為當前編碼塊,第一相鄰圖像塊為第一相鄰編碼塊,第二相鄰圖像塊為第二相鄰編碼塊;當方法400由解碼端執行時,上述圖像塊均應理解為解碼塊,例如,當前圖像塊為當前解碼塊,第一相鄰圖像塊為第一相鄰解碼塊,第二相鄰圖像塊為第二相解碼塊。為了簡潔,下面主要以編碼端執行方法400為例對本發明提供的幀間預測方法進行說明,僅在解碼端的處理方式不同時對解碼端的幀間預測方法進行說明,若無特別說明,則解碼端與解碼端執行的操作類似。
本發明對編碼端確定候選運動資訊清單的方式不做限定,例如,可以通過第3圖所示的方法獲取第一候選運動資訊,也可以通過其它方法獲取第一運動資訊,還可以通過下文所述的方法獲取第二候選運動資訊,獲取第一候選運動資訊和第二候選運動資訊之後,將第一候選運動資訊和第二候選運動資訊 填入候選運動資訊清單。
第一相鄰編碼塊與第二相鄰編碼塊可能相同,也可能不同,如第3圖所示,第一相鄰編碼塊可以是位置A所在的編碼塊,第二相鄰編碼塊可以是位置D所在的編碼塊(第3圖未示出),此時,第一相鄰編碼塊與第二相鄰編碼塊相異,第二相鄰編碼塊也可以是位置A所在的編碼塊,此時第二相離編碼塊與第二相鄰編碼塊相同。
第一相鄰編碼塊和第二相鄰編碼塊可以是當前塊的空域相鄰編碼塊,也可以是當前塊的時域相鄰編碼塊,本發明對此不作限定,例如空域相鄰編碼塊的範圍包括但不限於第3圖所示的圖元位置A、B、C、D和E所在的編碼塊。
由於第一相鄰編碼塊可能是採用平動運動模型的編碼塊,也可能是採用非平動運動模型的編碼塊,因此,當第一相鄰編碼塊為採用平動運動模型的編碼塊時,第一候選運動資訊為平動運動資訊,當第一相鄰編碼塊為採用非平動運動模型的編碼塊時,第一候選運動資訊為非平動運動資訊,其中,平動運動資訊有一個運動向量或者有兩個運動向量,非平動運動資訊包括至少兩個運動向量,因此,一組第一候選運動資訊可能僅有一個運動向量,也可能包括多個運動向量。
相應地,當第一相鄰編碼塊為採用平動運動模型的編碼塊時,第一相鄰編碼塊的預設位置例如是第3圖所示的位置A,當第一相鄰編碼塊為採用非平動運動模型的編碼塊時,第一相鄰編碼塊的預設位置例如可以是第3圖的左上頂點(x2,y2)和右上頂點(x3,y3)。
對於第二候選運動資訊,當前編碼塊的至少兩個預設位置例如可以是下文的第5圖中的CP1和CP2,與當前編碼塊的至少兩個預設位置相鄰的的至少兩個圖元位置例如可以是B2和B1,B2和B1可能屬於同一個相鄰編碼塊(即,第二相鄰編碼塊),也可能屬於不同的相鄰編碼塊。
在本發明中,運動資訊包括但不限於運動向量,例如,一組運動資訊包括預測方向的指示資訊(通常為前向預測、後向預測或者雙向預測)、一個或兩個或兩個以上的運動向量,以及參考幀索引(reference index);應當理解的是,如果一組運動資訊為平動運動資訊,則該運動資訊可以包括一個或兩個運動向量,例如,包括預測方向為前向的運動向量和/或預測方向為後向的運動向量。也就是說,一組平動運動資訊可能包括一個運動向量或可能包括預測方向不同的兩個運動向量。如果一組運動資訊為非平動運動資訊,則該運動資訊包括多個運動向量的組合,例如兩個運動向量的組合,具體可以是兩個預設位置(亦稱為控制點)的運動向量的組合,應當理解的是,解碼端可以通過兩個控制點的運動向量的組合結合所述兩個控制點的位置座標,計算出當前圖像塊中任意位置座標(x,y)的圖元的運動向量,亦可稱為計算出當前圖像塊中每個子運動補償單元的運動向量,所述運動向量指向對應參考幀中的參考塊。
編碼端確定候選運動資訊清單之後,根據篩選規則從候選運動資訊清單中篩選出一組目標運動資訊,目標運動資訊也可稱為最佳運動資訊,例如,編碼端可以採用候選運動資訊清單中的各個運動資訊進行運動補償預測,然後通過編碼率失真優化(rate distortion optimization,RDO)準則篩選出最佳運動資訊,例如所述最佳運動資訊編碼所述當前編碼塊的編碼率失真代價最小,並將最佳運動資訊的索引寫入碼流,隨後發送碼流。上述RDO準則即篩選規則。
上述示例僅是舉例說明,其它確定最佳運動資訊的方式也適用於本發明。根據本實施例提供的編碼方法,編碼端構建包括兩種候選運動資訊的候選運動資訊清單,應理解的是,這裡的兩種候選運動資訊僅僅是為了體現候選運動資訊的獲取方式(derivation)不同,若兩種候選運動資訊中的一種不適用於當前編碼塊,則編碼端可以從候選運動資訊清單包括的另一種候選運動資訊中選擇目標運動資訊,並將該目標運動資訊的索引資訊通過碼流發送給解碼端, 由於候選運動資訊清單中的候選運動資訊具有唯一的索引資訊,因此,編碼端無需在碼流中傳遞指示編碼端使用的候選運動資訊清單構建方法的指示資訊,從而減小了視頻傳輸的位元開銷,此外,若當前塊的相鄰塊為採用基於控制點的複雜融合模式的編碼塊,則當前塊仍然可以使用該相鄰塊的運動資訊進行基於運動模型的AMM模式的運動估計,提高了編碼效率。
下面再舉出一個本發明提供的幀間預測方法的實施例。
實施例一。
步驟1:構建候選運動資訊清單。
步驟1.1,將基於運動模型的運動資訊加入候選運動資訊清單。
可以按照第3圖所示的方法遍歷當前塊周圍的相鄰塊,找到全部的非平動編碼塊,若非平動編碼塊的運動模型與當前塊的運動模型相同,獲得每個非平動編碼塊的控制點的運動資訊,進而推導出當前塊的對應控制點的運動資訊(即,第一運動資訊)。
步驟1.2,將基於組合控制點的運動資訊加入候選運動資訊清單。
若步驟1.1得到的候選運動資訊清單的長度小於預設的列表長度N,則構造基於組合控制點的運動資訊(即,第二運動資訊),並將該運動資訊加入候選運動資訊清單。
構造基於組合控制點的運動資訊的方法如下: 首先,推導得到各個控制點的運動資訊。如第5圖所示,CPk(k=1,2,3,4)表示第k個控制點。A0、A1、A2、B0、B1、B2和B3為當前塊的空域相鄰位置,用於預測CPk(k=1,2,3)的運動資訊;Tr為當前塊的時域相鄰位置,用於預測CP4的運動資訊。應當理解的是,Tr為當前塊的同位置塊的右下空域鄰近圖元位置,其中同位置塊為參考圖像中與當前塊具有相同的大小、形狀和座標的圖像塊。
CP1、CP2、CP3和CP4的位置座標分別為(0,0),(W,0),(H,0)和(W,H), 其中W和H為當前塊的寬度和高度。
對於每個控制點,其運動資訊按照以下順序獲得:- 對於CP1,檢查順序依次為B2、A2、B3,如果B2的運動資訊可得(available),則採用B2的運動資訊。否則,依次檢測A2和B3。若三個位置的運動資訊均不可得,則無法獲得CP1的運動資訊。
- 對於CP2,檢查順序為B0、B1;- 對於CP3,檢測順序為A0、A1;- 對於CP4,可以採用Tr的運動資訊。
此處運動資訊可得表示包括X位置的塊已經編碼並且為幀間編碼模式;否則,X位置不可得,X位置例如是位置B2、位置A2、位置B3、位置A0、位置A1、位置B0、位置B1或位置Tr
需要說明的是,其它獲得控制點運動資訊的方法也可適用於本發明,在此不做贅述。例如,對於CP1,如果B2、A2、B3均可得,則CP1可以採用{B2、A2、B3}中的任意一個的運動信息,CP2-CP4同理,在此不再贅述。又或者,如第5圖所示,所述當前圖像塊的控制點CP1(亦可稱為左上圖元樣本)的運動資訊的來源可包括x1個圖元樣本的運動資訊。其中,所述x1個圖元樣本包括:與所述當前圖像塊所屬的視頻幀時域相鄰的視頻幀之中的與所述當前圖像塊的左上圖元樣本LT位置相同的圖元樣本Col-LT、所述當前圖像塊的左邊的空域相鄰圖像塊A2、所述當前圖像塊的左上的空域相鄰圖像塊B2、所述當前圖像塊的上邊的空域相鄰圖像塊B3中的至少一個。
接著,將控制點的運動資訊進行組合,得到非平動的運動資訊。
將兩個控制點的運動資訊進行組合,用來構建4參數仿射變換模型。兩個控制點的組合方式包括如下方式:{CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4}。例如,採用CP1和CP2控制點構建的4參數仿射變換模 型記做Affine(CP1,CP2)。
將三個控制點的運動資訊進行組合,用來構建6參數仿射變換模型。三個控制點的組合方式為{CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4}。例如,採用CP1、CP2和CP3控制點構建的6參數仿射變換模型,記做Affine(CP1,CP2,CP3)。
將四個控制點的運動資訊進行組合,用來構建8參數雙線性模型。採用CP1、CP2、CP3和CP4控制點構建的8參數雙線性模型,記做Bilinear(CP1,CP2,CP3,CP4)。
按照預置的順序遍歷這些模型,若組合模型對應的控制點運動資訊不可得,則認為該模型不可得,若組合模型對應的控制點運動資訊可得,則確定該模型的參考幀索引,並將控制點的運動向量進行縮放,若縮放後的所有控制點的運動資訊一致,則該模型失效,否則,將控制點的運動資訊加入候選運動資訊清單中。
Figure 107144405-A0305-02-0027-16
縮放的方法如公式(9)所示。CurPoc表示當前幀的圖序計數(picture order count,POC)號,DesPoc表示當前塊的參考幀的POC號,SrcPoc表示控制點的參考幀的POC號,MV s 表示縮放得到的MV。
步驟1.3,補充運動資訊。
可選地,若步驟1.2得到的候選運動列表長度小於設定的列表長度N,則將當前塊周邊鄰近的已編碼塊的運動資訊,加入候選運動資訊清單中,或者,填充零運動資訊(即零運動向量)。
候選運動資訊清單的構建流程圖如第6圖所示。
S601,獲取第一候選運動資訊,並將第一候選運動資訊加入候選運 動資訊清單,若此時候選運動資訊清單的長度(candNum1)小於預設的列表長度N,則執行步驟S602,若此時候選運動資訊清單的長度等於N,則結束候選運動資訊清單的構建流程。
S602,獲取第二候選運動資訊,並將第二候選運動資訊加入候選運動資訊清單,若此時候選運動資訊清單的長度(candNum2)小於預設的列表長度N,則執行步驟S603,若此時候選運動資訊清單的長度等於N,則結束候選運動資訊清單的構建流程。
S603,填充運動資訊,該運動資訊可以是零運動資訊和/或當前塊的相鄰塊的平動運動資訊,直至候選運動資訊清單的長度值等於N停止填充,結束候選運動資訊清單的構建流程。
表1為實施例一構建的候選運動資訊清單的例子。
Figure 107144405-A0305-02-0028-13
表1中,MV0、MV1、MV2和MV3分別為當前塊的四個控制點的運動向量,索引值0對應的運動向量組合為步驟1.1確定的運動資訊,索引值2對應的運動向量組合為步驟1.2確定的運動資訊。
需要說明的是,候選運動資訊清單中還可以包括預測方向、參考幀索引值等資訊。如索引值對應的預測方向為雙向,則該項包括前向的參考幀索 引及運動向量組合,以及後向的參考幀索引及運動向量組合。如索引值對應的預測方向為前向,則該項包括前向的參考幀索引及運動向量組合;如索引值對應的預測方向為後向,則該項包括後向的參考幀索引及運動向量組合。進一步的,如果編碼端和解碼端約定了特定數量的運動向量的組合為特定位置的控制點的運動向量的組合,例如兩個運動向量的組合,預設是左上頂點和右上頂點的兩個控制點的運動向量的組合,則候選運動該資訊清單中不需要體現與每個運動向量組合對應的位置座標組合;反之,候選運動該資訊清單中,非平動運動模型下的每個索引對應的候選項(candidate)包括多個控制點的運動向量以及對應的多個控制點的位置座標。
步驟2:確定最佳運動資訊。
在解碼端,從碼流中解碼得到塊級的索引,例如當前塊的最佳候選運動資訊在候選運動信息清單中的索引值,即可得到當前塊控制點的運動向量預測值。
可以直接將運動向量預測值作為當前塊控制點的運動向量,該方法為基於融合(merge)模式獲取運動向量的方法,或者,從碼流中進一步解碼得到各個控制點的運動向量差值,把運動向量預測值和運動向量差值分別相加,得到當前塊的控制點的運動向量,該方法為基於高級運動向量預測(advanced motion vector prediction,AMVP)模式獲取運動向量的方法。
在編碼端,分別採用候選運動信息清單中的運動資訊進行運動補償預測,然後通過RDO準則選擇出最佳運動資訊及其索引值,並將該索引值寫入碼流。
可以直接將運動向量預測值作為當前塊控制點的運動向量(合併預 測模式(Merge)),或者,再進行運動估計,搜索得到最終的運動向量,並將各個控制點的運動向量預測差值(motion vector difference,MVD)寫入碼流(AMVP模式),這裡的MVD即可理解為估計得到的運動向量與清單中選擇的最佳運動向量的差值。
步驟3:根據控制點的運動資訊及其運動模型,確定當前塊中每個點數點(x,y)或每個子運動補償單元的運動向量(Vx,Vy),在當前塊的預測方向上的參攷幀索引所訓示的參攷幀中,根據當前塊中各點數點的運動向量所指向的位元置獲得各點數點的預測值。
應當理解的是,在一種實現方式中,如果運動向量組合不限於指定位置的運動向量組合,則在候選運動資訊清單中,每個運動向量組合具有與之關聯的位置座標,換言之,每個運動向量組合中的每個運動向量與該運動向量對應的控制點的位置座標一一對應;在另一種實現中,如果運動向量組合為指定位置的運動向量組合,例如4參數的仿射運動模型對應的運動向量組合為當前塊的左上頂點和右上頂點的運動向量組合;6參數的仿射運動模型對應的運動向量組合為當前塊的左上頂點、左下頂點和右上頂點的運動向量組合,則在候選運動資訊清單中,不需要包括與每個運動向量組合對應的位置座標。
應當理解的是,4參數的仿射運動模型對應2個運動向量的組合,6參數的仿射運動模型對應3個運動向量的組合,8參數的仿射運動模型對應4個運動向量的組合,則在候選運動資訊清單中,通過運動向量組合包括的運動向量的個數可以間接的推導出所需使用的仿射運動模型,因此,在候選運動資訊清單中也可以不包括運動模型資訊域。
應理解的是,這裡的步驟3中假設步驟2所選擇的最佳運動資訊對應 的運動模型是非平動運動模型的情況;如果步驟2中所選擇的最佳運動資訊為一個運動向量或對應於雙向預測方向的兩個運動向量,換言之,如果步驟2中所選擇的最佳運動資訊對應的運動模型是平動運動模型,則將最佳運動資訊中的運動向量作為當前塊的運動向量或者將最佳運動資訊中的運動向量和MVD之和作為當前塊的運動向量,在當前塊的預測方向上的參攷幀索引所訓示的參攷幀中,根據當前塊的運動向量所指向的位置獲得當前塊的預測塊。
可選地,方法400中,第一候選運動資訊的索引資訊的位元數小於或等於第二候選運動資訊的索引資訊的位元數。
第一候選運動資訊為基於運動模型的運動資訊,根據第一候選運動資訊進行編碼的效率高於根據第二候選運動資訊進行編碼的效率,因此,第一候選運動資訊為目標運動資訊的概率較大,因此,可以將第一候選運動資訊的索引資訊設置為位元數較小的索引資訊,有利於減小視頻傳輸的位元開銷。
例如,可以設置先加入候選運動資訊清單的運動資訊對應位元數較小的索引資訊,後加入候選運動資訊清單的運動資訊對應位元數較大的索引資訊,在構建候選運動資訊清單時,先將第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單,從而使得第一候選運動資訊的索引資訊的位元數小於第二候選運動資訊的索引資訊的位元數。
可選地,所述確定當前編碼塊的候選運動資訊清單,包括:S411,當第一相鄰編碼塊為採用平動運動模型的相鄰編碼塊時,將第一相鄰編碼塊的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單。和/或,S412,當第一相鄰編碼塊為採用非平動運動模型的編碼塊時,根據第一相鄰編碼塊的至少兩個預設位置的運動資訊以及第一相鄰編碼塊的運動模型推導出當前編碼塊對應的至少兩個預設位置的運動資訊,並將當前編碼塊對 應的至少兩個預設位置的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單。
若第一相鄰編碼塊的運動模型為平動運動模型,則無需對第一相鄰編碼塊的運動資訊做任何處理,可以將其作為第一候選運動資訊直接加入候選運動資訊清單,從而提高了編碼效率;若第一相鄰編碼塊的運動模型為非平動運動模型,則需要根據該非平動運動模型對應的公式以及第一相鄰編碼塊的預設位置的運動資訊生成第一候選運動資訊。
下麵再舉一個本發明提供的幀間預測的實施例。
實施例二。
步驟1:構建候選運動資訊清單。
步驟1.1,將基於運動模型的運動資訊加入候選運動資訊清單。
可以按照第3圖所示的方法遍歷當前塊周圍的相鄰塊,若相鄰塊為平動編碼塊,則直接將其運動資訊填入候選運動資訊清單,若相鄰塊為非平動塊,且非平動編碼塊的運動模型與當前塊的運動模型相同,獲得每個非平動編碼塊的控制點的運動資訊,進而推導出當前塊的對應控制點的運動資訊(即,第一運動資訊)。
步驟1.2,將基於組合控制點的運動資訊加入候選運動資訊清單。
實施例二的步驟1.2可參照實施例一的步驟1.2,為了簡潔,在此不再贅述。
步驟1.3,補充運動資訊。
可選地,若步驟1.2得到的候選運動列表長度小於設定的列表長度N,則填充零運動資訊(即零運動向量)。
表2為實施例二構建的候選運動資訊清單的例子。
Figure 107144405-A0305-02-0032-18
Figure 107144405-A0305-02-0033-15
表2中,MV0、MV1、MV2和MV3分別為當前塊的四個控制點的運動向量,索引值0對應的運動向量組合為步驟1.1確定的運動資訊,索引值3對應的運動向量組合為步驟1.2確定的運動資訊。
需要說明的是,候選運動資訊清單中還可以包括預測方向、參考幀索引值等資訊。如索引值對應的預測方向為雙向,則該項包括前向的參考幀索引及運動向量組合,以及後向的參考幀索引及運動向量組合。如索引值對應的預測方向為前向,則該項包括前向的參考幀索引及運動向量組合;如索引值對應的預測方向為後向,則該項包括後向的參考幀索引及運動向量組合。
步驟2:確定最佳運動資訊。
在解碼端,從碼流中解碼得到當前塊的最佳候選運動資訊在清單中的索引值,即可得到當前塊控制點的運動向量預測值。
可以直接將運動向量預測值作為當前塊控制點的運動向量(Merge模式),或者,從碼流中解碼得到各個控制點的運動向量差值,把運動向量預測值和MVD分別相加,得到當前塊的控制點的運動向量(AMVP模式)。
在編碼端,分別採用候選運動信息清單中的運動資訊進行運動補償 預測,然後通過RDO準則選擇出最佳運動資訊及其索引值,並將該索引值寫入碼流。
可以直接將運動向量預測值作為當前塊控制點的運動向量(Merge模式),或者,再進行運動估計,搜索得到最終的運動向量,並將各個控制點的MVD寫入碼流(AMVP模式)。
步驟3:根據控制點的運動資訊及其運動模型,確定當前塊中每個點數點(x,y)或每個子運動補償單元的運動向量(Vx,Vy),在當前塊的預測方向上的參攷幀索引所訓示的參攷幀中,根據當前塊中各點數點的運動向量所指向的位元置獲得各點數點的預測值。
應當理解的是,在一種實現方式中,如果運動向量組合不限於指定位置的運動向量組合,則在候選運動資訊清單中,每個運動向量組合具有與之關聯的位置座標,換言之,每個運動向量組合中的每個運動向量與該運動向量對應的控制點的位置座標一一對應;在另一種實現中,如果運動向量組合為指定位置的運動向量組合,例如4參數的仿射運動模型對應的運動向量組合為當前塊的左上頂點和右上頂點的運動向量組合;6參數的仿射運動模型對應的運動向量組合為當前塊的左上頂點、左下頂點和右上頂點的運動向量組合,則在候選運動資訊清單中,不需要包括與每個運動向量組合對應的位置座標。
應當理解的是,4參數的仿射運動模型對應2個運動向量的組合,6參數的仿射運動模型對應3個運動向量的組合,8參數的仿射運動模型對應4個運動向量的組合,則在候選運動資訊清單中,通過運動向量組合包括的運動向量的個數可以間接的推導出所需使用的仿射運動模型,因此,在候選運動資訊清單 中也可以不包括運動模型資訊域。需要說明的是,運動資訊清單包括了預測方向的資訊,可以根據此資訊進行區分不同的運動模型,例如,雙向4參數模型包括2個前向,2個後向運動向量;雙向平動模型則包括1個前向,1個後向運動向量。
可選地,當採用非平動運動模型的第一相鄰編碼塊的數量大於或等於數量閾值時,第三候選運動資訊的索引資訊的位元數小於第二候選運動資訊的位元數,第三候選運動資訊為基於採用非平動運動模型的第一相鄰編碼塊的至少兩個預設位置的運動資訊以及採用非平動運動模型的第一相鄰編碼塊的運動模型推導出的一組第一候選運動資訊。
以第3圖為例,位置A所在的編碼塊為採用非平動運動模型的第一相鄰編碼塊,左上頂點(x2,y2)和右上頂點(x3,y3)為第一相鄰編碼塊的至少兩個預設位置,V2和V3為該至少兩個預設位置的運動資訊,V0和V1為根據V2和V3推導出的一組第一候選運動資訊(即,第三候選運動資訊)。
若採用非平動運動模型的第一相鄰編碼塊的數量大於或等於數量閾值,則說明當前編碼塊為採用非平動運動模型的編碼塊的概率較大,因此,可以將基於非平動運動模型的第一相鄰編碼塊推導出的第一候選運動資訊(即,第三候選運動資訊)的索引資訊設置為位元數較小的索引資訊,由於目標運動資訊為第三候選運動資訊的概率較大,因此,本實施例有利於減少視頻傳輸的位元數。
例如,可以設置先加入候選運動資訊清單的運動資訊對應位元數較小的索引資訊,後加入候選運動資訊清單的運動資訊對應位元數較大的索引資訊,在構建候選運動資訊清單時,先將第三候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單,從而使得第三候選運動資訊的索引資訊的位元數小於第二候選運動資訊的索引資訊的位元數。
可選地,當候選運動資訊清單的長度小於長度閾值,且第一相鄰編 碼塊還包括採用平動運動模型的第一相鄰編碼塊時,候選運動資訊清單還包括採用平動運動模型的第一相鄰編碼塊的運動資訊,所述採用平動運動模型的第一相鄰編碼塊的運動資訊為一組第一候選運動資訊,所述採用平動運動模型的第一相鄰編碼塊的運動資訊的索引資訊的位元數大於或等於第二候選運動資訊的索引資訊的位元數。
在本發明中,候選運動資訊清單的長度指的是候選運動資訊清單能夠容納的運動資訊的數量。
若第二候選運動資訊加入候選運動資訊清單之後,候選運動資訊清單長度小於長度閾值,並且第一相鄰編碼塊還包括採用平動運動模型的第一相鄰編碼塊,則將採用平動運動模型的第一相鄰編碼塊的運動資訊作為第一候選運動資訊加入候選運動資訊清單,並將該第一候選運動資訊的索引資訊設置為位元數較大的索引資訊,若候選運動資訊清單的長度仍然小於長度閾值,再將零運動資訊加入候選運動資訊清單。
可選地,當採用非平動運動模型的第一相鄰編碼塊的數量小於或等於數量閾值時,所述採用平動運動模型的第一相鄰編碼塊的運動資訊為一組第一候選運動資訊,且所述採用平動運動模型的第一相鄰編碼塊的運動資訊的索引資訊的位元數小於第二候選運動資訊的位元數。
若採用非平動運動模型的第一相鄰編碼塊的數量小於或等於數量閾值,則說明當前編碼塊為採用平動運動模型的編碼塊的概率較大,因此,可以將採用平動運動模型的第一相鄰編碼塊的運動資訊作為一組第一候選運動資訊,並將該組第一候選運動資訊的索引資訊設置為位元數較小的索引資訊,由於目標運動資訊為該第一候選運動資訊的概率較大,因此,本實施例有利於減少視頻傳輸的位元開銷。
以第3圖為例,若位置A所在的編碼塊為採用平動運動模型的第一相 鄰編碼塊,則可以將位置A所在的編碼塊的運動資訊作為當前塊左下角的控制點的運動資訊(即,第一候選運動資訊)。
可以設置先加入候選運動資訊清單的運動資訊對應位元數較小的索引資訊,後加入候選運動資訊清單的運動資訊對應位元數較大的索引資訊,在構建候選運動資訊清單時,先將採用平動運動模型的第一相鄰編碼塊的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單,從而有利於減少目標運動資訊的索引資訊的位元數。
可選地,當候選運動資訊清單的長度小於長度閾值,且第一相鄰編碼塊還包括採用非平動運動模型的第一相鄰編碼塊時,候選運動資訊清單還包括第四候選運動資訊,第四候選運動資訊為基於採用非平動運動模型的第一相鄰編碼塊的至少兩個預設位置的運動資訊以及採用非平動運動模型的第一相鄰編碼塊的運動模型推導出的一組第一候選運動資訊,第四候選運動資訊的索引資訊的位元數大於或等於第二候選運動資訊的索引資訊的位元數。
若第二候選運動資訊加入候選運動資訊清單之後,候選運動資訊清單長度小於長度閾值,並且第一相鄰編碼塊還包括採用非平動運動模型的第一相鄰編碼塊,則將基於採用非平動運動模型的第一相鄰編碼塊的運動資訊推導出的運動資訊作為第一候選運動資訊加入候選運動資訊清單,並將該第一候選運動資訊的索引資訊設置為位元數較大的索引資訊,若候選運動資訊清單的長度仍然小於長度閾值,再將零運動資訊加入候選運動資訊清單。
以第3圖為例,假設位置A所在的編碼塊為採用非平動運動模型的第一相鄰編碼塊,左上頂點(x2,y2)和右上頂點(x3,y3)為該第一相鄰編碼塊的至少兩個預設位置,V2和V3為該至少兩個預設位置的運動資訊,則V0和V1為根據V2和V3推導出的一組第一候選運動資訊(即,第四候選運動資訊)。
下麵,再舉一個本發明提供的幀間預測的方法的實施例。
實施例三。
步驟1:構建候選運動信息清單。
如第3圖所示,按照A,B,C,D,E的順序遍歷當前塊周邊的相鄰塊,統計相鄰塊中非平動編碼塊的數量M。
若M大於預置的數量閾值T,則運動資訊的加入順序為:首先將基於非平動編碼塊的運動資訊確定的當前塊的運動資訊(即一些第一候選運動資訊)加入候選運動信息清單,即根據所述非平動編碼塊的至少兩個預設位置的運動資訊以及所述非平動編碼塊的運動模型推導出所述當前塊對應的至少兩個預設位置的運動資訊,並將所述當前塊對應的至少兩個預設位置的運動資訊作為一組第一候選運動資訊加入所述候選運動信息清單;其次將基於組合控制點的運動資訊(即第二候選運動資訊)加入候選運動信息清單;若此時候選運動資訊清單的長度小於設定的列表長度N,則進一步將基於平動編碼塊的運動資訊確定的當前塊的運動資訊(即另外的一些第一候選運動資訊)加入候選運動資訊清單;若此時候選運動資訊清單的長度仍然小於設定的列表長度N,再填充零運動資訊。
若M小於或等於預置的數量閾值T,則運動資訊的加入順序為:首先將基於平動編碼塊的運動資訊確定的當前塊的運動資訊(即一些第一候選運動資訊)加入候選運動信息清單;其次將基於組合控制點的運動資訊(即第二候選運動資訊)加入候選運動信息清單;若此時候選運動資訊清單的長度小於設定的列表長度N,則進一步將基於非平動編碼塊的運動資訊推導的當前塊的運動資訊(即另外的一些第一候 選運動資訊)加入候選運動資訊清單; 若此時候選運動資訊清單的長度仍然小於設定的列表長度N,再填充零運動資訊。
基於非平動編碼塊的運動資訊或平動編碼塊的運動資訊確定當前塊的運動資訊的方法可參攷實施例一的步驟1.1和步驟1.2,為了簡潔,在此不再贅述。
可選地,第一候選運動資訊和第二候選運動資訊均為當前編碼塊的第一組位置的運動資訊,當前編碼塊中至少兩個預設位置為第二組位置,所述確定當前編碼塊的候選運動資訊清單,包括:當第二組位置與所述第一組位置相異時,根據位置變換公式以及第二組位置對應的運動資訊推導出第二候選運動資訊。
當第一候選運動資訊對應的位置的數量和第二候選運動資訊對應的位置的數量相同時,根據本實施得到的候選運動資訊清單中的運動資訊均為特定位置的運動資訊,從而減小了運動估計的複雜度。
以第5圖為例,假設第一候選運動資訊為CP1和CP2對應的運動資訊,則CP1和CP2為第一組位置,若第二候選運動資訊所基於的圖元位置是位置A1和位置A2(即,第二組位置),則編碼端可以根據位置變換公式以及第二組位置對應的運動資訊得到CP1和CP2對應的第二候選運動資訊。
可選地,第一候選運動資訊為當前編碼塊的第一組位置的運動資訊,第二候選運動資訊為當前編碼塊的第三組位置的運動資訊,所述方法還包括:當第一組位置與第三組位置相異時,根據位置變換公式以及第二候選運動資訊推導出第五候選運動資訊,所述第五候選運動資訊對應的位置與第一組位置相同。
當第一候選運動資訊對應的位置的數量和第二候選運動資訊對應的 位置的數量相同時,根據本實施得到的候選運動資訊清單中的運動資訊均為特定位置的運動資訊,從而減小了運動估計的複雜度。
以第5圖為例,假設第一候選運動資訊為CP1和CP2對應的運動資訊,則CP1和CP2為第一組位置,若第二候選運動資訊為CP2和CP3(即,第三組位置)對應的運動資訊,則編碼端可以根據位置變換公式以及CP2和CP3得到CP1和CP2對應的第二候選運動資訊。
在實施例一、實施例二和實施例三中,可將不同控制點的組合轉換為同一位置的控制點。
例如將{CP1,CP4},{CP2,CP3},{CP2,CP4},{CP1,CP3},{CP3,CP4}組合得到的4參數仿射變換模型轉換為控制點{CP1,CP2}來表示。轉換方法為將控制點的運動向量及其座標資訊,代入公式(1),得到模型參數,再將{CP1,CP2}的座標資訊代入,得到其運動向量。
例如將{CP1,CP2,CP4},{CP2,CP3,CP4},{CP1,CP3,CP4}組合的6參數仿射變換模型轉換為控制點{CP1,CP2,CP3}來表示。轉換方法為將控制點的運動向量及其座標資訊,代入公式(3),得到模型參數,再將{CP1,CP2,CP3}的座標資訊代入,得到其運動向量。
公式(1)和公式(3)相當於位置變換公式。
上文詳細描述了本發明提供的視頻數據的幀間預測方法,下麵,將結合附圖對本發明提供的視頻編解碼系統以及視頻數據的編碼裝置和解碼裝置進行清楚、完整地描述。
第7圖為本發明實施例中所描述的一種實例的視頻解碼系統1的框圖。如本文所使用,術語“視頻解碼器”一般是指視訊轉碼器和視頻解碼器兩者。在本發明中,術語“視頻解碼”或“解碼”可一般地指代視頻編碼或視頻解碼。視頻解碼系統1的視訊轉碼器100和視頻解碼器200用於根據本發明提出的 幀間預測方法來預測當前經解碼圖像塊或其子運動補償單元的運動資訊,例如運動向量,使得預測出的運動向量最大程度上接近使用運動估算方法得到的運動向量從而進一步的改善編解碼性能。
如第7圖中所示,視頻解碼系統1包含源裝置10和目的地裝置20。源裝置10產生經編碼視頻資料。因此,源裝置10可被稱為視頻編碼裝置。目的地裝置20可對由源裝置10所產生的經編碼的視頻資料進行解碼。因此,目的地裝置20可被稱為視頻解碼裝置。源裝置10、目的地裝置20或兩個的各種實施方案可包含一或多個處理器以及耦合到所述一或多個處理器的記憶體。所述記憶體可包含但不限於隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read only memory,ROM)、可擦除可程式設計唯讀記憶體(erasable programmable ROM,EPROM)、快閃記憶體或可用於以可由電腦存取的指令或資料結構的形式存儲所要的程式碼的任何其它媒體,如本文所描述。
源裝置10和目的地裝置20可以包括各種裝置,包含桌上型電腦、移動計算裝置、筆記型(例如,膝上型)電腦、平板電腦、機上盒、例如所謂的“智慧”電話等電話手持機、電視機、相機、顯示裝置、數位媒體播放機、視頻遊戲控制台、車載電腦或其類似者。
目的地裝置20可經由鏈路30從源裝置10接收經編碼視頻資料。鏈路30可包括能夠將經編碼視頻資料從源裝置10移動到目的地裝置20的一或多個媒體或裝置。在一個實例中,鏈路30可包括使得源裝置10能夠即時將經編碼視頻資料直接發射到目的地裝置20的一或多個通信媒體。在此實例中,源裝置10可根據通信標準(例如無線通訊協定)來調製經編碼視頻資料,且可將經調製的視頻資料發射到目的地裝置20。所述一或多個通信媒體可包含無線和/或有線通信媒體,例如射頻(radio frequency,RF)頻譜或一或多個物理傳輸線。所述一或多個通信媒體可形成基於分組的網路的一部分,基於分組的網路例如為局域網、廣域網 路或全球網路(例如,網際網路)。所述一或多個通信媒體可包含路由器、交換器、基站或促進從源裝置10到目的地裝置20的通信的其它設備。
在另一實例中,可將經編碼資料從輸出介面140輸出到存儲裝置40。 類似地,可通過輸入介面240從存儲裝置40存取經編碼資料。存儲裝置40可包含多種分散式或本地存取的資料存儲媒體中的任一者,例如硬碟驅動器、藍光光碟、數位通用光碟(digital versatile disc,DVD)、唯讀光碟(CD-ROM)、快閃記憶體、易失性或非易失性記憶體,或用於存儲經編碼視頻資料的任何其它合適的數位存儲媒體。
在另一實例中,存儲裝置40可對應於檔案伺服器或可保持由源裝置10產生的經編碼視頻的另一中間存儲裝置。目的地裝置20可經由資料流或下載從存儲裝置40存取所存儲的視頻資料。檔案伺服器可為任何類型的能夠存儲經編碼的視頻資料並且將經編碼的視頻資料發射到目的地裝置20的伺服器。實例檔案伺服器包含網路服務器(例如,用於網站)、檔案傳輸通訊協定(file transfer protocol,FTP)伺服器、網路附接式存儲(network attached storage,NAS)裝置或本地磁碟機。目的地裝置20可通過任何標準資料連接(包含網際網路連接)來存取經編碼視頻資料。這可包含無線通道(例如,無線保真(wireless-fidelity,Wi-Fi)連接)、有線連接(例如,數位用戶線路(digital subscriber line,DSL)、纜線數據機等),或適合於存取存儲在檔案伺服器上的經編碼視頻資料的兩者的組合。經編碼視頻資料從存儲裝置40的傳輸可為資料流、下載傳輸或兩者的組合。
本發明的運動向量預測技術可應用於視頻編解碼以支援多種多媒體應用,例如空中電視廣播、有線電視發射、衛星電視發射、串流視頻發射(例如,經由網際網路)、用於存儲於資料存儲媒體上的視頻資料的編碼、存儲在資料存儲媒體上的視頻資料的解碼,或其它應用。在一些實例中,視頻解碼系統1可用於支援單向或雙向視頻傳輸以支援例如視頻資料流、視頻重播、視頻廣播和/或 視頻電話等應用。
第7圖中所說明的視頻解碼系統1僅為實例,並且本發明的技術可適用於未必包含編碼裝置與解碼裝置之間的任何資料通信的視頻解碼設置(例如,視頻編碼或視頻解碼)。在其它實例中,資料從本機存放區器檢索、在網路上資料流等等。視頻編碼裝置可對資料進行編碼並且將資料存儲到記憶體,和/或視頻解碼裝置可從記憶體檢索資料並且對資料進行解碼。在許多實例中,由並不彼此通信而是僅編碼資料到記憶體和/或從記憶體檢索資料且解碼資料的裝置執行編碼和解碼。
在第7圖的實例中,源裝置10包含視頻源120、視訊轉碼器100和輸出介面140。在一些實例中,輸出介面140可包含調節器/解調器(數據機)和/或發射器。視頻源120可包括視頻捕獲裝置(例如,攝影機)、含有先前捕獲的視頻資料的視頻存檔、用以從視頻內容提供者接收視頻資料的視頻饋入介面,和/或用於產生視頻資料的電腦圖形系統,或視頻資料的此些來源的組合。
視訊轉碼器100可對來自視頻源120的視頻資料進行編碼。在一些實例中,源裝置10經由輸出介面140將經編碼視頻資料直接發射到目的地裝置20。 在其它實例中,經編碼視頻資料還可存儲到存儲裝置40上,供目的地裝置20以後存取來用於解碼和/或播放。
在第7圖的實例中,目的地裝置20包含輸入介面240、視頻解碼器200和顯示裝置220。在一些實例中,輸入介面240包含接收器和/或數據機。輸入介面240可經由鏈路30和/或從存儲裝置40接收經編碼視頻資料。顯示裝置220可與目的地裝置20集成或可在目的地裝置20外部。一般來說,顯示裝置220顯示經解碼視頻資料。顯示裝置220可包括多種顯示裝置,例如,液晶顯示器(liquid crystal display,LCD)、等離子顯示器、有機發光二極體(organic light-emitting diode,OLED)顯示器或其它類型的顯示裝置。
儘管第7圖中未圖示,但在一些方面,視訊轉碼器100和視頻解碼器200可各自與音訊編碼器和解碼器集成,且可包含適當的多工器-多路分用器單元或其它硬體和軟體,以處置共同資料流程或單獨資料流程中的音訊和視頻兩者的編碼。在一些實例中,如果適用的話,那麼混流-分流(multiplex-demultiplex,MUX-DEMUX)單元可符合ITU H.223多工器協議,或例如使用者資料包通訊協定(user datagram protocol,UDP)等其它協議。
視訊轉碼器100和視頻解碼器200各自可實施為例如以下各項的多種電路中的任一者:一或多個微處理器、數位訊號處理器(digital signal processor,DSP)、專用積體電路(application-specific integrated circuit,ASIC)、現場可程式設計閘陣列(field programmable gate array,FPGA)、離散邏輯、硬體或其任何組合。如果部分地以軟體來實施本發明,那麼裝置可將用於軟體的指令存儲在合適的非易失性電腦可讀存儲媒體中,且可使用一或多個處理器在硬體中執行所述指令從而實施本發明技術。前述內容(包含硬體、軟體、硬體與軟體的組合等)中的任一者可被視為一或多個處理器。視訊轉碼器100和視頻解碼器200中的每一者可包含在一或多個編碼器或解碼器中,所述編碼器或解碼器中的任一者可集成為相應裝置中的組合編碼器/解碼器(編碼解碼器)的一部分。
本發明可大體上將視訊轉碼器100稱為將某些資訊“發信號通知”或“發射”到例如視頻解碼器200的另一裝置。術語“發信號通知”或“發射”可大體上指代用以對經壓縮視頻資料進行解碼的語法元素和/或其它資料的傳送。此傳送可即時或幾乎即時地發生。替代地,此通信可經過一段時間後發生,例如可在編碼時在經編碼位元流中將語法元素存儲到電腦可讀存儲媒體時發生,解碼裝置接著可在所述語法元素存儲到此媒體之後的任何時間檢索所述語法元素。
視訊轉碼器100和視頻解碼器200可根據例如高效視頻編碼(HEVC)等 視訊壓縮標準或其擴展來操作,並且可符合HEVC測試模型(HM)。或者,視訊轉碼器100和視頻解碼器200也可根據其它業界標準來操作,所述標準例如是ITU-T H.264、H.265標準,或此類標準的擴展。然而,本發明的技術不限於任何特定編解碼標準。
在一個實例中,一併參閱第4圖,視訊轉碼器100用於:將與當前待編碼的圖像塊相關的語法元素編碼入數位視訊輸出位元流(簡稱為位流或碼流),這裡將用於當前圖像塊幀間預測的語法元素簡稱為幀間預測資料,其中,幀間預測資料可以包括用於指示目標運動資訊的索引資訊,為了確定用於對當前圖像塊進行編碼的目標運動資訊,視訊轉碼器100還用於確定或生成候選運動資訊清單(S410),並根據篩選規則(例如RDO)從候選運動資訊清單中確定目標運動資訊(S420),視訊轉碼器100還用於基於確定的目標運動資訊,編碼所述當前圖像塊(S430),這裡的編碼過程可以包括基於確定的目標運動資訊,預測所述當前圖像塊中每個子運動補償單元(亦可稱為基本運動補償單元)的運動資訊,並利用所述當前圖像塊中一個或多個子運動補償單元的運動資訊對所述當前圖像塊執行幀間預測。
應理解,基本運動補償單元是進行運動補償的最小單元,在單元內具有統一的運動資訊,在本發明實施例中,採用圖元點作為基本運動補償單元,也可以使用圖元矩陣作為基本運動補償單元等,本發明不作限定。
應當理解的是,當視訊轉碼器使用AMVP模式進行幀間預測時,如果由基於本發明提出的新的幀間預測方法預測出的運動資訊產生的預測塊與當前待編碼圖像塊(即原始塊)之間的差值(即殘差)為0,則視訊轉碼器100中只需要將與當前待編碼的圖像塊相關的語法元素編入位元流(亦稱為碼流);反之,除了語法元素外,還需要將相應的殘差編入位流。當視訊轉碼器使用融合模式進行幀間預測時,只需將目標運動資訊的索引資訊編入位元流。
在另一實例中,一併參閱第4圖,視頻解碼器200用於:從位流中解碼出與當前待解碼的圖像塊相關的語法元素,並確定候選運動資訊清單(S410),這裡將用於當前圖像塊幀間預測的語法元素簡稱為幀間預測資料,所述幀間預測資料包括用於確定目標運動資訊的索引資訊,視頻解碼器200基於幀間預測資料中的索引資訊確定目標運動資訊(S420),並且基於確定的目標運動資訊解碼所述當前圖像塊(S430),這裡的解碼過程可以包括基於確定的目標運動資訊,預測所述當前圖像塊中一個或多個基本運動補償單元的運動資訊,並利用所述當前圖像塊中一個或多個基本運動補償單元的運動資訊對所述當前圖像塊執行幀間預測。
可選地,視頻解碼器200確定的候選運動資訊清單可以是完整的列表(即,與視訊轉碼器確定的候選運動資訊清單相同的清單),也可以是不完整的清單,例如,包括目標運動資訊的部分清單,例如如果碼流中攜帶的用於確定目標運動資訊的索引值為3,則確定的不完整的清單包括索引值為0,1,2和3的候選運動資訊,而可以不包括索引值為4和5等的候選運動資訊。
由上可見,本發明提供的視訊轉碼器100和視頻解碼器200,構建包括兩種候選運動資訊的候選運動資訊清單,該兩種候選運動資訊具有統一編排的索引資訊,若兩種候選運動資訊中的一種不適用於當前圖像塊,則視訊轉碼器100可以從候選運動資訊清單包括的另一種候選運動資訊中選擇目標運動資訊,並將該目標運動資訊的索引資訊通過碼流發送給視頻解碼器200,由於候選運動資訊清單中的候選運動資訊具有唯一的索引資訊,因此,視訊轉碼器100無需在碼流中傳遞指示編碼端使用的候選運動資訊清單構建方法的指示資訊,從而減少了視頻傳輸的位元開銷。
第8圖為本發明實施例中所描述的一種實例的視訊轉碼器100的框圖。視訊轉碼器100用於將視頻輸出到後處理實體41。後處理實體41表示可處理 來自視訊轉碼器100的經編碼視頻資料的視頻實體的實例,例如媒體感知網路元件(MANE)或拼接/編輯裝置。在一些情況下,後處理實體41可為網路實體的實例。在一些視頻編碼系統中,後處理實體41和視訊轉碼器100可為單獨裝置的若干部分,而在其它情況下,相對於後處理實體41所描述的功能性可由包括視訊轉碼器100的相同裝置執行。在某一實例中,後處理實體41是第7圖的存儲裝置40的實例。
視訊轉碼器100可根據本發明提出的方法執行視頻圖像塊的幀間預測。
在第8圖的實例中,視訊轉碼器100包括預測處理單元108、濾波器單元106、經解碼圖像緩衝器(decoded picturebuffer,DPB)107、求和器112、變換器101、量化器102和熵編碼器103。預測處理單元108包括幀間預測器110和幀內預測器109。為了圖像塊重構,視訊轉碼器100還包含反量化器104、反變換器105和求和器111。濾波器單元106既定表示一或多個環路濾波器,例如去塊濾波器、自我調整環路濾波器(adaptive loop filter,ALF)和樣本自我調整偏移(sample adaptive offset,SAO)濾波器。儘管在第8圖中將濾波器單元106示出為環路內濾波器,但在其它實現方式下,可將濾波器單元106實施為環路後濾波器。在一種示例下,視訊轉碼器100還可以包括視頻資料記憶體、分割單元(圖中未示意)。
視頻資料記憶體可存儲待由視訊轉碼器100的元件編碼的視頻資料。可從視頻源120獲得存儲在視頻資料記憶體中的視頻資料。DPB 107可為參考圖像記憶體,其存儲用於由視訊轉碼器100在幀內、幀間解碼模式中對視頻資料進行編碼的參考視頻資料。視頻資料記憶體和DPB 107可由多種記憶體裝置中的任一者形成,例如包含同步DRAM(SDRAM)的動態隨機存取記憶體(DRAM)、磁阻式RAM(MRAM)、電阻式RAM(RRAM),或其它類型的記憶體裝置。視頻資料記憶體和DPB 107可由同一記憶體裝置或單獨記憶體裝置提供。在各種實例中, 視頻資料記憶體可與視訊轉碼器100的其它元件一起在晶片上,或相對於那些元件在晶片外。
如第8圖中所示,視訊轉碼器100接收視頻資料,並將所述視頻資料存儲在視頻資料記憶體中。分割單元將所述視頻資料分割成若干圖像塊,而且這些圖像塊可以被進一步分割為更小的塊,例如基於四叉樹結構或者二叉樹結構的圖像塊分割。此分割還可包含分割成條帶(slice)、片(tile)或其它較大單元。視訊轉碼器100通常說明編碼待編碼的視頻條帶內的圖像塊的元件。所述條帶可分成多個圖像塊(並且可能分成被稱作片的圖像塊集合)。預測處理單元108(具體是預測處理單元108中的幀間預測單元110)可以確定當前圖像塊的候選運動資訊清單,並根據篩選規則從該候選運動資訊清單中確定目標運動資訊,並根據目標運動資訊,對當前圖像塊執行幀間預測預測,預處理單元108可以將所得經幀內、幀間解碼的塊提供給求和器112以產生殘差塊,且提供給求和器111以重構用作參考圖像的經編碼塊。此外,預處理單元108(具體是,幀間預測單元110)可以將目標運動資訊的索引資訊發送至熵編碼器103,以便於熵編碼器103將目標運動資訊的索引資訊編入碼流。
預測處理單元108內的幀內預測器109可相對於與待編碼當前塊在相同幀或條帶中的一或多個相鄰塊執行當前圖像塊的幀內預測性編碼,以去除空間冗餘。預測處理單元108內的幀間預測器110可相對於一或多個參考圖像中的一或多個預測塊執行當前圖像塊的幀間預測性編碼以去除時間冗餘。
具體的,幀間預測器110可用於確定目標運動資訊。舉例來說,幀間預測器110可使用速率-失真分析來計算候選運動資訊清單中的各種運動資訊的速率-失真值,並從中選擇具有最佳速率-失真特性的運動資訊。速率失真分析通常確定經編碼塊與經編碼以產生所述經編碼塊的原始的未經編碼塊之間的失真(或誤差)的量,以及用於產生經編碼塊的位元速率(也就是說,位元數目)。 例如,幀間預測器110可確定候選運動資訊集合中編碼所述當前圖像塊的編碼率失真代價最小的運動資訊為用於對當前圖像塊進行幀間預測的目標運動資訊。下文將詳細介紹幀間預測性編碼過程。
幀間預測器110用於基於確定的目標運動資訊,預測當前圖像塊中一個或多個基本運動補償單元的運動資訊(例如運動向量),並利用當前圖像塊中一個或多個基本運動補償單元的運動資訊(例如運動向量)獲取或產生當前圖像塊的預測塊。幀間預測器110可在參考圖像清單中的一者中定位所述運動向量指向的預測塊。幀間預測器110還可產生與圖像塊和視頻條帶相關聯的語法元素以供視頻解碼器200在對視頻條帶的圖像塊解碼時使用。又或者,一種示例下,幀間預測器110利用每個基本運動補償單元的運動資訊執行運動補償過程,以生成每個基本運動補償單元的預測塊,從而得到當前圖像塊的預測塊;應當理解的是,這裡的幀間預測器110執行運動估計和運動補償過程。
具體的,在為當前圖像塊選擇目標運動資訊之後,幀間預測器110可將指示當前圖像塊的目標運動資訊提供到熵編碼器103,以便於熵編碼器103編碼指示所選目標運動資訊的資訊。在本發明中,熵編碼器103可在所發射的位流中包含與當前圖像塊相關的幀間預測資料,其可包括索引資訊,以表示從候選運動資訊清單中選擇的目標運動資訊。
幀內預測器109可對當前圖像塊執行幀內預測。明確地說,幀內預測器109可確定用來編碼當前塊的幀內預測模式。舉例來說,幀內預測器109可使用速率-失真分析來計算各種待測試的候選運動資訊的速率-失真值,並從待測試模式當中選擇具有最佳速率-失真特性的幀內預測模式。在任何情況下,在為圖像塊選擇目標運動資訊之後,幀內預測器109可將當前圖像塊的目標運動資訊提供到熵編碼器103,以便熵編碼器103編碼目標運動資訊。
在預測處理單元108經由幀間預測、幀內預測產生當前圖像塊的預測 塊之後,視訊轉碼器100通過從待編碼的當前圖像塊減去所述預測塊來形成殘差圖像塊。求和器112表示執行此減法運算的一或多個組件。所述殘差塊中的殘差視頻資料可包含在一或多個TU中,並應用於變換器101。變換器101使用例如離散餘弦變換(DCT)或概念上類似的變換等變換將殘差視頻資料變換成殘差變換係數。變換器101可將殘差視頻資料從圖元值域轉換到變換域,例如頻域。
變換器101可將所得變換係數發送到量化器102。量化器102量化所述變換係數以進一步減小位元速率。在一些實例中,量化器102可接著執行對包含經量化的變換係數的矩陣的掃描。或者,熵編碼器103可執行掃描。
在量化之後,熵編碼器103對經量化變換係數進行熵編碼。舉例來說,熵編碼器103可執行上下文自我調整可變長度編碼(context adaptive variable length coding,CAVLC)、上下文自我調整二進位算術編碼(context adaptive binary arithmatic coding,CABAC)、基於語法的上下文自我調整二進位算術編碼(SBAC)、概率區間分割熵(PIPE)編碼或另一熵編碼方法或技術。在由熵編碼器103熵編碼之後,可將經編碼位元流發射到視頻解碼器200,或經存檔以供稍後發射或由視頻解碼器200檢索。熵編碼器103還可對待編碼的當前圖像塊的語法元素進行熵編碼,例如,將目標運動資訊編入碼流中。
反量化器104和反變化器105分別應用逆量化和逆變換以在圖元域中重構所述殘差塊,例如以供稍後用作參考圖像的參考塊。求和器111將經重構的殘差塊添加到由幀間預測器110或幀內預測器109產生的預測塊,以產生經重構圖像塊。濾波器單元106可以適用於經重構圖像塊以減小失真,諸如方塊效應(block artifacts)。然後,該經重構圖像塊作為參考塊存儲在經解碼圖像緩衝器107中,可由幀間預測器110用作參考塊以對後續視頻幀或圖像中的塊進行幀間預測。
應當理解的是,視訊轉碼器100的其它的結構變化可用於編碼視頻流。例如,對於某些圖像塊或者圖像幀,視訊轉碼器100可以直接地量化殘差信 號而不需要經變換器101處理,相應地也不需要經反變換器105處理;或者,對於某些圖像塊或者圖像幀,視訊轉碼器100沒有產生殘差數據,相應地不需要經變換器101、量化器102、反量化器104和反變換器105處理;或者,視訊轉碼器100可以將經重構圖像塊作為參考塊直接地進行存儲而不需要經濾波器單元106處理;或者,視訊轉碼器100中量化器102和反量化器104可以合併在一起。
第9圖為本發明實施例中所描述的一種實例的視頻解碼器200的框圖。在第9圖的實例中,視頻解碼器200包括熵解碼器203、預測處理單元208、反量化器204、反變換器205、求和器211、濾波器單元206以及經解碼圖像緩衝器207。預測處理單元208可以包括幀間預測器210和幀內預測器209。在一些實例中,視頻解碼器200可執行大體上與相對於來自第8圖的視訊轉碼器100描述的編碼過程互逆的解碼過程。
在解碼過程中,視頻解碼器200從視訊轉碼器100接收表示經編碼視頻條帶的圖像塊和相關聯的語法元素的經編碼視頻位元流。視頻解碼器200可從網路實體42接收視頻資料,可選的,還可以將所述視頻資料存儲在視頻資料記憶體(圖中未示意)中。視頻資料記憶體可存儲待由視頻解碼器200的元件解碼的視頻資料,例如經編碼視頻位元流。存儲在視頻資料記憶體中的視頻資料,例如可從存儲裝置40、從相機等本地視頻源、經由視頻資料的有線或無線網路通信或者通過存取物理資料存儲媒體而獲得。視頻資料記憶體可作為用於存儲來自經編碼視頻位元流的經編碼視頻資料的經解碼圖像緩衝器(CPB)。因此,儘管在第9圖中沒有示意出視頻資料記憶體,但視頻資料記憶體和DPB 207可以是同一個的記憶體,也可以是單獨設置的記憶體。視頻資料記憶體和DPB 207可由多種記憶體裝置中的任一者形成,例如:包含同步DRAM(SDRAM)的動態隨機存取記憶體(DRAM)、磁阻式RAM(MRAM)、電阻式RAM(RRAM),或其它類型的記憶體裝置。在各種實例中,視頻資料記憶體可與視頻解碼器200的其 它元件一起集成在晶片上,或相對於那些元件設置在晶片外。
網路實體42可例如為伺服器、MANE、視頻編輯器/剪接器,或用於實施上文所描述的技術中的一或多者的其它此裝置。網路實體42可包括或可不包括視訊轉碼器,例如視訊轉碼器100。在網路實體42將經編碼視頻位元流發送到視頻解碼器200之前,網路實體42可實施本發明中描述的技術中的部分。在一些視頻解碼系統中,網路實體42和視頻解碼器200可為單獨裝置的部分,而在其它情況下,相對於網路實體42描述的功能性可由包括視頻解碼器200的相同裝置執行。在一些情況下,網路實體42可為第7圖的存儲裝置40的實例。
視頻解碼器200的熵解碼器203對位流進行熵解碼以產生經量化的係數和一些語法元素。熵解碼器203將語法元素轉發到預測處理單元208。視頻解碼器200可接收在視頻條帶層級和/或圖像塊層級處的語法元素。本發明中,在一種示例下,這裡的語法元素可以包括與當前圖像塊相關的目標運動資訊。
當視頻條帶被解碼為經幀內解碼(I)條帶時,預測處理單元208的幀內預測器209可基於發信號通知的幀內預測模式和來自當前幀或圖像的先前經解碼塊的資料而產生當前視頻條帶的圖像塊的預測塊。當視頻條帶被解碼為經幀間解碼(即,B或P)條帶時,預測處理單元208的幀間預測器210可基於從熵解碼器203接收到的語法元素,確定用於對當前視頻條帶的當前圖像塊進行解碼的目標運動資訊,基於確定的目標運動資訊,對所述當前圖像塊進行解碼(例如執行幀間預測)。具體的,幀間預測器210可確定是否對當前視頻條帶的當前圖像塊採用新的幀間預測方法(具體的,是否採用本發明的方法來確定候選運動資訊清單)進行預測,如果語法元素指示採用新的幀間預測方法來對當前圖像塊進行預測,基於新的幀間預測方法(例如通過語法元素指定的一種新的幀間預測方法或默認的一種新的幀間預測方法)預測當前視頻條帶的當前圖像塊或當前圖像塊的基本運動補償單元的運動資訊,從而通過運動補償過程使用預測出 的當前圖像塊或當前圖像塊的基本運動補償單元的運動資訊來獲取或生成當前圖像塊或當前圖像塊的基本運動補償單元的預測塊。這裡的運動資訊可以包括參考圖像資訊和運動向量,其中參考圖像資訊可以包括但不限於單向/雙向預測資訊,參考圖像清單號和參考圖像清單對應的參考圖像索引。對於幀間預測,可從參考圖像清單中的一者內的參考圖像中的一者產生預測塊。視頻解碼器200可基於存儲在DPB 207中的參考圖像來建構參考圖像清單,即清單0和列表1。當前圖像的參考幀索引可包含於參考幀列表0和列表1中的一或多者中。在一些實例中,可以是視訊轉碼器100發信號通知指示是否採用新的幀間預測方法來解碼特定塊的特定語法元素,或者,也可以是發信號通知指示是否採用新的幀間預測方法,以及指示具體採用哪一種新的幀間預測方法來解碼特定塊的特定語法元素。應當理解的是,這裡的幀間預測器210執行運動補償過程。上文方法實施例中已經詳細的闡述了採用兩個控制點(4參數)的仿射模型(例如旋轉縮放仿射模型),還可以採用三個控制點(6參數)的仿射模型(例如旋轉縮放仿射模型),或者四個控制點(8參數)的仿射模型(例如透視仿射模型)來預測當前圖像塊或當前圖像塊的基本運動補償單元的運動資訊的幀間預測過程。
反量化器204將在位流中提供且由熵解碼器203解碼的經量化變換係數逆量化,即去量化。逆量化過程可包括:使用由視訊轉碼器100針對視頻條帶中的每個圖像塊計算的量化參數來確定應施加的量化程度以及同樣地確定應施加的逆量化程度。反變換器205將逆變換應用於變換係數,例如逆DCT、逆整數變換或概念上類似的逆變換過程,以便產生圖元域中的殘差塊。
在幀間預測器210產生用於當前圖像塊或當前圖像塊的子塊的預測塊之後,視頻解碼器200通過將來自反變換器205的殘差塊與由幀間預測器210產生的對應預測塊求和以得到重建的塊,即經解碼圖像塊。求和器211表示執行此求和操作的組件。在需要時,還可使用環路濾波器(在解碼環路中或在解碼環路 之後)來使圖元轉變平滑或者以其它方式改進視頻品質。濾波器單元206可以表示一或多個環路濾波器,例如去塊濾波器、自我調整環路濾波器(ALF)以及樣本自我調整偏移(SAO)濾波器。儘管在第9圖中將濾波器單元206示出為環路內濾波器,但在其它實現方式中,可將濾波器單元206實施為環路後濾波器。在一種示例下,濾波器單元206適用於重建塊以減小塊失真,並且該結果作為經解碼視頻流輸出。並且,還可以將給定幀或圖像中的經解碼圖像塊存儲在經解碼圖像緩衝器207中,經解碼圖像緩衝器207存儲用於後續運動補償的參考圖像。經解碼圖像緩衝器207可為記憶體的一部分,其還可以存儲經解碼視頻,以供稍後在顯示裝置(例如第7圖的顯示裝置220)上呈現,或可與此類記憶體分開。
應當理解的是,視頻解碼器200的其它結構變化可用於解碼經編碼視頻位元流。例如,視頻解碼器200可以不經濾波器單元206處理而生成輸出視頻流;或者,對於某些圖像塊或者圖像幀,視頻解碼器200的熵解碼器203沒有解碼出經量化的係數,相應地不需要經反量化器204和反變換器205處理。
第10圖為本發明實施例中的幀間預測裝置1000的一種示意性框圖。需要說明的是,幀間預測裝置1000既適用於解碼視頻圖像的幀間預測,也適用於編碼視頻圖像的幀間預測,應當理解的是,這裡的幀間預測裝置1000可以對應於第8圖中的幀間預測器110,或者可以對應於第9圖中的幀間預測器210,該幀間預測裝置1000可以包括:
候選運動資訊清單確定單元1001,用於確定當前圖像塊的候選運動資訊清單,所述候選運動資訊清單包括至少一組第一候選運動資訊、至少一組第二候選運動資訊,以及用於索引所述第一候選運動資訊和所述第二候選運動資訊的多個索引資訊,所述第一候選運動資訊為基於所述當前圖像塊的第一相鄰圖像塊的預設位置的運動資訊和所述第一相鄰圖像塊的運動模型確定的運動資訊,所述第二候選運動資訊為與所述當前圖像塊的至少兩個預設位置分別相 鄰的至少兩個圖元位置的運動資訊的集合,所述至少兩個圖元位置位於所述當前圖像塊的至少一個第二相鄰圖像塊; 幀間預測處理單元1002,用於從所述候選運動資訊清單中確定目標運動資訊;根據所述目標運動資訊,對所述當前圖像塊執行幀間預測。
由此可見,幀間預測裝置1000構建包括兩種候選運動資訊的候選運動資訊清單,該兩種候選運動資訊具有統一編排的索引資訊,若兩種候選運動資訊中的一種不適用於當前圖像塊,則編碼端可以從候選運動資訊清單包括的另一種候選運動資訊中選擇目標運動資訊,並將該目標運動資訊的索引資訊通過碼流發送給解碼端,由於候選運動資訊清單中的候選運動資訊具有唯一的索引資訊,因此,編碼端無需在碼流中傳遞指示編碼端使用的運動估計方法的指示資訊,從而減少了視頻傳輸的位元開銷。
在一種可行的實施方式中,多個索引資訊中第一索引資訊的位元數小於多個索引資訊中第二索引資訊的位元數,第一索引資訊對應先加入候選運動資訊清單的運動資訊,第二索引資訊對應後加入候選運動資訊清單的運動資訊;幀間預測處理單元1002具體用於:先將第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單。
第一候選運動資訊為基於運動模型的運動資訊,根據第一候選運動資訊進行編解碼的效率高於根據第二候選運動資訊進行編解碼的效率,因此,第一候選運動資訊為目標運動資訊的概率較大,因此,可以將第一候選運動資訊的索引資訊設置為位元數較小的索引資訊,有利於減小視頻傳輸的位元開銷。
在一些可能的實施場景下,如第一相鄰圖像塊包括採用平動運動模型的第一相鄰圖像塊和採用非平動運動模型的第一相鄰圖像塊,多個索引資訊中第一索引資訊的位元數小於多個索引資訊中第二索引資訊的位元數,第一索引資訊對應先加入候選運動資訊清單的運動資訊,第二索引資訊對應後加入候 選運動資訊清單的運動資訊,所述幀間預測處理單元1002具體用於: 當採用非平動運動模型的第一相鄰圖像塊的數量大於或等於數量閾值時,基於採用非平動運動模型的第一相鄰圖像塊的至少兩個預設位置的運動資訊以及採用非平動模型的第一相鄰圖像塊的運動模型推導出當前圖像塊對應的至少兩個預設位置的運動資訊,並將當前圖像塊對應的至少兩個預設位置的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單。
若採用非平動運動模型的第一相鄰圖像塊的數量大於或等於數量閾值,則說明當前圖像塊為採用非平動運動模型的圖像塊的概率較大,因此,可以先將基於採用非平動運動模型的第一相鄰圖像塊推導出的第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單,由於先加入候選運動資訊清單的運動資訊的索引資訊的位元數較小,且目標運動資訊為先加入候選運動資訊清單的運動資訊的概率較大,從而有利於減少視頻傳輸的位元開銷。
在一些可行的實施方式中,在確定候選運動資訊清單的方面,所述幀間預測處理單元1002具體用於: 當候選運動資訊清單的長度小於長度閾值,且第一相鄰圖像塊還包括採用平動運動模型的第一相鄰圖像塊時,進一步將採用平動運動模型的第一相鄰圖像塊的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單,若候選運動資訊清單的長度仍然小於長度閾值,再將零運動資訊加入所述候選運動資訊清單。
在一些可能的實施場景下,如第一相鄰圖像塊包括採用平動運動模型的第一相鄰圖像塊和採用非平動運動模型的第一相鄰圖像塊,多個索引資訊中第一索引資訊的位元數小於多個索引資訊中第二索引資訊的位元數,第一索 引資訊對應先加入候選運動資訊清單的運動資訊,第二索引資訊對應後加入候選運動資訊清單的運動資訊,所述幀間預測處理單元1002具體用於: 當採用非平動運動模型的第一相鄰圖像塊的數量小於或等於數量閾值時,先將採用平動運動模型的第一相鄰圖像塊的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單。
若採用非平動運動模型的第一相鄰圖像塊的數量小於或等於數量閾值,則說明當前圖像塊為採用非平動運動模型的圖像塊的概率較大,因此,可以先將基於採用平動運動模型的第一相鄰圖像塊的運動資訊作為第一候選運動資訊加入候選運動資訊清單,再將第二候選運動資訊加入候選運動資訊清單,由於先加入候選運動資訊清單的運動資訊的索引資訊的位元數較小,且目標運動資訊為先加入候選運動資訊清單的運動資訊的概率較大,從而有利於減少視頻傳輸的位元開銷。
在一些可行的實施方式中,在確定候選運動資訊清單方面,所述幀間預測處理單元1002具體用於:當候選運動資訊清單的長度小於長度閾值,且第一相鄰圖像塊還包括非採用平動運動模型的第一相鄰圖像塊時,進一步基於採用非平動運動模型的第一相鄰圖像塊的至少兩個預設位置的運動資訊以及採用非平動模型的第一相鄰圖像塊的運動模型推導出當前圖像塊的至少兩個預設位置的運動資訊,將當前圖像塊的至少兩個預設位置的運動資訊作為一組第一候選運動資訊加入候選運動資訊清單,若候選運動資訊清單的長度仍然小於長度閾值,再將零運動資訊加入所述候選運動資訊清單。
在一些可能的實施場景下,第一候選運動資訊和第二候選運動資訊均為當前圖像塊的第一組位置的運動資訊,當前圖像塊中至少兩個預設位置為 第二組位置,所述幀間預測處理單元1002具體用於: 當第二組位置與所述第一組位置相異時,根據位置變換公式以及第二位置對應的運動資訊推導出第二候選運動資訊。
當第一候選運動資訊對應的位置的數量和第二候選運動資訊對應的位置的數量相同時,根據本實施例得到的候選運動資訊清單中的運動資訊均為相同位置的運動資訊,從而減小了運動估計的複雜度。
在一些可能的實施場景下,第一候選運動資訊為當前圖像塊的第一組位置的運動資訊,第二候選運動資訊為當前圖像塊的第三組位置的運動資訊,所述幀間預測處理單元1002還用於: 當第一組位置與第三組位置相異時,根據位置變換公式以及第二候選運動資訊推導出第五候選運動資訊,所述第五候選運動資訊對應的位置與第一組位置相同。
當第一候選運動資訊對應的位置的數量和第二候選運動資訊對應的位置的數量相同時,根據本實施得到的候選運動資訊清單中的運動資訊均為相同位置的運動資訊,從而減小了運動估計的複雜度。
當所述裝置1000用於解碼視頻圖像,所述裝置1000還可以包括:幀間預測資料獲取單元(圖中未示意),用於接收包括用於確定目標運動資訊的索引資訊;相應的,幀間預測處理單元1002具體用於根據目標運動資訊的索引資訊從候選運動資訊清單中確定一組目標運動資訊。
當所述裝置1000用於編碼視頻圖像,所述裝置1000還可以包括:所述幀間預測模式處理單元1002具體用於根據篩選規則確定所述候選運動資訊清單中的目標運動資訊,例如確定所述候選運動資訊清單中,編碼當前圖像塊的編碼率失真代價最小的運動資訊為用於對當前圖像塊進行幀間預 測的目標運動資訊。
需要說明的是,本發明實施例的幀間預測裝置中的各個模組為實現本發明幀間預測方法中所包含的各種執行步驟的功能主體,即具備實現完整實現本發明幀間預測方法中的各個步驟以及這些步驟的擴展及變形的功能主體,具體請參見本文中對幀間預測方法的介紹,為簡潔起見,本文將不再贅述。
第11圖為本發明實施例的編碼設備或解碼設備(簡稱為解碼設備1100)的一種實現方式的示意性框圖。其中,解碼設備1100可以包括處理器1110、記憶體1130和匯流排系統1150。其中,處理器和記憶體通過匯流排系統相連,該記憶體用於存儲指令,該處理器用於執行該記憶體存儲的指令。編碼設備的記憶體存儲程式碼,且處理器可以調用記憶體中存儲的程式碼執行本發明描述的各種視頻編碼或解碼方法,尤其是本發明描述的幀間預測方法。為避免重複,這裡不再詳細描述。
在本發明實施例中,該處理器1110可以是中央處理單元(central processing unit,CPU),該處理器1110還可以是其他通用處理器、數位訊號處理器(DSP)、專用積體電路(ASIC)、現成可程式設計閘陣列(FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。
該記憶體1130可以包括唯讀記憶體(ROM)設備或者隨機存取記憶體(RAM)設備。任何其他適宜類型的存放裝置也可以用作記憶體1130。記憶體1130可以包括由處理器1110使用匯流排1150訪問的代碼和資料1131。記憶體1130可以進一步包括作業系統1133和應用程式1135,該應用程式1135包括允許處理器1110執行本發明描述的視頻編碼或解碼方法(尤其是本發明描述的幀間預測方法)的至少一個程式。例如,應用程式1135可以包括應用1至N,其進一步包括執行在本發明描述的視頻編碼或解碼方法的視頻編碼或解碼應用(簡稱視頻解碼應 用)。
該匯流排系統1150除包括資料匯流排之外,還可以包括電源匯流排、控制匯流排和狀態信號匯流排等。但是為了清楚說明起見,在圖中將各種匯流排都標為匯流排系統1150。
可選的,解碼設備1100還可以包括一個或多個輸出設備,諸如顯示器1170。在一個示例中,顯示器1170可以是觸感顯示器,其將顯示器與可操作地感測觸摸輸入的觸感單元合併。顯示器1170可以經由匯流排1150連接到處理器1110。
本領域技術人員能夠領會,結合本文公開描述的各種說明性邏輯框、模組和演算法步驟所描述的功能可以硬體、軟體、固件或其任何組合來實施。如果以軟體來實施,那麼各種說明性邏輯框、模組、和步驟描述的功能可作為一或多個指令或代碼在電腦可讀媒體上存儲或傳輸,且由基於硬體的處理單元執行。電腦可讀媒體可包含電腦可讀存儲媒體,其對應於有形媒體,例如資料存儲媒體,或包括任何促進將電腦程式從一處傳送到另一處的媒體(例如,根據通信協定)的通信媒體。以此方式,電腦可讀媒體大體上可對應於(1)非暫時性的有形電腦可讀存儲媒體,或(2)通信媒體,例如信號或載波。資料存儲媒體可為可由一或多個電腦或一或多個處理器存取以檢索用於實施本發明中描述的技術的指令、代碼和/或資料結構的任何可用媒體。電腦程式產品可包含電腦可讀媒體。
作為實例而非限制,此類電腦可讀存儲媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光碟存儲裝置、磁片存儲裝置或其它磁性存儲裝置、快閃記憶體或可用來存儲指令或資料結構的形式的所要程式碼並且可由電腦存取的任何其它媒體。並且,任何連接被恰當地稱作電腦可讀媒體。舉例來說,如果使用同軸纜線、光纖纜線、雙絞線、數位訂戶線(DSL)或例如紅外線、無線 電和微波等無線技術從網站、伺服器或其它遠端源傳輸指令,那麼同軸纜線、光纖纜線、雙絞線、DSL或例如紅外線、無線電和微波等無線技術包含在媒體的定義中。但是,應理解,所述電腦可讀存儲媒體和資料存儲媒體並不包括連接、載波、信號或其它暫時媒體,而是實際上針對於非暫時性有形存儲媒體。如本文中所使用,磁片和光碟包含壓縮光碟(CD)、鐳射光碟、光學光碟、數位多功能光碟(DVD)和藍光光碟,其中磁片通常以磁性方式再現資料,而光碟利用鐳射以光學方式再現資料。以上各項的組合也應包含在電腦可讀媒體的範圍內。
可通過例如一或多個數位訊號處理器(DSP)、通用微處理器、專用積體電路(ASIC)、現場可程式設計邏輯陣列(FPGA)或其它等效集成或離散邏輯電路等一或多個處理器來執行指令。因此,如本文中所使用的術語“處理器”可指前述結構或適合於實施本文中所描述的技術的任一其它結構中的任一者。另外,在一些方面中,本文中所描述的各種說明性邏輯框、模組、和步驟所描述的功能可以提供於經配置以用於編碼和解碼的專用硬體和/或軟體模組內,或者併入在組合轉碼器中。而且,所述技術可完全實施於一或多個電路或邏輯元件中。
本發明的技術可在各種各樣的裝置或設備中實施,包含無線手機、積體電路(IC)或一組IC(例如,晶片組)。本發明中描述各種元件、模組或單元是為了強調用於執行所揭示的技術的裝置的功能方面,但未必需要由不同硬體單元實現。實際上,如上文所描述,各種單元可結合合適的軟體和/或硬體組合在編碼解碼器硬體單元中,或者通過交互操作硬體單元(包含如上文所描述的一或多個處理器)來提供。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
400:方法
S410、S420、S430:步驟

Claims (26)

  1. 一種視頻資料的幀間預測方法,其特徵在於,包括:確定當前圖像塊的候選運動資訊清單,所述候選運動資訊清單包括至少一組第一候選運動資訊和至少一組第二候選運動資訊,其中所述第一候選運動資訊和所述第二候選運動資訊具有與之對應的索引資訊,所述第一候選運動資訊為基於所述當前圖像塊的第一相鄰圖像塊的預設位置的運動資訊和所述第一相鄰圖像塊的運動模型確定的運動資訊,所述第二候選運動資訊為與所述當前圖像塊的至少兩個預設位置分別相鄰的至少兩個圖元位置的運動資訊的集合,所述至少兩個圖元位置位於所述當前圖像塊的至少一個第二相鄰圖像塊;從所述候選運動資訊清單中確定目標運動資訊;根據所述目標運動資訊,對所述當前圖像塊執行幀間預測。
  2. 如請求項1所述的方法,其特徵在於,所述第一候選運動資訊的索引資訊的比特數小於或等於所述第二候選運動資訊的索引資訊的比特數。
  3. 如請求項1或2所述的方法,其特徵在於,所述確定當前圖像塊的候選運動資訊清單,包括:當所述第一相鄰圖像塊為採用平動運動模型的相鄰圖像塊時,將所述第一相鄰圖像塊的運動資訊作為一組第一候選運動資訊加入所述候選運動資訊清單;和/或當所述第一相鄰圖像塊為採用非平動運動模型的圖像塊時,根據所述第一相鄰圖像塊的至少兩個預設位置的運動資訊以及所述第一相鄰圖像塊的運動模型推導出所述當前圖像塊對應的至少兩個預設位置的運動資訊,並將所述當前圖像塊對應的至少兩個預設位置的運動資訊作為一組第一候選運動資訊加入所述候選運動資訊清單。
  4. 如請求項1所述的方法,其特徵在於,當採用非平動運動模型的第一相鄰圖像塊的數量大於或等於數量閾值時,第三候選運動資訊的索引資訊的比特數小於所述第二候選運動資訊的索引資訊的比特數,所述第三候選運動資訊為基於採用非平動運動模型的第一相鄰圖像塊的至少兩個預設位置的運動資訊以及採用非平動運動模型的第一相鄰圖像塊的運動模型推導出的一組第一候選運動資訊。
  5. 如請求項4所述的方法,其特徵在於,當所述候選運動資訊清單的長度小於長度閾值,且所述第一相鄰圖像塊還包括採用平動運動模型的第一相鄰圖像塊時,所述候選運動資訊清單還包括所述採用平動運動模型的第一相鄰圖像塊的運動資訊,所述採用平動運動模型的第一相鄰圖像塊的運動資訊為一組第一候選運動資訊,所述採用平動運動模型的第一相鄰圖像塊的運動資訊的索引資訊的比特數大於或等於所述第二候選運動資訊的索引資訊的比特數。
  6. 如請求項1所述的方法,其特徵在於,當採用非平動運動模型的第一相鄰圖像塊的數量小於或等於數量閾值時,採用平動運動模型的第一相鄰圖像塊的運動資訊為一組第一候選運動資訊,且所述採用平動運動模型的第一相鄰圖像塊的運動資訊的索引資訊的比特數小於所述第二候選運動資訊的索引資訊的比特數。
  7. 如請求項6所述的方法,其特徵在於,當所述候選運動資訊清單的長度小於長度閾值,且所述第一相鄰圖像塊還包括採用非平動運動模型的第一相鄰編碼塊時,所述候選運動資訊清單還包括第四候選運動資訊,所述第四候選運動資訊為基於採用非平動運動模型的第一相鄰編碼塊的至少兩個預設位置的運動資訊以及採用非平動運動模型的第一相鄰編碼塊的運動模型推導出的一組第一候選運動資訊,所述第四候選運動資訊的索引資訊 的比特數大於或等於所述第二候選運動資訊的索引資訊的比特數。
  8. 如請求項1或2所述的方法,其特徵在於,所述第一候選運動資訊和所述第二候選運動資訊均為所述當前圖像塊的第一組位置的運動資訊,所述當前圖像塊中至少兩個預設位置為第二組位置,所述確定當前圖像塊的候選運動資訊清單,包括:當所述第二組位置與所述第一組位置相異時,根據位置變換公式以及所述第二組位置對應的運動資訊推導出所述第二候選運動資訊。
  9. 如請求項1或2所述的方法,其特徵在於,所述第一候選運動資訊為所述當前圖像塊的第一組位置的運動資訊,所述第二候選運動資訊為所述當前圖像塊的第三組位置的運動資訊,所述方法還包括:當所述第一組位置與所述第三組位置相異時,根據位置變換公式以及所述第二候選運動資訊推導出第五候選運動資訊,所述第五候選運動資訊對應的位置與所述第一組位置相同。
  10. 如請求項1或2所述的方法,其特徵在於,所述第一候選運動資訊和所述第二候選運動資訊均為所述當前圖像塊的第一組位置的運動資訊。
  11. 如請求項10所述的方法,其特徵在於,所述第二候選運動資訊是基於第二組位置對應的運動資訊進行位置變換得到的,其中所述第二候選運動資訊為所述當前圖像塊的第一組位置的運動資訊,所述第二組位置與所述第一組位置相異,所述第二組位置為所述當前圖像塊中至少兩個預設位置,所述第一組位置為所述當前圖像塊中至少兩個預設位置。
  12. 如請求項11所述的方法,其特徵在於, 所述第二組位置為所述當前圖像塊中左上角位置,右上角位置,右下角位置;所述第一組位置為所述當前圖像塊中左上角位置,右上角位置,左下角位置;或,所述第二組位置為所述當前圖像塊中左上角位置,左下角位置,右下角位置;所述第一組位置為所述當前圖像塊中左上角位置,右上角位置,左下角位置;或,所述第二組位置為所述當前圖像塊中右上角位置,左下角位置,右下角位置;所述第一組位置為所述當前圖像塊中左上角位置,右上角位置,左下角位置;或,所述第二組位置為所述當前圖像塊中左上角位置,左下角位置;所述第一組位置為所述當前圖像塊中左上角位置,右上角位置。
  13. 一種視頻資料的幀間預測裝置,其特徵在於,包括:候選運動資訊清單確定單元,用於確定當前圖像塊的候選運動資訊清單,所述候選運動資訊清單包括至少一組第一候選運動資訊、至少一組第二候選運動資訊,以及用於索引所述第一候選運動資訊和所述第二候選運動資訊的多個索引資訊,所述第一候選運動資訊為基於所述當前圖像塊的第一相鄰圖像塊的預設位置的運動資訊和所述第一相鄰圖像塊的運動模型確定的運動資訊,所述第二候選運動資訊為與所述當前圖像塊的至少兩個預設位置分別相鄰的至少兩個圖元位置的運動資訊的集合,所述至少兩個圖元位置位於所述當前圖像塊的至少一個第二相鄰圖像塊;幀間預測處理單元,用於從所述候選運動資訊清單中確定目標運動資訊;所述幀間預測處理單元還用於根據所述目標運動資訊,對所述當前圖像塊執行幀間預測。
  14. 如請求項13所述的裝置,其特徵在於,所述第一候選運動資訊的索 引資訊的比特數小於或等於所述第二候選運動資訊的索引資訊的比特數。
  15. 如請求項13或14所述的裝置,其特徵在於,所述候選運動資訊清單單元具體用於:當所述第一相鄰圖像塊為採用平動運動模型的相鄰圖像塊時,將所述第一相鄰圖像塊的運動資訊作為一組第一候選運動資訊加入所述候選運動資訊清單;和/或當所述第一相鄰圖像塊為採用非平動運動模型的圖像塊時,根據所述第一相鄰圖像塊的至少兩個預設位置的運動資訊以及所述第一相鄰圖像塊的運動模型推導出所述當前圖像塊對應的至少兩個預設位置的運動資訊,並將所述當前圖像塊對應的至少兩個預設位置的運動資訊作為一組第一候選運動資訊加入所述候選運動資訊清單。
  16. 如請求項13所述的裝置,其特徵在於,當採用非平動運動模型的第一相鄰圖像塊的數量大於或等於數量閾值時,第三候選運動資訊的索引資訊的比特數小於所述第二候選運動資訊的索引資訊的比特數,所述第三候選運動資訊為基於採用非平動運動模型的第一相鄰圖像塊的至少兩個預設位置的運動資訊以及採用非平動運動模型的第一相鄰圖像塊的運動模型推導出的一組第一候選運動資訊。
  17. 如請求項16所述的裝置,其特徵在於,當所述候選運動資訊清單的長度小於長度閾值,且所述第一相鄰圖像塊還包括採用平動運動模型的第一相鄰圖像塊時,所述候選運動資訊清單還包括所述採用平動運動模型的第一相鄰圖像塊的運動資訊,所述採用平動運動模型的第一相鄰圖像塊的運動資訊為一組第一候選運動資訊,所述採用平動運動模型的第一相鄰圖像塊的運動資訊的索引資訊的比特數大於或等於所述第二候選運動資訊的 索引資訊的比特數。
  18. 如請求項13所述的裝置,其特徵在於,當採用非平動運動模型的第一相鄰圖像塊的數量小於或等於數量閾值時,採用平動運動模型的第一相鄰圖像塊的運動資訊為一組第一候選運動資訊,且所述採用平動運動模型的第一相鄰圖像塊的運動資訊的索引資訊的比特數小於所述第二候選運動資訊的索引資訊的比特數。
  19. 如請求項18所述的裝置,其特徵在於,當所述候選運動資訊清單的長度小於長度閾值,且所述第一相鄰圖像塊還包括採用非平動運動模型的第一相鄰編碼塊時,所述候選運動資訊清單還包括第四候選運動資訊,所述第四候選運動資訊為基於採用非平動運動模型的第一相鄰編碼塊的至少兩個預設位置的運動資訊以及採用非平動運動模型的第一相鄰編碼塊的運動模型推導出的一組第一候選運動資訊,所述第四候選運動資訊的索引資訊的比特數大於或等於所述第二候選運動資訊的索引資訊的比特數。
  20. 如請求項13或14所述的裝置,其特徵在於,所述第一候選運動資訊和所述第二候選運動資訊均為所述當前圖像塊的第一組位置的運動資訊,所述當前圖像塊中至少兩個預設位置為第二組位置,所述候選運動資訊清單單元具體用於:當所述第二組位置與所述第一組位置相異時,根據位置變換公式以及所述第二組位置對應的運動資訊推導出所述第二候選運動資訊。
  21. 如請求項13或14中任一項所述的裝置,其特徵在於,所述第一候選運動資訊為所述當前圖像塊的第一組位置的運動資訊,所述第二候選運動資訊為所述當前圖像塊的第三組位置的運動資訊,所述候選運動資訊清單單元還用於: 當所述第一組位置與所述第三組位置相異時,根據位置變換公式以及所述第二候選運動資訊推導出第五候選運動資訊,所述第五候選運動資訊對應的位置與所述第一組位置相同。
  22. 如請求項13或14所述的裝置,其特徵在於,所述第一候選運動資訊和所述第二候選運動資訊均為所述當前圖像塊的第一組位置的運動資訊。
  23. 如請求項22所述的裝置,其特徵在於,所述第二候選運動資訊是基於第二組位置對應的運動資訊進行位置變換得到的,其中所述第二候選運動資訊為所述當前圖像塊的第一組位置的運動資訊,所述第二組位置與所述第一組位置相異,所述第二組位置為所述當前圖像塊中至少兩個預設位置,所述第一組位置為所述當前圖像塊中至少兩個預設位置。
  24. 如請求項23所述的裝置,其特徵在於,所述第二組位置為所述當前圖像塊中左上角位置,右上角位置,右下角位置;所述第一組位置為所述當前圖像塊中左上角位置,右上角位置,左下角位置;或,所述第二組位置為所述當前圖像塊中左上角位置,左下角位置,右下角位置;所述第一組位置為所述當前圖像塊中左上角位置,右上角位置,左下角位置;或,所述第二組位置為所述當前圖像塊中右上角位置,左下角位置,右下角位置;所述第一組位置為所述當前圖像塊中左上角位置,右上角位置,左下角位置;或,所述第二組位置為所述當前圖像塊中左上角位置,左下角位置;所述第一組位置為所述當前圖像塊中左上角位置,右上角位置。
  25. 一種視訊轉碼器,其特徵在於,所述視訊轉碼器用於編碼圖像塊,所述視訊轉碼器包括:如請求項13至14中任一項所述的幀間預測裝置,所述幀間預測裝置用於基於目標運動資訊預測待編碼圖像塊的預測塊,所述目標運動資訊是候選運動資訊清單中滿足篩選規則的一組運動資訊;熵編碼器,用於將所述目標運動資訊的索引資訊編入碼流,所述目標運動資訊的索引資訊用於從所述候選運動資訊清單中確定所述目標運動資訊;重建器,用於根據所述預測塊重建所述圖像塊。
  26. 一種視頻解碼器,其特徵在於,所述視頻解碼器用於從碼流中解碼出圖像塊,所述視頻解碼器包括:熵解碼器,用於從碼流中解碼出目標運動資訊的索引資訊;如請求項13至24中任一項所述的幀間預測裝置,所述幀間預測裝置用於基於目標運動資訊預測待解碼圖像塊的預測塊,所述目標運動資訊是候選運動資訊清單中所述索引資訊指示的一組運動資訊;重建器,用於根據所述預測塊重建所述待解碼圖像塊。
TW107144405A 2017-12-12 2018-12-10 視頻資料的幀間預測方法和裝置 TWI741239B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201711319298.2A CN109922336B (zh) 2017-12-12 2017-12-12 视频数据的帧间预测方法和装置
CN201711319298.2 2017-12-12
??201711319298.2 2017-12-12

Publications (2)

Publication Number Publication Date
TW201929545A TW201929545A (zh) 2019-07-16
TWI741239B true TWI741239B (zh) 2021-10-01

Family

ID=66819231

Family Applications (3)

Application Number Title Priority Date Filing Date
TW111142037A TW202315402A (zh) 2017-12-12 2018-12-10 視頻數據的幀間預測方法和裝置
TW107144405A TWI741239B (zh) 2017-12-12 2018-12-10 視頻資料的幀間預測方法和裝置
TW110131774A TWI786790B (zh) 2017-12-12 2018-12-10 視頻資料的幀間預測方法和裝置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW111142037A TW202315402A (zh) 2017-12-12 2018-12-10 視頻數據的幀間預測方法和裝置

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW110131774A TWI786790B (zh) 2017-12-12 2018-12-10 視頻資料的幀間預測方法和裝置

Country Status (9)

Country Link
US (2) US11363274B2 (zh)
EP (1) EP3720131A1 (zh)
JP (2) JP7148612B2 (zh)
KR (3) KR102494762B1 (zh)
CN (5) CN109922336B (zh)
AU (2) AU2018383797B2 (zh)
BR (1) BR112020011548A2 (zh)
TW (3) TW202315402A (zh)
WO (1) WO2019114721A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107046645B9 (zh) * 2016-02-06 2020-08-14 华为技术有限公司 图像编解码方法及装置
US10999596B2 (en) * 2018-06-19 2021-05-04 Qualcomm Incorporated Unification of affine motion field derivation and affine motion compensation
CN116647693A (zh) * 2018-09-06 2023-08-25 Lg电子株式会社 编解码设备、存储介质和数据发送设备
WO2020130714A1 (ko) * 2018-12-21 2020-06-25 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2021056214A1 (zh) * 2019-09-24 2021-04-01 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器以及存储介质
JP7437426B2 (ja) 2019-09-24 2024-02-22 オッポ広東移動通信有限公司 インター予測方法および装置、機器、記憶媒体
JP2023525630A (ja) * 2020-04-03 2023-06-19 オッポ広東移動通信有限公司 インター予測方法、符号器、復号器及び記憶媒体

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017118411A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
CN107046645A (zh) * 2016-02-06 2017-08-15 华为技术有限公司 图像编解码方法及装置
CN107071462A (zh) * 2011-11-02 2017-08-18 太格文-Ii有限责任公司 动态图像解码方法和动态图像解码装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3681342B2 (ja) * 2000-05-24 2005-08-10 三星電子株式会社 映像コーディング方法
US8767831B2 (en) * 2007-10-31 2014-07-01 Broadcom Corporation Method and system for motion compensated picture rate up-conversion using information extracted from a compressed video stream
JP5716438B2 (ja) 2011-02-08 2015-05-13 株式会社Jvcケンウッド 画像復号装置、画像復号方法および画像復号プログラム
CN103716631B (zh) * 2012-09-29 2017-04-05 华为技术有限公司 用于图像处理的方法、装置、编码器和解码器
CN107734335B (zh) * 2014-09-30 2020-11-06 华为技术有限公司 图像预测方法及相关装置
CN104935938B (zh) * 2015-07-15 2018-03-30 哈尔滨工业大学 一种混合视频编码标准中帧间预测方法
KR20180028513A (ko) * 2015-08-04 2018-03-16 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
EP3468195A1 (en) * 2017-10-05 2019-04-10 Thomson Licensing Improved predictor candidates for motion compensation
EP3468196A1 (en) * 2017-10-05 2019-04-10 Thomson Licensing Methods and apparatuses for video encoding and video decoding
US20190208211A1 (en) * 2018-01-04 2019-07-04 Qualcomm Incorporated Generated affine motion vectors
US11172229B2 (en) * 2018-01-12 2021-11-09 Qualcomm Incorporated Affine motion compensation with low bandwidth
US20190222834A1 (en) * 2018-01-18 2019-07-18 Mediatek Inc. Variable affine merge candidates for video coding
US20190364295A1 (en) * 2018-05-25 2019-11-28 Tencent America LLC Method and apparatus for video coding
US10798394B2 (en) * 2018-06-27 2020-10-06 Avago Technologies International Sales Pte. Limited Low complexity affine merge mode for versatile video coding
US20200021836A1 (en) * 2018-07-10 2020-01-16 Tencent America LLC Method and apparatus for ordering and selection of affine merge candidates in motion compensation
US10462488B1 (en) * 2018-07-13 2019-10-29 Tencent America LLC Method and apparatus for video coding
US11140398B2 (en) * 2018-08-20 2021-10-05 Mediatek Inc. Methods and apparatus for generating affine candidates
CN112913239A (zh) * 2018-10-22 2021-06-04 北京字节跳动网络技术有限公司 基于参考图片的解码器侧运动矢量推导

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107071462A (zh) * 2011-11-02 2017-08-18 太格文-Ii有限责任公司 动态图像解码方法和动态图像解码装置
WO2017118411A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
CN107046645A (zh) * 2016-02-06 2017-08-15 华为技术有限公司 图像编解码方法及装置

Also Published As

Publication number Publication date
KR20230163004A (ko) 2023-11-29
TWI786790B (zh) 2022-12-11
CN112055205A (zh) 2020-12-08
CN115733972A (zh) 2023-03-03
BR112020011548A2 (pt) 2020-11-17
TW202312738A (zh) 2023-03-16
EP3720131A4 (en) 2020-10-07
KR20230020021A (ko) 2023-02-09
JP2023017760A (ja) 2023-02-07
CN112055205B (zh) 2021-08-03
AU2023200956B2 (en) 2024-05-02
US20220394270A1 (en) 2022-12-08
JP7148612B2 (ja) 2022-10-05
AU2018383797A1 (en) 2020-07-09
CN109922336A (zh) 2019-06-21
AU2018383797B2 (en) 2022-12-15
EP3720131A1 (en) 2020-10-07
AU2023200956A1 (en) 2023-03-23
CN111480338B (zh) 2022-10-11
JP2021506180A (ja) 2021-02-18
CN111480338A (zh) 2020-07-31
KR20200096276A (ko) 2020-08-11
TW202145785A (zh) 2021-12-01
KR102607443B1 (ko) 2023-11-29
CN109922336B (zh) 2023-07-18
US11363274B2 (en) 2022-06-14
TW202315402A (zh) 2023-04-01
KR102494762B1 (ko) 2023-01-31
TW201929545A (zh) 2019-07-16
US20200382790A1 (en) 2020-12-03
WO2019114721A1 (zh) 2019-06-20
CN116915986A (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
TWI741239B (zh) 視頻資料的幀間預測方法和裝置
WO2020006969A1 (zh) 运动矢量预测方法以及相关装置
WO2020048205A1 (zh) 应用于双向帧间预测中的参考帧获取方法及装置
CN110876065A (zh) 候选运动信息列表的构建方法、帧间预测方法及装置
CN111656786B (zh) 候选运动信息列表的构建方法、帧间预测方法及装置
TWI841033B (zh) 視頻數據的幀間預測方法和裝置
WO2020007093A1 (zh) 一种图像预测方法及装置
CN110971899B (zh) 一种确定运动信息的方法、帧间预测方法及装置
CN110677645B (zh) 一种图像预测方法及装置
WO2019237287A1 (zh) 视频图像的帧间预测方法、装置及编解码器