TW202205852A - 一種編解碼方法、裝置及其設備 - Google Patents

一種編解碼方法、裝置及其設備 Download PDF

Info

Publication number
TW202205852A
TW202205852A TW110123652A TW110123652A TW202205852A TW 202205852 A TW202205852 A TW 202205852A TW 110123652 A TW110123652 A TW 110123652A TW 110123652 A TW110123652 A TW 110123652A TW 202205852 A TW202205852 A TW 202205852A
Authority
TW
Taiwan
Prior art keywords
motion information
current block
weight
information
value
Prior art date
Application number
TW110123652A
Other languages
English (en)
Other versions
TWI790662B (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 TW202205852A publication Critical patent/TW202205852A/zh
Application granted granted Critical
Publication of TWI790662B publication Critical patent/TWI790662B/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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/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/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/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
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

本發明提供一種編解碼方法、裝置及其設備,包括:獲取權重預測角度和權重配置參數;根據權重配置參數為當前塊的周邊位置配置參考權重值;根據權重預測角度從周邊位置中確定像素位置指向的匹配位置;根據匹配位置關聯的參考權重值確定像素位置的目標權重值,根據目標權重值確定像素位置的關聯權重值;根據第一目標運動資訊確定像素位置的第一預測值,根據第二目標運動資訊確定像素位置的第二預測值;根據第一預測值,目標權重值,第二預測值和關聯權重值,確定像素位置的加權預測值;根據所有像素位置的加權預測值確定當前塊的加權預測值。

Description

一種編解碼方法、裝置及其設備
本發明涉及編解碼技術領域,尤其是涉及一種編解碼方法、裝置及其設備。
本專利申請要求於2020年6月30日提交的、申請號為202010622752.7、發明名稱為“一種編解碼方法、裝置及其設備"的中國專利申請的優先權,該申請的全文以引用的方式併入本文中。
為了達到節約空間的目的,視頻圖像都是經過編碼後才傳輸的,視頻編碼可以包括預測、變換、量化、熵編碼、濾波等過程。預測可以包括幀內預測和幀間預測。幀間預測是指利用視頻時域的相關性,使用鄰近已編碼圖像的像素預測當前像素,以達到有效去除視頻時域冗餘的目的。幀內預測是指利用視頻空域的相關性,使用當前幀圖像的已編碼塊的像素預測當前像素,以達到去除視頻空域冗餘的目的。
在相關技術中,當前塊為矩形,而實際物體的邊緣往往不是矩形,因此,對於物體邊緣來說,往往存在兩個不同物件(如存在前景的物體和背景)。基於此,當兩個物件的運動不一致時,矩形劃分不能很好的將兩個物件分割,即使將當前塊劃分為兩個非矩形子塊,通過兩個非矩形子塊預測當前塊,目前,也存在預測效果不佳,編碼性能較差等問題。
有鑑於此,本發明提供了一種編解碼方法、裝置及其設備,提高了預測的準確性。
本發明提供一種編解碼方法,所述方法包括:
在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;
根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;
根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
本發明提供一種編解碼裝置,所述裝置包括:獲取模組,用於在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;配置模組,用於根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;確定模組,用於針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;所述獲取模組,還用於獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;所述確定模組,還 用於根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
本發明提供一種解碼端設備,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;
所述處理器用於執行機器可執行指令,以實現如下步驟:
在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;
根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;
根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
本發明提供一種編碼端設備,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;
所述處理器用於執行機器可執行指令,以實現如下步驟:
在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;
根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;
根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
由以上技術方案可見,本發明實施例中,提出一種配置權重值的有效方式,能夠為當前塊的每個像素位置配置合理的目標權重值,從而提高預測的準確性,提高預測性能,提高編碼性能,能夠使當前塊的預測值加更接近原始像素,並帶來編碼性能的提高。
1,2,3,4,A,B,C,D,F:像素位置
0,1,2,3,4,5,6,7:權重預測角度
2,3:角度分區
1,2,3,4,5,6,7,8:指示資訊
11,12,13,21,31,32,33,41,42,51,52,53,54:方式
111,121:獲取模組
112,122:配置模組
113,123:確定模組
131,141:處理器
132,142:機器可讀存儲介質
301,302,303,304,305,306,501,502,503,504,505,506,a1,a2,a3,a4,a5,a6,a7,a8,a9,b1,b2,b3,b4,b5,b6,b7,b8,b9,c1,c2,d1,d2,d3,d4:步驟
a0,a1,a2,a3,a4,a5,a6:位置
A,B,C,D,F,G:相鄰塊
E:當前塊
x,y:位置
圖1是視頻編碼框架的示意圖;
圖2A-圖2E是加權預測的示意圖;
圖3是本發明一種實施方式中的編解碼方法的流程圖;
圖4A-圖4D是當前塊外部的周邊位置的示意圖;
圖5是本發明一種實施方式中的編解碼方法的流程圖;
圖6是本發明一種實施方式中的權重預測角度的示意圖;
圖7是本發明一種實施方式中的四種權重變換率的參考權重值的示意圖;
圖8A-圖8C是本發明一種實施方式中的權重預測角度與角度分區的示意圖;
圖9A是本發明一種實施方式中的當前塊的相鄰塊的示意圖;
圖9B-圖9D是本發明一種實施方式中的當前塊的目標位置的示意圖;
圖10A是本發明一種實施方式中的編解碼裝置的結構示意圖;
圖10B是本發明一種實施方式中的編解碼裝置的結構示意圖;
圖10C是本發明一種實施方式中的解碼端設備的硬體結構圖;
圖10D是本發明一種實施方式中的編碼端設備的硬體結構圖。
在本發明實施例使用的術語僅僅是出於描述特定實施例的目的,而非限制本發明。本發明實施例和申請專利範圍中所使用的單數形式的“一種"、“所述"和“該"也旨在包括多數形式,除非上下文清楚地表示其它含義。還應當理解,本文中使用的術語“和/或”是指包含一個或多個相關聯的列出專案的任何或所有可能組合。應當理解,儘管在本發明實施例可能採用術語第一、第二、第三等來描述各種資訊,但是,這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本 發明實施例範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊,取決於語境。此外,所使用的詞語“如果”可以被解釋成為“在......時”,或“當......時”,或“回應於確定”。
本發明實施例中提出一種編解碼方法、裝置及其設備,可以涉及如下概念:
幀內預測(intra prediction),幀間預測(inter prediction)與幀內塊拷貝(Intra Block Copy,IBC)預測:
幀內預測是指,基於視頻空域的相關性,使用已編碼塊進行預測,以達到去除視頻空域冗餘的目的。幀內預測規定了多種預測模式,每種預測模式對應一種紋理方向(DC模式除外),例如,若圖像紋理呈現水準狀排布,則水準預測模式可以更好的預測圖像資訊。
幀間預測是指,基於視頻時域的相關性,由於視頻序列包含較強的時域相關性,使用鄰近已編碼圖像像素預測當前圖像的像素,可以達到有效去除視頻時域冗餘的目的。
幀內塊拷貝(Intra Block Copy,IBC)是指,允許同幀參考,當前塊的參考資料來自同一幀,幀內塊拷貝也可以稱為幀內塊複製。幀內塊拷貝技術中,可以使用當前塊的塊向量獲取當前塊的預測值,示例性的,基於螢幕內容中同一幀記憶體在大量重複出現的紋理這一特性,在採用塊向量獲取當前塊的預測值時,能夠提升螢幕內容序列的壓縮效率。
預測像素(Prediction Signal):預測像素是指從已編解碼的像素中匯出的像素值,通過原始像素與預測像素之差獲得殘差,進而進行殘差變換量化以及係數編碼。幀間的預測像素指的是當前塊從參考幀匯出的像素值,由於像素位置離散,需要通過插值運算來獲取最終的預測像素。預測像素與原始像素越接近,兩者相減得到的殘差能量越小,編碼壓縮性能越高。
運動向量(Motion Vector,MV):在幀間預測中,可以使用運動向量表示當前幀的當前塊與參考幀的參考塊之間的相對位移。每個 劃分的塊都有相應的運動向量傳送到解碼端,如果對每個塊的運動向量進行獨立編碼和傳輸,特別是小尺寸的大量塊,則消耗很多比特。為降低用於編碼運動向量的比特數,可以利用相鄰塊之間的空間相關性,根據相鄰已編碼塊的運動向量對當前塊的運動向量進行預測,然後對預測差進行編碼,這樣可以有效降低表示運動向量的比特數。在對當前塊的運動向量進行編碼時,可以先使用相鄰已編碼塊的運動向量預測當前塊的運動向量,然後對該運動向量的預測值(MVP,Motion Vector Prediction)與運動向量的真正估值之間的差值(MVD,Motion Vector Difference)進行編碼。
運動資訊(Motion Information):由於運動向量表示當前塊與某個參考塊之間的位置偏移,為了準確的獲取指向塊的資訊,除了運動向量,還需要參考幀圖像的索引資訊來表示當前塊使用哪個參考幀圖像。在視頻編碼技術中,對於當前幀,通常可以建立一個參考幀圖像清單,參考幀圖像索引資訊則表示當前塊採用了參考幀圖像清單中的第幾個參考幀圖像。
此外,很多編碼技術還支援多個參考幀圖像清單,因此,還可以使用一個索引值來表示使用了哪一個參考幀圖像清單,這個索引值可以稱為參考方向。綜上所述,在視頻編碼技術中,可以將運動向量,參考幀索引,參考方向等與運動相關的資訊統稱為運動資訊。
率失真原則(Rate-Distortion Optimized):評價編碼效率有兩大指標:碼率和峰值信噪比(Peak Signal to Noise Ratio,PSNR),位元流越小,則壓縮率越大,PSNR越大,則重建圖像品質越好;在模式選擇時,判別公式實質上也就是對二者的綜合評價。例如,模式對應的代價:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常可以使用SSE指標來進行衡量,SSE是指重建圖像塊與源圖像的差值的均方和;λ是拉格朗日乘子,R就是該模式下圖像塊編碼所需的實際比特數,包括編碼模式資訊、運動資訊、殘差等所需的比特總和。在模式選擇時,若使用RDO原則去對編碼模式做比較決策,通常可以保證編碼性能最佳。
視頻編碼框架:參見圖1所示,可以使用視頻編碼框架實 現本發明實施例的編碼端處理流程;視頻解碼框架的示意圖與圖1類似,在此不再贅述,可以使用視頻解碼框架實現本發明實施例的解碼端處理流程。示例性的,在視頻編碼框架和視頻解碼框架中,可以包括但不限於幀內預測/幀間預測、運動估計/運動補償、參考圖像緩衝器、環內濾波、重建、變換、量化、反變換、反量化、熵編碼器等模組。在編碼端,通過這些模組之間的配合,可以實現編碼端處理流程,在解碼端,通過這些模組之間的配合,可以實現解碼端處理流程。
在相關技術中,當前塊可以為矩形,而實際物體的邊緣往往不是矩形,因此,對於物體的邊緣來說,往往存在兩個不同物件(如存在前景的物體和背景等)。當兩個物件的運動不一致時,則矩形劃分不能很好的將這兩個物件進行分割,為此,可以將當前塊劃分為兩個非矩形子塊,並對兩個非矩形子塊進行加權預測。示例性的,加權預測是利用多個預測值進行加權操作,從而獲得最終預測值,加權預測可以包括:幀間和幀內的聯合加權預測(Combined inter/intra prediction,CIIP),幀間和幀間的聯合加權預測,幀內和幀內的聯合加權預測等。針對聯合加權預測的權重值,可以為當前塊的不同像素位置配置相同權重值,也可以為當前塊的不同像素位置配置不同權重值。
參見圖2A所示,為幀間幀內聯合加權預測的示意圖。
CIIP預測塊由幀內預測塊(即採用幀內預測模式得到像素位置的幀內預測值)和幀間預測塊(即採用幀間預測模式得到像素位置的幀間預測值)加權得到,每個像素位置採用的幀內預測值與幀間預測值的權重比是1:1。例如,針對每個像素位置,將該像素位置的幀內預測值與該像素位置的幀間預測值進行加權,得到該像素位置的聯合預測值,最終將每個像素位置的聯合預測值組成CIIP預測塊。
參見圖2B所示,為幀間三角劃分加權預測(Triangular Partition Mode,TPM)的示意圖。
TPM預測塊由幀間預測塊1(即採用幀間預測模式1得到 像素位置的幀間預測值)和幀間預測塊2(即採用幀間預測模式2得到像素位置的幀間預測值)組合得到。TPM預測塊可以劃分為兩個區域,一個區域可以為幀間區域1,另一個區域可以為幀間區域2,TPM預測塊的兩個幀間區域可以呈非矩形分佈,虛線分界線的角度可以為主對角線或者副對角線兩種。
針對幀間區域1的每個像素位置,主要基於幀間預測塊1的幀間預測值確定該像素位置的預測值,例如,將該像素位置的幀間預測塊1的幀間預測值與該像素位置的幀間預測塊2的幀間預測值進行加權時,幀間預測塊1的幀間預測值的權重值較大,幀間預測塊2的幀間預測值的權重值較小(甚至為0),得到該像素位置的聯合預測值。針對幀間區域2的每個像素位置,主要基於幀間預測塊2的幀間預測值確定該像素位置的預測值,例如,將該像素位置的幀間預測塊1的幀間預測值與該像素位置的幀間預測塊2的幀間預測值進行加權時,幀間預測塊2的幀間預測值的權重值較大,幀間預測塊1的幀間預測值的權重值較小(甚至為0),得到該像素位置的聯合預測值。
參見圖2C所示,為幀間幀內聯合三角加權預測的示意圖。通過對幀間幀內聯合加權預測進行修改,使CIIP預測塊的幀間區域和幀內區域呈現三角加權劃分預測的權重分佈。
CIIP預測塊由幀內預測塊(即採用幀內預測模式得到像素位置的幀內預測值)和幀間預測塊(即採用幀間預測模式得到像素位置的幀間預測值)組合得到。CIIP預測塊可以劃分為兩個區域,一個區域可以為幀內區域,另一個區域可以為幀間區域,CIIP預測塊的幀間幀內可以呈非矩形分佈,虛線分界線區域可採用混合加權方式或者直接進行分割,且該虛線分界線的角度可以為主對角線或者副對角線兩種,幀內區域和幀間區域的位置可變。
針對幀內區域的每個像素位置,主要基於幀內預測值確定該像素位置的預測值,例如,將該像素位置的幀內預測值與該像素位置的幀 間預測值進行加權時,幀內預測值的權重值較大,幀間預測值的權重值較小,得到該像素位置的聯合預測值。針對幀間區域的每個像素位置,主要基於幀間預測值確定該像素位置的預測值,例如,將該像素位置的幀內預測值與該像素位置的幀間預測值進行加權時,幀間預測值的權重值較大,幀內預測值的權重值較小,得到該像素位置的聯合預測值。
參見圖2D所示,為幀間塊幾何分割模式(Geometrical partitioning for inter blocks,GEO)的示意圖,GEO模式用於利用一條分割線將幀間預測塊劃分為兩個子塊,不同於TPM模式,GEO模式可以採用更多的劃分方向,GEO模式的加權預測過程與TPM模式類似。
GEO預測塊由幀間預測塊1(即採用幀間預測模式1得到像素位置的幀間預測值)和幀間預測塊2(即採用幀間預測模式2得到像素位置的幀間預測值)組合得到。GEO預測塊可以劃分為兩個區域,一個區域可以為幀間區域1,另一個區域可以為幀間區域2。
針對幀間區域1的每個像素位置,主要基於幀間預測塊1的幀間預測值確定該像素位置的預測值,例如,將該像素位置的幀間預測塊1的幀間預測值與該像素位置的幀間預測塊2的幀間預測值進行加權時,幀間預測塊1的幀間預測值的權重值較大,幀間預測塊2的幀間預測值的權重值較小。針對幀間區域2的每個像素位置,主要基於幀間預測塊2的幀間預測值確定該像素位置的預測值,例如,將該像素位置的幀間預測塊1的幀間預測值與該像素位置的幀間預測塊2的幀間預測值進行加權時,幀間預測塊2的幀間預測值的權重值較大,幀間預測塊1的幀間預測值的權重值較小。
示例性的,GEO預測塊的權重值配置與像素位置離分割線的距離有關,參見圖2E所示,像素位置A,像素位置B和像素位置C位於分割線右下側,像素位置D,像素位置E和像素位置F位於分割線左上側。對於像素位置A,像素位置B和像素位置C來說,幀間區域2的權重值排序為B
Figure 110123652-A0202-12-0010-55
A
Figure 110123652-A0202-12-0010-54
C,幀間區域1的權重值排序為C
Figure 110123652-A0202-12-0010-53
A
Figure 110123652-A0202-12-0010-52
B。對於像素位置D, 像素位置E和像素位置F來說,幀間區域1的權重值排序為D
Figure 110123652-A0202-12-0011-48
F
Figure 110123652-A0202-12-0011-49
E,幀間區域2的權重值排序為E
Figure 110123652-A0202-12-0011-50
F
Figure 110123652-A0202-12-0011-51
D。上述方式需要計算像素位置與分割線的距離,繼而確定像素位置的權重值。
針對上述各種情況,為了實現加權預測,均需要確定當前塊的每個像素位置的權重值,並基於像素位置的權重值對該像素位置進行加權預測。但是,相關技術中,並沒有配置權重值的有效方式,無法配置合理的權重值,導致預測效果不佳,編碼性能差等問題。
針對上述發現,本發明實施例中提出權重值的匯出方式,可以根據當前塊外部的周邊位置的參考權重值,確定當前塊的每個像素位置的目標權重值,能夠為每個像素位置配置合理的目標權重值,提高預測準確性,提高預測性能,提高編碼性能,預測值更接近原始像素。
以下結合幾個具體實施例,對本發明實施例中的編解碼方法進行詳細說明。
實施例1:參見圖3所示,為編解碼方法的流程示意圖,該方法可以應用於解碼端(也可以稱為視頻解碼器)或者編碼端(也可以稱為視訊轉碼器),該方法可以包括:
步驟301,在確定對當前塊啟動加權預測時,獲取當前塊的權重預測角度和權重配置參數,該權重配置參數包括權重變換率和權重變換的起始位置。權重變換的起始位置可以由如下參數的至少一個確定:當前塊的權重預測角度,當前塊的權重預測位置,當前塊的尺寸。
示例性的,在需要對當前塊進行預測時,解碼端或者編碼端可以先確定是否對當前塊啟動加權預測。若對當前塊啟動加權預測,則採用本發明實施例的編解碼方法,即執行步驟301和後續步驟。若對當前塊不啟動加權預測,則實現方式本發明實施例中不做限制。
示例性的,在確定對當前塊啟動加權預測時,可以獲取當前塊的權重預測角度,當前塊的權重預測位置,及當前塊的權重變換率。然後,可以基於當前塊的權重預測角度,當前塊的權重預測位置和當前塊的尺 寸中的至少一個,確定當前塊的權重變換的起始位置。至此,可以得到當前塊的權重預測角度,當前塊的權重變換率和當前塊的權重變換的起始位置。
步驟302,根據當前塊的權重配置參數為當前塊外部的周邊位置配置參考權重值。
示例性的,當前塊外部的周邊位置的數量可以是基於當前塊的尺寸和/或當前塊的權重預測角度確定,例如,基於當前塊的尺寸和/或當前塊的權重預測角度確定當前塊外部的周邊位置的數量M,並根據當前塊的權重配置參數為M個周邊位置配置參考權重值。
示例性的,當前塊外部的周邊位置的參考權重值可以單調遞增;或者,當前塊外部的周邊位置的參考權重值可以單調遞減。比如說,當前塊外部的周邊位置的參考權重值的排布可以為00...0024688...88,或者,當前塊外部的周邊位置的參考權重值的排布可以為88...8864200...00。
示例性的,當前塊外部的周邊位置可以包括整像素位置,或者,亞像素位置,或者,整像素位置和亞像素位置。當前塊外部的周邊位置可以包括但不限於:當前塊外部上側一行的周邊位置,或者,當前塊外部左側一列的周邊位置,或者,當前塊外部下側一行的周邊位置,或者,當前塊外部右側一列的周邊位置。當然,上述只是周邊位置的示例,對此不做限制。
在一種可能的實施方式中,當前塊外部的周邊位置的參考權重值包括目的地區域的參考權重值,目的地區域的第一鄰近區域的參考權重值,目的地區域的第二鄰近區域的參考權重值。
示例性的,第一鄰近區域的參考權重值均為第一參考權重值,第二鄰近區域的參考權重值單調遞增。或者,第一鄰近區域的參考權重值均為第一參考權重值,第二鄰近區域的參考權重值單調遞減。或者,第一鄰近區域的參考權重值均為第二參考權重值,第二鄰近區域的參考權重值均為第三參考權重值,且該第二參考權重值與該第三參考權重值不同。或者,第一鄰近區域的參考權重值單調遞增,第二鄰近區域的參考權重值單調遞 增。或者,第一鄰近區域的參考權重值單調遞減,第二鄰近區域的參考權重值單調遞減。
示例性的,目的地區域包括一個參考權重值或者至少兩個參考權重值;若目的地區域包括至少兩個參考權重值,則目的地區域的至少兩個參考權重值單調遞增或單調遞減。
步驟303,針對當前塊的每個像素位置,根據當前塊的權重預測角度從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置;根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,根據該像素位置的目標權重值確定該像素位置的關聯權重值。
示例性的,權重預測角度表示當前塊內部的像素位置所指向的角度方向,例如,基於某一種權重預測角度,該權重預測角度對應的角度方向指向當前塊的某個外部周邊位置。基於此,針對當前塊的每個像素位置,基於該權重預測角度確定該像素位置所指向的角度方向,繼而根據該角度方向從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。
針對當前塊的每個像素位置,在確定該像素位置指向的周邊匹配位置後,基於該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,例如,將該周邊匹配位置關聯的參考權重值確定為該像素位置的目標權重值。然後,根據該像素位置的目標權重值確定該像素位置的關聯權重值,例如,每個像素位置的目標權重值與關聯權重值的和,可以均為固定的預設數值,因此,關聯權重值可以為預設數值與目標權重值之差。假設預設數值為8,像素位置的目標權重值為0,則該像素位置的關聯權重值為8;若像素位置的目標權重值為1,則該像素位置的關聯權重值為7,以此類推,只要目標權重值與關聯權重值之和為8即可。
步驟304,獲取運動資訊候選清單,該運動資訊候選清單包括至少一個候選運動資訊;基於該運動資訊候選清單獲取當前塊的第一目標運動資訊和第二目標運動資訊。
步驟305,針對當前塊的每個像素位置,根據當前塊的第 一目標運動資訊確定該像素位置的第一預測值,根據當前塊的第二目標運動資訊確定該像素位置的第二預測值;根據該第一預測值,該目標權重值,該第二預測值和該關聯權重值,確定該像素位置的加權預測值。
示例性的,假設目標權重值是第一目標運動資訊對應的權重值,關聯權重值是第二目標運動資訊對應的權重值,則該像素位置的加權預測值可以為:(該像素位置的第一預測值*該像素位置的目標權重值+該像素位置的第二預測值*該像素位置的關聯權重值)/固定的預設數值。或者,假設目標權重值是第二目標運動資訊對應的權重值,關聯權重值是第一目標運動資訊對應的權重值,則該像素位置的加權預測值可以為:(該像素位置的第二預測值*該像素位置的目標權重值+該像素位置的第一預測值*該像素位置的關聯權重值)/固定的預設數值。
步驟306,根據當前塊的所有像素位置的加權預測值確定當前塊的加權預測值。
例如,將當前塊的所有像素位置的加權預測值組成當前塊的加權預測值。
由以上技術方案可見,本發明實施例中,提出一種配置權重值的有效方式,能夠為當前塊的每個像素位置配置合理的目標權重值,從而提高預測的準確性,提高預測性能,提高編碼性能,能夠使當前塊的預測值加更接近原始像素,並帶來編碼性能的提高。
實施例2:本發明實施例提出另一種編解碼方法,可以應用於編碼端,該方法包括:
步驟a1,在確定對當前塊啟動加權預測時,編碼端獲取當前塊的權重預測角度,當前塊的權重預測位置,及當前塊的權重變換率。示例性的,編碼端確定是否對當前塊啟動加權預測,如果是,則執行步驟a1及後續步驟,如果否,則處理方式本發明不做限制。
在一種可能的實施方式中,若當前塊滿足啟動加權預測的條件,則確定對當前塊啟動加權預測。若當前塊不滿足啟動加權預測的條件, 則確定不對當前塊啟動加權預測。例如,判斷當前塊的特徵資訊是否滿足特定條件。如果是,確定對當前塊啟動加權預測;如果否,確定對當前塊不啟動加權預測。特徵資訊包括但不限於以下之一或任意組合:當前塊所在當前幀的框架類型,當前塊的尺寸資訊,開關控制資訊。開關控制資訊可以包括但不限於:序列級(SPS(Sequence Parameter Set,序列參數集)、SH(Sequence Header,序列頭))開關控制資訊,或,圖像級(PPS(Picture Parameter Set,圖像參數集)、PH(Picture Header,圖像頭))開關控制資訊,或,片級(Slice、Tile、Patch),或,最大編碼單元級(LCU(Largest Coding Unit,最大編碼單元)、CTU(Coding Tree Unit,編碼樹單元)),或塊級(CU(Coding Unit,編碼單元)、PU(Prediction Unit,預測單元)、TU(Transform Unit,變換單元))開關控制資訊。
例如,若特徵資訊為當前塊所在當前幀的框架類型,當前塊所在當前幀的框架類型滿足特定條件,可以包括但不限於:若當前塊所在當前幀的框架類型為B幀,則確定框架類型滿足特定條件。或者,若當前塊所在當前幀的框架類型為I幀,則確定框架類型滿足特定條件。
例如,若特徵資訊為當前塊的尺寸資訊,如當前塊的寬度和高度,尺寸資訊滿足特定條件包括但不限於:若寬度大於或等於第一數值,高度大於或等於第二數值,確定當前塊的尺寸資訊滿足特定條件。或,若寬度大於或等於第三數值,高度大於或等於第四數值,寬度小於或等於第五數值,高度小於或等於第六數值,確定當前塊的尺寸資訊滿足特定條件。或,若寬度和高度的乘積大於或等於第七數值,確定當前塊的尺寸資訊滿足特定條件。上述數值可以根據經驗配置,如8、16、32、64、128等。比如說,第一數值為8,第二數值為8,第三數值為8,第四數值為8,第五數值為64,第六數值為64,第七數值為64。綜上所述,若寬度大於或等於8,高度大於或等於8,確定當前塊的尺寸資訊滿足特定條件。或,若寬度大於或等於8,高度大於或等於8,寬度小於或等於64,高度小於或等於64,確定當前塊的尺寸資訊滿足特定條件。或,若寬度和高度的乘積大於或等於64,確定當前塊的尺寸資訊滿足特定條件。
例如,若特徵資訊為當前塊的尺寸資訊,如當前塊的寬度和高度,則當前塊的尺寸資訊滿足特定條件,可以包括但不限於:寬度不小於a,且不大於b,高度不小於a,且不大於b。a可以小於或等於16,b可以大於或等於16。例如,a等於8,b等於64或者b等於32。
例如,若特徵資訊為開關控制資訊,則該開關控制資訊滿足特定條件,可以包括但不限於:若開關控制資訊為允許當前塊啟用加權預測,則確定該開關控制資訊滿足特定條件。
例如,若特徵資訊為當前塊所在當前幀的框架類型,當前塊的尺寸資訊,則框架類型滿足特定條件,且尺寸資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。或者,若特徵資訊為當前塊所在當前幀的框架類型,開關控制資訊,則框架類型滿足特定條件,且開關控制資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。或者,若特徵資訊為當前塊的尺寸資訊、開關控制資訊,則尺寸資訊滿足特定條件,且開關控制資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。或者,若特徵資訊為當前塊所在當前幀的框架類型、當前塊的尺寸資訊、開關控制資訊,則框架類型滿足特定條件,尺寸資訊滿足特定條件,且開關控制資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。
在一種可能的實施方式中,在確定對當前塊啟動加權預測時,編碼端可以獲取當前塊的權重預測角度,當前塊的權重預測位置,及當前塊的權重變換率。
示例性的,權重預測角度表示當前塊內部的像素位置所指向的角度方向,參見圖4A所示,基於某一種權重預測角度,示出了當前塊內部的像素位置(如像素位置1、像素位置2和像素位置3)所指向的角度方向,該角度方向指向當前塊外部的某個周邊位置。參見圖4B所示,基於另一種權重預測角度,示出了當前塊內部的像素位置(如像素位置2、像素位置3和像素位置4)所指向的角度方向,該角度方向指向當前塊外部的某個周邊位置。
示例性的,權重預測位置(也可以稱為距離參數)用於配置當前塊外部周邊位置的參考權重值。例如,根據當前塊的權重預測角度、當前塊的尺寸等參數,確定當前塊外部的周邊位置的範圍(即當前塊外部的周邊位置的數量),參見圖4A或者圖4B所示。
然後,將周邊位置的範圍進行N等分,N的取值可以任意配置,如4、6、8等,以8為例進行說明,權重預測位置用於表示當前塊外部的哪個周邊位置作為當前塊的權重變換的起始位置,從而根據權重變換的起始位置配置當前塊外部的周邊位置的參考權重值。
參見圖4C所示,在將所有周邊位置8等分後,可以得到7個權重預測位置。在此基礎上,當權重預測位置為0時,可以表示周邊位置a0(即虛線0指向的周邊位置,在實際應用中,並不存在虛線0,虛線0只是為了方便理解給出的示例,虛線0-虛線6用於將所有周邊位置8等分)作為當前塊外部周邊位置的權重變換的起始位置。以此類推,當權重預測位置為6時,表示周邊位置a6作為當前塊外部周邊位置的權重變換的起始位置。
針對不同的權重預測角度,N的取值可以不同,例如,針對權重預測角度A,N的取值為6,表示將基於權重預測角度A確定的周邊位置的範圍進行6等分,針對權重預測角度B,N的取值為8,表示將基於權重預測角度B確定的周邊位置的範圍進行8等分。
針對不同的權重預測角度,N的取值也可以相同,在N的取值相同的情況下,權重預測位置數量可以不同,如針對權重預測角度A,N的取值為8,表示將基於權重預測角度A確定的周邊位置的範圍進行8等分,針對權重預測角度B,N的取值為8,表示將基於權重預測角度B確定的周邊位置的範圍進行8等分,但是,權重預測角度A對應的權重預測位置選擇a1至a5共5個位置,權重預測角度B對應的權重預測位置選擇a0至a6共7個位置。
上述是以將周邊位置的範圍進行N等分為例,在實際應用 中,還可以採用不均勻的劃分方式,比如說,將周邊位置的範圍劃分成N份,而不是N等分,對此不做限制。
在將所有的周邊位置8等分後,可以得到7個權重預測位置,步驟a1中,編碼端可以從7個權重預測位置中獲取一個權重預測位置,也可以從7個權重預測位置中選擇部分權重預測位置(如5個權重預測位置),從5個權重預測位置獲取一個權重預測位置。
示例性的,權重變換率表示當前塊外部的周邊位置的參考權重值的變換率,用於表示參考權重值的變化速度,權重變換率可以是不為0的任意數,如權重變換率可以是-4、-2、-1、1、2、4、0.5、0.75、1.5等。權重變換率的絕對值為1時,即權重變換率為-1或者1,用於表示參考權重值的變化速度為1,參考權重值從0到8需要經過0,1,2,3,4,5,6,7,8等數值,參考權重值從8到0需要經過8,7,6,5,4,3,2,1,0等數值。權重變換率的絕對值為2時,即權重變換率為-2或者2,用於表示參考權重值的變化速度為2,參考權重值從0到8需要經過0,2,4,6,8等數值,參考權重值從8到0需要經過8,6,4,2,0等數值。權重變換率的絕對值為4時,即權重變換率為-4或者4,用於表示參考權重值的變化速度為4,參考權重值從0到8需要經過0,4,8等數值,參考權重值從8到0需要經過8,4,0等數值。權重變換率的絕對值為0.5時,即權重變換率為-0.5或者0.5,用於表示參考權重值的變化速度為0.5,參考權重值從0到8需要經過0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8等數值,參考權重值從8到0需要經過8,8,7,7,6,6,5,5,4,4,3,3,2,2,1,1,0,0等數值。當然,上述舉例為從0到8,可以將0和8替換為任意數。
步驟a2,編碼端根據當前塊的權重變換率和權重變換的起始位置(權重變換率和權重變換的起始位置可以稱為權重配置參數)為當前塊外部的周邊位置配置參考權重值。
示例性的,權重變換的起始位置可以由如下參數的至少一 個確定:當前塊的權重預測角度,當前塊的權重預測位置,當前塊的尺寸,因此,可以基於當前塊的權重預測角度,當前塊的權重預測位置和當前塊的尺寸中的至少一個,確定當前塊的權重變換的起始位置。然後,根據當前塊的權重變換率和權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。
步驟a3,針對當前塊的每個像素位置,編碼端根據當前塊的權重預測角度從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。為了區分方便,本實施例中,可以將該像素位置指向的當前塊外部的周邊位置,稱為該像素位置的周邊匹配位置。
示例性的,由於權重預測角度表示當前塊內部的像素位置所指向的角度方向,因此,針對當前塊的每個像素位置,基於該權重預測角度確定該像素位置所指向的角度方向,繼而根據該角度方向從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。
當前塊外部周邊位置可以包括:當前塊外部上側一行的周邊位置,如當前塊外部上側第n1行的周邊位置,n1可以為1,也可以為2、3等,對此不做限制。或者,當前塊外部左側一列的周邊位置,如當前塊外部左側第n2列的周邊位置,n2可以為1,也可以為2、3等,對此不做限制。或者,當前塊外部下側一行的周邊位置,如當前塊外部下側第n3行的周邊位置,n3可以為1,也可以為2、3等,對此不做限制。或者,當前塊外部右側一列的周邊位置,如當前塊外部右側第n4列的周邊位置,n4可以為1,也可以為2、3等,對此不做限制。
當然,上述只是周邊位置的幾個示例,對此不做限制,實際應用中,除了利用當前塊外部周邊位置,還可以利用當前塊內部位置,即使用當前塊的內部位置替換當前塊外部周邊位置,例如,位於當前塊內部第n5行的內部位置,n5可以為1,也可以為2、3等,又例如,位於當前塊內部第n6列的內部位置,n6可以為1,也可以為2、3等。當然,內部位置的長度(即,當前塊內位於該內部位置的一行)可以超出當前塊的範圍,如第 n7行的位置可以超出當前塊的範圍,即往兩邊可延伸。
當然,還可以同時使用當前塊的內部位置和當前塊外部周邊位置。
針對使用當前塊的內部位置,或者,同時使用當前塊的內部位置和當前塊外部周邊位置的情況,可以將該當前塊通過內部位置所在行分為上下兩個小塊,或者,通過內部位置所在列分為左右兩個小塊,此時,兩個小塊擁有相同的權重預測角度以及相同的參考權重配置。
示例性的,當前塊外部周邊位置可以位於像素位置之間,即亞像素位置,此時,當前塊的外部周邊位置不能簡單描述為第x行,而是位於第x行與第y行之間的亞像素位置行。
為了方便描述,在後續實施例中,以當前塊外部上側第1行的周邊位置,或者,當前塊外部左側第1列的周邊位置為例,針對其它周邊位置的情況,實現方式與此類似。
示例性的,針對當前塊外部周邊位置的範圍,可以預先指定某個範圍是當前塊外部的周邊位置的範圍;或者,可以根據權重預測角度確定當前塊外部的周邊位置的範圍,例如,根據權重預測角度確定當前塊內部的每個像素位置指向的周邊位置,所有像素位置指向的周邊位置的邊界,可以是當前塊外部的周邊位置的範圍,對此周邊位置的範圍不做限制。
當前塊外部周邊位置可以包括整像素位置;或者,當前塊外部周邊位置可以包括非整像素位置,非整像素位置可以為亞像素位置,如1/2亞像素位置,1/4亞像素位置,3/4亞像素位置等,對此不做限制;或者,當前塊外部周邊位置可以包括整像素位置和亞像素位置。
示例性的,當前塊外部的兩個周邊位置,可以對應一個整像素位置;或者,當前塊外部的四個周邊位置,可以對應一個整像素位置;或者,當前塊外部的一個周邊位置,可以對應一個整像素位置;或者,當前塊外部的一個周邊位置,可以對應兩個整像素位置。當然,上述只是幾個示例,對此不做限制,周邊位置與整像素位置的關係可以任意配置。
參見圖4A和圖4B所示,是一個周邊位置對應一個整像素位置,參見圖4D所示,是兩個周邊位置對應一個整像素位置,對於其它情況,本實施例中不再贅述。
步驟a4,編碼端根據周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值。
針對當前塊的每個像素位置,在確定該像素位置指向的周邊匹配位置後,編碼端確定該周邊匹配位置關聯的參考權重值,並根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,例如,將該周邊匹配位置關聯的參考權重值確定為該像素位置的目標權重值。
在一種可能的實施方式中,編碼端根據周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,可以包括:情況一、若該周邊匹配位置是整像素位置,且該整像素位置已配置參考權重值,則根據該整像素位置的參考權重值確定該像素位置的目標權重值。
情況二、若該周邊匹配位置是整像素位置,且該整像素位置未配置參考權重值,則可以根據該整像素位置的相鄰位置的參考權重值確定該像素位置的目標權重值。例如,可以對相鄰位置的參考權重值進行向上取整操作,得到該像素位置的目標權重值;或者,對相鄰位置的參考權重值進行向下取整操作,得到該像素位置的目標權重值;或者,根據該整像素位置的相鄰位置的參考權重值的插值確定該像素位置的目標權重值,對此不做限制。
情況三、若該周邊匹配位置是亞像素位置,且該亞像素位置已配置參考權重值,則可以根據該亞像素位置的參考權重值確定該像素位置的目標權重值。
情況四、若該周邊匹配位置是亞像素位置,且該亞像素位置未配置參考權重值,則可以根據該亞像素位置的相鄰位置的參考權重值確定該像素位置的目標權重值。例如,可以對相鄰位置的參考權重值進行向上取整操作,得到該像素位置的目標權重值;或者,對相鄰位置的參考權重 值進行向下取整操作,得到該像素位置的目標權重值;或者,根據該亞像素位置的相鄰位置的參考權重值的插值確定該像素位置的目標權重值,對此不做限制。
情況五、根據周邊匹配位置關聯的多個參考權重值確定該像素位置的目標權重值,例如,周邊匹配位置是整像素位置或亞像素位置時,獲取周邊匹配位置的多個相鄰位置的參考權重值。若周邊匹配位置已配置參考權重值,則根據周邊匹配位置的參考權重值和多個相鄰位置的參考權重值進行加權運算,得到該像素位置的目標權重值;若周邊匹配位置未配置參考權重值,則根據多個相鄰位置的參考權重值進行加權運算,得到該像素位置的目標權重值。
步驟a5,編碼端根據該像素位置的目標權重值確定該像素位置的關聯權重值。
示例性的,針對每個像素位置來說,該像素位置的目標權重值與該像素位置的關聯權重值的和,可以為固定的預設數值,即關聯權重值可以為預設數值與目標權重值之差。基於此,假設預設數值為8,該像素位置的目標權重值為2,則該像素位置的關聯權重值為6。
步驟a6,編碼端獲取運動資訊候選清單,該運動資訊候選清單包括至少一個候選運動資訊;基於該運動資訊候選清單獲取當前塊的第一目標運動資訊和第二目標運動資訊。
步驟a7,針對當前塊的每個像素位置,編碼端根據當前塊的第一目標運動資訊確定該像素位置的第一預測值,並根據當前塊的第二目標運動資訊確定該像素位置的第二預測值。
步驟a8,編碼端根據該像素位置的第一預測值,該像素位置的目標權重值,該像素位置的第二預測值和該像素位置的關聯權重值,確定該像素位置的加權預測值。
例如,該像素位置的加權預測值可以為:(該像素位置的第一預測值*該像素位置的目標權重值+該像素位置的第二預測值*該像素 位置的關聯權重值)/固定的預設數值。
步驟a9,編碼端根據當前塊的所有像素位置的加權預測值確定當前塊的加權預測值。
實施例3:本發明實施例提出另一種編解碼方法,可以應用於解碼端,該方法包括:
步驟b1,在確定對當前塊啟動加權預測時,解碼端獲取當前塊的權重預測角度,當前塊的權重預測位置,及當前塊的權重變換率。示例性的,解碼端確定是否對當前塊啟動加權預測,如果是,則執行步驟b1及後續步驟,如果否,則處理方式本發明不做限制。
在一種可能的實施方式中,編碼端判斷當前塊的特徵資訊是否滿足特定條件,如果是,則確定對當前塊啟動加權預測。解碼端也判斷當前塊的特徵資訊是否滿足特定條件,如果是,則確定對當前塊啟動加權預測;如果否,則確定不對當前塊啟動加權預測。關於解碼端如何基於特徵資訊確定當前塊是否啟動加權預測,與編碼端的確定方式類似,在此不再重複贅述。
在另一種可能的實施方式中,編碼端根據當前塊的特徵資訊確定當前塊是否支援加權預測,在當前塊支援加權預測時,還可以採用其它策略確定是否對當前塊啟動加權預測,如採用率失真原則確定是否對當前塊啟動加權預測。在確定是否對當前塊啟動加權預測後,編碼端在發送當前塊的編碼位元流時,該編碼位元流可以包括是否啟動加權預測的語法,該語法表示當前塊是否啟動加權預測。解碼端根據當前塊的特徵資訊確定當前塊是否支援加權預測,具體方式與編碼端的確定方式類似,在此不再贅述。在當前塊支援加權預測時,解碼端還可以從編碼位元流中解析出是否啟動加權預測的語法,並根據該語法確定是否對當前塊啟動加權預測。
示例性的,在確定對當前塊啟動加權預測時,解碼端還可以獲取當前塊的權重預測角度,當前塊的權重預測位置,及當前塊的權重變換率,關於該權重預測角度,該權重預測位置及該權重變換率的相關說明, 可以參見步驟a1,在此不再重複贅述。
步驟b2,解碼端根據當前塊的權重變換率和權重變換的起始位置(權重變換率和權重變換的起始位置可以稱為權重配置參數)為當前塊外部的周邊位置配置參考權重值。
示例性的,解碼端可以基於當前塊的權重預測角度,當前塊的權重預測位置和當前塊的尺寸中的至少一個,確定當前塊的權重變換的起始位置。然後,解碼端根據當前塊的權重變換率和權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。
步驟b3,針對當前塊的每個像素位置,解碼端根據當前塊的權重預測角度從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。
步驟b4,解碼端根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值。
步驟b5,解碼端根據該像素位置的目標權重值確定該像素位置的關聯權重值。
步驟b6,解碼端獲取運動資訊候選清單,該運動資訊候選清單包括至少一個候選運動資訊;基於該運動資訊候選清單獲取當前塊的第一目標運動資訊和第二目標運動資訊。
步驟b7,針對當前塊的每個像素位置,解碼端根據當前塊的第一目標運動資訊確定該像素位置的第一預測值,並根據當前塊的第二目標運動資訊確定該像素位置的第二預測值。
步驟b8,解碼端根據該像素位置的第一預測值,該像素位置的目標權重值,該像素位置的第二預測值和該像素位置的關聯權重值,確定該像素位置的加權預測值。
步驟b9,解碼端根據當前塊的所有像素位置的加權預測值確定當前塊的加權預測值。
示例性的,針對步驟b2-步驟b8,其實現過程可以參見步驟a2-步驟a8,不同之處在於,步驟b2-步驟b8是解碼端的處理流程,而不是編碼端的處理流程,在此不再贅述。
實施例4:參見圖5所示,為編解碼方法的流程示意圖,該方法可以應用於解碼端(也可以稱為視頻解碼器)或者編碼端(也可以稱為視訊轉碼器),該方法可以包括:
步驟501,在確定對當前塊啟動加權預測時,獲取當前塊的權重預測角度和權重配置參數,該權重配置參數包括權重變換率和權重變換的起始位置。權重變換的起始位置可以由如下參數的至少一個確定:當前塊的權重預測角度,當前塊的權重預測位置,當前塊的尺寸。
步驟502,根據當前塊的權重配置參數為當前塊外部的周邊位置配置參考權重值。
步驟503,針對當前塊的每個像素位置,根據當前塊的權重預測角度從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置;根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,根據該像素位置的目標權重值確定該像素位置的關聯權重值。
示例性的,步驟501-步驟503可以參見步驟301-步驟303,在此不再重複贅述。
步驟504,獲取參考幀資訊,並獲取與該參考幀資訊對應的運動向量候選列表,該運動向量候選列表包括至少一個候選運動向量,該參考幀資訊包括第一參考幀資訊和第二參考幀資訊;基於該運動向量候選列表獲取當前塊的第一目標運動向量和第二目標運動向量。
步驟505,針對當前塊的每個像素位置,根據當前塊的第一目標運動資訊確定該像素位置的第一預測值,根據當前塊的第二目標運動資訊確定該像素位置的第二預測值;根據該第一預測值,該目標權重值,該第二預測值和該關聯權重值,確定該像素位置的加權預測值。
在一種可能的實施方式中,當前塊的該第一目標運動資訊可以包括當前塊的該第一目標運動向量和該第一目標運動向量對應的第一參考幀資訊,當前塊的該第二目標運動資訊可以包括當前塊的該第二目標運動向量和該第二目標運動向量對應的第二參考幀資訊。
示例性的,第一參考幀資訊與第二參考幀資訊可以相同,或者,第一參考幀資訊與第二參考幀資訊可以不同。若第一參考幀資訊與第二參考幀資訊相同,則第一目標運動向量指向的參考幀與第二目標運動向量指向的參考幀為同一幀,若第一參考幀資訊與第二參考幀資訊不同,則第一目標運動向量指向的參考幀與第二目標運動向量指向的參考幀為不同幀。
步驟506,根據當前塊的所有像素位置的加權預測值確定當前塊的加權預測值。
示例性的,在編解碼方法應用于編碼端時,針對步驟501-步驟506的詳細流程,還可以通過實施例2實現,不同之處在於:在步驟a6中,編碼端獲取的是運動向量候選列表,並基於該運動向量候選列表獲取當前塊的第一目標運動向量和第二目標運動向量,基於第一目標運動向量和第一目標運動向量對應的第一參考幀資訊得到第一目標運動資訊,基於第二目標運動向量和第二目標運動向量對應的第二參考幀資訊得到第二目標運動資訊,在此不再贅述。
示例性的,在編解碼方法應用于解碼端時,針對步驟501-步驟506的詳細流程,還可以通過實施例3實現,不同之處在於:在步驟b6中,解碼端獲取的是運動向量候選列表,並基於該運動向量候選列表獲取當前塊的第一目標運動向量和第二目標運動向量,基於第一目標運動向量和第一目標運動向量對應的第一參考幀資訊得到第一目標運動資訊,基於第二目標運動向量和第二目標運動向量對應的第二參考幀資訊得到第二目標運動資訊,在此不再贅述。
由以上技術方案可見,本發明實施例中,提出一種配置權重值的有效方式,能夠為當前塊的每個像素位置配置合理的目標權重值,從 而提高預測的準確性,提高預測性能,提高編碼性能,能夠使當前塊的預測值加更接近原始像素,並帶來編碼性能的提高。
實施例5:在實施例1-實施例4中,需要基於權重預測角度進行加權處理,可以將這種加權處理方式記為幀間角度加權預測(Angular Weighted Prediction,AWP)模式,即,在當前塊支援AWP模式時,採用實施例1-實施例4對當前塊進行預測,得到當前塊的預測值。
實施例1-實施例4涉及權重預測角度,該權重預測角度可以是任意角度,如180度內任意角度,或,360度內任意角度,對此權重預測角度不做限制,如10度,20度,30度等。
在一種可能的實施方式中,該權重預測角度可以為水準角度;或者,該權重預測角度可以為垂直角度;或者,該權重預測角度的斜率的絕對值(權重預測角度的斜率的絕對值也就是權重預測角度的tan值)可以為2的n次方,n為整數,如正整數,0,負整數等。
例如,該權重預測角度的斜率的絕對值可以為1(即2的0次方),或者為2(即2的1次方),或者為1/2(即2的-1次方),或者為4(即2的2次方),或者為1/4(即2的-2次方),或者為8(即2的3次方),或者為1/8(即2的-3次方)等。示例性的,參見圖6所示,示出了8種權重預測角度,這些權重預測角度的斜率的絕對值為2的n次方。
本發明實施例中,可以對權重預測角度進行移位操作,關於對權重預測角度進行移位操作的例子參見後續實施例,因此,在權重預測角度的斜率的絕對值為2的n次方時,在對權重預測角度進行移位操作時,可以避免出現除法操作,從而方便的進行移位實現。
示例性的,不同塊尺寸(即當前塊的尺寸)支援的權重預測角度的數量可以相同或者不同。例如,塊尺寸A支持8種權重預測角度,塊尺寸B和塊尺寸C支援6種權重預測角度等。
實施例6:在上述實施例1-實施例4中,編碼端/解碼端需要根據當前塊的權重變換率和當前塊的權重變換的起始位置為當前塊外部 的周邊位置配置參考權重值。在一種可能的實施方式中,可以採用如下方式:針對當前塊外部的每個周邊位置,根據該周邊位置的座標值,該權重變換的起始位置的座標值,以及該權重變換率,配置該周邊位置的參考權重值。
示例性的,針對當前塊外部的每個周邊位置,若該周邊位置是當前塊外部上側一行或者下側一行的周邊位置,則該周邊位置的座標值可以是橫坐標值,權重變換的起始位置的座標值可以是橫坐標值。或者,若該周邊位置是當前塊外部左側一列或者右側一列的周邊位置,則該周邊位置的座標值可以是縱坐標值,權重變換的起始位置的座標值可以是縱坐標值。
示例性的,可以將當前塊左上角的像素位置(如左上角的第一個像素位置)作為座標原點,當前塊的周邊位置的座標值(如橫坐標值或縱坐標值)和權重變換的起始位置的座標值(如橫坐標值或縱坐標值),均是相對於該座標原點的座標值。當然,也可以將當前塊的其它像素位置作為座標原點,實現方式與左上角的像素位置作為座標原點的實現方式類似。
在一種可能的實施方式中,先確定該周邊位置的座標值與權重變換的起始位置的座標值的差值,並確定該差值與當前塊的權重變換率的乘積。若該乘積小於第一數值(即參考權重值的最小值,如0等),則確定該周邊位置關聯的參考權重值為第一數值;若該乘積大於第二數值(即參考權重值的最大值,如8等),則確定該周邊位置關聯的參考權重值為第二數值;若該乘積不小於第一數值,且該乘積不大於第二數值,則確定該周邊位置關聯的參考權重值為該乘積。在另一種可能的實施方式中,還可以根據該周邊位置的座標值與權重變換的起始位置的座標值的大小關係,直接確定該周邊位置關聯的參考權重值。例如,若該周邊位置的座標值小於權重變換的起始位置的座標值,確定該周邊位置關聯的參考權重值為第一數值;若該周邊位置的座標值不小於權重變換的起始位置的座標值,確定該周邊位置關聯的參考權重值為第二數值。又例如,若該周邊位置的座標值小於權重變換的起始位置的座標值,確定該周邊位置關聯的參考權重值為第二數值;若該周邊位置的座標值不小於權重變換的起始位置的座標值,確定該周 邊位置關聯的參考權重值為第一數值。
示例性的,第一數值和第二數值均可以根據經驗配置,且第一數值小於第二數值,對此第一數值和第二數值均不做限制。例如,第一數值是預先約定的參考權重值的最小值,如0,第二數值是預先約定的參考權重值的最大值,如8,當然,0和8也只是示例。
示例性的,參見圖4C所示,在將所有的周邊位置8等分後,可以得到7個權重預測位置,當權重預測位置為0時,表示周邊位置a0,權重變換的起始位置的座標值為周邊位置a0的座標值。當權重預測位置為1時,表示周邊位置a1,權重變換的起始位置的座標值為周邊位置a1的座標值,以此類推,關於權重變換的起始位置的座標值的確定方式,在此不再贅述。
實施例7:在實施例1-實施例4中,編碼端/解碼端需要根據當前塊的權重變換率和當前塊的權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。在一種可能的實施方式中,可以採用如下方式:獲取當前塊的權重預測角度、當前塊的權重變換率和當前塊的權重預測位置,基於當前塊的權重預測位置確定當前塊的權重變換的起始位置,基於該權重變換的起始位置和該權重變換率確定權重配置參數,即該權重配置參數包括權重變換的起始位置和權重變換率。然後,根據該權重配置參數確定當前塊外部的周邊位置的參考權重值。
以下結合具體步驟,對為當前塊外部的周邊位置配置參考權重值的過程進行說明。
步驟c1、獲取有效數量個參考權重值。
示例性的,當前塊外部的周邊位置的數量為有效數量,步驟c1中,需要獲取有效數量個參考權重值,該有效數量可以是基於當前塊的尺寸和/或當前塊的權重預測角度確定。例如,採用如下方式確定該有效數量:ValidLength=(N+(M>>X))<<1,N和M分別是當前塊的高和寬,X為當前塊的權重預測角度的斜率的絕對值的log2對數值,如0或1。
在一種可能的實施方式中,針對有效數量個參考權重值,可以單調遞增,或,單調遞減。或者,針對有效數量個參考權重值,可以先包括多個第一數值,再包括多個第二數值,或,先包括多個第二數值,再包括多個第一數值。以下結合幾個具體情況,對此進行說明。
情況1:針對有效數量個參考權重值,可以單調遞增,或,單調遞減。例如,有效數量個參考權重值可以為[88...88765432100...00],即單調遞減。又例如,有效數量個參考權重值可以為[00...00123456788...88],即單調遞增。當然,上述只是示例,對此不做限制。
示例性的,參考權重值可以是根據權重配置參數配置的,該權重配置參數可以包括權重變換率和權重變換的起始位置,權重變換率的獲取方式可以參見後續實施例,權重變換的起始位置可以是根據經驗配置的數值,也可以由權重預測位置確定權重變換的起始位置,還可以由權重預測角度和權重預測位置確定權重變換的起始位置,對此不做限制。
針對有效數量個參考權重值,按照從第一個到最後一個的順序,可以單調遞增或者單調遞減。例如,參考權重值的最大值為M1,參考權重值的最小值為M2,針對有效數量個參考權重值,從最大值M1至最小值M2單調遞減;或,從最小值M2至最大值M1單調遞增。假設M1為8,M2為0,則多個參考權重值,可以從8至0單調遞減;或從0至8單調遞增。
示例性的,可以先獲取權重變換率和權重變換的起始位置,然後,根據權重變換率和權重變換的起始位置,確定多個參考權重值。例如,採用如下方式確定參考權重值:y=Clip3(最小值,最大值,a*(x-s)),x表示周邊位置的索引,即x的取值範圍是1-有效數量詞,如x為1,表示第1個周邊位置,y表示第1個周邊位置的參考權重值,x為2,表示第2個周邊位置,y表示第2個周邊位置的參考權重值。a表示權重變換率,s表示權重變換的起始位置。
Clip3用於限制參考權重值位於最小值與最大值之間,最 小值和最大值均可以根據經驗配置,為了方便描述,在後續過程中,以最小值為0,最大值為8為例進行說明。
a表示權重變換率,a可以是不為0的整數,如a可以是-4、-2、-1、1、2、4等,對此a的取值不做限制。若a的絕對值為1,則參考權重值從0到8需要經過0,1,2,3,4,5,6,7,8,或者,參考權重值從8到0需要經過8,7,6,5,4,3,2,1,0。
s表示權重變換的起始位置,s可以由權重預測位置確定,例如,s=f(權重預測位置),即s是一個與權重預測位置有關的函數。例如,在當前塊外部的周邊位置的範圍確定後,可以確定周邊位置的有效數量,並將所有周邊位置進行N等分,N的取值可以任意配置,如4、6、8等,而權重預測位置用於表示採用當前塊外部的哪個周邊位置作為當前塊的目標周邊區域,而這個權重預測位置對應的周邊位置就是權重變換的起始位置。或者,s可以由權重預測角度和權重預測位置確定,例如,s=f(權重預測角度,權重預測位置),即s是一個與權重預測角度和權重預測位置有關的函數。例如,可以根據權重預測角度確定當前塊外部的周邊位置的範圍,在當前塊外部的周邊位置的範圍確定後,可以確定周邊位置的有效數量,並將所有周邊位置進行N等分,權重預測位置用於表示採用當前塊外部的哪個周邊位置作為當前塊的目標周邊區域,而這個權重預測位置對應的周邊位置就是權重變換的起始位置。
綜上所述,在y=Clip3(最小值,最大值,a*(x-s))中,權重變換率a和權重變換的起始位置s均為已知值,針對當前塊外部的每個周邊位置,可以通過該函數關係確定該周邊位置的參考權重值。例如,假設權重變換率a為2,權重變換的起始位置s為2,則該函數關係可以為y=2*(x-2),針對當前塊外部的每個周邊位置x,可以得到參考權重值y。
綜上所述,可以得到當前塊的有效數量個參考權重值,這些參考權重值單調遞增或單調遞減。在一種可能的實施方式中,當前塊外部的周邊位置的參考權重值包括目的地區域的參考權重值,目的地區域的第 一鄰近區域的參考權重值,目的地區域的第二鄰近區域的參考權重值。
示例性的,目的地區域包括一個參考權重值或者至少兩個參考權重值。例如,基於權重變換的起始位置,確定一個參考權重值,將這個參考權重值作為目的地區域的參考權重值。又例如,基於權重變換的起始位置,確定至少兩個參考權重值,將這至少兩個參考權重值作為目的地區域的參考權重值。
若目的地區域包括至少兩個參考權重值,則目的地區域的至少兩個參考權重值單調遞增或單調遞減。單調遞增可以是嚴格單調遞增(即目的地區域的至少兩個參考權重值嚴格單調遞增);單調遞減可以是嚴格單調遞減(即目的地區域的至少兩個參考權重值嚴格單調遞減)。例如,目的地區域的參考權重值從1至7單調遞增,或者,目的地區域的參考權重值從7至1單調遞減。
示例性的,第一鄰近區域的參考權重值可以均為第一參考權重值,第二鄰近區域的參考權重值可以單調遞增。例如,第一鄰近區域的參考權重值可以均為0,目的地區域包括一個參考權重值,該參考權重值為1,第二鄰近區域的參考權重值從2至8單調遞增。
或者,第一鄰近區域的參考權重值可以均為第一參考權重值,第二鄰近區域的參考權重值可以單調遞減。例如,第一鄰近區域的參考權重值可以均為8,目的地區域包括一個參考權重值,該參考權重值為7,第二鄰近區域的參考權重值從6至0單調遞減。
或者,第一鄰近區域的參考權重值均為第二參考權重值,第二鄰近區域的參考權重值均為第三參考權重值,第二參考權重值與第三參考權重值不同。例如,第一鄰近區域的參考權重值均為0,目的地區域包括至少兩個參考權重值,參考權重值從1至7單調遞增,第二鄰近區域的參考權重值均為8,顯然,第一鄰近區域的參考權重值與第二鄰近區域的參考權重值不同。
或者,第一鄰近區域的參考權重值單調遞增或單調遞減, 第二鄰近區域的參考權重值單調遞增或單調遞減;例如,第一鄰近區域的參考權重值單調遞增,第二鄰近區域的參考權重值也單調遞增;又例如,第一鄰近區域的參考權重值單調遞減,第二鄰近區域的參考權重值也單調遞減。例如,第一鄰近區域的參考權重值從0至3單調遞增,目的地區域包括一個參考權重值,該參考權重值為4,第二鄰近區域的參考權重值從5至8單調遞增。
情況2:針對有效數量個參考權重值,可以先包括多個第一數值,再包括多個第二數值,或者,可以先包括多個第二數值,再包括多個第一數值。例如,有效數量個參考權重值可以為[88...8800...00]或[00...0088...88]。示例性的,可以根據權重變換的起始位置確定多個參考權重值。例如,權重變換的起始位置表示第s個參考權重值,因此,第s個參考權重值之前(不包括第s個參考權重值)的所有參考權重值為第一數值(如8),第s個參考權重值之後(包括第s個參考權重值)的所有參考權重值為第二數值(如0)。或者,第s個參考權重值之前的所有參考權重值為第二數值,第s個參考權重值之後的所有參考權重值為第一數值。
步驟c2,根據有效數量個參考權重值,配置當前塊外部的周邊位置的參考權重值。
示例性的,當前塊外部的周邊位置的數量為有效數量,且參考權重值的數量為有效數量,因此,可以將有效數量個參考權重值,配置為當前塊外部的周邊位置的參考權重值。
例如,可以將第1個參考權重值配置為當前塊外部的第1個周邊位置的參考權重值,將第2個參考權重值配置為當前塊外部的第2個周邊位置的參考權重值,以此類推。
綜上所述,由於已經為當前塊外部的周邊位置配置參考權重值,即每個周邊位置均具有參考權重值,因此,在從當前塊外部的周邊位置中確定像素位置指向的周邊匹配位置後,可以確定該周邊匹配位置關聯的參考權重值,也就是該像素位置的目標權重值。
以下結合幾個具體的應用場景,對上述過程的實施方式進行說明。示例性的,在後續幾個應用場景中,假設當前塊的尺寸為M*N,M為當前塊的寬,N為當前塊的高。X為權重預測角度的tan值的log2對數值,如0或者1。Y為權重預測位置的索引值,a,b,c,d為預設的常數值。ValidLength表示有效數量,FirstPos表示權重變換的起始位置,ReferenceWeights[i]表示第i個周邊位置的參考權重值,Clip3用於限制參考權重值位於最小值0與最大值8之間,i表示當前塊外部的周邊位置的索引,a表示權重變換率的絕對值。
應用場景1:基於當前塊的尺寸和當前塊的權重預測角度確定有效數量(也可以稱為參考權重有效長度,即ValidLength),並獲取權重變換的起始位置(即FirstPos)。例如,可以通過如下公式確定ValidLength:ValidLength=(N+(M>>X))<<1;通過如下公式確定FirstPos:FirstPos=(ValidLength>>1)-a+Y*((ValidLength-1)>>3)。在此基礎上,通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,a*(i-FirstPos))。i的取值範圍可以是0~ValidLength-1;或1~ValidLength。在得到當前塊的周邊位置的參考權重值ReferenceWeights[i]後,通過如下公式匯出當前塊的像素位置(x,y)的目標權重值:SampleWeight[x][y]=ReferenceWeights[(y<<1)+((x<<1)>>X)],<<表示左移,>>表示右移。
應用場景2:可以通過如下公式確定ValidLength:ValidLength=(N+(M>>X))<<1;通過如下公式確定FirstPos:FirstPos=(ValidLength>>1)-b+Y *((ValidLength-1)>>3)-((M<<1)>>X)。在此基礎上,通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,a*(i-FirstPos))。可以通過如下公式匯出當前塊的每個像素位置(x,y)的目標權重值:SampleWeight[x][y]=ReferenceWeights[(y<<1)-((x<<1)>>X)]。
應用場景3:可以通過如下公式確定ValidLength:ValidLength=(M+(N>>X))<<1;通過如下公式確定FirstPos:FirstPos= (ValidLength>>1)-c+Y *((ValidLength-1)>>3)-((N<<1)>>X)。在此基礎上,可以通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,a*(i-FirstPos))。可以通過如下公式匯出當前塊的每個像素位置(x,y)的目標權重值:SampleWeight[x][y]=ReferenceWeights[(x<<1)-((y<<1)>>X)]。
應用場景4:可以通過如下公式確定ValidLength:ValidLength=(M+(N>>X))<<1;可以通過如下公式確定FirstPos:FirstPos=(ValidLength>>1)-d+Y *((ValidLength-1)>>3);在此基礎上,可以通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,a*(i-FirstPos))。可以通過如下公式匯出當前塊的每個像素位置(x,y)的目標權重值:SampleWeight[x][y]=ReferenceWeights[(x<<1)+((y<<1)>>X)]。
應用場景5:參見圖7所示,示出了四種權重變換率的參考權重值的示意圖。
在權重變換率的絕對值為1時,即權重變換率為1或者權重變換率為-1,可以通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,1*(i-FirstPos)),上述公式可以等價為ReferenceWeight[i]=Clip3(0,8,i-FirstPos)。在該情況中,參見圖7所示的第一類情況,FirstPos可以為4,即第1個到第4個周邊位置的參考權重值為0,第5個周邊位置的參考權重值為1,第6個周邊位置的參考權重值為2,以此類推。
在權重變換率的絕對值為2時,即權重變換率為2或者權重變換率為-2,通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,2*(i-FirstPos)),上述公式可以等價為ReferenceWeight[i]=Clip3(0,8,(i-FirstPos)<<1)。在該情況中,參見圖7所示的第二類情況,FirstPos可以為6,即第1個到第6個周邊位置的參考權重值為0,第7個周邊位置的參考權重值為2,第8個周邊位置的參考 權重值為4,以此類推。
在權重變換率的絕對值為4時,即權重變換率為4或者權重變換率為-4,可以通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,4*(i-FirstPos)),上述公式可以等價為ReferenceWeight[i]=Clip3(0,8,(i-FirstPos)<<2)。在該情況中,參見圖7所示的第三類情況,FirstPos可以為7,第1個到第7個周邊位置的參考權重值為0,第8個周邊位置的參考權重值為4,第9至17個周邊位置的參考權重值為8,以此類推。
在權重變換率的絕對值為8時,即權重變換率為8或者權重變換率為-8,通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,8*(i-FirstPos)),上述公式可以等價為ReferenceWeight[i]=Clip3(0,8,(i-FirstPos)<<3)。在該情況中,參見圖7所示的第四類情況,FirstPos可以為8,即第1個到第8個周邊位置的參考權重值為0,第9個周邊位置的參考權重值為9,第10至17個周邊位置的參考權重值為8,以此類推。
綜上所述,在權重變換率的絕對值為1時,FirstPos為4,在權重變換率的絕對值為2時,FirstPos為6(即權重變換率1時的FirstPos+2),在權重變換率的絕對值為4時,FirstPos為7(即權重變換率1時的FirstPos+3),基於此,可以對齊參考權重值為4的位置。
示例性的,針對當前塊來說,在支持權重變換率切換並啟動權重變換率切換時,可以從圖7所示的4類權重變換率的參考權重值分佈示例中選擇一種進行切換,從而通過對圖像或者圖像的局部區域進行權重變換率的切換,達到減弱一些圖像顯示場景中的圖像顯示的跳變突出。比如說,有一些圖像顯示場景中需要解決跳變比較突出的問題,AWP模式的權重變化率切換能夠解決這個問題。例如,混合圖像內容包括部分螢幕內容,動畫片,包含動畫片的圖像等,可以對某個含有螢幕內容的區域進行權重變換率切換,解決跳變比較突出的問題。
在上述過程中,ValidLength與當前塊的權重預測角度和當前塊的尺寸相關,為了方案簡化,可以固化某些參數來達到優化目的,例如,可以將當前塊的權重預測角度配置為固定參數值,ValidLength只與當前塊的尺寸相關。FirstPos與當前塊的權重預測角度,當前塊的尺寸,當前塊的權重預測位置相關,為了方案簡化,可以固化某些參數來達到優化目的,例如,可以將當前塊的權重預測角度配置為固定參數值,FirstPos只與當前塊的尺寸和當前塊的權重預測位置相關。或,將當前塊的權重預測位置配置為固定參數值,FirstPos只與當前塊的尺寸和當前塊的權重預測角度相關。或,將當前塊的權重預測角度和當前塊的權重預測位置均配置為固定參數值,這兩個固定參數值可以相同或者不同,FirstPos只與當前塊的尺寸相關。
實施例8:在實施例1-實施例4中,編碼端/解碼端需要根據當前塊的權重變換率和當前塊的權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。在一種可能的實施方式中,記M和N是當前塊的寬和高,角度加權預測模式(AWP)的權重陣列匯出方式,包括:
步驟d1,根據AwpIdx獲取stepIdx,angleIdx以及subAngleIdx等參數。
示例性的,AwpIdx表示權重預測位置和權重預測角度的索引值,假設存在7種權重預測位置,8種權重預測角度,則AwpIdx的取值範圍是0-55。若權重預測位置為-3至3(表示第4個權重預測位置是中心,第4個權重預測位置為0),權重預測角度的索引為0-7,則AwpIdx的56個索引值對應的權重預測位置和權重預測角度,可以參見表1所示。
Figure 110123652-A0202-12-0037-1
Figure 110123652-A0202-12-0038-2
示例性的,stepIdx表示權重預測位置(即權重預測位置的索引值),權重預測位置的範圍可以是-3至3。例如,針對第1個權重預測位置,權重預測位置為-3,針對第2個權重預測位置,權重預測位置為-2,以此類推,針對第7個權重預測位置,權重預測位置為3。
angleIdx表示權重預測角度的斜率的絕對值的log2對數值(如0,或1,或較大常數),subAngleIdx表示權重預測角度所在的角度分區。參見圖8A所示,示出8種權重預測角度,權重預測角度0的angleIdx為權重預測角度0的斜率的絕對值的log2對數值,權重預測角度1的angleIdx為權重預測角度1的斜率的絕對值的log2對數值,以此類推,權重預測角度7的angleIdx為權重預測角度7的斜率的絕對值的log2對數值。權重預測角度0和權重預測角度1位於角度分區0,權重預測角度2和權重預測角度3位於角度分區1,權重預測角度4和權重預測角度5位於角度分區2,權重預測角度6和權重預測角度7位於角度分區3。
示例性的,可以採用如下公式確定stepIdx:stepIdx=(AwpIdx>>3)-3。
示例性的,可以根據如下公式確定modAngNum(角度編號):modAngNum=AwpIdx% 8;基於modAngNum,可以採用如下方式確定angleIdx:若modAngNum等於2,則angleIdx=7;若modAngNum等於6,則angleIdx=8;否則,angleIdx=modAngNum% 2。
示例性的,可以採用如下公式確定subAngleIdx:subAngleIdx=modAngNum>>1。
綜上所述,編碼端在確定出當前塊的權重預測角度和當前塊的權重預測位置後,可以基於該權重預測角度和該權重預測位置確定AwpIdx的取值,參見表1所示。編碼端在向解碼端發送編碼位元流時,該編碼位元流可以攜帶AwpIdx的取值,基於此,解碼端可以得到AwpIdx的取值,並根據AwpIdx獲取stepIdx,angleIdx以及subAngleIdx。
示例性的,angleIdx以及subAngleIdx能夠唯一確定一個權重預測角度,參見表2所示,當然,也可以採用其它方式確定權重預測角度,例如,更改分區編號等。
Figure 110123652-A0202-12-0039-3
步驟d2,根據stepIdx,angleIdx和subAngleIdx為當前塊外部周邊位置配置參考權重值。
情況一、若subAngleIdx為0,即權重預測角度位於角度分區0,比如說,權重預測角度為權重預測角度0或權重預測角度1,則可以 採用如下公式確定權重變換的起始位置FirstPos:FirstPos=(ValidLength_H>>1)-6+DeltaPos_H。然後,採用如下公式確定當前塊外部的周邊位置的參考權重值:ReferenceWeights[x]=Clip3(0,8,x-FirstPos),在該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為1為例進行說明,也就是說,上述公式可以等價為ReferenceWeights[x]=Clip3(最小值,最大值,a*(x-FirstPos))。x可以是當前塊外部的周邊位置的索引,x的取值範圍是0~ValidLength_H-1,a表示權重變換率。
在上述公式中,ValidLength_H可以表示當前塊外部的周邊位置的數量(即有效數量,也可以稱為有效長度),在subAngleIdx為0時,權重預測角度指向的當前塊外部的周邊位置,可以是左側一列的周邊位置,因此,可以將有效數量記為ValidLength_H。示例性的,可以採用如下公式確定有效數量ValidLength_H:ValidLength_H=(N+(M>>angleIdx))<<1。此處左移一位,是因為公式採用1/2-pel精度,若為1-pel精度,則ValidLength_H=(N+(M>>angleIdx));若為1/4-pel精度,則ValidLength_H=(N+(M>>angleIdx))<<2;若為2-pel精度,則ValidLength_H=(N+(M>>angleIdx))>>1,其他像素精度以此類推,在此不在贅述。之後的公式中,涉及的部分>>1操作,均可能因為像素精度的不同而發生改變。
在上述公式中,DeltaPos_H表示位置變化量參數(即一個中間參數),在subAngleIdx為0時,權重預測角度指向的當前塊外部的周邊位置,可以是當前塊外部左側一列的周邊位置,因此,可以將位置變化量參數記為DeltaPos_H。示例性的,可以採用如下公式確定DeltaPos_H:DeltaPos_H=stepIdx *((ValidLength_H>>3)-1)。
情況二、若subAngleIdx為1,即權重預測角度位於角度分區1,比如說,權重預測角度為權重預測角度2或權重預測角度3,則可以採用如下公式確定權重變換的起始位置FirstPos:FirstPos=(ValidLength_H>>1)-4+DeltaPos_H-((M<<1)>>angleIdx)。然後,採用如下公式確定當前塊外部的周邊位置的參考權重值:ReferenceWeights[x]=Clip3(0,8,a*(x-FirstPos)),在該公式中,是以參考權重值的最小值為0,參考權重值 的最大值為8,權重變換率為a為例進行說明。x可以是當前塊外部的周邊位置的索引,x的取值範圍是0~ValidLength_H-1。
在上述公式中,ValidLength_H和DeltaPos_H可以參見情況一,在此不再贅述。
情況三、若subAngleIdx為2,即權重預測角度位於角度分區2,比如說,權重預測角度為權重預測角度4或權重預測角度5,則可以採用如下公式確定權重變換的起始位置FirstPos:FirstPos=(ValidLength_W>>1)-4+DeltaPos_W-((N<<1)>>angleIdx)。然後,採用如下公式確定當前塊外部的周邊位置的參考權重值:ReferenceWeights[x]=Clip3(0,8,a*(x-FirstPos)),在該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為a為例進行說明。x可以是當前塊外部的周邊位置的索引,x的取值範圍是0~ValidLength_W-1。
在上述公式中,ValidLength_W表示當前塊外部的周邊位置的數量(即有效數量,也可以稱為有效長度),在subAngleIdx為2時,權重預測角度指向的當前塊外部的周邊位置,可以是上側一行的周邊位置,因此,將有效數量記為ValidLength_W。示例性的,可以採用如下公式確定有效數量ValidLength_W:ValidLength_W=(M+(N>>angleIdx))<<1。
在上述公式中,DeltaPos_W表示位置變化量參數(即一個中間參數),在subAngleIdx為2時,權重預測角度指向的當前塊外部的周邊位置,可以是當前塊外部上側一行的周邊位置,因此,可以將位置變化量參數記為DeltaPos_W。示例性的,可以採用如下公式確定DeltaPos_W:DeltaPos_W=stepIdx *((ValidLength_W>>3)-1)。
情況四、若subAngleIdx為3,即權重預測角度位於角度分區3,比如說,權重預測角度為權重預測角度6或權重預測角度7,則可以採用如下公式確定權重變換的起始位置FirstPos:FirstPos=(ValidLength_W>>1)-6+DeltaPos_W。然後,可以採用如下公式確定當前塊外部的周邊位置的參考權重值:ReferenceWeights[x]=Clip3(0,8,a*(x-FirstPos)),在 該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為a為例進行說明。x可以是當前塊外部的周邊位置的索引,x的取值範圍是0~ValidLength_W-1。
在上述公式中,ValidLength_W和DeltaPos_W可以參見情況三,在此不再贅述。
綜上所述,可以根據subAngleIdx確定應該採用哪種情況進行處理,例如,在情況一和情況二中,可以根據angleIdx和stepIdx確定ValidLength_H和DeltaPos_H,並可以根據ValidLength_H和DeltaPos_H確定FirstPos,繼而根據FirstPos配置參考權重值。在情況三和情況四中,可以根據angleIdx和stepIdx確定ValidLength_W和DeltaPos_W,並可以根據ValidLength_W和DeltaPos_W確定FirstPos,繼而根據FirstPos配置參考權重值。
上述各情況中的公式的區別在於,將當前塊的左上角作為座標原點時,參考權重值ReferenceWeights[x]的起始位置發生了變化。例如,參見圖8B所示,示出了角度分區2和角度分區3的示例,在1/2-pel精度時,參考權重值ReferenceWeights[x]的起始位置為(高<<1)>>angleIdx,即公式中的偏移“-((N<<1)>>angleIdx)”。角度分區0和角度分區1的實現類似,只是公式中的偏移為“-((M<<1)>>angleIdx)",即高度改為寬度即可。
步驟d3,根據angleIdx和參考權重值ReferenceWeights[x]獲取像素位置的亮度權重值。
情況一、若subAngleIdx為0,則可以採用如下公式確定像素位置(x,y)的亮度權重值:AwpWeightArrayY[x][y]=ReferenceWeights[(y<<1)+((x<<1)>>angleIdx)],(y<<1)+((x<<1)>>angleIdx)表示像素位置(x,y)指向的周邊位置,ReferenceWeights[(y<<1)+((x<<1)>>angleIdx)]表示該周邊位置的參考權重值。x的取值範圍是0~M-1,y的取值範圍是0~N-1。
情況二、若subAngleIdx為1,則可以採用如下公式確定像 素位置(x,y)的亮度權重值:AwpWeightArrayY[x][y]=ReferenceWeights[(y<<1)-((x<<1)>>angleIdx)],(y<<1)-((x<<1)>>angleIdx)表示像素位置(x,y)指向的周邊位置,ReferenceWeights[(y<<1)-((x<<1)>>angleIdx)]表示該周邊位置的參考權重值。x的取值範圍是0~M-1;y的取值範圍是0~N-1。
情況三、若subAngleIdx為2,則可以採用如下公式確定像素位置(x,y)的亮度權重值:AwpWeightArrayY[x][y]=ReferenceWeights[(x<<1)-((y<<1)>>angleIdx)],(x<<1)-((y<<1)>>angleIdx)表示像素位置(x,y)指向的周邊位置,ReferenceWeights[(x<<1)-((y<<1)>>angleIdx)]表示該周邊位置的參考權重值。x的取值範圍是0~M-1;y的取值範圍是0~N-1。
情況四、若subAngleIdx為3,則可以採用如下公式確定像素位置(x,y)的亮度權重值:AwpWeightArrayY[x][y]=ReferenceWeights[(x<<1)+((y<<1)>>angleIdx)],(x<<1)+((y<<1)>>angleIdx)表示像素位置(x,y)指向的周邊位置,ReferenceWeights[(x<<1)+((y<<1)>>angleIdx)]表示該周邊位置的參考權重值。x的取值範圍是0~M-1;y的取值範圍是0~N-1。
上述步驟d2和步驟d3可聯合為一個步驟,即將步驟d2(根據stepIdx,angleIdx以及subAngleIdx為當前塊外部的周邊位置配置參考權重值)及步驟d3(根據angleIdx和參考權重值ReferenceWeight[x]獲取亮度權重值)聯合為:根據stepIdx,angleIdx及subAngleIdx獲取像素位置的亮度權重值,即根據周邊位置的座標值與權重變換起始位置的座標值確定。
以情況一為例:若subAngleIdx為0,即權重預測角度位於角度分區0,如權重預測角度為權重預測角度0或權重預測角度1,則採用如下公式確定權重變換的起始位置FirstPos:FirstPos=(ValidLength_H>>1)-6+DeltaPos_H。然後,採用如下公式AwpWeightArrayY[x][y]=Clip3(0,8, (y<<1)+((x<<1)>>angleIdx)-FirstPos)確定像素位置(x,y)的亮度權重值:(y<<1)+((x<<1)>>angleIdx)表示像素位置(x,y)指向的周邊匹配位置。
步驟d4,根據像素位置的亮度權重值獲取該像素位置的色度權重值,而該像素位置的亮度權重值和該像素位置的色度權重值,就可以組成該像素位置的目標權重值。
例如,若色度解析度的格式為4:2:0,則採用如下公式確定像素位置(x,y)的色度權重值:AwpWeightArrayUV[x][y]=AwpWeightArrayY[x<<1][y<<1]。又例如,若色度解析度的格式為4:4:4,則採用如下公式確定像素位置(x,y)的色度權重值:AwpWeightArrayUV[x][y]=AwpWeightArrayY[x][y]。其中,x的取值範圍是0~M/2-1;y的取值範圍是0~N/2-1。
步驟d4的另一種實現方式為:根據angleIdx和參考權重值ReferenceWeight[x]獲取像素位置的色度權重值,而不需要根據亮度權重值獲取色度權重值。例如,若色度解析度的格式為4:2:0,則根據angleIdx和參考權重值ReferenceWeight[x]獲取像素位置的色度權重值。
例如,若subAngleIdx為0,則可以採用如下公式確定像素位置(x,y)的色度權重值:AwpWeightArrayUV[x][y]=ReferenceWeights[(y<<2)+((x<<2)>>angleIdx)]。
例如,若subAngleIdx為1,則可以採用如下公式確定像素位置(x,y)的色度權重值:AwpWeightArrayUV[x][y]=ReferenceWeights[(y<<2)-((x<<2)>>angleIdx)]。
例如,若subAngleIdx為2,則可以採用如下公式確定像素位置(x,y)的色度權重值:AwpWeightArrayUV[x][y]=ReferenceWeights[(x<<2)-((y<<2)>>angleIdx)]。
例如,若subAngleIdx為3,則可以採用如下公式確定像素位置(x,y)的色度權重值:AwpWeightArrayUV[x][y]=ReferenceWeights[(x <<2)+((y<<2)>>angleIdx)]。
在上述各公式中,x的取值範圍是0~M-1,y的取值範圍是0~N-1。
在步驟d3和步驟d4中,各情況中的公式的區別在於,參見圖8C所示,示出了角度分區2和角度分區3的示例。將當前塊的左上角作為座標原點時,(x,y)的匹配位置在角度分區2的計算公式可以為:x-y>>angleIdx,(x,y)的匹配位置在角度分區3的計算公式可以為:x+y>>angleIdx。在1/2-pel精度時,(x,y)的匹配位置在角度分區2的計算公式可以為:(x<<1)-(y<<1)>>angleIdx,(x,y)的匹配位置在角度分區3的計算公式可以為:(x<<1)+(y<<1)>>angleIdx。角度分區0和角度分區1的實現類似,只是交換(x,y)的位置即可。
實施例9:在實施例1-實施例4中,編碼端/解碼端需要獲取當前塊的權重變換率,若當前塊支援權重變換率切換模式,則採用如下方式獲取當前塊的權重變換率:獲取當前塊的權重變換率指示資訊,並根據該權重變換率指示資訊確定當前塊的權重變換率。示例性的,若該權重變換率指示資訊為第一指示資訊,則當前塊的權重變換率為第一權重變換率;若權重變換率指示資訊為第二指示資訊,則當前塊的權重變換率為第二權重變換率。若當前塊不支援權重變換率切換模式,則將預設的權重變換率確定為當前塊的權重變換率。
綜上所述,若當前塊支持權重變換率切換模式,則當前塊的權重變換率可以為第一權重變換率或者第二權重變換率,且第一權重變換率與第二權重變換率不同,即,當前塊的權重變換率是可變的,從而能夠自我調整的切換權重變換率,而不是採用統一的一個權重變換率。
示例性的,若切換控制資訊允許當前塊啟用權重變換率切換模式,則當前塊支援權重變換率切換模式,若切換控制資訊不允許當前塊啟用權重變換率切換模式,則當前塊不支援權重變換率切換模式。該切換控制資訊可以包括但不限於:序列級切換控制資訊,幀級切換控制資訊,Slice (片)級切換控制資訊,Tile(片)級切換控制資訊,Patch(片)級切換控制資訊,編碼樹單元(Coding Tee Unit,CTU)級切換控制資訊,最大編碼單元(Largest Coding Unit,LCU)級切換控制資訊,塊級切換控制資訊,編碼單元(Coding Unit,CU)級切換控制資訊,預測單元(Prediction Unit,PU)級切換控制資訊等,對此不做限制。
對於編碼端來說,可以獲知切換控制資訊,且獲知切換控制資訊是否允許當前塊啟用權重變換率切換模式,繼而確定當前塊是否支持權重變換率切換模式。編碼端可以將切換控制資訊編碼到碼流,使得解碼端從碼流中解析出切換控制資訊,獲知切換控制資訊是否允許當前塊啟用權重變換率切換模式,繼而確定當前塊是否支持權重變換率切換模式。編碼端也可以不將切換控制資訊編碼到碼流,而是由解碼端隱式推導出切換控制資訊,獲知切換控制資訊是否允許當前塊啟用權重變換率切換模式,繼而確定當前塊是否支持權重變換率切換模式。
以序列級切換控制資訊為例,序列級切換控制資訊可以為awp_adptive_flag(幀間角度加權預測適應標誌位元),若awp_adptive_flag為第一取值,則表示序列級切換控制資訊允許當前序列啟用權重變換率切換模式,從而允許當前塊啟用權重變換率切換模式,若awp_adptive_flag為第二取值,則表示序列級切換控制資訊不允許當前序列啟用權重變換率切換模式,從而不允許當前塊啟用權重變換率切換模式。示例性的,第一取值為1,第二取值為0,或者,第一取值為0,第二取值為1。當然,上述只是第一取值和第二取值的示例,對此不做限制。針對其它類型的切換控制資訊,實現過程與序列級切換控制資訊類似,在此不再贅述。
在一種可能的實施方式中,當前塊的權重變換率指示資訊可以為當前塊對應的SCC(Screen Content Coding,螢幕內容編碼)標識,第一指示資訊用於指示當前塊屬於螢幕內容編碼,第二指示資訊用於指示當前塊屬於非螢幕內容編碼。在此基礎上,可以獲取當前塊對應的SCC標識,並根據該SCC標識確定當前塊的權重變換率。例如,若該SCC標識用於指示當前塊屬於螢幕內容編碼,則當前塊的權重變換率為第一權重變換 率;若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則當前塊的權重變換率為第二權重變換率。
示例性的,第一權重變換率的絕對值可以大於第二權重變換率的絕對值。例如,第一權重變換率的絕對值可以為4,第二權重變換率的絕對值可以為1或2。又例如,第一權重變換率的絕對值可以為2,第二權重變換率的絕對值可以為1。又例如,第一權重變換率的絕對值可以為8,第二權重變換率的絕對值可以為1或2或4。又例如,第一權重變換率的絕對值可以為8或4,第二權重變換率的絕對值可以為1或2。當然,上述只是幾個示例,對此不做限制,只要第一權重變換率的絕對值大於第二權重變換率的絕對值即可。
示例性的,SCC標識可以包括但不限於:序列級SCC標識,幀級SCC標識,Slice級SCC標識,Tile級SCC標識,Patch級SCC標識,CTU級SCC標識,LCU級SCC標識,塊級SCC標識,CU級SCC標識,PU級SCC標識等等,對此不做限制。例如,可以將當前塊對應的序列級SCC標識確定為當前塊對應的SCC標識,或者,將當前塊對應的幀級SCC標識確定為當前塊對應的SCC標識,以此類推,只要能夠得到當前塊對應的SCC標識即可。
示例性的,對於編碼端來說,可以決策當前塊屬於螢幕內容編碼,還是屬於非螢幕內容編碼。若當前塊屬於螢幕內容編碼,則編碼端確定當前塊的權重變換率為第一權重變換率。若當前塊屬於非螢幕內容編碼,則編碼端確定當前塊的權重變換率為第二權重變換率。或者,對於編碼端來說,可以獲取當前塊對應的SCC標識,若該SCC標識用於指示當前塊屬於螢幕內容編碼,則編碼端確定當前塊的權重變換率為第一權重變換率。若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則編碼端確定當前塊的權重變換率為第二權重變換率。
編碼端可以將SCC標識(如序列級SCC標識,幀級SCC標識,Slice級SCC標識等等)編碼到碼流,使得解碼端從碼流中解析出該 SCC標識,並將該SCC標識確定為當前塊對應的SCC標識,例如,可以將當前塊對應的序列級SCC標識確定為當前塊對應的SCC標識。綜上所述,解碼端可以獲知當前塊對應的SCC標識,若該SCC標識用於指示當前塊屬於螢幕內容編碼,則解碼端確定當前塊的權重變換率為第一權重變換率。若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則解碼端確定當前塊的權重變換率為第二權重變換率。例如,若SCC標識為第一取值,則用於指示當前塊屬於螢幕內容編碼,若SCC標識為第二取值,則用於指示當前塊屬於非螢幕內容編碼。第一取值為1,第二取值為0,或者,第一取值為0,第二取值為1。當然,上述只是第一取值和第二取值的示例,對此不做限制。
編碼端也可以不將SCC標識編碼到碼流,而是利用與解碼端一致的資訊隱式推導出SCC標識,此時解碼端也可以隱式推導出SCC標識,並將該SCC標識確定為當前塊對應的SCC標識。例如,若連續多幀均是螢幕內容編碼,則推導出當前幀為螢幕內容編碼,因此,解碼端隱式推導出幀級SCC標識,並將該SCC標識確定為當前塊對應的SCC標識,且該SCC標識用於指示當前塊屬於螢幕內容編碼。例如,若連續多幀均是非螢幕內容編碼,則推導出當前幀為非螢幕內容編碼,因此,解碼端隱式推導出幀級SCC標識,且該SCC標識用於指示當前塊屬於非螢幕內容編碼。例如,若IBC模式占比小於一定百分比,將下一幀確定為非螢幕內容編碼,否則繼續為螢幕內容編碼。當然,上述方式只是隱式推導出SCC標識的示例,對此隱式推導方式不做限制。綜上所述,解碼端可以獲取當前塊對應的SCC標識,若該SCC標識用於指示當前塊屬於螢幕內容編碼,則解碼端確定當前塊的權重變換率為第一權重變換率。若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則解碼端確定當前塊的權重變換率為第二權重變換率。例如,若SCC標識為第一取值,則用於指示當前塊屬於螢幕內容編碼,若SCC標識為第二取值,則用於指示當前塊屬於非螢幕內容編碼。
綜上所述,當前塊的權重變換率可以為第一權重變換率或者第二權重變換率,即當前塊的權重變換率可以進行切換,且權重變換率的切換依賴於某級的SCC顯示標識或SCC隱式標識,SCC顯示標識是指, 將scc_flag(SCC標識)編入碼流,使得解碼端從碼流中解析出SCC標識,SCC隱式標識是指,解碼端根據能夠得到的資訊自我調整推導出SCC標識。
某級SCC標識是指:序列級指示當前序列的SCC標識,該SCC標識作為屬於當前序列的所有塊的SCC標識;幀級指示當前幀的SCC標識,該SCC標識作為屬於當前幀的所有塊的SCC標識;Slice級指示當前Slice的SCC標識,該SCC標識作為屬於當前Slice的所有塊的SCC標識;Tile級指示當前Tile的SCC標識,該SCC標識作為屬於當前Tile的所有塊的SCC標識;Patch級指示當前Patch的SCC標識,該SCC標識作為屬於當前Patch的所有塊的SCC標識;CTU級指示當前CTU的SCC標識,該SCC標識作為屬於當前CTU的所有塊的SCC標識;LCU級指示當前LCU的SCC標識,該SCC標識作為屬於當前LCU的所有塊的SCC標識;塊級指示當前塊的SCC標識,該SCC標識作為屬於當前塊的所有塊的SCC標識;CU級指示當前CU的SCC標識,該SCC標識作為屬於當前CU的SCC標識;PU級指示當前PU的SCC標識,該SCC標識作為屬於當前PU的SCC標識。
示例性的,可以將第二權重變換率作為默認的權重變換率,在SCC標識用於指示當前塊屬於非螢幕內容編碼時,不需要對權重變換率進行切換,即確定當前塊的權重變換率為第二權重變換率。在SCC標識用於指示當前塊屬於螢幕內容編碼時,需要對權重變換率進行切換,即確定當前塊的權重變換率為第一權重變換率。或者,可以將第一權重變換率作為默認的權重變換率,在SCC標識用於指示當前塊屬於非螢幕內容編碼時,需要對權重變換率進行切換,即確定當前塊的權重變換率為第二權重變換率。在SCC標識用於指示當前塊屬於螢幕內容編碼時,不需要對權重變換率進行切換,即確定當前塊的權重變換率為第一權重變換率。
綜上所述,在當前塊屬於螢幕內容編碼時,當前塊的權重變換率為第一權重變換率,在當前塊屬於非螢幕內容編碼時,當前塊的權重變換率為第二權重變換率,且第一權重變換率的絕對值大於第二權重變換率的絕對值,如第一權重變換率的絕對值為4,第二權重變換率的絕對值為 1,使得屬於SCC序列的當前塊的權重變換率的絕對值增加,即變換速度增加。
在另一種可能的實施方式中,當前塊的權重變換率指示資訊可以為當前塊對應的權重變換率切換標識,第一指示資訊用於指示當前塊不需要進行權重變換率切換,第二指示資訊用於指示當前塊需要進行權重變換率切換。在此基礎上,可以獲取當前塊對應的權重變換率切換標識,並根據該權重變換率切換標識確定當前塊的權重變換率。例如,若該權重變換率切換標識用於指示當前塊不需要進行權重變換率切換,則當前塊的權重變換率可以為第一權重變換率;若該權重變換率切換標識用於指示當前塊需要進行權重變換率切換,則當前塊的權重變換率可以為第二權重變換率。第一權重變換率的絕對值不等於第二權重變換率的絕對值。
例如,第一權重變換率的絕對值可以大於第二權重變換率的絕對值,如第一權重變換率的絕對值可以為4,第二權重變換率的絕對值為1或2。或,第一權重變換率的絕對值可以為2,第二權重變換率的絕對值為1。或,第一權重變換率的絕對值可以為8,第二權重變換率的絕對值為1或2或4。又例如,第一權重變換率的絕對值可以小於第二權重變換率的絕對值,如第一權重變換率的絕對值可以為1,第二權重變換率的絕對值可以為2或4或8。或者,第一權重變換率的絕對值可以為2,第二權重變換率的絕對值可以為4或8。或者,第一權重變換率的絕對值可以為4,第二權重變換率的絕對值可以為8。當然,上述只是幾個示例,對此不做限制,只要第一權重變換率的絕對值不等於第二權重變換率的絕對值即可。
示例性的,權重變換率切換標識可以包括但不限於:序列級權重變換率切換標識,幀級權重變換率切換標識,Slice級權重變換率切換標識,Tile級權重變換率切換標識,Patch級權重變換率切換標識,CTU級權重變換率切換標識,LCU級權重變換率切換標識,塊級權重變換率切換標識,CU級權重變換率切換標識,PU級權重變換率切換標識等等,對此不做限制。
例如,可以將當前塊對應的序列級權重變換率切換標識確定為當前塊對應的權重變換率切換標識,或者,將當前塊對應的幀級權重變換率切換標識確定為當前塊對應的權重變換率切換標識,以此類推,只要能夠得到當前塊對應的權重變換率切換標識即可。
示例性的,可以將第一權重變換率作為默認的權重變換率,對於編碼端來說,可以獲知當前塊是否需要進行權重變換率切換,若當前塊不需要進行權重變換率切換,則編碼端確定當前塊的權重變換率為第一權重變換率。若當前塊需要進行權重變換率切換,則編碼端確定當前塊的權重變換率為第二權重變換率。或者,對於編碼端來說,可以獲知當前塊對應的權重變換率切換標識,若該權重變換率切換標識用於指示當前塊不需要進行權重變換率切換,則編碼端可以確定當前塊的權重變換率為第一權重變換率。若該權重變換率切換標識用於指示當前塊需要進行權重變換率切換,則編碼端確定當前塊的權重變換率為第二權重變換率。
例如,編碼端確定與第一權重變換率對應的率失真代價值1,與第二權重變換率對應的率失真代價值2。若率失真代價值1小於率失真代價值2,則確定當前塊不需要進行權重變換率切換,若率失真代價值2小於率失真代價值1,則確定當前塊需要進行權重變換率切換。
編碼端可以將權重變換率切換標識(如序列級權重變換率切換標識等)編碼到碼流,使得解碼端從碼流中解析出該權重變換率切換標識,並將該權重變換率切換標識確定為當前塊對應的權重變換率切換標識。綜上所述,解碼端可以獲知當前塊對應的權重變換率切換標識,若該權重變換率切換標識用於指示當前塊不需要進行權重變換率切換,則解碼端確定當前塊的權重變換率為第一權重變換率。若該權重變換率切換標識用於指示當前塊需要進行權重變換率切換,則解碼端確定當前塊的權重變換率為第二權重變換率。例如,若權重變換率切換標識為第一取值,則指示當前塊不需要進行權重變換率切換,若權重變換率切換標識為第二取值,則指示當前塊需要進行權重變換率切換。第一取值為1,第二取值為0,或者,第一取值為0,第二取值為1。當然,上述只是第一取值和第二取值的示例,對 此不做限制。
編碼端也可以不將權重變換率切換標識編碼到碼流,而是由解碼端隱式推導權重變換率切換標識,並將該權重變換率切換標識確定為當前塊對應的權重變換率切換標識。例如,若連續多個塊均需要進行權重變換率切換,則當前塊也需要進行權重變換率切換,解碼端隱式推導出權重變換率切換標識,將該權重變換率切換標識確定為當前塊對應的權重變換率切換標識,且該權重變換率切換標識指示當前塊需要進行權重變換率切換。若連續多個塊均不需要進行權重變換率切換,則當前塊也不需要進行權重變換率切換,解碼端隱式推導出權重變換率切換標識,且權重變換率切換標識指示當前塊不需要進行權重變換率切換。當然,上述方式只是隱式推導出權重變換率切換標識的示例,對此推導方式不做限制。綜上所述,解碼端可以獲知當前塊對應的權重變換率切換標識,若該權重變換率切換標識指示當前塊不需要進行權重變換率切換,則確定當前塊的權重變換率為第一權重變換率。若該權重變換率切換標識指示當前塊需要進行權重變換率切換,則確定當前塊的權重變換率為第二權重變換率。
綜上所述,當前塊的權重變換率可以為第一權重變換率或第二權重變換率,即當前塊的權重變換率可以進行切換,權重變換率的切換依賴於某級的權重變換率切換標識(refine_flag),該refine_flag為顯示標識或隱式標識,顯示標識是指將refine_flag編入碼流,使得解碼端從碼流中解析出refine_flag,隱式標識是指編解碼端根據能夠得到的資訊自我調整推導refine_flag。
示例性的,某級refine_flag是指:序列級指示當前序列的refine_flag,作為屬於當前序列的所有塊的refine_flag;幀級指示當前幀的refine_flag,作為屬於當前幀的所有塊的refine_flag;Slice級指示當前Slice的refine_flag,作為屬於當前Slice的所有塊的refine_flag;Tile級指示當前Tile的refine_flag,作為屬於當前Tile的所有塊的refine_flag;Patch級指示當前Patch的refine_flag,作為屬於當前Patch的所有塊的refine_flag;CTU級指示當前CTU的refine_flag,作為屬於當前CTU的所有塊的refine_flag; LCU級指示當前LCU的refine_flag,作為屬於當前LCU的所有塊的refine_flag;塊級指示當前塊的refine_flag,作為屬於當前塊的refine_flag;CU級指示當前CU的refine_flag,作為屬於當前CU的refine_flag;PU級指示當前PU的refine_flag,作為屬於當前PU的refine_flag。當然,上述只是幾個示例,對此不做限制。
示例性的,可以將第一權重變換率作為默認的權重變換率,在權重變換率切換標識用於指示當前塊不需要進行權重變換率切換時,不對權重變換率進行切換,即確定當前塊的權重變換率為第一權重變換率。在權重變換率切換標識用於指示當前塊需要進行權重變換率切換時,對權重變換率進行切換,即確定當前塊的權重變換率為第二權重變換率。
實施例10:在實施例1-實施例4中,編碼端/解碼端需要獲取當前塊的權重預測角度和權重預測位置,在實施例9中,可以得到當前塊的權重變換率,如第一權重變換率或者第二權重變換率,在此基礎上,採用如下方式獲取當前塊的權重預測角度和權重預測位置:
方式一、編碼端和解碼端約定相同的權重預測角度作為當前塊的權重預測角度,並約定相同的權重預測位置作為當前塊的權重預測位置。例如,編碼端和解碼端將權重預測角度A作為當前塊的權重預測角度,編碼端和解碼端將權重預測位置4作為當前塊的權重預測位置。
方式二、編碼端構建權重預測角度列表,權重預測角度列表包括至少一個權重預測角度,如權重預測角度A和權重預測角度B。編碼端構建權重預測位置列表,權重預測位置列表包括至少一個權重預測位置,如權重預測位置0-權重預測位置6。依次遍歷權重預測角度列表中的每個權重預測角度,遍歷權重預測位置列表中的每個權重預測位置,即遍歷每個權重預測角度及每個權重預測位置的組合。將每個組合作為步驟a1中獲取的權重預測角度和權重預測位置,基於該權重預測角度,該權重預測位置及權重變換率,得到當前塊的加權預測值。
例如,編碼端遍歷到權重預測角度A和權重預測位置0時, 基於權重預測角度A和權重預測位置0得到當前塊的加權預測值。遍歷到權重預測角度A和權重預測位置1時,基於權重預測角度A和權重預測位置1得到當前塊的加權預測值。遍歷到權重預測角度B和權重預測位置0時,基於權重預測角度B和權重預測位置0得到當前塊的加權預測值,以此類推。編碼端可以基於權重預測角度和權重預測位置的每個組合,得到當前塊的加權預測值。
編碼端基於權重預測角度和權重預測位置的組合得到當前塊的加權預測值後,可以根據當前塊的加權預測值確定率失真代價值,對此率失真代價值的確定方式不做限制,編碼端可以得到每個組合的率失真代價值,並從所有率失真代價值中選擇最小率失真代價值。
然後,編碼端將最小率失真代價值對應的權重預測角度和權重預測位置組合作為目標權重預測角度和目標權重預測位置,最後將目標權重預測角度在權重預測角度清單中的索引值和目標權重預測位置在權重預測位置清單中的索引值編入碼流。
針對解碼端來說,解碼端構建權重預測角度列表,該權重預測角度清單與編碼端的權重預測角度列表相同,權重預測角度列表包括至少一個權重預測角度。構建權重預測位置列表,該權重預測位置清單與編碼端的權重預測位置列表相同,權重預測位置列表包括至少一個權重預測位置。解碼端在接收到當前塊的編碼位元流後,從編碼位元流中解析出指示資訊,根據該指示資訊從權重預測角度清單中選擇一個權重預測角度作為當前塊的權重預測角度,根據該指示資訊從權重預測位置清單中選擇一個權重預測位置作為當前塊的權重預測位置。
應用場景1:編碼端在向解碼端發送編碼位元流時,該編碼位元流可以包括指示資訊1,指示資訊1用於指示當前塊的權重預測角度(即目標權重預測角度)和當前塊的權重預測位置(即目標權重預測位置)。例如,當指示資訊1為0時,用於指示權重預測角度列表中的第一個權重預測角度,且指示權重預測位置列表中的第一個權重預測位置,當指示資訊 1為1時,用於指示權重預測角度列表中的第一個權重預測角度,且指示權重預測位置列表中的第二個權重預測位置,以此類推,對於指示資訊1的取值,用於指示哪個權重預測角度和哪個權重預測位置,只要編碼端與解碼端進行約定即可,本實施例中對此不做限制。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊1,基於該指示資訊1,解碼端可以從權重預測角度列表中選擇與該指示資訊1對應的權重預測角度,該權重預測角度作為當前塊的權重預測角度。基於該指示資訊1,解碼端可以從權重預測位置列表中選擇與該指示資訊1對應的權重預測位置,該權重預測位置作為當前塊的權重預測位置。
應用場景2:編碼端在向解碼端發送編碼位元流時,該編碼位元流可以包括指示資訊2和指示資訊3。指示資訊2用於指示當前塊的目標權重預測角度,如目標權重預測角度在權重預測角度清單中的索引值1,索引值1表示目標權重預測角度是權重預測角度列表中的第幾個權重預測角度。指示資訊3用於指示當前塊的目標權重預測位置,如目標權重預測位置在權重預測位置清單中的索引值2,索引值2表示目標權重預測位置是權重預測位置列表中的第幾個權重預測位置。解碼端接收到編碼位元流後,從編碼位元流中解析出指示資訊2和指示資訊3,基於指示資訊2,從權重預測角度清單中選擇與該索引值1對應的權重預測角度,該權重預測角度作為當前塊的權重預測角度。基於該指示資訊3,從權重預測位置清單中選擇與該索引值2對應的權重預測位置,該權重預測位置作為當前塊的權重預測位置。
應用場景3:編碼端和解碼端可以約定優選配置組合,對此優選配置組合不做限制,可以根據實際經驗進行配置,例如,編碼端和解碼端約定包括權重預測角度A和權重預測位置4的優選配置組合1,包括權重預測角度B和權重預測位置4的優選配置組合2。
編碼端確定當前塊的目標權重預測角度和目標權重預測 位置後,確定目標權重預測角度和目標權重預測位置是否為優選配置組合。如果是,則編碼端在向解碼端發送編碼位元流時,該編碼位元流可以包括指示資訊4和指示資訊5。指示資訊4用於指示當前塊是否採用優選配置組合,如指示資訊4為第一取值(如0),表示當前塊採用優選配置組合。指示資訊5用於指示當前塊採用哪個優選配置組合,如指示資訊5為0時,用於指示當前塊採用優選配置組合1,指示資訊5為1時,用於指示當前塊採用優選配置組合2。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊4和指示資訊5,基於該指示資訊4,解碼端確定當前塊是否採用優選配置組合。若指示資訊4為第一取值,則確定當前塊採用優選配置組合。在當前塊採用優選配置組合時,解碼端基於指示資訊5,確定當前塊採用哪個優選配置組合,如當指示資訊5為0時,確定當前塊採用優選配置組合1,即當前塊的權重預測角度為權重預測角度A,當前塊的權重預測位置為權重預測位置4。又例如,當指示資訊5為1時,確定當前塊採用優選配置組合2,即當前塊的權重預測角度為權重預測角度B,當前塊的權重預測位置為權重預測位置4。
示例性的,若編碼端和解碼端只約定一組優選配置組合,如包括權重預測角度A和權重預測位置4的優選配置組合,則該編碼位元流可以包括指示資訊4,而不包括指示資訊5,指示資訊4用於指示當前塊採用優選配置組合。解碼端從該編碼位元流中解析出指示資訊4後,若指示資訊4為第一取值,則確定當前塊採用優選配置組合,基於該優選配置組合,確定當前塊的權重預測角度為權重預測角度A,當前塊的權重預測位置為權重預測位置4。
應用場景4:編碼端和解碼端可以約定優選配置組合,編碼端確定當前塊的目標權重預測角度和目標權重預測位置後,確定目標權重預測角度和目標權重預測位置是否為優選配置組合。如果否,則編碼端向解碼端發送編碼位元流時,該編碼位元流包括指示資訊4和指示資訊6。指示資訊4用於指示當前塊是否採用優選配置組合,如指示資訊4為第二取 值(如1),表示當前塊未採用優選配置組合。指示資訊6用於指示當前塊的目標權重預測角度和當前塊的目標權重預測位置。例如,當指示資訊6為0時,用於指示權重預測角度列表中的第一個權重預測角度,且指示權重預測位置列表中的第一個權重預測位置,以此類推。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊4和指示資訊6,基於該指示資訊4,解碼端確定當前塊是否採用優選配置組合。若指示資訊4為第二取值,則確定當前塊未採用優選配置組合。在當前塊未採用優選配置組合時,解碼端基於指示資訊6,可以從權重預測角度列表中選擇與該指示資訊6對應的權重預測角度,該權重預測角度作為當前塊的權重預測角度,基於該指示資訊6,解碼端可以從權重預測位置列表中選擇與該指示資訊6對應的權重預測位置,該權重預測位置作為當前塊的權重預測位置。
應用場景5:編碼端和解碼端可以約定優選配置組合,編碼端確定當前塊的目標權重預測角度和目標權重預測位置後,確定目標權重預測角度和目標權重預測位置是否為優選配置組合。如果否,則編碼端向解碼端發送編碼位元流時,該編碼位元流包括指示資訊4,指示資訊7和指示資訊8。示例性的,指示資訊4用於指示當前塊是否採用優選配置組合,如指示資訊4為第二取值,表示當前塊未採用優選配置組合。指示資訊7用於指示當前塊的目標權重預測角度,如目標權重預測角度在權重預測角度清單中的索引值1,索引值1表示目標權重預測角度是權重預測角度列表中的第幾個權重預測角度。指示資訊8用於指示當前塊的目標權重預測位置,如目標權重預測位置在權重預測位置清單中的索引值2,索引值2表示目標權重預測位置是權重預測位置列表中的第幾個權重預測位置。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊4,指示資訊7和指示資訊8,基於該指示資訊4,解碼端確定當前塊是否採用優選配置組合。若指示資訊4為第二取值,則確定當前塊未採用優選配置組合。在當前塊未採用優選配置組合時,解碼端基於該指示資訊7,從權重預測角度清單中選擇與該索引值1對應的權重預測角度,該權 重預測角度作為當前塊的權重預測角度。解碼端基於該指示資訊8,從權重預測位置清單中選擇與該索引值2對應的權重預測位置,該權重預測位置作為當前塊的權重預測位置。
實施例11:在實施例1-實施例4中,編碼端/解碼端需要獲取當前塊的權重變換率,若當前塊支援權重變換率切換模式,則採用如下方式獲取當前塊的權重變換率:獲取當前塊的權重變換率指示資訊;從預設的查閱資料表中選擇與該權重變換率指示資訊對應的權重變換率;該預設的查閱資料表包括至少兩個權重變換率。將選擇的權重變換率確定為當前塊的權重變換率。
由於預設的查閱資料表包括至少兩個權重變換率,因此,若當前塊支援權重變換率切換模式,則可以從至少兩個權重變換率中選擇當前塊的權重變換率,即,當前塊的權重變換率是可變的,從而能夠自我調整的切換權重變換率,而不是採用統一的一個權重變換率。
示例性的,若切換控制資訊允許當前塊啟用權重變換率切換模式,則當前塊支援權重變換率切換模式,若切換控制資訊不允許當前塊啟用權重變換率切換模式,則當前塊不支持權重變換率切換模式,關於當前塊是否支持權重變換率切換模式的內容,參見實施例9。
在一種可能的實施方式中,預設的查閱資料表可以包括至少兩個權重變換率,權重變換率指示資訊可以包括權重變換率索引資訊(用於指示查閱資料表中所有權重變換率中的某個權重變換率)。基於此,可以從該查閱資料表中選擇與該權重變換率索引資訊對應的權重變換率。
針對編碼端來說,若只存在一個查閱資料表,則針對查閱資料表中的每個權重變換率,編碼端可以確定與該權重變換率對應的率失真代價值,並將最小的率失真代價值對應的權重變換率作為當前塊的目標權重變換率,確定目標權重變換率在查閱資料表中的索引資訊,即權重變換率索引資訊,該權重變換率索引資訊表示該查閱資料表中的第幾個權重變換率。
針對解碼端來說,若只存在一個查閱資料表,編碼端向解碼端發送當前塊的編碼位元流時,該編碼位元流可以攜帶權重變換率索引資訊,該權重變換率索引資訊用於指示目標權重變換率在查閱資料表中的索引資訊。解碼端從該查閱資料表中選擇與該權重變換率索引資訊對應的權重變換率,該權重變換率作為當前塊的目標權重變換率。
實施例12:在實施例1-實施例4中,編碼端/解碼端需要獲取當前塊的權重預測角度,當前塊的權重預測位置和當前塊的權重變換率,在實施例11中,可以得到當前塊的權重變換率,在此基礎上,可以採用如下方式獲取當前塊的權重預測角度和權重預測位置:
方式一、編碼端和解碼端約定相同的權重預測角度作為當前塊的權重預測角度,並約定相同的權重預測位置作為當前塊的權重預測位置。例如,編碼端和解碼端將權重預測角度A作為當前塊的權重預測角度,編碼端和解碼端將權重預測位置4作為當前塊的權重預測位置。
方式二、編碼端構建權重預測角度列表,權重預測角度列表包括至少一個權重預測角度。編碼端構建權重預測位置列表,權重預測位置列表包括至少一個權重預測位置。編碼端構建至少兩個查閱資料表,以第一查閱資料表和第二查閱資料表為例,第一查閱資料表包括至少一個權重變換率,第二查閱資料表包括至少一個權重變換率。編碼端確定出目標查閱資料表,確定方式參見實施例11,以目標查閱資料表是第一查閱資料表為例。編碼端依次遍歷權重預測角度列表中每個權重預測角度,遍歷權重預測位置列表中每個權重預測位置,遍歷目標查閱資料表中每個權重變換率,即遍歷每個權重預測角度,每個權重預測位置,每個權重變換率的組合。針對權重預測角度,權重預測位置及權重變換率的每個組合,作為步驟a1中獲取的權重預測角度,權重預測位置及權重變換率,基於權重預測角度,權重預測位置及權重變換率,得到當前塊的加權預測值。
綜上所述,編碼端可以基於每個組合得到當前塊的加權預測值。在得到當前塊的加權預測值後,編碼端可以根據當前塊的加權預測值 確定率失真代價值,即,編碼端可以得到每個組合的率失真代價值,並從所有率失真代價值中選擇最小率失真代價值。
然後,編碼端將最小率失真代價值對應的權重預測角度,權重預測位置和權重變換率分別作為目標權重預測角度,目標權重預測位置和目標權重變換率,最後,將目標權重預測角度在權重預測角度清單中的索引值,目標權重預測位置在權重預測位置清單中的索引值,及目標權重變換率在目標查閱資料表中的索引值,均編入當前塊的碼流。
針對解碼端來說,解碼端構建權重預測角度列表,該權重預測角度清單與編碼端的權重預測角度列表相同,解碼端構建權重預測位置列表,該權重預測位置清單與編碼端的權重預測位置列表相同,解碼端構建第一查閱資料表和第二查閱資料表,該第一查閱資料表與編碼端的第一查閱資料表相同,該第二查閱資料表與編碼端的第二查閱資料表相同。解碼端在接收到當前塊的編碼位元流後,從該編碼位元流中解析出指示資訊,根據該指示資訊從權重預測角度清單中選擇一個權重預測角度作為當前塊的權重預測角度,根據該指示資訊從權重預測位置清單中選擇一個權重預測位置作為當前塊的權重預測位置,權重預測角度和權重預測位置的獲取方式,參見實施例10,在此不再贅述。解碼端在接收到當前塊的編碼位元流後,可以確定目標查閱資料表(如第一查閱資料表或者第二查閱資料表),並根據權重變換率索引資訊從目標查閱資料表中選擇一個權重變換率作為當前塊的權重變換率,關於權重變換率的獲取方式,參見實施例11,在此不再贅述。
實施例13:在實施例1-實施例3中,編碼端/解碼端需要獲取運動資訊候選清單,如採用如下方式獲取運動資訊候選清單:獲取待加入到運動資訊候選清單中的至少一個可用運動資訊;基於至少一個可用運動資訊獲取運動資訊候選清單。示例性的,至少一個可用運動資訊包括但不限於如下運動資訊的至少一種:空域運動資訊;時域運動資訊;HMVP(History-based Motion Vector Prediction,基於歷史的運動向量預測)運動資訊;預設運動資訊。
示例性的,針對空域運動資訊,可以採用如下方式獲取待加入到運動信息候選清單中的至少一個可用運動資訊:針對當前塊的空域相鄰塊,若空域相鄰塊存在,且空域相鄰塊採用幀間預測模式,則將該空域相鄰塊的運動資訊確定為可用運動資訊。
示例性的,針對時域運動資訊,可以採用如下方式獲取待加入到運動信息候選清單中的至少一個可用運動資訊:基於當前塊的預設位置(例如,當前塊的左上角像素位置),從當前塊的參考幀中選取與該預設位置對應的時域相鄰塊,並將該時域相鄰塊的運動資訊確定為可用運動資訊。
示例性的,針對預設運動資訊,可以採用如下方式獲取待加入到運動信息候選清單中的至少一個可用運動資訊:將預設運動資訊確定為可用運動資訊,該預設運動資訊可以包括但不限於:基於運動資訊候選清單中已存在的候選運動資訊所匯出的缺省運動資訊。
在一種可能的實施方式中,基於至少一個可用運動資訊,可以採用如下方式獲取運動資訊候選清單:針對當前待加入到運動資訊候選清單的可用運動資訊,若可用運動資訊為單向運動資訊,且該單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將該單向運動資訊加入到運動資訊候選清單;若可用運動資訊為雙向運動資訊,則將該雙向運動資訊裁剪為第一單向運動資訊和第二單向運動資訊;若第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將該第一單向運動資訊加入到運動資訊候選清單。
在上述實施例中,第一單向運動信息可以是指向第一參考幀列表中參考幀的單向運動資訊;第二單向運動資訊可以是指向第二參考幀列表中參考幀的單向運動資訊。
在一種可能的實施方式中,List0可以是前向參考幀列表,List1可以是後向參考幀列表。
在上述實施例中,針對單向運動資訊與運動資訊候選清單 中已存在的候選運動資訊的查重操作,可以包括但不限於:若單向運動資訊指向的參考幀的POC(Picture Order Count,顯示順序)與候選運動資訊指向的參考幀的POC相同,且該單向運動資訊的運動向量與該候選運動資訊的運動向量相同,則確定該單向運動資訊與該候選運動資訊重複;否則,確定該單向運動資訊與該候選運動資訊不重複。
針對第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊的查重操作,可以包括但不限於:若第一單向運動資訊指向的參考幀清單與候選運動資訊指向的參考幀清單相同,且該第一單向運動資訊的refIdx與該候選運動資訊的refIdx相同,且該第一單向運動資訊的運動向量與該候選運動資訊的運動向量相同,則確定該第一單向運動資訊與該候選運動資訊重複;否則,確定該第一單向運動資訊與該候選運動資訊不重複。或者,若第一單向運動資訊指向的參考幀的POC與候選運動資訊指向的參考幀的POC相同,且該第一單向運動資訊的運動向量與該候選運動資訊的運動向量相同,則確定該第一單向運動資訊與該候選運動資訊重複;否則,確定該第一單向運動資訊與該候選運動資訊不重複。
針對第二單向運動資訊與運動資訊候選清單中已存在的候選運動資訊的查重操作,可以包括但不限於:若第二單向運動資訊指向的參考幀清單與候選運動資訊指向的參考幀清單相同,且該第二單向運動資訊的refIdx與該候選運動資訊的refIdx相同,且該第二單向運動資訊的運動向量與該候選運動資訊的運動向量相同,則確定該第二單向運動資訊與該候選運動資訊重複;否則,確定該第二單向運動資訊與該候選運動資訊不重複。或者,若第二單向運動資訊指向的參考幀的POC與候選運動資訊指向的參考幀的POC相同,且該第二單向運動資訊的運動向量與該候選運動資訊的運動向量相同,則確定該第二單向運動資訊與該候選運動資訊重複;否則,確定該第二單向運動資訊與該候選運動資訊不重複。
示例性的,上述過程需要比較單向運動資訊指向的參考幀的POC與候選運動資訊指向的參考幀的POC是否相同,需要注意的是,參考幀的POC只是確認參考幀是否相同的一個示例,除了POC以外,還可以 採用其它能夠確認參考幀是否相同的屬性,如參考幀的DOC(解碼順序標記)等,對此不作限制。綜上所述,還可以比較單向運動資訊指向的參考幀的DOC與候選運動資訊指向的參考幀的DOC是否相同,實現原理與POC的實現原理類似。
實施例14:針對實施例13,可以利用空域運動資訊(本文將當前塊的空域相鄰塊的運動資訊稱為空域運動資訊)和/或時域運動資訊(本文將當前塊的時域相鄰塊的運動資訊稱為時域運動資訊)獲取運動資訊候選清單,因此,需要先從空域運動資訊和/或時域運動資訊中選取出可用運動資訊。參見圖9A所示,為當前塊的空域相鄰塊的示意圖,空域運動資訊可以是F,G,C,A,B,D等空域相鄰塊的運動資訊,時域運動資訊可以為至少一個。
針對空域運動資訊,可以採用如下方式獲取待加入到運動資訊候選清單的可用運動資訊:
方式11、參見圖9A所示,F,G,C,A,B,D是當前塊E的空域相鄰塊,可以確定F,G,C,A,B,D的運動資訊的“可用”性。示例性的,如果F存在且採用幀間預測模式,則F的運動資訊為可用運動資訊;否則,F的運動資訊為不可用運動資訊。如果G存在且採用幀間預測模式,則G的運動資訊為可用運動資訊;否則,G的運動資訊為不可用運動資訊。如果C存在且採用幀間預測模式,則C的運動資訊為可用運動資訊;否則,C的運動資訊為不可用運動資訊。如果A存在且採用幀間預測模式,則A的運動資訊為可用運動資訊;否則,A的運動資訊為不可用運動資訊。如果B存在且採用幀間預測模式,則B的運動資訊為可用運動資訊;否則,B的運動資訊為不可用運動資訊。如果D存在且採用幀間預測模式,則D的運動資訊為可用運動資訊;否則,D的運動資訊為不可用運動資訊。
方式12、F,G,C,A,B,D是當前塊E的空域相鄰塊,確定F,G,C,A,B,D的運動資訊的“可用"性。如果F存在且採用幀間 預測模式,則F的運動資訊為可用運動資訊;否則,F的運動資訊為不可用運動資訊。如果G存在且採用幀間預測模式,G的運動資訊與F的運動資訊不相同,則G的運動資訊為可用運動資訊;否則,G的運動資訊為不可用運動資訊。如果C存在且採用幀間預測模式,C的運動資訊與G的運動資訊不相同,則C的運動資訊為可用運動資訊;否則,C的運動資訊為不可用運動資訊。如果A存在且採用幀間預測模式,A的運動資訊與F的運動資訊不相同,則A的運動資訊為可用運動資訊;否則,A的運動資訊為不可用運動資訊。如果B存在且採用幀間預測模式,B的運動資訊與G的運動資訊不相同,則B的運動資訊為可用運動資訊;否則,B的運動資訊為不可用運動資訊。如果D存在且採用幀間預測模式,D的運動資訊與A的運動資訊不相同,且D的運動資訊與G的運動資訊不相同,則D的運動資訊為可用運動資訊;否則,D的運動資訊為不可用運動資訊。
方式13、F,G,C,A,B,D是當前塊E的空域相鄰塊,可以確定F,G,C,A,B,D的運動資訊的“可用"性。示例性的,如果F存在且採用幀間預測模式,則F的運動資訊為可用運動資訊;否則,F的運動資訊為不可用運動資訊。如果G存在且採用幀間預測模式,G的運動資訊與F的運動資訊不相同,則G的運動資訊為可用運動資訊;否則,G的運動資訊為不可用運動資訊。如果C存在且採用幀間預測模式,C的運動資訊與G的運動資訊不相同,則C的運動資訊為可用運動資訊;否則,C的運動資訊為不可用運動資訊。如果A存在且採用幀間預測模式,A的運動資訊與F的運動資訊不相同,則A的運動資訊為可用運動資訊;否則,A的運動資訊為不可用運動資訊。如果B存在且採用幀間預測模式,則B的運動資訊為可用運動資訊;否則,B的運動資訊為不可用運動資訊。如果D存在且採用幀間預測模式,D的運動資訊與A的運動資訊不相同,且D的運動資訊與G的運動資訊不相同,則D的運動資訊為可用運動資訊;否則,D的運動資訊為不可用運動資訊。
示例性的,在方式12和方式13中,在確定空域相鄰塊的運動資訊是否為可用運動資訊時,可能需要比較兩個空域相鄰塊的運動資 訊是否相同,例如,比較G的運動資訊與F的運動資訊是否相同,運動資訊是否相同的比較過程,實際上就是運動資訊的查重操作,若查重結果為重複,則運動資訊的比較結果為相同,若查重結果為不重複,則運動資訊的比較結果為不同。關於運動資訊的查重操作,可以參見後續實施例,在此不再贅述。
針對時域運動資訊,可以採用如下方式獲取待加入到運動資訊候選清單的可用運動資訊:
方式21、基於當前塊的預設位置,從當前塊的參考幀中選取與該預設位置對應的時域相鄰塊,並將該時域相鄰塊的運動資訊確定為可用運動資訊。比如說,若當前塊所在當前幀為B幀,則根據co-located參考幀的co-located塊匯出單向運動資訊或雙向運動資訊,將該單向運動資訊或雙向運動資訊作為可用運動資訊。若當前幀為P幀,則根據co-located參考幀的co-located塊匯出單向運動資訊,將該單向運動資訊作為可用運動資訊。
示例性的,co-located塊是co-located參考幀中與當前塊的預設位置對應的時域相鄰塊,當前塊的預設位置可以根據經驗配置,對此當前塊的預設位置不做限制,如當前塊的左上角像素位置,當前塊的右上角像素位置,當前塊的左下角像素位置,當前塊的右下角像素位置,當前塊的中心像素位置等。關於co-located參考幀可以是預設的參考幀,如將當前塊的List0中的第一個參考幀作為co-located參考幀,也可以是匯出的參考幀,如將當前塊的List0中與當前幀最近的參考幀作為co-located參考幀,還可以是從碼流中解析出的參考幀,如針對解碼端來說,可以從碼流中解析出co-located參考幀的資訊,繼而確定co-located參考幀。
若當前塊所在當前幀為B幀,則根據co-located塊的運動資訊匯出單向運動資訊或雙向運動資訊,若當前塊所在當前幀為P幀,則根據co-located塊的運動資訊匯出單向運動資訊。
方式22、基於當前塊的權重預測角度和權重預測位置,確 定當前塊的目標位置;從當前塊的參考幀中選取與該目標位置對應的時域相鄰塊,並將該時域相鄰塊的運動資訊確定為可用運動資訊。比如說,基於當前塊的權重預測角度和權重預測位置,可以確定當前塊的目標位置,如基於當前塊的權重預測角度和權重預測位置的索引值,確定當前塊的目標位置。然後,可以基於當前塊的目標位置確定co-located參考幀的co-located塊,若當前塊所在當前幀為B幀,則根據co-located參考幀的co-located塊匯出單向運動資訊或雙向運動資訊,將該單向運動資訊或雙向運動資訊作為可用運動資訊。若當前幀為P幀,則根據co-located參考幀的co-located塊匯出單向運動資訊,將該單向運動資訊作為可用運動資訊。
co-located塊是co-located參考幀中與當前塊的目標位置對應的時域相鄰塊,目標位置可以是當前塊的左上角像素位置,右上角像素位置,左下角像素位置,右下角像素位置等。
例如,基於當前塊的權重預測角度和當前塊的權重預測位置,可以得到當前塊的權重矩陣,參見圖9B所示,由於右上側權重部分的占比較小(黑色部分),空域運動資訊與黑色部分的相關性較低,因此,時域運動資訊的選擇可以偏向於右上側權重部分,以此來提供合適的候選運動資訊,在此基礎上,co-located塊可以為當前塊的右上角像素位置(即占比較小的權重部分)對應的時域相鄰塊,即,當前塊的目標位置為當前塊的右上角像素位置。
同理,參見圖9C所示,基於當前塊的權重預測角度和當前塊的權重預測位置,可以確定當前塊的目標位置為當前塊的右下角像素位置。參見圖9D所示,基於當前塊的權重預測角度和當前塊的權重預測位置,可以確定當前塊的目標位置為當前塊的左下角像素位置。
在得到可用運動資訊後,針對每個可用運動資訊(如空域運動資訊,時域運動資訊等),可以採用如下方式之一或組合將可用運動資訊加入到運動資訊候選清單:
方式31、不進行查重處理。比如說,若可用運動資訊為單 向運動資訊,則將該單向運動資訊加入到運動資訊候選清單。若可用運動資訊為雙向運動資訊,則將該雙向運動資訊裁剪為第一單向運動資訊和第二單向運動資訊,並將裁剪後的某個單向運動資訊加入到運動資訊候選清單,例如,可以將該第一單向運動資訊加入到運動資訊候選清單。
方式32、進行半查重處理,即不查重雙向運動資訊的另一半。比如說,若可用運動資訊為單向運動資訊,且單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將該單向運動資訊加入到運動資訊候選清單。若可用運動資訊為雙向運動資訊,則將該雙向運動資訊裁剪為第一單向運動資訊和第二單向運動資訊,並將某個單向運動資訊加入到運動資訊候選清單,例如,若雙向運動資訊中的第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將該第一單向運動資訊加入到運動資訊候選清單。
方式33、進行全查重處理。比如說,若可用運動資訊為單向運動資訊,且單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將單向運動資訊加入到運動資訊候選清單。若可用運動資訊為雙向運動資訊,則將該雙向運動資訊裁剪為第一單向運動資訊和第二單向運動資訊,並將某個單向運動資訊加入到運動資訊候選清單,例如,若雙向運動資訊中的第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將第一單向運動資訊加入到運動資訊候選清單;若第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊重複,且雙向運動資訊中的第二單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將第二單向運動資訊加入到運動資訊候選清單。
在方式31,方式32和方式33中,第一單向運動資訊可以是指向第一參考幀列表中參考幀的單向運動資訊;第二單向運動資訊可以是指向第二參考幀列表中參考幀的單向運動資訊。
示例性的,若運動資訊候選清單中已存在的候選運動資訊的總數量(即在將可用運動資訊添加到運動資訊候選清單時,該運動資訊候 選清單中當前已存在的候選運動資訊的總數量)為偶數,則第一參考幀列表為List0,第二參考幀列表為List1;若運動資訊候選清單中已存在的候選運動資訊的總數量為奇數,則第一參考幀列表為List1,第二參考幀列表為List0。或者,若運動資訊候選清單中已存在的候選運動資訊的總數量為奇數,則第一參考幀列表為List0,第二參考幀列表為List1;若運動資訊候選清單中已存在的候選運動資訊的總數量為偶數,則第一參考幀列表為List1,第二參考幀列表為List0。或者,第一參考幀列表為List0,第二參考幀列表為List1。或者,第一參考幀列表為List1,第二參考幀列表為List0。
在上述實施例中,涉及對單向運動資訊(如單向運動資訊、第一單向運動資訊、第二單向運動資訊等)與運動資訊候選清單中已存在的候選運動資訊進行查重操作,查重操作的結果可以為重複或者不重複。還涉及對兩個空域相鄰塊的運動資訊進行查重,查重操作的結果可以為重複或者不重複。在後續實施例19中,還涉及對雙向運動資訊與運動資訊候選清單中已存在的候選運動資訊進行查重操作,查重操作的結果可以為重複或者不重複。
為了方便描述,將進行查重操作的兩個運動資訊稱為運動資訊1和運動資訊2,當運動資訊1為待查重的單向運動資訊時,運動資訊2為運動資訊候選清單中已存在的候選運動資訊;當運動資訊1為待查重的雙向運動資訊時,運動資訊2為運動資訊候選清單中已存在的候選運動資訊;當運動資訊1為需要確定可用性的空域相鄰塊的運動資訊時,運動資訊2為已確定可用性的空域相鄰塊的運動資訊,參見方式12,如F的運動資訊可用時,當需要確定G的運動資訊是否可用時,運動資訊1為G的運動資訊,運動資訊2為F的運動資訊。
針對該查重操作,可以採用如下方式實現:
方式41、基於List+refIdx+MV_x+MV_y進行查重操作。比如說,先查指向的List列表是否相同(即是指向List0,還是指向List1,還是同時指向List0和List1),再查refidx是否相同,再查MV是否相同 (即水準分量是否相同,以及垂直分量是否相同)。
示例性的,先查詢運動資訊1指向的參考幀清單與運動資訊2指向的參考幀列表是否相同,如果不同,則運動資訊1與運動資訊2不重複。如果相同,則查詢運動資訊1的refIdx與運動資訊2的refIdx是否相同,若不同,則運動資訊1與運動資訊2不重複。若相同,則查詢運動資訊1的運動向量與運動資訊2的運動向量是否相同,若否,則運動資訊1與運動資訊2不重複,若是,則確定運動資訊1與運動資訊2重複。
示例性的,若運動資訊1指向的參考幀清單與運動資訊2指向的參考幀列表均是List0,則二者相同,或者,若運動資訊1指向的參考幀清單與運動資訊2指向的參考幀列表均是List1,則二者相同,或者,若運動資訊1指向的參考幀列表為List0,運動資訊2指向的參考幀列表為List1,則二者不同,或者,若運動資訊1指向的參考幀列表為List1,運動資訊2指向的參考幀列表為List0,則二者不同,或者,若運動資訊1指向的參考幀列表為List0,運動資訊2指向的參考幀列表為List0和List1,則二者不同,或者,若運動資訊1指向的參考幀列表為List1,運動資訊2指向的參考幀列表為List0和List1,則二者不同,或者,若運動資訊1指向的參考幀列表List0中參考幀索引為refIdx0的參考幀,並指向List1中參考幀索引為refIdx1的參考幀,運動資訊2指向List0中參考幀索引為refIdx2的參考幀,並指向List1中參考幀索引為refIdx3的參考幀,refIdx0不等於refIdx2,或refIdx1不等於refIdx3,則二者不同。當然,上述只是對參考幀列表進行比較的幾個示例,對此不做限制。
示例性的,若運動資訊1的運動向量的水準分量與運動資訊2的運動向量的水準分量相同,且運動資訊1的運動向量的垂直分量與運動資訊2的運動向量的垂直分量相同,則說明運動資訊1的運動向量與運動資訊2的運動向量相同。
方式42、基於POC+MV_x+MV_y進行查重操作。
比如說,先查指向的參考幀的POC是否相同(即若指向 List0中參考幀索引為refIdx0的參考幀的POC等於指向List1中參考幀索引為refIdx1的參考幀的POC,也判定為相同,針對單向運動資訊與單向運動資訊的查重,以及,雙向運動資訊與雙向運動資訊的查重都適用);再查MV是否相同(即水準分量是否相同,以及垂直分量是否相同)。
示例性的,先查詢運動資訊1指向的參考幀的POC與運動資訊2指向的參考幀的POC是否相同,如果不同,則運動資訊1與運動資訊2不重複。如果相同,則繼續查詢運動資訊1的運動向量與運動資訊2的運動向量是否相同,若不同,則運動資訊1與運動資訊2不重複,若相同,則確定運動資訊1與運動資訊2重複。
示例性的,指向的參考幀的POC相同,可以包括:運動資訊1指向List0中參考幀索引為refIdx0的參考幀,且運動資訊2指向List0中參考幀索引為refIdx0的參考幀,且運動資訊1指向的參考幀的POC與運動資訊2指向的參考幀的POC相同。或者,運動資訊1指向List1中參考幀索引為refIdx1的參考幀,且運動資訊2指向List1中參考幀索引為refIdx1的參考幀,且運動資訊1指向的參考幀的POC與運動資訊2指向的參考幀的POC相同。或者,運動資訊1指向List0中參考幀索引為refIdx0的參考幀,且運動資訊2指向List1中參考幀索引為refIdx1的參考幀,且運動資訊1指向的參考幀的POC與運動資訊2指向的參考幀的POC相同。或者,運動資訊1指向List1中參考幀索引為refIdx1的參考幀,且運動資訊2指向List0中參考幀索引為refIdx0的參考幀,且運動資訊1指向的參考幀的POC與運動資訊2指向的參考幀的POC相同。或者,運動資訊1指向List0中參考幀索引為refIdx0的參考幀,並指向List1中參考幀索引為refIdx1的參考幀,運動資訊2指向List0中參考幀索引為refIdx2的參考幀,並指向List1中參考幀索引為refIdx3的參考幀,運動資訊1指向的List0中參考幀索引為refIdx0的參考幀的POC與運動資訊2指向的List1中參考幀索引為refIdx3的參考幀的POC相同,且運動資訊1指向的List1中參考幀為refIdx1的參考幀的POC與運動資訊2指向的List0中參考幀索引為refIdx2的參考幀的POC相同。當然,上述只是參考幀的POC相同的幾個 示例,對此不做限制。
示例性的,上述過程是對參考幀的POC進行查重,需要注意的是,參考幀的POC只是查重操作的一個示例,除了POC以外,還可以採用其它能夠確認參考幀是否相同的屬性,如參考幀的DOC等,對此不作限制。綜上所述,可以將上述POC替換為DOC。
綜上所述,可以獲取運動資訊候選清單,該運動資訊候選清單也可以稱為AwpUniArray,以下結合幾個具體應用場景,對上述運動資訊候選清單的獲取過程進行說明。在後續應用場景中,假設運動資訊候選清單的長度為X,即需要添加X個可用運動資訊,在將可用運動資訊添加到運動資訊候選清單後,將已添加的運動資訊稱為候選運動資訊。
應用場景1:將空域運動資訊加入到運動資訊候選清單,若清單長度等於X,結束添加過程,若列表長度小於X,將預設運動資訊加入到運動資訊候選清單,直至清單長度為X。
示例性的,先確定待加入到運動資訊候選清單的可用運動資訊(即空域運動資訊)。比如說,採用方式11確定可用運動資訊,或,採用方式12確定可用運動資訊,或,採用方式13確定可用運動資訊。在採用方式12或方式13確定可用運動資訊時,涉及兩個空域相鄰塊的運動資訊的查重操作,可以採用方式41進行查重操作,或者,採用方式42進行查重操作。
示例性的,參見圖9A所示,按照F、G、C、A、B、D中可用運動資訊的順序(該順序可變),將可用運動資訊加入到運動資訊候選清單。針對每個可用運動資訊,可以採用方式31將該可用運動資訊加入到運動資訊候選清單,也可以採用方式32將該可用運動資訊加入到運動資訊候選清單,還可以採用方式33將該可用運動資訊加入到運動資訊候選清單。
示例性的,在採用方式32或者方式33將該可用運動資訊加入到運動資訊候選清單時,還可以對單向運動資訊與運動資訊候選清單中已存在的候選運動資訊進行查重操作,例如,可以採用方式41進行查重 操作,或者,採用方式42進行查重操作。
應用場景2:將時域運動資訊加入到運動資訊候選清單,若清單長度等於X,結束添加過程,若列表長度小於X,將預設運動資訊加入到運動資訊候選清單,直至清單長度為X。
示例性的,先確定待加入到運動資訊候選清單的可用運動資訊(即時域運動資訊)。比如說,採用方式21確定可用運動資訊,或,採用方式22確定可用運動資訊。
示例性的,針對每個可用運動資訊,可以採用方式31將該可用運動資訊加入到運動資訊候選清單,也可以採用方式32將該可用運動資訊加入到運動資訊候選清單,還可以採用方式33將該可用運動資訊加入到運動資訊候選清單。
示例性的,在採用方式32或者方式33將該可用運動資訊加入到運動資訊候選清單時,還可以對單向運動資訊與運動資訊候選清單中已存在的候選運動資訊進行查重操作,例如,可以採用方式41進行查重操作,或者,採用方式42進行查重操作。
應用場景3:將空域運動資訊與時域運動資訊一起加入運動資訊候選清單(空域運動資訊可以位於時域運動資訊之前,時域運動資訊也可以位於空域運動資訊之前,為了方便描述,後續以空域運動資訊位於時域運動資訊之前為例),若列表長度等於X,結束添加過程,若列表長度小於X,將預設運動資訊加入到運動資訊候選清單,直至清單長度為X。
示例性的,確定待加入到運動資訊候選清單的可用運動資訊(即空域運動資訊和時域運動資訊)。比如說,採用方式11和方式21確定可用運動資訊,或,採用方式11和方式22確定可用運動資訊,或,採用方式12和方式21確定可用運動資訊,或,採用方式12和方式22確定可用運動資訊,或,採用方式13和方式21確定可用運動資訊,或,採用方式13和方式22確定可用運動資訊。當然,上述只是幾個示例,對此不做限制。
在採用方式12或方式13確定可用運動資訊時,涉及兩個 空域相鄰塊的運動資訊的查重操作,可以採用方式41進行查重操作,或者,採用方式42進行查重操作。
示例性的,按照F、G、C、A、B、D中可用運動資訊的順序,及時域運動資訊(即可用運動資訊)的順序,將可用運動資訊加入到運動資訊候選清單。針對每個可用運動資訊,採用方式31將該可用運動資訊加入到運動資訊候選清單,或採用方式32將該可用運動資訊加入到運動資訊候選清單,或採用方式33將該可用運動資訊加入到運動資訊候選清單。
示例性的,在採用方式32或者方式33將該可用運動資訊加入到運動資訊候選清單時,還可以對單向運動資訊與運動資訊候選清單中已存在的候選運動資訊進行查重操作,例如,可以採用方式41進行查重操作,或者,採用方式42進行查重操作。
綜上所述,基於空域運動資訊和時域運動資訊的順序,可以將空域運動資訊與時域運動資訊一起加入運動資訊候選清單,一直到列表長度等於X,或者,遍歷結束,列表長度小於X,並將預設運動資訊加入到運動資訊候選清單,直至清單長度為X。
應用場景4:將空域運動資訊加入運動資訊候選清單後,預留至少Y個位置給時域運動資訊,時域運動資訊為雙向運動資訊或單向運動資訊。示例性的,將空域運動資訊加入運動資訊候選清單,若清單長度等於X-Y,則結束空域運動資訊的添加過程,或直至空域運動資訊遍歷結束,清單長度小於X-Y,結束空域運動資訊的添加過程。然後,將時域運動資訊加入運動資訊候選清單,若清單長度等於X,則結束時域運動資訊的添加過程,或直至時域運動資訊遍歷結束,清單長度小於X,結束時域運動資訊的添加過程,將預設運動資訊加入到運動資訊候選清單,直至清單長度為X。
示例性的,確定待加入到運動資訊候選清單的可用運動資訊(即空域運動資訊和時域運動資訊)。比如說,採用方式11和方式21確定可用運動資訊,或,採用方式11和方式22確定可用運動資訊,或,採用 方式12和方式21確定可用運動資訊,或,採用方式12和方式22確定可用運動資訊,或,採用方式13和方式21確定可用運動資訊,或,採用方式13和方式22確定可用運動資訊。當然,上述只是幾個示例,對此不做限制。
在採用方式12或方式13確定可用運動資訊時,涉及兩個空域相鄰塊的運動資訊的查重操作,可以採用方式41進行查重操作,或者,採用方式42進行查重操作。
示例性的,按照F、G、C、A、B、D中可用運動資訊(即空域運動資訊)的順序,將可用運動資訊加入到運動資訊候選清單,一直到列表長度等於X-Y,或空域運動資訊遍歷結束。然後,將時域運動資訊(即可用運動資訊)加入到運動資訊候選清單,一直到列表長度等於X,或時域運動資訊遍歷結束。在可用運動資訊的添加過程中,針對每個可用運動資訊,採用方式31將該可用運動資訊加入到運動資訊候選清單,或採用方式32將該可用運動資訊加入到運動資訊候選清單,或採用方式33將該可用運動資訊加入到運動資訊候選清單。
示例性的,在採用方式32或者方式33將該可用運動資訊加入到運動資訊候選清單時,還可以對單向運動資訊與運動資訊候選清單中已存在的候選運動資訊進行查重操作,例如,可以採用方式41進行查重操作,或者,採用方式42進行查重操作。
在上述各應用場景中,X可以取任意的正整數,例如,X的取值可以4,5等。
在上述各應用場景中,均可能將預設運動資訊(也可以稱為缺省運動資訊)加入到運動資訊候選清單,關於預設運動資訊的實現方式,可以包括但不限於如下方式:
方式51、預設運動資訊為零運動資訊,如指向ListX且refIdx小於ListX中參考幀數量的零運動向量。比如說,可以進行補0操作,即運動資訊可以為(0,0,ref_idx3,ListZ)。
方式52、基於運動資訊候選清單中已存在的候選運動資訊 所匯出的缺省運動資訊。
比如說,記需要放大或縮小的x軸方向或y軸方向的絕對值為temp_val,結果為result:
1、如果temp_val<8,則result=8,或者,result=-8。
示例性的,若候選運動資訊的x軸方向的temp_val小於8,則缺省運動資訊的x軸方向的運動向量為8,或者,缺省運動資訊的x軸方向的運動向量為-8。
若候選運動資訊的y軸方向的temp_val小於8,則缺省運動資訊的y軸方向的運動向量為8,或者,缺省運動資訊的y軸方向的運動向量為-8。
2、假設不滿足1,如果temp_val<=64,則result=(temp_val * 5+2)>>2,或者,result=(temp_val * 3+2)>>2,正負號與候選運動資訊的運動向量的正負號相同。
示例性的,若候選運動資訊的x軸方向的運動向量為正,且x軸方向的運動向量的絕對值(即temp_val)小於或等於64,則缺省運動資訊的x軸方向的運動向量為(temp_val * 5+2)>>2,若候選運動資訊的x軸方向的運動向量為負,且x軸方向的運動向量的絕對值(即temp_val)小於或等於64,則缺省運動資訊的x軸方向的運動向量為result=(temp_val * 3+2)>>2。
針對缺省運動資訊的y軸方向的運動向量,與x軸方向的運動向量類似。
3、假設不滿足1和2,如果temp_val<=128,則result=(temp_val * 9+4)>>3,或者,result=(temp_val * 7+4)>>3,正負號與候選運動資訊的運動向量的正負號相同。
4、假設不滿足1,不滿足2,且不滿足3,則result=(temp_val * 33+16)>>5,或者,result=(temp_val * 31+16)>>5,正負號與候選運動 資訊的運動向量的正負號相同。
方式53、基於運動資訊候選清單中已存在的候選運動資訊所匯出的缺省運動資訊。
比如說,以運動資訊候選清單中的任意一個有效的候選運動資訊(x,y,ref_idx,ListX)為基礎,ref_idx和ListX分別為參考幀索引和參考幀清單,且二者統稱為參考幀資訊,可添加以下至少一個運動資訊:(x+a,y+b,ref_idx,ListX),a,b可以取任意整數;(k1*x,k1 * y,ref_idx_new1,ListX),k1為任意非0正整數,即對運動向量進行伸縮操作;(k2 * x,k2 * y,ref_idx_new2,ListY),k2為任意非0正整數,即對運動向量進行伸縮操作。
方式54、預設運動資訊為運動資訊候選清單中已存在的候選運動資訊,即進行擴充(padding)操作,可採用運動資訊候選清單中已存在的候選運動資訊進行重複填充操作。例如,可採用運動資訊候選清單中已存在的最後一個單向運動資訊進行重複填充。
綜上所述,在清單長度小於X,需要將預設運動資訊加入到運動資訊候選清單時,可以將方式51的預設運動資訊加入到運動資訊候選清單,直至清單長度為X。或者,可以將方式52的預設運動資訊加入到運動資訊候選清單,直至清單長度為X。或者,可以將方式53的預設運動資訊加入到運動資訊候選清單,直至清單長度為X。或者,可以將方式51和方式52的預設運動資訊加入到運動資訊候選清單,直至清單長度為X。或者,可以將方式51和方式53的預設運動資訊加入到運動資訊候選清單,直至清單長度為X。或者,可以將方式52和方式53的預設運動資訊加入到運動資訊候選清單,直至清單長度為X。或者,可以將方式51,方式52和方式53的預設運動資訊加入到運動資訊候選清單,直至清單長度為X。
示例性的,在採用上述方式,將預設運動資訊加入到運動資訊候選清單後,若列表長度仍然小於X,則可以將方式54的預設運動資訊加入到運動資訊候選清單,即,採用運動資訊候選清單中已存在的候選運 動資訊進行重複填充操作,一直到列表長度為X。
在另一種可能的實施方式中,在清單長度小於X,需要將預設運動資訊加入到運動資訊候選清單時,可以直接將方式54的預設運動資訊加入到運動資訊候選清單,即,採用運動資訊候選清單中已存在的候選運動資訊進行重複填充操作,一直到列表長度為X。
在上述實施例中,預設運動資訊可以為單向運動資訊,也可以為雙向運動資訊。若預設運動資訊為單向運動資訊,在將該預設運動資訊添加到運動資訊候選清單時,可以進行查重操作,也可以不進行查重操作。若不進行查重操作,則直接將該預設運動資訊添加到運動資訊候選清單。若進行查重操作,則可以採用方式41進行查重操作,或者,採用方式42進行查重操作。若查重操作的結果為不重複,則將該預設運動資訊添加到運動資訊候選清單。若查重操作的結果為重複,則不將該預設運動資訊添加到運動資訊候選清單。
實施例15:在實施例1-實施例3中,編碼端/解碼端在得到運動資訊候選清單(參見實施例13和14)後,可以基於該運動資訊候選清單獲取當前塊的第一目標運動資訊和第二目標運動資訊,關於第一目標運動資訊和第二目標運動資訊的獲取方式,可以採用如下方式實現:
方式一、從運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一目標運動資訊,從運動資訊候選清單中選擇另一個候選運動資訊作為當前塊的第二目標運動資訊。
示例性的,針對編碼端和解碼端來說,均可以獲取運動資訊候選清單,且編碼端的運動資訊候選清單與解碼端的運動資訊候選清單相同,對此運動資訊候選清單不做限制。
針對編碼端來說,可以基於率失真原則,從運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一目標運動資訊,從運動資訊候選清單中選擇另一個候選運動資訊作為當前塊的第二目標運動資訊,第一目標運動資訊與第二目標運動資訊不同,對此不做限制。
在一種可能的實施方式中,編碼端在向解碼端發送編碼位元流時,該編碼位元流可以攜帶指示資訊a和指示資訊b,指示資訊a用於指示當前塊的第一目標運動資訊的索引值1,索引值1表示第一目標運動資訊是運動資訊候選清單中的第幾個候選運動資訊。指示資訊b用於指示當前塊的第二目標運動資訊的索引值2,索引值2表示第二目標運動資訊是運動資訊候選清單中的第幾個候選運動資訊。示例性的,索引值1和索引值2可以不同。
解碼端在接收到編碼位元流後,從編碼位元流中解析出指示資訊a和指示資訊b。基於指示資訊a,解碼端從運動資訊候選清單中選擇索引值1對應的候選運動資訊,該候選運動資訊作為當前塊的第一目標運動資訊。基於指示資訊b,解碼端從運動資訊候選清單中選擇索引值2對應的候選運動資訊,該候選運動資訊作為當前塊的第二目標運動資訊。
在另一種可能的實施方式中,編碼端在向解碼端發送編碼位元流時,該編碼位元流可以攜帶指示資訊a和指示資訊c,該指示資訊a可以用於指示當前塊的第一目標運動資訊的索引值1,索引值1表示第一目標運動資訊是運動資訊候選清單中的第幾個候選運動資訊。該指示資訊c可以用於指示索引值2與索引值1的差值,索引值2表示第二目標運動資訊是運動資訊候選清單中的第幾個候選運動資訊。示例性的,索引值1和索引值2可以不同。
解碼端在接收到編碼位元流後,可以從編碼位元流中解析出指示資訊a和指示資訊c。基於指示資訊a,解碼端可以從運動資訊候選清單中選擇索引值1對應的候選運動資訊,該候選運動資訊作為當前塊的第一目標運動資訊。基於指示資訊c,解碼端先根據索引值2與索引值1的差值,以及索引值1確定索引值2,然後,解碼端可以從運動資訊候選清單中選擇索引值2對應的候選運動資訊,該候選運動資訊作為當前塊的第二目標運動資訊。
示例性的,第一目標運動資訊的指示資訊與第二目標運動 資訊的指示資訊,可以進行互換,編碼端與解碼端一致即可,此處是指示資訊的互換,不影響解析過程,即不存在解析依賴。第一目標運動資訊的指示資訊與第二目標運動資訊的指示資訊不能相等,假設編碼兩個索引值,索引值a的取值為1,索引值b的取值為3,先編碼索引值a時,索引值b可以編碼2(即,3-1),在先編碼索引值b時,則索引值b需要編碼3。綜上所述,先編碼索引值小的指示資訊,可以降低較大索引值的編碼代價。比如說,先編碼第一目標運動資訊的指示資訊,如索引值a,後編碼第二目標運動資訊的指示資訊,如索引值b。也可以先編碼第二目標運動資訊的指示資訊,如索引值b,後編碼第一目標運動資訊的指示資訊,如索引值a。例如,假設索引值a的取值為1,索引值b的取值為3,則先編碼索引值a,後編碼索引值b。又例如,假設索引值b的取值為1,索引值a的取值為3,則先編碼索引值b,後編碼索引值a。
方式二、從運動資訊候選清單中選擇候選運動資訊作為當前塊的第一原始運動資訊,並從運動資訊候選清單中選擇候選運動資訊作為當前塊的第二原始運動資訊,示例性的,該第一原始運動資訊與該第二原始運動資訊可以不同,即從運動資訊候選清單中選擇兩個不同的候選運動資訊作為第一原始運動資訊和第二原始運動資訊;或者,該第一原始運動資訊與該第二原始運動資訊也可以相同,即從運動資訊候選清單中選擇相同的候選運動資訊作為第一原始運動資訊和第二原始運動資訊。然後,根據該第一原始運動資訊確定當前塊的第一目標運動資訊,並根據該第二原始運動資訊確定當前塊的第二目標運動資訊。示例性的,該第一目標運動資訊與該第二目標運動資訊可以不同。
關於如何根據原始運動資訊確定目標運動資訊,本實施例中給出一種單向運動資訊疊加運動向量差(Angular Weighted Prediction with Motion Vector Refinement,AWP_MVR)的方案,比如說,第一原始運動資訊包括第一原始運動向量,第一目標運動資訊包括第一目標運動向量,第二原始運動資訊包括第二原始運動向量,第二目標運動資訊包括第二目標運動向量,在此基礎上,可以獲取與第一原始運動向量對應的第一運動向量差 (即MVD);根據第一運動向量差和第一原始運動向量確定第一目標運動向量(即第一運動向量差與第一原始運動向量的和作為第一目標運動向量)。可以獲取與第二原始運動向量對應的第二運動向量差;根據第二運動向量差和第二原始運動向量確定第二目標運動向量(即第二運動向量差與第二原始運動向量的和作為第二目標運動向量)。
示例性的,在確定第一目標運動向量時,也可以不疊加第一運動向量差,即將第一原始運動向量確定為第一目標運動向量。但是,在確定第二目標運動向量,可以疊加第二運動向量差,即根據第二運動向量差和第二原始運動向量確定第二目標運動向量。或者,
在確定第二目標運動向量時,也可以不疊加第二運動向量差,即將第二原始運動向量確定為第二目標運動向量。但是,在確定第一目標運動向量,可以疊加第一運動向量差,即根據第一運動向量差和第一原始運動向量確定第一目標運動向量。或者,
在確定第一目標運動向量,可以疊加第一運動向量差,即根據第一運動向量差和第一原始運動向量確定第一目標運動向量。在確定第二目標運動向量,可以疊加第二運動向量差,即根據第二運動向量差和第二原始運動向量確定第二目標運動向量。
示例性的,可以獲取第一運動向量差的方向資訊和幅值資訊,並根據第一運動向量差的方向資訊和幅值資訊確定第一運動向量差。以及,可以獲取第二運動向量差的方向資訊和幅值資訊,並根據第二運動向量差的方向資訊和幅值資訊確定第二運動向量差。
示例性的,針對解碼端來說,可以採用如下方式獲取第一運動向量差的方向資訊:解碼端從當前塊的編碼位元流中解析出第一運動向量差的方向資訊;或者,解碼端根據當前塊的權重預測角度推導第一運動向量差的方向資訊。針對解碼端來說,可以採用如下方式獲取第二運動向量差的方向資訊:解碼端從當前塊的編碼位元流中解析出第二運動向量差的方向資訊;或者,解碼端根據當前塊的權重預測角度推導第二運動向量差的 方向資訊。
示例性的,針對解碼端來說,可以採用如下方式獲取第一運動向量差的幅值資訊:從當前塊的編碼位元流中解析出第一運動向量差的幅值資訊。可以採用如下方式獲取第二運動向量差的幅值資訊:從當前塊的編碼位元流中解析出第二運動向量差的幅值資訊。
在一種可能的實施方式中,編碼端和解碼端可以約定運動向量差的方向資訊和幅值資訊,若方向資訊表示方向為向右,幅值資訊表示幅值為A,則運動向量差為(A,0);若方向資訊表示方向為向下,幅值資訊表示幅值為A,則運動向量差為(0,-A);若方向資訊表示方向為向左,幅值資訊表示幅值為A,則運動向量差為(-A,0);若方向資訊表示方向為向上,幅值資訊表示幅值為A,則運動向量差為(0,A);若方向資訊表示方向為向右上,幅值資訊表示幅值為A,則運動向量差為(A,A);若方向資訊表示方向為向左上,幅值資訊表示幅值為A,則運動向量差為(-A,A);若方向資訊表示方向為向左下,幅值資訊表示幅值為A,則運動向量差為(-A,-A);若方向資訊表示方向為向右下,幅值資訊表示幅值為A,則運動向量差為(A,-A)。當然,上述只是幾個示例,對此方向資訊和幅值資訊不做限制。
示例性的,運動向量差可支援上述方向資訊的部分或全部,運動向量差支援的幅值A的取值範圍,根據經驗進行配置,至少為一個取值,對此不做限制。如運動向量差支持上,下,左,右等方向,運動向量差支援如下5類步長配置:¼-pel,½-pel,1-pel,2-pel,4-pel,即幅值A的取值為1,2,4,8,16。綜上所述,在方向為向上時,運動向量差可以為(0,1),(0,2),(0,4),(0,8),(0,16)。在方向為向下時,運動向量差可以為(0,-1),(0,-2),(0,-4),(0,-8),(0,-16)。在方向為向左時,運動向量差可以為(-1,0),(-2,0),(-4,0),(-8,0),(-16,0)。在方向為向右時,運動向量差可以為(1,0),(2,0),(4,0),(8,0),(16,0)。
又例如,運動向量差支持上,下,左,右等方向,運動向量差支援如下6類步長配置:¼-pel,½-pel,1-pel,2-pel,3-pel,4-pel,即幅值A的取值可以為1,2,4,8,12,16。
又例如,運動向量差支持上,下,左,右,左上,左下,右上,右下等八個方向,運動向量差支援如下3類步長配置:¼-pel,½-pel,1-pel,即幅值A的取值可以為1,2,4。
又例如,運動向量差支持上,下,左,右等四個方向,運動向量差支援如下4類步長配置:¼-pel,½-pel,1-pel,2-pel,即幅值A的取值可以為1,2,4,8。
當然,上述只是給出了幾個示例,對此不做限制。例如,運動向量差支援的方向可以任意選擇,如可以支援上,下,左,右,左上,左下六個方向,或者,可以支援上,下兩個方向。又例如,運動向量差支援的步長配置可變,可以進行靈活配置。又例如,可根據量化參數QP(Quantization Parameter)等編碼參數對步長配置進行自我調整配置,如對較大QP採用1-pel,2-pel,4-pel,8-pel對較小QP採用¼-pel,½-pel,1-pel,2-pel。又例如,可以在序列級,圖像級,幀級,Slice級,tile級,patch級,CTU級等配置合適的步長配置,使得解碼端可以根據序列級,圖像級,幀級,Slice級,tile級,patch級,CTU級解析到的步長配置進行解碼操作。
為了方便描述,在後續實施例中,假設運動向量差支持上,下等方向,支持1-pel,2-pel等步長配置,按照¼-pel精度描述,則運動向量差可以為(0,4),(0,8),(0,-4),(0,-8),即,(0,1<<2),(0,1<<3),(0,-1<<2),(0,-1<<3)。
針對編碼端來說,在獲取到運動資訊候選清單後,依次遍歷運動資訊候選清單中的每個候選運動資訊組合,該候選運動資訊組合包括兩個候選運動資訊,一個候選運動資訊作為第一原始運動資訊,另一個候選運動資訊作為第二原始運動資訊。需要注意的是,第一原始運動資訊與第二原始運動資訊可以相同(即從運動資訊候選清單中選出的兩個候選運動 資訊相同),也可以不同。若第一原始運動資訊與第二原始運動資訊相同,則可以通過疊加不同的運動向量差來保證第一目標運動資訊和第二目標運動資訊不同。針對每個候選運動資訊組合,依次遍歷運動向量差組合,該運動向量差組合包括第一運動向量差和第二運動向量差,第一運動向量差和第二運動向量差可以相同或不同。比如說,存在兩個運動向量差,分別為運動向量差1和運動向量差2,運動向量差組合1為運動向量差1和運動向量差1,運動向量差組合2為運動向量差1(即第一運動向量差)和運動向量差2,運動向量差組合3為運動向量差2(即第一運動向量差)和運動向量差1,運動向量差組合4為運動向量差2和運動向量差2。
示例性的,針對當前遍歷的候選運動資訊組合和運動向量差組合,若第一原始運動資訊與第二原始運動資訊不同,則第一運動向量差和第二運動向量差可以相同或不同。若第一原始運動資訊與第二原始運動資訊相同,則第一運動向量差和第二運動向量差可以不同。
針對當前遍歷的候選運動資訊組合和運動向量差組合,將第一原始運動資訊的運動向量與第一運動向量差的和作為第一目標運動向量,將第二原始運動資訊的運動向量與第二運動向量差的和作為第二目標運動向量,基於第一目標運動向量和第二目標運動向量確定率失真代價值,對此確定方式不做限制。針對每個候選運動資訊組合和每個運動向量差組合進行上述處理,均得到率失真代價值。然後,從所有率失真代價值中選擇最小率失真代價值,在當前塊的編碼位元流中編碼最小率失真代價值對應的候選運動資訊組合(第一原始運動資訊和第二原始運動資訊)的資訊和運動向量差組合(第一運動向量差和第二運動向量差)的資訊。
比如說,在當前塊的編碼位元流中編碼最小率失真代價值對應的第一原始運動資訊在運動資訊候選清單中的索引值,最小率失真代價值對應的第二原始運動資訊在運動資訊候選清單中的索引值,最小率失真代價值對應的第一運動向量差的方向資訊和幅值資訊,最小率失真代價值對應的第二運動向量差的方向資訊和幅值資訊。例如,針對第一運動向量差的方向資訊或者第二運動向量差的方向資訊來說,該方向資訊的指示資 訊可以為0,用於表示方向列表中的第一個方向。針對第一運動向量差的幅值資訊或者第二運動向量差的幅值資訊來說,該幅值資訊的指示資訊可以為0,表示步長配置清單中的第一個步長配置。
示例性的,若運動向量差支持上,下,左,右等四個方向,運動向量差支持¼-pel,½-pel,1-pel,2-pel,4-pel等5類步長配置時,則運動向量差的方向資訊可以採用2bin定長碼(共4類值)進行編碼,2bin定長碼的4個取值分別表示上,下,左,右四個方向。運動向量差的幅值資訊可以採用截斷一元碼進行編碼,即通過截斷一元碼表示5類步長配置。
又例如,若運動向量差支持上,下,左,右四個方向,運動向量差支持¼-pel,½-pel,1-pel,2-pel,3-pel,4-pel6類步長配置時,則運動向量差的方向資訊可以採用2bin定長碼(共4類值)進行編碼,運動向量差的幅值資訊可以採用截斷一元碼進行編碼。
又例如,若運動向量差支持上,下,左,右,左上,左下,右上,右下八個方向,運動向量差支持¼-pel,½-pel,1-pel等3類步長配置時,則運動向量差的方向資訊可以採用3bin定長碼(共8類值)進行編碼,運動向量差的幅值資訊可以採用截斷一元碼進行編碼。
又例如,若運動向量差支持上,下,左,右四個方向,運動向量差支持¼-pel,½-pel,1-pel,2-pel4類步長配置時,基於此,則運動向量差的方向資訊可以採用截斷一元碼進行編碼,運動向量差的幅值資訊可以採用2bin定長碼(共4類值)進行編碼。
當然,上述只是編碼方式的幾個示例,對此編碼方式不做限制。
綜上所述,針對編碼端來說,可以在一定區域內搜索到最佳運動向量(即目標運動向量),而後將最佳運動向量與原始運動向量的差值,作為運動向量差(MVD),將運動向量差的幅值資訊和方向資訊編入碼流。編碼端在一定區域內搜索最佳運動向量時,需要約定運動向量差的方向以及幅值,即,在(A,0),(0,-A),(-A,0),(0,A),(A, A),(-A,A),(-A,-A),(A,-A)等運動向量差的限定範圍內,搜索最佳運動向量。
針對解碼端來說,在接收到當前塊的編碼位元流後,可以從編碼位元流中解析出第一原始運動資訊在運動資訊候選清單中的索引值,並從運動資訊候選清單中選擇與該索引值對應的候選運動資訊,將該候選運動資訊作為當前塊的第一原始運動資訊。解碼端可以從編碼位元流中解析出第二原始運動資訊在運動資訊候選清單中的索引值,並從運動資訊候選清單中選擇與該索引值對應的候選運動資訊,將該候選運動資訊作為當前塊的第二原始運動資訊。
解碼端還可以從該編碼位元流中解析出第一運動向量差的方向資訊和幅值資訊,並根據該方向資訊和該幅值資訊確定第一運動向量差。以及,從該編碼位元流中解析出第二運動向量差的方向資訊和幅值資訊,並根據該方向資訊和該幅值資訊確定第二運動向量差。
然後,解碼端可以根據第一運動向量差和第一原始運動資訊確定當前塊的第一目標運動資訊,並根據第二運動向量差和第二原始運動資訊確定當前塊的第二目標運動資訊。
示例性的,在根據第一運動向量差的方向資訊和第一運動向量差的幅值資訊確定第一運動向量差時,若第一運動向量差的方向資訊表示方向為向右,第一運動向量差的幅值資訊表示幅值為A,則第一運動向量差為(A,0);若第一運動向量差的方向資訊表示方向為向下,第一運動向量差的幅值資訊表示幅值為A,則第一運動向量差為(0,-A);若第一運動向量差的方向資訊表示方向為向左,第一運動向量差的幅值資訊表示幅值為A,則第一運動向量差為(-A,0);若第一運動向量差的方向資訊表示方向為向上,第一運動向量差的幅值資訊表示幅值為A,則第一運動向量差為(0,A)。在根據第二運動向量差的方向資訊和第二運動向量差的幅值資訊確定第二運動向量差時,若第二運動向量差的方向資訊表示方向為向右,第二運動向量差的幅值資訊表示幅值為A,則第二運動向量差為 (A,0);若第二運動向量差的方向資訊表示方向為向下,第二運動向量差的幅值資訊表示幅值為A,則第二運動向量差為(0,-A);若第二運動向量差的方向資訊表示方向為向左,第二運動向量差的幅值資訊表示幅值為A,則第二運動向量差為(-A,0);若第二運動向量差的方向資訊表示方向為向上,第二運動向量差的幅值資訊表示幅值為A,則第二運動向量差為(0,A)。
參見上述實施例,編碼端在對運動向量差的方向資訊進行編碼時,可以採用定長碼,截斷一元碼等方式,因此,解碼端可以採用定長碼,截斷一元碼等方式,對運動向量差的方向資訊進解碼,得到運動向量差的方向資訊,如上,下,左,右,左上,左下,右上,右下等。
參見上述實施例,編碼端在對運動向量差的幅值資訊進行編碼時,可以採用定長碼,截斷一元碼等方式,因此,解碼端可以採用定長碼,截斷一元碼等方式,對運動向量差的幅值資訊進解碼,得到運動向量差的幅值資訊,如¼-pel,½-pel,1-pel,2-pel等步長配置,繼而根據¼-pel,½-pel,1-pel,2-pel等步長配置確定出運動向量差的幅值A的取值。
在一種可能的實施方式中,編碼端還可以在編碼位元流中編碼增強角度加權預測模式的第一子模式標誌和第二子模式標誌,該第一子模式標誌指示對第一原始運動資訊疊加運動向量差,或者,對第一原始運動資訊不疊加運動向量差。該第二子模式標誌指示對第二原始運動資訊疊加運動向量差,或者,對第二原始運動資訊不疊加運動向量差。
解碼端在接收到當前塊的編碼位元流後,可以先從當前塊的編碼位元流中解析出增強角度加權預測模式的第一子模式標誌和第二子模式標誌。若第一子模式標誌指示對第一原始運動資訊疊加運動向量差,則從當前塊的編碼位元流中解析出第一運動向量差的方向資訊和幅值資訊,並根據第一運動向量差的方向資訊和幅值資訊確定第一運動向量差,繼而根據第一原始運動資訊和第一運動向量差確定當前塊的第一目標運動資訊。若第一子模式標誌指示對第一原始運動資訊不疊加運動向量差,則不會解 析第一運動向量差的方向資訊和幅值資訊,可以直接將第一原始運動資訊作為當前塊的第一目標運動資訊。若第二子模式標誌指示對第二原始運動資訊疊加運動向量差,則從當前塊的編碼位元流中解析出第二運動向量差的方向資訊和幅值資訊,並根據第二運動向量差的方向資訊和幅值資訊確定第二運動向量差,繼而根據第二原始運動資訊和第二運動向量差確定當前塊的第二目標運動資訊。若第二子模式標誌指示對第二原始運動資訊不疊加運動向量差,則不會解析第二運動向量差的方向資訊和幅值資訊,可以直接將第二原始運動資訊作為當前塊的第二目標運動資訊。
示例性的,當增強角度加權預測模式的第一子模式標誌為第一取值時,指示對第一原始運動資訊疊加運動向量差,當增強角度加權預測模式的第一子模式標誌為第二取值時,表示對第一原始運動資訊不疊加運動向量差。當增強角度加權預測模式的第二子模式標誌為第一取值時,指示對第二原始運動資訊疊加運動向量差,當增強角度加權預測模式的第二子模式標誌為第二取值時,表示對第二原始運動資訊不疊加運動向量差。第一取值和第二取值可以根據經驗配置,如第一取值為1,第二取值為0,或者,如第一取值為0,第二取值為1。
在上述實施例中,解碼端是從當前塊的編碼位元流中解析出第一運動向量差的方向資訊和第二運動向量差的方向資訊,在實際應用中,還可以根據當前塊的權重預測角度推導第一運動向量差的方向資訊,並根據當前塊的權重預測角度推導第二運動向量差的方向資訊。
比如說,當前塊的權重預測角度表示一種角度方向,參見圖6所示的8種角度方向,當前塊的權重預測角度表示8種角度方向中的某一種角度方向,對於解碼端來說,可以從所有方向資訊(如上,下,左,右,左上,左下,右上,右下等)中選擇與該角度方向匹配的方向資訊,直接將該方向資訊作為第一運動向量差的方向資訊和第二運動向量差的方向資訊。
與該角度方向匹配的方向資訊,可以包括:該方向資訊與 該角度方向之間的角度差為預設角度或接近預設角度,或者,在所有方向資訊中,該方向資訊與該角度方向之間的角度差與預設角度的差值最小。該預設角度可以根據經驗配置,如該預設角度可以為90度。
示例性的,針對編碼端來說,也可以根據當前塊的權重預測角度推導第一運動向量差的方向資訊,並根據當前塊的權重預測角度推導第二運動向量差的方向資訊,而不需要採用率失真代價值的方式確定第一運動向量差的方向資訊和第二運動向量差的方向資訊。編碼端在向解碼端發送當前塊的編碼位元流時,也可以不編碼第一運動向量差的方向資訊和第二運動向量差的方向資訊,由解碼端推導第一運動向量差的方向資訊和第二運動向量差的方向資訊。
實施例16:在實施例15中,解碼端可以從編碼位元流中解析出第一運動向量差的幅值資訊和第二運動向量差的幅值資訊,在一種可能的實施方式中,編碼端和解碼端可以構建相同的一個運動向量差幅值清單,編碼端確定第一運動向量差的幅值資訊在該運動向量差幅值清單中的幅值索引,且編碼位元流包括第一運動向量差的幅值索引。解碼端從當前塊的編碼位元流中解析出第一運動向量差的幅值索引,並從該運動向量差幅值列表選取與該幅值索引對應的幅值資訊,該幅值資訊即第一運動向量差的幅值資訊。編碼端確定第二運動向量差的幅值資訊在該運動向量差幅值清單中的幅值索引,且編碼位元流包括第二運動向量差的幅值索引。解碼端從當前塊的編碼位元流中解析出第二運動向量差的幅值索引,並從該運動向量差幅值列表選取與該幅值索引對應的幅值資訊,該幅值資訊即第二運動向量差的幅值資訊。
在另一種可能的實施方式中,編碼端和解碼端可以構建相同的至少兩個運動向量差幅值清單,如編碼端和解碼端構建相同的運動向量差幅值列表1,並構建相同的運動向量差幅值列表2。編碼端先基於運動向量差幅值清單的指示資訊,從所有運動向量差幅值清單中選取目標運動向量差幅值列表;編碼端確定第一運動向量差的幅值資訊在該目標運動向量差幅值清單中的幅值索引,且編碼位元流包括第一運動向量差的幅值索 引。
編碼端還可以確定第二運動向量差的幅值資訊在該目標運動向量差幅值清單中的幅值索引,且編碼位元流可以包括第二運動向量差的幅值索引。解碼端可以從當前塊的編碼位元流中解析出第二運動向量差的幅值索引,並從該目標運動向量差幅值列表中選取與該幅值索引對應的幅值資訊,該幅值資訊即第二運動向量差的幅值資訊。
示例性的,運動向量差幅值清單的指示資訊,可以是任意級別的指示資訊,比如說,可以是序列級的運動向量差幅值清單的指示資訊,幀級的運動向量差幅值清單的指示資訊,Slice級的運動向量差幅值清單的指示資訊,Tile級的運動向量差幅值清單的指示資訊,Patch級的運動向量差幅值清單的指示資訊,CTU級的運動向量差幅值清單的指示資訊,LCU級的運動向量差幅值清單的指示資訊,塊級的運動向量差幅值清單的指示資訊,CU級的運動向量差幅值清單的指示資訊,PU級的運動向量差幅值清單的指示資訊,對此不做限制,為了方便描述,以幀級的運動向量差幅值清單的指示資訊為例,幀級的運動向量差幅值清單的指示資訊可以為awp_umve_offset_list_flag,通過awp_umve_offset_list_flag控制運動向量差幅值列表的切換。
比如說,編碼端和解碼端可以構建運動向量差幅值列表1和運動向量差幅值列表2,參見表3和表4所示。可以對運動向量差幅值列表1進行二值化處理,並對運動向量差幅值列表2進行二值化處理,對此處理方式不做限制。例如,對運動向量差幅值列表1採用截斷一元碼,對運動向量差幅值列表2採用截斷一元碼,或者,對運動向量差幅值列表1採用截斷一元碼,對運動向量差幅值列表2採用定長碼,或者,對運動向量差幅值列表1採用定長碼,對運動向量差幅值列表2採用截斷一元碼,對此不做限制,參見表5和表6所示。
Figure 110123652-A0202-12-0089-4
Figure 110123652-A0202-12-0090-5
Figure 110123652-A0202-12-0090-6
Figure 110123652-A0202-12-0090-7
在上述應用場景下,通過awp_umve_offset_list_flag控制運動向量差幅值列表的切換,即控制採用表3所示的運動向量差幅值列表,或表4所示的運動向量差幅值列表。例如,若awp_umve_offset_list_flag的取值為第一取值,則表3所示的運動向量差幅值清單為目標運動向量差幅值列表,若awp_umve_offset_list_flag的取值為第二取值,則表4所示的運動向量差幅值清單為目標運動向量差幅值列表;或者,若awp_umve_offset_list_flag的取值為第二取值,則表3所示的運動向量差幅值清單為目標運動向量差幅值列表,若awp_umve_offset_list_flag的取值為第一取值,則表4所示的運動向量差幅值清單為目標運動向量差幅值列表
在目標運動向量差幅值列表為表3時,編碼端採用表5所示的二值化方式進行編碼,解碼端採用表5所示的二值化方式進行解碼。在目標運動向量差幅值列表為表4時,編碼端採用表6所示的二值化方式進行編碼,解碼端採用表6所示的二值化方式進行解碼。
實施例17:在實施例15或實施例16的基礎上,針對第一運動向量差和第二運動向量差,以下結合具體應用場景,對單向運動資訊疊加運動向量差AWP_MVR的相關語法進行說明:
應用場景1:參見表7所示,為相關語法的示例,SkipFlag表示當前塊是否為Skip模式,DirectFlag表示當前塊是否為Direct模式,AwpFlag表示當前塊是否為AWP模式。
awp_idx(角度加權預測模式索引):跳過模式或直接模式下的角度加權預測模式索引值,AwpIdx的值,可以等於awp_idx的值。如果碼流中不存在awp_idx,則AwpIdx的值等於0。
awp_cand_idx0(角度加權預測模式的第一運動資訊索引):跳過模式或直接模式下的角度加權預測模式的第一運動資訊索引值。AwpCandIdx0的值等於awp_cand_idx0的值,如果碼流中不存在awp_cand_idx0,則AwpCandIdx0的值等於0。
awp_cand_idx1(角度加權預測模式第二運動資訊索引):跳過模式或直接模式下的角度加權預測模式的第二運動資訊索引值。AwpCandIdx1的值等於awp_cand_idx1的值,如果碼流中不存在awp_cand_idx1,則AwpCandIdx1的值等於0。
awp_mvd_flag(增強角度加權預測模式標誌),是一個二值變數,awp_mvd_flag為第一取值(如1)時,表示當前塊為增強角度加權預測模式,awp_mvd_flag為第二取值(如0)時,表示當前塊為非增強角度加權預測模式。示例性的,AwpMvdFlag的取值,可以等於awp_mvd_flag的值,如果碼流中不存在awp_mvd_flag,則AwpMvdFlag的值等於0。
awp_mvd_sub_flag0(增強角度加權預測模式第一子模式標誌),可以是一個二值變數,awp_mvd_sub_flag0為第一取值時,可以表示角度加權預測模式的第一運動資訊需要疊加運動資訊差;awp_mvd_sub_flag0為第二取值時,可以表示角度加權預測模式的第一運動資訊不需要疊加運動資訊差。示例性的,AwpMvdSubFlag0的值可以等於awp_mvd_sub_flag0的值,如果碼流中不存在awp_mvd_sub_flag0,則AwpMvdSubFlag0的值等於0。
awp_mvd_sub_flag1(增強角度加權預測模式第二子模式標誌),可以是一個二值變數,awp_mvd_sub_flag1為第一取值時,可以表示角度加權預測模式的第二運動資訊需要疊加運動資訊差;awp_mvd_sub_flag1為第二取值時,可以表示角度加權預測模式的第二運動 資訊不需要疊加運動資訊差。示例性的,AwpMvdSubFlag1的值可以等於awp_mvd_sub_flag1的值,如果碼流中不存在awp_mvd_sub_flag1,則還可以存在以下情況:若AwpMvdFlag等於1,那麼,AwpMvdSubFlag1的值等於1,否則,AwpMvdSubFlag1的值可以等於0。
awp_mvd_dir0(第一運動資訊運動向量差方向索引值),角度加權預測模式第一運動資訊的運動向量差方向索引值。示例性的,AwpMvdDir0的值可以等於awp_mvd_dir0的值,如果碼流中不存在awp_mvd_dir0,則AwpMvdDir0的值可以等於0。
awp_mvd_step0(第一運動資訊運動向量差步長索引值),角度加權預測模式第一運動資訊的運動向量差步長索引值。示例性的,AwpMvdStep0的值可以等於awp_mvd_step0的值,如果碼流中不存在awp_mvd_step0,則AwpMvdStep0的值可以等於0。
awp_mvd_dir1(第二運動資訊運動向量差方向索引值),角度加權預測模式第二運動資訊的運動向量差方向索引值。示例性的,AwpMvdIdx1的值可以等於awp_mvd_dir1的值。如果碼流中不存在awp_mvd_dir1,則AwpMvdDir1的值可以等於0。
awp_mvd_step1(第二運動資訊運動向量差步長索引值),角度加權預測模式第二運動資訊的運動向量差步長索引值。示例性的,AwpMvdStep1的值可以等於awp_mvd_step1的值。如果碼流中不存在awp_mvd_step1,則AwpMvdStep1的值可以等於0。
Figure 110123652-A0202-12-0092-8
Figure 110123652-A0202-12-0093-9
應用場景2:參見表8所示,為相關語法的示例,SkipFlag表示當前塊是否為Skip模式,DirectFlag表示當前塊是否為Direct模式,AwpFlag表示當前塊是否為AWP模式。
關於awp_idx,awp_cand_idx0和awp_cand_idx1,可以參見應用場景1,在此不再贅述。
awp_mvd_sub_flag0(增強角度加權預測模式第一子模式標 誌),可以是一個二值變數,awp_mvd_sub_flag0為第一取值時,可以表示角度加權預測模式的第一運動資訊需要疊加運動資訊差;awp_mvd_sub_flag0為第二取值時,可以表示角度加權預測模式的第一運動資訊不需要疊加運動資訊差。示例性的,AwpMvdSubFlag0的值可以等於awp_mvd_sub_flag0的值,如果碼流中不存在awp_mvd_sub_flag0,則AwpMvdSubFlag0的值等於0。
awp_mvd_sub_flag1(增強角度加權預測模式第二子模式標誌),可以是一個二值變數,awp_mvd_sub_flag1為第一取值時,可以表示角度加權預測模式的第二運動資訊需要疊加運動資訊差;awp_mvd_sub_flag1為第二取值時,可以表示角度加權預測模式的第二運動資訊不需要疊加運動資訊差。示例性的,AwpMvdSubFlag1的值可以等於awp_mvd_sub_flag1的值,如果碼流中不存在awp_mvd_sub_flag1,則AwpMvdSubFlag1的值可以等於0。
關於awp_mvd_dir0,awp_mvd_step0,awp_mvd_dir1,awp_mvd_step1,參見應用場景1。
Figure 110123652-A0202-12-0094-10
Figure 110123652-A0202-12-0095-11
示例性的,針對應用場景1和應用場景2,二者的區別在於:在應用場景1中,存在語法awp_mvd_flag,在應用場景2中,不存在語法awp_mvd_flag。在應用場景1中,可以通過awp_mvd_flag控制增強角度加權預測模式,即通過總開關控制增強角度加權預測模式。
應用場景3:可以對應用場景1和應用場景2進行衍生,將AWP模式與AWP_MVR模式融合,即對跨度增加0跨度,從而不需要編碼是否使能的標誌位元。例如,運動向量差支持上,下,左,右等方向,運動向量差支援如下步長配置:0-pel,¼-pel,½-pel,1-pel,2-pel,4-pel,即增加步長配置0-pel。在此基礎上,表7/表8可以更新為表9,相關語法參見表7。
Figure 110123652-A0202-12-0095-12
Figure 110123652-A0202-12-0096-13
示例性的,針對各應用場景來說,相關語法中語法元素的順序可進行相應調整,比如說,針對表8所示的相關語法,可以對語法元素的順序進行相應調整,得到表10所示的相關語法。
Figure 110123652-A0202-12-0096-14
Figure 110123652-A0202-12-0097-15
從表8和表10可以看出,可以對awp_cand_idx0和awp_cand_idx1的順序進行調整,示例性的,在表10中,awp_cand_idx0和awp_cand_idx1的解析方式,可以根據AwpMvdSubFlag0,AwpMvdSubFlag1,AwpMvdDir0,AwpMvdStep0,AwpMvdDir1,AwpMvdStep1中一個或多個的值進行調整。例如,當AwpMvdSubFlag0,AwpMvdSubFlag1中的至少一個值為1時,awp_cand_idx0以及awp_cand_idx1的解析方式完全一致,否則,解析方式不一致。
示例性的,AwpMvdSubFlag0表示是否對第一原始運動資訊疊加MVD,如果疊加,基於AwpMvdDir0和AwpMvdStep0確定出第一原始運動資訊對應的MVD值,AwpMvdSubFlag1表示是否對第二原始運動資訊疊加MVD,如果疊加,基於AwpMvdDir1和AwpMvdStep1確定出第二原始運動資訊對應的MVD值。顯然,若一個原始運動資訊疊加MVD,另一個原始運動資訊不疊加MVD,或兩個原始運動資訊疊加的MVD值不同,則允許第一原始運動資訊和第二原始運動資訊相同,awp_cand_idx0表示第一原始運動資訊的索引值,awp_cand_idx1表示第二原始運動資訊的索引值,因此,awp_cand_idx0和awp_cand_idx1的解析方式完全一致,即從完整的運動資訊候選清單中解析出與awp_cand_idx0對應的第一原始運動 資訊,並從完整的運動資訊候選清單中解析出與awp_cand_idx1對應的第二原始運動資訊。
若兩個原始運動資訊均不疊加MVD,或者,兩個原始運動資訊疊加的MVD值相同,則第一原始運動資訊和第二原始運動資訊不同,基於此,awp_cand_idx0和awp_cand_idx1的解析方式不一致,從完整的運動資訊候選清單中解析出與awp_cand_idx0對應的第一原始運動資訊,由於第二原始運動資訊與第一原始運動資訊不同,因此,不是從完整的運動資訊候選清單中解析出與awp_cand_idx1對應的第二原始運動資訊,而是在排除第一原始運動資訊的基礎上,從不完整的運動資訊候選清單中解析出與awp_cand_idx1對應的第二原始運動資訊。
基於運動資訊候選清單AwpUniArray,從AwpUniArray中選擇兩個候選運動資訊,基於該兩個候選運動資訊確定當前塊的第一目標運動資訊和第二目標運動資訊。比如說,解碼端從編碼位元流中解析出AwpCandIdx0和AwpCandIdx1,將AwpUniArray中的第AwpCandIdx0+1個運動資訊賦值給mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1。將AwpUniArray中的第AwpCandIdx1+1個運動資訊賦值給mvAwp1L0,mvAwp1L1,RefIdxAwp1L0,RefIdxAwp1L1。當然,也可將AwpUniArray中第AwpCandIdx0+1個運動資訊賦值給mvAwp1L0,mvAwp1L1,RefIdxAwp1L0,RefIdxAwp1L1,將AwpUniArray中第AwpCandIdx1+1個運動資訊賦值給mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1。
AwpCandIdx0表示第一目標運動資訊的索引值,因此,可以將AwpUniArray中的第AwpCandIdx0+1個運動資訊賦值給第一目標運動資訊。例如,若AwpCandIdx0為0,則將AwpUniArray中的第1個運動資訊賦值給第一目標運動資訊,以此類推。
mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1合起來作為第一目標運動資訊,即第一目標運動資訊包括指向List0的單向運動資訊以及指向List1的單向運動資訊。
若AwpUniArray中的第AwpCandIdx0+1個運動資訊是指向List0的單向運動資訊,則第一目標運動資訊包括指向List0的單向運動資訊,且指向List1的單向運動資訊為空。
若AwpUniArray中的第AwpCandIdx0+1個運動資訊是指向List1的單向運動資訊,則第一目標運動資訊包括指向List1的單向運動資訊,且指向List0的單向運動資訊為空。
示例性的,mvAwp0L0和RefIdxAwp0L0表示第一目標運動資訊中指向List0的單向運動資訊,mvAwp0L1和RefIdxAwp0L1表示第一目標運動資訊中指向List1的單向運動資訊。
若RefIdxAwp0L0有效,則表示指向List0的單向運動資訊為有效,因此,第一目標運動資訊的預測模式為PRED_List0。若RefIdxAwp0L1有效,則表示指向List1的單向運動資訊為有效,因此,第一目標運動資訊的預測模式為PRED_List1。
示例性的,AwpCandIdx1表示第二目標運動資訊的索引值,因此,可以將AwpUniArray中的第AwpCandIdx1+1個運動資訊賦值給第二目標運動資訊。例如,若AwpCandIdx1為0,則將AwpUniArray中的第1個運動資訊賦值給第二目標運動資訊,以此類推。
mvAwp1L0,mvAwp1L1,RefIdxAwp1L0,RefIdxAwp1L1合起來作為第二目標運動資訊,即第二目標運動資訊包括指向List0的單向運動資訊以及指向List1的單向運動資訊。
若AwpUniArray中的第AwpCandIdx1+1個運動資訊是指向List0的單向運動資訊,則第二目標運動資訊包括指向List0的單向運動資訊,且指向List1的單向運動資訊為空。
若AwpUniArray中的第AwpCandIdx1+1個運動資訊是指向List1的單向運動資訊,則第二目標運動資訊包括指向List1的單向運動資訊,且指向List0的單向運動資訊為空。
示例性的,mvAwp1L0和RefIdxAwp1L0表示第二目標運動資訊中指向List0的單向運動資訊,mvAwp1L1和RefIdxAwp1L1表示第二目標運動資訊中指向List1的單向運動資訊。
若RefIdxAwp1L0有效,則表示指向List0的單向運動資訊為有效,因此,第二目標運動資訊的預測模式為PRED_List0。若RefIdxAwp1L1有效,則表示指向List1的單向運動資訊為有效,因此,第二目標運動資訊的預測模式為PRED_List1。
在若干應用中,由於參考幀的存儲空間有限,因此,若當前幀為B幀,但List0與List1中的參考幀的POC一致,即為同一幀,則為了最大化AWP模式的性能,可以對傳輸的兩個運動資訊的語法元素進行重新設計,即採用本實施例的方式傳輸運動資訊。另一方面,針對P幀的情況,若指向同一幀的兩個運動向量限制在一定範圍內,不增加P幀的頻寬限制,則AWP模式可以應用於P幀。
針對上述發現,本實施例中,在第一目標運動資訊指向的參考幀與第二目標運動資訊指向的參考幀為同一幀時,即AWP模式的兩個運動向量指向同一幀,則第二目標運動資訊的運動向量可以由第一目標運動資訊的運動向量匯出,即第一個運動資訊傳遞索引值,第二個運動資訊為在第一個運動資訊的基礎上疊加MVD,MVD的編碼方式參見實施例15或16。
參見表11所示,為語法元素的一個示例,awp_mvd_dir0表示受限角度加權預測模式第一運動資訊運動向量差方向索引值,AwpMvdDir0的值等於awp_mvd_dir0的值,如果位流中不存在awp_mvd_dir0,則AwpMvdDir0的值等於0。awp_mvd_step0表示受限角度加權預測模式第一運動資訊運動向量差步長索引值,AwpMvdStep0的值等於awp_mvd_step0的值,如果位流中不存在awp_mvd_step0,則AwpMvdStep0的值等於0。awp_mvd_dir1表示受限角度加權預測模式第二運動資訊運動向量差方向索引值,AwpMvdIdx1的值等於awp_mvd_dir1的 值,如果位流中不存在awp_mvd_dir1,則AwpMvdDir1的值等於0。awp_mvd_step1表示受限角度加權預測模式第二運動資訊運動向量差步長索引值,AwpMvdStep1的值等於awp_mvd_step1的值,如果位流中不存在awp_mvd_step1,則AwpMvdStep1的值等於0。
Figure 110123652-A0202-12-0101-16
綜上所述,可以基於awp_cand_idx確定出原始運動資訊(原始運動資訊包括原始運動向量),根據awp_mvd_dir0和awp_mvd_step0確定出第一運動向量差MVD0和第二運動向量差MVD1。在此基礎上,根據原始運動向量和第一運動向量差MVD0確定第一目標運動向量,如原始運動向量+MVD0。根據第一目標運動向量和第二運動向量差MVD1確定第二目標運動向量,如第一目標運動向量+MVD1。得到第一目標運動向量後,基於第一目標運動向量得到第一目標運動資訊,第一目標運動資訊包括第一目標運動向量。得到第二目標運動向量後,基於第二目標運動向量得到第二目標運動資訊,第二目標運動資訊包括第二目標運動 向量。
又例如,根據原始運動向量和第一運動向量差MVD0確定第一目標運動向量,如原始運動向量+MVD0。根據原始運動向量和第二運動向量差MVD1確定第二目標運動向量,如原始運動向量+MVD1。在得到第一目標運動向量後,基於第一目標運動向量得到第一目標運動資訊,第一目標運動資訊包括第一目標運動向量。在得到第二目標運動向量後,基於第二目標運動向量得到第二目標運動資訊,第二目標運動資訊包括第二目標運動向量。
參見表12所示,為語法元素的另一個示例,awp_mvd_dir與awp_mvd_step組成第二個運動資訊(即第二目標運動資訊)在第一個運動資訊(即第一目標運動資訊)上的MVD的語法表達。awp_mvd_dir表示受限角度加權預測模式運動向量差方向索引值,AwpMvdDir的值等於awp_mvd_dir的值,如果位流中不存在awp_mvd_dir,AwpMvdDir的值等於0。awp_md_step表示受限角度加權預測模式運動向量差步長索引值,AwpMvdStep的值等於awp_mvd_step的值,如果位流中不存在awp_mvd_step,AwpMvdStep的值等於0。
Figure 110123652-A0202-12-0102-17
Figure 110123652-A0202-12-0103-18
綜上所述,可以基於awp_cand_idx確定出原始運動資訊(原始運動資訊包括原始運動向量),根據awp_mvd_dir和awp_mvd_step確定出運動向量差MVD。
在此基礎上,根據原始運動向量確定第一目標運動向量,如第一目標運動向量為原始運動向量。根據第一目標運動向量和運動向量差MVD確定第二目標運動向量,如第一目標運動向量+MVD。在得到第一目標運動向量後,基於第一目標運動向量得到第一目標運動資訊,第一目標運動資訊包括第一目標運動向量。在得到第二目標運動向量後,基於第二目標運動向量得到第二目標運動資訊,第二目標運動資訊包括第二目標運動向量。
又例如,根據原始運動向量和運動向量差MVD確定第一目標運動向量,如原始運動向量+MVD。根據原始運動向量和運動向量差MVD確定第二目標運動向量,如原始運動向量-MVD。或者,根據原始運動向量和運動向量差MVD確定第一目標運動向量,如原始運動向量-MVD。根據原始運動向量和運動向量差MVD確定第二目標運動向量,如原始運動向量+MVD。在得到第一目標運動向量後,基於第一目標運動向量得到第一目標運動資訊,第一目標運動資訊包括第一目標運動向量。在得到第二目標運動向量後,基於第二目標運動向量得到第二目標運動資訊,第二目標運動資訊包括第二目標運動向量。綜上可以看出,MVD同時作用在相反的兩個方向,使得原始運動資訊能夠匯出兩個目標運動資訊。
在一種可能的實施方式中,MVD的語法表述還可以為水準分量和垂直分量的分開表述,參見表13所示,為分開表述的一個示例。awp_mv_diff_x_abs表示受限角度加權預測模式運動向量水準分量差絕對值,awp_mv_diff_y_abs表示受限角度加權預測模式運動向量垂直分量差絕對值。awp_mv_diff_x_sign表示受限角度加權預測模式運動向量水準分量差符號值,awp_mv_diff_y_sign表示受限角度加權預測模式運動向量垂直分量差符 號值。
示例性的,受限角度加權預測模式的運動向量差值的絕對值,AwpMvDiffXAbs等於awp_mv_diff_x_abs的值,AwpMvDiffYAbs等於awp_mv_diff_y_abs的值。
示例性的,受限角度加權預測模式的運動向量差值的符號位元,AwpMvDiffXSign的值等於awp_mv_diff_x_sign的值,AwpMvDiffYSign的值等於awp_mv_diff_y_sign0。如果位流中不存在awp_mv_diff_x_sign或awp_mv_diff_y_sign,則AwpMvDiffXSign或AwpMvDiffYSign的值為0。如果AwpMvDiffXSign的值為0,AwpMvDiffX等於AwpMvDiffXAbs;如果AwpMvDiffXSign的值為1,AwpMvDiffX等於-AwpMvDiffXAbs。如果AwpMvDiffYSign的值為0,AwpMvDiffY等於AwpMvDiffYAbs;如果AwpMvDiffYSign的值為1,AwpMvDiffY等於-AwpMvDiffYAbs。AwpMvDiffX和AwpMvDiffY的取值範圍是-32768~32767。
Figure 110123652-A0202-12-0104-19
在另一種可能的實施方式中,參見表14所示,為分開表述的另一個示例。基於表14所示,可以判斷|MVD_X|是否大於0,|...|為絕對值符號,MVD_X表示MVD的橫向分量;判斷|MVD_Y|是否大於0,|...| 為絕對值符號,MVD_Y表示MVD的縱向分量;如果|MVD_X|大於0,判斷|MVD_X|是否大於1;如果|MVD_Y|大於0,判斷|MVD_Y|是否大於1;如果|MVD_X|大於1,編碼|MVD_X|-2;如果|MVD_X|大於0,編碼MVD_X的符號位元;如果|MVD_Y|大於1,編碼|MVD_Y|-2;如果|MVD_Y|大於0,編碼MVD_Y的符號位元。
Figure 110123652-A0202-12-0105-20
實施例19:在實施例1-實施例3中,編碼端/解碼端需要獲取運動資訊候選清單,如採用如下方式獲取運動資訊候選清單:獲取待加入到運動資訊候選清單中的至少一個可用運動資訊;基於至少一個可用運動資訊獲取運動資訊候選清單。示例性的,至少一個可用運動資訊包括但不限於如下運動資訊的至少一種:空域運動資訊;時域運動資訊;預設運動資訊,各可用運動資訊的獲取方式,可以參見實施例13,在此不再贅述。
示例性的,基於至少一個可用運動資訊獲取運動資訊候選清單,可以包括:針對當前待加入到運動資訊候選清單的可用運動資訊,將可用運動資訊加入到運動資訊候選清單。比如說,針對可用運動資訊,無論可用運動資訊是單向運動資訊還是雙向運動資訊,均將可用運動資訊加入到運動資訊候選清單。與實施例13和實施例14不同的是,當可用運動資訊為雙向運動資訊時,不需要將雙向運動資訊裁剪為第一單向運動資訊和第二單向運動資訊,而是直接將雙向運動資訊加入到運動資訊候選清單,即運動資訊候選清單可以包括雙向運動資訊。
示例性的,在將可用運動資訊加入到運動資訊候選清單時,可以對可用運動資訊進行查重操作,也可以對可用運動資訊不進行查重操作,對此不做限制。若對可用運動資訊進行查重操作,則可以基於List+refIdx+MV_x+MV_y進行查重操作,或者,可以基於POC+MV_x+MV_y進行查重操作,對此查重操作的方式不再贅述,可以參見實施例14。
實施例20:在實施例1-實施例3中,編碼端/解碼端在得到運動資訊候選清單後,可以基於該運動資訊候選清單獲取當前塊的第一目標運動資訊和第二目標運動資訊,在確定第一目標運動資訊指向的參考幀與第二目標運動資訊指向的參考幀為同一幀時,運動資訊候選清單中的候選運動資訊可以均為雙向運動資訊。
示例性的,如果限定第一目標運動資訊指向的參考幀與第二目標運動資訊指向的參考幀為同一幀,即AWP模式的兩個運動向量指向同一幀,則在構建運動資訊候選清單時,添加到運動資訊候選清單中的可用運動資訊均為雙向運動資訊。基於此,針對編碼端來說,可以採用率失真代價值從運動資訊候選清單中選擇一個候選運動資訊,編碼端在向解碼端發送當前塊的編碼位元流時,可以攜帶該候選運動資訊在運動資訊候選清單中的索引值,針對解碼端來說,可以基於該索引值從運動資訊候選清單中選擇一個候選運動資訊。
實施例21:在實施例4中,編碼端/解碼端需要獲取運動向量候選清單,例如,獲取參考幀資訊(即當前塊的參考幀資訊),並獲取與該參考幀資訊對應的運動向量候選列表(即當前塊的運動向量候選列表),即運動向量候選清單是針對參考幀資訊創建的。示例性的,該參考幀資訊可以包括第一參考幀資訊和第二參考幀資訊,因此,該運動向量候選列表可以包括第一參考幀資訊(如參考幀索引和參考幀方向等)對應的運動向量候選清單和第二參考幀資訊(如參考幀索引和參考幀方向等)對應的運動向量候選清單,第一參考幀資訊是第一目標運動向量對應的參考幀資訊,第二參考幀資訊是第二目標運動向量對應的參考幀資訊。
示例性的,針對編碼端來說,可以獲取第一參考幀資訊和第二參考幀資訊,比如說,基於率失真代價值,可以從一個參考幀列表中選取出第一參考幀資訊和第二參考幀資訊,也可以從兩個參考幀列表中選取出第一參考幀資訊和第二參考幀資訊,例如,兩個參考幀列表分別為List0和List1,從List0中選取出第一參考幀資訊,從List1中選取出第二參考幀資訊。
示例性的,針對解碼端來說,可以獲取第一參考幀資訊和第二參考幀資訊,比如說,基於當前塊的編碼位元流中的索引資訊,可以從一個參考幀列表中選取出第一參考幀資訊和第二參考幀資訊,也可以從兩個參考幀列表中選取出第一參考幀資訊和第二參考幀資訊,例如,兩個參考幀列表分別為List0和List1,基於第一參考幀資訊的索引資訊,從List0中選取出第一參考幀資訊,基於第二參考幀資訊的索引資訊,從List1中選取出第二參考幀資訊。
當然,上述只是獲取第一參考幀資訊和第二參考幀資訊的示例,對此不做限制。
在一種可能的實施方式中,第一參考幀資訊和第二參考幀資訊可以相同,在此情況下,第一目標運動向量指向的參考幀與第二目標運動向量指向的參考幀為同一幀,第一參考幀資訊對應的運動向量候選清單與第二參考幀資訊對應的運動向量候選列表為同一個運動向量候選清單,即,編碼端/解碼端獲取的是一個運動向量候選列表。
在另一種可能的實施方式中,第一參考幀資訊與第二參考幀資訊可以不同,在此情況下,第一目標運動向量指向的參考幀與第二目標運動向量指向的參考幀為不同幀,第一參考幀資訊對應的運動向量候選清單與第二參考幀資訊對應的運動向量候選列表為不同的運動向量候選清單,即編碼端/解碼端獲取的是兩個不同的運動向量候選列表。
為了方便描述,無論是一個運動向量候選列表,還是兩個不同的運動向量候選列表,均記為第一參考幀資訊對應的運動向量候選清 單與第二參考幀資訊對應的運動向量候選列表。
基於此,可以採用如下方式獲取當前塊的第一目標運動向量和第二目標運動向量:
方式一、從第一參考幀資訊對應的運動向量候選列表中選擇一個候選運動向量作為當前塊的第一目標運動向量,從第二參考幀資訊對應的運動向量候選列表中選擇一個候選運動向量作為當前塊的第二目標運動向量。第二目標運動向量與第一目標運動向量可以不同。
針對編碼端來說,可以基於率失真原則,從第一參考幀資訊對應的運動向量候選列表中選擇一個候選運動向量作為當前塊的第一目標運動向量,從第二參考幀資訊對應的運動向量候選列表中選擇一個候選運動向量作為當前塊的第二目標運動向量,對此不做限制。
在一種可能的實施方式中,編碼端在向解碼端發送編碼位元流時,該編碼位元流可以攜帶指示資訊a和指示資訊b,指示資訊a用於指示當前塊的第一目標運動向量的索引值1,索引值1表示第一目標運動向量是第一參考幀資訊對應的運動向量候選列表中的第幾個候選運動向量。指示資訊b用於指示當前塊的第二目標運動向量的索引值2,索引值2表示第二目標運動向量是第二參考幀資訊對應的運動向量候選列表中的第幾個候選運動向量。
解碼端在接收到編碼位元流後,從編碼位元流中解析出指示資訊a和指示資訊b。基於指示資訊a,解碼端從第一參考幀資訊對應的運動向量候選清單中選擇索引值1對應的候選運動向量,該候選運動向量作為當前塊的第一目標運動向量。基於指示資訊b,解碼端從第二參考幀資訊對應的運動向量候選清單中選擇索引值2對應的候選運動向量,該候選運動向量作為當前塊的第二目標運動向量。
方式二、從第一參考幀資訊對應的運動向量候選列表中選擇一個候選運動向量作為當前塊的第一原始運動向量,並從第二參考幀資訊對應的運動向量候選列表中選擇一個候選運動向量作為當前塊的第二原 始運動向量,示例性的,該第一原始運動向量與該第二原始運動向量可以不同,或者,該第一原始運動向量與該第二原始運動向量也可以相同。然後,根據該第一原始運動向量確定當前塊的第一目標運動向量,並根據該第二原始運動向量確定當前塊的第二目標運動向量。示例性的,該第一目標運動向量與該第二目標運動向量可以不同。
關於如何根據原始運動向量確定目標運動向量,本實施例中給出一種單向運動向量疊加運動向量差的方案,比如說,可以獲取與第一原始運動向量對應的第一運動向量差(即MVD),並根據第一運動向量差和第一原始運動向量確定第一目標運動向量(即第一運動向量差與第一原始運動向量的和作為第一目標運動向量)。或者,可以將第一原始運動向量確定為第一目標運動向量。以及,可以獲取與第二原始運動向量對應的第二運動向量差,並根據第二運動向量差和第二原始運動向量確定第二目標運動向量(即第二運動向量差與第二原始運動向量的和作為第二目標運動向量)。或者,將第二原始運動向量確定為第二目標運動向量。
示例性的,可以獲取第一運動向量差的方向資訊和幅值資訊,並根據第一運動向量差的方向資訊和幅值資訊確定第一運動向量差。以及,可以獲取第二運動向量差的方向資訊和幅值資訊,並根據第二運動向量差的方向資訊和幅值資訊確定所述第二運動向量差。
示例性的,針對解碼端來說,可以採用如下方式獲取第一運動向量差的方向資訊:解碼端從當前塊的編碼位元流中解析出第一運動向量差的方向資訊;或者,解碼端根據當前塊的權重預測角度推導第一運動向量差的方向資訊。針對解碼端來說,可以採用如下方式獲取第二運動向量差的方向資訊:解碼端從當前塊的編碼位元流中解析出第二運動向量差的方向資訊;或者,解碼端根據當前塊的權重預測角度推導第二運動向量差的方向資訊。
示例性的,針對解碼端來說,可以採用如下方式獲取第一運動向量差的幅值資訊:從當前塊的編碼位元流中解析出第一運動向量差 的幅值資訊。可以採用如下方式獲取第二運動向量差的幅值資訊:從當前塊的編碼位元流中解析出第二運動向量差的幅值資訊。
在一種可能的實施方式中,編碼端和解碼端可以約定運動向量差的方向資訊和幅值資訊,若方向資訊表示方向為向右,幅值資訊表示幅值為A,則運動向量差為(A,0);若方向資訊表示方向為向下,幅值資訊表示幅值為A,則運動向量差為(0,-A);若方向資訊表示方向為向左,幅值資訊表示幅值為A,則運動向量差為(-A,0);若方向資訊表示方向為向上,幅值資訊表示幅值為A,則運動向量差為(0,A);若方向資訊表示方向為向右上,幅值資訊表示幅值為A,則運動向量差為(A,A);若方向資訊表示方向為向左上,幅值資訊表示幅值為A,則運動向量差為(-A,A);若方向資訊表示方向為向左下,幅值資訊表示幅值為A,則運動向量差為(-A,-A);若方向資訊表示方向為向右下,幅值資訊表示幅值為A,則運動向量差為(A,-A)。當然,上述只是幾個示例,對此方向資訊和幅值資訊不做限制。
示例性的,關於運動向量差的相關介紹,可以參見實施例15,在此不再贅述。
針對編碼端來說,可以基於率失真代價值從第一參考幀資訊對應的運動向量候選列表中選擇第一原始運動向量,從第二參考幀資訊對應的運動向量候選列表中選擇第二原始運動向量,基於率失真代價值確定與第一原始運動向量對應的第一運動向量差的方向資訊和幅值資訊,與第二原始運動向量對應的第二運動向量差的方向資訊和幅值資訊。編碼端向解碼端發送編碼位元流時,在編碼位元流中編碼第一原始運動向量在第一參考幀資訊對應的運動向量候選清單中的索引值,第二原始運動向量在第二參考幀資訊對應的運動向量候選清單中的索引值,第一運動向量差的方向資訊和幅值資訊,第二運動向量差的方向資訊和幅值資訊。
針對解碼端來說,在接收到當前塊的編碼位元流後,基於第一原始運動向量在第一參考幀資訊對應的運動向量候選清單中的索引值, 從第一參考幀資訊對應的運動向量候選列表中選擇第一原始運動向量,基於第二原始運動向量在第二參考幀資訊對應的運動向量候選清單中的索引值,從第二參考幀資訊對應的運動向量候選列表中選擇第二原始運動向量。
解碼端還可以從編碼位元流中解析出第一運動向量差的方向資訊和幅值資訊,並根據該方向資訊和該幅值資訊確定第一運動向量差。以及,從該編碼位元流中解析出第二運動向量差的方向資訊和幅值資訊,並根據該方向資訊和該幅值資訊確定第二運動向量差。
示例性的,編碼位元流中還可以包括第一原始運動向量對應的第一參考幀資訊,解碼端可以根據第一原始運動向量和第一原始運動向量對應的第一參考幀資訊,確定第一原始運動資訊。編碼位元流中還可以包括第二原始運動向量對應的第二參考幀資訊,解碼端可以根據第二原始運動向量和第二原始運動向量對應的第二參考幀資訊,確定第二原始運動資訊。
然後,解碼端可以根據第一運動向量差和第一原始運動資訊確定當前塊的第一目標運動資訊,並根據第二運動向量差和第二原始運動資訊確定當前塊的第二目標運動資訊。
示例性的,編碼端還可以在編碼位元流中編碼增強角度加權預測模式的第一子模式標誌和第二子模式標誌,第一子模式標誌指示對第一原始運動向量疊加運動向量差,或對第一原始運動向量不疊加運動向量差。第二子模式標誌指示對第二原始運動向量疊加運動向量差,或對第二原始運動向量不疊加運動向量差。相關處理參見實施例15,在此不再贅述。
在上述實施例中,解碼端是從當前塊的編碼位元流中解析出第一運動向量差的方向資訊和第二運動向量差的方向資訊,在實際應用中,還可以根據當前塊的權重預測角度推導第一運動向量差的方向資訊,並根據當前塊的權重預測角度推導第二運動向量差的方向資訊。
針對編碼端來說,也可以根據當前塊的權重預測角度推導第一運動向量差的方向資訊,並根據當前塊的權重預測角度推導第二運動 向量差的方向資訊。
示例性的,解碼端可以從編碼位元流中解析出第一運動向量差的幅值資訊和第二運動向量差的幅值資訊,在一種可能的實施方式中,編碼端和解碼端可以構建相同的一個運動向量差幅值清單,編碼端確定第一運動向量差的幅值資訊在該運動向量差幅值清單中的幅值索引,且編碼位元流包括第一運動向量差的幅值索引。解碼端從當前塊的編碼位元流中解析出第一運動向量差的幅值索引,並從該運動向量差幅值列表選取與該幅值索引對應的幅值資訊,該幅值資訊即第一運動向量差的幅值資訊。編碼端確定第二運動向量差的幅值資訊在該運動向量差幅值清單中的幅值索引,且編碼位元流包括第二運動向量差的幅值索引。解碼端從當前塊的編碼位元流中解析出第二運動向量差的幅值索引,並從該運動向量差幅值列表選取與該幅值索引對應的幅值資訊,該幅值資訊即第二運動向量差的幅值資訊。
在另一種可能的實施方式中,編碼端和解碼端可以構建相同的至少兩個運動向量差幅值清單,如編碼端和解碼端構建相同的運動向量差幅值列表1,並構建相同的運動向量差幅值列表2。編碼端先基於運動向量差幅值清單的指示資訊,從所有運動向量差幅值清單中選取目標運動向量差幅值列表;編碼端確定第一運動向量差的幅值資訊在該目標運動向量差幅值清單中的幅值索引,且編碼位元流包括第一運動向量差的幅值索引。
編碼端還可以確定第二運動向量差的幅值資訊在該目標運動向量差幅值清單中的幅值索引,且編碼位元流可以包括第二運動向量差的幅值索引。解碼端可以從當前塊的編碼位元流中解析出第二運動向量差的幅值索引,並從該目標運動向量差幅值列表中選取與該幅值索引對應的幅值資訊,該幅值資訊即第二運動向量差的幅值資訊。
示例性的,關於運動向量差幅值清單的相關內容,可以參見實施例16,在此不再贅述。
實施例22:在實施例4中,編碼端/解碼端可以基於第一參考幀資訊對應的運動向量候選清單和第二參考幀資訊對應的運動向量候選列表,獲取當前塊的第一目標運動向量和第二目標運動向量,在第一目標運動向量指向的參考幀與第二目標運動向量指向的參考幀為同一幀時,則第一參考幀資訊與第二參考幀資訊相同,即第一參考幀資訊對應的運動向量候選清單與第二參考幀資訊對應的運動向量候選列表為同一個,基於此,採用如下方式獲取第一目標運動向量和第二目標運動向量:從運動向量候選列表中選擇一個候選運動向量作為當前塊的原始運動向量;根據原始運動向量確定當前塊的第一目標運動向量。根據第一目標運動向量確定當前塊的第二目標運動向量,或,根據原始運動向量確定當前塊的第二目標運動向量。
示例性的,獲取與原始運動向量對應的運動向量差,根據該原始運動向量確定當前塊的第一目標運動向量,根據第一目標運動向量和該運動向量差確定當前塊的第二目標運動向量。或者,獲取與該原始運動向量對應的運動向量差,根據該原始運動向量和該運動向量差確定當前塊的第一目標運動向量,根據該原始運動向量和該運動向量差確定當前塊的第二目標運動向量。或者,獲取與該原始運動向量對應的第一運動向量差和第二運動向量差;根據該原始運動向量和第一運動向量差確定當前塊的第一目標運動向量,根據該第一目標運動向量和第二運動向量差確定當前塊的第二目標運動向量。或者,獲取與該原始運動向量對應的第一運動向量差和第二運動向量差;根據該原始運動向量和第一運動向量差確定當前塊的第一目標運動向量;根據該原始運動向量和第二運動向量差確定當前塊的第二目標運動向量。
在上述實施例中,第一目標運動向量和第二目標運動向量可以不同。
在實施例21或者實施例22中,是構建第一參考幀資訊對應的運動向量候選清單和第二參考幀資訊對應的運動向量候選列表,而不是構建運動資訊候選清單,例如,採用針對參考幀列表ListX的第refIdx幀 構建運動向量候選清單,構建方式可以為幀間普通模式的運動向量候選清單構建方式,也可以在實施例13或者實施例14的基礎上,添加指向參考幀的限制,在添加指向參考幀的限制時,運動資訊候選清單可以為運動向量候選列表。示例性的,在構建運動向量候選列表時,在判定可用性時增加對參考幀的判斷,或者,在加入單向運動向量時,可以採用進行伸縮操作(Scale)等手段。
在實施例1-實施例4中,編碼端/解碼端可以根據第一目標運動資訊確定像素位置的第一預測值,根據第二目標運動資訊確定像素位置的第二預測值,該過程可以參見幀間預測過程,對此不做限制。示例性的,在根據第一目標運動資訊確定像素位置的第一預測值時,可以採用幀間加權預測模式得到像素位置的第一預測值。例如,先利用第一目標運動資訊確定像素位置的初始預測值,然後對該初始預測值乘以預設因數,得到調整預測值。若調整預測值大於最大預測值,則將最大預測值作為當前塊的第一預測值,若調整預測值小於最小預測值,則將最小預測值作為當前塊的第一預測值,若調整預測值不小於最小預測值,且不大於最大預測值,則將調整預測值作為當前塊的第一預測值。當然,上述方式只是示例,對此不做限制。同理,在根據第二目標運動資訊確定像素位置的第二預測值時,也可以採用幀間加權預測模式得到像素位置的第二預測值,具體實現方式參見上述示例,在此不再重複贅述。
示例性的,實施例1-實施例3,實施例5-實施例12,實施例13-實施例20,可以單獨實現,也可以組合實現。例如,實施例1和實施例2組合實現;實施例1和實施例3組合實現;實施例1和實施例5-實施例12中的至少一個實施例組合實現;實施例1和實施例13-實施例20中的至少一個實施例組合實現;實施例2和實施例5-實施例12中的至少一個實施例組合實現;實施例2和實施例13-實施例20中的至少一個實施例組合實現;實施例3和實施例5-實施例12中的至少一個實施例組合實現;實施例3和實施例13-實施例20中的至少一個實施例組合實現;當然,對實施例之間的組合方式不做限制。
示例性的,實施例4,實施例5-實施例12,實施例21-實施例22,可以單獨實現,也可以組合實現。例如,例如,實施例4和實施例5-實施例12中的至少一個實施例組合實現;實施例4和實施例21組合實現;實施例4和實施例22組合實現;實施例4和實施例21,實施例22組合實現;當然,對實施例之間的組合方式不做限制。
實施例23:基於與上述方法同樣的申請構思,本發明實施例還提出一種編解碼裝置,所述裝置應用於編碼端或者解碼端,參見圖10A所示,為所述裝置的結構圖,包括:
獲取模組111,用於在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;配置模組112,用於根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;確定模組113,用於針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;所述獲取模組111,還用於獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;所述確定模組113,還用於根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
示例性的,所述獲取模組111獲取運動資訊候選清單時具體用於:
獲取待加入到運動資訊候選清單中的至少一個可用運動資訊;基於所述至少一個可用運動資訊,獲取所述運動資訊候選清單;其中, 所述可用運動資訊包括如下運動資訊的至少一種:空域運動資訊;時域運動資訊;預設運動資訊。
示例性的,所述獲取模組111基於所述至少一個可用運動資訊,獲取所述運動資訊候選清單時具體用於:針對當前待加入到運動資訊候選清單的可用運動資訊,
若所述可用運動資訊為單向運動資訊,則將所述單向運動資訊加入到運動資訊候選清單;
若所述可用運動資訊為雙向運動資訊,則將所述雙向運動資訊裁剪為第一單向運動資訊和第二單向運動資訊,將所述第一單向運動資訊加入到運動資訊候選清單。
或者,針對當前待加入到運動資訊候選清單的可用運動資訊,
若所述可用運動資訊為單向運動資訊,且所述單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將所述單向運動資訊加入到運動資訊候選清單;
若所述可用運動資訊為雙向運動資訊,則將所述雙向運動資訊裁剪為第一單向運動資訊和第二單向運動資訊;若所述第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將所述第一單向運動資訊加入到運動資訊候選清單。
或者,針對當前待加入到運動資訊候選清單的可用運動資訊,
若所述可用運動資訊為單向運動資訊,且所述單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將所述單向運動資訊加入到運動資訊候選清單;
若所述可用運動資訊為雙向運動資訊,則將所述雙向運動資訊裁剪為第一單向運動資訊和第二單向運動資訊;若第一單向運動資訊 與運動資訊候選清單中已存在的候選運動資訊不重複,則將所述第一單向運動資訊加入到運動資訊候選清單;若第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊重複,且第二單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將所述第二單向運動資訊加入到運動資訊候選清單。
示例性的,所述獲取模組111基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊時具體用於:從所述運動資訊候選清單中選擇候選運動資訊作為所述當前塊的第一原始運動資訊,並從所述運動資訊候選清單中選擇候選運動資訊作為所述當前塊的第二原始運動資訊;根據所述第一原始運動資訊確定所述當前塊的第一目標運動資訊;根據所述第二原始運動資訊確定所述當前塊的第二目標運動資訊。
示例性的,所述第一原始運動資訊包括第一原始運動向量,所述第一目標運動資訊包括第一目標運動向量,所述獲取模組111根據所述第一原始運動資訊確定所述當前塊的第一目標運動資訊時具體用於:獲取與所述第一原始運動向量對應的第一運動向量差;根據所述第一運動向量差和所述第一原始運動向量確定所述第一目標運動向量;或者,將第一原始運動向量確定為第一目標運動向量;所述第二原始運動資訊包括第二原始運動向量,所述第二目標運動資訊包括第二目標運動向量,所述獲取模組111根據所述第二原始運動資訊確定所述當前塊的第二目標運動資訊時具體用於:獲取與所述第二原始運動向量對應的第二運動向量差;根據所述第二運動向量差和所述第二原始運動向量確定所述第二目標運動向量;或者,將第二原始運動向量確定為第二目標運動向量。
示例性的,在所述第一目標運動資訊指向的參考幀與所述第二目標運動資訊指向的參考幀為同一幀時,所述獲取模組111基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊時具體用於:從所述運動資訊候選清單中選擇一個候選運動資訊作為所述當前塊的原始運動資訊;根據所述原始運動資訊確定所述當前塊的第一 目標運動資訊;根據所述第一目標運動資訊確定所述當前塊的第二目標運動資訊,或者,根據所述原始運動資訊確定所述當前塊的第二目標運動資訊。
示例性的,所述原始運動資訊包括原始運動向量,所述第一目標運動資訊包括第一目標運動向量,所述第二目標運動資訊包括第二目標運動向量,所述獲取模組111具體用於:獲取與所述原始運動向量對應的運動向量差;根據所述原始運動向量確定所述當前塊的第一目標運動向量;根據所述第一目標運動向量和所述運動向量差確定所述當前塊的第二目標運動向量;或者,獲取與所述原始運動向量對應的運動向量差;根據所述原始運動向量和所述運動向量差確定所述當前塊的第一目標運動向量;根據所述原始運動向量和所述運動向量差確定所述當前塊的第二目標運動向量;或者,獲取與所述原始運動向量對應的第一運動向量差和第二運動向量差;根據所述原始運動向量和所述第一運動向量差確定所述當前塊的第一目標運動向量;根據所述第一目標運動向量和所述第二運動向量差確定所述當前塊的第二目標運動向量;或者,獲取與所述原始運動向量對應的第一運動向量差和第二運動向量差;根據所述原始運動向量和所述第一運動向量差確定所述當前塊的第一目標運動向量;根據所述原始運動向量和所述第二運動向量差確定所述當前塊的第二目標運動向量。
在上述實施例中,第一目標運動向量與第二目標運動向量可以不同。
基於與上述方法同樣的申請構思,本發明實施例還提出一種編解碼裝置,所述裝置應用於編碼端或者解碼端,參見圖10B所示,為所述裝置的結構圖,包括:
獲取模組121,用於在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;配置模組122,用於根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;確定模組123,用於針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所 述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;所述獲取模組121,還用於獲取參考幀資訊,並獲取與所述參考幀資訊對應的運動向量候選列表,所述運動向量候選列表包括至少一個候選運動向量,所述參考幀資訊包括第一參考幀資訊和第二參考幀資訊;基於所述運動向量候選列表獲取所述當前塊的第一目標運動向量和第二目標運動向量;所述確定模組123,還用於根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;其中,所述第一目標運動資訊包括第一目標運動向量和所述第一目標運動向量對應的第一參考幀資訊,所述第二目標運動資訊包括第二目標運動向量和所述第二目標運動向量對應的第二參考幀資訊;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
示例性的,所述權重配置參數包括權重變換率,若所述當前塊支持權重變換率切換模式,所述獲取模組121採用如下方式獲取所述當前塊的權重變換率:獲取所述當前塊的權重變換率指示資訊;根據所述權重變換率指示資訊確定所述當前塊的權重變換率:其中,若所述權重變換率指示資訊為第一指示資訊,則所述當前塊的權重變換率為第一權重變換率;若所述權重變換率指示資訊為第二指示資訊,則所述當前塊的權重變換率為第二權重變換率。
示例性的,所述當前塊的權重變換率指示資訊為所述當前塊對應的權重變換率切換標識,所述第一指示資訊用於指示所述當前塊不需要進行權重變換率切換,所述第二指示資訊用於指示所述當前塊需要進行權重變換率切換。
所述權重配置參數包括權重變換率和權重變換的起始位置,所述配置模組122根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值時具體用於:
針對所述當前塊外部的周邊位置,根據所述周邊位置的座標值,所述權重變換的起始位置的座標值,以及所述權重變換率,配置所述周邊位置的參考權重值。
示例性的,所述運動向量候選清單包括第一參考幀資訊對應的運動向量候選清單和第二參考幀資訊對應的運動向量候選清單,所述獲取模組121基於所述運動向量候選列表獲取所述當前塊的第一目標運動向量和第二目標運動向量時具體用於:
從所述第一參考幀資訊對應的運動向量候選列表中選擇一個候選運動向量作為所述當前塊的第一原始運動向量,並從所述第二參考幀資訊對應的運動向量候選列表中選擇一個候選運動向量作為所述當前塊的第二原始運動向量;根據所述第一原始運動向量確定所述當前塊的第一目標運動向量;根據所述第二原始運動向量確定所述當前塊的第二目標運動向量。
示例性的,所述獲取模組121根據所述第一原始運動向量確定所述當前塊的第一目標運動向量時具體用於:獲取與所述第一原始運動向量對應的第一運動向量差;根據所述第一運動向量差和所述第一原始運動向量確定所述第一目標運動向量;或者,將第一原始運動向量確定為第一目標運動向量。
示例性的,所述獲取模組121根據所述第二原始運動向量確定所述當前塊的第二目標運動向量時具體用於:獲取與所述第二原始運動向量對應的第二運動向量差;根據所述第二運動向量差和所述第二原始運動向量確定所述第二目標運動向量;或者,將第二原始運動向量確定為第二目標運動向量。
示例性的,在所述第一目標運動向量指向的參考幀與所述第二目標運動向量指向的參考幀為同一幀時,所述第一參考幀資訊與所述第二參考幀資訊相同,所述運動向量候選列表為一個運動向量候選清單,所述獲取模組121基於所述運動向量候選列表獲取所述當前塊的第一目標運 動向量和第二目標運動向量時具體用於:從所述運動向量候選列表中選擇一個候選運動向量作為所述當前塊的原始運動向量;根據所述原始運動向量確定所述當前塊的第一目標運動向量;根據所述第一目標運動向量確定所述當前塊的第二目標運動向量,或者,根據所述原始運動向量確定所述當前塊的第二目標運動向量。
示例性的,所述獲取模組121具體用於:
獲取與所述原始運動向量對應的運動向量差;根據所述原始運動向量確定所述當前塊的第一目標運動向量;根據所述第一目標運動向量和所述運動向量差確定所述當前塊的第二目標運動向量;或者,獲取與所述原始運動向量對應的運動向量差;根據所述原始運動向量和所述運動向量差確定所述當前塊的第一目標運動向量;根據所述原始運動向量和所述運動向量差確定所述當前塊的第二目標運動向量。或者,獲取與所述原始運動向量對應的第一運動向量差和第二運動向量差;根據所述原始運動向量和所述第一運動向量差確定所述當前塊的第一目標運動向量;根據所述第一目標運動向量和所述第二運動向量差確定所述當前塊的第二目標運動向量;或者,獲取與所述原始運動向量對應的第一運動向量差和第二運動向量差;根據所述原始運動向量和所述第一運動向量差確定所述當前塊的第一目標運動向量;根據所述原始運動向量和所述第二運動向量差確定所述當前塊的第二目標運動向量。
在上述實施例中,第一目標運動向量和第二目標運動向量可以不同。
基於與上述方法同樣的申請構思,本發明實施例提供的解碼端設備(也可以稱為視頻解碼器),從硬體層面而言,其硬體架構示意圖具體可以參見圖10C所示。包括:處理器131和機器可讀存儲介質132,其中:所述機器可讀存儲介質132存儲有能夠被所述處理器131執行的機器可執行指令;所述處理器131用於執行機器可執行指令,以實現本發明上述示例公開的方法。例如,所述處理器131用於執行機器可執行指令,以實 現如下步驟:
在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;
根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;
根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。或者,
在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
獲取參考幀資訊,並獲取與所述參考幀資訊對應的運動向量候選列表,所述運動向量候選列表包括至少一個候選運動向量,所述參考幀資訊包括第一參考幀資訊和第二參考幀資訊;基於所述運動向量候選列表獲取所述當前塊的第一目標運動向量和第二目標運動向量;
根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;其中,所述第一目標運動資訊包括第一目標運動向量和所述第一目標運動向量對應的第一參考幀資訊,所述第二目標運動資訊包括第二目標運動向量和所述第二目標運動向量對應的第二參考幀資訊;
根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
基於與上述方法同樣的申請構思,本發明實施例提供的編碼端設備(也可以稱為視訊轉碼器),從硬體層面而言,其硬體架構示意圖具體可以參見圖10D所示。包括:處理器141和機器可讀存儲介質142,其中:所述機器可讀存儲介質142存儲有能夠被所述處理器141執行的機器可執行指令;所述處理器141用於執行機器可執行指令,以實現本發明上述示例公開的方法。例如,所述處理器141用於執行機器可執行指令,以實現如下步驟:
在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值, 根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;
根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;
根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。或者,
在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
獲取參考幀資訊,並獲取與所述參考幀資訊對應的運動向量候選列表,所述運動向量候選列表包括至少一個候選運動向量,所述參考幀資訊包括第一參考幀資訊和第二參考幀資訊;基於所述運動向量候選列表獲取所述當前塊的第一目標運動向量和第二目標運動向量;
根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;其中,所述第一目標運動 資訊包括第一目標運動向量和所述第一目標運動向量對應的第一參考幀資訊,所述第二目標運動資訊包括第二目標運動向量和所述第二目標運動向量對應的第二參考幀資訊;
根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
基於與上述方法同樣的申請構思,本發明實施例還提供一種機器可讀存儲介質,所述機器可讀存儲介質上存儲有若干電腦指令,所述電腦指令被處理器執行時,能夠實現本發明上述示例公開的方法,如上述上述各實施例中的編解碼方法。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂窩電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本發明時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本發明實施例可提供為方法、系統、或電腦程式產品。本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。本發明實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用存儲介質(包括但不限於磁碟記憶體、CD-ROM(Compact Disc Read-Only Memory,唯讀記憶光碟)、光學記憶體等)上實施的電腦程式產品的形式。
以上所述僅為本發明的實施例而已,並不用於限制本發明。對於本領域技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本發明的權利要求範圍之內。
301,302,303,304,305,306:步驟

Claims (18)

  1. 一種編解碼方法,其中,所述方法包括:
    在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
    根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
    針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
    獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;
    根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;
    根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
  2. 如請求項1所述的方法,其中,所述獲取運動資訊候選清單,包括:
    獲取待加入到運動資訊候選清單中的至少一個可用運動資訊;
    基於所述至少一個可用運動資訊,獲取所述運動資訊候選清單;
    其中,所述可用運動資訊包括如下運動資訊的至少一種:
    空域運動資訊;時域運動資訊;預設運動資訊。
  3. 如請求項2所述的方法,其中,
    所述獲取待加入到運動資訊候選清單中的至少一個可用運動資訊,包括:
    針對所述當前塊的空域相鄰塊,若所述空域相鄰塊存在,且所述空域相 鄰塊採用幀間預測模式,則將所述空域相鄰塊的運動資訊確定為可用運動資訊。
  4. 如請求項2所述的方法,其中,
    所述獲取待加入到運動資訊候選清單中的至少一個可用運動資訊,包括:
    基於所述當前塊的預設位置,從所述當前塊的參考幀中選取與所述預設位置對應的時域相鄰塊,將所述時域相鄰塊的運動資訊確定為可用運動資訊。
  5. 如請求項2所述的方法,其中,
    所述獲取待加入到運動資訊候選清單中的至少一個可用運動資訊,包括:
    將預設運動資訊確定為可用運動資訊,所述預設運動資訊包括:
    基於運動資訊候選清單中已存在的候選運動資訊所匯出的缺省運動資訊。
  6. 如請求項2所述的方法,其中,
    所述基於所述至少一個可用運動資訊,獲取所述運動資訊候選清單,包括:
    針對當前待加入到運動資訊候選清單的可用運動資訊,
    若所述可用運動資訊為單向運動資訊,且所述單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將所述單向運動資訊加入到運動資訊候選清單;
    若所述可用運動資訊為雙向運動資訊,則將所述雙向運動資訊裁剪為第一單向運動資訊和第二單向運動資訊;若所述第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將所述第一單向運動資訊加入到運動資訊候選清單。
  7. 如請求項2所述的方法,其中,
    所述基於所述至少一個可用運動資訊,獲取所述運動資訊候選清單,包括:針對當前待加入到運動資訊候選清單的可用運動資訊,將所述可用運動 資訊加入到運動資訊候選清單。
  8. 如請求項6所述的方法,其中,
    所述第一單向運動資訊是指向第一參考幀列表中參考幀的單向運動資訊;
    所述第二單向運動資訊是指向第二參考幀列表中參考幀的單向運動資訊;
    其中,所述第一參考幀列表為List0,所述第二參考幀列表為List1;或者,
    所述第一參考幀列表為List1,所述第二參考幀列表為List0。
  9. 如請求項6所述的方法,其中,
    針對單向運動資訊與運動資訊候選清單中已存在的候選運動資訊的查重操作,包括:
    若單向運動資訊指向的參考幀的顯示順序POC與候選運動資訊指向的參考幀的POC相同,且該單向運動資訊的運動向量與該候選運動資訊的運動向量相同,則確定該單向運動資訊與該候選運動資訊重複;否則,確定該單向運動資訊與該候選運動資訊不重複。
  10. 如請求項1所述的方法,其中,所述基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊,包括:
    從所述運動資訊候選清單中選擇候選運動資訊作為所述當前塊的第一原始運動資訊,並從所述運動資訊候選清單中選擇候選運動資訊作為所述當前塊的第二原始運動資訊;
    根據所述第一原始運動資訊確定所述當前塊的第一目標運動資訊;
    根據所述第二原始運動資訊確定所述當前塊的第二目標運動資訊。
  11. 如請求項10所述的方法,其中,
    所述第一原始運動資訊包括第一原始運動向量,所述第一目標運動資訊包括第一目標運動向量,所述根據所述第一原始運動資訊確定所述當前塊的第一目標運動資訊,包括:
    獲取與所述第一原始運動向量對應的第一運動向量差;根據所述第一運動向量差和所述第一原始運動向量確定所述第一目標運動向量;或者,
    將所述第一原始運動向量確定為所述第一目標運動向量;
    所述第二原始運動資訊包括第二原始運動向量,所述第二目標運動資訊包括第二目標運動向量,所述根據所述第二原始運動資訊確定所述當前塊的第二目標運動資訊,包括:
    獲取與所述第二原始運動向量對應的第二運動向量差;根據所述第二運動向量差和所述第二原始運動向量確定所述第二目標運動向量;或者,
    將所述第二原始運動向量確定為所述第二目標運動向量。
  12. 如請求項11所述的方法,其中,
    所述獲取與所述第一原始運動向量對應的第一運動向量差,包括:
    獲取所述第一運動向量差的方向資訊和幅值資訊;
    根據所述第一運動向量差的方向資訊和幅值資訊確定所述第一運動向量差;
    所述獲取與所述第二原始運動向量對應的第二運動向量差,包括:
    獲取所述第二運動向量差的方向資訊和幅值資訊;
    根據所述第二運動向量差的方向資訊和幅值資訊確定所述第二運動向量差。
  13. 如請求項12所述的方法,其中,若所述方法應用於解碼端,則:
    所述獲取所述第一運動向量差的方向資訊,包括:
    從所述當前塊的編碼位元流中解析出所述第一運動向量差的方向資訊;或者,
    根據所述當前塊的權重預測角度推導所述第一運動向量差的方向資訊;
    所述獲取所述第二運動向量差的方向資訊,包括:
    從所述當前塊的編碼位元流中解析出所述第二運動向量差的方向資訊;或者,
    根據所述當前塊的權重預測角度推導所述第二運動向量差的方向資訊。
  14. 如請求項12所述的方法,其中,若所述方法應用於解碼端,則:
    所述獲取所述第一運動向量差的幅值資訊,包括:
    從所述當前塊的編碼位元流中解析出所述第一運動向量差的幅值資訊;
    所述獲取所述第二運動向量差的幅值資訊,包括:
    從所述當前塊的編碼位元流中解析出所述第二運動向量差的幅值資訊。
  15. 如請求項12-14任一項所述的方法,其中,
    若第一運動向量差的方向資訊表示方向為向右,第一運動向量差的幅值資訊為Ar1,則第一運動向量差為(Ar1,0);若第一運動向量差的方向資訊表示方向為向下,第一運動向量差的幅值資訊為Ad1,則第一運動向量差為(0,-Ad1);若第一運動向量差的方向資訊表示方向為向左,第一運動向量差的幅值資訊為Al1,則第一運動向量差為(-Al1,0);若第一運動向量差的方向資訊表示方向為向上,第一運動向量差的幅值資訊為Au1,則第一運動向量差為(0,Au1);
    若第二運動向量差的方向資訊表示方向為向右,第二運動向量差的幅值資訊為Ar2,則第二運動向量差為(Ar2,0);若第二運動向量差的方向資訊表示方向為向下,第二運動向量差的幅值資訊為Ad2,則第二運動向量差為(0,-Ad2);若第二運動向量差的方向資訊表示方向為向左,第二運動向量差的幅值資訊為Al2,則第二運動向量差為(-Al2,0);若第二運動向量差的方向資訊表示方向為向上,第二運動向量差的幅值資訊為Au2,則第二運動向量差為(0,Au2)。
  16. 一種編解碼裝置,其中,所述裝置包括:
    獲取模組,用於在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
    配置模組,用於根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
    確定模組,用於針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置; 根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
    所述獲取模組,還用於獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;
    所述確定模組,還用於根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
  17. 一種解碼端設備,其中,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;
    所述處理器用於執行機器可執行指令,以實現如下步驟:
    在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
    根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
    針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
    獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;
    根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;
    根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
  18. 一種編碼端設備,其中,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;
    所述處理器用於執行機器可執行指令,以實現如下步驟:
    在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;
    根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;
    針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;
    獲取運動資訊候選清單,所述運動資訊候選清單包括至少一個候選運動資訊;基於所述運動資訊候選清單獲取所述當前塊的第一目標運動資訊和第二目標運動資訊;
    根據所述當前塊的第一目標運動資訊確定所述像素位置的第一預測值,根據所述當前塊的第二目標運動資訊確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;
    根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
TW110123652A 2020-06-30 2021-06-28 一種編解碼方法、裝置及其設備 TWI790662B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010622752.7A CN113873249B (zh) 2020-06-30 2020-06-30 一种编解码方法、装置及其设备
CN202010622752.7 2020-06-30

Publications (2)

Publication Number Publication Date
TW202205852A true TW202205852A (zh) 2022-02-01
TWI790662B TWI790662B (zh) 2023-01-21

Family

ID=78668983

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110123652A TWI790662B (zh) 2020-06-30 2021-06-28 一種編解碼方法、裝置及其設備

Country Status (9)

Country Link
US (1) US20230344985A1 (zh)
EP (1) EP4152750A4 (zh)
JP (1) JP2023531010A (zh)
KR (1) KR20230006017A (zh)
CN (2) CN113873249B (zh)
AU (1) AU2021298606C1 (zh)
TW (1) TWI790662B (zh)
WO (1) WO2022001837A1 (zh)
ZA (1) ZA202213605B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113873249B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN114598889B (zh) * 2020-12-03 2023-03-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN115002486A (zh) * 2022-05-26 2022-09-02 百果园技术(新加坡)有限公司 编码单元预测块的权重确定方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103533376B (zh) * 2012-07-02 2017-04-12 华为技术有限公司 帧间预测编码运动信息的处理方法、装置和编解码***
EP3217663A4 (en) * 2014-11-06 2018-02-14 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus
CA3025488A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding
US10542264B2 (en) * 2017-04-04 2020-01-21 Arris Enterprises Llc Memory reduction implementation for weighted angular prediction
CN110800302A (zh) * 2017-06-07 2020-02-14 联发科技股份有限公司 用于视频编解码的帧内-帧间预测的方法及装置
CN112040244B (zh) * 2018-03-29 2021-06-29 华为技术有限公司 一种双向帧间预测方法及装置
US11470348B2 (en) * 2018-08-17 2022-10-11 Hfi Innovation Inc. Methods and apparatuses of video processing with bi-direction prediction in video coding systems
CN114866777A (zh) * 2018-09-20 2022-08-05 杭州海康威视数字技术股份有限公司 一种解码、编码方法及其设备
EP3644612A1 (en) * 2018-10-23 2020-04-29 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
CN112565787B (zh) * 2018-12-28 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN110225346A (zh) * 2018-12-28 2019-09-10 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN112543323B (zh) * 2019-09-23 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112584142B (zh) * 2019-09-30 2022-09-30 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113452997B (zh) * 2020-03-25 2022-07-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113873249B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备

Also Published As

Publication number Publication date
WO2022001837A1 (zh) 2022-01-06
CN113873249B (zh) 2023-02-28
EP4152750A1 (en) 2023-03-22
CN113709488B (zh) 2023-02-28
CN113873249A (zh) 2021-12-31
ZA202213605B (en) 2024-04-24
TWI790662B (zh) 2023-01-21
AU2021298606B2 (en) 2024-02-01
AU2021298606C1 (en) 2024-05-09
EP4152750A4 (en) 2023-10-18
US20230344985A1 (en) 2023-10-26
AU2021298606A1 (en) 2023-02-02
CN113709488A (zh) 2021-11-26
KR20230006017A (ko) 2023-01-10
JP2023531010A (ja) 2023-07-20

Similar Documents

Publication Publication Date Title
CN110463201B (zh) 使用参考块的预测方法和装置
CN112956190B (zh) 仿射运动预测
TWI669955B (zh) 視訊解碼/編碼裝置與方法、儲存位元串流的記錄媒體
CN111567045A (zh) 使用帧间预测信息的方法和装置
TWI790662B (zh) 一種編解碼方法、裝置及其設備
KR20230145540A (ko) 적응적 분할 코딩
TW201340724A (zh) 視訊寫碼中之像差向量預測
KR20130106794A (ko) 트리 구조의 부호화 단위에 기초한 스케일러블 비디오 부호화 방법 및 그 장치, 트리 구조의 부호화 단위에 기초한 스케일러블 비디오 복호화 방법 및 그 장치
CN112204962B (zh) 图像预测方法、装置和计算机可读存储介质
TWI797582B (zh) 一種編解碼方法、裝置及其設備
CN104956676A (zh) 层间语法预测控制
KR20220003037A (ko) 인터 예측 방법 및 장치
TWI790631B (zh) 一種編解碼方法、裝置及其設備
WO2020216294A1 (zh) 图像预测方法、装置和计算机可读存储介质
CN113709499B (zh) 一种编解码方法、装置及其设备
WO2020063598A1 (en) A video encoder, a video decoder and corresponding methods
WO2020063687A1 (zh) 视频解码方法及视频解码器
RU2809701C1 (ru) Способ, оборудование и устройство для кодирования и декодирования
CA3206439A1 (en) Block vector predictor candidate selection
CN116325735A (zh) 用于针对参考帧进行自适应重新排序的方法和装置
CN118044182A (zh) 用于视频处理的方法、设备和介质