TW202245474A - 編解碼方法、裝置及其設備 - Google Patents

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

Info

Publication number
TW202245474A
TW202245474A TW111106607A TW111106607A TW202245474A TW 202245474 A TW202245474 A TW 202245474A TW 111106607 A TW111106607 A TW 111106607A TW 111106607 A TW111106607 A TW 111106607A TW 202245474 A TW202245474 A TW 202245474A
Authority
TW
Taiwan
Prior art keywords
pixel
value
filtering
current
adjustment
Prior art date
Application number
TW111106607A
Other languages
English (en)
Other versions
TWI806447B (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 TW202245474A publication Critical patent/TW202245474A/zh
Application granted granted Critical
Publication of TWI806447B publication Critical patent/TWI806447B/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/117Filters, e.g. for pre-processing or post-processing
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

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

編解碼方法、裝置及其設備
本申請涉及編解碼技術領域,尤其是涉及一種編解碼方法、裝置及其設備。
為了達到節約空間的目的,視頻圖像都是經過編碼後才傳輸的,完整的視頻編碼方法可以包括預測、變換、量化、熵編碼、濾波等過程。其中,預測編碼可以包括幀內編碼和幀間編碼。進一步的,幀間編碼是利用視頻時間域的相關性,使用鄰近已編碼圖像的像素預測當前像素,以達到有效去除視頻時域冗餘的目的。幀內編碼是指利用視頻空間域的相關性,使用當前幀圖像的已經編碼塊的像素預測當前像素,以達到去除視頻空間域冗餘的目的。
常用的濾波技術包括解塊濾波(DeBlocking Filter,DBF)技術、取樣自適應偏移(Sample Adaptive Offset,SAO)技術和自適應迴路濾波(Adaptive Loop Filter,ALF)技術。DBF技術用於去除分塊編碼產生的塊邊界效應。SAO技術通過基於樣本的像素值和周圍塊的梯度值進行分類,對於每個類別的像素值加上不同的補償值,使得重建圖像更接近於原始圖像。ALF技術通過維納濾波器,對重建圖像進行濾波,使得重建圖像更接近於原始圖像。
但是,DBF、SAO和ALF等濾波技術,均是基於當前像素點的像素值進行分類,或者,基於當前像素點的像素值和周圍像素點的像素值的關係進行分類,然後,再基於不同類別進行不同濾波操作,其可能會出現過濾波現象,即,濾波後的像素值遠大於或遠小於濾波前的像素值,也遠大於或 遠小於原始像素值,存在濾波效果不佳,編碼性能比較差等問題。
本申請提供一種編解碼方法、裝置及其設備,能夠提高編碼性能。
本申請提供一種編解碼方法,所述方法包括:
若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
本申請提供一種解碼裝置,所述解碼裝置包括:
記憶體,其經配置以存儲視頻資料;
解碼器,其經配置以實現:
若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
本申請提供一種編碼裝置,所述編碼裝置包括:
記憶體,其經配置以存儲視頻資料;
編碼器,其經配置以實現:
若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
本申請提供一種解碼端設備,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;
所述處理器用於執行機器可執行指令,以實現如下步驟:
若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
本申請提供一種編碼端設備,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;
所述處理器用於執行機器可執行指令,以實現如下步驟:
若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
由以上技術方案可見,本申請實施例中,若當前塊中的當前像素點滿足增強調整模式的啟用條件,則可以基於當前像素點的梯度值和當前像素點的原始像素值,確定當前像素點的調整像素值,也就是說,基於當前像素點的梯度值對當前像素點的原始像素值進行調整,使當前像素點的調整像素值更接近原始像素,從而提高編碼性能。在濾波過程中,如DBF、SAO和ALF等,若當前塊中的當前像素點滿足增強調整模式的啟用條件,在基於當前像素點的梯度值對當前像素點的原始像素值進行調整後,可以提高濾波效果,提高編碼性能。
L0,L1,L2,L3,R0,R1,R2,R3:像素點
511,521:處理器
512,522:機器可讀存儲介質
圖1是本申請一種實施方式中的編解碼框架的示意圖;
圖2A和圖2B本申請一種實施方式中的塊劃分的示意圖;
圖3是本申請一種實施方式中的去塊濾波的示意圖;
圖4是本申請一種實施方式中的編解碼方法的流程圖;
圖5A是本申請一種實施方式中的解碼端設備的硬體結構圖;
圖5B是本申請一種實施方式中的編碼端設備的硬體結構圖。
在本申請實施例中使用的術語僅僅是出於描述特定實施例的目的,而非限制本申請。本申請實施例和請求項書中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其它含義。還應當理解,本文中使用的術語“和/或”是指包含一個或多個相關聯的列出專案的任何或所有可能組合。還應當理解,儘管在本申請實施例可能採用術語第一、第二、第三等來描述各種資訊,但是,這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本申請實施例範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,此外,所使用的詞語“如果”可以被解釋成為“在......時”,或“當......時”,或“回應於確定”。
為了使本領域技術人員更好地理解本申請的技術方案,下面對技術術語進行簡單說明。
視頻編碼框架:參見圖1所示,可以使用視頻編碼框架實現本申請實施例的編碼端處理流程,視頻解碼框架的示意圖可以與圖1類似,在此不再重複贅述,可以使用視頻解碼框架實現本申請實施例的解碼端處理流程。在視頻編碼框架和視頻解碼框架中,可以包括但不限於:預測(如幀內預測和幀間預測等)、運動估計/運動補償、參考圖像緩衝器、環內濾波、重建、變換、量化、反變換、反量化、熵編碼器等模組。在編碼端,通過這些模組之間的配合,實現編碼端的處理流程,在解碼端,通過這些模組之間的配合,實現解碼端的處理流程。
環路濾波用於減少圖像塊效應或圖像效果不佳等問題,能夠改善圖像品質,可以包括DBF、SAO和ALF等三種濾波器,DBF為去塊濾波,用於去除分塊編碼產生的塊邊界效應。SAO為取樣自適應偏移濾波,用於通過基於樣本的像素值和周圍塊的梯度值進行分類,對於每個類別的像素值加上不同的補償值,使得重建圖像更接近於原始圖像。ALF為自適應迴路濾波,即通過維納濾波器,對重建圖像進行濾波,使得重建圖像更接近於原始圖像。
示例性的,在視頻編解碼過程中,預測過程可以包括幀內預測和幀間預測。幀內預測是考慮到相鄰塊之間存在很強的空間域相關性,利用周圍已經重建的像素作為參考像素,對當前未編碼塊進行預測,只需要對殘差值進行後續編碼處理,而不是對原始值進行編碼,從而有效去除空間域上的冗餘,大大提高壓縮效率。幀間預測是利用視頻時間域的相關性,使用鄰近已編碼圖像的像素預測當前圖像的像素,達到去除視頻時域冗餘的目的。
示例性的,在視頻編解碼過程中,變換是指將以空間域中像素形式描述的圖像轉換至變換域的圖像,並以變換係數的形式來表示。由於絕大多數圖像都含有較多平坦區域和緩慢變化的區域,因此,適當的變換過程,可以使圖像能量在空間域的分散分佈,轉換為在變換域的相對集中分佈,從而能夠去除信號之間的頻域相關性,配合量化過程,可以有效壓縮碼流。
示例性的,熵編碼是指按照資訊熵的原理進行無損編碼的方式,處於視訊壓縮的最後一個處理模組,將一系列用來表示視頻序列的元素符號,轉變為一個用來傳輸或存儲的二進位碼流,輸入的符號可能包括量化後的變換係數,運動向量資訊,預測模式資訊,變換量化相關語法等,熵編碼模組的輸出資料即原始視訊壓縮後的最終碼流。熵編碼可以有效地去除這些視頻元素符號的統計冗餘,是保證視頻編碼壓縮效率的重要工具之一。
示例性的,環路濾波用於減少圖像的塊效應或者圖像效果不佳等問題,用來改善圖像品質,可以包括但不限於DBF、SAO和ALF等。例如,在視頻圖像中,圖像塊的邊界並不連續,壓縮重建圖像具有明顯的塊效應,嚴重影響圖像品質,可以採用DBF技術對邊界進行去塊濾波。針對所有預測單元(Prediction Unit,PU)和變換單元(Transform Unit,TU)的邊界進行去塊濾波,去塊濾波包括濾波決策和濾波操作,在濾波決策過程中,獲取邊界強度(如不濾波、弱濾波或強濾波)和濾波參數。在濾波操作過程中,根據邊界強度和濾波參數對像素進行修正,如對邊界進行濾波時,可以是強濾波或弱濾波,採用不同長度的抽頭進行濾波。
SAO濾波:用於消除振鈴效應。振鈴效應是由於高頻交流係數的量化失真,解碼後會在邊緣周圍產生波紋的現象,變換塊尺寸越大振鈴效應 越明顯。SAO的基本原理是對重構曲線中的波峰像素加上負值進行補償,波谷像素加上正值進行補償。SAO是以編碼樹單元(Coding Tree Unit,CTU)為基本單位,可以包括兩大類補償形式:邊界補償(Edge Offset,簡稱EO)和邊帶補償(Band Offset,簡稱BO),此外還引入了參數融合技術。
ALF濾波:可以根據原始信號和失真信號計算得到均方意義下的最優濾波器,即維納濾波器。ALF的濾波器可以包括但不限於:7*7的菱形濾波器或5*5的菱形濾波器、7*7十字形加3*3方形的中心對稱濾波器,或7*7十字形加5*5方形的中心對稱濾波器。
幀內預測:利用視頻空間域的相關性,使用當前塊的已編碼塊進行預測,以達到去除視頻空間域冗餘的目的。幀內預測規定了多種預測模式,每種預測模式對應一種紋理方向(DC模式除外),例如,若圖像紋理呈現水平狀排布,則水平預測模式可以更好的預測圖像資訊。
幀間預測:基於視頻時域的相關性,由於視頻序列包含有較強的時域相關性,使用鄰近已編碼圖像像素預測當前圖像的像素,可以達到有效去除視頻時域冗餘的目的。視頻編碼標準幀間預測部分都採用了基於塊的運動補償技術,主要原理是為當前圖像的每一個區塊在之前已編碼圖像中尋找一個最佳匹配塊,該過程稱為運動估計(Motion Estimation,ME)。
運動向量(Motion Vector,MV):在幀間預測中,可以使用運動向量表示當前幀圖像的當前塊與參考幀圖像的參考塊之間的相對位移。每個劃分的塊都有相應的運動向量傳送到解碼端,如果對每個塊的運動向量進行獨立編碼和傳輸,特別是小尺寸的大量塊,則消耗很多比特。為降低用於編碼運動向量的比特數,可以利用相鄰塊之間的空間相關性,根據相鄰已編碼塊的運動向量對當前待編碼塊的運動向量進行預測,然後對預測差進行編碼,這樣可以有效降低表示運動向量的比特數。在對當前塊的運動向量進行編碼時,可以先使用相鄰已編碼塊的運動向量預測當前塊的運動向量,然後對該運動向量的預測值(Motion Vector Prediction,MVP)與運動向量的真正估值之間的差值(Motion Vector Difference,MVD)進行編碼。
運動資訊(Motion Information):由於運動向量表示當前塊與某個參考塊之間的位置偏移,為了準確的獲取指向塊的資訊,除了運動向量,還需要參考幀圖像的索引資訊來表示當前塊使用哪個參考幀圖像。在視頻編碼技術中,對於當前幀圖像,通常可以建立一個參考幀圖像清單,參考幀圖像索引資訊則表示當前塊採用了參考幀圖像清單中的第幾個參考幀圖像。此外,很多編碼技術還支援多個參考圖像清單,因此,還可以使用一個索引值來表示使用了哪一個參考圖像清單,這個索引值可以稱為參考方向。綜上所述,在視頻編碼技術中,可以將運動向量、參考幀索引、參考方向等與運動相關的資訊統稱為運動資訊。
標誌位元編碼(flag coding):在視頻編碼中,存在很多模式。對於某個塊來說,可能採用其中一種模式。為了表示採用何種模式,每個塊需要通過編碼對應的標誌位元來進行標記。比如說,針對編碼端來說,通過編碼端決策,確定該標誌位元的值,然後對標誌位元的值進行編碼傳遞到解碼端。針對解碼端來說,通過解析標誌位元的值,確定對應模式是否啟用。
在標誌位元的編碼過程中,可以通過高層語法實現標誌位元的編碼,高層語法可以用於表示是否允許啟用某種模式,即通過高層語法允許啟用某種模式,或者禁止啟用某種模式。
示例性的,高層語法可以是序列參數集級的高層語法,或者圖像參數集級的高層語法,或者片頭級的高層語法,或者圖像頭級的高層語法,對此高層語法不做限制。
針對序列參數集(sequence parameter set,SPS)的高層語法,存在確定整個視頻序列(即多幀視頻圖像)中是否允許某些模式(工具/方法)開關的標誌位元。例如,若標誌位元為取值A(如數值1等),則視頻序列可以允許啟用該標誌位元對應的模式;或者,若標誌位元為取值B(如數值0等),則視頻序列可以不允許啟用該標誌位元對應的模式。
針對圖像參數集(picture parameter set,PPS)的高層語法,存在確定某圖片(如視頻圖像)中是否允許某些模式(工具/方法)開關的標誌位 元。若標誌位元為取值A,則視頻圖像允許啟用該標誌位元對應的模式;若標誌位元為取值B,則視頻圖像不允許啟用該標誌位元對應的模式。
針對圖像頭(picture header)的高層語法,存在某圖像頭中是否允許某些模式(工具/方法)開關的標誌位元。若標誌位元為取值A,則圖像頭允許啟用該標誌位元對應的模式;若標誌位元為取值B,則圖像頭不允許啟用該標誌位元對應的模式。示例性的,圖像頭保存的是僅針對當前圖像的共同資訊,例如,在圖像包含多個slice時,多個slice可以通用圖像頭中的資訊。
針對片頭(Slice header)的高層語法,存在某個slice中是否允許某些模式(工具/方法)開關的標誌位元。若標誌位元為取值A,則slice允許啟用該標誌位元對應的模式;若標誌位元為取值B,則slice不允許啟用該標誌位元對應的模式。示例性的,一幀圖像可以包含1個slice或多個slice,針對片頭(Slice header)的高層語法,是針對每個slice配置的高層語法。
高層語法:用於表示是否允許啟用某些工具(方法),即通過高層語法允許啟用某些工具(方法),或者禁止啟用某些工具(方法)。示例性的,參見上述介紹,高層語法可以是序列參數集級的高層語法,或者圖像參數集級的高層語法,或者片頭級的高層語法,或者圖像頭級的高層語法,對此高層語法不做限制,只要能夠實現上述功能即可。
位元率失真最佳化(Rate-Distortion Optimized,RDO):評價編碼效率的有兩大指標:碼率和峰值訊噪比(Peak Signal to Noise Ratio,PSNR),位元流越小,則壓縮率越大,PSNR越大,則重建圖像品質越好,在模式選擇時,判別公式實質上也就是對二者的綜合評價。例如,模式對應的代價:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常可以使用SSE指標來進行衡量,SSE是指重建圖像塊與源圖像的差值的均方和;λ是拉格朗日乘子,R就是該模式下圖像塊編碼所需的實際比特數,包括編碼模式資訊、運動資訊、殘差等所需的比特總和。在模式選擇時,若使用RDO原則去對編碼模式做比較決策,通常可以保證編碼性能最佳。
塊劃分技術:一個編碼樹單元(Coding Tree Unit,簡稱CTU)使用四叉樹遞迴劃分成編碼單元(Coding Unit,CU)。在葉子節點CU級確定是否使用幀內編碼或者幀間編碼。CU可以劃分成兩個或四個預測單元(Prediction Unit,簡稱PU),同一個PU內使用相同的預測資訊。在預測完成後得到殘差資訊後,一個CU可四叉劃分成多個變換單元(Transform Units,簡稱TU)。例如,本申請中的當前圖像塊即為一個PU。還可以對塊劃分技術進行變化,比如說,使用一種混合了二叉樹/三叉樹/四叉樹的劃分結構取代原先劃分模式,取消CU,PU,TU的概念的區分,支持CU的更靈活的劃分方式。CU可以是正方形也可以是矩形劃分。CTU首先進行四叉樹的劃分,然後四叉樹劃分的葉子節點可以進行二叉樹和三叉樹的劃分。參見圖2A所示,CU共有五種劃分類型,分別為四叉樹劃分,水平二叉樹劃分,垂直二叉樹劃分,水平三叉樹劃分和垂直三叉樹劃分,參見圖2B所示,CTU內的CU劃分可以是上述五種劃分類型的任意組合由上可知不同的劃分方式,使得各個PU的形狀有所不同,如不同尺寸的矩形,正方形。
DBF濾波(即去塊濾波)方法:DBF濾波處理包括兩個過程:濾波決策和濾波操作。
濾波決策包括:1)獲取邊界強度(BS值);2)濾波開關決策;3)濾波強弱選擇。對於色度分量,僅存在步驟1),且直接複用亮度分量的BS值。對於色度分量,只有BS值為2時(即當前塊兩側的塊至少有一個採用intra(幀內)模式),才進行濾波操作。
濾波操作包括:1)對於亮度分量的強濾波和弱濾波;2)對於色度分類的濾波。
示例性的,DBF濾波處理一般以8*8為單位進行水平邊界濾波(也可以稱為水平DBF濾波)和垂直邊界濾波(也可以稱為垂直DBF濾波),且最多對邊界兩側的3個像素點進行濾波,且最多利用到邊界兩側的4個像素點進行濾波,因此,不同塊的水平DBF濾波和垂直DBF濾波互不影響,也就是說,水平DBF濾波和垂直DBF濾波可以並行進行。
如圖3所示,對於當前塊(以8*8為例)來說,可以先進行當前塊左側3列像素點以及左邊塊(即當前塊的左邊塊)右側3列像素點的垂直DBF濾波,再進行當前塊上側3行像素點以及上邊塊(即當前塊的上邊塊)下側3行像素點的水平DBF濾波。
示例性的,對於需要分別進行垂直DBF濾波和水平DBF濾波的像素點來說,通常先進行垂直DBF濾波,後進行水平DBF濾波。當然,也可以先進行水平DBF濾波,後進行垂直DBF濾波。在後續實施例中,以先進行垂直DBF濾波,後進行水平DBF濾波為例。
在一種可能的實施方式中,關於DBF濾波的處理流程,可以包括以下步驟:
步驟S11、以4*4為單位分別計算水平方向和垂直方向的邊緣條件(edge condition)值。
對於CU邊界,且為8*8邊界,則edge condition值為2(用於表示對亮度分量和色度分量均進行濾波處理)。對於PU(Prediction Unit,預測單元)邊界(如2N*hN的內部1/4、1/2、3/4水平線),且為8*8邊界,則edge condition值為1(用於表示對亮度分量進行濾波處理,但是不對色度分量進行濾波處理)。對於上述兩種情況之外的其它情況,則edge condition值為0。
步驟S12、以4*4為單位(濾波處理以8*8單位,只是以4*4為單位存儲edge condition值等資訊),完成所有塊的垂直濾波。當edge condition值不為0時,進行如下濾波處理過程:
1、亮度分量濾波(垂直濾波則處理垂直邊界的4行,水平濾波則處理水平邊界的4列):
1.1、先判斷是否跳過濾波過程。示例性的,若邊界兩側的塊為非幀內模式塊、無殘差、且運動一致時,才會跳過濾波過程,否則,均需要進行濾波過程。
1.2、若不跳過濾波過程,則進行如下處理:
1.2.1、若當前幀的濾波類型(df_type)為類型1,且ABS(R0-L0)>=4* Alpha,則FS為0;否則進行步驟1.2.2,確定FS。Alpha為預設數值,ABS( )為取絕對值運算。
1.2.2、計算左側平滑度(Flatness Left,FL,可選值為0、2、3)和右側平滑度(Flatness Right,FR,可選值為0、2、3),FL和FR用於判斷兩側內部的平滑程度。然後,基於FL和FR確定FS。比如說,可以採用如下公式確定FS:FS=FL+FR。
1.2.2.1、若ABS(L1-L0)<Beta,且ABS(L2-L0)<Beta,則FL為3;若ABS(L1-L0)<Beta,且ABS(L2-L0)>=Beta,則FL為2;若ABS(L1-L0)>=Beta,且ABS(L2-L0)<Beta,則FL為1;否則FL為0。Beta為預設數值,ABS( )為取絕對值運算。
1.2.2.2、FR的計算方式與FL的計算方式類似,在此不再重複贅述。
1.2.3、基於FS確定BS值(FS的可選值為0、2、3、4、5、6,BS的可選值為0、1、2、3、4)。比如說,在得到FS之後,可以基於FS的取值確定BS值。
1.2.3.1、若FS小於等於2(最多有一邊中等平滑),則BS=0。
1.2.3.2、若FS為3(有且只有一邊高度平滑),則BS=(ABS(L1-R1)<Beta)?1:0,也就是說,若ABS(L1-R1)<Beta成立,則BS=1;否則,BS=0。
1.2.3.3、若FS為4(即兩邊均中等平滑),則BS=(FL==2)?2:1,也就是說,若FL=2,則BS=2;否則,即FL不等於2,則BS=1。
1.2.3.4、若FS為5(即一邊中等平滑,另一邊高度平滑),則:
若當前幀的濾波類型(df_type)為類型1,則BS=(R1==R0 && L0==L1 && ABS(R2-L2)<Alpha)?3:2;也就是說,若像素點R1的像素值等於像素點R0的像素值,且像素點L0的像素值等於像素點L1的像素 值,且像素點R2的像素值與像素點L2的像素值之間的差值的絕對值小於Alpha(即預先配置的數值),則BS=3;否則,BS=2。
否則(即當前幀的濾波類型(df_type)不為類型1),若當前幀的濾波類型為類型0,則BS=(R1==R0 && L0==L1)?3:2;也就是說,若像素點R1的像素值等於像素點R0的像素值,且像素點L0的像素值等於像素點L1的像素值,則BS=3;否則,BS=2。
1.2.3.5、若FS為6(即兩邊均高度平滑),則:
若當前幀的濾波類型(df_type)為類型1,則BS=(ABS(R0-R1)<=Beta/4 && ABS(L0-L1)<=Beta/4 && ABS(R0-L0)<Alpha)&& ABS(R0-R3)<=Beta/2 && ABS(L0-L3)<=Beta/2?4:3;也就是說,若ABS(R0-R1)<=Beta/4、ABS(L0-L1)<=Beta/4、ABS(R0-L0)<Alpha、ABS(R0-R3)<=Beta/2、ABS(L0-L3)<=Beta/2均成立,則BS=4;否則,BS=3。
否則(即當前幀的濾波類型(df_type)不為類型1),若當前幀的濾波類型為類型0,則BS=(ABS(R0-R1)<=Beta/4 && ABS(L0-L1)<=Beta/4 && ABS(R0-L0)<Alpha)?4:3;也就是說,若ABS(R0-R1)<=Beta/4、ABS(L0-L1)<=Beta/4、ABS(R0-L0)<Alpha均成立,則BS=4,否則,BS=3。
1.2.4、基於BS值,確定濾波係數,以及濾波像素個數。比如說,假設邊界左側或上側的4個像素點分別為L0-L3(如圖3所示,圖3中以左側為例);邊界右側或下側的4個像素點為R0-R3(如圖3所示,圖3中以右側為例)。則對於亮度分量:
1.2.4.1、若BS=4,則對邊界兩側的各3個像素進行濾波:
針對L0和R0來說,濾波係數為[3,8,10,8,3]/32,即:為了確定像素點L0濾波後的像素值,分別使用像素點L2、L1、L0、R0和R1的像素值進行加權求和,加權係數(即濾波係數)依次為3/32、8/32、10/32、8/32以及3/32。若wj為濾波係數,則j=-2(當前像素點左側的第2個像素 點,即L2)時,wj=3/32;j=-1(當前像素點左側的第1個像素點,即L1)時,wj=8/32;j=0(當前像素點,即L0)時,wj=10/32;j=1(當前像素點右側的第1個像素點,即R0)時,wj=8/32;j=2(當前像素點右側的第2個像素點,R1)時,wj=8/32。為了確定像素點R0濾波後的像素值,分別使用像素點R2、R1、R0、L0和L1的像素值進行加權求和,加權係數依次為3/32、8/32、10/32、8/32以及3/32。若wj為濾波係數,則j=-2(當前像素點右側的第2個像素點,即R2)時,wj=3/32;j=-1(當前像素點右側的第1個像素點,即R1)時,wj=8/32;j=0(當前像素點,即R0)時,wj=10/32;j=1(當前像素點左側的第1個像素點,即L0)時,wj=8/32;j=2(當前像素點左側的第2個像素點,L1)時,wj=8/32。
綜上所述,L0’=clip(L2 * 3+L1 * 8+L0 * 10+R0 * 8+R1 * 3+16)>>5),L0’為像素點L0濾波後的像素值,L0~L2為像素點L0~L2濾波前的像素值,R0~R1為像素點R0~R1的像素值,下同。R0’=clip((R2 * 3+R1 * 8+R0 * 10+L0 * 8+L1 * 3+16)>>5)>>5)。
在上述公式中,“>>”為右移位運算,用於替代除法,即“>>5”相當於除以25(即32)。乘法(“*”)可以通過左移位元的方式來替代,如a乘以4可以通過左移2位替代,即通過a<<2替代;a乘以10,可以通過(a<<3)+(a<<1)替代。“<<”為左移位運算,用於替代乘法,即“a<<2”相當於乘以22(即4)。考慮到通過移位元的方式實現除法運算時,對於運算結果通常直接取整,即當運算結果為N~N+1之間的非整數時,取結果為N,而考慮到當小數部分大於0.5時,取結果為N+1的準確性會更高,因此,為了提高所確定的像素值的準確性,進行計算時,可以為上述加權和的分子加上分母(即被除數)的1/2,以達到四捨五入的效果。以上述L0’的計算為例,右移5位相當於除以25(即32),因此,可以為上述加權和的分子加上16。clip(x)為修剪操作,當x超出預設數值範圍的上限時,將x的值設置為該預設數值範圍的上限;當x低於預設數值範圍的下限時,將x的值設置為該預設資料範圍的下限。
針對L1和R1來說,濾波係數為[4,5,4,3]/16,在此基礎上, L1’=clip((L2 * 4+L1 * 5+L0 * 4+R0 * 3+8)>>4),R1’=clip((R2 * 4+R1 * 5+R0 * 4+L0 * 3+8)>>4)。
針對L2和R2來說,濾波係數為[2,2,2,1,1]/8,則L2’=clip((L3 * 2+L2 * 2+L1*2+L0*1+R0*1+4)>>3),R2’=clip((R3 * 2+R2 * 2+R1*2+R0*1+L0*1+4)>>3)。
1.2.4.2、若BS=3,則對邊界兩側各2個像素進行濾波:
針對L0和R0來說,濾波係數為[1,4,6,4,1]/16,L0’=clip(L2 * 1+L1 * 4+L0 * 6+R0 * 4+R1 * 1+8)>>4,R0’=clip(R2 * 1+R1 * 4+R0 * 6+L0 * 4+L1 * 1+8)>>4。
針對L1和R1來說,濾波係數為[3,8,4,1]/16,則L1’=clip((L2 * 3+L1 * 8+L0 * 4+R0 * 1+8)>>4),R1’=clip((R2 * 3+R1 * 8+R0 * 4+L0 * 1+8)>>4)。
1.2.4.3、若BS=2,則對邊界兩側各1個像素進行濾波:
針對L0和R0來說,濾波係數為[3,10,3]/16,在此基礎上,L0’=clip(L1 * 3+L0 * 10+R0 *3+8)>>4,R0’=clip(R1 * 3+R0 * 10+L0 *3+8)>>4。
1.2.4.4、若BS=1,則對邊界兩側各1個像素進行濾波:針對L0和R0來說,濾波係數為[3,1]/4,L0’=clip(L0 * 3+R0 *1+2)>>2,R0’=clip(R0 * 3+L0 *1+2)>>2。
1.2.4.5、若BS=0,則不濾波,即不對邊界兩側的像素進行濾波。
2、edge condition值為2時,為16*16塊的邊界進行色度濾波,也就是說,為16*16塊的邊界進行色度分量的濾波處理,該色度分量的濾波處理過程如下:
2.1、先判斷是否需要進行濾波處理,過程與亮度分量類似,在此不再贅述。
2.2、若需要進行濾波處理(即不跳過濾波過程),則分別計算FL 和FR,再基於FL和FR得到FS,基於FS獲得BS值,該過程也和亮度分量類似,在此不再贅述。
2.3、獲得的色度分量的BS值(如4、3、2、1、0等)減1,也就是說,BS的可選值可以為3、2、1、0。基於BS值進行色度分量的濾波處理,具體過程如下:
若BS=3,則對邊界兩側的各2個像素進行濾波:針對L0和R0來說,濾波係數為[3,10,3]/16,L0’=clip(L1 * 3+L0 * 10+R0 *3+8)>>4,R0’=clip(R1 * 3+R0 * 10+L0 *3+8)>>4。針對L1和R1來說,濾波係數為[3,8,3,2]/16,L1’=clip((L2 * 3+L1 * 8+L0 * 3+R0 * 2+8)>>4),R1’=clip((R2 * 3+R1 * 8+R0 * 3+L0 * 2+8)>>4)。
若BS=2,或BS=1,則對邊界兩側的各1個像素進行濾波:針對L0和R0來說,濾波係數為[3,10,3]/16,L0’=clip(L1 * 3+L0 * 10+R0 *3+8)>>4,R0’=clip(R1 * 3+R0 * 10+L0 *3+8)>>4。若BS=0,則不濾波,即不對邊界兩側的像素進行濾波。
示例性的,上述過程的Alpha和Beta與邊界兩側的塊的QP均值相關,即當前塊與當前塊的左側塊(對於垂直DBF濾波)或當前塊與當前塊的上方塊(對於水平DBF濾波)的QP均值相關,可通過查表獲得Alpha和Beta的取值,對此不做限制。
步驟S13、以4*4為單位(濾波處理以8*8單位,只是以4*4為單位存儲edge condition值等資訊),完成所有塊的水平濾波,實現方式與步驟S12類似,在此不再重複贅述。
在相關技術中,DBF、SAO和ALF等濾波技術,均是基於當前像素點的像素值進行分類,或者,基於當前像素點的像素值和周圍像素點的像素值的關係進行分類,然後,再基於不同類別進行不同濾波操作,其可能會出現過濾波現象,即,濾波後的像素值遠大於或遠小於濾波前的像素值,也遠大於或遠小於原始像素值,存在濾波效果不佳,編碼性能比較差等問題。
針對上述發現,本實施例提出一種編解碼方法,可以基於當前像 素點的梯度值對當前像素點的原始像素值進行調整,使當前像素點的調整像素值更接近原始像素,從而提高編碼性能。在濾波過程中,若當前塊中的當前像素點滿足增強調整模式的啟用條件,在基於當前像素點的梯度值對當前像素點的原始像素值進行調整後,可以提高濾波效果,提高編碼性能。
以下結合具體實施例,對本申請實施例中的編解碼方法進行詳細說明。
實施例1:本申請實施例中提出一種編解碼方法,該方法可以應用於編碼端或者解碼端,參見圖4所示,為該編解碼方法的流程示意圖,該方法可以包括:
步驟401,若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於當前像素點的原始像素值和當前像素點的周圍像素點的原始像素值確定當前像素點的梯度值。
示例性的,當前像素點的梯度值,可以是基於當前像素點的原始像素值和周圍像素點的原始像素值之間的差值確定,也就是說,當前像素點的梯度值反映的是兩個像素值的差值。
示例性的,當前像素點的周圍像素點,可以是當前像素點的相鄰像素點,也可以是當前像素點的非相鄰像素點。當前像素點的周圍像素點,可以是位於當前塊中的像素點,也可以是位於當前塊的相鄰塊中的像素點。比如說,當前像素點的周圍像素點,可以是當前像素點左側的像素點,可以是當前像素點右側的像素點,可以是當前像素點上側的像素點,可以是當前像素點下側的像素點,對此當前像素點的周圍像素點的位置不做限制。
比如說,參見圖3所示,若當前像素點是當前塊中的R0,則當前像素點的周圍像素點可以是當前塊左側相鄰塊中的L0。若當前像素點是當前塊中第一行第二列的像素點,則當前像素點的周圍像素點可以是當前塊上側相鄰塊中第八行第二列的像素點。
步驟402,基於當前像素點的梯度值和當前像素點的原始像素值,確定當前像素點的調整像素值。例如,可以基於當前像素點的梯度值、當前 像素點的原始像素值、第一調整閾值、第二調整閾值、第一調整偏移值和第二調整偏移值,確定當前像素點的調整像素值。
在一種可能的實施方式中,若當前像素點的梯度值大於第一調整閾值,則基於當前像素點的原始像素值和第一調整偏移值確定當前像素點的調整像素值,比如說,基於當前像素點的原始像素值和第一調整偏移值之和確定當前像素點的調整像素值。若當前像素點的梯度值小於第二調整閾值,則基於當前像素點的原始像素值和第二調整偏移值確定當前像素點的調整像素值,比如說,基於當前像素點的原始像素值和第二調整偏移值之和確定當前像素點的調整像素值。示例性的,第一調整閾值和第二調整閾值可以互為相反數。當然,第一調整閾值和第二調整閾值也可以不互為相反數,可以任意設置第一調整閾值和第二調整閾值。
在一種可能的實施方式中,若當前塊中的當前像素點滿足增強調整模式的啟用條件,還可以從當前塊的相鄰塊中確定與當前像素點對應的參考像素點,並基於參考像素點的原始像素值和參考像素點的周圍像素點的原始像素值確定參考像素點的梯度值;基於參考像素點的梯度值和參考像素點的原始像素值,確定參考像素點的調整像素值。
示例性的,參考像素點可以是相鄰塊中與當前像素點相鄰的像素點,也可以是相鄰塊中與當前像素點非相鄰的像素點,對此不做限制。比如說,參見圖3所示,若當前像素點是當前塊中的R0,則參考像素點可以是當前塊左側相鄰塊中的L0,也可以是當前塊左側相鄰塊中的L1、L2等,對此不做限制。若當前像素點是當前塊中的R1,則參考像素點可以是當前塊左側相鄰塊中的L0,也可以是當前塊左側相鄰塊中的L1、L2等,對此不做限制。若當前像素點是當前塊中第一行第二列的像素點,則參考像素點可以是當前塊上側相鄰塊中第八行第二列的像素點,也可以是當前塊上側相鄰塊中第七行第二列的像素點,對此不做限制。
示例性的,參考像素點的梯度值,可以是基於參考像素點的原始像素值和參考像素點的周圍像素點的原始像素值之間的差值確定,也就是說,梯度值反映的是兩個像素值的差值。
示例性的,參考像素點的周圍像素點,可以是參考像素點的相鄰像素點,也可以是參考像素點的非相鄰像素點。參考像素點的周圍像素點,可以是位於參考像素點所在塊中的像素點,也可以是位於參考像素點所在塊的相鄰塊中的像素點。參考像素點的周圍像素點,可以是參考像素點左側的像素點,可以是參考像素點右側的像素點,可以是參考像素點上側的像素點,可以是參考像素點下側的像素點,對此參考像素點的周圍像素點的位置不做限制。
在一種可能的實施方式中,參考像素點的周圍像素點,可以是當前塊中的當前像素點,與此類似的,當前像素點的周圍像素點,可以是當前塊的相鄰塊中的參考像素點。
示例性的,基於參考像素點的梯度值和參考像素點的原始像素值,確定參考像素點的調整像素值,可以包括但不限於:基於參考像素點的梯度值、參考像素點的原始像素值、第三調整閾值(與第一調整閾值可以相同,也可以不同)、第四調整閾值(與第二調整閾值可以相同,也可以不同)、第三調整偏移值(與第一調整偏移值可以相同,也可以不同)和第四調整偏移值(與第三調整偏移值可以相同,也可以不同),確定參考像素點的調整像素值。
比如說,若參考像素點的梯度值大於第三調整閾值,則基於參考像素點的原始像素值和第三調整偏移值確定參考像素點的調整像素值,比如說,基於參考像素點的原始像素值和第三調整偏移值之和確定參考像素點的調整像素值。若參考像素點的梯度值小於第四調整閾值,則基於參考像素點的原始像素值和第四調整偏移值確定參考像素點的調整像素值,比如說,基於參考像素點的原始像素值和第四調整偏移值之和確定參考像素點的調整像素值。
示例性的,第三調整閾值和第四調整閾值可以互為相反數。當然,第三調整閾值和第四調整閾值也可以不互為相反數,可以任意設置第三調整閾值和第四調整閾值。
在一種可能的實施方式中,可以從高層語法中解析出當前塊對應的第一調整閾值,第二調整閾值,第一調整偏移值,第二調整偏移值,第三調整閾值,第四調整閾值,第三調整偏移值和第四調整偏移值。或者,可以從高層語法中解析出當前塊對應的第一調整閾值,第一調整偏移值,第二調整偏移值,第三調整閾值,第三調整偏移值和第四調整偏移值。或者,可以從高層語法中解析出當前塊對應的第二調整閾值,第一調整偏移值,第二調整偏移值,第三調整閾值,第三調整偏移值和第四調整偏移值。或者,可以從高層語法中解析出當前塊對應的第一調整閾值,第一調整偏移值,第二調整偏移值,第四調整閾值,第三調整偏移值和第四調整偏移值。或者,可以從高層語法中解析出當前塊對應的第二調整閾值,第一調整偏移值,第二調整偏移值,第四調整閾值,第三調整偏移值和第四調整偏移值。
示例性的,若第一調整閾值和第二調整閾值互為相反數,從高層語法中解析出第一調整閾值後,可推導出第二調整閾值,從高層語法中解析出第二調整閾值後,可推導出第一調整閾值。若第三調整閾值和第四調整閾值互為相反數,從高層語法中解析出第三調整閾值後,可推導出第四調整閾值,從高層語法中解析出第四調整閾值後,可推導出第三調整閾值。
在一種可能的實施方式中,當前塊中的當前像素點滿足增強調整模式的啟用條件,可以包括但不限於:若當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強調整模式的啟用條件,則確定當前像素點滿足增強調整模式的啟用條件。比如說,若當前像素點對應的待濾波邊界的邊界強度為預設第一數值,則可以確定待濾波邊界的邊界強度滿足增強調整模式的啟用條件。示例性的,預設第一數值可以為0。當然,預設第一數值還可以為其它數值。
或者,若當前塊對應的特徵資訊滿足增強調整模式的啟用條件,則確定當前塊中的當前像素點滿足增強調整模式的啟用條件。示例性的,當前塊對應的特徵資訊滿足增強調整模式的啟用條件是指,若基於當前塊對應的特徵資訊,確定不對當前塊啟動濾波操作(如去塊濾波操作等),則確定當前塊對應的特徵資訊滿足增強調整模式的啟用條件。
示例性的,在確定當前塊中的當前像素點滿足增強調整模式的啟用條件之前,可以先獲取當前塊對應的增強調整模式使能標誌位元,若當前塊對應的增強調整模式使能標誌位元允許當前塊啟用增強調整模式,則確定當前塊中的當前像素點是否滿足增強調整模式的啟用條件,即確定出當前像素點滿足增強調整模式的啟用條件,或者,不滿足增強調整模式的啟用條件。
或者,若當前塊對應的增強調整模式使能標誌位元不允許當前塊啟用增強調整模式,則直接確定當前塊中的當前像素點不滿足增強調整模式的啟用條件。
示例性的,針對解碼端來說,可以從高層語法中解析出當前塊對應的增強調整模式使能標誌位元,繼而基於增強調整模式使能標誌位元確定是否允許當前塊啟用增強調整模式。
比如說,若增強調整模式使能標誌位元為第一取值(如1),則增強調整模式使能標誌位元允許當前塊啟用增強調整模式,若增強調整模式使能標誌位元為第二取值(如0),則增強調整模式使能標誌位元不允許當前塊啟用增強調整模式。
在一種可能的實施方式中,若該編解碼方法應用於預測過程(如幀內預測或者幀間預測),則當前像素點的原始像素值可以是幀內預測或者幀間預測得到的預測值,而當前像素點的調整像素值作為當前像素點的目標像素值(預測過程的最終像素值)。若該編解碼方法應用於濾波過程,則當前像素點的原始像素值可以是濾波前的預測值,而當前像素點的調整像素值作為當前像素點的目標像素值(濾波過程的最終像素值)。
由以上技術方案可見,本申請實施例中,若當前塊中的當前像素點滿足增強調整模式的啟用條件,則可以基於當前像素點的梯度值和當前像素點的原始像素值,確定當前像素點的調整像素值,也就是說,基於當前像素點的梯度值對當前像素點的原始像素值進行調整,使當前像素點的調整像素值更接近原始像素,從而提高編碼性能。在濾波過程中,如DBF、 SAO和ALF等,若當前塊中的當前像素點滿足增強調整模式的啟用條件,在基於當前像素點的梯度值對當前像素點的原始像素值進行調整後,可以提高濾波效果,提高編碼性能。
在一種可能的實施方式中,若當前塊中的當前像素點滿足普通濾波模式的啟用條件,則還可以對當前像素點的原始像素值進行去塊濾波(即DBF濾波),得到當前像素點的濾波像素值。當然,去塊濾波只是一個示例,還可以採用其它濾波方式對當前像素點的原始像素值進行濾波,比如說,對當前像素點的原始像素值進行SAO濾波,得到當前像素點的濾波像素值。或者,對當前像素點的原始像素值進行ALF濾波,得到當前像素點的濾波像素值。
示例性的,以去塊濾波為例,參見步驟S11-步驟S13,示出了對當前像素點的原始像素值進行去塊濾波,得到當前像素點的濾波像素值的過程,在此不再重複贅述。
繼續參見步驟S11-步驟S13,從這些步驟可以看出,若邊界兩側的塊為非幀內模式塊、無殘差、且運動一致時,才會跳過濾波過程,否則,需要進行濾波過程。在需要進行濾波過程時,還可以獲取BS的取值,若BS等於0,則不濾波,即不對邊界兩側的像素進行濾波,若BS大於0,則對邊界兩側的像素進行濾波。綜上所述,若邊界兩側的塊為非幀內模式塊、無殘差、且運動一致時,則當前塊中的當前像素點不滿足普通濾波模式的啟用條件。若邊界兩側的塊為非幀內模式塊、無殘差、且運動一致不成立(即邊界兩側的塊不為非幀內模式塊,或邊界兩側的塊有殘差,或邊界兩側的塊運動不一致),且BS等於0,則當前塊中的當前像素點不滿足普通濾波模式的啟用條件。若邊界兩側的塊為非幀內模式塊、無殘差、且運動一致不成立,且BS大於0,則當前塊中的當前像素點滿足普通濾波模式的啟用條件。
需要注意的是,若當前塊中的當前像素點滿足普通濾波模式的啟用條件,則當前塊中的當前像素點不滿足增強調整模式的啟用條件,若當前塊中的當前像素點滿足增強調整模式的啟用條件,則當前塊中的當前像素點不滿足普通濾波模式的啟用條件。
在當前像素點滿足普通濾波模式的啟用條件,且對當前像素點的原始像素值進行去塊濾波,得到當前像素點的濾波像素值的基礎上,還需要確定當前塊中的當前像素點是否滿足增強濾波模式的啟用條件。若當前塊中的當前像素點滿足增強濾波模式的啟用條件,則基於當前像素點的濾波像素值和當前像素點的原始像素值,確定當前像素點的調整像素值,即當前像素點的調整像素值作為當前像素點的目標像素值(去塊濾波過程的最終像素值)。若當前塊中的當前像素點不滿足增強濾波模式的啟用條件,則不對當前像素點的濾波像素值進行調整,當前像素點的濾波像素值作為當前像素點的目標像素值(去塊濾波過程的最終像素值)。
示例性的,若當前塊中的當前像素點滿足增強濾波模式的啟用條件,基於當前像素點的濾波像素值和當前像素點的原始像素值,確定當前像素點的調整像素值,可以包括但不限於:基於當前像素點的濾波像素值,當前像素點的原始像素值,第一濾波閾值,第二濾波閾值,第一濾波偏移值和第二濾波偏移值,確定當前像素點的調整像素值。
示例性的,第一濾波閾值和第二濾波閾值可以互為相反數,當然,第一濾波閾值和第二濾波閾值也可以不互為相反數,可以任意設置第一濾波閾值和第二濾波閾值。
在一種可能的實施方式中,若當前塊中的當前像素點滿足普通濾波模式的啟用條件,還可以從當前塊的相鄰塊中確定與當前像素點對應的參考像素點,並對參考像素點的原始像素值進行去塊濾波(即DBF濾波),得到參考像素點的濾波像素值。當然,去塊濾波只是一個示例,還可以採用其它濾波方式對參考像素點的原始像素值進行濾波,比如說,對參考像素點的原始像素值進行SAO濾波或者ALF濾波,得到參考像素點的濾波像素值。
示例性的,以去塊濾波為例,參見步驟S11-步驟S13,示出了對參考像素點的原始像素值進行去塊濾波,得到參考像素點的濾波像素值的過程,在此不再重複贅述。
示例性的,參考像素點可以是相鄰塊中與當前像素點相鄰的像素點,參考像素點也可以是相鄰塊中與當前像素點非相鄰的像素點,對此不做限制。
在當前像素點滿足普通濾波模式的啟用條件,且對參考像素點的原始像素值進行去塊濾波,得到參考像素點的濾波像素值的基礎上,還需要確定當前塊中的當前像素點是否滿足增強濾波模式的啟用條件。若當前塊中的當前像素點滿足增強濾波模式的啟用條件,則基於參考像素點的濾波像素值和參考像素點的原始像素值,確定參考像素點的調整像素值,即參考像素點的調整像素值作為參考像素點的目標像素值(去塊濾波過程的最終像素值)。若當前塊中的當前像素點不滿足增強濾波模式的啟用條件,則不對參考像素點的濾波像素值進行調整,參考像素點的濾波像素值作為參考像素點的目標像素值(去塊濾波過程的最終像素值)。
示例性的,基於參考像素點的濾波像素值和參考像素點的原始像素值,確定參考像素點的調整像素值,可以包括但不限於:基於參考像素點的濾波像素值,參考像素點的原始像素值,第三濾波閾值,第四濾波閾值,第三濾波偏移值和第四濾波偏移值,確定參考像素點的調整像素值;其中,第三濾波閾值和第四濾波閾值可以互為相反數,當然,第三濾波閾值和第四濾波閾值也可以不互為相反數,可以任意設置第三濾波閾值和第四濾波閾值。
在一種可能的實施方式中,可以從高層語法中解析出當前塊對應的第一濾波閾值,第二濾波閾值,第一濾波偏移值,第二濾波偏移值,第三濾波閾值,第四濾波閾值,第三濾波偏移值和第四濾波偏移值。或者,可以從高層語法中解析出當前塊對應的第一濾波閾值,第一濾波偏移值,第二濾波偏移值,第三濾波閾值,第三濾波偏移值和第四濾波偏移值。或者,可以從高層語法中解析出當前塊對應的第二濾波閾值,第一濾波偏移值,第二濾波偏移值,第三濾波閾值,第三濾波偏移值和第四濾波偏移值。或者,可以從高層語法中解析出當前塊對應的第一濾波閾值,第一濾波偏移值,第二濾波偏移值,第四濾波閾值,第三濾波偏移值和第四濾波偏移值。或者,可以 從高層語法中解析出當前塊對應的第二濾波閾值,第一濾波偏移值,第二濾波偏移值,第四濾波閾值,第三濾波偏移值和第四濾波偏移值。
示例性的,若第一濾波閾值和第二濾波閾值互為相反數,從高層語法中解析出第一濾波閾值後,可推導出第二濾波閾值,從高層語法中解析出第二濾波閾值後,可推導出第一濾波閾值。若第三濾波閾值和第四濾波閾值互為相反數,從高層語法中解析出第三濾波閾值後,可推導出第四濾波閾值,從高層語法中解析出第四濾波閾值後,可推導出第三濾波閾值。
在一種可能的實施方式中,當前塊中的當前像素點滿足增強濾波模式的啟用條件,可以包括但不限於:若當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強濾波模式的啟用條件,且當前像素點的濾波像素值與當前像素點的原始像素值之間的差值的絕對值大於預設閾值(該預設閾值為正值,對此預設閾值不做限制,比如說,若第一濾波閾值和第二濾波閾值互為相反數,當第一濾波閾值為正值時,該預設閾值與第一濾波閾值相同,當第二濾波閾值為正值時,該預設閾值與第二濾波閾值相同,當然,預設閾值也可以為其它取值),則確定當前像素點滿足增強濾波模式的啟用條件。示例性的,當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強濾波模式的啟用條件,可以包括但不限於:若當前像素點對應的待濾波邊界的邊界強度為預設第二數值(與預設第一數值不同,即不為0,如預設第二數值可以大於0),則確定待濾波邊界的邊界強度滿足增強濾波模式的啟用條件。
示例性的,在確定當前塊中的當前像素點滿足增強濾波模式的啟用條件之前,可以先獲取當前塊對應的增強濾波模式使能標誌位元,若當前塊對應的增強濾波模式使能標誌位元允許當前塊啟用增強濾波模式,則確定當前塊中的當前像素點是否滿足增強濾波模式的啟用條件,即確定出當前像素點滿足增強濾波模式的啟用條件,或者,不滿足增強濾波模式的啟用條件。
或者,若當前塊對應的增強濾波模式使能標誌位元不允許當前塊啟用增強濾波模式,則直接確定當前塊中的當前像素點不滿足增強濾波模 式的啟用條件。
示例性的,針對解碼端來說,可以從高層語法中解析出當前塊對應的增強濾波模式使能標誌位元,繼而基於增強濾波模式使能標誌位元確定是否允許當前塊啟用增強濾波模式。
比如說,若增強濾波模式使能標誌位元為第一取值(如1),則增強濾波模式使能標誌位元允許當前塊啟用增強濾波模式,若增強濾波模式使能標誌位元為第二取值(如0),則增強濾波模式使能標誌位元不允許當前塊啟用增強濾波模式。
示例性的,在上述實施例中,高層語法可以包括但不限於如下語法中的一種:序列級參數集SPS級高層語法;圖像參數集PPS級高層語法;圖像頭級高層語法;幀級高層語法;片頭級高層語法;編碼樹單元CTU級高層語法;編碼單元CU級高層語法。
示例性的,在上述實施例中,當前塊中的當前像素點的像素值可以為亮度分量或者色度分量。
由以上技術方案可見,若當前塊中的當前像素點滿足增強濾波模式的啟用條件,則可以基於當前像素點的濾波像素值和當前像素點的原始像素值,確定當前像素點的調整像素值,也就是說,基於當前像素點的濾波像素值對當前像素點的原始像素值進行調整,使當前像素點的調整像素值更接近原始像素,從而提高編碼性能。在濾波過程中,如DBF、SAO和ALF等,若當前塊中的當前像素點滿足增強濾波模式的啟用條件,在基於當前像素點的濾波像素值對當前像素點的原始像素值進行調整後,可以提高濾波效果,提高編碼性能。
實施例2:在需要進行濾波處理時,需要先判斷是否跳過濾波過程,比如說,若邊界兩側的塊(即當前塊和當前塊的相鄰塊,對於垂直邊界來說,是當前塊左側的相鄰塊,對於水平邊界來說,是當前塊上側的相鄰塊)為非幀內模式塊(即當前塊和相鄰塊都不是幀內塊)、無殘差(即當前塊和相鄰塊之間沒有殘差)、且運動一致(即當前塊和相鄰塊的運動一致)時, 會跳過濾波過程,否則,不會跳過濾波過程。基於此,可以將“跳過濾波過程”作為增強調整模式的啟用條件,即,若針對當前塊中的當前像素點跳過濾波過程,則當前塊中的當前像素點滿足增強調整模式的啟用條件。在當前像素點滿足增強調整模式的啟用條件時,可以採用增強調整模式對當前像素點的原始像素值進行調整,從而使得像素值更接近原始像素。
示例性的,若當前塊對應的特徵資訊滿足增強調整模式的啟用條件,則確定當前塊中的當前像素點滿足增強調整模式的啟用條件。當前塊對應的特徵資訊用於表示邊界兩側的塊是否為非幀內模式塊,用於表示邊界兩側的塊是否無殘差,以及,用於表示邊界兩側的塊是否運動一致。基於此,若當前塊對應的特徵資訊用於表示邊界兩側的塊為非幀內模式塊,且用於表示邊界兩側的塊無殘差,且用於表示邊界兩側的塊運動一致,則說明當前塊對應的特徵資訊滿足增強調整模式的啟用條件,並確定當前塊中的當前像素點滿足增強調整模式的啟用條件,即當前塊中的每個像素點滿足增強調整模式的啟用條件。或者,若當前塊對應的特徵資訊用於表示邊界兩側的塊不均為非幀內模式塊,和/或,當前塊對應的特徵資訊用於表示邊界兩側的塊有殘差,和/或,當前塊對應的特徵資訊用於表示邊界兩側的塊運動不一致,則說明當前塊對應的特徵資訊不滿足增強調整模式的啟用條件,並確定當前塊中的當前像素點不滿足增強調整模式的啟用條件,即當前塊中的每個像素點均不滿足增強調整模式的啟用條件。
示例性的,在當前像素點滿足增強調整模式的啟用條件時,可以採用增強調整模式對當前像素點的原始像素值進行調整,比如說,可以先基於當前像素點的原始像素值確定當前像素點的梯度值,並基於當前像素點的梯度值和當前像素點的原始像素值,確定當前像素點的調整像素值,關於調整像素值的確定過程,可以參見後續實施例,在此不再贅述。
實施例3:在需要進行濾波處理時,需要先判斷是否跳過濾波過程,比如說,若邊界兩側的塊為非幀內模式塊、無殘差、且運動一致時,會跳過濾波過程,否則,不會跳過濾波過程。在不會跳過濾波過程時,還可以確定BS值,若BS值大於0(如BS值為1、2、3、4等),則可以對邊界 兩側的像素進行濾波。若BS值為0,則不濾波,即不對邊界兩側的像素進行濾波。基於此,可以將“BS值為0”作為增強調整模式的啟用條件,即,若當前塊中的當前像素點的BS值為0,則當前塊中的當前像素點滿足增強調整模式的啟用條件;若當前塊中的當前像素點的BS值大於0,則當前塊中的當前像素點不滿足增強調整模式的啟用條件。
示例性的,若當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強調整模式的啟用條件,則確定當前像素點滿足增強調整模式的啟用條件。比如說,可以先確定當前像素點對應的待濾波邊界的邊界強度,若該邊界強度為預設第一數值,則確定該邊界強度滿足增強調整模式的啟用條件。該預設第一數值可以根據經驗配置,如預設第一數值為0。綜上所述,若當前像素點對應的待濾波邊界的邊界強度為0,則說明當前像素點對應的待濾波邊界的邊界強度滿足增強調整模式的啟用條件,並確定當前像素點滿足增強調整模式的啟用條件。
或者,若當前塊中的當前像素點對應的待濾波邊界的邊界強度不滿足增強調整模式的啟用條件,則確定當前像素點不滿足增強調整模式的啟用條件。比如說,若當前像素點對應的待濾波邊界的邊界強度不為預設第一數值,則確定該邊界強度不滿足增強調整模式的啟用條件,從而能夠確定當前塊中的當前像素點不滿足增強調整模式的啟用條件。
示例性的,在當前像素點滿足增強調整模式的啟用條件時,可以採用增強調整模式對當前像素點的原始像素值進行調整,從而使得像素值更接近原始像素。比如說,可以先基於當前像素點的原始像素值確定當前像素點的梯度值,並基於當前像素點的梯度值和當前像素點的原始像素值,確定當前像素點的調整像素值,調整像素值的確定過程參見後續實施例。
實施例4:在需要進行濾波處理時,需要先判斷是否跳過濾波過程,比如說,若邊界兩側的塊為非幀內模式塊、無殘差、且運動一致時,會跳過濾波過程,否則,不會跳過濾波過程。在不會跳過濾波過程時,還可以確定BS值,若BS值大於0(如BS值為1、2、3、4等),則可以對邊界兩側的像素進行濾波。若BS值為0,則不濾波,即不對邊界兩側的像素進 行濾波。基於此,可以將“BS值大於0”作為普通濾波模式的啟用條件,即,若當前塊中的當前像素點的BS值大於0,則當前塊中的當前像素點滿足普通濾波模式的啟用條件;若當前塊中的當前像素點的BS值等於0,則當前塊中的當前像素點不滿足普通濾波模式的啟用條件。
示例性的,若當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足普通濾波模式的啟用條件,則確定當前像素點滿足普通濾波模式的啟用條件。比如說,可以先確定當前像素點對應的待濾波邊界的邊界強度,若該邊界強度為預設第二數值,則確定該邊界強度滿足普通濾波模式的啟用條件。該預設第二數值可以根據經驗進行配置,如預設第二數值可以大於0,如預設第二數值可以為1、2、3、4等。綜上所述,若當前像素點對應的待濾波邊界的邊界強度大於0(即邊界強度不為0),則說明當前像素點對應的待濾波邊界的邊界強度滿足普通濾波模式的啟用條件,並確定當前像素點滿足普通濾波模式的啟用條件。
或者,若當前塊中的當前像素點對應的待濾波邊界的邊界強度不滿足普通濾波模式的啟用條件,則確定當前像素點不滿足普通濾波模式的啟用條件。比如說,若當前像素點對應的待濾波邊界的邊界強度(如0)不為預設第二數值,則確定該邊界強度不滿足普通濾波模式的啟用條件,從而能夠確定當前塊中的當前像素點不滿足普通濾波模式的啟用條件。
示例性的,在當前像素點滿足普通濾波模式的啟用條件時,還可以對當前像素點的原始像素值進行去塊濾波(即DBF濾波,本文以去塊濾波為例),得到當前像素點的濾波像素值。
實施例5:在當前塊中的當前像素點滿足普通濾波模式的啟用條件,且對當前像素點的原始像素值進行去塊濾波,得到當前像素點的濾波像素值的基礎上,還可以確定當前塊中的當前像素點是否滿足增強濾波模式的啟用條件。比如說,確定當前像素點的濾波像素值與當前像素點的原始像素值之間的差值的絕對值是否大於預設閾值,若大於預設閾值,則確定當前塊中的當前像素點滿足增強濾波模式的啟用條件,若不大於預設閾值,則確定當前塊中的當前像素點不滿足增強濾波模式的啟用條件。綜上所述,當前 塊中的當前像素點滿足增強濾波模式的啟用條件,可以包括:若當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強濾波模式的啟用條件,且當前像素點的濾波像素值與當前像素點的原始像素值之間的差值的絕對值大於預設閾值,則確定當前像素點滿足增強濾波模式的啟用條件。
以下結合具體實施例,對增強濾波模式的啟用條件進行說明。
在需要進行濾波處理時,需要先判斷是否跳過濾波過程,在不會跳過濾波過程時,還可以確定BS值,若BS值大於0,則可以對邊界兩側的像素進行濾波。基於此,可以將“BS值大於0”作為增強濾波模式的啟用條件,也就是說,“BS值大於0”同時作為普通濾波模式和增強濾波模式的啟用條件。在BS值大於0時,需要對當前像素點的原始像素值進行去塊濾波,得到當前像素點的濾波像素值。在得到當前像素點的濾波像素值之後,還可以確定當前像素點的濾波像素值與當前像素點的原始像素值之間的差值的絕對值是否大於預設閾值,並將“差值的絕對值大於預設閾值”作為增強濾波模式的啟用條件。
綜上所述,若當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強濾波模式的啟用條件,且當前像素點的濾波像素值與當前像素點的原始像素值之間的差值的絕對值大於預設閾值,則確定當前像素點滿足增強濾波模式的啟用條件。否則,確定當前像素點不滿足增強濾波模式的啟用條件。比如說,先確定當前像素點對應的待濾波邊界的邊界強度,若該邊界強度為預設第二數值,則確定該邊界強度滿足增強濾波模式的啟用條件。預設第二數值可以根據經驗進行配置,如預設第二數值可以大於0,如預設第二數值可以為1、2、3、4等。
示例性的,在當前像素點滿足增強濾波模式的啟用條件時,則可以基於當前像素點的濾波像素值和當前像素點的原始像素值,確定當前像素點的調整像素值,即當前像素點的調整像素值作為當前像素點的目標像素值(去塊濾波過程的最終像素值)。若當前塊中的當前像素點不滿足增強濾波模式的啟用條件,則不對當前像素點的濾波像素值進行調整,當前像素點的濾波像素值作為當前像素點的目標像素值(去塊濾波過程的最終像素 值)。
從上述實施例1、2、3、4、5可以看出,本文涉及增強調整模式、普通濾波模式和增強濾波模式,可以基於增強調整模式、普通濾波模式或增強濾波模式對當前像素點的原始像素值進行處理,得到當前像素點的目標像素值(即最終像素值)。比如說,若當前像素點滿足增強調整模式的啟用條件,則在增強調整模式下,可以基於當前像素點的梯度值對當前像素點的原始像素值進行調整,得到當前像素點的調整像素值,將該調整像素值作為目標像素值。又例如,若當前像素點滿足普通濾波模式的啟用條件,但是不滿足增強濾波模式的啟用條件,則在普通濾波模式下,可以對當前像素點的原始像素值進行濾波,得到當前像素點的濾波像素值,將該濾波像素值作為目標像素值。又例如,若當前像素點滿足普通濾波模式的啟用條件,且滿足增強濾波模式的啟用條件,則在增強濾波模式下,可以對當前像素點的原始像素值進行濾波,得到當前像素點的濾波像素值,並基於當前像素點的濾波像素值對當前像素點的原始像素值進行調整,得到當前像素點的調整像素值,將該調整像素值作為目標像素值。
在一種可能的實施方式中,在對當前塊進行去塊濾波時,可以採用增強調整模式、普通濾波模式或增強濾波模式對當前像素點的原始像素值進行處理,也就是說,增強調整模式、普通濾波模式和增強濾波模式均歸屬於去塊濾波模式,即,增強調整模式、普通濾波模式和增強濾波模式可以是去塊濾波模式下的子模式。基於此,在去塊濾波模式下,可以確定採用增強調整模式對當前像素點的原始像素值進行處理,或者,採用普通濾波模式對當前像素點的原始像素值進行處理,或者,採用增強濾波模式對當前像素點的原始像素值進行處理。
當然,增強調整模式、普通濾波模式和增強濾波模式也可以歸屬於其它類型的濾波模式,如SAO濾波模式或者ALF濾波模式等,即,增強調整模式、普通濾波模式和增強濾波模式可以是SAO濾波模式下的子模式,或者,增強調整模式、普通濾波模式和增強濾波模式可以是ALF濾波模式下的子模式。基於此,在SAO濾波模式或者ALF濾波模式下,可以確定採 用增強調整模式對當前像素點的原始像素值進行處理,或者,採用普通濾波模式對當前像素點的原始像素值進行處理,或者,採用增強濾波模式對當前像素點的原始像素值進行處理。
示例性的,以增強調整模式、普通濾波模式和增強濾波模式均歸屬於去塊濾波模式為例,則普通濾波模式可以稱為去塊濾波模式的普通模式,即對當前像素點的原始像素值進行去塊濾波得到濾波像素值後,不再對去塊濾波後的濾波像素值進行調整。增強濾波模式可以稱為去塊濾波調整模式(deblocking refinement,縮寫為DBR),即對當前像素點的原始像素值進行去塊濾波得到濾波像素值後,還需要對去塊濾波後的濾波像素值進行調整。增強調整模式可以稱為可選去塊濾波調整模式(alt deblocking refinement,縮寫為ADBR),即在不對當前像素點的原始像素值進行去塊濾波的基礎上,直接對當前像素點的原始像素值進行調整。
實施例6:針對實施例1、實施例2和實施例3,可以採用增強調整模式對當前像素點的原始像素值進行調整,在對原始像素值進行調整時,可以採用如下步驟:
步驟S21、基於當前像素點的原始像素值和當前像素點的周圍像素點的原始像素值確定當前像素點的梯度值。比如說,當前像素點的梯度值,可以是基於當前像素點的原始像素值和周圍像素點的原始像素值之間的差值確定,對此確定方式不做限制。
步驟S22、從當前塊的相鄰塊(針對垂直邊界來說,該相鄰塊是當前塊的左側相鄰塊,對於水平邊界來說,該相鄰塊是當前塊的上側相鄰塊)中確定與當前像素點對應的參考像素點,並基於參考像素點的原始像素值和參考像素點的周圍像素點的原始像素值確定參考像素點的梯度值。比如說,參考像素點的梯度值,可以是基於參考像素點的原始像素值和參考像素點的周圍像素點的原始像素值之間的差值確定,對此確定方式不做限制。
示例性的,基於當前像素點的原始像素值和當前像素點的周圍像素點(如周圍像素點是參考像素點)的原始像素值確定當前像素點的梯度值, 基於參考像素點的周圍像素點(如周圍像素點是當前像素點)的原始像素值和參考像素點的原始像素值確定參考像素點的梯度值。
比如說,假設pi為當前塊中的當前像素點的原始像素值,也即參考像素點的周圍像素點的原始像素值,qi為相鄰塊中的參考像素點的原始像素值,也即當前像素點的周圍像素點的原始像素值,也就是說,pi和qi分別為邊界兩側的原始像素值,則當前像素點pi的梯度值DPi可以採用如下方式確定:DPi=(pi-qi+2)>>2,參考像素點qi的梯度值DQi可以採用如下方式確定:DQi=(qi-pi+2)>>2。當然,上述只是確定當前像素點的梯度值和參考像素點的梯度值的示例,對此不做限制。顯然,當前像素點的梯度值,可以是基於當前像素點的原始像素值和參考像素點的原始像素值之間的差值確定。參考像素點的梯度值,可以是基於參考像素點的原始像素值和當前像素點的原始像素值之間的差值確定。
以當前像素點pi是p0(對應圖3的R0),參考像素點qi是q0(對應圖3的L0)為例,當前像素點p0的梯度值DP0採用如下方式確定:DP0=(p0-q0+2)>>2,參考像素點q0的梯度值DQ0採用如下方式確定:DQ0=(q0-p0+2)>>2。DP0=(p0-q0+2)>>2的另一種表述為DP0=(p0-q0+1)>>1,DQ0=(q0-p0+2)>>2的另一種表述為DQ0=(q0-p0+1)>>1。
步驟S23、基於當前像素點的梯度值和當前像素點的原始像素值,確定當前像素點的調整像素值。比如說,若當前像素點的梯度值大於第一調整閾值,則基於當前像素點的原始像素值和第一調整偏移值(也可以稱為第一調整偏移量)確定當前像素點的調整像素值。若當前像素點的梯度值小於第二調整閾值,則基於當前像素點的原始像素值和第二調整偏移值確定當前像素點的調整像素值。示例性的,第一調整閾值和第二調整閾值可以互為相反數。
步驟S24、基於參考像素點的梯度值和參考像素點的原始像素值,確定參考像素點的調整像素值。比如說,若參考像素點的梯度值大於第三調整閾值,則基於參考像素點的原始像素值和第三調整偏移值(也可以稱為第 三調整偏移量)確定參考像素點的調整像素值。若參考像素點的梯度值小於第四調整閾值,則基於參考像素點的原始像素值和第四調整偏移值確定參考像素點的調整像素值。示例性的,第三調整閾值和第四調整閾值可以互為相反數。
比如說,若當前像素點pi的梯度值DPi大於alt_dbr_th(alt_dbr_th表示第一調整閾值),則當前像素點pi的調整像素值Pi可以採用如下方式確定:Pi=clip(pi+alt_dbr_offset0),alt_dbr_offset0可以表示第一調整偏移值。或者,若當前像素點pi的梯度值DPi小於-alt_dbr_th(-alt_dbr_th表示第二調整閾值),則當前像素點pi的調整像素值Pi可以採用如下方式確定:Pi=clip(pi+alt_dbr_offset1),alt_dbr_offset1可以表示第二調整偏移值。
在上述實施例中,i可以為0、1、2,以i為0為例進行說明,則:若DP0>dbr_th,則P0=clip(p0+alt_dbr_offset0);若DP0<-dbr_th,則P0=clip(p0+alt_dbr_offset1)。
比如說,若參考像素點qi的梯度值DQi大於alt_dbr_th(alt_dbr_th表示第三調整閾值,此處以第三調整閾值與第一調整閾值相同為例,在實際應用中,第三調整閾值與第一調整閾值也可以不同),則參考像素點qi的調整像素值Qi可以採用如下方式確定:Qi=clip(qi+alt_dbr_offset0),alt_dbr_offset0可以表示第三調整偏移值,此次以第三調整偏移值與第一調整偏移值相同為例,在實際應用中,第三調整偏移值與第一調整偏移值也可以不同。
或者,若參考像素點qi的梯度值DQi小於-alt_dbr_th(-alt_dbr_th表示第四調整閾值,此處以第四調整閾值與第二調整閾值相同為例,在實際應用中,第四調整閾值與第二調整閾值也可以不同),則參考像素點qi的調整像素值Qi可以採用如下方式確定:Qi=clip(qi+alt_dbr_offset1),alt_dbr_offset1可以表示第四調整偏移值,此次以第四調整偏移值與第二調整偏移值相同為例,在實際應用中,第四調整偏移值與第二調整偏移值也可以不同。
在上述實施例中,i可以為0、1、2,以i為0為例進行說明,則:若DQ0>dbr_th,則Q0=clip(q0+alt_dbr_offset0);若DQ0<-dbr_th,則Q0=clip(q0+alt_dbr_offset1)。
在上述實施例中,pi表示當前像素點的原始像素值,DPi表示當前像素點的梯度值,Pi表示當前像素點的調整像素值,qi表示參考像素點的原始像素值,DQi表示參考像素點的梯度值,Qi表示參考像素點的調整像素值。clip(x)表示將x限制在[0,2^(bit_depth)-1]之間(包括0和2^(bit_depth)-1),bit_depth表示圖像的比特深度,一般為8、10、12等。
在一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第一調整閾值,第一調整偏移值,第二調整偏移值,第三調整閾值,第三調整偏移值和第四調整偏移值。由於第一調整閾值與第二調整閾值互為相反數,第三調整閾值與第四調整閾值互為相反數,因此,解碼端可以確定出第二調整閾值和第四調整閾值。
在另一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第一調整閾值,第一調整偏移值,第二調整偏移值,第四調整閾值,第三調整偏移值和第四調整偏移值。由於第一調整閾值與第二調整閾值互為相反數,第三調整閾值與第四調整閾值互為相反數,因此,解碼端可以確定出第二調整閾值和第三調整閾值。
在另一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第二調整閾值,第一調整偏移值,第二調整偏移值,第三調整閾值,第三調整偏移值和第四調整偏移值。由於第一調整閾值與第二調整閾值互為相反數,第三調整閾值與第四調整閾值互為相反數,因此,解碼端可以確定出第一調整閾值和第四調整閾值。
在另一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第二調整閾值,第一調整偏移值,第二調整偏移值,第四調整閾值,第三調整偏移值和第四調整偏移值。由於第一調整閾值與第二調整閾值互為相反數,第三調整閾值與第四調整閾值互為相反數,因此, 解碼端可以確定出第一調整閾值和第三調整閾值。
在另一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第一調整閾值(或第二調整閾值,或第三調整閾值,或第四調整閾值,即能夠通過一個調整閾值推導出其它三個調整閾值),第一調整偏移值(或第三調整偏移值)和第二調整偏移值(或第四調整偏移值)。在此基礎上,由於第一調整閾值與第二調整閾值互為相反數,因此,可以確定出第二調整閾值。由於第一調整閾值與第三調整閾值相同,因此,可以確定出第三調整閾值。由於第三調整偏移值與第一調整偏移值相同,因此,可以確定出第三調整偏移值。由於第四調整偏移值與第二調整偏移值相同,因此,可以確定出第四調整偏移值。由於第三調整閾值與第四調整閾值互為相反數,因此,可以確定出第四調整閾值。
當然,上述方式只是幾個示例,對此不做限制,只要解碼端能夠獲知第一調整閾值、第二調整閾值、第三調整閾值、第四調整閾值、第一調整偏移值、第二調整偏移值、第三調整偏移值和第四調整偏移值即可,即上述各數值可以通過解析得到或者推導得到。
在上述實施例中,高層語法可以包括但不限於如下語法中的一種:SPS級高層語法;PPS級高層語法;圖像頭級高層語法;幀級高層語法;片頭級高層語法;CTU級高層語法;CU級高層語法。當然,上述只是高層語法的幾個示例,對此高層語法的類型不做限制,只要能夠通過高層語法攜帶當前塊對應的調整閾值和調整偏移值即可。
在上述實施例中,當前塊中的當前像素點的像素值可以為亮度分量或者色度分量。
在一種可能的實施方式中,可以通過增強調整模式使能標誌位元表示是否允許啟用增強調整模式,若增強調整模式使能標誌位元允許當前塊啟用增強調整模式,則需要確定當前塊中的當前像素點是否滿足增強調整模式的啟用條件,若當前像素點滿足增強調整模式的啟用條件,則採用增強調整模式對當前像素點的原始像素值進行調整。若增強調整模式使能標 誌位元不允許當前塊啟用增強調整模式,則直接確定當前塊中的每個像素點不滿足增強調整模式的啟用條件,不會採用增強調整模式對當前像素點的原始像素值進行調整。在此基礎上,若當前塊對應的增強調整模式使能標誌位元允許當前塊啟用增強調整模式,則確定當前塊中的當前像素點是否滿足增強調整模式的啟用條件。若當前塊對應的增強調整模式使能標誌位元不允許當前塊啟用增強調整模式,則確定當前塊中的每個像素點不滿足增強調整模式的啟用條件。
示例性的,針對解碼端來說,可以從高層語法中解析出當前塊對應的增強調整模式使能標誌位元。比如說,若該增強調整模式使能標誌位元為第一取值(如1),則說明增強調整模式使能標誌位元允許當前塊啟用增強調整模式,若該增強調整模式使能標誌位元為第二取值(如0),則說明增強調整模式使能標誌位元不允許當前塊啟用增強調整模式。
在上述實施例中,高層語法可以包括但不限於如下語法中的一種:SPS級高層語法;PPS級高層語法;圖像頭級高層語法;幀級高層語法;片頭級高層語法;CTU級高層語法;CU級高層語法。當然,上述只是高層語法的幾個示例,對此高層語法的類型不做限制,只要能夠通過高層語法攜帶當前塊對應的增強調整模式使能標誌位元即可。
實施例7:針對實施例1和實施例5,可以採用增強濾波模式對當前像素點的原始像素值進行調整,在對當前像素點的原始像素值進行調整時,可以採用如下步驟:
步驟S31、對當前像素點的原始像素值進行去塊濾波,得到當前像素點的濾波像素值。
步驟S32、從當前塊的相鄰塊(針對垂直邊界來說,該相鄰塊是當前塊的左側相鄰塊,對於水平邊界來說,該相鄰塊是當前塊的上側相鄰塊)中確定與當前像素點對應的參考像素點,並對參考像素點的原始像素值進行去塊濾波,得到參考像素點的濾波像素值。
示例性的,可以採用DBF濾波(即去塊濾波)方式對當前像素點 的原始像素值進行去塊濾波,得到當前像素點的濾波像素值,並採用DBF濾波方式對參考像素點的原始像素值進行去塊濾波,得到參考像素點的濾波像素值。當然,也可以採用SAO濾波方式對當前像素點的原始像素值進行濾波,得到當前像素點的濾波像素值,並採用SAO濾波方式對參考像素點的原始像素值進行濾波,得到參考像素點的濾波像素值。或者,可以採用ALF濾波方式對當前像素點的原始像素值進行濾波,得到當前像素點的濾波像素值,並採用ALF濾波方式對參考像素點的原始像素值進行濾波,得到參考像素點的濾波像素值。為了方便描述,在後續實施例中,以採用DBF濾波方式對當前像素點和參考像素點的原始像素值進行去塊濾波為例。
參見圖3所示,基於當前像素點的位置,可以只對當前像素點和參考像素點進行水平DBF濾波,也可以只對當前像素點和參考像素點進行垂直DBF濾波,還可以先對當前像素點和參考像素點進行垂直DBF濾波,後對當前像素點和參考像素點進行水平DBF濾波。
步驟S33、基於當前像素點的濾波像素值和當前像素點的原始像素值,確定當前像素點的調整像素值。比如說,基於當前像素點的濾波像素值,當前像素點的原始像素值,第一濾波閾值,第二濾波閾值,第一濾波偏移值和第二濾波偏移值,確定當前像素點的調整像素值;其中,該第一濾波閾值和該第二濾波閾值可以互為相反數。
步驟S34、基於參考像素點的濾波像素值和參考像素點的原始像素值,確定參考像素點的調整像素值。比如說,基於參考像素點的濾波像素值,參考像素點的原始像素值,第三濾波閾值,第四濾波閾值,第三濾波偏移值和第四濾波偏移值,確定參考像素點的調整像素值;其中,該第三濾波閾值和該第四濾波閾值可以互為相反數。
示例性的,若當前像素點隻滿足普通濾波模式的啟用條件,不滿足增強濾波模式的啟用條件,則執行步驟S31和步驟S32,將濾波像素值作為目標像素值(去塊濾波過程的最終像素值)。若當前像素點滿足普通濾波模式的啟用條件和增強濾波模式的啟用條件,則執行步驟S31-步驟S34,將調整像素值作為目標像素值(去塊濾波過程的最終像素值)。
在步驟S33和步驟S34中,可以基於濾波像素值與未經過濾波處理的原始像素值,對像素點的原始像素值進行增強濾波處理,即對像素點的原始像素值進行增強濾波處理,得到增強處理後的調整像素值,以使增強處理後的調整像素值相比濾波像素值來說,更接近真實像素,避免由於過濾波導致的濾波像素值遠大於或遠小於像素點的真實像素,提升圖像品質。
示例性的,針對步驟S33來說,若當前像素點的濾波像素值與當前像素點的原始像素值之間的差值大於第一濾波閾值,則可以基於當前像素點的濾波像素值,當前像素點的原始像素值和第一濾波偏移值,確定當前像素點的調整像素值。若當前像素點的濾波像素值與當前像素點的原始像素值之間的差值小於第二濾波閾值,則可以基於當前像素點的濾波像素值,當前像素點的原始像素值和第二濾波偏移值,確定當前像素點的調整像素值。
比如說,設Y 1(i)表示當前像素點的原始像素值,Y 2(i)表示當前像素點的濾波像素值,Y 3(i)表示當前像素點的調整像素值,並設Y v (i)=(Y 1(i)+Y 2(i)+1)>>1。
基於此,若Y 1(i)-Y 2(i)>T v ,則Y 3(i)=Clip(Y v (i)+f0 v );若Y 1(i)-Y 2(i)<NT v ,則Y 3(i)=Clip(Y v (i)+f1 v )。在上述公式中,T v 可以表示第一濾波閾值,f0 v 可以表示第一濾波偏移值,NT v 可以表示第二濾波閾值,f1 v 可以表示第二濾波偏移值,NT v 一般設為-T v ,也可以為其它值,clip(x)表示將x限制在預設取值範圍內,該範圍一般為[0,2 D -1],D為圖像比特深度,對於8比特圖像,範圍為[0,255],對於10比特圖像,範圍為[0,1023]。
為了避免增強處理後的調整像素值超出像素值取值範圍,在得到調整像素值時,可以通過Clip(修剪)操作,將調整像素值Clip到預設取值範圍。當調整像素值大於預設取值範圍的上限時,將調整像素值設置為預設取值範圍的上限;當調整像素值小於預設取值範圍的下限時,將調整像素值設置為預設取值範圍的下限。舉例來說,以8比特圖像為例,當調整像素值小於0時,將調整像素值設置為0:當調整像素值大於255時,將調整像 素值設置為255。
示例性的,針對步驟S34來說,若參考像素點的濾波像素值與參考像素點的原始像素值之間的差值大於第三濾波閾值,則可以基於參考像素點的濾波像素值,參考像素點的原始像素值和第三濾波偏移值,確定參考像素點的調整像素值。若參考像素點的濾波像素值與參考像素點的原始像素值之間的差值小於第四濾波閾值,則可以基於參考像素點的濾波像素值,參考像素點的原始像素值和第四濾波偏移值,確定參考像素點的調整像素值。參考像素點的調整像素值的確定方式與當前像素點的調整像素值的確定方式類似,在此不再贅述。
示例性的,第三濾波閾值與第一濾波閾值可以相同,也可以不同,第三濾波偏移值與第一濾波偏移值可以相同,也可以不同,第四濾波閾值與第二濾波閾值可以相同,也可以不同,第四濾波偏移值與第二濾波偏移值可以相同,也可以不同。
在一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第一濾波閾值,第一濾波偏移值,第二濾波偏移值,第三濾波閾值,第三濾波偏移值和第四濾波偏移值。由於第一濾波閾值與第二濾波閾值互為相反數,第三濾波閾值與第四濾波閾值互為相反數,因此,解碼端可以確定出第二濾波閾值和第四濾波閾值。
在另一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第一濾波閾值,第一濾波偏移值,第二濾波偏移值,第四濾波閾值,第三濾波偏移值和第四濾波偏移值。由於第一濾波閾值與第二濾波閾值互為相反數,第三濾波閾值與第四濾波閾值互為相反數,因此,解碼端可以確定出第二濾波閾值和第三濾波閾值。
在另一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第二濾波閾值,第一濾波偏移值,第二濾波偏移值,第三濾波閾值,第三濾波偏移值和第四濾波偏移值。由於第一濾波閾值與第二濾波閾值互為相反數,第三濾波閾值與第四濾波閾值互為相反數,因此, 解碼端可以確定出第一濾波閾值和第四濾波閾值。
在另一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第二濾波閾值,第一濾波偏移值,第二濾波偏移值,第四濾波閾值,第三濾波偏移值和第四濾波偏移值。由於第一濾波閾值與第二濾波閾值互為相反數,第三濾波閾值與第四濾波閾值互為相反數,因此,解碼端可以確定出第一濾波閾值和第三濾波閾值。
在另一種可能的實施方式中,針對解碼端來說,可以從高層語法中解析出當前塊對應的第一濾波閾值(或第二濾波閾值,或第三濾波閾值,或第四濾波閾值,即能夠通過一個濾波閾值推導出其它三個濾波閾值),第一濾波偏移值(或第三濾波偏移值)和第二濾波偏移值(或第四濾波偏移值)。在此基礎上,由於第一濾波閾值與第二濾波閾值互為相反數,因此,可以確定出第二濾波閾值。由於第一濾波閾值與第三濾波閾值相同,因此,可以確定出第三濾波閾值。由於第三濾波偏移值與第一濾波偏移值相同,因此,可以確定出第三濾波偏移值。由於第四濾波偏移值與第二濾波偏移值相同,因此,可以確定出第四濾波偏移值。由於第三濾波閾值與第四濾波閾值互為相反數,因此,可以確定出第四濾波閾值。
當然,上述方式只是幾個示例,對此不做限制,只要解碼端能夠獲知第一濾波閾值、第二濾波閾值、第三濾波閾值、第四濾波閾值、第一濾波偏移值、第二濾波偏移值、第三濾波偏移值和第四濾波偏移值即可,即上述各數值可以通過解析得到或者推導得到。
在上述實施例中,高層語法可以包括但不限於如下語法中的一種:SPS級高層語法;PPS級高層語法;圖像頭級高層語法;幀級高層語法;片頭級高層語法;CTU級高層語法;CU級高層語法。當然,上述只是高層語法的幾個示例,對此高層語法的類型不做限制,只要能夠通過高層語法攜帶當前塊對應的濾波閾值和濾波偏移值即可。
在上述實施例中,當前塊中的當前像素點的像素值可以為亮度分量或者色度分量。
在一種可能的實施方式中,可以通過增強濾波模式使能標誌位元表示是否允許啟用增強濾波模式,若增強濾波模式使能標誌位元允許當前塊啟用增強濾波模式,則需要確定當前塊中的當前像素點是否滿足增強濾波模式的啟用條件,若當前像素點滿足增強濾波模式的啟用條件,則採用增強濾波模式對當前像素點的原始像素值進行調整。若增強濾波模式使能標誌位元不允許當前塊啟用增強濾波模式,則直接確定當前塊中的每個像素點不滿足增強濾波模式的啟用條件,不會採用增強濾波模式對當前像素點的原始像素值進行調整。在此基礎上,若當前塊對應的增強濾波模式使能標誌位元允許當前塊啟用增強濾波模式,則確定當前塊中的當前像素點是否滿足增強濾波模式的啟用條件。若當前塊對應的增強濾波模式使能標誌位元不允許當前塊啟用增強濾波模式,則確定當前塊中的每個像素點不滿足增強濾波模式的啟用條件。
示例性的,針對解碼端來說,可以從高層語法中解析出當前塊對應的增強濾波模式使能標誌位元。比如說,若該增強濾波模式使能標誌位元為第一取值(如1),則說明增強濾波模式使能標誌位元允許當前塊啟用增強濾波模式,若該增強濾波模式使能標誌位元為第二取值(如0),則說明增強濾波模式使能標誌位元不允許當前塊啟用增強濾波模式。
在上述實施例中,高層語法可以包括但不限於如下語法中的一種:SPS級高層語法;PPS級高層語法;圖像頭級高層語法;幀級高層語法;片頭級高層語法;CTU級高層語法;CU級高層語法。當然,上述只是高層語法的幾個示例,對此高層語法的類型不做限制,只要能夠通過高層語法攜帶當前塊對應的增強濾波模式使能標誌位元即可。
實施例8:在滿足普通濾波模式的啟用條件時,可以採用DBF濾波方式(即去塊濾波方式)對像素點的原始像素值進行去塊濾波,由於DBF濾波分為垂直DBF濾波和水平DBF濾波,因此,可以採用如下步驟對像素點的原始像素值進行去塊濾波處理:
第一步:原始像素值Y 1(i)通過垂直DBF濾波後得到濾波像素值Y 2(i);
第二步:像素值Y 2(i)通過水平DBF濾波後得到濾波像素值Y 3(i)。
示例性的,若只對像素點進行垂直DBF濾波,則只執行第一步,得到像素點的濾波像素值。若只對像素點進行水平DBF濾波,則只執行第二步,得到像素點的濾波像素值,將第二步的像素值Y 2(i)替換為像素點的原始像素值即可。若對像素點先進行垂直DBF濾波,後進行水平DBF濾波,則依次執行第一步和第二步。
在滿足普通濾波模式的啟用條件和增強濾波模式的啟用條件時,可以採用DBF濾波方式(即去塊濾波方式)對像素點的原始像素值進行去塊濾波,並對去塊濾波後的濾波像素值進行調整,由於DBF濾波分為垂直DBF濾波和水平DBF濾波,因此,可以採用如下步驟對像素點的原始像素值進行去塊濾波處理,並對去塊濾波後的濾波像素值進行調整:
第一步:原始像素值Y 1(i)通過垂直DBF濾波後得到濾波像素值Y 2(i);
第二步:基於Y 2(i)-Y 1(i),獲得調整像素值Y 3(i);
第三步:像素值Y 3(i)通過水平DBF濾波後得到濾波像素值Y 4(i);
第四步:基於Y 4(i)-Y 3(i),獲得調整像素值Y 5(i)。
示例性的,若只對像素點進行垂直DBF濾波,則只執行第一步和第二步,得到像素點的調整像素值。若只對像素點進行水平DBF濾波,則只執行第三步和第四步,得到像素點的調整像素值,將第三步的像素值Y 3(i)替換為像素點的原始像素值即可。若對像素點先進行垂直DBF濾波,後進行水平DBF濾波,則依次執行第一步、第二步、第三步和第四步。若對像素點先進行水平DBF濾波,後進行垂直DBF濾波,則執行步驟類似,在此不再贅述。
示例性的,針對第二步和第四步,就是滿足增強濾波模式的啟用條件時,採用增強濾波模式的處理過程,即,對濾波像素值進行調整,得到調整像素值的過程。
在第二步中,假設Y v (i)=(Y 1(i)+Y 2(i)+1)>>1,若Y 1(i)-Y 2(i)>T v ,則Y 3(i)=Clip(Y v (i)+f0 v ),若Y 1(i)-Y 2(i)<NT v ,則Y 3(i)=Clip(Y v (i)+f1 v ),否則,
Figure 111106607-A0202-12-0043-6
(在一種實施例中,該種情況也可以 對
Figure 111106607-A0202-12-0043-10
進行濾波獲得Y 3(i),如
Figure 111106607-A0202-12-0043-1
示例性的,clip(x)表示將x限制在預設的圖像取值範圍內,該圖像取值範圍一般可以為[0,2 D -1],D為圖像比特深度,因此,對於8比特圖像,該圖像取值範圍可以為[0,255],對於10比特圖像,該圖像取值範圍為[0,1023]。閾值NT v 一般設為-T v ,也可以為其它值。
類似的,與第二步的處理過程類似,在第四步中,假設Y h (i)=
Figure 111106607-A0202-12-0043-4
,若Y 4(i)-Y 3(i)>T h ,則Y 5(i)=Clip(Y h (i)+f0 h ),若Y 1(i)-Y 2(i)<NT h ,則Y 5(i)=Clip(Y h (i)+f1 h ),否則,
Figure 111106607-A0202-12-0043-5
(在一種實施例中,該種情況也可以對
Figure 111106607-A0202-12-0043-2
進行濾波獲得Y 5(i),如Y 5(i)=
Figure 111106607-A0202-12-0043-3
NT h 一般設為-T h ,也可以為其它值。
在上述實施例中,Tv和NTv為濾波閾值,f0v、f1v和f2v為濾波偏移值,clip(x)表示將x限制在預設的取值範圍內。比如說,Tv為上文中的第一濾波閾值和第三濾波閾值(以第一濾波閾值和第三濾波閾值相同為例),NTv為上文中的第二濾波閾值和第四濾波閾值(以第二濾波閾值和第四濾波閾值相同為例),f0v為上文中的第一濾波偏移值和第三濾波偏移值(以第一濾波偏移值和第三濾波偏移值相同為例),f1v為上文中的第二濾波偏移值和第四濾波偏移值(以第二濾波偏移值和第四濾波偏移值相同為例)。NTv=-Tv,即Tv和NTv互為相反數。
在上述實施例中,Th和NTh為濾波閾值,f0h、f1h和f2h為濾波偏移值,clip(x)表示將x限制在預設的取值範圍內。比如說,Th為上文中的第一濾波閾值和第三濾波閾值(以第一濾波閾值和第三濾波閾值相同為例),NTh為上文中的第二濾波閾值和第四濾波閾值(以第二濾波閾值和第四濾波閾值相同為例),f0h為上文中的第一濾波偏移值和第三濾波偏移值(以第一濾波偏移值和第三濾波偏移值相同為例),f1h為上文中的第二濾波偏移值和第四濾波偏移值(以第二濾波偏移值和第四濾波偏移值相同為 例)。NTh=-Th,即Th和NTh互為相反數。
實施例9:在DBF中,僅根據一個既定準則進行濾波,會存在過濾波或欠濾波的情況。例如,若進行DBF前的重建值為Y1,經過DBF濾波後的像素值為Y2,則可基於Y2-Y1進行分類。基於濾波殘差分類的主要好處是,可以對於一些過濾波或偽濾波的像素值進行特殊增強,以實現這些類別的像素更接近原始值的效果。所謂過濾波,是指Y2遠大於(或遠小於)Y1,以至於Y2遠大於(或遠小於)原始像素值。所謂偽濾波,是指Y2-Y1為0,或接近於0,即這些像素值經過濾波後仍保持不變,未達到濾波效果。針對上述發現,本實施例中,可以採用增強調整模式對像素點的像素值進行調整,也就是說,若對當前塊中的當前像素點啟用增強調整模式,則可以採用增強調整模式對像素點的原始像素值進行調整,而不再採用普通濾波模式或者增強濾波模式對像素點的原始像素值進行調整。
在一種可能的實施方式中,原始像素值的調整過程,可以包括以下步驟:
第一步:原始像素值Y 1(i)通過垂直DBF濾波後得到濾波像素值Y 2(i);
第二步:基於Y 2(i)-Y 1(i),獲得調整像素值Y 3(i);
第三步:像素值Y 3(i)通過水平DBF濾波後得到濾波像素值Y 4(i);
第四步:基於Y 4(i)-Y 3(i),獲得調整像素值Y 5(i)。
在第二步中,存在如下兩種情況,abs(Y 2(i)-Y 1(i))<阈值和abs(Y 2(i)-Y 1(i))不小於閾值,若abs(Y 2(i)-Y 1(i))<閾值,還可以分為以下兩種情況,即BS為0和BS大於0。示例性的,該閾值可以為上述實施例的第一濾波閾值或者第二濾波閾值,比如說,第一濾波閾值和第二濾波閾值互為相反數,若第一濾波閾值為正值,則該閾值可以為第一濾波閾值,若第二濾波閾值為正值,則該閾值可以為第二濾波閾值。
綜上所述,可以將原始像素值的調整過程劃分為如下三種情況:
情況1、BS為0,此時不進行濾波(即Y 2(i)等於Y 1(i),相當於不對原始像素值Y 1(i)進行垂直DBF濾波,即不會執行第一步),但是,可以採用增強調整模式對原始像素值Y 1(i)進行調整,得到調整像素值。
情況2、BS大於0,但是,abs(Y 2(i)-Y 1(i))<阈值,此時可以進行濾波(即對原始像素值Y 1(i)進行垂直DBF濾波,即執行第一步)。在執行第一步的基礎上,還可以採用增強濾波模式對濾波像素值Y 2(i)進行調整,得到像素點的調整像素值Y 3(i)。
情況3、BS大於0,但是,abs(Y 2(i)-Y 1(i))不小於閾值,此時可以進行濾波(即對原始像素值Y 1(i)進行垂直DBF濾波,即執行第一步)。在執行第一步的基礎上,不再採用增強濾波模式對濾波像素值Y 2(i)進行調整,即不再執行第二步,也就是,
Figure 111106607-A0202-12-0045-7
在第四步中,存在如下兩種情況,abs(Y4(i)-Y3(i))<閾值和abs(Y4(i)-Y3(i))不小於閾值,若abs(Y4(i)-Y3(i))<閾值,則還可以分為以下兩種情況,即BS為0和BS大於0。
綜上所述,可以將原始像素值的調整過程劃分為如下三種情況:
情況1、BS為0,此時不進行濾波(即Y 4(i)等於Y 3(i),相當於不對原始像素值Y 3(i)進行水平DBF濾波,不會執行第三步),但是,可以採用增強調整模式對原始像素值Y 3(i)進行調整,得到調整像素值。
情況2、BS大於0,但是,abs(Y4(i)-Y3(i))<閾值,此時可以進行濾波(即對原始像素值Y 3(i)進行水平DBF濾波,即執行第三步),在執行第三步的基礎上,還可以採用增強濾波模式對像素點的濾波像素值Y 4(i)進行調整,得到像素點的調整像素值Y 5(i)。
情況3、BS大於0,但是,abs(Y4(i)-Y3(i))不小於閾值,此時可以進行濾波(即對原始像素值Y 3(i)進行水平DBF濾波,即執行第三步)。在執行第三步的基礎上,不再採用增強濾波模式對濾波像素值Y 4(i)進行調整,即不再執行第四步,也就是,Y 5(i)=Y 4(i)。
綜上所述,若BS為0,則採用增強調整模式進行處理,即可以不 進行濾波處理,也就是說,Y 2(i)=Y 1(i),且Y 4(i)=Y 3(i),在此基礎上,可以採用增強調整模式對Y 1(i)進行調整,並可以採用增強調整模式對Y 3(i)進行調整,因此,可以採用如下步驟進行DBF濾波處理:
第一步:原始像素值Y 1(i)通過垂直DBF濾波後得到濾波像素值Y 2(i)。
第二步:若BS為0,則通過增強調整模式對Y 1(i)進行調整,得到調整像素值Y 3(i)。若BS大於0,且abs(Y 2(i)-Y 1(i))<阈值,則啟用增強濾波模式,基於Y 2(i)-Y 1(i),獲得調整像素值Y 3(i),參見實施例8的第二步。若BS大於0,且abs(Y 2(i)-Y 1(i))不小於閾值,則啟用普通濾波模式,不再對濾波像素值Y 2(i)進行調整,即,
Figure 111106607-A0202-12-0046-8
示例性的,若BS為0,實際上並不執行第一步,即並不需要得到濾波像素值Y 2(i)。
第三步:像素值Y 3(i)通過水平DBF濾波後得到濾波像素值Y 4(i)。
第四步:若BS為0,則通過增強調整模式對Y 3(i)進行調整,得到調整像素值Y 5(i)。若BS大於0,且abs(Y4(i)-Y3(i))<閾值,則啟用增強濾波模式,基於Y 4(i)-Y 3(i),獲得調整像素值Y 5(i),參見實施例8的第四步。若BS大於0,且abs(Y4(i)-Y3(i))不小於閾值,則啟用普通濾波模式,不再對濾波像素值Y 4(i)進行調整,即,Y 5(i)=Y 4(i)。
示例性的,若BS為0,實際上並不執行第三步,即並不需要得到濾波像素值Y 4(i)。
在另一可能的實施方式中,若BS大於0,則進行濾波處理,但濾波處理後abs(Y 2(i)-Y 1(i))<阈值,則採用增強濾波模式進行處理,即可以採用如下步驟進行DBF濾波處理:
第一步:原始像素值Y 1(i)通過垂直DBF濾波後得到濾波像素值Y 2(i)。
第二步:若BS大於0,但是,對Y 1(i)進行垂直DBF濾波後,仍 然滿足abs(Y 2(i)-Y 1(i))<閾值,則通過增強濾波模式獲得調整像素值Y 3(i),比如說,Y 3(i)通過Y 1(i)加補償值獲得。否則,若abs(Y 2(i)-Y 1(i))不小於閾值,則
Figure 111106607-A0202-12-0047-9
第三步:像素值Y 3(i)通過水平DBF濾波後得到濾波像素值Y 4(i)。
第四步:若BS大於0,但是,對Y 3(i)進行水平DBF濾波後,仍然滿足abs(Y 4(i)-Y 3(i))<閾值,則通過增強濾波模式獲得調整像素值Y 5(i),比如說,Y 5(i)通過Y 3(i)加補償值獲得。否則,若abs(Y4(i)-Y3(i))不小於閾值,則Y 5(i)=Y 4(i)。
實施例10:針對實施例9,若BS為0,則通過增強調整模式對Y 1(i)進行調整,得到調整像素值Y 3(i),具體調整過程參見如下步驟。若BS為0,則通過增強調整模式對Y 3(i)進行調整,得到調整像素值Y 5(i),該過程與得到調整像素值Y 3(i)的過程類似,在此不再贅述。
首先,確定Y 1(i)的梯度值,Y 1(i)可以是當前像素點的原始像素值,也可以是參考像素點的原始像素值。針對垂直邊界來說,可以計算Y 1(i)的水平梯度值DY 1(i);針對水平邊界來說,可以計算Y 1(i)的垂直梯度值DY 1(i)。比如說,假設pi和qi分別為當前像素點的原始像素值和參考像素點的原始像素值(對應Y 1(i)),則計算當前像素點的原始像素值pi的梯度值DP0:DP0=(pi-qi+2)>>2,計算參考像素點的原始像素值qi的梯度值DQ0:DQ0=(qi-pi+2)>>2。
然後,基於DY 1(i)的大小,進行補償調整得到Y 3(i)。比如說,採用如下方式確定出當前像素點的原始像素值pi對應的調整像素值Pi:若DPi>alt_dbr_th,則Pi=clip(pi+alt_dbr_offset0);若DPi<-alt_dbr_th,則Pi=clip(pi+alt_dbr_offset1),i為0、1、2等。採用如下方式確定出參考像素點的原始像素值qi對應的調整像素值Qi:若DQi>alt_dbr_th,則Qi=clip(qi+alt_dbr_offset0);若DQi<-alt_dbr_th,則Qi=clip(qi+alt_dbr_offset1),i為0、1、2。
在上述公式中,alt_dbr_th表示第一調整閾值和第三調整閾值(以 第三調整閾值與第一調整閾值相同為例),alt_dbr_offset0表示第一調整偏移值和第三調整偏移值(以第三調整偏移值與第一調整偏移值相同為例),alt_dbr_offset1表示第二調整偏移值和第四調整偏移值(以第四調整偏移值與第二調整偏移值相同為例),-alt_dbr_th表示第二調整閾值和第四調整閾值(以第四調整閾值與第二調整閾值相同為例),且-alt_dbr_th與alt_dbr_th互為相反數。
實施例11:通過高層語法(如SPS級高層語法)控制增強調整模式的啟用。比如說,在序列頭中編碼/解碼標誌位元adbr_enable_flag,即編碼端在序列頭中編碼標誌位元adbr_enable_flag,解碼端從序列頭中解碼標誌位元adbr_enable_flag。adbr_enable_flag為二值變數,值為‘1’表示可使用增強調整模式,值為‘0’表示不應使用增強調整模式。AdbrEnableFlag的值等於adbr_enable_flag,如果位流中不存在adbr_enable_flag,AdbrEnableFlag的值為0。
綜上所述,針對解碼端來說,可以從高層語法中解析出當前塊對應的增強調整模式使能標誌位元(即AdbrEnableFlag),若該增強調整模式使能標誌位元為1,則說明增強調整模式使能標誌位元允許當前塊啟用增強調整模式,若該增強調整模式使能標誌位元為0,則說明增強調整模式使能標誌位元不允許當前塊啟用增強調整模式。
實施例12:通過高層語法(如SPS級高層語法)同時控制增強濾波模式的啟用和增強調整模式的啟用。比如說,在序列頭中編碼/解碼標誌位元dbr_enable_flag,即編碼端在序列頭中編碼標誌位元dbr_enable_flag,解碼端從序列頭中解碼標誌位元dbr_enable_flag。
dbr_enable_flag為二值變數,值為‘1’表示可允許使用增強濾波模式和增強調整模式,值為‘0’表示不允許使用增強濾波模式和增強調整模式。DbrEnableFlag的值等於dbr_enable_flag,如果位流中不存在dbr_enable_flag,DbrEnableFlag的值為0。
綜上所述,針對解碼端來說,可以從高層語法中解析出當前塊對 應的增強濾波模式使能標誌位元和增強調整模式使能標誌位元(即DbrEnableFlag,也就是DbrEnableFlag同時作為增強濾波模式使能標誌位元和增強調整模式使能標誌位元),若DbrEnableFlag為1,則說明允許當前塊啟用增強濾波模式和增強調整模式,若DbrEnableFlag為0,則說明不允許當前塊啟用增強濾波模式和增強調整模式。
實施例13:高層語法(如圖像頭高層語法)的一種表述可以參見表1所示,比如說,在圖像頭編碼/解碼表1所示的語法。即,編碼端在圖像頭編碼表1所示的語法,解碼端從圖像頭中解碼表1所示的語法。
Figure 111106607-A0202-12-0049-11
在表1中,相關語法的含義如下所示:
圖像級去塊濾波垂直調整允許標誌picture_dbr_v_enable_flag,picture_dbr_v_enable_flag是二值變數,值為‘1’表示當前圖像允許使用去塊濾波垂直調整,值為‘0’表示當前圖像不允許使用去塊濾波垂直調整。PictureDbrVEnableFlag的值等於picture_dbr_v_enable_flag的值,如果位流中不存在picture_dbr_v_enable_flag,則PhDbrVEnableFlag的值為0。
示例性的,針對增強調整模式來說,PictureDbrVEnableFlag與增強調整模式使能標誌位元對應,是針對垂直DBF濾波的增強調整模式使能標誌位元。也就是說,在需要進行垂直DBF濾波時,PictureDbrVEnableFlag表示允許啟用增強調整模式,或不允許啟用增強調整模式。
示例性的,針對增強濾波模式來說,PictureDbrVEnableFlag與增強濾波模式使能標誌位元對應,是針對垂直DBF濾波的增強濾波模式使能標誌位元。也就是說,在需要進行垂直DBF濾波時,PictureDbrVEnableFlag表示允許啟用增強濾波模式,或不允許啟用增強濾波模式。
綜上所述,PictureDbrVEnableFlag可以表示針對垂直DBF濾波的增強調整模式使能標誌位元和針對垂直DBF濾波的增強濾波模式使能標誌位元,也就是說,增強調整模式使能標誌位元和增強濾波模式使能標誌位元共用同一個標誌位元,即,當前圖像同時允許啟用增強調整模式和增強濾波模式,或者,當前圖像同時不允許啟用增強調整模式和增強濾波模式。
去塊濾波垂直調整閾值dbr_v_threshold_minus1,dbr_v_threshold_minus1用於確定當前圖像去塊濾波垂直調整的閾值,取值範圍是0-1。DbrVThreshold的值等於dbr_v_threshold_minus1的值加1,如果位流中不存在dbr_v_threshold_minus1,則DbrVThreshold的值為0。
示例性的,針對增強調整模式來說,DbrVThreshold與第一調整閾值(以第三調整閾值與第一調整閾值相同為例)對應,是針對垂直DBF濾波的第一調整閾值。也就是說,在需要進行垂直DBF濾波時,DbrVThreshold表示上述實施例的第一調整閾值。而且,上述實施例的第二調整閾值(以第四調整閾值與第二調整閾值相同為例)與第一調整閾值互為相反數,因此,也可以基於DbrVThreshold確定出第二調整閾值。
示例性的,針對增強濾波模式來說,DbrVThreshold與第一濾波閾值(以第三濾波閾值與第一濾波閾值相同為例)對應,是針對垂直DBF濾波的第一濾波閾值。也就是說,在需要進行垂直DBF濾波時,DbrVThreshold表示上述實施例的第一濾波閾值。而且,上述實施例的第二濾波閾值(以第四濾波閾值與第二濾波閾值相同為例)與第一濾波閾值互為相反數,因此,也可以基於DbrVThreshold確定出第二濾波閾值。
綜上所述,DbrVThreshold可以表示針對垂直DBF濾波的第一調整閾值和第一濾波閾值,也就是說,第一調整閾值和第一濾波閾值相同,二 者為同一個取值。
去塊濾波垂直調整偏移值0(dbr_v_offset0_minus1),用於確定當前圖像去塊濾波垂直調整的偏移值0,取值範圍是0-3。DbrVOffset0的值等於dbr_v_offset0_minus1的值加1後再取相反數得到的負值,如果位流中不存在dbr_v_offset0_minus1,則DbrVOffset0的值為0。
示例性的,針對增強濾波模式來說,DbrVOffset0與第一濾波偏移值(以第三濾波偏移值與第一濾波偏移值相同為例)對應,是針對垂直DBF濾波的第一濾波偏移值,即,在需要進行垂直DBF濾波時,DbrVOffset0表示上述實施例的第一濾波偏移值。
去塊濾波垂直調整偏移值1(dbr_v_offset1_minus1),用於確定當前圖像去塊濾波垂直調整的偏移值1,取值範圍可以是0-3。DbrVOffset1的值等於dbr_v_offset1_minus1的值加1。如果位流中不存在dbr_v_offset1_minus1,則DbrVOffset1的值為0。
示例性的,針對增強濾波模式來說,DbrVOffset1與第二濾波偏移值(以第四濾波偏移值與第二濾波偏移值相同為例)對應,是針對垂直DBF濾波的第二濾波偏移值,即,在需要進行垂直DBF濾波時,DbrVOffset1表示上述實施例的第二濾波偏移值。
增強去塊濾波垂直調整偏移值0(dbr_v_alt_offset0_minus1),dbr_v_alt_offset0_minus1用於確定當前圖像去塊濾波BS為0時的垂直調整的偏移值0,dbr_v_alt_offset0_minus1的取值範圍可以是0-3。DbrVAltOffset0的值可以等於dbr_v_alt_offset0_minus1的值加1後再取相反數得到的負值,如果位流中不存在dbr_v_alt_offset0_minus1,則DbrVAltOffset0的值為0。
示例性的,針對增強調整模式來說,DbrVAltOffset0與第一調整偏移值(以第三調整偏移值與第一調整偏移值相同為例)對應,是針對垂直DBF濾波的第一調整偏移值,即,在進行垂直DBF濾波時,DbrVAltOffset0表示上述實施例的第一調整偏移值。
增強去塊濾波垂直調整偏移值1(dbr_v_alt_offset1_minus1), dbr_v_alt_offset1_minus1用於確定當前圖像去塊濾波BS為0時的垂直調整的偏移值1,dbr_v_alt_offset1_minus1的取值範圍可以是0-3。其中,DbrVAltOffset1的值等於dbr_v_alt_offset1_minus1的值加1,如果位流中不存在dbr_v_alt_offset1_minus1,則DbrVAltOffset1的值為0。
示例性的,針對增強調整模式來說,DbrVAltOffset1與第二調整偏移值(以第四調整偏移值與第二調整偏移值相同為例)對應,是針對垂直DBF濾波的第二調整偏移值,即,在進行垂直DBF濾波時,DbrVAltOffset1表示上述實施例的第二調整偏移值。
圖像級去塊濾波水平調整允許標誌picture_dbr_h_enable_flag,picture_dbr_h_enable_flag是二值變數,值為‘1’表示當前圖像允許使用去塊濾波水平調整,值為‘0’表示當前圖像不允許使用去塊濾波水平調整。PhDbrHEnableFlag的值等於picture_dbr_h_enable_flag的值,如果位流中不存在picture_dbr_h_enable_flag,則PhDbrHEnableFlag的值為0。
示例性的,針對增強調整模式來說,PhDbrHEnableFlag與增強調整模式使能標誌位元對應,是針對水平DBF濾波的增強調整模式使能標誌位元。也就是說,在需要進行水平DBF濾波時,PhDbrHEnableFlag表示允許啟用增強調整模式,或不允許啟用增強調整模式。
示例性的,針對增強濾波模式來說,PhDbrHEnableFlag與增強濾波模式使能標誌位元對應,是針對水平DBF濾波的增強濾波模式使能標誌位元。也就是說,在需要進行水平DBF濾波時,PhDbrHEnableFlag表示允許啟用增強濾波模式,或不允許啟用增強濾波模式。
綜上所述,PhDbrHEnableFlag可以表示針對水平DBF濾波的增強調整模式使能標誌位元和針對水平DBF濾波的增強濾波模式使能標誌位元,也就是說,增強調整模式使能標誌位元和增強濾波模式使能標誌位元共用同一個標誌位元,即,當前圖像同時允許啟用增強調整模式和增強濾波模式,或者,當前圖像同時不允許啟用增強調整模式和增強濾波模式。
去塊濾波水平調整閾值dbr_h_threshold_minus1, dbr_h_threshold_minus1用於確定當前圖像去塊濾波水平調整的閾值,取值範圍是0-1。DbrHThreshold的值等於dbr_h_threshold_minus1的值加1,如果位流中不存在dbr_h_threshold_minus1,則DbrHThreshold的值為0。
示例性的,針對增強調整模式來說,DbrHThreshold與第一調整閾值(以第三調整閾值與第一調整閾值相同為例)對應,是針對水平DBF濾波的第一調整閾值。也就是說,在需要進行水平DBF濾波時,DbrHThreshold表示上述實施例的第一調整閾值。而且,上述實施例的第二調整閾值(以第四調整閾值與第二調整閾值相同為例)與第一調整閾值互為相反數,因此,也可以基於DbrHThreshold確定出第二調整閾值。
示例性的,針對增強濾波模式來說,DbrHThreshold與第一濾波閾值(以第三濾波閾值與第一濾波閾值相同為例)對應,是針對水平DBF濾波的第一濾波閾值。也就是說,在需要進行水平DBF濾波時,DbrHThreshold表示上述實施例的第一濾波閾值。而且,上述實施例的第二濾波閾值(以第四濾波閾值與第二濾波閾值相同為例)與第一濾波閾值互為相反數,因此,也可以基於DbrHThreshold確定出第二濾波閾值。
綜上所述,DbrHThreshold可以表示針對水平DBF濾波的第一調整閾值和第一濾波閾值,也就是說,第一調整閾值和第一濾波閾值相同,二者為同一個取值。
去塊濾波水平調整偏移值0(dbr_h_offset0_minus1),用於確定當前圖像去塊濾波水平調整的偏移值0,取值範圍是0-3。DbrHOffset0的值等於dbr_h_offset0_minus1的值加1後再取相反數得到的負值,如果位流中不存在dbr_h_offset0_minus1,則DbrHOffset0的值為0。
示例性的,針對增強濾波模式來說,DbrHOffset0與第一濾波偏移值(以第三濾波偏移值與第一濾波偏移值相同為例)對應,是針對水平DBF濾波的第一濾波偏移值,即,在需要進行水平DBF濾波時,DbrHOffset0表示上述實施例的第一濾波偏移值。
去塊濾波水平調整偏移值1(dbr_h_offset1_minus1),用於確定當 前圖像去塊濾波水平調整的偏移值1,取值範圍可以是0-3。DbrHOffset1的值等於dbr_h_offset1_minus1的值加1。如果位流中不存在dbr_h_offset1_minus1,則DbrHOffset1的值為0。
示例性的,針對增強濾波模式來說,DbrHOffset1與第二濾波偏移值(以第四濾波偏移值與第二濾波偏移值相同為例)對應,是針對水平DBF濾波的第二濾波偏移值,即,在需要進行水平DBF濾波時,DbrHOffset1表示上述實施例的第二濾波偏移值。
增強去塊濾波水平調整偏移值0(dbr_h_alt_offset0_minus1),dbr_h_alt_offset0_minus1用於確定當前圖像去塊濾波BS為0時的水平調整的偏移值0,dbr_h_alt_offset0_minus1的取值範圍可以是0-3。DbrHAltOffset0的值可以等於dbr_h_alt_offset0_minus1的值加1後再取相反數得到的負值,如果位流中不存在dbr_h_alt_offset0_minus1,DbrHAltOffset0的值為0。
示例性的,針對增強調整模式來說,DbrHAltOffset0與第一調整偏移值(以第三調整偏移值與第一調整偏移值相同為例)對應,是針對水平DBF濾波的第一調整偏移值,即,在進行水平DBF濾波時,DbrHAltOffset0表示上述實施例的第一調整偏移值。
增強去塊濾波水平調整偏移值1(dbr_h_alt_offset1_minus1),dbr_h_alt_offset1_minus1用於確定當前圖像去塊濾波BS為0時的水平調整的偏移值1,dbr_h_alt_offset1_minus1的取值範圍可以是0-3。其中,DbrHAltOffset1的值等於dbr_h_alt_offset1_minus1的值加1,如果位流中不存在dbr_h_alt_offset1_minus1,則DbrHAltOffset1的值為0。
示例性的,針對增強調整模式來說,DbrHAltOffset1與第二調整偏移值(以第四調整偏移值與第二調整偏移值相同為例)對應,是針對水平DBF濾波的第二調整偏移值,即,在進行水平DBF濾波時,DbrHAltOffset1表示上述實施例的第二調整偏移值。
實施例14:高層語法(如圖像頭高層語法)的一種表述可以參見表2所示,比如說,在圖像頭編碼/解碼表2所示的語法。即,編碼端在圖 像頭編碼表2所示的語法,解碼端從圖像頭中解碼表2所示的語法。
Figure 111106607-A0202-12-0055-12
在表2中,相關語法的含義如下所示:
圖像級增強垂直調整允許標誌picture_alt_dbr_v_enable_flag,是一個二值變數,值為‘1’表示當前圖像允許使用增強垂直調整,值為‘0’表示當前圖像不允許使用增強垂直調整。PictureAltDbrVEnableFlag的值可以等於picture_alt_dbr_v_enable_flag的值,如果位流中不存在picture_alt_dbr_v_enable_flag,則PhAltDbrVEnableFlag的值為0。
示例性的,針對增強調整模式來說,PictureAltDbrVEnableFlag與增強調整模式使能標誌位元對應,是針對垂直DBF濾波的增強調整模式使能標誌位元,也就是說,在需要進行垂直DBF濾波時,PictureAltDbrVEnableFlag表示允許啟用增強調整模式,或不允許啟用增強調整模式。
與實施例13中的PictureDbrVEnableFlag不同的是,PictureAltDbrVEnableFlag只是針對垂直DBF濾波的增強調整模式使能標誌位元,而不是針對垂直DBF濾波的增強濾波模式使能標誌位元。
圖像級增強水平調整允許標誌picture_alt_dbr_h_enable_flag,是一個二值變數,值為‘1’表示當前圖像允許使用增強水平調整,值為‘0’表示當前圖像不允許使用增強水平調整。PictureAltDbrHEnableFlag的值可以等於picture_alt_dbr_h_enable_flag的值,如果位流中不存在picture_alt_dbr_h_enable_flag,PhAltDbrHEnableFlag的為0。
示例性的,針對增強調整模式來說,PhAltDbrHEnableFlag與增強調整模式使能標誌位元對應,是針對水平DBF濾波的增強調整模式使能標誌位元,也就是說,在需要進行水平DBF濾波時,PhAltDbrHEnableFlag表示允許啟用增強調整模式,或不允許啟用增強調整模式。
與實施例13中的PictureDbrHEnableFlag不同的是,PhAltDbrHEnableFlag只是水平DBF濾波的增強調整模式使能標誌位元,而不是針對水平DBF濾波的增強濾波模式使能標誌位元。
關於表2中其它語法的含義,與表1中相關語法的含義相同,在此不再重複贅述。
實施例15:針對實施例11來說,adbr_enable_flag的編碼和解碼,可以在去塊濾波模式啟用時才進行adbr_enable_flag的編碼和解碼,也就是說,可以先確定是否啟用去塊濾波模式,如果是,才會在序列頭中編碼/解碼標誌位元adbr_enable_flag,如果否,則不在序列頭中編碼/解碼標誌位元adbr_enable_flag。綜上所述,增強調整模式(adbr_enable_flag用於控制增強調整模式的啟用)是去塊濾波模式的子模式,在去塊濾波模式啟用時才允許啟用增強調整模式。
針對實施例12來說,dbr_enable_flag的編碼和解碼,可以在去塊濾波模式啟用時才進行dbr_enable_flag的編碼和解碼,也就是說,可以先確定是否啟用去塊濾波模式,如果是,才會在序列頭中編碼/解碼標誌位元 dbr_enable_flag,如果否,則不在序列頭中編碼/解碼標誌位元dbr_enable_flag。綜上所述,增強濾波模式(dbr_enable_flag用於控制增強濾波模式的啟用)是去塊濾波模式的子模式,在去塊濾波模式啟用時才允許啟用增強濾波模式。
針對實施例13來說,表1所示的高層語法(用於控制增強濾波模式的啟用和增強調整模式的啟用)的編碼和解碼,可以在去塊濾波模式啟用時才進行該高層語法的編碼和解碼,也就是說,可以先確定是否啟用去塊濾波模式,如果是,才會在圖像頭中編碼/解碼表1所示的高層語法,如果否,則不在圖像頭中編碼/解碼表1所示的高層語法。
針對實施例14來說,表2所示的高層語法(用於控制增強濾波模式的啟用和增強調整模式的啟用)的編碼和解碼,可以在去塊濾波模式啟用時才進行該高層語法的編碼和解碼,也就是說,可以先確定是否啟用去塊濾波模式,如果是,才會在圖像頭中編碼/解碼表2所示的高層語法,如果否,則不在圖像頭中編碼/解碼表2所示的高層語法。
實施例16:針對亮度分量(即當前塊為亮度分量)的去塊濾波過程,比如說,採用增強調整模式對亮度分量進行調整,或者,採用增強濾波模式對亮度分量進行調整。
關於亮度分量的DBR參數的推導過程:
如果當前待濾波邊界為垂直邊界且PictureDbrVEnableFlag的值為1,或者,當前待濾波邊界為水平邊界且PictureDbrHEnableFlag的值為1,則PictureDbrEnableFlag的值為1;否則,PictureDbrEnableFlag為0。以及,如果當前待濾波邊界為垂直邊界且PictureAltDbrVEnableFlag的值為1,或者,當前待濾波邊界為水平邊界且PictureAltDbrHEnableFlag的值為1,則PictureAltDbrEnableFlag的值為1;否則,PictureAltDbrEnableFlag為0。
按照如下方法匯出dbr_th、dbr_offset0、dbr_offset1、alt_dbr_offset0、alt_dbr_offset1:
對於垂直邊界,dbr_th=DbrVThreshold,dbr_offset0=DbrVOffset0, dbr_offset1=DbrVOffset1,alt_dbr_offset0=DbrVAltOffset0,alt_dbr_offset1=DbrVAltOffset1。
對於水平邊界,dbr_th=DbrHThreshold,dbr_offset0=DbrHOffset0,dbr_offset1=DbrHOffset1,alt_dbr_offset0=DbrHAltOffset0,alt_dbr_offset1=DbrHAltOffset1。
(1)亮度分量的BS等於4時的邊界濾波過程(採用增強濾波模式進行處理):
在BS的值為4時,對p0、p1、p2和q0、q1、q2的濾波計算過程如下:
P0=(p2 * 3+p1 * 8+p0 * 10+q0 * 8+q1 * 3+16)>>5;
P1=(p2 * 4+p1 * 5+p0 * 4+q0 * 3+8)>>4;
P2=(p3 * 2+p2 * 2+p1 * 2+p0 * 1+q0 * 1+4)>>3;
Q0=(p1 * 3+p0 * 8+q0 * 10+q1 * 8+q2×3+16)>>5
Q1=(p0 * 3+q0 * 4+q1 * 5+q2 * 4+8)>>4;
Q2=(p0 * 1+q0 * 1+q1 * 2+q2 * 2+q3 * 2+4)>>3。
P0、P1、P2和Q0、Q1、Q2均是濾波後的值(即濾波像素值)。
在得到P0、P1、P2和Q0、Q1、Q2後,若PhDbrEnableFlag為1時,則:
若pi>Pi+dbr_th,則Pi’=clip((Pi+pi+1)>>1+dbr_offset0);否則,若pi<Pi-dbr_th,則Pi’=clip((Pi+pi+1)>>1+dbr_offset1),i=0,1,2。
若qi>Qi+dbr_th,則Qi’=clip((Qi+qi+1)>>1+dbr_offset0);否則,若qi<Qi-dbr_th,則Qi’=clip((Qi+qi+1)>>1+dbr_offset1),i=0,1,2。
在上述公式中,pi可以表示原始像素值,qi可以表示原始像素值, Pi可以表示濾波像素值,Qi可以表示濾波像素值,Pi’可以表示調整像素值,Qi’可以表示調整像素值。
(2)亮度分量的BS等於3時的邊界濾波過程(採用增強濾波模式進行處理):
在BS的值為3時,對p0、p1和q0、q1的濾波計算過程如下:
P0=(p2+(p1<<2)+(p0<<2)+(p0<<1)+(q0<<2)+q1+8)>>4;
P1=((p2<<1)+p2+(p1<<3)+(p0<<2)+q0+8)>>4;
Q0=(p1+(p0<<2)+(q0<<2)+(q0<<1)+(q1<<2)+q2+8)>>4;
Q1=((q2<<1)+q2+(q1<<3)+(q0<<2)+p0+8)>>4。
P0、P1和Q0、Q1均是濾波後的值(即濾波像素值)。
在得到P0、P1和Q0、Q1後,若PhDbrEnableFlag為1時,則:
若pi>Pi+dbr_th,則Pi’=clip((Pi+pi+1)>>1+dbr_offset0);否則,若pi<Pi-dbr_th,則Pi’=clip((Pi+pi+1)>>1+dbr_offset1),i=0,1。
若qi>Qi+dbr_th,則Qi’=clip((Qi+qi+1)>>1+dbr_offset0);否則,若qi<Qi-dbr_th,則Qi’=clip((Qi+qi+1)>>1+dbr_offset1),i=0,1。
在上述公式中,pi可以表示原始像素值,qi可以表示原始像素值,Pi可以表示濾波像素值,Qi可以表示濾波像素值,Pi’可以表示調整像素值,Qi’可以表示調整像素值。
(3)亮度分量的BS等於2時的邊界濾波過程(採用增強濾波模式進行處理):
在BS的值為2時,對p0和q0的濾波計算過程如下:
P0=((p1<<1)+p1+(p0<<3)+(p0<<1)+(q0<<1)+q0+8)>>4;
Q0=((p0<<1)+p0+(q0<<3)+(q0<<1)+(q1<<1)+q1+8)>>4。
P0和Q0均是濾波後的值(即濾波像素值)。
在得到P0和Q0後,若PhDbrEnableFlag為1時,則:
若pi>Pi+dbr_th,則Pi’=clip((Pi+pi+1)>>1+dbr_offset0);否則,若pi<Pi-dbr_th,則Pi’=clip((Pi+pi+1)>>1+dbr_offset1),i=0。
若qi>Qi+dbr_th,則Qi’=clip((Qi+qi+1)>>1+dbr_offset0);否則,若qi<Qi-dbr_th,則Qi’=clip((Qi+qi+1)>>1+dbr_offset1),i=0。
在上述公式中,pi可以表示原始像素值,qi可以表示原始像素值,Pi可以表示濾波像素值,Qi可以表示濾波像素值,Pi’可以表示調整像素值,Qi’可以表示調整像素值。
(4)亮度分量的BS等於1時的邊界濾波過程(採用增強濾波模式進行處理):
在BS的值為1時,對p0和q0的濾波計算過程如下:
P0=((p0<<1)+p0+q0+2)>>2;
Q0=((q0<<1)+q0+p0+2)>>2。
P0和Q0均是濾波後的值(即濾波像素值)。
在得到P0和Q0後,若PhDbrEnableFlag為1時,則:
若pi>Pi+dbr_th,則Pi’=clip((Pi+pi+1)>>1+dbr_offset0);否則,若pi<Pi-dbr_th,則Pi’=clip((Pi+pi+1)>>1+dbr_offset1),i=0。
若qi>Qi+dbr_th,則Qi’=clip((Qi+qi+1)>>1+dbr_offset0);否則,若qi<Qi-dbr_th,則Qi’=clip((Qi+qi+1)>>1+dbr_offset1),i=0。
在上述公式中,pi可以表示原始像素值,qi可以表示原始像素值,Pi可以表示濾波像素值,Qi可以表示濾波像素值,Pi’可以表示調整像素值,Qi’可以表示調整像素值。
(5)亮度分量的BS等於0時的邊界濾波過程的方式一(採用增強調整模式進行處理):
在BS的值為0時,對pi和qi的濾波計算過程如下:
確定pi的梯度值DPi和qi的梯度值DQi。比如說,DPi=(pi-qi+2)>>2,DQi=(qi-pi+2)>>2。或者,DPi=(pi-qi+1)>>1,DQi=(qi-pi+1)>>1。
在得到DPi和DQi後,若PhAltDbrEnableFlag為1時,則:
若DPi>dbr_th,則Pi=clip(pi+alt_dbr_offset0);否則,若DPi<-dbr_th,則Pi=clip(pi+alt_dbr_offset1);
若DQi>dbr_th,則Qi=clip(qi+alt_dbr_offset0);否則,若DQi<-dbr_th,則Qi=clip(qi+alt_dbr_offset1)。
上述i可以為0,也可以為0,1,2等,對此不做限制。
在上述公式中,pi可以表示原始像素值,qi可以表示原始像素值,DPi可以表示梯度值DQi可以表示梯度值,Pi可以表示調整像素值,Qi可以表示調整像素值。
(6)亮度分量的BS等於0時的邊界濾波過程的方式二(採用增強調整模式進行處理):
在BS的值為0時,對pi和qi的濾波計算過程如下:
確定pi的梯度值DPi和qi的梯度值DQi。如DPi=(pi-qi+1)>>1,DQi=(qi-pi+1)>>1。
在得到DPi和DQi後,若PhAltDbrEnableFlag為1時,則:
若DPi>2*dbr_th,則Pi=clip(pi+alt_dbr_offset0);否則,若DPi<-2*dbr_th,則Pi=clip(pi+alt_dbr_offset1);
若DQi>2*dbr_th,則Qi=clip(qi+alt_dbr_offset0);否則,若DQi<-2*dbr_th,則Qi=clip(qi+alt_dbr_offset1)。
上述2*dbr_th和-2*dbr_th,可以為上述實施例中的調整閾值。
上述i可以為0,也可以為0,1,2等,對此不做限制。
在上述公式中,pi可以表示原始像素值,qi可以表示原始像素值,DPi可以表示梯度值DQi可以表示梯度值,Pi可以表示調整像素值,Qi可以表示調整像素值。
(7)亮度分量的BS等於0時的邊界濾波過程的方式三(採用增強調整模式進行處理):
在BS的值為0時,對pi和qi的濾波計算過程如下:
確定pi的梯度值DPi和qi的梯度值DQi。比如說,可以採用如下方式確定梯度值DPi和梯度值DQi:DPi=((pi<<1)+pi+qi+2)>>2,DQi=((qi<<1)+qi+pi+2)>>2。
在得到DPi和DQi後,若PhAltDbrEnableFlag為1時,則:
若pi>DPi+dbr_th,則Pi=clip(pi+alt_dbr_offset0);否則,若pi<DPi-dbr_th,則Pi=clip(pi+alt_dbr_offset1);
若qi>DQi+dbr_th,則Qi=clip(qi+alt_dbr_offset0);否則,若qi<DQi-dbr_th,則Qi=clip(qi+alt_dbr_offset1)。
在一種可能的實施方式中,上述表述可以等價為如下表達形式:
確定pi的梯度值DPi和qi的梯度值DQi。比如說,可以採用如下方式確定梯度值DPi和梯度值DQi:DPi=pi-(((pi<<1)+pi+qi+2)>>2),DQi=qi-(((qi<<1)+qi+pi+2)>>2)。
在得到DPi和DQi後,若PhAltDbrEnableFlag為1時,則:
若DPi>dbr_th,則Pi=clip(pi+alt_dbr_offset0);否則,若DPi<-dbr_th,則Pi=clip(pi+alt_dbr_offset1);
若DQi>dbr_th,則Qi=clip(qi+alt_dbr_offset0);否則,若DQi<-dbr_th,則Qi=clip(qi+altdbr_offset1)。
上述i可以為0,也可以為0,1,2等,對此不做限制。
在上述公式中,pi可以表示原始像素值,qi可以表示原始像素值,DPi可以表示梯度值DQi可以表示梯度值,Pi可以表示調整像素值,Qi可以表示調整像素值。
在上述實施例中,clip(x)表示將x限制在[0,2^(bit_depth)-1]之間(該區間可以包括0和2^(bit_depth)-1)。bit_depth表示圖像的比特深度,一般為8、10、12等。
(8)亮度分量的BS等於0時的邊界濾波過程的方式四(採用增強調整模式進行處理):
在BS的值為0時,對pi和qi的濾波計算過程如下:
確定pi的梯度值DPi和qi的梯度值DQi。比如說,可以採用如下方式確定梯度值DPi和梯度值DQi:DPi=(qi-pi+2)>>2,DQi=(pi-qi+2)>>2。
在得到DPi和DQi後,若PhAltDbrEnableFlag為1時,則:
若DPi<dbr_th,則Pi=clip(pi+dbr_alt_offset0);否則,若DPi>-dbr_th,則Pi=clip(pi+dbr_alt_offset1)。
若DQi<dbr_th,則Qi=clip(qi+alt_dbr_offset0);否則,若DQi>-dbr_th,則Qi=clip(qi+dbr_alt_offset1)。
上述i可以為0,也可以為0,1,2等,對此不做限制。
在上述公式中,pi可以表示原始像素值,qi可以表示原始像素值,DPi可以表示梯度值DQi可以表示梯度值,Pi可以表示調整像素值,Qi可以表示調整像素值。
(9)亮度分量的BS等於0時的邊界濾波過程的方式五(採用增強調整模式進行處理):
在BS的值為0時,對pi和qi的濾波計算過程如下:
確定pi的梯度值DPi和qi的梯度值DQi。比如說,可以採用如下 方式確定梯度值DPi和梯度值DQi:DPi=pi-(((pi<<1)+pi+qi+2)>>2),即DPi=(pi-qi-2)>>2,DQi=qi-(((qi<<1)+qi+pi+2)>>2),即DQi=(qi-pi-2)>>2。
在得到DPi和DQi後,若PhAltDbrEnableFlag為1時,則:
若DPi>dbr_th,則Pi=clip(pi+dbr_alt_offset0);否則,若DPi<-dbr_th則Pi=clip(pi+dbr_alt_offset1)。
若DQi>dbr_th則Qi=clip(qi+dbr_alt_offset0);否則,若DQi<-dbr_th,則Qi=clip(qi+dbr_alt_offset1)。
上述i可以為0,也可以為0,1,2等,對此不做限制。
在上述公式中,pi可以表示原始像素值,qi可以表示原始像素值,DPi可以表示梯度值DQi可以表示梯度值,Pi可以表示調整像素值,Qi可以表示調整像素值。
實施例17:針對實施例11和實施例12來說,可以將SPS級高層語法替換為PPS級高層語法,或圖像頭級高層語法,或幀級高層語法,或片頭級高層語法,或CTU級高層語法,或CU級高層語法,對此高層語法的類型不做限制,即通過各種類型的高層語法均可以傳輸dbr_enable_flag或者adbr_enable_flag。針對實施例13和實施例14來說,可以將圖像頭高層語法替換為SPS級高層語法,或PPS級高層語法,或幀級高層語法,或片頭級高層語法,或CTU級高層語法,或CU級高層語法,對此高層語法的類型不做限制,即通過各種類型的高層語法均可以傳輸表1或表2的內容,即通過各種類型的高層語法傳輸增強調整模式使能標誌位元、增強濾波模式使能標誌位元、第一調整閾值、第一濾波閾值、第一濾波偏移值、第二濾波偏移值、第一調整偏移值、第二調整偏移值等參數,具體實現方式與實施例13和實施例14的實施方式類似,在此不再贅述。
針對實施例13和實施例14來說,可以將圖像頭高層語法替換為CTU級高層語法,通過CTU級高層語法傳輸DBR的相關參數,DBR的相關參數可以包括第一調整閾值、第一濾波閾值、第一濾波偏移值、第二濾波 偏移值、第一調整偏移值、第二調整偏移值等參數等內容,參見實施例13和實施例14。或者,可以將圖像頭高層語法替換為CU級高層語法,通過CU級高層語法傳輸DBR的相關參數,DBR的相關參數可以包括第一調整閾值、第一濾波閾值、第一濾波偏移值、第二濾波偏移值、第一調整偏移值、第二調整偏移值等參數等內容,參見實施例13和和實施例14。
實施例18:針對實施例16來說,是針對亮度分量的去塊濾波過程,還可以將亮度分量替換為色度分量,即針對色度分量(即當前塊為色度分量)進行去塊濾波過程,色度分量的去塊濾波過程與亮度分量的去塊濾波過程類似,參見實施例16,在此不再贅述。
示例性的,上述實施例1-實施例18可以單獨實現,也可以任意組合,如實施例1和實施例2可以組合,實施例1和實施例3可以組合,實施例1和實施例4可以組合,實施例1和實施例5可以組合,實施例1和實施例8-實施例18中的至少一個實施例可以組合;實施例8-實施例18中的至少兩個實施例可以任意組合;實施例2和實施例8-實施例18中的至少一個實施例可以組合;實施例3和實施例8-實施例18中的至少一個實施例可以組合;實施例4和實施例8-實施例18中的至少一個實施例可以組合;實施例5和實施例8-實施例18中的至少一個實施例可以組合;實施例6和實施例8-實施例18中的至少一個實施例可以組合;實施例7和實施例8-實施例18中的至少一個實施例可以組合。當然,上述只是幾個組合的示例,實施例1-實施例18之間的任意至少兩個實施例,均可以進行組合實現相關過程。
示例性的,上述各實施例中,編碼端的內容也可以應用到解碼端,即解碼端可以採用相同方式進行處理,解碼端的內容也可以應用到編碼端,即編碼端可以採用相同方式進行處理。
實施例19:基於與上述方法同樣的申請構思,本申請實施例中還提出一種解碼裝置,所述解碼裝置應用於解碼端,所述解碼裝置包括:記憶體,其經配置以存儲視頻資料;解碼器,其經配置以實現上述實施例1-實施例18中的編解碼方法,即解碼端的處理流程。
比如說,在一種可能的實施方式中,解碼器,其經配置以實現:
若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
基於與上述方法同樣的申請構思,本申請實施例中還提出一種編碼裝置,所述編碼裝置應用於編碼端,所述編碼裝置包括:記憶體,其經配置以存儲視頻資料;編碼器,其經配置以實現上述實施例1-實施例18中的編解碼方法,即編碼端的處理流程。
比如說,在一種可能的實施方式中,編碼器,其經配置以實現:
若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
基於與上述方法同樣的申請構思,本申請實施例提供的解碼端設備(也可以稱為視頻解碼器),從硬體層面而言,其硬體架構示意圖具體可以參見圖5A所示。包括:處理器511和機器可讀存儲介質512,其中:所述機器可讀存儲介質512存儲有能夠被所述處理器511執行的機器可執行指令;所述處理器511用於執行機器可執行指令,以實現本申請上述實施例1-18公開的方法。例如,所述處理器511用於執行機器可執行指令,以實現如下步驟:
若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
基於與上述方法同樣的申請構思,本申請實施例提供的編碼端設備(也可以稱為視訊轉碼器),從硬體層面而言,其硬體架構示意圖具體可 以參見圖5B所示。包括:處理器521和機器可讀存儲介質522,其中:所述機器可讀存儲介質522存儲有能夠被所述處理器521執行的機器可執行指令;所述處理器521用於執行機器可執行指令,以實現本申請上述實施例1-18公開的方法。例如,所述處理器521用於執行機器可執行指令,以實現如下步驟:
若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
基於與上述方法同樣的申請構思,本申請實施例還提供一種機器可讀存儲介質,所述機器可讀存儲介質上存儲有若干電腦指令,所述電腦指令被處理器執行時,能夠實現本申請上述示例公開的方法,如上述各實施例中的編解碼方法。其中,上述機器可讀存儲介質可以是任何電子、磁性、光學或其它物理存儲裝置,可以包含或存儲資訊,如可執行指令、資料,等等。例如,機器可讀存儲介質可以是:RAM(Radom Access Memory,隨機存取記憶體)、動態記憶體、非易失性記憶體、快閃記憶體、存儲驅動器(如硬碟驅動器)、固態硬碟、任何類型的存儲盤(如光碟、dvd等),或者類似的存儲介質,或者它們的組合。
基於與上述方法同樣的申請構思,本申請實施例還提供一種電腦應用程式,所述電腦應用程式令被處理器執行時,能夠實現本申請上述示例公開的編解碼方法。
基於與上述方法同樣的申請構思,本申請實施例還提供一種編解碼裝置,可以應用於編碼端或者解碼端,該編解碼裝置可以包括:
確定模組,用於若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;處理模組,用於基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素 點的調整像素值。
示例性的,所述處理模組基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值時具體用於:
基於所述當前像素點的梯度值、所述當前像素點的原始像素值、第一調整閾值、第二調整閾值、第一調整偏移值和第二調整偏移值,確定所述當前像素點的調整像素值。
示例性的,所述處理模組基於所述當前像素點的梯度值、所述當前像素點的原始像素值、第一調整閾值、第二調整閾值、第一調整偏移值和第二調整偏移值,確定所述當前像素點的調整像素值時具體用於:若所述當前像素點的梯度值大於第一調整閾值,則基於所述當前像素點的原始像素值和第一調整偏移值確定所述當前像素點的調整像素值;
若所述當前像素點的梯度值小於第二調整閾值,則基於所述當前像素點的原始像素值和第二調整偏移值確定所述當前像素點的調整像素值。
在一種可能的實施方式中,若當前塊中的當前像素點滿足增強調整模式的啟用條件,所述確定模組,還用於從所述當前塊的相鄰塊中確定與所述當前像素點對應的參考像素點,基於所述參考像素點的原始像素值和所述參考像素點的周圍像素點的原始像素值確定所述參考像素點的梯度值;所述處理模組,還用於基於所述參考像素點的梯度值和所述參考像素點的原始像素值,確定所述參考像素點的調整像素值。
示例性的,所述處理模組基於所述參考像素點的梯度值和所述參考像素點的原始像素值,確定所述參考像素點的調整像素值時具體用於:
基於所述參考像素點的梯度值、所述參考像素點的原始像素值、第三調整閾值、第四調整閾值、第三調整偏移值和第四調整偏移值,確定所述參考像素點的調整像素值。
示例性的,所述處理模組基於所述參考像素點的梯度值、所述參考像素點的原始像素值、第三調整閾值、第四調整閾值、第三調整偏移值和第四調整偏移值,確定所述參考像素點的調整像素值時具體用於:若所述參 考像素點的梯度值大於第三調整閾值,則基於所述參考像素點的原始像素值和第三調整偏移值確定所述參考像素點的調整像素值;
若所述參考像素點的梯度值小於第四調整閾值,則基於所述參考像素點的原始像素值和第四調整偏移值確定所述參考像素點的調整像素值。
在一種可能的實施方式中,所述確定模組確定所述當前塊中的當前像素點滿足增強調整模式的啟用條件時具體用於:若所述當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強調整模式的啟用條件,則確定所述當前像素點滿足增強調整模式的啟用條件;或者,若所述當前塊對應的特徵資訊滿足增強調整模式的啟用條件,則確定所述當前塊中的所述當前像素點滿足增強調整模式的啟用條件。
示例性的,所述處理模組,還用於若所述當前塊中的當前像素點滿足普通濾波模式的啟用條件,則對所述當前像素點的原始像素值進行去塊濾波,得到所述當前像素點的濾波像素值;若所述當前塊中的當前像素點滿足增強濾波模式的啟用條件,則基於所述當前像素點的濾波像素值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值。
示例性的,所述處理模組基於所述當前像素點的濾波像素值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值時具體用於:基於所述當前像素點的濾波像素值,所述當前像素點的原始像素值,第一濾波閾值,第二濾波閾值,第一濾波偏移值和第二濾波偏移值,確定所述當前像素點的調整像素值;第一濾波閾值和第二濾波閾值互為相反數。
示例性的,若所述當前塊中的當前像素點滿足普通濾波模式的啟用條件,所述處理模組,還用於從所述當前塊的相鄰塊中確定與所述當前像素點對應的參考像素點;對所述參考像素點的原始像素值進行去塊濾波,得到所述參考像素點的濾波像素值;
若所述當前塊中的當前像素點滿足增強濾波模式的啟用條件,則基於所述參考像素點的濾波像素值和所述參考像素點的原始像素值,確定所述參考像素點的調整像素值。
示例性的,所述處理模組基於所述參考像素點的濾波像素值和所述參考像素點的原始像素值,確定所述參考像素點的調整像素值時具體用於:基於所述參考像素點的濾波像素值,所述參考像素點的原始像素值,第三濾波閾值,第四濾波閾值,第三濾波偏移值和第四濾波偏移值,確定所述參考像素點的調整像素值;第三濾波閾值和第四濾波閾值互為相反數。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂窩電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本申請實施例可提供為方法、系統、或電腦程式產品。本申請可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。本申請實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用存儲介質(包括但不限於磁碟記憶體、光碟唯讀記憶體(Compact Disc Read-Only Memory,CD-ROM)、光學記憶體等)上實施的電腦程式產品的形式。
本申請是參照根據本申請實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可以由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其它可程式設計資料處理設備的處理器以產生一個機器,使得通過電腦或其它可程式設計資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可以存儲在能引導電腦或其它可程式設計資料處理設備以特定方式工作的電腦可讀記憶體中,使得存儲在該電腦可讀 記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或者多個流程和/或方框圖一個方框或者多個方框中指定的功能。這些電腦程式指令也可裝載到電腦或其它可程式設計資料處理設備上,使得在電腦或者其它可程式設計設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其它可程式設計設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。以上所述僅為本申請的實施例而已,並不用於限制本申請。對於本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的請求項範圍之內。

Claims (13)

  1. 一種解碼方法,其特徵在於,所述方法包括:
    若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;
    基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值;
    其中,所述當前塊中的當前像素點滿足增強調整模式的啟用條件,包括:若所述當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強調整模式的啟用條件,則確定所述當前像素點滿足增強調整模式的啟用條件。
  2. 如請求項1所述的方法,其中,所述當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強調整模式的啟用條件,包括:
    若所述當前像素點對應的待濾波邊界的邊界強度為預設第一數值,則確定所述待濾波邊界的邊界強度滿足增強調整模式的啟用條件。
  3. 如請求項2所述的方法,其中,所述預設第一數值為0。
  4. 如請求項1所述的方法,其中,所述基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值,包括:
    基於所述當前像素點的梯度值、所述當前像素點的原始像素值、第一調整閾值、第二調整閾值、第一調整偏移值和第二調整偏移值,確定所述當前像素點的調整像素值;
    其中,若所述當前像素點的梯度值大於第一調整閾值,則基於所述當前像素點的原始像素值和第一調整偏移值確定所述當前像素點的調整像素值;
    若所述當前像素點的梯度值小於第二調整閾值,則基於所述當前像素點的原始像素值和第二調整偏移值確定所述當前像素點的調整像素值。
  5. 如請求項1所述的方法,其中,
    若當前塊中的當前像素點滿足增強調整模式的啟用條件,所述方法還包括:
    從所述當前塊的相鄰塊中確定與所述當前像素點對應的參考像素點,基於所述參考像素點的原始像素值和所述參考像素點的周圍像素點的原始像素值確定所述參考像素點的梯度值;
    基於所述參考像素點的梯度值、所述參考像素點的原始像素值、第三調整閾值、第四調整閾值、第三調整偏移值和第四調整偏移值,確定所述參考像素點的調整像素值;其中,若所述參考像素點的梯度值大於第三調整閾值,則基於所述參考像素點的原始像素值和第三調整偏移值確定所述參考像素點的調整像素值;若所述參考像素點的梯度值小於第四調整閾值,則基於所述參考像素點的原始像素值和第四調整偏移值確定所述參考像素點的調整像素值。
  6. 如請求項4或5所述的方法,其中,所述方法還包括:從高層語法中解析出所述當前塊對應的第一調整閾值,第一調整偏移值,第二調整偏移值,第三調整閾值,第三調整偏移值和第四調整偏移值。
  7. 如請求項1-5任一所述的方法,其中,在確定當前塊中的當前像素點滿足增強調整模式的啟用條件之前,所述方法還包括:
    若所述當前塊對應的增強調整模式使能標誌位元允許所述當前塊啟用增強調整模式,則確定所述當前塊中的當前像素點是否滿足增強調整模式的啟用條件;
    其中,所述方法還包括:從高層語法中解析出所述當前塊對應的增強調整模式使能標誌位元。
  8. 一種編碼方法,其特徵在於,所述方法包括:
    若當前塊中的當前像素點滿足增強調整模式的啟用條件,則基於所述當前像素點的原始像素值和所述當前像素點的周圍像素點的原始像素值確定所述當前像素點的梯度值;
    基於所述當前像素點的梯度值和所述當前像素點的原始像素值,確定所述當前像素點的調整像素值;
    其中,所述當前塊中的當前像素點滿足增強調整模式的啟用條件,包括:若所述當前塊中的當前像素點對應的待濾波邊界的邊界強度滿足增強調整模式的啟用條件,則確定所述當前像素點滿足增強調整模式的啟用條件。
  9. 一種解碼裝置,其特徵在於,所述解碼裝置包括:
    記憶體,其經配置以存儲視頻資料;
    解碼器,其經配置以實現請求項1-7中任一項所述的方法。
  10. 一種編碼裝置,其特徵在於,所述編碼裝置包括:
    記憶體,其經配置以存儲視頻資料;
    編碼器,其經配置以實現請求項8所述的方法。
  11. 一種解碼端設備,其特徵在於,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;
    所述處理器用於執行機器可執行指令,以實現請求項1-7中任一項所述的方法。
  12. 一種編碼端設備,其特徵在於,包括:處理器和機器可讀存儲介質,所述機器可讀存儲介質存儲有能夠被所述處理器執行的機器可執行指令;
    所述處理器用於執行機器可執行指令,以實現請求項8所述的方法。
  13. 一種機器可讀存儲介質,其特徵在於,
    所述機器可讀存儲介質存儲有能夠被處理器執行的機器可執行指令;其中,所述處理器用於執行所述機器可執行指令,以實現請求項1-8中任一項所述的方法。
TW111106607A 2021-02-23 2022-02-23 編解碼方法、裝置及其設備 TWI806447B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110204154.2A CN114640845B (zh) 2021-02-23 2021-02-23 编解码方法、装置及其设备
CN202110204154.2 2021-02-23

Publications (2)

Publication Number Publication Date
TW202245474A true TW202245474A (zh) 2022-11-16
TWI806447B TWI806447B (zh) 2023-06-21

Family

ID=81073883

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111106607A TWI806447B (zh) 2021-02-23 2022-02-23 編解碼方法、裝置及其設備

Country Status (9)

Country Link
US (1) US20240048695A1 (zh)
EP (1) EP4277267A1 (zh)
JP (1) JP2024506213A (zh)
KR (1) KR20230128555A (zh)
CN (2) CN114640845B (zh)
AU (1) AU2022227062B2 (zh)
TW (1) TWI806447B (zh)
WO (1) WO2022179504A1 (zh)
ZA (1) ZA202307790B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113411584A (zh) * 2020-03-17 2021-09-17 北京三星通信技术研究有限公司 视频编解码的方法和装置
CN114640845B (zh) * 2021-02-23 2023-02-28 杭州海康威视数字技术股份有限公司 编解码方法、装置及其设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620261B2 (en) * 2004-11-23 2009-11-17 Stmicroelectronics Asia Pacific Pte. Ltd. Edge adaptive filtering system for reducing artifacts and method
US9681132B2 (en) * 2010-11-24 2017-06-13 Thomson Licensing Dtv Methods and apparatus for adaptive loop filtering in video encoders and decoders
US9025675B2 (en) * 2011-06-22 2015-05-05 Texas Instruments Incorporated Systems and methods for reducing blocking artifacts
JP6087739B2 (ja) * 2013-06-07 2017-03-01 Kddi株式会社 動画像符号化装置、動画像復号装置、動画像システム、動画像符号化方法、動画像復号方法、およびプログラム
JP6289055B2 (ja) * 2013-11-27 2018-03-07 三菱電機株式会社 動画像符号化装置及び動画像復号装置
US9906790B2 (en) * 2014-03-14 2018-02-27 Qualcomm Incorporated Deblock filtering using pixel distance
KR20180075483A (ko) * 2015-11-24 2018-07-04 삼성전자주식회사 픽셀의 기울기에 기초하여 인트라 또는 인터 예측 블록을 후처리하는 방법 및 장치
CN111213378B (zh) * 2017-10-09 2022-05-03 佳能株式会社 用于对像素块进行去块滤波的方法和装置
CN109889853A (zh) * 2019-02-26 2019-06-14 北京大学深圳研究生院 一种去块效应滤波方法、系统、设备及计算机可读介质
US11272203B2 (en) * 2019-07-23 2022-03-08 Tencent America LLC Method and apparatus for video coding
US11310519B2 (en) * 2019-09-18 2022-04-19 Qualcomm Incorporated Deblocking of subblock boundaries for affine motion compensated coding
CN113784136B (zh) * 2019-09-23 2022-08-26 杭州海康威视数字技术股份有限公司 解码方法、设备及存储介质
WO2021056212A1 (zh) * 2019-09-24 2021-04-01 深圳市大疆创新科技有限公司 视频编解码方法和装置
CN111669584B (zh) * 2020-06-11 2022-10-28 浙江大华技术股份有限公司 一种帧间预测滤波方法、装置和计算机可读存储介质
CN114640845B (zh) * 2021-02-23 2023-02-28 杭州海康威视数字技术股份有限公司 编解码方法、装置及其设备
CN114125445B (zh) * 2021-06-30 2023-03-24 杭州海康威视数字技术股份有限公司 解码方法、装置、设备及机器可读存储介质

Also Published As

Publication number Publication date
JP2024506213A (ja) 2024-02-09
EP4277267A1 (en) 2023-11-15
ZA202307790B (en) 2024-04-24
CN114640845B (zh) 2023-02-28
KR20230128555A (ko) 2023-09-05
TWI806447B (zh) 2023-06-21
CN114339223A (zh) 2022-04-12
CN114640845A (zh) 2022-06-17
US20240048695A1 (en) 2024-02-08
CN114339223B (zh) 2023-03-31
WO2022179504A1 (zh) 2022-09-01
AU2022227062A1 (en) 2023-09-07
AU2022227062B2 (en) 2023-12-14

Similar Documents

Publication Publication Date Title
JP2022174102A (ja) サンプルアダプティブオフセット制御
CN107197256B (zh) 用于对图像的序列进行编码和解码的方法和装置
KR102201051B1 (ko) 비디오 코딩 방법 및 장치
TWI558173B (zh) 樣本可調適之偏移控制
TWI806447B (zh) 編解碼方法、裝置及其設備
WO2017003978A1 (en) Computationally efficient sample adaptive offset filtering during video encoding
JP2023090929A (ja) ビデオ復号化方法、ビデオ復号化装置及び記憶媒体
CN114125445B (zh) 解码方法、装置、设备及机器可读存储介质
CN114640847B (zh) 编解码方法、装置及其设备
CN114143548B (zh) 视频编解码中变换系数的编解码
WO2021143177A1 (zh) 编码、解码方法、装置及其设备
RU2817405C1 (ru) Способ, оборудование и устройства для кодирования и декодирования
CN116389737B (zh) 视频编解码中变换系数的编解码
CN114598873B (zh) 量化参数的解码方法和装置
RU2801589C2 (ru) Кодер, декодер и соответствующие способы, использующие высокоуровневый флаг разрешения dct2
JP2024073510A (ja) サンプルアダプティブオフセット制御
CN113615202A (zh) 用于屏幕内容编解码的帧内预测的方法和装置
CN118077197A (zh) 组合用于视频编码和/或解码的去块滤波和另一滤波
Choi et al. Macroblock-level adaptive dynamic resolution conversion technique