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

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

Info

Publication number
TWI797582B
TWI797582B TW110110919A TW110110919A TWI797582B TW I797582 B TWI797582 B TW I797582B TW 110110919 A TW110110919 A TW 110110919A TW 110110919 A TW110110919 A TW 110110919A TW I797582 B TWI797582 B TW I797582B
Authority
TW
Taiwan
Prior art keywords
current block
value
prediction
weight
pixel position
Prior art date
Application number
TW110110919A
Other languages
English (en)
Other versions
TW202141980A (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 TW202141980A publication Critical patent/TW202141980A/zh
Application granted granted Critical
Publication of TWI797582B publication Critical patent/TWI797582B/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/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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/182Methods 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 a pixel
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy

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

一種編解碼方法、裝置及其設備
本申請涉及編解碼方法、裝置及其設備。
為了達到節約空間的目的,視頻圖像都是經過編碼後才傳輸的,完整的視頻編碼方法可以包括預測、變換、量化、熵編碼、濾波等過程。其中,預測編碼可以包括幀內編碼和幀間編碼。進一步的,幀間編碼是利用視頻時間域的相關性,使用鄰近已編碼圖像的像素預測當前幀圖像的當前像素,以達到有效去除視頻時域冗餘的目的。幀內編碼是指利用視頻空間域的相關性,使用當前幀圖像的已經編碼塊的像素預測當前像素,以達到有效去除視頻空域冗餘的目的。
本申請提供了一種編解碼方法、裝置及其設備。
本申請提供一種編解碼方法,在確定對當前塊啟動加權預測時,所述方法包括:針對所述當前塊,獲取所述當前塊的權重預測角度;針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;針對所述當前塊的每個像素位置,根據當前塊的第一預測模式確定所述像素位置的第一預測值,根據當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
本申請提供一種編碼裝置,所述裝置包括用於執行在確定對當前塊啟動加權預測時,針對所述當前塊獲取所述當前塊的權重預測角度的模組;用於執行針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置的模組;用於執行根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值的模組;用於執行針對所述當前塊的每個像素位置,根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值的模組;用於執行根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值的模組。
本申請提供一種解碼裝置,所述裝置包括用於執行在確定對當前塊啟動加權預測時,針對所述當前塊獲取所述當前塊的權重預測角度的模組;用於執行針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置的模組;用於執行根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值的模組;用於執行針對所述當前塊的每個像素位置,根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值的模組;用於執行根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值的模組。
本申請提供一種解碼端設備,包括處理器和機器可讀存儲介質。其中,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令。所述處理器用於執行機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,針對所述當前塊,獲取所述當前塊的權重預測角 度;針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;針對所述當前塊的每個像素位置,根據當前塊的第一預測模式確定所述像素位置的第一預測值,根據當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
本申請提供一種編碼端設備,包括處理器和機器可讀存儲介質。其中,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令。所述處理器用於執行機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,針對所述當前塊,獲取所述當前塊的權重預測角度;針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;針對所述當前塊的每個像素位置,根據當前塊的第一預測模式確定所述像素位置的第一預測值,根據當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
由以上可見,本申請實施例中,提出一種設置權重值的有效方式,能夠為當前塊的每個像素位置設置合理的目標權重值,使得當前塊的預測值更加接近原始像素,從而提高預測的準確性,提高預測性能,提高編碼性能。
1、2、3、4:像素位置
301-304、401-407、411-417、S1-S5、a1-a4:步驟
811:獲取模組
812:第一確定模組
813:第二確定模組
814:第三確定模組
815:編解碼模組
821、831:處理器
822、832:機器可讀存儲介質
a0-a6:周邊位置
A、B、C、D、F像素位置(相鄰預測塊)
G:相鄰預測塊
E:像素位置(當前塊)
圖1是視頻編碼框架的示意圖;
圖2A-圖2C是加權預測的示意圖;
圖3是本申請一種實施方式中的編解碼方法的流程圖;
圖4A是本申請一種實施方式中的編碼方法的流程圖;
圖4B-圖4E是當前塊的外部的周邊位置的示意圖;
圖4F是本申請一種實施方式中的解碼方法的流程圖;
圖5A和圖5B是本申請一種實施方式中的權重預測角度的示意圖;
圖6A是本申請一種實施方式中的確定周邊位置參考權重值的流程圖;
圖6B是本申請一種實施方式中的匯出權重陣列的流程圖;
圖6C-圖6D是本申請一種實施方式中的當前塊的不同角度分區示意圖;
圖7是本申請一種實施方式中的當前塊的相鄰塊的示意圖;
圖8A是本申請一種實施方式中的編解碼裝置的結構示意圖;
圖8B是本申請一種實施方式中的解碼端設備的硬體結構圖;
圖8C是本申請一種實施方式中的編碼端設備的硬體結構圖。
在本申請實施例使用的術語僅僅是出於描述特定實施例的目的,而非限制本申請。本申請實施例和申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其它含義。還應當理解,本文中使用的術語“和/或”是指包含一個或多個相關聯的列出專案的任何或所有可能組合。應當理解,儘管在本申請實施例可能採用術語第一、第二、第三等來描述各種資訊,但是,這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本申請實施例範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二 資訊也可以被稱為第一資訊。取決於語境,所使用的詞語“如果”可以被解釋成為“在......時”,或“當......時”,或“回應於確定”。
本申請實施例中提出一種編解碼方法、裝置及其設備,可以涉及如下概念:幀內預測(intra prediction)、幀間預測(inter prediction)與幀內塊拷貝(Intra Block Copy,IBC)預測。
其中,幀內預測利用視頻空間域的相關性,使用當前圖像的已編碼塊的像素預測當前像素,以達到去除視頻空域冗餘(spatial redundancy)的目的。幀內預測規定了多種預測模式,每種預測模式對應一種紋理方向(直流(Direct Current,DC)模式除外),例如,若圖像紋理呈現水準狀排布,則水準預測模式可以更好的預測圖像資訊。
幀間預測基於視頻時域的相關性,由於視頻序列包含有較強的時域相關性,使用鄰近已編碼圖像的像素預測當前圖像的像素,可以達到有效去除視頻時域冗餘(temporal redundancy)的目的。視頻編碼標準中幀間預測部分採用了基於塊的運動補償技術,主要原理是為當前圖像的每一個區塊在之前已編碼圖像中尋找一個最佳匹配塊,該過程稱為運動估計(Motion Estimation,ME)。
幀內塊拷貝允許同幀參考,當前塊的參考資料來自同一幀。幀內塊拷貝技術中,可以使用當前塊的塊向量獲取當前塊的預測值,示例性的,基於螢幕內容中同一幀記憶體在大量重複出現的紋理這一特性,在採用塊向量獲取當前塊的預測值時,能夠提升螢幕內容序列的壓縮效率。
預測像素(Prediction Pixel)是指從已編碼/已解碼的像素中匯出的像素值,通過原始像素與預測像素之差獲得殘差,進而進行殘差變換和量化以及係數編碼。幀間的預測像素指的是當前塊從參考幀匯出的像素值,由於像素位置離散,需要通過插值運算來獲取最終的預測像素。預測像素與原始像素越接近,兩者相減得到的殘差能量越小,編碼壓縮性能越高。
運動向量(Motion Vector,MV)。在幀間編碼中,可以使用運動向量表示當前幀圖像的當前塊與參考幀圖像的參考塊之間的相對位 移。每個劃分的塊都有相應的運動向量傳送到解碼端,如果對每個塊的運動向量進行獨立編碼和傳輸,特別是小尺寸的大量塊,則消耗很多比特。為降低用於編碼運動向量的比特數,可以利用相鄰塊之間的空間相關性,根據相鄰已編碼塊的運動向量對當前待編碼塊的運動向量進行預測,然後對預測差進行編碼,這樣可以有效降低表示運動向量的比特數。基於此,在對當前塊的運動向量進行編碼時,可以先使用相鄰已編碼塊的運動向量預測當前塊的運動向量,然後對該運動向量的預測值(Motion Vector Prediction,MVP)與運動向量的真正估值之間的差值,也就是運動向量差(Motion Vector Difference,MVD),進行編碼。
運動資訊(Motion Information)。由於運動向量表示當前塊與某個參考塊之間的位置偏移,為了準確的獲取指向塊的資訊,除了運動向量,還需要參考幀圖像的索引資訊來表示當前塊使用哪個參考幀圖像。在視頻編碼技術中,對於當前幀圖像,通常可以建立一個參考幀圖像清單,參考幀圖像索引資訊則表示當前塊採用了參考幀圖像清單中的第幾個參考幀圖像。此外,很多編碼技術還支援多個參考幀圖像清單,因此,還可以使用一個索引值來表示使用了哪一個參考幀圖像清單,這個索引值可以稱為參考方向。綜上所述,在視頻編碼技術中,可以將運動向量,參考幀圖像索引資訊,參考方向等與運動相關的資訊統稱為運動資訊。
塊向量(Block Vector,BV)。塊向量應用在幀內塊拷貝技術中,幀內塊拷貝技術使用塊向量進行運動補償,即採用塊向量獲取當前塊的預測值。與運動向量不同的是,塊向量表示當前塊與當前幀已編碼塊中的最佳匹配塊之間的相對位移。基於同一幀記憶體在大量重複紋理這一特性,在採用塊向量獲取當前塊的預測值時,能夠顯著提升壓縮效率。
幀內預測模式:在幀內編碼中,使用幀內預測模式進行運動補償,即採用幀內預測模式獲取當前塊的預測值。例如,幀內預測模式可以包括但不限於Planar模式,DC模式和33種角度模式。參見表1所示,為幀內預測模式的示例,Planar模式對應模式0,DC模式對應模式1,其餘的33種角度模式對應模式2-模式34。Planar模式適用於像素值緩慢變化的 區域,使用水準方向和垂直方向的兩個線性濾波器,將兩個方向上像素的平均值作為當前塊像素的預測值。DC模式適用於大面積平坦區域,將當前塊的周圍像素的平均值作為當前塊像素的預測值。角度模式有33種角度模式,新一代編解碼標準通用視頻編碼(Versatile Video Coding,VVC)中採用了更細分的角度模式,如65種角度模式。
Figure 110110919-A0202-12-0007-22
調色板模式(Palette Mode)。在調色板模式下,當前塊的像素值通過一個小的像素值集合來表示,即調色板。在當前塊中的像素位置的像素值接近調色板中的某個顏色時,對該像素位置編碼調色板中對應顏色的索引值。在當前塊中的像素位置的像素值與調色板中的所有顏色不相似時,需要對該像素位置編碼“逃離像素值(escape pixel)”,並直接將其量化後編入碼流。對於解碼端來說,先獲得一個調色板,例如,存儲了{顏色A,顏色B,顏色C},而後確認每個像素位置是不是逃離像素值,若不是逃離像素值,則從碼流中獲得像素位置的索引,基於該像素位置的索引從調色板中獲取顏色賦予該像素位置;否則,解析逃離像素值。
率失真優化(Rate-Distortion Optimization,RDO)原則。評價編碼效率有兩大指標:碼率和峰值信噪比(Peak Signal to Noise Ratio,PSNR),位元流越小,則壓縮率越大,PSNR越大,則重建圖像品質越好,在模式選擇時,判別公式實質上也就是對二者的綜合評價。例如,模式對應的代價(cost):J(mode)=D+λ*R,其中,D表示Distortion(失真),通常可以使用誤差平方和(Sum of the Squared Errors,SSE)指標來進行衡量,SSE是指重建圖像塊與源圖像的差值的均方和;λ是拉格朗日乘子,R就是該模式下圖像塊編碼所需的實際比特數,包括編碼模式資訊、運動資訊、殘 差等所需的比特總和。在模式選擇時,若使用RDO原則對編碼模式做比較決策,通常可以保證編碼性能最佳。
視頻編碼框架。可以使用如圖1所示的視頻編碼框架實現本申請實施例的編碼端處理流程,視頻解碼框架的示意圖與圖1類似,在此不再贅述,可以使用視頻解碼框架實現本申請實施例的解碼端處理流程。示例性的,在視頻編碼框架和視頻解碼框架中,可以包括但不限於幀內預測、運動估計/運動補償、參考圖像暫存器、環內濾波、重建、變換、量化、反變換、反量化、熵編碼器等模組。在編碼端,通過這些模組之間的配合,可以實現編碼端處理流程,在解碼端,通過這些模組之間的配合,可以實現解碼端處理流程。
示例性的,當前塊可以為矩形,而實際物體的邊緣往往不是矩形,因此,對於物體的邊緣來說,往往存在兩個不同物件(如,存在於前景的物體和背景等)。當兩個物件的運動不一致時,矩形劃分不能很好的將這兩個物件進行分割,為此,可以將當前塊劃分為兩個非矩形子塊,並對兩個非矩形子塊進行加權預測。示例性的,加權預測是利用多個預測值進行加權操作,從而獲得最終預測值,加權預測可以包括:幀間和幀內的聯合加權預測,幀間和幀間的聯合加權預測,幀內和幀內的聯合加權預測等。針對加權預測的權重值,可以為當前塊的所有像素位置設置相同的權重值,也可以為當前塊的所有像素位置設置不同的權重值。
參見圖2A所示,為幀間加權預測三角劃分模式(Triangular Partition Mode,TPM)的示意圖。
TPM預測塊由幀間預測塊1(即採用幀間預測模式得到多個像素位置的幀間預測值1)和幀間預測塊2(即採用幀間預測模式得到多個像素位置的幀間預測值2)組合得到。TPM預測塊可以劃分為兩個區域/部分,一個區域可以為幀間區域1,另一個區域可以為幀間區域2,TPM預測塊可以呈矩形分佈,TPM預測塊的兩個幀間區域可以呈非矩形分佈,且兩個幀間區域之間的分界線(如圖2B中虛線所示)可以為TPM預測塊的主對角線或者副對角線。
示例性的,針對幀間區域1的每個像素位置,主要是基於幀間預測塊1的幀間預測值確定,例如,將該像素位置的幀間預測塊1的幀間預測值與該像素位置的幀間預測塊2的幀間預測值進行加權,得到該像素位置的聯合預測值,其中,幀間預測塊1的幀間預測值的權重值較大,幀間預測塊2的幀間預測值的權重值較小(甚至為0)。針對幀間區域2的每個像素位置,主要是基於幀間預測塊2的幀間預測值確定,例如,將該像素位置的幀間預測塊1的幀間預測值與該像素位置的幀間預測塊2的幀間預測值進行加權,得到該像素位置的聯合預測值,其中,幀間預測塊2的幀間預測值的權重值較大,幀間預測塊1的幀間預測值的權重值較小(甚至為0)。最終,可以將每個像素位置的聯合預測值組成TPM預測塊。
參見圖2B所示,為幀間塊幾何分割(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的幀間預測值的權重值較小(甚至為0)。針對幀間區域2的每個像素位置,主要是基於幀間預測塊2的幀間預測值確定,例如,將該像素位置的幀間預測塊1的幀間預測值與該像素位置的幀間預測塊2的幀間預測值進行加權,得到該像素位置的聯合預測值,其中,幀間預測塊2的幀間預測值的權重值較大,幀間預測塊1的幀間預測值的權重值較小(甚至為0)。最終,可以將每個像素位置的聯合預測值組成GEO預測塊。
示例性的,GEO預測塊的權重值設置與像素位置離分割線的距離有關,參見圖2C所示,像素位置A,像素位置B和像素位置C位於分割線右下側,像素位置D,像素位置E和像素位置F位於分割線左上側。對於像素位置A,像素位置B和像素位置C來說,幀間預測塊2的權重值排序為B
Figure 110110919-A0202-12-0010-32
A
Figure 110110919-A0202-12-0010-34
C,幀間預測塊1的權重值排序為C
Figure 110110919-A0202-12-0010-35
A
Figure 110110919-A0202-12-0010-36
B。對於像素位置D,像素位置E和像素位置F來說,幀間預測塊1的權重值排序為D
Figure 110110919-A0202-12-0010-37
F
Figure 110110919-A0202-12-0010-38
E,幀間預測塊2的權重值排序為E
Figure 110110919-A0202-12-0010-39
F
Figure 110110919-A0202-12-0010-40
D。上述方式需要計算像素位置與分割線的距離,繼而確定像素位置的權重值。
針對上述各種情況,為了實現加權預測,均需要確定當前塊的每個像素位置對應的預測塊的權重值,並基於每個像素位置對應的權重值進行加權預測。但是,權重值的設置依賴於分割線,權重值設置不合理可能導致預測效果不佳、編碼性能差等問題。
鑒於此,本申請實施例提出權重值的匯出方式,可以根據當前塊外部的周邊位置的參考權重值,確定當前塊的每個像素位置的目標權重值,能夠為每個像素位置設置更為合理的目標權重值,使得當前塊的預測值更接近原始像素,從而提高預測準確性,提高預測性能,提高編碼性能。
以下結合幾個具體實施例,對本申請實施例中的編解碼方法進行詳細說明。
實施例1:參見圖3所示,為本申請實施例中提出的編解碼方法的流程示意圖,該編解碼方法可以應用於解碼端或者編碼端,該編解碼方法可以包括以下步驟301-304。
步驟301,在確定對當前塊啟動加權預測時,針對當前塊獲取該當前塊的權重預測角度。
比如說,當前塊可以包括一個子塊,即這個子塊就是當前塊本身,獲取該子塊的權重預測角度也就是獲取當前塊的權重預測角度。
示例性的,在對當前塊進行預測時,解碼端或者編碼端可以先確定是否對當前塊啟動加權預測。若對當前塊啟動加權預測,則採用本 申請實施例的編解碼方法,即獲取當前塊的權重預測角度。若不對當前塊啟動加權預測,則實現方式本申請實施例不做限制。
示例性的,在確定對當前塊啟動加權預測時,需要獲取當前塊的權重預測角度,權重預測角度表示該當前塊內部的像素位置所指向的角度方向。例如,基於某一種權重預測角度,確定當前塊內部的像素位置所指向的角度方向,該角度方向指向該當前塊外部的某個周邊位置。
步驟302,針對當前塊的每個像素位置,根據該當前塊的權重預測角度從該當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置,根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,根據該像素位置的目標權重值確定該像素位置的關聯權重值。
示例性的,由於權重預測角度表示當前塊內部的像素位置所指向的角度方向,因此,針對當前塊的每個像素位置,基於該權重預測角度確定該像素位置所指向的角度方向,繼而根據該角度方向從該當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。
針對當前塊的每個像素位置,在確定該像素位置指向的周邊匹配位置後,可以確定該周邊匹配位置關聯的參考權重值,周邊匹配位置關聯的參考權重值可以是預先配置,也可以是採用某種策略確定,對此不做限制,只要該周邊匹配位置具有關聯的參考權重值即可。
然後,根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,例如,可以將該周邊匹配位置關聯的參考權重值確定為該像素位置的目標權重值。
在得到該像素位置的目標權重值後,可以根據該像素位置的目標權重值確定該像素位置的關聯權重值。例如,每個像素位置的目標權重值與關聯權重值之和,可以為固定的預設數值,因此,關聯權重值可以為預設數值與目標權重值之差。假設預設數值為8,像素位置的目標權重值為0,則該像素位置的關聯權重值為8;若像素位置的目標權重值為1,則該像素位置的關聯權重值為7,以此類推,只要目標權重值與關聯權重值之和為 8即可。
步驟303,針對當前塊的每個像素位置,根據當前塊的第一預測模式確定該像素位置的第一預測值,根據當前塊的第二預測模式確定該像素位置的第二預測值;根據該像素位置的第一預測值,目標權重值,第二預測值和關聯權重值,確定該像素位置的加權預測值。
示例性的,假設目標權重值是第一預測模式對應的權重值,關聯權重值是第二預測模式對應的權重值,則該像素位置的加權預測值可以為:(該像素位置的第一預測值*該像素位置的目標權重值+該像素位置的第二預測值*該像素位置的關聯權重值)/固定的預設數值。
或者,假設目標權重值是第二預測模式對應的權重值,關聯權重值是第一預測模式對應的權重值,則該像素位置的加權預測值可以為:(該像素位置的第二預測值*該像素位置的目標權重值+該像素位置的第一預測值*該像素位置的關聯權重值)/固定的預設數值。
步驟304,根據每個當前塊的所有像素位置的加權預測值確定當前塊的加權預測值。
例如,針對當前塊,將該當前塊的所有像素位置的加權預測值組成這個當前塊的加權預測值。
由以上可見,本申請實施例中,提出一種設置權重值的有效方式,能夠為當前塊的每個像素位置設置合理的目標權重值,使得當前塊的預測值更加接近原始像素,從而能夠提高預測的準確性,提高預測性能,提高編碼性能。
實施例2:實施例1中,當前塊可以包括一個子塊,即子塊是當前塊本身,針對當前塊,參見圖4A所示,為編碼方法的流程示意圖,該方法可以應用於編碼端,該方法可以包括步驟401-407。
步驟401,在確定對當前塊啟動加權預測時,編碼端獲取當前塊的權重預測角度和權重預測位置。
示例性的,編碼端需要確定是否允許對當前塊啟動加權預測,如果是,則獲取當前塊的權重預測角度和權重預測位置,並執行後續步驟,如果否,則處理方式本申請不做限制。
在一種可能的實施方式中,若當前塊滿足啟動加權預測的條件,則編碼端可以確定需要對當前塊啟動加權預測。若當前塊不滿足啟動加權預測的條件,則編碼端可以確定不需要對當前塊啟動加權預測。例如,編碼端可以判斷當前塊的特徵資訊是否滿足特定條件,如果是,則可以確定對當前塊啟動加權預測;如果否,則可以確定不對當前塊啟動加權預測。
示例性的,該特徵資訊包括但不限於以下之一或者任意組合:當前塊所在當前幀的框架類型,當前塊的尺寸資訊,開關控制資訊。該開關控制資訊可以包括但不限於:序列級[序列參數集(Sequence Paramater Set,SPS)、序列頭(Sequence Header,SH)]開關控制資訊,圖像級[圖像參數集(Picture Parameter Set,PPS)、圖像頭(Picture Header,PH)]開關控制資訊,片級(Slice、Tile、Patch)開關控制資訊,或者最大編碼單元級[最大編碼單元(Largest Coding Unit,LCU)、編碼樹單元(Coding Tree Unit,CTU)]開關控制資訊。
例如,若該特徵資訊為當前塊所在當前幀的框架類型,當前塊所在當前幀的框架類型滿足特定條件,可以包括但不限於:若當前塊所在當前幀的框架類型為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。
例如,若特徵資訊為開關控制資訊,則該開關控制資訊滿足特定條件,可以包括但不限於:若開關控制資訊為允許當前塊啟用加權預測,則確定該開關控制資訊滿足特定條件。
例如,若該特徵資訊為當前塊所在當前幀的框架類型和當前塊的尺寸資訊,則該框架類型滿足特定條件,且該尺寸資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。若該特徵資訊為當前塊所在當前幀的框架類型和開關控制資訊,則該框架類型滿足特定條件,且該開關控制資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。若該特徵資訊為當前塊的尺寸資訊和開關控制資訊,則該尺寸資訊滿足特定條件,且該開關控制資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。若該特徵資訊為當前塊所在當前幀的框架類型、當前塊的尺寸資訊以及開關控制資訊,則該框架類型滿足特定條件,且尺寸資訊滿足特定條件,且開關控制資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。
在一種可能的實施方式中,在確定對當前塊啟動加權預測時,編碼端獲取當前塊的權重預測角度和權重預測位置。參見圖4B所示,基於某一種權重預測角度,示出了當前塊內部的像素位置(如像素位置1、像素位置2和像素位置3)所指向的角度方向,該角度方向指向當前塊外部 的某個周邊位置。參見圖4C所示,基於另一種權重預測角度,示出了當前塊內部的像素位置(如像素位置2、像素位置3和像素位置4)所指向的角度方向,該角度方向指向當前塊外部的某個周邊位置。
權重預測位置(也可以稱為距離參數)用於配置當前塊外部的周邊位置的參考權重值。例如,可以根據權重預測角度、當前塊的尺寸等參數確定當前塊外部的周邊位置的範圍,參見圖4B和圖4C所示。然後,將周邊位置的範圍進行N等分,N的取值可以任意設置,如4、6、8等,權重預測位置用於表示哪個周邊位置作為當前塊的權重變換的起始位置,從而根據權重變換的起始位置配置該當前塊外部的周邊位置的參考權重值。
以N=8為例進行說明,參見圖4D所示,在將所有周邊位置8等分後,可以得到7個權重預測位置。當權重預測位置為0時,表示周邊位置a0(即虛線0指向的周邊位置,在實際應用中,並不存在虛線0,虛線0只是為了方便理解給出的例示,虛線0-虛線6用於將所有周邊位置8等分)作為當前塊的權重變換的起始位置。當權重預測位置為1時,表示周邊位置a1作為當前塊的權重變換的起始位置。以此類推,當權重預測位置為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對應的權重預測位置可以選擇b0至b6共7個位置。
示例性的,上述是以將周邊位置的範圍進行N等分為例,在實際應用中,還可以採用不均勻的劃分方式,將周邊位置的範圍劃分成N份,而不是N等分,對此不做限制。
示例性的,在將所有的周邊位置8等分後,可以得到7個權重預測位置,在步驟401中,編碼端可以從7個權重預測位置中獲取一個權重預測位置,也可以從7個權重預測位置中選擇部分權重預測位置(如5個權重預測位置),再從5個權重預測位置中獲取一個權重預測位置。
示例性的,編碼端採用如下方式獲取當前塊的權重預測角度和權重預測位置:
方式一、編碼端和解碼端約定相同的權重預測角度作為當前塊的權重預測角度,並約定相同的權重預測位置作為當前塊的權重預測位置。例如,編碼端和解碼端將權重預測角度A作為當前塊的權重預測角度,編碼端和解碼端將權重預測位置a4作為當前塊的權重預測位置。
方式二、編碼端構建權重預測角度列表,權重預測角度列表可以包括至少一個權重預測角度,如權重預測角度A和權重預測角度B。編碼端構建權重預測位置列表,權重預測位置列表可以包括至少一個權重預測位置,如權重預測位置a0-a6,權重預測位置b0-b6等。編碼端依次遍歷權重預測角度列表中的每個權重預測角度,並遍歷權重預測位置列表中的每個權重預測位置,即遍歷每個權重預測角度以及每個權重預測位置的組合。針對權重預測角度和權重預測位置的每個組合,將該組合中的權重預測角度和權重預測位置作為步驟401中獲取的當前塊的權重預測角度和權重預測位置,並基於該權重預測角度和該權重預測位置執行步驟402-步驟407,得到當前塊的加權預測值。
例如,編碼端遍歷到權重預測角度A和權重預測位置a0時,基於權重預測角度A和權重預測位置a0執行步驟402-步驟407,得到當前塊的加權預測值A-1。編碼端遍歷到權重預測角度A和權重預測位置a1時,基於權重預測角度A和權重預測位置a1執行步驟402-步驟407,得 到當前塊的加權預測值A-2。編碼端遍歷到權重預測角度B和權重預測位置b0時,基於權重預測角度B和權重預測位置b0執行步驟402-步驟407,得到當前塊的加權預測值B-1,以此類推。編碼端可以基於每個組合(權重預測角度和權重預測位置的組合),得到對應的加權預測值。
編碼端基於權重預測角度和權重預測位置的組合得到所有加權預測值後,根據各加權預測值確定RDO代價值,對確定方式不做限制,編碼端可以得到每個組合的RDO代價值,並從所有RDO代價值中選擇最小RDO代價值。
然後,編碼端將最小RDO代價值對應的組合中的權重預測角度和權重預測位置分別作為當前塊的目標權重預測角度和目標權重預測位置,最後將目標權重預測角度在權重預測角度清單中的索引值和目標權重預測位置在權重預測位置清單中的索引值編入碼流。將索引值編入碼流的具體實現方法可以參見下一實施例中方式二的應用場景。
當然,上述方式只是示例,對此不做限制,只要能夠得到當前塊的權重預測角度和權重預測位置即可,例如,可以從權重預測角度列表中隨機選擇一個權重預測角度作為當前塊的權重預測角度,從權重預測位置列表中隨機選擇一個權重預測位置作為當前塊的權重預測位置。
步驟402,針對當前塊的每個像素位置,編碼端根據當前塊的權重預測角度從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。為了區分方便,本實施例中,可以將該像素位置指向的當前塊外部的周邊位置,稱為該像素位置的周邊匹配位置。
示例性的,由於權重預測角度表示當前塊內部的像素位置所指向的角度方向,因此,針對當前塊的每個像素位置,基於該權重預測角度確定該像素位置所指向的角度方向,繼而根據該角度方向從該像素位置所屬當前塊的外部的周邊位置中確定該像素位置指向的周邊匹配位置。
示例性的,當前塊外部的周邊位置可以包括:當前塊外部上側一行的周邊位置,如當前塊外部上側第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亞像素位置等,對此不做限制;或者,當前塊外部的周邊位置可以包括整像素位置和亞像素位置。
示例性的,當前塊外部的兩個周邊位置,可以對應一個整像素位置;或者,當前塊外部的四個周邊位置,可以對應一個整像素位置;或者,當前塊外部的一個周邊位置,可以對應一個整像素位置;或者,當前塊外部的一個周邊位置,可以對應兩個整像素位置。當然,上述只是幾個示例,對此不做限制,周邊位置與整像素位置的關係可以任意配置。
參見圖4B和圖4C所示,是一個周邊位置對應一個整像素位置,參見圖4E所示,是兩個周邊位置對應一個整像素位置,對於其它情況,本實施例中不再贅述。
步驟403,編碼端根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值。
示例性的,針對當前塊的每個像素位置,在確定該像素位置指向的周邊匹配位置後,編碼端可以確定該周邊匹配位置關聯的參考權重值,該周邊匹配位置關聯的參考權重值可以是預先配置,也可以是採用某種策略確定,具體確定方式可以參見後續實施例。
然後,編碼端根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,例如,可以將該周邊匹配位置關聯的參考權重值確定為該像素位置的目標權重值。
示例性的,可以為當前塊外部的周邊位置設置參考權重值,具體過程參見後續實施例,且當前塊外部的周邊位置可以是整像素位置或 者亞像素位置,比如說,可以為當前塊外部的整像素位置設置參考權重值,和/或,可以為當前塊外部的亞像素位置設置參考權重值。
在一種可能的實施方式中,根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,可以包括如下五種情況。情況一、若該周邊匹配位置是整像素位置,且該整像素位置已設置參考權重值,則根據該整像素位置的參考權重值確定該像素位置的目標權重值。情況二、若該周邊匹配位置是整像素位置,且該整像素位置未設置參考權重值,則可以根據該整像素位置的相鄰位置的參考權重值確定該像素位置的目標權重值;例如,對相鄰位置的參考權重值進行向上取整操作,得到該像素位置的目標權重值;或者,對相鄰位置的參考權重值進行向下取整操作,得到該像素位置的目標權重值;或者,根據該整像素位置的相鄰位置的參考權重值的插值確定該像素位置的目標權重值,對此不做限制。情況三、若該周邊匹配位置是亞像素位置,且該亞像素位置已設置參考權重值,根據該亞像素位置的參考權重值確定該像素位置的目標權重值。情況四、若該周邊匹配位置是亞像素位置,且該亞像素位置未設置參考權重值,則可以根據該亞像素位置的相鄰位置的參考權重值確定該像素位置的目標權重值;例如,對相鄰位置的參考權重值進行向上取整操作,得到該像素位置的目標權重值;或者,對相鄰位置的參考權重值進行向下取整操作,得到該像素位置的目標權重值;或者,根據該亞像素位置的相鄰位置的參考權重值的插值確定該像素位置的目標權重值,對此不做限制。情況五、根據周邊匹配位置關聯的多個參考權重值確定該像素位置的目標權重值,例如,無論該周邊匹配位置是整像素位置還是亞像素位置,均可以獲取周邊匹配位置的多個相鄰位置的參考權重值。若周邊匹配位置已設置參考權重值,則對周邊匹配位置的參考權重值和多個相鄰位置的參考權重值進行加權運算,得到該像素位置的目標權重值;若周邊匹配位置未設置參考權重值,則對多個相鄰位置的參考權重值進行加權運算,得到該像素位置的目標權重值。
當然,上述情況一至情況五只是幾個示例,對此目標權重值的確定方式不做限制。
步驟404,編碼端根據該像素位置的目標權重值確定該像素位置的關聯權重值。
步驟405,針對當前塊的每個像素位置,編碼端根據當前塊的第一預測模式確定該像素位置的第一預測值,並根據當前塊的第二預測模式確定該像素位置的第二預測值。
示例性的,第一預測模式可以為幀內塊拷貝預測模式,幀內預測模式,幀間預測模式,調色板模式中的任意一個;第二預測模式可以為幀內塊拷貝預測模式,幀內預測模式,幀間預測模式,調色板模式中的任意一個。例如,第一預測模式可以為幀內塊拷貝預測模式,第二預測模式可以為幀內塊拷貝預測模式;或者,第一預測模式可以為幀間預測模式,第二預測模式可以為幀間預測模式等等情況。
關於根據第一預測模式和第二預測模式確定預測值的過程,參見後續實施例。
步驟406,編碼端根據該像素位置的第一預測值,該像素位置的目標權重值,該像素位置的第二預測值和該像素位置的關聯權重值,確定該像素位置的加權預測值。
步驟407,編碼端根據當前塊的每個像素位置的加權預測值確定當前塊的加權預測值。
由以上可見,本申請實施例中,提出一種設置權重值的有效方式,能夠為當前塊的每個像素位置設置合理的目標權重值,使得當前塊的預測值更加接近原始像素,從而提高預測的準確性,提高預測性能,提高編碼性能。
實施例3:實施例1中,當前塊可以包括一個子塊,即子塊是當前塊本身,針對當前塊,參見圖4F所示,為解碼方法的流程示意圖,該方法可以應用於解碼端,該方法可以包括步驟411-417。
步驟411,在確定對當前塊啟動加權預測時,解碼端獲取當前塊的權重預測角度和權重預測位置。
示例性的,解碼端也需要確定是否允許對當前塊啟動加權預測,如果是,則獲取當前塊的權重預測角度和權重預測位置,並執行後續步驟,如果否,則處理方式本申請不做限制。
在一種可能的實施方式中,編碼端判斷當前塊的特徵資訊是否滿足特定條件,如果是,則確定對當前塊啟動加權預測。解碼端也判斷當前塊的特徵資訊是否滿足特定條件,如果是,則確定對當前塊啟動加權預測;如果否,則確定不對當前塊啟動加權預測。關於解碼端如何基於特徵資訊確定是否對當前塊啟動加權預測,可以參見步驟401,在此不再贅述。
在另一種可能的實施方式中,編碼端根據當前塊的特徵資訊確定當前塊是否支援加權預測,在當前塊支援加權預測時,還可以採用其它策略確定是否對當前塊啟動加權預測,如採用RDO原則確定是否對當前塊啟動加權預測。在確定是否對當前塊啟動加權預測後,編碼端在發送當前塊的編碼位元流時,該編碼位元流可以包括是否對當前塊啟動加權預測的語法,該語法表示是否對當前塊啟動加權預測。解碼端根據當前塊的特徵資訊確定當前塊是否支援加權預測,具體方式參見步驟401,在此不再贅述。在確定當前塊支援加權預測時,解碼端還可以從編碼位元流中解析出是否對當前塊啟動加權預測的語法,並根據該語法確定是否對當前塊啟動加權預測。
在一種可能的實施方式中,在確定對當前塊啟動加權預測時,解碼端獲取當前塊的權重預測角度和權重預測位置,權重預測角度和權重預測位置的相關解釋,參見步驟401,在此不再贅述。解碼端可以採用如下方式獲取當前塊的權重預測角度和權重預測位置:
方式一、解碼端和編碼端約定相同的權重預測角度作為當前塊的權重預測角度,並約定相同的權重預測位置作為當前塊的權重預測位置。具體內容可以參見上一實施例的方式一。
方式二、解碼端構建權重預測角度列表,該權重預測角度清單與編碼端的權重預測角度列表相同。解碼端構建權重預測位置列表,該 權重預測位置清單與編碼端的權重預測位置列表相同。具體內容可以參見上一實施例的方式二。解碼端接收到當前塊的編碼位元流後,從該編碼位元流中解析出指示資訊,根據該指示資訊從權重預測角度清單中選擇一個權重預測角度作為當前塊的權重預測角度,並根據該指示資訊從權重預測位置清單中選擇一個權重預測位置作為當前塊的權重預測位置。
以下結合幾個具體應用場景,對方式二的實現過程進行說明。
應用場景1:編碼端在向解碼端發送編碼位元流時,該編碼位元流可以包括指示資訊1,該指示資訊1用於指示當前塊的權重預測角度(即目標權重預測角度)和當前塊的權重預測位置(即目標權重預測位置)。例如,當該指示資訊1為0時,用於指示權重預測角度列表中的第一個權重預測角度,且指示權重預測位置列表中的第一個權重預測位置,以此類推,對於指示資訊1的取值,用於指示哪個權重預測角度和哪個權重預測位置,只要編碼端與解碼端進行約定即可,對此不做限制。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊1,基於該指示資訊1,解碼端可以從權重預測角度列表中選擇與該指示資訊1對應的權重預測角度,並將該權重預測角度作為當前塊的權重預測角度。基於該指示資訊1,解碼端可以從權重預測位置列表中選擇與該指示資訊1對應的權重預測位置,並將該權重預測位置作為當前塊的權重預測位置。
應用場景2:編碼端在向解碼端發送編碼位元流時,該編碼位元流可以包括指示資訊2和指示資訊3。指示資訊2用於指示當前塊的目標權重預測角度,如目標權重預測角度在權重預測角度清單中的索引值1,索引值1表示目標權重預測角度是權重預測角度列表中的第幾個權重預測角度。指示資訊3用於指示當前塊的目標權重預測位置,如目標權重預測位置在權重預測位置清單中的索引值2,索引值2表示目標權重預測位置是權重預測位置列表中的第幾個權重預測位置。
解碼端接收到編碼位元流後,從編碼位元流中解析出指示資訊2和指示資訊3,基於指示資訊2,解碼端從權重預測角度清單中選擇與該索引值1對應的權重預測角度,並將該權重預測角度作為當前塊的權重預測角度。基於該指示資訊3,解碼端從權重預測位置清單中選擇與該索引值2對應的權重預測位置,並將該權重預測位置作為當前塊的權重預測位置。
應用場景3:編碼端和解碼端可以約定優選配置組合,對此優選配置組合不做限制,可以根據實際經驗進行配置,例如,可以約定包括權重預測角度A和權重預測位置a4的優選配置組合1,包括權重預測角度B和權重預測位置b4的優選配置組合2,等。
編碼端確定當前塊的目標權重預測角度和目標權重預測位置後,確定目標權重預測角度和目標權重預測位置是否為優選配置組合。如果是,則編碼端向解碼端發送編碼位元流時,該編碼位元流可以包括指示資訊4和指示資訊5。指示資訊4用於指示當前塊是否採用優選配置組合,如指示資訊4為第一取值(如0),表示當前塊採用優選配置組合。指示資訊5用於指示當前塊採用哪個優選配置組合,如指示資訊5取值為0時,用於指示當前塊採用優選配置組合1,指示資訊5取值為1時,用於指示當前塊採用優選配置組合2。
解碼端在接收到編碼位元流後,可以從該編碼位元流中解析出指示資訊4和指示資訊5,基於該指示資訊4,解碼端可以確定當前塊是否採用優選配置組合。若指示資訊4為第一取值,則確定當前塊採用優選配置組合。在當前塊採用優選配置組合時,解碼端可以基於指示資訊5,確定當前塊採用哪個優選配置組合,如當指示資訊5取值為0時,解碼端可以確定當前塊採用優選配置組合1,即當前塊的權重預測角度為權重預測角度A,當前塊的權重預測位置為權重預測位置a4。又例如,當指示資訊5取值為1時,解碼端可以確定當前塊採用優選配置組合2,即當前塊的權重預測角度為權重預測角度B,當前塊的權重預測位置為權重預測位置b4
示例性的,若編碼端和解碼端只約定一組優選配置組合, 如包括權重預測角度A和權重預測位置a4的優選配置組合,則該編碼位元流可以只包括指示資訊4,而不包括指示資訊5,指示資訊4用於指示當前塊採用優選配置組合。解碼端從該編碼位元流中解析出指示資訊4後,若指示資訊4為第一取值,則解碼端確定當前塊採用優選配置組合,基於該優選配置組合,解碼端確定當前塊的權重預測角度為權重預測角度A,當前塊的權重預測位置為權重預測位置a4
應用場景4:編碼端和解碼端可以約定優選配置組合,編碼端確定當前塊的目標權重預測角度和目標權重預測位置後,可以確定目標權重預測角度和目標權重預測位置是否為優選配置組合。如果否,則編碼端向解碼端發送編碼位元流時,該編碼位元流包括指示資訊4和指示資訊6。指示資訊4用於指示當前塊是否採用優選配置組合,如指示資訊4為第二取值(如1),表示當前塊未採用優選配置組合。指示資訊6用於指示當前塊的目標權重預測角度和當前塊的目標權重預測位置。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊4和指示資訊6,基於該指示資訊4,解碼端確定當前塊是否採用優選配置組合。若指示資訊4為第二取值,則確定當前塊未採用優選配置組合。在當前塊未採用優選配置組合時,解碼端基於指示資訊6,可以從權重預測角度列表中選擇與該指示資訊6對應的權重預測角度,並將該權重預測角度作為當前塊的權重預測角度,基於該指示資訊6,解碼端可以從權重預測位置列表中選擇與該指示資訊6對應的權重預測位置,並將該權重預測位置作為當前塊的權重預測位置。
應用場景5:編碼端和解碼端可以約定優選配置組合,編碼端確定當前塊的目標權重預測角度和目標權重預測位置後,可以確定目標權重預測角度和目標權重預測位置是否為優選配置組合。如果否,則編碼端在向解碼端發送編碼位元流時,該編碼位元流可以包括指示資訊4,指示資訊7和指示資訊8。示例性的,指示資訊4用於指示當前塊是否採用優選配置組合,如指示資訊4為第二取值,表示當前塊未採用優選配置組合。指示資訊7用於指示當前塊的目標權重預測角度。指示資訊8用於指示當前 塊的目標權重預測位置。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊4,指示資訊7和指示資訊8,基於該指示資訊4,解碼端確定當前塊是否採用優選配置組合。若指示資訊4為第二取值,則確定當前塊未採用優選配置組合。在當前塊未採用優選配置組合時,解碼端基於該指示資訊7,從權重預測角度列表中選擇對應的權重預測角度,並將該權重預測角度作為當前塊的權重預測角度。解碼端基於該指示資訊8,從權重預測位置列表中選擇對應的權重預測位置,並將該權重預測位置作為當前塊的權重預測位置。
當然,上述方式一和方式二只是示例,對此不做限制,只要解碼端能夠得到當前塊的權重預測角度(即目標權重預測角度)和權重預測位置(即目標權重預測位置)即可。
步驟412,針對當前塊的每個像素位置,解碼端根據當前塊的權重預測角度從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。
步驟413,解碼端根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值。
步驟414,解碼端根據該像素位置的目標權重值確定該像素位置的關聯權重值。
步驟415,針對當前塊的每個像素位置,解碼端根據當前塊的第一預測模式確定該像素位置的第一預測值,並根據當前塊的第二預測模式確定該像素位置的第二預測值。
步驟416,解碼端根據該像素位置的第一預測值,該像素位置的目標權重值,該像素位置的第二預測值和該像素位置的關聯權重值,確定該像素位置的加權預測值。
步驟417,解碼端根據當前塊的每個像素位置的加權預測值確定當前塊的加權預測值。
示例性的,針對步驟412-步驟417,其實現過程可以參見步驟402-步驟407,不同之處在於,步驟412-步驟417是解碼端的處理流程,而不是編碼端的處理流程,在此不再贅述。
由以上可見,本申請實施例中,提出一種設置權重值的有效方式,能夠為當前塊的每個像素位置設置合理的目標權重值,使得當前塊的預測值更加接近原始像素,從而提高預測的準確性,提高預測性能,提高解碼性能。
在上述實施例2和實施例3中,當前塊包括一個子塊,即針對當前塊進行處理,可以將這種處理方式記為幀間角度加權預測(Angular Weighted Prediction,AWP)模式。
實施例4:在上述實施例1-實施例3中,涉及權重預測角度,該權重預測角度可以是任意角度,如180度內的任意角度,或者,360度內的任意角度,如10度,20度,30度等等,對此權重預測角度不做限制。在一種可能的實施方式中,權重預測角度可以為水準角度(如圖5B中的角度2);或者,權重預測角度可以為垂直角度(如圖5B中的角度6);或者,權重預測角度的斜率的絕對值(權重預測角度的斜率也就是權重預測角度的正切值)可以為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次方)等等。示例性的,參見圖5A所示,示出了8種權重預測角度,這些權重預測角度的斜率的絕對值為2的n次方。後續實施例中,可以對權重預測角度進行移位操作,因此,權重預測角度的斜率的絕對值為2的n次方時,在對權重預測角度進行移位操作時,可以避免出現除法操作,從而方便的進行移位實現。
示例性的,不同塊尺寸支援的權重預測角度的數量可以相同或者不同。
實施例5:在上述實施例1-實施例3中,針對每個像素位 置,可以根據該像素位置指向的周邊匹配位置關聯的參考權重值,確定該像素位置的目標權重值。在實施例2和實施例3中,周邊匹配位置是當前塊的周邊匹配位置。
可以採用如下方式獲得周邊匹配位置關聯的參考權重值:根據當前塊的周邊匹配位置的座標值與該當前塊的權重變換起始位置的座標值,確定該周邊匹配位置關聯的參考權重值。
示例性的,若周邊匹配位置是當前塊外部上側一行或下側一行的周邊位置,則周邊匹配位置的座標值是周邊匹配位置的橫坐標值,權重變換起始位置的座標值是權重變換起始位置的橫坐標值。或者,若周邊匹配位置是當前塊外部左側一列或右側一列的周邊位置,則周邊匹配位置的座標值是周邊匹配位置的縱坐標值,權重變換起始位置的座標值是權重變換起始位置的縱坐標值。
示例性的,可以將當前塊左上角的像素位置(如左上角的第一個像素位置)作為座標原點,當前塊的周邊匹配位置的座標值(如橫坐標值或縱坐標值)和當前塊的權重變換起始位置的座標值(如橫坐標值或縱坐標值),均是相對於該座標原點的座標值。當然,也可以將當前塊的其它像素位置作為座標原點,實現方式與左上角的像素位置作為座標原點的實現方式類似。
在一種可能的實施方式中,在根據周邊匹配位置的座標值與當前塊的權重變換起始位置的座標值,確定周邊匹配位置關聯的參考權重值時,可以計算周邊匹配位置的座標值與當前塊的權重變換起始位置的座標值之間的差值。若該差值小於第一閾值,則確定周邊匹配位置關聯的參考權重值為第一閾值;若該差值大於第二閾值,則確定周邊匹配位置關聯的參考權重值為第二閾值;若該差值不小於第一閾值,且該差值不大於第二閾值,則確定周邊匹配位置關聯的參考權重值為該差值。在另一種可能的實施方式中,在根據周邊匹配位置的座標值與當前塊的權重變換起始位置的座標值,確定周邊匹配位置關聯的參考權重值時,還可以根據周邊匹配位置的座標值與當前塊的權重變換起始位置的座標值之間的大小關係,直接確定 周邊匹配位置關聯的參考權重值。
例如,若周邊匹配位置的座標值小於當前塊的權重變換起始位置的座標值,則可以確定周邊匹配位置關聯的參考權重值為第一閾值;若周邊匹配位置的座標值不小於當前塊的權重變換起始位置的座標值,則可以確定周邊匹配位置關聯的參考權重值為第二閾值。
又例如,若周邊匹配位置的座標值小於當前塊的權重變換起始位置的座標值,則可以確定周邊匹配位置關聯的參考權重值為第二閾值;若周邊匹配位置的座標值不小於當前塊的權重變換起始位置的座標值,則可以確定周邊匹配位置關聯的參考權重值為第一閾值。
示例性的,第一閾值和第二閾值均可以根據經驗配置,且第一閾值小於第二閾值,對此第一閾值和第二閾值均不做限制。例如,第一閾值是預先約定的參考權重值的最小值,如0,第二閾值是預先約定的參考權重值的最大值,如8,當然,0和8也只是示例。
示例性的,參見圖4D所示,在將所有的周邊位置8等分後,可以得到7個權重預測位置,當權重預測位置為0時,表示周邊位置a0,即,權重變換起始位置的座標值為周邊位置a0的座標值。當權重預測位置為1時,表示周邊位置a1,即,權重變換起始位置的座標值為周邊位置a1的座標值,以此類推,關於權重變換起始位置的座標值的確定方式,在此不再贅述。
實施例6:在上述實施例1-實施例3中,針對每個像素位置,可以根據該像素位置指向的周邊匹配位置關聯的參考權重值,確定該像素位置的目標權重值。後續以當前塊的周邊匹配位置為例進行說明。可以採用如下方式獲得周邊匹配位置關聯的參考權重值:確定當前塊的參考權重值列表,該參考權重值列表可以包括多個參考權重值,該參考權重值列表中的多個參考權重值是預先配置或者根據權重配置參數配置的。根據目標索引從該參考權重值列表中選擇有效數量個參考權重值,並根據有效數量個參考權重值,設置當前塊外部的周邊位置的參考權重值。示例性的,該有效 數量可以是基於當前塊的尺寸和當前塊的權重預測角度確定;該目標索引可以是基於當前塊的尺寸,當前塊的權重預測角度和當前塊的權重預測位置確定。
綜上所述,由於已經為當前塊外部的周邊位置設置參考權重值,即每個周邊位置均具有參考權重值,因此,在從當前塊外部的周邊位置中確定出像素位置指向的周邊匹配位置後,可以確定該周邊匹配位置關聯的參考權重值,也就是該像素位置的目標權重值。
以下結合圖6A中示出的具體實現步驟,對上述設置周邊位置的參考權重值的過程進行說明。
步驟S1、確定當前塊的參考權重值列表。
在一種可能的實施方式中,可以將序列級參考權重值列表,確定為當前塊的參考權重值列表。比如說,編碼端和解碼端均可以配置序列級參考權重值列表A1,針對序列級的多幀圖像來說,這些圖像均使用參考權重值列表A1,即無論權重預測角度和權重預測位置是什麼,針對序列級的多幀圖像的每個當前塊的當前塊來說,共用同一個參考權重值列表A1。
在另一種可能的實施方式中,可以將預設的參考權重值列表,確定為當前塊的參考權重值列表。比如說,編碼端和解碼端均可以預設參考權重值列表,針對多個序列的所有圖像來說,均使用該參考權重值列表,即無論權重預測角度和權重預測位置是什麼,多個序列的所有圖像的每個當前塊,共用該參考權重值列表。
在另一種可能的實施方式中,可以將當前塊的權重預測角度對應的參考權重值列表,確定為該當前塊的參考權重值列表。比如說,編碼端和解碼端均配置多個參考權重值列表,若干個權重預測角度共用同一個參考權重值列表。例如,配置參考權重值清單A2和參考權重值列表A3,權重預測角度1和權重預測角度2共用同一參考權重值列表A2,權重預測角度3使用參考權重值列表A3。基於此,在得到當前塊的權重預測角度後,若當前塊的權重預測角度為權重預測角度1,則將權重預測角度1對應的參 考權重值列表A2確定為當前塊的參考權重值列表。
在另一種可能的實施方式中,可以將當前塊的權重預測角度和當前塊的權重預測位置對應的參考權重值列表,確定為當前塊的參考權重值列表。比如說,編碼端和解碼端均配置多個參考權重值列表,針對權重預測角度和權重預測位置的不同組合,可以對應相同或者不同的參考權重值列表。例如,配置參考權重值清單A4,參考權重值列表A5和參考權重值列表A6,權重預測角度1和權重預測位置0-2共用同一個參考權重值列表A4,權重預測角度1和權重預測位置3-5共用同一個參考權重值列表A5,權重預測角度2和權重預測位置0-5共用同一個參考權重值列表A6。基於此,在得到當前塊的權重預測角度和權重預測位置後,若當前塊的權重預測角度為權重預測角度1,當前塊的權重預測位置為權重預測位置4,則將權重預測角度1和權重預測位置4對應的參考權重值列表A5,確定為該當前塊的參考權重值列表。
在另一種可能的實施方式中,可以將當前塊的尺寸和當前塊的權重預測角度對應的參考權重值列表,確定為該當前塊的參考權重值列表。比如說,編碼端和解碼端均配置多個參考權重值列表,針對尺寸和權重預測角度的不同組合,可以對應相同或者不同的參考權重值列表。例如,配置參考權重值清單A7和參考權重值列表A8,權重預測角度1和尺寸1採用參考權重值列表A7,權重預測角度1和尺寸2、權重預測角度2和尺寸1均採用參考權重值列表A8。基於此,若當前塊的權重預測角度為權重預測角度1,當前塊的尺寸為尺寸1,則可以將權重預測角度1和尺寸1對應的參考權重值列表A7,確定為當前塊的參考權重值列表。
綜上所述,可以確定當前塊的參考權重值列表,該參考權重值列表可以包括多個參考權重值,該參考權重值列表中的多個參考權重值可以是預先配置或者根據權重配置參數配置。
關於當前塊的參考權重值列表,該參考權重值列表中的參考權重值的數量可以為設定的固定值,該固定值可以根據經驗任意設置,對此不做限制。或者,該參考權重值列表中的參考權重值的數量可以與當前塊 所在當前幀的尺寸(如寬度或高度)相關,如參考權重值的數量可以比當前幀的寬度大,或者與當前幀的寬度相同;參考權重值的數量可以比當前幀的高度大,或者與當前幀的高度相同,對此不做限制,參考權重值的數量可以根據實際需要進行選擇。
示例性的,針對參考權重值列表中的多個參考權重值,多個參考權重值可以是非一致的參考權重值,比如說,參考權重值列表中的多個參考權重值,可以不完全相同。
在一種可能的實施方式中,針對參考權重值列表中的多個參考權重值,可以單調遞增,或,單調遞減。或者,針對參考權重值列表中的多個參考權重值,可以先單調遞增,再單調遞減;或,可以先單調遞減,再單調遞增。或者,針對參考權重值列表中的多個參考權重值,可以先包括多個第一參考權重值,再包括多個第二參考權重值,或,先包括多個第二參考權重值,再包括多個第一參考權重值。以下結合幾個具體情況,對上述參考權重值清單的內容進行說明。
情況1:參考權重值列表中的多個參考權重值可以單調遞增或單調遞減。例如,參考權重值列表可以為[8 8 8 8...8 8 7 6 5 4 3 2 1 0 0 0 0...0 0],即參考權重值列表中的多個參考權重值單調遞減。又例如,參考權重值列表可以為[0 0 0 0...0 0 1 2 3 4 5 6 7 8 8 8 8...8 8],即參考權重值列表中的多個參考權重值單調遞增。當然,上述只是示例,對此參考權重值列表不做限制。
示例性的,參考權重值列表中的參考權重值,可以是預先配置的,或者,根據權重配置參數配置的。權重配置參數可以包括權重變換率和權重變換的起始位置。該權重變換率可以是根據經驗配置的數值,該權重變換的起始位置也可以是根據經驗配置的數值。
參考權重值列表中的多個參考權重值,可以單調遞增或單調遞減。例如,參考權重值的最大值為M1,參考權重值的最小值為M2,則針對參考權重值列表中的多個參考權重值,從最大值M1至最小值M2單 調遞減;或從最小值M2至最大值M1單調遞增。假設M1為8,M2為0,則多個參考權重值,可以從8至0單調遞減;或從0至8單調遞增。
示例性的,針對預先配置參考權重值清單中的參考權重值的過程,可以任意配置參考權重值清單中的多個參考權重值,只要多個參考權重值單調遞增或單調遞減即可。
示例性的,針對根據權重配置參數配置參考權重值清單中的參考權重值的過程,可以先獲取權重變換率和權重變換的起始位置,然後,根據權重變換率和權重變換的起始位置,確定參考權重值列表中的多個參考權重值。權重變換率和權重變換的起始位置均可以是預設數值,對此權重變換率和權重變換的起始位置不做限制,可以根據經驗進行配置。
例如,可以採用如下方式確定參考權重值列表中的參考權重值:y(x)=Clip3(最小值,最大值,a*(x-s)),x表示參考權重值清單中的位置索引,如x為1,表示參考權重值列表中的第1個位置,y(x)表示參考權重值列表中的第x個參考權重值。a表示權重變換率,s表示權重變換的起始位置。Clip3函數用於限制參考權重值位於最小值與最大值之間,最小值和最大值均可以根據經驗配置,為了方便描述,後續以最小值為0,最大值為8為例進行說明。
a表示權重變換率,可以根據經驗進行配置,如a可以是不為0的整數,如a可以是-4、-3、-2、-1、1、2、3、4等,為了方便描述,以a為1為例進行說明。若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可以比參考權重值總數量的一半略小,如參考權重值總數量的一半減去4;或者,s可以比參考權重值總數量的一半略大,如參考權重值總數量的一半加上4。當然,上述只是s取值的幾個示例,對此s的取值不做限制。
綜上所述,在根據權重配置參數配置參考權重值清單中的 參考權重值時,可以採用如下方式:ReferenceWeightsWhole[x]=Clip3(0,8,x-Z);或者,ReferenceWeightsWhole[x]=Clip3(0,8,Z-x);或者,ReferenceWeightsWhole[x]=Clip3(0,4,x-Z);或者,ReferenceWeightsWhole[x]=Clip3(0,4,Z-x)。當然,上述方式只是幾個示例,對此實現方式不做限制。
在上述公式中,x的取值範圍是0到WholeLength-1,當x為1時,ReferenceWeightsWhole[x]表示參考權重值列表中的第1個參考權重值,當x為2時,ReferenceWeightsWhole[x]表示參考權重值列表中的第2個參考權重值,以此類推。示例性的,若當前塊外部的周邊位置是上側一行或下側一行的周邊位置,則WholeLength基於當前幀的寬度確定,若當前塊外部的周邊位置是左側一列或右側一列的周邊位置,則WholeLength基於當前幀的高度確定。
在上述公式a*(x-s)中,若a為1,則a*(x-s)=x-s,即Clip3(0,8,x-Z)中的x-Z與x-s等價,Z表示權重變換的起始位置。若a為-1,則a*(x-s)=s-x,即Clip3(0,8,Z-x)中的Z-x與s-x等價,Z表示權重變換的起始位置。當a為其它數值時,實現過程類似,只要參考權重值列表中的參考權重值滿足y(x)=Clip3(最小值,最大值,a*(x-s))即可。Clip3(0,8)用於將參考權重值限制在0與8之間,Clip3(0,4)用於將參考權重值限制在0與4之間。
在上述公式中,Z表示權重變換的起始位置,可以根據經驗配置,例如,假設x的取值範圍為0至511,Z為255,將Z代入公式ReferenceWeightsWhole[x]=Clip3(0,8,x-Z),針對0至511中的任意取值,可以得到ReferenceWeightsWhole[x],即得到512個參考權重值,而512個參考權重值就構成參考權重值列表。例如,當x的取值為0至255時,參考權重值均為0,當x的取值為256時,參考權重值為1,以此類推,當x的取值為262時,參考權重值為7,當x的取值為263至511時,參考權重值均為8。綜上所述,當a為1時,Clip3(0,8,x-Z)用於使參考權重值單調遞增。同理,將Z代入其它公式中,也可以得到512個參考權重值,並基 於512個參考權重值構成參考權重值列表,例如,當a為-1時,Clip3(0,8,Z-x)用於使參考權重值單調遞減。Clip3(0,4)用於將參考權重值限制在0與4之間,對此不再贅述。
綜上所述,可以得到當前塊的參考權重值列表,且該參考權重值列表可以包括多個參考權重值,該參考權重值列表中的多個參考權重值可以單調遞增或單調遞減。在一種可能的實施方式中,針對參考權重值列表,該參考權重值列表還可以包括目的地區域的參考權重值,目的地區域的第一鄰近區域的參考權重值,目的地區域的第二鄰近區域的參考權重值。
目的地區域包括基於權重變換的起始位置確定的一個或者多個參考權重值。例如,基於權重變換的起始位置,確定一個參考權重值,將這個參考權重值作為目的地區域。比如說,權重變換的起始位置s是255,則可以將第259個參考權重值作為目的地區域,或者,將第258個參考權重值作為目的地區域,或者,將第260個參考權重值作為目的地區域,當然,上述只是幾個示例,對此不做限制。又例如,基於權重變換的起始位置,確定多個參考權重值,將這多個參考權重值作為目的地區域,比如說,將第256-262個參考權重值作為目的地區域,或者,將第258-260個參考權重值作為目的地區域,當然,上述只是幾個示例,對此不做限制。
例如,目的地區域可以包括參考權重值為4的參考權重值,例如,第259個參考權重值為4,因此,若目的地區域包括一個參考權重值,則該目的地區域可以包括第259個參考權重值,或者,若目的地區域包括多個參考權重值,則該目的地區域可以包括第256-262個參考權重值,或第258-260個參考權重值,對此不做限制,只要該目的地區域記憶體在第259個參考權重值即可。
綜上所述,目的地區域可以包括一個參考權重值;或者,目的地區域可以包括多個參考權重值。若目的地區域包括多個參考權重值,則目的地區域的多個參考權重值單調遞增或單調遞減。所述單調遞增可以是嚴格單調遞增(即目的地區域的多個參考權重值嚴格單調遞增);所述單調遞減可以是嚴格單調遞減(即目的地區域的多個參考權重值嚴格單調遞 減)。例如,目的地區域的多個參考權重值從1-7單調遞增,或者,目的地區域的多個參考權重值從7-1單調遞減。
示例性的,第一鄰近區域的參考權重值均為第一參考權重值,第二鄰近區域的參考權重值單調遞增或單調遞減。例如,第一鄰近區域的參考權重值均為0,目的地區域包括一個參考權重值,該參考權重值為1,第二鄰近區域的參考權重值從2-8單調遞增。
或者,第一鄰近區域的參考權重值均為第二參考權重值,第二鄰近區域的參考權重值均為第三參考權重值,第二參考權重值與第三參考權重值不同。例如,第一鄰近區域的參考權重值均為0,目的地區域包括多個參考權重值,多個參考權重值從1-7單調遞增,第二鄰近區域的參考權重值均為8,顯然,第一鄰近區域的參考權重值與第二鄰近區域的參考權重值不同。
或者,第一鄰近區域和第二鄰近區域的參考權重值同時單調遞增或單調遞減。例如,第一鄰近區域的參考權重值單調遞增,第二鄰近區域的參考權重值也單調遞增;又例如,第一鄰近區域的參考權重值單調遞減,第二鄰近區域的參考權重值也單調遞減。例如,第一鄰近區域的參考權重值從0-3單調遞增,目的地區域包括一個參考權重值,該參考權重值為4,第二鄰近區域的參考權重值從5-8單調遞增。
情況2:參考權重值列表中的多個參考權重值先單調遞增再單調遞減,或,多個參考權重值先單調遞減再單調遞增。例如,參考權重值列表為[8 8...8 8 7 6 5 4 3 2 1 0 0...0 0 1 2 3 4 5 6 7 8 8...8 8],即參考權重值列表中的多個參考權重值,先單調遞減再單調遞增。又例如,參考權重值列表可以為[0 0...0 0 1 2 3 4 5 6 7 8 8...8 8 7 6 5 4 3 2 1 0 0...0 0],即參考權重值列表中的多個參考權重值,先單調遞增再單調遞減。當然,上述只是示例,對此參考權重值列表不做限制。
示例性的,參考權重值列表中的參考權重值,可以是預先配置的,或者,根據權重配置參數配置的。權重配置參數可以包括權重變換 率和權重變換的起始位置。該權重變換率可以是根據經驗配置的數值,該權重變換的起始位置也可以是根據經驗配置的數值。
示例性的,假設參考權重值的最大值為M1,參考權重值的最小值為M2,則針對參考權重值列表中的多個參考權重值,從最大值M1至最小值M2單調遞減,然後從最小值M2至最大值M1單調遞增。或者,從最小值M2至最大值M1單調遞增,然後從最大值M1至最小值M2單調遞減。假設M1為8,M2為0,則多個參考權重值,可以從8至0單調遞減再從0至8單調遞增;或者,多個參考權重值,從0至8單調遞增再從8至0單調遞減。
示例性的,針對預先配置參考權重值清單中的參考權重值的過程,可以任意配置參考權重值清單中的多個參考權重值,只要多個參考權重值先單調遞增再單調遞減,或者,多個參考權重值先單調遞減再單調遞增即可,對於多個參考權重值不做限制。
示例性的,針對根據權重配置參數配置參考權重值清單中的參考權重值的過程,可以先獲取第一權重變換率,第二權重變換率,第一權重變換的起始位置,第二權重變換的起始位置,然後,根據第一權重變換率,第二權重變換率,第一權重變換的起始位置,第二權重變換的起始位置,確定參考權重值列表中的多個參考權重值。第一權重變換率,第二權重變換率,第一權重變換的起始位置,第二權重變換的起始位置均可以是預設數值,對第一權重變換率,第二權重變換率,第一權重變換的起始位置,第二權重變換的起始位置均不做限制。
例如,可以採用如下方式確定參考權重值列表中的參考權重值:當x位於[0,k]時,y(x)=Clip3(最小值,最大值,a1*(x-s1))。當x位於[k+1,t]時,y(x)=Clip3(最小值,最大值,a2*(x-s2))。x表示參考權重值清單中的位置索引,如x為1,表示參考權重值列表中的第1個位置,y(x)表示參考權重值列表中的第x個參考權重值。k是根據經驗配置的數值,對此不做限制,如可以是參考權重值列表中參考權重值總數量的一半,或者其它數值,k只要小於t即可,t是參考權重值列表中參考權重值總數量。 a1表示第一權重變換率,a2表示第二權重變換率。s1表示第一權重變換的起始位置,s2表示第二權重變換的起始位置。
Clip3用於限制參考權重值位於最小值與最大值之間,最小值和最大值均可以根據經驗進行配置,為了方便描述,後續以最小值為0,最大值為8為例進行說明。
a1和a2均表示權重變換率,可以根據經驗進行配置,如a1可以是不為0的整數,如a1可以是-4、-3、-2、-1、1、2、3、4等,a2可以是不為0的整數,如a2可以是-4、-3、-2、-1、1、2、3、4等。示例性的,當a1為正整數時,a2可以為負整數,當a1為負整數時,a2可以為正整數。例如,a1可以為-a2,即兩者的變化率是一致的,反映到參考權重值的設置上,就是參考權重值的漸變寬度一致。為了方便描述,以a1為1,a2為-1為例,則參考權重值從0到8需要經過0,1,2,3,4,5,6,7,8,然後再從8到0,經過8,7,6,5,4,3,2,1,0。或者,參考權重值從8到0,經過8,7,6,5,4,3,2,1,0,然後再從0到8需要經過0,1,2,3,4,5,6,7,8。以a1為2,a2為-2為例,則參考權重值從0到8需要經過0,2,4,6,8,然後再從8到0,經過8,6,4,2,0。或者,參考權重值從8到0,經過8,6,4,2,0,然後再從0到8需要經過0,2,4,6,8。
s1和s2均表示權重變換的起始位置,可以根據經驗進行配置,例如,s1是區間[0,k]的參考權重值的權重變換的起始位置,s1可以是k的一半;或者,s1可以比k的一半略小,如k的一半減去4;或者,s1可以比k的一半略大,如k的一半加上4。當然,上述只是幾個示例,對s1取值不做限制。s2是區間[k+1,t]的參考權重值的權重變換的起始位置,s2可以是q(即t與k+1的差值)的一半;或者,s2可以比q的一半略小,如q的一半減去4;或者,s2可以比q的一半略大,如q的一半加上4。當然,上述只是幾個示例,對s2取值不做限制。
綜上所述,可以得到當前塊的參考權重值列表,且該參考權重值列表可以包括多個參考權重值,該參考權重值列表中的多個參考權重值可以先單調遞增再單調遞減,或者,多個參考權重值可以先單調遞減再單調遞增。在一種可能的實施方式中,針對參考權重值列表,該參考權重值 列表還可以包括第一目的地區域的參考權重值,第二目的地區域的參考權重值,只與第一目的地區域相鄰的第一鄰近區域的參考權重值,與第一目的地區域和第二目的地區域均相鄰的第二鄰近區域的參考權重值,以及只與第二目的地區域相鄰的第三鄰近區域的參考權重值。
第一目的地區域包括基於第一權重變換的起始位置確定的一個或者多個參考權重值。例如,基於第一權重變換的起始位置,確定一個參考權重值,將這個參考權重值作為第一目的地區域。或,基於第一權重變換的起始位置,確定多個參考權重值,將這多個參考權重值作為第一目的地區域。若第一目的地區域包括多個參考權重值,則第一目的地區域的多個參考權重值單調遞增或單調遞減。所述單調遞增可以是第一目的地區域的多個參考權重值單調遞增;所述單調遞減可以是第一目的地區域的多個參考權重值單調遞減。
第二目的地區域包括基於第二權重變換的起始位置確定的一個或者多個參考權重值。例如,基於第二權重變換的起始位置,確定一個參考權重值,將這個參考權重值作為第二目的地區域。或,基於第二權重變換的起始位置,確定多個參考權重值,將這多個參考權重值作為第二目的地區域。若第二目的地區域包括多個參考權重值,則第二目的地區域的多個參考權重值單調遞增或單調遞減。所述單調遞增可以是嚴格單調遞增(第二目的地區域的多個參考權重值嚴格單調遞增);所述單調遞減可以是嚴格單調遞減(第二目的地區域的多個參考權重值嚴格單調遞減)。
若第一目的地區域的多個參考權重值單調遞增(如嚴格單調遞增),則第二目的地區域的多個參考權重值單調遞減(如嚴格單調遞減)。或者,若第一目的地區域的多個參考權重值單調遞減(如嚴格單調遞減),則第二目的地區域的多個參考權重值單調遞增(如嚴格單調遞增)。
示例性的,第一鄰近區域的參考權重值均為第一參考權重值;第二鄰近區域的參考權重值均為第二參考權重值;第三鄰近區域的參考權重值均為第三參考權重值。第一參考權重值與第三參考權重值可以相同,第一參考權重值與第二參考權重值可以不同,第三參考權重值與第二參考 權重值可以不同。例如,第一鄰近區域的參考權重值均為0,第二鄰近區域的參考權重值均為8,第三鄰近區域的參考權重值均為0;或者,第一鄰近區域的參考權重值均為8,第二鄰近區域的參考權重值均為0,第三鄰近區域的參考權重值均為8。
或者,第一鄰近區域的參考權重值均為第一參考權重值;第二鄰近區域的參考權重值單調遞減;第三鄰近區域的參考權重值單調遞增。例如,第一鄰近區域的參考權重值均為8,第一目的地區域包括一個參考權重值7,第二鄰近區域的參考權重值從6到0單調遞減,第二目的地區域包括一個參考權重值1,第三鄰近區域的參考權重值從2到8單調遞增。
或者,第一鄰近區域的參考權重值單調遞減;第二鄰近區域的參考權重值先單調遞減再單調遞增;第三鄰近區域的參考權重值單調遞增。例如,第一鄰近區域的參考權重值從8到5單調遞減,第一目的地區域包括一個參考權重值4,第二鄰近區域的參考權重值先從3到0單調遞減再從0到3單調遞增,第二目的地區域包括一個參考權重值4,第三鄰近區域的參考權重值從5到8單調遞增。
或者,第一鄰近區域的參考權重值單調遞減;第二鄰近區域的參考權重值單調遞增;第三鄰近區域的參考權重值均為第三參考權重值。例如,第一鄰近區域的參考權重值從8到1單調遞減,第一目的地區域包括一個參考權重值0,第二鄰近區域的參考權重值從0到7單調遞增,第二目的地區域包括一個參考權重值8,第三鄰近區域的參考權重值均為8。
或者,第一鄰近區域的參考權重值均為第一參考權重值;第二鄰近區域的參考權重值單調遞增;第三鄰近區域的參考權重值單調遞減。例如,第一鄰近區域的參考權重值均為0,第一目的地區域包括一個參考權重值1,第二鄰近區域的參考權重值從2到8單調遞增,第二目的地區域包括一個參考權重值7,第三鄰近區域的參考權重值從6到0單調遞減。
或者,第一鄰近區域的參考權重值單調遞增;第二鄰近區域的參考權重值先單調遞增再單調遞減;第三鄰近區域的參考權重值單調 遞減。例如,第一鄰近區域的參考權重值從0到3單調遞增,第一目的地區域包括一個參考權重值4,第二鄰近區域的參考權重值先從5到8單調遞增再從8到5單調遞減,第二目的地區域包括一個參考權重值4,第三鄰近區域的參考權重值從3到0單調遞減。
或者,第一鄰近區域的參考權重值單調遞增;第二鄰近區域的參考權重值單調遞減;第三鄰近區域的參考權重值均為第三參考權重值。例如,第一鄰近區域的參考權重值從0到7單調遞增,第一目的地區域包括一個參考權重值8,第二鄰近區域的參考權重值從8到1單調遞減,第二目的地區域包括一個參考權重值0,第三鄰近區域的參考權重值均為0。
當然,上述只是幾個示例,對此不做限制,只要參考權重值列表中的多個參考權重值滿足以下需求即可:從0遞增至8,再從8遞減至0;或者,從8遞減至0,再從0遞增至8。
情況3:針對參考權重值列表中的多個參考權重值,可以先包括多個第一數值,再包括多個第二參考權重值,或者,先包括多個第二參考權重值,再包括多個第一參考權重值。例如,參考權重值列表可以為[8 8...8 8 0 0...0 0],又例如,參考權重值列表可以為[0 0...0 0 8 8...8 8]。
示例性的,參考權重值列表中的參考權重值,可以是預先配置的,或者,根據權重配置參數配置的。權重配置參數可以包括權重變換的起始位置,權重變換的起始位置可以是根據經驗配置的數值。
針對預先配置參考權重值清單中的參考權重值的過程,可以任意配置參考權重值清單中的多個參考權重值,只要多個參考權重值只包括第一參考權重值和第二參考權重值即可。
針對根據權重配置參數配置參考權重值清單中的參考權重值的過程,可以先獲取權重變換的起始位置,然後,根據權重變換的起始位置確定參考權重值列表中的多個參考權重值。例如,權重變換的起始位置表示參考權重值列表中的第s個參考權重值,因此,第s個參考權重值之前(不包括第s個參考權重值)的所有參考權重值為第一參考權重值(如8), 第s個參考權重值之後(包括第s個參考權重值)的所有參考權重值為第二參考權重值(如0)。或者,第s個參考權重值之前(不包括第s個參考權重值)的所有參考權重值為第二參考權重值(如0),第s個參考權重值之後(包括第s個參考權重值)的所有參考權重值為第一參考權重值(如8)。
基於上述幾種情況,均可以得到當前塊的參考權重值列表,為了方便描述,後續實施例中,以情況1的參考權重值列表為例進行說明,其它情況的參考權重值列表的實現過程類似。
步驟S2、基於當前塊的尺寸和當前塊的權重預測角度確定有效數量。
示例性的,該有效數量是指當前塊外部存在有效數量個周邊位置,比如說,當前塊內部的像素位置只會指向所述有效數量個周邊位置,即,只需要為所述有效數量個周邊位置設置參考權重值,就可以得到當前塊內部的每個像素位置的目標權重值。
示例性的,當前塊外部的周邊位置的數量是基於當前塊的尺寸和/或當前塊的權重預測角度確定的,本實施例中,將當前塊外部的周邊位置的數量記為有效數量ValidLength。
例如,可以通過如下公式確定有效數量:ValidLength=(N+(M>>X))<<1,或者,ValidLength=(M+(N>>X))<<1。在上述公式中,ValidLength為有效數量,M為當前塊的寬,N為當前塊的高,X為當前塊的權重預測角度的斜率的絕對值的log2對數值,如0或1,<<表示左移,>>表示右移。
a<<b,在本申請中可以理解為將a以2的補數整數表示的形式左移b位,且b為正數時定義此運算。簡單來講,a<<b,可以理解為將a乘以2的b次方。a>>b,在本申請中可以理解為將a以2的補數整數表示的形式右移b位,且b為正數時定義此運算。簡單來講,a>>b,可以理解為將a除以2的b次方。
步驟S3、基於當前塊的尺寸,當前塊的權重預測角度和當 前塊的權重預測位置確定目標索引。
示例性的,該目標索引可以是指參考權重值列表中的第幾個參考權重值,比如說,當目標索引為259時,可以表示參考權重值列表中的第259個參考權重值。
例如,可以通過如下公式確定目標索引:FirstIndex=(HalfLength-4)-((ValidLength>>1)-a+Y *((ValidLength-1)>>3))。或者,FirstIndex=(HalfLength-4)-((ValidLength>>1)-b+Y *((ValidLength-1)>>3)-((M<<1)>>X))。或者,FirstIndex=(HalfLength-4)-((ValidLength>>1)-c+Y *((ValidLength-1)>>3)-((N<<1)>>X))。或者,FirstIndex=(HalfLength-4)-((ValidLength>>1)-d+Y *((ValidLength-1)>>3))。在上述公式中,FirstIndex為目標索引,ValidLength是有效數量,基於當前塊的尺寸和當前塊的權重預測角度確定,Y為當前塊的權重預測位置,HalfLength-4的取值為權重變換的起始位置,M為當前塊的寬,N為當前塊的高,X為當前塊的權重預測角度的斜率的絕對值的log2對數值,a,b,c,d為預設的常數值。
在上述過程中,ValidLength與當前塊的權重預測角度和當前塊的尺寸相關,為了方案簡化,可以固化某些參數來達到優化目的,例如,可以將當前塊的權重預測角度設置為固定參數值,ValidLength只與當前塊的尺寸相關。在其它實施例中,ValidLength也有類似的確定方式。
在上述過程中,FirstIndex與當前塊的權重預測角度、當前塊的尺寸、當前塊的權重預測位置相關,為了方案簡化,可以固化某些參數來達到優化目的,例如,可以將當前塊的權重預測角度設置為固定參數值,FirstIndex只與當前塊的尺寸和當前塊的權重預測位置相關。或者,可以將當前塊的權重預測位置設置為固定參數值,FirstIndex只與當前塊的尺寸和當前塊的權重預測角度相關。或者,可以將當前塊的權重預測角度和當前塊的權重預測位置均設置為固定參數值,這兩個固定參數值在不同當前塊之間可以相同或者不同,FirstIndex只與當前塊的尺寸相關。在其它實施例中,FirstIndex(或FirstPos)也有類似的確定方式,本文不再贅述。
步驟S4、根據目標索引從該參考權重值列表中選擇有效數量個參考權重值。
示例性的,假設目標索引為q1,有效數量為r,若目標索引作為參考權重值清單中需要被選取的第一個參考權重值,則從參考權重值列表中選取第q1至第q2個參考權重值,q2與q1之間索引的差值為r-1,從而從參考權重值列表中選擇r個參考權重值。或者,若目標索引作為參考權重值清單中需要被選取的最後一個參考權重值,則從參考權重值列表中選取第q3至第q1個參考權重值,q1與q3之間索引的差值為r-1,從而從參考權重值列表中選擇r個參考權重值。
當然,上述方式只是示例,目標索引還可以作為參考權重值清單中需要被選取的中間位置的參考權重值,實現方式類似,在此不再贅述,後續以目標索引作為參考權重值清單中需要被選取的第一個參考權重值為例進行說明,即,選取第q1至第q2個參考權重值。
步驟S5、根據有效數量個參考權重值,設置當前塊外部的周邊位置的參考權重值。
示例性的,當前塊外部的周邊位置的數量為有效數量,且從參考權重值列表中選擇有效數量個參考權重值,因此,周邊位置的數量與選擇的參考權重值的數量相同,可以將參考權重值列表中的有效數量個參考權重值,設置為當前塊外部的周邊位置的參考權重值。
例如,針對有效數量個參考權重值的第1個參考權重值,將該參考權重值設置為當前塊外部的第1個周邊位置的參考權重值,針對有效數量個參考權重值的第2個參考權重值,將該參考權重值設置為當前塊外部的第2個周邊位置的參考權重值,以此類推。
在一種可能的實施方式中,假設從參考權重值列表中選擇r個參考權重值,則從參考權重值列表中截取所述r個參考權重值,並將所述r個參考權重值設置為當前塊外部的r個周邊位置的參考權重值。或者,假設從參考權重值列表中選擇r個參考權重值,則不需要從參考權重值列表 中截取所述r個參考權重值,而是通過對參考權重值列表中的參考權重值進行移動,以使所述r個參考權重值作為當前塊外部的r個周邊位置的參考權重值。
實施例7:在上述實施例1-實施例3中,針對每個像素位置,可以根據該像素位置指向的周邊匹配位置關聯的參考權重值,確定該像素位置的目標權重值。後續以當前塊的周邊匹配位置為例進行說明。可以採用如下方式獲得周邊匹配位置關聯的參考權重值:直接為當前塊外部的每個周邊位置設置參考權重值,例如,獲取有效數量個參考權重值(不是從參考權重值清單中選擇),並根據有效數量個參考權重值設置當前塊外部的周邊位置的參考權重值。
示例性的,針對為當前塊外部的周邊位置配置的參考權重值,可以是預先配置或根據權重配置參數配置的,該權重配置參數可以包括權重變換率和權重變換的起始位置。針對每個當前塊的權重變換的起始位置,該權重變換的起始位置由如下參數的至少一個確定:當前塊的權重預測角度,當前塊的權重預測位置,當前塊的尺寸。在當前塊包括一個子塊時,當前塊外部的周邊位置的數量(即有效數量)是基於當前塊的尺寸和當前塊的權重預測角度確定的。
綜上所述,由於已經為當前塊外部的周邊位置設置參考權重值,即每個周邊位置均具有參考權重值,因此,在從當前塊外部的周邊位置中確定出像素位置指向的周邊匹配位置後,可以確定該周邊匹配位置關聯的參考權重值,也就是該像素位置的目標權重值。
以下結合具體實現對上述設置周邊位置的參考權重值的過程進行說明。
首先獲取有效數量個參考權重值。然後根據有效數量個參考權重值,設置當前塊外部的周邊位置的參考權重值,該當前塊外部的周邊位置的參考權重值可以是單調遞增或者單調遞減。
需要注意的是,上一實施例中也獲得了有效數量個參考權 重值,上一實施例的有效數量與本實施例的有效數量可以相同也可以不同。為了區分,可以將上一實施例的有效數量認為是第一有效數量,將本實施例的有效數量認為是第二有效數量。
示例性的,當前塊外部的周邊位置的數量為有效數量,需要獲取有效數量個參考權重值。例如,採用如下方式確定有效數量:ValidLength=(N+(M>>X))<<1,N和M分別是當前塊的高和寬,X為當前塊的權重預測角度的斜率的絕對值的log2對數值,如0或1。
在一種可能的實施方式中,針對有效數量個參考權重值,可以單調遞增,或,單調遞減。或者,針對有效數量個參考權重值,可以先單調遞增,再單調遞減;或,可以先單調遞減,再單調遞增。或者,針對有效數量個參考權重值,可以先包括多個第一參考權重值,再包括多個第二參考權重值,或,先包括多個第二參考權重值,再包括多個第一參考權重值。以下結合幾個具體情況,對此進行說明。
情況1:針對有效數量個參考權重值,可以單調遞增或單調遞減。
示例性的,參考權重值可以是預先配置的,或者,根據權重配置參數配置的。權重配置參數可以包括權重變換率和權重變換的起始位置,權重變換率可以是根據經驗配置的數值。權重變換的起始位置可以是根據經驗配置的數值,也可以由權重預測位置確定權重變換的起始位置,還可以由權重預測角度和權重預測位置確定權重變換的起始位置。
示例性的,針對預先配置多個參考權重值的過程,可以任意配置多個參考權重值,只要多個參考權重值單調遞增或單調遞減即可。或者,針對根據權重配置參數配置多個參考權重值的過程,可以先獲取權重變換率和權重變換的起始位置,然後,可以根據權重變換率和權重變換的起始位置,確定多個參考權重值。權重變換的起始位置是由當前塊的權重預測位置確定的;或者,權重變換的起始位置是由當前塊的權重預測角度和權重預測位置確定的。
例如,可以採用如下方式確定參考權重值:y(x)=Clip3(最小值,最大值,a*(x-s)),x表示周邊位置的索引,即x的取值範圍是1至有效數量詞,如x為1,表示第1個周邊位置,y(x)表示第x個周邊位置的參考權重值。a表示權重變換率,s表示權重變換的起始位置。
Clip3函數用於限制參考權重值位於最小值與最大值之間,最小值和最大值均可以根據經驗配置,為了方便描述,後續過程中,以最小值為0,最大值為8為例進行說明。
a表示權重變換率,可以根據經驗進行配置,如a可以是不為0的整數,如a可以是-4、-3、-2、-1、1、2、3、4等,為了方便描述,以a為1為例進行說明。若a為1,則參考權重值從0到8需要經過0,1,2,3,4,5,6,7,8,或者,參考權重值從8到0需要經過8,7,6,5,4,3,2,1,0。示例性的,當a為正整數時,a可以與周邊位置的數量正相關,即當前塊外部的周邊位置越多時,a的取值越大。當a為負整數時,a可以與周邊位置的數量負相關,即當前塊外部的周邊位置越多時,a的取值越小。當然,上述只是a的取值的示例,對此不做限制。
s表示權重變換的起始位置,s可以由權重預測位置確定,例如,s=f(權重預測位置),即s是一個與權重預測位置有關的函數。例如,在當前塊外部的周邊位置的範圍確定後,可以確定周邊位置的有效數量,並將所有周邊位置進行N等分,N的取值可以任意設置,如4、6、8等,而權重預測位置用於表示採用當前塊外部的哪個周邊位置作為當前塊的目標周邊區域,而這個權重預測位置對應的周邊位置就是權重變換的起始位置。或者,s可以由權重預測角度和權重預測位置確定,例如,s=f(權重預測角度,權重預測位置),即s是一個與權重預測角度和權重預測位置有關的函數。例如,可以根據權重預測角度確定當前塊外部的周邊位置的範圍,在當前塊外部的周邊位置的範圍確定後,可以確定周邊位置的有效數量,並將所有周邊位置進行N等分,權重預測位置用於表示採用當前塊外部的哪個周邊位置作為當前塊的目標周邊區域,而這個權重預測位置對應的周邊位置就是權重變換的起始位置。
綜上所述,在y(x)=Clip3(最小值,最大值,a*(x-s))中,權重變換率a和權重變換的起始位置s均為已知值,針對當前塊外部的每個周邊位置,可以通過該函數關係確定該周邊位置的參考權重值。例如,假設權重變換率a為2,權重變換的起始位置s為2,則該函數關係為y(x)=Clip3(最小值,最大值,2*(x-2)),針對當前塊外部的每個周邊位置x,可以得到參考權重值y。
綜上所述,可以得到當前塊的有效數量個參考權重值,這些參考權重值可以單調遞增或單調遞減。在一種可能的實施方式中,當前塊外部的周邊位置的參考權重值包括目的地區域的參考權重值,目的地區域的第一鄰近區域的參考權重值,目的地區域的第二鄰近區域的參考權重值。
關於目的地區域、目的地區域的參考權重值、第一鄰近區域的參考權重值、第二鄰近區域的參考權重值等可以參見上一實施例中情況1的說明,在此不再贅述。
情況2:針對有效數量個參考權重值,先單調遞增再單調遞減,或,先單調遞減再單調遞增。
示例性的,有效數量個參考權重值,可以是預先配置的,或者,根據權重配置參數配置的。權重配置參數包括權重變換率和權重變換的起始位置,權重變換率可以是根據經驗配置的數值。權重變換的起始位置可以是根據經驗配置的數值,也可以由權重預測位置確定權重變換的起始位置,還可以由權重預測角度和權重預測位置確定權重變換的起始位置。
示例性的,針對預先配置多個參考權重值的過程,可以任意配置多個參考權重值,只要多個參考權重值先單調遞增再單調遞減,或者,多個參考權重值先單調遞減再單調遞增即可。針對根據權重配置參數配置多個參考權重值的過程,可以獲取第一權重變換率,第二權重變換率,第一權重變換的起始位置,第二權重變換的起始位置,根據第一權重變換率,第二權重變換率,第一權重變換的起始位置,第二權重變換的起始位置,確定多個參考權重值。
例如,可以採用如下方式確定多個參考權重值:當x位於[0,k]時,y(x)=Clip3(最小值,最大值,a1*(x-s1))。當x位於[k+1,t]時,y(x)=Clip3(最小值,最大值,a2*(x-s2))。x表示周邊位置的位置索引,如x為1,表示第1個周邊位置,y(x)表示第x個周邊位置的參考權重值。k是根據經驗配置的數值,對此不做限制,如可以是有效數量的一半,或其它數值,k只要小於t即可,t是周邊位置的總數量,即上述有效數量。a1表示第一權重變換率,a2表示第二權重變換率。s1表示第一權重變換的起始位置,s2表示第二權重變換的起始位置。
Clip3用於限制參考權重值位於最小值與最大值之間,最小值和最大值均可以根據經驗進行配置,為了方便描述,在後續過程中,以最小值為0,最大值為8為例進行說明。
a1和a2均表示權重變換率,可以根據經驗進行配置,如a1可以是不為0的整數,如-4、-3、-2、-1、1、2、3、4等,a2可以是不為0的整數,如-4、-3、-2、-1、1、2、3、4等。
s1和s2均表示權重變換的起始位置,可以根據經驗進行配置,s1是區間[0,k]的參考權重值的權重變換的起始位置,s2是區間[k+1,t]的參考權重值的權重變換的起始位置。
s1可以由權重預測位置確定,例如,s1=f(權重預測位置),即s1是一個與權重預測位置有關的函數。例如,在當前塊外部的周邊位置的範圍確定後,從所有周邊位置中確定範圍[0,k],將範圍[0,k]的所有周邊位置進行N等分,N的取值可以任意設置,而權重預測位置用於表示範圍[0,k]中的哪個周邊位置作為當前塊的目標周邊區域,而這個權重預測位置對應的周邊位置就是權重變換的起始位置s1。或者,s1可以由權重預測角度和權重預測位置確定,例如,s1=f(權重預測角度,權重預測位置),即s1是一個與權重預測角度和權重預測位置有關的函數。例如,可以根據權重預測角度確定當前塊外部的周邊位置的範圍,從所有周邊位置中確定範圍[0,k],將範圍[0,k]的所有周邊位置進行N等分,權重預測位置用於表示範圍[0,k]中的哪個周邊位置作為當前塊的目標周邊區域,從而得到權重 變換的起始位置s1。
s2可以由權重預測位置確定,或者由權重預測角度和權重預測位置確定,s2的確定過程參見s1的確定過程,只是範圍發生變化,即範圍為[k+1,t],在此不再贅述。
當然,上述只是確定權重變換的起始位置s1和s2的示例,對此不做限制。
綜上所述,可以得到多個參考權重值,多個參考權重值可以先單調遞增再單調遞減,或者,多個參考權重值可以先單調遞減再單調遞增。在一種可能的實施方式中,當前塊外部的多個周邊位置的參考權重值還可以包括第一目的地區域的參考權重值,第二目的地區域的參考權重值,只與第一目的地區域相鄰的第一鄰近區域的參考權重值,與第一目的地區域和第二目的地區域均相鄰的第二鄰近區域的參考權重值,只與第二目的地區域相鄰的第三鄰近區域的參考權重值。
關於第一目的地區域、第二目的地區域、第一目的地區域的參考權重值、第二目的地區域的參考權重值、第一鄰近區域的參考權重值、第二鄰近區域的參考權重值、第三鄰近區域的參考權重值等可以參見上一實施例中情況2的說明,在此不再贅述。
情況3:針對有效數量個參考權重值,可以先包括多個第一參考權重值,再包括多個第二參考權重值,或者,先包括多個第二參考權重值,再包括多個第一參考權重值。針對有效數量個參考權重值,可以是預先配置,或者,根據權重配置參數配置,權重配置參數可以包括權重變換的起始位置。針對根據權重配置參數配置參考權重值的過程,可以獲取權重變換的起始位置,根據權重變換的起始位置確定多個參考權重值。
基於上述幾種情況,均可以得到有效數量個參考權重值,為了方便描述,後續實施例中,以情況1的參考權重值為例進行說明,其它情況的參考權重值的實現過程類似。
在得到有效數量個參考權重值之後,根據有效數量個參考 權重值,設置當前塊外部的周邊位置的參考權重值,該當前塊外部的周邊位置的參考權重值可以是單調遞增或者單調遞減。
示例性的,當前塊外部的周邊位置的數量為有效數量,且參考權重值的數量為有效數量,因此,可以將有效數量個參考權重值,設置為當前塊外部的周邊位置的參考權重值。
例如,將第1個參考權重值設置為當前塊外部的第1個周邊位置的參考權重值,將第2個參考權重值設置為當前塊外部的第2個周邊位置的參考權重值,以此類推。
實施例8:在上述實施例1-實施例7中,當前塊可以包括一個子塊,即子塊是當前塊本身,針對當前塊,記M和N是當前塊(即當前預測單元)的寬度和高度,在此情況下,如圖6B所示,角度加權預測(AWP)模式的權重陣列匯出方式,可以包括步驟a1-a4。
步驟a1,根據AwpIdx獲取stepIdx,angleIdx以及subAngleIdx等參數。
AwpIdx表示權重預測位置和權重預測角度的索引值,假設存在7種權重預測位置,8種權重預測角度,則AwpIdx的取值範圍是0-55。若權重預測位置為-3至3(表示第4個權重預測位置是中心,第4個權重預測位置為0),權重預測角度的索引為0-7,則AwpIdx的56個索引值對應的權重預測位置和權重預測角度,可以參見表2所示。
Figure 110110919-A0202-12-0051-23
stepIdx表示權重預測位置,權重預測位置的範圍是-3至3。例如,針對第1個權重預測位置,權重預測位置為-3,針對第2個權重預測位置,權重預測位置為-2,以此類推,針對第7個權重預測位置,權重預測位置為3。
angleIdx表示權重預測角度的斜率的絕對值的log2對數值(如0,或1,或較大常數),subAngleIdx表示權重預測角度所在的角度分區。參見圖5B所示,示出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的取值,參見表2所示。編碼端在向解碼端發送編碼位元流時,該編碼位元流可以攜帶AwpIdx的取值,基於此,解碼端可以得到AwpIdx的取值,並根據AwpIdx獲取stepIdx,angleIdx以及subAngleIdx。
示例性的,angleIdx以及subAngleIdx能夠唯一確定一個 權重預測角度,參見表3所示,當然,也可以採用其它方式確定權重預測角度,例如,更改分區編號等。
Figure 110110919-A0202-12-0053-24
步驟a2,根據stepIdx,angleIdx以及subAngleIdx配置參考權重清單ReferenceWeight[x],配置參考權重清單ReferenceWeight[x]也就是為當前塊外部的周邊位置設置參考權重值。根據subAngleIdx,計算ReferenceWeight[x]有如下幾種情況。
情況一、若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,x-FirstPos),在該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為1為例進行說明。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,x-FirstPos),在該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為1為例進行說明。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,x-FirstPos),在該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為1為例進行說明。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]的起始位置發生了變化。例如,參見圖6C所示,示出了角度分區2和角度分區3的示例,在1/2-pel精度時,參考權重列表ReferenceWeights[x]的起始位置為(高<<1)>>angleIdx,即公式中的偏移“-((N<<1)>>angleIdx)”。角度分區0和角度分區1的實現類似,只是公式中的偏移為“-((M<<1)>>angleIdx)”,即高度改為寬度即可。
步驟a3,根據angleIdx和參考權重列表ReferenceWeight[x]獲取像素位置的亮度權重值。根據subAngleIdx,確定像素位置的亮度權重值有如下幾種情況。
情況一、若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。
上述步驟a2和步驟a3,可聯合為一個步驟,即將步驟a2(根據stepIdx,angleIdx以及subAngleIdx配置參考權重清單ReferenceWeight[x],配置參考權重清單ReferenceWeight[x]也就是為當前塊外部的周邊位置設置參考權重值)以及步驟a3(根據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)指向的周邊匹配位置。其他情況類似。
步驟a4,根據像素位置的亮度權重值獲取該像素位置的色度權重值,而該像素位置的亮度權重值和該像素位置的色度權重值,就可以組成該像素位置的目標權重值。
例如,若色度解析度的格式為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。
步驟a4的另一種實現方式為:根據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。
在步驟a3和步驟a4中,各情況中的公式的區別在於,參見圖6D所示,示出了角度分區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-實施例3中,需要根據第一預測模式確定像素位置的第一預測值,並根據第二預測模式確定像素位置的第二預測值。
本實施例中,以第一預測模式為幀間預測模式,第二預測模式為幀間預測模式為例進行說明。
第一預測模式為幀間預測模式,第二預測模式為幀間預測模式,構建運動資訊候選清單,運動資訊候選清單包括至少兩個候選運動資訊。從運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一目標運動資訊,從運動資訊候選清單中選擇另一個候選運動資訊作為當前塊的第二目標運動資訊。針對當前塊的每個像素位置,根據第一目標運動資訊確定該像素位置的第一預測值,根據第二目標運動資訊確定該像素位置的第二預測值。
示例性的,針對編碼端和解碼端來說,均可以構建運動資訊候選清單,且編碼端的運動資訊候選清單與解碼端的運動資訊候選清單相同,對此運動資訊候選清單不做限制。
示例性的,運動資訊候選清單中的候選運動資訊均為單假設運動資訊,比如說,運動資訊候選清單中的候選運動資訊,只是單向運動資訊,而不是雙向運動資訊。由於候選運動資訊均為單假設運動資訊,因此,運動資訊候選清單可以為單向運動資訊候選清單。
示例性的,在構建運動資訊候選清單時,可以先加入空域運動資訊(如空域運動向量),後加入時域運動資訊(如時域運動向量)。和/或,在構建運動資訊候選清單時,可以先加入單向運動資訊(如單向運 動向量),後加入雙向運動資訊(如雙向運動向量),對此不做限制。
示例性的,在向運動資訊候選清單中加入雙向運動資訊時,先將雙向運動資訊拆分為兩個單向運動資訊,將拆分後的兩個單向運動資訊依次加入到運動資訊候選清單。或者,在向運動資訊候選清單中加入雙向運動資訊時,先將雙向運動資訊裁剪為一個單向運動資訊,將所述一個單向運動資訊加入到運動資訊候選清單。示例性的,將雙向運動資訊裁剪為一個單向運動資訊包括:直接取List0(參考幀列表0)中的單向運動資訊;或者,直接取List1(參考幀列表1)中的單向運動資訊;或者,根據加入順序確定取List0或者List1中的單向運動資訊。
當然,上述只是運動資訊候選清單的示例,對運動資訊候選清單中的運動資訊不做限制。
針對編碼端來說,可以基於RDO原則,從運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一目標運動資訊,從運動資訊候選清單中選擇另一個候選運動資訊作為當前塊的第二目標運動資訊,第一目標運動資訊與第二目標運動資訊不同,對此不做限制。
在一種可能的實施方式中,編碼端在向解碼端發送編碼位元流時,該編碼位元流可以攜帶指示資訊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。
實施例10:針對實施例9,需要構建運動資訊候選清單,該運動資訊候選清單可以為單向運動資訊候選清單。參見圖7所示,為當前塊與相鄰塊的示意圖,針對運動資訊候選清單的構建過程,基於F,G,C,A,B,D的順序,將單向運動資訊按照List0優先的順序依次加入到運動資訊候選清單,且在加入過程中需要進行查重處理。當然,F,G,C,A,B,D的順序只是一個示例,還可以採用其它順序,對此不做限制。
若運動資訊候選清單不滿,則繼續將剩餘的雙向運動資訊拆分為單向運動資訊,並按照List0優先的順序依次加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
最後,若運動資訊候選清單不滿,則繼續將時域運動資訊拆分為單向運動資訊,並按照List0優先的順序依次加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
List0優先的策略如下:若存在List0的運動資訊,則可以將List0的運動資訊加入到運動資訊候選清單,且在加入過程中需要進行查重處理。若存在List1的運動資訊,則可以將List1的運動資訊加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
以下結合幾個具體應用場景,對運動資訊候選清單的構建過程進行說明。
應用場景1:第一步,參見圖7所示,F,G,C,A,B,D是當前塊E的相鄰預測塊,基於F,G,C,A,B,D的順序(該順序可變,例如,按照D,B,A,C,G,F的順序,或者按照其它順序;此外,可以刪除若干相鄰預測塊,例如,只採用F、G、C、A和D等),將其運動資訊(若有)按照List0優先的順序依次加入到運動資訊候選清單,且在加入過程中需要進行查重處理,直至檢查完所有運動資訊或運動資訊候選清單的長度達到X-1。
第二步,由於運動資訊候選清單的長度小於X,因此,將匯出的時域運動資訊中指向List0的單向運動資訊(若有)加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
第三步,若運動資訊候選清單的長度小於X,則將匯出的時域運動資訊中指向List1的單向運動資訊(若有)加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
第四步,若運動資訊候選清單的長度小於X,則可以將運動資訊候選清單中最後一個單向運動資訊進行重複填充操作,直至運動資訊候選清單的長度為X。
在上述實施例中,X可以取任意的正整數,例如,X的取值可以是4,5等。
應用場景2:第一步,F,G,C,A,B,D是當前塊E的相鄰預測塊,基於F,G,C,A,B,D的順序,將其運動資訊(若有)按照List0優先的順序依次加入到運動資訊候選清單,且在加入過程中需要進行查重處理,直至檢查完所有運動資訊或運動資訊候選清單的長度達到X。
第二步,若運動資訊候選清單的長度小於X,則可以將匯出的時域運動資訊中指向List0的單向運動資訊(若有)加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
第三步,若運動資訊候選清單的長度小於X,則將匯出的時域運動資訊中指向List1的單向運動資訊(若有)加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
第四步,若運動資訊候選清單的長度小於X,則可以將運動資訊候選清單中最後一個單向運動資訊進行重複填充操作,直至運動資訊候選清單的長度為X。
在上述實施例中,X可以取任意的正整數,例如,X的取值可以是4,5等。
示例性的,應用場景1與應用場景2的區別在於,應用場景1至少預留一個位置給時域運動資訊,即第一步,運動資訊候選清單的長度最多達到X-1,而不是達到X。
應用場景3:第一步,F,G,C,A,B,D是當前塊E的相鄰預測塊,基於F,G,C,A,B,D的順序,將單向運動資訊(若有)依次加入到運動資訊候選清單,且在加入過程中需要進行查重處理,直至檢查完所有單向運動資訊或運動資訊候選清單的長度達到X-1。
第二步,若運動資訊候選清單的長度小於X-1,則將F,G,C,A,B,D的雙向運動資訊(若有)按照List0優先的順序,依次加入到運動資訊候選清單,且在加入過程中需要進行查重處理,直至檢查完所有雙向運動資訊或運動資訊候選清單的長度達到X-1。
第三步,由於運動資訊候選清單的長度小於X,因此,將 匯出的時域運動資訊中指向List0的單向運動資訊(若有)加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
第四步,若運動資訊候選清單的長度小於X,則將匯出的時域運動資訊中指向List1的單向運動資訊(若有)加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
第五步,若運動資訊候選清單的長度小於X,則可以將運動資訊候選清單中最後一個單向運動資訊進行重複填充操作,直至運動資訊候選清單的長度為X。
在上述實施例中,X可以取任意的正整數,例如,X的取值可以是4,5等。
在一種可能的實施方式中,應用場景3的另一種描述形式可以為:
第一步,F,G,C,A,B,D是當前塊E的相鄰預測塊,基於F,G,C,A,B,D的順序,確定F、G、C、A、B和D的“可用”性:如果F存在,且採用幀間預測模式,則可以確定F可用;否則,確定F不可用。如果G存在,且採用幀間預測模式,則可以確定G可用;否則,確定G不可用。如果C存在,且採用幀間預測模式,則可以確定C可用;否則,確定C不可用。如果A存在,且採用幀間預測模式,則可以確定A可用;否則,確定A不可用。如果B存在,且採用幀間預測模式,則可以確定B可用;否則,確定B不可用。如果D存在,且採用幀間預測模式,則可以確定D可用;否則,確定D不可用。
第二步,基於F,G,C,A,B,D的順序,將單向可用的運動資訊依次加入到運動資訊候選清單,且加入過程需要進行查重處理,直至運動資訊候選清單的長度為X-1或遍歷結束。
第三步,若運動資訊候選清單的長度小於X-1,則按照F,G,C,A,B,D的順序,將雙向可用的運動資訊拆分為指向List0的單向運動資訊以及指向List1的單向運動資訊,依次加入到運動資訊候選清單並 進行查重,直至運動資訊候選清單的長度為X-1或者遍歷結束。
第四步,將匯出的時域雙向運動資訊拆分為指向List0的單向運動資訊以及指向List1的單向運動資訊,先進行單向運動資訊的查重操作,若單向運動資訊不重複,則將單向運動資訊加入到運動資訊候選清單,直至運動資訊候選清單的長度為X或遍歷結束。
第五步,若運動資訊候選清單的長度小於X,則可以將運動資訊候選清單中最後一個單向運動資訊進行重複填充操作,直至運動資訊候選清單的長度為X。
在上述實施例中,X可以取任意的正整數,例如,X的取值可以是4,5等。
應用場景4:第一步,F,G,C,A,B,D是當前塊E的相鄰預測塊,基於F,G,C,A,B,D的順序,將單向運動資訊(若有)依次加入到運動資訊候選清單,且在加入過程中需要進行查重處理,直至檢查完所有單向運動資訊或運動資訊候選清單的長度達到X。
第二步,若運動資訊候選清單的長度小於X,則將F,G,C,A,B,D的雙向運動資訊(若有)按照List0優先的順序,依次加入到運動資訊候選清單,且在加入過程中需要進行查重處理,直至檢查完所有雙向運動資訊或運動資訊候選清單的長度達到X。
第三步,若運動資訊候選清單的長度小於X,因此,將匯出的時域運動資訊中指向List0的單向運動資訊(若有)加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
第四步,若運動資訊候選清單的長度小於X,則將匯出的時域運動資訊中指向List1的單向運動資訊(若有)加入到運動資訊候選清單,且在加入過程中需要進行查重處理。
第五步,若運動資訊候選清單的長度小於X,則可以將運動資訊候選清單中最後一個單向運動資訊進行重複填充操作,直至運動資訊候選清單的長度為X。
在上述實施例中,X可以取任意的正整數,例如,X的取值可以是4,5等。
示例性的,應用場景3與應用場景4的區別在於,應用場景3至少預留一個位置給時域運動資訊,即第一步,運動資訊候選清單的長度最多達到X-1,而不是達到X。
在上述應用場景1-應用場景4中,時域運動資訊的匯出方案為現有技術,例如,可以通過同位幀的同位塊匯出當前塊的時域運動資訊等,對此不做限制。
應用場景5:在應用場景1-應用場景4中,若運動資訊候選清單的長度小於X,則將運動資訊候選清單中最後一個單向運動資訊進行重複填充操作。在應用場景5中,不再對最後一個單向運動資訊進行重複填充操作,而是通過衍生來進行填充操作。例如,以運動資訊候選清單中的任意一個有效運動資訊(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正整數,即對運動向量進行伸縮操作。此外,也可以進行補0操作,即候選運動資訊可以為(0,0,ref_idx3,ListZ)。針對上述的候選運動資訊,在將候選運動資訊添加到運動資訊候選清單時,可以進行查重處理,也可以不進行查重處理。
應用場景6:在應用場景1-應用場景4中,運動資訊候選清單的長度為X。針對實施例9,需要從運動資訊候選清單中選擇兩個候選運動資訊作為當前塊的目標運動資訊,因此,運動資訊候選清單的長度可以為2到H,H可以根據經驗配置,如4、5等。在此基礎上,編碼端可以通過序列級語法設置運動資訊候選清單的長度(即AWP模式的運動資訊候選清單的長度,或EAWP(Enhanced Angular Weighted Prediction,增強角度加 權預測)模式的運動資訊候選清單的長度)。例如,可以通過awp_max_cand_num指示運動資訊候選清單的長度,假設awp_max_cand_num指示的值為a,且a位於2到H之間,則解碼端根據awp_max_cand_num確定運動資訊候選清單的長度,如長度X為a。或者,通過awp_max_cand_num_minus2指示運動資訊候選清單的長度,假設awp_max_cand_num_minus2指示的值為a,且a位於0到(H-2)之間,則解碼端根據awp_max_cand_num_minus2確定運動資訊候選清單的長度,如長度X為a+2。或者,編碼端通過幀級語法設置運動資訊候選清單的長度,如通過slice_awp_max_cand_num指示運動資訊候選清單的長度,假設slice_awp_max_cand_num指示的值為a,且a位於2到H之間,則解碼端根據slice_awp_max_cand_num確定運動資訊候選清單的長度,如長度X為a。或者,可以通過slice_awp_max_cand_num_minus2指示運動資訊候選清單的長度,假設slice_awp_max_cand_num_minus2指示的值為a,且a位於0到(H-2)之間,則解碼端根據slice_awp_max_cand_num_minus2確定運動資訊候選清單的長度,如長度X為a+2。
應用場景7:在應用場景1-應用場景4中,可以構建運動資訊候選清單,應用場景7中,將該運動資訊候選清單記為AwpUniArray,可以將AwpUniArray中的運動資訊稱為候選運動資訊。針對實施例9,可以從AwpUniArray中選擇候選運動資訊作為當前塊的目標運動資訊,繼而根據該目標運動資訊確定像素位置的預測值。
針對實施例9,需要從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個運動資訊賦值給第一目標運動資訊,若AwpCandIdx0為1,則將AwpUniArray中的第2個運動資訊賦值給第一目標運動資訊,以此類推。
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,即可以採用指向List0的單向運動資訊像素位置的預測值。
若RefIdxAwp0L1有效,則表示指向List1的單向運動資訊為有效,因此,第一目標運動資訊的預測模式為PRED_List1,即可以採用指向List1的單向運動資訊像素位置的預測值。
示例性的,AwpCandIdx1表示第二目標運動資訊的索引值,因此,可以將AwpUniArray中的第AwpCandIdx1+1個運動資訊賦值給第二 目標運動資訊。例如,若AwpCandIdx1為0,則將AwpUniArray中的第1個運動資訊賦值給第二目標運動資訊,若AwpCandIdx1為1,則將AwpUniArray中的第2個運動資訊賦值給第二目標運動資訊,以此類推。
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,即可以採用指向List0的單向運動資訊像素位置的預測值。
若RefIdxAwp1L1有效,則表示指向List1的單向運動資訊為有效,因此,第二目標運動資訊的預測模式為PRED_List1,即可以採用指向List1的單向運動資訊像素位置的預測值。
實施例11:在上述實施例1-實施例3中,需要根據第一預測模式確定像素位置的第一預測值,並根據第二預測模式確定像素位置的第二預測值。本實施例中,以第一預測模式為幀間預測模式,第二預測模式為幀間預測模式為例進行說明。
第一預測模式為幀間預測模式,第二預測模式為幀間預測模式,構建運動資訊候選清單,該運動資訊候選清單可以包括至少兩個候選 運動資訊。從該運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一原始運動資訊,並從運動資訊候選清單中選擇另一個候選運動資訊作為當前塊的第二原始運動資訊,第一原始運動資訊和第二原始運動資訊不同。然後,根據第一原始運動資訊確定當前塊的第一目標運動資訊,並根據第二原始運動資訊確定當前塊的第二目標運動資訊。針對當前塊的每個像素位置,根據第一目標運動資訊確定該像素位置的第一預測值,根據第二目標運動資訊確定該像素位置的第二預測值。
關於運動資訊候選清單的構建過程,可以參見實施例9和實施例10,在此不再贅述。關於根據第一目標運動資訊確定第一預測值,根據第二目標運動資訊確定第二預測值的過程,可以參見實施例9,在此不再贅述。與實施例9不同的是,在實施例11中,從運動資訊候選清單中選擇的候選運動資訊作為原始運動資訊,而不是作為目標運動資訊。在得到原始運動資訊後,還可以根據原始運動資訊獲取目標運動資訊,具體獲取過程參見後續實施例。
綜上所述,針對上述情況,當第一預測模式和第二預測模式中的至少一個預測模式為幀間預測模式時,可以構建運動資訊候選清單,該運動資訊候選清單中包括至少一個候選運動資訊。然後,可以從該運動資訊候選清單中選擇兩個候選運動資訊分別作為當前塊的第一原始運動資訊和第二原始運動資訊,根據第一原始運動資訊確定第一目標運動資訊,根據第二原始運動資訊確定第二目標運動資訊,然後,根據這兩個目標運動資訊確定像素位置的兩個預測值。
關於如何根據原始運動資訊確定目標運動資訊,本實施例中給出一種單向運動資訊疊加運動向量差的方案,比如說,原始運動資訊包括原始運動向量,目標運動資訊包括目標運動向量,為了根據原始運動向量確定當前塊的目標運動向量,可以獲取與原始運動向量對應的運動向量差(MVD),並根據運動向量差和原始運動向量確定目標運動向量,即運動向量差與原始運動向量的和作為目標運動向量。
實施例12:在實施例11的基礎上,約定運動向量差的方 向資訊和幅值資訊,若方向資訊表示方向為右,幅值資訊表示幅值為Ar,則運動向量差為(Ar,0);若方向資訊表示方向為下,幅值資訊表示幅值為Ad,則運動向量差為(0,-Ad);若方向資訊表示方向為左,幅值資訊表示幅值為Al,則運動向量差為(-Al,0);若方向資訊表示方向為上,幅值資訊表示幅值為Au,則運動向量差為(0,Au);若方向資訊表示方向為右上,幅值資訊表示幅值為Aru,則運動向量差為(Aru,Aru);若方向資訊表示方向為左上,幅值資訊表示幅值為Alu,則運動向量差為(-Alu,Alu);若方向資訊表示方向為左下,幅值資訊表示幅值為Ald,則運動向量差為(-Ald,-Ald);若方向資訊表示方向為右下,幅值資訊表示幅值為Ard,則運動向量差為(Ard,-Ard)。
需要說明的是,上述幅值Ar、Ad、Al、Au、Aru、Alu、Ald和Ard分別表示一個取值集合,不同方向上的幅值集合中的各個數值可以完全相同,可以部分相同,也可以完全不同。
示例性的,運動向量差可以支援上述方向資訊的部分或者全部,運動向量差支援的幅值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。綜上所述,在方向為上時,運動向量差可以為(0,1),(0,2),(0,4),(0,8),(0,12),(0, 16),關於其它方向的運動向量差,與“上”方向的實現方式類似,在此不再贅述。
又例如,運動向量差支持上,下,左,右,左上,左下,右上,右下八個方向,運動向量差支援如下3類步長配置:¼-pel,½-pel,1-pel,即幅值A的取值可以為1,2,4。綜上所述,在方向為左上時,運動向量差可以為(-1,1),(-2,2),(-4,4);在方向為右上時,運動向量差可以為(1,1),(2,2),(4,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時, 將候選運動向量1與運動向量差(0,4)的和作為候選運動向量1-1,確定候選運動向量1-1對應的RDO代價值1-1,對此確定過程不做限制。將候選運動向量1與運動向量差(0,8)的和作為候選運動向量1-2,確定候選運動向量1-2對應的RDO代價值1-2。將候選運動向量1與運動向量差(0,-4)的和作為候選運動向量1-3,確定候選運動向量1-3對應的RDO代價值1-3;將候選運動向量1與運動向量差(0,-8)的和作為候選運動向量1-4,確定候選運動向量1-4對應的RDO代價值1-4。
依次類推,針對遍歷到的每個候選運動向量,均可以採用上述方式進行處理,得到RDO代價值。在遍歷所有候選運動向量後,從所有RDO代價值中選擇最小的RDO代價值,假設RDO代價值1-1為最小,則編碼端可以在編碼位元流中編碼如下內容:候選運動向量1在運動資訊候選清單中的索引值,運動向量差(0,4)的方向資訊和幅值資訊,方向資訊用於表示運動向量差(0,4)的方向為向上,幅值資訊用於表示運動向量差(0,4)的幅值為4。例如,方向資訊的指示資訊可以為0,表示方向列表(上,下)中的第一個方向,幅值資訊的指示資訊可以為4,表示步長配置清單(1-pel,2-pel)中的第一個步長配置。當然,上述過程只是簡化後的示例,對此不做限制,只要能夠表示方向資訊和幅值資訊即可。
例如,運動向量差支持上,下,左,右四個方向,運動向量差支持¼-pel,½-pel,1-pel,2-pel,4-pel這5類步長配置時,運動向量差的方向資訊可以採用2bin定長碼(共4類值)進行編碼,2bin定長碼的4個取值分別表示上,下,左,右四個方向。運動向量差的幅值資訊可以採用截斷一元碼進行編碼,即通過截斷一元碼表示5類步長配置。
又例如,運動向量差支持上,下,左,右四個方向,運動向量差支持¼-pel,½-pel,1-pel,2-pel,3-pel,4-pel這6類步長配置時,運動向量差的方向資訊可以採用2bin定長碼(共4類值)進行編碼,運動向量差的幅值資訊可以採用截斷一元碼進行編碼。
又例如,運動向量差支持上,下,左,右,左上,左下,右上,右下八個方向,運動向量差支持¼-pel,½-pel,1-pel這3類步長配置 時,運動向量差的方向資訊可以採用3bin定長碼(共8類值)進行編碼,運動向量差的幅值資訊可以採用截斷一元碼進行編碼。
又例如,運動向量差支持上,下,左,右四個方向,運動向量差支持¼-pel,½-pel,1-pel,2-pel這4類步長配置時,運動向量差的方向資訊可以採用截斷一元碼進行編碼,運動向量差的幅值資訊可以採用2bin定長碼(共4類值)進行編碼。
當然,上述只是編碼方式的幾個示例,對此編碼方式不做限制。
綜上所述,針對編碼端來說,可以在一定區域內搜索到最佳運動向量,而後將最佳運動向量與候選運動向量的差值,作為運動向量差(MVD),將運動向量差的幅值資訊和方向資訊編入碼流,並將候選運動向量在運動資訊候選清單中的索引值編入碼流。編碼端在一定區域內搜索最佳運動向量時,需要約定運動向量差的方向以及幅值,即,在(Ar,0),(0,-Ad),(-Al,0),(0,Au),(Aru,Aru),(-Alu,Alu),(-Ald,-Ald),(Ard,-Ard)等運動向量差的限定範圍內,搜索最佳運動向量,而不是在任意運動向量差的範圍內搜索最佳運動向量。
針對解碼端來說,在接收到當前塊的編碼位元流後,可以從編碼位元流中解析出候選運動向量在運動資訊候選清單中的索引值,並從運動資訊候選清單中選擇與該索引值對應的候選運動向量,將該候選運動向量作為當前塊的原始運動向量。解碼端還可以從該編碼位元流中解析出運動向量差的方向資訊和幅值資訊,並根據該方向資訊和幅值資訊確定運動向量差。
然後,解碼端可以根據該運動向量差和該原始運動向量確定當前塊的目標運動向量,比如說,該運動向量差與該原始運動向量的和,可以作為當前塊的目標運動向量。
參見上述實施例,編碼端在對運動向量差的方向資訊進行編碼時,可以採用定長碼,截斷一元碼等方式,因此,解碼端可以採用定長 碼,截斷一元碼等方式,對運動向量差的方向資訊進行解碼,得到運動向量差的方向資訊,如上,下,左,右,左上,左下,右上,右下等。
參見上述實施例,編碼端在對運動向量差的幅值資訊進行編碼時,可以採用定長碼,截斷一元碼等方式,因此,解碼端可以採用定長碼,截斷一元碼等方式,對運動向量差的幅值資訊進行解碼,得到運動向量差的幅值資訊,如¼-pel,½-pel,1-pel,2-pel等步長配置,繼而根據¼-pel,½-pel,1-pel,2-pel等步長配置確定出運動向量差的幅值A的取值。
綜上所述,解碼端可以從編碼位元流中解析出運動向量差的方向資訊和幅值資訊,在解析出方向資訊和幅值資訊後,就可以根據方向資訊和幅值資訊確定運動向量差。
在一種可能的實施方式中,編碼端還可以在編碼位元流中編碼標誌資訊,該標誌資訊指示對原始運動向量疊加運動向量差,或者對原始運動向量不疊加運動向量差。該標誌資訊可以是EAWP模式的子模式標誌,此外,EAWP模式也可以被稱為AWP與運動向量細化(AWP with motion vector refinement,AWP-MVR)模式。解碼端在接收到當前塊的編碼位元流後,先從當前塊的編碼位元流中解析出增強角度加權預測模式的子模式標誌。若該子模式標誌指示對原始運動向量疊加運動向量差,則解碼端從當前塊的編碼位元流中解析出運動向量差的方向資訊和幅值資訊,並根據該方向資訊和該幅值資訊確定運動向量差,並根據原始運動向量和運動向量差確定當前塊的目標運動向量。若該子模式標誌指示對原始運動向量不疊加運動向量差,則解碼端不會解析運動向量差的方向資訊和幅值資訊,直接將原始運動向量作為當前塊的目標運動向量。
示例性的,當增強角度加權預測模式的子模式標誌為第一子模式取值時,指示對原始運動向量疊加運動向量差,當增強角度加權預測模式的子模式標誌為第二子模式取值時,表示對原始運動向量不疊加運動向量差。第一子模式取值和第二子模式取值可以根據經驗配置,如第一子模式取值為1,第二子模式取值為0,或者,如第一子模式取值為0,第二子模式取值為1,當然,上述只是兩個示例,對此不做限制。
在一種可能的實施方式中,針對實施例11,第一原始運動資訊包括第一原始運動向量,第一目標運動資訊包括第一目標運動向量,第二原始運動資訊包括第二原始運動向量,第二目標運動資訊包括第二目標運動向量,基於此,可以獲取與第一原始運動向量對應的第一運動向量差,並根據第一運動向量差和第一原始運動向量確定第一目標運動向量,即第一運動向量差與第一原始運動向量的和作為第一目標運動向量。可以獲取與第二原始運動向量對應的第二運動向量差,並根據第二運動向量差和第二原始運動向量確定第二目標運動向量,即第二運動向量差與第二原始運動向量的和作為第二目標運動向量。
針對編碼端來說,可以採用RDO原則確定與第一原始運動向量對應的第一運動向量差,以及,與第二原始運動向量對應的第二運動向量差,對此確定過程不再贅述。
編碼端在向解碼端發送當前塊的編碼位元流時,編碼位元流可以攜帶第一運動向量差的方向資訊和幅值資訊,以及,第二運動向量差的方向資訊和幅值資訊。
針對解碼端來說,在接收到當前塊的編碼位元流後,解碼端可以從該編碼位元流中解析出第一運動向量差的方向資訊和幅值資訊,並根據第一運動向量差的方向資訊和幅值資訊確定第一運動向量差。可以從該編碼位元流中解析出第二運動向量差的方向資訊和幅值資訊,並根據第二運動向量差的方向資訊和幅值資訊確定第二運動向量差。
然後,解碼端可以根據第一運動向量差和第一原始運動向量確定當前塊的第一目標運動向量,並根據第二運動向量差和第二原始運動向量確定當前塊的第二目標運動向量。
在一種可能的實施方式中,編碼端還可以在編碼位元流中編碼增強角度加權預測模式的第一子模式標誌和第二子模式標誌,第一子模式標誌指示對第一原始運動向量疊加運動向量差,或者對第一原始運動向量不疊加運動向量差。第二子模式標誌指示對第二原始運動向量疊加運 動向量差,或者對第二原始運動向量不疊加運動向量差。
在一種可能的實施方式中,上述第一子模式標誌也可以是編碼位元流中的第一標誌位元,上述第二子模式標誌也可以是編碼位元流中的第二標誌位元。
解碼端在接收到當前塊的編碼位元流後,可以先從當前塊的編碼位元流中解析出增強角度加權預測模式的第一子模式標誌和第二子模式標誌。若第一子模式標誌指示對第一原始運動向量疊加運動向量差,則從當前塊的編碼位元流中解析出第一運動向量差的方向資訊和幅值資訊,並根據第一運動向量差的方向資訊和幅值資訊確定第一運動向量差,繼而根據第一原始運動向量和第一運動向量差確定當前塊的第一目標運動向量。若第一子模式標誌指示對第一原始運動向量不疊加運動向量差,則不會解析第一運動向量差的方向資訊和幅值資訊,可以直接將第一原始運動向量作為當前塊的第一目標運動向量。若第二子模式標誌指示對第二原始運動向量疊加運動向量差,則從當前塊的編碼位元流中解析出第二運動向量差的方向資訊和幅值資訊,並根據第二運動向量差的方向資訊和幅值資訊確定第二運動向量差,繼而根據第二原始運動向量和第二運動向量差確定當前塊的第二目標運動向量。若第二子模式標誌指示對第二原始運動向量不疊加運動向量差,則不會解析第二運動向量差的方向資訊和幅值資訊,可以直接將第二原始運動向量作為當前塊的第二目標運動向量。
實施例13:在實施例11的基礎上,針對編碼端來說,可以在一定區域內搜索到最佳運動向量,而後將最佳運動向量與候選運動向量的差值,作為運動向量差(MVD),將運動向量差的資訊編入碼流,並將候選運動向量在運動資訊候選清單中的索引值編入碼流。
編碼端在一定區域內搜索最佳運動向量時,可以任意搜索,對此不做限制。例如,針對運動資訊候選清單中的每個候選運動向量,以該候選運動向量為中心搜索出若干個邊緣運動向量,確定每個邊緣運動向量對應的RDO代價值,並從所有RDO代價值中選擇最小的RDO代價值,將最小的RDO代價值對應的邊緣運動向量作為最佳運動向量。
假設最佳運動向量是基於候選運動向量1搜索出的,則候選運動向量1可以作為當前塊的原始運動向量,且最佳運動向量與候選運動向量1的差值,作為運動向量差。
編碼端可以在當前塊的編碼位元流中編碼如下內容:候選運動向量1在運動資訊候選清單中的索引值;以及運動向量差的資訊,運動向量差的資訊可以包括但不限於水準分量差的資訊和/或垂直分量差的信息。其中,水準分量差的資訊可以包括水準分量差絕對值和/或水準分量差符號值,垂直分量差的資訊可以包括垂直分量差絕對值和/或垂直分量差符號值。
針對解碼端來說,在接收到當前塊的編碼位元流後,可以從編碼位元流中解析出候選運動向量在運動資訊候選清單中的索引值,並從運動資訊候選清單中選擇與該索引值對應的候選運動向量,將該候選運動向量作為當前塊的原始運動向量。解碼端還可以從該當前塊的編碼位元流中解析出運動向量差的水準分量差的資訊和垂直分量差的資訊,並根據運動向量差的水準分量差的資訊(如水準分量差絕對值和/或水準分量差符號值)和垂直分量差的資訊(如垂直分量差絕對值和/或垂直分量差符號值)確定該運動向量差。
然後,解碼端可以根據該運動向量差和該原始運動向量確定當前塊的目標運動向量,比如說,解碼端可以將該運動向量差與該原始運動向量的和,作為當前塊的目標運動向量。
示例性的,解碼端可以根據水準分量差絕對值和水準分量差符號值,確定水準分量差,並根據垂直分量差絕對值和垂直分量差符號值,確定垂直分量差,而水準分量差與垂直分量差的組合,就是運動向量差,即運動向量差包括該水準分量差和該垂直分量差。
在一種可能的實施方式中,編碼端還可以在編碼位元流中編碼增強角度加權預測模式的子模式標誌,該子模式標誌指示對原始運動向量疊加運動向量差,或者對原始運動向量不疊加運動向量差。解碼端在接 收到當前塊的編碼位元流後,從編碼位元流中解析出增強角度加權預測模式的子模式標誌。若該子模式標誌指示對原始運動向量疊加運動向量差,則從編碼位元流中解析出運動向量差的水準分量差的資訊和垂直分量差的資訊,並根據水準分量差的資訊和垂直分量差的資訊確定運動向量差,根據原始運動向量和運動向量差確定當前塊的目標運動向量。若該子模式標誌指示對原始運動向量不疊加運動向量差,則不會解析運動向量差的水準分量差的資訊和垂直分量差的資訊,將原始運動向量作為當前塊的目標運動向量。
在一種可能的實施方式中,針對實施例11,第一原始運動資訊包括第一原始運動向量,第一目標運動資訊包括第一目標運動向量,第二原始運動資訊包括第二原始運動向量,第二目標運動資訊包括第二目標運動向量,基於此,可以獲取與第一原始運動向量對應的第一運動向量差,並根據第一運動向量差和第一原始運動向量確定第一目標運動向量,即第一運動向量差與第一原始運動向量的和作為第一目標運動向量。可以獲取與第二原始運動向量對應的第二運動向量差,並根據第二運動向量差和第二原始運動向量確定第二目標運動向量,即第二運動向量差與第二原始運動向量的和作為第二目標運動向量。
針對編碼端來說,當前塊的編碼位元流可以攜帶第一運動向量差的水準分量差的資訊(如水準分量差絕對值和/或水準分量差符號值)和垂直分量差的資訊(如垂直分量差絕對值和/或垂直分量差符號值),以及,第二運動向量差的水準分量差的資訊和垂直分量差的資訊。
針對解碼端來說,在接收到當前塊的編碼位元流後,可以從該編碼位元流中解析出第一運動向量差的水準分量差的資訊和垂直分量差的資訊,並根據第一運動向量差的水準分量差的資訊和垂直分量差的資訊確定第一運動向量差。可以從該編碼位元流中解析出第二運動向量差的水準分量差的資訊和垂直分量差的資訊,並根據第二運動向量差的水準分量差的資訊和垂直分量差的資訊確定第二運動向量差。根據第一運動向量差和第一原始運動向量確定第一目標運動向量,並根據第二運動向量差和 第二原始運動向量確定第二目標運動向量。
在一種可能的實施方式中,編碼端還可以在編碼位元流中編碼增強角度加權預測模式的第一子模式標誌和第二子模式標誌,第一子模式標誌可以指示對第一原始運動向量疊加運動向量差,或者對第一原始運動向量不疊加運動向量差。第二子模式標誌可以指示對第二原始運動向量疊加運動向量差,或者對第二原始運動向量不疊加運動向量差。
解碼端在接收到當前塊的編碼位元流後,可以先從當前塊的編碼位元流中解析出增強角度加權預測模式的第一子模式標誌和第二子模式標誌。若第一子模式標誌指示對第一原始運動向量疊加運動向量差,則從當前塊的編碼位元流中解析出第一運動向量差的水準分量差的資訊和垂直分量差的資訊,並根據第一運動向量差的水準分量差的資訊和垂直分量差的資訊確定第一運動向量差,繼而根據第一原始運動向量和第一運動向量差確定當前塊的第一目標運動向量。若第一子模式標誌指示對第一原始運動向量不疊加運動向量差,則不會解析第一運動向量差的水準分量差的資訊和垂直分量差的資訊,可以直接將第一原始運動向量作為當前塊的第一目標運動向量。若第二子模式標誌指示對第二原始運動向量疊加運動向量差,則從當前塊的編碼位元流中解析出第二運動向量差的水準分量差的資訊和垂直分量差的資訊,並根據第二運動向量差的水準分量差的資訊和垂直分量差的資訊確定第二運動向量差,繼而根據第二原始運動向量和第二運動向量差確定當前塊的第二目標運動向量。若第二子模式標誌指示對第二原始運動向量不疊加運動向量差,則不會解析第二運動向量差的水準分量差的資訊和垂直分量差的資訊,可以直接將第二原始運動向量作為當前塊的第二目標運動向量。
實施例14:在實施例11-13的基礎上,針對兩個運動向量差的情況,以下結合幾個具體應用場景,對單向運動資訊疊加運動向量差的相關語法進行說明:
應用場景1:參見表4所示,為相關語法的示例,SkipFlag表示當前塊是否為跳過(Skip)模式,DirectFlag表示當前塊是否為直接 (Direct)模式,AwpFlag表示當前塊是否為AWP模式。
awp_idx(角度加權預測模式索引):跳過模式或直接模式下的角度加權預測模式索引值,AwpIdx(AwpIdx的定義參見實施例8)的值,可以等於awp_idx的值。如果碼流中不存在awp_idx,則AwpIdx的值等於0。
awp_cand_idx0(角度加權預測模式的第一運動資訊索引):跳過模式或直接模式下的角度加權預測模式的第一運動資訊索引值。AwpCandIdx0(相關定義參見實施例10)的值等於awp_cand_idx0的值,如果碼流中不存在awp_cand_idx0,則AwpCandIdx0的值等於0。
awp_cand_idx1(角度加權預測模式的第二運動資訊索引):跳過模式或直接模式下的角度加權預測模式的第二運動資訊索引值。AwpCandIdx1(相關定義參見實施例10)的值等於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 110110919-A0202-12-0084-25
應用場景2:參見表5所示,為相關語法的示例,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 110110919-A0202-12-0085-26
示例性的,針對應用場景1和應用場景2,二者的區別在於:在應用場景1中,存在語法awp_mvd_flag,在應用場景2中,不存在語法awp_mvd_flag。在應用場景1中,可以通過awp_mvd_flag控制增強角度加權預測模式,即通過總開關控制增強角度加權預測模式。
示例性的,應用場景1和應用場景2,可以是針對實施例12的實現方式。
應用場景3:參見表6所示,為相關語法的示例,SkipFlag表示當前塊是否為Skip模式,DirectFlag表示當前塊是否為Direct模式,AwpFlag表示當前塊是否為AWP模式。
awp_idx(角度加權預測模式索引):跳過模式或直接模式下的角度加權預測模式索引值,AwpIdx的值可以等於awp_idx的值。如果碼流中不存在awp_idx,則AwpIdx的值等於0。
awp_cand_idx0(角度加權預測模式的第一運動資訊索引):跳過模式或直接模式下的角度加權預測模式的第一運動資訊索引值。AwpCandIdx0(相關定義參見實施例10)的值等於awp_cand_idx0的值,如果碼流中不存在awp_cand_idx0,則AwpCandIdx0的值等於0。
awp_cand_idx1(角度加權預測模式的第二運動資訊索引):跳過模式或直接模式下的角度加權預測模式的第二運動資訊索引值。AwpCandIdx1(相關定義參見實施例10)的值等於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_mv_diff_x_abs0(增強角度加權預測模式第一運動向量水準分量差絕對值)以及awp_mv_diff_y_abs0(增強角度加權預測模式第一運動向量垂直分量差絕對值)是增強角度加權預測模式的第一運動向量差值的絕對值,AwpMvDiffXAbs0等於awp_mv_diff_x_abs0的值,AwpMvDiffYAbs0等於awp_mv_diff_y_abs0的值。awp_mv_diff_x_sign0(增強角度加權預測模式第一運動向量水準分量差符號值)和awp_mv_diff_y_sign0(增強角度加權預測模式第一運動向量垂直分量差符號值)是增強角度加權預測模式的第一運動向量差值的符號位元,AwpMvDiffXSign0的值等於awp_mv_diff_x_sign0的值,AwpMvDiffYSign0的值等於awp_mv_diff_y_sign0的值。
在一種可能的實施方式中,如果碼流中不存在awp_mv_diff_x_sign0或awp_mv_diff_y_sign0,則AwpMvDiffXSign0或AwpMvDiffYSign0的值為0。如果AwpMvDiffXSign0的值為0,則AwpMvDiffX0等於AwpMvDiffXAbs0;如果AwpMvDiffXSign0的值為1,則AwpMvDiffX0可以等於-AwpMvDiffXAbs0。如果AwpMvDiffYSign0的值為0,則AwpMvDiffY0可以等於AwpMvDiffYAbs0;如果AwpMvDiffYSign0的值為1,則AwpMvDiffY0可以等於-AwpMvDiffYAbs0。AwpMvDiffX0和AwpMvDiffY0的取值範圍是-32768~32767。
示例性的,awp_mv_diff_x_abs1(增強角度加權預測模式 第二運動向量水準分量差絕對值)以及awp_mv_diff_y_abs1(增強角度加權預測模式第二運動向量垂直分量差絕對值)是增強角度加權預測模式的第二運動向量差值的絕對值,AwpMvDiffXAbs1等於awp_mv_diff_x_abs1的值,AwpMvDiffYAbs1等於awp_mv_diff_y_abs1的值。awp_mv_diff_x_sign1(增強角度加權預測模式第二運動向量水準分量差符號值)和awp_mv_diff_y_sign1(增強角度加權預測模式第二運動向量垂直分量差符號值)是增強角度加權預測模式的第二運動向量差值的符號位元,AwpMvDiffXSign1的值等於awp_mv_diff_x_sign1的值,AwpMvDiffYSign1的值等於awp_mv_diff_y_sign1的值。
在一種可能的實施方式中,如果碼流中不存在awp_mv_diff_x_sign1或awp_mv_diff_y_sign1,則AwpMvDiffXSign1或AwpMvDiffYSign1的值為0。如果AwpMvDiffXSign1的值為0,則AwpMvDiffX1等於AwpMvDiffXAbs1;如果AwpMvDiffXSign1的值為1,則AwpMvDiffX1等於-AwpMvDiffXAbs1。如果AwpMvDiffYSign1的值為0,則AwpMvDiffY1可以等於AwpMvDiffYAbs1;如果AwpMvDiffYSign1的值為1,則AwpMvDiffY1可以等於-AwpMvDiffYAbs1。AwpMvDiffX1和AwpMvDiffY1的取值範圍是-32768~32767。
Figure 110110919-A0202-12-0089-27
應用場景4:參見表7所示,為相關語法的示例,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。
示例性的,針對表7中的awp_mv_diff_x_abs0,awp_mv_diff_y_abs0,awp_mv_diff_x_sign0,awp_mv_diff_y_sign0,awp_mv_diff_x_abs1,awp_mv_diff_y_abs1,awp_mv_diff_x_sign1和awp_mv_diff_y_sign1等參數,可以參見應用場景3,在此不再贅述。
Figure 110110919-A0202-12-0091-28
示例性的,針對應用場景3和應用場景4,二者的區別在於:在應用場景3中,存在語法awp_mvd_flag,在應用場景4中,不存在語法awp_mvd_flag。在應用場景3中,可以通過awp_mvd_flag控制增強角度加權預測模式,即通過總開關控制增強角度加權預測模式。
示例性的,應用場景3和應用場景4,可以是針對實施例13的實現方式。
應用場景3/應用場景4與應用場景1/應用場景2的區別在於:在應用場景1/應用場景2中,採用若干優選MVD,在應用場景3/應用場景4中,允許在一定搜索範圍內的所有MVD,例如,可以採用應用場景 5的方式,在一定搜索範圍內搜索所有的MVD。
應用場景5:參見表8所示,為相關語法的示例,表8示出了一種MVD的編碼方式。從表8可以看出,可以採用如下步驟實現MVD的編碼,當然,這裡只是一個示例。
1、判斷|MVD_X|是否大於0,|...|為絕對值符號,MVD_X表示MVD的橫向分量。
2、判斷|MVD_Y|是否大於0,|...|為絕對值符號,MVD_Y表示MVD的縱向分量。
3、如果|MVD_X|大於0,判斷|MVD_X|是否大於1。
4、如果|MVD_Y|大於0,判斷|MVD_Y|是否大於1。
5、如果|MVD_X|大於1,編碼|MVD_X|-2。
6、如果|MVD_X|大於0,編碼MVD_X的符號位元。
7、如果|MVD_Y|大於1,編碼|MVD_Y|-2。
8、如果|MVD_Y|大於0,編碼MVD_Y的符號位元。
Figure 110110919-A0202-12-0092-29
應用場景6:可以對上述應用場景1-應用場景4進行衍生,將AWP與EAWP模式完全融合,即對跨度增加0跨度,從而不需要編碼是否使能的標誌位元。例如,運動向量差支持上,下,左,右四個方向,運動向量差支援如下6類步長配置:0-pel,¼-pel,½-pel,1-pel,2-pel,4-pel,即增加了一個步長配置0-pel。在此基礎上,表4/表5可以更新為表9,表6/表7可以更新為表10,表9和表10中相關語法的含義,可以參見表4和表6,在此不再贅述。
Figure 110110919-A0202-12-0093-30
Figure 110110919-A0202-12-0094-31
應用場景7:上述實施例中涉及AWP模式,DAWP(雙重幀間角度加權預測)模式和EAWP模式,可以通過高層語法控制這些模式的開啟或關閉。例如,通過高層語法1控制AWP模式的開啟或關閉。又例如,通過高層語法2控制DAWP模式的開啟或關閉。又例如,通過高層語法3控制EAWP模式的開啟或關閉。又例如,通過高層語法4控制AWP模式和DAWP模式同時開啟,或者,控制AWP模式和DAWP模式同時關閉。又例如,通過高層語法5控制AWP模式和EAWP模式同時開啟,或者,控制AWP模式和EAWP模式同時關閉。又例如,通過高層語法6控制DAWP模式和EAWP模式同時開啟,或者,控制DAWP模式和EAWP模式同時關閉。又例如,通過高層語法7控制AWP模式,DAWP模式和EAWP模式同時開啟,或者,控制AWP模式,DAWP模式和EAWP模式同時關閉。當然,上述只是幾個示例,對此不做限制。
在上述實施例中,高層語法可以是序列參數集級的高層語 法,或圖像參數集級的高層語法,或片頭級的高層語法,或圖像頭級的高層語法,對此高層語法不做限制。例如,基於序列參數集級的高層語法,可以通過sps_awp_enable_flag,sh_awp_enable_flag,awp_enable_flag等,控制AWP模式的開啟或關閉,或者,控制EAWP模式的開啟或關閉,或者,控制多個模式同時開啟或者同時關閉,對此不做限制。
示例性的,在上述實施例中,可以根據原始運動資訊獲取目標運動資訊,在得到目標運動資訊後,還可以存儲當前塊的目標運動資訊,對此存儲方式不做限制。
示例性的,上述實施例1-實施例14可以單獨實現,也可以組合實現。例如,實施例1和實施例2可以組合實現;實施例1和實施例3可以組合實現;實施例1,實施例2和實施例3可以組合實現。實施例4可以和實施例1-3中的一個或者多個組合實現;實施例5(或實施例6,或實施例7)可以與實施例2(或實施例3)組合實現。實施例8可以與實施例2(或實施例3)組合實現。實施例9至實施例14的任意一個或者多個實施例,可以與實施例1-實施例8的任意一個或者多個實施例,組合實現等。當然,上述只是幾個示例,對此實施例之間的組合方式不做限制。
基於與上述方法同樣的申請構思,本申請實施例還提出一種編碼裝置和一種解碼裝置,這兩種裝置都可以參考圖8A所示所述裝置包括:獲取模組811、第一確定模組812、第二確定模組813、第三確定模組814以及編解碼模組815。其中,對於編碼裝置來說,編解碼模組815實現編碼功能,對於解碼裝置來說,編解碼模組815實現解碼功能。
在一些例子中,編碼裝置包括用於執行在確定對當前塊啟動加權預測時,針對所述當前塊獲取所述當前塊的權重預測角度的模組(如獲取模組811);用於執行針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置的模組(如第一確定模組812);用於執行根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值的模組(如第二確定模 組813);用於執行針對所述當前塊的每個像素位置,根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值的模組(如第三確定模組814);用於執行根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值的模組(如編解碼模組815)。
在一些例子中,解碼裝置包括用於執行在確定對當前塊啟動加權預測時,針對所述當前塊獲取所述當前塊的權重預測角度的模組(如獲取模組811);用於執行針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置的模組(如第一確定模組812);用於執行根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值的模組(如第二確定模組813);用於執行針對所述當前塊的每個像素位置,根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值的模組(如第三確定模組814);用於執行根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值的模組(如編解碼模組815)。
所述第二確定模組813還用於:為所述當前塊外部的周邊位置配置參考權重值;其中,所述當前塊外部的周邊位置的參考權重值是預先配置或者根據權重配置參數配置的;所述權重配置參數包括權重變換率和權重變換的起始位置。示例性的,所述權重變換的起始位置由如下參數中的至少一個確定:所述當前塊的權重預測角度,所述當前塊的權重預測位置,所述當前塊的尺寸。
示例性的,所述當前塊外部的周邊位置的數量是基於所述當前塊的尺寸和/或所述當前塊的權重預測角度確定的;所述當前塊外部的周邊位置的參考權重值單調遞增或者單調遞減。
示例性的,所述當前塊外部的周邊位置的參考權重值包括目的地區域的參考權重值,目的地區域的第一鄰近區域的參考權重值,目的地區域的第二鄰近區域的參考權重值;其中:或者,第一鄰近區域的參考權重值均為第二參考權重值,第二鄰近區域的參考權重值均為第三參考權重值,所述第二參考權重值與所述第三參考權重值不同。
所述目的地區域包括一個參考權重值或至少兩個參考權重值;若所述目的地區域包括至少兩個參考權重值,則所述目的地區域的至少兩個參考權重值單調遞增。
示例性的,所述當前塊的權重預測角度為水準角度;或者,所述當前塊的權重預測角度為垂直角度;或者,所述當前塊的權重預測角度的斜率的絕對值為2的n次方,n為整數。
示例性的,所述當前塊外部的周邊位置包括整像素位置,或者,亞像素位置,或者,整像素位置和亞像素位置;所述當前塊外部的周邊位置包括:所述當前塊外部上側一行的周邊位置,或者,所述當前塊外部左側一列的周邊位置。
第二確定模組813具體用於:若所述周邊匹配位置是整像素位置,且所述整像素位置已設置參考權重值,則根據所述整像素位置的參考權重值確定所述像素位置的目標權重值;或者,若所述周邊匹配位置是亞像素位置,且所述亞像素位置已設置參考權重值,則根據所述亞像素位置的參考權重值確定所述像素位置的目標權重值。
示例性的,所述第一預測模式為幀間預測模式,所述第二預測模式為幀間預測模式。
示例性的,所述第三確定模組814還用於構建運動資訊候選清單,所述運動資訊候選清單中包括至少兩個候選運動資訊;從所述運動資訊候選清單中選擇一個候選運動資訊作為所述當前塊的第一目標運動資訊;根據所述第一目標運動資訊確定所述像素位置的所述第一預測值;從所述運動資訊候選清單中選擇另一個候選運動資訊作為所述當前塊的第二目 標運動資訊;根據所述第二目標運動資訊確定所述像素位置的所述第二預測值。
所述第三確定模組814還用於:構建運動資訊候選清單,所述運動資訊候選清單中包括至少兩個候選運動資訊;從所述運動資訊候選清單中選擇一個候選運動資訊作為所述當前塊的第一原始運動資訊;根據所述第一原始運動資訊確定所述當前塊的第一目標運動資訊;根據所述第一目標運動資訊確定所述像素位置的所述第一預測值;從所述運動資訊候選清單中選擇另一個候選運動資訊作為所述當前塊的第二原始運動資訊;根據所述第二原始運動資訊確定所述當前塊的第二目標運動資訊;根據所述第二目標運動資訊確定所述像素位置的所述第二預測值。
所述第一原始運動資訊包括第一原始運動向量,所述第一目標運動資訊包括第一目標運動向量,所述第二原始運動資訊包括第二原始運動向量,所述第二目標運動資訊包括第二目標運動向量,所述第三確定模組814還用於:獲取與所述第一原始運動向量對應的運動向量差;根據所述對應的運動向量差和所述第一原始運動向量,確定所述第一目標運動向量;獲取與所述第二原始運動向量對應的運動向量差;根據所述對應的運動向量差和所述第二原始運動向量,確定所述第二目標運動向量。若所述裝置應用於解碼端,則所述第三確定模組814還用於:從所述當前塊的編碼位元流中解析出所述對應的運動向量差的方向資訊和幅值資訊;根據所述對應的運動向量差的方向資訊和幅值資訊確定所述對應運動向量差。
示例性的,若方向資訊表示方向為右,幅值資訊表示幅值為Ar,則運動向量差為(Ar,0);若方向資訊表示方向為下,幅值資訊表示幅值為Ad,則運動向量差為(0,-Ad);若方向資訊表示方向為左,幅值資訊表示幅值為Al,則運動向量差為(-Al,0);若方向資訊表示方向為上,幅值資訊表示幅值為Au,則運動向量差為(0,Au)。
所述第三確定模組814還用於:從所述當前塊的編碼位元流中解析出標誌資訊;若所述標誌資訊指示對所述原始運動向量疊加運動向量差,則從所述當前塊的編碼位元流中解析出所述對應的運動向量差的 方向資訊和幅值資訊。
基於與上述方法同樣的申請構思,本申請實施例提供一種解碼端設備(也可以稱為視頻解碼器),從硬體層面而言,其硬體架構示意圖具體可以參見圖8B所示。所述解碼端設備包括處理器821和機器可讀存儲介質822,其中:所述機器可讀存儲介質822存儲有能夠被所述處理器821執行的機器可執行指令;所述處理器821用於執行機器可執行指令,以實現本申請上述示例公開的方法。例如,所述處理器821用於執行機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,針對所述當前塊,獲取所述當前塊的權重預測角度;針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;針對所述當前塊的每個像素位置,根據當前塊的第一預測模式確定所述像素位置的第一預測值,根據當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
基於與上述方法同樣的申請構思,本申請實施例提供一種編碼端設備(也可以稱為視訊轉碼器),從硬體層面而言,其硬體架構示意圖具體可以參見圖8C所示。所述編碼端設備包括處理器831和機器可讀存儲介質832,其中:所述機器可讀存儲介質832存儲有能夠被所述處理器831執行的機器可執行指令;所述處理器831用於執行機器可執行指令,以實現本申請上述示例公開的方法。例如,所述處理器831用於執行機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,針對所述當前塊,獲取所述當前塊的權重預測角度;針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所 述像素位置的關聯權重值;針對所述當前塊的每個像素位置,根據當前塊的第一預測模式確定所述像素位置的第一預測值,根據當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
基於與上述方法同樣的申請構思,本申請實施例中還提供一種攝像機設備,該攝像機設備可以包括上述任一實施例中的編解碼裝置,且該攝像機設備可以採用上述流程進行處理。
基於與上述方法同樣的申請構思,本申請實施例還提供一種機器可讀存儲介質,所述機器可讀存儲介質上存儲有若干電腦指令,所述電腦指令被處理器執行時,能夠實現本申請上述示例公開的方法,如上述各實施例中的編解碼方法。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂窩電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本申請實施例可提供為方法、系統、或電腦程式產品。本申請可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。本申請實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用存儲介質(包括但不限於磁碟記憶體、光碟唯讀記憶體(Compact Disc Read-Only Memory,CD-ROM)、光學記憶體等)上實施的電腦程式產品的形式。
以上所述僅為本申請的實施例而已,並不用於限制本申請。 對於本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的申請專利範圍之內。
301~304:步驟

Claims (20)

  1. 一種編解碼方法,其特徵在於,在確定對當前塊啟動加權預測時,所述方法包括:針對所述當前塊,獲取所述當前塊的權重預測角度;針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值;根據所述像素位置的目標權重值確定所述像素位置的關聯權重值,其中,所述像素位置的關聯權重值與所述像素位置的目標權重值之和為預設數值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值;根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
  2. 如請求項1所述的方法,其特徵在於,所述根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值之前,所述方法還包括:為所述當前塊外部的周邊位置配置參考權重值;其中,所述當前塊外部的周邊位置的參考權重值是預先配置或者根據權重配置參數配置的;所述權重配置參數包括權重變換率和權重變換的起始位置。
  3. 如請求項2所述的方法,其特徵在於,所述權重變換的起始位置由如下參數中的至少一個確定:所述當前塊的權重預測角度,所述當前塊的權重預測位置,所述當前塊的尺寸。
  4. 如請求項2所述的方法,其特徵在於,所述當前塊外部的周邊位置 的數量是基於所述當前塊的尺寸和/或所述當前塊的權重預測角度確定的;所述當前塊外部的周邊位置的參考權重值單調遞增或者單調遞減。
  5. 如請求項2所述的方法,其特徵在於,所述當前塊外部的周邊位置的參考權重值包括目的地區域的參考權重值,目的地區域的第一鄰近區域的參考權重值,目的地區域的第二鄰近區域的參考權重值;其中:第一鄰近區域的參考權重值均為第二參考權重值,第二鄰近區域的參考權重值均為第三參考權重值,所述第二參考權重值與所述第三參考權重值不同。
  6. 如請求項5所述的方法,其特徵在於,所述目的地區域包括一個參考權重值或至少兩個參考權重值;若所述目的地區域包括至少兩個參考權重值,則所述目的地區域的至少兩個參考權重值單調遞增。
  7. 如請求項1-6任一所述的方法,其特徵在於,所述當前塊的權重預測角度為水準角度;或者,所述當前塊的權重預測角度為垂直角度;或者,所述當前塊的權重預測角度的斜率的絕對值為2的n次方,n為整數。
  8. 如請求項1-6任一所述的方法,其特徵在於,所述當前塊外部的周邊位置包括整像素位置,或者,亞像素位置,或者,整像素位置和亞像素位置;所述當前塊外部的周邊位置包括:所述當前塊外部上側一行的周邊位置,或者,所述當前塊外部左側一列的周邊位置。
  9. 如請求項1-6任一所述的方法,其特徵在於,所述根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,包括:若所述周邊匹配位置是整像素位置,且所述整像素位置已設置參考權重值,則根據所述整像素位置的參考權重值確定所述像素位置的目標權重值;或者,若所述周邊匹配位置是亞像素位置,且所述亞像素位置已設置參考權重值,則根據所述亞像素位置的參考權重值確定所述像素位置的目標權重 值。
  10. 如請求項1-6任一所述的方法,其特徵在於,所述第一預測模式為幀間預測模式,所述第二預測模式為幀間預測模式。
  11. 如請求項10所述的方法,其特徵在於,所述方法還包括:構建運動資訊候選清單,所述運動資訊候選清單中包括至少兩個候選運動資訊;所述根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,包括:從所述運動資訊候選清單中選擇一個候選運動資訊作為所述當前塊的第一目標運動資訊;根據所述第一目標運動資訊確定所述像素位置的所述第一預測值;所述根據所述當前塊的第二預測模式確定所述像素位置的第二預測值,包括:從所述運動資訊候選清單中選擇另一個候選運動資訊作為所述當前塊的第二目標運動資訊;根據所述第二目標運動資訊確定所述像素位置的所述第二預測值。
  12. 如請求項10所述的方法,其特徵在於,所述方法還包括:構建運動資訊候選清單,所述運動資訊候選清單中包括至少兩個候選運動資訊;所述根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,包括:從所述運動資訊候選清單中選擇一個候選運動資訊作為所述當前塊的第一原始運動資訊;根據所述第一原始運動資訊確定所述當前塊的第一目標運動資訊;根據所述第一目標運動資訊確定所述像素位置的所述第一預測值;所述根據所述當前塊的第二預測模式確定所述像素位置的第二預測值,包括:從所述運動資訊候選清單中選擇另一個候選運動資訊作為所述當前塊的第二原始運動資訊; 根據所述第二原始運動資訊確定所述當前塊的第二目標運動資訊;根據所述第二目標運動資訊確定所述像素位置的所述第二預測值。
  13. 如請求項12所述的方法,其特徵在於,所述第一原始運動資訊包括第一原始運動向量,所述第一目標運動資訊包括第一目標運動向量,所述根據所述第一原始運動資訊確定所述當前塊的第一目標運動資訊,包括:獲取與所述第一原始運動向量對應的運動向量差;根據所述對應的運動向量差和所述第一原始運動向量,確定所述第一目標運動向量;所述第二原始運動資訊包括第二原始運動向量,所述第二目標運動資訊包括第二目標運動向量,所述根據所述第二原始運動資訊確定所述當前塊的第二目標運動資訊,包括:獲取與所述第二原始運動向量對應的運動向量差;根據所述對應的運動向量差和所述第二原始運動向量,確定所述第二目標運動向量。
  14. 如請求項13所述的方法,其特徵在於,若所述方法應用於解碼端,則:所述獲取與所述第一原始運動向量對應的運動向量差,包括:從所述當前塊的編碼位元流中解析出所述對應的運動向量差的方向資訊和幅值資訊;根據所述對應的運動向量差的方向資訊和幅值資訊確定所述對應運動向量差;所述獲取與所述第二原始運動向量對應的運動向量差,包括:從所述當前塊的編碼位元流中解析出所述對應的運動向量差的方向資訊和幅值資訊;根據所述運動向量差的方向資訊和幅值資訊確定所述對應運動向量差。
  15. 如請求項14所述的方法,其特徵在於,若方向資訊表示方向為右,幅值資訊表示幅值為Ar,則運動向量差為 (Ar,0);若方向資訊表示方向為下,幅值資訊表示幅值為Ad,則運動向量差為(0,-Ad);若方向資訊表示方向為左,幅值資訊表示幅值為Al,則運動向量差為(-Al,0);若方向資訊表示方向為上,幅值資訊表示幅值為Au,則運動向量差為(0,Au)。
  16. 如請求項14所述的方法,其特徵在於,所述從所述當前塊的編碼位元流中解析出所述對應的運動向量差的方向資訊和幅值資訊,包括:從所述當前塊的編碼位元流中解析出標誌資訊;若所述標誌資訊指示對所述原始運動向量疊加運動向量差,則從所述當前塊的編碼位元流中解析出所述對應的運動向量差的方向資訊和幅值資訊。
  17. 一種編碼裝置,其特徵在於,所述裝置包括:用於執行在確定對當前塊啟動加權預測時,針對所述當前塊獲取所述當前塊的權重預測角度的模組;用於執行針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置的模組;用於執行根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值的模組,其中,所述像素位置的關聯權重值與所述像素位置的目標權重值之和為預設數值;用於執行針對所述當前塊的每個像素位置,根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值的模組;用於執行根據所述當前塊的所有像素位置的加權預測值確定所述當前 塊的加權預測值的模組。
  18. 一種解碼裝置,其特徵在於,所述裝置包括:用於執行在確定對當前塊啟動加權預測時,針對所述當前塊獲取所述當前塊的權重預測角度的模組;用於執行針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置的模組;用於執行根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值的模組,其中,所述像素位置的關聯權重值與所述像素位置的目標權重值之和為預設數值;用於執行針對所述當前塊的每個像素位置,根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值的模組;用於執行根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值的模組。
  19. 一種解碼端設備,其特徵在於,包括處理器和機器可讀存儲介質,其中,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令,所述處理器用於執行所述機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,針對所述當前塊,獲取所述當前塊的權重預測角度;針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值;根據所述像素位置的目標權重值確定所述像素位置的關聯權重值, 其中,所述像素位置的關聯權重值與所述像素位置的目標權重值之和為預設數值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值;根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
  20. 一種編碼端設備,其特徵在於,包括處理器和機器可讀存儲介質,其中,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令,所述處理器用於執行所述機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,針對所述當前塊,獲取所述當前塊的權重預測角度;針對所述當前塊的每個像素位置,根據所述當前塊的權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值;根據所述像素位置的目標權重值確定所述像素位置的關聯權重值,其中,所述像素位置的關聯權重值與所述像素位置的目標權重值之和為預設數值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值;根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
TW110110919A 2020-03-25 2021-03-25 一種編解碼方法、裝置及其設備 TWI797582B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010220130.1 2020-03-25
CN202010220130.1A CN113452997B (zh) 2020-03-25 2020-03-25 一种编解码方法、装置及其设备

Publications (2)

Publication Number Publication Date
TW202141980A TW202141980A (zh) 2021-11-01
TWI797582B true TWI797582B (zh) 2023-04-01

Family

ID=77806922

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110110919A TWI797582B (zh) 2020-03-25 2021-03-25 一種編解碼方法、裝置及其設備

Country Status (8)

Country Link
US (1) US20230353723A1 (zh)
EP (1) EP4109897A4 (zh)
JP (2) JP7375224B2 (zh)
KR (1) KR20220158799A (zh)
CN (2) CN113709460B (zh)
AU (1) AU2021243002B2 (zh)
TW (1) TWI797582B (zh)
WO (1) WO2021190515A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113766222B (zh) * 2020-06-01 2023-03-24 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113709488B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN115633168A (zh) * 2022-09-30 2023-01-20 腾讯科技(深圳)有限公司 一种视频处理方法及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120207214A1 (en) * 2011-02-11 2012-08-16 Apple Inc. Weighted prediction parameter estimation
CN104539967A (zh) * 2015-01-15 2015-04-22 哈尔滨工业大学 混合视频编码标准中帧间预测方法
US20180184110A1 (en) * 2016-12-28 2018-06-28 Arris Enterprises Llc Unequal weight planar prediction
US20180288245A1 (en) * 2017-03-31 2018-10-04 Kyocera Document Solutions Inc. Pull-print compatible image forming system, server and image forming method
CN110225346A (zh) * 2018-12-28 2019-09-10 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6522425B2 (en) * 1997-02-04 2003-02-18 Fuji Photo Film Co., Ltd. Method of predicting and processing image fine structures
EP3459244A4 (en) * 2016-01-12 2020-03-04 Telefonaktiebolaget LM Ericsson (publ) VIDEO CODING WITH HYBRID INTRAPREDICTION
MX2018014487A (es) * 2016-05-25 2019-08-12 Arris Entpr Llc Prediccion angular ponderada para intra codificacion.
US20170347094A1 (en) * 2016-05-31 2017-11-30 Google Inc. Block size adaptive directional intra prediction
US10542264B2 (en) * 2017-04-04 2020-01-21 Arris Enterprises Llc Memory reduction implementation for weighted angular prediction
US10992939B2 (en) * 2017-10-23 2021-04-27 Google Llc Directional intra-prediction coding
US10225578B2 (en) * 2017-05-09 2019-03-05 Google Llc Intra-prediction edge filtering
CN109996081B (zh) * 2017-12-31 2023-09-12 华为技术有限公司 图像预测方法、装置以及编解码器
CN110121073B (zh) * 2018-02-06 2021-07-09 浙江大学 一种双向帧间预测方法及装置
US11956460B2 (en) * 2018-08-31 2024-04-09 Hulu, LLC Selective template matching in video coding
CN112565786B (zh) * 2018-12-28 2022-05-27 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN116647678A (zh) * 2018-12-29 2023-08-25 浙江大华技术股份有限公司 帧内预测方法、编码器及存储装置
CN112866705B (zh) * 2019-03-11 2022-08-26 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120207214A1 (en) * 2011-02-11 2012-08-16 Apple Inc. Weighted prediction parameter estimation
CN104539967A (zh) * 2015-01-15 2015-04-22 哈尔滨工业大学 混合视频编码标准中帧间预测方法
US20180184110A1 (en) * 2016-12-28 2018-06-28 Arris Enterprises Llc Unequal weight planar prediction
US20180288245A1 (en) * 2017-03-31 2018-10-04 Kyocera Document Solutions Inc. Pull-print compatible image forming system, server and image forming method
CN110225346A (zh) * 2018-12-28 2019-09-10 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Also Published As

Publication number Publication date
WO2021190515A1 (zh) 2021-09-30
TW202141980A (zh) 2021-11-01
JP2023519874A (ja) 2023-05-15
CN113452997A (zh) 2021-09-28
CN113709460A (zh) 2021-11-26
KR20220158799A (ko) 2022-12-01
EP4109897A1 (en) 2022-12-28
JP7375224B2 (ja) 2023-11-07
AU2021243002B2 (en) 2023-10-05
CN113452997B (zh) 2022-07-29
JP2023179791A (ja) 2023-12-19
US20230353723A1 (en) 2023-11-02
AU2021243002A1 (en) 2022-11-03
CN113709460B (zh) 2023-03-24
EP4109897A4 (en) 2023-09-06

Similar Documents

Publication Publication Date Title
US11930210B2 (en) Intra-frame prediction method and device
JP7087071B2 (ja) 符号化方法及び機器
TWI797582B (zh) 一種編解碼方法、裝置及其設備
TWI669955B (zh) 視訊解碼/編碼裝置與方法、儲存位元串流的記錄媒體
JP2022177266A (ja) 映像符号化/復号化方法及び装置
US20210203978A1 (en) Merge mode-based inter-prediction method and apparatus
TWI790662B (zh) 一種編解碼方法、裝置及其設備
TWI836542B (zh) 用以編碼及解碼視訊取樣之轉換區塊的方法、設備和非暫態電腦可讀取儲存媒體
CN112106356B (zh) 图像编码/解码方法和装置
TWI790631B (zh) 一種編解碼方法、裝置及其設備
CN108605123A (zh) 通过使用预测对视频进行编码和解码的方法和装置
RU2809619C1 (ru) Способ, оборудование и устройство для кодирования и декодирования
RU2808807C1 (ru) Способ, оборудование и устройство для кодирования и декодирования
RU2809701C1 (ru) Способ, оборудование и устройство для кодирования и декодирования
US20230041999A1 (en) Chroma from Luma Prediction Model Selection
JP2022521979A (ja) デコーダ側動きベクトル改良に対する制約