Nothing Special   »   [go: up one dir, main page]

TWI748522B - 視訊編碼器、視訊解碼器及相應方法 - Google Patents

視訊編碼器、視訊解碼器及相應方法 Download PDF

Info

Publication number
TWI748522B
TWI748522B TW109120507A TW109120507A TWI748522B TW I748522 B TWI748522 B TW I748522B TW 109120507 A TW109120507 A TW 109120507A TW 109120507 A TW109120507 A TW 109120507A TW I748522 B TWI748522 B TW I748522B
Authority
TW
Taiwan
Prior art keywords
image block
current image
list
prediction
motion vector
Prior art date
Application number
TW109120507A
Other languages
English (en)
Other versions
TW202106009A (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 TW202106009A publication Critical patent/TW202106009A/zh
Application granted granted Critical
Publication of TWI748522B publication Critical patent/TWI748522B/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/124Quantisation
    • 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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本發明實施例提供視訊編碼器、視訊解碼器及相應方法,該方法包括:在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到當前圖像塊的預測像素值;多個預設條件至少包括當前圖像塊的尺寸滿足第一預設尺寸,當前圖像塊的尺寸滿足第一預設尺寸包括:當前圖像塊的高H大於或等於8,以及,在當前圖像塊的寬W與高H的乘積等於64的情況下,寬W不等於高H;至少根據當前圖像塊的預測像素值,重建當前圖像塊;將語法元素編入待傳輸的碼流,語法元素至少用於指示採用雙向預測。採用本發明實施例,能夠一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡。

Description

視訊編碼器、視訊解碼器及相應方法
本申請涉及視訊編解碼技術領域,尤其涉及一種視訊編碼器、視訊解碼器及相應方法。
數位視訊能力可併入到多種多樣的裝置中,包含數位電視、數位直播系統、無線廣播系統、個人數位助理(PDA)、膝上型或桌上型電腦、平板電腦、電子書閱讀器、數碼相機、數位記錄裝置、數位媒體播放器、視訊遊戲裝置、視訊遊戲控制台、蜂窩式或衛星無線電電話(所謂的「智能電話」)、視訊電話會議裝置、視訊流式傳輸裝置及其類似者。數位視訊裝置實施視訊壓縮技術,例如,在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高級視訊編碼(AVC)定義的標準、視訊編碼標準H.265/高效視訊編碼(HEVC)標準以及此類標準的擴展中所描述的視訊壓縮技術。視訊裝置可通過實施此類視訊壓縮技術來更有效率地發射、接收、編碼、解碼和/或儲存數位視訊訊息。
視訊壓縮技術執行空間(圖像內)預測和/或時間(圖像間)預測以減少或去除視訊序列中固有的冗餘。對於基於塊的視訊編碼,視訊條帶(即,視訊幀或視訊幀的一部分)可分割成若干圖像塊,所述圖像塊也可被稱作樹塊、編碼單元(CU)和/或編碼節點。使用關於同一圖像中的相鄰塊中的參考樣本的空間預測來編碼圖像的待幀內編碼(I)條帶中的圖像塊。圖像的待幀間編碼(P或B)條帶中的圖像塊可使用相對於同一圖像中的相鄰塊中的參考樣本的空間預測或相對於其它參考圖像中的參考樣本的時間預測。圖像可被稱作幀,且參考圖像可被稱作參考幀。
其中,包含高效視訊編碼(HEVC)標準在內的各種視訊編碼標準提出了用於圖像塊的預測性編碼模式,即基於已經編碼的視訊數據塊來預測當前待編碼的塊。在幀內預測模式中,基於與當前塊在相同的圖像中的一或多個先前經解碼相鄰塊來預測當前塊;在幀間預測模式中,基於不同圖像中的已經解碼塊來預測當前塊。
其中,預測包括前向預測、後向預測和雙向預測等,對於雙向預測,需要根據運動訊息分別按照前向預測和後向預測的運動補償過程,得到前向預測塊(例如,對應於第一列表的預測像素值)和後向預測塊(例如,對應於第二列表的預測像素值),然後根據前向預測塊和後向預測塊確定當前塊的預測塊。如何提高當前塊的預測塊的預測準確度的同時,降低編碼複雜度是本領域的技術人員正在研究的技術問題。
本發明實施例公開了一種視訊編碼器、視訊解碼器及相應方法,能夠一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡。
第一方面,本申請實施例提供一種視訊編碼方法,該方法包括:
在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF(Bi-directional optical flow,可以簡稱為BIO或者BDOF)處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。例如,假若當前圖像塊的尺寸為8x8,那麼其中前一個8表示當前圖像塊的width為8個像素點,後一個8表示當前圖像塊的height為8個像素點;再如,如果當前圖像塊的尺寸為8x16,那麼其中8表示當前圖像塊的width為8個像素點,16表示當前圖像塊的height為16個像素點,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
至少根據所述當前圖像塊的預測像素值,重建所述當前圖像塊。
將語法元素編入待傳輸的碼流,所述語法元素用於至少指示採用雙向預測。
應當理解的是,對當前圖像塊做BDOF,執行BDOF的過程中,是以子塊為單元做預測,換言之,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,具體可以是,對當前圖像塊的當前子塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊中的當前子塊的預測像素值,其中所述當前圖像塊的預測像素值包括一個或多個子塊的預測像素值,所述一個或多個子塊包括所述當前子塊,如果當前圖像塊只包括一個子塊,則等於說子塊大小可以等於當前圖像塊。
需要說明的是,在決定是否採用BDOF技術確定(或者預測得到)所述當前圖像塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0= 1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A至J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。
本申請實施例中,還可以包括一個條件判斷的動作,例如,判斷是否滿足上述多個預設條件。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
應當理解的是,本申請實施例的方法的執行主體可以是視訊編碼器或具有視訊編碼功能的電子設備。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
在一種可選的方案中,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0= 1, predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD(可選的,當基於MMVD技術時,可以只傳一個MVD,解碼端需要用到的另一個方向MVD可以根據傳輸的MVD推導得);所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中, refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述方法還包括:根據所述當前圖像塊的像素值和當前圖像塊的預測像素值確定像素殘差;這種情況下,所述將語法元素編入待傳輸的碼流,包括:將所述語法元素和所述像素殘差編入待傳輸的碼流。也即是說,編入待傳輸碼流的除了上述語法元素外,還可以包括像素殘差(可以通過殘差計算單元計算得到,例如像素殘差為0或非0),這種方案可以應用在AMVP模式,以及merge模式中。另外,還存在不需要在待傳輸碼流中編入像素殘差的情況,例如,SKIP模式中無需在待傳輸的碼流中編入像素殘差。
第二方面,本申請實施例提供一種編碼方法,該方法包括:
在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表(即list0)的參考像素值和對應於第二列表(即list1)的參考像素值確定(或者預測得到)所述當前圖像塊的預測像素值(例如prediction samples of the current coding unit),所述第一處理方式不為BDOF(或稱為基於雙向預測的光流技術(Bi-directional optical flow,BIO),或者稱為基於雙向預測的光流技術(prediction refinement with optical flow,PROF)),也即是說,在當前圖像塊的尺寸為第二預設尺寸的情況下,不允許採用BDOF基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值;當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。所述第二預設尺寸包括8x8(其中前一個8表示當前圖像塊的width為8個像素點,後一個8表示當前圖像塊的height為8個像素點)、或者4xN(其中4表示當前圖像塊的width為4個像素點,N表示當前圖像塊的height為N個像素點,其餘尺寸以此類推)、或者8x16、或者16x8,N為2的冪次方且大於或等於8,例如,N可以取16、32、64等值。
本申請實施例中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_L1)預測得到的;例如,基於對應於第一列表(即list0)的第一運動向量(例如,Mv0_L0)能夠確定對應於第一列表(即list0)的參考像素值,基於對應於第二列表(即list1)的第二運動向量(例如,Mv1_ L 1)能夠確定對應於第二列表(即list1)的參考像素值。
然後,至少根據所述當前圖像塊的預測像素值,重建所述當前圖像塊。此處的「至少」表示重建當前圖像塊圖像塊要用到當前圖像塊的預測像素值,此處之外還可以用到其他訊息。
之後,將語法元素編入待傳輸的碼流,所述語法元素至少用於指示採用雙向預測。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。
進一步地,以上所描述的所述第二預設尺寸包括8x8、或者4xN、或者8x16、或者16x8也可以限定為:所述第二預設尺寸為8x8、或者4xN、或者8x16、或者16x8。也即是說,針對以上列舉的8x8、4xN、8x16、16x8這些尺寸中的一種尺寸禁止使用BDOF,也可能針對其中多種尺寸都禁止使用BDOF,下面進行舉例說明。
例1,第二預設尺寸包括(或者為)8x8;即本申請實施例針對8x8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例2,所述第二預設尺寸包括(或者為)4xN;即本申請實施例針對4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例3,所述第二預設尺寸包括(或者為)8x8或者4xN;即本申請實施例針對8x8和4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8和4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例4,所述第二預設尺寸包括(或者為)8x8、4xN、8x16或者16x8,N大於或等於8;即本申請實施例針對8x8、4xN、8x16和16x8都禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8、4xN、8x16和16x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例5,所述第二預設尺寸包括(或者為)Nx8,N大於或者等於4;即本申請實施例針對Nx8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例6,所述第二預設尺寸包括(或者為)Nx8或者4xN,其中,N大於或者等於4;即本申請實施例針對Nx8或4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8或4xN的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。另外,由於Mx4尺寸在一些場景中也禁止使用BDOF,因此本申請在對第二預設尺寸禁止使用BDOF的同時,還可以對Mx4禁止使用BDOF,M為大於或等於4的整數。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
應當理解的是,本申請實施例的方法的執行主體可以是視訊編碼器或具有視訊編碼功能的電子設備。
採用上述方法,充分考慮各種尺寸的當前圖像塊在使用BDOF技術時的特性,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用除BDOF技術以外的其他技術來確定當前圖像塊的像素預測值,顯著降低了編碼複雜度,提高了編碼效率。
在一種可選的方案中,所述採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值,包括:
將對應於第一列表的參考像素值和對應於第二列表的參考像素值中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者
採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值;或者
採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
在本申請實施例中,具體採用加權計算的方式,還是使用MMVD技術,還是使用CIIP技術,或者採用其他預測技術,可以通過相應條件來進行判斷決策,或者通過相應指示訊息來指示。
需要說明的是,BDOF技術相當於是針對傳統的預測當前圖像塊的像素預測值技術的補丁優化技術,在很多場景下採用BDOF技術可以獲得跟接近於當前圖像塊的真實像素值的像素預測值,因此基於該像素預測值獲得的像素殘差更少,能夠提高編碼效率。以上提及的加權計算的方式可以認為是傳統的獲得當前圖像塊像素預測值的技術,以上提及的MMVD技術、CIIP技術也都可以看做是針對傳統技術的補丁優化技術;在本申請實施例中,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用傳統技術(如加權計算的方式),或者其他補丁優化技術(如MMVD或者CIIP)來確定當前圖像塊的像素預測值,而不是採用BDOF技術,能夠顯著降低編碼複雜度,提高了編碼效率。
在一種可選的方案中,上述方法還包括:
在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
至少根據當前圖像塊的預測像素值,重建所述當前圖像塊。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A至J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
在一種可選的方案中,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0=1、predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD(可選的,當基於MMVD技術時,可以只傳一個MVD,解碼端需要用到的另一個方向MVD可以根據傳輸的MVD推導得);所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中,refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1, predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1, predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述方法還可以包括:根據所述當前圖像塊的像素值和當前圖像塊的預測像素值確定像素殘差;在這種情況下,所述將語法元素編入待傳輸的碼流,包括:將所述語法元素和所述像素殘差編入待傳輸的碼流。
第三方面,本申請實施例提供一種解碼方法,該方法包括:解析碼流,以得到語法元素,所述語法元素至少用於指示採用雙向預測;
在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF(Bi-directional optical flow,可以簡稱為BIO或者BDOF或稱為基於雙向預測的光流技術(Bi-directional optical flow,BIO),或者稱為基於雙向預測的光流技術(prediction refinement with optical flow,PROF))處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括當前圖像塊的尺寸滿足第一預設尺寸,當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。例如,假若當前圖像塊的尺寸為8x8,那麼其中前一個8表示當前圖像塊的width為8個像素點,後一個8表示當前圖像塊的height為8個像素點;再如,如果當前圖像塊的尺寸為8x16,那麼其中8表示當前圖像塊的width為8個像素點,16表示當前圖像塊的height為16個像素點,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值,其中所述當前圖像塊的預測像素值包括一個或多個子塊的預測像素值。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A-J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在解碼過程中,指當前正在解碼的圖像塊(decoding block)。
本申請實施例中,還可以包括一個條件判斷的動作,例如,判斷是否滿足上述多個預設條件。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
應當理解的是,本申請實施例的方法的執行主體可以是視訊解碼器或具有視訊解碼功能的電子設備。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
在一種可選的方案中,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0= 1, predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD(例如,當只包含一個MVD時,未傳輸的MVD可以根據已傳輸的MVD推導得到);所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中,refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述解析碼流,以得到語法元素,包括:解析碼流,以得到像素殘差和所述語法元素;在這種情況下,所述至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值,包括:根據所述像素殘差和所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
第四方面,本申請實施例提供一種解碼方法,該方法包括:解析碼流,以得到語法元素,所述語法元素至少用於指示採用雙向預測。
在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表(即list0)的參考像素值和對應於第二列表(即list1)的參考像素值確定(或者預測得到)所述當前圖像塊的預測像素值(例如prediction samples of the current coding unit),所述第一處理方式不為BDOF(或稱為基於雙向預測的光流技術(Bi-directional optical flow,BIO),或者稱為基於雙向預測的光流技術(prediction refinement with optical flow, PROF)),也即是說,在當前圖像塊的尺寸為第二預設尺寸的情況下,不允許採用BDOF基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值;當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。所述第二預設尺寸包括8x8(其中前一個8表示當前圖像塊的width為8個像素點,後一個8表示當前圖像塊的height為8像素點)、或者4xN(其中4表示當前圖像塊的width為4像素點,N表示當前圖像塊的height為N像素點,其餘尺寸以此類推)、或者8x16、或者16x8,N為2的冪次方且大於或等於8,例如,N可以取16、32、64等值。
本申請實施例中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_L1)預測得到的;例如,基於對應於第一列表(即list0)的第一運動向量(例如,Mv0_L0)能夠確定對應於第一列表(即list0)的參考像素值,基於對應於第二列表(即list1)的第二運動向量(例如,Mv1_L1)能夠確定對應於第二列表(即list1)的參考像素值。
至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在解碼過程中,指當前正在解碼的圖像塊(decoding block)。
進一步地,以上所描述的所述第二預設尺寸包括8x8、或者4xN、或者8x16、或者16x8也可以限定為:所述第二預設尺寸為8x8、或者4xN、或者8x16、或者16x8。也即是說,針對以上列舉的8x8、4xN、8x16、16x8這些尺寸中的一種尺寸禁止使用BDOF,也可能針對其中多種尺寸都禁止使用BDOF,下面進行舉例說明。
例1,第二預設尺寸包括(或者為)8x8;即本申請實施例針對8x8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例2,所述第二預設尺寸包括(或者為)4xN;即本申請實施例針對4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例3,所述第二預設尺寸包括(或者為)8x8或者4xN;即本申請實施例針對8x8和4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8和4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例4,所述第二預設尺寸包括(或者為)8x8、4xN、8x16或者16x8,N大於或等於8;即本申請實施例針對8x8、4xN、8x16和16x8都禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8、4xN、8x16和16x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例5,所述第二預設尺寸包括(或者為)Nx8,N大於或者等於4;即本申請實施例針對Nx8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例6,所述第二預設尺寸包括(或者為)Nx8或者4xN,其中,N大於或者等於4;即本申請實施例針對Nx8或4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8或4xN的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
另外,由於Mx4尺寸在一些場景中也禁止使用BDOF,因此本申請在對第二預設尺寸禁止使用BDOF的同時,還可以對Mx4禁止使用BDOF,M為大於或等於4的整數。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
應當理解的是,本申請實施例的方法的執行主體可以是視訊解碼器或具有視訊解碼功能的電子設備。
採用上述方法,充分考慮各種尺寸的當前圖像塊在使用BDOF技術時的特性,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用除BDOF技術以外的其他技術來確定當前圖像塊的像素預測值,顯著降低了編碼複雜度,提高了編碼效率。
在一種可選的方案中,所述採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,包括:
將對應於第一列表的參考像素值和對應於第二列表的參考像素值中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者
採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值;或者
採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,或者
採用解碼端運動向量精細化DMVR技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
在本申請實施例中,具體採用加權計算的方式,還是使用MMVD技術,還是使用CIIP技術,都可以通過相應條件來進行判斷決策,或者通過相應指示訊息來指示。
需要說明的是,BDOF技術相當於是針對傳統的預測當前圖像塊的像素預測值技術的補丁優化技術,在很多場景下採用BDOF技術可以獲得跟接近於當前圖像塊的真實像素值的像素預測值,因此基於該像素預測值獲得的像素殘差更少,能夠提高編碼效率,因此在編碼端應用比較多,解碼端為了更準確地還原像素預測值,也會對應使用BDOF。以上提及的加權計算的方式可以認為是傳統的獲得當前圖像塊像素預測值的技術,以上提及的MMVD技術、CIIP技術、DMVR技術也都可以看做是針對傳統技術的補丁優化技術;在本申請實施例中,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用傳統技術(如加權計算的方式),或者其他補丁優化技術(如MMVD或者CIIP或DMVR)來確定當前圖像塊的像素預測值,而不是採用BDOF技術,能夠顯著降低解碼複雜度,提高了解碼效率。
在一種可選的方案中,上述方法還包括:在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
至少根據當前圖像塊的預測像素值,重建所述當前圖像塊。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A至J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
在一種可選的方案中,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0=1、predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD(可選的,當基於MMVD技術時,可以只傳一個MVD,解碼端需要用到的另一個方向MVD可以根據傳輸的MVD推導得);所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中, refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述解析碼流,以得到語法元素,包括:解析碼流,以得到像素殘差和所述語法元素;在這種情況下,所述至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值,包括:根據所述像素殘差和所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
第五方面,本申請實施例提供一種幀間預測方法,該方法包括:
判斷當前圖像塊是否滿足多個預設條件,
在滿足所述多個預設條件的情況下,對所述當前圖像塊進行基於雙向預測的光流技術BDOF(Bi-directional optical flow,可以簡稱為BIO或者BDOF)處理,以得到所述當前圖像塊中的預測像素值,所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,,當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。例如,假若當前圖像塊的尺寸為8x8,那麼其中前一個8表示當前圖像塊的width為8像素點,後一個8表示當前圖像塊的height為8像素點;再如,如果當前圖像塊的尺寸為8x16,那麼其中8表示當前圖像塊的width為8像素點,16表示當前圖像塊的height為16像素點,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A-J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。當然,這裡的當前圖像塊也可以理解為當前正在處理的圖像塊。例如在解碼過程中,指當前正在解碼的圖像塊(decoding block)。
在一種可選的方案中,上述方法還包括:在所述多個預設條件中的至少一個條件不滿足的情況下,不對所述當前圖像塊進行基於雙向預測的光流技術BDOF(Bi-directional optical flow,可以簡稱為BIO或者BDOF)處理。換言之,可以採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。所述第一處理方式不為BDOF。具體細節參見本文相關部分,在此不再贅述。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
應當理解的是,本申請實施例的方法的執行主體可以是視訊編碼器,或具有視訊編碼功能的電子設備,或者視訊解碼器,或具有視訊解碼功能的電子設備。例如,可以具體是這些器件中的幀間預存單元。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
第六方面,本申請實施例提供一種視訊編碼設備,該編碼設備包括:
幀間預測單元,用於在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF(Bi-directional optical flow,可以簡稱為BIO或者BDOF),或者稱為基於雙向預測的光流技術(prediction refinement with optical flow,PROF)處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。例如,假若當前圖像塊的尺寸為8x8,那麼其中前一個8表示當前圖像塊的width為8個像素點,後一個8表示當前圖像塊的height為8個像素點;再如,如果當前圖像塊的尺寸為8x16,那麼其中8表示當前圖像塊的width為8個像素點,16表示當前圖像塊的height為16個像素點,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
重構單元,用於至少根據所述當前圖像塊的預測像素值,重建所述當前圖像塊。
熵編碼單元,用於將語法元素編入待傳輸的碼流,所述語法元素至少用於指示採用雙向預測。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A至J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。
本申請實施例中,還可以包括一個條件判斷的動作,例如,幀間預測單元還用於判斷是否滿足上述多個預設條件。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
在一種可選的方案中,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0=1、predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD(可選的,當基於MMVD技術時,可以只傳一個MVD,解碼端需要用到的另一個方向MVD可以根據傳輸的MVD推導得);所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中, refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述視訊編碼設備還包括殘差計算單元,用於根據所述當前圖像塊的像素值和當前圖像塊的預測像素值確定像素殘差;熵編碼單元具體用於將所述語法元素和所述像素殘差編入待傳輸的碼流。也即是說,編入待傳輸碼流的除了上述語法元素外,還可以包括像素殘差(可以通過殘差計算單元計算得到),這種方案可以應用在AMVP模式,以及merge模式中。另外,還存在不需要在待傳輸碼流中編入像素殘差的情況,例如,SKIP模式中不要在待傳輸的碼流中編入像素殘差。
第七方面,本申請實施例提供一種視訊編碼設備,該視訊編碼設備包括:
幀間預測單元,用於在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表(即list0)的參考像素值和對應於第二列表(即list1)的參考像素值確定(或者預測得到)所述當前圖像塊的預測像素值(例如prediction samples of the current coding unit),所述第一處理方式不為BDOF(或稱為基於雙向預測的光流技術(Bi-directional optical flow,BIO),或者稱為基於雙向預測的光流技術(prediction refinement with optical flow,PROF)),也即是說,在當前圖像塊的尺寸為第二預設尺寸的情況下,不允許採用BDOF基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值;當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。所述第二預設尺寸包括8x8(其中前一個8表示當前圖像塊的width為8個像素,後一個8表示當前圖像塊的height為8個像素)、或者4xN(其中4表示當前圖像塊的width為4個像素,N表示當前圖像塊的height為N個像素,其餘尺寸以此類推)、或者8x16、或者16x8,N為2的冪次方且大於或等於8,例如,N可以取16、32、64等值。
本申請實施例中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_L1)預測得到的;例如,基於對應於第一列表(即list0)的第一運動向量(例如,Mv0_L0)能夠確定對應於第一列表(即list0)的參考像素值,基於對應於第二列表(即list1)的第二運動向量(例如,Mv1_L1)能夠確定對應於第二列表(即list1)的參考像素值。
重構單元,用於至少根據所述當前圖像塊的預測像素值,重建所述當前圖像塊。此處的「至少」表示重建當前圖像塊圖像塊要用到當前圖像塊的預測像素值,此處之外還可以用到其他訊息。
熵編碼單元,用於將語法元素編入待傳輸的碼流,所述語法元素至少用於指示採用雙向預測。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。
進一步地,以上所描述的所述第二預設尺寸包括8x8、或者4xN、或者8x16、或者16x8也可以限定為:所述第二預設尺寸為8x8、或者4xN、或者8x16、或者16x8。也即是說,針對以上列舉的8x8、4xN、8x16、16x8這些尺寸中的一種尺寸禁止使用BDOF,也可能針對其中多種尺寸都禁止使用BDOF,下面進行舉例說明。
例1,第二預設尺寸包括(或者為)8x8;即本申請實施例針對8x8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例2,所述第二預設尺寸包括(或者為)4xN;即本申請實施例針對4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例3,所述第二預設尺寸包括(或者為)8x8或者4xN;即本申請實施例針對8x8和4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8和4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例4,所述第二預設尺寸包括(或者為)8x8、4xN、8x16或者16x8,N大於或等於8;即本申請實施例針對8x8、4xN、8x16和16x8都禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8、4xN、8x16和16x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例5,所述第二預設尺寸包括(或者為)Nx8,N大於或者等於4;即本申請實施例針對Nx8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例6,所述第二預設尺寸包括(或者為)Nx8或者4xN,其中,N大於或者等於4;即本申請實施例針對Nx8 或4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8或4xN的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
另外,由於Mx4尺寸在一些場景中也禁止使用BDOF,因此本申請在對第二預設尺寸禁止使用BDOF的同時,還可以對Mx4禁止使用BDOF,M為大於或等於4的整數。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
採用上述方法,充分考慮各種尺寸的當前圖像塊在使用BDOF技術時的特性,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用除BDOF技術以外的其他技術來確定當前圖像塊的像素預測值,顯著降低了編碼複雜度,提高了編碼效率。
在一種可選的方案中,在採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值方面,所述幀間預測單元具體用於:
將對應於第一列表的參考像素值和對應於第二列表的參考像素值中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者
採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值;或者
採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
在本申請實施例中,具體採用加權計算的方式,還是使用MMVD技術,還是使用CIIP技術,都可以通過相應條件來進行判斷決策,或者通過相應指示訊息來指示。
需要說明的是,BDOF技術相當於是針對傳統的預測當前圖像塊的像素預測值技術的補丁優化技術,在很多場景下採用BDOF技術可以獲得跟接近於當前圖像塊的真實像素值的像素預測值,因此基於該像素預測值獲得的像素殘差更少,能夠提高編碼效率。以上提及的加權計算的方式可以認為是傳統的獲得當前圖像塊像素預測值的技術,以上提及的MMVD技術、CIIP技術也都可以看做是針對傳統技術的補丁優化技術;在本申請實施例中,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用傳統技術(如加權計算的方式),或者其他補丁優化技術(如MMVD或者CIIP)來確定當前圖像塊的像素預測值,而不是採用BDOF技術,能夠顯著降低編碼複雜度,提高了編碼效率。
在一種可選的方案中:
幀間預測單元,還用於在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
重構單元還用於至少根據當前圖像塊的預測像素值,重建所述當前圖像塊。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A至J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
在一種可選的方案中,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0=1、predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD(可選的,當基於MMVD技術時,可以只傳一個MVD,解碼端需要用到的另一個方向MVD可以根據傳輸的MVD推導得);所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中, refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述視訊編碼設備還包括殘差計算單元,用於根據所述當前圖像塊的像素值和當前圖像塊的預測像素值確定像素殘差;所述熵編碼單元具體用於:將所述語法元素和所述像素殘差編入待傳輸的碼流。
第八方面,本申請實施例提供一種視訊解碼設備,該視訊解碼設備包括:
熵解碼單元,用於解析碼流,以得到語法元素,所述語法元素至少用於指示採用雙向預測;
幀間預測單元,用於在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF(Bi-directional optical flow,可以簡稱為BIO或者BDOF)處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括當前圖像塊的尺寸滿足第一預設尺寸,當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。例如,假若當前圖像塊的尺寸為8x8,那麼其中前一個8表示當前圖像塊的width為8個像素,後一個8表示當前圖像塊的height為8個像素;再如,如果當前圖像塊的尺寸為8x16,那麼其中8表示當前圖像塊的width為8個像素,16表示當前圖像塊的height為16個像素,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
重構單元,用於至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A至J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在解碼過程中,指當前正在解碼的圖像塊(decoding block)。
本申請實施例中,還可以包括一個條件判斷的動作,例如,幀間預測單元還用於判斷是否滿足上述多個預設條件。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
在一種可選的方案中,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0=1、predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD(例如,當只包含一個MVD時,未傳輸的MVD可以根據已傳輸的MVD推導得到);所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中,refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述熵解碼單元具體用於:解析碼流,以得到像素殘差和所述語法元素;所述重構單元具體用於:根據所述像素殘差和所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
第九方面,本申請實施例提供一種視訊解碼設備,該視訊解碼設備包括:
熵解碼單元,用於解析碼流,以得到語法元素,所述語法元素至少用於指示採用雙向預測。
幀間預測單元,用於在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表(即list0)的參考像素值和對應於第二列表(即list1)的參考像素值確定(或者預測得到)所述當前圖像塊的預測像素值(例如prediction samples of the current coding unit),所述第一處理方式不為BDOF(或稱為基於雙向預測的光流技術(Bi-directional optical flow,BIO),或者稱為基於雙向預測的光流技術(prediction refinement with optical flow,PROF)),也即是說,在當前圖像塊的尺寸為第二預設尺寸的情況下,不允許採用BDOF基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值;當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。所述第二預設尺寸包括8x8(其中前一個8表示當前圖像塊的width為8個像素,後一個8表示當前圖像塊的height為8個像素)、或者4xN(其中4表示當前圖像塊的width為4個像素,N表示當前圖像塊的height為N個像素,其餘尺寸以此類推)、或者8x16、或者16x8,N為2的冪次方且大於或等於8,例如,N可以取16、32、64等值。
本申請實施例中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_L1)預測得到的;例如,基於對應於第一列表(即list0)的第一運動向量(例如,Mv0_L0)能夠確定對應於第一列表(即list0)的參考像素值,基於對應於第二列表(即list1)的第二運動向量(例如,Mv1_L1)能夠確定對應於第二列表(即list1)的參考像素值。
重構單元,用於至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在解碼過程中,指當前正在解碼的圖像塊(decoding block)。
進一步地,以上所描述的所述第二預設尺寸包括8x8、或者4xN、或者8x16、或者16x8也可以限定為:所述第二預設尺寸為8x8、或者4xN、或者8x16、或者16x8。也即是說,針對以上列舉的8x8、4xN、8x16、16x8這些尺寸中的一種尺寸禁止使用BDOF,也可能針對其中多種尺寸都禁止使用BDOF,下面進行舉例說明。
例1,第二預設尺寸包括(或者為)8x8;即本申請實施例針對8x8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例2,所述第二預設尺寸包括(或者為)4xN;即本申請實施例針對4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例3,所述第二預設尺寸包括(或者為)8x8或者4xN;即本申請實施例針對8x8和4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8和4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例4,所述第二預設尺寸包括(或者為)8x8、4xN、8x16或者16x8,N大於或等於8;即本申請實施例針對8x8、4xN、8x16和16x8都禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8、4xN、8x16和16x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例5,所述第二預設尺寸包括(或者為)Nx8,N大於或者等於4;即本申請實施例針對Nx8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例6,所述第二預設尺寸包括(或者為)Nx8或者4xN,其中,N大於或者等於4;即本申請實施例針對Nx8 或4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8 或4xN的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
另外,由於Mx4尺寸在一些場景中也禁止使用BDOF,因此本申請在對第二預設尺寸禁止使用BDOF的同時,還可以對Mx4禁止使用BDOF,M為大於或等於4的整數。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
採用上述方法,充分考慮各種尺寸的當前圖像塊在使用BDOF技術時的特性,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用除BDOF技術以外的其他技術來確定當前圖像塊的像素預測值,顯著降低了編碼複雜度,提高了編碼效率。
在一種可選的方案中,在採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,所述幀間預測單元具體用於:
將對應於第一列表的參考像素值和對應於第二列表的參考像素值中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者
採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值;或者
採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,或者
採用解碼端運動向量精細化DMVR技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
在本申請實施例中,具體採用加權計算的方式,還是使用MMVD技術,還是使用CIIP技術,都可以通過相應條件來進行判斷決策,或者通過相應指示訊息來指示。
需要說明的是,BDOF技術相當於是針對傳統的預測當前圖像塊的像素預測值技術的補丁優化技術,在很多場景下採用BDOF技術可以獲得跟接近於當前圖像塊的真實像素值的像素預測值,因此基於該像素預測值獲得的像素殘差更少,能夠提高編碼效率,因此在編碼端應用比較多,解碼端為了更準確地還原像素預測值,也會對應使用BDOF。以上提及的加權計算的方式可以認為是傳統的獲得當前圖像塊像素預測值的技術,以上提及的MMVD技術、CIIP技術、DMVR技術也都可以看做是針對傳統技術的補丁優化技術;在本申請實施例中,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用傳統技術(如加權計算的方式),或者其他補丁優化技術(如MMVD或者CIIP或DMVR)來確定當前圖像塊的像素預測值,而不是採用BDOF技術,能夠顯著降低解碼複雜度,提高了解碼效率。
在一種可選的方案中,上述幀間預測單元,還用於在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
重構單元,還用於至少根據當前圖像塊的預測像素值,重建所述當前圖像塊。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A至J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
在一種可選的方案中,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0=1、predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD(可選的,當基於MMVD技術時,可以只傳一個MVD,解碼端需要用到的另一個方向MVD可以根據傳輸的MVD推導得);所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中,refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在一種可選的方案中,所述熵解碼單元具體用於:解析碼流,以得到像素殘差和所述語法元素;所述重構單元具體用於:根據所述像素殘差和所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
第十方面,本申請實施例提供一種幀間預測裝置(例如,幀間預測單元),該幀間預測裝置包括:
判斷單元,用於判斷當前圖像塊是否滿足多個預設條件;
幀間預測處理單元,用於在滿足所述多個預設條件的情況下,對所述當前圖像塊進行基於雙向預測的光流技術BDOF(Bi-directional optical flow,可以簡稱為BIO或者BDOF)處理,以得到所述當前圖像塊的預測像素值,所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,,當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。例如,假若當前圖像塊的尺寸為8x8,那麼其中前一個8表示當前圖像塊的width為8個像素,後一個8表示當前圖像塊的height為8個像素;再如,如果當前圖像塊的尺寸為8x16,那麼其中8表示當前圖像塊的width為8個像素,16表示當前圖像塊的height為16個像素,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A-J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。當然,這裡的當前圖像塊也可以理解為當前正在處理的圖像塊。例如在解碼過程中,指當前正在解碼的圖像塊(decoding block)。
在一種可選的方案中,所述幀間預測處理單元還用於:在所述多個預設條件中的至少一個條件不滿足的情況下,不對所述當前圖像塊進行基於雙向預測的光流技術BDOF(Bi-directional optical flow,可以簡稱為BIO或者BDOF)處理。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
應當理解的是,本申請實施例的方法的執行主體可以是視訊編碼器,或具有視訊編碼功能的電子設備,或者視訊編碼器,或具有視訊編碼功能的電子設備。例如,可以具體為這些器件中的幀間預測單元。
也即是說,本方案中啟用或使用BDOF技術的條件,與現有技術中啟用或使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近原始像素值的像素預測值,又能夠適當控制編碼複雜度,一定程度上實現編碼/解碼複雜度與預測準確度之間的平衡,從而提高了編碼效率。
第十一方面,本申請實施例提供一種用於解碼視訊數據的設備,所述設備包括:
記憶體,用於儲存碼流形式的視訊數據;
視訊解碼器,用於從碼流中解碼出語法元素,所述語法元素至少用於指示採用雙向預測,在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括當前圖像塊的尺寸滿足第一預設尺寸,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8。
第十二方面,本申請實施例提供一種用於編碼視訊數據的設備,所述設備包括:
記憶體,用於儲存視訊數據,所述視訊數據包括一個或多個圖像塊;
視訊編碼器,用於在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
將語法元素編入待傳輸的碼流,所述語法元素至少用於指示採用雙向預測。
第十三方面,本申請實施例提供一種編碼設備,包括:相互耦合的非揮發性記憶體和處理器,所述處理器調用儲存在所述記憶體中的程序代碼以執行第一方面的任意一種方法的部分或全部步驟。
第十四方面,本申請實施例提供一種解碼設備,包括:相互耦合的非揮發性記憶體和處理器,所述處理器調用儲存在所述記憶體中的程序代碼以執行第一方面的任意一種方法的部分或全部步驟。
第十五方面,本申請實施例提供一種電腦可讀儲存媒體,所述電腦可讀儲存媒體儲存了程序代碼,其中,所述程序代碼包括用於執行第一方面的任意一種方法的部分或全部步驟的指令。
第十六方面,本申請實施例提供一種電腦程序產品,當所述電腦程序產品在電腦上運行時,使得所述電腦執行第一方面的任意一種方法的部分或全部步驟。
應當理解的是,本申請的第二至十六方面與本申請的第一方面的技術方案一致,各方面及對應的可行實施方式所取得的有益效果相似,不再贅述。
為使本公開實施例的目的、技術方案和優點更加清楚,下面將結合本公開實施例中附圖,對本公開實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本公開一部分實施例,而不是全部的實施例。通常在附圖中描述和示出的本公開實施例的組件可以以各種不同的配置來佈置和設計。因此,以下結合附圖所提供的本公開的實施例的詳細描述並非旨在限制要求保護的本公開的範圍,而是僅僅表示本公開的實施例。基於本公開的實施例,本領域技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬於本公開保護的範圍。
下面結合本申請實施例中的附圖對本申請實施例進行描述。以下描述中,參考形成本公開一部分並以說明之方式示出本申請實施例的具體方面或可使用本申請實施例的具體方面的附圖。應理解,本申請實施例可在其它方面中使用,並可包括附圖中未描繪的結構或邏輯變化。因此,以下詳細描述不應以限制性的意義來理解,且本申請的範圍由所附申請專利範圍界定。例如,應理解,結合所描述方法的揭示內容可以同樣適用於用於執行所述方法的對應設備或系統,且反之亦然。例如,如果描述一個或多個具體方法步驟,則對應的設備可以包含如功能單元等一個或多個單元,來執行所描述的一個或多個方法步驟(例如,一個單元執行一個或多個步驟,或多個單元,其中每個都執行多個步驟中的一個或多個),即使附圖中未明確描述或說明這種一個或多個單元。另一方面,例如,如果基於如功能單元等一個或多個單元描述具體裝置,則對應的方法可以包含一個步驟來執行一個或多個單元的功能性(例如,一個步驟執行一個或多個單元的功能性,或多個步驟,其中每個執行多個單元中一個或多個單元的功能性),即使附圖中未明確描述或說明這種一個或多個步驟。進一步,應理解的是,除非另外明確提出,本文中所描述的各示例性實施例和/或方面的特徵可以相互組合。
本申請實施例所涉及的技術方案不僅可能應用于現有的視訊編碼標準中(如H.264、HEVC等標準),還可能應用于未來的視訊編碼標準中(如H .266標準)。本申請的實施方式部分使用的術語僅用於對本申請的具體實施例進行解釋,而非旨在限定本申請。下面先對本申請實施例可能涉及的一些概念進行簡單介紹。
視訊編碼通常是指處理形成視訊或視訊序列的圖片序列。在視訊編碼領域,術語「圖片(picture)」、「幀(frame)」或「圖像(image)」可以用作同義詞。本文中使用的視訊編碼表示視訊編碼或視訊解碼。視訊編碼在源側執行,通常包括處理(例如,通過壓縮)原始視訊圖片以減少表示該視訊圖片所需的數據量,從而更高效地儲存和/或傳輸。視訊解碼在目的地側執行,通常包括相對於編碼器作逆處理,以重構視訊圖片。實施例涉及的視訊圖片 「編碼」應理解為涉及視訊序列的「編碼」或「解碼」。編碼部分和解碼部分的組合也稱為編解碼(編碼和解碼)。
視訊序列包括一系列圖像(picture),圖像被進一步劃分為切片(slice),切片再被劃分為塊(block)。視訊編碼以塊為單位進行編碼處理,在一些新的視訊編碼標準中,塊的概念被進一步擴展。比如,在H.264標準中有宏塊(macroblock,MB),宏塊可進一步劃分成多個可用於預測編碼的預測塊(partition)。在高性能視訊編碼(high efficiency video coding, HEVC)標準中,採用編碼單元(coding unit, CU),預測單元(prediction unit,PU)和變換單元(transform unit,TU)等基本概念,從功能上劃分了多種塊單元,並採用全新的基於樹結構進行描述。比如CU可以按照四叉樹進行劃分為更小的CU,而更小的CU還可以繼續劃分,從而形成一種四叉樹結構,CU是對編碼圖像進行劃分和編碼的基本單元。對於PU和TU也有類似的樹結構,PU可以對應預測塊,是預測編碼的基本單元。對CU按照劃分模式進一步劃分成多個PU。TU可以對應變換塊,是對預測殘差進行變換的基本單元。然而,無論CU,PU還是TU,本質上都屬於塊(或稱圖像塊)的概念。
例如在HEVC中,通過使用表示為編碼樹的四叉樹結構將CTU拆分為多個CU。在CU層級處作出是否使用圖片間(時間)或圖片內(空間)預測對圖片區域進行編碼的決策。每個CU可以根據PU拆分類型進一步拆分為一個、兩個或四個PU。一個PU內應用相同的預測過程,並在PU基礎上將相關訊息傳輸到解碼器。在通過基於PU拆分類型應用預測過程獲取殘差塊之後,可以根據類似於用於CU的編碼樹的其它四叉樹結構將CU分割成變換單元(transform unit,TU)。在視訊壓縮技術最新的發展中,使用四叉樹和二叉樹(Quad-tree and binary tree,QTBT)分割幀來分割編碼塊。在QTBT塊結構中,CU可以為正方形或矩形形狀。
本文中,為了便於描述和理解,可將當前圖像中待處理的圖像塊稱為當前塊或者待處理圖像塊,例如在編碼中,指當前正在編碼的塊;在解碼中,指當前正在解碼的塊。將參考圖像中用於對當前塊進行預測的已解碼的圖像塊稱為參考塊,即參考塊是為當前塊提供參考信號的塊,其中,參考信號表示圖像塊內的像素值。可將參考圖像中為當前塊提供預測信號的塊為預測塊,其中,預測信號表示預測塊內的像素值或者採樣值或者採樣信號。例如,在遍歷多個參考塊以後,找到了最佳參考塊,此最佳參考塊將為當前塊提供預測,此塊稱為預測塊。
無損視訊編碼情況下,可以重構原始視訊圖片,即經重構視訊圖片具有與原始視訊圖片相同的質量(假設儲存或傳輸期間沒有傳輸損耗或其它數據丟失)。在有損視訊編碼情況下,通過例如量化執行進一步壓縮,來減少表示視訊圖片所需的數據量,而解碼器側無法完全重構視訊圖片,即經重構視訊圖片的質量相比原始視訊圖片的質量較低或較差。
H.261的幾個視訊編碼標準屬於「有損混合型視訊編解碼」(即,將樣本域中的空間和時間預測與變換域中用於應用量化的2D變換編碼結合)。視訊序列的每個圖片通常分割成不重疊的塊集合,通常在塊層級上進行編碼。換句話說,編碼器側通常在塊(視訊塊)層級處理亦即編碼視訊,例如,通過空間(圖片內)預測和時間(圖片間)預測來產生預測塊,從當前塊(當前處理或待處理的塊)減去預測塊以獲取殘差塊,在變換域變換殘差塊並量化殘差塊,以減少待傳輸(壓縮)的數據量,而解碼器側將相對於編碼器的逆處理部分應用於經編碼或經壓縮塊,以重構用於表示的當前塊。另外,編碼器複製解碼器處理循環,使得編碼器和解碼器生成相同的預測(例如幀內預測和幀間預測)和/或重構,用於處理亦即編碼後續塊。
下面描述本申請實施例所應用的系統架構。參見圖1A,圖1A示例性地給出了本申請實施例所應用的視訊編碼及解碼系統10的示意性方塊圖。如圖1A所示,視訊編碼及解碼系統10可包括源設備12和目的地設備14,源設備12產生經編碼視訊數據,因此,源設備12可被稱為視訊編碼裝置。目的地設備14可對由源設備12所產生的經編碼的視訊數據進行解碼,因此,目的地設備14可被稱為視訊解碼裝置。源設備12、目的地設備14或兩個的各種實施方案可包含一或多個處理器以及耦合到所述一或多個處理器的記憶體。所述記憶體可包含但不限於RAM、ROM、EEPROM、快閃記憶體或可用於以可由電腦存取的指令或數據結構的形式儲存所要的程序代碼的任何其它媒體,如本文所描述。源設備12和目的地設備14可以包括各種裝置,包含桌上型電腦、移動計算裝置、筆記型(例如,膝上型)電腦、平板電腦、機頂盒、例如所謂的「智能」電話等電話手持機、電視機、相機、顯示裝置、數位媒體播放器、視訊遊戲控制台、車載電腦、無線通信設備或其類似者。
雖然圖1A將源設備12和目的地設備14繪示為單獨的設備,但設備實施例也可以同時包括源設備12和目的地設備14或同時包括兩者的功能性,即源設備12或對應的功能性以及目的地設備14或對應的功能性。在此類實施例中,可以使用相同硬體和/或軟體,或使用單獨的硬體和/或軟體,或其任何組合來實施源設備12或對應的功能性以及目的地設備14或對應的功能性。
源設備12和目的地設備14之間可通過連結13進行通信連接,目的地設備14可經由連結13從源設備12接收經編碼視訊數據。連結13可包括能夠將經編碼視訊數據從源設備12移動到目的地設備14的一或多個媒體或裝置。在一個實例中,連結13可包括使得源設備12能夠實時將經編碼視訊數據直接發射到目的地設備14的一或多個通信媒體。在此實例中,源設備12可根據通信標準(例如無線通信協議)來調製經編碼視訊數據,且可將經調製的視訊數據發射到目的地設備14。所述一或多個通信媒體可包含無線和/或有線通信媒體,例如射頻(RF)頻譜或一或多個實體傳輸線。所述一或多個通信媒體可形成基於分組的網路的一部分,基於分組的網路例如為局域網、廣域網或全球網路(例如,網際網路)。所述一或多個通信媒體可包含路由器、交換器、基地台或促進從源設備12到目的地設備14的通信的其它設備。
源設備12包括編碼器20,另外可選地,源設備12還可以包括圖片源16、圖片預處理器18、以及通信界面22。具體實現形態中,所述編碼器20、圖片源16、圖片預處理器18、以及通信界面22可能是源設備12中的硬體部件,也可能是源設備12中的軟體程序。分別描述如下:
圖片源16,可以包括或可以為任何類別的圖片捕獲設備,用於例如捕獲現實世界圖片,和/或任何類別的圖片或評論(對於屏幕內容編碼,屏幕上的一些文字也認為是待編碼的圖片或圖像的一部分)生成設備,例如,用於生成電腦動畫圖片的電腦圖形處理器,或用於獲取和/或提供現實世界圖片、電腦動畫圖片(例如,屏幕內容、虛擬實境(virtual reality,VR)圖片)的任何類別設備,和/或其任何組合(例如,擴增實境(augmented reality,AR)圖片)。圖片源16可以為用於捕獲圖片的相機或者用於儲存圖片的記憶體,圖片源16還可以包括儲存先前捕獲或產生的圖片和/或獲取或接收圖片的任何類別的(內部或外部)界面。當圖片源16為相機時,圖片源16可例如為本地的或積體在源設備中的積體相機;當圖片源16為記憶體時,圖片源16可為本地的或例如積體在源設備中的積體記憶體。當所述圖片源16包括界面時,界面可例如為從外部視訊源接收圖片的外部界面,外部視訊源例如為外部圖片捕獲設備,比如相機、外部記憶體或外部圖片生成設備,外部圖片生成設備例如為外部電腦圖形處理器、電腦或服務器。界面可以為根據任何專有或標準化界面協議的任何類別的界面,例如有線或無線界面、光界面。
其中,圖片可以視為像素點(picture element)的二維陣列或矩陣。陣列中的像素點也可以稱為採樣點。陣列或圖片在水平和垂直方向(或軸線)上的採樣點數目定義圖片的尺寸和/或分辨率。為了表示顏色,通常採用三個顏色分量,即圖片可以表示為或包含三個採樣陣列。例如在RBG格式或顏色空間中,圖片包括對應的紅色、綠色及藍色採樣陣列。但是,在視訊編碼中,每個像素通常以亮度/色度格式或顏色空間表示,例如對於YUV格式的圖片,包括Y指示的亮度分量(有時也可以用L指示)以及U和V指示的兩個色度分量。亮度(luma)分量Y表示亮度或灰度水平強度(例如,在灰度等級圖片中兩者相同),而兩個色度(chroma)分量U和V表示色度或顏色訊息分量。相應地,YUV格式的圖片包括亮度採樣值(Y)的亮度採樣陣列,和色度值(U和V)的兩個色度採樣陣列。RGB格式的圖片可以轉換或變換為YUV格式,反之亦然,該過程也稱為色彩變換或轉換。如果圖片是黑白的,該圖片可以只包括亮度採樣陣列。本申請實施例中,由圖片源16傳輸至圖片處理器的圖片也可稱為原始圖片數據17。
圖片預處理器18,用於接收原始圖片數據17並對原始圖片數據17執行預處理,以獲取經預處理的圖片數據19或經預處理的圖片數據19。例如,圖片預處理器18執行的預處理可以包括整修、色彩格式轉換(例如,從RGB格式轉換為YUV格式)、調色或去噪。
編碼器20(或稱視訊編碼器20),用於接收經預處理的圖片數據19,採用相關預測模式(如本文各個實施例中的預測模式)對經預處理的圖片數據19進行處理,從而提供經編碼圖片數據21(下文將進一步基於圖2或圖4或圖5描述編碼器20的結構細節)。在一些實施例中,編碼器20可以用於執行後文所描述的各個實施例,以實現本申請所描述的色度塊預測方法在編碼側的應用。
通信界面22,可用於接收經編碼圖片數據21,並可通過連結13將經編碼圖片數據21傳輸至目的地設備14或任何其它設備(如記憶體),以用於儲存或直接重構,所述其它設備可為任何用於解碼或儲存的設備。通信界面22可例如用於將經編碼圖片數據21封裝成合適的格式,例如數據包,以在連結13上傳輸。
目的地設備14包括解碼器30,另外可選地,目的地設備14還可以包括通信界面28、圖片後處理器32和顯示設備34。分別描述如下:
通信界面28,可用於從源設備12或任何其它源接收經編碼圖片數據21,所述任何其它源例如為儲存設備,儲存設備例如為經編碼圖片數據儲存設備。通信界面28可以用於藉由源設備12和目的地設備14之間的連結13或藉由任何類別的網路傳輸或接收經編碼圖片數據21,連結13例如為直接有線或無線連接,任何類別的網路例如為有線或無線網路或其任何組合,或任何類別的私有網路和公有網路,或其任何組合。通信界面28可以例如用於解封裝通信界面22所傳輸的數據包以獲取經編碼圖片數據21。
通信界面28和通信界面22都可以配置為單向通信界面或者雙向通信界面,以及可以用於例如發送和接收消息來建立連接、確認和交換任何其它與通信連結和/或例如經編碼圖片數據傳輸的數據傳輸有關的訊息。
解碼器30,用於接收經編碼圖片數據21並提供經解碼圖片數據31或經解碼圖片31(下文將進一步基於圖3或圖4或圖5描述解碼器30的結構細節)。在一些實施例中,解碼器30可以用於執行後文所描述的各個實施例,以實現本申請所描述的色度塊預測方法在解碼側的應用。
圖片後處理器32,用於對經解碼圖片數據31(也稱為經重構圖片數據)執行後處理,以獲得經後處理圖片數據33。圖片後處理器32執行的後處理可以包括:色彩格式轉換(例如,從YUV格式轉換為RGB格式)、調色、整修或重採樣,或任何其它處理,還可用於將經後處理圖片數據33傳輸至顯示設備34。
顯示設備34,用於接收經後處理圖片數據33以向例如用戶或觀看者顯示圖片。顯示設備34可以為或可以包括任何類別的用於呈現經重構圖片的顯示器,例如,積體的或外部的顯示器或監視器。例如,顯示器可以包括液晶顯示器(liquid crystal display,LCD)、有機發光二極管(organic light emitting diode,OLED)顯示器、等離子顯示器、投影儀、微LED顯示器、矽基液晶(liquid crystal on silicon,LCoS)、數位光處理器(digital light processor,DLP)或任何類別的其它顯示器。
雖然,圖1A將源設備12和目的地設備14繪示為單獨的設備,但設備實施例也可以同時包括源設備12和目的地設備14或同時包括兩者的功能性,即源設備12或對應的功能性以及目的地設備14或對應的功能性。在此類實施例中,可以使用相同硬體和/或軟體,或使用單獨的硬體和/或軟體,或其任何組合來實施源設備12或對應的功能性以及目的地設備14或對應的功能性。
本領域技術人員基於描述明顯可知,不同單元的功能性或圖1A所示的源設備12和/或目的地設備14的功能性的存在和(準確)劃分可能根據實際設備和應用有所不同。源設備12和目的地設備14可以包括各種設備中的任一個,包含任何類別的手持或靜止設備,例如,筆記型或膝上型電腦、移動電話、智能手機、平板或平板電腦、攝像機、桌上型電腦、機頂盒、電視機、相機、車載設備、顯示設備、數位媒體播放器、視訊遊戲控制台、視訊流式傳輸設備(例如內容服務服務器或內容分發服務器)、廣播接收器設備、廣播發射器設備等,並可以不使用或使用任何類別的操作系統。
編碼器20和解碼器30都可以實施為各種合適電路中的任一個,例如,一個或多個微處理器、數位信號處理器(digital signal processor,DSP)、專用積體電路(application-specific integrated circuit,ASIC)、場式可程式閘陣列(field-programmable gate array,FPGA)、離散邏輯、硬體或其任何組合。如果部分地以軟體實施所述技術,則設備可將軟體的指令儲存於合適的非暫時性電腦可讀儲存媒體中,且可使用一或多個處理器以硬體執行指令從而執行本公開的技術。前述內容(包含硬體、軟體、硬體與軟體的組合等)中的任一者可視為一或多個處理器。
在一些情況下,圖1A中所示視訊編碼及解碼系統10僅為示例,本申請的技術可以適用於不必包含編碼和解碼設備之間的任何數據通信的視訊編碼設置(例如,視訊編碼或視訊解碼)。在其它實例中,數據可從本地記憶體檢索、在網路上流式傳輸等。視訊編碼設備可以對數據進行編碼並且將數據儲存到記憶體,和/或視訊解碼設備可以從記憶體檢索數據並且對數據進行解碼。在一些實例中,由並不彼此通信而是僅編碼數據到記憶體和/或從記憶體檢索數據且解碼數據的設備執行編碼和解碼。
參見圖1B,圖1B是根據一示例性實施例的包含圖2的編碼器20和/或圖3的解碼器30的視訊譯碼系統40的實例的說明圖。視訊譯碼系統40可以實現本申請實施例的各種技術的組合。在所說明的實施方式中,視訊譯碼系統40可以包含成像設備41、編碼器20、解碼器30(和/或藉由處理電路46的邏輯電路47實施的視訊編/解碼器)、天線42、一個或多個處理器43、一個或多個記憶體44和/或顯示設備45。
如圖1B所示,成像設備41、天線42、處理電路46、邏輯電路47、編碼器20、解碼器30、處理器43、記憶體44和/或顯示設備45能夠互相通信。如所論述,雖然用編碼器20和解碼器30繪示視訊譯碼系統40,但在不同實例中,視訊譯碼系統40可以只包含編碼器20或只包含解碼器30。
在一些實例中,天線42可以用於傳輸或接收視訊數據的經編碼位元流。另外,在一些實例中,顯示設備45可以用於呈現視訊數據。在一些實例中,邏輯電路47可以通過處理電路46實施。處理電路46可以包含專用積體電路(application-specific integrated circuit,ASIC)邏輯、圖形處理器、通用處理器等。視訊譯碼系統40也可以包含可選的處理器43,該可選處理器43類似地可以包含專用積體電路(application-specific integrated circuit,ASIC)邏輯、圖形處理器、通用處理器等。在一些實例中,邏輯電路47可以通過硬體實施,如視訊編碼專用硬體等,處理器43可以通過通用軟體、操作系統等實施。另外,記憶體44可以是任何類型的記憶體,例如揮發性記憶體(例如,靜態隨機存取記憶體(Static Random Access Memory,SRAM)、動態隨機記憶體(Dynamic Random Access Memory,DRAM)等)或非揮發性記憶體(例如,閃存等)等。在非限制性實例中,記憶體44可以由超速快取記憶體實施。在一些實例中,邏輯電路47可以訪問記憶體44(例如用於實施圖像緩衝器)。在其它實例中,邏輯電路47和/或處理電路46可以包含記憶體(例如,快取等)用於實施圖像緩衝器等。
在一些實例中,通過邏輯電路實施的編碼器20可以包含(例如,通過處理電路46或記憶體44實施的)圖像緩衝器和(例如,通過處理電路46實施的)圖形處理單元。圖形處理單元可以通信耦合至圖像緩衝器。圖形處理單元可以包含通過邏輯電路47實施的編碼器20,以實施參照圖2和/或本文中所描述的任何其它編碼器系統或子系統所論述的各種模組。邏輯電路可以用於執行本文所論述的各種操作。
在一些實例中,解碼器30可以以類似方式通過邏輯電路47實施,以實施參照圖3的解碼器30和/或本文中所描述的任何其它解碼器系統或子系統所論述的各種模組。在一些實例中,邏輯電路實施的解碼器30可以包含(通過處理電路44或記憶體44實施的)圖像緩衝器和(例如,通過處理電路46實施的)圖形處理單元。圖形處理單元可以通信耦合至圖像緩衝器。圖形處理單元可以包含通過邏輯電路47實施的解碼器30,以實施參照圖3和/或本文中所描述的任何其它解碼器系統或子系統所論述的各種模組。
在一些實例中,天線42可以用於接收視訊數據的經編碼位元流。如所論述,經編碼位元流可以包含本文所論述的與編碼視訊幀相關的數據、指示符、索引值、模式選擇數據等,例如與編碼分割相關的數據(例如,變換係數或經量化變換係數,(如所論述的)可選指示符,和/或定義編碼分割的數據)。視訊譯碼系統40還可包含耦合至天線42並用於解碼經編碼位元流的解碼器30。顯示設備45用於呈現視訊幀。
應理解,本申請實施例中對於參考編碼器20所描述的實例,解碼器30可以用於執行相反過程。關於信令語法元素,解碼器30可以用於接收並解析這種語法元素,相應地解碼相關視訊數據。在一些例子中,編碼器20可以將語法元素熵編碼成經編碼視訊位元流。在此類實例中,解碼器30可以解析這種語法元素,並相應地解碼相關視訊數據。
需要說明的是,本申請實施例描述的視訊圖像編碼方法發生在編碼器20處,本申請實施例描述的視訊圖像解碼方法發生在解碼器30處,本申請實施例中的編碼器20和解碼器30可以是例如H.263、H.264、HEVV、MPEG-2、MPEG-4、VP8、VP9等視訊標準協議或者下一代視訊標準協議(如H.266等)對應的編/解碼器。
參見圖2,圖2示出用於實現本申請實施例的編碼器20的實例的示意性/概念性方塊圖。在圖2的實例中,編碼器20包括殘差計算單元204、變換處理單元206、量化單元208、逆量化單元210、逆變換處理單元212、重構單元214、緩衝器216、環路濾波器220、經解碼圖像緩衝器(decoded picture buffer,DPB)230、預測處理單元260和熵編碼單元270。預測處理單元260可以包含幀間預測單元244、幀內預測單元254和模式選擇單元262。幀間預測單元244可以包含運動估計單元和運動補償單元(未圖示)。圖2所示的編碼器20也可以稱為混合型視訊編碼器或根據混合型視訊編解碼器的視訊編碼器。
例如,殘差計算單元204、變換處理單元206、量化單元208、預測處理單元260和熵編碼單元270形成編碼器20的前向信號路徑,而例如逆量化單元210、逆變換處理單元212、重構單元214、緩衝器216、環路濾波器220、經解碼圖片緩衝器(decoded picture buffer,DPB)230、預測處理單元260形成編碼器的後向信號路徑,其中編碼器的後向信號路徑對應於解碼器的信號路徑(參見圖3中的解碼器30)。
編碼器20通過例如輸入202,接收圖片201或圖片201的圖像塊203,例如,形成視訊或視訊序列的圖片序列中的圖片。圖像塊203也可以稱為當前圖片塊或待編碼圖片塊,圖片201可以稱為當前圖片或待編碼圖片(尤其是在視訊編碼中將當前圖片與其它圖片區分開時,其它圖片例如同一視訊序列亦即也包括當前圖片的視訊序列中的先前經編碼和/或經解碼圖片)。
編碼器20的實施例可以包括分割單元(圖2中未繪示),用於將圖片201分割成多個例如圖像塊203的塊,通常分割成多個不重疊的塊。分割單元可以用於對視訊序列中所有圖片使用相同的塊大小以及定義塊大小的對應柵格,或用於在圖片或子集或圖片群組之間更改塊大小,並將每個圖片分割成對應的塊。
在一個實例中,編碼器20的預測處理單元260可以用於執行上述分割技術的任何組合。
如圖片201,圖像塊203也是或可以視為具有採樣值的採樣點的二維陣列或矩陣,雖然其尺寸比圖片201小。換句話說,圖像塊203可以包括,例如,一個採樣陣列(例如黑白圖片201情況下的亮度陣列)或三個採樣陣列(例如,彩色圖片情況下的一個亮度陣列和兩個色度陣列)或依據所應用的色彩格式的任何其它數目和/或類別的陣列。圖像塊203的水平和垂直方向(或軸線)上採樣點的數目定義圖像塊203的尺寸。
如圖2所示的編碼器20用於逐塊編碼圖片201,例如,對每個圖像塊203執行編碼和預測。
殘差計算單元204用於基於圖片圖像塊203和預測塊265(下文提供預測塊265的其它細節)計算殘差塊205,例如,通過逐樣本(逐像素)將圖片圖像塊203的樣本值減去預測塊265的樣本值,以在樣本域中獲取殘差塊205。
變換處理單元206用於在殘差塊205的樣本值上應用例如離散餘弦變換(discrete cosine transform,DCT)或離散正弦變換(discrete sine transform,DST)的變換,以在變換域中獲取變換係數207。變換係數207也可以稱為變換殘差係數,並在變換域中表示殘差塊205。
變換處理單元206可以用於應用DCT/DST的整數近似值,例如為HEVC/H.265指定的變換。與正交DCT變換相比,這種整數近似值通常由某一因子按比例縮放。為了維持經正變換和逆變換處理的殘差塊的範數,應用額外比例縮放因子作為變換過程的一部分。比例縮放因子通常是基於某些約束條件選擇的,例如,比例縮放因子是用於移位運算的2的冪、變換係數的位深度、準確性和實施成本之間的權衡等。例如,在解碼器30側通過例如逆變換處理單元212為逆變換(以及在編碼器20側通過例如逆變換處理單元212為對應逆變換)指定具體比例縮放因子,以及相應地,可以在編碼器20側通過變換處理單元206為正變換指定對應比例縮放因子。
量化單元208用於例如通過應用純量量化或向量量化來量化變換係數207,以獲取經量化變換係數209。經量化變換係數209也可以稱為經量化殘差係數209。量化過程可以減少與部分或全部變換係數207有關的位深度。例如,可在量化期間將n位變換係數向下捨入到m位變換係數,其中n大於m。可通過調整量化參數(quantization parameter,QP)修改量化程度。例如,對於純量量化,可以應用不同的標度來實現較細或較粗的量化。較小量化步長對應較細量化,而較大量化步長對應較粗量化。可以通過量化參數(quantization parameter,QP)指示合適的量化步長。例如,量化參數可以為合適的量化步長的預定義集合的索引。例如,較小的量化參數可以對應精細量化(較小量化步長),較大量化參數可以對應粗糙量化(較大量化步長),反之亦然。量化可以包含除以量化步長以及例如通過逆量化210執行的對應的量化或逆量化,或者可以包含乘以量化步長。根據例如HEVC的一些標準的實施例可以使用量化參數來確定量化步長。一般而言,可以基於量化參數使用包含除法的等式的定點近似來計算量化步長。可以引入額外比例縮放因子來進行量化和反量化,以恢復可能由於在用於量化步長和量化參數的等式的定點近似中使用的標度而修改的殘差塊的範數。在一個實例實施方式中,可以合併逆變換和反量化的標度。或者,可以使用自定義量化表並在例如位元流中將其從編碼器通過信號發送到解碼器。量化是有損操作,其中量化步長越大,損耗越大。
逆量化單元210用於在經量化係數上應用量化單元208的逆量化,以獲取經反量化係數211,例如,基於或使用與量化單元208相同的量化步長,應用量化單元208應用的量化方案的逆量化方案。經反量化係數211也可以稱為經反量化殘差係數211,對應於變換係數207,雖然由於量化造成的損耗通常與變換係數不相同。
逆變換處理單元212用於應用變換處理單元206應用的變換的逆變換,例如,逆離散餘弦變換(discrete cosine transform,DCT)或逆離散正弦變換(discrete sine transform,DST),以在樣本域中獲取逆變換塊213。逆變換塊213也可以稱為逆變換經反量化塊213或逆變換殘差塊213。
重構單元214(例如,求和器214)用於將逆變換塊213(即經重建殘差塊213)添加至預測塊265,以在樣本域中獲取經重構塊215,例如,將經重建殘差塊213的樣本值與預測塊265的樣本值相加。
可選地,例如線緩衝器216的緩衝器單元216(或簡稱「緩衝器」216)用於緩衝或儲存經重構塊215和對應的樣本值,用於例如幀內預測。在其它的實施例中,編碼器可以用於使用儲存在緩衝器單元216中的未經濾波的經重構塊和/或對應的樣本值來進行任何類別的估計和/或預測,例如幀內預測。
例如,編碼器20的實施例可以經配置以使得緩衝器單元216不只用於儲存用於幀內預測254的經重構塊215,也用於環路濾波器220單元(在圖2中未示出),和/或,例如使得緩衝器單元216和經解碼圖片緩衝器單元230形成一個緩衝器。其它實施例可以用於將經濾波塊221和/或來自經解碼圖片緩衝器230的塊或樣本(圖2中均未示出)用作幀內預測254的輸入或基礎。
環路濾波器單元220(或簡稱「環路濾波器」220)用於對經重構塊215進行濾波以獲取經濾波塊221,從而順利進行像素轉變或提高視訊質量。環路濾波器單元220旨在表示一個或多個環路濾波器,例如去塊濾波器、樣本自適應偏移(sample-adaptive offset,SAO)濾波器或其它濾波器,例如雙邊濾波器、自適應環路濾波器(adaptive loop filter,ALF),或銳化或平滑濾波器,或協同濾波器。儘管環路濾波器單元220在圖2中示出為環內濾波器,但在其它配置中,環路濾波器單元220可實施為環後濾波器。經濾波塊221也可以稱為經濾波的經重構塊221。經解碼圖片緩衝器230可以在環路濾波器單元220對經重構編碼塊執行濾波操作之後儲存經重構編碼塊。
編碼器20(對應地,環路濾波器單元220)的實施例可以用於輸出環路濾波器參數(例如,樣本自適應偏移訊息),例如,直接輸出或由熵編碼單元270或任何其它熵編碼單元熵編碼後輸出,例如使得解碼器30可以接收並應用相同的環路濾波器參數用於解碼。
經解碼圖片緩衝器(decoded picture buffer,DPB)230可以為儲存參考圖片數據供編碼器20編碼視訊數據之用的參考圖片記憶體。DPB 230可由多種記憶體設備中的任一個形成,例如動態隨機記憶體(dynamic random access memory,DRAM)(包含同步DRAM(synchronous DRAM,SDRAM)、磁阻式RAM(magnetoresistive RAM,MRAM)、電阻式RAM(resistive RAM,RRAM))或其它類型的記憶體設備。可以由同一記憶體設備或單獨的記憶體設備提供解碼圖像緩衝器(decoded picture buffer,DPB)230和緩衝器216。在某一實例中,經解碼圖像緩衝器DPB 230用於儲存經濾波塊221。經解碼圖像緩衝器230可以進一步用於儲存同一當前圖片或例如先前經重構圖片的不同圖片的其它先前的經濾波塊,例如先前經重構和經濾波塊221,以及可以提供完整的先前經重構亦即經解碼圖片(和對應參考塊和樣本)和/或部分經重構當前圖片(和對應參考塊和樣本),例如用於幀間預測。在某一實例中,如果經重構塊215無需環內濾波而得以重構,則經解碼圖像緩衝器(decoded picture buffer,DPB)230用於儲存經重構塊215。
預測處理單元260,也稱為塊預測處理單元260,用於接收或獲取圖像塊203(當前圖片201的當前圖像塊203)和經重構圖片數據,例如來自緩衝器216的同一(當前)圖片的參考樣本和/或來自經解碼圖像緩衝器230的一個或多個先前經解碼圖片的參考圖片數據231,以及用於處理這類數據進行預測,即提供可以為經幀間預測塊245或經幀內預測塊255的預測塊265。
模式選擇單元262可以用於選擇預測模式(例如幀內或幀間預測模式)和/或對應的用作預測塊265的預測塊245或255,以計算殘差塊205和重構經重構塊215。
模式選擇單元262的實施例可以用於選擇預測模式(例如,從預測處理單元260所支持的那些預測模式中選擇),所述預測模式提供最佳匹配或者說最小殘差(最小殘差意味著傳輸或儲存中更好的壓縮),或提供最小信令開銷(最小信令開銷意味著傳輸或儲存中更好的壓縮),或同時考慮或平衡以上兩者。模式選擇單元262可以用於基於碼率失真優化(rate distortion optimization,RDO)確定預測模式,即選擇提供最小碼率失真優化的預測模式,或選擇相關碼率失真至少滿足預測模式選擇標準的預測模式。
下文將詳細解釋編碼器20的實例(例如,通過預測處理單元260)執行的預測處理和(例如,通過模式選擇單元262)執行的模式選擇。
如上文所述,編碼器20用於從(預先確定的)預測模式集合中確定或選擇最好或最優的預測模式。預測模式集合可以包括例如幀內預測模式和/或幀間預測模式。
幀內預測模式集合可以包括35種不同的幀內預測模式,例如,如DC(或均值)模式和平面模式的非方向性模式,或如H.265中定義的方向性模式,或者可以包括67種不同的幀內預測模式,例如,如DC(或均值)模式和平面模式的非方向性模式,或如正在發展中的H.266中定義的方向性模式。
在可能的實現中,幀間預測模式集合取決於可用參考圖片(即,例如前述儲存在DBP 230中的至少部分經解碼圖片)和其它幀間預測參數,例如取決於是否使用整個參考圖片或只使用參考圖片的一部分,例如圍繞當前塊的區域的搜索窗區域,來搜索最佳匹配參考塊,和/或例如取決於是否應用如半像素和/或四分之一像素內插的像素內插,幀間預測模式集合例如可包括跳過(skip)模式和融合(merge)模式。具體實施中,幀間預測模式集合可包括本申請實施例中基於skip的融合運動向量差(merge with motion vector difference,MMVD)模式,或者基於merge的MMVD模式。在一個實例中,幀內預測單元254可以用於執行下文描述的幀間預測技術的任意組合。
除了以上預測模式,本申請實施例也可以應用跳過模式和/或直接模式。
預測處理單元260可以進一步用於將圖像塊203分割成較小的塊分區或子塊,例如,通過迭代使用四叉樹(quad-tree,QT)分割、二進制樹(binary-tree,BT)分割或三叉樹(triple-tree,TT)分割,或其任何組合,以及用於例如為塊分區或子塊中的每一個執行預測,其中模式選擇包括選擇分割的圖像塊203的樹結構和選擇應用於塊分區或子塊中的每一個的預測模式。
幀間預測單元244可以包含運動估計(motion estimation,ME)單元(圖2中未示出)和運動補償(motion compensation,MC)單元(圖2中未示出)。運動估計單元用於接收或獲取圖片圖像塊203(當前圖片201的當前圖片圖像塊203)和經解碼圖片231,或至少一個或多個先前經重構塊,例如,一個或多個其它/不同先前經解碼圖片231的經重構塊,來進行運動估計。例如,視訊序列可以包括當前圖片和先前經解碼圖片31,或換句話說,當前圖片和先前經解碼圖片31可以是形成視訊序列的圖片序列的一部分,或者形成該圖片序列。
例如,編碼器20可以用於從多個其它圖片中的同一或不同圖片的多個參考塊中選擇參考塊,並向運動估計單元(圖2中未示出)提供參考圖片和/或提供參考塊的位置(X、Y坐標)與當前塊的位置之間的偏移(空間偏移)作為幀間預測參數。該偏移也稱為運動向量或運動向量(motion vector,MV)。
運動補償單元用於獲取幀間預測參數,並基於或使用幀間預測參數執行幀間預測來獲取幀間預測塊245。由運動補償單元(圖2中未示出)執行的運動補償可以包含基於通過運動估計(可能執行對子像素精確度的內插)確定的運動/塊向量取出或生成預測塊。內插濾波可從已知像素樣本產生額外像素樣本,從而潛在地增加可用於編碼圖片塊的候選預測塊的數目。一旦接收到用於當前圖片塊的PU的運動向量,運動補償單元246可以在一個參考圖片列表中定位運動向量指向的預測塊。運動補償單元246還可以生成與塊和視訊條帶相關聯的語法元素,以供解碼器30在解碼視訊條帶的圖片塊時使用。
具體的,上述幀間預測單元244可向熵編碼單元270傳輸語法元素,所述語法元素包括幀間預測參數(比如遍歷多個幀間預測模式後選擇用於當前塊預測的幀間預測模式的指示訊息)。可能應用場景中,如果幀間預測模式只有一種,那麼也可以不在語法元素中攜帶幀間預測參數,此時解碼端30可直接使用默認的預測模式進行解碼。可以理解的,幀間預測單元244可以用於執行幀間預測技術的任意組合。
幀內預測單元254用於獲取,例如接收同一圖片的圖片塊203(當前圖片塊)和一個或多個先前經重構塊,例如經重構相相鄰塊,以進行幀內估計。例如,編碼器20可以用於從多個(預定)幀內預測模式中選擇幀內預測模式。
編碼器20的實施例可以用於基於優化標準選擇幀內預測模式,例如基於最小殘差(例如,提供最類似於當前圖片塊203的預測塊255的幀內預測模式)或最小碼率失真。
幀內預測單元254進一步用於基於如所選擇的幀內預測模式的幀內預測參數確定幀內預測塊255。在任何情況下,在選擇用於塊的幀內預測模式之後,幀內預測單元254還用於向熵編碼單元270提供幀內預測參數,即提供指示所選擇的用於塊的幀內預測模式的訊息。在一個實例中,幀內預測單元254可以用於執行幀內預測技術的任意組合。
具體的,上述幀內預測單元254可向熵編碼單元270傳輸語法元素,所述語法元素包括幀內預測參數(比如遍歷多個幀內預測模式後選擇用於當前塊預測的幀內預測模式的指示訊息)。可能應用場景中,如果幀內預測模式只有一種,那麼也可以不在語法元素中攜帶幀內預測參數,此時解碼端30可直接使用默認的預測模式進行解碼。
熵編碼單元270用於將熵編碼算法或方案(例如,可變長度編碼(variable length coding,VLC)方案、上下文自適應VLC(context adaptive VLC,CAVLC)方案、算術編碼方案、上下文自適應二進制算術編碼(context adaptive binary arithmetic coding,CABAC)、基於語法的上下文自適應二進制算術編碼(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率區間分割熵(probability interval partitioning entropy,PIPE)編碼或其它熵編碼方法或技術)應用於經量化殘差係數209、幀間預測參數、幀內預測參數和/或環路濾波器參數中的單個或所有上(或不應用),以獲取可以通過輸出272以例如經編碼位元流21的形式輸出的經編碼圖片數據21。可以將經編碼位元流傳輸到視訊解碼器30,或將其存檔稍後由視訊解碼器30傳輸或檢索。熵編碼單元270還可用於熵編碼正被編碼的當前視訊條帶的其它語法元素。
視訊編碼器20的其它結構變型可用於編碼視訊流。例如,基於非變換的編碼器20可以在沒有針對某些塊或幀的變換處理單元206的情況下直接量化殘差信號。在另一實施方式中,編碼器20可具有組合成單個單元的量化單元208和逆量化單元210。
具體的,在本申請實施例中,編碼器20可用于實現後文實施例中描述的視訊圖像編碼方法。
應當理解的是,視訊編碼器20的其它的結構變化可用於編碼視訊流。例如,對於某些圖像塊或者圖像幀,視訊編碼器20可以直接地量化殘差信號而不需要經變換處理單元206處理,相應地也不需要經逆變換處理單元212處理;或者,對於某些圖像塊或者圖像幀,視訊編碼器20沒有產生殘差數據,相應地不需要經變換處理單元206、量化單元208、逆量化單元210和逆變換處理單元212處理;或者,視訊編碼器20可以將經重構圖像塊作為參考塊直接地進行儲存而不需要經濾波器220處理;或者,視訊編碼器20中量化單元208和逆量化單元210可以合併在一起。環路濾波器220是可選的,以及針對無損壓縮編碼的情況下,變換處理單元206、量化單元208、逆量化單元210和逆變換處理單元212是可選的。應當理解的是,根據不同的應用場景,幀間預測單元244和幀內預測單元254可以是被選擇性的啟用。
參見圖3,圖3示出用於實現本申請實施例的解碼器30的實例的示意性/概念性方塊圖。視訊解碼器30用於接收例如由編碼器20編碼的經編碼圖片數據(例如,經編碼位元流)21,以獲取經解碼圖片231。在解碼過程期間,視訊解碼器30從視訊編碼器20接收視訊數據,例如表示經編碼視訊條帶的圖片塊的經編碼視訊位元流及相關聯的語法元素。
在圖3的實例中,解碼器30包括熵解碼單元304、逆量化單元310、逆變換處理單元312、重構單元314(例如求和器314)、緩衝器316、環路濾波器320、經解碼圖片緩衝器330以及預測處理單元360。預測處理單元360可以包含幀間預測單元344、幀內預測單元354和模式選擇單元362。在一些實例中,視訊解碼器30可執行大體上與參照圖2的視訊編碼器20描述的編碼遍次互逆的解碼遍次。
熵解碼單元304用於對經編碼圖片數據21執行熵解碼,以獲取例如經量化係數309和/或經解碼的編碼參數(圖3中未示出),例如,幀間預測、幀內預測參數、環路濾波器參數和/或其它語法元素中(經解碼)的任意一個或全部。熵解碼單元304進一步用於將幀間預測參數、幀內預測參數和/或其它語法元素轉發至預測處理單元360。視訊解碼器30可接收視訊條帶層級和/或視訊塊層級的語法元素。
逆量化單元310功能上可與逆量化單元110相同,逆變換處理單元312功能上可與逆變換處理單元212相同,重構單元314功能上可與重構單元214相同,緩衝器316功能上可與緩衝器216相同,環路濾波器320功能上可與環路濾波器220相同,經解碼圖片緩衝器330功能上可與經解碼圖像緩衝器230相同。
預測處理單元360可以包括幀間預測單元344和幀內預測單元354,其中幀間預測單元344功能上可以類似於幀間預測單元244,幀內預測單元354功能上可以類似於幀內預測單元254。預測處理單元360通常用於執行塊預測和/或從經編碼數據21獲取預測塊365,以及從例如熵解碼單元304(顯式地或隱式地)接收或獲取預測相關參數和/或關於所選擇的預測模式的訊息。
當視訊條帶經編碼為經幀內編碼(I)條帶時,預測處理單元360的幀內預測單元354用於基於信號表示的幀內預測模式及來自當前幀或圖片的先前經解碼塊的數據來產生用於當前視訊條帶的圖片塊的預測塊365。當視訊幀經編碼為經幀間編碼(即B或P)條帶時,預測處理單元360的幀間預測單元344(例如,運動補償單元)用於基於運動向量及從熵解碼單元304接收的其它語法元素生成用於當前視訊條帶的視訊塊的預測塊365。對於幀間預測,可從一個參考圖片列表內的一個參考圖片中產生預測塊。視訊解碼器30可基於儲存於DPB 330中的參考圖片,使用默認建構技術來建構參考幀列表:列表0和列表1。
預測處理單元360用於通過解析運動向量和其它語法元素,確定用於當前視訊條帶的視訊塊的預測訊息,並使用預測訊息產生用於正經解碼的當前視訊塊的預測塊。在本申請的一實例中,預測處理單元360使用接收到的一些語法元素確定用於編碼視訊條帶的視訊塊的預測模式(例如,幀內或幀間預測)、幀間預測條帶類型(例如,B條帶、P條帶或GPB條帶)、用於條帶的參考圖片列表中的一個或多個的建構訊息、用於條帶的每個經幀間編碼視訊塊的運動向量、條帶的每個經幀間編碼視訊塊的幀間預測狀態以及其它訊息,以解碼當前視訊條帶的視訊塊。在本公開的另一實例中,視訊解碼器30從位元流接收的語法元素包含接收自適應參數集(adaptive parameter set,APS)、序列參數集(sequence parameter set,SPS)、圖片參數集(picture parameter set,PPS)或條帶標頭中的一個或多個中的語法元素。
逆量化單元310可用於逆量化(即,反量化)在位元流中提供且由熵解碼單元304解碼的經量化變換係數。逆量化過程可包含使用由視訊編碼器20針對視訊條帶中的每一視訊塊所計算的量化參數來確定應該應用的量化程度並同樣確定應該應用的逆量化程度。
逆變換處理單元312用於將逆變換(例如,逆DCT、逆整數變換或概念上類似的逆變換過程)應用於變換係數,以便在像素域中產生殘差塊。
重構單元314(例如,求和器314)用於將逆變換塊313(即經重建殘差塊313)添加到預測塊365,以在樣本域中獲取經重構塊315,例如通過將經重建殘差塊313的樣本值與預測塊365的樣本值相加。
環路濾波器單元320(在編碼循環期間或在編碼循環之後)用於對經重構塊315進行濾波以獲取經濾波塊321,從而順利進行像素轉變或提高視訊質量。在一個實例中,環路濾波器單元320可以用於執行下文描述的濾波技術的任意組合。環路濾波器單元320旨在表示一個或多個環路濾波器,例如去塊濾波器、樣本自適應偏移(sample-adaptive offset,SAO)濾波器或其它濾波器,例如雙邊濾波器、自適應環路濾波器(adaptive loop filter,ALF),或銳化或平滑濾波器,或協同濾波器。儘管環路濾波器單元320在圖3中示出為環內濾波器,但在其它配置中,環路濾波器單元320可實施為環後濾波器。
隨後將給定幀或圖片中的經解碼視訊塊321儲存在儲存用於後續運動補償的參考圖片的經解碼圖片緩衝器330中。
解碼器30用於例如,藉由輸出332輸出經解碼圖片31,以向用戶呈現或供用戶查看。
視訊解碼器30的其它變型可用於對壓縮的位元流進行解碼。例如,解碼器30可以在沒有環路濾波器單元320的情況下生成輸出視訊流。例如,基於非變換的解碼器30可以在沒有針對某些塊或幀的逆變換處理單元312的情況下直接逆量化殘差信號。在另一實施方式中,視訊解碼器30可以具有組合成單個單元的逆量化單元310和逆變換處理單元312。
具體的,在本申請實施例中,解碼器30用於實現後文實施例中描述的視訊圖像解碼方法。
應當理解的是,視訊解碼器30的其它結構變化可用於解碼經編碼視訊位流。例如,視訊解碼器30可以不經濾波器320處理而生成輸出視訊流;或者,對於某些圖像塊或者圖像幀,視訊解碼器30的熵解碼單元304沒有解碼出經量化的係數,相應地不需要經逆量化單元310和逆變換處理單元312處理。環路濾波器320是可選的;以及針對無損壓縮的情況下,逆量化單元310和逆變換處理單元312是可選的。應當理解的是,根據不同的應用場景,幀間預測單元和幀內預測單元可以是被選擇性的啟用。
應當理解的是,本申請的編碼器20和解碼器30中,針對某個環節的處理結果可以經過進一步處理後,輸出到下一個環節,例如,在插值濾波、運動向量推導或環路濾波等環節之後,對相應環節的處理結果進一步進行Clip或移位shift等操作。
例如,按照相鄰仿射編碼塊的運動向量推導得到的當前圖像塊的控制點的運動向量,或者推導得到的當前圖像塊的子塊的運動向量,可以經過進一步處理,本申請對此不做限定。例如,對運動向量的取值範圍進行約束,使其在一定的位寬內。假設允許的運動向量的位寬為bitDepth,則運動向量的範圍為-2^(bitDepth-1) ~ 2^(bitDepth-1)-1,其中「^」符號表示冪次方。如bitDepth為16,則取值範圍為-32768~32767。如bitDepth為18,則取值範圍為-131072~131071。又例如,對運動向量(例如一個8x8圖像塊內的四個4x4子塊的運動向量MV)的取值進行約束,使得所述四個4x4子塊MV的整數部分之間的最大差值不超過N個像素,例如不超過一個像素。
參見圖4,圖4是本申請實施例提供的視訊譯碼設備400(例如視訊編碼設備400或視訊解碼設備400)的結構示意圖。視訊譯碼設備400適於實施本文所描述的實施例。在一個實施例中,視訊譯碼設備400可以是視訊解碼器(例如圖1A的解碼器30)或視訊編碼器(例如圖1A的編碼器20)。在另一個實施例中,視訊譯碼設備400可以是上述圖1A的解碼器30或圖1A的編碼器20中的一個或多個組件。
視訊譯碼設備400包括:用於接收數據的入口埠410和接收單元(Rx)420,用於處理數據的處理器、邏輯單元或中央處理器(CPU)430,用於傳輸數據的發射器單元(Tx)440(或者簡稱為發射器440)和出口埠450,以及,用於儲存數據的記憶體460(比如記憶體460)。視訊譯碼設備400還可以包括與入口埠410、接收器單元420(或者簡稱為接收器420)、發射器單元440和出口埠450耦合的光電轉換組件和電光(EO)組件,用於光信號或電信號的出口或入口。
處理器430通過硬體和軟體實現。處理器430可以實現為一個或多個CPU晶片、核心(例如,多核心處理器)、FPGA、ASIC和DSP。處理器430與入口埠410、接收器單元420、發射器單元440、出口埠450和記憶體460通信。處理器430包括譯碼模組470(例如編碼模組470或解碼模組470)。編碼/解碼模組470實現本文中所公開的實施例,以實現本申請實施例所提供的色度塊預測方法。例如,編碼/解碼模組470實現、處理或提供各種編碼操作。因此,通過編碼/解碼模組470為視訊譯碼設備400的功能提供了實質性的改進,並影響了視訊譯碼設備400到不同狀態的轉換。或者,以儲存在記憶體460中並由處理器430執行的指令來實現編碼/解碼模組470。
記憶體460包括一個或多個磁碟片、磁碟機和固態硬碟,可以用作溢出數據儲存設備,用於在選擇性地執行這些程序時儲存程序,並儲存在程序執行過程中讀取的指令和數據。記憶體460可以是揮發性和/或非揮發性的,可以是唯讀記憶體(ROM)、隨機存取記憶體(RAM)、隨機存取記憶體(ternary content-addressable memory,TCAM)和/或靜態隨機存取記憶體(SRAM)。
參見圖5,圖5是根據一示例性實施例的可用作圖1A中的源設備12和目的地設備14中的任一個或兩個的裝置500的簡化方塊圖。裝置500可以實現本申請的技術。換言之,圖5為本申請實施例的編碼設備或解碼設備(簡稱為譯碼設備500)的一種實現方式的示意性方塊圖。其中,譯碼設備500可以包括處理器510、記憶體530和匯流排系統550。其中,處理器和記憶體通過匯流排系統相連,該記憶體用於儲存指令,該處理器用於執行該記憶體儲存的指令。譯碼設備的記憶體儲存程序代碼,且處理器可以調用記憶體中儲存的程序代碼執行本申請描述的各種視訊圖像的編碼或解碼方法,尤其是在各種幀間預測模式或幀內預測模式下的視訊編碼或解碼方法。為避免重複,這裡不再詳細描述。
在本申請實施例中,該處理器510可以是中央處理單元(Central Processing Unit,簡稱為「CPU」),該處理器510還可以是其他通用處理器、數位信號處理器(DSP)、專用積體電路(ASIC)、場式可程式閘陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬體組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。
該記憶體530可以包括唯讀記憶體(ROM)設備或者隨機存取記憶體(RAM)設備。任何其他適宜類型的儲存設備也可以用作記憶體530。記憶體530可以包括由處理器510使用匯流排550訪問的代碼和數據531。記憶體530可以進一步包括操作系統533和應用程式535,該應用程式535包括允許處理器510執行本申請描述的視訊編碼或解碼方法(尤其是本申請描述的視訊圖像預測方法或者幀間預測方法)的至少一個程序。例如,應用程式535可以包括應用1至N,其進一步包括執行在本申請描述的視訊編碼或解碼方法的視訊編碼或解碼應用(簡稱視訊譯碼應用)。
該匯流排系統550除包括數據匯流排之外,還可以包括電源匯流排、控制匯流排和狀態信號匯流排等。但是為了清楚說明起見,在圖中將各種匯流排都標為匯流排系統550。
可選的,譯碼設備500還可以包括一個或多個輸出設備,諸如顯示器570。在一個示例中,顯示器570可以是觸感顯示器,其將顯示器與可操作地感測觸摸輸入的觸感單元合併。顯示器570可以經由匯流排550連接到處理器510。
幀間預測是本申請實施例的一個重要環節,從編碼端來看,幀間預測是在已重建的圖像中,為當前圖像中的當前編碼塊尋找匹配的參考塊,如圖5A所示,將參考塊(如參考塊Fr1和參考塊Fr2,參考塊中的像素值可以理解為本申請所描述的參考像素值)中的像素點的像素值作為當前編碼塊(即當前圖像塊)Fc中像素點的像素值的預測訊息或者預測值(以下不再區分訊息和值),此過程稱為運動估計ME,並傳輸當前編碼塊的運動訊息。從解碼側來看,幀間預測需要解析出運動訊息,並使用所解析出的運動訊息在已重建的圖像中確定參考塊,並將參考塊內像素點的像素值作(即參考像素值)為預測訊息,此過程稱為運動補償MC。使用預測訊息加上殘差訊息經過濾波操作便可以得到重建訊息。本申請的思想可以應用於HEVC中也可以應用於其他視訊編解碼標準中,下面以應用於HEVC為例,講述編碼側的幀間預測模式的可能情況,解碼側的幀間預測模式的可能情況類似因此不再額外描述。
在HEVC中,分別為先進的運動向量預測(Advanced Motion Vector Prediction,AMVP)模式和融合(Merge)模式,下面對這兩種模式分別進行介紹。
對於AMVP模式,先通過當前編碼塊空域或者時域相鄰的已編碼塊的運動訊息,構建仿射候選運動向量列表,然後通過從仿射候選運動向量列表中確定最優的運動向量作為當前編碼塊的運動向量預測值(Motion vector predictor,MVP)。率失真代價由公式(0-1)計算獲得,其中J為率失真代價RD Cost,SAD為使用候選運動向量預測值進行運動估計後得到的預測像素值與原始像素值之間的絕對誤差和(Sum of Absolute Differences,SAD),R為碼率,λ為拉格朗日乘子,編碼端將選擇的運動向量預測值在仿射候選運動向量列表中的索引值和參考幀索引值傳遞到解碼端。進一步地,在MVP為中心的鄰域內進行運動搜索獲得當前編碼塊實際的運動向量,編碼端將MVP與實際運動向量之間的差值(Motion vector difference)傳遞到解碼端。
J=SAD+λR                 (0-1)
對於Merge模式,先通過當前編碼塊空域或者時域相鄰的已編碼塊的運動訊息,構建候選運動訊息列表,然後通過率失真代價從候選運動訊息列表中確定最優的運動訊息作為當前編碼塊的運動訊息,再將最優的運動訊息在候選運動訊息列表中位置的索引值(記為merge index,下同)傳遞到解碼端。當前編碼塊空域和時域候選運動訊息如圖5B所示,空域候選運動訊息來自於空間相鄰的5個塊(A0、A1、B0、B1和B2),若相鄰塊不可得或者為幀內編碼模式,則不加入候選運動訊息列表。當前編碼塊的時域候選運動訊息根據參考幀和當前幀的圖序計數(Picture order count,POC)對參考幀中對應位置塊的MV進行縮放後獲得。首先判斷參考幀中位置為T的塊是否可得,若不可得則選擇位置在C的塊。
在HEVC的幀間預測中,當前編碼塊內的所有像素都採用了相同的運動訊息,然後根據運動訊息進行運動補償,得到當前編碼塊的像素的預測值。這些運動訊息主要包括:(1)編碼塊的預測方向:包括前向、後向和雙向預測,前向預測表明編碼塊由前面的已編碼幀預測得到,後向預測表示編碼塊由後面的已編碼幀預測得到,雙向預測則表明編碼塊是結合前後向已編碼幀預測得到的;(2)編碼塊的參考幀索引,指示當前編碼塊的參考塊所在的幀;(3)編碼塊的運動向量MV,表示編碼塊相對於參考塊的運動位移,MV包括水平分量(記作MVx )和垂直分量(記作MVy ),分別表示編碼塊相對於參考塊在水平方向和垂直方向上的運動位移。當編碼塊是前向預測或者後向預測時,MV只有一個,當編碼塊是雙向(即前向和後向)預測時,MV有兩個。圖5C給出了以上運動訊息的說明,在圖5C以及下文的關於運動訊息以及預測訊息的描述中,0表示前向預測,1表示後向預測,例如,Ref0表示前向參考幀,Ref1表示後向參考幀,MV0表示前向運動向量,MV1表示後向運動向量。A、B、C分別表示前向參考塊、當前編碼塊和後向參考塊。Cur為當前編碼幀,虛線表示B的運動軌跡。
前向預測的運動補償基本過程如下:圖5C所示,當前編碼塊為圖中的塊B,B的高和寬分別為H和W。此時根據運動訊息已知當前編碼塊B的前向參考幀為Ref0幀,當前編碼塊B的前向運動向量MV0=(MV0x ,MV0y )。在編碼Cur幀中的編碼塊B時,首先根據B的左上角的點在Cur幀中的坐標(i,j)在第Ref0幀中找到同樣的坐標點,根據塊B的長和寬可以得到Ref0中的塊B’,然後根據塊B’的MV0,將B’移動到塊A。最後對塊A經過插值處理得到當前編碼塊B的預測塊,當前編碼塊B的預測塊中各個像素點的像素值稱為塊B中對應像素點的預測值。後向預測與前向預測的運動補償過程相同,只是參考方向不同。需要說明的是,後向預測與前向預測運動補償得到的預測塊分別稱為前向預測塊和後向預測塊,當編碼塊不是雙向預測時,此時得到的前向預測塊和後向預測塊就是當前編碼塊的預測塊。
對於雙向預測,首先根據運動訊息分別按照前向預測和後向預測的運動補償過程,得到前向預測塊和後向預測塊,然後將前向預測塊和後向預測塊中位置相同的像素值經過加權預測或者BDOF(也稱為基於雙向預測的光流技術(Bi-directional optical flow, BIO))才得到編碼塊B的預測塊。
在BDOF技術中,當前編碼塊做完雙向預測的運動補償後得到前向預測塊和後向預測塊,再根據前向預測塊和後向預測塊的像素值,推導當前編碼塊中每一個4x4子塊的修正運動向量。最後根據修正運動向量對當前編碼塊內的各個像素點再進行一次補償,得到當前編碼塊最終的預測塊,從而得到當前編碼塊的預測值。本申請實施例將重點講述在什麼條件下採用BDOF進行運動補償,以降低編解碼複雜度,提高編解碼性能。
請參見圖6A,圖6A是本發明實施例提供的一種編碼方法的流程示意圖,該編碼流程可以由視訊編碼設備來執行,該視訊編碼設備可以為上述視訊編碼器20,或者為包含該視訊編碼器20的設備,具體地,可以由視訊編碼器20中的幀間預測單元(也稱幀間預測器)244、熵編碼單元(也稱熵編碼器)270等來執行,上述流程描述為一系列的步驟或操作,應當理解的是,該流程可以以各種順序執行和/或同時發生,不限於圖6A所示的執行順序。圖6A對應的流程的相關描述如下:
首先,編碼設備判斷是否滿足多個預設條件,若是,跳到S600;若否,跳到S601,針對否的情況,這裡僅以S601的情況為代表詳細說明,另外與現有技術相同的情況,本申請對此不做贅述。
步驟S600:編碼設備在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值。
其中,基於雙向預測的光流技術(Bi-directional optical flow,BDOF)可以簡稱為BIO或者BDOF。
所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。例如,假若當前圖像塊的尺寸為8x8,那麼其中前一個8表示當前圖像塊的width為8個像素,後一個8表示當前圖像塊的height為8個像素;再如,如果當前圖像塊的尺寸為8x16,那麼其中8表示當前圖像塊的width為8個像素,16表示當前圖像塊的height為16個像素,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A至J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
應當理解的是,本申請實施例的方法的執行主體可以是圖像預測裝置,例如可以是視訊編碼器或具有視訊編碼功能的電子設備,具體例如可以是視訊編碼器中的幀間預測單元。
也即是說,本方案中使用BDOF技術的條件,與現有技術中使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近實際像素值的像素預測值,又能夠適當控制編碼複雜度,提高了編碼效率。
在本申請實施例中,所述編碼設備在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,可以具體為:編碼設備在滿足多個預設條件的情況下,基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素,對當前圖像塊進行基於雙向預測的光流技術BDOF處理。
本申請實施例中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_L1)預測得到的;例如,基於對應於第一列表(即list0)的第一運動向量(例如,Mv0_L0)能夠確定對應於第一列表(即list0)的參考像素值,基於對應於第二列表(即list1)的第二運動向量(例如,Mv1_L1)能夠確定對應於第二列表(即list1)的參考像素值。
可以理解,幀間預測模式不同則獲取對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_ L 1)的方式不同。具體採用什麼幀間預測模式可以通過模式選擇單元來進行選擇,下面例舉AMVP模式、merge模式和SKIP模式下分別如何確定第一運動向量和第二運動向量。
可能情況一,幀間預測模式為AMVP模式的情況下:
首先,編碼設備構建候選運動向量預測值MVP列表。
具體地,視訊編碼設備通過幀間預測單元(也稱幀間預測模組)來構建候選運動向量預測值MVP列表(也稱候選運動向量列表),構建的候選運動向量預測值MVP列表可以為三元組的候選運動向量預測值MVP列表,也可以為二元組的候選運動向量預測值MVP列表。本申請實施例中,視訊編碼設備採用雙向預測的方式進行幀間預測。
然後,視訊編碼設備根據率失真代價準則,從MVP列表中確定目標候選運動訊息。
具體地,該目標候選運動訊息也可以稱為最優候選運動向量,或者有其他名稱,總而言之,其實根據率失真代價準則(例如使用代價最小化)從MVP列表中確定的最優候選,該目標候選運動訊息在該候選運動向量預測值MVP列表中對應有一個唯一的索引號。
接著,根據目標候選運動訊息確定第一運動向量和第二運動向量。其中目標候選運動訊息包括對應於所述第一列表(即list0)的第一運動向量預測值(例如,Mvp0_L0)和對應於所述第二列表(即list1)預測值(例如,Mvp1_L1),例如,可以根據第一運動向量預測值Mvp0_L0與運動向量差MVD0之和得到(前向)對應於第一列表(list0)的第一運動向量Mv0_L0;同理可以根據第二運動向量預測值Mvp1_L1與運動向量差MVD1之和得到第二運動向量Mv1_L1;可選的,這裡對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)也可以表述為對應於第一方向(如前向)的第一運動向量,對應於所述第二列表(即list1)的第二運動向量(例如,Mvp_L1)也可以表述為對應於第二方向(如後向)的第二運動向量。
可能情況二,幀間預測模式為merge模式的情況下:
首先,編碼設備構建候選運動訊息列表。
具體地,視訊編碼設備通過幀間預測單元(也稱幀間預測模組)來構建候選運動訊息列表(也稱候選運動向量列表)。
之後,視訊編碼設備根據率失真代價準則,從候選運動訊息列表中確定目標候選運動訊息。
具體地,所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引和對應於第二列表的第二參考幀的索引。
該目標候選運動訊息也可以稱為最優候選運動訊息,或者有其他名稱,總而言之,其實根據率失真代價準則(例如使用代價最小化原則)從候選運動訊息列表中確定的最優候選。
可能情況三,幀間預測模式為SKIP模式的情況下。相關描述可以參照以上情況二中針對merge模式的描述,與merge模式的區別在於skip模式不需要傳輸像素殘差。
參見圖6B所示,本申請實施例涉及的當前圖像塊所屬的當前圖像存在一前一後的兩個參考圖像,分別為第一參考圖像(比如前向參考圖像,或者說前向參考幀,這裡的前向也可以稱為第一方向)和第二參考圖像(比如後向參考圖像,或者說後向參考幀,這裡的後向也可以稱為第二方向)。上述對應於第一列表的參考像素即為該第一參考圖像上的參考像素,上述對應於第二列表的參考像素即為該第二參考圖像上的參考像素。
可選的,採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前塊的預測像素值可以包括:採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值推導當前塊中每個子塊的修正運動向量,然後每個子塊基於修正後的運動向量進行運動補償,得到每個子塊的預測像素值,從而得到當前塊的預測像素值。為了便於理解,下面進行舉例說明。
對應於第一列表(list0)的參考像素值中的像素可以表述為
Figure 02_image001
,對應於第二列表(list1)的參考像素值中的像素值可以表述為
Figure 02_image001
,兩者可以統稱為前後向預測值
Figure 02_image003
,i=0..cuW-1,j=0..cuH-1,k可以取0和1。其中,
Figure 02_image003
可以通過8階插值濾波器進行插值得到,其他位置像素值(擴展1行1列位置)通過bilinear插值濾波器插值得到;需要說明的是,擴展區域的像素值也可以採用其他方法獲得,如同樣採用8階插值濾波器,或者直接採用整像素位置的參考像素值,在此不做限定。其中,cuW、cuH分別為當前圖像塊的寬和高。採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值可以具體包括如下步驟:
步驟1,計算對應於第一列表的參考像素值的像素值與對應於第二列表的參考像素值的像素值之間的絕對誤差和SAD,判斷SAD是否小於閾值TH_CU,若小於,則不執行BDOF。否則,執行BDOF。本步驟為可選。
SAD計算公式如下:
Figure 02_image005
閾值TH_CU可以設置為(1<<(BD – 8 + shift))*cuW*cuH,shift為Max(2,14−BD)。
或者TH_CU可以設置為1<<(BD – 3 + shift)。
可選的,也可以通過其他方式來確定是否執行BDOF,其他方式此處不一一舉例。
在確定執行BDOF的情況下,繼續執行步驟4。
步驟2:計算當前CU的前後向預測值的水平和豎直的梯度值。
當前CU的前後向預測值的水平梯度值
Figure 02_image007
和豎直的梯度值
Figure 02_image009
包括:對應於第一列表的參考像素值中的像素位置
Figure 02_image011
的水平梯度值
Figure 02_image013
和豎直梯度值
Figure 02_image015
,以及包括對應於第二列表的參考像素值中的像素位置
Figure 02_image011
的水平梯度值
Figure 02_image017
和豎直梯度值
Figure 02_image019
;其中,k依次取0和1;水平梯度值
Figure 02_image007
和豎直梯度值
Figure 02_image009
可以通過以下公式得到:
Figure 02_image021
其中i=0..cuW-1,j=0..cuH-1。
通過該步驟可以得到針對當前圖像塊cuW*cuH的預測矩陣。
步驟4:對當前CU的前後向預測值,及水平和豎直方向的梯度值進行擴展Padding。
由於計算一個4x4子塊的修正運動向量,需要採用其所在6x6區域的前後向預測值
Figure 02_image023
,前後向預測值的水平梯度值
Figure 02_image007
和豎直梯度值和
Figure 02_image009
。而計算6x6區域的梯度值,需要用到8x8區域的前後向預測值。因此,在通過插值濾波器獲得前後向預測值時,需要向四周各擴展2行2列,得到尺寸為(W+4)*(H+4)的預測像素塊,才能計算(W+2)*(H+2)的梯度值,其中W為當前CU的寬度,H為當前CU的高度。為了降低BDOF的複雜度,也可以對CU的邊界進行特殊的處理,具體如下。
首先,按照8階濾波器得到W*H區域的預測值,而只向四周擴展1行1列,通過bilinear濾波器得到擴展區域的預測值,從而獲得(W+2)*(H+2)區域的預測值。
接著,根據(W+2)*(H+2)區域的預測值,按照公式(5),可計算得到W*H區域的梯度值。
最後,按照padding方法,將W*H區域的梯度值向四周擴充,得到(W+2)*(H+2)區域的水平梯度值和豎直梯度值;將W*H區域的預測值向四周擴充,得到(W+2)*(H+2)區域的預測值。
Padding如圖6D所示,採用圖6D的方法進行Padding,得到
Figure 02_image003
Figure 02_image007
Figure 02_image009
,其中i=-1..cuW,j=-1..cuH,即得到(cuW+2)*(cuH+2)的預測矩陣、水平梯度矩陣和豎直梯度矩陣。
步驟5:推導每個4x4子塊的修正運動向量,再進行加權。
對於每個4x4的子塊,按照公式(2-3)得到修正運動向量
Figure 02_image025
,具體來說,每個4x4子塊的修正運動向量
Figure 02_image025
通過將BDOF應用到子塊周邊的6x6窗口Ω,從而最小化L0和L1的預測值得到。具體地,
Figure 02_image025
通過如下公式進行推導。
Figure 02_image027
Figure 02_image029
其中,
Figure 02_image031
為floor函數(floor(A)表示不大於A的最大整數);
Figure 02_image033
,為防止修正運動向量過大導致誤差傳遞的閾值。
Figure 02_image035
Figure 02_image037
。BD為當前的像素位寬。
Figure 02_image039
Figure 02_image041
Figure 02_image043
Figure 02_image045
Figure 02_image047
按照以下公式計算:
Figure 02_image049
其中,
Figure 02_image051
其中,
Figure 02_image001
為當前CU中像素位置(i,j)的前向預測值,即當前CU的對應於第一列表的參考像素值中像素位置(i,j)的像素值;
Figure 02_image053
為當前CU中像素位置
Figure 02_image011
的後向預測值,即當前CU的對應於第二列表的參考像素值中像素位置
Figure 02_image011
的像素值。
根據公式(2-3)得到修正運動向量後,當前圖像塊中各個像素點的最終預測值,即當前圖像塊的預測塊中的像素值,可以按照以下公式確定:
Figure 02_image055
其中shift
Figure 02_image057
Figure 02_image059
Figure 02_image061
Figure 02_image063
為rounding函數(四捨五入)。
Figure 02_image065
為當前圖像像塊的像素位置
Figure 02_image011
的預測像素值。
步驟S601:編碼設備在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定當前圖像塊的預測像素值。
具體地,所述第一處理方式不為BDOF(或稱為基於雙向預測的光流技術(Bi-directional optical flow,BIO),或者稱為基於雙向預測的光流技術(prediction refinement with optical flow,PROF)),也即是說,在當前圖像塊的尺寸為第二預設尺寸的情況下,不允許採用BDOF基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值;當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。所述第二預設尺寸包括8x8(其中前一個8表示當前圖像塊的width為8個像素,後一個8表示當前圖像塊的height為8個像素)、或者4xN(其中4表示當前圖像塊的width為4個像素,N表示當前圖像塊的height為N個像素,其餘尺寸以此類推)、或者8x16、或者16x8,N為2的冪次方且大於或等於8,例如,N可以取16、32、64等值。
本申請實施例中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_L1)預測得到的;例如,基於對應於第一列表(即list0)的第一運動向量(例如,Mv0_L0)能夠確定對應於第一列表(即list0)的參考像素值,基於對應於第二列表(即list1)的第二運動向量(例如,Mv1_L1)能夠確定對應於第二列表(即list1)的參考像素值。
需要說明的是,第一運動向量和第二運動向量在不同幀間預測模式下的確定方式不同,在AMVP模式、merge模式、SKIP模式下分別如何確定第一運動向量和第二運動向量可以參照步驟S600中的描述,此處不再贅述。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。
進一步地,以上所描述的所述第二預設尺寸包括8x8、或者4xN、或者8x16、或者16x8也可以限定為:所述第二預設尺寸為8x8、或者4xN、或者8x16、或者16x8。也即是說,針對以上列舉的8x8、4xN、8x16、16x8這些尺寸中的一種尺寸禁止使用BDOF,也可能針對其中多種尺寸都禁止使用BDOF,下面進行舉例說明。
例1,第二預設尺寸包括(或者為)8x8;即本申請實施例針對8x8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例2,所述第二預設尺寸包括(或者為)4xN;即本申請實施例針對4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例3,所述第二預設尺寸包括(或者為)8x8或者4xN;即本申請實施例針對8x8和4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8和4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例4,所述第二預設尺寸包括(或者為)8x8、4xN、8x16或者16x8,N大於或等於8;即本申請實施例針對8x8、4xN、8x16和16x8都禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8、4xN、8x16和16x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例5,所述第二預設尺寸包括(或者為)Nx8,N大於或者等於4;即本申請實施例針對Nx8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例6,所述第二預設尺寸包括(或者為)Nx8或者4xN,其中,N大於或者等於4;即本申請實施例針對Nx8 或4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8 或4xN的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
另外,由於Mx4尺寸在一些場景中也禁止使用BDOF,因此本申請在對第二預設尺寸禁止使用BDOF的同時,還可以對Mx4禁止使用BDOF,M為大於或等於4的整數。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。應當理解的是,本申請實施例的方法的執行主體可以是圖像預測裝置,例如可以是視訊編碼器或具有視訊編碼功能的電子設備,具體例如可以是視訊編碼器中的幀間預測單元。
在一種可選的方案中,所述採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值,包括:
將對應於第一列表的參考像素值和對應於第二列表的參考像素值中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者
採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值;或者
採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
在本申請實施例中,具體採用加權計算的方式,還是使用MMVD技術,還是使用CIIP技術,都可以通過相應條件來進行判斷決策,或者通過相應指示訊息來指示。可選的,後續編入碼流中的訊息還可以包括目標標識,該目標標識用於指示採用的預測當前塊的預測像素值的方式,例如,該目標標識為mmvd_flag[x0][y0],當mmvd_flag[x0][y0]為預設的某一個數值(如數值1)時,指示對當前圖像塊採用了MMVD方式。
可選的,下面提供一種MMVD的實現方式,如圖6C所示,獲取當前圖像塊的預測運動訊息,假設當前圖像塊的前後向運動向量預測值(即上述對應用於第一列表的運動向量預測值和對應於第二列表的運動向量預測值)分別為MV0(-22,18)和MV1(2,12),前後向運動向量差值分別為MVD0(1,0)和MVD1(-1,0)。
針對當前圖像塊分別進行前後向預測得到當前圖像塊的前向預測塊和後向預測塊。
以MV0(-22,18)和MV1(2,12)作為前後向運動向量預測值的參考輸入,分別對前向參考預測塊q0和後向參考預測塊h0進行第一精度的運動搜索,比如,第一精度為1像素。
以前後向參考預測塊q0和h0分別作為搜索起點進行第一精度的運動搜索,確定每次搜索得到的新前後參考預測塊間的差異,比如前後向參考預測塊周邊8個前後向參考預測塊對間的差異,以及前向參考預測塊q0和後向參考預測塊h0間的差異,假設差異最小的前後參考預測塊的運動向量預測值分別為(-21,18)和(1,12)。更新搜索點為(-21,18)和(1,12)分別對應前向參考預測塊q1和後向參考預測塊h1,繼續執行第一精度的運動搜索。以前後向參考預測塊q1和h1分別作為搜索起點進行第一精度的運動搜索,確定每次搜索得到的前後參考預測塊的差異,比如前後向參考預測塊q1和h1周邊8個前後向參考預測塊對間的差異,以及前向參考預測塊q1和後向參考預測塊h1間的差異,假設差異最小的前後參考預測塊的運動向量預測值分別為(-20,18)和(0,12)。(-21,18)和(1,12)分別對應前向參考預測塊q2和後向參考預測塊h2。
本申請實施例中可以配置第一精度的運動搜索次數,比如1次、兩次等。或者確定運動搜索的範圍。當超出範圍時停止搜索。
以兩次為例,將前向參考預測塊q2的運動向量預測值(-20,18)與MVD0(1,0)求和得到(-19,18),將後向參考預測塊h2的運動向量預測值(0,12)與MVD1求和得到(1,12)。從而基於前向運動向量預測值(-19,18)和後向運動向量預測值(1,12)對當前圖像塊進行預測。圖6C中僅示意1種運動搜索的過程。
需要說明的是,BDOF技術相當於是針對傳統的預測當前圖像塊的像素預測值技術的補丁優化技術,在很多場景下採用BDOF技術可以獲得跟接近於當前圖像塊的真實像素值的像素預測值,因此基於該像素預測值獲得的像素殘差更少,能夠提高編碼效率。以上提及的加權計算的方式可以認為是傳統的獲得當前圖像塊像素預測值的技術,以上提及的MMVD技術、CIIP技術也都可以看做是針對傳統技術的補丁優化技術;在本申請實施例中,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用傳統技術(如加權計算的方式),或者其他補丁優化技術(如MMVD或者CIIP)來確定當前圖像塊的像素預測值,而不是採用BDOF技術,能夠顯著降低編碼複雜度,提高了編碼效率。
步驟S602:編碼設備至少根據所述當前圖像塊的預測像素值,重建所述當前圖像塊。
可以理解,通過上述步驟S600可以獲取的所述當前圖像塊的預測像素值,該步驟中獲取的當前快的預測像素值包括一個或多個子塊的預測像素值,所述一個或多個子塊包括所述當前圖像塊中的當前子塊。子塊大小可以等於當前塊,如果當前塊只包括一個子塊,則等於說子塊大小可以等於當前塊。通過上述步驟S600也可以獲取的所述當前圖像塊的預測像素值。
需要說明的是,本申請實施例還可能會得到當前圖像塊的像素殘差,也可能當前圖像塊的像素殘差為0,例如,針對merge模式和AMVP模式需要得到像素殘差,針對SKIP模式,無需考慮像素殘差,故無需將像素殘差傳入解碼端。
步驟S603:編碼設備將語法元素編入待傳輸的碼流,語法元素至少用於指示採用雙向預測。
具體地,根據幀間預測模式的不同,編入帶傳輸的碼流的語法元素也不相同,例如:
當幀間預測模式為AMVP模式時,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD;所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中,refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。可選的,當基於MMVD技術時,可以只傳一個MVD,解碼端需要用到的另一個方向MVD可以根據傳輸的MVD推導得。
當幀間預測模式為merge模式時,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0=1、predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
在本申請實施例中,所述方法還包括:根據所述當前圖像塊的像素值和當前圖像塊的預測像素值確定像素殘差;這種情況下,所述將語法元素編入待傳輸的碼流,包括:將所述語法元素和所述像素殘差編入待傳輸的碼流。也即是說,編入待傳輸碼流的除了上述語法元素外,還可以包括像素殘差(可以通過殘差計算單元計算得到),這種方案可以應用在AMVP模式,以及merge模式中。另外,還存在不需要在待傳輸碼流中編入像素殘差的情況,例如,SKIP模式中不要在待傳輸的碼流中編入像素殘差。
圖7是示出根據本申請一種實施例的解碼方法的流程流程圖。該流程可由視訊解碼設備來執行,該視訊解碼設備可以為上述視訊解碼器30,也可以為包含該視訊解碼器30的設備,具體的,可以由視訊解碼器30的幀間預測單元(也稱幀間預測器)344,熵解碼單元(也稱熵解碼器)304等來執行。上述流程描述為一系列的步驟或操作,該流程可以以各種順序執行和/或同時發生,不限於圖7所示的執行順序。圖7所示流程的相關描述如下:
步驟S700:解碼設備解析碼流,以得到語法元素,所述語法元素至少用於指示採用雙向預測。
具體地,編碼端編碼過程中採用的幀間預測模式不同,則解碼設備從碼流中解析出的語法元素也可能不同,下面結合AMVP模式、merge模式、SKIP模式進行具體說明。
對於AMVP模式,所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引(例如mvp_lX_flag[ xCb ][ yCb ])用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表(如list0)的第一運動向量預測值和對應於第二列表(如list1)的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD(例如,當只包含一個MVD時,未傳輸的MVD可以根據已傳輸的MVD推導得到);所述第二索引(也稱參考幀索引)用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,例如,第二索引refIdxL0和refIdxL1,其中, refIdxL0為對應於第一列表的第一參考幀的索引,refIdxL1對應於第二列表的第二參考幀的索引。預測方向指示訊息(例如predFlagL0=1、predFlagL1=1)用於指示採用雙向預測。
所述對應於所述第一列表的第一運動向量(如Mv0_L0)是基於所述對應於第一列表的第一運動向量預測值(如Mvp0_L0)和所述對應於第一列表的第一MVD(如MVD0)而得到的,例如,Mv0_L0=Mvp0_L0+MVD0。
所述對應於所述第二列表的第二運動向量(如Mv1_L1)是基於所述對應於第二列表的第二運動向量預測值(如Mvp1_L1)和所述對應於第二列表的第二MVD(如MVD1)而得到的,例如,Mv1_L1=Mvp1_L1+MVD1。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
對於merge模式,所述語法元素包括:目標候選運動訊息的索引(例如merge_idx[ xCb ][ yCb ]),其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息(例如predFlagL0=1、predFlagL1=1),所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表(即list0)的第一運動向量和對應於第二列表(即list1)的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引(例如refIdxL0)和對應於第二列表的第二參考幀的索引(例如refIdxL1)。
本申請實施例中,參考幀索引用於識別指定參考圖像列表(第一列表list0或第二列表list1)中的與所用運動向量(如第一運動向量、第二運動向量)對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
在視訊編碼解碼領域中,幀間預測方式包括前向預測、後向預測和雙向預測(包括前向預測和後向預測),編碼端採用哪種預測方式通常會通過預測方向指示訊息來表示;例如,預測方向指示訊息可以包括語法元素predFlagL0和predFlagL1,當predFlagL0=1、predFlagL1=1時,其指示採用雙向預測;當predFlagL0=1、predFlagL1=0時,其指示採用前向預測;當predFlagL0=0、predFlagL1=1時,其指示採用後向預測;可以理解的是,「前向」和「後向」分別對應於當前圖像的參考圖像列表0(list0,即上文的第一列表)和參考圖像列表1(list1,即上文的第二列表)。
對於SKIP模式,所述語法元素包含的內容與merge模式下語法元素包含的內容相同,不同之處在於skip 模式不需要傳輸像素殘差。
在本申請實施例中,一種情況下,會從碼流中解析出上述語法元素和像素殘差,例如,針對AMVP模式和merge模式;另一種情況下,會從碼流中解析出上述語法元素,但不會解析出像素殘差,例如,針對SKIP模式。
解析碼流之後,先判斷是否滿足多個預設條件,若滿足所述多個或所有的預設條件,跳到S701;若否,跳到S702,針對若否的情況,這裡僅以S702的情況為代表詳細說明,針對與現有技術相同的情況,本申請對此不做贅述。
步驟S701:解碼設備在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值。
其中,基於雙向預測的光流技術(Bi-directional optical flow,BDOF)可以簡稱為BIO或者BDOF。
所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。例如,假若當前圖像塊的尺寸為8x8,那麼其中前一個8表示當前圖像塊的width為8個像素,後一個8表示當前圖像塊的height為8個像素;再如,如果當前圖像塊的尺寸為8x16,那麼其中8表示當前圖像塊的width為8個像素,16表示當前圖像塊的height為16個像素,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8;
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A至J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在解碼過程中,指當前正在解碼的圖像塊(decoding block)。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
應當理解的是,本申請實施例的方法的執行主體可以是圖像預測裝置,例如可以是視訊解碼器或具有視訊解碼功能的電子設備,具體例如可以是視訊解碼器中的運動補償單元。
也即是說,本方案中使用BDOF技術的條件,與現有技術中使用BDOF技術的條件不同,尤其是對於當前圖像塊的尺寸要求不同。針對第一預設尺寸的當前圖像塊使用BDOF技術,既能夠獲得更接近實際像素值的像素預測值,又能夠適當控制編碼複雜度,提高了編碼效率。
在本申請實施例中,所述解碼設備在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,可以具體為:解碼設備在滿足多個預設條件的情況下,基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值,對當前圖像塊進行基於雙向預測的光流技術BDOF處理。
本申請實施例中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_L1)預測得到的;例如,基於對應於第一列表(即list0)的第一運動向量(例如,Mv0_L0)能夠確定對應於第一列表(即list0)的參考像素值,基於對應於第二列表(即list1)的第二運動向量(例如,Mv1_ 1)能夠確定對應於第二列表(即list1)的參考像素值。
可以理解,幀間預測模式不同則獲取對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_L1)的方式不同。具體採用什麼幀間預測模式可以通過模式選擇單元來進行選擇,下面例舉AMVP模式、merge模式和SKIP模式下分別如何確定第一運動向量和第二運動向量
可能情況一,幀間預測模式為AMVP模式的情況下:
首先,解碼設備構建候選運動向量預測值MVP列表。
具體地,解碼設備通過幀間預測單元(也稱幀間預測模組)來構建候選運動向量預測值MVP列表(也稱候選運動向量列表),構建的候選運動向量預測值MVP列表可以為三元組的候選運動向量預測值MVP列表,也可以為二元組的候選運動向量預測值MVP列表。本申請實施例中,解碼設備採用雙向預測的方式進行幀間預測。
然後,解碼設備根據目標候選運動訊息對應的索引從MVP列表中確定目標候選運動訊息。
具體地,該目標候選運動訊息也可以稱為最優候選運動向量,或者有其他名稱。
接著,根據目標候選運動訊息確定第一運動向量和第二運動向量。其中目標候選運動訊息包括對應於所述第一列表(即list0)的第一運動向量預測值(例如,Mvp0_L0)和對應於所述第二列表(即list1)預測值(例如,Mvp1_L1),例如,可以根據第一運動向量預測值Mvp0_L0與運動向量差MVD0之和得到(前向)對應於第一列表(list0)的第一運動向量Mv0_L0;同理可以根據第二運動向量預測值Mvp1_L1與運動向量差MVD1之和得到第二運動向量Mv1_L1;可選的,這裡對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)也可以表述為對應於第一方向(如前向)的第一運動向量,對應於所述第二列表(即list1)的第二運動向量(例如,Mvp_L1)也可以表述為對應於第二方向(如後向)的第二運動向量。
可能情況二,幀間預測模式為merge模式的情況下:
首先,解碼設備構建候選運動訊息列表。
具體地,解碼設備通過幀間預測單元(也稱幀間預測模組)來構建候選運動訊息列表(也稱候選運動向量列表)。
之後,解碼設備根據目標候選運動訊息對應的索引從候選運動訊息列表中確定目標候選運動訊息。
具體地,所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引和對應於第二列表的第二參考幀的索引。
該目標候選運動訊息也可以稱為最優候選運動訊息,或者有其他名稱。
可能情況三,幀間預測模式為SKIP模式的情況下。相關描述可以參照以上情況二中針對merge模式的描述,與merge模式的區別在於skip 模式不需要傳輸像素殘差。
參見圖6B所示,本申請實施例涉及的當前圖像塊所屬的當前圖像存在一前一後的兩個參考圖像,分別為第一參考圖像(比如前向參考圖像,或者說前向參考幀,這裡的前向也可以稱為第一方向)和第二參考圖像(比如後向參考圖像,或者說後向參考幀,這裡的後向也可以稱為第一方向)。上述對應於第一列表的參考像素值即為該第一參考圖像上的參考像素值,上述對應於第二列表的參考像素值即為該第二參考圖像上的參考像素值。
可選的,採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值可以包括:採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值推導當前圖像塊中每個子塊的修正運動向量,然後每個子塊基於修正後的運動向量進行運動補償,得到每個子塊的預測像素值,從而得到當前塊的預測像素值。為了便於理解,下面進行舉例說明。
對應於第一列表(list0)的參考像素值中的像素可以表述為
Figure 02_image001
,對應於第二列表(list1)的參考像素值中的像素值可以表述為
Figure 02_image053
,兩者可以統稱為前後向預測值
Figure 02_image003
,i=0..cuW-1, j=0..cuH-1,k可以取0和1。其中,
Figure 02_image003
可以通過8階插值濾波器進行插值得到,其他位置像素值(擴展1行1列位置)通過bilinear插值濾波器插值得到;需要說明的是,擴展區域的像素值也可以採用其他方法獲得,如同樣採用8階插值濾波器,或者直接採用整像素位置的參考像素值,在此不做限定。其中,cuW以及cuH分別為當前圖像塊的寬和高。採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值可以具體包括如下步驟:
步驟1,計算對應於第一列表的參考像素值的像素值與對應於第二列表的參考像素值的像素值之間的絕對誤差和SAD,判斷SAD是否小於閾值TH_CU,若小於,則不執行BDOF。否則,執行BDOF。本步驟為可選。
SAD計算公式如下:
Figure 02_image005
閾值TH_CU可以設置為(1<<(BD – 8 + shift))*cuW*cuH,shift為Max(2, 14 − BD )。
或者TH_CU可以設置為1<<(BD – 3 + shift)。
可選的,也可以通過其他方式來確定是否執行BDOF,其他方式此處不一一舉例。
在確定執行BDOF的情況下,繼續執行步驟4。
步驟2:計算當前CU的前後向預測值的水平和豎直的梯度值。
當前CU的前後向預測值的水平梯度值
Figure 02_image007
和豎直的梯度值
Figure 02_image009
包括:對應於第一列表的參考像素值中的像素位置
Figure 02_image011
的水平梯度值
Figure 02_image013
和豎直梯度值
Figure 02_image015
,以及包括對應於第二列表的參考像素值中的像素位置(i,j)的水平梯度值
Figure 02_image017
和豎直梯度值
Figure 02_image019
;其中,k依次取0和1;水平梯度值
Figure 02_image007
和豎直梯度值
Figure 02_image009
可以通過以下公式得到:
Figure 02_image021
其中i=0..cuW-1,j=0..cuH-1。
通過該步驟可以得到針對當前圖像塊cuW*cuH的預測矩陣。
步驟4:對當前CU的前後向預測值,及水平和豎直方向的梯度值進行擴展Padding。
由於計算一個4x4子塊的修正運動向量,需要採用其所在6x6區域的前後向預測值
Figure 02_image023
,前後向預測值的水平梯度值
Figure 02_image007
和豎直梯度值和
Figure 02_image009
。而計算6x6區域的梯度值,需要用到8x8區域的前後向預測值。因此,在通過插值濾波器獲得前後向預測值時,需要向四周各擴展2行2列,得到尺寸為(W+4)*(H+4)的預測像素塊,才能計算(W+2)*(H+2)的梯度值,其中W為當前CU的寬度,H為當前CU的高度。為了降低BDOF的複雜度,也可以對CU的邊界進行特殊的處理,具體如下。
首先,按照8階濾波器得到W*H區域的預測值,而只向四周擴展1行1列,通過bilinear濾波器得到擴展區域的預測值,從而獲得(W+2)*(H+2)區域的預測值。
接著,根據(W+2)*(H+2)區域的預測值,按照公式(5),可計算得到W*H區域的梯度值。
最後,按照padding方法,將W*H區域的梯度值向四周擴充,得到(W+2)*(H+2)區域的水平梯度值和豎直梯度值;將W*H區域的預測值向四周擴充,得到(W+2)*(H+2)區域的預測值。
Padding如圖6D所示,採用圖6D的方法進行Padding,得到
Figure 02_image003
Figure 02_image007
Figure 02_image009
,其中i=-1..cuW,j=-1..cuH,即得到(cuW+2)*(cuH+2)的預測矩陣、水平梯度矩陣和豎直梯度矩陣。
步驟5:推導每個4x4子塊的修正運動向量,再進行加權。
對於每個4x4的子塊,按照公式(2-3)得到修正運動向量
Figure 02_image025
,具體來說,每個4x4子塊的修正運動向量
Figure 02_image025
通過將BDOF應用到子塊周邊的6x6窗口Ω,從而最小化L0和L1的預測值得到。具體地,
Figure 02_image025
通過如下公式進行推導。
Figure 02_image027
Figure 02_image029
其中,
Figure 02_image031
為floor函數(floor(A)表示不大於A的最大整數);
Figure 02_image033
,為防止修正運動向量過大導致誤差傳遞的閾值。
Figure 02_image035
Figure 02_image037
。BD為當前的像素位寬。
Figure 02_image039
Figure 02_image041
Figure 02_image043
Figure 02_image045
Figure 02_image047
按照以下公式計算:
Figure 02_image049
其中,
Figure 02_image051
其中,
Figure 02_image001
為當前CU中像素位置
Figure 02_image011
的前向預測值,即當前CU的對應於第一列表的參考像素值中像素位置
Figure 02_image011
的像素值;
Figure 02_image053
為當前CU中像素位置
Figure 02_image011
的後向預測值,即當前CU的對應於第二列表的參考像素值中像素位置
Figure 02_image011
的像素值。
根據公式(2-3)得到修正運動向量後,當前圖像塊中各個像素點的最終預測值,即當前圖像塊的預測塊中的像素值,可以按照以下公式確定:
Figure 02_image055
其中shift
Figure 02_image057
Figure 02_image059
Figure 02_image061
Figure 02_image063
為rounding函數(四捨五入)。
Figure 02_image065
為預測塊中像素位置
Figure 02_image011
的像素值。
步驟S702:解碼設備在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定當前圖像塊的預測像素值。
具體地,所述第一處理方式不為BDOF(或稱為基於雙向預測的光流技術(Bi-directional optical flow,BIO),或者稱為基於雙向預測的光流技術(prediction refinement with optical flow,PROF)),也即是說,在當前圖像塊的尺寸為第二預設尺寸的情況下,不允許採用BDOF基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值;當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。所述第二預設尺寸包括8x8(其中前一個8表示當前圖像塊的width為8個像素,後一個8表示當前圖像塊的height為8個像素)、或者4xN(其中4表示當前圖像塊的width為4個像素,N表示當前圖像塊的height為N個像素,其餘尺寸以此類推)、或者8x16、或者16x8,N為2的冪次方且大於或等於8,例如,N可以取16、32、64等值。
本申請實施例中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表(即list0)的第一運動向量(例如,Mv0_L0)和對應於所述第二列表(即list1)的第二運動向量(例如,Mv1_L1)預測得到的;例如,基於對應於第一列表(即list0)的第一運動向量(例如,Mv0_L0)能夠確定對應於第一列表(即list0)的參考像素值,基於對應於第二列表(即list1)的第二運動向量(例如,Mv1_L1)能夠確定對應於第二列表(即list1)的參考像素值。
需要說明的是,第一運動向量和第二運動向量在不同幀間預測模式下的確定方式不同,在AMVP模式、merge模式、SKIP模式下分別如何確定第一運動向量和第二運動向量可以參照步驟S701中的描述,此處不再贅述。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。
進一步地,以上所描述的所述第二預設尺寸包括8x8、或者4xN、或者8x16、或者16x8也可以限定為:所述第二預設尺寸為8x8、或者4xN、或者8x16、或者16x8。也即是說,針對以上列舉的8x8、4xN、8x16、16x8這些尺寸中的一種尺寸禁止使用BDOF,也可能針對其中多種尺寸都禁止使用BDOF,下面進行舉例說明。
例1,第二預設尺寸包括(或者為)8x8;即本申請實施例針對8x8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例2,所述第二預設尺寸包括(或者為)4xN;即本申請實施例針對4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例3,所述第二預設尺寸包括(或者為)8x8或者4xN;即本申請實施例針對8x8和4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8和4xN中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,N大於或等於8。
例4,所述第二預設尺寸包括(或者為)8x8、4xN、8x16或者16x8,N大於或等於8;即本申請實施例針對8x8、4xN、8x16和16x8都禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為8x8、4xN、8x16和16x8中任意一種的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例5,所述第二預設尺寸包括(或者為)Nx8,N大於或者等於4;即本申請實施例針對Nx8禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
例6,所述第二預設尺寸包括(或者為)Nx8或者4xN,其中,N大於或者等於4;即本申請實施例針對Nx8或4xN禁止使用BDOF,這種情況下,所述在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,可以具體表述為:在當前圖像塊的尺寸為Nx8 或4xN的情況下,採用第一處理方式基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
另外,由於Mx4尺寸在一些場景中也禁止使用BDOF,因此本申請在對第二預設尺寸禁止使用BDOF的同時,還可以對Mx4禁止使用BDOF,M為大於或等於4的整數。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。應當理解的是,本申請實施例的方法的執行主體可以是圖像預測裝置,例如可以是視訊編碼器或具有視訊編碼功能的電子設備,具體例如可以是視訊編碼器中的幀間預測單元。
在一種可選的方案中,所述採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值,包括:
將對應於第一列表的參考像素值和對應於第二列表的參考像素值中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者
採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值;或者
採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值,或者
採用解碼端運動向量精細化DMVR技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
在本申請實施例中,具體採用加權計算的方式,還是使用MMVD技術,還是使用CIIP技術,還是採用DMVR都可以通過相應條件來進行判斷決策,或者通過相應指示訊息來指示。
在本申請實施例中,具體採用加權計算的方式,還是使用MMVD技術,還是使用CIIP技術,都可以通過相應條件來進行判斷決策,或者通過相應指示訊息來指示。可選的,後續編入碼流中的訊息還可以包括目標標識,該目標標識用於指示採用的預測當前塊的預測像素值的方式,例如,該目標標識為mmvd_flag[x0][y0],當mmvd_flag[x0][y0]為預設的某一個數值(如數值1)時,指示對當前圖像塊採用了MMVD方式。
可選的,下面提供一種MMVD的實現方式,如圖6C所示,獲取當前圖像塊的預測運動訊息,假設當前圖像塊的前後向運動向量預測值(即上述對應用於第一列表的運動向量預測值和對應於第二列表的運動向量預測值)分別為MV0(-22,18)和MV1(2,12),前後向運動向量差分別為MVD0(1,0)和MVD1(-1,0)。
針對當前圖像塊分別進行前後向預測得到當前圖像塊的前向預測塊和後向預測塊。
以MV0(-22,18)和MV1(2,12)作為前後向運動向量預測值的參考輸入,分別對前向參考預測塊q0和後向參考預測塊h0進行第一精度的運動搜索,比如,第一精度為1像素。
以前後向參考預測塊q0和h0分別作為搜索起點進行第一精度的運動搜索,確定每次搜索得到的新前後參考預測塊間的差異,比如前後向參考預測塊周邊8個前後向參考預測塊對間的差異,以及前向參考預測塊q0和後向參考預測塊h0間的差異,假設差異最小的前後參考預測塊的運動向量預測值分別為(-21,18)和(1,12)。更新搜索點為(-21,18)和(1,12)分別對應前向參考預測塊q1和後向參考預測塊h1,繼續執行第一精度的運動搜索。以前後向參考預測塊q1和h1分別作為搜索起點進行第一精度的運動搜索,確定每次搜索得到的前後參考預測塊的差異,比如前後向參考預測塊q1和h1周邊8個前後向參考預測塊對間的差異,以及前向參考預測塊q1和後向參考預測塊h1間的差異,假設差異最小的前後參考預測塊的運動向量預測值分別為(-20,18)和(0,12)。(-21,18)和(1,12)分別對應前向參考預測塊q2和後向參考預測塊h2。
本申請實施例中可以配置第一精度的運動搜索次數,比如1次、兩次等。或者確定運動搜索的範圍。當超出範圍時停止搜索。
以兩次為例,將前向參考預測塊q2的運動向量預測值(-20,18)與MVD0(1,0)求和得到(-19,18),將後向參考預測塊h2的運動向量預測值(0,12)與MVD1求和得到(1,12)。從而基於前向運動向量預測值(-19,18)和後向運動向量預測值(1,12)對當前圖像塊進行預測。圖6C中僅示意1種運動搜索的過程。
需要說明的是,BDOF技術相當於是針對傳統的預測當前圖像塊的像素預測值技術的補丁優化技術,在很多場景下採用BDOF技術可以獲得跟接近於當前圖像塊的真實像素值的像素預測值,因此基於該像素預測值獲得的像素殘差更少,能夠提高編碼效率。以上提及的加權計算的方式可以認為是傳統的獲得當前圖像塊像素預測值的技術,以上提及的MMVD技術、CIIP技術也都可以看做是針對傳統技術的補丁優化技術;在本申請實施例中,在當前圖像塊的尺寸為第二預設尺寸的情況下,採用傳統技術(如加權計算的方式),或者其他補丁優化技術(如MMVD或者CIIP)來確定當前圖像塊的像素預測值,而不是採用BDOF技術,能夠顯著降低編碼複雜度,提高了編碼效率。
步驟S703:解碼設備至少根據當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
例如,針對AMVP模式和merge模式,將像素殘差與當前快的像素預測值相加得到當前快的像素值;針對SKIP模式,則在確定當前塊的像素值時不需要像素殘差。
圖8為本申請實施例中的幀間預測裝置80的一種示意性方塊圖。需要說明的是,幀間預測裝置80既適用於解碼視訊圖像的幀間預測,也適用於編碼視訊圖像的幀間預測,應當理解的是,這裡的幀間預測裝置80可以對應於圖2中的幀間預測單元244,或者可以對應於圖3中的幀間預測單元344,該幀間預測裝置80可以包括:
判斷單元801,用於判斷當前圖像塊是否滿足多個預設條件;
幀間預測處理單元802,用於在滿足所述多個預設條件的情況下,對所述當前圖像塊進行基於雙向預測的光流技術BDOF(Bi-directional optical flow,可以簡稱為BIO或者BDOF)處理,以得到所述當前圖像塊的預測像素值,所述多個預設條件至少包括所述當前圖像塊的尺寸滿足第一預設尺寸,當前圖像塊的尺寸通常通過width和height表示,簡寫為WxH,width和height的單位是像素(sample或pixel)。例如,假若當前圖像塊的尺寸為8x8,那麼其中前一個8表示當前圖像塊的width為8個像素,後一個8表示當前圖像塊的height為8個像素;再如,如果當前圖像塊的尺寸為8x16,那麼其中8表示當前圖像塊的width為8個像素,16表示當前圖像塊的height為16個像素,其中:
所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,在所述當前圖像塊的寬W與高H的乘積等於64的情況下,所述寬W不等於所述高H;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括(或者為):所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8;
或者所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於8,以及,所述當前圖像塊的寬W大於或等於8。
需要說明的是,在決定是否採用BDOF技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值確定(或者預測得到)所述當前圖像塊中的當前子塊的預測像素值之前,參照的條件除了有該當前圖像塊的尺寸之外,還可能有其他參照條件,其他參照條件此處不作限定,為了便於理解,下面進行舉例說明。
條件A:存在高層語法標識sps_bdof_enabled_flag指示當前視訊序列允許使用BDOF技術。
條件B:第一列表(List1)對應的預測方向指示訊息predFlagL0=1,以及第二列表(list0)對應的預測方向指示訊息predFlagL1=1。
條件C:對應於第一列表(list0)的參考幀的圖像順序計數號POC_L0、對應於第二列表(list1)的參考幀的圖像順序計數號POC_L1和所述當前圖像塊所在圖像的順序計數號POC_Cur滿足如下關係:(POC_L0 – POC_Cur) * (POC_L1 – POC_Cur) < 0,也即是說,當前圖像塊所在的圖像在兩個參考圖像之間。
條件D:MotionModelIdc[ xCb ][ yCb ]為0。MotionModelIdc為運動補償的運動模型索引,值為0表示當前塊運動補償的運動模型為平動模型(Translational motion)。
條件E:merge_subblock_flag[ x0 ][ y0 ]為0。當前塊不使用子塊融合模式。
條件F:sym_mvd_flag[ x0 ][ y0 ]為0。表示當前塊需要執行mvd_coding(x0, y0, refList ,cpIdx)。
條件G:BcwIdx[ xCb ][ yCb ]為0。BcwIdx為雙向預測的權重索引。
條件H:cIdx為0。cIdx指示當前圖像塊顏色分類的索引。
條件I:當前圖像塊的尺寸為第一預設尺寸。
條件J:luma_weight_l0_flag[ refIdxL0 ] 和luma_weight_l1_flag[ refIdxL1 ] 均為0。luma_weight_l0_flag表示基於list0預測的亮度分量的加權因子不存在,luma_weight_l1_flag表示基於list1預測的亮度分量的加權因子不存在。
例如,當上述條件A-J都滿足時,則判斷可以採用BDOF技術預測當前圖像塊的預測像素值,例如,將bdofFlag設置為等於TURE。需要說明的是,以上條件只是舉例,還可能增加其他條件,或者以上條件中有某個或某些條件被替換的可能性,或者以上條件中的某個或某些條件存在被去掉的可能性。
應當理解的是,這裡的當前圖像塊(也稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block)。當然,這裡的當前圖像塊也可以理解為當前正在處理的圖像塊。例如在解碼過程中,指當前正在解碼的圖像塊(decoding block)。
可以理解,參照上述案例還可以變換出其他案例,其他案例同樣落入本申請保護範圍。
應當理解的是,本申請實施例的方法的執行主體可以是視訊編碼器,或具有視訊編碼功能的電子設備,或者視訊編碼器,或具有視訊編碼功能的電子設備。例如,可以具體為這些器件中的幀間預測單元。
需要說明的是,以上幀間預測裝置80中的判斷單元801和預測處理單元802的具體實現還可以對應參照以上圖6A、圖7所示方法實施例中相關的描述。
以上方法流程的步驟中,步驟的描述順序並不代表步驟的執行順序,按照以上的描述順序來執行是可行的,不按照以上的描述順序來執行也是可行的。
本領域技術人員能夠領會,結合本文公開描述的各種說明性邏輯框、模組和算法步驟所描述的功能可以硬體、軟體、韌體或其任何組合來實施。如果以軟體來實施,那麼各種說明性邏輯框、模組、和步驟描述的功能可作為一或多個指令或代碼在電腦可讀媒體上儲存或傳輸,且由基於硬體的處理單元執行。電腦可讀媒體可包含電腦可讀儲存媒體,其對應於有形媒體,例如數據儲存媒體,或包括任何促進將電腦程序從一處傳送到另一處的媒體(例如,根據通信協議)的通信媒體。以此方式,電腦可讀媒體大體上可對應於(1)非暫時性的有形電腦可讀儲存媒體,或(2)通信媒體,例如信號或載波。數據儲存媒體可為可由一或多個電腦或一或多個處理器存取以檢索用於實施本申請中描述的技術的指令、代碼和/或數據結構的任何可用媒體。電腦程序產品可包含電腦可讀媒體。
作為實例而非限制,此類電腦可讀儲存媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光碟儲存裝置、磁碟儲存裝置或其它磁性儲存裝置、快閃記憶體或可用來儲存指令或數據結構的形式的所要程序代碼並且可由電腦存取的任何其它媒體。並且,任何連接被恰當地稱作電腦可讀媒體。舉例來說,如果使用同軸纜線、光纖纜線、雙絞線、數位訂戶線(DSL)或例如紅外線、無線電和微波等無線技術從網站、服務器或其它遠程源傳輸指令,那麼同軸纜線、光纖纜線、雙絞線、DSL或例如紅外線、無線電和微波等無線技術包含在媒體的定義中。但是,應理解,所述電腦可讀儲存媒體和數據儲存媒體並不包括連接、載波、信號或其它暫時媒體,而是實際上針對於非暫時性有形儲存媒體。如本文中所使用,磁碟和光碟包含壓縮光碟(CD)、激光光碟、光學光碟、數位多功能光碟(DVD)和藍光光碟,其中磁碟通常以磁性方式再現數據,而光碟利用激光以光學方式再現數據。以上各項的組合也應包含在電腦可讀媒體的範圍內。
可通過例如一或多個數位信號處理器(DSP)、通用微處理器、專用積體電路(ASIC)、現場可編程邏輯陣列(FPGA)或其它等效積體或離散邏輯電路等一或多個處理器來執行指令。因此,如本文中所使用的術語「處理器」可指前述結構或適合於實施本文中所描述的技術的任一其它結構中的任一者。另外,在一些方面中,本文中所描述的各種說明性邏輯框、模組、和步驟所描述的功能可以提供於經配置以用於編碼和解碼的專用硬體和/或軟體模組內,或者併入在組合編解碼器中。而且,所述技術可完全實施於一或多個電路或邏輯元件中。
本申請的技術可在各種各樣的裝置或設備中實施,包含無線手持機、積體電路(IC)或一組IC(例如,晶片組)。本申請中描述各種組件、模組或單元是為了強調用於執行所揭示的技術的裝置的功能方面,但未必需要由不同硬體單元實現。實際上,如上文所描述,各種單元可結合合適的軟體和/或韌體組合在編碼解碼器硬體單元中,或者通過互操作硬體單元(包含如上文所描述的一或多個處理器)來提供。
以上所述,僅為本申請示例性的具體實施方式,但本申請的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本申請揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本申請的保護範圍之內。因此,本申請的保護範圍應該以申請專利範圍的保護範圍為準。
10:視訊編碼及解碼系統 12:源設備 13:連結 14:目的地設備 16:圖片源 17:原始圖片數據 18:圖片預處理器 19:圖片數據 20:編碼器 21:經編碼圖片數據 22、28:通信界面 30:解碼器 31:經解碼圖片 32:圖片後處理器 33:經後處理圖片數據 34:顯示設備 40:視訊譯碼系統 41:成像設備 42:天線 43:處理器 44:記憶體 45:顯示設備 46:處理電路 47:邏輯電路 201:圖片 202、302:輸入 203:圖像塊 204:殘差計算單元 205:殘差塊 206:變換處理單元 207:變換係數 208:量化單元 209:量化變換係數 210、310:逆量化單元 211、311:反量化係數 212、312:逆變換處理單元 213、313:重建殘差塊/逆變換塊/逆變換殘差塊 214、314:重構單元 215、315:重構塊 216、316:緩衝器 217、317:參考樣本 220、320:環路濾波器 221、321:濾波塊 230、330:解碼圖像緩衝器 231、331:經解碼圖片的參考圖片數據 244、344:幀間預測單元 245、255、265、345、355、365:預測塊 254、354:幀內預測單元 260:預測處理單元 262:模式選擇單元 270:熵編碼單元 272:輸出 304:熵解碼單元 309:量化係數 310:逆量化單元 332:輸出 360:預測處理單元 362:模式選擇單元 400:視訊譯碼設備/視訊編碼設備/視訊解碼設備 410:入口埠 420:接收器/接收單元 430、510:處理器 440:發射器/發送器 450:出口埠 460、530:記憶體 470:編碼/解碼模組 500:裝置/設備 531:數據 533:操作系統 535:應用程式 550:匯流排系統 570:顯示器 Fr1、Fr2:參考塊 Fc:當前編碼塊 A0、A1、B、B’、B0、B1、B2:塊 T、C:位置 MV0:前向運動向量 MV1:後向運動向量 Cur:當前編碼幀 Ref0:前向參考幀 Ref1:後向參考幀 S600、S601、S602、S603、S700、S701、S702、S703:步驟 80:幀間預測裝置 801:判斷單元 802:預測處理單元
為了更清楚地說明本申請實施例或背景技術中的技術方案,下面將對本申請實施例或背景技術中所需要使用的附圖進行說明。 圖1A是用於實現本申請實施例的視訊編碼及解碼系統實例的方塊圖。 圖1B是用於實現本申請實施例的視訊譯碼系統實例的方塊圖。 圖2是用於實現本申請實施例的編碼器實例結構的方塊圖。 圖3是用於實現本申請實施例的解碼器實例結構的方塊圖。 圖4是用於實現本申請實施例的視訊譯碼設備實例的方塊圖。 圖5是用於實現本申請實施例的另一種編碼裝置或解碼裝置實例的方塊圖。 圖5A為本申請實施例中的一種當前圖像塊和參考塊的運動訊息示意圖。 圖5B為本申請實施例中的一種幀間預測的場景示意圖。 圖5C為本申請實施例中的一種幀間相鄰塊的場景示意圖。 圖6A是本申請實施例提供的一種編碼方法的流程示意圖。 圖6B是用於實現本申請實施例的前後向參考圖像示意圖。 圖6C是用於實現本申請實施例的運動向量精細化過程示意圖。 圖6D是本申請實施例提供的一種擴展padding方式的場景示意圖。 圖7是本申請實施例提供的一種解碼方法的流程示意圖。 圖8是本申請實施例提供的一種幀間預測裝置的結構示意圖。
S600、S601、S602、S603:步驟

Claims (43)

  1. 一種編碼方法,包括:在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列 表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;至少根據所述當前圖像塊的預測像素值,得到所述當前圖像塊的重建像素值;將與所述當前圖像塊相關的語法元素編入待傳輸的碼流,所述語法元素至少用於指示採用雙向預測;其中:W和H為2n,n為整數。
  2. 如請求項1所述的方法,其中所述語法元素包括:目標候選運動訊息的索引,其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀。
  3. 如請求項1所述的方法,其中所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引用於指示目標候選運動向量預測值,所述目標候選運 動向量預測值包括所述對應於第一列表的第一運動向量預測值和對應於第二列表的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD;所述第二索引用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,所述預測方向指示訊息用於指示採用雙向預測;所述對應於所述第一列表的第一運動向量是基於所述對應於第一列表的第一運動向量預測值和所述對應於第一列表的第一MVD而得到的;所述對應於所述第二列表的第二運動向量是基於所述對應於第二列表的第二運動向量預測值和所述對應於第二列表的第二MVD而得到的。
  4. 如請求項1-3任一項所述的方法,還包括:根據所述當前圖像塊的像素值和當前圖像塊的預測像素值確定像素殘差;其中所述將語法元素編入待傳輸的碼流,包括:將所述語法元素和所述像素殘差編入待傳輸的碼流。
  5. 一種編碼方法,包括:在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定當前圖像塊的預測像素值,所述第一處理方式不為基於雙向預測的光流技術BDOF;其中,所述對應於第一列表的參 考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表的第一運動向量和對應於所述第二列表的第二運動向量預測得到的;所述第二預設尺寸包括8x8;或者所述第二預設尺寸包括4xN,N大於或等於8;或者所述第二預設尺寸包括8x8或者4xN,N大於或等於8;或者所述第二預設尺寸包括8x8、4xN、8x16或者16x8,N大於或等於8;或者所述第二預設尺寸包括Nx8,N大於或等於4;或者所述第二預設尺寸包括Nx8、4xN,N大於或等於4;在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx); 所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;至少根據所述當前圖像塊的預測像素值,得到所述當前圖像塊的重建像素值;將與所述當前圖像塊相關的語法元素編入待傳輸的碼流,所述語法元素至少用於指示採用雙向預測;其中:W和H為2n,n為整數。
  6. 如請求項5所述的方法,其中所述採用第一處理方式基於對應於第一列表的參考像素和對應於第二列表的參考像素確定所述當前圖像塊的預測像素值,包括:將對應於第一列表的參考像素值和對應於第二列表的參考像素值中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值;或者採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
  7. 如請求項5或6所述的方法,其中所述語法元素包括:目標候選運動訊息的索引,其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引和對應於第二列表的第二參考幀的索引。
  8. 如請求項5-或6所述的方法,其中所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD, 所述第一索引用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表的第一運動向量預測值和對應於第二列表的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD;所述第二索引用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,所述預測方向指示訊息用於指示採用雙向預測;所述對應於所述第一列表的第一運動向量是基於所述對應於第一列表的第一運動向量預測值和所述對應於第一列表的第一MVD而得到的;所述對應於所述第二列表的第二運動向量是基於所述對應於第二列表的第二運動向量預測值和所述對應於第二列表的第二MVD而得到的。
  9. 如請求項5-8任一項所述的方法,還包括:根據所述當前圖像塊的像素值和當前圖像塊的預測像素值確定像素殘差;其中所述將語法元素編入待傳輸的碼流,包括:將所述語法元素和所述像素殘差編入待傳輸的碼流。
  10. 一種解碼方法,包括:解析碼流,以得到與當前圖像塊相關的語法元素,所述語法元素至少用於指示採用雙向預測; 在滿足多個預設條件的情況下,對所述當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述 當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的重建的像素值;其中:W和H為2n,n為整數。
  11. 如請求項10所述的方法,其中所述語法元素包括:目標候選運動訊息的索引,其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀。
  12. 如請求項10所述的方法,其中所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表的第一運動向量預測值和對應於第二列表的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD; 所述第二索引用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,所述預測方向指示訊息用於指示採用雙向預測;所述對應於所述第一列表的第一運動向量是基於所述對應於第一列表的第一運動向量預測值和所述對應於第一列表的第一MVD而得到的;所述對應於所述第二列表的第二運動向量是基於所述對應於第二列表的第二運動向量預測值和所述對應於第二列表的第二MVD而得到的。
  13. 如請求項10-12任一項所述的方法,其中所述解析碼流,以得到語法元素,包括:解析碼流,以得到像素殘差和所述語法元素;所述至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的重建的像素值,包括:根據所述像素殘差和所述當前圖像塊的預測像素值確定所述當前圖像塊的重建的像素值。
  14. 一種解碼方法,包括:解析碼流,以得到與當前圖像塊相關的語法元素,所述語法元素至少用於指示採用雙向預測;在所述當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值,所述第一處理方式不為基於雙向預測的光流技術BDOF;其中,所述對應於第一 列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表的第一運動向量和對應於所述第二列表的第二運動向量預測得到的;所述第二預設尺寸包括8x8;或者所述第二預設尺寸包括4xN,N大於或等於8;或者所述第二預設尺寸包括8x8或者4xN,N大於或等於8;或者所述第二預設尺寸包括8x8、4xN、8x16或者16x8,N大於或等於8;或者所述第二預設尺寸包括Nx8,N大於或等於4;或者所述第二預設尺寸包括Nx8、4xN,N大於或等於4;在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx); 所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的重建的像素值;其中:W和H為2n,n為整數。
  15. 如請求項14所述的方法,其中所述採用第一處理方式基於對應於第一列表的參考像素和對應於第二列表的參考像素預測得到所述當前圖像塊的預測像素值,包括:將對應於第一列表的參考像素和對應於第二列表的參考像素 中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素和所述對應於第二列表的參考像素預測得到所述當前圖像塊的預測像素值;或者採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素和所述對應於第二列表的參考像素預測得到所述當前圖像塊的預測像素值,或者採用解碼端運動向量精細化DMVR技術基於所述對應於第一列表的參考像素和所述對應於第二列表的參考像素預測得到所述當前圖像塊的預測像素值。
  16. 如請求項14或15所述的方法,其中所述語法元素包括:目標候選運動訊息的索引,其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀。
  17. 如請求項14或15所述的方法,其中所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD, 所述第一索引用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表的第一運動向量預測值和對應於第二列表的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD;所述第二索引用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,所述預測方向指示訊息用於指示採用雙向預測;所述對應於所述第一列表的第一運動向量是基於所述對應於第一列表的第一運動向量預測值和所述對應於第一列表的第一MVD而得到的;所述對應於所述第二列表的第二運動向量是基於所述對應於第二列表的第二運動向量預測值和所述對應於第二列表的第二MVD而得到的。
  18. 如請求項14-17任一項所述的方法,其中所述解析碼流,以得到語法元素,包括:解析碼流,以得到像素殘差和所述語法元素;所述至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的重建的像素值,包括:根據所述像素殘差和所述當前圖像塊的預測像素值確定所述當前圖像塊的重建的像素值。
  19. 一種幀間預測方法,包括: 判斷當前圖像塊是否滿足多個預設條件,在滿足所述多個預設條件的情況下,對所述當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊中的預測像素值,所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在; 其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;其中:W和H為2n,n為整數。
  20. 一種編碼設備,包括:幀間預測單元,用於在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重; 所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;重構單元,用於至少根據所述當前圖像塊的預測像素值,得到所述當前圖像塊的重建像素值;熵編碼單元,用於將與所述當前圖像塊相關的語法元素編入待傳輸的碼流,所述語法元素至少用於指示採用雙向預測;其中:W和H為2n,n為整數。
  21. 如請求項20所述的編碼設備,其中所述語法元素包括:目標候選運動訊息的索引,其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方 向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀。
  22. 如請求項20所述的編碼設備,其中所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表的第一運動向量預測值和對應於第二列表的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD;所述第二索引用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,所述預測方向指示訊息用於指示採用雙向預測;所述對應於所述第一列表的第一運動向量是基於所述對應於第一列表的第一運動向量預測值和所述對應於第一列表的第一MVD而得到的;所述對應於所述第二列表的第二運動向量是基於所述對應於第二列表的第二運動向量預測值和所述對應於第二列表的第二MVD而得到的。
  23. 如請求項20-22任一項所述的編碼設備,其中所述編碼設備還包括:殘差計算單元,用於根據所述當前圖像塊的像素值和當前圖像塊的預測像素值確定像素殘差;所述熵編碼單元,具體用於將所述語法元素和所述像素殘差編入待傳輸的碼流。
  24. 一種編碼設備,包括:幀間預測單元,用於在當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定當前圖像塊的預測像素值,所述第一處理方式不為基於雙向預測的光流技術BDOF;其中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表的第一運動向量和對應於所述第二列表的第二運動向量預測得到的;所述第二預設尺寸包括8x8;或者所述第二預設尺寸包括4xN,N大於或等於8;或者所述第二預設尺寸包括8x8或者4xN,N大於或等於8;或者所述第二預設尺寸包括8x8、4xN、8x16或者16x8,N大於或等於8;或者所述第二預設尺寸包括Nx8,N大於或等於4;或者所述第二預設尺寸包括Nx8、4xN,N大於或等於4;在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向 預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W 大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;重構單元,用於至少根據所述當前圖像塊的預測像素值,得到所述當前圖像塊的重建像素值;熵編碼單元,用於將與所述當前圖像塊相關的語法元素編入待傳輸的碼流,所述語法元素至少用於指示採用雙向預測;其中:W和H為2n,n為整數。
  25. 如請求項24所述的編碼設備,其中在所述採用第一處理方式基於對應於第一列表的參考像素和對應於第二列表的參考像素確定所述當前圖像塊的預測像素值方面,所述幀間預測單元具體用於:將對應於第一列表的參考像素值和對應於第二列表的參考像素值中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值;或者採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值預測得到所述當前圖像塊的預測像素值。
  26. 如請求項24或25所述的編碼設備,其中所述語法元素包括:目標候選運動訊息的索引,其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀。
  27. 如請求項24或25所述的編碼設備,其中所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表的第一運動向量預測值和對應於第二列表的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD;所述第二索引用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,所述預測方向指示訊息用於指示採用雙向預測;所述對應於所述第一列表的第一運動向量是基於所述對應於第一列表的第一運動向量預測值和所述對應於第一列表的第一MVD而得到的;所述對應於所述第二列表的第二運動向量是基於所述對應於 第二列表的第二運動向量預測值和所述對應於第二列表的第二MVD而得到的。
  28. 如請求項24-27任一項所述的編碼設備,其中所述編碼設備還包括:殘差計算單元,用於根據所述當前圖像塊的像素值和當前圖像塊的預測像素值確定像素殘差;以及所述熵編碼單元具體用於:將所述語法元素和所述像素殘差編入待傳輸的碼流。
  29. 一種解碼設備,包括:熵解碼單元,用於解析碼流,以得到與當前圖像塊相關的語法元素,所述語法元素至少用於指示採用雙向預測;幀間預測單元,用於在滿足多個預設條件的情況下,對所述當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當 前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;重構單元,用於至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的重建的像素值;其中:W和H為2n,n為整數。
  30. 如請求項29所述的解碼設備,其中所述語法元素包括:目標候選運動訊息的索引,其中所述目標候選運動訊息包括 目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引和對應於第二列表的第二參考幀的索引。
  31. 如請求項29所述的解碼設備,其中所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表的第一運動向量預測值和對應於第二列表的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD;所述第二索引用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,所述預測方向指示訊息用於指示採用雙向預測;所述對應於所述第一列表的第一運動向量是基於所述對應於第一列表的第一運動向量預測值和所述對應於第一列表的第一MVD而得到的;所述對應於所述第二列表的第二運動向量是基於所述對應於第二列表的第二運動向量預測值和所述對應於第二列表的第二MVD而得到的。
  32. 如請求項29-31任一項所述的解碼設備,其中所述熵解碼單元具體用於:解析碼流,以得到像素殘差和所述語法元素;所述重構單元具體用於:根據所述像素殘差和所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
  33. 一種解碼設備,包括:熵解碼單元,用於解析碼流,以得到與當前圖像塊相關的語法元素,所述語法元素至少用於指示採用雙向預測;幀間預測單元,用於在所述當前圖像塊的尺寸為第二預設尺寸的情況下,採用第一處理方式基於對應於第一列表的參考像素值和對應於第二列表的參考像素值確定所述當前圖像塊的預測像素值,所述第一處理方式不為基於雙向預測的光流技術BDOF;其中,所述對應於第一列表的參考像素值和所述對應於第二列表的參考像素值是分別基於對應於所述第一列表的第一運動向量和對應於所述第二列表的第二運動向量預測得到的;所述第二預設尺寸包括8x8;或者所述第二預設尺寸包括4xN,N大於或等於8;或者所述第二預設尺寸包括8x8或者4xN,N大於或等於8;或者所述第二預設尺寸包括8x8、4xN、8x16或者16x8,N大於或等於8;或者所述第二預設尺寸包括Nx8,N大於或等於4;或者所述第二預設尺寸包括Nx8、4xN,N大於或等於4; 在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述 當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;重構單元,用於至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的重建的像素值;其中:W和H為2n,n為整數。
  34. 如請求項33所述的解碼設備,其中在採用第一處理方式基於對應於第一列表的參考像素和對應於第二列表的參考像素預測得到所述當前圖像塊的預測像素值方面,所述幀間預測單元具體用於:將對應於第一列表的參考像素和對應於第二列表的參考像素中位置相同的像素值進行加權計算,得到所述當前圖像塊的預測像素值;或者採用融合運動向量差MMVD技術基於所述對應於第一列表的參考像素和所述對應於第二列表的參考像素預測得到所述當前圖像塊的預測像素值;或者採用聯合幀內預測模式和幀間預測模式CIIP技術基於所述對應於第一列表的參考像素和所述對應於第二列表的參考像素預測得到所述當前圖像塊的預測像素值,或者採用解碼端運動向量精細化DMVR技術基於所述對應於第 一列表的參考像素和所述對應於第二列表的參考像素預測得到所述當前圖像塊的預測像素值。
  35. 如請求項33或34任一項所述的解碼設備,其中所述語法元素包括:目標候選運動訊息的索引,其中所述目標候選運動訊息包括目標候選運動向量,參考幀索引和預測方向指示訊息,所述預測方向指示訊息用於指示採用雙向預測,所述目標候選運動向量包括所述對應於第一列表的第一運動向量和對應於第二列表的第二運動向量,所述參考幀索引包括對應於第一列表的第一參考幀的索引和對應於第二列表的第二參考幀的索引。
  36. 如請求項33或34所述的解碼設備,其中所述語法元素包括:第一索引、第二索引、預測方向指示訊息、運動向量差值MVD,所述第一索引用於指示目標候選運動向量預測值,所述目標候選運動向量預測值包括所述對應於第一列表的第一運動向量預測值和對應於第二列表的第二運動向量預測值;所述運動向量差值MVD包括對應於第一列表的第一MVD和/或對應於第二列表的MVD;所述第二索引用於指示所述當前圖像塊的參考幀,所述參考幀包括對應於第一列表的第一參考幀和對應於第二列表的第二參考幀,所述預測方向指示訊息用於指示採用雙向預測;所述對應於所述第一列表的第一運動向量是基於所述對應於 第一列表的第一運動向量預測值和所述對應於第一列表的第一MVD而得到的;所述對應於所述第二列表的第二運動向量是基於所述對應於第二列表的第二運動向量預測值和所述對應於第二列表的第二MVD而得到的。
  37. 如請求項33-36任一項所述的解碼設備,其中所述熵解碼單元具體用於:解析碼流,以得到像素殘差和所述語法元素;所述重構單元具體用於:根據所述像素殘差和所述當前圖像塊的預測像素值確定所述當前圖像塊的像素值。
  38. 一種幀間預測裝置,包括:判斷單元,用於判斷當前圖像塊是否滿足多個預設條件,幀間預測處理單元,用於在滿足所述多個預設條件的情況下,對所述當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值,所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式; 所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;其中:W和H為2n,n為整數。
  39. 一種電腦可讀儲存媒體,其中所述電腦可讀儲存媒體中儲存有電腦程序,當其在處理器上運行時,實現請求項1-19任一所述的方法。
  40. 一種編碼方法,包括: 在滿足多個預設條件的情況下,對當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述 當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;至少根據所述當前圖像塊的預測像素值,得到所述當前圖像塊的重建像素值;將語法元素編入待傳輸的碼流,所述語法元素至少用於指示採用雙向預測;其中:W和H為2n,n為整數。
  41. 一種解碼方法,包括:通過解析碼流得到與當前圖像塊相關的語法元素的取值,所述語法元素的取值至少用於指示採用雙向預測;在滿足多個預設條件的情況下,對所述當前圖像塊進行基於雙向預測的光流技術BDOF處理,以得到所述當前圖像塊的預測像素值;所述多個預設條件包括:第一清單對應的預測方向指示資訊predFlagL0=1,以及第二列表對應的預測方向指示資訊predFlagL1=1,以表示所述當前圖像塊採用雙向預測;運動模型索引MotionModelIdc[xCb][yCb]為0,以表示所述當前圖像塊運動補償的運動模型為平動模型;所述語法元素中的merge_subblock_flag[x0][y0]為0,以表示 所述當前圖像塊不使用子塊融合模式;所述語法元素中的sym_mvd_flag[x0][y0]為0,以表示所述當前圖像塊存在語法結構mvd_coding(x0,y0,refList,cpIdx);所述語法元素中的雙向預測的權重索引BcwIdx[xCb][yCb]為0,以表示所述當前圖像塊雙向預測的權重;所述當前圖像塊顏色分類的索引cIdx為0;所述當前圖像塊的尺寸滿足第一預設尺寸;所述語法元素中的luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均為0,其中所述取值為0的luma_weight_l0_flag表示基於第一列表預測的亮度分量的加權因數不存在,所述取值為0的luma_weight_l1_flag表示基於第二列表預測的亮度分量的加權因數不存在;其中:所述當前圖像塊的尺寸滿足第一預設尺寸包括:所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於64;或者所述當前圖像塊的高H大於或等於8,以及,所述當前圖像塊的寬W大於或等於8,且所述當前圖像塊的寬W與所述當前圖像塊的高H的乘積大於128;至少根據所述當前圖像塊的預測像素值確定所述當前圖像塊的重建的像素值;其中:W和H為2n,n為整數。
  42. 一種編碼器,包括處理電路,用於執行如請求項1至9、19和40中任一項所述的方法。
  43. 一種解碼器,包括處理電路,用於執行如請求項10至19以及21中任一項所述的方法。
TW109120507A 2019-06-24 2020-06-18 視訊編碼器、視訊解碼器及相應方法 TWI748522B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201910559986 2019-06-24
CN201910559986.9 2019-06-24
CN201910584158.0A CN112135141A (zh) 2019-06-24 2019-06-29 视频编码器、视频解码器及相应方法
CN201910584158.0 2019-06-29

Publications (2)

Publication Number Publication Date
TW202106009A TW202106009A (zh) 2021-02-01
TWI748522B true TWI748522B (zh) 2021-12-01

Family

ID=73849550

Family Applications (2)

Application Number Title Priority Date Filing Date
TW110140746A TWI806212B (zh) 2019-06-24 2020-06-18 視訊編碼器、視訊解碼器及相應方法
TW109120507A TWI748522B (zh) 2019-06-24 2020-06-18 視訊編碼器、視訊解碼器及相應方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW110140746A TWI806212B (zh) 2019-06-24 2020-06-18 視訊編碼器、視訊解碼器及相應方法

Country Status (11)

Country Link
US (2) US12028527B2 (zh)
EP (1) EP3982633A4 (zh)
JP (2) JP7410191B2 (zh)
KR (2) KR102704836B1 (zh)
CN (2) CN112135141A (zh)
AU (1) AU2020308366B2 (zh)
BR (1) BR112021026123A2 (zh)
CA (1) CA3145056A1 (zh)
MX (1) MX2022000202A (zh)
TW (2) TWI806212B (zh)
WO (1) WO2020259567A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220264146A1 (en) * 2019-07-01 2022-08-18 Interdigital Vc Holdings France, Sas Bi-prediction refinement in affine with optical flow
US11641475B2 (en) * 2019-09-12 2023-05-02 Alibaba Group Holding Limited Method and apparatus for encoding or decoding video
CN116264622A (zh) * 2021-12-15 2023-06-16 腾讯科技(深圳)有限公司 视频编码方法、装置、电子设备和存储介质
US20230199171A1 (en) * 2021-12-21 2023-06-22 Mediatek Inc. Search Memory Management For Video Coding
US20240259589A1 (en) * 2023-02-01 2024-08-01 Tencent America LLC Method and Apparatus for Signaling for Compound Inter Prediction Modes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107925775A (zh) * 2015-09-02 2018-04-17 联发科技股份有限公司 基于双向预测光流技术的视频编解码的运动补偿方法及装置
KR20190024553A (ko) * 2017-08-29 2019-03-08 에스케이텔레콤 주식회사 양방향 옵티컬 플로우를 이용한 움직임 보상 방법 및 장치

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102215407B (zh) * 2010-04-09 2013-07-10 华为技术有限公司 双向预测块的获取方法和装置以及图像解码方法
US9451277B2 (en) 2012-02-08 2016-09-20 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
CN103916673B (zh) * 2013-01-06 2017-12-22 华为技术有限公司 基于双向预测的编码方法、解码方法和装置
CN112929660B (zh) 2015-10-13 2023-12-26 三星电子株式会社 用于对图像进行编码或解码的方法和设备
US10887619B2 (en) 2016-02-03 2021-01-05 Sharp Kabushiki Kaisha Moving image decoding device, moving image coding device, and prediction image generation device
EP3398331A4 (en) 2016-02-05 2019-04-10 Mediatek Inc. METHOD AND APPARATUS FOR MOTION COMPENSATION BASED ON BIDIRECTIONAL OPTICAL FLUSH TECHNOLOGIES FOR VIDEO CODING
US10404989B2 (en) * 2016-04-26 2019-09-03 Google Llc Hybrid prediction modes for video coding
US10560718B2 (en) 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
KR20230042424A (ko) 2016-07-14 2023-03-28 삼성전자주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
WO2018048265A1 (ko) 2016-09-11 2018-03-15 엘지전자 주식회사 향상된 옵티컬 플로우 움직임 백터를 이용하여 비디오 신호를 처리하는 방법 및 장치
EP3301643A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for rectified motion compensation for omnidirectional videos
US10965955B2 (en) 2016-12-22 2021-03-30 Mediatek Inc. Method and apparatus of motion refinement for video coding
US10701366B2 (en) * 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US10523964B2 (en) * 2017-03-13 2019-12-31 Qualcomm Incorporated Inter prediction refinement based on bi-directional optical flow (BIO)
CN117478885A (zh) * 2017-07-03 2024-01-30 Vid拓展公司 用于视频编解码的设备、方法
WO2019031417A1 (ja) 2017-08-09 2019-02-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11297344B2 (en) * 2017-08-29 2022-04-05 SK Telecom., Ltd. Motion compensation method and device using bi-directional optical flow
KR102638336B1 (ko) 2017-12-14 2024-02-19 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
WO2020084473A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Multi- iteration motion vector refinement
MX2021010158A (es) 2019-02-24 2021-11-12 Lg Electronics Inc Metodo y dispositivo de inter-prediccion a base de dmvr.
JP7058329B2 (ja) 2019-03-22 2022-04-21 エルジー エレクトロニクス インコーポレイティド Dmvrおよびbdofベースのインター予測方法および装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107925775A (zh) * 2015-09-02 2018-04-17 联发科技股份有限公司 基于双向预测光流技术的视频编解码的运动补偿方法及装置
KR20190024553A (ko) * 2017-08-29 2019-03-08 에스케이텔레콤 주식회사 양방향 옵티컬 플로우를 이용한 움직임 보상 방법 및 장치

Also Published As

Publication number Publication date
CN113170176B (zh) 2022-04-26
AU2020308366A1 (en) 2022-02-03
TW202106009A (zh) 2021-02-01
CA3145056A1 (en) 2020-12-30
CN112135141A (zh) 2020-12-25
KR102704836B1 (ko) 2024-09-06
CN113170176A (zh) 2021-07-23
EP3982633A1 (en) 2022-04-13
BR112021026123A2 (pt) 2022-02-08
US12028527B2 (en) 2024-07-02
US20220116619A1 (en) 2022-04-14
KR20240137698A (ko) 2024-09-20
WO2020259567A1 (zh) 2020-12-30
MX2022000202A (es) 2022-01-24
US20240348786A1 (en) 2024-10-17
JP2022539030A (ja) 2022-09-07
EP3982633A4 (en) 2022-08-10
TW202224429A (zh) 2022-06-16
TWI806212B (zh) 2023-06-21
AU2020308366B2 (en) 2023-12-14
KR20220024737A (ko) 2022-03-03
JP2024037999A (ja) 2024-03-19
JP7410191B2 (ja) 2024-01-09

Similar Documents

Publication Publication Date Title
TWI748522B (zh) 視訊編碼器、視訊解碼器及相應方法
WO2020232845A1 (zh) 一种帧间预测的方法和装置
CN113545040A (zh) 用于多假设编码的加权预测方法及装置
KR102621958B1 (ko) 후보 모션 벡터 리스트 획득 방법, 장치, 인코더 및 디코더
CN115243048B (zh) 视频图像解码、编码方法及装置
JP7317973B2 (ja) 画像予測方法、機器、及びシステム、装置、及び記憶媒体
CN111788833B (zh) 帧间预测方法、装置以及相应的编码器和解码器
CN112055200A (zh) Mpm列表构建方法、色度块的帧内预测模式获取方法及装置
WO2020216294A1 (zh) 图像预测方法、装置和计算机可读存储介质
CN111866502B (zh) 图像预测方法、装置和计算机可读存储介质
CN111432219B (zh) 一种帧间预测方法及装置
WO2020181476A1 (zh) 视频图像预测方法及装置
WO2020253681A1 (zh) 融合候选运动信息列表的构建方法、装置及编解码器
RU2819065C2 (ru) Видеокодер, видеодекодер и соответствующий способ
CN112135129B (zh) 一种帧间预测方法及装置
WO2020186882A1 (zh) 基于三角预测单元模式的处理方法及装置
WO2020187062A1 (zh) 用于融合运动矢量差技术的优化方法、装置及编解码器
CN119420901A (zh) 图像预测方法、装置和计算机可读存储介质
CN119420900A (zh) 图像预测方法、装置和计算机可读存储介质
CN111726630A (zh) 基于三角预测单元模式的处理方法及装置