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

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

Info

Publication number
TW202209891A
TW202209891A TW110119755A TW110119755A TW202209891A TW 202209891 A TW202209891 A TW 202209891A TW 110119755 A TW110119755 A TW 110119755A TW 110119755 A TW110119755 A TW 110119755A TW 202209891 A TW202209891 A TW 202209891A
Authority
TW
Taiwan
Prior art keywords
weight
current block
value
prediction
information
Prior art date
Application number
TW110119755A
Other languages
English (en)
Other versions
TWI790631B (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 TW202209891A publication Critical patent/TW202209891A/zh
Application granted granted Critical
Publication of TWI790631B publication Critical patent/TWI790631B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction

Landscapes

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

Abstract

本申請提供一種編解碼方法、裝置、編碼端設備以及解碼端設備,該方法包括:獲取權重預測角度和權重配置參數,其中,權重配置參數包括權重變換率和權重變換的起始位置;根據權重配置參數為當前塊外部的周邊位置配置參考權重值;根據權重預測角度從當前塊外部的周邊位置中確定像素位置指向的周邊匹配位置;根據周邊匹配位置關聯的參考權重值確定像素位置的目標權重值,根據像素位置的目標權重值確定像素位置的關聯權重值;根據第一預測模式確定像素位置的第一預測值,根據第二預測模式確定像素位置的第二預測值;根據第一預測值,目標權重值,第二預測值和關聯權重值,確定像素位置的加權預測值。

Description

一種編解碼方法、裝置及其設備
本申請涉及編解碼技術領域,尤其是涉及一種編解碼方法、裝置,編碼端設備及解碼端設備。
為了達到節約空間的目的,視頻圖像都是經過編碼後才傳輸的,完整的視頻編碼可以包括預測、變換、量化、熵編碼、濾波等過程。預測過程可以包括幀內預測和幀間預測,幀間預測是指利用視頻時間域的相關性,使用鄰近已編碼圖像的像素預測當前像素,以達到有效減少視頻時域冗餘的目的。幀內預測是指利用視頻空間域的相關性,使用當前幀圖像的已編碼塊的像素預測當前像素,以達到減少視頻空域冗餘的目的。
有鑑於此,本申請提供了一種編解碼方法、裝置,編碼端設備及解碼端設備,提高了預測的準確性。
本申請提供一種編解碼方法,所述方法包括:在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數,其中,所述權重配置參數包括權重變換率和權重變換的起始位置;根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值;根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值;根據所述當前塊的第二預測模式確定所述像 素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
本申請提供一種編解碼裝置,所述裝置包括:獲取模組,用於在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數,其中,所述權重配置參數包括權重變換率和權重變換的起始位置;配置模組,用於根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;確定模組,用於針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值;根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值;根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
本申請提供一種解碼端設備,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;所述處理器用於執行機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數,其中,所述權重配置參數包括權重變換率和權重變換的起始位置;根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值;根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值;根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預 測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
本申請提供一種編碼端設備,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;所述處理器用於執行機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數,其中,所述權重配置參數包括權重變換率和權重變換的起始位置;根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值;根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值;根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值、所述目標權重值、所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
由以上技術方案可見,本申請實施例中,提出一種配置權重值的有效方式,能夠為當前塊的每個像素位置配置合理的目標權重值,使當前塊的預測值加更接近原始像素,從而提高預測的準確性,提高預測性能,提高編碼性能。
1、2、3、4:像素位置/虛線/角度
0、5、6:虛線/角度
7:角度
111:獲取模組
112:配置模組
113:確定模組
121、131:處理器
122、132:機器可讀存儲介質
301、302、303、304、305、401、402、403、404、405、406、407、408、411、412、413、414、415、416、417、418:步驟
a1、a2、a3、a4:步驟
a0、a1、a2、a3、a4、a5、a6:周邊位置
A、B、C、D、F:E的相鄰預測塊/像素位置
E:當前塊/像素位置
G:E的相鄰預測塊
圖1是視頻編碼框架的示意圖;
圖2A-圖2C是加權預測的示意圖;
圖3是本申請一種實施方式中的編解碼方法的流程圖;
圖4A是本申請一種實施方式中的編碼方法的流程圖;
圖4B-圖4E是當前塊外部的周邊位置的示意圖;
圖4F是本申請一種實施方式中的解碼方法的流程圖;
圖5是本申請一種實施方式中的權重預測角度的示意圖;
圖6是本申請一種實施方式中的四種權重變換率的參考權重值的示意圖;
圖7A是本申請一種實施方式中的匯出權重陣列的流程圖;
圖7B-圖7D是本申請一種實施方式中的權重預測角度與角度分區的示意圖;
圖8A和圖8B分別是SCC序列和自然序列的示意圖;
圖9是本申請一種實施方式中的當前塊的相鄰塊的示意圖;
圖10A是本申請一種實施方式中的編解碼裝置的結構示意圖;
圖10B是本申請一種實施方式中的解碼端設備的硬體結構圖;
圖10C是本申請另一種實施方式中的編碼端設備的硬體結構圖。
在本申請實施例使用的術語僅僅是出於描述特定實施例的目的,而非限制本申請。本申請實施例和權利要求書中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其它含義。還應當理解,本文中使用的術語“和/或”是指包含一個或多個相關聯的列出專案的任何或所有可能組合。應當理解,儘管在本申請實施例可能採用術語第一、第二、第三等來描述各種資訊,但是,這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本申請實施例範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊,取決於語境。此外,所使用的詞語“如果”可以被解釋成為“在......時”,或“當......時”,或“回應於確定”。
本申請實施例中提出一種編解碼方法、裝置及其設備,可以涉及如下概念:幀內預測(intra prediction),幀間預測(inter prediction)與幀內塊複製(Intra Block Copy,IBC,)預測,等等。
幀內預測基於視頻空間域的相關性,使用當前圖像的已編碼塊的像素預測當前塊的像素,以達到減少視頻空域冗餘(spatial redundancy)的目的。幀內預測規定了多種預測模式,每種預測模式對應一種紋理方向(直流(Direct Current,DC)模式除外),例如,若圖像紋理呈現水準狀排布,則水準預測模式可以更好的預測圖像資訊。
幀間預測基於視頻時間域的相關性,由於視頻序列包含較強的時域相關性,使用鄰近已編碼圖像的像素預測當前圖像的像素,可以達到有效減少視頻時域冗餘(temporal redundancy)的目的。
幀內塊複製允許同幀參考,當前塊的參考資料來自同一幀。幀內塊複製技術中,可以使用當前塊的塊向量獲取當前塊的預測值,示例性的,基於螢幕內容中同一幀記憶體在大量重複出現的紋理這一特性,在採用塊向量獲取當前塊的預測值時,能夠提升螢幕內容序列的壓縮效率。
預測像素(Prediction Pixel)是指從已編解碼的像素中匯出的像素值,通過原始像素與預測像素之差獲得殘差,進而進行殘差變換量化以及係數編碼。幀間預測像素指的是當前塊從參考幀匯出的像素值,由於像素位置離散,需要通過插值運算來獲取最終的預測像素。預測像素與原始像素越接近,兩者相減得到的殘差能量越編碼壓縮性能越高。
運動向量(Motion Vector,MV)。在幀間預測中,可以使用運動向量表示當前幀的當前塊與參考幀的參考塊之間的相對位移。每個劃分的塊都有相應的運動向量傳送到解碼端,如果對每個塊的運動向量進行獨立編碼和傳輸,特別是小尺寸的大量塊,則消耗很多比特。為降低用於編碼運動向量的比特數,可以利用相鄰塊之間的空間相關性,根據相鄰已編碼塊的運動向量對當前塊的運動向量進行預測,然後對預測差進行編碼,這樣可以有效降低表示運動向量的比特數。在對當前塊的運動向量進行編碼時,可以先使用相鄰已編碼塊的運動向量預測當前塊的運動向量,然後對該運動向量的預測值(Motion Vector Prediction,MVP)與運動向量的真正估值之間的差值,也就是運動向量差MVD(Motion Vector Difference,MVD),進行編碼。
運動資訊(Motion Information)。由於運動向量表示當前 塊與某個參考塊之間的位置偏移,為了準確的獲取指向塊的資訊,除了運動向量,還需要參考幀圖像的索引資訊來表示當前塊使用哪個參考幀圖像。在視頻編碼技術中,對於當前幀,通常可以建立一個參考幀圖像清單,參考幀圖像索引資訊則表示當前塊採用了參考幀圖像清單中的第幾個參考幀圖像。此外,很多編碼技術還支援多個參考幀圖像清單,因此,還可以使用一個索引值來表示使用了哪一個參考幀圖像清單,這個索引值可以稱為參考方向。綜上所述,在視頻編碼技術中,可以將運動向量,參考幀圖像索引資訊,參考方向等與運動相關的資訊統稱為運動資訊。
塊向量(Block Vector,BV)應用在幀內塊複製技術中,幀內塊複製技術使用塊向量進行運動補償,即採用塊向量獲取當前塊的預測值。與運動向量不同的是,塊向量表示當前塊與當前幀已編碼塊中的最佳匹配塊之間的相對位移。基於同一幀記憶體在大量重複紋理這一特性,在採用塊向量獲取當前塊的預測值時,能夠顯著提升壓縮效率。
幀內預測模式:在幀內預測中,使用幀內預測模式進行運動補償,即採用幀內預測模式獲取當前塊的預測值。例如,幀內預測模式可以包括但不限於Planar模式,DC模式和多種角度模式。Planar模式適用於像素值緩慢變化的區域,使用水準方向和垂直方向的兩個線性濾波器,將兩個方向上像素的平均值作為當前塊像素的預測值。DC模式適用於大面積平坦區域,將當前塊的周圍像素的平均值作為當前塊的預測值。角度模式有33種角度模式或65種角度模式。
調色板模式(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(失真),通常可以使用平方誤差總和SSE(Sum of the Squared Errors,SSE,)指標來進行衡量,SSE是指重建圖像塊與源圖像的差值的均方和;λ是拉格朗日乘子,R就是該模式下圖像塊編碼所需的實際比特數,包括編碼模式資訊、運動資訊、殘差等所需的比特總和。在模式選擇時,若使用RDO原則去對編碼模式做比較決策,通常可以保證編碼性能最佳。
視頻編碼框架。可以使用如圖1所示的視頻編碼框架實現本申請實施例的編碼端處理流程,視頻解碼框架的示意圖與圖1類似,在此不再贅述,可以使用視頻解碼框架實現本申請實施例的解碼端處理流程。示例性的,在視頻編碼框架和視頻解碼框架中,可以包括但不限於幀內預測/幀間預測、運動估計/運動補償、參考圖像暫存器、環內濾波、重建、變換、量化、反變換、反量化、熵編碼器等模組。在編碼端,通過這些模組之間的配合,可以實現編碼端處理流程,在解碼端,通過這些模組之間的配合,可以實現解碼端處理流程。
示例性的,當前塊可以為矩形,而實際物體的邊緣往往不是矩形,因此,對於物體的邊緣來說,往往存在兩個不同物件(如存在於前景的物體和背景等)。當兩個物件的運動不一致時,則矩形劃分不能很好的將這兩個物件進行分割,為此,可以將當前塊劃分為兩個非矩形子塊,並對兩個非矩形子塊進行加權預測。示例性的,加權預測是利用多個預測值進行加權操作,從而獲得最終預測值,加權預測可以包括:幀間和幀內的聯合加權預測,幀間和幀間的聯合加權預測,幀內和幀內的聯合加權預測等。針對加權預測的權重值,可以為當前塊的不同像素位置配置相同權重值,也可以為當前塊的不同像素位置配置不同權重值。
參見圖2A所示,為幀間加權預測三角劃分模式TPM(Triangular Partition Mode,TPM)的示意圖。
TPM預測塊由幀間預測塊1(即採用幀間預測模式1得到多個像素位置的幀間預測值1)和幀間預測塊2(即採用幀間預測模式2得到多個像素位置的幀間預測值2)組合得到。TPM預測塊可以劃分為兩個區域/部分,一個區域可以為幀間區域1,另一個區域可以為幀間區域2,TPM預測塊可以呈矩形分佈,TPM預測塊的兩個幀間區域可以呈非矩形分佈,且兩個幀間區域之間的分界線(如圖2A中虛線所示)可以為TPM預測塊的主對角線或者副對角線。
針對幀間區域1的每個像素位置,主要基於幀間預測塊1的幀間預測值1確定,例如,將該像素位置的幀間預測塊1的幀間預測值1與該像素位置的幀間預測塊2的幀間預測值2進行加權,得到該像素位置的聯合預測值,其中,幀間預測值1的權重值較大,幀間預測值2的權重值較小(甚至為0)。針對幀間區域2的每個像素位置,主要基於幀間預測塊2的幀間預測值2確定,例如,將該像素位置的幀間預測塊1的幀間預測值1與該像素位置的幀間預測塊2的幀間預測值2進行加權,得到該像素位置的聯合預測值,其中,幀間預測值2的權重值較大,幀間預測值1的權重值較小(甚至為0)。之後,可以將每個像素位置的聯合預測值組成TPM預測塊。
參見圖2B所示,為幀間塊幾何分割(Geometrical partitioning for inter blocks,GEO)模式的示意圖,GEO模式用於利用一條分割線將幀間預測塊劃分為兩個子塊,不同於TPM模式,GEO模式可以採用更多的劃分方向,GEO模式的加權預測過程與TPM模式類似。
GEO預測塊由幀間預測塊1(即採用幀間預測模式1得到多個像素位置的幀間預測值1)和幀間預測塊2(即採用幀間預測模式2得到多個像素位置的幀間預測值2)組合得到。GEO預測塊可以劃分為兩個區域/部分,一個區域可以為幀間區域1,另一個區域可以為幀間區域2。
針對幀間區域1的每個像素位置,主要基於幀間預測塊1的幀間預測值1確定,例如,將該像素位置的幀間預測塊1的幀間預測值1與該像素位置的幀間預測塊2的幀間預測值2進行加權時,幀間預測值1的權重值較大,幀間預測值2的權重值較小。針對幀間區域2的每個像素位置,主要基於幀間預測塊2的幀間預測值2確定,例如,將該像素位置的幀間預測塊1的幀間預測值1與該像素位置的幀間預測塊2的幀間預測值2進行加權時,幀間預測值2的權重值較大,幀間預測值1的權重值較小。
示例性的,GEO預測塊的權重值配置與像素位置離分割線的距離有關,參見圖2C所示,像素位置A,像素位置B和像素位置C位於分割線右下側,像素位置D,像素位置E和像素位置F位於分割線左上側。對於像素位置A,像素位置B和像素位置C來說,幀間預測塊2的權重值排序為B
Figure 110119755-A0202-12-0009-32
A
Figure 110119755-A0202-12-0009-33
C,幀間預測塊1的權重值排序為C
Figure 110119755-A0202-12-0009-34
A
Figure 110119755-A0202-12-0009-35
B。對於像素位置D,像素位置E和像素位置F來說,幀間預測塊1的權重值排序為D
Figure 110119755-A0202-12-0009-36
F
Figure 110119755-A0202-12-0009-37
E,幀間預測塊2的權重值排序為E
Figure 110119755-A0202-12-0009-38
F
Figure 110119755-A0202-12-0009-39
D。上述方式需要計算像素位置與分割線的距離,繼而確定像素位置的權重值。
針對上述各種情況,為了實現加權預測,均需要確定當前塊的每個像素位置對應的預測塊的權重值,並基於像素位置對應的權重值進行加權預測。但是,權重值的設置依賴於分割線,若權重值設置不合理可能導致預測效果不佳、編碼性能差等問題。
有鑑於此,本申請實施例中提出權重值的匯出方式,可以根據當前塊外部的周邊位置的參考權重值,確定當前塊的每個像素位置的目標權重值,能夠為每個像素位置配置更為合理的目標權重值,使得預測值更接近原始像素,從而提高預測準確性,提高預測性能,提高編碼性能。
以下結合幾個具體實施例,對本申請實施例中的編解碼方法進行詳細說明。
實施例1:參見圖3所示,為編解碼方法的流程示意圖, 該方法可以應用於解碼端(也可以稱為視頻解碼器)或者編碼端(也可以稱為視訊轉碼器),該方法可以包括以下步驟。
步驟301,在確定對當前塊啟動加權預測時,獲取當前塊的權重預測角度和權重配置參數,該權重配置參數包括權重變換率和權重變換的起始位置。權重變換的起始位置可以由如下參數的至少一個確定:當前塊的權重預測角度,當前塊的權重預測位置,當前塊的尺寸。
示例性的,在需要對當前塊進行預測時,解碼端或者編碼端可以先確定是否對當前塊啟動加權預測。若對當前塊啟動加權預測,則採用本申請實施例的編解碼方法,即執行步驟301和後續步驟。若對當前塊不啟動加權預測,則實現方式本申請實施例中不做限制。
示例性的,在確定對當前塊啟動加權預測時,可以獲取當前塊的權重預測角度,當前塊的權重預測位置,及當前塊的權重變換率。然後,可以基於當前塊的權重預測角度,當前塊的權重預測位置和當前塊的尺寸中的至少一個,確定當前塊的權重變換的起始位置。至此,可以得到當前塊的權重預測角度,當前塊的權重變換率和當前塊的權重變換的起始位置。
步驟302,根據當前塊的權重配置參數為當前塊外部的周邊位置配置參考權重值。
示例性的,當前塊外部的周邊位置的數量可以基於當前塊的尺寸和/或當前塊的權重預測角度確定,例如,基於當前塊的尺寸和/或當前塊的權重預測角度確定當前塊外部的周邊位置的數量為M,則根據當前塊的權重配置參數為M個周邊位置配置參考權重值。
示例性的,當前塊外部的周邊位置的參考權重值可以單調遞增;或者,當前塊外部的周邊位置的參考權重值可以單調遞減。比如說,當前塊外部的周邊位置的參考權重值可以為0 0...0 0 2 4 6 8 8...8 8,或者,當前塊外部的周邊位置的參考權重值可以為8 8...8 8 6 4 2 0 0...0 0。
示例性的,當前塊外部的周邊位置可以包括整像素位置,或者,亞像素位置,或者,整像素位置和亞像素位置。當前塊外部的周邊位 置可以包括但不限於:當前塊外部上側一行的周邊位置,或者,當前塊外部左側一列的周邊位置,或者,當前塊外部下側一行的周邊位置,或者,當前塊外部右側一列的周邊位置。當然,上述只是周邊位置的示例,對此不做限制。
在一種可能的實施方式中,當前塊外部的周邊位置的參考權重值包括目的地區域的參考權重值,目的地區域的第一鄰近區域的參考權重值,目的地區域的第二鄰近區域的參考權重值。也就是說,可以將當前塊外部的周邊位置分為目的地區域,目的地區域的第一鄰近區域以及目的地區域的第二鄰近區域。
示例性的,第一鄰近區域的參考權重值均為第一參考權重值,第二鄰近區域的參考權重值單調遞增。或者,第一鄰近區域的參考權重值均為第一參考權重值,第二鄰近區域的參考權重值單調遞減。或者,第一鄰近區域的參考權重值均為第二參考權重值,第二鄰近區域的參考權重值均為第三參考權重值,且該第二參考權重值與該第三參考權重值不同。或者,第一鄰近區域的參考權重值單調遞增,第二鄰近區域的參考權重值單調遞增。或者,第一鄰近區域的參考權重值單調遞減,第二鄰近區域的參考權重值單調遞減。
示例性的,目的地區域包括一個或者至少兩個參考權重值;若目的地區域包括至少兩個參考權重值,則目的地區域的至少兩個參考權重值單調遞增或單調遞減。
步驟303,針對當前塊的每個像素位置,根據當前塊的權重預測角度從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置;根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,根據該像素位置的目標權重值確定該像素位置的關聯權重值。
示例性的,權重預測角度表示當前塊內部的像素位置所指向的角度方向,例如,基於某一種權重預測角度,該權重預測角度對應的角度方向指向當前塊的某個外部周邊位置。基於此,針對當前塊的每個像素位 置,基於該權重預測角度確定該像素位置所指向的角度方向,繼而根據該角度方向從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。
針對當前塊的每個像素位置,在確定該像素位置指向的周邊匹配位置後,基於該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,例如,將該周邊匹配位置關聯的參考權重值確定為該像素位置的目標權重值。然後,根據該像素位置的目標權重值確定該像素位置的關聯權重值,例如,每個像素位置的目標權重值與關聯權重值的和,可以為固定的預設數值,因此,關聯權重值可以為預設數值與目標權重值之差。假設預設數值為8,若像素位置的目標權重值為0,則該像素位置的關聯權重值為8;若像素位置的目標權重值為1,則該像素位置的關聯權重值為7,以此類推,只要目標權重值與關聯權重值之和為8即可。
步驟304,針對當前塊的每個像素位置,根據當前塊的第一預測模式確定該像素位置的第一預測值,並根據當前塊的第二預測模式確定該像素位置的第二預測值;根據該第一預測值、該目標權重值、該第二預測值和該關聯權重值,確定該像素位置的加權預測值。
示例性的,假設目標權重值是第一預測模式對應的權重值,關聯權重值是第二預測模式對應的權重值,則該像素位置的加權預測值可以為:(該像素位置的第一預測值*該像素位置的目標權重值+該像素位置的第二預測值*該像素位置的關聯權重值)/固定的預設數值。
或者,假設目標權重值是第二預測模式對應的權重值,關聯權重值是第一預測模式對應的權重值,則該像素位置的加權預測值可以為:(該像素位置的第二預測值*該像素位置的目標權重值+該像素位置的第一預測值*該像素位置的關聯權重值)/固定的預設數值。
步驟305,根據當前塊的所有像素位置的加權預測值確定當前塊的加權預測值。
例如,將當前塊的所有像素位置的加權預測值組成當前塊的加權預測值。
由以上技術方案可見,本申請實施例中,提出一種配置權重值的有效方式,能夠為當前塊的每個像素位置配置合理的目標權重值,能夠使當前塊的預測值加更接近原始像素,從而提高預測的準確性,提高預測性能,提高編碼性能。
實施例2:在實施例1的基礎上,本申請實施例中提出另一種編解碼方法,參見圖4A所示,為編解碼方法的流程示意圖,該方法可以應用於編碼端,該方法可以包括以下步驟。
步驟401,在確定對當前塊啟動加權預測時,編碼端獲取當前塊的權重預測角度、當前塊的權重預測位置及當前塊的權重變換率。示例性的,編碼端確定是否對當前塊啟動加權預測,如果是,則執行步驟401及後續步驟,如果否,則處理方式本申請不做限制。
在一種可能的實施方式中,若當前塊滿足啟動加權預測的條件,則編碼端可以確定對當前塊啟動加權預測。若當前塊不滿足啟動加權預測的條件,則確定不對當前塊啟動加權預測。例如,判斷當前塊的特徵資訊是否滿足特定條件。如果滿足,確定對當前塊啟動加權預測;如果不滿足,確定對當前塊不啟動加權預測。特徵資訊包括但不限於以下之一或任意組合:當前塊所在當前幀的框架類型,當前塊的尺寸資訊,開關控制資訊。開關控制資訊可以包括但不限於:序列級(SPS(Sequence Paramater Set,序列參數集)、SH(Sequence Header,序列頭))開關控制資訊,圖像級(PPS(Picture Parameter Set,圖像參數集)、PH(Picture Header,圖像頭))開關控制資訊,片級(Slice、Tile、Patch)開關控制資訊,最大編碼單元級(LCU(Largest Coding Unit,最大編碼單元)、CTU(Coding Tree Unit,編碼樹單元))開關控制資訊,或,塊級(CU(Coding Unit,編碼單元)、PU(Prediction Unit,預測單元)、TU(Transform Unit,變換單元))開關控制資訊。
例如,若特徵資訊為當前塊所在當前幀的框架類型,當前塊所在當前幀的框架類型滿足特定條件,可以包括但不限於:若當前塊所在當前幀的框架類型為B幀,則確定框架類型滿足特定條件。或者,若當前塊所在當前幀的框架類型為I幀,則確定框架類型滿足特定條件。
例如,若特徵資訊為當前塊的尺寸資訊,如當前塊的寬度和高度,當前塊的尺寸資訊滿足特定條件包括但不限於:若寬度大於或等於第一寬度數值,高度大於或等於第二高度數值,確定當前塊的尺寸資訊滿足特定條件;或,若寬度大於或等於第三寬度數值,高度大於或等於第四高度數值,寬度小於或等於第五寬度數值,高度小於或等於第六高度數值,確定當前塊的尺寸資訊滿足特定條件;或,若寬度和高度的乘積大於或等於乘積數值,確定當前塊的尺寸資訊滿足特定條件。上述數值可以根據經驗配置,如8、16、32、64、128等。比如說,第一寬度數值為8,第二高度數值為8,第三寬度數值為8,第四高度數值為8,第五寬度數值為64,第六高度數值為64,乘積數值為64。綜上所述,若寬度大於或等於8,高度大於或等於8,確定當前塊的尺寸資訊滿足特定條件。或,若寬度大於或等於8,高度大於或等於8,寬度小於或等於64,高度小於或等於64,確定當前塊的尺寸資訊滿足特定條件。或,若寬度和高度的乘積大於或等於64,確定當前塊的尺寸資訊滿足特定條件。上述只是示例,對此不做限制。
例如,若特徵資訊為當前塊的尺寸資訊,如當前塊的寬度和高度,則當前塊的尺寸資訊滿足特定條件,可以包括但不限於:寬度不小於a且不大於b,高度不小於a且不大於b。a可以小於或等於16,b可以大於或等於16。例如,a等於8,b等於64或者b等於32。
例如,若特徵資訊為開關控制資訊,則該開關控制資訊滿足特定條件,可以包括但不限於:若開關控制資訊為允許當前塊啟用加權預測,則確定該開關控制資訊滿足特定條件。
例如,若特徵資訊為當前塊所在當前幀的框架類型和當前塊的尺寸資訊,則框架類型滿足特定條件,且尺寸資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。或者,若特徵資訊為當前塊所在當前幀的框架類型和開關控制資訊,則框架類型滿足特定條件,且開關控制資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。或者,若特徵資訊為當前塊的尺寸資訊和開關控制資訊,則尺寸資訊滿足特定條件,且開關控制資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。 或者,若特徵資訊為當前塊所在當前幀的框架類型、當前塊的尺寸資訊以及開關控制資訊,則框架類型滿足特定條件、尺寸資訊滿足特定條件且開關控制資訊滿足特定條件時,可以確定當前塊的特徵資訊滿足特定條件。
在一種可能的實施方式中,在確定對當前塊啟動加權預測時,編碼端可以獲取當前塊的權重預測角度、當前塊的權重預測位置及當前塊的權重變換率。
示例性的,權重預測角度表示當前塊內部的像素位置所指向的角度方向,參見圖4B所示,基於某一種權重預測角度,示出了當前塊內部的像素位置(如像素位置1、像素位置2和像素位置3)所指向的角度方向,該角度方向指向當前塊外部的某個周邊位置。參見圖4C所示,基於另一種權重預測角度,示出了當前塊內部的像素位置(如像素位置2、像素位置3和像素位置4)所指向的角度方向,該角度方向指向當前塊外部的某個周邊位置。
示例性的,權重預測位置(也可以稱為距離參數)用於配置當前塊外部周邊位置的參考權重值。例如,根據當前塊的權重預測角度、當前塊的尺寸等參數,確定當前塊外部的周邊位置的範圍(如當前塊外部的周邊位置的數量),參見圖4B或者圖4C所示。
然後,將周邊位置的範圍進行N等分,N的取值可以任意配置,如4、6、8等,以8為例進行說明,權重預測位置用於表示當前塊外部的哪個周邊位置作為當前塊的權重變換的起始位置,從而根據權重變換的起始位置配置當前塊外部的周邊位置的參考權重值。
參見圖4D所示,在將所有周邊位置8等分後,可以得到7個權重預測位置。在此基礎上,當權重預測位置為0時,可以表示周邊位置a0(即虛線0指向的周邊位置,在實際應用中,並不存在虛線0,虛線0只是為了方便理解給出的示例,虛線0-虛線6用於將所有周邊位置8等分)作為當前塊外部周邊位置的權重變換的起始位置。以此類推,當權重預測位置為6時,表示周邊位置a6作為當前塊外部周邊位置的權重變換的起始位 置。
針對不同的權重預測角度,N的取值可以不同,例如,針對權重預測角度A,N的取值為6,表示將基於權重預測角度A確定的周邊位置的範圍進行6等分,針對權重預測角度B,N的取值為8,表示將基於權重預測角度B確定的周邊位置的範圍進行8等分。
針對不同的權重預測角度,N的取值也可以相同,在N的取值相同的情況下,權重預測位置數量可以不同。如針對權重預測角度A,N的取值為8,表示將基於權重預測角度A確定的周邊位置的範圍進行8等分,針對權重預測角度B,N的取值為8,表示將基於權重預測角度B確定的周邊位置的範圍進行8等分,但是,權重預測角度A對應的權重預測位置選擇周邊位置a1至周邊位置a5共5個位置,權重預測角度B對應的權重預測位置選擇b0至b6共7個位置。
上述是以將周邊位置的範圍進行N等分為例,在實際應用中,還可以採用不均勻的劃分方式,比如說,將周邊位置的範圍劃分成N份,而不是N等分,對此不做限制。
在將所有的周邊位置8等分後,可以得到7個權重預測位置,步驟401中,編碼端可從7個權重預測位置中獲取一個權重預測位置,也可以從7個權重預測位置中選擇部分權重預測位置(如5個權重預測位置),從5個權重預測位置獲取一個權重預測位置。
示例性的,權重變換率表示當前塊外部的周邊位置的參考權重值的變換率,用於表示參考權重值的變化速度,權重變換率可以是不為0的任意數,如權重變換率可以是-4、-2、-1、1、2、4、0.5、0.75、1.5等。權重變換率的絕對值為1時,即權重變換率為-1或者1時,用於表示參考權重值的變化速度為1,參考權重值從0到8需要經過0,1,2,3,4,5,6,7,8等數值,參考權重值從8到0需要經過8,7,6,5,4,3,2,1,0等數值。權重變換率的絕對值為2時,即權重變換率為-2或者2時,用於表示參考權重值的變化速度為2,參考權重值從0到8需要經過0,2,4, 6,8等數值,參考權重值從8到0需要經過8,6,4,2,0等數值。權重變換率的絕對值為0.5時,即權重變換率為-0.5或者0.5,用於表示參考權重值的變化速度為0.5,參考權重從0到8需要經過0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8等數值,參考權重從8到0需要經過8,8,7,7,6,6,5,5,4,4,3,3,2,2,1,1,0,0等數值。當然,上述舉例為從0到8,可以將0和8替換為任意數。
步驟402,編碼端根據當前塊的權重變換率和權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。
示例性的,權重變換的起始位置可以由如下參數中的至少一個確定:當前塊的權重預測角度、當前塊的權重預測位置、當前塊的尺寸,因此,可以基於當前塊的權重預測角度、當前塊的權重預測位置和當前塊的尺寸中的至少一個,確定當前塊的權重變換的起始位置。然後,根據當前塊的權重變換率和權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。
步驟403,針對當前塊的每個像素位置,編碼端根據當前塊的權重預測角度從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。為了區分方便,本實施例中,可以將該像素位置指向的當前塊外部的周邊位置,稱為該像素位置的周邊匹配位置。
示例性的,由於權重預測角度表示當前塊內部的像素位置所指向的角度方向,因此,針對當前塊的每個像素位置,基於該權重預測角度確定該像素位置所指向的角度方向,繼而根據該角度方向從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。
當前塊外部周邊位置可以包括:當前塊外部上側一行的周邊位置,如當前塊外部上側第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所示,是兩個周邊位置對應一個整像素位置,對於其它情況,本實施例中不再贅述。
步驟404,編碼端根據周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值。
針對當前塊的每個像素位置,在確定該像素位置指向的周邊匹配位置後,編碼端確定該周邊匹配位置關聯的參考權重值,並根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,例如,將該周邊匹配位置關聯的參考權重值確定為該像素位置的目標權重值。
在一種可能的實施方式中,編碼端根據周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值,可以包括以下幾種情況。
情況一、若該周邊匹配位置是整像素位置,且該整像素位置已配置參考權重值,則根據該整像素位置的參考權重值確定該像素位置的目標權重值。
情況二、若該周邊匹配位置是整像素位置,且該整像素位置未配置參考權重值,則可以根據該整像素位置的相鄰位置的參考權重值確定該像素位置的目標權重值。例如,可以對相鄰位置的參考權重值進行向上取整操作,得到該像素位置的目標權重值;或者,對相鄰位置的參考權重值進行向下取整操作,得到該像素位置的目標權重值;或者,根據該整像素位置的相鄰位置的參考權重值的插值確定該像素位置的目標權重值,對此 不做限制。
情況三、若該周邊匹配位置是亞像素位置,且該亞像素位置已配置參考權重值,則可以根據該亞像素位置的參考權重值確定該像素位置的目標權重值。
情況四、若該周邊匹配位置是亞像素位置,且該亞像素位置未配置參考權重值,則可以根據該亞像素位置的相鄰位置的參考權重值確定該像素位置的目標權重值。例如,可以對相鄰位置的參考權重值進行向上取整操作,得到該亞像素位置的目標權重值;或者,對相鄰位置的參考權重值進行向下取整操作,得到該亞像素位置的目標權重值;或者,根據該亞像素位置的相鄰位置的參考權重值的插值確定該亞像素位置的目標權重值,對此不做限制。
情況五、根據周邊匹配位置關聯的多個參考權重值確定該像素位置的目標權重值,例如,周邊匹配位置是整像素位置或亞像素位置時,獲取周邊匹配位置的多個相鄰位置的參考權重值。若周邊匹配位置已配置參考權重值,則根據周邊匹配位置的參考權重值和多個相鄰位置的參考權重值進行加權運算,得到該像素位置的目標權重值;若周邊匹配位置未配置參考權重值,則根據多個相鄰位置的參考權重值進行加權運算,得到該像素位置的目標權重值。
步驟405,編碼端根據該像素位置的目標權重值確定該像素位置的關聯權重值。
示例性的,針對每個像素位置來說,該像素位置的目標權重值與該像素位置的關聯權重值的和,可以為固定的預設數值,即關聯權重值可以為預設數值與目標權重值之差。基於此,假設預設數值為8,若該像素位置的目標權重值為2,則該像素位置的關聯權重值為6。
步驟406,針對當前塊的每個像素位置,編碼端根據當前塊的第一預測模式確定該像素位置的第一預測值,並根據當前塊的第二預測模式確定該像素位置的第二預測值。
示例性的,第一預測模式可以為幀內塊複製預測模式,幀內預測模式,幀間預測模式,調色板模式中的任意一個;第二預測模式可以為幀內塊複製預測模式,幀內預測模式,幀間預測模式,調色板模式中的任意一個。例如,第一預測模式可以為幀內塊複製預測模式,第二預測模式可以為幀內塊複製預測模式;或者,第一預測模式可以為幀內塊複製預測模式,第二預測模式可以為幀內預測模式;或者,第一預測模式可以為幀內塊複製預測模式,第二預測模式可以為幀間預測模式;或者,第一預測模式可以為幀內塊複製預測模式,第二預測模式可以為調色板模式;以此類推,對此第一預測模式和第二預測模式均不做限制。
關於根據第一預測模式和第二預測模式確定預測值的過程,參見後續實施例。
步驟407,編碼端根據該像素位置的第一預測值,該像素位置的目標權重值,該像素位置的第二預測值和該像素位置的關聯權重值,確定該像素位置的加權預測值。
例如,該像素位置的加權預測值可以為:(該像素位置的第一預測值*該像素位置的目標權重值+該像素位置的第二預測值*該像素位置的關聯權重值)/固定的預設數值。
步驟408,編碼端根據當前塊的所有像素位置的加權預測值確定當前塊的加權預測值。
由以上技術方案可見,本申請實施例中,提出一種配置權重值的有效方式,能夠為當前塊的每個像素位置配置合理的目標權重值,能夠使當前塊的預測值更接近原始像素,從而提高預測的準確性,提高預測性能,提高編碼性能。
實施例3:在實施例1的基礎上,本申請實施例中提出另一種編解碼方法,參見圖4F所示,為編解碼方法的流程示意圖,該方法可以應用於解碼端,該方法可以包括以下步驟。
步驟411,在確定對當前塊啟動加權預測時,解碼端獲取 當前塊的權重預測角度,當前塊的權重預測位置,及當前塊的權重變換率。示例性的,解碼端確定是否對當前塊啟動加權預測,如果是,則執行步驟411及後續步驟,如果否,則處理方式本申請不做限制。
在一種可能的實施方式中,編碼端判斷當前塊的特徵資訊是否滿足特定條件,如果滿足,則確定對當前塊啟動加權預測。解碼端也判斷當前塊的特徵資訊是否滿足特定條件,如果滿足,則確定對當前塊啟動加權預測;如果不滿足,則確定不對當前塊啟動加權預測。關於解碼端如何基於特徵資訊確定當前塊是否啟動加權預測,可以參見步驟401,在此不再贅述。
在另一種可能的實施方式中,編碼端根據當前塊的特徵資訊確定當前塊是否支援加權預測,在當前塊支援加權預測時,還可以採用其它策略確定是否對當前塊啟動加權預測,如採用RDO原則確定是否對當前塊啟動加權預測。在確定是否對當前塊啟動加權預測後,編碼端在發送當前塊的編碼位元流時,該編碼位元流可以包括是否啟動加權預測的語法,該語法表示當前塊是否啟動加權預測。解碼端先根據當前塊的特徵資訊確定當前塊是否支援加權預測,在當前塊支持加權預測時,解碼端再從編碼位元流中解析出是否啟動加權預測的語法,並根據該語法確定是否對當前塊啟動加權預測。
示例性的,在確定對當前塊啟動加權預測時,解碼端還可以獲取當前塊的權重預測角度、當前塊的權重預測位置及當前塊的權重變換率,關於該權重預測角度,該權重預測位置及該權重變換率的相關說明,可以參見步驟401,在此不再贅述。
步驟412,解碼端根據當前塊的權重變換率和權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。
示例性的,解碼端可以基於當前塊的權重預測角度、當前塊的權重預測位置和當前塊的尺寸中的至少一個,確定當前塊的權重變換的起始位置。然後,解碼端根據當前塊的權重變換率和權重變換的起始位置 為當前塊外部的周邊位置配置參考權重值。
步驟413,針對當前塊的每個像素位置,解碼端根據當前塊的權重預測角度從當前塊外部的周邊位置中確定該像素位置指向的周邊匹配位置。
步驟414,解碼端根據該周邊匹配位置關聯的參考權重值確定該像素位置的目標權重值。
步驟415,解碼端根據該像素位置的目標權重值確定該像素位置的關聯權重值。
步驟416,針對當前塊的每個像素位置,解碼端根據當前塊的第一預測模式確定該像素位置的第一預測值,並根據當前塊的第二預測模式確定該像素位置的第二預測值。
步驟417,解碼端根據該像素位置的第一預測值,該像素位置的目標權重值,該像素位置的第二預測值和該像素位置的關聯權重值,確定該像素位置的加權預測值。
步驟418,解碼端根據當前塊的所有像素位置的加權預測值確定當前塊的加權預測值。
示例性的,針對步驟412-步驟418,其實現過程可以參見步驟402-步驟408,不同之處在於,步驟412-步驟418是解碼端的處理流程,而不是編碼端的處理流程,在此不再贅述。
由以上技術方案可見,本申請實施例中,提出一種配置權重值的有效方式,能夠為當前塊的每個像素位置配置合理的目標權重值,使當前塊的預測值更加接近原始像素,從而提高預測的準確性,提高預測性能,提高編解碼性能。
實施例4:在實施例1-實施例3中,需要基於權重預測角度進行加權處理,可以將這種加權處理方式記為幀間角度加權預測(Angular Weighted Prediction,AWP)模式,即,在當前塊支援AWP模式時,採用實 施例1-實施例3對當前塊進行預測,得到當前塊的預測值。
實施例1-實施例3涉及權重預測角度,該權重預測角度可以是任意角度,如180度內任意角度,或,360度內任意角度,如10度,20度,30度等,對此權重預測角度不做限制。
在一種可能的實施方式中,該權重預測角度可以為水準角度(如圖7B中的角度2);或者,該權重預測角度可以為垂直角度(如圖7B中的角度6);或者,該權重預測角度的斜率的絕對值(權重預測角度的斜率的絕對值也就是權重預測角度的tan值)可以為2的n次方,n為整數,如正整數,0,負整數等。
例如,該權重預測角度的斜率的絕對值可以為1(即2的0次方)、2(即2的1次方)、1/2(即2的-1次方)、4(即2的2次方)、1/4(即2的-2次方)、8(即2的3次方)或1/8(即2的-3次方)等。示例性的,參見圖5所示,示出了8種權重預測角度,這些權重預測角度的斜率的絕對值為2的n次方。
本申請實施例中,可以對權重預測角度進行移位操作,關於對權重預測角度進行移位操作的例子參見後續實施例,因此,在權重預測角度的斜率的絕對值為2的n次方時,在對權重預測角度進行移位操作時,可以避免出現除法操作,從而方便的進行移位實現。
示例性的,不同塊尺寸(即當前塊的尺寸)支援的權重預測角度的數量可以相同或者不同。例如,塊尺寸A支持8種權重預測角度,塊尺寸B和塊尺寸C支援6種權重預測角度等。
實施例5:在上述實施例1-實施例3中,編碼端/解碼端需要根據當前塊的權重變換率和當前塊的權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。在一種可能的實施方式中,可以採用如下方式:針對當前塊外部的每個周邊位置,根據該周邊位置的座標值,該權重變換的起始位置的座標值,以及該權重變換率,配置該周邊位置的參考權重值。
示例性的,針對當前塊外部的每個周邊位置,若該周邊位 置是當前塊外部上側一行或者下側一行的周邊位置,則該周邊位置的座標值可以是橫坐標值,權重變換的起始位置的座標值可以是橫坐標值。或者,若該周邊位置是當前塊外部左側一列或者右側一列的周邊位置,則該周邊位置的座標值可以是縱坐標值,權重變換的起始位置的座標值可以是縱坐標值。
示例性的,可以將當前塊左上角的像素位置(如左上角的第一個像素位置)作為座標原點,當前塊的周邊位置的座標值(如橫坐標值或縱坐標值)和權重變換的起始位置的座標值(如橫坐標值或縱坐標值),均是相對於該座標原點的座標值。當然,也可以將當前塊的其它像素位置作為座標原點,實現方式與左上角的像素位置作為座標原點的實現方式類似。
在一種可能的實施方式中,先確定該周邊位置的座標值與權重變換的起始位置的座標值的差值,並確定該差值與當前塊的權重變換率的乘積值。若該乘積值小於第一數值(即參考權重值的最小值,如0等),則確定該周邊位置關聯的參考權重值為第一數值;若該乘積值大於第二數值(即參考權重值的最大值,如8等),則確定該周邊位置關聯的參考權重值為第二數值;若該乘積值不小於第一數值,且該乘積值不大於第二數值,則確定該周邊位置關聯的參考權重值為該乘積值。在另一種可能的實施方式中,還可以根據該周邊位置的座標值與權重變換的起始位置的座標值的大小關係,直接確定該周邊位置關聯的參考權重值。例如,若該周邊位置的座標值小於權重變換的起始位置的座標值,確定該周邊位置關聯的參考權重值為第一數值;若該周邊位置的座標值不小於權重變換的起始位置的座標值,確定該周邊位置關聯的參考權重值為第二數值。又例如,若該周邊位置的座標值小於權重變換的起始位置的座標值,確定該周邊位置關聯的參考權重值為第二數值;若該周邊位置的座標值不小於權重變換的起始位置的座標值,確定該周邊位置關聯的參考權重值為第一數值。
示例性的,第一數值和第二數值均可以根據經驗配置,且第一數值小於第二數值,對此第一數值和第二數值均不做限制。例如,第一數值是預先約定的參考權重值的最小值,如0,第二數值是預先約定的參考 權重值的最大值,如8,當然,0和8也只是示例。
示例性的,參見圖4D所示,在將所有的周邊位置8等分後,可以得到7個權重預測位置,當權重預測位置為0時,表示周邊位置a0,權重變換的起始位置的座標值為周邊位置a0的座標值。當權重預測位置為1時,表示周邊位置a1,權重變換的起始位置的座標值為周邊位置a1的座標值,以此類推,關於權重變換的起始位置的座標值的確定方式,在此不再贅述。
實施例6:在實施例1-實施例3中,編碼端/解碼端需要根據當前塊的權重變換率和當前塊的權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。在一種可能的實施方式中,可以採用如下方式:獲取當前塊的權重預測角度、當前塊的權重變換率和當前塊的權重預測位置,基於當前塊的權重預測位置確定當前塊的權重變換的起始位置,基於該權重變換的起始位置和該權重變換率確定權重配置參數,即該權重配置參數包括權重變換的起始位置和權重變換率,然後,根據該權重配置參數確定當前塊外部的周邊位置的參考權重值。
以下結合具體實現方法,對為當前塊外部的周邊位置配置參考權重值的過程進行說明。
首先獲取有效數量個參考權重值,然後根據有效數量個參考權重值,配置當前塊外部的周邊位置的參考權重值。
示例性的,當前塊外部的周邊位置的數量為有效數量,需要獲取有效數量個參考權重值,該有效數量可以是基於當前塊的尺寸和/或當前塊的權重預測角度確定。例如,採用如下方式確定該有效數量ValidLength:ValidLength=(N+(M>>X))<<1,N為當前塊的高,M是當前塊的寬,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次方。
在一種可能的實施方式中,針對有效數量個參考權重值,可以單調遞增,或,單調遞減。或者,針對有效數量個參考權重值,可以先包括多個第一權重數值,再包括多個第二權重數值,或,先包括多個第二權重數值,再包括多個第一權重數值。以下結合幾個具體情況,對此進行說明。
情況1:針對有效數量個參考權重值,可以單調遞增,或,單調遞減。例如,有效數量個參考權重值可以為[8 8...8 8 7 6 5 4 3 2 1 0 0...0 0],即單調遞減。又例如,有效數量個參考權重值可以為[0 0...0 0 1 2 3 4 5 6 7 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-有效數量詞,如x為1,表示第1個周邊位置,y(x)表示第x個周邊位置的參考權重值,a表示權重變換 率,s表示權重變換的起始位置,Clip3函數用於限制參考權重值位於最小值與最大值之間,最小值和最大值均可以根據經驗配置,為了方便描述,在後續過程中,以最小值為0,最大值為8為例進行說明。
a表示權重變換率,a可以是不為0的整數,如a可以是-4、-2、-1、1、2、4等,對此a的取值不做限制。若a的絕對值為1,則參考權重值從0到8需要經過0,1,2,3,4,5,6,7,8,或者,參考權重值從8到0需要經過8,7,6,5,4,3,2,1,0。
s表示權重變換的起始位置,s可以由權重預測位置確定,例如,s=f(權重預測位置),即s是一個與權重預測位置有關的函數。例如,在當前塊外部的周邊位置的範圍確定後,可以確定周邊位置的有效數量,並將所有周邊位置進行N等分,N的取值可以任意配置,如4、6、8等,而權重預測位置用於表示採用當前塊外部的哪個周邊位置作為當前塊的目標周邊區域,而這個權重預測位置對應的周邊位置就是權重變換的起始位置。或者,s可以由權重預測角度和權重預測位置確定,例如,s=f(權重預測角度,權重預測位置),即s是一個與權重預測角度和權重預測位置有關的函數。例如,可以根據權重預測角度確定當前塊外部的周邊位置的範圍,在當前塊外部的周邊位置的範圍確定後,可以確定周邊位置的有效數量,並將所有周邊位置進行N等分,權重預測位置用於表示採用當前塊外部的哪個周邊位置作為當前塊的目標周邊區域,而這個權重預測位置對應的周邊位置就是權重變換的起始位置。
綜上所述,在y(x)=Clip3(最小值,最大值,a*(x-s))中,權重變換率a和權重變換的起始位置s均為已知值,針對當前塊外部的每個周邊位置x,可以通過該函數關係確定該周邊位置的參考權重值y(x)。例如,假設權重變換率a為2,權重變換的起始位置s為2,則該函數關係可以為y(x)=Clip3(最小值,最大值,2*(x-2)),針對當前塊外部的每個周邊位置x,可以得到參考權重值y(x)。
綜上所述,可以得到當前塊的有效數量個參考權重值,這些參考權重值單調遞增或單調遞減。在一種可能的實施方式中,當前塊外部 的周邊位置的參考權重值包括目的地區域的參考權重值,目的地區域的第一鄰近區域的參考權重值,目的地區域的第二鄰近區域的參考權重值。
示例性的,目的地區域包括一個參考權重值或者至少兩個參考權重值。例如,基於權重變換的起始位置,確定一個參考權重值,將這個參考權重值所對應的區域作為目的地區域。又例如,基於權重變換的起始位置,確定至少兩個參考權重值,將這至少兩個參考權重值所對應的區域作為目的地區域。
若目的地區域包括至少兩個參考權重值,則目的地區域的至少兩個參考權重值單調遞增或單調遞減。單調遞增可以是嚴格單調遞增(即目的地區域的至少兩個參考權重值嚴格單調遞增);單調遞減可以是嚴格單調遞減(即目的地區域的至少兩個參考權重值嚴格單調遞減)。例如,目的地區域的參考權重值從1-7單調遞增,或者,目的地區域的參考權重值從7-1單調遞減。
示例性的,第一鄰近區域的參考權重值可以均為第一參考權重值,第二鄰近區域的參考權重值可以單調遞增。例如,第一鄰近區域的參考權重值可以均為0,目的地區域包括一個參考權重值,該參考權重值為1,第二鄰近區域的參考權重值從2-8單調遞增。
或者,第一鄰近區域的參考權重值可以均為第一參考權重值,第二鄰近區域的參考權重值可以單調遞減。例如,第一鄰近區域的參考權重值可以均為8,目的地區域包括一個參考權重值,該參考權重值為7,第二鄰近區域的參考權重值從6-0單調遞減。
或者,第一鄰近區域的參考權重值均為第二參考權重值,第二鄰近區域的參考權重值均為第三參考權重值,第二參考權重值與第三參考權重值不同。例如,第一鄰近區域的參考權重值均為0,目的地區域包括至少兩個參考權重值,其參考權重值從1-7單調遞增,第二鄰近區域的參考權重值均為8,第一鄰近區域的參考權重值與第二鄰近區域的參考權重值不同。
或者,第一鄰近區域和第二鄰近區域的參考權重值同時單調遞增或單調遞減。例如,第一鄰近區域的參考權重值單調遞增,第二鄰近區域的參考權重值也單調遞增;又例如,第一鄰近區域的參考權重值單調遞減,第二鄰近區域的參考權重值也單調遞減。例如,第一鄰近區域的參考權重值從0-3單調遞增,目的地區域包括一個參考權重值,該參考權重值為4,第二鄰近區域的參考權重值從5-8單調遞增。
情況2:針對有效數量個參考權重值,可以先包括多個第三數值,再包括多個第四數值,或者,可以先包括多個第四數值,再包括多個第三數值。例如,有效數量個參考權重值可以為[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個參考權重值之後的所有參考權重值為第三數值。
在得到有效數量個參考權重值之後,根據有效數量個參考權重值,配置當前塊外部的周邊位置的參考權重值。
示例性的,當前塊外部的周邊位置的數量為有效數量,且參考權重值的數量為有效數量,因此,可將有效數量個參考權重值,配置為當前塊外部的周邊位置的參考權重值。例如,可將第1個參考權重值配置為當前塊外部的第1個周邊位置的參考權重值,將第2個參考權重值配置為當前塊外部的第2個周邊位置的參考權重值,以此類推。
綜上所述,由於已經為當前塊外部的周邊位置配置參考權重值,即每個周邊位置均具有參考權重值,因此,在從當前塊外部的周邊位置中確定像素位置指向的周邊匹配位置後,可以確定該周邊匹配位置關聯的參考權重值,也就是該像素位置的目標權重值。
以下結合幾個具體的應用場景,對上述過程的實施方式進 行說明。示例性的,在後續幾個應用場景中,假設當前塊的尺寸為M*N,M為當前塊的寬,N為當前塊的高。X為權重預測角度的tan值的log2對數值,如0或者1。Y為權重預測位置的索引值,A,b,c,d為預設的常數值。ValidLength表示有效數量,FirstPos表示權重變換的起始位置,ReferenceWeights[i]表示第i個周邊位置的參考權重值,Clip3函數用於限制參考權重值位於最小值0與最大值8之間,i表示當前塊外部的周邊位置的索引,a表示權重變換率的絕對值。
應用場景1:基於當前塊的尺寸和當前塊的權重預測角度確定有效數量(也可以稱為參考權重有效長度,即ValidLength),並獲取權重變換的起始位置FirstPos。例如,可以通過如下公式確定ValidLength:ValidLength=(N+(M>>X))<<1;通過如下公式確定FirstPos:FirstPos=(ValidLength>>1)-A+Y *((ValidLength-1)>>3)。在此基礎上,通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,a*(i-FirstPos))。i的取值範圍可以是0到ValidLength-1;或1到ValidLength。在得到當前塊的周邊位置的參考權重值ReferenceWeights[i]後,通過如下公式匯出當前塊的像素位置(x,y)的目標權重值:SampleWeight[x][y]=ReferenceWeights[(y<<1)+((x<<1)>>X)],<<表示左移,>>表示右移。
應用場景2:可以通過如下公式確定ValidLength:ValidLength=(N+(M>>X))<<1;通過如下公式確定FirstPos:FirstPos=(ValidLength>>1)-b+Y *((ValidLength-1)>>3)-((M<<1)>>X)。在此基礎上,通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,a*(i-FirstPos))。可以通過如下公式匯出當前塊的每個像素位置(x,y)的目標權重值:SampleWeight[x][y]=ReferenceWeights[(y<<1)-((x<<1)>>X)]。
應用場景3:可以通過如下公式確定ValidLength:ValidLength=(M+(N>>X))<<1;通過如下公式確定FirstPos:FirstPos=(ValidLength>>1)-c+Y *((ValidLength-1)>>3)-((N<<1)>>X)。在此 基礎上,可以通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,a*(i-FirstPos))。可以通過如下公式匯出當前塊的每個像素位置(x,y)的目標權重值:SampleWeight[x][y]=ReferenceWeights[(x<<1)-((y<<1)>>X)]。
應用場景4:可以通過如下公式確定ValidLength:ValidLength=(M+(N>>X))<<1;可以通過如下公式確定FirstPos:FirstPos=(ValidLength>>1)-d+Y *((ValidLength-1)>>3);在此基礎上,可以通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,a*(i-FirstPos))。可以通過如下公式匯出當前塊的每個像素位置(x,y)的目標權重值:SampleWeight[x][y]=ReferenceWeights[(x<<1)+((y<<1)>>X)]。
應用場景5:參見圖6所示,示出了四種權重變換率的參考權重值的示意圖。
在權重變換率的絕對值為1時,即權重變換率為1或者權重變換率為-1,可以通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,1*(i-FirstPos)),上述公式可以等價為ReferenceWeight[i]=Clip3(0,8,i-FirstPos)。在該情況中,參見圖6所示的第一類情況,FirstPos可以為4,即第1個到第4個周邊位置的參考權重值為0,第5個周邊位置的參考權重值為1,第6個周邊位置的參考權重值為2,以此類推。
在權重變換率的絕對值為2時,即權重變換率為2或者權重變換率為-2,通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,2*(i-FirstPos)),上述公式可以等價為ReferenceWeight[i]=Clip3(0,8,(i-FirstPos)<<1)。在該情況中,參見圖6所示的第二類情況,FirstPos可以為6,即第1個到第6個周邊位置的參考權重值為0,第7個周邊位置的參考權重值為2,第8個周邊位置的參考權重值為4,以此類推。
在權重變換率的絕對值為4時,即權重變換率為4或者權重變換率為-4,可以通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,4*(i-FirstPos)),上述公式可以等價為ReferenceWeight[i]=Clip3(0,8,(i-FirstPos)<<2)。在該情況中,參見圖6所示的第三類情況,FirstPos可以為7,第1個到第7個周邊位置的參考權重值為0,第8個周邊位置的參考權重值為4,第9-17個周邊位置的參考權重值為8,以此類推。
在權重變換率的絕對值為8時,即權重變換率為8或者權重變換率為-8,通過如下公式匯出當前塊的每個周邊位置的參考權重值:ReferenceWeights[i]=Clip3(0,8,8*(i-FirstPos)),上述公式可以等價為ReferenceWeight[i]=Clip3(0,8,(i-FirstPos)<<3)。在該情況中,參見圖6所示的第四類情況,FirstPos可以為8,即第1個到第8個周邊位置的參考權重值為0,第9個周邊位置的參考權重值為9,第10-17個周邊位置的參考權重值為8,以此類推。
綜上所述,在權重變換率的絕對值為1時,FirstPos為4,在權重變換率的絕對值為2時,FirstPos為6(即權重變換率1時的FirstPos+2),在權重變換率的絕對值為4時,FirstPos為7(即權重變換率1時的FirstPos+3),基於此,可以對齊參考權重值為4的位置。
示例性的,針對當前塊來說,在支持權重變換率切換並啟動權重變換率切換時,可以從圖6所示的4類權重變換率的參考權重值分佈示例中選擇一種進行切換,從而通過對圖像或者圖像的局部區域進行權重變換率的切換,達到減弱一些圖像顯示場景中的圖像顯示的跳變突出。比如說,有一些圖像顯示場景中需要解決跳變比較突出的問題,AWP模式的權重變化率切換能夠解決這個問題。例如,混合圖像內容包括部分螢幕內容,動畫片,包含動畫片的圖像等,可以對某個含有螢幕內容的區域進行權重變換率切換,解決跳變比較突出的問題。
在上述過程中,ValidLength與當前塊的權重預測角度和當前塊的尺寸相關,為了方案簡化,可以固化某些參數來達到優化目的。例如, 可以將當前塊的權重預測角度配置為固定參數值,ValidLength只與當前塊的尺寸相關。FirstPos與當前塊的權重預測角度,當前塊的尺寸,當前塊的權重預測位置相關。又例如,可以將當前塊的權重預測角度配置為固定參數值,FirstPos只與當前塊的尺寸和當前塊的權重預測位置相關。或,將當前塊的權重預測位置配置為固定參數值,FirstPos只與當前塊的尺寸和當前塊的權重預測角度相關。或,將當前塊的權重預測角度和當前塊的權重預測位置均配置為固定參數值,這兩個固定參數值可以相同或者不同,FirstPos只與當前塊的尺寸相關。
實施例7:在實施例1-實施例3中,編碼端/解碼端需要根據當前塊的權重變換率和當前塊的權重變換的起始位置為當前塊外部的周邊位置配置參考權重值。在一種可能的實施方式中,記M和N分別是當前塊的寬和高,如圖7A所示,角度加權預測模式(AWP)的權重陣列匯出方式,包括:
步驟a1,根據AwpIdx獲取stepIdx,angleIdx以及subAngleIdx等參數。
示例性的,AwpIdx表示權重預測位置和權重預測角度的索引值,假設存在7種權重預測位置,8種權重預測角度,則AwpIdx的取值範圍是0-55。若權重預測位置為-3至3(表示第4個權重預測位置是中心,第4個權重預測位置為0),權重預測角度的索引為0-7,則AwpIdx的56個索引值對應的權重預測位置和權重預測角度,可以參見表1所示。
Figure 110119755-A0202-12-0034-1
示例性的,stepIdx表示權重預測位置(如權重預測位置的索引值),權重預測位置的範圍可以是-3至3。例如,針對第1個權重預測位置,權重預測位置的索引值為-3,針對第2個權重預測位置,權重預測位置的索引值為-2,以此類推,針對第7個權重預測位置,權重預測位置的索引值為3。
angleIdx表示權重預測角度的斜率的絕對值的log2對數值(如0,或1,或較大常數),subAngleIdx表示權重預測角度所在的角度分區。參見圖7B所示,示出8種權重預測角度,權重預測角度0的angleIdx為權重預測角度0的斜率的絕對值的log2對數值,權重預測角度1的angleIdx為權重預測角度1的斜率的絕對值的log2對數值,以此類推,權重預測角度7的angleIdx為權重預測角度7的斜率的絕對值的log2對數值。權重預測角度0和權重預測角度1位於角度分區0,權重預測角度2和權重預測角度3位於角度分區1,權重預測角度4和權重預測角度5位於角度分區2,權重預測角度6和權重預測角度7位於角度分區3。
示例性的,可以採用如下公式確定stepIdx:stepIdx=(AwpIdx>>3)-3。
示例性的,可先根據如下公式確定modAngNum(角度編號):modAngNum=AwpIdx % 8;然後基於modAngNum,可以採用如下方式確定angleIdx:若modAngNum等於2,則angleIdx=7;若modAngNum等於6,則angleIdx=8;否則,angleIdx=modAngNum % 2。
示例性的,可以採用如下公式確定subAngleIdx:subAngleIdx=modAngNum>>1。
綜上所述,編碼端在確定出當前塊的權重預測角度和當前塊的權重預測位置後,可以基於該權重預測角度和該權重預測位置確定AwpIdx的取值,參見表1所示。編碼端在向解碼端發送編碼位元流時,該編碼位元流可以攜帶AwpIdx的取值,基於此,解碼端可以得到AwpIdx的取值,並根據AwpIdx獲取stepIdx,angleIdx以及subAngleIdx。
示例性的,angleIdx以及subAngleIdx能夠唯一確定一個權重預測角度,參見表2所示,當然,也可以採用其它方式確定權重預測角度,例如,更改分區編號等。
Figure 110119755-A0202-12-0036-2
步驟a2,根據stepIdx,angleIdx和subAngleIdx為當前塊外部周邊位置配置參考權重值。步驟a2有如下幾種情況。
情況一、若subAngleIdx為0,即權重預測角度位於角度分區0,比如說,權重預測角度為權重預測角度0或權重預測角度1,則可以採用如下公式確定權重變換的起始位置FirstPos:FirstPos=(ValidLength_H>>1)-6+DeltaPos_H。然後,採用如下公式確定當前塊外部的周邊位置的參考權重值:ReferenceWeights[x]=Clip3(0,8,x-FirstPos),在該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為1為例進行說明,也就是說,上述公式可以等價為ReferenceWeights[x]=Clip3(最小值,最大值,a*(x-FirstPos))。x可以是當前塊外部的周邊位置的索引,x的取值範圍是0到ValidLength_H-1,a表示權重變換率。
在上述公式中,ValidLength_H可以表示當前塊外部的周邊位置的數量(即有效數量,也可以稱為有效長度),在subAngleIdx為0時,權重預測角度指向的當前塊外部的周邊位置,可以是左側一列的周邊位置,因此,可以將有效數量記為ValidLength_H。示例性的,可以採用如下 公式確定有效數量ValidLength_H:ValidLength_H=(N+(M>>angleIdx))<<1。此處左移一位,是因為公式採用1/2-pel精度,若為1-pel精度,則ValidLength_H=(N+(M>>angleIdx));若為1/4-pel精度,則ValidLength_H=(N+(M>>angleIdx))<<2;若為2-pel精度,則ValidLength_H=(N+(M>>angleIdx))>>1,其他像素精度以此類推,不在贅述。之後的公式中,涉及的部分>>1操作,均可能因為像素精度的不同而發生改變。
在上述公式中,DeltaPos_H表示位置變化量參數(即一個中間參數),在subAngleIdx為0時,權重預測角度指向的當前塊外部的周邊位置,可以是當前塊外部左側一列的周邊位置,因此,可以將位置變化量參數記為DeltaPos_H。示例性的,可以採用如下公式確定DeltaPos_H:DeltaPos_H=stepIdx *((ValidLength_H>>3)-1)。
情況二、若subAngleIdx為1,即權重預測角度位於角度分區1,比如說,權重預測角度為權重預測角度2或權重預測角度3,則可以採用如下公式確定權重變換的起始位置FirstPos:FirstPos=(ValidLength_H>>1)-4+DeltaPos_H_((M<<1)>>angleIdx)。然後,採用如下公式確定當前塊外部的周邊位置的參考權重值:ReferenceWeights[x]=Clip3(0,8,a*(x-FirstPos)),在該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為a為例進行說明。x可以是當前塊外部的周邊位置的索引,x的取值範圍是0到ValidLength_H-1。
在上述公式中,ValidLength_H和DeltaPos_H可以參見情況一,在此不再贅述。
情況三、若subAngleIdx為2,即權重預測角度位於角度分區2,比如說,權重預測角度為權重預測角度4或權重預測角度5,則可以採用如下公式確定權重變換的起始位置FirstPos:FirstPos=(ValidLength_W>>1)-4+DeltaPos_W_((N<<1)>>angleIdx)。然後,採用如下公式確定當前塊外部的周邊位置的參考權重值:ReferenceWeights[x]=Clip3(0,8,a*(x-FirstPos)),在該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為a為例進行說明。x可以是當前塊外部的周邊 位置的索引,x的取值範圍是0到ValidLength_W-1。
在上述公式中,ValidLength_W表示當前塊外部的周邊位置的數量(即有效數量,也可以稱為有效長度),在subAngleIdx為2時,權重預測角度指向的當前塊外部的周邊位置,可以是上側一行的周邊位置,因此,將有效數量記為ValidLength_W。示例性的,可以採用如下公式確定有效數量ValidLength_W:ValidLength_W=(M+(N>>angleIdx))<<1。
在上述公式中,DeltaPos_W表示位置變化量參數(即一個中間參數),在subAngleIdx為2時,權重預測角度指向的當前塊外部的周邊位置,可以是當前塊外部上側一行的周邊位置,因此,可以將位置變化量參數記為DeltaPos_W。示例性的,可以採用如下公式確定DeltaPos_W:DeltaPos_W=stepIdx *((ValidLength_W>>3)-1)。
情況四、若subAngleIdx為3,即權重預測角度位於角度分區3,比如說,權重預測角度為權重預測角度6或權重預測角度7,則可以採用如下公式確定權重變換的起始位置FirstPos:FirstPos=(ValidLength_W>>1)-6+DeltaPos_W。然後,可以採用如下公式確定當前塊外部的周邊位置的參考權重值:ReferenceWeights[x]=Clip3(0,8,a*(x-FirstPos)),在該公式中,是以參考權重值的最小值為0,參考權重值的最大值為8,權重變換率為a為例進行說明。x可以是當前塊外部的周邊位置的索引,x的取值範圍是0到ValidLength_W-1。
在上述公式中,ValidLength_W和DeltaPos_W可以參見情況三,在此不再贅述。
綜上所述,可以根據subAngleIdx確定應該採用哪種情況進行處理,例如,在情況一和情況二中,可以根據angleIdx和stepIdx確定ValidLength_H和DeltaPos_H,並可以根據ValidLength_H和DeltaPos_H確定FirstPos,繼而根據FirstPos配置參考權重值。在情況三和情況四中,可以根據angleIdx和stepIdx確定ValidLength_W和DeltaPos_W,並可以根據ValidLength_W和DeltaPos_W確定FirstPos,繼而根據FirstPos配置參考權 重值。
上述各情況中的公式的區別在於,將當前塊的左上角作為座標原點時,參考權重值ReferenceWeights[x]的起始位置發生了變化。例如,參見圖7C所示,示出了角度分區2和角度分區3的示例,在1/2-pel精度時,參考權重值ReferenceWeights[x]的起始位置為(高<<1)>>angleIdx,即公式中的偏移“-((N<<1)>>angleIdx)”。角度分區0和角度分區1的實現類似,只是公式中的偏移為“-((M<<1)>>angleIdx)”,即高度改為寬度即可。
步驟a3,根據angleIdx和參考權重值ReferenceWeights[x]獲取像素位置的亮度權重值。
情況一、若subAngleIdx為0,則可以採用如下公式確定像素位置(x,y)的亮度權重值:AwpWeightArrayY[x][y]=ReferenceWeights[(y<<1)+((x<<1)>>angleIdx)],(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),(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),(y<<1)+((x<<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),(y<<1)+((x<<1)>>angleIdx)表示像素位置(x,y)指向的周邊位置,ReferenceWeights[(x<<1)+((y<<1)>>angleIdx)]表示該周邊位置的參考權重值。x的取值範圍是0到M-1;y的取值範圍是0到N-1。
上述步驟a2和步驟a3可聯合為一個步驟,即將步驟a2(根據stepIdx,angleIdx以及subAngleIdx為當前塊外部的周邊位置配置參考權重值)及步驟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中,各情況中的公式的區別在於,參見圖7D所示,示出了角度分區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)的位置即可。
實施例8:在實施例1-實施例3中,編碼端/解碼端需要獲取當前塊的權重變換率,若當前塊支援權重變換率切換模式,則採用如下方式獲取當前塊的權重變換率:獲取當前塊的第一權重變換率指示資訊,並根據該第一權重變換率指示資訊確定當前塊的權重變換率。示例性的,若該第一權重變換率指示資訊為第一指示資訊,則當前塊的權重變換率為第一權重變換率;若第一權重變換率指示資訊為第二指示資訊,則當前塊的權重變換率為第二權重變換率。若當前塊不支援權重變換率切換模式,則將預設的權重變換率確定為當前塊的權重變換率。第一權重變換率指示資訊可以從當前塊所在LCU,所在幀、所在圖像、所在序列等取得。示例性的,第一權重變換率指示資訊可以為圖像級指示資訊,如PPS、PH級指示資訊。
綜上所述,若當前塊支持權重變換率切換模式,則當前塊的權重變換率可以為第一權重變換率或者第二權重變換率,且第一權重變換率與第二權重變換率不同,即,當前塊的權重變換率是可變的,從而能夠自我調整的切換權重變換率,而不是採用統一的一個權重變換率。
示例性的,若切換控制資訊允許當前塊啟用權重變換率切換模式,則當前塊支援權重變換率切換模式,若切換控制資訊不允許當前塊啟用權重變換率切換模式,則當前塊不支援權重變換率切換模式。該切換控制資訊可以包括但不限於:序列級切換控制資訊,幀級切換控制資訊,Slice(片)級切換控制資訊,Tile(片)級切換控制資訊,Patch(片)級切換控制資訊,CTU級切換控制資訊,LCU級切換控制資訊,塊級切換控制資訊,CU級切換控制資訊,PU級切換控制資訊等。
對於編碼端來說,可以獲知切換控制資訊,且獲知切換控制資訊是否允許當前塊啟用權重變換率切換模式,繼而確定當前塊是否支持權重變換率切換模式。編碼端可以將切換控制資訊編碼到碼流,使得解碼端從碼流中解析出切換控制資訊,獲知切換控制資訊是否允許當前塊啟用權重變換率切換模式,繼而確定當前塊是否支持權重變換率切換模式。編碼端也可以不將切換控制資訊編碼到碼流,而是由解碼端隱式推導出切換控 制資訊,獲知切換控制資訊是否允許當前塊啟用權重變換率切換模式,繼而確定當前塊是否支持權重變換率切換模式。
以序列級切換控制資訊為例,序列級切換控制資訊可以為awp_adptive_flag(幀間角度加權預測適應標誌位元),若awp_adptive_flag為第一取值,則表示序列級切換控制資訊允許當前序列啟用權重變換率切換模式,從而允許當前塊啟用權重變換率切換模式,若awp_adptive_flag為第二取值,則表示序列級切換控制資訊不允許當前序列啟用權重變換率切換模式,從而不允許當前塊啟用權重變換率切換莫。示例性的,第一取值為1,第二取值為0,或者,第一取值為0,第二取值為1。當然,上述只是第一取值和第二取值的示例,對此不做限制。針對其它類型的切換控制資訊,實現過程與序列級切換控制資訊類似,在此不再贅述。
在一種可能的實施方式中,當前塊的第一權重變換率指示資訊可以為當前塊對應的SCC(Screen Content Coding,螢幕內容編碼)標識,第一指示資訊用於指示當前塊屬於螢幕內容編碼,第二指示資訊用於指示當前塊屬於非螢幕內容編碼。在此基礎上,可以獲取當前塊對應的SCC標識,並根據該SCC標識確定當前塊的權重變換率。例如,若該SCC標識用於指示當前塊屬於螢幕內容編碼,則當前塊的權重變換率為第一權重變換率;若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則當前塊的權重變換率為第二權重變換率。
示例性的,第一權重變換率的絕對值可以大於第二權重變換率的絕對值。例如,第一權重變換率的絕對值可以為4,第二權重變換率的絕對值可以為1或2。又例如,第一權重變換率的絕對值可以為2,第二權重變換率的絕對值可以為1。又例如,第一權重變換率的絕對值可以為8,第二權重變換率的絕對值可以為1或2或4。又例如,第一權重變換率的絕對值可以為8或4,第二權重變換率的絕對值可以為1或2。當然,上述只是幾個示例,對此不做限制,只要第一權重變換率的絕對值大於第二權重變換率的絕對值即可。
示例性的,SCC標識可以包括但不限於:序列級SCC標 識,幀級SCC標識,Slice級SCC標識,Tile級SCC標識,Patch級SCC標識,CTU級SCC標識,LCU級SCC標識,塊級SCC標識,CU級SCC標識,PU級SCC標識等等,對此不做限制。例如,可以將當前塊對應的序列級SCC標識確定為當前塊對應的SCC標識,或者,將當前塊對應的幀級SCC標識確定為當前塊對應的SCC標識,以此類推,只要能夠得到當前塊對應的SCC標識即可。
示例性的,對於編碼端來說,可以決策當前塊屬於螢幕內容編碼,還是屬於非螢幕內容編碼。若當前塊屬於螢幕內容編碼,則編碼端確定當前塊的權重變換率為第一權重變換率。若當前塊屬於非螢幕內容編碼,則編碼端確定當前塊的權重變換率為第二權重變換率。或者,對於編碼端來說,可以獲取當前塊對應的SCC標識,若該SCC標識用於指示當前塊屬於螢幕內容編碼,則編碼端確定當前塊的權重變換率為第一權重變換率。若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則編碼端確定當前塊的權重變換率為第二權重變換率。
編碼端可以將SCC標識(如序列級SCC標識,幀級SCC標識,Slice級SCC標識等等)編碼到碼流,使得解碼端從碼流中解析出該SCC標識,並將該SCC標識確定為當前塊對應的SCC標識,例如,可以將當前塊對應的序列級SCC標識確定為當前塊對應的SCC標識。綜上所述,解碼端可以獲知當前塊對應的SCC標識,若該SCC標識用於指示當前塊屬於螢幕內容編碼,則解碼端確定當前塊的權重變換率為第一權重變換率。若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則解碼端確定當前塊的權重變換率為第二權重變換率。例如,若SCC標識為第一取值,則用於指示當前塊屬於螢幕內容編碼,若SCC標識為第二取值,則用於指示當前塊屬於非螢幕內容編碼。第一取值為1,第二取值為0,或者,第一取值為0,第二取值為1。當然,上述只是第一取值和第二取值的示例,對此不做限制。
編碼端也可以不將SCC標識編碼到碼流,而是利用與解碼端一致的資訊隱式推導出SCC標識,此時解碼端也可以隱式推導出SCC標識,並將該SCC標識確定為當前塊對應的SCC標識。例如,若連續多幀 均是螢幕內容編碼,則推導出當前幀為螢幕內容編碼,因此,解碼端隱式推導出幀級SCC標識,並將該SCC標識確定為當前塊對應的SCC標識,且該SCC標識用於指示當前塊屬於螢幕內容編碼。例如,若連續多幀均是非螢幕內容編碼,則推導出當前幀為非螢幕內容編碼,因此,解碼端隱式推導出幀級SCC標識,且該SCC標識用於指示當前塊屬於非螢幕內容編碼。例如,若IBC模式占比小於一定百分比,將下一幀確定為非螢幕內容編碼,否則繼續為螢幕內容編碼。當然,上述方式只是隱式推導出SCC標識的示例,對此隱式推導方式不做限制。綜上所述,解碼端可以獲取當前塊對應的SCC標識,若該SCC標識用於指示當前塊屬於螢幕內容編碼,則解碼端確定當前塊的權重變換率為第一權重變換率。若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則解碼端確定當前塊的權重變換率為第二權重變換率。例如,若SCC標識為第一取值,則用於指示當前塊屬於螢幕內容編碼,若SCC標識為第二取值,則用於指示當前塊屬於非螢幕內容編碼。
綜上所述,當前塊的權重變換率可以為第一權重變換率或者第二權重變換率,即當前塊的權重變換率可以進行切換,且權重變換率的切換依賴於某級的SCC顯示標識或SCC隱式標識,SCC顯示標識是指,將scc_flag(SCC標識)編入碼流,使得解碼端從碼流中解析出SCC標識,SCC隱式標識是指,解碼端根據能夠得到的資訊自我調整推導出SCC標識。
某級SCC標識是指:序列級指示當前序列的SCC標識,該SCC標識作為屬於當前序列的所有塊的SCC標識;幀級指示當前幀的SCC標識,該SCC標識作為屬於當前幀的所有塊的SCC標識;Slice級指示當前Slice的SCC標識,該SCC標識作為屬於當前Slice的所有塊的SCC標識;Tile級指示當前Tile的SCC標識,該SCC標識作為屬於當前Tile的所有塊的SCC標識;Patch級指示當前Patch的SCC標識,該SCC標識作為屬於當前Patch的所有塊的SCC標識;CTU級指示當前CTU的SCC標識,該SCC標識作為屬於當前CTU的所有塊的SCC標識;LCU級指示當前LCU的SCC標識,該SCC標識作為屬於當前LCU的所有塊的SCC標識;塊級指示當前塊的SCC標識,該SCC標識作為屬於當前塊的所有塊的 SCC標識;CU級指示當前CU的SCC標識,該SCC標識作為屬於當前CU的SCC標識;PU級指示當前PU的SCC標識,該SCC標識作為屬於當前PU的SCC標識。
示例性的,可以將第二權重變換率作為默認的權重變換率,在SCC標識用於指示當前塊屬於非螢幕內容編碼時,不需要對權重變換率進行切換,即確定當前塊的權重變換率為第二權重變換率。在SCC標識用於指示當前塊屬於螢幕內容編碼時,需要對權重變換率進行切換,即確定當前塊的權重變換率為第一權重變換率。或者,可以將第一權重變換率作為默認的權重變換率,在SCC標識用於指示當前塊屬於非螢幕內容編碼時,需要對權重變換率進行切換,即確定當前塊的權重變換率為第二權重變換率。在SCC標識用於指示當前塊屬於螢幕內容編碼時,不需要對權重變換率進行切換,即確定當前塊的權重變換率為第一權重變換率。
示例性的,參見圖8A所示,為SCC序列(即屬於螢幕內容編碼的序列)的示意圖,參見圖8B所示,為自然序列(即屬於非螢幕內容編碼的序列)的示意圖。對於SCC序列,顏色改變在一個像素後完成,對於自然序列,顏色改變需要經過幾個像素的過渡。綜上可以看出,SCC序列往往具有大區域一致的顏色以及色彩突變等特徵,針對SCC序列的加權預測也應該適應該類特徵,因此,AWP模式的權重值應該降低平滑過渡的特徵,即增加權重變換率來適應SCC序列的特徵。綜上所述,在當前塊屬於螢幕內容編碼時,當前塊的權重變換率為第一權重變換率,在當前塊屬於非螢幕內容編碼時,當前塊的權重變換率為第二權重變換率,且第一權重變換率的絕對值大於第二權重變換率的絕對值,如第一權重變換率的絕對值為4,第二權重變換率的絕對值為1,使得屬於SCC序列的當前塊的權重變換率的絕對值增加,即變換速度增加。比如說,參見表3所示,為針對SCC序列的實際測試的性能增益(如BD-rate性能增益),用於表示權重變換率從1切換至4時的性能增益。從表3可以看出,針對SCC序列1的Y通道分量,權重變換率從1切換至4時,能夠獲得-1.83%的BD-rate性能增益,相當於在同等客觀品質條件下,切換權重變換率可以將碼率降低1.83%。針 對SCC序列1的U通道分量,權重變換率從1切換至4時,可以將碼率降低1.19%,針對SCC序列1的V通道分量,權重變換率從1切換至4時,可以將碼率降低1.05%。權重變換率從1切換至4時,編碼端的編碼複雜度保持不變,解碼端的解碼複雜度增加101%。針對其它SCC序列,權重變換率從1切換至4時,也能夠降低碼率,綜上所述,可以增加性能增益。
Figure 110119755-A0202-12-0047-3
在另一種可能的實施方式中,當前塊的第一權重變換率指示資訊可以為當前塊對應的權重變換率切換標識,第一指示資訊用於指示當前塊不需要進行權重變換率切換,第二指示資訊用於指示當前塊需要進行權重變換率切換。在此基礎上,可以獲取當前塊對應的權重變換率切換標識,並根據該權重變換率切換標識確定當前塊的權重變換率。例如,若該權重變換率切換標識用於指示當前塊不需要進行權重變換率切換,則當前塊的權重變換率可以為第一權重變換率;若該權重變換率切換標識用於指示當前塊需要進行權重變換率切換,則當前塊的權重變換率可以為第二權重變換率。第一權重變換率的絕對值不等於第二權重變換率的絕對值。例如,第一權重變換率的絕對值可以大於第二權重變換率的絕對值,如第一權重變換率的絕對值可以為4,第二權重變換率的絕對值為1或2。或,第一權重變換率的絕對值可以為2,第二權重變換率的絕對值為1。或,第一權重變換率的絕對值可以為8,第二權重變換率的絕對值為1或2或4。又例如,第一權重變換率的絕對值可以小於第二權重變換率的絕對值,如第一權重變換率的絕對值可以為1,第二權重變換率的絕對值可以為2或4或8。或 者,第一權重變換率的絕對值可以為2,第二權重變換率的絕對值可以為4或8。或者,第一權重變換率的絕對值可以為4,第二權重變換率的絕對值可以為8。當然,上述只是幾個示例,對此不做限制,只要第一權重變換率的絕對值不等於第二權重變換率的絕對值即可。
示例性的,權重變換率切換標識可以包括但不限於:序列級權重變換率切換標識,幀級權重變換率切換標識,Slice級權重變換率切換標識,Tile級權重變換率切換標識,Patch級權重變換率切換標識,CTU級權重變換率切換標識,LCU級權重變換率切換標識,塊級權重變換率切換標識,CU級權重變換率切換標識,PU級權重變換率切換標識等等,對此不做限制。
例如,可以將當前塊對應的序列級權重變換率切換標識確定為當前塊對應的權重變換率切換標識,或者,將當前塊對應的幀級權重變換率切換標識確定為當前塊對應的權重變換率切換標識,以此類推,只要能夠得到當前塊對應的權重變換率切換標識即可。
示例性的,可以將第一權重變換率作為默認的權重變換率,對於編碼端來說,可以獲知當前塊是否需要進行權重變換率切換,若當前塊不需要進行權重變換率切換,則編碼端確定當前塊的權重變換率為第一權重變換率。若當前塊需要進行權重變換率切換,則編碼端確定當前塊的權重變換率為第二權重變換率。或者,對於編碼端來說,可以獲知當前塊對應的權重變換率切換標識,若該權重變換率切換標識用於指示當前塊不需要進行權重變換率切換,則編碼端可以確定當前塊的權重變換率為第一權重變換率。若該權重變換率切換標識用於指示當前塊需要進行權重變換率切換,則編碼端確定當前塊的權重變換率為第二權重變換率。
例如,編碼端確定與第一權重變換率對應的RDO代價值1,與第二權重變換率對應的RDO代價值2。若RDO代價值1小於RDO代價值2,則確定當前塊不需要進行權重變換率切換,若RDO代價值2小於RDO代價值1,則確定當前塊需要進行權重變換率切換。
編碼端可以將權重變換率切換標識(如序列級權重變換率切換標識等)編碼到碼流,使得解碼端從碼流中解析出該權重變換率切換標識,並將該權重變換率切換標識確定為當前塊對應的權重變換率切換標識。綜上所述,解碼端可以獲知當前塊對應的權重變換率切換標識,若該權重變換率切換標識用於指示當前塊不需要進行權重變換率切換,則解碼端確定當前塊的權重變換率為第一權重變換率。若該權重變換率切換標識用於指示當前塊需要進行權重變換率切換,則解碼端確定當前塊的權重變換率為第二權重變換率。例如,若權重變換率切換標識為第一取值,則指示當前塊不需要進行權重變換率切換,若權重變換率切換標識為第二取值,則指示當前塊需要進行權重變換率切換。第一取值為1,第二取值為0,或者,第一取值為0,第二取值為1。當然,上述只是第一取值和第二取值的示例,對此不做限制。
編碼端也可以不將權重變換率切換標識編碼到碼流,而是由解碼端隱式推導權重變換率切換標識,並將該權重變換率切換標識確定為當前塊對應的權重變換率切換標識。例如,若連續多個塊均需要進行權重變換率切換,則當前塊也需要進行權重變換率切換,解碼端隱式推導出權重變換率切換標識,將該權重變換率切換標識確定為當前塊對應的權重變換率切換標識,且該權重變換率切換標識指示當前塊需要進行權重變換率切換。若連續多個塊均不需要進行權重變換率切換,則當前塊也不需要進行權重變換率切換,解碼端隱式推導出權重變換率切換標識,且權重變換率切換標識指示當前塊不需要進行權重變換率切換。當然,上述方式只是隱式推導出權重變換率切換標識的示例,對此推導方式不做限制。綜上所述,解碼端可以獲知當前塊對應的權重變換率切換標識,若該權重變換率切換標識指示當前塊不需要進行權重變換率切換,則確定當前塊的權重變換率為第一權重變換率。若該權重變換率切換標識指示當前塊需要進行權重變換率切換,則確定當前塊的權重變換率為第二權重變換率。
綜上所述,當前塊的權重變換率可以為第一權重變換率或第二權重變換率,即當前塊的權重變換率可以進行切換,權重變換率的切換 依賴於某級的權重變換率切換標識(refine_flag),該refine_flag為顯示標識或隱式標識,顯示標識是指將refine_flag編入碼流,使得解碼端從碼流中解析出refine_flag,隱式標識是指編解碼端根據能夠得到的資訊自我調整推導refine_flag。
示例性的,某級refine_flag是指:序列級指示當前序列的refine_flag,作為屬於當前序列的所有塊的refine_flag;幀級指示當前幀的refine_flag,作為屬於當前幀的所有塊的refine_flag;Slice級指示當前Slice的refine_flag,作為屬於當前Slice的所有塊的refine_flag;Tile級指示當前Tile的refine_flag,作為屬於當前Tile的所有塊的refine_flag;Patch級指示當前Patch的refine_flag,作為屬於當前Patch的所有塊的refine_flag;CTU級指示當前CTU的refine_flag,作為屬於當前CTU的所有塊的refine_flag;LCU級指示當前LCU的refine_flag,作為屬於當前LCU的所有塊的refine_flag;塊級指示當前塊的refine_flag,作為屬於當前塊的refine_flag;CU級指示當前CU的refine_flag,作為屬於當前CU的refine_flag;PU級指示當前PU的refine_flag,作為屬於當前PU的refine_flag。當然,上述只是幾個示例,對此不做限制。
示例性的,可以將第一權重變換率作為默認的權重變換率,在權重變換率切換標識用於指示當前塊不需要進行權重變換率切換時,不對權重變換率進行切換,即確定當前塊的權重變換率為第一權重變換率。在權重變換率切換標識用於指示當前塊需要進行權重變換率切換時,對權重變換率進行切換,即確定當前塊的權重變換率為第二權重變換率。
實施例9:在實施例1-實施例3中,編碼端/解碼端需要獲取當前塊的權重預測角度和權重預測位置,在實施例8中,可以得到當前塊的權重變換率,如第一權重變換率或者第二權重變換率,在此基礎上,採用如下方式獲取當前塊的權重預測角度和權重預測位置。
方式一、編碼端和解碼端約定相同的權重預測角度作為當前塊的權重預測角度,並約定相同的權重預測位置作為當前塊的權重預測位置。例如,編碼端和解碼端將權重預測角度A作為當前塊的權重預測角 度,編碼端和解碼端將權重預測位置4作為當前塊的權重預測位置。
方式二、編碼端構建權重預測角度列表,權重預測角度列表包括至少一個權重預測角度,如權重預測角度A和權重預測角度B。編碼端構建權重預測位置列表,權重預測位置列表包括至少一個權重預測位置,如權重預測位置0-權重預測位置數6。編碼端依次遍歷權重預測角度列表中的每個權重預測角度,遍歷權重預測位置列表中的每個權重預測位置,即遍歷每個權重預測角度及每個權重預測位置的組合。針對權重預測角度和權重預測位置的每個組合,作為步驟401中獲取的權重預測角度和權重預測位置,基於該權重預測角度,該權重預測位置及權重變換率(實施例8中獲取),執行步驟402-步驟408,得到當前塊的加權預測值。
例如,編碼端遍歷到權重預測角度A和權重預測位置0時,基於權重預測角度A和權重預測位置0執行步驟402-步驟408,得到當前塊的加權預測值A-0。編碼端遍歷到權重預測角度A和權重預測位置1時,基於權重預測角度A和權重預測位置1執行步驟402-步驟408,得到當前塊的加權預測值A-1。編碼端遍歷到權重預測角度B和權重預測位置0時,基於權重預測角度B和權重預測位置0執行步驟402-步驟408,得到當前塊的加權預測值B-0,以此類推。編碼端可以基於每個組合(權重預測角度和權重預測位置的組合),得到對應的加權預測值。
編碼端基於權重預測角度和權重預測位置的組合得到各個加權預測值後,可根據每個加權預測值確定對應的RDO代價值,對此RDO代價值的確定方式不做限制,編碼端可以得到每個組合的RDO代價值,並從所有RDO代價值中選擇最小RDO代價值。
然後,編碼端將最小RDO代價值對應的權重預測角度和權重預測位置組合分別作為目標權重預測角度和目標權重預測位置,最後將目標權重預測角度在權重預測角度清單中的索引值和目標權重預測位置在權重預測位置清單中的索引值編入碼流。
當然,上述方式只是示例,對此不做限制,只要能夠得到 當前塊的權重預測角度和權重預測位置即可,例如,可以從權重預測角度列表中隨機選擇一個權重預測角度作為當前塊的權重預測角度,從權重預測位置列表中隨機選擇一個權重預測位置作為當前塊的權重預測位置。
針對解碼端來說,解碼端構建權重預測角度列表,該權重預測角度清單與編碼端的權重預測角度列表相同,該權重預測角度列表包括至少一個權重預測角度,如權重預測角度A和權重預測角度B。解碼端構建權重預測位置列表,該權重預測位置清單與編碼端的權重預測位置列表相同,該權重預測位置列表包括至少一個權重預測位置,如權重預測位置0-權重預測位置數6。解碼端在接收到當前塊的編碼位元流後,從該編碼位元流中解析出指示資訊,根據該指示資訊從權重預測角度清單中選擇一個權重預測角度作為當前塊的權重預測角度,根據該指示資訊從權重預測位置清單中選擇一個權重預測位置作為當前塊的權重預測位置。
應用場景1:編碼端在向解碼端發送編碼位元流時,該編碼位元流可以包括指示資訊1,指示資訊1用於指示當前塊的權重預測角度(即目標權重預測角度)和當前塊的權重預測位置(即目標權重預測位置)。例如,當指示資訊1為0時,用於指示權重預測角度列表中的第一個權重預測角度,且指示權重預測位置列表中的第一個權重預測位置,當指示資訊1為1時,用於指示權重預測角度列表中的第一個權重預測角度,且指示權重預測位置列表中的第二個權重預測位置,以此類推,對於指示資訊1的取值,用於指示哪個權重預測角度和哪個權重預測位置,只要編碼端與解碼端進行約定即可,本實施例中對此不做限制。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊1,基於該指示資訊1,解碼端可以從權重預測角度列表中選擇與該指示資訊1對應的權重預測角度,該權重預測角度作為當前塊的權重預測角度。基於該指示資訊1,解碼端可以從權重預測位置列表中選擇與該指示資訊1對應的權重預測位置,該權重預測位置作為當前塊的權重預測位置。
應用場景2:編碼端在向解碼端發送編碼位元流時,該編 碼位元流可以包括指示資訊2和指示資訊3。指示資訊2用於指示當前塊的目標權重預測角度,如目標權重預測角度在權重預測角度清單中的索引值1,索引值1表示目標權重預測角度是權重預測角度列表中的第幾個權重預測角度。指示資訊3用於指示當前塊的目標權重預測位置,如目標權重預測位置在權重預測位置清單中的索引值2,索引值2表示目標權重預測位置是權重預測位置列表中的第幾個權重預測位置。解碼端接收到編碼位元流後,從編碼位元流中解析出指示資訊2和指示資訊3,基於指示資訊2,從權重預測角度清單中選擇與該索引值1對應的權重預測角度,該權重預測角度作為當前塊的權重預測角度。基於該指示資訊3,從權重預測位置清單中選擇與該索引值2對應的權重預測位置,該權重預測位置作為當前塊的權重預測位置。
應用場景3:編碼端和解碼端可以約定優選配置組合,對此優選配置組合不做限制,可以根據實際經驗進行配置,例如,編碼端和解碼端約定包括權重預測角度A和權重預測位置4的優選配置組合1,包括權重預測角度B和權重預測位置4的優選配置組合2。
編碼端確定當前塊的目標權重預測角度和目標權重預測位置後,確定目標權重預測角度和目標權重預測位置是否為優選配置組合。如果是,則編碼端在向解碼端發送編碼位元流時,該編碼位元流可以包括指示資訊4和指示資訊5。指示資訊4用於指示當前塊是否採用優選配置組合,如指示資訊4為第一取值(如0),表示當前塊採用優選配置組合。指示資訊5用於指示當前塊採用哪個優選配置組合,如指示資訊5為0時,用於指示當前塊採用優選配置組合1,指示資訊5為1時,用於指示當前塊採用優選配置組合2。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊4和指示資訊5,基於該指示資訊4,解碼端確定當前塊是否採用優選配置組合。若指示資訊4為第一取值,則確定當前塊採用優選配置組合。在當前塊採用優選配置組合時,解碼端基於指示資訊5,確定當前塊採用哪個優選配置組合,如當指示資訊5為0時,確定當前塊採用優選配置 組合1,即當前塊的權重預測角度為權重預測角度A,當前塊的權重預測位置為權重預測位置4。又例如,當指示資訊5為1時,確定當前塊採用優選配置組合2,即當前塊的權重預測角度為權重預測角度B,當前塊的權重預測位置為權重預測位置4。
示例性的,若編碼端和解碼端只約定一組優選配置組合,如包括權重預測角度A和權重預測位置4的優選配置組合,則該編碼位元流可以只包括指示資訊4,而不包括指示資訊5,指示資訊4用於指示當前塊採用優選配置組合。解碼端從該編碼位元流中解析出指示資訊4後,若指示資訊4為第一取值,則確定當前塊採用優選配置組合,基於該優選配置組合,確定當前塊的權重預測角度為權重預測角度A,當前塊的權重預測位置為權重預測位置4。
應用場景4:編碼端和解碼端可以約定優選配置組合,編碼端確定當前塊的目標權重預測角度和目標權重預測位置後,確定目標權重預測角度和目標權重預測位置是否為優選配置組合。如果否,則編碼端向解碼端發送編碼位元流時,該編碼位元流包括指示資訊4和指示資訊6。指示資訊4用於指示當前塊是否採用優選配置組合,如指示資訊4為第二取值(如1),表示當前塊未採用優選配置組合。指示資訊6用於指示當前塊的目標權重預測角度和當前塊的目標權重預測位置。例如,當指示資訊6為0時,用於指示權重預測角度列表中的第一個權重預測角度,且指示權重預測位置列表中的第一個權重預測位置,以此類推。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊4和指示資訊6,基於該指示資訊4,解碼端確定當前塊是否採用優選配置組合。若指示資訊4為第二取值,則確定當前塊未採用優選配置組合。在當前塊未採用優選配置組合時,解碼端基於指示資訊6,可以從權重預測角度列表中選擇與該指示資訊6對應的權重預測角度,該權重預測角度作為當前塊的權重預測角度,基於該指示資訊6,解碼端可以從權重預測位置列表中選擇與該指示資訊6對應的權重預測位置,該權重預測位置作為當前塊的權重預測位置。
應用場景5:編碼端和解碼端可以約定優選配置組合,編碼端確定當前塊的目標權重預測角度和目標權重預測位置後,確定目標權重預測角度和目標權重預測位置是否為優選配置組合。如果否,則編碼端向解碼端發送編碼位元流時,該編碼位元流包括指示資訊4,指示資訊7和指示資訊8。示例性的,指示資訊4用於指示當前塊是否採用優選配置組合,如指示資訊4為第二取值,表示當前塊未採用優選配置組合。指示資訊7用於指示當前塊的目標權重預測角度,如目標權重預測角度在權重預測角度清單中的索引值1,索引值1表示目標權重預測角度是權重預測角度列表中的第幾個權重預測角度。指示資訊8用於指示當前塊的目標權重預測位置,如目標權重預測位置在權重預測位置清單中的索引值2,索引值2表示目標權重預測位置是權重預測位置列表中的第幾個權重預測位置。
解碼端在接收到編碼位元流後,從該編碼位元流中解析出指示資訊4,指示資訊7和指示資訊8,基於該指示資訊4,解碼端確定當前塊是否採用優選配置組合。若指示資訊4為第二取值,則確定當前塊未採用優選配置組合。在當前塊未採用優選配置組合時,解碼端基於該指示資訊7,從權重預測角度清單中選擇與該索引值1對應的權重預測角度,該權重預測角度作為當前塊的權重預測角度。解碼端基於該指示資訊8,從權重預測位置清單中選擇與該索引值2對應的權重預測位置,該權重預測位置作為當前塊的權重預測位置。
實施例10:在實施例1-實施例3中,編碼端/解碼端需要獲取當前塊的權重變換率,若當前塊支援權重變換率切換模式,則採用如下方式獲取當前塊的權重變換率:獲取當前塊的第二權重變換率指示資訊;從預設的查閱資料表中選擇與該第二權重變換率指示資訊對應的權重變換率;該預設的查閱資料表包括至少兩個權重變換率。將選擇的權重變換率確定為當前塊的權重變換率。
由於預設的查閱資料表包括至少兩個權重變換率,因此,若當前塊支援權重變換率切換模式,則可以從至少兩個權重變換率中選擇當前塊的權重變換率,即,當前塊的權重變換率是可變的,從而能夠自我調 整的切換權重變換率,而不是採用統一的一個權重變換率。
示例性的,若切換控制資訊允許當前塊啟用權重變換率切換模式,則當前塊支援權重變換率切換模式,若切換控制資訊不允許當前塊啟用權重變換率切換模式,則當前塊不支持權重變換率切換模式,關於當前塊是否支持權重變換率切換模式的內容,參見實施例8。
在一種可能的實施方式中,預設的查閱資料表可以包括至少兩個權重變換率,第二權重變換率指示資訊可以包括權重變換率索引資訊(用於指示查閱資料表中所有權重變換率中的某個權重變換率)。基於此,可以從該查閱資料表中選擇與該權重變換率索引資訊對應的權重變換率。
針對編碼端來說,若只存在一個查閱資料表,則針對查閱資料表中的每個權重變換率,編碼端可以確定與該權重變換率對應的RDO代價值,並將最小的RDO代價值對應的權重變換率作為當前塊的目標權重變換率,確定目標權重變換率在查閱資料表中的索引資訊,即權重變換率索引資訊,該權重變換率索引資訊表示該查閱資料表中的第幾個權重變換率。
針對解碼端來說,若只存在一個查閱資料表,編碼端向解碼端發送當前塊的編碼位元流時,該編碼位元流可以攜帶權重變換率索引資訊,該權重變換率索引資訊用於指示目標權重變換率在查閱資料表中的索引資訊。解碼端從該查閱資料表中選擇與該權重變換率索引資訊對應的權重變換率,該權重變換率作為當前塊的目標權重變換率。
在另一種可能的實施方式中,預設的查閱資料表可以包括至少兩個查閱資料表,每個查閱資料表中可以包括至少一個權重變換率,第二權重變換率指示資訊可以包括查閱資料表索引資訊(用於指示所有查閱資料表中的某個查閱資料表)和權重變換率索引資訊(用於指示查閱資料表中所有權重變換率中的某個權重變換率)。基於此,可以從至少兩個查閱資料表中選擇與該查閱資料表索引資訊對應的目標查閱資料表,並從目標查閱資料表中選擇與該權重變換率索引資訊對應的權重變換率。
示例性的,預設的查閱資料表可以包括第一查閱資料表和 第二查閱資料表,第二查閱資料表包括的權重變換率的絕對值的最大值,大於第一查閱資料表包括的權重變換率的絕對值的最大值,比如說,第二查閱資料表包括的權重變換率的絕對值為4,8,第一查閱資料表包括的權重變換率的絕對值為5,7,顯然,第二查閱資料表包括的權重變換率的絕對值的最大值為8,第一查閱資料表包括的權重變換率的絕對值的最大值為7。第二查閱資料表包括的權重變換率的絕對值與第一查閱資料表包括的權重變換率的絕對值不完全相同,比如說,第二查閱資料表包括的權重變換率的絕對值為4,8,第一查閱資料表包括的權重變換率的絕對值為1,2,4,兩個查閱資料表包括的權重變換率的絕對值不完全相同。或者,第二查閱資料表包括的權重變換率的絕對值與第一查閱資料表包括的權重變換率的絕對值完全不同,比如說,第二查閱資料表包括的權重變換率的絕對值為4,8,第一查閱資料表包括的權重變換率的絕對值為1,2,兩個查閱資料表包括的權重變換率的絕對值完全不同。
示例性的,第二權重變換率指示資訊包括查閱資料表索引資訊和權重變換率索引資訊,該查閱資料表索引資訊可以為當前塊對應的SCC標識,且該SCC標識用於指示當前塊屬於螢幕內容編碼,或者,該SCC標識用於指示當前塊屬於非螢幕內容編碼。若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則與該SCC標識對應的目標查閱資料表為第一查閱資料表。若該SCC標識用於指示當前塊屬於螢幕內容編碼,則與該SCC標識對應的目標查閱資料表為第二查閱資料表。
綜上所述,可以獲取當前塊對應的SCC標識(即查閱資料表索引資訊)和權重變換率索引資訊,若該SCC標識用於指示當前塊屬於非螢幕內容編碼,則確定目標查閱資料表為第一查閱資料表,並從第一查閱資料表中選擇與該權重變換率索引資訊對應的權重變換率,將選擇的權重變換率確定為當前塊的權重變換率。若該SCC標識用於指示當前塊屬於螢幕內容編碼,則確定目標查閱資料表為第二查閱資料表,並從第二查閱資料表中選擇與該權重變換率索引資訊對應的權重變換率,將選擇的權重變換率確定為當前塊的權重變換率。至此,成功得到當前塊的權重變換率。
針對編碼端來說,關於編碼端獲取SCC標識的過程,可以參見實施例8,在此不再贅述。
若SCC標識用於指示當前塊屬於非螢幕內容編碼,則目標查閱資料表可以為第一查閱資料表,針對第一查閱資料表中的每個權重變換率,編碼端確定與該權重變換率對應的RDO代價值,並將最小的RDO代價值對應的權重變換率作為當前塊的目標權重變換率,確定目標權重變換率在第一查閱資料表中的索引資訊,即權重變換率索引資訊。若SCC標識用於指示當前塊屬於螢幕內容編碼,則目標查閱資料表可以為第二查閱資料表,針對第二查閱資料表中的每個權重變換率,編碼端確定與該權重變換率對應的RDO代價值,並將最小的RDO代價值對應的權重變換率作為當前塊的目標權重變換率,確定目標權重變換率在第二查閱資料表中的索引資訊,即權重變換率索引資訊,該權重變換率索引資訊表示第二查閱資料表中的第幾個權重變換率。
針對解碼端來說,關於解碼端獲取SCC標識的過程,可以參見實施例8,在此不再贅述。
編碼端向解碼端發送當前塊的編碼位元流時,該編碼位元流可以攜帶權重變換率索引資訊,該權重變換率索引資訊用於指示目標權重變換率在第一查閱資料表或者第二查閱資料表中的索引資訊。若SCC標識用於指示當前塊屬於非螢幕內容編碼,則目標查閱資料表可以為第一查閱資料表,解碼端從第一查閱資料表中選擇與該權重變換率索引資訊(該權重變換率索引資訊表示第一查閱資料表中的第幾個權重變換率)對應的權重變換率,該權重變換率作為當前塊的權重變換率。若SCC標識用於指示當前塊屬於螢幕內容編碼,則目標查閱資料表可以為第二查閱資料表,解碼端從第二查閱資料表中選擇與該權重變換率索引資訊(該權重變換率索引資訊表示第二查閱資料表中的第幾個權重變換率)對應的權重變換率,該權重變換率作為當前塊的權重變換率。
實施例11:在實施例1-實施例3中,編碼端/解碼端需要獲取當前塊的權重預測角度,當前塊的權重預測位置和當前塊的權重變換 率,在實施例10中,可以得到當前塊的權重變換率,在此基礎上,可以採用如下方式獲取當前塊的權重預測角度和權重預測位置:
方式一、編碼端和解碼端約定相同的權重預測角度作為當前塊的權重預測角度,並約定相同的權重預測位置作為當前塊的權重預測位置。例如,編碼端和解碼端將權重預測角度A作為當前塊的權重預測角度,編碼端和解碼端將權重預測位置4作為當前塊的權重預測位置。
方式二、編碼端構建權重預測角度列表,權重預測角度列表包括至少一個權重預測角度,如權重預測角度A和權重預測角度B。編碼端構建權重預測位置列表,權重預測位置列表包括至少一個權重預測位置,如權重預測位置0-權重預測位置數6。編碼端構建至少兩個查閱資料表,以第一查閱資料表和第二查閱資料表為例,第一查閱資料表包括至少一個權重變換率,第二查閱資料表包括至少一個權重變換率。編碼端確定出目標查閱資料表,確定方式參見實施例10,以目標查閱資料表是第一查閱資料表為例。編碼端依次遍歷權重預測角度列表中每個權重預測角度,遍歷權重預測位置列表中每個權重預測位置,遍歷目標查閱資料表中每個權重變換率,即遍歷每個權重預測角度,每個權重預測位置,每個權重變換率的組合。針對權重預測角度,權重預測位置及權重變換率的每個組合,作為步驟401中獲取的權重預測角度,權重預測位置及權重變換率,基於權重預測角度,權重預測位置及權重變換率執行步驟402-408,得到當前塊的加權預測值。
綜上所述,編碼端可以基於每個組合(即權重預測角度,權重預測位置及權重變換率的組合),得到當前塊對應的加權預測值。在得到當前塊各個加權預測值後,編碼端可以根據當前塊每個的加權預測值確定對應的RDO代價值,對此RDO代價值的確定方式不做限制,編碼端可以得到每個組合的RDO代價值,並從所有RDO代價值中選擇最小RDO代價值。
然後,編碼端將最小RDO代價值對應的權重預測角度、權重預測位置和權重變換率分別作為目標權重預測角度、目標權重預測位 置和目標權重變換率,最後,將目標權重預測角度在權重預測角度清單中的索引值,目標權重預測位置在權重預測位置清單中的索引值,及目標權重變換率在目標查閱資料表中的索引值,均編入當前塊的碼流。
針對解碼端來說,解碼端構建權重預測角度列表,該權重預測角度清單與編碼端的權重預測角度列表相同,解碼端構建權重預測位置列表,該權重預測位置清單與編碼端的權重預測位置列表相同,解碼端構建查閱資料表,該查閱資料表與編碼端的查閱資料表相同。解碼端在接收到當前塊的編碼位元流後,從該編碼位元流中解析出指示資訊,根據該指示資訊從權重預測角度清單中選擇一個權重預測角度作為當前塊的權重預測角度,根據該指示資訊從權重預測位置清單中選擇一個權重預測位置作為當前塊的權重預測位置,權重預測角度和權重預測位置的獲取方式,參見實施例9,在此不再贅述。解碼端在接收到當前塊的編碼位元流後,可以確定目標查閱資料表(如第一查閱資料表、第二查閱資料表),並根據權重變換率索引資訊從目標查閱資料表中選擇一個權重變換率作為當前塊的權重變換率,關於權重變換率的獲取方式,參見實施例10,在此不再贅述。
實施例12:在上述實施例1-實施例3中,需要根據第一預測模式確定像素位置的第一預測值,並根據第二預測模式確定像素位置的第二預測值。
本實施例中,以第一預測模式為幀間預測模式,第二預測模式為幀間預測模式為例進行說明。
情況1、第一預測模式為幀間預測模式,第二預測模式為幀間預測模式,獲取運動資訊候選清單,運動資訊候選清單包括至少兩個候選運動資訊。從運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一目標運動資訊,從運動資訊候選清單中選擇另一個候選運動資訊作為當前塊的第二目標運動資訊。針對當前塊的每個像素位置,根據第一目標運動資訊確定該像素位置的第一預測值,根據第二目標運動資訊確定該像素位置的第二預測值。
示例性的,針對編碼端和解碼端來說,均可以獲取運動資訊候選清單,且編碼端的運動資訊候選清單與解碼端的運動資訊候選清單相同,對此運動資訊候選清單不做限制。
示例性的,運動資訊候選清單中的候選運動資訊均為單假設運動資訊,比如說,運動資訊候選清單中的候選運動資訊,只是單向運動資訊,而不是雙向運動資訊。顯然,由於候選運動資訊均為單假設運動資訊,因此,運動資訊候選清單可以為單向運動資訊候選清單。
關於運動資訊候選清單的獲取過程,可以參見後續實施例,在此不再贅述。
針對編碼端來說,可以基於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對應的候選運動資訊,該候選運動資訊作為當前塊的第二目標運動資訊。
關於編碼端/解碼端根據第一目標運動資訊確定像素位置的第一預測值,根據第二目標運動資訊確定像素位置的第二預測值的過程,可以參見幀間預測過程,對此不做限制。
示例性的,在根據第一目標運動資訊確定像素位置的第一預測值時,可以採用幀間加權預測模式得到像素位置的第一預測值。例如,先利用第一目標運動資訊確定像素位置的初始預測值,然後對該初始預測值乘以預設因數,得到調整預測值。若調整預測值大於最大預測值,則將最大預測值作為當前塊的第一預測值,若調整預測值小於最小預測值,則將最小預測值作為當前塊的第一預測值,若調整預測值不小於最小預測值,且不大於最大預測值,則將調整預測值作為當前塊的第一預測值。當然,上述方式只是示例,對此不做限制。
同理,在根據第二目標運動資訊確定像素位置的第二預測值時,也可以採用幀間加權預測模式得到像素位置的第二預測值,具體實現方式參見上述示例,在此不再贅述。
情況2、第一預測模式為幀間預測模式,第二預測模式為 幀間預測模式,獲取第一運動資訊候選清單和第二運動資訊候選清單,第一運動資訊候選清單包括至少一個候選運動資訊,第二運動資訊候選清單包括至少一個候選運動資訊。從第一運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一目標運動資訊,從第二運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第二目標運動資訊。針對當前塊的每個像素位置,根據第一目標運動資訊確定該像素位置的第一預測值;根據第二目標運動資訊確定該像素位置的第二預測值。
示例性的,針對編碼端和解碼端來說,均可以獲取第一運動信息候選清單和第二運動資訊候選清單,且編碼端的第一運動資訊候選清單與解碼端的第一運動資訊候選清單相同,編碼端的第二運動資訊候選清單與解碼端的第二運動資訊候選清單相同。
第一運動資訊候選清單中的候選運動資訊均為單假設運動資訊,即,針對第一運動資訊候選清單中的候選運動資訊,只是單向運動資訊,而不是雙向運動資訊。顯然,由於候選運動信息均為單假設運動信息,因此,第一運動資訊候選清單可以為單向運動資訊候選清單。
第二運動資訊候選清單中的候選運動資訊均為單假設運動資訊,即,針對第二運動資訊候選清單中的候選運動資訊,只是單向運動資訊,而不是雙向運動資訊。顯然,由於候選運動資訊均為單假設運動資訊,因此,第二運動資訊候選清單可以為單向運動資訊候選清單。
關於第一運動資訊候選清單和第二運動資訊候選清單的獲取過程,參見後續實施例。
針對編碼端來說,可以基於RDO原則,從第一運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一目標運動資訊,從第二運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第二目標運動資訊,第一目標運動資訊與第二目標運動資訊不同,對此不做限制。
編碼端向解碼端發送編碼位元流時,該編碼位元流攜帶指示資訊a和指示資訊b,指示資訊a用於指示當前塊的第一目標運動資訊的 索引值1,索引值1表示第一目標運動資訊是第一運動資訊候選清單中的第幾個候選運動資訊。指示資訊b用於指示當前塊的第二目標運動資訊的索引值2,索引值2表示第二目標運動資訊是第二運動資訊候選清單中的第幾個候選運動資訊。解碼端接收到編碼位元流後,從編碼位元流中解析出指示資訊a和指示資訊b。基於指示資訊a,從第一運動資訊候選清單中選擇索引值1對應的候選運動資訊,該候選運動資訊作為當前塊的第一目標運動資訊。基於指示資訊b,從第二運動資訊候選清單中選擇索引值2對應的候選運動資訊,該候選運動資訊作為當前塊的第二目標運動資訊。
在上述情況中,第一預測模式的預測資訊的指示資訊與第二預測模式的預測資訊的指示資訊,可以進行互換,編碼端與解碼端一致即可,此處是指示資訊的互換,不影響解析過程,即不存在解析依賴。在同一預測模式候選清單的情況下,第一預測模式的預測資訊的指示資訊與第二預測模式的預測資訊的指示資訊不能相等,假設編碼兩個索引值,索引值a的取值為1,索引值b的取值為3,先編碼索引值a時,索引值b可以編碼2(3-1),在先編碼索引值b時,則索引值b需要編碼3。綜上所述,先編碼索引值小的指示資訊,可以降低較大索引值的編碼代價,在預測模式候選清單構建方式下,第一個預測模式大概率來自左側,根據這個先驗進行編碼端與解碼端的調整,可以先編碼與左側相鄰區域的預測資訊的指示資訊。
以下結合情況1進行說明,其它情況與情況1類似。在情況1中,預測模式候選清單可以為運動資訊候選清單,第一預測模式的預測資訊可以為第一目標運動資訊,第二預測模式的預測資訊可以為第二目標運動資訊。在編碼位元流中,先編碼第一目標運動資訊的指示資訊,如索引值a,後編碼第二目標運動資訊的指示資訊,如索引值b。也可以先編碼第二目標運動資訊的指示資訊,如索引值b,後編碼第一目標運動資訊的指示資訊,如索引值a。例如,假設索引值a的取值為1,索引值b的取值為3,則先編碼索引值a,後編碼索引值b。又例如,假設索引值b的取值為1,索引值a的取值為3,則先編碼索引值b,後編碼索引值a。
實施例13:在上述實施例1-實施例3中,需要根據第一預 測模式確定像素位置的第一預測值,並根據第二預測模式確定像素位置的第二預測值。示例性的,第一預測模式可以為幀內塊複製預測模式,幀內預測模式,幀間預測模式,調色板模式中的任意一個;第二預測模式可以為幀內塊複製預測模式,幀內預測模式,幀間預測模式,調色板模式中的任意一個。
本實施例中,以第一預測模式為幀間預測模式,第二預測模式為幀間預測模式為例進行說明。由於第一預測模式為幀間預測模式,基於此,根據當前塊的第一預測模式確定像素位置的第一預測值,可以包括:獲取運動資訊候選清單,運動資訊候選清單中包括至少一個候選運動資訊;從運動資訊候選清單中選擇一個候選運動資訊作為當前塊的原始運動資訊;根據原始運動資訊確定當前塊的目標運動資訊;根據目標運動資訊確定像素位置的第一預測值。
情況1、第一預測模式為幀間預測模式,第二預測模式為幀間預測模式,獲取運動資訊候選清單,該運動資訊候選清單可以包括至少兩個候選運動資訊。從該運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一原始運動資訊,並從運動資訊候選清單中選擇另一個候選運動資訊作為當前塊的第二原始運動資訊,第一原始運動資訊和第二原始運動資訊不同。然後,根據第一原始運動資訊確定當前塊的第一目標運動資訊,並根據第二原始運動資訊確定當前塊的第二目標運動資訊。針對當前塊的每個像素位置,根據第一目標運動資訊確定該像素位置的第一預測值,根據第二目標運動資訊確定該像素位置的第二預測值。
關於運動資訊候選清單的獲取過程,可以參見後續實施例,在此不再贅述。關於根據第一目標運動資訊確定第一預測值,根據第二目標運動資訊確定第二預測值的過程,可以參見實施例12,在此不再贅述。與實施例12不同的是,在實施例13中,從運動資訊候選清單中選擇的候選運動資訊作為原始運動資訊,而不是作為目標運動資訊。在得到原始運動資訊,還可以根據原始運動資訊獲取目標運動資訊,具體獲取過程參見後續實施例。
情況2、第一預測模式為幀間預測模式,第二預測模式為幀間預測模式,獲取第一運動資訊候選清單和第二運動資訊候選清單,第一運動資訊候選清單包括至少一個候選運動資訊,第二運動資訊候選清單包括至少一個候選運動資訊。從第一運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第一原始運動資訊,根據第一原始運動資訊確定當前塊的第一目標運動資訊。從第二運動資訊候選清單中選擇一個候選運動資訊作為當前塊的第二原始運動資訊,根據第二原始運動資訊確定當前塊的第二目標運動資訊。針對當前塊的每個像素位置,根據第一目標運動資訊確定該像素位置的第一預測值;根據第二目標運動資訊確定該像素位置的第二預測值。與實施例12不同的是,在實施例13中,從運動資訊候選清單中選擇的候選運動資訊作為原始運動資訊,而不是作為目標運動資訊。在得到原始運動資訊,還可以根據原始運動資訊獲取目標運動資訊,具體獲取過程參見後續實施例。
綜上所述,針對上述情況,當預測模式為幀間預測模式時,可以獲取運動資訊候選清單,該運動資訊候選清單中包括至少一個候選運動資訊。然後,可以從該運動資訊候選清單中選擇候選運動資訊作為當前塊的原始運動資訊,並根據第一原始運動資訊確定第一目標運動資訊,根據第二原始運動資訊確定第二目標運動資訊。然後,根據該目標運動資訊確定像素位置的預測值。
關於如何根據原始運動資訊確定目標運動資訊,本實施例中給出一種單向運動資訊疊加運動向量差(Motion Vector Refinement,MVD)的方案,比如說,原始運動資訊包括原始運動向量,目標運動資訊包括目標運動向量,為了根據原始運動向量確定當前塊的目標運動向量,則可以獲取與原始運動向量對應的運動向量差(MVD),並根據運動向量差和原始運動向量確定目標運動向量,即運動向量差與原始運動向量的和作為目標運動向量。
實施例14:在實施例13的基礎上,約定運動向量差的方向資訊和幅值資訊,若方向資訊表示方向為向右,幅值資訊表示幅值為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分別表示一個取值集合,不同方向上的幅值集合中的各個數值可以完全相同,可以部分相同,也可以完全不同。
示例性的,運動向量差可以支援上述方向資訊的部分或者全部,運動向量差支援的幅值的取值範圍,可以根據經驗進行配置,可以為至少一個取值,對此不做限制。
例如,運動向量差支持上,下,左,右等四個方向,運動向量差支援如下5類步長配置:¼-pel,½-pel,1-pel,2-pel,4-pel,即幅值的取值可以為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,即幅值的取值可以為1,2,4,8,12,16。綜上所述,在方向為向上時,運動向量差可以為(0,1),(0,2),(0,4),(0,8),(0,12),(0,16),關於其它方向的運動向量差,與“上”的實現方式類似,在此不 再贅述。
又例如,運動向量差支持上,下,左,右,左上,左下,右上,右下等八個方向,運動向量差支援如下3類步長配置:¼-pel,½-pel,1-pel,即幅值的取值可以為1,2,4。綜上所述,在方向為向左上時,運動向量差可以為(-1,1),(-2,2),(-4,4);在方向為向右上時,運動向量差可以為(1,1),(2,2),(4,4),關於其它方向的運動向量差,與“左上、右上”的實現方式類似,運動向量差的取值參見上述約定,在此不再贅述。
又例如,運動向量差支持上,下,左,右等四個方向,運動向量差支援如下4類步長配置:¼-pel,½-pel,1-pel,2-pel,即幅值的取值可以為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類值)進行編碼。
當然,上述只是編碼方式的幾個示例,對此編碼方式不做限制。
綜上所述,針對編碼端來說,可以在一定區域內搜索到最佳運動向量,而後將最佳運動向量與候選運動向量的差值,作為運動向量差,將運動向量差的幅值資訊和方向資訊編入碼流,並將候選運動向量在運動資訊候選清單中的索引值編入碼流。編碼端在一定區域內搜索最佳運動向量時,需要約定運動向量差的方向以及幅值,即,在(Ar,0),(0,-Ad),(-Al,0),(0,Au),(Aru,Aru),(-Alu,Alu),(-Ald,-Ald),(Ard,-Ard)等運動向量差的限定範圍內,搜索最佳運動向量,而不是在任意運動向量差的範圍搜索最佳運動向量。
針對解碼端來說,在接收到當前塊的編碼位元流後,可以從編碼位元流中解析出候選運動向量在運動資訊候選清單中的索引值,並從運動資訊候選清單中選擇與該索引值對應的候選運動向量,將該候選運動向量作為當前塊的原始運動向量。解碼端還可以從該編碼位元流中解析出運動向量差的方向資訊和幅值資訊,並根據該方向資訊和幅值資訊確定運動向量差。
然後,解碼端可以根據該運動向量差和該原始運動向量確定當前塊的目標運動向量,比如說,該運動向量差與該原始運動向量的和,可以作為當前塊的目標運動向量。
參見上述實施例,在根據方向資訊和幅值資訊確定運動向量差時,若方向資訊表示方向為向右,幅值資訊表示幅值為Ar,則運動向量差為(Ar,0);若方向資訊表示方向為向下,幅值資訊表示幅值為Ad, 則運動向量差為(0,-Ad);若方向資訊表示方向為向左,幅值資訊表示幅值為Al,則運動向量差為(-Al,0);若方向資訊表示方向為向上,幅值資訊表示幅值為Au,則運動向量差為(0,Au);若方向資訊表示方向為向右上,幅值資訊表示幅值為Aru,則運動向量差為(Aru,Aru);若方向資訊表示方向為向左上,幅值資訊表示幅值為Alu,則運動向量差為(-Alu,Alu);若方向資訊表示方向為向左下,幅值資訊表示幅值為Ald,則運動向量差為(-Ald,-Ald);若方向資訊表示方向為向右下,幅值資訊表示幅值為Ard,則運動向量差為(Ard,-Ard)。
參見上述實施例,編碼端在對運動向量差的方向資訊進行編碼時,可以採用定長碼,截斷一元碼等方式,因此,解碼端可以採用定長碼,截斷一元碼等方式,對運動向量差的方向資訊進解碼,得到運動向量差的方向資訊,如上,下,左,右,左上,左下,右上,右下等。
參見上述實施例,編碼端在對運動向量差的幅值資訊進行編碼時,可以採用定長碼,截斷一元碼等方式,因此,解碼端可以採用定長碼,截斷一元碼等方式,對運動向量差的幅值資訊進解碼,得到運動向量差的幅值資訊,如¼-pel,½-pel,1-pel,2-pel等步長配置,繼而根據¼-pel,½-pel,1-pel,2-pel等步長配置確定出運動向量差的幅值的取值。
綜上所述,解碼端可以從編碼位元流中解析中運動向量差的方向資訊和幅值資訊,在解析出方向資訊和幅值資訊後,就可以根據方向資訊和幅值資訊確定運動向量差。
在一種可能的實施方式中,編碼端還可以在編碼位元流中編碼標誌資訊,該標誌資訊指示對原始運動向量疊加運動向量差,或者對原始運動向量不疊加運動向量差。該標誌資訊可以是增強角度加權預測模式的子模式標誌,此外,增強角度加權預測模式也可以被稱為AWP與運動向量細化(AWP with motion vector refinement,AWP-MVR)模式。解碼端在接收到當前塊的編碼位元流後,先從當前塊的編碼位元流中解析出該標誌資訊。若該標誌資訊指示對原始運動向量疊加運動向量差,則解碼端從當前塊的編碼位元流中解析出運動向量差的方向資訊和幅值資訊,並根據該方 向資訊和該幅值資訊確定運動向量差,再根據原始運動向量和運動向量差確定當前塊的目標運動向量。若該標誌資訊指示對原始運動向量不疊加運動向量差,則解碼端不會解析運動向量差的方向資訊和幅值資訊,直接將原始運動向量作為當前塊的目標運動向量。
示例性的,當增強角度加權預測模式的子模式標誌為第一子模式取值時,指示對原始運動向量疊加運動向量差,當增強角度加權預測模式的子模式標誌為第二子模式取值時,表示對原始運動向量不疊加運動向量差。第一子模式取值和第二子模式取值可以根據經驗配置,如第一子模式取值為1,第二子模式取值為0,或者,如第一子模式取值為0,第二子模式取值為1,當然,上述只是兩個示例,對此不做限制。
在一種可能的實施方式中,針對實施例13的情況1或情況2,第一原始運動資訊包括第一原始運動向量,第一目標運動資訊包括第一目標運動向量,第二原始運動資訊包括第二原始運動向量,第二目標運動資訊包括第二目標運動向量,基於此,可以獲取與第一原始運動向量對應的第一運動向量差,並根據第一運動向量差和第一原始運動向量確定第一目標運動向量,即第一運動向量差與第一原始運動向量的和作為第一目標運動向量。可以獲取與第二原始運動向量對應的第二運動向量差,並根據第二運動向量差和第二原始運動向量確定第二目標運動向量,即第二運動向量差與第二原始運動向量的和作為第二目標運動向量。
針對編碼端來說,可以採用RDO原則確定與第一原始運動向量對應的第一運動向量差,以及,與第二原始運動向量對應的第二運動向量差,對此確定過程不再贅述。
編碼端在向解碼端發送當前塊的編碼位元流時,編碼位元流可以攜帶第一運動向量差的方向資訊和幅值資訊,以及,第二運動向量差的方向資訊和幅值資訊。
針對解碼端來說,在接收到當前塊的編碼位元流後,解碼端可以從該編碼位元流中解析出第一運動向量差的方向資訊和幅值資訊, 並根據第一運動向量差的方向資訊和幅值資訊確定第一運動向量差。可以從該編碼位元流中解析出第二運動向量差的方向資訊和幅值資訊,並根據第二運動向量差的方向資訊和幅值資訊確定第二運動向量差。然後,解碼端可以根據第一運動向量差和第一原始運動向量確定當前塊的第一目標運動向量,並根據第二運動向量差和第二原始運動向量確定當前塊的第二目標運動向量。
在一種可能的實施方式中,編碼端還可以在編碼位元流中編碼增強角度加權預測模式的第一子模式標誌和第二子模式標誌,第一子模式標誌指示對第一原始運動向量疊加運動向量差,或者對第一原始運動向量不疊加運動向量差。第二子模式標誌指示對第二原始運動向量疊加運動向量差,或者對第二原始運動向量不疊加運動向量差。
在一種可能的實施方式中,上述第一子模式標誌也可以是編碼位元流中的第一標誌位元,上述第二子模式標誌也可以是編碼位元流中的第二標誌位元。
解碼端在接收到當前塊的編碼位元流後,可以先從當前塊的編碼位元流中解析出增強角度加權預測模式的第一子模式標誌和第二子模式標誌。若第一子模式標誌指示對第一原始運動向量疊加運動向量差,則從當前塊的編碼位元流中解析出第一運動向量差的方向資訊和幅值資訊,並根據第一運動向量差的方向資訊和幅值資訊確定第一運動向量差,繼而根據第一原始運動向量和第一運動向量差確定當前塊的第一目標運動向量。若第一子模式標誌指示對第一原始運動向量不疊加運動向量差,則不會解析第一運動向量差的方向資訊和幅值資訊,可以直接將第一原始運動向量作為當前塊的第一目標運動向量。若第二子模式標誌指示對第二原始運動向量疊加運動向量差,則從當前塊的編碼位元流中解析出第二運動向量差的方向資訊和幅值資訊,並根據第二運動向量差的方向資訊和幅值資訊確定第二運動向量差,繼而根據第二原始運動向量和第二運動向量差確定當前塊的第二目標運動向量。若第二子模式標誌指示對第二原始運動向量不疊加運動向量差,則不會解析第二運動向量差的方向資訊和幅值資訊,可以 直接將第二原始運動向量作為當前塊的第二目標運動向量。
實施例15:在實施例13和實施例14的基礎上,針對兩個運動向量差的情況,以下結合幾個具體應用場景,對單向運動資訊疊加運動向量差的相關語法進行說明。
應用場景1:參見表4所示,為相關語法的示例,SkipFlag表示當前塊是否為跳過(Skip)模式,DirectFlag表示當前塊是否為直接(Direct)模式,AwpFlag表示當前塊是否為AWP模式。
awp_idx(角度加權預測模式索引):跳過模式或直接模式下的角度加權預測模式索引值,AwpIdx的值,可以等於awp_idx的值。如果碼流中不存在awp_idx,則AwpIdx的值等於0。
awp_cand_idx0(角度加權預測模式的第一運動資訊索引):跳過模式或直接模式下的角度加權預測模式的第一運動資訊索引值。AwpCandIdx0的值等於awp_cand_idx0的值,如果碼流中不存在awp_cand_idx0,則AwpCandIdx0的值等於0。
awp_cand_idx1(角度加權預測模式第二運動資訊索引):跳過模式或直接模式下的角度加權預測模式的第二運動資訊索引值。AwpCandIdx1的值等於awp_cand_idx1的值,如果碼流中不存在awp_cand_idx1,則AwpCandIdx1的值等於0。
awp_mvd_flag(增強角度加權預測模式標誌),是一個二值變數,awp_mvd_flag為第一取值(如1)時,表示當前塊為增強角度加權預測模式,awp_mvd_flag為第二取值(如0)時,表示當前塊為非增強角度加權預測模式。示例性的,AwpMvdF1ag的取值,可以等於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 110119755-A0202-12-0076-4
應用場景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 110119755-A0202-12-0077-5
示例性的,針對應用場景1和應用場景2,二者的區別在於:在應用場景1中,存在語法awp_mvd_flag,在應用場景2中,不存在語法awp_mvd_flag。在應用場景1中,可以通過awp_mvd_flag控制增強角度加權預測模式,即通過總開關控制增強角度加權預測模式。
應用場景3:可以對上述應用場景1和應用場景2進行衍 生,將AWP與AWP-MVR模式完全融合,即對跨度增加0跨度,從而不需要編碼是否使能的標誌位元。例如,運動向量差支持上,下,左,右等四個方向,運動向量差支援如下6類步長配置:0-pel,¼-pel,½-pel,1-pel,2-pel,4-pel,即增加了一個步長配置0-pel。在此基礎上,表4/表5可以更新為表6,表6中相關語法的含義,可以參見表4,在此不再贅述。
Figure 110119755-A0202-12-0078-6
示例性的,在上述實施例中,可以根據原始運動資訊獲取目標運動資訊,在得到目標運動資訊後,還可以存儲當前塊的目標運動資訊,對此存儲方式不做限制。
實施例16:在實施例12和實施例13中,需要獲取運動資訊候選清單,在獲取運動資訊候選清單的過程中,可以獲取待加入到運動信息候選清單中的至少一個可用運動資訊;基於至少一個可用運動資訊,獲取運動資訊候選清單。例如,針對當前待加入到運動資訊候選清單的可用運動資訊,若該可用運動資訊為單向運動資訊,且該單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將該單向運動資訊加入到運動資訊候選清單。若該可用運動資訊為雙向運動資訊,且該雙向運動資訊中的第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將第一單向運動資訊加入到運動資訊候選清單。若該可用運動資訊為雙 向運動資訊,該雙向運動資訊中的第一單向運動資訊與運動資訊候選清單中已存在的候選運動資訊重複,且該雙向運動資訊中的第二單向運動資訊與運動資訊候選清單中已存在的候選運動資訊不重複,則將第二單向運動資訊加入到運動資訊候選清單。
示例性的,第一單向運動資訊是指向第一參考幀列表中參考幀的單向運動資訊,第二單向運動資訊是指向第二參考幀列表中參考幀的單向運動資訊。
在一種可能的實施方式中,若運動資訊候選清單中已存在的候選運動資訊的總數量(即對當前塊來講已存在的候選運動資訊的總數量)為偶數,則第一參考幀列表為參考幀列表List0,第二參考幀列表為參考幀列表List1;若運動資訊候選清單中已存在的候選運動資訊的總數量為奇數,則第一參考幀列表為參考幀列表List0,所述第二參考幀列表為參考幀列表List1。或者,若運動資訊候選清單中已存在的候選運動資訊的總數量為奇數,則第一參考幀列表為參考幀列表List0,第二參考幀列表為參考幀列表List1;若運動資訊候選清單中已存在的候選運動資訊的總數量為偶數,則第一參考幀列表為參考幀列表List0,第二參考幀列表為參考幀列表List1。
在另一可能的實施方式中,第一參考幀列表為參考幀列表List0,第二參考幀列表為參考幀列表List1;或者,第一參考幀列表為參考幀列表List1,第二參考幀列表為參考幀列表List0。
在上述實施例中,待加入到運動資訊候選清單中的至少一個可用運動資訊,可以包括但不限於如下運動資訊的至少一種:空域運動資訊;時域運動資訊;HMVP(History-based Motion Vector Prediction,基於歷史的運動向量預測)運動資訊;預設運動資訊。
示例性的,上述運動資訊候選清單可以為單向運動資訊候選清單,參見圖9所示,為當前塊與相鄰塊的示意圖,針對運動資訊候選清單的獲取過程,基於F,G,C,A,B,D的順序,將單向的空域運動資訊 加入到運動資訊候選清單中並查重,將單向的時域運動資訊加入到運動資訊候選清單中並查重,最後,若運動資訊候選清單不滿,則進行重複填充操作。當然,F,G,C,A,B,D的順序只是一個示例,還可以採用其它順序,對此不做限制。
所謂查重,是將待加入運動資訊候選清單的運動資訊與運動資訊候選清單中已存在每個候選運動資訊進行比較,若和運動資訊候選清單中已存在的所有的候選運動資訊都不重複,則認為不重複;若和運動資訊候選清單中已存在的任一候選運動資訊重複,則認為重複。
以下結合幾個具體應用場景,對運動資訊候選清單的獲取過程進行說明。
應用場景1:空域運動資訊與時域運動資訊一起加入運動資訊候選清單。
第一步,參見圖9所示,F,G,C,A,B,D是當前塊E的相鄰預測塊,確定F,G,C,A,B,D的運動資訊的“可用”性。示例性的,如果F存在且採用幀間預測模式,則F的運動資訊為可用運動資訊;否則,F的運動資訊為不可用運動資訊。如果G存在且採用幀間預測模式,則G的運動資訊為可用運動資訊;否則,G的運動資訊為不可用運動資訊。如果C存在且採用幀間預測模式,則C的運動資訊為可用運動資訊;否則,C的運動資訊為不可用運動資訊。如果A存在且採用幀間預測模式,則A的運動資訊為可用運動資訊;否則,A的運動資訊為不可用運動資訊。如果B存在且採用幀間預測模式,則B的運動資訊為可用運動資訊;否則,B的運動資訊為不可用運動資訊。如果D存在且採用幀間預測模式,則D的運動資訊為可用運動資訊;否則,D的運動資訊為不可用運動資訊。
第二步,按照F、G、C、A、B、D中可用運動資訊的順序(該順序可變,且只包括可用運動資訊),以及時域運動資訊(包括可用運動資訊)的順序,將可用運動資訊加入到運動資訊候選清單AwpUniArray,直至AwpUniArray長度為X或者遍歷結束。
情況一、針對當前待加入到運動資訊候選清單的可用運動資訊,若該可用運動資訊為雙向運動資訊(即包括指向參考幀列表List0的單向運動資訊和指向參考幀清單List1的單向運動資訊),按照運動資訊候選清單中已存在的候選運動資訊的總數量(即運動資訊候選清單AwpUniArray的當前長度)的奇偶性,確認如何將該可用運動資訊加入到運動資訊候選清單AwpUniArray。為簡單起見,該可用運動資訊可以稱為第一可用運動資訊。
方式一、若運動資訊候選清單AwpUniArray中已存在的候選運動資訊的總數量為偶數,則將第一可用運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將第一可用運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。
或者,若運動資訊候選清單AwpUniArray中已存在的候選運動資訊的總數量為奇數,則將第一可用運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將第一可用運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。
方式二、若運動資訊候選清單AwpUniArray中已存在的候選運動資訊的總數量為奇數,則將第一可用運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將第一可用運動資訊中指向參 考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。
或者,若運動資訊候選清單AwpUniArray中已存在的候選運動資訊的總數量為偶數,則將第一可用運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將第一可用運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。
情況二、針對當前待加入到運動資訊候選清單的可用運動資訊,若該可用運動資訊為單向運動資訊,則對該單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將該單向運動資訊加入運動資訊候選清單AwpUniArray。
第三步,如果運動資訊候選清單AwpUniArray的長度小於X,則將運動資訊候選清單AwpUniArray中最後一個單向運動資訊進行重複填充操作,直至列表長度為X。
示例性的,在應用場景1中,時域運動資訊可以為單向運動資訊或者雙向運動資訊。例如,在P幀下,時域運動資訊為單向運動資訊,在B幀下,時域運動資訊為雙向運動資訊。
應用場景2:空域運動資訊加入運動資訊候選清單後,預留Y個位置給時域運動資訊,且時域運動資訊為雙向運動資訊,即運動資訊候選清單中包括Y個時域運動資訊。
第一步,確定F,G,C,A,B,D的運動資訊的“可用”性,參見應用場景1。
第二步,按照F、G、C、A、B、D中可用運動資訊的順序 (該順序可變,且只包括可用運動資訊),將可用運動資訊(各空域可用運動資訊)加入到運動資訊候選清單AwpUniArray,直至運動資訊候選清單AwpUniArray長度為X-Y,或者,可用運動資訊遍歷結束。
應用場景2的第二步可以參見應用場景1的第二步,在此不再重複贅述。
第三步,針對當前待加入到運動資訊候選清單的時域運動資訊(如雙向時域運動資訊,且為可用運動資訊),按照運動資訊候選清單中已存在的候選運動資訊的總數量(即運動資訊候選清單的當前長度)的奇偶性,將該時域運動資訊加入到運動資訊候選清單AwpUniArray。
方式一、若運動資訊候選清單AwpUniArray中已存在的候選運動資訊的總數量為偶數,則將該時域運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將該時域運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。
或者,若運動資訊候選清單AwpUniArray中已存在的候選運動資訊的總數量為奇數,則將該時域運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將該時域運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。
方式二、若運動資訊候選清單AwpUniArray中已存在的候選運動資訊的總數量為奇數,則將該時域運動資訊中指向參考幀清單List0 的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將該時域運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。
或者,若運動資訊候選清單AwpUniArray中已存在的候選運動資訊的總數量為偶數,則將該時域運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將該時域運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。
第四步,如果運動資訊候選清單AwpUniArray的長度小於X,則將運動資訊候選清單AwpUniArray中最後一個單向運動資訊進行重複填充操作,直至列表長度為X。
應用場景3:空域運動資訊加入運動資訊候選清單後,預留Y個位置給時域運動資訊,且時域運動資訊為單向運動資訊,即運動資訊候選清單中包括Y個時域運動資訊。
第一步,確定F,G,C,A,B,D的運動資訊的“可用”性,參見應用場景1。
第二步,按照F、G、C、A、B、D中可用運動資訊的順序(該順序可變,且只包括可用運動資訊),將可用運動資訊(各空域可用運動資訊)加入到運動資訊候選清單AwpUniArray,直至運動資訊候選清單AwpUniArray長度為X-Y,或者,可用運動資訊遍歷結束。
應用場景3的第二步可以參見應用場景1的第二步,在此 不再重複贅述。
第三步,針對當前待加入到運動資訊候選清單的時域運動資訊(如單向時域運動資訊,且為可用運動資訊),對該時域運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將該時域運動資訊加入運動資訊候選清單AwpUniArray。
第四步,如果運動資訊候選清單AwpUniArray的長度小於X,則將運動資訊候選清單AwpUniArray中最後一個單向運動資訊進行重複填充操作,直至列表長度為X。
應用場景4:空域運動資訊與時域運動資訊一起加入運動資訊候選清單。
第一步,確定F,G,C,A,B,D的運動資訊的“可用”性,參見應用場景1。
第二步,按照F、G、C、A、B、D中可用運動資訊的順序(該順序可變,且只包括可用運動資訊),以及時域運動資訊(包括可用運動資訊)的順序,將可用運動資訊加入到運動資訊候選清單AwpUniArray,直至AwpUniArray長度為X或者遍歷結束:
情況一、針對當前待加入到運動資訊候選清單的可用運動資訊,若可用運動資訊為雙向運動資訊(即包括指向參考幀列表List0的單向運動資訊和指向參考幀清單List1的單向運動資訊),將該可用運動資訊加入到運動資訊候選清單AwpUniArray。為簡單起見,該可用運動資訊可以稱為第二可用運動資訊。
方式一、將第二可用運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將第二可用運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊 加入運動資訊候選清單AwpUniArray。
方式二、將第二可用運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將第二可用運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。
情況二、針對當前待加入到運動資訊候選清單的可用運動資訊,若該可用運動資訊為單向運動資訊,則對該單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將該單向運動資訊加入運動資訊候選清單AwpUniArray。
第三步,如果運動資訊候選清單AwpUniArray的長度小於X,則將運動資訊候選清單AwpUniArray中最後一個單向運動資訊進行重複填充操作,直至列表長度為X。
示例性的,在應用場景4中,時域運動資訊可以為單向運動資訊或者雙向運動資訊。例如,在P幀下,時域運動資訊為單向運動資訊,在B幀下,時域運動資訊為雙向運動資訊。
應用場景5:空域運動資訊加入運動資訊候選清單後,預留Y個位置給時域運動資訊,且時域運動資訊為雙向運動資訊,即運動資訊候選清單中包括Y個時域運動資訊。
第一步,確定F,G,C,A,B,D的運動資訊的“可用”性,參見應用場景1。
第二步,按照F、G、C、A、B、D中可用運動資訊的順序(該順序可變,且只包括可用運動資訊),將可用運動資訊(即各空域可用運動資訊)加入到運動資訊候選清單AwpUniArray,直至運動資訊候選清單AwpUniArray長度為X-Y,或者,可用運動資訊遍歷結束。
應用場景5的第二步可以參見應用場景1的第二步,在此不再重複贅述。
第三步,針對當前待加入到運動資訊候選清單的時域運動資訊(如雙向時域運動資訊,且為可用運動資訊),將該時域運動資訊加入到運動資訊候選清單AwpUniArray。
方式一、將該時域運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將該時域運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。
方式二、將該時域運動資訊中指向參考幀清單List1的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List1的單向運動資訊加入運動資訊候選清單AwpUniArray。若重複,則將該時域運動資訊中指向參考幀清單List0的單向運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將指向參考幀列表List0的單向運動資訊加入運動資訊候選清單AwpUniArray。
第四步,如果運動資訊候選清單AwpUniArray的長度小於X,則將運動資訊候選清單AwpUniArray中最後一個單向運動資訊進行重複填充操作,直至列表長度為X。
空域運動資訊加入運動資訊候選清單後,預留Y個位置給時域運動資訊,且時域運動資訊為單向運動資訊,即運動資訊候選清單中包括Y個時域運動資訊。
第一步,確定F,G,C,A,B,D的運動資訊的“可用”性,參見應用場景1。
第二步,可以參見應用場景4的第二步,在此不再重複贅述。
第三步,針對當前待加入到運動資訊候選清單的時域運動資訊(如單向時域運動資訊,且為可用運動資訊),對該時域運動資訊與運動資訊候選清單AwpUniArray中的單向運動資訊進行查重操作。若不重複,則將該時域運動資訊加入運動資訊候選清單AwpUniArray。
第四步,如果運動資訊候選清單AwpUniArray的長度小於X,則將運動資訊候選清單AwpUniArray中最後一個單向運動資訊進行重複填充操作,直至列表長度為X。
在上述各應用場景中,X可以取任意的正整數,例如,X的取值可以4,5等。
在上述各應用場景中,若運動資訊候選清單AwpUniArray的長度小於X,是將運動資訊候選清單AwpUniArray中最後一個單向運動資訊進行重複填充操作,直至列表長度為X。在實際應用中,在對最後一個單向運動資訊進行重複填充操作前,可以通過衍生運動資訊來增加有效運動資訊。例如,以運動資訊候選清單中的任意一個有效運動資訊(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)。針對上述的運動資訊,在將該運動資訊添加到運動資訊候選清單時,可以進行查重處理,也可以不進行查重處理。此後若運動資訊候選清單AwpUniArray的長度仍小於X,可沿用上述重複填充操作。
在上述各應用場景中,除了空域運動資訊和時域運動資訊,還可以在運動資訊候選清單AwpUniArray中添加HMVP運動資訊,對此 HMVP運動資訊的添加過程不做限制。
在上述各應用場景中,可以構建運動資訊候選清單AwpUniArray,可以將AwpUniArray中的運動資訊稱為候選運動資訊,然後可以從AwpUniArray中選擇候選運動資訊作為當前塊的目標運動資訊,繼而根據該目標運動資訊確定像素位置的預測值。
在一種可能的實施方式中,可以從AwpUniArray中選擇兩個候選運動資訊,將其作為當前塊的第一目標運動資訊和第二目標運動資訊。在此基礎上,解碼端可以從編碼位元流中解析出AwpCandIdx0和AwpCandIdx1,並將AwpUniArray中的第AwpCandIdx0+1個運動資訊賦值給mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1。將AwpUniArray中的第AwpCandIdx1+1個運動資訊賦值給mvAwp1L0,mvAwp1L1,RefIdxAwp1L0,RefIdxAwp1L1。當然,也可以將AwpUniArray中的第AwpCandIdx0+1個運動資訊賦值給mvAwp1L0,mvAwp1L1,RefIdxAwp1L0,RefIdxAwp1L1,將AwpUniArray中的第AwpCandIdx1+1個運動資訊賦值給mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1,對此不做限制。
示例性的,AwpCandIdx0表示第一目標運動資訊的索引值,因此,可以將AwpUniArray中的第AwpCandIdx0+1個運動資訊賦值給第一目標運動資訊。例如,若AwpCandIdx0為0,則將AwpUniArray中的第1個運動資訊賦值給第一目標運動資訊,若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的單向運動資訊像素位置的預測值。
在另一種可能的實施方式中,可以從AwpUniArray中選擇一個候選運動資訊,作為當前塊的目標運動資訊。解碼端可以從編碼位元流中解析出AwpCandIdx,並將AwpUniArray中的第AwpCandIdx+1個運動資訊賦值給mvAwpL0,mvAwpL1,RefIdxAwpL0,RefIdxAwpL1。AwpCandIdx表示目標運動資訊的索引值,mvAwpL0,mvAwpL1,RefIdxAwpL0,RefIdxAwpL1合起來作為目標運動資訊,mvAwpL0和RefIdxAwpL0表示目標運動資訊中指向List0的單向運動資訊,mvAwpL1和RefIdxAwpL1表示目標運動資訊中指向List1的單向運動資訊。
示例性的,實施例1-實施例16可以單獨實現,也可以組合實現。例如,實施例1和實施例2組合實現;實施例1和實施例3組合實現;實施例1,實施例2和實施例3可以組合實現;實施例4可以和實施例1-3中的一個或多個組合實現;實施例5可以和實施例1-3中的一個或多個組合實現;實施例6可以和實施例1-3中的一個或多個組合實現;實施例7可以和實施例1-3中的一個或多個組合實現;實施例8可以和實施例1-3中的一個或多個組合實現;實施例9可以和實施例1-3中的一個或多個組合實現;實施例10可以和實施例1-3中的一個或多個組合實現;實施例11可以和實施例1-3中的一個或多個組合實現;實施例12可以和實施例1-3中的一個或多個組合實現;實施例13可以和實施例1-3中的一個或多個組合實現;實施例14可以和實施例1-3中的一個或多個組合實現;實施例15可以和實施例1-3中的一個或多個組合實現;實施例16可以和實施例1-3 中的一個或多個組合實現;當然,上述只是幾個示例,對實施例之間的組合方式不做限制。
需要說明的是,在上述實施例中,編碼端使用的方法和解碼端使用的方法可以互相參照。
實施例17:基於與上述方法同樣的申請構思,本申請實施例還提出一種編解碼裝置,所述裝置應用於編碼端或者解碼端,參見圖10A所示,為所述裝置的結構圖,包括獲取模組111,配置模組112和確定模組113。
獲取模組111,用於在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數,其中,所述權重配置參數包括權重變換率和權重變換的起始位置。
配置模組112,用於根據所述權重配置參數為當前塊外部的周邊位置配置參考權重值。
確定模組113,用於針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
若所述當前塊支援權重變換率切換模式,則所述獲取模組111採用如下方式獲取所述當前塊的權重變換率:獲取所述當前塊的第一權重變換率指示資訊;根據所述第一權重變換率指示資訊確定所述當前塊的權重變換率,其中,若所述第一權重變換率指示資訊為第一指示資訊,則所述當前塊的權重變換率為第一權重變換率,若所述第一權重變換率指示資 訊為第二指示資訊,則所述當前塊的權重變換率為第二權重變換率。
所述第一權重變換率指示資訊為圖像級指示資訊,所述當前塊的所述第一權重變換率指示資訊表示所述當前塊對應的權重變換率切換標識,所述第一指示資訊用於指示所述當前塊不需要進行權重變換率切換,所述第二指示資訊用於指示所述當前塊需要進行權重變換率切換。第一權重變換率的絕對值不等於第二權重變換率的絕對值。
若所述當前塊支援權重變換率切換模式,則所述獲取模組111採用如下方式獲取所述當前塊的權重變換率:獲取所述當前塊的第二權重變換率指示資訊;從預設的查閱資料表中選擇與所述第二權重變換率指示資訊對應的權重變換率;其中,所述預設的查閱資料表包括至少兩個權重變換率;將選中的權重變換率確定為所述當前塊的權重變換率。
示例性的,所述配置模組112根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值時具體用於:針對所述當前塊外部的每個周邊位置,根據所述周邊位置的座標值、所述權重變換的起始位置的座標值以及所述權重變換率,配置所述周邊位置的所述參考權重值。
示例性的,所述權重變換的起始位置由如下參數的至少一個確定:所述權重預測角度、所述當前塊的權重預測位置和所述當前塊的尺寸。所述當前塊外部的周邊位置的數量是基於所述當前塊的尺寸和/或所述當前塊的權重預測角度確定。所述當前塊外部的周邊位置的參考權重值單調遞增。所述當前塊外部的周邊位置包括以下至少一項:整像素位置或亞像素位置。所述當前塊外部的周邊位置包括以下至少一項:所述當前塊外部上側一行的周邊位置,或者,所述當前塊外部左側一列的周邊位置。
所述當前塊外部的周邊位置的參考權重值包括目的地區域的參考權重值,目的地區域的第一鄰近區域的參考權重值,目的地區域的第二鄰近區域的參考權重值。其中,所述第一鄰近區域的所述參考權重值均為第二參考權重值,所述第二鄰近區域的所述參考權重值均為第三參考權重值,其中,所述第二參考權重值與所述第三參考權重值不同。所述目的地 區域包括一個參考權重值或者至少兩個參考權重值,其中,若所述目的地區域包括所述至少兩個參考權重值,則所述目的地區域的所述至少兩個參考權重值單調遞增。
所述權重預測角度為水準角度;或者,所述權重預測角度為垂直角度;或者,所述權重預測角度的斜率的絕對值為2的n次方,n為整數。
示例性的,所述確定模組113還用於:若所述周邊匹配位置是整像素位置,且所述整像素位置已配置參考權重值,則根據所述整像素位置的參考權重值確定所述像素位置的目標權重值;或者,若所述周邊匹配位置是亞像素位置,且所述亞像素位置已配置參考權重值,則根據所述亞像素位置的參考權重值確定所述像素位置的目標權重值。
若所述第一預測模式為幀間預測模式,所述確定模組113還用於:獲取運動資訊候選清單,所述運動資訊候選清單中包括至少一個候選運動資訊;從所述運動資訊候選清單中選擇一個候選運動資訊作為所述當前塊的原始運動資訊;根據所述原始運動資訊確定所述當前塊的目標運動資訊;根據所述目標運動資訊確定所述像素位置的第一預測值。
所述原始運動資訊包括原始運動向量,所述目標運動資訊包括目標運動向量,所述確定模組113還用於:獲取與所述原始運動向量對應的運動向量差;根據所述運動向量差和所述原始運動向量確定目標運動向量。
在解碼端,所述確定模組113還用於:從所述當前塊的編碼位元流中解析出所述運動向量差的方向資訊以及幅值資訊;根據所述運動向量差的方向資訊和幅值資訊確定所述運動向量差。
若方向資訊表示方向為向右,幅值資訊表示幅值為Ar,則運動向量差為(Ar,0);若方向資訊表示方向為向下,幅值資訊表示幅值為Ad,則運動向量差為(0,-Ad);若方向資訊表示方向為向左,幅值資訊表示幅值為Al,則運動向量差為(-Al,0);若方向資訊表示方向為向上,幅 值資訊表示幅值為Au,則運動向量差為(0,Au)。
在解碼端,所述確定模組113還用於:從所述當前塊的編碼位元流中解析出標誌資訊;若所述標誌資訊指示對所述原始運動向量疊加運動向量差,則從所述當前塊的編碼位元流中解析出所述運動向量差的方向資訊和幅值資訊。
所述確定模組113還用於:獲取待加入到運動資訊候選清單中的至少一個可用運動資訊;基於至少一個可用運動資訊,構建運動資訊候選清單。
所述至少一個可用運動資訊包括如下運動資訊的至少一種:空域運動資訊;時域運動資訊;預設運動資訊。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
基於與上述方法同樣的申請構思,本申請實施例提供的解碼端設備(也可以稱為視頻解碼器),從硬體層面而言,其硬體架構示意圖具體可以參見圖10B所示。包括:處理器121和機器可讀存儲介質122,其中:所述機器可讀存儲介質122存儲有能夠被所述處理器121執行的機器可執行指令;所述處理器121用於執行機器可執行指令,以實現本申請上述各示例公開的方法。例如,所述處理器121用於執行機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;其中,所述權重配置參數包括權重變換率和權重變換的起始位置;根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;針對所述當前塊的每個像素位置,根據所述權重預測角度從所 述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
基於與上述方法同樣的申請構思,本申請實施例提供的編碼端設備(也可以稱為視訊轉碼器),從硬體層面而言,其硬體架構示意圖具體可以參見圖10C所示。包括:處理器131和機器可讀存儲介質132,其中:所述機器可讀存儲介質132存儲有能夠被所述處理器131執行的機器可執行指令;所述處理器131用於執行機器可執行指令,以實現本申請上述各示例公開的方法。例如,所述處理器131用於執行機器可執行指令,以實現如下步驟:在確定對當前塊啟動加權預測時,獲取所述當前塊的權重預測角度和權重配置參數;其中,所述權重配置參數包括權重變換率和權重變換的起始位置;根據所述權重配置參數為所述當前塊外部的周邊位置配置參考權重值;針對所述當前塊的每個像素位置,根據所述權重預測角度從所述當前塊外部的周邊位置中確定所述像素位置指向的周邊匹配位置;根據所述周邊匹配位置關聯的參考權重值確定所述像素位置的目標權重值,根據所述像素位置的目標權重值確定所述像素位置的關聯權重值;根據所述當前塊的第一預測模式確定所述像素位置的第一預測值,根據所述當前塊的第二預測模式確定所述像素位置的第二預測值;根據所述第一預測值,所述目標權重值,所述第二預測值和所述關聯權重值,確定所述像素位置的加權預測值;根據所述當前塊的所有像素位置的加權預測值確定所述當前塊的加權預測值。
基於與上述方法同樣的申請構思,本申請實施例中還提供一種攝像機設備,該攝像機設備可以包括上述任一實施例中的編解碼裝置, 且該攝像機設備可以採用上述流程進行處理。
基於與上述方法同樣的申請構思,本申請實施例還提供一種機器可讀存儲介質,所述機器可讀存儲介質上存儲有若干電腦指令,所述電腦指令被處理器執行時,能夠實現本申請上述示例公開的方法,如上述各實施例中的編解碼方法。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂窩電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本申請實施例可提供為方法、系統、或電腦程式產品。本申請可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。本申請實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用存儲介質(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
以上所述僅為本申請的實施例而已,並不用於限制本申請。對於本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求範圍之內。
301、302、303、304、305:步驟

Claims (21)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010486400.3 2020-06-01
CN202010486400.3A CN113766222B (zh) 2020-06-01 2020-06-01 一种编解码方法、装置及其设备

Publications (2)

Publication Number Publication Date
TW202209891A true TW202209891A (zh) 2022-03-01
TWI790631B TWI790631B (zh) 2023-01-21

Family

ID=78782775

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110119755A TWI790631B (zh) 2020-06-01 2021-06-01 一種編解碼方法、裝置及其設備

Country Status (9)

Country Link
US (1) US20230262211A1 (zh)
EP (1) EP4145827A4 (zh)
JP (1) JP2023528609A (zh)
KR (1) KR20230003054A (zh)
CN (2) CN113766222B (zh)
AU (1) AU2021286043B2 (zh)
TW (1) TWI790631B (zh)
WO (1) WO2021244496A1 (zh)
ZA (1) ZA202213048B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113766222B (zh) * 2020-06-01 2023-03-24 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
WO2024113311A1 (zh) * 2022-12-01 2024-06-06 Oppo广东移动通信有限公司 编解码方法、编解码器、码流以及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100128803A1 (en) * 2007-06-08 2010-05-27 Oscar Divorra Escoda Methods and apparatus for in-loop de-artifacting filtering based on multi-lattice sparsity-based filtering
CN103533376B (zh) * 2012-07-02 2017-04-12 华为技术有限公司 帧间预测编码运动信息的处理方法、装置和编解码系统
US10542264B2 (en) * 2017-04-04 2020-01-21 Arris Enterprises Llc Memory reduction implementation for weighted angular prediction
CN110832864B (zh) * 2017-06-26 2024-03-29 交互数字麦迪逊专利控股公司 利用多个加权参考进行帧内预测的方法和装置
WO2019091292A1 (en) * 2017-11-13 2019-05-16 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction fusion in image and video coding
CN110121073B (zh) * 2018-02-06 2021-07-09 浙江大学 一种双向帧间预测方法及装置
CN110225346A (zh) * 2018-12-28 2019-09-10 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN112954329B (zh) * 2019-03-11 2022-08-26 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112543323B (zh) * 2019-09-23 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112584142B (zh) * 2019-09-30 2022-09-30 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113709500B (zh) * 2019-12-23 2022-12-23 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113452997B (zh) * 2020-03-25 2022-07-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113766222B (zh) * 2020-06-01 2023-03-24 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
US20230267573A1 (en) * 2022-02-22 2023-08-24 V-Silicon Semiconductor (Hefei) Co.,Ltd Mosquito noise filtering

Also Published As

Publication number Publication date
CN113810686B (zh) 2023-02-24
TWI790631B (zh) 2023-01-21
EP4145827A1 (en) 2023-03-08
JP2023528609A (ja) 2023-07-05
US20230262211A1 (en) 2023-08-17
CN113766222B (zh) 2023-03-24
AU2021286043B2 (en) 2024-03-28
CN113810686A (zh) 2021-12-17
KR20230003054A (ko) 2023-01-05
EP4145827A4 (en) 2023-08-23
CN113766222A (zh) 2021-12-07
ZA202213048B (en) 2024-04-24
WO2021244496A1 (zh) 2021-12-09
AU2021286043A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
TWI669955B (zh) 視訊解碼/編碼裝置與方法、儲存位元串流的記錄媒體
TW202025780A (zh) 用於幀內塊複製的基於歷史的運動矢量預測值
CN112352429B (zh) 对视频数据进行编解码的方法、设备和存储介质
TWI790662B (zh) 一種編解碼方法、裝置及其設備
TWI797582B (zh) 一種編解碼方法、裝置及其設備
TWI790631B (zh) 一種編解碼方法、裝置及其設備
JP2022502966A (ja) 候補動きベクトルリストを取得するための方法、装置、エンコーダ及びデコーダ
TWI821103B (zh) 在視訊編解碼系統中使用邊界匹配進行重疊塊運動補償的方法和裝置
KR102597838B1 (ko) 비디오 코딩을 위한 위치 종속 공간 가변 변환
GB2498982A (en) Encoding or Decoding an Image Composed of a Plurality of Colour Components
TW202131687A (zh) 用於視訊編碼的單色調色板模式
TW202005398A (zh) 視訊編碼及解碼
RU2809701C1 (ru) Способ, оборудование и устройство для кодирования и декодирования
WO2023141238A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023081322A1 (en) Intra prediction modes signaling
WO2023091688A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023154359A1 (en) Methods and devices for multi-hypothesis-based prediction
WO2023114155A1 (en) Methods and devices for decoder-side intra mode derivation
TW202404356A (zh) 視訊編解碼方法、裝置、設備、系統、儲存媒介、及碼流
WO2023055968A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023164245A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023049292A1 (en) Methods and devices for decoder-side intra mode derivation
CA3206439A1 (en) Block vector predictor candidate selection
CN114650423A (zh) 一种编解码方法、装置及其设备
TW202005371A (zh) 視訊編碼及解碼