TWI828507B - 圖像預測方法、裝置以及視訊編碼器、視訊解碼器 - Google Patents

圖像預測方法、裝置以及視訊編碼器、視訊解碼器 Download PDF

Info

Publication number
TWI828507B
TWI828507B TW112100139A TW112100139A TWI828507B TW I828507 B TWI828507 B TW I828507B TW 112100139 A TW112100139 A TW 112100139A TW 112100139 A TW112100139 A TW 112100139A TW I828507 B TWI828507 B TW I828507B
Authority
TW
Taiwan
Prior art keywords
block
backward
reference block
image
positions
Prior art date
Application number
TW112100139A
Other languages
English (en)
Other versions
TW202318876A (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 TW202318876A publication Critical patent/TW202318876A/zh
Application granted granted Critical
Publication of TWI828507B publication Critical patent/TWI828507B/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Color Television Systems (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申請提供了一種圖像預測方法、裝置以及視訊編碼器、視訊解碼器。該方法包括:獲取當前圖像塊的初始運動資訊;基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移成鏡像關係;基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。本申請在提高圖像預測的準確性的同時,能降低圖像預測的複雜度。

Description

圖像預測方法、裝置以及視訊編碼器、視訊解碼器
本發明是有關於視訊編解碼技術領域,且特別是有關於一種圖像預測方法、裝置以及編碼器。
通過視訊壓縮技術,例如MPEG-2、MPEG-4、ITU-TH.263、ITU-TH.264/MPEG-4第10部分高級視訊編解碼(advanced video coding,AVC)、ITU-TH.265高效率視訊編解碼(high efficiency video coding,HEVC)標準和所述標準的擴展部分中所描述的那些視訊壓縮技術,設備之間可以實現高效地發射及接收數位視訊資訊。通常情況下,視訊序列的圖像被劃分成圖像塊進行編碼或解碼。
視訊壓縮技術中,為了減少或去除視訊序列中的冗餘資訊,引入了基於圖像塊的空間預測(幀內預測,intra prediction)和/或時間預測(幀間預測,inter prediction)。其中,幀間預測模式可以包括但不限於:合併模式(Merge Mode)與非合併模式(例如高級運動向量預測模式(AMVP mode))等,且均是利用多運動資訊競爭的方法進行幀間預測的。
幀間預測過程中,引入了包括多組運動資訊(亦稱為多個候選運動資訊)的候選運動資訊列表(簡稱候選列表),例如,編碼器可以利用從該候選列表中選出的一組運動資訊作為或者預測當前待編碼圖像塊的運動資訊(例如運動向量),進而得到當前待編碼圖像塊的參考圖像塊(即參考樣本)。相應地,解碼器可以從碼流中解碼出指示資訊,以得到一組運動資訊。由於幀間預測過程中限制了運動資訊的編碼開銷(即佔據碼流的比特開銷),一定程度上影響了運動資訊的準確度,進而影響了圖像預測的準確性。
為了提高圖像預測的準確性,可以採用現有的解碼端運動向量修正(Decoder-side motion vector refinement,DMVR)技術對運動資訊進行修正,然而使用DMVR方案進行圖像預測時,不僅要計算範本匹配塊,而且要使用範本匹配塊在前向參考圖像和後向參考圖像中分別進行搜索匹配過程,導致搜索複雜度較高,因此,在提高圖像預測準確性的同時,如何減少圖像預測時的複雜度是一個需要解決的問題。
本申請實施例提供圖像預測方法、裝置及相應的編碼器和解碼器,在提高圖像預測準確性的同時,能一定程度上降低圖像預測的複雜度,從而提高編解碼性能。
第一方面,本申請實施例提供了一種圖像預測方法,該方法包括:獲取當前圖像塊的初始運動資訊;基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移成鏡像關係,所述第一位置偏移表示所述前向參考塊的位置相對于初始前向參考塊的位置的位置偏移,所述第二位置偏移表示所述後向參考塊的位置相對于初始後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N;基於所述目標前向參考塊的像素值(sample)和所述目標後向參考塊的像素值(sample),得到所述當前圖像塊的像素值的預測值。
尤其需要說明的是,在本申請實施例中,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,所述N個後向參考塊的位置包括一個初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,從而初始前向參考塊的位置相對于初始前向參考塊的位置的位置偏移為0,初始後向參考塊的位置相對于初始後向參考塊的位置的位置偏移為0的情況下,0偏移與0偏移也是滿足鏡像關係。
可見,本申請實施例中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,針對所述N對參考塊的位置中的每一對參考塊的位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移成鏡像關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。
此外,應當理解的是,這裡的當前圖像塊(簡稱為當前塊)可以理解為當前正在處理的圖像塊。例如在編碼過程中,指當前正在編碼的圖像塊(encoding block);在解碼過程中,指當前正在解碼的圖像塊(decoding block)。
此外,應當理解的是,這裡的參考塊指為當前塊提供參考信號的塊。在搜索過程中,需要遍歷多個參考塊,尋找最佳參考塊。位於前向參考圖像中的參考塊,稱為前向參考塊;位於後向參考圖像中的參考塊,稱為後向參考塊。
此外,應當理解的是,為當前塊提供預測的塊稱為預測塊。例如,在遍歷多個參考塊以後,找到了最佳參考塊,此最佳參考塊將為當前塊提供預測,此塊可稱為預測塊。預測塊內的像素值或者採樣值或者採樣信號,稱為預測信號。
此外,應當理解的是,這裡的匹配代價準則可以理解為考慮成對的前向參考塊與後向參考塊之間的匹配代價的準則,其中,匹配代價可以理解為兩個塊之間的差異值,可以看做是兩個塊內各個對應位置像素點差異值的累加。差異的計算方法一般基於SAD(sum of absolute difference,絕對差異和)準則,或者其他準則,例如SATD(Sum of Absolute Transform Difference,絕對變換差異和),MR-SAD(mean-removed sum of absolute difference,均值去除的絕對差異和),SSD(sum of squared differences,平方差異和)等進行計算。
此外,需要說明的是,本申請實施例的當前圖像塊的初始運動資訊可包括運動向量MV和參考圖像指示資訊。當然,初始運動資訊也可以包含兩者之一或者全部包含,例如在編解碼端共同約定參考圖像的情況下,初始運動資訊可以僅包含運動向量MV。其中參考圖像指示資訊用於指示當前塊使用到了哪一個或哪些重建圖像作為參考圖像,運動向量表示在所用參考圖像中參考塊位置相對於當前塊位置的位置偏移,一般包含水準分量偏移和豎直分量偏移。例如使用 表示MV,x表示水準方向的位置偏移,y表示豎直方向的位置偏移。使用當前塊的位置加上MV,便可以得到它的參考塊在參考圖像中的位置。其中參考圖像指示資訊可以包括參考圖像列表和/或與參考圖像列表對應的參考圖像索引。參考圖像索引用於識別指定參考圖像列表(RefPicList0或RefPicList1)中的與所用運動向量對應的參考圖像。圖像可被稱作幀,且參考圖像可被稱作參考幀。
本申請實施例的當前圖像塊的初始運動資訊是初始雙向預測運動資訊,即包括用於前向和後向預測方向的運動資訊。此處,前向和後向預測方向是雙向預測模式的兩個預測方向,可以理解的是,“前向”和“後向”分別對應於當前圖像的參考圖像列表0(RefPicList0)和參考圖像列表1(RefPicList1)。“
此外,需要說明的是,本申請實施例的初始前向參考塊的位置指的是使用當前塊的位置加上初始運動MV偏移而得到的參考塊在前向參考圖像中的位置;本申請實施例的初始後向參考塊的位置指的是使用當前塊的位置加上初始運動MV偏移而得到的參考塊在後向參考圖像中的位置。
應當理解的是,本申請實施例的方法的執行主體可以是圖像預測裝置,例如可以是視訊編碼器或視訊解碼器或具有視訊編解碼功能的電子設備,具體例如可以是視訊編碼器中的幀間預測單元,或者視訊解碼器中的運動補償單元。
結合第一方面,在第一方面的某些實現方式中,所述第一位置偏移與第二位置偏移成鏡像關係可以理解為第一位置偏移量與第二位置偏移量相同,例如,所述第一位置偏移的方向(亦稱為向量方向)與第二位置偏移的方向相反,且第一位置偏移的幅值與第二位置偏移的幅值相同。
在一種示例下,所述第一位置偏移包括第一水準分量偏移和第一豎直分量偏移,所述第二位置偏移包括第二水準分量偏移和第二豎直分量偏移,其中,所述第一水準分量偏移的方向與第二水準分量偏移的方向相反,且第一水準分量偏移的幅值與第二水準分量偏移的幅值相同;所述第一豎直分量偏移的方向與第二豎直分量偏移的方向相反,且第一豎直分量偏移的幅值與第二豎直分量偏移的幅值相同。
在另一種示例下,第一位置偏移與第二位置偏移均為0。
結合第一方面,在第一方面的某些實現方式中,所述方法還包括:獲得當前圖像塊的更新的運動資訊,所述更新的運動資訊包括更新的前向運動向量和更新的後向運動向量,其中所述更新的前向運動向量指向所述目標前向參考塊的位置,所述更新的後向運動向量指向所述目標後向參考塊的位置。
在不同示例下,當前圖像塊的更新的運動資訊是基於所述目標前向參考塊的位置、目標後向參考塊的位置和當前圖像塊的位置得到的,或者,是基於所述確定的一對參考塊位置對應的第一位置偏移和第二位置偏移得到的。
可見,本申請實施例能獲得經修正過的當前圖像塊的運動資訊,提高當前圖像塊運動資訊的準確度,這也將有利於其他圖像塊的預測,例如提升其它圖像塊的運動資訊的預測準確性等。
結合第一方面,在第一方面的某些實現方式中,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離;或者,
所述N個後向參考塊的位置包括一個初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
需要說明的是,所述N對參考塊的位置包括:成對的初始前向參考塊和初始後向參考塊的位置,和成對的候選前向參考塊和候選後向參考塊的位置,其中所述前向參考圖像中所述候選前向參考塊的位置相對于初始前向參考塊的位置的位置偏移,與,所述後向參考圖像中所述候選後向參考塊的位置相對于初始後向參考塊的位置的位置偏移成鏡像關係。
結合第一方面,在第一方面的某些實現方式中,所述初始運動資訊包括前向預測運動資訊和後向預測運動資訊; 所述基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,包括: 根據所述前向預測運動資訊和當前圖像塊的位置在前向參考圖像中確定N個前向參考塊的位置,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離; 根據所述後向預測運動資訊和當前圖像塊的位置在後向參考圖像中確定N個後向參考塊的位置,所述N個後向參考塊的位置包括一個初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
結合第一方面,在第一方面的某些實現方式中,所述初始運動資訊包括前向預測方向的第一運動向量和第一參考圖像索引,以及後向預測方向的第二運動向量和第二參考圖像索引; 所述根據所述初始運動資訊和所述當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,包括: 根據所述第一運動向量和所述當前圖像塊的位置在所述第一參考圖像索引對應的前向參考圖像中確定當前圖像塊的初始前向參考塊的位置;以所述初始前向參考塊的位置作為第一搜索起點,在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置,其中所述N個前向參考塊的位置包括所述初始前向參考塊的位置和所述(N-1)個候選前向參考塊的位置; 根據所述第二運動向量和所述當前圖像塊的位置在所述第二參考圖像索引對應的後向參考圖像中確定當前圖像塊的初始後向參考塊的位置;以所述初始後向參考塊的位置作為第二搜索起點,在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置,其中所述N個後向參考塊的位置包括所述初始後向參考塊的位置和所述(N-1)個候選後向參考塊的位置。
結合第一方面,在第一方面的某些實現方式中,所述根據匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,包括: 從M對參考塊的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置;或者 從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置,其中所述M小於或等於N。
在一種示例下,所述匹配代價準則為匹配代價最小化的準則。例如,針對M對參考塊的位置,計算每對參考塊中前向參考塊的像素值與後向參考塊的像素值的差異;從所述M對參考塊的位置中,確定像素值差異最小的一對參考塊的位置為所述當前圖像塊的前向目標參考塊的位置以及後向目標參考塊的位置。
在另一種示例下,所述匹配代價準則為匹配代價與提前終止準則。例如,針對第n對參考塊(一個前向參考塊與一個後向參考塊)的位置,計算所述前向參考塊的像素值與後向參考塊的像素值的差異,n為大於或等於1,且小於或等於N的整數;當像素值差異小於或等於匹配誤差閾值時,確定第n對參考塊(一個前向參考塊與一個後向參考塊)的位置為所述當前圖像塊的前向目標參考塊的位置以及後向目標參考塊的位置。
結合第一方面,在第一方面的某些實現方式中,所述方法用於編碼所述當前圖像塊,所述獲取當前圖像塊的初始運動資訊包括:從當前圖像塊的候選運動資訊列表中獲取所述初始運動資訊; 或者,所述方法用於解碼所述當前圖像塊,所述獲取當前圖像塊的初始運動資訊之前,所述方法還包括:從當前圖像塊的碼流中獲取指示資訊,所述指示資訊用於指示當前圖像塊的初始運動資訊。
可見,本申請實施例的圖像預測方法,不僅適用於合併預測模式(Merge)和/或高級運動向量預測模式(advanced motion vector prediction,AMVP),而且也能適用於使用空域參考塊,時域參考塊和/或視間參考塊的運動資訊對當前圖像塊的運動資訊進行預測的其它模式,從而提高編解碼性能。
本申請的第二方面提供一種圖像預測方法,包括:獲取當前圖像塊的初始運動資訊; 基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係,所述第一位置偏移表示所述前向參考塊的位置相對于初始前向參考塊的位置的位置偏移;所述第二位置偏移表示所述後向參考塊的位置相對于初始後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N;基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。
尤其需要說明的是,在本申請實施例中,初始前向參考塊的位置相對于初始前向參考塊的位置的位置偏移為0,初始後向參考塊的位置相對于初始後向參考塊的位置的位置偏移為0的情況下,0偏移與0偏移也是滿足鏡像關係或滿足基於時域距離的比例關係的。換一種角度來描述,可以是針對(N-1)對參考塊位置中的每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係/鏡像關係。這裡的(N-1)對參考塊的位置不包括初始前向參考塊的位置和初始後向參考塊的位置。
可見,本申請實施例中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,針對所述N對參考塊的位置中的每一對參考塊的位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移具有基於時域距離的比例關係(亦可稱為基於時域距離的鏡像關係),在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。
結合第二方面,在第二方面的某些實現方式中,針對每對參考塊,所述第一位置偏移與第二位置偏移具有基於時域距離的比例關係,包括: 針對每對參考塊,第一位置偏移與第二位置偏移的比例關係是基於第一時域距離與第二時域距離比例關係而確定的,其中第一時域距離表示當前圖像塊所屬的當前圖像與所述前向參考圖像之間的時域距離;第二時域距離表示所述當前圖像與所述後向參考圖像之間的時域距離。
結合第二方面,在第二方面的某些實現方式中,所述第一位置偏移與第二位置偏移具有基於時域距離的比例關係,包括: 如果第一時域距離與第二時域距離相同,則所述第一位置偏移的方向與第二位置偏移的方向相反,且第一位置偏移的幅值與第二位置偏移的幅值相同;或者, 如果第一時域距離與第二時域距離不同,則所述第一位置偏移的方向與第二位置偏移的方向相反,第一位置偏移的幅值與第二位置偏移的幅值之間的比例關係是基於第一時域距離與第二時域距離的比例關係; 其中,第一時域距離表示當前圖像塊所屬的當前圖像與所述前向參考圖像之間的時域距離;第二時域距離表示所述當前圖像與所述後向參考圖像之間的時域距離。
結合第二方面,在第二方面的某些實現方式中,所述方法還包括:獲得當前圖像塊的更新的運動資訊,所述更新的運動資訊包括更新的前向運動向量和更新的後向運動向量,其中所述更新的前向運動向量指向所述目標前向參考塊的位置,所述更新的後向運動向量指向所述目標後向參考塊的位置。
可見,本申請實施例能獲得經修正過的當前圖像塊的運動資訊,提高當前圖像塊運動資訊的準確度,這也將有利於其他圖像塊的而預測,例如提升其它圖像塊的運動資訊的預測準確性等。
結合第二方面,在第二方面的某些實現方式中,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離;或者, 所述N個後向參考塊的位置包括一個初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
結合第二方面,在第二方面的某些實現方式中,所述N對參考塊的位置包括:成對的初始前向參考塊和初始後向參考塊的位置,和成對的候選前向參考塊和候選後向參考塊的位置,其中所述前向參考圖像中所述候選前向參考塊的位置相對于初始前向參考塊的位置的位置偏移,與,所述後向參考圖像中所述候選後向參考塊的位置相對于初始後向參考塊的位置的位置偏移具有基於時域距離的比例關係。
結合第二方面,在第二方面的某些實現方式中,所述初始運動資訊包括前向預測運動資訊和後向預測運動資訊; 所述基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,包括: 根據所述前向預測運動資訊和當前圖像塊的位置在前向參考圖像中確定N個前向參考塊的位置,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離; 根據所述後向預測運動資訊和當前圖像塊的位置在後向參考圖像中確定N個後向參考塊的位置,所述N個後向參考塊的位置包括初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
結合第二方面,在第二方面的某些實現方式中,所述初始運動資訊包括前向預測方向的第一運動向量和第一參考圖像索引,以及後向預測方向的第二運動向量和第二參考圖像索引; 所述根據所述初始運動資訊和所述當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,包括: 根據所述第一運動向量和所述當前圖像塊的位置在所述第一參考圖像索引對應的前向參考圖像中確定當前圖像塊的初始前向參考塊的位置;以所述初始前向參考塊的位置作為第一搜索起點,在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置,其中所述N個前向參考塊的位置包括所述初始前向參考塊的位置和所述(N-1)個候選前向參考塊的位置; 根據所述第二運動向量和所述當前圖像塊的位置在所述第二參考圖像索引對應的後向參考圖像中確定當前圖像塊的初始後向參考塊的位置;以所述初始後向參考塊的位置作為第二搜索起點,在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置,其中所述N個後向參考塊的位置包括所述初始後向參考塊的位置和所述(N-1)個候選後向參考塊的位置。
結合第二方面,在第二方面的某些實現方式中,所述根據匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,包括: 從M對參考塊的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置;或者 從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置, 所述M小於或等於N。
在一種示例下,所述匹配代價準則為匹配代價最小化的準則。例如,針對M對參考塊的位置,計算每對參考塊中前向參考塊的像素值與後向參考塊的像素值的差異;從所述M對參考塊的位置中,確定像素值差異最小的一對參考塊的位置為所述當前圖像塊的前向目標參考塊的位置以及後向目標參考塊的位置。
在另一種示例下,所述匹配代價準則為匹配代價與提前終止準則。例如,針對第n對參考塊(一個前向參考塊與一個後向參考塊)的位置,計算所述前向參考塊的像素值與後向參考塊的像素值的差異,n為大於或等於1,且小於或等於N的整數;當像素值差異小於或等於匹配誤差閾值時,確定第n對參考塊(一個前向參考塊與一個後向參考塊)的位置為所述當前圖像塊的前向目標參考塊的位置以及後向目標參考塊的位置。
結合第二方面,在第二方面的某些實現方式中,所述方法用於編碼所述當前圖像塊,所述獲取當前圖像塊的初始運動資訊包括:從當前圖像塊的候選運動資訊列表中獲取所述初始運動資訊; 或者,所述方法用於解碼所述當前圖像塊,所述獲取當前圖像塊的初始運動資訊之前,所述方法還包括:從當前圖像塊的碼流中獲取指示資訊,所述指示資訊用於指示當前圖像塊的初始運動資訊。
本申請的第三方面提供一種圖像預測方法,包括:獲取當前圖像塊的第i輪運動資訊; 根據所述第i輪運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置和第i輪目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移成鏡像關係,所述第一位置偏移表示所述前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移,所述第二位置偏移表示所述後向參考塊的位置相對於第i-1輪目標後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N;根據第j輪目標前向參考塊的像素值和第j輪目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。
尤其需要說明的是,在本申請實施例中,初始前向參考塊的位置相對于初始前向參考塊的位置的位置偏移為0,初始後向參考塊的位置相對于初始後向參考塊的位置的位置偏移為0的情況下,0偏移與0偏移也是滿足鏡像關係。
可見,本申請實施例中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,針對所述N對參考塊的位置中的每一對參考塊的位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移成鏡像關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。此外,本申請實施例通過反覆運算的方法,可以進一步提高修正運動向量MV的準確度,從而進一步提高編解碼性能。
結合第三方面,在第三方面的某些實現方式中,如果i=1,則所述第i輪運動資訊為當前圖像塊的初始運動資訊;相應地,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離;或者,所述N個後向參考塊的位置包括一個初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
如果i>1,則所述第i輪運動資訊包括:指向第i-1輪目標前向參考塊的位置的前向運動向量和指向第i-1輪目標後向參考塊的位置的後向運動向量;相應地,所述N個前向參考塊的位置包括一個第i-1輪目標前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離;或者,所述N個後向參考塊的位置包括一個第i-1輪目標後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於第i-1輪目標後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
需要說明的是,如果所述方法用於編碼所述當前圖像塊,所述當前圖像塊的初始運動資訊是通過如下方法獲取的:從當前圖像塊的候選運動資訊列表中確定所述初始運動資訊;或者,如果所述方法用於解碼所述當前圖像塊,所述當前圖像塊的初始運動資訊是通過如下方法獲取的:從當前圖像塊的碼流中獲取指示資訊,其中,所述指示資訊用於指示當前圖像塊的初始運動資訊。
結合第三方面,在第三方面的某些實現方式中,所述根據第j輪目標前向參考塊的像素值和第j輪目標後向參考塊的像素值,得到所述圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數,包括: 當滿足反覆運算終止條件時,根據所述第j輪目標前向參考塊的像素值和所述第j輪目標後向參考塊的像素值,得到所述圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。
結合第三方面,在第三方面的某些實現方式中,所述第一位置偏移與第二位置偏移成鏡像關係,包括:所述第一位置偏移的方向與第二位置偏移的方向相反,且第一位置偏移的幅值與第二位置偏移的幅值相同。
結合第三方面,在第三方面的某些實現方式中,所述第i輪運動資訊包括前向運動向量和前向參考圖像索引,以及後向運動向量和後向參考圖像索引; 所述根據所述第i輪運動資訊和所述當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,包括: 根據所述前向運動向量和所述當前圖像塊的位置在所述前向參考圖像索引對應的前向參考圖像中確定當前圖像塊的第i-1輪目標前向參考塊的位置;以所述i-1輪目標前向參考塊的位置作為第i f搜索起點,在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置,其中所述N個前向參考塊的位置包括一個第i-1輪目標前向參考塊的位置和所述(N-1)個候選前向參考塊的位置; 根據所述後向運動向量和所述當前圖像塊的位置在所述後向參考圖像索引對應的後向參考圖像中確定當前圖像塊的第i-1輪目標後向參考塊的位置;以所述i-1輪目標後向參考塊的位置作為第i b搜索起點,在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置,其中所述N個後向參考塊的位置包括一個第i-1輪目標後向參考塊的位置和所述(N-1)個候選後向參考塊的位置。
結合第三方面,在第三方面的某些實現方式中,所述根據匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置,包括: 從M對參考塊的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置;或者 從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及當前圖像塊的第i輪目標後向參考塊的位置,其中所述M小於或等於N。
本申請的第四方面提供一種圖像預測方法,包括:獲取當前圖像塊的第i輪運動資訊; 根據所述第i輪運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置和第i輪目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係,所述第一位置偏移表示所述前向參考圖像中,所述前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移;所述第二位置偏移表示所述後向參考圖像中,所述後向參考塊的位置相對於第i-1輪目標後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N;根據第j輪目標前向參考塊的像素值和第j輪目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。
尤其需要說明的是,在本申請實施例中,初始前向參考塊的位置相對于初始前向參考塊的位置的位置偏移為0,初始後向參考塊的位置相對于初始後向參考塊的位置的位置偏移為0的情況下,0偏移與0偏移也是滿足鏡像關係或滿足基於時域距離的比例關係的。換一種角度來描述,可以是針對(N-1)對參考塊位置中的每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係/鏡像關係。這裡的(N-1)對參考塊的位置不包括初始前向參考塊的位置和初始後向參考塊的位置。
可見,本申請實施例中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,針對所述N對參考塊的位置中的每一對參考塊的位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移具有基於時域距離的比例關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。此外,本申請實施例通過反覆運算的方法,可以進一步提高修正運動向量MV的準確度,從而進一步提高編解碼性能。
結合第四方面,在第四方面的某些實現方式中,如果i=1,則所述第i輪運動資訊為當前圖像塊的初始運動資訊;如果i>1,則所述第i輪運動資訊包括:指向第i-1輪目標前向參考塊的位置的前向運動向量和指向第i-1輪目標後向參考塊的位置的後向運動向量。
結合第四方面,在第四方面的某些實現方式中,所述根據第j輪目標前向參考塊的像素值和第j輪目標後向參考塊的像素值,得到所述圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數,包括: 當滿足反覆運算終止條件時,根據所述第j輪目標前向參考塊的像素值和所述第j輪目標後向參考塊的像素值,得到所述圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。
結合第四方面,在第四方面的某些實現方式中,所述第一位置偏移與第二位置偏移具有基於時域距離的比例關係,包括: 如果第一時域距離與第二時域距離相同,則所述第一位置偏移的方向與第二位置偏移的方向相反,且第一位置偏移的幅值與第二位置偏移的幅值相同;或者, 如果第一時域距離與第二時域距離不同,則所述第一位置偏移的方向與第二位置偏移的方向相反,第一位置偏移的幅值與第二位置偏移的幅值之間的比例關係是基於第一時域距離與第二時域距離的比例關係; 其中,第一時域距離表示當前圖像塊所屬的當前圖像與所述前向參考圖像之間的時域距離;第二時域距離表示所述當前圖像與所述後向參考圖像之間的時域距離。
結合第四方面,在第四方面的某些實現方式中,所述第i輪運動資訊包括前向運動向量和前向參考圖像索引,以及後向運動向量和後向參考圖像索引; 所述根據所述第i輪運動資訊和所述當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,包括: 根據所述前向運動向量和所述當前圖像塊的位置在所述前向參考圖像索引對應的前向參考圖像中確定當前圖像塊的第i-1輪目標前向參考塊的位置;以所述i-1輪目標前向參考塊的位置作為第i f搜索起點,在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置,其中所述N個前向參考塊的位置包括一個第i-1輪目標前向參考塊的位置和所述(N-1)個候選前向參考塊的位置; 根據所述後向運動向量和所述當前圖像塊的位置在所述後向參考圖像索引對應的後向參考圖像中確定當前圖像塊的第i-1輪目標後向參考塊的位置;以所述i-1輪目標後向參考塊的位置作為第i b搜索起點在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置,其中所述N個後向參考塊的位置包括一個第i-1輪目標後向參考塊的位置和所述(N-1)個候選後向參考塊的位置。
結合第四方面,在第四方面的某些實現方式中,所述根據匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置,包括: 從M對參考塊的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置;或者 從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及當前圖像塊的第i輪目標後向參考塊的位置,其中所述M小於或等於N。
本申請的第五方面提供一種圖像預測裝置,包括用於實施第一方面的任意一種方法的若干個功能單元。舉例來說,圖像預測裝置可以包括:第一獲取單元,用於獲取當前圖像塊的初始運動資訊;第一搜索單元,用於基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移成鏡像關係,所述第一位置偏移表示所述前向參考塊的位置相對于初始前向參考塊的位置的位置偏移,所述第二位置偏移表示所述後向參考塊的位置相對于初始後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N;第一預測單元,用於基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。
在不同應用場景下,圖像預測裝置例如應用於視訊編碼裝置(視訊編碼器)或視訊解碼裝置(視訊解碼器)。
本申請的第六方面提供一種圖像預測裝置,包括用於實施第二方面的任意一種方法的若干個功能單元。舉例來說,圖像預測裝置可以包括:第二獲取單元,用於獲取當前圖像塊的初始運動資訊;第二搜索單元,用於基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係,所述第一位置偏移表示所述前向參考塊的位置相對于初始前向參考塊的位置的位置偏移;所述第二位置偏移表示所述後向參考塊的位置相對于初始後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N;第二預測單元,用於基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。
在不同應用場景下,圖像預測裝置例如應用於視訊編碼裝置(視訊編碼器)或視訊解碼裝置(視訊解碼器)。
本申請的第七方面提供一種圖像預測裝置,包括用於實施第三方面的任意一種方法的若干個功能單元。舉例來說,圖像預測裝置可以包括:第三獲取單元,用於獲取當前圖像塊的第i輪運動資訊;第三搜索單元,用於根據所述第i輪運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置和第i輪目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移成鏡像關係,所述第一位置偏移表示所述前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移,所述第二位置偏移表示所述後向參考塊的位置相對於第i-1輪目標後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N;第三預測單元,用於根據第j輪目標前向參考塊的像素值和第j輪目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。
在不同應用場景下,圖像預測裝置例如應用於視訊編碼裝置(視訊編碼器)或視訊解碼裝置(視訊解碼器)。
本申請的第八方面提供一種圖像預測裝置,包括用於實施第四方面的任意一種方法的若干個功能單元。舉例來說,圖像預測裝置可以包括:第四獲取單元,用於獲取當前圖像塊的第i輪運動資訊;第四搜索單元,用於根據所述第i輪運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置和第i輪目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係,所述第一位置偏移表示所述前向參考圖像中,所述前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移;所述第二位置偏移表示所述後向參考圖像中,所述後向參考塊的位置相對於第i-1輪目標後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N;第四預測單元,用於根據第j輪目標前向參考塊的像素值和第j輪目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。
在不同應用場景下,圖像預測裝置例如應用於視訊編碼裝置(視訊編碼器)或視訊解碼裝置(視訊解碼器)。
本申請的第九方面提供了一種圖像預測裝置,所述裝置包括:處理器和耦合於所述處理器的記憶體;所述處理器用於執行所述第一方面或第二方面或第三方面或第四方面或前述各方面的各種實現方式中的方法。
本申請的第十方面提供一種視訊編碼器,所述視訊編碼器用於編碼圖像塊,包括:幀間預測模組,其中所述幀間預測模組包括如第五方面或第六方面或第七方面或第八方面所述的圖像預測裝置,其中所述幀間預測模組用於預測得到所述圖像塊的像素值的預測值;熵編碼模組,用於將指示資訊編入碼流,所述指示資訊用於指示所述圖像塊的初始運動資訊;重建模組,用於基於所述圖像塊的像素值的預測值重建所述圖像塊。
本申請的第十一方面提供一種視訊解碼器,所述視訊解碼器用於從碼流中解碼出圖像塊,包括:熵解碼模組,用於從碼流中解碼出指示資訊,所述指示資訊用於指示當前解碼圖像塊的初始運動資訊;幀間預測模組,包括如第五方面或第六方面或第七方面或第八方面所述的圖像預測裝置,所述幀間預測模組用於預測得到所述圖像塊的像素值的預測值;重建模組,用於基於所述圖像塊的像素值的預測值重建所述圖像塊。
本申請的第十二方面提供一種視訊編碼設備,包括非易失性存儲介質,以及處理器,所述非易失性存儲介質存儲有可執行程式,所述處理器與所述非易失性存儲介質相互耦合,並執行所述可執行程式以實現所述第一、二、三或四方面或其各種實現方式中的方法。
本申請的第十三方面提供一種視訊解碼設備,包括非易失性存儲介質,以及處理器,所述非易失性存儲介質存儲有可執行程式,所述處理器與所述非易失性存儲介質相互耦合,並執行所述可執行程式以實現所述第一、二、三或四方面或其各種實現方式中的方法。
本申請的第十四方面提供了一種電腦可讀存儲介質,所述電腦可讀存儲介質中存儲有指令,當其在電腦上運行時,使得電腦執行上述第一、二、三或四方面或其各種實現方式中的方法。
本申請的第十五方面提供了一種包含指令的電腦程式產品,當其在電腦上運行時,使得電腦執行上述第一、二、三或四方面或其各種實現方式中的方法。
本申請的第十六方面提供了一種電子設備,包括上述第十方面所述的視訊編碼器,或上述第十一方面所述的視訊解碼器,或上述第五、六、七或八方面所述的圖像預測裝置。
應理解,各方面及對應的可實施的設計方式所取得的有益效果相似,不再贅述。
下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述。
圖1為本申請實施例中視訊編碼及解碼系統的一種示意性框圖。系統10中視訊編碼器20和視訊解碼器30用於根據本申請提出的各種圖像預測方法實例來預測圖像塊的像素值的預測值,以及修正當前經編碼或經解碼圖像塊的運動資訊,例如運動向量,從而進一步的改善編解碼性能。如圖1所示,系統10包含源裝置12和目的地裝置14,源裝置12產生將在稍後時間由目的地裝置14解碼的經編碼視訊資料。源裝置12及目的地裝置14可包括廣泛範圍的裝置中的任一者,包含桌上型電腦、筆記型電腦、平板電腦、機上盒、例如所謂的“智慧”電話的電話手機、所謂的“智慧”觸控板、電視、攝影機、顯示裝置、數位媒體播放機、視訊遊戲控制台、視訊資料流裝置或類似者。
目的地裝置14可經由鏈路16接收待解碼的經編碼視訊資料。鏈路16可包括能夠將經編碼視訊資料從源裝置12移動到目的地裝置14的任何類型的媒體或裝置。在一個可行的實施方式中,鏈路16可包括使源裝置12能夠即時將經編碼視訊資料直接傳輸到目的地裝置14的通信媒體。可根據通信標準(例如,無線通訊協定)調製經編碼視訊資料且將其傳輸到目的地裝置14。通信媒體可包括任何無線或有線通信媒體,例如射頻頻譜或一個或多個物理傳輸線。通信媒體可形成基於包的網路(例如,局域網、廣域網路或網際網路的全球網路)的部分。通信媒體可包含路由器、交換器、基站或可有用於促進從源裝置12到目的地裝置14的通信的任何其它裝備。
替代地,可將經編碼資料從輸出介面22輸出到存儲裝置24。類似地,可由輸入介面從存儲裝置24存取經編碼資料。存儲裝置24可包含多種分散式或本地存取的資料存儲媒體中的任一者,例如,硬碟驅動器、藍光光碟、DVD、CD-ROM、快閃記憶體、易失性或非易失性記憶體或用於存儲經編碼視訊資料的任何其它合適的數位存儲媒體。在另一可行的實施方式中,存儲裝置24可對應於檔案伺服器或可保持由源裝置12產生的經編碼視訊的另一中間存儲裝置。目的地裝置14可經由資料流或下載從存儲裝置24存取所存儲視訊資料。檔案伺服器可為能夠存儲經編碼視訊資料且將此經編碼視訊資料傳輸到目的地裝置14的任何類型的伺服器。可行的實施方式檔案伺服器包含網站伺服器、檔傳送協定伺服器、網路附接存儲裝置或本地磁片機。目的地裝置14可經由包含網際網路連接的任何標準資料連接存取經編碼視訊資料。此資料連接可包含適合於存取存儲於檔案伺服器上的經編碼視訊資料的無線通道(例如,Wi-Fi連接)、有線連接(例如,纜線數據機等)或兩者的組合。經編碼視訊資料從存儲裝置24的傳輸可為資料流、下載傳輸或兩者的組合。
本申請的技術不必限於無線應用或設定。技術可應用於視訊解碼以支援多種多媒體應用中的任一者,例如,空中電視廣播、有線電視傳輸、衛星電視傳輸、資料流視訊傳輸(例如,經由網際網路)、編碼數位視訊以用於存儲於資料存儲媒體上、解碼存儲於資料存儲媒體上的數位視訊或其它應用。在一些可行的實施方式中,系統10可經配置以支援單向或雙向視訊傳輸以支援例如視訊資料流、視訊播放、視訊廣播和/或視訊電話的應用。
在圖1的可行的實施方式中,源裝置12包括視訊源18、視訊編碼器20及輸出介面22。在一些應用中,輸出介面22可包括調製器/解調制器(數據機)和/或傳輸器。在源裝置12中,視訊源18可包括例如以下各者的源:視訊捕獲裝置(例如,攝像機)、含有先前捕獲的視訊的視訊存檔、用以從視訊內容提供者接收視訊的視訊饋入介面,和/或用於產生電腦圖形資料作為源視訊的電腦圖形系統,或這些源的組合。作為一種可行的實施方式,如果視訊源18為攝像機,那麼源裝置12及目的裝置14可形成所謂的攝影機電話或視訊電話。本申請中所描述的技術可示例性地適用於視訊解碼,且可適用於無線和/或有線應用。
可由視訊編碼器20來編碼所捕獲、預捕獲或電腦產生的視訊。經編碼視訊資料可經由源裝置12的輸出介面22直接傳輸到目的地裝置14。經編碼視訊資料也可(或替代地)存儲到存儲裝置24上以供稍後由目的地裝置14或其它裝置存取以用於解碼和/或播放。
目的地裝置14包含輸入介面28、視訊解碼器30及顯示裝置32。在一些應用中,輸入介面28可包含接收器和/或數據機。目的地裝置14的輸入介面28經由鏈路16接收經編碼視訊資料。經由鏈路16傳達或提供於存儲裝置24上的經編碼視訊資料可包含由視訊編碼器20產生以供視訊解碼器30的視訊解碼器使用以解碼視訊資料的多種語法元素。這些語法元素可與在通信媒體上傳輸、存儲於存儲媒體上或存儲於檔案伺服器上的經編碼視訊資料包含在一起。
顯示裝置32可與目的地裝置14集成或在目的地裝置14外部。在一些可行的實施方式中,目的地裝置14可包含集成顯示裝置且也經配置以與外部顯示裝置介面連接。在其它可行的實施方式中,目的地裝置14可為顯示裝置。一般來說,顯示裝置32向使用者顯示經解碼視訊資料,且可包括多種顯示裝置中的任一者,例如液晶顯示螢幕、等離子顯示螢幕、有機發光二極體顯示螢幕或另一類型的顯示裝置。
視訊編碼器20及視訊解碼器30可根據例如目前在開發中的下一代視訊編解碼壓縮標準(H.266)操作且可遵照H.266測試模型(JEM)。替代地,視訊編碼器20及視訊解碼器30可根據例如ITU-TH.265標準,也稱為高效率視訊解碼標準,或者,ITU-TH.264標準的其它專屬或工業標準或這些標準的擴展而操作,ITU-TH.264標準替代地被稱為MPEG-4第10部分,也稱高級視訊編碼(advanced video coding,AVC)。然而,本申請的技術不限於任何特定解碼標準。視訊壓縮標準的其它可行的實施方式包含MPEG-2和ITU-TH.263。
儘管未在圖1中展示,但在一些方面中,視訊編碼器20及視訊解碼器30可各自與音訊編碼器及解碼器集成,且可包含適當多工器-多路分用器(MUX-DEMUX)單元或其它硬體及軟體以處置共同資料流程或單獨資料流程中的音訊及視訊兩者的編碼。如果適用,那麼在一些可行的實施方式中,MUX-DEMUX單元可遵照ITUH.223多工器協議或例如使用者資料包通訊協定(UDP)的其它協議。
視訊編碼器20及視訊解碼器30各自可實施為多種合適編碼器電路中的任一者,例如,一個或多個微處理器、數位訊號處理器(DSP)、專用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、離散邏輯、軟體、硬體、固件或其任何組合。在技術部分地以軟體實施時,裝置可將軟體的指令存儲於合適的非暫時性電腦可讀媒體中且使用一個或多個處理器以硬體執行指令,以執行本申請的技術。視訊編碼器20及視訊解碼器30中的每一者可包含於一個或多個編碼器或解碼器中,其中的任一者可在相應裝置中集成為組合式編碼器/解碼器(CODEC)的部分。
本申請示例性地可涉及視訊編碼器20將特定資訊“用信號發送”到例如視訊解碼器30的另一裝置。然而,應理解,視訊編碼器20可通過將特定語法元素與視訊資料的各種經編碼部分相關聯來用信號發送資訊。即,視訊編碼器20可通過將特定語法元素存儲到視訊資料的各種經編碼部分的頭資訊來“用信號發送”資料。在一些應用中,這些語法元素可在通過視訊解碼器30接收及解碼之前經編碼及存儲(例如,存儲到存儲系統34或檔案伺服器36)。因此,術語“用信號發送”示例性地可指語法或用於解碼經壓縮視訊資料的其它資料的傳達,而不管此傳達是即時或近即時地發生或在時間跨度內發生,例如可在編碼時將語法元素存儲到媒體時發生,語法元素接著可在存儲到此媒體之後的任何時間通過解碼裝置檢索。
JCT-VC開發了H.265(HEVC)標準。HEVC標準化基於稱作HEVC測試模型 (HM) 的視訊解碼裝置的演進模型。H.265的最新標準文檔可從http://www.itu.int/rec/T-REC-H.265獲得,最新版本的標準文檔為H.265 (12/16) ,該標準文檔以全文引用的方式併入本文中。HM假設視訊解碼裝置相對於ITU-TH.264/AVC的現有演算法具有若干額外能力。例如,H.264提供9種幀內預測編碼模式,而HM可提供多達35種幀內預測編碼模式。
JVET致力於開發H.266標準。H.266標準化的過程基於稱作H.266測試模型的視訊解碼裝置的演進模型。H.266的演算法描述可從http://phenix.int-evry.fr/jvet獲得,其中最新的演算法描述包含於JVET-F1001-v2中,該演算法描述文檔以全文引用的方式併入本文中。同時,可從https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/獲得JEM測試模型的參考軟體,同樣以全文引用的方式併入本文中。
一般來說,HM的工作模型描述可將視訊幀或圖像劃分成包含亮度及色度樣本兩者的樹塊或最大編碼單元(largest coding unit,LCU)的序列,LCU也被稱為CTU。樹塊具有與H.264標準的巨集塊類似的目的。條帶包含按解碼次序的數個連續樹塊。可將視訊幀或圖像分割成一個或多個條帶。可根據四叉樹將每一樹塊分裂成編碼單元。例如,可將作為四叉樹的根節點的樹塊分裂成四個子節點,且每一子節點可又為母節點且被分裂成另外四個子節點。作為四叉樹的葉節點的最終不可分裂的子節點包括解碼節點,例如,經解碼圖像塊。與經解碼碼流相關聯的語法資料可定義樹塊可分裂的最大次數,且也可定義解碼節點的最小大小。
編碼單元包含解碼節點及預測單元(prediction unit,PU)以及與解碼節點相關聯的變換單元(transform unit,TU)。CU的大小對應於解碼節點的大小且形狀必須為正方形。CU的大小的範圍可為8×8像素直到最大64×64像素或更大的樹塊的大小。每一CU可含有一個或多個PU及一個或多個TU。例如,與CU相關聯的語法資料可描述將CU分割成一個或多個PU的情形。分割模式在CU是被跳過或經直接模式編碼、幀內預測模式編碼或幀間預測模式編碼的情形之間可為不同的。PU可經分割成形狀為非正方形。例如,與CU相關聯的語法資料也可描述根據四叉樹將CU分割成一個或多個TU的情形。TU的形狀可為正方形或非正方形。
HEVC標準允許根據TU進行變換,TU對於不同CU來說可為不同的。TU通常基於針對經分割LCU定義的給定CU內的PU的大小而設定大小,但情況可能並非總是如此。TU的大小通常與PU相同或小於PU。在一些可行的實施方式中,可使用稱作“殘差四叉樹”(residual qualtree,RQT)的四叉樹結構將對應於CU的殘差樣本再分成較小單元。RQT的葉節點可被稱作TU。可變換與TU相關聯的像素差值以產生變換係數,變換係數可被量化。
一般來說,TU使用變換及量化過程。具有一個或多個PU的給定CU也可包含一個或多個TU。在預測之後,視訊編碼器20可計算對應於PU的殘差值。殘差值包括像素差值,像素差值可變換成變換係數、經量化且使用TU掃描以產生序列化變換係數以用於熵解碼。本申請通常使用術語“圖像塊”來指CU的解碼節點。在一些特定應用中,本申請也可使用術語“圖像塊”來指包含解碼節點以及PU及TU的樹塊,例如,LCU或CU。本申請實施例的下文將詳細介紹視訊編碼或解碼中自我調整反量化方法所描述的各種方法實例來執行當前圖像塊(即當前變換塊)對應的變換係數的反量化過程,以改善編解碼性能。
視訊序列通常包含一系列視訊幀或圖像。圖像群組(group of picture, GOP)示例性地包括一系列、一個或多個視訊圖像。GOP可在GOP的頭資訊中、圖像中的一者或多者的頭資訊中或在別處包含語法資料,語法資料描述包含於GOP中的圖像的數目。圖像的每一條帶可包含描述相應圖像的編碼模式的條帶語法資料。視訊編碼器20通常對個別視訊條帶內的圖像塊進行操作以便編碼視訊資料。圖像塊可對應於CU內的解碼節點。圖像塊可具有固定或變化的大小,且可根據指定解碼標準而在大小上不同。
作為一種可行的實施方式,HM支援各種PU大小的預測。假定特定CU的大小為2N×2N,HM支持2N×2N或N×N的PU大小的幀內預測,及2N×2N、2N×N、N×2N或N×N的對稱PU大小的幀間預測。HM也支持2N×nU、2N×nD、nL×2N及nR×2N的PU大小的幀間預測的不對稱分割。在不對稱分割中,CU的一方向未分割,而另一方向分割成25%及75%。對應于25%區段的CU的部分由“n”後跟著“上(Up)”、“下(Down)”、“左(Left)”或“右(Right)”的指示來指示。因此,例如,“2N×nU”指水準分割的2N×2NCU,其中2N×0.5NPU在上部且2N×1.5NPU在底部。
在本申請中,“N×M”與“N乘M”可互換使用以指依照水準維度及豎直維度的圖像塊的像素尺寸,例如,16×8像素或16乘8像素。一般來說,16×8塊將在水準方向上具有16個像素,即圖像塊的寬為16像素,且在豎直方向上具有8個像素,即圖像塊的高為8像素。
在使用CU的PU的幀內預測性或幀間預測性解碼之後,視訊編碼器20可計算CU的TU的殘差數據。PU可包括空間域(也稱作像素域)中的像素資料,且TU可包括在將變換(例如,離散余弦變換(discrete cosine transform,DCT)、整數變換、小波變換或概念上類似的變換)應用於殘差視訊資料之後變換域中的係數。殘差數據可對應於未經編碼圖像的像素與對應於PU的預測值之間的像素差。視訊編碼器20可形成包含CU的殘差數據的TU,且接著變換TU以產生CU的變換係數。
本申請實施例的下文將詳細介紹視訊編碼或解碼中幀間預測過程的各種方法實例來得到當前圖像塊的最佳前向參考塊的採樣點的採樣值和當前圖像塊的最佳後向參考塊的採樣點的採樣值,進而預測當前圖像塊的採樣點的採樣值。圖像塊指一個二維採樣點陣列,可以是正方形陣列,也可以是矩形陣列,例如一個4x4大小的圖像塊可看做4x4共16個採樣點構成的方形採樣點陣列。圖像塊內信號指圖像塊內採樣點的採樣值。此外,採樣點還可以稱為像素點或者像素,在本發明檔中將不加區分的使用。相應的,採樣點的值也可以稱為像素值,在本申請中將不加區分的使用。圖像也可以表示為一個二維採樣點陣列,採用與圖像塊類似的方法標記。
在任何變換以產生變換係數之後,視訊編碼器20可執行變換係數的量化。量化示例性地指對係數進行量化以可能減少用以表示係數的資料的量從而提供進一步壓縮的過程。量化過程可減少與係數中的一些或全部相關聯的位元深度。例如,可在量化期間將n位值降值舍位到m位值,其中n大於m。
JEM模型對視訊圖像的編碼結構進行了進一步的改進,具體的,被稱為“四叉樹結合二叉樹”(QTBT)的塊編碼結構被引入進來。QTBT結構摒棄了HEVC中的CU,PU,TU等概念,支持更靈活的CU劃分形狀,一個CU可以正方形,也可以是長方形。一個CTU首先進行四叉樹劃分,該四叉樹的葉節點進一步進行二叉樹劃分。同時,在二叉樹劃分中存在兩種劃分模式,對稱水準分割和對稱豎直分割。二叉樹的葉節點被稱為CU,JEM的CU在預測和變換的過程中都不可以被進一步劃分,也就是說JEM的CU,PU,TU具有相同的塊大小。在現階段的JEM中,CTU的最大尺寸為256×256亮度像素。
在一些可行的實施方式中,視訊編碼器20可利用預定義掃描次序來掃描經量化變換係數以產生可經熵編碼的序列化向量。在其它可行的實施方式中,視訊編碼器20可執行自我調整性掃描。在掃描經量化變換係數以形成一維向量之後,視訊編碼器20可根據上下文自我調整性可變長度解碼(CAVLC)、上下文自我調整性二進位算術解碼(CABAC)、基於語法的上下文自我調整性二進位算術解碼(SBAC)、概率區間分割熵(PIPE)解碼或其他熵解碼方法來熵解碼一維向量。視訊編碼器20也可熵編碼與經編碼視訊資料相關聯的語法元素以供視訊解碼器30用於解碼視訊資料。
圖2A為本申請實施例中視訊編碼器20的一種示意性框圖。一併參閱圖3,視訊編碼器20可執行圖像預測過程,尤其是視訊編碼器20中的運動補償單元44可執行圖像預測過程。
如圖2A所示,視訊編碼器20可以包括:預測模組41、求和器50、變換模組52、量化模組54和熵編碼模組56。在一種示例下,預測模組41可以包括運動估計單元42、運動補償單元44和幀內預測單元46,本申請實施例對預測模組41的內部結構不作限定。可選的,對於混合架構的視訊編碼器,視訊編碼器20也可以包括反量化模組58、反變換模組60和求和器62。
在圖2A的一種可行的實施方式下,視訊編碼器20還可以包括分割單元(未示意)和參考圖像記憶體64,應當理解的是,分割單元和參考圖像記憶體64也可以設置在視訊編碼器20之外; 在另一種可行的實施方式下,視訊編碼器20還可以包括濾波器(未示意)以對塊邊界進行濾波從而從經重構建視訊中去除塊效應偽影。在需要時,濾波器將通常對求和器62的輸出進行濾波。
如圖2A所示,視訊編碼器20接收視訊資料,且分割單元將資料分割成圖像塊。此分割也可包含分割成條帶、圖像塊或其它較大單元,例如根據LCU及CU的四叉樹結構進行圖像塊分割。一般來說,條帶可劃分成多個圖像塊。
預測模組41用於生成當前編碼圖像塊的預測塊。預測模組41可基於編碼品質與代價計算結果(例如,碼率-失真代價,RDcost)選擇當前圖像塊的多個可能解碼模式中的一者,例如多個幀內解碼模式中的一者或多個幀間解碼模式中的一者。預測模組41可將所得經幀內解碼或經幀間解碼塊提供到求和器50以產生殘差塊資料且將所得經幀內解碼或經幀間解碼塊提供到求和器62以重構建經編碼塊從而用作參考圖像。
預測模組41內的運動估計單元42及運動補償單元44執行相對於一個或多個參考圖像中的一個或多個預測塊的當前圖像塊的幀間預測性解碼以提供時間壓縮。運動估計單元42用於根據視訊序列的預定模式確定視訊條帶的幀間預測模式。預定模式可將序列中的視訊條帶指定為P條帶、B條帶或GPB條帶。運動估計單元42及運動補償單元44可高度集成,但為概念目的而分別說明。通過運動估計單元42所執行的運動估計為產生估計圖像塊的運動向量的過程。例如,運動向量可指示當前視訊幀或圖像內的圖像塊的PU相對於參考圖像內的預測塊的位移。
預測塊為依據像素差而被發現為緊密匹配待解碼的圖像塊的PU的塊,像素差可通過絕對差和(SAD)、平方差和(SSD)或其它差度量確定。在一些可行的實施方式中,視訊編碼器20可計算存儲於參考圖像記憶體64中的參考圖像的子整數(sub-integer)像素位置的值。
運動估計單元42通過比較PU的位置與參考圖像的預測塊的位置而計算經幀間解碼條帶中的圖像塊的PU的運動向量。可從第一參考圖像列表(列表0)或第二參考圖像列表(列表1)選擇參考圖像,列表中的每一者識別存儲於參考圖像記憶體64中的一個或多個參考圖像。運動估計單元42將經計算運動向量發送到熵編碼模組56及運動補償單元44。
由運動補償單元44執行的運動補償可涉及基於由運動估計所確定的運動向量提取或產生預測塊,可能執行到子像素精確度的內插。在接收當前圖像塊的PU的運動向量後,運動補償單元44即可在參考圖像列表中的一者中定位運動向量所指向的預測塊。視訊編碼器20通過從正經解碼的當前圖像塊的像素值減去預測塊的像素值來形成殘差圖像塊,從而形成像素差值。像素差值形成塊的殘差數據,且可包含亮度及色度差分量兩者。求和器50表示執行此減法運算的一個或多個元件。運動補償單元44也可產生與圖像塊及視訊條帶相關聯的語法元素以供視訊解碼器30用於解碼視訊條帶的圖像塊。下文將結合圖3、圖10-圖12、圖14-圖17對本申請實施例的圖像預測過程進行詳細的介紹,這裡不再贅述。
預測模組41內的幀內預測單元46可執行相對於在與待解碼的當前塊相同的圖像或條帶中的一個或多個相鄰塊的當前圖像塊的幀內預測性解碼以提供空間壓縮。因此,作為通過運動估計單元42及運動補償單元44執行的幀間預測(如前文所描述)的替代,幀內預測單元46可幀內預測當前塊。明確地說,幀內預測單元46可確定用以編碼當前塊的幀內預測模式。在一些可行的實施方式中,幀內預測單元46可(例如)在單獨編碼遍歷期間使用各種幀內預測模式來編碼當前塊,且幀內預測單元46(或在一些可行的實施方式中,模式選擇單元40)可從經測試模式選擇使用的適當幀內預測模式。
在預測模組41經由幀間預測或幀內預測產生當前圖像塊的預測塊之後,視訊編碼器20通過從當前圖像塊減去預測塊而形成殘差圖像塊。殘差塊中的殘差視訊資料可包含於一個或多個TU中且應用於變換模組52。變換模組52用於對當前編碼圖像塊的原始塊和當前圖像塊的預測塊之間的殘差進行變換。變換模組52使用例如離散余弦變換(DCT)或概念上類似的變換(例如,離散正弦變換DST)將殘差數據變換成殘差變換係數。變換模組52可將殘差視訊資料從像素域轉換到變換域(例如,頻域)。
變換模組52可將所得變換係數發送到量化模組54。量化模組54對變換係數進行量化以進一步減小碼率。在一些可行的實施方式中,量化模組54可接著執行包含經量化變換係數的矩陣的掃描。替代地,熵編碼模組56可執行掃描。
在量化之後,熵編碼模組56可熵編碼經量化變換係數。例如,熵編碼模組56可執行上下文自我調整性可變長度解碼(CAVLC)、上下文自我調整性二進位算術解碼(CABAC)、基於語法的上下文自我調整性二進位算術解碼(SBAC)、概率區間分割熵(PIPE)解碼或另一熵編碼方法或技術。熵編碼模組56也可熵編碼正經編碼的當前視訊條帶的運動向量及其它語法元素。在通過熵編碼模組56進行熵編碼之後,可將經編碼碼流傳輸到視訊解碼器30或存檔以供稍後傳輸或由視訊解碼器30檢索。
反量化模組58及反變換模組60分別應用反量化及反變換,以在像素域中重構建殘差塊以供稍後用作參考圖像的參考塊。求和器62將經重構建殘差塊與通過預測模組41所產生的預測塊相加以產生重建塊,並作為參考塊以供存儲於參考圖像記憶體64中。這些參考塊可由運動估計單元42及運動補償單元44用作參考塊以幀間預測後續視訊幀或圖像中的塊。
應當理解的是,視訊編碼器20的其它的結構變化可用於編碼視訊流。例如,對於某些圖像塊或者圖像幀,視訊編碼器20可以直接地量化殘差信號而不需要經變換模組52處理,相應地也不需要經反變換模組58處理;或者,對於某些圖像塊或者圖像幀,視訊編碼器20沒有產生殘差數據,相應地不需要經變換模組52、量化模組54、反量化模組58和反變換模組60處理;或者,視訊編碼器20可以將經重構圖像塊作為參考塊直接地進行存儲而不需要經濾波器單元處理;或者,視訊編碼器20中量化模組54和反量化模組58可以合併在一起;或者,視訊編碼器20中變換模組52和反變換模組60可以合併在一起;或者,求和器50和求和器62可以合併在一起。
圖2B為本申請實施例中視訊解碼器30的一種示意性框圖。一併參閱圖3、圖10-圖12、圖14-圖17,視訊解碼器30可執行圖像預測過程,尤其是視訊解碼器30中的運動補償單元82可執行圖像預測過程。
如圖2B所示,視訊解碼器30可以包括熵解碼模組80、預測處理模組81、反量化模組86、反變換模組88和重建模組90。在一種示例下,預測模組81可以包括運動補償單元82和幀內預測單元84,本申請實施例對此不作限定。
在一種可行的實施方式中,視訊解碼器30還可以包括參考圖像記憶體92。應當理解的是,參考圖像記憶體92也可以設置在視訊解碼器30之外。在一些可行的實施方式中,視訊解碼器30可執行與關於來自圖2A的視訊編碼器20描述的編碼流程的示例性地互逆的解碼流程。
在解碼過程期間,視訊解碼器30從視訊編碼器20接收表示經編碼視訊條帶的圖像塊及相關聯的語法元素的經編碼視訊碼流。視訊解碼器30可在視訊條帶層級和/或圖像塊層級處接收語法元素。視訊解碼器30的熵解碼模組80對位元流/碼流進行熵解碼以產生經量化的係數和一些語法元素。熵解碼模組80將語法元素轉發到預測處理模組81。本申請中,在一種示例下,這裡的語法元素可以包括與當前圖像塊相關的幀間預測資料,該幀間預測資料可以包括索引標識block_based_index,以指示當前圖像塊使用的是哪一個運動資訊(亦稱為當前圖像塊的初始運動資訊);可選的,還可以包括開關標誌block_based_enable_flag,以表示是否對當前圖像塊採用圖3或圖14進行圖像預測(換言之,即以表示是否對當前圖像塊採用本申請提出的MVD鏡像約束條件下進行幀間預測),或是否對當前圖像塊採用圖12或圖16進行圖像預測(換言之,即以表示是否對當前圖像塊採用本申請提出的基於時域距離的比例關係下進行幀間預測)。
當視訊條帶被解碼為經幀內解碼(I)條帶時,預測處理模組81的幀內預測單元84可基於發信號通知的幀內預測模式和來自當前幀或圖像的先前經解碼塊的資料而產生當前視訊條帶的圖像塊的預測塊。當視訊條帶被解碼為經幀間解碼(即,B或P)條帶時,預測處理模組81的運動補償單元82可基於從熵解碼模組82接收到的語法元素,確定用於對當前視訊條帶的當前圖像塊進行解碼的幀間預測模式,基於確定的幀間預測模式,對所述當前圖像塊進行解碼(例如執行幀間預測)。具體的,運動補償單元82可確定對當前視訊條帶的當前圖像塊採用哪一種圖像預測方法進行預測,例如語法元素指示採用基於MVD鏡像約束條件的圖像預測方法來對當前圖像塊進行預測,預測或修正當前視訊條帶的當前圖像塊的運動資訊,從而通過運動補償過程使用預測出的當前圖像塊的運動資訊來獲取或生成當前圖像塊的預測塊。這裡的運動資訊可以包括參考圖像資訊和運動向量,其中參考圖像資訊可以包括但不限於單向/雙向預測資訊,參考圖像列表號和參考圖像列表對應的參考圖像索引。對於幀間預測,可從參考圖像列表中的一者內的參考圖像中的一者產生預測塊。視訊解碼器30可基於存儲在參考圖像記憶體92中的參考圖像來建構參考圖像列表,即列表0和列表1。當前圖像的參考幀索引可包含於參考幀列表0和列表1中的一或多者中。在一些實例中,可以是視訊編碼器20發信號通知指示採用哪一種新的圖像預測方法。
本實施例中,預測處理模組81用於生成當前解碼圖像塊的預測塊;具體的,在視訊條帶經解碼為經幀內解碼(I)條帶時,預測模組81的幀內預測單元84可基於用信號發送的幀內預測模式及來自當前幀或圖像的先前經解碼圖像塊的資料而產生當前視訊條帶的圖像塊的預測塊。在視訊圖像經解碼為經幀間解碼(例如,B、P或GPB) 條帶時,預測模組81的運動補償單元82基於從熵編碼單元80所接收的運動向量及其它語法元素而產生當前視訊圖像的圖像塊的預測塊。
反量化模組86將在位流中提供且由熵解碼模組80解碼的經量化變換係數逆量化,即去量化。逆量化過程可包括:使用由視訊編碼器20針對視訊條帶中的每個圖像塊計算的量化參數來確定應施加的量化程度以及同樣地確定應施加的逆量化程度。反變換模組88將逆變換應用於變換係數,例如逆DCT、逆整數變換或概念上類似的逆變換過程,以便產生像素域中的殘差塊。
在運動補償單元82產生用於當前圖像塊的預測塊之後,視訊解碼器30通過將來自反變換模組88的殘差塊與由運動補償單元82產生的對應預測塊求和以得到重建的塊,即經解碼圖像塊。求和器90表示執行此求和操作的組件。在需要時,還可使用環路濾波器(在解碼環路中或在解碼環路之後)來使像素轉變平滑或者以其它方式改進視訊品質。濾波器單元(未示意)可以表示一或多個環路濾波器,例如去塊濾波器、自我調整環路濾波器(ALF)以及樣本自我調整偏移(SAO)濾波器。並且,還可以將給定幀或圖像中的經解碼圖像塊存儲在經解碼圖像緩衝器92中,經解碼圖像緩衝器92存儲用於後續運動補償的參考圖像。經解碼圖像緩衝器92可為記憶體的一部分,其還可以存儲經解碼視訊,以供稍後在顯示裝置 (例如圖1的顯示裝置32) 上呈現,或可與此類記憶體分開。
應當理解的是,視訊解碼器30的其它結構變化可用於解碼經編碼視訊位元流。例如,視訊解碼器30可以不經濾波器單元處理而生成輸出視訊流;或者,對於某些圖像塊或者圖像幀,視訊解碼器30的熵解碼模組80沒有解碼出經量化的係數,相應地不需要經反量化模組86和反變換模組88處理。例如,視訊解碼器30中反量化模組86和反變換模組88可以合併在一起。
圖3是本申請實施例的圖像預測方法的示意性流程圖。圖3所示的方法可以由視訊編解碼裝置、視訊編碼器、視訊編解碼系統以及其它具有視訊編解碼功能的設備來執行。圖3所示的方法既可以發生在編碼過程,也可以發生在解碼過程,更具體地,圖3所示的方法可以發生在編解碼時的幀間預測過程。過程300可由視訊編碼器20或視訊解碼器30執行,具體的,可以由視訊編碼器20或視訊解碼器30的運動補償單元來執行。假設具有多個視訊幀的視訊資料流程正在使用視訊編碼器或者視訊解碼器,執行包括如下步驟的過程300來預測當前視訊幀的當前圖像塊的像素值的預測值; 圖3所示的方法包括步驟301至步驟304,下面對步驟301至步驟304進行詳細的介紹。
301、獲取當前圖像塊的初始運動資訊。
這裡的圖像塊可以是待處理圖像中的一個圖像塊,也可以是待處理圖像中的一個子圖像。另外,這裡的圖像塊可以是編碼過程中待編碼的圖像塊,也可以是解碼過程中待解碼的圖像塊。
另外,上述初始運動資訊可以包括預測方向的指示資訊(通常為雙向預測),指向參考圖像塊的運動向量(通常為相鄰塊的運動向量)和參考圖像塊所在圖像資訊(通常理解為參考圖像資訊),其中,運動向量包括前向運動向量和後向運動向量,參考圖像資訊包括前向預測參考圖像塊和後向預測參考圖像塊的參考幀索引資訊。
在獲取圖像塊的初始運動資訊時,可以採用多種方式進行,例如,可以採用下面的方式一和方式二來獲取圖像塊的初始運動資訊。
方式一: 一併參閱圖4和圖5,在幀間預測的合併模式下,根據當前圖像塊的相鄰塊的運動資訊構建候選運動資訊列表,並從該候選運動資訊列表中選擇某個候選運動資訊作為當前圖像塊的初始運動資訊。其中,候選運動資訊列表包含運動向量、參考幀索引資訊等等。例如,選擇相鄰塊A0的運動資訊(參見圖5中index為0的候選運動資訊)作為當前圖像塊的初始運動資訊,具體地,將A0的前向運動向量作為當前塊的前向預測運動向量,將A0的後向運動向量作為當前塊的後向預測運動向量。 方式二: 在幀間預測的非合併模式下,根據當前圖像塊的相鄰塊的運動資訊構建運動向量預測值列表,並從該運動向量預測值列表中選擇某個運動向量作為當前圖像塊的運動向量預測值。在這種情況下,當前圖像塊的運動向量可以為相鄰塊的運動向量值,也可以為所選取的相鄰塊的運動向量與當前圖像塊的運動向量差的和,其中,運動向量差通過對當前圖像塊進行運動估計所得到的運動向量與所選取的相鄰塊的運動向量的差。例如,選擇運動向量預測值列表中的索引1和2對應的運動向量作為當前圖像塊的前向運動向量和後向運動向量。
應理解,上述方式一和方式二只是獲取圖像塊的初始運動資訊的具體兩種方式,本申請對獲取預測塊的運動資訊的方式不做限定,任何能夠獲取圖像塊的初始運動資訊的方式都在本申請的保護範圍內。
302、基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數。
一併參閱圖6,本申請實施例涉及的當前圖像塊所屬的當前圖像存在一前一後的兩個參考圖像,即前向參考圖像和後向參考圖像。
在一種示例下,所述初始運動資訊包括前向預測方向的第一運動向量和第一參考圖像索引,以及後向預測方向的第二運動向量和第二參考圖像索引; 相應地,步驟302可以包括: 根據所述第一運動向量和所述當前圖像塊的位置在所述第一參考圖像索引對應的前向參考圖像中確定當前圖像塊的初始前向參考塊的位置;以所述初始前向參考塊的位置作為第一搜索起點(以圖8中的(0, 0)示意),在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置; 根據所述第二運動向量和所述當前圖像塊的位置在所述第二參考圖像索引對應的後向參考圖像中確定當前圖像塊的初始後向參考塊的位置;以所述初始後向參考塊的位置作為第二搜索起點,在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置。
在一種示例下,一併參閱圖7,所述N個前向參考塊的位置包括一個初始前向參考塊的位置(以(0,0)示意)和(N-1)個候選前向參考塊的位置(以(0,-1)(-1,-1)、(-1,1)、(1,-1)和(1,1)等示意),每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離(如圖8所示)或者分數像素距離,其中N=9;或者,所述N個後向參考塊的位置包括一個初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離,其中N=9。
一併參閱圖8,在運動估計或者運動補償過程中,MV的精度可以是分數像素精度(例如,1/2像素精度,或者1/4像素精度)。如果圖像中只有整數像素的像素值,並且當前MV的精度為分數像素精度,則需要通過參考圖像的整像素位置的像素值,採用插值濾波器進行插值,得到分像素位置的像素值,作為當前塊的預測塊的值。具體插值操作過程與使用的插值濾波器有關,一般來說,可以對參考像素點周圍的整數像素點的像素值做線性加權得到參考像素點的值。常用的插值濾波器有4抽頭,6抽頭,8抽頭等。
如圖7所示,Ai, j為整像素位置的像素點,其位元寬為bitDepth。a0,0, b0,0, c0,0, d0,0, h0,0, n0,0 e0,0, i0,0, p0,0, f0,0, j0,0, q0,0, g0,0, k0,0, 和r0,0為分像素位置的像素點。若採用8抽頭插值濾波器,則a0,0可以通過下面的公式計算得到: a0,0=(C 0*A −3,0+C 1*A −2,0+C 2*A −1,0+C 3*A 0,0+C 4*A 1,0+C 5*A 2,0+C 6*A 3,0+C 7*A 4,0)>> shift1
在上述公式中,C k, k=0,1,…, 7為插值濾波器的係數,如果插值濾波器的係數和為2的N次方,那麼,插值濾波器的增益為N,例如,N為6表示插值濾波器增益為6比特。shift1為右移位數,shift1可以設置為bitDepth-8,其中,bitDepth為目標位元寬,這樣根據上述公式最終得到的預測塊的像素值的位元寬為bitDepth+6-shift1=14比特。
303、基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移成鏡像關係,所述第一位置偏移表示所述前向參考塊的位置相對于初始前向參考塊的位置的位置偏移,所述第二位置偏移表示所述後向參考塊的位置相對于初始後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N。
一併參閱圖9,前向參考圖像Ref0中的候選前向參考塊904的位置相對于初始前向參考塊902(即前向搜索基點)的位置的位置偏移MVD0(delta0x,delta0y)。後向參考圖像Ref1中的候選後向參考塊905的位置相對于初始後向參考塊903(即後向搜索基點)的位置的位置偏移MVD1(delta1x,delta1y)。 MVD0= - MVD1; 即: delta0x = - delta1x; delta0y = - delta1y;
在不同示例下,步驟303可以包括: 從M對參考塊(一個前向參考塊和一個後向參考塊)的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置;或者從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置,其中所述M小於或等於N。另外,在比較前向參考塊的像素值與後向參考塊的像素值的差異時,可以採用絕對誤差和(Sum of absolute differences, SAD)、絕對變換誤差和(Sum of absolute transformation differences,SATD)或者絕對平方差和等來衡量。
304、基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。
在一種示例下,步驟304中,對所述目標前向參考塊的像素值和所述目標後向參考塊的像素值進行加權處理,得到所述當前圖像塊的像素值的預測值。
可選地,作為一個實施例,圖3所示的方法還包括:獲得當前圖像塊的更新的運動資訊,所述更新的運動資訊包括更新的前向運動向量和更新的後向運動向量,其中所述更新的前向運動向量指向所述目標前向參考塊的位置,所述更新的後向運動向量指向所述目標後向參考塊的位置。其中當前圖像塊的更新的運動資訊可以是基於所述目標前向參考塊的位置、目標後向參考塊的位置和當前圖像塊的位置得到的,或者,可以是基於所述確定的一對參考塊位置對應的第一位置偏移和第二位置偏移得到的。
通過對圖像塊的運動向量進行了更新,這樣就使得在進行下次圖像預測時可以根據該圖像塊對其它圖像塊進行有效的預測。
可見,本申請實施例中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移成鏡像關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。
下面結合圖10對本申請實施例的圖像預測方法進行詳細的描述。
圖10是本申請實施例的圖像預測方法的示意性流程圖。圖10所示的方法可以由視訊編解碼裝置、視訊編碼器、視訊編解碼系統以及其它具有視訊編解碼功能的設備來執行。圖10所示的方法既可以發生在編碼過程,也可以發生在解碼過程,更具體地,圖10所示的方法可以發生在編解碼時的幀間預測過程。
圖10所示的方法包括步驟1001至步驟1007,下面對步驟1001至步驟1007進行詳細的介紹。
1001、獲得當前塊的初始運動資訊。
例如,對於幀間預測/編碼模式為merge的圖像塊,根據merge的index從merge candidate list中獲取一組運動資訊,此運動資訊便為當前塊的初始運動資訊。例如,對於幀間預測/編碼模式為AMVP的圖像塊,根據AMVP的index從MVP candidate list中獲取MVP,對該MVP與碼流中包含的MVD求和得到當前塊的MV。初始運動資訊包括參考圖像指示資訊以及運動向量,通過參考圖像指示資訊確定前向參考圖像以及後向參考圖像。通過運動向量確定前向參考塊的位置以及後向參考塊的位置。
1002、在前向參考圖像中確定當前圖像塊的起始前向參考塊的位置,所述起始前向參考塊的位置為前向參考圖像中的搜索起點(亦稱為搜索基點); 具體地,根據前向MV以及當前塊的位置資訊,獲得前向參考圖像中的搜索基點(下文稱為第一搜索基點)。例如,前向MV信息為(MV0x,MV0y)。當前塊的位置資訊為(B0x,B0y)。則前向參考圖像的第一搜索基點為(MV0x+B0x, MV0y+B0y)。
1003、在後向參考圖像中確定當前圖像塊的起始後向參考塊的位置,所述起始後向參考塊的位置為後向參考圖像中的搜索起點; 具體地,根據後向MV以及當前塊的位置資訊,獲得後向參考圖像中的搜索基點(下文稱為第二搜索基點)。例如,後向MV為(MV1x,MV1y)。當前塊的位置資訊為(B0x,B0y)。則後向參考圖像的第二搜索基點為(MV1x+B0x, MV1y+B0y)。
1004、在MVD鏡像約束條件下,確定最匹配的一對參考塊(即一個前向參考塊和一個後向參考塊)的位置,並得到最佳前向運動向量和最佳後向運動向量; 這裡的MVD鏡像約束條件可以解釋為,前向參考圖像中的塊位置相對于前向搜索基點的位置偏移MVD0(delta0x,delta0y)。後向參考圖像中的塊位置相對于後向搜索基點的位置偏移MVD1(delta1x,delta1y)。滿足以下關係: MVD0= - MVD1; 即: delta0x = - delta1x; delta0y = - delta1y;
請參閱圖7,在所述的前向參考圖像中,以搜索基點(以(0,0)示意)為起點,進行整數像素步長的運動搜索。整像素步長是指候選參考塊的位置相對於搜索基點的位置偏移為整數像素距離。需要指出的是,不管搜索基點是否為整數像素點(起始點可以是整像素,或亞像素,如:1/2,1/4,1/8,1/16等),都可以先進行整數像素步長運動搜索,以得到當前圖像塊的前向參考塊的位置。應理解,在以整像素步長進行搜索時,搜索起始點既可以整像素也可以是分像素,例如,整像素,1/2像素,1/4像素,1/8像素以及1/16像素等等。
如圖7所示,以(0,0)點為搜索基點,對搜索基點周圍的8個整數像素步長的搜索點進行搜索,得到對應的候選參考塊的位置。圖7示意出了8個候選參考塊;如果前向參考圖像中前向候選參考塊的位置相對于前向搜索基點的位置的位置偏移為(-1,-1),則後向參考圖像中對應後向候選參考塊的位置相對于後向搜索基點的位置的位置偏移為(1,1)。據此獲得成對的前向候選參考塊以及後向候選參考塊的位置。針對所得一對參考塊的位置,計算對應的兩個候選參考塊之間的匹配代價。取匹配代價最小的前向參考塊和後向參考塊作為最優前向參考塊以及最優後向參考塊,並得到最優前向運動向量和最優後向運動向量。
1005-1006、使用步驟1004所得到的最優前向運動向量進行運動補償過程,得到最優前向參考塊的像素值;使用步驟1004所得到的最優後向運動向量進行運動補償過程,得到最優後向參考塊的像素值。
1007、對所得到的最優前向參考塊的像素值和最優後向參考塊的像素值進行加權,得到當前圖像塊的像素值的預測值。
具體地,例如,可以根據公式(2)得到當前圖像塊的像素值的預測值。 predSamples’[x][y] =(predSamplesL0’[x][y] + predSamplesL1’[x][y] +1 ) >> 1 (2) 其中,predSamplesL0’為最優前向參考塊,predSamplesL1’為最優後向參考塊,predSamples’為當前圖像塊的預測塊,predSamplesL0’[x][y]為最優前向參考塊在像素點(x,y)的像素值,predSamplesL1’[x][y] 為最優後向參考塊在像素點(x,y)的像素值,predSamples’[x][y]為最終預測塊在像素點(x,y)的像素值。
需要注意的是,本申請實施例中,不限定使用哪一種搜索方法,可為任意搜索方法。針對搜索得到的每個前向候選塊,計算所述前向候選塊與步驟4中對應的後向候選塊之間的差異,選擇SAD最小的前向候選塊和其對應的前向運動向量以及後向候選塊和其對應的後向運動向量,作為最優的前向預測塊和對應的最優前向運動向量以及最優的後向預測塊和對應的最優後向運動向量。或者,針對搜索得到的每個後向候選塊,計算所述後向候選塊與步驟4中對應的前向候選塊之間的差異,選擇SAD最小的後向候選塊和其對應的後向運動向量以及前向候選塊和其對應的前向運動向量,作為最優的後向參考塊和對應的最優後向運動向量以及最優的前向參考塊和對應的最優前向運動向量。
需要注意的是,步驟1004中,僅給出了整數像素步長搜索方法的例子。實際上,除了進行整數像素步長搜索以外,還可以使用分數像素步長搜索。例如,在步驟1004進行整數像素步長搜索以後,再進行分數像素步長的搜索。或者,直接進行分數像素步長的搜索。此處並不對具體的搜索方法進行限定。
需要注意的是,本申請實施例中,不限定使用匹配代價計算的方法,例如可以使用SAD準則,也可以使用MR-SAD準則,也可以使用其他準則。另外,計算匹配代價的時候,可以僅使用亮度分量去計算,也可以同時使用亮度和色度分量計算。
需要注意的是,在搜索過程中,如果出現匹配代價為0或者達到預設的門限值時,則可以提前終止遍歷操作或者搜索操作。在此,對搜索方法的提前終止條件不作限定。
應理解,步驟1005與步驟1005的順序不做限制,可以同時進行,也可以先後進行。
可見,相對于現有方法中需要先計算範本匹配塊,使用範本匹配塊分別做前向搜索以及後向搜索,本申請實施例,在尋找匹配塊的過程中,使用前向參考圖像中的候選塊以及後向參考圖像中的候選塊直接計算匹配代價,確定匹配代價最小的兩個塊,簡化了圖像預測流程,在提高圖像預測準確性的同時降低了複雜度。
圖11是本申請實施例的圖像預測方法的示意性流程圖。圖11所示的方法可以由視訊編解碼裝置、視訊編碼器、視訊編解碼系統以及其它具有視訊編解碼功能的設備來執行。圖11所示的方法包括步驟1101至步驟1105,其中步驟1101至1103、1105參見圖10中步驟1001至1003、1007的描述,這裡不再贅述。
本申請實施例相比於圖10所示的實施例的區別為,在搜索過程中,保留並更新當前最優前向參考塊和最優後向參考塊的像素值。在搜索完成以後,可使用當前的最優前向參考塊和最優後向參考塊的像素值計算當前圖像塊的像素值的預測值。
例如,需要遍歷N對參考塊的位置。Costi為第i次的匹配代價,MinCost表示當前最小的匹配代價值。Bfi,Bbi分別為第i次取得的前向參考塊的像素值和後向參考塊的像素值。BestBf,BestBb分別為當前最優的前向參考塊的值。CalCost(M,N)表示塊M和塊N的匹配代價。
當開始搜索時(i=1),MinCost = Cost0= CalCost(Bf0, Bb0),BestBf= Bf0,BestBb= Bb0; 在後續遍歷其他對參考塊時,時刻更新。例如,進行第i(i>1)次搜索時,如果Costi< MinCost,則BestBf= Bfi,BestBb= Bbi; 否則,則不更新。 搜索結束時,使用BestBf,BestBb得到當前塊的像素值的預測值。
圖12是本申請實施例的圖像預測方法的示意性流程圖。圖12所示的方法可以由視訊編解碼裝置、視訊編碼器、視訊編解碼系統以及其它具有視訊編解碼功能的設備來執行。圖12所示的方法既可以發生在編碼過程,也可以發生在解碼過程,更具體地,圖3所示的方法可以發生在編解碼時的幀間預測過程。過程1200可由視訊編碼器20或視訊解碼器30執行,具體的,可以由視訊編碼器20或視訊解碼器30的運動補償單元來執行。假設具有多個視訊幀的視訊資料流程正在使用視訊編碼器或者視訊解碼器,執行包括如下步驟的過程1200來預測當前視訊幀的當前圖像塊的像素值的預測值; 圖12所示的方法包括步驟1201至步驟1204,其中步驟1201、1202和1204參見圖3中步驟301、302和304的描述,這裡不再贅述。
本申請實施例相比於圖3所示的實施例的區別為,步驟1203、基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係,所述第一位置偏移表示所述前向參考塊的位置相對于初始前向參考塊的位置的位置偏移;所述第二位置偏移表示所述後向參考塊的位置相對于初始後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N; 一併參閱圖13,前向參考圖像Ref0中的候選前向參考塊1304的位置相對于初始前向參考塊1302(即前向搜索基點)的位置的位置偏移MVD0(delta0x,delta0y)。後向參考圖像Ref1中的候選後向參考塊1305的位置相對于初始後向參考塊1303(即後向搜索基點)的位置的位置偏移MVD1(delta1x,delta1y)。
在搜索過程中,兩個匹配塊的位置偏移滿足鏡像關係,鏡像關係需要考慮時域間隔。這裡TC,T0,T1分別表示當前幀的時刻,前向參考圖像的時刻,後向參考圖像的時刻。TD0,TD1表示兩個時刻之間的時間間隔。 TD0 = TC-T0 TD1 = TC-T1
具體編解碼過程中,TD0,TD1可以使用圖像序列計數(picture order count,POC)計算。例如: TD0 = POCc - POC0 TD1 = POCc - POC1
這裡,POCc,POC0,POC1分別表示當前圖像的POC,前向參考圖像的POC,以及後向參考圖像的POC。TD0表示當前圖像與前向參考圖像之間的圖像序列計數(picture order count,POC)距離;TD1表示當前圖像與後向參考圖像之間的POC距離。
delta0=(delta0x, delta0y) delta1=(delta1x, delta1y) 考慮時域間隔的鏡像關係描述如下: delta0x = (TD0/TD1)* delta1x; delta0y = (TD0/TD1)* delta1y; 或者 delta0x/ delta1x = (TD0/TD1); delta0y/ delta1y = (TD0/TD1); 可見,本申請實施例中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移具有基於時域距離的比例關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。
上面所述實施例中,搜索過程進行了一次。除此以外,也可以通過反覆運算的方法,進行多輪搜索。具體的,在每輪搜索獲得前向參考塊和後向參考塊以後,可以根據當前經修正的MV,再進行一輪或者多輪搜索。
下面結合圖14對本申請實施例的圖像預測方法1400的流程進行詳細的介紹。與圖3所示的方法類似,圖14所示的方法也可以由視訊編解碼裝置、視訊編碼器、視訊編解碼系統以及其它具有視訊編解碼功能的設備來執行。圖14所示的方法可以發生在編碼過程,也可以發生在解碼過程,具體地,圖14所示的方法可以發生在編碼過程或者解碼時的幀間預測過程。
圖14所示的方法1400具體包括步驟1401至步驟1404,如下: 1401、獲取當前圖像塊的第i輪運動資訊; 這裡的圖像塊可以是待處理圖像中的一個圖像塊,也可以是待處理圖像中的一個子圖像。另外,這裡的圖像塊可以是編碼過程中待編碼的圖像塊,也可以是解碼過程中待解碼的圖像塊。 如果i=1,則所述第i輪運動資訊為當前圖像塊的初始運動資訊; 如果i>1,則所述第i輪運動資訊包括:指向第i-1輪目標前向參考塊的位置的前向運動向量和指向第i-1輪目標後向參考塊的位置的後向運動向量。
另外,上述初始運動資訊可以包括預測方向的指示資訊(通常為雙向預測),指向參考圖像塊的運動向量(通常為相鄰塊的運動向量)和參考圖像塊所在圖像資訊(通常理解為參考圖像資訊),其中,運動向量包括前向運動向量和後向運動向量,參考圖像資訊包括前向預測參考圖像塊和後向預測參考圖像塊的參考幀索引資訊。
在獲取圖像塊的初始運動資訊時,可以採用多種方式進行,例如,可以採用下面的方式一和方式二來獲取圖像塊的初始運動資訊。
方式一: 一併參閱圖4和圖5,在幀間預測的合併模式下,根據當前圖像塊的相鄰塊的運動資訊構建候選運動資訊列表,並從該候選運動資訊列表中選擇某個候選運動資訊作為當前圖像塊的初始運動資訊。其中,候選運動資訊列表包含運動向量、參考幀索引資訊等等。例如,選擇相鄰塊A0的運動資訊(參見圖5中index為0的候選運動資訊)作為當前圖像塊的初始運動資訊,具體地,將A0的前向運動向量作為當前塊的前向預測運動向量,將A0的後向運動向量作為當前塊的後向預測運動向量。
方式二: 在幀間預測的非合併模式下,根據當前圖像塊的相鄰塊的運動資訊構建運動向量預測值列表,並從該運動向量預測值列表中選擇某個運動向量作為當前圖像塊的運動向量預測值。在這種情況下,當前圖像塊的運動向量可以為相鄰塊的運動向量值,也可以為所選取的相鄰塊的運動向量與當前圖像塊的運動向量差的和,其中,運動向量差通過對當前圖像塊進行運動估計所得到的運動向量與所選取的相鄰塊的運動向量的差。例如,選擇運動向量預測值列表中的索引1和2對應的運動向量作為當前圖像塊的前向運動向量和後向運動向量。
應理解,上述方式一和方式二只是獲取圖像塊的初始運動資訊的具體兩種方式,本申請對獲取預測塊的運動資訊的方式不做限定,任何能夠獲取圖像塊的初始運動資訊的方式都在本申請的保護範圍內。
1402、根據所述第i輪運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數。
在一種示例下,所述第i輪運動資訊包括前向運動向量和前向參考圖像索引,以及後向運動向量和後向參考圖像索引; 相應地,步驟1402可以包括: 根據所述前向運動向量和所述當前圖像塊的位置在所述前向參考圖像索引對應的前向參考圖像中確定當前圖像塊的第i-1輪目標前向參考塊的位置;以所述i-1輪目標前向參考塊的位置作為第i f搜索起點,在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置; 根據所述後向運動向量和所述當前圖像塊的位置在所述後向參考圖像索引對應的後向參考圖像中確定當前圖像塊的第i-1輪目標後向參考塊的位置;以所述i-1輪目標後向參考塊的位置作為第i b搜索起點在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置。
在一種示例下,一併參閱圖7,所述N個前向參考塊的位置包括第i-1輪目標前向參考塊的位置(以(0,0)示意)和(N-1)個候選前向參考塊的位置(以(0,-1)(-1,-1)、(-1,1)、(1,-1)和(1,1)等示意),每個候選前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移為整數像素距離(如圖8所示)或者分數像素距離,其中N=9;或者,所述N個後向參考塊的位置包括第i-1輪目標後向參考塊的位置和所述(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述第i-1輪目標後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離,其中N=9。
1403、基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移成鏡像關係,所述第一位置偏移表示所述前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移,所述第二位置偏移表示所述後向參考塊的位置相對於第i-1輪目標後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N。
其中,所述第一位置偏移與第二位置偏移成鏡像關係,可以理解為:所述第一位置偏移的方向與第二位置偏移的方向相反,且第一位置偏移的幅值與第二位置偏移的幅值相同。
一併參閱圖9,前向參考圖像Ref0中的候選前向參考塊904的位置相對於第i-1輪目標前向參考塊902(即前向搜索基點)的位置的位置偏移MVD0(delta0x,delta0y)。後向參考圖像Ref1中的候選後向參考塊905的位置相對於第i-1輪目標後向參考塊903(即後向搜索基點)的位置的位置偏移MVD1(delta1x,delta1y)。
MVD0= - MVD1; 即: delta0x = - delta1x; delta0y = - delta1y; 在不同示例下,步驟1403可以包括: 從M對參考塊(一個前向參考塊和一個後向參考塊)的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置;或者,從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及當前圖像塊的第i輪目標後向參考塊的位置,其中所述M小於或等於N。另外,在比較前向參考塊的像素值與後向參考塊的像素值的差異時,可以採用絕對誤差和(Sum of absolute differences, SAD)、絕對變換誤差和(Sum of absolute transformation differences,SATD)或者絕對平方差和等來衡量。
1404、基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。
在一種示例下,步驟1404中,對所述目標前向參考塊的像素值和所述目標後向參考塊的像素值進行加權處理,得到所述當前圖像塊的像素值的預測值。另外,在本申請中,還可以根據其它方法來得到當前圖像塊的像素值的預測值,本申請對此不做限定。
通過對圖像塊的運動向量進行了更新,比如初始運動資訊更新為第2輪運動資訊,其中第2輪運動資訊包括:指向第1輪目標前向參考塊的位置的前向運動向量和指向第1輪目標後向參考塊的位置的後向運動向量,…,這樣就使得在進行下次圖像預測時可以根據該圖像塊對其它圖像塊進行有效的預測。
可見,本申請實施例中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移成鏡像關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。此外,增加反覆運算次數,可以進一步提高修正MV的準確度,從而進一步提高編解碼性能。
下面結合圖15對本申請實施例的圖像預測方法的流程進行詳細的介紹。圖15所示的方法也可以由視訊編解碼裝置、視訊編碼器、視訊編解碼系統以及其它具有視訊編解碼功能的設備來執行。圖15所示的方法可以發生在編碼過程,也可以發生在解碼過程,具體地,圖15所示的方法可以發生在編碼過程或者解碼時的幀間預測過程。
圖15所示的方法具體包括步驟1501至步驟1508,下面分別對步驟1501至步驟1508進行詳細的描述。
1501、獲取當前圖像塊的初始運動資訊; 例如,如果是首輪搜索,則使用當前塊的初始運動資訊。例如,對於編碼模式為merge的圖像塊,根據merge的index從merge candidate list中獲取運動資訊,此運動資訊便為當前塊的初始運動資訊。例如,對於編碼模式為AMVP的圖像塊,根據AMVP的index從MVP candidate list中獲取MVP,對該MVP與碼流中包含的MVD求和得到當前塊的MV。如果不是首輪搜索,則使用上一輪更新的MV信息。運動資訊包括參考圖像指示資訊以及運動向量資訊。通過參考圖像指示資訊確定前向參考圖像以及後向參考圖像。通過運動向量資訊確定前向參考塊的位置以及後向參考塊的位置。
1502、確定前向參考圖像中的搜索基點; 根據前向MV資訊以及當前塊的位置資訊,確定前向參考圖像中的搜索基點。具體與圖10或11的實施例的過程類似。例如,前向MV信息為(MV0x,MV0y),當前塊的位置資訊為(B0x,B0y),則前向參考圖像中的搜索基點為(MV0x+B0x, MV0y+B0y)。
1503、確定後向參考圖像中的搜索基點 根據後向MV資訊以及當前塊的位置資訊,確定後向參考圖像中的搜索基點。具體與圖10或11的實施例的過程類似。例如,後向MV信息為(MV1x,MV1y),當前塊的位置資訊為(B0x,B0y),則後向參考圖像的搜索基點為(MV1x+B0x, MV1y+B0y)。
1504、在前向參考圖像、後向參考圖像中,確定MVD鏡像約束條件下最匹配的一對參考塊(即一個前向參考塊和一個後向參考塊)的位置,並得到當前圖像塊的經修正的前向運動向量和經修正的後向運動向量; 具體的搜索步驟與圖10或11的實施例的過程類似,這裡不再贅述。
1505、判斷是否達到反覆運算終止條件,如果沒有達到,則執行步驟1502和1503。否則,執行步驟1506和1507。
這裡並不限定反覆運算搜索的終止條件的設計,例如可以遍歷完設定的反覆運算次數L,或者達到其他的反覆運算終止條件。例如:如果當前反覆運算操作結果以後,出現MVD0接近或等於0和MVD1接近或等於0的情況,例如MVD0=(0,0),MVD1=(0,0),則可以終止反覆運算操作。
其中,L為預設值,L為大於1的整數。L可以在對圖像進行預測之前預先設置好的數值,L也可以根據圖像預測的精度以及搜索預測塊的複雜度來設置L的數值,L也可以根據歷史經驗值來設定,或者L也可以根據中間搜索過程中的結果的驗證情況來確定。
例如,在本實施例中一共以整像素步長進行2次搜索,其中,在第一次搜索時,可以以初始前向參考塊的位置作為搜索基點,在前向參考圖像(亦稱為前向參考區域)中確定(N-1)個候選前向參考塊的位置;以及以初始後向參考塊的位置作為搜索基點,在後向參考圖像(亦稱為前向參考區域)中確定(N-1)個候選後向參考塊的位置,針對N對參考塊的位置中的一對或多對參考塊位置,計算對應的兩個參考塊的匹配代價,比如,計算初始前向參考塊與初始後向參考塊的匹配代價,以及計算滿足MVD鏡像約束條件的一個候選前向參考塊和一個候選後向參考塊的匹配代價,從而得到第一次搜索的第1輪目標前向參考塊和第1輪目標後向參考塊的位置,進而得到更新的運動資訊,其包括:表示當前圖像塊的位置指向第1輪目標前向參考塊的位置的前向運動向量和表示當前圖像塊的位置指向第1輪目標後向參考塊的位置的後向運動向量。應當理解的是,更新的運動資訊與初始運動資訊中參考幀索引等資訊相同。接下來再進行第二次搜索,以第1輪目標前向參考塊的位置作為搜索基點,在前向參考圖像(亦稱為前向參考區域)中確定(N-1)個候選前向參考塊的位置;以及以第1輪目標後向參考塊的位置作為搜索基點,在後向參考圖像(亦稱為前向參考區域)中確定(N-1)個候選後向參考塊的位置,針對N對參考塊的位置中的一對或多對參考塊位置,計算對應的兩個參考塊的匹配代價,比如,計算第1輪目標前向參考塊與第1輪目標後向參考塊的匹配代價,計算滿足MVD鏡像約束條件的一個候選前向參考塊和一個候選後向參考塊的匹配代價,從而得到第二次搜索的第2輪目標前向參考塊和第2輪目標後向參考塊的位置,進而得到更新的運動資訊,其包括:表示當前圖像塊的位置指向第2輪目標前向參考塊的位置的前向運動向量和表示當前圖像塊的位置指向第2輪目標後向參考塊的位置的後向運動向量。應當理解的是,更新的運動資訊與初始運動資訊中參考幀索引等其它資訊相同。當預設的反覆運算次數L=2時,這裡的第二次搜索過程中的,第2輪目標前向參考塊和第2輪目標後向參考塊就是最終得到的目標前向參考塊和目標後向參考塊(亦稱為最優前向參考塊和最優後向參考塊)。
1506至1507、使用步驟1504所得到的最優前向運動向量進行運動補償過程,以得到最優前向參考塊的像素值;使用步驟1504所得到的最優後向運動向量進行運動補償過程,以得到最優後向參考塊的像素值。
1508、根據步驟1506和1507中所得到的最優前向參考塊的像素值和最優後向參考塊的像素值,獲得當前圖像塊的像素值的預測值。
在步驟1504中,在前向參考圖像或者後向參考圖像中進行搜索時可以以整像素步長進行搜索(或者稱為運動搜索),以得到至少一個前向參考塊的位置以及至少一個後向參考塊的位置。在以整像素步長進行搜索時,搜索起始點既可以整像素也可以是分像素,例如,整像素,1/2像素,1/4像素,1/8像素以及1/16像素等等。
另外,在步驟1504中搜索至少一個前向參考塊的位置和至少一個後向參考塊的位置時,也可以直接以分像素步長進行搜索,或者,既進行整像素步長搜索又進行分像素步長搜索。本申請對搜索方法不做限定。
在步驟1504中,針對每對參考塊的位址,在計算成對應關係的前向參考塊的像素值與對應的一個後向參考塊的像素值的差異時,可以採用SAD、SATD或者絕對平方差和等來衡量成每個前向參考塊的像素值與對應的後向參考塊的像素值的差異。但是本申請不限於此。
在根據最優前向參考塊和最優後向參考塊確定當前圖像塊的像素值的預測值時,可以對步驟1506和步驟1507得到的最優前向參考塊的像素值和最優後向參考塊的像素值進行加權處理,並將加權處理後得到的像素值作為當前圖像塊的像素值的預測值。
具體地,可以根據公式(8)得到當前圖像塊的像素值的預測值。 predSamples’[x][y] =(predSamplesL0’[x][y] + predSamplesL1’[x][y] +1 ) >> 1 (8) 其中,predSamplesL0’[x][y]為最優前向參考塊在像素點(x,y)的像素值,predSamplesL1’[x][y] 為最優後向參考塊在像素點(x,y)的像素值,predSamples’[x][y]為當前圖像塊在像素點(x,y)的像素預測值。
一併參閱圖11,本申請實施例的反覆運算搜索過程中,還可以保留並更新當前最優前向參考塊的像素值和最優後向參考塊的像素值。在搜索完成以後,直接使用當前的最優前向參考塊和最優後向參考塊的像素值計算當前圖像塊的像素值的預測值。在這種實現方式下,步驟1506和1507是可選的步驟。
例如,需要遍歷N對參考塊的位置。Costi為第i次的匹配代價,MinCost表示當前最小的匹配代價值。Bfi,Bbi分別為第i次取得的前向參考塊的像素值和後向參考塊的像素值。BestBf,BestBb分別為當前最優的前向參考塊的像素值。CalCost(M,N)表示塊M和塊N的匹配代價。
當開始搜索時(i=1),MinCost = Cost0= CalCost(Bf0, Bb0),BestBf= Bf0,BestBb= Bb0; 在後續遍歷其他對參考塊時,時刻更新。例如,進行第i(i>1)次搜索時,如果Costi< MinCost,則BestBf= Bfi,BestBb= Bbi; 否則,則不更新。
搜索結束時,使用BestBf,BestBb得到當前塊的像素值的預測值。
上面圖12所示的實施例中,搜索過程進行了一次。除此以外,也可以通過反覆運算的方法,進行多輪搜索。具體的,在每輪搜索獲得前向參考塊和後向參考塊以後,可以根據當前經修正的MV,再進行一輪或者多輪搜索。
下面結合圖16對本申請實施例的圖像預測方法1600的流程進行詳細的介紹。圖16所示的方法也可以由視訊編解碼裝置、視訊編碼器、視訊編解碼系統以及其它具有視訊編解碼功能的設備來執行。圖16所示的方法可以發生在編碼過程,也可以發生在解碼過程,具體地,圖16所示的方法可以發生在編碼過程或者解碼時的幀間預測過程。
圖16所示的方法1600包括步驟1601至步驟1604,其中步驟1601、1602和1604參見圖14中步驟1401、1402和1404的描述,這裡不再贅述。
本申請實施例相比於圖14所示的實施例的區別為,步驟1603、基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係,所述第一位置偏移表示所述前向參考塊的位置相對于初始前向參考塊的位置的位置偏移;所述第二位置偏移表示所述後向參考塊的位置相對于初始後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N; 一併參閱圖13,前向參考圖像Ref0中的候選前向參考塊1304的位置相對于初始前向參考塊1302(即前向搜索基點)的位置的位置偏移MVD0(delta0x,delta0y)。後向參考圖像Ref1中的候選後向參考塊1305的位置相對于初始後向參考塊1303(即後向搜索基點)的位置的位置偏移MVD1(delta1x,delta1y)。
在搜索過程中,兩個匹配塊的位置偏移滿足鏡像關係,鏡像關係需要考慮時域間隔。這裡TC,T0,T1分別表示當前幀的時刻,前向參考圖像的時刻,後向參考圖像的時刻。TD0,TD1表示兩個時刻之間的時間間隔。 TD0 = TC-T0 TD1 = TC-T1
具體編解碼過程中,TD0,TD1可以使用圖像序列計數(picture order count,POC)計算。例如: TD0 = POCc - POC0 TD1 = POCc - POC1
這裡,POCc,POC0,POC1分別表示當前圖像的POC,前向參考圖像的POC,以及後向參考圖像的POC。TD0表示當前圖像與前向參考圖像之間的圖像序列計數(picture order count,POC)距離;TD1表示當前圖像與後向參考圖像之間的POC距離。
delta0=(delta0x, delta0y) delta1=(delta1x, delta1y) 考慮時域間隔的鏡像關係描述如下: delta0x = (TD0/TD1)* delta1x; delta0y = (TD0/TD1)* delta1y; 或者 delta0x/ delta1x = (TD0/TD1); delta0y/ delta1y = (TD0/TD1);
在不同示例下,步驟1603可以包括: 從M對參考塊(一個前向參考塊和一個後向參考塊)的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置;或者,從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及當前圖像塊的第i輪目標後向參考塊的位置,其中所述M小於或等於N。另外,在比較前向參考塊的像素值與後向參考塊的像素值的差異時,可以採用絕對誤差和(Sum of absolute differences, SAD)、絕對變換誤差和(Sum of absolute transformation differences,SATD)或者絕對平方差和等來衡量。
可見,本申請實施例中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,針對所述N對參考塊的位置中的每一對參考塊的位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移具有基於時域距離的比例關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。此外,增加反覆運算次數,可以進一步提高修正MV的準確度,從而進一步提高編解碼性能。
下面結合圖17對本申請實施例的圖像預測方法的流程進行詳細的介紹。圖17所示的方法也可以由視訊編解碼裝置、視訊編碼器、視訊編解碼系統以及其它具有視訊編解碼功能的設備來執行。圖17所示的方法可以發生在編碼過程,也可以發生在解碼過程,具體地,圖17所示的方法可以發生在編碼過程或者解碼時的幀間預測過程。
圖17所示的方法包括步驟1701至步驟1708,其中步驟1701至1703、1705至1708參見圖15中步驟1501至1503、1505至1508的描述,這裡不再贅述。
本申請實施例相比於圖15所示的實施例的區別為, 1704、在MVD基於時域距離的鏡像約束條件下,確定最匹配的一對參考塊(即一個前向參考塊和一個後向參考塊)的位置,並得到當前圖像塊的經修正的前向運動向量和經修正的後向運動向量; 這裡的MVD基於時域距離的鏡像約束條件可以解釋為,前向參考圖像中的塊位置相對于前向搜索基點的位置偏移MVD0(delta0x,delta0y)與後向參考圖像中的塊位置相對于後向搜索基點的位置偏移MVD1(delta1x,delta1y)滿足以下關係: 兩個匹配塊的位置偏移滿足基於時域距離的鏡像關係。這裡TC,T0,T1分別表示當前圖像的時刻,前向參考圖像的時刻,後向參考圖像的時刻。TD0,TD1表示兩個時刻之間的時間間隔。 TD0 = TC-T0 TD1 = TC-T1
具體編解碼過程中,TD0,TD1可以使用圖像序列計數(picture order count,POC)計算。例如: TD0 = POCc - POC0 TD1 = POCc - POC1
這裡,POCc,POC0,POC1分別表示當前圖像的POC,前向參考圖像的POC,以及後向參考圖像的POC。TD0表示當前圖像與前向參考圖像之間的圖像序列計數(picture order count,POC)距離;TD1表示當前圖像與後向參考圖像之間的POC距離。
delta0=(delta0x, delta0y) delta1=(delta1x, delta1y) 考慮時域距離(亦可稱為時域間隔)的鏡像關係描述如下: delta0x = (TD0/TD1)* delta1x; delta0y = (TD0/TD1)* delta1y; 或者 delta0x/ delta1x = (TD0/TD1); delta0y/ delta1y = (TD0/TD1)。
具體的搜索步驟與圖10或11的實施例的過程類似,這裡不再贅述。
應當理解的是,本申請實施例中,鏡像關係要麼考慮時域間隔,要麼不考慮時域間隔。實際使用時,可以自我調整的選擇當前幀或者當前塊進行運動向量修正時,鏡像關係是否考慮時域間隔。
例如,可以在序列級頭資訊(SPS),圖像級頭資訊(PPS),或者條帶頭(slice header),或者塊碼流資訊中添加指示資訊以指示當前序列,或者當前圖像,或者當前條帶(Slice),或者當前塊使用的鏡像關係是否考慮時間間隔。
或者,當前塊自我調整的根據前向參考圖像的POC以及後向參考圖像的POC自我調整的判斷當前塊使用的鏡像關係是否考慮時間間隔。
例如:如果|POCc-POC0|-| POCc-POC1|>T ,則使用的鏡像關係需要考慮間隔,否則不考慮時間間隔,這裡T為預設的門限值。例如T=2, 或者T=3。.具體的T值,在此不做限定。 又例如: 如果|POCc-POC0|和|POCc-POC1|中的較大值和|POCc-POC0|和| POCc-POC1|中的較小值的比值大於門限值R, 即: (Max(|POCc-POC0|,| POCc-POC1|)/Min(|POCc-POC0|,| POCc-POC1|))>R。
這裡Max(A,B)表示A和B中的較大值,Min(A,B)表示A和B中的較小值。
則使用的鏡像關係需要考慮間隔,否則不考慮時間間隔,這裡R為預設的門限值。例如R=2,或者R=3。具體的R值,在此不做限定。
應理解,本申請實施例的圖像預測方法可以具體由編碼器(例如編碼器20)或者解碼器(例如解碼器30)中的運動補償模組來執行。另外,本申請實施例的圖像預測方法可以在需要對視訊圖像進行編碼和/或解碼的任何電子設備或者裝置內實施。
下面結合圖18至21對本申請實施例的圖像預測裝置進行詳細的描述。
圖18是本申請實施例的一種圖像預測裝置的示意性框圖。需要說明的是,預測裝置1800既適用於解碼視訊圖像的幀間預測,也適用於編碼視訊圖像的幀間預測,應當理解的是,這裡的預測裝置1800可以對應於圖2A中的運動補償單元44,或者可以對應於圖2B中的運動補償單元82,該預測裝置1800可以包括: 第一獲取單元1801,用於獲取當前圖像塊的初始運動資訊; 第一搜索單元1802,用於基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移成鏡像關係,所述第一位置偏移表示所述前向參考塊的位置相對于初始前向參考塊的位置的位置偏移,所述第二位置偏移表示所述後向參考塊的位置相對于初始後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N; 第一預測單元1803,用於基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。
其中,所述第一位置偏移與第二位置偏移成鏡像關係,可以理解為所述第一位置偏移量與第二位置偏移量相同,例如所述第一位置偏移的方向與第二位置偏移的方向相反,且第一位置偏移的幅值與第二位置偏移的幅值相同。
較優地,本申請實施例的裝置1800中,所述第一預測單元1803還用於獲得當前圖像塊的更新的運動資訊,所述更新的運動資訊包括更新的前向運動向量和更新的後向運動向量,其中所述更新的前向運動向量指向所述目標前向參考塊的位置,所述更新的後向運動向量指向所述目標後向參考塊的位置。
可見,對圖像塊的運動向量進行了更新,這樣就使得在進行下次圖像預測時可以根據該圖像塊對其它圖像塊進行有效的預測。
本申請實施例的裝置1800中,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離;或者, 所述N個後向參考塊的位置包括一個初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
本申請實施例的裝置1800中,所述初始運動資訊包括前向預測方向的第一運動向量和第一參考圖像索引,以及後向預測方向的第二運動向量和第二參考圖像索引; 在所述根據所述初始運動資訊和所述當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置的方面,所述第一搜索單元具體用於: 根據所述第一運動向量和所述當前圖像塊的位置在所述第一參考圖像索引對應的前向參考圖像中確定當前圖像塊的初始前向參考塊的位置;以所述初始前向參考塊的位置作為第一搜索起點,在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置,其中所述N個前向參考塊的位置包括所述初始前向參考塊的位置和所述(N-1)個候選前向參考塊的位置; 根據所述第二運動向量和所述當前圖像塊的位置在所述第二參考圖像索引對應的後向參考圖像中確定當前圖像塊的初始後向參考塊的位置;以所述初始後向參考塊的位置作為第二搜索起點,在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置,其中所述N個後向參考塊的位置包括所述初始後向參考塊的位置和所述(N-1)個候選後向參考塊的位置。
本申請實施例的裝置1800中,在所述基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置的方面,所述第一搜索單元1802具體用於: 從M對參考塊的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置;或者 從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置,其中所述M小於或等於N。
應理解,上述裝置1800可執行上述圖3、圖10和圖11所示的方法,裝置1800具體可以是視訊編碼裝置、視訊解碼裝置、視訊編解碼系統或者其他具有視訊編解碼功能的設備。裝置1800既可以用於在編碼過程中進行圖像預測,也可以用於在解碼過程中進行圖像預測。
詳細細節請參見本文中對圖像預測方法的介紹,為簡潔起見,這裡不再贅述。
可見,本申請實施例的預測裝置中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,針對所述N對參考塊的位置中的每對參考塊位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移成鏡像關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。
圖19是本申請實施例的另一種圖像預測裝置的示意性框圖。需要說明的是,預測裝置1900既適用於解碼視訊圖像的幀間預測,也適用於編碼視訊圖像的幀間預測,應當理解的是,這裡的預測裝置1900可以對應於圖2A中的運動補償單元44,或者可以對應於圖2B中的運動補償單元82,該預測裝置1900可以包括: 第二獲取單元1901,用於獲取當前圖像塊的初始運動資訊; 第二搜索單元1902,用於基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係,所述第一位置偏移表示所述前向參考塊的位置相對于初始前向參考塊的位置的位置偏移;所述第二位置偏移表示所述後向參考塊的位置相對于初始後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N; 第二預測單元1903,用於基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。
針對每對參考塊,所述第一位置偏移與第二位置偏移具有基於時域距離的比例關係,可以理解為: 針對每對參考塊,第一位置偏移與第二位置偏移的比例關係是基於第一時域距離與第二時域距離比例關係而確定的,其中第一時域距離表示當前圖像塊所屬的當前圖像與所述前向參考圖像之間的時域距離;第二時域距離表示所述當前圖像與所述後向參考圖像之間的時域距離。 作為一種實現方式,所述第一位置偏移與第二位置偏移具有基於時域距離的比例關係,可以包括: 如果第一時域距離與第二時域距離相同,則所述第一位置偏移的方向與第二位置偏移的方向相反,且第一位置偏移的幅值與第二位置偏移的幅值相同;或者, 如果第一時域距離與第二時域距離不同,則所述第一位置偏移的方向與第二位置偏移的方向相反,第一位置偏移的幅值與第二位置偏移的幅值之間的比例關係是基於第一時域距離與第二時域距離的比例關係; 其中,第一時域距離表示當前圖像塊所屬的當前圖像與所述前向參考圖像之間的時域距離;第二時域距離表示所述當前圖像與所述後向參考圖像之間的時域距離。
較佳地,本實施例裝置中,所述第二預測單元1903還用於獲得當前圖像塊的更新的運動資訊,所述更新的運動資訊包括更新的前向運動向量和更新的後向運動向量,其中所述更新的前向運動向量指向所述目標前向參考塊的位置,所述更新的後向運動向量指向所述目標後向參考塊的位置。
可見,本申請實施例能獲得經修正過的當前圖像塊的運動資訊,提高當前圖像塊運動資訊的準確度,這也將有利於其他圖像塊的而預測,例如提升其它圖像塊的運動資訊的預測準確性等。
作為一種實現方式,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離;或者, 所述N個後向參考塊的位置包括一個初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
作為一種實現方式,所述初始運動資訊包括前向預測運動資訊和後向預測運動資訊; 在所述基於所述初始運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置的方面,所述第二搜索單元1902具體用於: 根據所述前向預測運動資訊和當前圖像塊的位置在前向參考圖像中確定N個前向參考塊的位置,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離; 根據所述後向預測運動資訊和當前圖像塊的位置在後向參考圖像中確定N個後向參考塊的位置,所述N個後向參考塊的位置包括初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
作為另一種實現方式,所述初始運動資訊包括前向預測方向的第一運動向量和第一參考圖像索引,以及後向預測方向的第二運動向量和第二參考圖像索引; 在所述根據所述初始運動資訊和所述當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置的方面,所述第二搜索單元具體用於: 根據所述第一運動向量和所述當前圖像塊的位置在所述第一參考圖像索引對應的前向參考圖像中確定當前圖像塊的初始前向參考塊的位置;以所述初始前向參考塊的位置作為第一搜索起點,在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置,其中所述N個前向參考塊的位置包括所述初始前向參考塊的位置和所述(N-1)個候選前向參考塊的位置; 根據所述第二運動向量和所述當前圖像塊的位置在所述第二參考圖像索引對應的後向參考圖像中確定當前圖像塊的初始後向參考塊的位置;以所述初始後向參考塊的位置作為第二搜索起點,在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置,其中所述N個後向參考塊的位置包括所述初始後向參考塊的位置和所述(N-1)個候選後向參考塊的位置。
作為一種實現方式,在所述根據匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和目標後向參考塊的位置的方面,所述第二搜索單元1902具體用於: 從M對參考塊的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置;或者 從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的目標前向參考塊的位置和當前圖像塊的目標後向參考塊的位置, 所述M小於或等於N。
在一種示例下,所述匹配代價準則為匹配代價最小化的準則。例如,針對M對參考塊的位置,計算每對參考塊中前向參考塊的像素值與後向參考塊的像素值的差異;從所述M對參考塊的位置中,確定像素值差異最小的一對參考塊的位置為所述當前圖像塊的前向目標參考塊的位置以及後向目標參考塊的位置。
在另一種示例下,所述匹配代價準則為匹配代價與提前終止準則。例如,針對第n對參考塊(一個前向參考塊與一個後向參考塊)的位置,計算所述前向參考塊的像素值與後向參考塊的像素值的差異,n為大於或等於1,且小於或等於N的整數;當像素值差異小於或等於匹配誤差閾值時,確定第n對參考塊(一個前向參考塊與一個後向參考塊)的位置為所述當前圖像塊的前向目標參考塊的位置以及後向目標參考塊的位置。
作為一種實現方式,第二獲取單元1901用於從當前圖像塊的候選運動資訊列表中獲取所述初始運動資訊,或者,根據指示資訊獲取所述初始運動資訊,所述指示資訊用於指示當前圖像塊的初始運動資訊。應當理解的是,初始運動資訊是相對於經修正的運動資訊而言的。
應理解,上述裝置1900可執行上述圖12所示的方法,裝置1900可以是視訊編碼裝置、視訊解碼裝置、視訊編解碼系統或者其他具有視訊編解碼功能的設備。裝置1900既可以用於在編碼過程中進行圖像預測,也可以用於在解碼過程中進行圖像預測。
詳細細節請參見本文中對圖像預測方法的介紹,為簡潔起見,這裡不再贅述。
可見,本申請實施例的預測裝置中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,針對所述N對參考塊的位置中的每對參考塊位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移具有基於時域距離的比例關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。
圖20是本申請實施例的另一種圖像預測裝置的示意性框圖。需要說明的是,預測裝置2000既適用於解碼視訊圖像的幀間預測,也適用於編碼視訊圖像的幀間預測,應當理解的是,這裡的預測裝置2000可以對應於圖2A中的運動補償單元44,或者可以對應於圖2B中的運動補償單元82,該預測裝置2000可以包括: 第三獲取單元2001,用於獲取當前圖像塊的第i輪運動資訊; 第三搜索單元2002,用於根據所述第i輪運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置和第i輪目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移成鏡像關係,所述第一位置偏移表示所述前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移,所述第二位置偏移表示所述後向參考塊的位置相對於第i-1輪目標後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N; 第三預測單元2003,用於根據所述第j輪目標前向參考塊的像素值和所述第j輪目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。
需要說明的是,如果i=1,則所述第i輪運動資訊為當前圖像塊的初始運動資訊;相應地,所述N個前向參考塊的位置包括一個初始前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於所述初始前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離;或者,所述N個後向參考塊的位置包括一個初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於所述初始後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
如果i>1,則所述第i輪運動資訊包括:指向第i-1輪目標前向參考塊的位置的前向運動向量和指向第i-1輪目標後向參考塊的位置的後向運動向量;相應地,所述N個前向參考塊的位置包括一個第i-1輪目標前向參考塊的位置和(N-1)個候選前向參考塊的位置,每個候選前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移為整數像素距離或者分數像素距離;或者,所述N個後向參考塊的位置包括一個第i-1輪目標後向參考塊的位置和(N-1)個候選後向參考塊的位置,每個候選後向參考塊的位置相對於第i-1輪目標後向參考塊的位置的位置偏移為整數像素距離或者分數像素距離。
作為本申請實施例,所述第三預測單元2003具體用於當滿足反覆運算終止條件時,根據所述第j輪目標前向參考塊的像素值和所述第j輪目標後向參考塊的像素值,得到所述圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。其中,反覆運算終止條件的說明參見其它實施例,這裡不再贅述。
本申請實施例的裝置中,所述第一位置偏移與第二位置偏移成鏡像關係,可以理解為:所述第一位置偏移量與第二位置偏移量相同,例如,所述第一位置偏移的方向與第二位置偏移的方向相反,且第一位置偏移的幅值與第二位置偏移的幅值相同。
在一種實現方式下,所述第i輪運動資訊包括前向運動向量和前向參考圖像索引,以及後向運動向量和後向參考圖像索引; 在所述根據所述第i輪運動資訊和所述當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置的方面,所述第三搜索單元2002具體用於: 根據所述前向運動向量和所述當前圖像塊的位置在所述前向參考圖像索引對應的前向參考圖像中確定當前圖像塊的第i-1輪目標前向參考塊的位置;以所述i-1輪目標前向參考塊的位置作為第i f搜索起點,在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置,其中所述N個前向參考塊的位置包括一個第i-1輪目標前向參考塊的位置和所述(N-1)個候選前向參考塊的位置; 根據所述後向運動向量和所述當前圖像塊的位置在所述後向參考圖像索引對應的後向參考圖像中確定當前圖像塊的第i-1輪目標後向參考塊的位置;以所述i-1輪目標後向參考塊的位置作為第i b搜索起點在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置,其中所述N個後向參考塊的位置包括一個第i-1輪目標後向參考塊的位置和所述(N-1)個候選後向參考塊的位置。
在一種實現方式下,在所述根據匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置的方面,所述第三搜索單元2002具體用於: 從M對參考塊的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置;或者 從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及當前圖像塊的第i輪目標後向參考塊的位置,其中所述M小於或等於N。
應理解,上述裝置2000可執行上述圖14和圖15所示的方法,裝置2000具體可以是視訊編碼裝置、視訊解碼裝置、視訊編解碼系統或者其他具有視訊編解碼功能的設備。裝置2000既可以用於在編碼過程中進行圖像預測,也可以用於在解碼過程中進行圖像預測。
詳細細節請參見本文中對圖像預測方法的介紹,為簡潔起見,這裡不再贅述。
可見,本申請實施例的預測裝置中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,針對N對參考塊的位置中的每對參考塊位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移成鏡像關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。此外,增加反覆運算次數,可以進一步提高修正MV的準確度,從而進一步提高編解碼性能。
圖21是本申請實施例的另一種圖像預測裝置的示意性框圖。需要說明的是,預測裝置2100既適用於解碼視訊圖像的幀間預測,也適用於編碼視訊圖像的幀間預測,應當理解的是,這裡的預測裝置2100可以對應於圖2A中的運動補償單元44,或者可以對應於圖2B中的運動補償單元82,該預測裝置2100可以包括: 第四獲取單元2101,用於獲取當前圖像塊的第i輪運動資訊; 第四搜索單元2102,用於根據所述第i輪運動資訊和當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中,N為大於1的整數;基於匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置和第i輪目標後向參考塊的位置,其中每對參考塊的位置包括一個前向參考塊的位置和一個後向參考塊的位置,且針對每對參考塊的位置,第一位置偏移與第二位置偏移具有基於時域距離的比例關係,所述第一位置偏移表示所述前向參考圖像中,所述前向參考塊的位置相對於第i-1輪目標前向參考塊的位置的位置偏移;所述第二位置偏移表示所述後向參考圖像中,所述後向參考塊的位置相對於第i-1輪目標後向參考塊的位置的位置偏移,所述M為大於或等於1的整數,且所述M小於或等於N; 第四預測單元2103,用於根據所述第j輪目標前向參考塊的像素值和所述第j輪目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。
在反覆運算搜索過程中,如果i=1,則所述第i輪運動資訊為當前圖像塊的初始運動資訊; 如果i>1,則所述第i輪運動資訊包括:指向第i-1輪目標前向參考塊的位置的前向運動向量和指向第i-1輪目標後向參考塊的位置的後向運動向量。
作為一種實現方式,所述第四預測單元2103具體用於:當滿足反覆運算終止條件時,根據所述第j輪目標前向參考塊的像素值和所述第j輪目標後向參考塊的像素值,得到所述圖像塊的像素值的預測值,其中j大於或等於i,i和j均為大於或等於1的整數。
本實施例的裝置中,所述第一位置偏移與第二位置偏移具有基於時域距離的比例關係,可以理解為: 如果第一時域距離與第二時域距離相同,則所述第一位置偏移的方向與第二位置偏移的方向相反,且第一位置偏移的幅值與第二位置偏移的幅值相同;或者, 如果第一時域距離與第二時域距離不同,則所述第一位置偏移的方向與第二位置偏移的方向相反,第一位置偏移的幅值與第二位置偏移的幅值之間的比例關係是基於第一時域距離與第二時域距離的比例關係; 其中,第一時域距離表示當前圖像塊所屬的當前圖像與所述前向參考圖像之間的時域距離;第二時域距離表示所述當前圖像與所述後向參考圖像之間的時域距離。
作為一種實現方式,所述第i輪運動資訊包括前向運動向量和前向參考圖像索引,以及後向運動向量和後向參考圖像索引;相應地,在所述根據所述第i輪運動資訊和所述當前圖像塊的位置確定N個前向參考塊的位置和N個後向參考塊的位置的方面,第四搜索單元2102具體用於: 根據所述前向運動向量和所述當前圖像塊的位置在所述前向參考圖像索引對應的前向參考圖像中確定當前圖像塊的第i-1輪目標前向參考塊的位置;以所述i-1輪目標前向參考塊的位置作為第i f搜索起點,在所述前向參考圖像中確定(N-1)個候選前向參考塊的位置,其中所述N個前向參考塊的位置包括一個第i-1輪目標前向參考塊的位置和所述(N-1)個候選前向參考塊的位置; 根據所述後向運動向量和所述當前圖像塊的位置在所述後向參考圖像索引對應的後向參考圖像中確定當前圖像塊的第i-1輪目標後向參考塊的位置;以所述i-1輪目標後向參考塊的位置作為第i b搜索起點在所述後向參考圖像中確定(N-1)個候選後向參考塊的位置,其中所述N個後向參考塊的位置包括一個第i-1輪目標後向參考塊的位置和所述(N-1)個候選後向參考塊的位置。
作為一種實現方式,在所述根據匹配代價準則,從M對參考塊的位置中確定一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置的方面,第四搜索單元2102具體用於: 從M對參考塊的位置中,確定匹配誤差最小的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及第i輪目標後向參考塊的位置;或者 從M對參考塊的位置中,確定匹配誤差小於或等於匹配誤差閾值的一對參考塊的位置為當前圖像塊的第i輪目標前向參考塊的位置以及當前圖像塊的第i輪目標後向參考塊的位置,其中所述M小於或等於N。
應理解,上述裝置2100可執行上述圖16或17所示的方法,裝置2100可以是視訊編碼裝置、視訊解碼裝置、視訊編解碼系統或者其他具有視訊編解碼功能的設備。裝置2100既可以用於在編碼過程中進行圖像預測,也可以用於在解碼過程中進行圖像預測。
詳細細節請參見本文中對圖像預測方法的介紹,為簡潔起見,這裡不再贅述。
可見,本申請實施例的預測裝置中,位於前向參考圖像中的N個前向參考塊的位置和位於後向參考圖像中N個後向參考塊的位置形成N對參考塊的位置,針對N對參考塊的位置中的每對參考塊位置,前向參考塊的位置相對于初始前向參考塊的位置的第一位置偏移,與,後向參考塊的位置相對于初始後向參考塊的位置的第二位置偏移具有基於時域距離的比例關係,在此基礎上,從N對參考塊的位置中確定(例如匹配代價最小的)一對參考塊的位置為當前圖像塊的目標前向參考塊(亦即最佳前向參考塊/前向預測塊)的位置和目標後向參考塊(亦即最佳後向參考塊/後向預測塊)的位置,從而基於所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。相對于現有技術,本申請實施例方法避免了預先計算範本匹配塊的計算過程以及避免了使用範本匹配塊分別進行前向搜索匹配以及後向搜索匹配的過程,簡化了圖像預測過程,從而在提高圖像預測準確性的同時,降低了圖像預測的複雜度。此外,增加反覆運算次數,可以進一步提高修正MV的準確度,從而進一步提高編解碼性能。
圖22為本申請實施例的視訊編碼設備或視訊解碼設備(簡稱為解碼設備2200)的一種實現方式的示意性框圖。其中,解碼設備2200可以包括處理器2210、記憶體2230和匯流排系統2250。其中,處理器和記憶體通過匯流排系統相連,該記憶體用於存儲指令,該處理器用於執行該記憶體存儲的指令。編碼設備的記憶體存儲程式碼,且處理器可以調用記憶體中存儲的程式碼執行本申請描述的各種視訊編碼或解碼方法,尤其是在各種幀間預測模式或幀內預測模式下的視訊編碼或解碼方法,以及在各種幀間或幀內預測模式下預測運動資訊的方法。為避免重複,這裡不再詳細描述。
在本申請實施例中,該處理器2210可以是中央處理單元(Central Processing Unit,簡稱為“CPU”),該處理器2210還可以是其他通用處理器、數位訊號處理器(DSP)、專用積體電路(ASIC)、現成可程式設計閘陣列(FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。
該記憶體2230可以包括唯讀記憶體(ROM)設備或者隨機存取記憶體(RAM)設備。任何其他適宜類型的存放裝置也可以用作記憶體2230。記憶體2230可以包括由處理器2210使用匯流排2250訪問的代碼和資料2231。記憶體2230可以進一步包括作業系統2233和應用程式2235,該應用程式2235包括允許處理器2210執行本申請描述的視訊編碼或解碼方法(尤其是本申請描述的圖像預測方法)的至少一個程式。例如,應用程式2235可以包括應用1至N,其進一步包括執行在本申請描述的視訊編碼或解碼方法的視訊編碼或解碼應用(簡稱視訊解碼應用)。
該匯流排系統2250除包括資料匯流排之外,還可以包括電源匯流排、控制匯流排和狀態信號匯流排等。但是為了清楚說明起見,在圖中將各種匯流排都標為匯流排系統2250。
可選的,解碼設備2200還可以包括一個或多個輸出設備,諸如顯示螢幕2270。在一個示例中,顯示螢幕2270可以是觸感顯示螢幕或觸摸顯示幕,其將顯示螢幕與可操作地感測觸摸輸入的觸感單元合併。顯示螢幕2270可以經由匯流排2250連接到處理器 2210。
需要說明的是,對相同步驟或者相同術語的解釋和限定同樣適用於不同實施例間,為了簡潔,本文適當省略重複的描述。
本領域技術人員能夠領會,結合本文公開描述的各種說明性邏輯框、模組和演算法步驟所描述的功能可以硬體、軟體、固件或其任何組合來實施。如果以軟體來實施,那麼各種說明性邏輯框、模組、和步驟描述的功能可作為一或多個指令或代碼在電腦可讀媒體上存儲或傳輸,且由基於硬體的處理單元執行。電腦可讀媒體可包含電腦可讀存儲媒體,其對應於有形媒體,例如資料存儲媒體,或包括任何促進將電腦程式從一處傳送到另一處的媒體(例如,根據通信協定)的通信媒體。以此方式,電腦可讀媒體大體上可對應於(1)非暫時性的有形電腦可讀存儲媒體,或(2)通信媒體,例如信號或載波。資料存儲媒體可為可由一或多個電腦或一或多個處理器存取以檢索用於實施本申請中描述的技術的指令、代碼和/或資料結構的任何可用媒體。電腦程式產品可包含電腦可讀媒體。
作為實例而非限制,此類電腦可讀存儲媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光碟存儲裝置、磁片存儲裝置或其它磁性存儲裝置、快閃記憶體或可用來存儲指令或資料結構的形式的所要程式碼並且可由電腦存取的任何其它媒體。並且,任何連接被恰當地稱作電腦可讀媒體。舉例來說,如果使用同軸纜線、光纖纜線、雙絞線、數位訂戶線(DSL)或例如紅外線、無線電和微波等無線技術從網站、伺服器或其它遠端源傳輸指令,那麼同軸纜線、光纖纜線、雙絞線、DSL或例如紅外線、無線電和微波等無線技術包含在媒體的定義中。但是,應理解,所述電腦可讀存儲媒體和資料存儲媒體並不包括連接、載波、信號或其它暫時媒體,而是實際上針對於非暫時性有形存儲媒體。如本文中所使用,磁片和光碟包含壓縮光碟(CD)、鐳射光碟、光學光碟、數位多功能光碟(DVD)和藍光光碟,其中磁片通常以磁性方式再現資料,而光碟利用鐳射以光學方式再現資料。以上各項的組合也應包含在電腦可讀媒體的範圍內。
可通過例如一或多個數位訊號處理器(DSP)、通用微處理器、專用積體電路(ASIC)、現場可程式設計邏輯陣列(FPGA)或其它等效集成或離散邏輯電路等一或多個處理器來執行相應的功能。因此,如本文中所使用的術語“處理器”可指前述結構或適合於實施本文中所描述的技術的任一其它結構中的任一者。另外,在一些方面中,本文中所描述的各種說明性邏輯框、模組、和步驟所描述的功能可以提供於經配置以用於編碼和解碼的專用硬體和/或軟體模組內,或者併入在組合編碼器中。而且,所述技術可完全實施於一或多個電路或邏輯元件中。在一種示例下,視訊編碼器20及視訊解碼器30中的各種說明性邏輯框、單元、模組可以理解為對應的電路器件或邏輯元件。
本申請的技術可在各種各樣的裝置或設備中實施,包含無線手持機、積體電路(IC)或一組IC(例如,晶片組)。本申請中描述各種元件、模組或單元是為了強調用於執行所揭示的技術的裝置的功能方面,但未必需要由不同硬體單元實現。實際上,如上文所描述,各種單元可結合合適的軟體和/或固件組合在編碼解碼器硬體單元中,或者通過交互操作硬體單元(包含如上文所描述的一或多個處理器)來提供。
以上所述,僅為本申請示例性的具體實施方式,但本申請的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本申請揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本申請的保護範圍之內。因此,本申請的保護範圍應該以權利要求的保護範圍為准。
10:視訊編碼及解碼系統 20:視訊編碼器 30:視訊解碼器 40:模式選擇單元 12:源裝置 14:目的地裝置 16:鏈路 18:視訊源 22:輸出介面 24:存儲裝置 28:輸入介面 32:顯示裝置 34:存儲系統 36:檔案伺服器 41:預測模組 42:運動估計單元 44、82:運動補償單元 46、84:幀內預測單元 50:求和器 52:變換模組 54:量化模組 56、80:熵編碼模組 58、86:反量化模組 60、88:反變換模組 62:求和器 64:參考圖像記憶體 81:預測模組、預測處理模組 90:重建模組、求和器 92:參考圖像記憶體、經解碼圖像緩衝器 902、1302:初始前向參考塊 903、1303:初始後向參考塊 904、1304:候選前向參考塊 905、1305:候選後向參考塊 A0:相鄰塊 1、2:索引 TC分別表示當前幀的時刻 T0:前向參考圖像的時刻 T1:後向參考圖像的時刻 TD0:當前圖像與前向參考圖像之間的圖像序列計數距離 TD1:當前圖像與後向參考圖像之間的POC距離 1800、1900、2000、2100:預測裝置 1801:第一獲取單元 1802:第一搜索單元 1803:第一預測單元 1901:第二獲取單元 1902:第二搜索單元 1903:第二預測單元 2001:第三獲取單元 2002:第三搜索單元 2003:第三預測單元 2101:第四獲取單元 2102:第四搜索單元 2103:第四預測單元 2200:解碼設備 2210:處理器 2230:記憶體 2250:匯流排、匯流排系統 2231:資料 2233:作業系統 2235:應用程式 2270:顯示螢幕 300、1200、1400、1600:過程 301-304、1001-1007、1101-1105、1201-1204、1401-1404、1501-1508、1601-1604、1701-1708:步驟
圖1為本申請實施例中一種視訊編碼及解碼系統的示意性框圖; 圖2A為本申請實施例中一種視訊編碼器的示意性框圖; 圖2B為本申請實施例中一種視訊解碼器的示意性框圖; 圖3是本申請實施例的一種圖像預測方法的示意性流程圖; 圖4是幀間預測的合併模式下編碼端獲取初始運動資訊的示意圖; 圖5是幀間預測的合併模式下解碼端獲取初始運動資訊的示意圖; 圖6是當前圖像塊的初始參考塊的示意圖; 圖7是整像素位置像素與分像素位置像素的示意圖; 圖8是搜索起始點的示意圖; 圖9是本申請實施例中第一位置偏移與第二位置偏移成鏡像關係的示意性框圖; 圖10是本申請實施例的另一種圖像預測方法的示意性流程圖; 圖11是本申請實施例的另一種圖像預測方法的示意性流程圖; 圖12是本申請實施例的另一種圖像預測方法的示意性流程圖; 圖13是本申請實施例中第一位置偏移與第二位置偏移具有基於時域距離的比例關係的示意性框圖; 圖14是本申請實施例的另一種圖像預測方法1400的示意性流程圖; 圖15是本申請實施例的另一種圖像預測方法的示意性流程圖; 圖16是本申請實施例的另一種圖像預測方法1600的示意性流程圖; 圖17是本申請實施例的另一種圖像預測方法的示意性流程圖; 圖18是本申請實施例的一種圖像預測裝置的示意性框圖; 圖19是本申請實施例的另一種圖像預測裝置的示意性框圖; 圖20是本申請實施例的另一種圖像預測裝置的示意性框圖; 圖21是本申請實施例的另一種圖像預測裝置的示意性框圖; 圖22是本申請實施例的一種編碼設備或解碼設備的示意性框圖。
300:過程
301-304:步驟

Claims (17)

  1. 一種圖像預測方法,包括:獲取當前圖像塊的初始運動資訊;當不滿足提前終止條件時,根據匹配代價準則,從N個前向參考塊和N個後向參考塊的位置中確定所述當前圖像塊的目標前向參考塊和目標後向參考塊的位置,其中,所述N個前向參考塊和N個後向參考塊的位置是基於所述初始運動資訊確定的,所述N個前向參考塊包括初始前向參考塊,所述N個後向參考塊包括初始後向參考塊,所述N為大於1的整數,其中,對於所述N個前向參考塊和N個後向參考塊的第n前向參考塊和第n後向參考塊的位置,第一位置偏移和第二位置偏移呈鏡像關係,所述第一位置偏移表示所述第n前向參考塊的位置相對於所述初始前向參考塊的位置的偏移,以及所述第二位置偏移量表示所述第n後向參考塊的位置相對於所述初始後向參考塊的位置的偏移量;其中,n為整數,1
    Figure 112100139-A0305-02-0118-1
    n
    Figure 112100139-A0305-02-0118-2
    N或者0<n
    Figure 112100139-A0305-02-0118-3
    N-1;根據所述目標前向參考塊的像素值和所述目標後向參考塊的像素值,得到所述當前圖像塊的像素值的預測值。
  2. 根據請求項1所述的方法,其中,所述目標前向參考塊的位置與(delta0x’,delta0y’)相關,所述(delta0x’,delta0y’)表示所述目標前向參考塊的位置相對於所述初始前向參考塊的位置的偏移;所述目標後向參考塊的位置與(delta1x’,delta1y’)相關聯,所 述(delta1x’,delta1y’)表示所述目標後向參考塊的位置相對於所述初始後向參考塊的位置的偏移,其中,delta0x’=-delta1x’,且delta0y’=-delta1y’。
  3. 根據請求項1或2所述的方法,其中,所述N個前向參考塊的位置包括所述初始前向參考塊的位置和(N-1)個候選前向參考塊的位置;或所述N個後向參考塊的位置包括所述初始後向參考塊的位置和(N-1)個候選後向參考塊的位置,對於(N-1)候選前向參考塊和(N-1)候選後向參考塊中的第n候選前向參考塊和第n候選後向參考塊的位置,第一位置偏移和第二位置偏移為鏡像關係,所述第一位置偏移表示第n候選前向參考塊的位置相對於所述初始前向參考塊的位置的偏移,所述第二位置偏移表示第n候選後向參考塊的位置相對於所述初始後向參考塊的位置的偏移,其中n為整數,0<n
    Figure 112100139-A0305-02-0119-4
    N-1。
  4. 根據請求項1或2所述的方法,其中,所述第一位置偏移的方向與所述第二位置偏移的方向相反,所述第一位置偏移的幅值與所述第二位置偏移的幅值相同。
  5. 根據請求項1或2所述的方法,其中,所述第一位置偏移表示(delta0x,delta0y),所述第二位置偏移表示(delta1x,delta1y),其中delta0x=-delta1x,和delta0y=-delta1y。
  6. 根據請求項1或2所述的方法,還包括:獲取所述當前圖像塊的更新的運動資訊,所述更新的運動資 訊包括更新的前向運動向量和更新的後向運動向量,其中,所述更新的前向運動向量指向所述目標前向參考塊的位置,所述更新的後向運動向量指向所述目標後向參考塊的位置,或者其中,所述更新的前向運動向量指示所述目標前向參考塊的位置相對於所述當前圖像塊的位置的偏移,所述更新的後向運動向量指示所述目標後向參考塊的位置相對於所述當前圖像塊的位置的偏移。
  7. 根據請求項1或2所述的方法,其中,所述目標前向參考塊的像素值是根據所述目標前向參考塊的位置確定的,所述目標後向參考塊的像素值是根據所述目標後向參考塊的位置確定的。
  8. 根據請求項1或2所述的方法,其中,所述初始運動資訊包括與第一列表(L0)對應的第一運動向量和第一參考圖像索引,以及與第二列表(L1)對應的第二運動向量和第二參考圖像索引;其中,所述確定N個前向參考塊和N個後向參考塊的位置包括:根據所述第一運動向量和所述當前圖像塊的位置,確定所述當前圖像塊的初始前向參考塊在所述第一參考圖像索引對應的前向參考圖像中的位置,並將所述初始前向參考塊的位置作為第一搜索起點,確定所述(N-1)個候選前向參考塊在所述前向參考圖 像中的位置,其中,所述N個前向參考塊的位置包括所述初始前向參考塊的位置和所述(N-1)個候選前向參考塊的位置;根據所述第二運動向量和所述當前圖像塊的位置,確定所述當前圖像塊的初始後向參考塊在所述第二參考圖像索引對應的後向參考圖像中的位置,將所述初始後向參考塊的位置作為第二搜索起點,並確定所述(N-1)個候選後向參考圖像中的位置,其中,所述N個後向參考塊的位置包括所述初始後向參考塊的位置和所述(N-1)個候選後向參考塊的位置。
  9. 根據請求項1或2所述的方法,其中,所述根據匹配代價準則,從所述N個前向參考塊和N個後向參考塊的位置中確定所述當前圖像塊的目標前向參考塊和目標後向參考塊的位置,包括:從所述N個前向參考塊和N個後向參考塊的位置中確定所述當前圖像塊的目標前向參考塊和目標後向參考塊的位置,其中,所述目標前向參考塊和目標後向參考塊在所述N個前向參考塊和N個後向參考塊的N個匹配誤差中的匹配誤差最小;或者,從所述N個前向參考塊和N個後向參考塊的位置中確定所述當前圖像塊的目標前向參考塊和目標後向參考塊的位置,其中,所述目標前向參考塊和目標後向參考塊的匹配誤差小於或等於匹配誤差閾值。
  10. 根據請求項1或2所述的方法,其中,所述方法用於對所述當前圖像塊進行編碼;所述獲取當前圖像塊的初始運動資 訊包括:從所述當前圖像塊的候選運動資訊列表中獲取所述初始運動資訊;或者,所述方法用於對所述當前圖像塊進行解碼;在所述獲取當前圖像塊的初始運動資訊之前,所述方法還包括:從所述當前圖像塊的碼流中獲取指示資訊,所述指示資訊指示所述當前圖像塊的初始運動資訊。
  11. 根據請求項1或2所述的方法,其中,所述匹配代價準則是絕對差異和(SAD)準則,所述目標前向參考塊和目標後向參考塊具有N個前向參考塊和N個後向參考塊的N個SAD值中的最小SAD值。
  12. 根據請求項1或2所述的方法,其中,所述N個前向參考塊位於前向參考圖像中,所述N個後向參考塊位於後向參考圖像中;其中,所述N個前向和N個後向參考塊與所述當前圖像塊的大小相同。
  13. 根據請求項1或2所述的方法,還包括:獲取另一圖像塊的初始運動資訊;當滿足提前終止條件時,將所述另一圖像塊的初始前向參考塊和初始後向參考塊的位置確定為所述另一圖像塊的目標前向參考塊和目標後向參考塊的位置,所述另一圖像塊的初始前向參考塊和後向參考塊的位置基於所述另一圖像塊的初始運動資訊;根據所述目標前向參考塊的像素值和所述另一圖像塊的目標後向參考塊的像素值,獲取所述另一圖像塊的像素值的預測值。
  14. 根據請求項1或2所述的方法,其中,當不滿足所述提前終止條件時,所述根據匹配代價準則,從N個前向參考塊和N個後向參考塊的位置中確定所述當前圖像塊的目標前向參考塊和目標後向參考塊的位置,包括:當所述初始前向參考塊的像素值與所述初始後向參考塊的像素值之間的差值大於匹配誤差閾值時,根據所述匹配代價準則,從N個前向參考塊和N個後向參考塊的位置中確定所述當前圖像塊的目標前向參考塊和目標後向參考塊的位置。
  15. 一種編碼器,包括處理電路,用於執行根據請求項1至14任一項所述的方法。
  16. 一種解碼器,包括處理電路,用於執行根據請求項1至14任一項所述的方法。
  17. 一種非暫時性電腦可讀介質,包括程式指令,當其在電腦或處理器上執行時,用於執行根據請求項1至14任一項所述的方法。
TW112100139A 2017-12-31 2018-12-26 圖像預測方法、裝置以及視訊編碼器、視訊解碼器 TWI828507B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201711494274.0A CN109996081B (zh) 2017-12-31 2017-12-31 图像预测方法、装置以及编解码器
CN201711494274.0 2017-12-31

Publications (2)

Publication Number Publication Date
TW202318876A TW202318876A (zh) 2023-05-01
TWI828507B true TWI828507B (zh) 2024-01-01

Family

ID=67066616

Family Applications (2)

Application Number Title Priority Date Filing Date
TW107147080A TWI791723B (zh) 2017-12-31 2018-12-26 圖像預測方法、裝置以及視訊編碼器、視訊解碼器
TW112100139A TWI828507B (zh) 2017-12-31 2018-12-26 圖像預測方法、裝置以及視訊編碼器、視訊解碼器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW107147080A TWI791723B (zh) 2017-12-31 2018-12-26 圖像預測方法、裝置以及視訊編碼器、視訊解碼器

Country Status (11)

Country Link
US (2) US11528503B2 (zh)
EP (2) EP4362464A3 (zh)
JP (2) JP2021508213A (zh)
KR (3) KR102627496B1 (zh)
CN (3) CN117336504A (zh)
AU (2) AU2018395081B2 (zh)
BR (1) BR112020012914A2 (zh)
CA (1) CA3087405A1 (zh)
SG (1) SG11202006258VA (zh)
TW (2) TWI791723B (zh)
WO (1) WO2019129130A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2021001670A (es) * 2018-08-13 2021-04-19 Lg Electronics Inc Metodo de inter-prediccion basado en el vector de movimiento basado en el historial, y dispositivo para el mismo.
JP7391109B2 (ja) 2019-05-11 2023-12-04 北京字節跳動網絡技術有限公司 ビデオ処理におけるコーディングツールの選択的使用
CN110545425B (zh) * 2019-08-21 2021-11-16 浙江大华技术股份有限公司 一种帧间预测方法、终端设备以及计算机存储介质
WO2021061023A1 (en) * 2019-09-23 2021-04-01 Huawei Technologies Co., Ltd. Signaling for motion vector refinement
WO2020251418A2 (en) * 2019-10-01 2020-12-17 Huawei Technologies Co., Ltd. Method and apparatus of slice-level signaling for bi-directional optical flow and decoder side motion vector refinement
CN114556916B (zh) * 2019-10-12 2023-11-17 北京字节跳动网络技术有限公司 视频编解码工具的高级语法
CN112770113A (zh) * 2019-11-05 2021-05-07 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113452997B (zh) * 2020-03-25 2022-07-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112565753B (zh) * 2020-12-06 2022-08-16 浙江大华技术股份有限公司 运动矢量差的确定方法和装置、存储介质及电子装置
CN114640856B (zh) * 2021-03-19 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN113691810B (zh) * 2021-07-26 2022-10-04 浙江大华技术股份有限公司 帧内帧间联合预测方法、编解码方法及相关设备、存储介质
CN113938690B (zh) * 2021-12-03 2023-10-31 北京达佳互联信息技术有限公司 视频编码方法、装置、电子设备及存储介质
US20230199171A1 (en) * 2021-12-21 2023-06-22 Mediatek Inc. Search Memory Management For Video Coding
WO2024010338A1 (ko) * 2022-07-05 2024-01-11 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016160609A1 (en) * 2015-03-27 2016-10-06 Qualcomm Incorporated Motion information derivation mode determination in video coding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195389B1 (en) * 1998-04-16 2001-02-27 Scientific-Atlanta, Inc. Motion estimation system and methods
CN1658673A (zh) * 2005-03-23 2005-08-24 南京大学 视频压缩编解码方法
CN101557514B (zh) * 2008-04-11 2011-02-09 华为技术有限公司 一种帧间预测编解码方法、装置及系统
TWI401972B (zh) * 2009-06-23 2013-07-11 Acer Inc 時間性錯誤隱藏方法
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
JP2012034225A (ja) * 2010-07-30 2012-02-16 Canon Inc 動きベクトル検出装置及び動きベクトル検出方法、コンピュータプログラム
GB2493755B (en) 2011-08-17 2016-10-19 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of images
CN104427347A (zh) * 2013-09-02 2015-03-18 苏州威迪斯特光电科技有限公司 网络摄像机视频监控系统图像质量提高方法
CN104427345B (zh) * 2013-09-11 2019-01-08 华为技术有限公司 运动矢量的获取方法、获取装置、视频编解码器及其方法
WO2017201678A1 (zh) 2016-05-24 2017-11-30 华为技术有限公司 图像预测方法和相关设备
US10631002B2 (en) * 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode
US10750203B2 (en) * 2016-12-22 2020-08-18 Mediatek Inc. Method and apparatus of adaptive bi-prediction for video coding
US20180192071A1 (en) * 2017-01-05 2018-07-05 Mediatek Inc. Decoder-side motion vector restoration for video coding
WO2019001741A1 (en) * 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
EP3682636B1 (en) * 2017-10-09 2023-08-02 Huawei Technologies Co., Ltd. Memory access window and padding for motion vector refinement

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016160609A1 (en) * 2015-03-27 2016-10-06 Qualcomm Incorporated Motion information derivation mode determination in video coding

Also Published As

Publication number Publication date
TW202318876A (zh) 2023-05-01
EP3734976A4 (en) 2021-02-03
BR112020012914A2 (pt) 2020-12-08
US20230232036A1 (en) 2023-07-20
CA3087405A1 (en) 2019-07-04
KR20230033021A (ko) 2023-03-07
KR102503943B1 (ko) 2023-02-24
TW201931857A (zh) 2019-08-01
CN109996081A (zh) 2019-07-09
KR20240011263A (ko) 2024-01-25
US20200396478A1 (en) 2020-12-17
CN109996081B (zh) 2023-09-12
CN111543059A (zh) 2020-08-14
AU2018395081B2 (en) 2023-03-30
TWI791723B (zh) 2023-02-11
RU2020125254A3 (zh) 2022-01-31
EP3734976A1 (en) 2020-11-04
JP2023103277A (ja) 2023-07-26
SG11202006258VA (en) 2020-07-29
CN117336504A (zh) 2024-01-02
AU2018395081A1 (en) 2020-08-13
JP2021508213A (ja) 2021-02-25
AU2023204122A1 (en) 2023-07-13
EP4362464A3 (en) 2024-05-29
RU2020125254A (ru) 2022-01-31
WO2019129130A1 (zh) 2019-07-04
EP4362464A2 (en) 2024-05-01
US11528503B2 (en) 2022-12-13
KR20200101986A (ko) 2020-08-28
KR102627496B1 (ko) 2024-01-18

Similar Documents

Publication Publication Date Title
TWI828507B (zh) 圖像預測方法、裝置以及視訊編碼器、視訊解碼器
US11297326B2 (en) Method and apparatus for predicting motion information of picture block, encoder, and decoder
US10652571B2 (en) Advanced motion vector prediction speedups for video coding
RU2719296C2 (ru) Определение режима вывода информации движения при видеокодировании
JP2018536320A (ja) ビデオコーディングのための改善された双方向オプティカルフロー
US11765378B2 (en) Video coding method and apparatus
US11563949B2 (en) Motion vector obtaining method and apparatus, computer device, and storage medium
US11394996B2 (en) Video coding method and apparatus
RU2772639C2 (ru) Кодек, устройство и способ предсказания изображения