TW202425644A - 視訊編解碼方法、裝置、設備、系統、及儲存媒介 - Google Patents
視訊編解碼方法、裝置、設備、系統、及儲存媒介 Download PDFInfo
- Publication number
- TW202425644A TW202425644A TW112139263A TW112139263A TW202425644A TW 202425644 A TW202425644 A TW 202425644A TW 112139263 A TW112139263 A TW 112139263A TW 112139263 A TW112139263 A TW 112139263A TW 202425644 A TW202425644 A TW 202425644A
- Authority
- TW
- Taiwan
- Prior art keywords
- prediction mode
- candidate
- weight
- prediction
- current block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一種視訊編解碼方法、裝置、設備、系統、及儲存媒介,在對當前塊進行編解碼時,確定N個候選權重導出模式,進而基於N個候選權重導出模式和當前塊的屬性資訊,確定至少一個候選預測模式,進而基於N個候選權重導出模式和至少一個候選預測模式確定當前塊對應的第一權重導出模式和K個第一預測模式,進而使用該第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。在本申請實施例中,解碼端在確定候選預測模式時,考慮了權重導出模式和當前塊的屬性資訊,進而提高了候選預測模式的確定準確性,並提高編解碼性能。
Description
本申請涉及視訊編解碼技術領域,尤其涉及一種視訊編解碼方法、裝置、設備、系統、及儲存媒介。
數位視訊技術可以併入多種視訊裝置中,例如數位電視、智慧手機、電腦、電子閱讀器或視訊播放機等。隨著視訊技術的發展,視訊資料所包括的資料量較大,為了便於視訊資料的傳輸,視訊裝置執行視訊壓縮技術,以使視訊資料更加有效的傳輸或儲存。
由於視訊中存在時間或空間冗餘,透過預測可以消除或降低視訊中的冗餘,提高壓縮效率。目前為了提高預測效果,可以使用多個預測模式對當前塊進行預測,例如構建候選預測模式列表,從該候選預測模式列表中選擇多個預測模式對當前塊進行預測。但是,目前構建的候選預測模式列表不夠準確,進而降低當前塊的預測準確性。
本申請實施例提供了一種視訊編解碼方法、裝置、設備、系統、及儲存媒介,可以提高候選預測模式列表的構建準確性,提升當前塊的預測準確性,進而提高編解碼性能。
第一方面,本申請提供了一種視訊解碼方法,應用於解碼器,包括:
確定N個候選權重導出模式,所述N為正整數;
基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式;
基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,所述K為大於1的正整數;
基於所述第一權重導出模式和K個第一預測模式對當前塊進行預測,得到所述當前塊的預測值。
第二方面,本申請實施例提供一種視訊編碼方法,包括:
確定N個候選權重導出模式,所述N為正整數;
基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式;
基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,所述K為大於1的正整數;
基於所述第一權重導出模式和K個第一預測模式對當前塊進行預測,得到所述當前塊的預測值。
第三方面,本申請提供了一種視訊解碼裝置,用於執行上述第一方面或其各實現方式中的方法。具體地,該裝置包括用於執行上述第一方面或其各實現方式中的方法的功能單元。
第四方面,本申請提供了一種視訊編碼裝置,用於執行上述第二方面或其各實現方式中的方法。具體地,該裝置包括用於執行上述第二方面或其各實現方式中的方法的功能單元。
第五方面,提供了一種視訊解碼器,包括處理器和記憶體。該記憶體用於儲存電腦程式,該處理器用於調用並運行該記憶體中儲存的電腦程式,以執行上述第一方面或其各實現方式中的方法。
第六方面,提供了一種視訊編碼器,包括處理器和記憶體。該記憶體用於儲存電腦程式,該處理器用於調用並運行該記憶體中儲存的電腦程式,以執行上述第二方面或其各實現方式中的方法。
第七方面,提供了一種視訊編解碼系統,包括視訊編碼器和視訊解碼器。視訊解碼器用於執行上述第一方面或其各實現方式中的方法,視訊編碼器用於執行上述第二方面或其各實現方式中的方法。
第八方面,提供了一種晶片,用於實現上述第一方面至第二方面中的任一方面或其各實現方式中的方法。具體地,該晶片包括:處理器,用於從記憶體中調用並運行電腦程式,使得安裝有該晶片的設備執行如上述第一方面至第二方面中的任一方面或其各實現方式中的方法。
第九方面,提供了一種電腦可讀儲存媒介,用於儲存電腦程式,該電腦程式使得電腦執行上述第一方面至第二方面中的任一方面或其各實現方式中的方法。
第十方面,提供了一種電腦程式產品,包括電腦程式指令,該電腦程式指令使得電腦執行上述第一方面至第二方面中的任一方面或其各實現方式中的方法。
第十一方面,提供了一種電腦程式,當其在電腦上運行時,使得電腦執行上述第一方面至第二方面中的任一方面或其各實現方式中的方法。
第十二方面,提供了一種碼流,碼流是基於上述第二方面的方法生成的,可選的,上述碼流包括第一索引,第一索引用於指示由一個權重導出模式和K個預測模式組成的第一組合,K為大於1的正整數。
基於以上技術方案,在對當前塊進行編解碼時,確定N個候選權重導出模式,進而基於N個候選權重導出模式和當前塊的屬性資訊,確定至少一個候選預測模式,進而基於N個候選權重導出模式和至少一個候選預測模式確定當前塊對應的第一權重導出模式和K個第一預測模式,進而使用該第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。也就是說,在本申請實施例中,編解碼端在確定至少一個候選預測模式時,考慮了權重導出模式和當前塊的屬性資訊,進而提高了候選預測模式的確定準確性,基於該準確確定的候選預測模式列表對當前塊進行預測時,可以提升當前塊的預測準確性,提高編解碼性能。
本申請可應用於圖像編解碼領域、視訊編解碼領域、硬體視訊編解碼領域、專用電路視訊編解碼領域、即時視訊編解碼領域等。例如,本申請的方案可結合至音視訊編碼標準(audio video coding standard,簡稱AVS),例如,H.264/音視訊編碼(audio video coding,簡稱AVC)標準,H.265/高效視訊編碼(high efficiency video coding,簡稱HEVC)標準以及H.266/多功能視訊編碼(versatile video coding,簡稱VVC)標準。或者,本申請的方案可結合至其它專屬或行業標準而操作,所述標準包含ITU-TH.261、ISO/IECMPEG-1Visual、ITU-TH.262或ISO/IECMPEG-2Visual、ITU-TH.263、ISO/IECMPEG-4Visual,ITU-TH.264(還稱為ISO/IECMPEG-4AVC),包含可分級視訊編解碼(SVC)及多視圖視訊編解碼(MVC)擴展。應理解,本申請的技術不限於任何特定編解碼標準或技術。
為了便於理解,首先結合圖1對本申請實施例涉及的視訊編解碼系統進行介紹。
圖1為本申請實施例涉及的一種視訊編解碼系統的示意性框圖。需要說明的是,圖1只是一種示例,本申請實施例的視訊編解碼系統包括但不限於圖1所示。如圖1所示,該視訊編解碼系統100包含編碼設備110和解碼設備120。其中編碼設備用於對視訊資料進行編碼(可以理解成壓縮)產生碼流,並將碼流傳輸給解碼設備。解碼設備對編碼設備編碼產生的碼流進行解碼,得到解碼後的視訊資料。
本申請實施例的編碼設備110可以理解為具有視訊編碼功能的設備,解碼設備120可以理解為具有視訊解碼功能的設備,即本申請實施例對編碼設備110和解碼設備120包括更廣泛的裝置,例如包含智慧手機、桌上型電腦、移動計算裝置、筆記本(例如,膝上型)電腦、平板電腦、機上盒、電視、相機、顯示裝置、數位媒體播放機、視訊遊戲控制台、車載電腦等。
在一些實施例中,編碼設備110可以經由通道130將編碼後的視訊資料(如碼流)傳輸給解碼設備120。通道130可以包括能夠將編碼後的視訊資料從編碼設備110傳輸到解碼設備120的一個或多個媒體和/或裝置。
在一個實例中,通道130包括使編碼設備110能夠即時地將編碼後的視訊資料直接發射到解碼設備120的一個或多個通訊媒體。在此實例中,編碼設備110可根據通訊標準來調製編碼後的視訊資料,且將調製後的視訊資料發射到解碼設備120。其中通訊媒體包含無線通訊媒體,例如射頻頻譜,可選的,通訊媒體還可以包含有線通訊媒體,例如一根或多根物理傳輸線。
在另一實例中,通道130包括儲存媒介,該儲存媒介可以儲存編碼設備110編碼後的視訊資料。儲存媒介包含多種本地存取式資料儲存媒介,例如光碟、DVD、快閃記憶體等。在該實例中,解碼設備120可從該儲存媒介中獲取編碼後的視訊資料。
在另一實例中,通道130可包含儲存伺服器,該儲存伺服器可以儲存編碼設備110編碼後的視訊資料。在此實例中,解碼設備120可以從該儲存伺服器中下載儲存的編碼後的視訊資料。可選的,該儲存伺服器可以儲存編碼後的視訊資料且可以將該編碼後的視訊資料發射到解碼設備120,例如web伺服器(例如,用於網站)、檔傳送協議(FTP)伺服器等。
一些實施例中,編碼設備110包含視訊編碼器112及輸出介面113。其中,輸出介面113可以包含調製器/解調器(數據機)和/或發射器。
在一些實施例中,編碼設備110除了包括視訊編碼器112和輸出介面113外,還可以包括視訊源111。
視訊源111可包含視訊採集裝置(例如,視訊相機)、視訊存檔、視訊輸入介面、電腦圖形系統中的至少一個,其中,視訊輸入介面用於從視訊內容提供者處接收視訊資料,電腦圖形系統用於產生視訊資料。
視訊編碼器112對來自視訊源111的視訊資料進行編碼,產生碼流。視訊資料可包括一個或多個圖像(picture)或圖像序列(sequence of pictures)。碼流以位元流的形式包含了圖像或圖像序列的編碼資訊。編碼資訊可以包含編碼圖像資料及相關聯資料。相關聯資料可包含序列參數集(sequence parameter set,簡稱SPS)、圖像參數集(picture parameter set,簡稱PPS)及其它語法結構。SPS可含有應用於一個或多個序列的參數。PPS可含有應用於一個或多個圖像的參數。語法結構是指碼流中以指定次序排列的零個或多個語法元素的集合。
視訊編碼器112經由輸出介面113將編碼後的視訊資料直接傳輸到解碼設備120。編碼後的視訊資料還可儲存於儲存媒介或儲存伺服器上,以供解碼設備120後續讀取。
在一些實施例中,解碼設備120包含輸入介面121和視訊解碼器122。
在一些實施例中,解碼設備120除包括輸入介面121和視訊解碼器122外,還可以包括顯示裝置123。
其中,輸入介面121包含接收器及/或數據機。輸入介面121可透過通道130接收編碼後的視訊資料。
視訊解碼器122用於對編碼後的視訊資料進行解碼,得到解碼後的視訊資料,並將解碼後的視訊資料傳輸至顯示裝置123。
顯示裝置123顯示解碼後的視訊資料。顯示裝置123可與解碼設備120整合或在解碼設備120外部。顯示裝置123可包括多種顯示裝置,例如液晶顯示器(LCD)、等離子體顯示器、有機發光二極體(OLED)顯示器或其它類型的顯示裝置。
此外,圖1僅為實例,本申請實施例的技術方案不限於圖1,例如本申請的技術還可以應用於單側的視訊編碼或單側的視訊解碼。
下麵對本申請實施例涉及的視訊編碼框架進行介紹。
圖2是本申請實施例涉及的視訊編碼器的示意性框圖。應理解,該視訊編碼器200可用於對圖像進行失真壓縮(lossy compression),也可用於對圖像進行無失真壓縮(lossless compression)。該無失真壓縮可以是視覺無失真壓縮(visually lossless compression),也可以是數學無失真壓縮(mathematically lossless compression)。
該視訊編碼器200可應用於亮度色度(YCbCr,YUV)格式的圖像資料上。例如,YUV比例可以為4:2:0、4:2:2或者4:4:4,Y表示明亮度(Luma),Cb (U)表示藍色色度,Cr (V)表示紅色色度,U和V表示為色度(Chroma)用於描述色彩及飽和度。例如,在顏色格式上,4:2:0表示每4個像素有4個亮度分量,2個色度分量(YYYYCbCr),4:2:2表示每4個像素有4個亮度分量,4個色度分量(YYYYCbCrCbCr),4:4:4表示全像素顯示(YYYYCbCrCbCrCbCrCbCr)。
例如,該視訊編碼器200讀取視訊資料,針對視訊資料中的每幀圖像,將一幀圖像劃分成若干個編碼樹單元(coding tree unit,CTU),在一些例子中,CTB可被稱作“樹型塊”、“最大編碼單元”(Largest Coding unit,簡稱LCU)或“編碼樹型塊” (coding tree block,簡稱CTB)。每一個CTU可以與圖像內的具有相等大小的區塊相關聯。每一像素可對應一個亮度(luminance或luma)採樣及兩個色度(chrominance或chroma)採樣。因此,每一個CTU可與一個亮度採樣塊及兩個色度採樣塊相關聯。一個CTU大小例如為128×128、64×64、32×32等。一個CTU又可以繼續被劃分成若干個編碼單元(Coding Unit,CU)進行編碼,CU可以為矩形塊也可以為方形塊。CU可以進一步劃分為預測單元(prediction Unit,簡稱PU)和變換單元(transform unit,簡稱TU),進而使得編碼、預測、變換分離,處理的時候更靈活。在一種示例中,CTU以四叉樹方式劃分為CU,CU以四叉樹方式劃分為TU、PU。
視訊編碼器及視訊解碼器可支援各種PU大小。假定特定CU的大小為2N×2N,視訊編碼器及視訊解碼器可支援2N×2N或N×N的PU大小以用於幀內預測,且支持2N×2N、2N×N、N×2N、N×N或類似大小的對稱PU以用於幀間預測。視訊編碼器及視訊解碼器還可支援2N×nU、2N×nD、nL×2N及nR×2N的不對稱PU以用於幀間預測。
在一些實施例中,如圖2所示,該視訊編碼器200可包括:預測單元210、殘差單元220、變換/量化單元230、反變換/量化單元240、重建單元250、環路濾波單元260、解碼圖像緩存270和熵編碼單元280。需要說明的是,視訊編碼器200可包含更多、更少或不同的功能組件。
可選的,在本申請中,當前塊(current block)可以稱為當前編碼單元(CU)或當前預測單元(PU)等。預測塊也可稱為預測圖像塊或圖像預測塊,重建圖像塊也可稱為重建塊或圖像重建圖像塊。
在一些實施例中,預測單元210包括幀間預測單元211和幀內預測單元212。由於視訊的一個幀中的相鄰像素之間存在很強的相關性,在視訊編解碼技術中使用幀內預測的方法消除相鄰像素之間的空間冗餘。由於視訊中的相鄰幀之間存在著很強的相似性,在視訊編解碼技術中使用幀間預測方法消除相鄰幀之間的時間冗餘,從而提高編碼效率。
幀間預測單元211可用於幀間預測,幀間預測可以包括運動估計(motion estimation)和運動補償(motion compensation),可以參考不同幀的圖像資訊,幀間預測使用運動資訊從參考幀中找到參考塊,根據參考塊生成預測塊,用於消除時間冗餘;幀間預測所使用的幀可以為P幀和/或B幀,P幀指的是向前預測幀,B幀指的是雙向預測幀。幀間預測使用運動資訊從參考幀中找到參考塊,根據參考塊生成預測塊。運動資訊包括參考幀所在的參考幀列表,參考幀索引,以及運動向量。運動向量可以是整像素的或者是分像素的,如果運動向量是分像素的,那麼需要在參考幀中使用插值濾波做出所需的分像素的塊,這裡把根據運動向量找到的參考幀中的整像素或者分像素的塊叫參考塊。有的技術會直接把參考塊作為預測塊,有的技術會在參考塊的基礎上再處理生成預測塊。在參考塊的基礎上再處理生成預測塊也可以理解為把參考塊作為預測塊然後再在預測塊的基礎上處理生成新的預測塊。
幀內預測單元212只參考同一幀圖像的資訊,預測當前碼圖像塊內的像素資訊,用於消除空間冗餘。幀內預測所使用的幀可以為I幀。
幀內預測有多種預測模式,以國際數位視訊編碼標準H系列為例,H.264/AVC標準有8種角度預測模式和1種非角度預測模式,H.265/HEVC擴展到33種角度預測模式和2種非角度預測模式。HEVC使用的幀內預測模式有平面模式(Planar)、DC和33種角度模式,共35種預測模式。VVC使用的幀內模式有Planar、DC和65種角度模式,共67種預測模式。
需要說明的是,隨著角度模式的增加,幀內預測將會更加精確,也更加符合對高清以及超高清數位視訊發展的需求。
殘差單元220可基於CU的區塊及CU的PU的預測塊來產生CU的殘差塊。舉例來說,殘差單元220可產生CU的殘差塊,使得殘差塊中的每一採樣具有等於以下兩者之間的差的值:CU的區塊中的採樣,及CU的PU的預測塊中的對應採樣。
變換/量化單元230可量化變換係數。變換/量化單元230可基於與CU相關聯的量化參數(QP)值來量化與CU的TU相關聯的變換係數。視訊編碼器200可透過調整與CU相關聯的QP值來調整應用於與CU相關聯的變換係數的量化程度。
反變換/量化單元240可分別將逆量化及逆變換應用於量化後的變換係數,以從量化後的變換係數重建殘差塊。
重建單元250可將重建後的殘差塊的採樣加到預測單元210產生的一個或多個預測塊的對應採樣,以產生與TU相關聯的重建圖像塊。透過此方式重建CU的每一個TU的採樣塊,視訊編碼器200可重建CU的區塊。
環路濾波單元260用於對反變換與反量化後的像素進行處理,彌補失真資訊,為後續編碼像素提供更好的參考,例如可執行消塊濾波操作以減少與CU相關聯的區塊的塊效應。
在一些實施例中,環路濾波單元260包括去塊濾波單元和樣點自我調整補償/自我調整環路濾波(SAO/ALF)單元,其中去塊濾波單元用於去方塊效應,SAO/ALF單元用於去除振鈴效應。
解碼圖像緩存270可儲存重建後的區塊。幀間預測單元211可使用含有重建後的區塊的參考圖像來對其它圖像的PU執行幀間預測。另外,幀內預測單元212可使用解碼圖像緩存270中的重建後的區塊來對在與CU相同的圖像中的其它PU執行幀內預測。
熵編碼單元280可接收來自變換/量化單元230的量化後的變換係數。熵編碼單元280可對量化後的變換係數執行一個或多個熵編碼操作以產生熵編碼後的資料。
圖3是本申請實施例涉及的視訊解碼器的示意性框圖。
如圖3所示,視訊解碼器300包含:熵解碼單元310、預測單元320、反量化/變換單元330、重建單元340、環路濾波單元350及解碼圖像緩存360。需要說明的是,視訊解碼器300可包含更多、更少或不同的功能組件。
視訊解碼器300可接收碼流。熵解碼單元310可解析碼流以從碼流提取語法元素。作為解析碼流的一部分,熵解碼單元310可解析碼流中的經熵編碼後的語法元素。預測單元320、反量化/變換單元330、重建單元340及環路濾波單元350可根據從碼流中提取的語法元素來解碼視訊資料,即產生解碼後的視訊資料。
在一些實施例中,預測單元320包括幀內預測單元322和幀間預測單元321。
幀內預測單元322可執行幀內預測以產生PU的預測塊。幀內預測單元322可使用幀內預測模式以基於空間相鄰PU的區塊來產生PU的預測塊。幀內預測單元322還可根據從碼流解析的一個或多個語法元素來確定PU的幀內預測模式。
幀間預測單元321可根據從碼流解析的語法元素來構造第一參考圖像列表(列表0)及第二參考圖像列表(列表1)。此外,如果PU使用幀間預測編碼,則熵解碼單元310可解析PU的運動資訊。幀間預測單元321可根據PU的運動資訊來確定PU的一個或多個參考塊。幀間預測單元321可根據PU的一個或多個參考塊來產生PU的預測塊。
反量化/變換單元330可逆量化(即,解量化)與TU相關聯的變換係數。反量化/變換單元330可使用與TU的CU相關聯的QP值來確定量化程度。
在逆量化變換係數之後,反量化/變換單元330可將一個或多個逆變換應用於逆量化變換係數,以便產生與TU相關聯的殘差塊。
重建單元340使用與CU的TU相關聯的殘差塊及CU的PU的預測塊以重建CU的區塊。例如,重建單元340可將殘差塊的採樣加到預測塊的對應採樣以重建CU的區塊,得到重建圖像塊。
環路濾波單元350可執行消塊濾波操作以減少與CU相關聯的區塊的塊效應。
視訊解碼器300可將CU的重建圖像儲存於解碼圖像緩存360中。視訊解碼器300可將解碼圖像緩存360中的重建圖像作為參考圖像用於後續預測,或者,將重建圖像傳輸給顯示裝置呈現。
視訊編解碼的基本流程如下:在編碼端,將一幀圖像劃分成塊,針對當前塊,預測單元210使用幀內預測或幀間預測產生當前塊的預測塊。殘差單元220可基於預測塊與當前塊的原始塊計算殘差塊,即預測塊和當前塊的原始塊的差值,該殘差塊也可稱為殘差資訊。該殘差塊經由變換/量化單元230變換與量化等過程,可以去除人眼不敏感的資訊,以消除視覺冗餘。可選的,經過變換/量化單元230變換與量化之前的殘差塊可稱為時域殘差塊,經過變換/量化單元230變換與量化之後的時域殘差塊可稱為頻率殘差塊或頻域殘差塊。熵編碼單元280接收到變化量化單元230輸出的量化後的變化係數,可對該量化後的變化係數進行熵編碼,輸出碼流。例如,熵編碼單元280可根據目標上下文模型以及二進位元碼流的概率資訊消除字元冗餘。
在解碼端,熵解碼單元310可解析碼流得到當前塊的預測資訊、量化係數矩陣等,預測單元320基於預測資訊對當前塊使用幀內預測或幀間預測產生當前塊的預測塊。反量化/變換單元330使用從碼流得到的量化係數矩陣,對量化係數矩陣進行反量化、反變換得到殘差塊。重建單元340將預測塊和殘差塊相加得到重建塊。重建塊組成重建圖像,環路濾波單元350基於圖像或基於塊對重建圖像進行環路濾波,得到解碼圖像。編碼端同樣需要和解碼端類似的操作獲得解碼圖像。該解碼圖像也可以稱為重建圖像,重建圖像可以為後續的幀作為幀間預測的參考幀。
需要說明的是,編碼端確定的塊劃分資訊,以及預測、變換、量化、熵編碼、環路濾波等模式資訊或者參數資訊等在必要時攜帶在碼流中。解碼端透過解析碼流及根據已有資訊進行分析確定與編碼端相同的塊劃分資訊,預測、變換、量化、熵編碼、環路濾波等模式資訊或者參數資訊,從而保證編碼端獲得的解碼圖像和解碼端獲得的解碼圖像相同。
上述是基於塊的混合編碼框架下的視訊編解碼器的基本流程,隨著技術的發展,該框架或流程的一些模組或步驟可能會被優化,本申請適用於該基於塊的混合編碼框架下的視訊編解碼器的基本流程,但不限於該框架及流程。
在本申請實施例中,當前塊(current block)可以是當前編碼單元(CU)或當前預測單元(PU)等。由於並行處理的需要,圖像可以被劃分成片slice等,同一個圖像中的片slice可以並行處理,也就是說它們之間沒有資料依賴。而“幀”是一種常用的說法,一般可以理解為一幀是一個圖像。在申請中所述幀也可以替換為圖像或slice等。
目前正在制定中的多功能視訊編碼(Versatile Video Coding,VVC)視訊編解碼標準中,有一個叫做幾何劃分預測模式(GeometricpartitioningMode,GPM)的幀間預測模式。目前正在制定中的視訊編解碼標準(Audio Video coding Standard,AVS)視訊編解碼標準中,有一個叫做角度加權預測模式(Angular Weightedprediction,AWP)的幀間預測模式。這兩種模式雖然名稱不同、具體的實現形式不同、但原理上有共通之處。
需要說明的是,傳統的單向預測只找一個與當前塊大小相同的參考塊,傳統的雙向預測使用兩個與當前塊大小相同的參考塊,且預測塊每個點的像素值為兩個參考塊對應位置的平均值,即每一個參考塊的所有點都占50%的比例。雙向加權預測使得兩個參考塊的比例可以不同,如第一個參考塊中所有點都占75%的比例,第二個參考塊中所有點都占25%的比例。但同一個參考塊中的所有點的比例都相同。但同一個參考塊中的所有點的比例都相同。其他一些優化方式比如採用解碼端運動向量修正(Decoder sideMotion Vector Refinement,DMVR)技術、雙向光流(Bi-directional Optical Flow,BIO)等會使參考像素或預測像素產生一些變化,但與上面所說的原理無關。BIO也可以簡寫為BDOF。而GPM或AWP也使用兩個與當前塊大小相同的參考塊,但某些像素位置100%使用第一個參考塊對應位置的像素值,某些像素位置100%使用第二個參考塊對應位置的像素值,而在交界區域或者稱過渡區域,按一定比例使用這兩個參考塊對應位置的像素值。交界區域的權重也是逐漸過渡的。具體這些權重如何分配,由GPM或AWP的模式決定。根據GPM或AWP的模式確定每個像素位置的權重。當然在某些情況下,比如說塊尺寸很小的情況,可能某些GPM或AWP的模式下不能保證一定有某些像素位置100%使用第一個參考塊對應位置的像素值,某些像素位置100%使用第二個參考塊對應位置的像素值。也可以認為GPM或AWP使用兩個與當前塊大小不相同的參考塊,即各取所需的一部分作為參考塊。即將權重不為0的部分作為參考塊,而將權重為0的部分剔除出來。這是實現的問題,不是本發明討論的重點。
示例性地,圖4為權重分配示意圖,如圖4所示,其示出了本申請實施例提供的一種GPM在64×64的當前塊上的多種劃分模式的權重分配示意圖,其中,GPM存在有64種劃分模式。圖5為權重分配示意圖,如圖5所示,其示出了本申請實施例提供的一種AWP在64×64的當前塊上的多種劃分模式的權重分配示意圖,其中,AWP存在有56種劃分模式。無論是圖4還是圖5,每一種劃分模式下,黑色區域表示第一個參考塊對應位置的權重值為0%,白色區域表示第一個參考塊對應位置的權重值為100%,灰色區域則按顏色深淺的不同表示第一個參考塊對應位置的權重值為大於0%且小於100%的某一個權重值,第二個參考塊對應位置的權重值則為100%減去第一個參考塊對應位置的權重值。
GPM和AWP的權重導出方法不同。GPM根據每種模式確定角度及偏移量,而後計算出每個模式的權重矩陣。AWP首先做出一維的權重的線,然後使用類似於幀內角度預測的方法將一維的權重的線鋪滿整個矩陣。
應理解,早期的編解碼技術中只存在矩形的劃分方式,無論是CU、PU還是變換單元(Transform Unit,TU)的劃分。而GPM或AWP均在沒有劃分的情況下實現了預測的非矩形的劃分效果。GPM和AWP使用了兩個參考塊的權重的蒙版(mask),即上述的權重圖。這個蒙版確定了兩個參考塊在產生預測塊時的權重,或者可以簡單地理解為預測塊的一部分位置來自於第一個參考塊一部分位置來自於第二個參考塊,而過渡區域(blending area)用兩個參考塊的對應位置加權得到,從而使過渡更平滑。GPM和AWP沒有按劃分線把當前塊劃分成兩個CU或PU,於是在預測之後的殘差的變換、量化、反變換、反量化等也都是將當前塊作為一個整體來處理。
GPM使用權重矩陣模擬了幾何形狀的劃分,更確切地說是模擬了預測的劃分。而要實施GPM,除了權重矩陣還需要2個預測值,每個預測值由1個單向運動資訊確定。這2個單向運動資訊來自於一個運動資訊候選列表,例如來自merge運動資訊候選列表(mergeCandList)。GPM在碼流中使用兩個索引從mergeCandList中確定2個單向運動資訊。
幀間預測使用運動資訊(motion information)來表示“運動”。基本的運動資訊包含參考幀(reference frame)(或者叫參考圖像(reference picture))的資訊和運動向量(MV, motion vector)的資訊。常用的雙向預測,使用2個參考塊對當前塊進行預測。2個參考塊可以使用一個前向的參考塊和一個後向的參考塊。可選的,也允許2個都是前向或2個都是後向。所謂前向指參考幀對應的時刻在當前幀之前,後向指參考幀對應的時刻在當前幀之後。或者說前向指參考幀在視訊中的位置位於當前幀之前,後向指參考幀在視訊中的位置位於當前幀之後。或者說前向指參考幀的POC(picture order count)小於當前幀的POC,後向指參考幀的POC大於當前幀的POC。為了能使用雙向預測,自然需要能找到2個參考塊,那麼就需要2組參考幀的資訊和運動向量的資訊。可以把它們每一組理解為一個單向運動資訊,而把這2組組合到一起就形成了一個雙向運動資訊。在具體實現時,單向運動資訊和雙向運動資訊可以使用相同的資料結構,只是雙向運動資訊的2組參考幀的資訊和運動向量的資訊都有效,而單向運動資訊的其中一組參考幀的資訊和運動向量的資訊是無效的。
在一些實施例中,支持2個參考幀列表,記為RPL0,RPL1,其中RPL是Reference Picture List的簡寫。在一些實施例中,P slice只可以使用RPL0,B slice可以使用RPL0和RPL1。對一個slice,每個參考幀列表中有若干參考幀,編解碼器透過參考幀索引來找到某一個參考幀。在一些實施例中,用參考幀索引和運動向量來表示運動資訊。如對上述的雙向運動資訊,使用參考幀列表0對應的參考幀索引refIdxL0,以及參考幀列表0對應的運動向量mvL0,參考幀列表1對應的參考幀索引refIdxL1,以及參考幀列表1對應的運動向量mvL0。這裡的參考幀列表0對應的參考幀索引,參考幀列表1對應的參考幀索引就可以理解為上述的參考幀的資訊。在一些實施例中,用兩個標誌位元來分別表示是否使用參考幀列表0對應的運動資訊以及是否使用參考幀列表0對應的運動資訊,分別記為predFlagL0和predFlagL1。也可以理解為predFlagL0和predFlagL1表示上述單向運動資訊“是否有效”。雖然沒有明確地提到運動資訊這種資料結構,但是它用每個參考幀列表對應的參考幀索引,運動向量以及“是否有效”的標誌位元一起來表示運動資訊。在一些標準文本中不出現運動資訊,而是使用的運動向量,也可以認為參考幀索引和是否使用對應運動資訊的標誌是運動向量的附屬。本申請中為了描述方便仍然用“運動資訊”,但是應當理解,也可以用“運動向量”來描述。
當前塊所使用的運動資訊可以保存下來。當前幀的後續編解碼的塊可以根據相鄰的位置關係使用前面已編解碼的塊,如相鄰塊,的運動資訊。這利用了空域上的相關性,所以這種已編解碼的運動資訊叫做空域上的運動資訊。當前幀的每個塊所使用的運動資訊可以保存下來。後續編解碼的幀可以根據參考關係使用前面已編解碼的幀的運動資訊。這利用了時域上的相關性,所以這種已編解碼的幀的運動資訊叫做時域上的運動資訊。當前幀的每個塊所使用的運動資訊的儲存方法通常將一個固定大小的矩陣,如4x4的矩陣,作為一個最小單元,每個最小單元單獨儲存一組運動資訊。這樣每編解碼一個塊,它的位置對應的那些最小單元就可以把這個塊的運動資訊儲存下來。這樣使用空域上的運動資訊或時域上的運動資訊時可以直接根據位置找到該位置對應的運動資訊。如一個16x16的塊使用了傳統的單向預測,那麼這個塊對應的所有的4x4個最小單元都儲存這個單向預測的運動資訊。如果一個塊使用了GPM或AWP,那麼這個塊對應的所有的最小單元會根據GPM或AWP的模式,第一個運動資訊,和第二個運動資訊以及每個最小單元的位置確定每個最小單元儲存的運動資訊。一種方法是如果一個最小單元對應的4x4的像素全部來自於第一個運動資訊,那麼這個最小單元儲存第一個運動資訊,如果一個最小單元對應的4x4的像素全部來自於第二個運動資訊,那麼這個最小單元儲存第二個運動資訊。如果一個最小單元對應的4x4的像素既來自於第一個運動資訊又來自於第二個運動資訊,那麼AWP會選擇其中一個運動資訊進行儲存;GPM的做法是如果兩個運動資訊指向不同的參考幀列表,那麼把它們組合成雙向運動資訊儲存,否則只儲存第二個運動資訊。
可選的,上述mergeCandList是根據空域運動資訊,時域運動資訊,基於歷史的運動資訊,還有一些其他的運動資訊來構建的。示例性的,mergeCandList使用如圖6A中1至5的位置來推導空域運動資訊,使用如圖6A中的6或7的位置來推導時域運動資訊。基於歷史的運動資訊是在每編解碼一個塊時,把這個塊的運動資訊添加到一個先進先出的列表裡,添加過程可能需要一些檢查,如是否跟列表裡現有的運動資訊重複。這樣在編解碼當前塊時就可以參考這個基於歷史的列表裡的運動資訊。
在一些實施例中,關於GPM的語法描述如表1所示:
表1
| regular_merge_flag[x0][y0] | ae(v) |
| if( regular_merge_flag[x0][y0] == 1 ) { | |
| if( sps_mmvd_enabled_flag ) | |
| mmvd_merge_flag[x0][y0] | ae(v) |
| if( mmvd_merge_flag[x0][y0] == 1 ) { | |
| if( MaxNumMergeCand > 1 ) | |
| mmvd_cand_flag[x0][y0] | ae(v) |
| mmvd_distance_idx[x0][y0] | ae(v) |
| mmvd_direction_idx[x0][y0] | ae(v) |
| } else if( MaxNumMergeCand > 1 ) | |
| merge_idx[x0][y0] | ae(v) |
| } else { | |
| if( sps_ciip_enabled_flag && sps_gpm_enabled_flag && sh_slice_type == B && cu_skip_flag[x0][y0] == 0 && cbWidth >= 8 && cbHeight >= 8 && cbWidth < (8*cbHeight) && cbHeight < (8*cbWidth) && cbWidth < 128 && cbHeight < 128 ) | |
| ciip_flag[x0][y0] | ae(v) |
| if( ciip_flag[x0][y0] && MaxNumMergeCand > 1 ) | |
| merge_idx[x0][y0] | ae(v) |
| if( !ciip_flag[x0][y0] ) { | |
| merge_gpm_partition_idx[x0][y0] | ae(v) |
| merge_gpm_idx0[x0][y0] | ae(v) |
| if( MaxNumGpmMergeCand > 2 ) | |
| merge_gpm_idx1[x0][y0] | ae(v) |
| } | |
| } |
如表1所示,在merge模式下,如果regular_merge_flag不為1,當前塊可能用CIIP或GPM。如果當前塊不用CIIP,那麼它就用GPM,也就是在表1中的語法“if( !ciip_flag[x0][y0] )”所示的內容。
如上述表1可知,GPM需要在碼流中傳輸3個資訊,即merge_gpm_partition_idx,merge_gpm_idx0,merge_gpm_idx1。x0,y0用來確定當前塊左上角亮度像素相對於圖像左上角亮度像素的座標( x0, y0 )。merge_gpm_partition_idx確定GPM的劃分形狀,上面已經講過了,它是“模擬劃分”,merge_gpm_partition_idx也就是本文所說的權重矩陣導出模式或者說權重矩陣導出模式的索引,或者說權重導出模式或權重導出模式的索引。merge_gpm_idx0是第一個合併候選索引,第一合併(merge)候選索引用於根據mergeCandList確定第一運動資訊或者稱第一合併候選。merge_gpm_idx1是第二個合併候選索引,第二合併(merge)候選索引用於根據mergeCandList確定第二運動資訊或者稱第二合併候選。如果MaxNumGpmMergeCand > 2即候選列表長度大於2才需要解碼merge_gpm_idx1,否則可以直接確定。
在一些實施例中,GPM的解碼過程包括如下步驟:
解碼過程輸入的資訊包括:當前塊左上角的亮度位置相對於圖像左上角的座標( xCb, yCb ),當前塊亮度分量的寬度cbWidth,當前塊亮度分量的高度cbHeight,1/16像素精度的亮度運動向量mvA 和 mvB,色度運動向量 mvCA 和 mvCB,參考幀索引 refIdxA 和 refIdxB,預測列表標誌 predListFlagA 和 predListFlagB。
示例性的,可以用運動向量,參考幀索引和預測列表標誌組合起來來表示運動資訊。VVC支持2個參考幀列表,每個參考幀列表可能有多個參考幀。單向預測只使用其中一個參考幀列表中的一個參考幀的一個參考塊作為參考,雙向預測使用兩個參考幀列表中的各一個參考幀的各一個參考塊作為參考。而VVC中的GPM使用2各單向預測。上述mvA 和 mvB,mvCA 和 mvCB,refIdxA 和 refIdxB,predListFlagA 和 predListFlagB中的A可以理解為第一個預測模式,B可以理解為第二個預測模式。我們用X表示A或B,predListFlagX表示X使用第一個參考幀列表還是第二個參考幀列表,refIdxX表示X使用的參考幀列表中的參考幀索引,mvX表示X使用的亮度運動向量,mvCX表示X使用的色度運動向量。重申一遍,可以認為VVC中,運動向量,參考幀索引和預測列表標誌組合起來來表示本文所述的運動資訊。
解碼過程輸出的資訊包括:(cbWidth)Χ(cbHeight)的亮度預測樣本矩陣predSamplesL;(cbWidth / SubWidthC) Χ(cbHeight / SubHeightC)的Cb色度分量的預測樣本矩陣,如果需要;(cbWidth / SubWidthC) Χ(cbHeight / SubHeightC) 的Cr色度分量的預測樣本矩陣,如果需要。
示例性的,下麵以亮度分量舉例,色度分量的處理和亮度分量類似。
假設predSamplesLAL 和 predSamplesLBL 的大小為(cbWidth)Χ(cbHeight),為根據2個預測模式做出的預測樣本矩陣。predSamplesL按如下方法導出:分別根據亮度運動向量mvA 和 mvB,色度運動向量 mvCA 和 mvCB,參考幀索引 refIdxA 和 refIdxB,預測列表標誌 predListFlagA 和 predListFlagB確定predSamplesLAL 和 predSamplesLBL。即分別根據2個預測模式的運動資訊進行預測,詳細過程不再贅述。通常GPM是merge模式,可以認為GPM的2個預測模式都是merge模式。
根據merge_gpm_partition_idx[ xCb ][ yCb ],利用表2確定GPM的劃分角度索引變數angleIdx和距離索引變數distanceIdx。
表2 –angleIdx和distanceIdx與merge_gpm_partition_idx的對應關係
| merge_gpm_partition_idx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| angleIdx | 0 | 0 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | 4 | 4 | 4 | 5 | 5 |
| distanceIdx | 1 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 |
| merge_gpm_partition_idx | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| angleIdx | 5 | 5 | 8 | 8 | 11 | 11 | 11 | 11 | 12 | 12 | 12 | 12 | 13 | 13 | 13 | 13 |
| distanceIdx | 2 | 3 | 1 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 |
| merge_gpm_partition_idx | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
| angleIdx | 14 | 14 | 14 | 14 | 16 | 16 | 18 | 18 | 18 | 19 | 19 | 19 | 20 | 20 | 20 | 21 |
| distanceIdx | 0 | 1 | 2 | 3 | 1 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 |
| merge_gpm_partition_idx | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
| angleIdx | 21 | 21 | 24 | 24 | 27 | 27 | 27 | 28 | 28 | 28 | 29 | 29 | 29 | 30 | 30 | 30 |
| distanceIdx | 2 | 3 | 1 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 |
需要說明的是,因為三個分量(component,如Y、Cb、Cr)都可以使用GPM,所以在一些標準文本將一個分量產生GPM的預測樣本矩陣的過程分裝到了一個子流程裡面,即GPM的加權預測過程(Weighted sample prediction process for geometric partitioning mode),三個分量都會調用這個流程,只是調用的參數不同,這裡只用亮度分量舉例。當前亮度塊的預測矩陣predSamplesL[ xL ][ yL ] (其中xL = 0..cbWidth – 1, yL = 0..cbHeight − 1)由GPM的加權預測過程導出。其中nCbW設為cbWidth, nCbH設為cbHeight,兩個預測模式做的預測樣本矩陣predSamplesLAL和 predSamplesLBL, 還有angleIdx, distanceIdx作為輸入。
在一些實施例中,GPM的加權預測導出過程包括如下步驟:
該過程的輸入有:當前塊的寬度nCbW,當前塊的高度nCbH;2個(nCbW)Χ(nCbH) 的預測樣本矩陣predSamplesLA 和 predSamplesLB;GPM的劃分角度索引變數angleIdx;GPM的距離索引變數distanceIdx;分量索引變數cIdx。本示例以亮度舉例,因此上述cIdx為0,表示亮度分量。
該過程的輸出有:(nCbW)Χ(nCbH) 的GPM預測樣本矩陣pbSamples。
示例性的,變數nW, nH, shift1, offset1, displacementX, displacementY, partFlip 還有 shiftHor按如下方法導出:
nW = ( cIdx = = 0 ) ? nCbW : nCbW * SubWidthC;
nH = ( cIdx = = 0 ) ? nCbH : nCbH * SubHeightC;
shift1 = Max( 5, 17 − BitDepth ),其中BitDepth是編解碼的位元深度;
offset1 = 1 << ( shift1 − 1 ),其中“<<”表示左移;
displacementX = angleIdx;
displacementY = ( angleIdx + 8 ) % 32;
partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1;
shiftHor = ( angleIdx % 16 = = 8 | | ( angleIdx % 16 != 0 && nH >= nW ) ) ? 0 : 1。
變數offsetX和offsetY按如下方法導出:
當shiftHor的值為0時:
offsetX = ( −nW ) >> 1,
offsetY = ( ( −nH ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nH ) >> 3 : −( ( distanceIdx * nH ) >> 3 ) )。
當shiftHor的值為1時:
offsetX = ( ( −nW ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nW ) >> 3 : −( ( distanceIdx * nW ) >> 3 ),
offsetY = ( − nH ) >> 1。
變數xL 和 yL 按如下方法導出:
xL = ( cIdx = = 0 ) ? x : x * SubWidthC,
yL = ( cIdx = = 0 ) ? y : y * SubHeightC,
表示當前位置預測樣本權重的變數wValue 按如下方法導出,wValue即為(x,y)點的第一個預測模式的預測矩陣的預測值predSamplesLA[ x ][ y ]的權重,而( 8 − wValue ) 即為(x,y)點的第二個預測模式的預測矩陣的預測值predSamplesLB[ x ][ y ]的權重。
其中距離矩陣disLut按表3確定:
表3
| idx | 0 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 11 | 12 | 13 | 14 |
| disLut[idx] | 8 | 8 | 8 | 4 | 4 | 2 | 0 | −2 | −4 | −4 | −8 | −8 |
| idx | 16 | 18 | 19 | 20 | 21 | 22 | 24 | 26 | 27 | 28 | 29 | 30 |
| disLut[idx] | −8 | −8 | −8 | −4 | −4 | −2 | 0 | 2 | 4 | 4 | 8 | 8 |
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] + ( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ],
weightIdxL = partFlip ? 32 + weightIdx : 32 – weightIdx,
wValue = Clip3( 0, 8, ( weightIdxL + 4 ) >> 3 ),
預測樣本的值pbSamples[ x ][ y ]按如下方法導出:
pbSamples[ x ][ y ] = Clip3( 0, ( 1 << BitDepth ) − 1, ( predSamplesLA[ x ][ y ] * wValue + predSamplesLB[ x ][ y ] * ( 8 − wValue ) + offset1 ) >> shift1 )。
需要說明的是,對當前塊的每一個位置推導一個權重值,然後計算一個GPM的預測值pbSamples[ x ][ y ]。因為這種方式權重wValue不必寫成一個矩陣的形式,但是可以理解如果把每個位置的wValue都保存到一個矩陣裡,那它就是一個權重矩陣。每個點分別計算權重並加權得到GPM的預測值,或者計算出所有的權重再統一加權得到GPM的預測樣本矩陣其原理是一樣的。而本申請中的諸多描述中使用權重矩陣的說法,是為了表述更容易理解,用權重矩陣畫圖更直觀,其實也可以按每個位置的權重來描述。比如權重矩陣導出模式也可以說成權重導出模式。
在一些實施例中,如圖6B所示,GPM的解碼流程可以表述為:解析碼流,確定當前塊是否使用GPM技術;如果當前塊使用GPM技術,確定權重導出模式(或劃分模式或權重矩陣導出模式),及第一運動資訊和第二運動資訊。分別根據第一運動資訊確定第一預測塊,根據第二運動資訊確定第二預測塊,根據權重矩陣導出模式確定權重矩陣,根據第一預測塊和第二預測塊和權重矩陣確定當前塊的預測塊。
幀內預測方法是使用當前塊周邊已編解碼的重建像素作為參考像素來對當前塊進行預測。圖7A為幀內預測的示意圖,如圖7A所示,當前塊的大小為4x4,當前塊左側一行和上方一列的像素為當前塊的參考像素,幀內預測使用這些參考像素對當前塊進行預測。這些參考像素可能已經全部可得,即全部已經編解碼。也可能有部分不可得,比如當前塊是整幀的最左側,那麼當前塊的左邊的參考像素不可得。或者編解碼當前塊時,當前塊左下方的部分還沒有編解碼,那麼左下方的參考像素也不可得。對於參考像素不可得的情況,可以使用可得的參考像素或某些值或某些方法進行填充,或者不進行填充。
圖7B為幀內預測的示意圖,如圖7B所示,多參考行幀內預測方法(Multiple reference line,MRL)可以使用更多的參考像素從而提高編解碼效率,例如,使用4個參考行/列為當前塊的參考像素。
進一步地,幀內預測有多種預測模式,圖8A-5I為幀內預測的示意圖,如圖8A-5I所示,H.264中對4x4的塊進行幀內預測主要可以包括9種模式。其中,如圖8A所示的模式0將當前塊上面的像素按垂直方向複製到當前塊作為預測值,如圖8B所示的模式1將左邊的參考像素按水準方向複製到當前塊作為預測值,如圖8C所示的模式2直流DC將A~D和I~L這8個點的平均值作為所有點的預測值,如圖8D-5I所示的模式3~8分別按某一個角度將參考像素複製到當前塊的對應位置,因為當前塊某些位置不能正好對應到參考像素,可能需要使用參考像素的加權平均值,或者說是插值的參考像素的分像素。
除此之外,還有Plane,Planar等模式等,而隨著技術的發展以及塊的擴大,角度預測模式也越來越多。圖9為幀內預測模式的示意圖,如圖9所示,如HEVC使用的幀內預測模式有Planar、DC和33種角度模式共35種預測模式。圖10為幀內預測模式的示意圖,如圖10所示,VVC使用的幀內模式有Planar、DC和65種角度模式共67種預測模式。圖11為幀內預測模式的示意圖,如圖11所示,VS3使用DC、Plane、Bilinear、PCM和62種角度模式共66種預測模式。
另外還有一些技術對預測進行改進,如改進參考像素的分像素插值,對預測像素進行濾波等。如AVS3中的多組合幀內預測濾波(multipleintraprediction filter,MIPF)對不同的塊大小,使用不同的濾波器產生預測值。對同一個塊內的不同位置的像素,與參考像素較近的像素使用一種濾波器產生預測值,與參考像素較遠的像素使用另一種濾波器產生預測值。對預測像素進行濾波的技術如AVS3中的幀內預測濾波(intraprediction filter,IPF),對預測值可以使用參考像素進行濾波。
在幀內預測中可以使用最可能模式列表(MostprobableModes List,MPM)的幀內模式編碼技術來提高編解碼效率。利用周邊已編解碼的塊的幀內預測模式,以及根據周邊已編解碼塊的幀內預測模式導出的幀內預測模式,如相鄰的模式,以及一些常用或使用概率比較高的幀內預測模式,如DC,Planar,Bilinear模式等,構成一個模式列表。參考周邊已編解碼的塊的幀內預測模式利用了空間上的相關性。因為紋理在空間上會有一定的連續性。MPM可以作為幀內預測模式的預測。也就是認為當前塊使用MPM的概率會比不使用MPM的概率高。因而在二值化時,會給MPM使用更少的碼字,從而節省開銷,以提高編解碼效率。
在一些實施例中,可以使用基於矩陣的幀內預測(Matrix-based Intra Prediction,MIP),有的地方也寫做Matrix weighted Intra Prediction進行幀內預測。如圖12所示,為了對一個寬度為W高度為H的塊進行預測,MIP需要當前塊左側一列的H個重建像素和當前塊上側一行的W個重建像素作為輸入。MIP按如下3個步驟生成預測塊:參考像素平均(Averaging),矩陣乘法(Matrix Vector Multiplication)和插值(Interpolation)。其中矩陣乘法是MIP的核心。MIP可以認為是用一種矩陣乘法的方式用輸入像素(參考像素)生成預測塊的過程。MIP提供了多種矩陣,預測方式的不同就體現在矩陣的不同上,相同的輸入像素使用不同的矩陣會得到不同的結果。而參考像素平均和插值的過程是一種性能和複雜度折中的設計。對於尺寸較大的塊,可以透過參考像素平均來實現一種近似於降採樣的效果,使輸入能適配到比較小的矩陣,而插值則實現一種上採樣的效果。這樣就不需要對每一種尺寸的塊都提供MIP的矩陣,而是只提供一種或幾種特定的尺寸的矩陣即可。隨著對壓縮性能的需求的提高,以及硬體能力的提高,下一代的標準中也許會出現複雜度更高的MIP。
MIP有些類似於planar,但顯然MIP比planar更複雜,靈活性也更強。
在一些實施例中,可以使用基於範本的幀內預測模式導出(Template-based Intra Mode Derivation,TIMD)的幀內預測技術。示例性的,如圖13所示,對當前塊,把它左側和上側的一個區域作為範本。除了邊界情況,在編解碼當前塊時,當前塊的左側和上側理論上是可以得到重建值的。這也是眾多範本適配方法的基礎。TIMD把圖13所示的當前塊的左側和上側區域作為範本,而將範本左側和上側區域的像素作為範本的參考像素。解碼器可以使用某一個幀內預測模式在範本上進行預測,並且將預測值和重建值進行比較,得到該幀內預測模式在範本上的代價。比如說SAD,SATD,SSE等。由於範本和當前塊是相鄰的,它們有相關性,所以可以用一個預測模式在範本上的表現來估計它在當前塊上的表現。TIMD將一些候選的幀內預測模式在範本上進行預測,得到它們在範本上的代價,取代價最低的一個或2個幀內預測模式作為當前塊的幀內預測值。
研究發現如果2個幀內預測模式在範本上的代價差距不大,將2個幀內預測模式的預測值進行加權平均可以得到壓縮性能的提升。2個預測模式的預測值的權重跟上述的代價有關,在一些實施例中,這個權重跟代價成反比。
總的來說,TIMD利用幀內預測模式在範本上的預測效果來篩選幀內預測模式,而且可以將2個幀內預測模式根據範本上的代價進行加權。TIMD的好處在於如果當前塊選擇了TIMD模式,那麼它不需要再去指示具體使用了哪種幀內預測模式,而是由解碼器自己透過上述流程導出,一定程度上節省了開銷。
在一些實施例中,可以使用解碼器端幀內預測模式導出(Decoder-side Intra Mode Derivation,DIMD)的幀內預測技術。DIMD也是利用當前塊左側和上側的重建像素導出預測模式,但是它不是在範本上進行預測,而是分析重建像素的梯度。如圖14A所示,DIMD分析視窗中心點的梯度,根據它的梯度適配一種幀內預測模式,對所有需要檢查的點分析可以得到一個類似於圖14A中的柱狀圖的結果。當然所謂柱狀圖只是幫助理解,具體實現時可以用多種簡單的形式實現。在一些實施例中,DIMD選出柱狀圖裡最高的2個幀內預測模式,再加上planar模式,共3個幀內預測模式的預測值進行加權,權重和分析的結果有關。
在一種示例中,DIMD的預測過程如圖14B所示,選出柱狀圖裡最高的2個幀內預測模式,即M1和M2分別對應的幀內預測模式,再加上planar模式,共3個幀內預測模式。確定3個幀內預測模式分別對應的權重ω1、ω2和ω3,並確定3個幀內預測模式分別對應的預測值Pred1、Pred2和Pred3。基於3個幀內預測模式分別對應的權重,對這3個幀內預測模式對應的預測值進行加權,得到最終的預測塊。
由上述可知,DIMD利用重建像素的梯度分析來篩選幀內預測模式,而且可以將2個幀內預測模式再加上planar根據分析結果進行加權。DIMD的好處在於如果當前塊選擇了DIMD模式,那麼它不需要再去指示具體使用了哪種幀內預測模式,而是由解碼器自己透過上述流程導出,一定程度上節省了開銷。
TIMD和DIMD有很多相似之處,甚至在一些實施例中,它們的名稱是顛倒的。它們都支援2個或更多幀內預測模式的預測值進行加權。
GPM用權重矩陣組合兩個幀間預測塊。實際上它可以擴展到組合兩個任意的預測塊。如兩個幀間預測塊,兩個幀內預測塊,一個幀間預測塊和一個幀內預測塊。甚至在螢幕內容編碼中,還可以使用IBC(intra block copy)或palette的預測塊作為其中的1個或2個預測塊。
本申請將幀內、幀間、IBC、palette稱為不同的預測方式。為了表述方便,這裡使用一個叫預測模式的稱呼。預測模式可以理解為根據它編解碼器可以產生當前塊的一個預測塊的資訊。比如,在幀內預測中,預測模式可以是某個幀內預測模式,如DC,Planar,各種幀內角度預測模式等。當然也可以疊加某個或某些輔助的資訊,比如幀內參考像素的優化方法,產生初步的預測塊以後的優化方法(比如濾波)等。比如,在幀間預測中,預測模式可以是skip(跳過)模式,merge(合併)模式或MMVD(merge with motion vector difference,帶運動向量差的合併)模式,或AMVP(advanced motion vector predition,高級運動向量預測),可以是單向預測也可以是雙向預測或多假設預測。如果幀間的預測模式使用單向預測,一個預測模式還要能確定一個運動資訊,根據一個運動資訊能確定預測塊。如果幀間的預測模式使用雙向預測,一個預測模式還要能確定兩個運動資訊,根據兩個運動資訊能確定預測塊。
這樣GPM需要確定的資訊可以表述為1個權重導出模式和2個預測模式。權重導出模式用來確定權重矩陣或權重,2個預測模式分別確定一個預測塊或預測值。權重導出模式在某些地方也被稱為劃分模式。但因為它是模擬劃分,本申請稱為權重導出模式。
可選的,2個預測模式可以來自相同的或不同的預測方式,其中預測方式包括但不限於幀內預測、幀間預測、IBC、palette。
一個具體的具體的例子如下:如果當前塊使用GPM。這個例子用在幀間編碼的塊中,允許使用幀內預測和幀間預測中的merge模式。如表4所示,增加一個語法元素intra_mode_idx表示哪一個預測模式是幀內預測模式,比如intra_mode_idx為0表示2個預測模式都是幀間預測模式,即mode0IsInter為1,mode0IsInter為1;intra_mode_idx為1表示第一個預測模式是幀內預測模式,第二個預測模式是幀間預測模式,即mode0IsInter為0,mode0IsInter為1;intra_mode_idx為2表示第一個預測模式是幀間預測模式,第二個預測模式是幀內預測模式,即mode0IsInter為1,mode0IsInter為0;intra_mode_idx為3表示兩個預測模式都是幀內預測模式,即mode0IsInter為0,mode0IsInter為0。
表4
| { | |
| merge_gpm_partition_idx[x0][y0] | ae(v) |
| intra_mode_idx[x0][y0] | ae(v) |
| if( mode0IsInter ) | |
| merge_gpm_idx0[x0][y0] | ae(v) |
| if( (!mode0IsInter && mode1IsInter) || (MaxNumGpmMergeCand > 2 && mode0IsInter && mode1IsInter)) | |
| merge_gpm_idx1[x0][y0] | ae(v) |
| } |
在一些實施例中,如圖15所示,GPM的解碼流程可以表述為:解析碼流,確定當前塊是否使用GPM技術;如果當前塊使用GPM技術,確定權重導出模式(或劃分模式或權重矩陣導出模式),及第一個預測模式和第二個預測模式。分別根據第一個預測模式確定第一預測塊,根據第二個預測模式確定第二預測塊,根據權重矩陣導出模式確定權重矩陣,根據第一預測塊和第二預測塊和權重矩陣確定當前塊的預測塊。
範本匹配(template matching)的方法最早用在幀間預測中,它利用相鄰像素之間的相關性,把當前塊周邊的一些區域作為範本。在當前塊進行編解碼時,按照編碼順序其左側及上側已經編解碼完成。當然在現有的硬體解碼器實現時,不一定能保證當前塊開始解碼時,其左側和上側已經解碼完成,當然這裡說的是幀間塊,比如在HEVC中幀間編碼的塊產生預測塊時是不需要周邊的重建像素的,因而幀間塊的預測過程可以並行進行。但是幀內編碼的塊是一定需要左側和上側的重建像素作為參考像素的。理論上左側和上側是可得的,也就是說硬體設計做相應的調整是可以實現的。相對來說右側和下側在現在標準如VVC的編碼順序下是不可得的。
如圖16所示把當前塊的左側和上側的矩形區域設為範本,左側的範本部分的高度一般和當前塊的高度相同,上側的範本的部分的寬度一般和當前塊的寬度相同,當然也可以不同。在參考幀中尋找範本的最佳匹配位置從而確定當前塊的運動資訊或者說運動向量。這個過程大致可以描述為,在某一個參考幀中,從一個起始位置開始,在周邊一定範圍內進行搜索。可以預先設定好搜索的規則,如搜索範圍搜索步長等。每移動一個到位置,計算該位置對應的範本和當前塊周邊的範本的匹配程度,所謂匹配程度可以用一些失真代價來衡量,比如說SAD(sum of absolute difference),SATD (sum of absolute transformed difference),一般SATD使用的變換是Hadamard變換,MSE(mean-square error)等,SAD,SATD,MSE等的值越小代表匹配程度越高。用該位置對應的範本的預測塊和當前塊周邊的範本的重建塊計算代價。除了整像素位置的搜索還可以進行分像素位置的搜索,根據搜索到的匹配程度最高的位置來確定當前塊的運動資訊。利用相鄰像素之間的相關性,對範本合適的運動資訊可能也是當前塊合適的運動資訊。當然範本匹配的方法可能並不一定對所有的塊都適用,因而可以使用一些方法確定當前塊是否使用上述範本匹配的方法,比如在當前塊用一個控制開關表示是否使用範本匹配的方法。這種範本匹配的方法的一個名字叫DMVD(decoder side motion vector derivation)。編碼器和解碼器都可以利用範本進行搜索從而導出運動資訊或者在原有的運動資訊的基礎上找到更好的運動資訊。而它不需要傳輸具體的運動向量或運動向量差,而是由編碼器和解碼器都進行同樣規則的搜索從而保證編碼和解碼的一致。範本匹配的方法可以提高壓縮性能,但是它需要在解碼器中也進行“搜索”,從而帶來了一定的解碼器複雜度。
上述是在幀間上應用範本匹配的方法,範本匹配的方法也可以用在幀內上,比如說利用範本來確定幀內預測模式。對當前塊,同樣可以使用當前塊上側和左側一定範圍內的區域作為範本,比如說仍然如上圖所示的左側的矩形區域和上側的矩形區域。在編解碼當前塊時,在範本中的重建像素是可得的。這個過程大致可以描述為,對當前塊確定候選的幀內預測模式的集合,候選的幀內預測模式構成全部可用的幀內預測模式的一個子集。當然候選的幀內預測模式可以是全部可用的幀內預測模式的全集。這可以根據性能和複雜度的權衡來確定。可以根據MPM或一些規則,如等間距篩選等,來確定候選的幀內預測模式的集合。計算各候選的幀內預測模式在範本上的代價,比如SAD,SATD,MSE等。用該模式在範本上進行預測做出預測塊,用預測塊和範本的重建塊計算代價。代價小的模式可能與範本更匹配,利用相鄰像素之間的相似性,在範本上表現好的幀內預測模式可能也是當前塊上表現好的幀內預測模式。選定1個或幾個代價小的模式。當然上述2步可以重複進行,比如說在選定1個或幾個代價小的模式後,再一次確定候選的幀內預測模式的集合,對新確定的候選的幀內預測模式集合再計算代價,選定1個或幾個代價小的模式。這也可以理解為粗選和細選。最終選定的1個幀內預測模式確定為當前塊的幀內預測模式,或者最終選定的幾個幀內預測模式作為當前塊的幀內預測模式的候選。當然也可以僅僅用範本匹配的方法對候選的幀內預測模式集合進行排序,比如對MPM列表進行排序,即將MPM列表中的模式分別在範本上做出預測塊並確定代價,按代價從小到大進行排序。一般MPM列表中越靠前的模式在碼流中的開銷越小,這樣也可以達到提高壓縮效率的目的。
範本匹配的方法可以用於確定GPM的2個預測模式上。如果將範本匹配的方法用於GPM,對當前塊可以用1個控制開關控制當前塊的2個預測模式是否使用範本匹配,也可以用2個控制開關分別控制2個預測模式各自是否使用範本匹配。
另一方面是如何使用範本匹配。比如如果GPM在merge模式下使用,如VVC中的GPM,它使用merge_gpm_idxX從mergeCandList中確定一個運動資訊,其中大寫的X為0或1。對第X個運動資訊,一種方法是在上述運動資訊的基礎上用範本匹配的方法進行優化。即根據merge_gpm_idxX從mergeCandList中確定一個運動資訊,如果對該運動資訊使用範本匹配,那麼用範本匹配的方法在上述運動資訊的基礎上進行優化。另一種方法是不使用merge_gpm_idxX從mergeCandList中確定一個運動資訊,而是直接從一個預設運動資訊的基礎上進行搜索,確定一個運動資訊。
如果第X預測模式是幀內預測模式,而且當前塊的第X預測模式使用範本匹配的方法,那麼可以利用範本匹配方法確定一個幀內預測模式,不需要在碼流中指示該幀內預測模式的索引。或者利用範本匹配方法確定一個候選集合或者MPM列表,需要在碼流中指示該幀內預測模式的索引。
在一種GPM幀內加幀間預測方法中,GPM的預測值由一個幀內預測值和一個幀間預測值用GPM模式的權重加權得到。其中幀間預測的預測模式資訊(運動資訊)和VVC標準中的推導方法類似,而幀內預測的預測模式需要構建一個針對該GPM模式的對應部分的幀內預測模式候選列表,所述列表也可以稱為MPM列表。並由編碼器將當前塊選中的幀內預測模式索引寫到碼流中,解碼器在解碼時用相同的方法構建針對該GPM模式的MPM列表,並根據解碼得到的幀內預測模式索引確定幀內預測模式。示例性的,GPM模式的對應部分,可以理解為圖4或圖5劃分圖中的白色部分或黑色部分,後面為了表述方便可以稱為第一部分,第二部分。一個例子是第一部分為白色部分,第二部分為黑色部分。第一部分對應第一個預測模式,第二部分對應第二個預測模式。第一部分和第二部分更直觀方便理解,但實際它可能不會出現在具體的演算法中。
在構建所述GPM模式對應部分的幀內預測模式的MPM列表時,按順序加入如下幾類幀內預測模式到MPM列表,直到列表長度達到3:
1、與GPM劃分線平行的幀內預測模式;
2、DIMD導出的幀內預測模式;
3、TIMD導出的幀內預測模式;
4、相鄰塊的幀內預測模式;
5、與GPM劃分線垂直的幀內預測模式;
6、PLANAR模式。
其中,與GPM劃分線平行的幀內預測模式如圖17A所示,與GPM劃分線垂直的幀內預測模式如圖17B所示。目前的具體實現是根據GPM的模式確定GPM劃分的角度索引angleIdx,構建一張angleIdx和幀內預測模式對應的查閱資料表,根據angleIdx從查閱資料表中確定與GPM劃分線平行的幀內預測模式。垂直的幀內預測模式用平行的幀內預測模式計算得到。
在一些實施例中,在使用相鄰塊的幀內預測模式時,最多會用到5個相鄰塊的幀內預測模式,5個相鄰塊的位置如圖18所示。記當前塊左上角的座標為(x0,y0),當前塊的寬度為width,當前塊的高度為height,5個相鄰塊分別是由座標(x0-1,y0-1)確定的相鄰塊AL,(x0+width-1,y0-1)確定的相鄰塊A,(x0+width,y0-1)確定的相鄰塊AR,(x0-1,y0+height-1)確定的相鄰塊L,(x0-1,y0+height)確定的相鄰塊BL。
根據幀內預測模式對應的是第一部分還是第二部分,以及GPM模式對應的角度索引angleIdx,查下表5確定其可用的相鄰塊的範圍:
表5
| 角度索引 | 0 | 2 | 3 | 4 | 5 | 8 | 11 | 12 | 13 | 14 |
| 第一部分 | A | A | A | A | L+A | L+A | L+A | L+A | A | A |
| 第二部分 | L+A | L+A | L+A | L | L | L | L | L+A | L+A | L+A |
| 角度索引 | 16 | 18 | 19 | 20 | 21 | 24 | 27 | 28 | 29 | 30 |
| 第一部分 | A | A | A | A | L+A | L+A | L+A | L+A | A | A |
| 第二部分 | L+A | L+A | L+A | L | L | L | L | L+A | L+A | L+A |
表5中,A可以理解為當前塊上側的相鄰塊,L可以理解為當前塊左側的相鄰塊。如果查表5得到得是A,那麼可以使用相鄰塊A的幀內預測模式和相鄰塊AR的幀內預測模式,如果查表得到的是L,那麼可以使用相鄰塊L的幀內預測模式和相鄰塊BL的幀內預測模式,如果查表得到的是L+A,那麼可以使用相鄰塊A,AR, L, BL的幀內預測模式。而相鄰塊AL的預測模式總是可用。相鄰塊的檢查順序是L->A->BL->AR->AL。
由上述可知,GPM有3個要素,一個權重矩陣和2個預測模式。GPM的優勢是可以透過權重矩陣實現更自主的組合。而另一方面,GPM需要確定更多的資訊,因而需要在碼流中付出更大的開銷。以GPM為例,可選的,GPM用在merge模式下。在碼流中分別用merge_gpm_partition_idx,merge_gpm_idx0,merge_gpm_idx1確定權重矩陣,第一個預測模式和第二個預測模式。權重矩陣和2個預測模式各自都有多種可能的選擇,比如VVC中的權重矩陣有64種可能的選擇。而merge_gpm_idx0,merge_gpm_idx1各自在VVC中最大允許有6種可能的選擇,當然VVC規定merge_gpm_idx0和merge_gpm_idx1不重複。那麼這樣的GPM就有65x6x5種可能的選擇。而如果將MMVD用於2個運動資訊(預測模式)的優化上,對每一個預測模式又可以提供多種可能的選擇。這個數量就相當龐大了。另一方面,可以發現範本匹配的方法也可以用在2個運動資訊(預測模式)的優化上,這另外也提供了更多的可能的選擇。而即使是這種用範本匹配對2個運動資訊(預測模式)進行優化的方法,以目前的技術演進的現狀來看,也需要塊級的開關來當前塊指示是否使用它。
而如果GPM使用2個幀內預測模式,其中每一個預測模式如果可以使用VVC中的67種普通幀內預測模式,2個幀內預測模式不相同,也有64Χ67Χ66種可能的選擇。當然為了節省開銷,可以限制每個預測模式只可以使用所有普通幀內預測模式的一個子集,但這仍然有眾多的可能的選擇。
如果GPM使用1個幀內預測模式,1個幀間預測模式,情況可以根據上述幀內預測模式和幀間預測模式的情況類推。
在一些實施例中,對於GPM的1個權重導出模式和2個預測模式的指示使用各自的語法元素(syntax element)寫入碼流和解析碼流。即1個權重導出模式有自己的一個或多個語法元素,第一個預測模式有自己的一個或多個語法元素,第二個預測模式有自己的一個或多個語法元素。當然標準可以限制在某些情況下第二個預測模式不能和第一個預測模式相同,或者某些優化手段可以同時用在2個預測模式(這也可以理解為用在當前塊),但是三者在語法元素的寫入和解析上是相對獨立的。所謂相對獨立也可以理解為有一定的關聯,但是在去掉了限制後的其他的可能的選擇仍然是獨立的。
對於等概率事件,用定長編碼是比較合適的。而對於概率明顯有高有低的情況,對高概率的事件使用短碼,低概率的事件使用長碼,能提高編碼效率。而對於權重導出模式和預測模式這兩種不同維度的模式,對它們的概率估計是相互分開的。
由於一個權重導出模式和2個預測模式共同產生一個預測塊,這個預測塊作用於當前塊。它們之間是有關聯的。舉幾個例子,比如當前塊包含2個相對運動的物體的邊緣,這是幀間GPM的一個理想的場景。那麼理論上這個“劃分”應該發生在物體的邊緣,但是實際上“劃分”有有限種可能,不可能覆蓋任意的邊緣,有時會選擇相近的“劃分”,那這樣可能相近的“劃分”不止一種,選擇哪種就取決於哪種“劃分”與2個預測模式組合的結果最優。同理,選擇哪種預測模式有時同樣取決於哪種組合的結果最優,因為即使是在使用該預測模式的部分,對自然視訊而言,這部分也很難和當前塊完全匹配,最終選擇的可能是編碼效率最高的。另一種GPM用得比較多的地方是當前塊包含一個物體中存在相對運動的部分。比如說胳膊的擺動等導致扭曲、變形的地方,這樣的“劃分”就更模糊,可能最終取決於哪種組合的結果最優。還有一種場景是幀內的預測,由於自然的圖像中某些部分的紋理是很複雜的,某些部分存在一種紋理向另一種紋理的漸變,某些部分可能無法用簡單的一個方向來表述,幀內GPM可以提供出更複雜的預測塊,而幀內編碼的塊相對於相同量化下的幀間編碼的塊通常存在更大殘差,選擇哪種預測模式可能最終取決於哪種組合的結果最優。
上面多次提到“組合”,即可以不是分2個或3個維度去選擇權重導出模式和預測模式,而是把它們組合起來,選擇權重導出模式和預測模式的組合。這體現在語法元素上,就是使用一種“組合”的語法元素,根據這個組合,可以確定出權重導出模式和2個預測模式。
也就是說編碼器和解碼器可以分別產生相同的N個候選組合,比如說編解碼器都構建一個有N個候選組合的列表,每個候選組合可以導出1個權重導出模式和2個預測模式的組合。而在碼流中,編碼器只需要寫入最終選擇了哪一個候選組合,解碼器解析編碼器最終選擇了哪一個候選組合。在本申請中稱這個列表為GPM組合候選列表或候選組合列表。
在一種示例中,GPM組合候選列表大致是按這個組合被選中的概率從大到小排列的,那麼對於排在前面一些位元次的候選組合可以使用比現有方法更短的碼字。而另一方面,對一些選中概率很低的組合使用更長的碼字。使得整體上編碼效率提升。由於現有方法分了3個部分,理論上本方案的方法可以達到更大的靈活性,更容易逼近最有效的概率和碼字的對應。
當然,前面提到了,某些情況下,GPM可能的組合的數量是相當龐大的。為了能表徵龐大數量的候選就需要更長的碼字。但是如果能提前排除掉某些發生概率太低的組合,那也就能減少發生概率高的組合的代價。當然現有方法也可以按每一個部分去排除發生概率太低的情況,但是使用組合的方式也更靈活。比如現有方法要排除一種“劃分”,那麼這種“劃分”所有的可能都被排除了。
另一個好處是這樣做可以使語法變得更簡單。在解析時不需要各種情況的判斷等。
對於如何編碼gpm_cand_idx,前面提到了這跟它們的概率有關。一個例子是使用指數哥倫布編碼(Exponential-Golomb coding)。如果候選的個數比較少,即可以理解為只可以選擇概率最高的少數模式,也可以使用定長碼,比如說只有16個候選,16個候選統一使用位元長度的編碼。
對不同大小的塊,可以設置不同的候選組合個數。比如說對更小的塊,相似的權重導出模式或預測模式對預測結果的影響差別不大,而對更大的塊,相似的權重導出模式或預測模式對預測結果的影響差別會更加明顯,所以一種方法是對較小的塊設置比較少的候選組合個數,對較大的塊設置比較多的候選組合個數。判斷塊的大小可以根據塊的寬度和高度或者塊的像素數。一個例子是對像素數小於(或小於等於)256的塊設置候選個數為8,對像素數大於等於(或大於)256的塊設置候選個數為16。
下麵對GPM組合候選列表的構建過程進行介紹。
在一些實施例中,可以利用更多的相關資訊去分析各種組合發生的概率大小。比如利用周邊塊的模式資訊,重建像素等。
一種方法是借助範本來構建GPM組合候選列表。
一般情況下,上側範本的高度和左側範本的寬度是一致的,這個值可以是1,2,4等。一個例子是,在借助範本來構建GPM組合候選列表時,使用高度為1的上側範本和/或寬度為1的左側範本,可以適當降低計算負責度。需要說明的是,這裡的上側範本的高度為1可以理解為當前塊的上側範本包括當前塊的上側一行已解碼或已編碼像素點,左側範本的寬度為1可以理解為當前塊的左側範本包括當前塊的左側列表已解碼或已編碼像素點。
在使用範本的情況下,由於當前塊可以使用到更多的相關資訊,也就是當前塊周邊已經重建的資訊,可以更好地利用上述三要素之間的關聯性。也可以說使用當前塊周邊的已經重建的資訊對當前塊的一些情況進行估計。
一種方法是,對每一種組合,用GPM方法對範本進行預測,得到這個組合對範本的預測塊,由於範本已經得到了重建值,可以用這個組合對範本的預測塊和範本的重建塊計算預測失真的代價,比如說計算SAD,SATD,SSE等。根據預測失真代價對各種組合進行排序,或者構建一個僅維護前N個預測失真代價最小的組合的列表。就可以構建出GPM組合候選列表。
上述方法,對某一個組合來說,就是用第一個預測模式產生範本的第一預測值,用第二個預測模式產生範本的第二預測值,用權重導出模式導出範本上像素位置的權重,根據第一預測值和第二預測值和權重確定範本的預測值。
編碼器和解碼器都要使用相同的GPM組合候選列表構建方法從而保證編解碼的一致。前面提到GPM所有可能的組合的數量可能是相當龐大的,上述方法是一種窮舉的方法,在具體實現時,可以使用快速演算法來構建GPM組合候選列表,但是編碼器和解碼器使用的演算法要相同。比如說對各種組合進行分層篩選,或者優先檢查一些根據已知資訊推斷可能性比較高的組合而且設置一些提前終止條件等。
在一些實施例中,這個實施例用在幀內編碼的塊,並且是不適用螢幕內容編碼的塊。這裡不是說在螢幕內容編碼的塊裡不能用本方案,只是為了用最簡單的例子說明本方案,因為在幀內編碼且不用螢幕內容編碼的塊中只需要考慮幀內預測模式,不需要考慮IBC、palette等螢幕內容編碼的模式以及幀間的各種模式。本方案可以用於任意GPM可用的情況,這個上面已有描述。
這裡假設GPM的可能的權重導出模式有64種,GPM可能的幀內預測模式有67種,這些可以從VVC的標準中找到。但是並不是限制GPM的可能的權重只有64種,或者是哪64種,而另一方面我們要知道,之所以VVC的GPM選擇64種也是一個預測效果提升和在碼流中的開銷提升的一種權衡方案。而本方案不再使用一種固定的邏輯去編碼權重導出模式,所以理論上本方案可以使用更多樣的權重,以及更靈活地使用它們。同樣,並不是限制GPM的幀內預測模式只有67種,或者是哪67種。理論上所有可能的幀內預測模式都可以用在GPM中。比如說幀內角度預測模式做得更加細緻,產生更多的幀內角度預測模式,那麼GPM也可以使用更多的幀內角度預測模式。比如說VVC的MIP(matrix-based intra prediction)模式,本方案也可以使用,但是考慮到MIP還有多種子模式可以選擇,這裡為了便於理解就不把MIP加入到本實施例中。另外還有一些寬角度模式,本方案也可以使用,本實施例不再加以描述。
如果不允許2個幀內預測模式相同,本實施例中總共有64*67*66種可能的組合。如果使用窮舉的辦法,將這些所有的可能的組合對範本進行預測,計算出這種組合的失真代價。我們也可以不對每一種幀內預測模式都進行嘗試,因為我們可以根據周邊塊的預測模式得到當前塊的MPM列表,比如在VVC中,當前塊可以得到一個長度為6的MPM列表。另外在一些後續的技術演進中,有一種secondary MPM的方案,可能導出長度為22的MPM列表,也可以說第一MPM列表和第二MPM列表的長度加起來是22。在本方案中,可能使用MPM來對幀內預測模式進行一個篩選。當然我們也可以構建一個適用於當前塊GPM模式的MPM列表,比如把與當前塊相鄰的所有的塊所使用的預測模式都加入到MPM列表,比如說如果MPM列表中不包含DC,水準預測模式或豎直預測模式等特殊的預測模式,那麼把其中的一個或者幾個加入到本方案的候選幀內預測模式中。比如說把與權重的分割線相關的幀內預測模式加入到本方案的候選幀內預測模式中。一個例子是與分割線平行或近似平行的一個或幾個幀內角度預測模式,一個例子是與分割線垂直或近似垂直的一個或幾個幀內角度預測模式。或者也可以根據權重導出模式來確定本方案的幀內預測模式候選。或者也可以對2個幀內預測模式分別確定本方案的幀內預測模式候選。總之,可以得到至少一個GPM幀內預測模式候選集合/列表。當然也可以限制可使用的預測模式的總個數以保證解碼端的複雜度,比如限制最多可使用6種預測模式。以上的這些方法都可以單獨或以任意組合使用。
由上述可知,在GPM中使用幀內預測模式需要構建MPM列表或者說篩選出一個候選預測模式的列表或集合。這有助於減少開銷或減少複雜度。所述減少複雜度的一個例子是在上述GPM組合編碼中,透過篩選幀內預測模式以減少需要嘗試的可能的組合的數量,減少計算量從而減少複雜度。
目前GPM相對整塊的預測的區別在於它把一個塊分成了2個部分,可以理解的是,每個部分都與相鄰塊或參考像素相關性強,與不相鄰的參考像素相關性弱。例如VVC中GPM索引為0的模式,它將當前塊從垂直方向分成2個部分,這裡稱為左邊部分和右邊部分,那麼左邊部分與左側的相鄰塊或參考像素相關性強,而右邊部分與左側的相鄰塊或參考像素由於不相鄰,相關性弱。但是,目前在確定候選預測模式的列表時,只是簡單地把相鄰塊分為上側和左側兩類,並不夠精確,進而使得確定出的候選預測模式不夠準確,導出基於該候選預測模式對當前塊進行預測時,預測準確性差。
為瞭解決上述技術問題,本申請在對當前塊進行編解碼時,首先確定N個候選權重導出模式,進而基於N個候選權重導出模式和當前塊的屬性資訊,確定至少一個候選預測模式,進而基於N個候選權重導出模式和至少一個候選預測模式確定當前塊對應的第一權重導出模式和K個第一預測模式,進而使用該第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。也就是說,在本申請實施例中,在確定至少一個候選預測模式時,考慮了權重導出模式和當前塊的屬性資訊,進而提高了候選預測模式的確定準確性,基於該準確確定的候選預測模式對當前塊進行預測時,可以提升當前塊的預測準確性,提高編解碼性能。
下面結合圖19,以解碼端為例,對本申請實施例提供的視訊解碼方法進行介紹。
圖19為本申請一實施例提供的視訊解碼方法流程示意圖,本申請實施例應用於圖1和圖3所示視訊解碼器。如圖19所示,本申請實施例的方法包括:
S101、確定N個候選權重導出模式。
其中,N為正整數。可選的,上述N為預設值或預設值。可選的,編碼端將上述N指示給解碼端,例如編碼端確定出N個候選權重導出模式,進而將N寫入碼流,這樣解碼端透過解碼碼流,得到N。可選的,N還可以是解碼端透過其他方式確定的,本申請實施例對此不做限制。
由上述可知,本申請實施例中,一個權重導出模式和K個預測模式共同產生一個預測塊,這個預測塊作用於當前塊,即根據權重導出模式確定權重,根據K個預測模式對當前塊進行預測,得到K個預測值,根據權重對K個預測值進行加權處理,得到當前塊的預測值。
也就是說,解碼端在解碼當前塊時,需要確定N個候選權重導出模式,以及多個候選預測模式,進而從N個候選權重導出模式中選擇一個權重導出模式,並從多個候選預測模式中選出K個預測模式,進而使用選出的一個權重導出模式和K個預測模式對當前塊進行預測,得到當前塊的預測值。
本申請實施例對解碼端確定N個候選權重導出模式的具體方式不做限制。
在一種可能的實現方式中,AWP有56種權重導出模式,GPM有64種權重導出模式。上述N個候選權重導出模式包括AWP中的56種權重導出模式中的至少一個權重導出模式,或者包括GPM中的64種權重導出模式中的至少一個權重導出模式。
在一種可能的實現方式中,可以篩選出AWP或GPM中的一些權重導出模式作為N個候選權重導出模式。即本申請實施例的N個候選權重導出模式是AWP或GPM的全部權重導出模式的子集。比如說權重導出模式中同一“劃分”角度可以對應多個偏移量,如圖4或圖5中的模式10,11,12,13,它們的“劃分”角度相同,但是偏移量不同,可以在本申請實施例中去掉一些偏移量對應的模式。當然也可以去掉一些“劃分”角度對應的模式。這樣做可以減少總的可能的組合的數量。而且使各個可能的組合之間差別更明顯。當然可以對不同的塊大小設置不同的篩選方法。比如對比較小的塊使用更少的權重導出模式,對更大的塊使用更多的權重導出模式。也可以對不同的塊形狀設置不同的篩選方法。一種解釋是塊形狀指寬度和高度的比例。
在該實現方式中,編碼端和解碼端篩選得到N個候選權重導出模式的方式相同。在一種示例中,篩選得到N個候選權重導出模式的方式是編解碼兩端預設的。在另一種示例中,編碼端可以將篩選得到N個候選權重導出模式的方式指示給解碼端,以使解碼端採用相同的方式,篩選得到與編碼端相同的N個候選權重導出模式。
在一些實施例中,從預設的M個權重導出模式中剔除預設劃分角度和/或預設偏移量對應的權重導出模式,得到N個權重導出模式。由於權重導出模式中同一劃分角度可以對應多個偏移量,如圖4所示權重導出模式10、11、12和13,它們的劃分角度相同,但是偏移量不同,這樣可以去掉一些預設偏移量對應的權重導出模式,和/或也可以去掉一些預設劃分角度對應的權重導出模式。
在一些實施例中,不同的塊對應的篩選條件可以不同,這樣在確定當前塊對應的N個權重導出模式時,首先確定當前塊對應的篩選條件,並根據當前塊對應的篩選條件,從預設的M個權重導出模式中,選出N個權重導出模式。
在一些實施例中,當前塊對應的篩選條件包括當前塊的大小對應的篩選條件和/或當前塊的形狀對應的篩選條件。在預測時,對於更小的塊,相似的權重導出模式對預測結果的影響差別不大,而對於較大的塊,相似的權重導出模式對預測結果的影響差別會更加明顯。基於此,本申請實施例對不同大小的塊設定不同的N值,即對較大塊設置較大的N值,對較小的塊設置較小的N值。
在一種可能的實現方式中,將N個候選權重導出模式指示給解碼端。
在一些實施例中,上述篩選條件包括陣列,該陣列包括N個元素,N個元素與N個權重導出模式一一對應,每個權重導出模式對應的元素用於指示該權重導出模式是否可用。
上述陣列可以是一位元數值,也可以是二位數值。
例如,以GPM為例,總共可能的權重導出模式是64個,編碼端設置一個含有64個元素的查閱資料表(look up table),每一個元素的值表示是否使用其對應的權重導出模式。
在一種示例中,以一位數值為例,一個具體的例子如下,設置一個g_sgpm_splitDir的陣列:
g_sgpm_splitDir[64] = {
1,1,1,0,1,0,1,0,
1,0,1,0,1,0,1,0,
1,0,1,1,1,0,1,0,
1,0,1,0,1,0,1,0,
0,0,0,0,1,1,0,1,
0,0,1,0,0,1,0,0,
1,0,1,1,0,1,0,0,
1,0,0,1,0,0,1,0
};
其中,g_sgpm_splitDir[x]的值為1表示可使用索引為x的權重導出模式,否則表示不可使用索引為x的權重導出模式。在該示例中,解碼端透過該陣列確定出26個候選權重導出模式。
在另一種示例中,可以用一個陣列來指示N個候選權重導出模式,陣列中只包含可使用的權重導出模式的索引,例如,使用長度為26的陣列g_sgpm_splitDir[26]={0,1,6,8,10,12,14,16,18,19,20,22,24,26,28,30,36,37,42,45,48,50,51,53,
56,59},來指示26個候選權重導出模式。解碼端基於該數值中所包括的權重導出模式的索引,將索引對應的權重導出模式確定為候選權重導出模式,得到26個候選權重導出模式。
在一些實施例中,若當前塊對應的篩選條件包括當前塊的大小對應的篩選條件和當前塊的形狀對應的篩選條件時,且對於同一個權重導出模式,若當前塊的大小對應的篩選條件和當前塊的形狀對應的篩選條件表示該權重導出模式均可用時,則將該權重導出模式確定為N個權重導出模式中的一個,若當前塊的大小對應的篩選條件和當前塊的形狀對應的篩選條件中的至少一個表示該權重導出模式不可用,則確定該權重導出模式不構成N個權重導出模式。
在一些實施例中,對於不同塊大小對應的篩選條件和不同塊形狀對應的篩選條件,可以使用多個陣列分別進行實現。
在一些實施例中,對於不同塊大小對應的篩選條件,和不同塊形狀對應的篩選條件可以使用二位元陣列來實現,也就是說,在一個二位元陣列中即包括塊大小對應的篩選條件,也包括塊形狀對應的篩選條件。
示例性的,對於大小為A,形狀為B的塊對應的篩選條件如下所示,該篩選條件透過一個二位元陣列表示:
g_sgpm_splitDir[64] = {
(1,1),(1,1),(1,1),(1,0),(1,0),(0,0),(1,0),(1,1),
(1,1),(0,0),(1,1),(1,0),(1,0),(0,0),(1,0),(1,1),
(0,1),(0,0),(1,1),(0,0),(1,0),(0,0),(1,0),(0,0),
(1,1),(0,0),(0,1),(1,0),(1,0),(1,0),(1,0),(0,0),
(0,0),(0,0),(1,1),(0,0),(1,1),(1,1),(1,0),(0,1),
(0,0),(0,0),(1,1),(0,0),(1,0),(0,0),(1,0),(0,0),
(1,0),(0,0),(1,1),(1,0),(1,0),(1,0),(0,0),(0,0),
(1,1),(0,0),(1,1),(0,0),(0,0),(1,0),(1,1),(0,0)
};
其中,g_sgpm_splitDir[x]的值均為1表示索引為x的權重導出模式可用,g_sgpm_splitDir[x]的值中有一個為0表示索引為x的權重導出模式不可用。例如g_sgpm_splitDir[4]=(1,0),表示權重導出模式4對於塊大小為A可用,但對於形狀為B的塊不可用,因此,若塊的大小為A且形狀為B時,則權重導出模式不可用。
需要說明的是,上述以GPM包括64個權重導出模式為例,但是本申請實施例的權重導出模式包括但不限於GPM所包括的64個權重導出模式,以及AMP所包括的56個權重導出模式。
在一些實施例中,解碼端在確定N個候選權重導出模式之前,首先需要判斷當前塊是否使用K個不同的預測模式進行加權預測處理。若解碼端確定當前塊使用K個不同的預測模式進行加權預測處理時,則執行上述S101確定N個候選權重導出模式。若解碼端確定當前塊不使用K個不同的預測模式進行加權預測處理時,則跳過上述S101的步驟。
在一種可能的實現方式中,解碼端可以透過確定當前塊的預測模式參數,來確定當前塊是否使用K個不同的預測模式進行加權預測處理。
可選的,在本申請的實施中,預測模式參數可以指示當前塊是否可以使用GPM模式或AWP模式,即指示當前塊是否可以使用K個不同的預測模式進行預測處理。
可以理解的是,在本申請的實施例中,可以將預測模式參數理解為一個表明是否使用了GPM模式或AWP模式標誌位元元。具體地,編碼器可以使用一個變數作為預測模式參數,從而可以透過對該變數的取值的設置來實現預測模式參數的設置。示例性的,在本申請中,如果當前塊使用GPM模式或AWP模式,那麼編碼器可以將預測模式參數的取值設置為指示當前塊使用GPM模式或AWP模式,具體地,編碼器可以將變數的取值設置為1。示例性的,在本申請中,如果當前塊不使用GPM模式或AWP模式,那麼編碼器可以將預測模式參數的取值設置為指示當前塊不使用GPM模式或AWP模式,具體地,編碼器可以將變數取值設置為0。進一步地,在本申請的實施例中,編碼器在完成對預測模式參數的設置之後,便可以將預測模式參數寫入碼流中,傳輸至解碼器,從而可以使解碼器在解析碼流之後獲得預測模式參數。
基於此,解碼端解碼碼流,得到預測模式參數,進而根據該預測模式參數確定當前塊是否使用GPM模式或AWP模式,若當前塊使用GPM模式或AWP模式,即使用K個不同的預測模式進行預測處理時,確定當前塊對應的N個候選權重導出模式。
在一些實施例中,本申請實施例還可以對當前塊使用GPM模式或AWP模式進行條件限定,即在判斷當前塊在滿足預設條件時,確定當前塊使用K個預測模式進行加權預測,進而確定當前塊對應的N個候選權重導出模式。
示例性的,在應用GPM模式或AWP模式時,可以對當前塊的尺寸進行限制。
可以理解的是,由於本申請實施例提出的預測方法需要分別使用K個不同的預測模式生成K個預測值,再根據權重進行加權得到當前塊的預測值,為了降低的複雜度,同時考慮壓縮性能和複雜度的權衡,在本申請的實施例中,可以限制對一些大小的塊不使用該GPM模式或AWP模式。因此,在本申請中,解碼器可以先確定當前塊的尺寸參數,然後根據尺寸參數確定當前塊是否使用GPM模式或AWP模式。
在本申請的實施例中,當前塊的尺寸參數可以包括當前塊的高度和寬度,因此,解碼器可以根據當前塊的高度和寬度確定當前塊是否使用GPM模式或AWP模式。
示例性的,在本申請中,若寬度大於閾值1且高度大於閾值2,則確定當前塊可以使用GPM模式或AWP模式。可見,一種可能的限制是僅僅在塊的寬度大於(或大於等於)閾值1,且塊的高度大於(或大於等於)閾值2的情況下使用GPM模式或AWP模式。其中,閾值1和閾值2的值可以是4、8,16,32、128、256等,閾值1可以等於閾值2。
示例性的,在本申請中,若寬度小於閾值3且高度大於閾值4,則確定當前塊可以使用GPM模式或AWP模式。可見,一種可能的限制是僅僅在塊的寬度小於(或小於等於)閾值3,且塊的高度大於(或大於等於)閾值4的情況下使用GPM模式或AWP模式。其中,閾值3和閾值4的值可以是4、8,16,32、128、256等,閾值3可以等於閾值4。
進一步地,在本申請的實施例中,還可以透過像素參數的限制來實現限制能夠使用GPM模式或AWP模式的塊的尺寸。
示例性的,在本申請中,解碼器可以先確定當前塊的像素參數,然後再根據像素參數和閾值5進一步判斷當前塊是否可以使用GPM模式或AWP模式。可見,一種可能的限制是僅僅在塊的像素數大於(或大於等於)閾值5的情況下使用GPM模式或AWP模式。其中,閾值5的值可以是4、8,16,32、128、256、1024等。
也就是說,在本申請中,在當前塊的尺寸參數滿足大小要求的條件下,當前塊才可以使用GPM模式或AWP模式。
示例性的,在本申請中,可以有一個幀級的標誌來確定當前待解碼幀是否使用本申請。如可以配置幀內幀(如I幀)使用本申請,幀間幀(如B幀、P幀)不使用本申請。或者可以配置幀內幀不使用本申請,幀間幀使用本申請。或者可以配置某些幀間幀使用本申請,某些幀間幀不使用本申請。幀間幀也可以使用幀內預測,因而幀間幀也有可能使用本申請。
在一些實施例中,還可以有一個幀級以下的標誌來確定當前塊是否使用本申請。
解碼端確定出N個候選權重導出模式後,執行如下S102的步驟。
S102、基於N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式。
目前,例如GPM幀內加幀間預測方式中,根據劃分線角度把相鄰塊分成上側和左側兩類,進而基於上側和左側相鄰塊的預測模式確定當前塊的至少一個候選預測模式。但是,這種劃分不夠精確,例如索引為0的權重導出模式,將當前塊從垂直方式劃分為2個部分,左部分和右部分,如上述表5,可以確定出第二部分(即第二預測模式)對應的相鄰塊為L+A,也就是說,在構建第二預測模式對應的候選預測模式列表時,可以使用相鄰塊A、AR、AL、L和BL的幀內預測模式。但是,如圖4和圖18可知,當前塊中的第二部分,即第二預測模式對應的黑色部分與上側相鄰塊A和右上角相鄰塊AR不相鄰,與相鄰塊A和相鄰塊AR的相關性弱,因此,目前直接基於相鄰塊A、AR、AL、L和BL的幀內預測模式確定當前塊的第二預測模式的候選預測模式列表時,可能存在確定的候選預測模式列表不準確的問題。
另外,如圖20A和圖20B所示,不同形狀的塊的同一個權重導出矩陣可能兩個預測模式的影響也不相同,例如VVC中GPM索引為13的模式,在長寬比1:2的塊中,白色部分沒有到達當前塊的左上角,而在長寬比2:1的塊中,白色部分到達了當前塊的左上角。也就是說,當前塊的屬性資訊也回應相鄰塊與當前塊的第一部分和第二部分的相關性。
基於上述描述,本申請實施例在確定至少一個候選預測模式時,不僅考慮了候選權重導出模式對候選預測模式的影響,還考慮了當前塊的屬性資訊對候選預測模式的影響,進而提高了候選預測模式的確定準確性。
本申請實施例對當前塊的屬性資訊的具體內容不做限制。
在一些實施例中,當前塊的屬性資訊包括當前塊的尺寸資訊。其中當前塊的尺寸資訊包括當前塊的長和寬、當前塊的長寬比、或當前塊所包括的像素點的個數等。
在一些實施例中,當前塊的屬性資訊還包括當前塊的形狀資訊。例如當前塊的形狀為正方形,或者當前塊的形狀為長方形,或者當前塊的形成為多變形或圓形等預設形狀。
在本申請實施例中,基於N個候選權重導出模式和當前塊的屬性資訊,確定至少一個候選預測模式可以理解為基於N個候選權重導出模式和當前塊的屬性資訊,確定當前塊的相鄰塊中,哪些相鄰塊的預測模式可以用於確定候選預測模式。例如,基於候選權重導出模式和當前塊的屬性資訊,確定相鄰塊的權重,基於相鄰塊的權重,確定選擇哪些相鄰塊的預測模式用於確定候選預測模式。
本申請實施例中,相鄰塊的預測模式是指解碼相鄰塊時使用的預測模式。
示例性的,如果在某一個GPM權重導出模式下,對某一個預測模式(第一個預測模式或第二個預測模式),相鄰塊的權重大於(或大於等於)某一個閾值,那麼代表該相鄰塊與當前預測模式所佔有的區域相關性強,否則,代表該相鄰塊與當前預測模式所佔有的區域相關性弱。
在一些實施例中,解碼端可以基於N個候選權重導出模式和當前塊的屬性資訊,確定至少一個候選預測模式,這至少一個候選預測模式構成候選預測模式列表。也就是說,在該實施例中,N個候選權重導出模式對應一個候選預測模式列表。例如,若N個候選權重導出模式的劃分線角度和偏移量相差不大,為了降低計算量,提升解碼效率,則解碼端確定從N個候選權重導出模式中,確定出一個候選權重導出模式A,基於該候選權重導出模式和當前塊的屬性資訊,確定一個候選預測模式列表。在一種示例中,上述候選權重導出模式A可以是N個候選權重導出模式中的一個預設候選權重導出模式。在另一種示例中,編碼端可以將該候選權重導出模式A的索引指示給解碼端,這樣解碼端解碼碼流,得到候選權重導出模式A的索引。
在一些實施例中,N個候選權重導出模式中至少一個候選權重導出模式分別對應一個候選預測模式列表。例如,解碼端針對N個候選權重導出模式中的每一個候選權重導出模式分別確定一個候選預測模式列表,此時,上述S102包括如下S102-A步驟:
S102-A、對於N個候選權重導出模式中的第i個候選權重導出模式,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的候選預測模式列表。
在該實施例中,確定N個候選權重導出模式中每一個候選權重導出模式對應的候選預測模式列表的方式相同,為例便於描述,在此以N個候選權重導出模式中的第i個候選權重導出模式為例進行說明。其中第i個候選權重導出模式可以理解為N個候選權重導出模式中的任意一個候選權重導出模式。
本申請實施例對基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的候選預測模式列表的具體方式不做限制。
在一些實施例中,第i個候選權重導出模式對應一個候選預測模式列表,即基於第i個候選權重導出模式和當前塊的屬性資訊,確定該第i個候選預測模式對應的一個候選預測模式列表。這樣在對當前塊進行預測時,從第i個候選權重導出模式對應的該候選預測模式列表中,確定出K個預測模式,進而使用該第i個候選權重導出模式和這K個預測模式對當前塊進行預測,得到當前塊的預測值。例如,基於第i個候選權重導出模式確定權重,使用K個預測模式對當前塊進行預測,得到K個預測值,使用權重對這K個預測值進行加權,得到當前塊在該第i個候選權重導出模式下的預測值。
在該實施例的一種示例中,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的候選預測模式列表的方式可以是:基於第i個候選權重導出模式確定所述第i個候選權重導出模式對應的劃分線,基於當前塊的屬性資訊,確定劃分線對當前塊進行劃分,得到的第一部分和第二部分,其中第一部分可以理解為第一個預測模式對應的部分,第二部分可以理解為第二個預測模式對應的部分。這樣可以基於當前塊的相鄰塊中與當前塊的第一部分相鄰的相鄰塊的預測模式,確定第i個候選權重導出模式對應一個候選預測模式列表。
在該實施例的另一種示例中,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的候選預測模式列表的方式可以是:基於第i個候選權重導出模式和當前塊的屬性資訊,確定當前塊的相鄰塊中每一個相鄰塊的權重,進而基於相鄰塊的權重,確定第i個候選權重導出模式對應一個候選預測模式列表。例如基於相鄰塊的權重較大的相鄰塊的預測模式,確定第i個候選權重導出模式對應一個候選預測模式列表。
在一些實施例中,第i個候選權重導出模式對應的K個預測模式,則上述S102-A包括如下S102-A1的步驟:
S102-A1、基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表。
在該實施例中,解碼端確定第i個候選導出模式對應的K個預測模式中的至少一個預測模式的候選預測模式列表。
例如,K=2,則解碼端可以基於第i個候選權重導出模式和當前塊的屬性資訊,為第一個預測模式確定一個候選預測模式列表,但不為第二個候選預測模式確定候選預測模式列表。可選的,可以為第二個預測模式確定一個候選預測模式列表,但不為第一個候選預測模式確定候選預測模式列表。可選的,可以為第一個預測模式確定一個候選預測模式列表,且為第二個候選預測模式確定一個候選預測模式列表。可選的,為第一個預測模式和第二個預測模式確定一個公用的候選預測模式列表。
本申請實施例中,為第i個候選權重導出模式對應的至少一個預測模式確定候選預測模式列表,進而從構建的候選預測模式列表中準確確定第i個候選權重導出模式對應的至少一個預測模式。
在一些實施例中,若上述至少一個預測模式對應一個候選預測模式列表時,則上述S102-A1包括如下S102-A1-11和S102-A1-12的步驟:
S102-A1-11、對於至少一個預測模式中的第j個預測模式,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表,j為正整數;
S102-A1-12、基於第j個預測模式的候選預測模式列表,確定至少一個預測模式的候選預測模式列表。
在該實施例中,第i個候選權重導出模式對應的至少一個預測模式對應一個候選預測模式列表,即這至少一個預測模式對應的候選預測模式列表相同,為一個候選預測模式列表,這樣可以降低確定候選預測模式列表的複雜度,提升解碼效率。此時,解碼端為這至少一個預測模式確定一個候選預測模式列表。
具體的,基於第i個候選權重導出模式和當前塊的屬性資訊,確定上述至少一個預測模式中的第j個預測模式的候選預測模式列表。可選的,該第j個預測模式為至少一個預測模式中的任意一個預測模式。接著,基於該第j個預測模式的候選預測模式列表,確定上述至少一個預測模式的候選預測模式列表。
其中,上述S102-A1-12中基於第j個預測模式的候選預測模式列表,確定上述至少一個預測模式的候選預測模式列表的具體方式包括但不限於如下幾種:
方式1、直接將該第j個預測模式的候選預測模式列表,確定為上述至少一個預測模式的候選預測模式列表。
方式2、判斷第j個預測模式的候選預測模式列表中是否包括預設預測模式,若第j個預測模式的候選預測模式列表中包括預設預測模式時,則將第j個預測模式的候選預測模式列表,確定為至少一個預測模式的候選預測模式列表。若第j個預測模式的候選預測模式列表中不包括預設預測模式時,則將預設預測模式添加至第j個預測模式的候選預測模式列表中,得到至少一個預測模式的候選預測模式列表。
本申請實施例對上述方式2中的預設預測模式不做限制,具體根據實際需要確定。
該實施例,對若上述至少一個預測模式對應一個候選預測模式列表時,確定上述至少一個預測模式的候選預測模式列表的具體過程進行介紹。
在一些實施例中,若上述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表時,則上述S102-A1包括如下S102-A1-21步驟:
S102-A1-21、對於上述至少一個預測模式中的第j個預測模式,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表,j為正整數。
在該實施例中,上述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表,因此,解碼端對於第i個候選權重導出模式,為該第i個候選權重導出模式對應的至少一個預測模式中的每一個預測模式確定一個候選預測模式列表。例如上述至少一個預測模式包括第i個候選權重導出模式對應的第一個預測模式和第二個預測模式,進而解碼端為第一個預測模式確定一個候選預測模式列表,為第二個預測模式確定一個候選預測模式。
在該實施例中,確定上述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表的過程相同,為了便於描述,本申請實施例以確定上述至少一個預測模式中的第j個預測模式的候選預測模式列表為例進行說明。
下面對上述S102-A1-11和上述S102-A1-21中基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表的過程進行介紹。
在本申請實施例中,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表的具體實現方式至少包括如下兩種方式:
方式一,解碼端透過如下步驟11至步驟13的方式,確定出第j個預測模式的候選預測模式列表:
步驟11、確定第一查閱資料表,第一查閱資料表包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊;
步驟12、基於當前塊的屬性資訊和所述第i個候選權重導出模式,在第一查閱資料表中,確定出第j個預測模式對應的相鄰塊;
步驟13、基於第j個預測模式對應的相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
在該方式一中,基於不同的塊屬性資訊,確定第一查閱資料表,該第一查閱資料表中包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊,這樣可以直接透過查找該第一查閱資料表,得到第j個預測模式對應的相鄰塊,進而基於第j個預測模式對應的相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
本申請實施例對第一查閱資料表的具體表現形式不做限制。
在一種可能的實現方式中,該第一查閱資料表包括P個不同的子查閱資料表,其中P個子查閱資料表為P個屬性資訊的塊分別對應的查閱資料表,查閱資料表包括不同權重導出模式下,不同預測模式對應的相鄰塊。這樣,解碼端可以基於當前塊的屬性資訊,在P個子查閱資料表中,確定當前塊對應的第一子查閱資料表,第一子查閱資料表包括不同權重導出模式下,不同預測模式對應的相鄰塊;接著,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊;進而基於第j個預測模式對應的相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
在本申請實施例中,基於不同的塊屬性資訊,確定不同的子查閱資料表,其中查閱資料表包括不同權重導出模式下,不同預測模式對應的相鄰塊。
在一種示例中,假設塊的屬性資訊包括塊的長寬比。假設P個子查閱資料表包括長寬比為1:2的塊對應的查閱資料表、長寬比為1:1的塊對應的查閱資料表和長寬比為2:1的塊對應的查閱資料表。
示例性的,長寬比為1:2的塊對應的子查閱資料表如表6所示:
表6
| 權重導出模式 | a1 | a2 | a3 | a4 | a5 | a6 | a7 | a8 | a9 | a10 |
| 第一部分 | A | A | A | A | L+A | L+A | L+A | L+A | A | A |
| 第二部分 | L | L | L | L+A | L+A | L | L | L+A | L+A | L+A |
| 權重導出模式 | a11 | a12 | a13 | a14 | a15 | a16 | a17 | a18 | a19 | …… |
| 第一部分 | A | A | A | A | L+A | L+A | L+A | L+A | A | …… |
| 第二部分 | L+A | L+A | L+A | L | L | L | L | L+A | L+A | …… |
這樣,在對當前塊進行解碼時,基於當前塊的尺寸資訊,若確定當前塊的長寬比為1:2時,則從P個子查錯表中,得到如表6所示的第一子查錯表。接著,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊,具體的,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊。假設K=2,第j個預測模式為第一個預測模式,該第一個預測模式對應上述表6的第一部分,這樣可以第i個候選權重導出模式,在第一部分對應的相鄰塊中確定出第i個預測模式對應的相鄰塊。例如,第i個候選權重導出模式為a4,a4對應的第一部分的相鄰塊為A,因此可以將當前塊的左上方相鄰塊、上側相鄰塊和右上方相鄰塊確定為第i個預測模式對應的相鄰塊,進而基於當前塊的左上方相鄰塊、上側相鄰塊和右上方相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。例如,將當前塊的左上方相鄰塊、上側相鄰塊和右上方相鄰塊的預測模式按照預設的順序加入第j個預測模式的候選預測模式列表中。
示例性的,長寬比為1:1的塊對應的子查閱資料表如表7所示:
表7
| 權重導出模式 | a1 | a2 | a3 | a4 | a5 | a6 | a7 | a8 | a9 | a10 |
| 第一部分 | A | L+A | A | A | L+A | L+A | L+A | L+A | A | A |
| 第二部分 | L+A | L | L | L+A | L+A | L | L | L+A | L+A | L+A |
| 權重導出模式 | a11 | a12 | a13 | a14 | a15 | a16 | a17 | a18 | a19 | …… |
| 第一部分 | A | A | A | A | L+A | L+A | L+A | L+A | A | …… |
| 第二部分 | L+A | L+A | L+A | L | L | L | L | L+A | L+A | …… |
這樣,在對當前塊進行解碼時,基於當前塊的尺寸資訊,若確定當前塊的長寬比為1:1時,則從P個子查錯表中,得到如表7所示的第一子查錯表。接著,基於第i個候選權重導出模式,在第一查閱資料表中,確定出第j個預測模式對應的相鄰塊,具體的,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊。假設K=2,第j個預測模式為第一個預測模式,該第一個預測模式對應上述表7的第一部分,這樣可以第i個候選權重導出模式,在第一部分對應的相鄰塊中確定出第i個預測模式對應的相鄰塊。例如,第i個候選權重導出模式為a2,a2對應的第一部分的相鄰塊為L+A,因此可以將當前塊的左側相鄰塊、左下方相鄰塊、左上方相鄰塊、上側相鄰塊和右上方相鄰塊確定為第i個預測模式對應的相鄰塊,進而基於當前塊的左側相鄰塊、左下方相鄰塊、左上方相鄰塊、上側相鄰塊和右上方相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。例如,將當前塊的左側相鄰塊、左下方相鄰塊、左上方相鄰塊、上側相鄰塊和右上方相鄰塊的預測模式按照預設的順序加入第j個預測模式的候選預測模式列表中。
示例性的,長寬比為2:1的塊對應的子查閱資料表如表8所示:
表8
| 權重導出模式 | a1 | a2 | a3 | a4 | a5 | a6 | a7 | a8 | a9 | a10 |
| 第一部分 | L | L+A | A | A | L+A | L+A | L+A | L+A | A | A |
| 第二部分 | L+A | L | L | L+A | L+A | L | L | L+A | L+A | L+A |
| 權重導出模式 | a11 | a12 | a13 | a14 | a15 | a16 | a17 | a18 | a19 | …… |
| 第一部分 | L | A | A | A | L+A | L+A | L+A | L+A | A | …… |
| 第二部分 | L+A | L+A | L+A | L | L | L | L | L+A | L+A | …… |
這樣,在對當前塊進行解碼時,基於當前塊的尺寸資訊,若確定當前塊的長寬比為2:1時,則從P個子查錯表中,得到如表8所示的第一子查錯表。接著,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊,具體的,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊。假設K=2,第j個預測模式為第一個預測模式,該第一個預測模式對應上述表8的第一部分,這樣可以基於第i個候選權重導出模式,在第一部分對應的相鄰塊中確定出第i個預測模式對應的相鄰塊。例如,第i個候選權重導出模式為a1,a1對應的第一部分的相鄰塊為L,因此可以將當前塊的左側相鄰塊、左下方相鄰塊和左上方相鄰塊確定為第i個預測模式對應的相鄰塊,進而基於當前塊的左側相鄰塊、左下方相鄰塊和左上方相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。例如,將當前塊的左側相鄰塊、左下方相鄰塊和左上方相鄰塊的預測模式按照預設的順序加入第j個預測模式的候選預測模式列表中。
需要說明的是,上述表6、表7和表8只是一種示例,不是對本申請實施例的一種限定。本申請實施例中不同屬性資訊的塊對應的子查錯表所包括的內容,具體基於實際情況確定。
上述表7至表8示出了不同候選權重導出模式下不同的預測模式(即不同部分)對應的相鄰塊。其中候選權重導出模式可以理解為候選權重導出模式的索引。
在一些實施例中,可以使用角度索引替換候選權重導出模式,即上述子查錯表包括不同角度索引下不同預測模式對應的相鄰塊。這樣在查找相鄰塊時,首先基於當前塊的屬性資訊,從P個查閱資料表中確定第一子查錯表,接著確定第i個候選預測模式對應的角度索引,進而基於該角度索引,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊。
在一些實施例中,當前塊的長寬比可以使用當前塊的形狀索引來代替,例如,形狀的索引為0代表長度:寬度為1:1,形狀的索引為1代表長度:寬度為2:1,形狀的索引為2代表長度:寬度為1:2等。本申請實施例中每一個形狀的索引構建子查閱資料表,進而具有P個查閱資料表。
本申請實施例對解碼端確定P個子查閱資料表的具體的方式不做限制。
在一種可能的實現方式中,編碼端將P個子查閱資料表發送給解碼端。由於P個子查閱資料表不包括圖像資訊,在一種示例中,編碼端可以傳輸其他資料的方式,將該P個子查閱資料表發送給解碼端。在另一種示例中,編碼端將這P個子查閱資料表寫入碼流中發送給解碼端。
在另一種可能的實現方式中,解碼端從其他的存放裝置中獲得P個子查閱資料表。
在又一種可能的實現方式中,解碼端中保存有P個子查閱資料表。
在另一種可能的實現方式中,解碼端可以構建P個子查閱資料表。例如,對於N個候選權重導出模式中的每一個候選權重導出模式,基於該候選權重導出模式和塊的屬性資訊,確定與該塊的第一部分相關性較強的第一相鄰塊,以及與該塊的第二部分相關性較強的第二相鄰塊,進而基於第一相鄰塊和第二相鄰塊,構建如上述表6至表8所示的子查閱資料表。
在一些實施例中,該第一查閱資料表為一個表,該表中包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊。也就是說,將上述表6至表7所示的子查閱資料表合併為一個查閱資料表。
表9
| 1:2 | 權重導出模式 | a1 | a2 | a3 | a4 | a5 | a6 | a7 | a8 | …… |
| 第一部分 | L | L+A | A | A | L+A | L+A | L+A | L+A | …… | |
| 第二部分 | L+A | L | L | L+A | L+A | L | L | L+A | …… | |
| 1:1 | 權重導出模式 | a11 | a12 | a13 | a14 | a15 | a16 | a17 | a18 | …… |
| 第一部分 | L | A | A | A | L+A | L+A | L+A | L+A | …… | |
| 第二部分 | L+A | L+A | L+A | L | L | L | L | L+A | …… | |
| …… | …… | …… | …… | …… | …… | …… | …… | …… | …… | …… |
這樣解碼端可以基於當前塊的屬性資訊和第i個候選權重導出模式,在表9所示的第一查閱資料表中,確定出第j個預測模式對應的相鄰塊,並基於第j個預測模式對應的相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
上述方式一示出了,基於第i個候選權重導出模式和當前塊的屬性資訊,透過查閱資料表的方式確定出第j個預測模式的候選預測模式列表。
在一些實施例中,還可以透過如下方式二的方式,確定出第j個預測模式的候選預測模式列表。
方式二,解碼端透過如下步驟21和步驟22的方式,確定出第j個預測模式的候選預測模式列表:
步驟21、基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定當前塊的相鄰塊關於第j個預測模式的權重;
步驟22、基於相鄰塊關於第j個預測模式的權重,確定第j個預測模式的候選預測模式列表。
在該方式二中,透過確定當前塊的相鄰塊中各相鄰塊關於第j個預測模式的權重,確定選擇當前塊的哪些相鄰塊的預測模式,來構建第j個預測模式的候選預測模式列表。
下面對基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定當前塊的相鄰塊關於第j個預測模式的權重的具體過程進行介紹。
其中,上述步驟21中,確定當前塊的相鄰塊關於第j個預測模式的權重的方式包括但不限於如下幾種:
方式1,對於當前塊的任意一個相鄰塊,基於第i個候選權重導出模式和當前塊的屬性資訊,確定該相鄰塊中每一個點關於第j個預測模式的權重,基於該相鄰塊中每一個點關於第j個預測模式的權重,確定該相鄰塊關於第j個預測模式的權重。
在一種示例中,將該相鄰塊中每一個點關於第j個預測模式的權重的平均值,確定為該相鄰塊關於第j個預測模式的權重。
在另一種示例中,將該相鄰塊中每一個點關於第j個預測模式的權重的加權平均值,確定為該相鄰塊關於第j個預測模式的權重。可選的,在確定加權平均值時,相鄰塊中與當前塊相鄰的像素點賦予較大的權重,相鄰塊中距離當前塊較遠的像素點賦予較小的權重。
在又一種示例中,將該相鄰塊中每一個點關於第j個預測模式的權重的和值,確定為該相鄰塊關於第j個預測模式的權重。
在另一種示例中,將該相鄰塊中每一個點關於第j個預測模式的權重的加權和值,確定為該相鄰塊關於第j個預測模式的權重。可選的,在確定加權和值時,相鄰塊中與當前塊相鄰的像素點賦予較大的權重,相鄰塊中距離當前塊較遠的像素點賦予較小的權重。
在該方式1中,基於第i個候選權重導出模式和當前塊的屬性資訊,確定該相鄰塊中每一個點關於第j個預測模式的權重的方式相同。在一些實施例中,當前塊的相鄰塊位於當前塊的範本中,因此,在確定出當前塊的範本的權重後,可以確定出相鄰塊中每一個點的權重。
例如,基於第i個權重導出模式,以及當前塊的屬性資訊和當前塊的範本,確定當前塊的範本權重。對於相鄰塊中的點1,將當前塊的範本權重中點1對應的權重,確定為點1關於第j個預測模式的權重。參照該方式,可以確定出相鄰塊中每一個點關於第j個預測模式的權重。
方式2,將相鄰塊中某一個點的權重,確定為相鄰塊關於第j個預測模式的權重,此時,上述步驟21包括如下步驟:
步驟21-A、基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定相鄰塊中第一點的權重;
步驟21-B、將第一點的權重,確定為相鄰塊關於第j個預測模式的權重。
在該方式2中,解碼端透過確定相鄰塊中第一點關於第j個預測模式的權重,來確定相鄰塊關於第j個預測模式的權重,可以降低確定相鄰塊的權重的計算量,進而提升解碼效率。
本申請實施例對第一點在相鄰塊中的具體位置不做限制。
在一種可能的實現方式中,上述第一點為相鄰塊中的任意一個點。
在另一種可能的實現方式中,上述第一點為相鄰塊中與當前塊相鄰的一個點。
在該方式2中,確定相鄰塊中第一點的權重的具體方式至少包括如下方式:
第一種方式,直接確定相鄰塊中第一點的權重,此時,上述步驟21-A包括如下步驟:
步驟21-A11、基於第i個候選權重導出模式、當前塊的屬性資訊和當前塊的範本,確定第一點的權重。
在本申請實施例中,相鄰塊中位於當前塊的範本區域中,因此,相鄰塊中的第一點位於當前塊的範本區域中,因此,可以參照確定當前塊的範本的權重的方式,確定出第一點的權重,例如包括如下幾種示例:
示例1,若透過確定範本中的每一個點的權重,進而將每一個點的權重組成的矩陣確定為範本的權重時,則解碼端可以基於第i個候選權重導出模式、當前塊的屬性資訊和當前塊的範本,以及第一點為範本中的位置資訊(x,y),直接確定出第一點的權重。
具體的,確定出第i個候選權重導出模式對應的角度索引和距離索引,根據角度索引、距離索引和範本的大小,以及第一點的位置資訊(x,y),確定範本中第一點的第一參數,在一些實施例中,第一參數也稱為權重索引weightIdx;根據範本中第一點的第一參數,確定範本中第一點的權重。
在一種可能的實現方式中,可以根據如下方式確定出範本中第一點的權重:
範本中第一點的權重導出過程的輸入有:當前塊的寬度nCbW,當前塊的高度nCbH;左側範本的寬度nVmW,上側範本的高度nVmH;第i個候選權重導出模式的“劃分”角度索引變數angleId;第i個候選權重導出模式的距離索引變數distanceIdx;分量索引變數cIdx,示例性的,本申請以亮度分量為例,因此cIdx為0,表示亮度分量。
其中,變數nW, nH, shift1, offset1, displacementX, displacementY, partFlip 還有 shiftHor按如下方法導出:
nW = ( cIdx = = 0 ) ? nCbW : nCbW * EubWidthC
nH = ( cIdx = = 0 ) ? nCbH : nCbH * EubHeightC
shift1 = Max( 5, 17 − BitDepth ) 其中BitDepth是編解碼的位元深度
offset1 = 1 << ( shift1 − 1 )
displacementX = angleIdx
displacementY = ( angleIdx + 8 ) % 32
partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1
shiftHor = ( angleIdx % 16 = = 8 | | ( angleIdx % 16 != 0 && nH >= nW ) ) ? 0 : 1
其中,偏移量offsetX and offsetY 按如下方法導出:
– 如果shiftHor的值為0:
offsetX = ( −nW ) >> 1
offsetY = ( ( −nH ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nH ) >> 3 : −( ( distanceIdx * nH ) >> 3 ) )
– 否則(即shiftHor的值為1):
offsetX = ( ( −nW ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nW ) >> 3 : −( ( distanceIdx * nW ) >> 3 )
offsetY = ( − nH ) >> 1
範本權重矩陣wVemplateValue[x][y] (其中 x = -nVmW..nCbW – 1,y = -nVmH..nCbH − 1 ,去除x,y同時大於等於0的情況)注意這個例子裡面以當前塊的左上角座標為(0,0)按如下方法導出:
– 變數xL 和 yL 按如下方法導出:
xL = ( cIdx = = 0 ) ? x : x * EubWidthC
yL = ( cIdx = = 0 ) ? y : y * EubHeightC
其中disLut按上述表3確定
其中,第一參數weightIdx按如下方法導出:
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] +
( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ]
基於上述方式確定出第一點對應的第一參數weightIdx後,可以透過如下至少兩種方式,確定出第一點的權重:
一種可能的方式,根據如下公式,確定出範本中第一點的權重:
weightIdxL = partFlip ? 32 + weightIdx : 32 − weightIdx
wVemplateValue[x][y] = Clip3( 0, 8, ( weightIdxL + 4 ) >> 3 )
其中,wVemplateValue[x][y]為範本中第一點(x,y)的權重,weightIdxL為在第一分量(例如亮度分量)下的權重索引,wVemplateValue[x][y]為範本中第一點(x,y)的權重,partFlip為中間變數,根據角度索引angleIdx確定,例如上述所述:partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1,也就是說,partFlip的值為1或0,當partFlip為0時,weightIdxL為32 – weightIdx,當partFlip為1時,weightIdxL為32 + weightIdx,需要說明的是,這裡的32只是一種示例,本申請不局限於此。
另一種可能的方式,根據範本中第一點對應的第一參數weightIdx、第一個閾值和第二個閾值,確定第一點的權重。
為了降低第一點權重的計算複雜度,在第二種方式中將範本中像素點的權重限定為第一個閾值或第二個閾值,也就是說,第一點的權重要麼為第一個閾值,要麼是第二個閾值,進而降低第一點權重的計算複雜度。
本申請對第一個閾值和第二個閾值的具體取值不做限制。
可選的,第一個閾值為1。
可選的,第二個閾值為0。
在一種示例,可以透過如下公式確定出第一點的權重:
wVemplateValue[x][y] = (partFlip ? weightIdx: − weightIdx) > 0 ? 1 : 0
其中,wVemplateValue[x][y]為範本中點(x,y)的權重,上述“1 : 0”中的1為第一個閾值,0為第二個閾值。
需要說明的是,上述是以第j個預測模式為第一個預測模式為例進行說明的,也就是說,上述確定出的是第一點關於第一個預測模式的權重。若上述第j個預測模式為第二個預測模式時,則第一點關於第二個預測模式的權重為8- wVemplateValue[x][y],其中8只是一種示例,還可以是其他的值,本申請實施例對此不做限制。
上述示例1,透過參照確定範本中像素點的權重的方式,確定出相鄰中第一點的權重,整個過程簡單,且確定出的第一點的權重較準確。
示例2,由上述可知,第一點為範本中的一個點,因此可以透過確定出整個範本的權重,進而基於範本的權重,確定第一點的權重。此時,上述步驟21-A11包括:基於第i個候選權重導出模式、當前塊的屬性資訊和當前塊的範本,確定範本的權重;將範本的權重中第一點對應的權重,確定為第一點的權重。
具體的,確定出第i個候選權重導出模式對應的角度索引和距離索引,基於當前塊的屬性資訊,確定當前塊的大小,根據角度索引、距離索引、當前塊的大小、範本的大小,確定範本中各像素點的第一參數,在一些實施例中,第一參數也稱為權重索引weightIdx;根據範本中各像素點的第一參數,確定範本的權重。
在一種可能的實現方式中,可以根據如下方式確定出確定範本權重:
範本權重導出過程的輸入有:當前塊的寬度nCbW,當前塊的高度nCbH;左側範本的寬度nVmW,上側範本的高度nVmH;GPM的“劃分”角度索引變數angleId;GPM的距離索引變數distanceIdx;分量索引變數cIdx,示例性的,本申請以亮度分量為例,因此cIdx為0,表示亮度分量。
其中,變數nW, nH, shift1, offset1, displacementX, displacementY, partFlip 還有 shiftHor按如下方法導出:
nW = ( cIdx = = 0 ) ? nCbW : nCbW * EubWidthC
nH = ( cIdx = = 0 ) ? nCbH : nCbH * EubHeightC
shift1 = Max( 5, 17 − BitDepth ) 其中BitDepth是編解碼的位元深度
offset1 = 1 << ( shift1 − 1 )
displacementX = angleIdx
displacementY = ( angleIdx + 8 ) % 32
partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1
shiftHor = ( angleIdx % 16 = = 8 | | ( angleIdx % 16 != 0 && nH >= nW ) ) ? 0 : 1
其中,偏移量offsetX and offsetY 按如下方法導出:
– 如果shiftHor的值為0:
offsetX = ( −nW ) >> 1
offsetY = ( ( −nH ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nH ) >> 3 : −( ( distanceIdx * nH ) >> 3 ) )
– 否則(即shiftHor的值為1):
offsetX = ( ( −nW ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nW ) >> 3 : −( ( distanceIdx * nW ) >> 3 )
offsetY = ( − nH ) >> 1
範本權重矩陣wVemplateValue[x][y] (其中 x = -nVmW..nCbW – 1,y = -nVmH..nCbH − 1 ,去除x,y同時大於等於0的情況)注意這個例子裡面以當前塊的左上角座標為(0,0)按如下方法導出:
– 變數xL 和 yL 按如下方法導出:
xL = ( cIdx = = 0 ) ? x : x * EubWidthC
yL = ( cIdx = = 0 ) ? y : y * EubHeightC
其中disLut按上述表3確定
其中,第一參數weightIdx按如下方法導出:
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] +
( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ]
在一些實施例中,根據上述方法,確定出第一參數weightIdx後根據如下公式,確定出範本中像素點的權重:
weightIdxL = partFlip ? 32 + weightIdx : 32 − weightIdx
wVemplateValue[x][y] = Clip3( 0, 8, ( weightIdxL + 4 ) >> 3 )
其中,wVemplateValue[x][y]為範本中點(x,y)的權重,weightIdxL為在第一分量(例如亮度分量)下的權重索引,wVemplateValue[x][y]為範本中點(x,y)的權重,partFlip為中間變數,根據角度索引angleIdx確定,例如上述所述:partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1,也就是說,partFlip的值為1或0,當partFlip為0時,weightIdxL為32 – weightIdx,當partFlip為1時,weightIdxL為32 + weightIdx,需要說明的是,這裡的32只是一種示例,本申請不局限於此。
在一些實施例中,根據上述方法,確定出第一參數weightIdx後,根據範本中像素點的第一參數weightIdx、第一個閾值和第二個閾值,確定範本中像素點的權重。
為了降低範本權重的計算複雜度,在該實施例中將範本中像素點的權重限定為第一個閾值或第二個閾值,也就是說,範本中像素點的權重要麼為第一個閾值,要麼是第二個閾值,進而降低範本權重的計算複雜度。
在一種示例,可以透過如下公式確定出範本中像素點的權重:
wVemplateValue[x][y] = (partFlip ? weightIdx: − weightIdx) > 0 ? 1 : 0
其中,wVemplateValue[x][y]為範本中點(x,y)的權重,上述“1 : 0”中的1為第一個閾值,0為第二個閾值。
在上述實現方式中,透過權重導出模式確定出範本中每個點的權重,範本中每個點的權重組成的權重矩陣作為範本權重。
在另一種可能的實現方式中,將當前塊和範本組成的合併區域作為一個整體,根據權重導出模式導出合併區域中像素點的權重,進而基於合併區域的權重,確定範本的權重。
示例性的,解碼端根據角度索引、距離索引,以及範本的大小和當前塊的大小,確定當前塊和範本組成的合併區域中像素點的權重;根據範本的大小和合併區域中像素點的權重,確定範本權重。
在該實現方式中,將當前塊和範本作為一個整體,根據角度索引、距離索引,以及範本的大小和當前塊的大小,確定當前塊和範本組成的合併區域中像素點的權重,進而根據範本的大小,將合併區域中範本對應的權重確定為範本權重,例如圖21A和圖21B所示,將合併區域中L型範本區域對應的權重確定為範本權重。
在一種示例中,該實現方式中,導出範本權重的過程為:
這個過程的輸入有:當前塊的寬度nCbW 當前塊的高度nCbH,左側範本的寬度nTmW,上側範本的高度nTmHGPM的“劃分”角度索引變數angleIdx,GPM的距離索引變數distanceIdx,分量索引變數cIdx。因為本例中只以亮度舉例,本例中cIdx為0,表示亮度分量。
這個過程的輸出是範本權重矩陣wTemplateValue。
變數nW, nH, shift1, offset1, displacementX, displacementY, partFlip 還有 shiftHor按如下方法導出:
nW = ( cIdx = = 0 ) ? nCbW : nCbW * SubWidthC
nH = ( cIdx = = 0 ) ? nCbH : nCbH * SubHeightC
shift1 = Max( 5, 17 − BitDepth ) 其中BitDepth是編解碼的位元深度
offset1 = 1 << ( shift1 − 1 )
displacementX = angleIdx
displacementY = ( angleIdx + 8 ) % 32
partFlip = ( angleIdx >= 13 && angleIdx <= 27 ) ? 0 : 1
shiftHor = ( angleIdx % 16 = = 8 | | ( angleIdx % 16 != 0 && nH >= nW ) ) ? 0 : 1
變數offsetX and offsetY 按如下方法導出:
– 如果shiftHor的值為0:
offsetX = ( −nW ) >> 1
offsetY = ( ( −nH ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nH ) >> 3 : −( ( distanceIdx * nH ) >> 3 ) )
– 否則(即shiftHor的值為1):
offsetX = ( ( −nW ) >> 1 ) + ( angleIdx < 16 ? ( distanceIdx * nW ) >> 3 : −( ( distanceIdx * nW ) >> 3 )
offsetY = ( − nH ) >> 1
範本權重矩陣wTemplateValue[x][y] (其中 x = -nTmW..nCbW – 1,y = -nTmH..nCbH − 1 ,去除x,y同時大於等於0的情況)注意這個例子裡面以當前塊的左上角座標為(0,0)按如下方法導出:
– 變數xL 和 yL 按如下方法導出:
xL = ( cIdx = = 0 ) ? x : x * SubWidthC
yL = ( cIdx = = 0 ) ? y : y * SubHeightC
其中disLut按表3確定。
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] +
( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ]
weightIdxL = partFlip ? 32 + weightIdx : 32 − weightIdx
wTemplateValue[x][y] = Clip3( 0, 8, ( weightIdxL + 4 ) >> 3 )
在一些實施例中,為了計算簡便,這裡也可以把範本權重僅設2個可能的值,例如0和1。
在一種示例,可以透過如下公式確定出範本中像素點的權重:
wVemplateValue[x][y] = (partFlip ? weightIdx: − weightIdx) > 0 ? 1 : 0。
需要說明的是,上述是以第j個預測模式為第一個預測模式為例進行說明的,也就是說,上述確定出的是範本關於第一個預測模式的權重。若上述第j個預測模式為第二個預測模式時,則範本關於第二個預測模式的權重為8- wVemplateValue[x][y],其中8只是一種示例,還可以是其他的值,本申請實施例對此不做限制。
上述示例2,可以確定出第i個候選權重導出模式下,範本關於第j個預測模式的權重,進而將範本關於第j個預測模式的權重中第一點的權重,確定為相鄰塊中的第一點關於第j個預測模式的權重。
上述方式1中,參照範本權重的確定方式,直接確定出相鄰塊中第一點的權重,可以實現對第一點的權重的準確確定,這樣基於第一點的權重,可以準確確定出相鄰塊關於第j個預測模式的權重。
方式2、基於當前塊中第二點的權重,確定相鄰塊中第一點的權重,此時,上述步驟21-A包括如下步驟:
步驟21-A-21、確定當前塊中第一點對應的第二點;
步驟21-A-22、基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定第二點的權重;
步驟21-A-23、基於第二點的權重,確定第一點的權重。
在該方式2中,由上述可知,直接確定相鄰塊中第一點的權重時,需要考慮到範本的相關資訊,進而增加了第一點權重的確定複雜度。在該方式2中,透過當前塊中第二點的權重來確定相鄰塊中第一點的權重,在確定第二點的權重時,不需要考慮範本的相關資訊,進而降低第一點的權重的確定複雜度。
本申請實施例對當前塊中第一點對應的第二點的具體位置不做限制。
在一些實施例中,第二點為當前塊中距離第一點最近的一個點。
在一種示例中,第二點為當前塊中與第一點相鄰的一個點。例如,如圖18所示,第一點為相鄰塊中的(x0-1,y0-1)處的點,則第二點可以為當前塊中的(x0,y0)處的點。再例如,如圖18所示,第一點為相鄰塊中的(x0-1,y0+height-1)處的點,則第二點可以為當前塊中的(x0,y0+height-1)處的點。
在該方式2中,基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定第二點的權重的具體過程可以是,基於第i個候選權重導出模式,確定第i個候選權重導出模式對應的劃分角度索引變數angleIdx和距離索引變數distanceIdx,基於當前塊的屬性資訊,確定當前塊的大小(nCbW)Χ(nCbH)。參照上述確定預測值的權重的方式,確定當前塊中第二點的權重。需要說明的是,上述是以第j個預測模式為第一個預測模式為例進行說明的,也就是說,上述確定出的是第二點關於第一個預測模式的權重。若上述第j個預測模式為第二個預測模式時,則第二點關於第二個預測模式的權重為8- wVemplateValue[x][y],其中8只是一種示例,還可以是其他的值,本申請實施例對此不做限制。
解碼端確定出當前塊中第二點關於第j個預測模式的權重後,基於第二點的權重,確定相鄰塊中第一點的權重。例如,若第二點與第一點相鄰時,則可以直接將第二點的權重,確定為第一點的權。再例如,若第二點與第一點不相鄰時,則可以對第二點的權重進行修正,得到第一點的權重,本申請實施例對具有的修正方式不做限制,例如在第二點的權重的基礎上增加預設值或減去預設值,得到第一點的權重。
需要說明的是,上述方式1示出的確定第一點的權重,以及方式2示出的確定第二點的權重的過程中,未考慮權重梯度參數的影響。
在一些實施例中,若在上述確定第一點權重的過程中,考慮權重梯度參數的影響時,則解碼端還需要確定權重梯度參數,接著,基於第i個候選權重導出模式、當前塊的屬性資訊和權重梯度參數,確定相鄰塊中第一點的權重。
可變權重梯度可以調整權重變化的梯度,從而使GPM在劃分線角度和劃分線偏移量相同的情況下得到不同寬度的過渡區域。
示例性的,如圖22A和圖22B所示,圖22A是VVC中的GPM的過渡區域(blending area)的一個示意圖,圖22B是GPM可變權重梯度的一個例子。
blendingCoeff的值可以是1/4,1/2,1,2,4等。
示例性的,blendingCoeff的值可以由權重梯度索引gpm_blending_idx導出。
在一些實施例中,權重梯度索引也稱為過渡梯度參數或過渡參數。
本申請實施例中,確定權重梯度參數的方式至少包括如下幾種:
方式1,解碼碼流,得到第二索引,該第二索引用於指示權重梯度參數,根據該第二索引,確定權重梯度參數。具體的,編碼端確定出權重梯度參數後,將該權重梯度參數對應的第二索引,寫入碼流中。接著,解碼端透過解碼碼流,得到第二索引,進而根據該第二索引,確定出權重梯度參數。
在一些實施例中,上述第二索引也稱為權重梯度索引。
本申請實施例中,對根據第二索引,確定權重梯度參數的具體方式不做限制。
在一些實施例中,解碼端確定候選過渡參數列表,該候選過渡參數列表中包括多個候選過渡參數,將候選過渡參數列表中,第二索引對應的候選過渡參數,確定為權重梯度參數。
本申請實施例對確定候選過渡參數列表的方式不做限制。
在一種示例中,上述候選過渡參數列表中的候選過渡參數為預設的。
在另一種示例,解碼端根據當前塊的特徵資訊,從預設的多個過渡參數中,選擇至少一個過渡參數組成候選過渡參數列表。例如,根據當前塊的圖像資訊,從預設的多個過渡參數中,選擇符合當前塊的圖像資訊的過渡參數,組成候選過渡參數列表。
舉例說明,假設圖像資訊包括圖像邊緣的清晰度,則若當前塊的圖像邊緣的清晰度小於預設值,則選擇預設的多個權重梯度參數中的至少一個第一類權重梯度參數,例如1/4、1/2等,組成候選權重梯度參數列表;若當前塊的圖像邊緣的清晰度大於或等於預設值,則選擇預設的多個權重梯度參數中的至少一個第二類權重梯度參數,例如2、4等,組成候選權重梯度參數列表。
示例性的,本申請實施例的候選權重梯度參數列表如表10所示:
表10
| 索引 | 候選權重梯度參數 |
| 0 | 候選權重梯度參數0 |
| 1 | 候選權重梯度參數1 |
| …… | …… |
| i | 候選權重梯度參數i |
| …… | …… |
如表10所示,候選權重梯度參數列表包括多個候選權重梯度參數,每一個候選權重梯度參數對應一個索引。
示例性的,上述表10中以候選權重梯度參數在候選權重梯度參數列表中的排序為索引,可選的,還可以以其他方式體現候選權重梯度參數在候選權重梯度參數列表中的索引,本申請實施例對此不作限制。
基於上述表10,解碼端根據第二索引,將表10中第二索引對應的候選權重梯度參數,確定為權重梯度參數。
解碼端透過上述方式1,解碼碼流,得到第二索引,進而根據第二索引,確定權重梯度參數外,還可以根據如下方式2,確定權重梯度參數。
在一些實施例中,也可以不再碼流中傳輸權重梯度索引,而是直接根據塊尺寸等推導出一個權重梯度索引gpm_blending_idx或blendingCoeff。解碼端還可以透過如下方式2,確定權重梯度參數。
方式2,解碼端確定多個備選權重梯度參數,G為正整數;從多個備選權重梯度參數中,確定權重梯度參數。
在該方式2中,解碼端自行確定權重梯度參數,進而避免編碼端在碼流中編入第二索引,進而節約碼字。具體的,解碼端首先確定多個備選權重梯度參數,進而從這多個備選權重梯度參數中,確定出一個備選權重梯度參數作為權重梯度參數。
本申請實施例對解碼端確定多個備選權重梯度參數的具體方式不做限制。
在一種可能的實現方式中,上述多個備選權重梯度參數為預設的,也就是說,解碼端和編碼端約定將預設的幾個權重梯度參數,確定為G個備選權重梯度參數。
在另一種可能的實現方式中,上述多個備選權重梯度參數可以是編碼端指示的,例如編碼端指示將預設的多個權重梯度參數中的多個權重梯度參數,作為多個備選權重梯度參數。
在另一種可能的實現方式中,可以根據當前塊的大小,確定多個備選權重梯度參數。
在另一種可能的實現方式中,確定當前塊的圖像資訊;根據當前塊的圖像資訊,從預設的多個備選權重梯度參數中,確定多個備選權重梯度參數。
解碼端確定多個備選權重梯度參數後,從這多個備選權重梯度參數中,確定權重梯度參數。
本申請實施例對從這多個備選權重梯度參數中,確定權重梯度參數的具體方式不做限制。
在一些實施例中,將多個備選權重梯度參數中的任一備選權重梯度參數,確定為權重梯度參數。
在一些實施例中,確定多個備選權重梯度參數中的每一個備選權重梯度參數對應的代價;根據代價,從多個備選權重梯度參數中,確定權重梯度參數。例如,將代價最小的權重梯度參數確定為當前塊對應的梯度參數。
方式3,根據當前塊的大小,確定權重梯度參數。
由上述可知,權重梯度參數與塊的大小之間有一定的關聯性,因此,本申請實施例還可以根據當前塊的大小,確定權重梯度參數。
在一種可能的實現方式中,根據當前塊的大小,將某一固定的權重梯度參數,確定為權重梯度參數。
例如,若當前塊的大小小於第一設定閾值時,則確定權重梯度參數為第一值。
再例如,若當前塊的大小大於或等於第一設定閾值時,則確定權重梯度參數為第二值,其中第二值小於第一值。
本申請實施例對上述第一值、第二值和第一設定閾值的具體取值不做限制。
示例性的,第一值為1,第二值為1/2。
示例性的,若當前塊的大小用當前塊的像素點數(或採樣點數)來表示時,則第一設定閾值可以為256等。
在另一種可能的實現方式中,根據當前塊的大小,確定權重梯度參數所在的取值範圍,進而將權重梯度參數確定為該取值範圍內的值。
例如,若當前塊的大小小於第一設定閾值時,則確定權重梯度參數位於權重梯度參數取值範圍內。比如,權重梯度參數為權重梯度參數取值範圍內的最小權重梯度參數、或最大權重梯度參數、或中間權重梯度參數等任意一個權重梯度參數。再比如,權重梯度參數為權重梯度參數取值範圍內代價最小的權重梯度參數。其中,確定權重梯度參數代價的方法,可以參照本申請其他實施例的描述,在此不再贅述。
再例如,若當前塊的大小大於或等於第一設定閾值時,則確定權重梯度參數位於該第二權重梯度參數取值範圍內。比如,權重梯度參數為第二權重梯度參數取值範圍內的最小權重梯度參數、或最大權重梯度參數、或中間權重梯度參數等任意一個權重梯度參數。再比如,權重梯度參數為第二權重梯度參數取值範圍內代價最小的權重梯度參數。其中,第二權重梯度參數取值範圍的最小值小於權重梯度參數取值範圍的最小值,且權重梯度參數取值範圍與第二權重梯度參數取值範圍可以相交,也可以不相交,本申請實施例對此不做限制。
解碼端根據上述步驟,確定出權重梯度參數後,基於第i個候選權重導出模式、當前塊的屬性資訊和權重梯度參數,確定相鄰塊中第一點的權重。
在一種示例中,解碼端基於第i個候選權重導出模式和當前塊的屬性資訊,確定出權重索引weightIdx,例如上述相鄰塊中的第一點對應的權重索引weightIdx,或者當前塊中的第二點對應的權重索引weightIdx。接著,使用上述確定的權重梯度參數,對權重索引weightIdx進行處理,得到處理後的權重索引weightIdx;根據處理後的weightIdx,確定第一點或第二點的權重wVemplateValue。
在一種示例中,可以根據如下方式,使用權重梯度參數,確定第一點或第二點的權重wVemplateValue:
……
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] +
( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ]
weightIdx = weightIdx * blendingCoeff
weightIdxL = partFlip ? 32 + weightIdx : 32 − weightIdx
wValue = Clip3( 0, 8, ( weightIdxL + 4 ) >> 3 )
其中,blendingCoeff1為權重梯度參數。
上述實施例對上述步驟21-A中,基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定相鄰塊中第一點的權重的具體過程進行介紹。接著,將第一點的權重,確定為相鄰塊關於第j個預測模式的權重。
在上述方式二中,解碼端透過上述步驟,確定出當前塊的各相鄰塊關於第j個預測模式的權重後,執行上述步驟22的步驟,即基於相鄰塊關於第j個預測模式的權重,確定第j個預測模式的候選預測模式列表。
上述步驟22的實現過程包括但不限於如下幾種:
方式1,上述步驟22包括如下步驟:
步驟22-A1、若相鄰塊關於第j個預測模式的權重大於或等於預設閾值,則獲取相鄰塊的預測模式;
步驟22-A2、基於相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
在該方式1中,解碼端基於上述步驟,確定出在第i個候選權重導出模式下,當前塊的各相鄰塊中每一個相鄰塊關於第j個預測模式的權重。接著,將各相鄰塊對應的權重與預設閾值進行比較,若相鄰塊對應的權重大於或等於預設閾值,則說明該相鄰塊與第j個預測模式的相關性較強,進而可以基於該相鄰塊的預測模式,來確定第j個預測模式的候選預測模式列表,例如,將該相鄰塊的預測模式,添加在第j個預測模式的候選預測模式列表中。在一些實施例中,若權重的取值範圍為0到n時,則上述預設閾值為n/2,其中n為正數。
在一些實施例中,若權重的取值為第一值或第二值時,例如設定權重的取值為0或1,則上述步驟22包括如下步驟:
步驟22-B1、若相鄰塊關於第j個預測模式的權重等於第一值,則獲取相鄰塊的預測模式,其中第一值大於第二值;
步驟22-B2、基於相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
在該實施例中,若相鄰塊關於第j個預測模式的權重要麼為第一值,要麼是第二值時,則在確定出相鄰塊關於第j個預測模式的權重等於第一值,則說明該相鄰塊與第j個預測模式的相關性較強,進而可以基於該相鄰塊的預測模式,來確定第j個預測模式的候選預測模式列表。
本申請實施例對第一值和第二值的具體取值不做限制。
可選的,第一值為1。
可選的,第二值為0。
在一些實施例中,若相鄰塊對應的權重小於預設閾值,或者相鄰塊對應的權重等於第二值時,則說明該相鄰塊與第j個預測模式的相關性較弱,進而不基於該相鄰塊的預測模式,來確定第j個預測模式的候選預測模式列表,例如,跳過獲取該相鄰塊的預測模式,從而提高候選預測模式列表的確定準確性。
在本申請實施例中,對當前塊所包括的相鄰塊的個數,以及相鄰塊的具體位置不做限制。
在一些實施例中,若第j個預測模式的候選預測模式列表的長度不做限制時,可以採用隨機的方式,將當前塊的各相鄰塊關於第j個預測模式的權重與預設閾值或第一值進行比較,以獲取權重大於或等於預設閾值或等於第一值的相鄰塊的預測模式。
在一些實施例中,若第j個預測模式的候選預測模式列表的長度有限時,則上述步驟22-A1中獲取相鄰塊的預測模式包括:按照預設的檢查順序,依次獲取當前塊的各相鄰塊中,關於第j個預測模式的權重大於或等於預設閾值或者等於第一值的相鄰塊的預測模式。
本申請實施例對上述預設的檢查順序不限制。
在一些實施例中,若當前塊所包括的相鄰塊如圖18所示,若當前塊的相鄰塊包括左側相鄰塊L、上側相鄰塊A、左下方相鄰塊BL、右上方相鄰塊AR和左上方相鄰塊AL,則預設的檢查順序為左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊,即L->A->BL->AR->AL。也就是說,先將當前塊的左側相鄰塊關於第j個預測模式的權重與預設閾值或第一值進行比較,若左側相鄰塊對應的權重大於或等於預設閾值或等於第一值,則獲取左側相鄰塊的預測模式,若左側相鄰塊對應的權重小於預設閾值或等於第二值,則跳過獲取左側相鄰塊的預測模式。接著,將當前塊的上側相鄰塊關於第j個預測模式的權重與預設閾值或第一值進行比較,若上側相鄰塊對應的權重大於或等於預設閾值或等於第一值,則獲取上側相鄰塊的預測模式,若上側相鄰塊對應的權重小於預設閾值或等於第二值,則跳過獲取上側相鄰塊的預測模式。接著,將當前塊的左下方相鄰塊關於第j個預測模式的權重與預設閾值或第一值進行比較,若左下方相鄰塊對應的權重大於或等於預設閾值或等於第一值,則獲取左下方相鄰塊的預測模式,若左下方相鄰塊對應的權重小於預設閾值或等於第二值,則跳過獲取左下方相鄰塊的預測模式。接著,將當前塊的右上方相鄰塊關於第j個預測模式的權重與預設閾值或第一值進行比較,若右上方相鄰塊對應的權重大於或等於預設閾值或等於第一值,則獲取右上方相鄰塊的預測模式,若右上方相鄰塊對應的權重小於預設閾值或等於第二值,則跳過獲取右上方相鄰塊的預測模式。最後,將當前塊的左上方相鄰塊關於第j個預測模式的權重與預設閾值或第一值進行比較,若左上方相鄰塊對應的權重大於或等於預設閾值或等於第一值,則獲取左上方相鄰塊的預測模式,若左上方相鄰塊對應的權重小於預設閾值或等於第二值,則跳過獲取左上方相鄰塊的預測模式。按照上述檢查順序,依次對相鄰塊L->A->BL->AR->AL做上述檢查,直到第j個預測模式對應的候選預測模式列表的長度達到上限或上述相鄰塊全部檢查完為止。
在一些實施例中,解碼端對相鄰塊的預測模式填入第j個預測模式對應的候選預測模式列表的順序不做限制。
在一些實施例中,解碼端按照所述檢查順序,將獲取的相鄰塊的預測模式依次添加至所述第j個預測模式的候選預測模式列表中。例如,解碼端先判斷相鄰塊L關於第j個預測模式的權重是否小於或等於預設閾值,或者是否等於第一值,若相鄰塊L關於第j個預測模式的權重小於或等於預設閾值,或者等於第一值時,則將該相鄰塊L的預測模式添加至第j個預測模式對應的候選預測模式列表中。接著,判斷相鄰塊A關於第j個預測模式的權重是否小於或等於預設閾值,或者是否等於第一值,若相鄰塊A關於第j個預測模式的權重小於或等於預設閾值,或者等於第一值時,則將該相鄰塊A的預測模式添加至第j個預測模式對應的候選預測模式列表中,依次類推,直到第j個預測模式對應的候選預測模式列表的長度達到上限或上述相鄰塊全部檢查完為止。
在一些實施例中,若候選預測模式列表中不包括重複的候選預測模式時,則在將權重大於或等於預設閾值或等於第一值的相鄰塊的預測模式添加在候選預測模式列表之前,首先判斷第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式,若第j個預測模式的候選預測模式列表中不包括相鄰塊的預測模式時,將相鄰塊的預測模式,添加至第j個預測模式的候選預測模式列表中。若第j個預測模式的候選預測模式列表中已包括相鄰塊的預測模式時,則跳過將相鄰塊的預測模式,添加至第j個預測模式的候選預測模式列表中。
在該方式1中,將各相鄰塊中關於第j個預測模式的權重大於或等於預設閾值或等於第一值的相鄰塊的預測模式,添加在第j個預測模式的候選預測模式列表中,提高候選預測模式列表的確定準確性。
在一些實施例中,解碼端還可以透過如下方式2,確定所述第j個預測模式的候選預測模式列表。
方式2,若當前塊包括M個相鄰塊,M為正整數,則上述步驟22包括如下步驟22-C1:
步驟22-C1、基於M個相鄰塊分別關於第j個預測模式的權重,以及M個相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
例如,基於M個相鄰塊分別關於第j個預測模式的權重,從M個相鄰塊中選出權重位於預設範圍內的若干個相鄰塊,並將這若干個相鄰塊的預測模式,添加至第j個預測模式的候選預測模式列表。
再例如,基於M個相鄰塊分別關於第j個預測模式的權重大小,將M個相鄰塊的預測模式添加至候選預測模式列表中,直到候選預測模式列表的長度達到預設長度為止。例如,權重越大的相鄰塊,加入候選預測模式列表的概率越大,但是權重較小的相鄰塊,也有機會加入候選預測模式列表中,但是概率較小。
本申請實施例對M個相鄰塊的具體數量和位置不做限制。
在一些實施例中,上述M個相鄰塊包括當前塊的左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊中的至少一個。
由上述可知,上述步驟在確定第i個候選權重導出模式下,第j個預測模式的候選預測模式列表時,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表,例如,透過確定當前塊的相鄰塊關於第j個預測模式的權重,並基於該權重,確定是否將相鄰塊的預測模式添加至第j個預測模式的候選預測模式列表中。
基於此,在本申請實施例中,解碼端在基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表之前,首先需要確定第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式。若確定第j個預測模式的候選預測模式列表中包括相鄰塊的預測模式時,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表。
本申請實施例對解碼端確定第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式的具體方式不做限制。
在第一種示例中,編碼端和解碼端預設當前塊對應的候選預測模式列表中均包括相鄰塊的預測模式,基於此,則解碼端可以確定第j個預測模式的候選預測模式列表中包括相鄰塊的預測模式。或者,編碼端和解碼端預設當前塊對應的候選預測模式列表中均不包括相鄰塊的預測模式,基於此,則解碼端可以確定第j個預測模式的候選預測模式列表中不包括相鄰塊的預測模式。
在第二種示例中,解碼端解碼碼流,得到第一資訊,第一資訊用於指示候選預測模式列表中是否包括相鄰塊的預測模式;基於第一資訊,確定第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式。
可選的,上述第一資訊可以為幀級資訊,即指示當前幀對應的候選預測模式列表中是否包括相鄰塊的預測模式。
可選的,上述第一資訊可以為塊級資訊,即指示當前塊對應的候選預測模式列表中是否包括相鄰塊的預測模式。
可選的,第一資訊還可以其他等級的指示資訊,本申請實施例對此不做限制,只要解碼端透過該第一資訊可以確定出當前塊對應的第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式即可。
在第三示例中,解碼端按照預設順序,將預設順序中位於相鄰塊的預測模式之前的各預測模式添加至候選預測模式列表後,候選預測模式列表的長度未達到預設長度時,則確定第j個預測模式的候選預測模式列表中包括相鄰塊的預測模式。
在該示例中,第j個預測模式的候選預測模式列表還包括其他的預測模式,在確定第j個預測模式的候選預測模式列表,解碼端首先按照預設順序,依次向第j個預測模式的候選預測模式列表中添加預測模式,並判斷將預設順序中位於相鄰塊的預測模式之前的各預測模式添加至候選預測模式列表後,候選預測模式列表的長度是否達到預設長度。若將預設順序中位於相鄰塊的預測模式之前的各預測模式添加至候選預測模式列表後,候選預測模式列表的長度未達到預設長度,則確定第j個預測模式的候選預測模式列表中包括相鄰塊的預測模式。若將預設順序中位於相鄰塊的預測模式之前的各預測模式添加至候選預測模式列表後,候選預測模式列表的長度達到預設長度,則確定第j個預測模式的候選預測模式列表中不包括相鄰塊的預測模式。
在一些實施例中,解碼端按照預設順序,將預測角度與第i個候選權重導出模式的劃分線平行的預測模式、基於當前塊的範本導出的候選預測模式、基於當前塊的周圍重建像素導出的候選預測模式、相鄰塊的預測模式、預測角度與第i個候選權重導出模式的劃分線垂直的預測模式和預設模式,依次添加至第j個預測模式的候選預測模式列表,直到列表的長度達到預設長度。
本申請實施例對預設順序不做限制。
在一種示例中,預設順序包括:預測角度與第i個候選權重導出模式的劃分線平行的預測模式、基於當前塊的範本導出的候選預測模式、基於當前塊的周圍重建像素導出的候選預測模式、相鄰塊的預測模式、預測角度與第i個候選權重導出模式的劃分線垂直的預測模式和預設模式。
在一些實施例中,基於當前塊的範本導出的候選預測模式可以理解為TIMD導出的預測模式。
在一些實施例中,基於當前塊的周圍重建像素導出的候選預測模式可以理解為DIMD導出的預測模式。
在一些實施例中,預設模式包括PLANAR模式。
在一種示例中,在構建第j個預測模式的候選預測模式列表時,按順序加入如下幾類預測模式到候選預測模式列表,直到列表長度達到預設長度(例如3):
1、預測角度與第i個候選權重導出模式的劃分線平行的預測模式;
2、TIMD導出的預測模式;
3、DIMD導出的預測模式;
4、當前塊的相鄰塊的預測模式;
5、預測角度與第i個候選權重導出模式的劃分線垂直的預測模式;
6、PLANAR模式。
上述實施例對解碼端確定候選預測模式列表的具體過程進行介紹。
解碼端基於上述步驟,確定出候選預測模式列表後,執行下面S103的步驟。
S103、基於N個候選權重導出模式和至少一個候選預測模式,確定當前塊對應的第一權重導出模式和K個第一預測模式。
解碼端基於上述S101的步驟,確定出N個候選權重導出模式,基於上述S102的步驟,確定出至少一個候選預測模式,進而從N個候選權重導出模式中選擇一個候選權重導出模式作為當前塊對應的第一權重導出模式,從至少一個候選預測模式中所包括的至少一個候選預測模式中,確定出K個第一預測模式中的至少一個第一預測模式。最後,使用確定出的第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。
需要說明的是,上述第一權重導出模式和K個第一預測模式共同用於確定當前塊的預測值。在一些實施例中,上述第一權重導出模式也稱為當前塊的權重導出模式或當前塊對應的權重導出模式。在一些實施例中,K個第一預測模式也稱為當前塊的K個預測模式或當前塊對應的K個預測模式。在一種示例中,若K=2,則上述K個第一預測模式包括當前塊對應的第一個預測模式和第二個預測模式,在一些實施例中,將該第一個預測模式稱為第一預測模式,將第二個預測模式稱為第二預測模式。
本申請實施例對解碼端基於N個候選權重導出模式和至少一個候選預測模式,確定第一權重導出模式和K個第一預測模式的具體方式不做限制。
在一些實施例中,在GPM幀內較幀間預測中,如圖17A所示,N=1,即N個候選權重導出模式為第一權重導出模式,假設第一個預測模式為幀間預測模式,第二個預測模式為幀內預測模式。如上述S102所示,解碼端基於第一權重導出模式和當前塊的屬性資訊,確定出第二個預測模式的候選預測模式列表,進而從第二個預測模式的候選預測模式列表中,選出一個候選預測模式作為第二個預測模式,例如將候選預測模式列表中,代價最小的候選預測模式,確定為第二個預測模式。接著,基於第一權重導出模式、第一個預測模式和第二個預測模式對當前塊進行預測,得到當前塊的預測值。
在一些實施例中,若至少一個候選預測模式為K個第一預測模式對應的候選預測模式列表時,即K個第一預測模式均從該候選預測模式列表中選出,此時,解碼端將N個候選權重導出模式與候選預測模式列表所包括的候選預測模式進行組合。例如,將N個候選權重導出模式中的每一個候選權重導出模式與候選預測模式列表中的任意K個候選預測模式進行組合,得到多個組合,每一個組合中包括一個候選權重導出模式和K個候選預測模式。接著,使用每一個組合所包括的候選權重導出模式和K個候選預測模式對當前塊的範本進行預測,確定每一個組合的代價,進而基於代價,從多個組合中確定出一個組合,例如從多個組合中選出代價最小的組合,將代價最小的組合所包括的候選權重導出模式確定為第一權重導出模式,將該代價最小的組合所包括的K個預測模式確定為K個第一預測模式。
在一些實施例中,若至少一個候選預測模式為K個第一預測模式中某一個第一預測模式的候選預測模式列表,例如,K=2,上述候選預測模式為第一個預測模式的候選預測模式列表,此時,解碼端確定第二個預測模式對應的可選預測模式集合。接著,解碼端針對N個候選權重導出模式中的每一個候選權重導出模式,從第一個預測模式的候選預測模式列表中選出一個候選預測模式作為第一個預測模式的一種可能,從第二個預測模式對應的可選預測模式集合中選出一個預測模式作為第二個預測模式的一種可能,得到該候選權重導出模式與第一個預測模式的一種可能和第二個預測模式的一種可能構成一個組合,這樣可以多個組合。每一個組合中包括一個候選權重導出模式和2個候選預測模式。接著,使用每一個組合所包括的候選權重導出模式和2個候選預測模式對當前塊的範本進行預測,確定每一個組合的代價,進而基於代價,從多個組合中確定出一個組合,例如從多個組合中選出代價最小的組合,將代價最小的組合所包括的候選權重導出模式確定為第一權重導出模式,將該代價最小的組合所包括的K個預測模式確定為K個第一預測模式。
在一些實施例中,若上述至少一個候選預測模式包括K個第一預測模式中每一個第一預測模式對應的候選預測模式列表,也就是說,解碼端基於上述S102的步驟,確定出K個候選預測模式。舉例說明,假設K=2,即解碼端確定出第一個預測模式的候選預測模式列表和第二個預測模式的候選預測模式。這樣,解碼端從N個候選權重導出模式中選擇一個候選權重導出模式,從第一個預測模式的候選預測模式列表中選擇一個候選預測模式,從第二個預測模式的候選預測模式列表中選擇一個候選預測模式,此時選擇的一個候選權重導出模式和2個候選預測模式組成一個組合。參照上述方法,可以得到多個組合。每一個組合中包括一個候選權重導出模式和2個候選預測模式。接著,使用每一個組合所包括的候選權重導出模式和2個候選預測模式對當前塊的範本進行預測,確定每一個組合的代價,進而基於代價,從多個組合中確定出一個組合,例如從多個組合中選出代價最小的組合,將代價最小的組合所包括的候選權重導出模式確定為第一權重導出模式,將該代價最小的組合所包括的K個預測模式確定為K個第一預測模式。
基於上述描述,一個權重導出模式和K個預測模式可以作為一個組合共同作用在當前塊上,為了節省碼字,降低編碼代價,在一些實施例中將當前塊對應的權重導出模式和K個預測模式作為一個組合,即第一組合,使用第一索引對該第一組合進行指示,相比於對權重導出模式和K個預測模式分別進行指示,本申請實施例使用更少的碼字,進而降低了編碼代價。
基於此,上述S103包括如下S103-A至S103-C的步驟:
S103-A、解碼碼流,得到第一索引,第一索引第一索引用於指示第一組合,第一組合包括第一權重導出模式和K個第一預測模式;
S103-B、基於N個候選權重導出模式和至少一個候選預測模式,確定候選組合列表,該候選組合列表包括至少一個候選組合,候選組合包括一個權重導出模式和K個預測模式;
S103-C、基於第一索引,從候選組合列表中確定出第一組合。
本申請實施例對第一索引的具體語法元素形式不做限制。
在一種可能的實現方式中,若當前塊採用GPM技術進行預測時,則使用gpm_cand_idx表示第一索引。
由於上述第一索引用於指示第一組合,因此,在一些實施例中,該第一索引也可以稱為第一組合索引或者第一組合的索引。
在一種示例中,在碼流中添加第一索引後的語法如表11所示:
表11
| if( 推導出當前塊使用GPM的條件 ) { | |
| gpm_cand_idx[ x0 ][ y0 ] | ae(v) |
| } | |
| } |
其中,gpm_cand_idx為第一索引。
示例性的,候選組合列表如表12所示:
表12
| 索引 | 候選組合 |
| 0 | 候選組合1(包括一個權重導出模式和K個預測模式) |
| 1 | 候選組合2(包括一個權重導出模式和K個預測模式) |
| …… | …… |
| i-1 | 候選組合i(包括一個權重導出模式和K個預測模式) |
| …… | …… |
如表12所示,候選組合列表包括多個候選組合,這多個候選組合中任意兩個候選組合不完全相同,即任意兩個候選組合所包括的權重導出模式和K個預測模式中的至少一個模式不同。例如,候選組合1和候選組合2中的權重導出模式不同,或者候選組合1和候選組合2中的權重導出模式相同,K個預測模式中至少一個預測模式不同,或者,候選組合1和候選組合2中的權重導出模式不同,且K個預測模式中至少一個預測模式不同。
示例性的,上述表12中以候選組合在候選組合列表中的排序為索引,可選的,還可以以其他方式體現候選組合在候選組合列表中的索引,本申請實施例對此不作限制。
在該實施例中,解碼端解碼碼流,得到第一索引,並確定如上述表12所示的候選組合列表,根據第一索引在該候選組合列表中進行查詢,得到該第一索引指示的第一組合所包括的第一權重導出模式和K個預測模式。
例如,第一索引為索引1,在表12所示的候選組合列表中,索引1對應的候選組合為候選組合2,也就是說,第一索引指示的第一組合為候選組合2。這樣,解碼端將候選組合2所包括的權重導出模式和K個預測模式確定為第一組合所包括的第一權重導出模式和K個第一預測模式,並使用該第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。
在該方式2中,編碼端和解碼端可以分別確定相同的候選組合列表,例如編碼端和解碼端均確定一個包括X個候選組合的列表,每個候選組合包括1個權重導出模式和K個預測模式。而在碼流中,編碼端只需要寫入最終選擇的一個候選組合,例如第一組合,解碼端解析編碼端最終選擇的第一組合,具體是解碼端解碼碼流,得到第一索引,並透過第一索引在解碼端所確定的候選組合列表中,確定出第一組合。
下面對上述S103-B中基於N個候選權重導出模式和至少一個候選預測模式,確定候選組合列表的具體過程進行介紹。
本申請實施例對上述S103-B中基於N個候選權重導出模式和至少一個候選預測模式,確定候選組合列表的具體方式不做限制。
在一些實施例中,將N個候選權重導出模式與至少一個候選預測模式所包括的多個候選預測模式進行任意組合,每一個組合中包括一個權重導出模式和2個預測模式。這樣可以得到多個組合,利用與當前塊相關的資訊去分析不同的組合發生的概率大小,根據各組合的發生概率大小來構建候選組合列表。可選的,與當前塊相關的資訊包括當前塊的周圍塊的模式資訊,當前塊的重建像素等。
在一些實施例中,上述S103-B包括如下S103-B1和S103-B2的步驟:
S103-B1、基於N個候選權重導出模式和至少一個候選預測模式,得到T個第二組合;
S103-B2、基於T個第二組合,得到候選組合列表。
其中,T個第二組合中的任一第二組合包括一權重導出模式和K個預測模式,且T個第二組合中任意兩個組合所包括的權重導出模式和K個預測模式不完全相同,T為大於1的正整數
在該實施例中,解碼端基於N個候選權重導出模式和至少一個候選預測模式,確定T個第二組合,本申請對T個第二組合的具體數值不做限制,例如8、16、32等,T個第二組合中的每一個第二組合包括一權重導出模式和K個預測模式,且T個第二組合中任意兩個組合所包括的權重導出模式和K個預測模式不完全相同。
本申請實施例對上述S103-B1中基於N個候選權重導出模式和至少一個候選預測模式,得到T個第二組合的具體方式不做限制。
在一些實施例中,若上述至少一個候選預測模式為K個第一預測模式對應的候選預測模式列表時,即K個第一預測模式均從該候選預測模式列表中選出。此時,解碼端將N個候選權重導出模式與候選預測模式列表所包括的候選預測模式進行組合。例如,將N個候選權重導出模式中的每一個候選權重導出模式與候選預測模式列表中的任意K個候選預測模式進行組合,得到T個第二組合,每一個第二組合中包括一個候選權重導出模式和K個候選預測模式。
在一些實施例中,若上述至少一個候選預測模式為K個第一預測模式中某一個第一預測模式的候選預測模式列表,例如,K=2,上述候選預測模式為第一個預測模式的候選預測模式列表,此時,解碼端確定第二個預測模式對應的可選預測模式集合。接著,解碼端針對N個候選權重導出模式中的每一個候選權重導出模式,從第一個預測模式的候選預測模式列表中選出一個候選預測模式作為第一個預測模式的一種可能,從第二個預測模式對應的可選預測模式集合中選出一個預測模式作為第二個預測模式的一種可能,得到該候選權重導出模式與第一個預測模式的一種可能和第二個預測模式的一種可能構成一個第二組合,這樣可以T個第二組合,每一個第二組合中包括一個候選權重導出模式和2個候選預測模式。
在一些實施例中,若上述至少一個候選預測模式包括K個第一預測模式中每一個第一預測模式對應的候選預測模式列表,也就是說,解碼端基於上述S102的步驟,確定出K個候選預測模式。舉例說明,假設K=2,即解碼端確定出第一個預測模式的候選預測模式列表和第二個預測模式的候選預測模式。這樣,解碼端從N個候選權重導出模式中選擇一個候選權重導出模式,從第一個預測模式的候選預測模式列表中選擇一個候選預測模式,從第二個預測模式的候選預測模式列表中選擇一個候選預測模式,此時選擇的一個候選權重導出模式和2個候選預測模式組成一個第二組合。參照上述方法,可以得到T個第二組合,每一個第二組合中包括一個候選權重導出模式和2個候選預測模式。
上述S103-B2中基於T個第二組合,得到候選組合列表的實現方式包括但不限於如下幾種方式:
方式1,按照預設的規則,對T個第二組合進行排序,得到候選組合列表。
方式2,上述S103-B2包括如下步驟:
S103-B21、對於T個第二組合中的任一第二組合,確定使用第二組合中的權重導出模式和K個預測模式對當前塊的範本進行預測時,第二組合對應的代價;
S103-B22、根據T個第二組合中各第二組合對應的代價,確定候選組合列表。
在該方式2中,對於T個第二組合中的每一個第二組合,使用該第二組合所包括的權重導出模式和K個預測模式對當前塊的範本進行預測,得到該第二組合對應的範本的預測值。
具體的,對於T個第二組合中的每一個第二組合,使用該第二組合中的K個預測模式對當前塊的範本進行預測,得到K個預測值。
接著,基於該第二組合中的權重導出模式,確定該第二組合對應的範本權重。
在一些實施例中,根據權重導出模式確定範本權重包括如下步驟:根據權重導出模式,確定角度索引、距離索引和過渡參數;根據角度索引、距離索引、過渡參數和範本的大小,確定範本權重。
本申請可以採用與導出預測值的權重相同的方式,導出範本權重。例如,首先根據權重導出模式,確定角度索引、距離索引。
其中,根據角度索引、距離索引和範本的大小,確定範本權重的方式包括但不限於如下幾種方式:
方式一,根據角度索引、距離索引和範本的大小,確定範本中像素點的第一參數,在一些實施例中,第一參數也稱為權重索引weightIdx;根據範本中像素點的第一參數,確定範本中像素點的權重;根據範本中像素點的權重,確定範本權重。具體過程可以參照上述S102中關於範本權重的確定過程,在此不再贅述。
方式二,根據權重導出模式確定出當前塊和範本的權重,也就是說,在該方式二中,將當前塊和範本組成的合併區域作為一個整體,根據權重導出模式導出合併區域中像素點的權重。
示例性的,解碼端根據角度索引、距離索引,以及範本的大小和當前塊的大小,確定當前塊和範本組成的合併區域中像素點的權重;根據範本的大小和合併區域中像素點的權重,確定範本權重。具體過程可以參照上述S102中關於範本權重的確定過程,在此不再贅述。
使用上述方法確定某一個第二組合對應的範本權重和K個範本預測值,使用範本權重對K個範本預測值進行加權,得到該第二組合下的範本預測值。
由於當前塊的範本為已重建區域,因此,解碼端可以得到範本的重建值,這樣對於T個第二組合中的每個第二組合,可以根據該第二組合下範本的預測值和範本的重建值,確定出該第二組合對應的代價。其中,確定第二組合對應的代價的方式包括但不限於SAD、SATD、SEE等。接著,根據T個第二組合中每個第二組合對應的代價,構建候選組合列表。
本申請實施例中,第二組合對應的範本預測值至少包括如下幾種方式:
第一種方式是,第二組合對應的範本預測值為一個數值,即解碼端使用該第二組合所包括的K個預測模式對範本進行預測,得到K個預測值,根據該第二組合所包括的權重導出模式確定範本權重,透過範本權重對K個預測值進行加權,得到加權後的預測值,將該加權後的預測值,確定為第二組合對應的範本預測值。
第二種方式是,在一些實施例中,也可以使用一些分層篩選的思想,比如說如果一個權重導出模式能得到比較小的代價,那麼繼續嘗試和它相似的權重導出模式,反之,如果一個權重導出模式不能得到比較小的代價,那麼就不繼續嘗試和它相似的權重導出模式。比如說如果一個幀內預測模式能得到比較小的代價,那麼繼續嘗試和它相似的幀內模式,反之,如果一個幀內預測模式不能得到比較小的代價,那麼就不繼續嘗試和它相似的幀內預測模式。當然這些篩選的方法也可以限制在與另外2個要素組合使用的情況下,比如說某一權重導出模式下,某一個幀內預測模式作為第一預測模式不能得到比較小的代價,那麼就不再嘗試該權重導出模式下,與該幀內預測模式相似的幀內預測模式為第一預測模式的情況。
第三種方式是,使用一種快速代價計算方法,確定各第二組合對應的代價。由上述可知,第二組合對應的範本預測值,包括第二組合所包括的K個預測模式分別對應的範本預測值。此時可以根據第二組合中的K個預測模式分別對應的範本預測值和範本重建值,確定該第二組合中的K個預測模式分別對應的代價;根據該第二組合中的K個預測模式分別對應的代價,確定該第二組合對應的代價。例如,將該第二組合中的K個預測模式分別對應的代價之和,確定為該第二組合對應的代價。
本申請實施例中,以K=2為例,可以把範本上的權重簡化為只有0和1兩種可能,那麼對每一個像素位置而言,它的像素值只來自於第一個預測模式的預測塊或第二個預測模式的預測塊。所以,可以對一個預測模式,計算出其作為某一權重導出模式的第一個預測模式時在範本上的代價,也就是只計算該預測模式在該權重導出模式的情況下作為第一個預測模式時權重為1的部分像素在範本上所產生的代價。一個例子是把該代價記為cost[pred_mode_idx][gpm_idx][0],其中pred_mode_idx代表該預測模式的索引,gpm_idx代表該權重導出模式的索引,0代表作為第一預測模式。
以及該預測模式作為某一權重導出模式的第二個預測模式時在範本上的代價,也就是只計算該預測模式在該權重導出模式的情況下作為第二個預測模式時權重為1的部分像素在範本上所產生的代價。一個例子是把該代價記為cost[pred_mode_idx][gpm_idx][1],其中pred_mode_idx代表該預測模式的索引,gpm_idx代表該權重導出模式的索引,1代表作為第二個預測模式。
那麼在計算一個組合的代價時,可以直接把對應的上述2個代價相加。舉例如下,要求預測模式pred_mode_idx0和pred_mode_idx1在權重導出模式gpm_idx時的代價,其中pred_mode_idx0作為第一個預測模式,pred_mode_idx1作為第二個預測模式。將該代價記為costTemp,則costTemp=cost[pred_mode_idx0][gpm_idx][0]+ cost[pred_mode_idx1][gpm_idx][1]。如果是要求預測模式pred_mode_idx0和pred_mode_idx1在權重導出模式gpm_idx時的代價,其中pred_mode_idx1作為第一個預測模式,pred_mode_idx0作為第二個預測模式。將該代價記為costTemp,則costTemp=cost[pred_mode_idx1][gpm_idx][0]+ cost[pred_mode_idx0][gpm_idx][1]。
這樣做的一個好處是將先加權組合成一個預測塊再計算代價,簡化為直接計算2個部分的代價,再將代價相加得到組合的代價。由於一個預測模式可能與多個其他預測模式組合,而對於同一權重導出模式來說,該預測模式作為第一個預測模式和第二個預測模式的部分的代價是固定的,所以可以保留這些代價,即上述例子中的cost[pred_mode_idx][gpm_idx][0]和cost[pred_mode_idx][gpm_idx][1],重複利用,從而減少計算量。
根據上述方法,可以確定出T個第二組合中各第二組合對應的代價,接著根據T個第二組合中各第二組合對應的代價,構建候選組合列表。
本申請實施例中,S103-B22中根據T個第二組合中各第二組合對應的代價,確定候選組合列表的方式包括但不限於如下幾種示例:
示例1,根據T個第二組合中各第二組合對應的代價,對T個第二組合進行排序;將排序後的T個第二組合,確定為候選組合列表。
在該示例1中生成的候選組合列表包括T個第一候選組合。
可選的,該候選組合列表中T個第一候選組合按照代價的大小,從小到大進行排序,即候選組合列表中T個第一候選組合對應的代價按照排序依次增大。
其中,根據T個第二組合中各第二組合對應的代價,對T個第二組合進行排序可以是,按照代價從小到大順序,對T個第二組合進行排序。
示例2,根據第二組合對應的代價,從T個第二組合中選出C個第二組合,將這C個第二組合組成的列表,確定為候選組合列表。
可選的,上述C個第二組合為T個第二組合中代價最小的前C個第二組合,例如根據T個第二組合中每個第二組合對應的代價,從T個第二組合中選出代價最小的C個第二組合,構成候選組合列表,此時,候選組合列表包括C個候選組合。
可選的,該候選組合列表中C個候選組合按照代價的大小,從小到大進行排序,即候選組合列表中C個候選組合對應的代價按照排序依次增大。
解碼端基於上述步驟,確定出候選組合列表中,從該候選組合列表中選出第一索引對應的第一組合,且將該第一組合包括權重導出模式確定為第一權重導出模式,將該第一組合包括的K個預測模式確定為K個第一預測模式。
基於上述步驟,解碼端確定出第一權重導出模式和K個第一預測模式,接著執行如下S104的步驟。
S104、根據第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。
本申請實施例中,解碼端對當前塊進行解碼時,確定N個候選權重導出模式,進而基於N個候選權重導出模式和當前塊的屬性資訊,確定至少一個候選預測模式,進而基於N個候選權重導出模式和至少一個候選預測模式確定當前塊對應的第一權重導出模式和K個第一預測模式,進而使用該第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。也就是說,在本申請實施例中,在確定候選預測模式列表時,考慮了權重導出模式和當前塊的屬性資訊,進而提高了候選預測模式列表的確定準確性,基於該準確確定的候選預測模式列表對當前塊進行預測時,可以提升當前塊的預測準確性,提高解碼性能。
本申請實施例對上述S104中根據第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值的具體過程不做限制。
情況1,在確定預測值權重時,不考慮權重梯度參數(也稱為過渡參數)時,則基於第一權重導出模式確定出當前塊的預測值權重,根據K個第一預測模式對當前塊進行預測,得到當前塊的K個預測值,使用當前塊的預測值權重對當前塊的K個預測值進行加權,得到當前塊的預測值。其中,根據第一權重導出模式,導出當前塊的預測值權重的過程,可以參照上述實施例中導出當前塊的預測值權重的過程,在此不再贅述。
情況2,在確定預測值權重時,考慮權重梯度參數,此時,上述S104包括如下步驟:
S104-A1、確定權重梯度參數;
S104-A2、根據權重梯度參數、第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。
其中,S104-A1中確定權重梯度參數與上述S102中確定權重梯度參數的過程基本一致,參照上述S102的描述,在此不再贅述。
本申請實施例對上述S104-A2的具體實現過程不做限制,例如,第一權重導出模式和K個第一預測模式對當前塊進行預測,得到一個預測值,接著根據權重梯度參數和該預測值,確定當前塊的預測值。
在一些實施例中,上述S104-A2包括如下步驟:
S104-A21、根據權重梯度參數和第一權重導出模式,確定預測值的權重;
S104-A22、根據K個第一預測模式,對當前塊進行預測,得到K個預測值;
S104-A23、根據預測值的權重對K個預測值進行加權,得到當前塊的預測值。
上述S104-A22和S104-A21在執行順序上沒有先後順序,即S104-A22可以在S104-A21之前執行,或者在S104-A21之後執行,或者與S104-A21並存執行。
在該情況2中,解碼端確定權重梯度參數,並根據該權重梯度參數和第一權重導出模式,確定預測值的權重。接著,根據K個第一預測模式對當前塊進行預測,得到當前塊的K個預測值。然後,使用預測值的權重,對當前塊的K個預測值進行加權處理,得到當前塊的預測值。
本申請實施例中,根據權重梯度參數和第一權重導出模式,確定預測值的權重的方式,至少包括如下幾種示例所示的方式:
示例1,在使用第一權重導出模式,導出預測值的權重時,需要確定多個中間變數,可以使用權重梯度參數,對這多個中間變數中的某一個或某幾個中間變數進行調整,進而使用調整後的變數,導出預測值的權重。
示例2,根據第一權重導出模式和當前塊,確定當前塊對應的權重索引weightIdx;使用權重梯度參數,對權重索引weightIdx進行處理,得到處理後的權重索引weightIdx;根據處理後的weightIdx,確定預測值的權重wVemplateValue。
在一種示例中,可以根據如下方式,使用權重梯度參數,確定預測值的權重wVemplateValue:
……
weightIdx = ( ( ( xL + offsetX ) << 1 ) + 1 ) * disLut[ displacementX ] +
( ( ( yL + offsetY ) << 1 ) + 1 ) * disLut[ displacementY ]
weightIdx = weightIdx * blendingCoeff
weightIdxL = partFlip ? 32 + weightIdx : 32 − weightIdx
wValue = Clip3( 0, 8, ( weightIdxL + 4 ) >> 3 )
其中,blendingCoeff1為權重梯度參數。
接著,根據K個第一預測模式,對當前塊進行預測,得到K個預測值;根據預測值的權重對K個預測值進行加權,得到當前塊的預測值。
上述實施例可以理解為範本權重和預測值的權重是兩個相互獨立的過程,互不干涉。透過上述方法,可以單獨確定出預測值的權重。
在一些實施例中,若在上述確定範本權重時,透過將範本區域和當前塊構成的合併區域,透過確定合併區域的權重來確定範本的權重時,由於合併區域包括當前塊,因此,將合併區域的權重中當前塊對應的權重,確定為預測值的權重。需要說明的是,在確定合併區域的權重時,也考慮到權重梯度參數對權重的影響,具體參照上述實施例的描述,在此不再贅述。
在一些實施例中,上述預測過程是以像素點為單位進行的,對應的上述預測值的權重也為像素點對應的權重。此時,對當前塊進行預測時,使用K個第一預測模式中的每個預測模式對當前塊中的某一個像素點A進行預測,得到K個第一預測模式關於像素點A的K個預測值,根據第一權重導出模式和權重梯度參數確定像素點A的預測值的權重。接著,使用像素點A的預測值的權重對這K個預測值進行加權,得到像素點A的預測值。對當前塊中的每一個像素點執行上述步驟,可以得到當前塊中每個像素點的預測值,當前塊中每個像素點的預測值構成當前塊的預測值。以K=2為例,使用第一個預測模式對當前塊中的某一個像素點A進行預測,得到該像素點A的第一預測值,使用第二個預測模式對該像素點A進行預測,得到該像素點A的第二預測值,根據像素點A對應的預測值權重,對第一預測值和第二預測值進行加權,得到像素點A的預測值。
在一種示例中,以K=2為例,若第一個預測模式和第二個預測模式均為幀內預測模式時,採用第一幀內預測模式進行預測,得到第一預測值,採用第二幀內預測模式進行預測,得到第二預測值,根據預測值的權重對第一預測值和第二預測值進行加權,得到當前塊的預測值。例如,採用第一幀內預測模式對像素點A進行預測,得到像素點A的第一預測值,採用第二幀內預測模式對像素點A進行預測,得到像素點A的第二預測值,根據像素點A對應的預測值的權重,對第一預測值和第二預測值進行加權,得到像素點A的預測值。
在一些實施例中,若K大於2時,則可以根據第一權重導出模式確定K個第一預測模式中兩個預測模式對應的預測值的權重,K個第一預測模式中的其他預測模式對應的預測值的權重可以為預設值。例如,K=3,第一個預測模式和第二個預測模式對應的預測值的第一權重根據權重導出模式導出,第三個預測模式對應的預測值的權重為預設值。在一些實施例中,若K個第一預測模式對應的總預測值的權重一定,例如為8,則可以根據預設權重比例,來確定K個第一預測模式各自對應的預測值的權重,假設第三個預測模式對應的預測值的權重占整個中預測值的權重的1/4,則可以確定第三個預測模式的預測值的權重為2,總預測值權重中的剩下3/4分配給第一個預測模式和第二個預測模式。示例性的,如果根據第一權重導出模式導出第一個預測模式對應的預測值的權重3,則確定第一個預測模式對應的預測值的權重為(3/4)*3,第二個預測模式對應的預測值的權重為第一個預測模式的預測值的權重為(3/4)*5。
根據上述方法,確定出當前塊的預測值,同時,解碼碼流,得到當前塊的量化係數,對當前塊的量化係數進行反量化和反變換,得到當前塊的殘差值,將當前塊的預測值和殘差值進行相加,得到當前塊的重建值。
本申請實施例提供的視訊解碼方法,解碼端對當前塊進行解碼時,確定N個候選權重導出模式,進而基於N個候選權重導出模式和當前塊的屬性資訊,確定至少一個候選預測模式,進而基於N個候選權重導出模式和至少一個候選預測模式確定當前塊對應的第一權重導出模式和K個第一預測模式,進而使用該第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。也就是說,在本申請實施例中,解碼端在確定至少一個候選預測模式時,考慮了權重導出模式和當前塊的屬性資訊,進而提高了候選預測模式的確定準確性,基於該準確確定的候選預測模式對當前塊進行預測時,可以提升當前塊的預測準確性,提高解碼性能。
上文以解碼端為例對本申請的視訊解碼方法進行介紹,下面以編碼端為例進行說明。
圖23為本申請實一施例提供的視訊編碼方法流程示意圖,本申請實施例應用於圖1和圖2所示視訊編碼器。如圖24所示,本申請實施例的方法包括:
S201、確定N個候選權重導出模式。
其中,N為正整數。可選的,上述N為預設值或預設值。可選的,N還可以是編碼端透過其他方式確定的,本申請實施例對此不做限制。
由上述可知,本申請實施例中,一個權重導出模式和K個預測模式共同產生一個預測塊,這個預測塊作用於當前塊,即根據權重導出模式確定權重,根據K個預測模式對當前塊進行預測,得到K個預測值,根據權重對K個預測值進行加權處理,得到當前塊的預測值。
也就是說,編碼端在編碼當前塊時,需要確定N個候選權重導出模式,以及多個候選預測模式,進而從N個候選權重導出模式中選擇一個權重導出模式,並從多個候選預測模式中選出K個預測模式,進而使用選出的一個權重導出模式和K個預測模式對當前塊進行預測,得到當前塊的預測值。
本申請實施例對解碼端確定N個候選權重導出模式的具體方式不做限制。
在一種可能的實現方式中,AWP有56種權重導出模式,GPM有64種權重導出模式。上述N個候選權重導出模式包括AWP中的56種權重導出模式中的至少一個權重導出模式,或者包括GPM中的64種權重導出模式中的至少一個權重導出模式。
在一種可能的實現方式中,可以篩選出AWP或GPM中的一些權重導出模式作為N個候選權重導出模式。即本申請實施例的N個候選權重導出模式是AWP或GPM的全部權重導出模式的子集。比如說權重導出模式中同一“劃分”角度可以對應多個偏移量,如圖4或圖5中的模式10,11,12,13,它們的“劃分”角度相同,但是偏移量不同,可以在本申請實施例中去掉一些偏移量對應的模式。當然也可以去掉一些“劃分”角度對應的模式。這樣做可以減少總的可能的組合的數量。而且使各個可能的組合之間差別更明顯。當然可以對不同的塊大小設置不同的篩選方法。比如對比較小的塊使用更少的權重導出模式,對更大的塊使用更多的權重導出模式。也可以對不同的塊形狀設置不同的篩選方法。一種解釋是塊形狀指寬度和高度的比例。
在該實現方式中,編碼端和解碼端篩選得到N個候選權重導出模式的方式相同。在一種示例中,篩選得到N個候選權重導出模式的方式是編解碼兩端預設的。在另一種示例中,編碼端可以將篩選得到N個候選權重導出模式的方式指示給編碼端,以使解碼端採用相同的方式,篩選得到與編碼端相同的N個候選權重導出模式。
在一些實施例中,從預設的M個權重導出模式中剔除預設劃分角度和/或預設偏移量對應的權重導出模式,得到N個權重導出模式。由於權重導出模式中同一劃分角度可以對應多個偏移量,如圖4所示權重導出模式10、11、12和13,它們的劃分角度相同,但是偏移量不同,這樣可以去掉一些預設偏移量對應的權重導出模式,和/或也可以去掉一些預設劃分角度對應的權重導出模式。
在一些實施例中,不同的塊對應的篩選條件可以不同,這樣在確定當前塊對應的N個權重導出模式時,首先確定當前塊對應的篩選條件,並根據當前塊對應的篩選條件,從預設的M個權重導出模式中,選出N個權重導出模式。
在一些實施例中,當前塊對應的篩選條件包括當前塊的大小對應的篩選條件和/或當前塊的形狀對應的篩選條件。在預測時,對於更小的塊,相似的權重導出模式對預測結果的影響差別不大,而對於較大的塊,相似的權重導出模式對預測結果的影響差別會更加明顯。基於此,本申請實施例對不同大小的塊設定不同的N值,即對較大塊設置較大的N值,對較小的塊設置較小的N值。
在一種可能的實現方式中,編碼端將N個候選權重導出模式指示給解碼端。
在一些實施例中,上述篩選條件包括陣列,該陣列包括N個元素,N個元素與N個權重導出模式一一對應,每個權重導出模式對應的元素用於指示該權重導出模式是否可用。
上述陣列可以是一元數值,也可以是二元數值。
例如,以GPM為例,總共可能的權重導出模式是64個,編碼端設置一個含有64個元素的查閱資料表(look up table),每一個元素的值表示是否使用其對應的權重導出模式。
在一種示例中,以一元數值為例,一個具體的例子如下,設置一個g_sgpm_splitDir的陣列:
g_sgpm_splitDir[64] = {
1,1,1,0,1,0,1,0,
1,0,1,0,1,0,1,0,
1,0,1,1,1,0,1,0,
1,0,1,0,1,0,1,0,
0,0,0,0,1,1,0,1,
0,0,1,0,0,1,0,0,
1,0,1,1,0,1,0,0,
1,0,0,1,0,0,1,0
};
其中,g_sgpm_splitDir[x]的值為1表示可使用索引為x的權重導出模式,否則表示不可使用索引為x的權重導出模式。在該示例中,編碼端透過該陣列確定出26個候選權重導出模式。
在另一種示例中,可以用一個陣列來指示N個候選權重導出模式,陣列中只包含可使用的權重導出模式的索引,例如,使用長度為26的陣列g_sgpm_splitDir[26]={0,1,6,8,10,12,14,16,18,19,20,22,24,26,28,30,36,37,42,45,48,50,51,53,
56,59},來指示26個候選權重導出模式。編碼端基於該數值中所包括的權重導出模式的索引,將索引對應的權重導出模式確定為候選權重導出模式,得到26個候選權重導出模式。
在一些實施例中,若當前塊對應的篩選條件包括當前塊的大小對應的篩選條件和當前塊的形狀對應的篩選條件時,且對於同一個權重導出模式,若當前塊的大小對應的篩選條件和當前塊的形狀對應的篩選條件表示該權重導出模式均可用時,則將該權重導出模式確定為N個權重導出模式中的一個,若當前塊的大小對應的篩選條件和當前塊的形狀對應的篩選條件中的至少一個表示該權重導出模式不可用,則確定該權重導出模式不構成N個權重導出模式。
在一些實施例中,對於不同塊大小對應的篩選條件和不同塊形狀對應的篩選條件,可以使用多個陣列分別進行實現。
在一些實施例中,對於不同塊大小對應的篩選條件,和不同塊形狀對應的篩選條件可以使用二位元陣列來實現,也就是說,在一個二位元陣列中即包括塊大小對應的篩選條件,也包括塊形狀對應的篩選條件。
示例性的,對於大小為A,形狀為B的塊對應的篩選條件如下所示,該篩選條件透過一個二元陣列表示:
g_sgpm_splitDir[64] = {
(1,1),(1,1),(1,1),(1,0),(1,0),(0,0),(1,0),(1,1),
(1,1),(0,0),(1,1),(1,0),(1,0),(0,0),(1,0),(1,1),
(0,1),(0,0),(1,1),(0,0),(1,0),(0,0),(1,0),(0,0),
(1,1),(0,0),(0,1),(1,0),(1,0),(1,0),(1,0),(0,0),
(0,0),(0,0),(1,1),(0,0),(1,1),(1,1),(1,0),(0,1),
(0,0),(0,0),(1,1),(0,0),(1,0),(0,0),(1,0),(0,0),
(1,0),(0,0),(1,1),(1,0),(1,0),(1,0),(0,0),(0,0),
(1,1),(0,0),(1,1),(0,0),(0,0),(1,0),(1,1),(0,0)
};
其中,g_sgpm_splitDir[x]的值均為1表示索引為x的權重導出模式可用,g_sgpm_splitDir[x]的值中有一個為0表示索引為x的權重導出模式不可用。例如g_sgpm_splitDir[4]=(1,0),表示權重導出模式4對於塊大小為A可用,但對於形狀為B的塊不可用,因此,若塊的大小為A且形狀為B時,則權重導出模式不可用。
需要說明的是,上述以GPM包括64個權重導出模式為例,但是本申請實施例的權重導出模式包括但不限於GPM所包括的64個權重導出模式,以及AMP所包括的56個權重導出模式。
在一些實施例中,編碼端在確定N個候選權重導出模式之前,首先需要判斷當前塊是否使用K個不同的預測模式進行加權預測處理。若編碼端確定當前塊使用K個不同的預測模式進行加權預測處理時,則執行上述S101確定N個候選權重導出模式。若編碼端確定當前塊不使用K個不同的預測模式進行加權預測處理時,則跳過上述S101的步驟。
在一種可能的實現方式中,編碼端可以透過確定當前塊的預測模式參數,來確定當前塊是否使用K個不同的預測模式進行加權預測處理。
可選的,在本申請的實施中,預測模式參數可以指示當前塊是否可以使用GPM模式或AWP模式,即指示當前塊是否可以使用K個不同的預測模式進行預測處理。
可以理解的是,在本申請的實施例中,可以將預測模式參數理解為一個表明是否使用了GPM模式或AWP模式標誌位元元。具體地,編碼器可以使用一個變數作為預測模式參數,從而可以透過對該變數的取值的設置來實現預測模式參數的設置。示例性的,在本申請中,如果當前塊使用GPM模式或AWP模式,那麼編碼器可以將預測模式參數的取值設置為指示當前塊使用GPM模式或AWP模式,具體地,編碼器可以將變數的取值設置為1。示例性的,在本申請中,如果當前塊不使用GPM模式或AWP模式,那麼編碼器可以將預測模式參數的取值設置為指示當前塊不使用GPM模式或AWP模式,具體地,編碼器可以將變數取值設置為0。進一步地,在本申請的實施例中,編碼器在完成對預測模式參數的設置之後,便可以將預測模式參數寫入碼流中,傳輸至解碼器,從而可以使解碼器在解析碼流之後獲得預測模式參數。
在一些實施例中,本申請實施例還可以對當前塊使用GPM模式或AWP模式進行條件限定,即在判斷當前塊在滿足預設條件時,確定當前塊使用K個預測模式進行加權預測,進而確定當前塊對應的N個候選權重導出模式。
示例性的,在應用GPM模式或AWP模式時,可以對當前塊的尺寸進行限制。
可以理解的是,由於本申請實施例提出的視訊編碼方法需要分別使用K個不同的預測模式生成K個預測值,再根據權重進行加權得到當前塊的預測值,為了降低的複雜度,同時考慮壓縮性能和複雜度的權衡,在本申請的實施例中,可以限制對一些大小的塊不使用該GPM模式或AWP模式。因此,在本申請中,編碼器可以先確定當前塊的尺寸參數,然後根據尺寸參數確定當前塊是否使用GPM模式或AWP模式。
在本申請的實施例中,當前塊的尺寸參數可以包括當前塊的高度和寬度,因此,編碼器可以根據當前塊的高度和寬度確定當前塊是否使用GPM模式或AWP模式。
示例性的,在本申請中,若寬度大於閾值1且高度大於閾值2,則確定當前塊可以使用GPM模式或AWP模式。可見,一種可能的限制是僅僅在塊的寬度大於(或大於等於)閾值1,且塊的高度大於(或大於等於)閾值2的情況下使用GPM模式或AWP模式。其中,閾值1和閾值2的值可以是4、8,16,32、128、256等,閾值1可以等於閾值2。
示例性的,在本申請中,若寬度小於閾值3且高度大於閾值4,則確定當前塊可以使用GPM模式或AWP模式。可見,一種可能的限制是僅僅在塊的寬度小於(或小於等於)閾值3,且塊的高度大於(或大於等於)閾值4的情況下使用GPM模式或AWP模式。其中,閾值3和閾值4的值可以是4、8,16,32、128、256等,閾值3可以等於閾值4。
進一步地,在本申請的實施例中,還可以透過像素參數的限制來實現限制能夠使用GPM模式或AWP模式的塊的尺寸。
示例性的,在本申請中,編碼器可以先確定當前塊的像素參數,然後再根據像素參數和閾值5進一步判斷當前塊是否可以使用GPM模式或AWP模式。可見,一種可能的限制是僅僅在塊的像素數大於(或大於等於)閾值5的情況下使用GPM模式或AWP模式。其中,閾值5的值可以是4、8,16,32、128、256、1024等。
也就是說,在本申請中,在當前塊的尺寸參數滿足大小要求的條件下,當前塊才可以使用GPM模式或AWP模式。
示例性的,在本申請中,可以有一個幀級的標誌來確定當前待編碼幀是否使用本申請。如可以配置幀內幀(如I幀)使用本申請,幀間幀(如B幀、P幀)不使用本申請。或者可以配置幀內幀不使用本申請,幀間幀使用本申請。或者可以配置某些幀間幀使用本申請,某些幀間幀不使用本申請。幀間幀也可以使用幀內預測,因而幀間幀也有可能使用本申請。
在一些實施例中,還可以有一個幀級以下的標誌來確定當前塊是否使用本申請。
S202、基於N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式。
本申請實施例在確定至少一個候選預測模式時,不僅考慮了候選權重導出模式對候選預測模式的影響,還考慮了當前塊的屬性資訊對候選預測模式的影響,進而提高了候選預測模式的確定準確性。
本申請實施例對當前塊的屬性資訊的具體內容不做限制。
在一些實施例中,當前塊的屬性資訊包括當前塊的尺寸資訊。其中當前塊的尺寸資訊包括當前塊的長和寬、當前塊的長寬比、或當前塊所包括的像素點的個數等。
在一些實施例中,當前塊的屬性資訊還包括當前塊的形狀資訊。例如當前塊的形狀為正方形,或者當前塊的形狀為長方形,或者當前塊的形成為多變形或圓形等預設形狀。
在本申請實施例中,基於N個候選權重導出模式和當前塊的屬性資訊,確定至少一個候選預測模式可以理解為基於N個候選權重導出模式和當前塊的屬性資訊,確定當前塊的相鄰塊中,哪些相鄰塊的預測模式可以用於確定候選預測模式。例如,基於候選權重導出模式和當前塊的屬性資訊,確定相鄰塊的權重,基於相鄰塊的權重,確定選擇哪些相鄰塊的預測模式用於確定候選預測模式。
示例性的,如果在某一個GPM權重導出模式下,對某一個預測模式(第一個預測模式或第二個預測模式),相鄰塊的權重大於(或大於等於)某一個閾值,那麼代表該相鄰塊與當前預測模式所佔有的區域相關性強,否則,代表該相鄰塊與當前預測模式所佔有的區域相關性弱。
在一些實施例中,編碼端可以基於N個候選權重導出模式和當前塊的屬性資訊,確定一個候選預測模式列表,也就是說,在該實施例中,N個候選權重導出模式對應一個候選預測模式列表。例如,若N個候選權重導出模式的劃分線角度和偏移量相差不大,為了降低計算量,提升編碼效率,則編碼端確定從N個候選權重導出模式中,確定出一個候選權重導出模式A,基於該候選權重導出模式和當前塊的屬性資訊,確定一個候選預測模式列表。在一種示例中,上述候選權重導出模式A可以是N個候選權重導出模式中的一個預設候選權重導出模式。示例性的,編碼端可以將該候選權重導出模式A的索引指示給解碼端,這樣解碼端解碼碼流,得到候選權重導出模式A的索引。
在一些實施例中,N個候選權重導出模式中至少一個候選權重導出模式分別對應一個候選預測模式列表。即編碼端針對N個候選權重導出模式中的每一個候選權重導出模式分別確定一個候選預測模式列表,此時,上述S202包括如下S202-A步驟:
S202-A、對於N個候選權重導出模式中的第i個候選權重導出模式,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的候選預測模式列表。
在該實施例中,確定N個候選權重導出模式中每一個候選權重導出模式對應的候選預測模式列表的方式相同,為例便於描述,在此以N個候選權重導出模式中的第i個候選權重導出模式為例進行說明。其中第i個候選權重導出模式可以理解為N個候選權重導出模式中的任意一個候選權重導出模式。
本申請實施例對基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的候選預測模式列表的具體方式不做限制。
在一些實施例中,第i個候選權重導出模式對應一個候選預測模式列表,即基於第i個候選權重導出模式和當前塊的屬性資訊,確定該第i個候選預測模式對應的一個候選預測模式列表。這樣在對當前塊進行預測時,從第i個候選權重導出模式對應的該候選預測模式列表中,確定出K個預測模式,進而使用該第i個候選權重導出模式和這K個預測模式對當前塊進行預測,得到當前塊的預測值。例如,基於第i個候選權重導出模式確定權重,使用K個預測模式對當前塊進行預測,得到K個預測值,使用權重對這K個預測值進行加權,得到當前塊在該第i個候選權重導出模式下的預測值。
在該實施例的一種示例中,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的候選預測模式列表的方式可以是:基於第i個候選權重導出模式確定所述第i個候選權重導出模式對應的劃分線,基於當前塊的屬性資訊,確定劃分線對當前塊進行劃分,得到的第一部分和第二部分,其中第一部分可以理解為第一個預測模式對應的部分,第二部分可以理解為第二個預測模式對應的部分。這樣可以基於當前塊的相鄰塊中與當前塊的第一部分相鄰的相鄰塊的預測模式,確定第i個候選權重導出模式對應一個候選預測模式列表。
在該實施例的另一種示例中,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的候選預測模式列表的方式可以是:基於第i個候選權重導出模式和當前塊的屬性資訊,確定當前塊的相鄰塊中每一個相鄰塊的權重,進而基於相鄰塊的權重,確定第i個候選權重導出模式對應一個候選預測模式列表。例如基於相鄰塊的權重較大的相鄰塊的預測模式,確定第i個候選權重導出模式對應一個候選預測模式列表。
在一些實施例中,第i個候選權重導出模式對應的K個預測模式,則上述S202-A包括如下S202-A1的步驟:
S202-A1、基於第i個候選權重導出模式和當前塊的屬性資訊,確定第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表。
在該實施例中,編碼端確定第i個候選導出模式對應的K個預測模式中的至少一個預測模式列表的候選預測模式列表。
例如,K=2,則編碼端可以基於第i個候選權重導出模式和當前塊的屬性資訊,為第一個預測模式確定一個候選預測模式列表,但不為第二個候選預測模式確定候選預測模式列表。可選的,可以為第二個預測模式確定一個候選預測模式列表,但不為第一個候選預測模式確定候選預測模式列表。可選的,可以為第一個預測模式確定一個候選預測模式列表,且為第二個候選預測模式確定一個候選預測模式列表。可選的,為第一個預測模式和第二個預測模式確定一個公用的候選預測模式列表。
本申請實施例中,為第i個候選權重導出模式對應的至少一個預測模式確定候選預測模式列表,進而從構建的候選預測模式列表中準確確定第i個候選權重導出模式對應的至少一個預測模式。
在一些實施例中,若上述至少一個預測模式對應一個候選預測模式列表時,則上述S202-A1包括如下S202-A1-11和S202-A1-12的步驟:
S202-A1-11、對於至少一個預測模式中的第j個預測模式,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表,j為正整數;
S202-A1-12、基於第j個預測模式的候選預測模式列表,確定至少一個預測模式的候選預測模式列表。
在該實施例中,第i個候選權重導出模式對應的至少一個預測模式對應一個候選預測模式列表,即這至少一個預測模式對應的候選預測模式列表相同,為一個候選預測模式列表,這樣可以降低確定候選預測模式列表的複雜度,提升編碼效率。此時,編碼端為這至少一個預測模式確定一個候選預測模式列表。
具體的,基於第i個候選權重導出模式和當前塊的屬性資訊,確定上述至少一個預測模式中的第j個預測模式的候選預測模式列表。可選的,該第j個預測模式為至少一個預測模式中的任意一個預測模式。接著,基於該第j個預測模式的候選預測模式列表,確定上述至少一個預測模式的候選預測模式列表。
其中,上述S202-A1-12中基於第j個預測模式的候選預測模式列表,確定上述至少一個預測模式的候選預測模式列表的具體方式包括但不限於如下幾種:
方式1、直接將該第j個預測模式的候選預測模式列表,確定為上述至少一個預測模式的候選預測模式列表。
方式2、判斷第j個預測模式的候選預測模式列表中是否包括預設預測模式,若第j個預測模式的候選預測模式列表中包括預設預測模式時,則將第j個預測模式的候選預測模式列表,確定為至少一個預測模式的候選預測模式列表。若第j個預測模式的候選預測模式列表中不包括預設預測模式時,則將預設預測模式添加至第j個預測模式的候選預測模式列表中,得到至少一個預測模式的候選預測模式列表。
本申請實施例對上述方式2中的預設預測模式不做限制,具體根據實際需要確定。
該實施例,對若上述至少一個預測模式對應一個候選預測模式列表時,確定上述至少一個預測模式的候選預測模式列表的具體過程進行介紹。
在一些實施例中,若上述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表時,則上述S202-A1包括如下S202-A1-21步驟:
S202-A1-21、對於上述至少一個預測模式中的第j個預測模式,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表,j為正整數。
在該實施例中,上述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表,因此,編碼端對於第i個候選權重導出模式,為該第i個候選權重導出模式對應的至少一個預測模式中的每一個預測模式確定一個候選預測模式列表。例如上述至少一個預測模式包括第i個候選權重導出模式對應的第一個預測模式和第二個預測模式,進而編碼端為第一個預測模式確定一個候選預測模式列表,為第二個預測模式確定一個候選預測模式。
在該實施例中,確定上述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表的過程相同,為了便於描述,本申請實施例以確定上述至少一個預測模式中的第j個預測模式的候選預測模式列表為例進行說明。
下面對上述S202-A1-11和上述S202-A1-21中基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表的過程進行介紹。
在本申請實施例中,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表的具體實現方式至少包括如下兩種方式:
方式一,編碼端透過如下步驟31至步驟33的方式,確定出第j個預測模式的候選預測模式子列表:
步驟31、確定第一查閱資料表,第一查閱資料表包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊;
步驟32、基於當前塊的屬性資訊和所述第i個候選權重導出模式,在第一查閱資料表中,確定出第j個預測模式對應的相鄰塊;
步驟33、基於第j個預測模式對應的相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
在該方式一中,基於不同的塊屬性資訊,確定第一查閱資料表,該第一查閱資料表中包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊,這樣可以直接透過查找該第一查閱資料表,得到第j個預測模式對應的相鄰塊,進而基於第j個預測模式對應的相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
本申請實施例對第一查閱資料表的具體表現形式不做限制。
在一種可能的實現方式中,該第一查閱資料表包括P個不同的子查閱資料表,其中P個子查閱資料表為P個屬性資訊的塊分別對應的查閱資料表,查閱資料表包括不同權重導出模式下,不同預測模式對應的相鄰塊。這樣,編碼端可以基於當前塊的屬性資訊,在P個子查閱資料表中,確定當前塊對應的第一子查閱資料表,第一子查閱資料表包括不同權重導出模式下,不同預測模式對應的相鄰塊;接著,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊;進而基於第j個預測模式對應的相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
在本申請實施例中,基於不同的塊屬性資訊,確定不同的子查閱資料表,其中查閱資料表包括不同權重導出模式下,不同預測模式對應的相鄰塊。
在一種示例中,假設塊的屬性資訊包括塊的長寬比。假設P個子查閱資料表包括長寬比為1:2的塊對應的查閱資料表、長寬比為1:1的塊對應的查閱資料表和長寬比為2:1的塊對應的查閱資料表。
示例性的,長寬比為1:2的塊對應的查閱資料表如上述表6所示。
這樣,在對當前塊進行編碼時,基於當前塊的尺寸資訊,若確定當前塊的長寬比為1:2時,則從P個子查錯表中,得到如表6所示的第一子查錯表。接著,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊,具體的,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊。假設K=2,第j個預測模式為第一個預測模式,該第一個預測模式對應上述表6的第一部分,這樣可以第i個候選權重導出模式,在第一部分對應的相鄰塊中確定出第i個預測模式對應的相鄰塊。例如,第i個候選權重導出模式為a4,a4對應的第一部分的相鄰塊為A,因此可以將當前塊的左上方相鄰塊、上側相鄰塊和右上方相鄰塊確定為第i個預測模式對應的相鄰塊,進而基於當前塊的左上方相鄰塊、上側相鄰塊和右上方相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。例如,將當前塊的左上方相鄰塊、上側相鄰塊和右上方相鄰塊的預測模式按照預設的順序加入第j個預測模式的候選預測模式列表中。
示例性的,長寬比為1:1的塊對應的子查閱資料表如表7所示。
這樣,在對當前塊進行編碼時,基於當前塊的尺寸資訊,若確定當前塊的長寬比為1:1時,則從P個子查錯表中,得到如表7所示的第一子查錯表。接著,基於第i個候選權重導出模式,在第一查閱資料表中,確定出第j個預測模式對應的相鄰塊,具體的,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊。假設K=2,第j個預測模式為第一個預測模式,該第一個預測模式對應上述表7的第一部分,這樣可以第i個候選權重導出模式,在第一部分對應的相鄰塊中確定出第i個預測模式對應的相鄰塊。例如,第i個候選權重導出模式為a2,a2對應的第一部分的相鄰塊為L+A,因此可以將當前塊的左側相鄰塊、左下方相鄰塊、左上方相鄰塊、上側相鄰塊和右上方相鄰塊確定為第i個預測模式對應的相鄰塊,進而基於當前塊的左側相鄰塊、左下方相鄰塊、左上方相鄰塊、上側相鄰塊和右上方相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。例如,將當前塊的左側相鄰塊、左下方相鄰塊、左上方相鄰塊、上側相鄰塊和右上方相鄰塊的預測模式按照預設的順序加入第j個預測模式的候選預測模式列表中。
示例性的,長寬比為2:1的塊對應的子查閱資料表如表8所示。
這樣,在對當前塊進行編碼時,基於當前塊的尺寸資訊,若確定當前塊的長寬比為2:1時,則從P個子查錯表中,得到如表8所示的第一子查錯表。接著,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊,具體的,基於第i個候選權重導出模式,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊。假設K=2,第j個預測模式為第一個預測模式,該第一個預測模式對應上述表8的第一部分,這樣可以基於第i個候選權重導出模式,在第一部分對應的相鄰塊中確定出第i個預測模式對應的相鄰塊。例如,第i個候選權重導出模式為a1,a1對應的第一部分的相鄰塊為L,因此可以將當前塊的左側相鄰塊、左下方相鄰塊和左上方相鄰塊確定為第i個預測模式對應的相鄰塊,進而基於當前塊的左側相鄰塊、左下方相鄰塊和左上方相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。例如,將當前塊的左側相鄰塊、左下方相鄰塊和左上方相鄰塊的預測模式按照預設的順序加入第j個預測模式的候選預測模式列表中。
需要說明的是,上述表6、表7和表8只是一種示例,不是對本申請實施例的一種限定。本申請實施例中不同屬性資訊的塊對應的子查錯表所包括的內容,具體基於實際情況確定。
上述表7至表8示出了不同候選權重導出模式下不同的預測模式(即不同部分)對應的相鄰塊。其中候選權重導出模式可以理解為候選權重導出模式的索引。
在一些實施例中,可以使用角度索引替換候選權重導出模式,即上述查錯表包括不同角度索引下不同預測模式對應的相鄰塊。這樣在查找相鄰塊時,首先基於當前塊的屬性資訊,從P個子查閱資料表中確定第一查錯表,接著確定第i個候選預測模式對應的角度索引,進而基於該角度索引,在第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊。
在一些實施例中,當前塊的長寬比可以使用當前塊的形狀索引來代替,例如,形狀的索引為0代表長度:寬度為1:1,形狀的索引為1代表長度:寬度為2:1,形狀的索引為2代表長度:寬度為1:2等。本申請實施例中每一個形狀的索引構建子查閱資料表,進而具有P個子查閱資料表。
本申請實施例對編碼端確定P個子查閱資料表的具體的方式不做限制。
在一種可能的實現方式中,編碼端從其他的存放裝置中獲得P個子查閱資料表。
在又一種可能的實現方式中,編碼端中保存有P個子查閱資料表。
在另一種可能的實現方式中,編碼端可以構建P個子查閱資料表。例如,對於N個候選權重導出模式中的每一個候選權重導出模式,基於該候選權重導出模式和塊的屬性資訊,確定與該塊的第一部分相關性較強的第一相鄰塊,以及與該塊的第二部分相關性較強的第二相鄰塊,進而基於第一相鄰塊和第二相鄰塊,構建如上述表6至表8所示的子查閱資料表。
在另一種可能的實現方式中,編碼端將P個子查閱資料表發送給編碼端。由於P個子查閱資料表不包括圖像資訊,在一種示例中,編碼端可以傳輸其他資料的方式,將該P個子查閱資料表發送給解碼端。在另一種示例中,編碼端將這P個子查閱資料表寫入碼流中發送給解碼端。
在一些實施例中,該第一子查閱資料表為一個表,該表中包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊。也就是說,將上述表6至表7所示的子查閱資料表合併為一個子查閱資料表。
這樣編碼端可以基於當前塊的屬性資訊和第i個候選權重導出模式,在表9所示第一子查閱資料表中,確定出第j個預測模式對應的相鄰塊,並基於第j個預測模式對應的相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
上述方式一示出了,基於第i個候選權重導出模式和當前塊的屬性資訊,透過子查閱資料表的方式確定出第j個預測模式的候選預測模式。
在一些實施例中,還可以透過如下方式二的方式,確定出第j個預測模式的候選預測模式。
方式二,編碼端透過如下步驟41和步驟42的方式,確定出第j個預測模式的候選預測模式列表:
步驟41、基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定當前塊的相鄰塊關於第j個預測模式的權重;
步驟42、基於相鄰塊關於第j個預測模式的權重,確定第j個預測模式的候選預測模式列表。
在該方式二中,透過確定當前塊的相鄰塊中各相鄰塊關於第j個預測模式的權重,確定選擇當前塊的哪些相鄰塊的預測模式,來構建第j個預測模式的候選預測模式列表。
下面對基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定當前塊的相鄰塊關於第j個預測模式的權重的具體過程進行介紹。
其中,上述步驟41中,確定當前塊的相鄰塊關於第j個預測模式的權重的方式包括但不限於如下幾種:
方式1,對於當前塊的任意一個相鄰塊,基於第i個候選權重導出模式和當前塊的屬性資訊,確定該相鄰塊中每一個點關於第j個預測模式的權重,基於該相鄰塊中每一個點關於第j個預測模式的權重,確定該相鄰塊關於第j個預測模式的權重。
在一種示例中,將該相鄰塊中每一個點關於第j個預測模式的權重的平均值,確定為該相鄰塊關於第j個預測模式的權重。
在另一種示例中,將該相鄰塊中每一個點關於第j個預測模式的權重的加權平均值,確定為該相鄰塊關於第j個預測模式的權重。可選的,在確定加權平均值時,相鄰塊中與當前塊相鄰的像素點賦予較大的權重,相鄰塊中距離當前塊較遠的像素點賦予較小的權重。
在又一種示例中,將該相鄰塊中每一個點關於第j個預測模式的權重的和值,確定為該相鄰塊關於第j個預測模式的權重。
在另一種示例中,將該相鄰塊中每一個點關於第j個預測模式的權重的加權和值,確定為該相鄰塊關於第j個預測模式的權重。可選的,在確定加權和值時,相鄰塊中與當前塊相鄰的像素點賦予較大的權重,相鄰塊中距離當前塊較遠的像素點賦予較小的權重。
在該方式1中,基於第i個候選權重導出模式和當前塊的屬性資訊,確定該相鄰塊中每一個點關於第j個預測模式的權重的方式相同。在一些實施例中,當前塊的相鄰塊位於當前塊的範本中,因此,在確定出當前塊的範本的權重後,可以確定出相鄰塊中每一個點的權重。
例如,基於第i個權重導出模式,以及當前塊的屬性資訊和當前塊的範本,確定當前塊的範本權重。對於相鄰塊中的點1,將當前塊的範本權重中點1對應的權重,確定為點1關於第j個預測模式的權重。參照該方式,可以確定出相鄰塊中每一個點關於第j個預測模式的權重。
方式2,將相鄰塊中某一個點的權重,確定為相鄰塊關於第j個預測模式的權重,此時,上述步驟41包括如下步驟:
步驟41-A、基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定相鄰塊中第一點的權重;
步驟41-B、將第一點的權重,確定為相鄰塊關於第j個預測模式的權重。
在該方式2中,編碼端透過確定相鄰塊中第一點關於第j個預測模式的權重,來確定相鄰塊關於第j個預測模式的權重,可以降低確定相鄰塊的權重的計算量,進而提升編碼效率。
本申請實施例對第一點在相鄰塊中的具體位置不做限制。
在一種可能的實現方式中,上述第一點為相鄰塊中的任意一個點。
在另一種可能的實現方式中,上述第一點為相鄰塊中與當前塊相鄰的一個點。
在該方式2中,確定相鄰塊中第一點的權重的具體方式至少包括如下方式:
第一種方式,直接確定相鄰塊中第一點的權重,此時,上述步驟41-A包括如下步驟:
步驟41-A11、基於第i個候選權重導出模式、當前塊的屬性資訊和當前塊的範本,確定第一點的權重。
在本申請實施例中,相鄰塊中位於當前塊的範本區域中,因此,相鄰塊中的第一點位於當前塊的範本區域中,因此,可以參照確定當前塊的範本的權重的方式,確定出第一點的權重,例如包括如下幾種示例:
示例1,若透過確定範本中的每一個點的權重,進而將每一個點的權重組成的矩陣確定為範本的權重時,則編碼端可以基於第i個候選權重導出模式、當前塊的屬性資訊和當前塊的範本,以及第一點為範本中的位置資訊(x,y),直接確定出第一點的權重。
具體的,確定出第i個候選權重導出模式對應的角度索引和距離索引,根據角度索引、距離索引和範本的大小,以及第一點的位置資訊(x,y),確定範本中第一點的第一參數,在一些實施例中,第一參數也稱為權重索引weightIdx;根據範本中第一點的第一參數,確定範本中第一點的權重。
上述示例1,透過參照確定範本中像素點的權重的方式,確定出相鄰中第一點的權重,整個過程簡單,且確定出的第一點的權重較準確。
示例2,由上述可知,第一點為範本中的一個點,因此可以透過確定出整個範本的權重,進而基於範本的權重,確定第一點的權重。此時,上述步驟41-A11包括:基於第i個候選權重導出模式、當前塊的屬性資訊和當前塊的範本,確定範本的權重;將範本的權重中第一點對應的權重,確定為第一點的權重。
具體的,確定出第i個候選權重導出模式對應的角度索引和距離索引,基於當前塊的屬性資訊,確定當前塊的大小,根據角度索引、距離索引、當前塊的大小、範本的大小,確定範本中各像素點的第一參數,在一些實施例中,第一參數也稱為權重索引weightIdx;根據範本中各像素點的第一參數,確定範本的權重。
在上述實現方式中,透過權重導出模式確定出範本中每個點的權重,範本中每個點的權重組成的權重矩陣作為範本權重。
在另一種可能的實現方式中,將當前塊和範本組成的合併區域作為一個整體,根據權重導出模式導出合併區域中像素點的權重,進而基於合併區域的權重,確定範本的權重。
示例性的,編碼端根據角度索引、距離索引,以及範本的大小和當前塊的大小,確定當前塊和範本組成的合併區域中像素點的權重;根據範本的大小和合併區域中像素點的權重,確定範本權重。
在該實現方式中,將當前塊和範本作為一個整體,根據角度索引、距離索引,以及範本的大小和當前塊的大小,確定當前塊和範本組成的合併區域中像素點的權重,進而根據範本的大小,將合併區域中範本對應的權重確定為範本權重,例如圖21A和圖21B所示,將合併區域中L型範本區域對應的權重確定為範本權重。
上述示例2,可以確定出第i個候選權重導出模式下,範本關於第j個預測模式的權重,進而將範本關於第j個預測模式的權重中第一點的權重,確定為相鄰塊中的第一點關於第j個預測模式的權重。
上述方式1中,參照範本權重的確定方式,直接確定出相鄰塊中第一點的權重,可以實現對第一點的權重的準確確定,這樣基於第一點的權重,可以準確確定出相鄰塊關於第j個預測模式的權重。
方式2、基於當前塊中第二點的權重,確定相鄰塊中第一點的權重,此時,上述步驟41-A包括如下步驟:
步驟41-A-21、確定當前塊中第一點對應的第二點;
步驟41-A-22、基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定第二點的權重;
步驟41-A-23、基於第二點的權重,確定第一點的權重。
在該方式2中,由上述可知,直接確定相鄰塊中第一點的權重時,需要考慮到範本的相關資訊,進而增加了第一點權重的確定複雜度。在該方式2中,透過當前塊中第二點的權重來確定相鄰塊中第一點的權重,在確定第二點的權重時,不需要考慮範本的相關資訊,進而降低第一點的權重的確定複雜度。
本申請實施例對當前塊中第一點對應的第二點的具體位置不做限制。
在一些實施例中,第二點為當前塊中距離第一點最近的一個點。
在一種示例中,第二點為當前塊中與第一點相鄰的一個點。例如,如圖18所示,第一點為相鄰塊中的(x0-1,y0-1)處的點,則第二點可以為當前塊中的(x0,y0)處的點。再例如,如圖18所示,第一點為相鄰塊中的(x0-1,y0+height-1)處的點,則第二點可以為當前塊中的(x0,y0+height-1)處的點。
在該方式2中,基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定第二點的權重的具體過程可以是,基於第i個候選權重導出模式,確定第i個候選權重導出模式對應的劃分角度索引變數angleIdx和距離索引變數distanceIdx,基於當前塊的屬性資訊,確定當前塊的大小(nCbW)Χ(nCbH)。參照上述確定預測值的權重的方式,確定當前塊中第二點的權重。需要說明的是,上述是以第j個預測模式為第一個預測模式為例進行說明的,也就是說,上述確定出的是第二點關於第一個預測模式的權重。若上述第j個預測模式為第二個預測模式時,則第二點關於第二個預測模式的權重為8- wVemplateValue[x][y],其中8只是一種示例,還可以是其他的值,本申請實施例對此不做限制。
編碼端確定出當前塊中第二點關於第j個預測模式的權重後,基於第二點的權重,確定相鄰塊中第一點的權重。例如,若第二點與第一點相鄰時,則可以直接將第二點的權重,確定為第一點的權。再例如,若第二點與第一點不相鄰時,則可以對第二點的權重進行修正,得到第一點的權重,本申請實施例對具有的修正方式不做限制,例如在第二點的權重的基礎上增加預設值或減去預設值,得到第一點的權重。
需要說明的是,上述方式1示出的確定第一點的權重,以及方式2示出的確定第二點的權重的過程中,未考慮權重梯度參數的影響。
在一些實施例中,若在上述確定第一點權重的過程中,考慮權重梯度參數的影響時,則編碼端還需要確定權重梯度參數,接著,基於第i個候選權重導出模式、當前塊的屬性資訊和權重梯度參數,確定相鄰塊中第一點的權重。
可變權重梯度可以調整權重變化的梯度,從而使GPM在劃分線角度和劃分線偏移量相同的情況下得到不同寬度的過渡區域。
示例性的,如圖22A和圖22B所示,圖22A是VVC中的GPM的過渡區域(blending area)的一個示意圖,圖22B是GPM可變權重梯度的一個例子。
blendingCoeff的值可以是1/4,1/2,1,2,4等。
示例性的,blendingCoeff的值可以由權重梯度索引gpm_blending_idx導出。
在一些實施例中,權重梯度索引也稱為過渡梯度參數或過渡參數。
本申請實施例對確定候選過渡參數列表的方式不做限制。
在一種示例中,上述候選過渡參數列表中的候選過渡參數為預設的。
在另一種示例,編碼端根據當前塊的特徵資訊,從預設的多個過渡參數中,選擇至少一個過渡參數組成候選過渡參數列表。例如,根據當前塊的圖像資訊,從預設的多個過渡參數中,選擇符合當前塊的圖像資訊的過渡參數,組成候選過渡參數列表。
舉例說明,假設圖像資訊包括圖像邊緣的清晰度,則若當前塊的圖像邊緣的清晰度小於預設值,則選擇預設的多個權重梯度參數中的至少一個第一類權重梯度參數,例如1/4、1/2等,組成候選權重梯度參數列表;若當前塊的圖像邊緣的清晰度大於或等於預設值,則選擇預設的多個權重梯度參數中的至少一個第二類權重梯度參數,例如2、4等,組成候選權重梯度參數列表。
示例性的,本申請實施例的候選權重梯度參數列表如表10所示。
如表10所示,候選權重梯度參數列表包括多個候選權重梯度參數,每一個候選權重梯度參數對應一個索引。
示例性的,上述表10中以候選權重梯度參數在候選權重梯度參數列表中的排序為索引,可選的,還可以以其他方式體現候選權重梯度參數在候選權重梯度參數列表中的索引,本申請實施例對此不作限制。
在一些實施例中,編碼端確定出權重梯度參數後,在碼流中寫入第二索引,該第二索引用於指示權重梯度參數,這樣解碼端可以根據該第二索引,確定權重梯度參數。
在一些實施例中,上述第二索引也稱為權重梯度索引。
在一些實施例中,編碼端還可以透過如下方式2,確定權重梯度參數。
方式2,編碼端確定多個備選權重梯度參數,G為正整數;從多個備選權重梯度參數中,確定權重梯度參數。
在該方式2中,編碼端首先確定多個備選權重梯度參數,進而從這多個備選權重梯度參數中,確定出一個備選權重梯度參數作為權重梯度參數。
本申請實施例對編碼端確定多個備選權重梯度參數的具體方式不做限制。
在一種可能的實現方式中,上述多個備選權重梯度參數為預設的,也就是說,編碼端和解碼端約定將預設的幾個權重梯度參數,確定為G個備選權重梯度參數。
在另一種可能的實現方式中,可以根據當前塊的大小,確定多個備選權重梯度參數。
在另一種可能的實現方式中,確定當前塊的圖像資訊;根據當前塊的圖像資訊,從預設的多個備選權重梯度參數中,確定多個備選權重梯度參數。
編碼端確定多個備選權重梯度參數後,從這多個備選權重梯度參數中,確定權重梯度參數。
本申請實施例對從這多個備選權重梯度參數中,確定權重梯度參數的具體方式不做限制。
在一些實施例中,將多個備選權重梯度參數中的任一備選權重梯度參數,確定為權重梯度參數。
在一些實施例中,確定多個備選權重梯度參數中的每一個備選權重梯度參數對應的代價;根據代價,從多個備選權重梯度參數中,確定權重梯度參數。例如,將代價最小的權重梯度參數確定為當前塊對應的梯度參數。
方式3,根據當前塊的大小,確定權重梯度參數。
由上述可知,權重梯度參數與塊的大小之間有一定的關聯性,因此,本申請實施例還可以根據當前塊的大小,確定權重梯度參數。
在一種可能的實現方式中,根據當前塊的大小,將某一固定的權重梯度參數,確定為權重梯度參數。
例如,若當前塊的大小小於第一設定閾值時,則確定權重梯度參數為第一值。
再例如,若當前塊的大小大於或等於第一設定閾值時,則確定權重梯度參數為第二值,其中第二值小於第一值。
本申請實施例對上述第一值、第二值和第一設定閾值的具體取值不做限制。
示例性的,第一值為1,第二值為1/2。
示例性的,若當前塊的大小用當前塊的像素點數(或採樣點數)來表示時,則第一設定閾值可以為256等。
在另一種可能的實現方式中,根據當前塊的大小,確定權重梯度參數所在的取值範圍,進而將權重梯度參數確定為該取值範圍內的值。
例如,若當前塊的大小小於第一設定閾值時,則確定權重梯度參數位於權重梯度參數取值範圍內。比如,權重梯度參數為權重梯度參數取值範圍內的最小權重梯度參數、或最大權重梯度參數、或中間權重梯度參數等任意一個權重梯度參數。再比如,權重梯度參數為權重梯度參數取值範圍內代價最小的權重梯度參數。其中,確定權重梯度參數代價的方法,可以參照本申請其他實施例的描述,在此不再贅述。
再例如,若當前塊的大小大於或等於第一設定閾值時,則確定權重梯度參數位於該第二權重梯度參數取值範圍內。比如,權重梯度參數為第二權重梯度參數取值範圍內的最小權重梯度參數、或最大權重梯度參數、或中間權重梯度參數等任意一個權重梯度參數。再比如,權重梯度參數為第二權重梯度參數取值範圍內代價最小的權重梯度參數。其中,第二權重梯度參數取值範圍的最小值小於權重梯度參數取值範圍的最小值,且權重梯度參數取值範圍與第二權重梯度參數取值範圍可以相交,也可以不相交,本申請實施例對此不做限制。
編碼端根據上述步驟,確定出權重梯度參數後,基於第i個候選權重導出模式、當前塊的屬性資訊和權重梯度參數,確定相鄰塊中第一點的權重。
在一種示例中,編碼端基於第i個候選權重導出模式和當前塊的屬性資訊,確定出權重索引weightIdx,例如上述相鄰塊中的第一點對應的權重索引weightIdx,或者當前塊中的第二點對應的權重索引weightIdx。接著,使用上述確定的權重梯度參數,對權重索引weightIdx進行處理,得到處理後的權重索引weightIdx;根據處理後的weightIdx,確定第一點或第二點的權重wVemplateValue。
上述實施例對上述步驟41-A中,基於第i個候選權重導出模式,以及當前塊的屬性資訊,確定相鄰塊中第一點的權重的具體過程進行介紹。接著,將第一點的權重,確定為相鄰塊關於第j個預測模式的權重。
在上述方式二中,編碼端透過上述步驟,確定出當前塊的各相鄰塊關於第j個預測模式的權重後,執行上述步驟42的步驟,即基於相鄰塊關於第j個預測模式的權重,確定第j個預測模式的候選預測模式列表。
上述步驟42的實現過程包括但不限於如下幾種:
方式1,上述步驟42包括如下步驟42-A1和步驟42-A2:
步驟42-A1、若相鄰塊關於第j個預測模式的權重大於或等於預設閾值,則獲取相鄰塊的預測模式;
步驟42-A2、基於相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
在該方式1中,編碼端基於上述步驟,確定出在第i個候選權重導出模式下,當前塊的各相鄰塊中每一個相鄰塊關於第j個預測模式的權重。接著,將各相鄰塊對應的權重與預設閾值進行比較,若相鄰塊對應的權重大於或等於預設閾值,則說明該相鄰塊與第j個預測模式的相關性較強,進而可以基於該相鄰塊的預測模式,來確定第j個預測模式的候選預測模式列表,例如,將該相鄰塊的預測模式,添加在第j個預測模式的候選預測模式列表中。
在一些實施例中,若權重的取值範圍為0到n時,則上述預設閾值為n/2,其中n為正數。
在一些實施例中,若權重的取值為第一值或第二值時,例如設定權重的取值為0或1,則上述步驟22包括如下步驟:
步驟22-B1、若相鄰塊關於第j個預測模式的權重等於第一值,則獲取相鄰塊的預測模式,其中第一值大於第二值;
步驟22-B2、基於相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
在該實施例中,若相鄰塊關於第j個預測模式的權重要麼為第一值,要麼是第二值時,則在確定出相鄰塊關於第j個預測模式的權重等於第一值,則說明該相鄰塊與第j個預測模式的相關性較強,進而可以基於該相鄰塊的預測模式,來確定第j個預測模式的候選預測模式列表。
本申請實施例對第一值和第二值的具體取值不做限制。
可選的,第一值為1。
可選的,第二值為0。
在一些實施例中,若相鄰塊對應的權重小於預設閾值,或者相鄰塊對應的權重等於第二值時,則說明該相鄰塊與第j個預測模式的相關性較弱,進而不基於該相鄰塊的預測模式,來確定第j個預測模式的候選預測模式列表,例如,跳過獲取該相鄰塊的預測模式,從而提高候選預測模式列表的確定準確性。
在本申請實施例中,對當前塊所包括的相鄰塊的個數,以及相鄰塊的具體位置不做限制。
在一些實施例中,若第j個預測模式的候選預測模式列表的長度不做限制時,可以採用隨機的方式,將當前塊的各相鄰塊關於第j個預測模式的權重與預設閾值或第一值進行比較,以獲取權重大於或等於預設閾值或等於第一值的相鄰塊的預測模式。
在一些實施例中,若第j個預測模式的候選預測模式列表的長度有限時,則上述步驟42-A1中獲取相鄰塊的預測模式包括:按照預設的檢查順序,依次獲取當前塊的各相鄰塊中,關於第j個預測模式的權重大於或等於預設閾值或者等於第一值的相鄰塊的預測模式。
本申請實施例對上述預設的檢查順序不限制。
在一些實施例中,若當前塊所包括的相鄰塊如圖18所示,若當前塊的相鄰塊包括左側相鄰塊L、上側相鄰塊A、左下方相鄰塊BL、右上方相鄰塊AR和左上方相鄰塊AL,則預設的檢查順序為左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊,即L->A->BL->AR->AL。
在一些實施例中,編碼端對相鄰塊的預測模式填入第j個預測模式對應的候選預測模式列表的順序不做限制。
在一些實施例中,編碼端按照所述檢查順序,將獲取的相鄰塊的預測模式依次添加至所述第j個預測模式的候選預測模式列表中。例如,編碼端先判斷相鄰塊L關於第j個預測模式的權重是否小於或等於預設閾值,或者是否等於第一值,若相鄰塊L關於第j個預測模式的權重小於或等於預設閾值,或者等於第一值時,則將該相鄰塊L的預測模式添加至第j個預測模式對應的候選預測模式列表中。接著,判斷相鄰塊A關於第j個預測模式的權重是否小於或等於預設閾值,或者是否等於第一值,若相鄰塊A關於第j個預測模式的權重小於或等於預設閾值,或者等於第一值時,則將該相鄰塊A的預測模式添加至第j個預測模式對應的候選預測模式列表中,依次類推,直到第j個預測模式對應的候選預測模式列表的長度達到上限或上述相鄰塊全部檢查完為止。
在一些實施例中,若候選預測模式列表中不包括重複的候選預測模式時,則在將權重大於或等於預設閾值的相鄰塊的預測模式添加在候選預測模式列表之前,首先判斷第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式,若第j個預測模式的候選預測模式列表中不包括相鄰塊的預測模式時,將相鄰塊的預測模式,添加至第j個預測模式的候選預測模式列表中。若第j個預測模式的候選預測模式列表中已包括相鄰塊的預測模式時,則跳過將相鄰塊的預測模式,添加至第j個預測模式的候選預測模式列表中。
在該方式1中,將各相鄰塊中關於第j個預測模式的權重大於或等於預設閾值的相鄰塊的預測模式,添加在第j個預測模式的候選預測模式列表中,提高候選預測模式列表的確定準確性。
在一些實施例中,編碼端還可以透過如下方式2,確定所述第j個預測模式的候選預測模式列表。
方式2,若當前塊包括M個相鄰塊,M為正整數,則上述步驟42包括如下步驟42-C1:
步驟42-C1、基於M個相鄰塊分別關於第j個預測模式的權重,以及M個相鄰塊的預測模式,確定第j個預測模式的候選預測模式列表。
例如,基於M個相鄰塊分別關於第j個預測模式的權重,從M個相鄰塊中選出權重位於預設範圍內的若干個相鄰塊,並將這若干個相鄰塊的預測模式,添加至第j個預測模式的候選預測模式列表。
再例如,基於M個相鄰塊分別關於第j個預測模式的權重大小,將M個相鄰塊的預測模式添加至候選預測模式列表中,直到候選預測模式列表的長度達到預設長度為止。例如,權重越大的相鄰塊,加入候選預測模式列表的概率越大,但是權重較小的相鄰塊,也有機會加入候選預測模式列表中,但是概率較小。
本申請實施例對M個相鄰塊的具體數量和位置不做限制。
在一些實施例中,上述M個相鄰塊包括當前塊的左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊中的至少一個。
由上述可知,上述步驟在確定第i個候選權重導出模式下,第j個預測模式的候選預測模式列表時,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表,例如,透過確定當前塊的相鄰塊關於第j個預測模式的權重,並基於該權重,確定是否將相鄰塊的預測模式添加至第j個預測模式的候選預測模式列表中。
基於此,在本申請實施例中,編碼端在基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表之前,首先需要確定第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式。若確定第j個預測模式的候選預測模式列表中包括相鄰塊的預測模式時,基於第i個候選權重導出模式和當前塊的屬性資訊,確定第j個預測模式的候選預測模式列表。
本申請實施例對編碼端確定第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式的具體方式不做限制。
在第一種示例中,編碼端和解碼端預設當前塊對應的候選預測模式列表中均包括相鄰塊的預測模式,基於此,則編碼端可以確定第j個預測模式的候選預測模式列表中包括相鄰塊的預測模式。或者,編碼端和解碼端預設當前塊對應的候選預測模式列表中均不包括相鄰塊的預測模式,基於此,則編碼端可以確定第j個預測模式的候選預測模式列表中不包括相鄰塊的預測模式。
在第二示例中,編碼端按照預設順序,將預設順序中位於相鄰塊的預測模式之前的各預測模式添加至候選預測模式列表後,候選預測模式列表的長度未達到預設長度時,則確定第j個預測模式的候選預測模式列表中包括相鄰塊的預測模式。
在該示例中,第j個預測模式的候選預測模式列表還包括其他的預測模式,在確定第j個預測模式的候選預測模式列表,編碼端首先按照預設順序,依次向第j個預測模式的候選預測模式列表中添加預測模式,並判斷將預設順序中位於相鄰塊的預測模式之前的各預測模式添加至候選預測模式列表後,候選預測模式列表的長度是否達到預設長度。若將預設順序中位於相鄰塊的預測模式之前的各預測模式添加至候選預測模式列表後,候選預測模式列表的長度未達到預設長度,則確定第j個預測模式的候選預測模式列表中包括相鄰塊的預測模式。若將預設順序中位於相鄰塊的預測模式之前的各預測模式添加至候選預測模式列表後,候選預測模式列表的長度達到預設長度,則確定第j個預測模式的候選預測模式列表中不包括相鄰塊的預測模式。
在一些實施例中,編碼端按照預設順序,將預測角度與第i個候選權重導出模式的劃分線平行的預測模式、基於當前塊的範本導出的候選預測模式、基於當前塊的周圍重建像素導出的候選預測模式、相鄰塊的預測模式、預測角度與第i個候選權重導出模式的劃分線垂直的預測模式和預設模式,依次添加至第j個預測模式的候選預測模式列表,直到列表的長度達到預設長度。
本申請實施例對預設順序不做限制。
在一種示例中,預設順序包括:預測角度與第i個候選權重導出模式的劃分線平行的預測模式、基於當前塊的範本導出的候選預測模式、基於當前塊的周圍重建像素導出的候選預測模式、相鄰塊的預測模式、預測角度與第i個候選權重導出模式的劃分線垂直的預測模式和預設模式。
在一些實施例中,基於當前塊的範本導出的候選預測模式可以理解為TIMD導出的預測模式。
在一些實施例中,基於當前塊的周圍重建像素導出的候選預測模式可以理解為DIMD導出的預測模式。
在一些實施例中,預設模式包括PLANAR模式。
在一種示例中,在構建第j個預測模式的候選預測模式列表時,按順序加入如下幾類預測模式到候選預測模式列表,直到列表長度達到預設長度(例如3):
1、預測角度與第i個候選權重導出模式的劃分線平行的預測模式;
2、TIMD導出的預測模式;
3、DIMD導出的預測模式;
4、當前塊的相鄰塊的預測模式;
5、預測角度與第i個候選權重導出模式的劃分線垂直的預測模式;
6、PLANAR模式。
上述實施例對編碼端確定候選預測模式列表的具體過程進行介紹。
在一些實施例中,編碼端在碼流中寫入第一資訊,第一資訊用於指示候選預測模式列表中是否包括相鄰塊的預測模式。這樣,解碼端可以基於第一資訊,確定第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式。
編碼端基於上述步驟,確定出候選預測模式列表後,執行下面S203的步驟。
S203、基於N個候選權重導出模式和至少一個候選預測模式,確定當前塊對應的第一權重導出模式和K個第一預測模式。
編碼端基於上述S201的步驟,確定出N個候選權重導出模式,基於上述S202的步驟,確定出至少一個候選預測模式,進而重N個候選權重導出模式中選擇一個候選權重導出模式作為第一權重導出模式,從至少一個候選預測模式中所包括的至少一個候選預測模式中,確定出K個第一預測模式中的至少一個第一預測模式。最後,使用確定出的第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。
本申請實施例對編碼端基於N個候選權重導出模式和至少一個候選預測模式,確定第一權重導出模式和K個第一預測模式的具體方式不做限制。
在一些實施例中,若至少一個候選預測模式為K個第一預測模式對應的候選預測模式列表時,即K個第一預測模式均從該候選預測模式列表中選出,此時,編碼端將N個候選權重導出模式與候選預測模式列表所包括的候選預測模式進行組合。例如,將N個候選權重導出模式中的每一個候選權重導出模式與候選預測模式列表中的任意K個候選預測模式進行組合,得到多個組合,每一個組合中包括一個候選權重導出模式和K個候選預測模式。接著,使用每一個組合所包括的候選權重導出模式和K個候選預測模式對當前塊的範本進行預測,確定每一個組合的代價,進而基於代價,從多個組合中確定出一個組合,例如從多個組合中選出代價最小的組合,將代價最小的組合所包括的候選權重導出模式確定為第一權重導出模式,將該代價最小的組合所包括的K個預測模式確定為K個第一預測模式。
在一些實施例中,若至少一個候選預測模式為K個第一預測模式中某一個第一預測模式的候選預測模式列表,例如,K=2,上述候選預測模式為第一個預測模式的候選預測模式列表,此時,編碼端確定第二個預測模式對應的可選預測模式集合。接著,編碼端針對N個候選權重導出模式中的每一個候選權重導出模式,從第一個預測模式的候選預測模式列表中選出一個候選預測模式作為第一個預測模式的一種可能,從第二個預測模式對應的可選預測模式集合中選出一個預測模式作為第二個預測模式的一種可能,得到該候選權重導出模式與第一個預測模式的一種可能和第二個預測模式的一種可能構成一個組合,這樣可以多個組合。每一個組合中包括一個候選權重導出模式和2個候選預測模式。接著,使用每一個組合所包括的候選權重導出模式和2個候選預測模式對當前塊的範本進行預測,確定每一個組合的代價,進而基於代價,從多個組合中確定出一個組合,例如從多個組合中選出代價最小的組合,將代價最小的組合所包括的候選權重導出模式確定為第一權重導出模式,將該代價最小的組合所包括的K個預測模式確定為K個第一預測模式。
在一些實施例中,若上述至少一個候選預測模式包括K個第一預測模式中每一個第一預測模式對應的候選預測模式列表,也就是說,編碼端基於上述S202的步驟,確定出K個候選預測模式。舉例說明,假設K=2,即編碼端確定出第一個預測模式的候選預測模式列表和第二個預測模式的候選預測模式。這樣,編碼端從N個候選權重導出模式中選擇一個候選權重導出模式,從第一個預測模式的候選預測模式列表中選擇一個候選預測模式,從第二個預測模式的候選預測模式列表中選擇一個候選預測模式,此時選擇的一個候選權重導出模式和2個候選預測模式組成一個組合。參照上述方法,可以得到多個組合。每一個組合中包括一個候選權重導出模式和2個候選預測模式。接著,使用每一個組合所包括的候選權重導出模式和2個候選預測模式對當前塊的範本進行預測,確定每一個組合的代價,進而基於代價,從多個組合中確定出一個組合,例如從多個組合中選出代價最小的組合,將代價最小的組合所包括的候選權重導出模式確定為第一權重導出模式,將該代價最小的組合所包括的K個預測模式確定為K個第一預測模式。
基於上述描述,一個權重導出模式和K個預測模式可以作為一個組合共同作用在當前塊上,為了節省碼字,降低編碼代價,在一些實施例中將當前塊對應的權重導出模式和K個預測模式作為一個組合,即第一組合,使用第一索引對該第一組合進行指示,相比於對權重導出模式和K個預測模式分別進行指示,本申請實施例使用更少的碼字,進而降低了編碼代價。
基於此,上述S203包括如下S203-A至S203-B的步驟:
S203-A、基於N個候選權重導出模式和至少一個候選預測模式,確定候選組合列表,該候選組合列表包括至少一個候選組合,候選組合包括一個權重導出模式和K個預測模式;
S203-B、從候選組合列表中確定出第一組合。
示例性的,候選組合列表如表7所示。如表7所示,候選組合列表包括多個候選組合,這多個候選組合中任意兩個候選組合不完全相同,即任意兩個候選組合所包括的權重導出模式和K個預測模式中的至少一個模式不同。例如,候選組合1和候選組合2中的權重導出模式不同,或者候選組合1和候選組合2中的權重導出模式相同,K個預測模式中至少一個預測模式不同,或者,候選組合1和候選組合2中的權重導出模式不同,且K個預測模式中至少一個預測模式不同。
示例性的,上述表7中以候選組合在候選組合列表中的排序為索引,可選的,還可以以其他方式體現候選組合在候選組合列表中的索引,本申請實施例對此不作限制。
下面對上述S203-A中基於N個候選權重導出模式和至少一個候選預測模式,確定候選組合列表的具體過程進行介紹。
本申請實施例對上述S203-A中基於N個候選權重導出模式和至少一個候選預測模式,確定候選組合列表的具體方式不做限制。
在一些實施例中,將N個候選權重導出模式與至少一個候選預測模式所包括的多個候選預測模式進行任意組合,每一個組合中包括一個權重導出模式和2個預測模式。這樣可以得到多個組合,利用與當前塊相關的資訊去分析不同的組合發生的概率大小,根據各組合的發生概率大小來構建候選組合列表。可選的,與當前塊相關的資訊包括當前塊的周圍塊的模式資訊,當前塊的重建像素等。
在一些實施例中,上述S203-A包括如下S203-A1和S203-A2的步驟:
S203-A1、基於N個候選權重導出模式和至少一個候選預測模式,得到T個第二組合;
S203-A2、基於T個第二組合,得到候選組合列表。
其中,T個第二組合中的任一第二組合包括一權重導出模式和K個預測模式,且T個第二組合中任意兩個組合所包括的權重導出模式和K個預測模式不完全相同,T為大於1的正整數。
在該實施例中,編碼端基於N個候選權重導出模式和至少一個候選預測模式,確定T個第二組合,本申請對T個第二組合的具體數值不做限制,例如8、16、32等,T個第二組合中的每一個第二組合包括一權重導出模式和K個預測模式,且T個第二組合中任意兩個組合所包括的權重導出模式和K個預測模式不完全相同。
本申請實施例對上述S203-A1中基於N個候選權重導出模式和至少一個候選預測模式,得到T個第二組合的具體方式不做限制。
在一些實施例中,若上述至少一個候選預測模式為K個第一預測模式對應的候選預測模式列表時,即K個第一預測模式均從該候選預測模式列表中選出。此時,編碼端將N個候選權重導出模式與候選預測模式列表所包括的候選預測模式進行組合。例如,將N個候選權重導出模式中的每一個候選權重導出模式與候選預測模式列表中的任意K個候選預測模式進行組合,得到T個第二組合,每一個第二組合中包括一個候選權重導出模式和K個候選預測模式。
在一些實施例中,若上述至少一個候選預測模式為K個第一預測模式中某一個第一預測模式的候選預測模式列表,例如,K=2,上述候選預測模式為第一個預測模式的候選預測模式列表,此時,編碼端確定第二個預測模式對應的可選預測模式集合。接著,編碼端針對N個候選權重導出模式中的每一個候選權重導出模式,從第一個預測模式的候選預測模式列表中選出一個候選預測模式作為第一個預測模式的一種可能,從第二個預測模式對應的可選預測模式集合中選出一個預測模式作為第二個預測模式的一種可能,得到該候選權重導出模式與第一個預測模式的一種可能和第二個預測模式的一種可能構成一個第二組合,這樣可以T個第二組合,每一個第二組合中包括一個候選權重導出模式和2個候選預測模式。
在一些實施例中,若上述至少一個候選預測模式包括K個第一預測模式中每一個第一預測模式對應的候選預測模式列表,也就是說,編碼端基於上述S202的步驟,確定出K個候選預測模式。舉例說明,假設K=2,即編碼端確定出第一個預測模式的候選預測模式列表和第二個預測模式的候選預測模式。這樣,編碼端從N個候選權重導出模式中選擇一個候選權重導出模式,從第一個預測模式的候選預測模式列表中選擇一個候選預測模式,從第二個預測模式的候選預測模式列表中選擇一個候選預測模式,此時選擇的一個候選權重導出模式和2個候選預測模式組成一個第二組合。參照上述方法,可以得到T個第二組合,每一個第二組合中包括一個候選權重導出模式和2個候選預測模式。
上述S203-A2中基於T個第二組合,得到候選組合列表的實現方式包括但不限於如下幾種方式:
方式1,按照預設的規則,對T個第二組合進行排序,得到候選組合列表。
方式2,上述S203-A2包括如下步驟:
S203-A21、對於T個第二組合中的任一第二組合,確定使用第二組合中的權重導出模式和K個預測模式對當前塊的範本進行預測時,第二組合對應的代價;
S203-A22、根據T個第二組合中各第二組合對應的代價,確定候選組合列表。
在該方式2中,對於T個第二組合中的每一個第二組合,使用該第二組合所包括的權重導出模式和K個預測模式對當前塊的範本進行預測,得到該第二組合對應的範本的預測值。
具體的,對於T個第二組合中的每一個第二組合,使用該第二組合中的K個預測模式對當前塊的範本進行預測,得到K個預測值。
接著,基於該第二組合中的權重導出模式,確定該第二組合對應的範本權重。
使用上述方法確定某一個第二組合對應的範本權重和K個範本預測值,使用範本權重對K個範本預測值進行加權,得到該第二組合下的範本預測值。
由於當前塊的範本為已重建區域,因此,編碼端可以得到範本的重建值,這樣對於T個第二組合中的每個第二組合,可以根據該第二組合下範本的預測值和範本的重建值,確定出該第二組合對應的代價。其中,確定第二組合對應的代價的方式包括但不限於SAD、SATD、SEE等。接著,根據T個第二組合中每個第二組合對應的代價,構建候選組合列表。
本申請實施例中,第二組合對應的範本預測值至少包括如下幾種方式:
第一種方式是,第二組合對應的範本預測值為一個數值,即編碼端使用該第二組合所包括的K個預測模式對範本進行預測,得到K個預測值,根據該第二組合所包括的權重導出模式確定範本權重,透過範本權重對K個預測值進行加權,得到加權後的預測值,將該加權後的預測值,確定為第二組合對應的範本預測值。
第二種方式是,在一些實施例中,也可以使用一些分層篩選的思想,比如說如果一個權重導出模式能得到比較小的代價,那麼繼續嘗試和它相似的權重導出模式,反之,如果一個權重導出模式不能得到比較小的代價,那麼就不繼續嘗試和它相似的權重導出模式。比如說如果一個幀內預測模式能得到比較小的代價,那麼繼續嘗試和它相似的幀內模式,反之,如果一個幀內預測模式不能得到比較小的代價,那麼就不繼續嘗試和它相似的幀內預測模式。當然這些篩選的方法也可以限制在與另外2個要素組合使用的情況下,比如說某一權重導出模式下,某一個幀內預測模式作為第一預測模式不能得到比較小的代價,那麼就不再嘗試該權重導出模式下,與該幀內預測模式相似的幀內預測模式為第一預測模式的情況。
第三種方式是,使用一種快速代價計算方法,確定各第二組合對應的代價。由上述可知,第二組合對應的範本預測值,包括第二組合所包括的K個預測模式分別對應的範本預測值。此時可以根據第二組合中的K個預測模式分別對應的範本預測值和範本重建值,確定該第二組合中的K個預測模式分別對應的代價;根據該第二組合中的K個預測模式分別對應的代價,確定該第二組合對應的代價。例如,將該第二組合中的K個預測模式分別對應的代價之和,確定為該第二組合對應的代價。
本申請實施例中,以K=2為例,可以把範本上的權重簡化為只有0和1兩種可能,那麼對每一個像素位置而言,它的像素值只來自於第一個預測模式的預測塊或第二個預測模式的預測塊。所以,可以對一個預測模式,計算出其作為某一權重導出模式的第一個預測模式時在範本上的代價,也就是只計算該預測模式在該權重導出模式的情況下作為第一個預測模式時權重為1的部分像素在範本上所產生的代價。一個例子是把該代價記為cost[pred_mode_idx][gpm_idx][0],其中pred_mode_idx代表該預測模式的索引,gpm_idx代表該權重導出模式的索引,0代表作為第一預測模式。
以及該預測模式作為某一權重導出模式的第二個預測模式時在範本上的代價,也就是只計算該預測模式在該權重導出模式的情況下作為第二個預測模式時權重為1的部分像素在範本上所產生的代價。一個例子是把該代價記為cost[pred_mode_idx][gpm_idx][1],其中pred_mode_idx代表該預測模式的索引,gpm_idx代表該權重導出模式的索引,1代表作為第二個預測模式。
那麼在計算一個組合的代價時,可以直接把對應的上述2個代價相加。舉例如下,要求預測模式pred_mode_idx0和pred_mode_idx1在權重導出模式gpm_idx時的代價,其中pred_mode_idx0作為第一個預測模式,pred_mode_idx1作為第二個預測模式。將該代價記為costTemp,則costTemp=cost[pred_mode_idx0][gpm_idx][0]+ cost[pred_mode_idx1][gpm_idx][1]。如果是要求預測模式pred_mode_idx0和pred_mode_idx1在權重導出模式gpm_idx時的代價,其中pred_mode_idx1作為第一個預測模式,pred_mode_idx0作為第二個預測模式。將該代價記為costTemp,則costTemp=cost[pred_mode_idx1][gpm_idx][0]+ cost[pred_mode_idx0][gpm_idx][1]。
這樣做的一個好處是將先加權組合成一個預測塊再計算代價,簡化為直接計算2個部分的代價,再將代價相加得到組合的代價。由於一個預測模式可能與多個其他預測模式組合,而對於同一權重導出模式來說,該預測模式作為第一個預測模式和第二個預測模式的部分的代價是固定的,所以可以保留這些代價,即上述例子中的cost[pred_mode_idx][gpm_idx][0]和cost[pred_mode_idx][gpm_idx][1],重複利用,從而減少計算量。
根據上述方法,可以確定出T個第二組合中各第二組合對應的代價,接著根據T個第二組合中各第二組合對應的代價,構建候選組合列表。
本申請實施例中,S203-A22中根據T個第二組合中各第二組合對應的代價,確定候選組合列表的方式包括但不限於如下幾種示例:
示例1,根據T個第二組合中各第二組合對應的代價,對T個第二組合進行排序;將排序後的T個第二組合,確定為候選組合列表。
在該示例1中生成的候選組合列表包括T個第一候選組合。
可選的,該候選組合列表中T個第一候選組合按照代價的大小,從小到大進行排序,即候選組合列表中T個第一候選組合對應的代價按照排序依次增大。
其中,根據T個第二組合中各第二組合對應的代價,對T個第二組合進行排序可以是,按照代價從小到大順序,對T個第二組合進行排序。
示例2,根據第二組合對應的代價,從T個第二組合中選出C個第二組合,將這C個第二組合組成的列表,確定為候選組合列表。
可選的,上述C個第二組合為T個第二組合中代價最小的前C個第二組合,例如根據T個第二組合中每個第二組合對應的代價,從T個第二組合中選出代價最小的C個第二組合,構成候選組合列表,此時,候選組合列表包括C個候選組合。
可選的,該候選組合列表中C個候選組合按照代價的大小,從小到大進行排序,即候選組合列表中C個候選組合對應的代價按照排序依次增大。
編碼端基於上述步驟,確定出候選組合列表中。
接著,編碼端從候選組合列表中確定出第一組合。
本申請實施例對從候選組合列表中,確定第一組合的方式不做限制。
例如,第一組合為候選組合列表中的任意一個候選組合。
再例如,第一組合為候選組合列表代價最小的候選組合。
在一些實施例中,第一組合在候選組合列表中的索引為第一索引,則編碼端將第一索引寫入碼流中,以使解碼端基於第一索引,確定第一組合。
編碼端從該候選組合列表中選出第一索引對應的第一組合,且將該第一組合包括權重導出模式確定為第一權重導出模式,將該第一組合包括的K個預測模式確定為K個第一預測模式。
基於上述步驟,編碼端確定出第一權重導出模式和K個第一預測模式,接著執行如下S204的步驟。
S204、根據第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。
本申請實施例中,編碼端對當前塊進行編碼時,確定N個候選權重導出模式和至少一個候選預測模式,其中至少一個候選預測模式包括基於對當前塊的範本進行劃分所確定的預測模式。也就是說,本申請實施例在確定候選預測模式時,透過劃分的範本來導出預測模式,實現對預測模式的準確導出,進而提高了至少一個候選預測模式的確定準確性。接著,基於N個候選權重導出模式和準確確定的候選預測模式,確定第一權重導出模式和K個第一預測模式,實現對第一權重導出模式和K個第一預測模式的確定準確性,基於準確確定的第一權重導出模式和K個第一預測模式對當前塊進行預測時,可以提高預測準確性,進而提高編碼性能。
本申請實施例對上述S204中根據第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值的具體過程不做限制。
情況1,在確定預測值權重時,不考慮權重梯度參數(也稱為過渡參數)時,則基於第一權重導出模式確定出當前塊的預測值權重,根據K個第一預測模式對當前塊進行預測,得到當前塊的K個預測值,使用當前塊的預測值權重對當前塊的K個預測值進行加權,得到當前塊的預測值。其中,根據第一權重導出模式,導出當前塊的預測值權重的過程,可以參照上述實施例中導出當前塊的預測值權重的過程,在此不再贅述。
情況2,在確定預測值權重時,考慮權重梯度參數,此時,上述S204包括如下步驟:
S204-A1、確定權重梯度參數;
S204-A2、根據權重梯度參數、第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。
在一些實施例中,上述S204-A2包括如下步驟:
S204-A21、根據權重梯度參數和第一權重導出模式,確定預測值的權重;
S204-A22、根據K個第一預測模式,對當前塊進行預測,得到K個預測值;
S204-A23、根據預測值的權重對K個預測值進行加權,得到當前塊的預測值。
上述S204-A22和S204-A21在執行順序上沒有先後順序,即S204-A22可以在S204-A21之前執行,或者在S204-A21之後執行,或者與S204-A21並存執行。
在該情況2中,編碼端確定權重梯度參數,並根據該權重梯度參數和第一權重導出模式,確定預測值的權重。接著,根據K個第一預測模式對當前塊進行預測,得到當前塊的K個預測值。然後,使用預測值的權重,對當前塊的K個預測值進行加權處理,得到當前塊的預測值。
在一些實施例中,編碼端確定出權重梯度參數後,將該權重梯度參數對應的第二索引,寫入碼流中,以使解碼端透過解碼碼流,得到第二索引,進而根據該第二索引,確定出權重梯度參數。
在一些實施例中,上述第二索引也稱為權重梯度索引。
在一些實施例中,不同權重梯度參數對範本的預測結果影響較小,而如果使用簡化的方法,即範本上的權重只有0和1,此時,權重梯度參數無法對範本的預測產生影響,即無法對候選組合列表產生影響,此時可以將過渡梯度索引放到組合外。
本申請實施例中,對根據第二索引,確定權重梯度參數的具體方式不做限制。
在一些實施例中,編碼端確定候選過渡參數列表,該候選過渡參數列表中包括多個候選過渡參數,將候選過渡參數列表中,第二索引對應的候選過渡參數,確定為權重梯度參數。
本申請實施例對確定候選過渡參數列表的方式不做限制。
在一種示例中,上述候選過渡參數列表中的候選過渡參數為預設的。
在另一種示例,編碼端根據當前塊的特徵資訊,從預設的多個過渡參數中,選擇至少一個過渡參數組成候選過渡參數列表。例如,根據當前塊的圖像資訊,從預設的多個過渡參數中,選擇符合當前塊的圖像資訊的過渡參數,組成候選過渡參數列表。
舉例說明,假設圖像資訊包括圖像邊緣的清晰度,則若當前塊的圖像邊緣的清晰度小於預設值,則選擇預設的多個權重梯度參數中的至少一個第一類權重梯度參數,例如1/4、1/2等,組成候選權重梯度參數列表;若當前塊的圖像邊緣的清晰度大於或等於預設值,則選擇預設的多個權重梯度參數中的至少一個第二類權重梯度參數,例如2、4等,組成候選權重梯度參數列表。
在一些實施例中,透過如下S204-A11和S204-A12的步驟,確定權重梯度參數。
S204-A11、確定多個備選權重梯度參數,G為正整數;
S204-A12、從多個備選權重梯度參數中,確定權重梯度參數。
在該實施例中,編碼端首先確定多個備選權重梯度參數,進而從這多個備選權重梯度參數中,確定出一個備選權重梯度參數作為權重梯度參數。
本申請實施例對編碼端確定多個備選權重梯度參數的具體方式不做限制。
在一種可能的實現方式中,上述多個備選權重梯度參數為預設的,也就是說,解碼端和編碼端約定將預設的幾個權重梯度參數,確定為G個備選權重梯度參數。
在另一種可能的實現方式中,上述多個備選權重梯度參數可以是編碼端指示的,例如編碼端指示將預設的多個權重梯度參數中的多個權重梯度參數,作為多個備選權重梯度參數。
在另一種可能的實現方式中,可以根據當前塊的大小,確定多個備選權重梯度參數。
在另一種可能的實現方式中,確定當前塊的圖像資訊;根據當前塊的圖像資訊,從預設的多個備選權重梯度參數中,確定多個備選權重梯度參數。
編碼端確定多個備選權重梯度參數後,從這多個備選權重梯度參數中,確定權重梯度參數。
本申請實施例對從這多個備選權重梯度參數中,確定權重梯度參數的具體方式不做限制。
在一些實施例中,將多個備選權重梯度參數中的任一備選權重梯度參數,確定為權重梯度參數。
在一些實施例中,確定多個備選權重梯度參數中的每一個備選權重梯度參數對應的代價;根據代價,從多個備選權重梯度參數中,確定權重梯度參數。例如,將代價最小的權重梯度參數確定為當前塊對應的梯度參數。
在一些實施例中,根據當前塊的大小,確定權重梯度參數。
由上述可知,權重梯度參數與塊的大小之間有一定的關聯性,因此,本申請實施例還可以根據當前塊的大小,確定權重梯度參數。
在一種可能的實現方式中,根據當前塊的大小,將某一固定的權重梯度參數,確定為權重梯度參數。
例如,若當前塊的大小小於第一設定閾值時,則確定權重梯度參數為第一值。
再例如,若當前塊的大小大於或等於第一設定閾值時,則確定權重梯度參數為第二值,其中第二值小於所述第一值。
本申請實施例對上述第一值、第二值和第一設定閾值的具體取值不做限制。
示例性的,第一值為1,第二值為1/2。
示例性的,若當前塊的大小用當前塊的像素點數(或採樣點數)來表示時,則第一設定閾值可以為256等。
在另一種可能的實現方式中,根據當前塊的大小,確定權重梯度參數所在的取值範圍,進而將權重梯度參數確定為該取值範圍內的值。
例如,若當前塊的大小小於第一設定閾值時,則確定權重梯度參數位於權重梯度參數取值範圍內。比如,權重梯度參數為權重梯度參數取值範圍內的最小權重梯度參數、或最大權重梯度參數、或中間權重梯度參數等任意一個權重梯度參數。再比如,權重梯度參數為權重梯度參數取值範圍內代價最小的權重梯度參數。其中,確定權重梯度參數代價的方法,可以參照本申請其他實施例的描述,在此不再贅述。
再例如,若當前塊的大小大於或等於第一設定閾值時,則確定權重梯度參數位於該第二權重梯度參數取值範圍內。比如,權重梯度參數為第二權重梯度參數取值範圍內的最小權重梯度參數、或最大權重梯度參數、或中間權重梯度參數等任意一個權重梯度參數。再比如,權重梯度參數為第二權重梯度參數取值範圍內代價最小的權重梯度參數。其中,第二權重梯度參數取值範圍的最小值小於權重梯度參數取值範圍的最小值,且權重梯度參數取值範圍與第二權重梯度參數取值範圍可以相交,也可以不相交,本申請實施例對此不做限制。
在該情況2中,根據上述步驟,確定出權重梯度參數後,執行上述S204-A21的步驟,根據權重梯度參數和第一權重導出模式,確定預測值的權重。
接著,根據K個第一預測模式,對當前塊進行預測,得到K個預測值;根據預測值的權重對K個預測值進行加權,得到當前塊的預測值。
上述實施例可以理解為範本權重和預測值的權重是兩個相互獨立的過程,互不干涉。透過上述方法,可以單獨確定出預測值的權重。
在一些實施例中,若在上述確定範本權重時,透過將範本區域和當前塊構成的合併區域,透過確定合併區域的權重來確定範本的權重時,由於合併區域包括當前塊,因此,將合併區域的權重中當前塊對應的權重,確定為預測值的權重。需要說明的是,在確定合併區域的權重時,也考慮到權重梯度參數對權重的影響,具體參照上述實施例的描述,在此不再贅述。
在一些實施例中,上述預測過程是以像素點為單位進行的,對應的上述預測值的權重也為像素點對應的權重。此時,對當前塊進行預測時,使用K個第一預測模式中的每個預測模式對當前塊中的某一個像素點A進行預測,得到K個第一預測模式關於像素點A的K個預測值,根據第一權重導出模式和權重梯度參數確定像素點A的預測值的權重。接著,使用像素點A的預測值的權重對這K個預測值進行加權,得到像素點A的預測值。對當前塊中的每一個像素點執行上述步驟,可以得到當前塊中每個像素點的預測值,當前塊中每個像素點的預測值構成當前塊的預測值。以K=2為例,使用第一個預測模式對當前塊中的某一個像素點A進行預測,得到該像素點A的第一預測值,使用第二個預測模式對該像素點A進行預測,得到該像素點A的第二預測值,根據像素點A對應的預測值權重,對第一預測值和第二預測值進行加權,得到像素點A的預測值。
在一種示例中,以K=2為例,若第一個預測模式和第二個預測模式均為幀內預測模式時,採用第一幀內預測模式進行預測,得到第一預測值,採用第二幀內預測模式進行預測,得到第二預測值,根據預測值的權重對第一預測值和第二預測值進行加權,得到當前塊的預測值。例如,採用第一幀內預測模式對像素點A進行預測,得到像素點A的第一預測值,採用第二幀內預測模式對像素點A進行預測,得到像素點A的第二預測值,根據像素點A對應的預測值的權重,對第一預測值和第二預測值進行加權,得到像素點A的預測值。
在一些實施例中,若K大於2時,則可以根據第一權重導出模式確定K個第一預測模式中兩個預測模式對應的預測值的權重,K個第一預測模式中的其他預測模式對應的預測值的權重可以為預設值。例如,K=3,第一個預測模式和第二個預測模式對應的預測值的第一權重根據權重導出模式導出,第三個預測模式對應的預測值的權重為預設值。在一些實施例中,若K個第一預測模式對應的總預測值的權重一定,例如為8,則可以根據預設權重比例,來確定K個第一預測模式各自對應的預測值的權重,假設第三個預測模式對應的預測值的權重占整個中預測值的權重的1/4,則可以確定第三個預測模式的預測值的權重為2,總預測值權重中的剩下3/4分配給第一個預測模式和第二個預測模式。示例性的,如果根據第一權重導出模式導出第一個預測模式對應的預測值的權重3,則確定第一個預測模式對應的預測值的權重為(3/4)*3,第二個預測模式對應的預測值的權重為第一個預測模式的預測值的權重為(3/4)*5。
根據上述方法,確定出當前塊的預測值,根據當前塊和當前塊的預測值,得到當前塊的殘差值,對當前塊的殘差值進行變換,得到變換係數,對變換係數進行量化,得到量化係數,對量化係數進行編碼,得到碼流。
本申請實施例提供的視訊解碼方法,編碼端對當前塊進行解碼時,確定N個候選權重導出模式,進而基於N個候選權重導出模式和當前塊的屬性資訊,確定至少一個候選預測模式,進而基於N個候選權重導出模式和至少一個候選預測模式確定當前塊對應的第一權重導出模式和K個第一預測模式,接著使用該第一權重導出模式和K個第一預測模式對當前塊進行預測,得到當前塊的預測值。也就是說,在本申請實施例中,編碼端在確定至少一個候選預測模式時,考慮了權重導出模式和當前塊的屬性資訊,進而提高了候選預測模式列表的確定準確性,基於該準確確定的候選預測模式列表對當前塊進行預測時,可以提升當前塊的預測準確性,提高編碼性能。
應理解,圖19至圖23僅為本申請的示例,不應理解為對本申請的限制。
以上結合附圖詳細描述了本申請的優選實施方式,但是,本申請並不限於上述實施方式中的具體細節,在本申請的技術構思範圍內,可以對本申請的技術方案進行多種簡單變型,這些簡單變型均屬於本申請的保護範圍。例如,在上述具體實施方式中所描述的各個具體技術特徵,在不矛盾的情況下,可以透過任何合適的方式進行組合,為了避免不必要的重複,本申請對各種可能的組合方式不再另行說明。又例如,本申請的各種不同的實施方式之間也可以進行任意組合,只要其不違背本申請的思想,其同樣應當視為本申請所公開的內容。
還應理解,在本申請的各種方法實施例中,上述各過程的序號的大小並不意味著執行順序的先後,各過程的執行順序應以其功能和內在邏輯確定,而不應對本申請實施例的實施過程構成任何限定。另外,本申請實施例中,術語“和/或”,僅僅是一種描述關聯物件的關聯關係,表示可以存在三種關係。具體地,A和/或B可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本申請中字元“/”,一般表示前後關聯物件是一種“或”的關係。
上文結合圖19至圖23,詳細描述了本申請的方法實施例,下文結合圖24至圖27,詳細描述本申請的裝置實施例。
圖24是本申請一實施例提供的視訊解碼裝置的示意性框圖,該視訊解碼裝置10應用於上述視訊解碼器。
如圖25所示,視訊解碼裝置10包括:
權重導出模式確定單元11,用於確定N個候選權重導出模式,所述N為正整數;
預測列表確定單元12,用於基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式;
處理單元13,用於基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,所述K為大於1的正整數;
預測單元14,用於基於所述第一權重導出模式和K個第一預測模式對當前塊進行預測,得到所述當前塊的預測值。
在一些實施例中,預測列表確定單元12,用於對於所述N個候選權重導出模式中的第i個候選權重導出模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的候選預測模式列表,所述i為小於或等於N的正整數。
在一些實施例中,預測列表確定單元12,用於基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表。
在一些實施例中,若所述至少一個預測模式對應一個候選預測模式列表時,則預測列表確定單元12,用於對於所述至少一個預測模式中的第j個預測模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,所述j為正整數;基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元12,用於將所述第j個預測模式的候選預測模式列表,確定為所述至少一個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元12,用於若所述第j個預測模式的候選預測模式列表中包括預設預測模式時,則將所述第j個預測模式的候選預測模式列表,確定為所述至少一個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元12,用於若所述第j個預測模式的候選預測模式列表中不包括預設預測模式時,則將所述預設預測模式添加至所述第j個預測模式的候選預測模式列表中,得到所述至少一個預測模式的候選預測模式列表。
在一些實施例中,若所述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表時,則在一些實施例中,預測列表確定單元12,用於對於所述至少一個預測模式中的第j個預測模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,所述j為正整數。
在一些實施例中,預測列表確定單元12,用於確定第一查閱資料表,所述第一查閱資料表包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊;基於所述當前塊的屬性資訊和所述第i個候選權重導出模式,在所述第一查閱資料表中,確定出所述第j個預測模式對應的相鄰塊;基於所述第j個預測模式對應的相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元12,用於基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述當前塊的相鄰塊關於所述第j個預測模式的權重;基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元12,用於基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述相鄰塊中第一點的權重;將所述第一點的權重,確定為所述相鄰塊關於所述第j個預測模式的權重。
在一些實施例中,預測列表確定單元12,用於基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述第一點的權重。
在一些實施例中,預測列表確定單元12,用於基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述範本的權重;將所述範本的權重中所述第一點對應的權重,確定為所述第一點的權重。
在一些實施例中,預測列表確定單元12,用於確定所述當前塊中所述第一點對應的第二點;基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述第二點的權重;基於所述第二點的權重,確定所述第一點的權重。
在一些實施例中,所述第二點為所述當前塊中與所述第一點相鄰的一個點。
在一些實施例中,所述第一點為所述相鄰塊中的任意一個點。
在一些實施例中,所述第一點為所述相鄰塊中與所述當前塊相鄰的一個點。
在一些實施例中,預測列表確定單元12,用於若所述相鄰塊關於所述第j個預測模式的權重大於或等於預設閾值,則獲取所述相鄰塊的預測模式;基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
可選的,若所述權重的取值範圍為0到n時,則所述預設閾值為n/2,所述n為正數。
在一些實施例中,若所述權重的取值為第一值或第二值時,則預測列表確定單元12,用於若所述相鄰塊關於所述第j個預測模式的權重等於所述第一值,則獲取所述相鄰塊的預測模式,所述第一值大於所述第二值;基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元12,用於按照預設的檢查順序,依次獲取所述當前塊的各相鄰塊中,關於所述第j個預測模式的權重大於或等於所述預設閾值或或等於第一值的相鄰塊的預測模式。
在一些實施例中,預測列表確定單元12,用於按照所述檢查順序,將獲取的所述相鄰塊的預測模式依次添加至所述第j個預測模式的候選預測模式列表中。
在一些實施例中,若所述當前塊的相鄰塊包括左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊,則所述預設的檢查順序為左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊。
在一些實施例中,預測列表確定單元12,用於若所述第j個預測模式的候選預測模式列表中不包括所述相鄰塊的預測模式時,則將所述相鄰塊的預測模式,添加至所述第j個預測模式的候選預測模式列表中。
在一些實施例中,預測列表確定單元12,還用於若所述相鄰塊關於所述第j個預測模式的權重小於所述預設閾值,則跳過獲取所述相鄰塊的預測模式。
在一些實施例中,若所述當前塊包括M個相鄰塊時,則預測列表確定單元12,用於基於所述M個相鄰塊分別關於所述第j個預測模式的權重,以及所述M個相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,所述M為正整數。
在一些實施例中,預測列表確定單元12,用於基於所述M個相鄰塊分別關於所述第j個預測模式的權重大小,將所述M個相鄰塊的預測模式添加至所述候選預測模式列表中,直到所述候選預測模式列表的長度達到預設長度為止。
在一些實施例中,所述M個相鄰塊包括左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊中的至少一個。
在一些實施例中,預測列表確定單元12,在基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表之前,確定所述第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式;若確定所述第j個預測模式的候選預測模式列表中包括所述相鄰塊的預測模式時,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元12,用於解碼碼流,得到第一資訊,所述第一資訊用於指示所述候選預測模式列表中是否包括相鄰塊的預測模式;基於所述第一資訊,確定所述第j個預測模式的候選預測模式列表中是否包括所述相鄰塊的預測模式。
在一些實施例中,預測列表確定單元12,用於按照預設順序,將所述預設順序中位於所述相鄰塊的預測模式之前的各預測模式添加至所述候選預測模式列表後,所述候選預測模式列表的長度未達到預設長度時,則確定所述第j個預測模式的候選預測模式列表中包括所述相鄰塊的預測模式。
在一些實施例中,所述預設順序包括:預測角度與所述第i個候選權重導出模式的劃分線平行的預測模式、基於所述當前塊的範本導出的候選預測模式、基於所述當前塊的周圍重建像素導出的候選預測模式、所述相鄰塊的預測模式、預測角度與所述第i個候選權重導出模式的劃分線垂直的預測模式和預設模式。
可選的,所述預設模式包括PLANAR模式。
在一些實施例中,處理單元13,具體用於解碼碼流,得到第一索引,所述第一索引所述第一索引用於指示第一組合,所述第一組合包括所述第一權重導出模式和所述K個第一預測模式;基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定候選組合列表,所述候選組合列表包括至少一個候選組合,所述候選組合包括一個權重導出模式和K個預測模式;基於所述第一索引,從所述候選組合列表中確定出所述第一組合。
在一些實施例中,處理單元13,具體用於基於所述N個候選權重導出模式和所述至少一個候選預測模式,得到T個第二組合,所述T個第二組合中的任一第二組合包括一權重導出模式和K個預測模式,且所述T個第二組合中任意兩個組合所包括的權重導出模式和K個預測模式不完全相同,所述T為大於1的正整數;基於所述T個第二組合,得到所述候選組合列表。
在一些實施例中,處理單元13,具體用於對於所述T個第二組合中的任一第二組合,確定使用所述第二組合中的權重導出模式和K個預測模式,對所述當前塊的範本進行預測時,所述第二組合對應的代價;根據所述T個第二組合中各第二組合對應的代價,確定所述候選組合列表。
在一些實施例中,所述當前塊的上側範本的高度為1,和/或,所述當前塊的左側範本的寬度為1。
在一些實施例中,所述當前塊的屬性資訊包括所述當前塊的尺寸資訊。
應理解,裝置實施例與方法實施例可以相互對應,類似的描述可以參照方法實施例。為避免重複,此處不再贅述。具體地,圖24所示的裝置10可以執行本申請實施例的解碼端的解碼方法,並且裝置10中的各個單元的前述和其它操作和/或功能分別為了實現上述解碼端的解碼方法等各個方法中的相應流程,為了簡潔,在此不再贅述。
圖25是本申請一實施例提供的視訊編碼裝置的示意性框圖,該視訊編碼裝置應用於上述編碼器。
如圖25所示,該視訊編碼裝置20可以包括:
權重導出模式確定單元21,用於確定N個候選權重導出模式,所述N為正整數;
預測列表確定單元22,用於基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式;
處理單元23,用於基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,所述K為大於1的正整數;
預測單元24,用於基於所述第一權重導出模式和K個第一預測模式對當前塊進行預測,得到所述當前塊的預測值。
在一些實施例中,預測列表確定單元22,具體用於對於所述N個候選權重導出模式中的第i個候選權重導出模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的候選預測模式列表,所述i為小於或等於N的正整數。
在一些實施例中,預測列表確定單元22,用於基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表。
在一些實施例中,若所述至少一個預測模式對應一個候選預測模式列表時,則預測列表確定單元22,用於對於所述至少一個預測模式中的第j個預測模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,所述j為正整數;基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元22,用於將所述第j個預測模式的候選預測模式列表,確定為所述至少一個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元22,用於若所述第j個預測模式的候選預測模式列表中包括預設預測模式時,則將所述第j個預測模式的候選預測模式列表,確定為所述至少一個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元22,用於若所述第j個預測模式的候選預測模式列表中不包括預設預測模式時,則將所述預設預測模式添加至所述第j個預測模式的候選預測模式列表中,得到所述至少一個預測模式的候選預測模式列表。
在一些實施例中,若所述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表時,則預測列表確定單元22,用於對於所述至少一個預測模式中的第j個預測模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,所述j為正整數。
在一些實施例中,預測列表確定單元22,用於確定第一查閱資料表,所述第一查閱資料表包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊;基於所述當前塊的屬性資訊和所述第i個候選權重導出模式,在所述第一查閱資料表中,確定出所述第j個預測模式對應的相鄰塊;基於所述第j個預測模式對應的相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元22,用於基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述當前塊的相鄰塊關於所述第j個預測模式的權重;基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元22,用於基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述相鄰塊中第一點的權重;將所述第一點的權重,確定為所述相鄰塊關於所述第j個預測模式的權重。
在一些實施例中,預測列表確定單元22,用於基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述第一點的權重。
在一些實施例中,預測列表確定單元22,用於基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述範本的權重;將所述範本的權重中所述第一點對應的權重,確定為所述第一點的權重。
在一些實施例中,預測列表確定單元22,用於確定所述當前塊中所述第一點對應的第二點;基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述第二點的權重;基於所述第二點的權重,確定所述第一點的權重。
在一些實施例中,所述第二點為所述當前塊中與所述第一點相鄰的一個點。
在一些實施例中,所述第一點為所述相鄰塊中的任意一個點。
在一些實施例中,所述第一點為所述相鄰塊中與所述當前塊相鄰的一個點。
在一些實施例中,預測列表確定單元22,用於若所述相鄰塊關於所述第j個預測模式的權重大於或等於預設閾值,則獲取所述相鄰塊的預測模式;基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
可選的,若所述權重的取值範圍為0到n時,則所述預設閾值為n/2,所述n為正數。
在一些實施例中,若所述權重的取值為第一值或第二值時,則預測列表確定單元12,用於若所述相鄰塊關於所述第j個預測模式的權重等於所述第一值,則獲取所述相鄰塊的預測模式,所述第一值大於所述第二值;基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元12,用於按照預設的檢查順序,依次獲取所述當前塊的各相鄰塊中,關於所述第j個預測模式的權重大於或等於所述預設閾值或或等於第一值的相鄰塊的預測模式。
在一些實施例中,預測列表確定單元12,用於按照所述檢查順序,將獲取的所述相鄰塊的預測模式依次添加至所述第j個預測模式的候選預測模式列表中。
在一些實施例中,若所述當前塊的相鄰塊包括左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊,則所述預設的檢查順序為左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊。
在一些實施例中,預測列表確定單元22,具體用於若所述第j個預測模式的候選預測模式列表中不包括所述相鄰塊的預測模式時,則將所述相鄰塊的預測模式,添加至所述第j個預測模式的候選預測模式列表中。
在一些實施例中,預測列表確定單元22,還用於若所述相鄰塊關於所述第j個預測模式的權重小於所述預設閾值,則跳過獲取所述相鄰塊的預測模式。
在一些實施例中,若所述當前塊包括M個相鄰塊時,則預測列表確定單元22,具體用於基於所述M個相鄰塊分別關於所述第j個預測模式的權重,以及所述M個相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,所述M為正整數。
在一些實施例中,預測列表確定單元22,具體用於基於所述M個相鄰塊分別關於所述第j個預測模式的權重,將所述M個相鄰塊的預測模式添加至所述候選預測模式列表中,直到所述候選預測模式列表的長度達到預設長度為止。
在一些實施例中,所述M個相鄰塊包括左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊中的至少一個。
在一些實施例中,預測列表確定單元22,在基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表之前,確定所述第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式;若確定所述第j個預測模式的候選預測模式列表中包括所述相鄰塊的預測模式時,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表。
在一些實施例中,預測列表確定單元22,具體用於按照預設順序,將所述預設順序中位於所述相鄰塊的預測模式之前的各預測模式添加至所述候選預測模式列表後,所述候選預測模式列表的長度未達到預設長度時,則確定所述第j個預測模式的候選預測模式列表中包括所述相鄰塊的預測模式。
在一些實施例中,所述預設順序包括:預測角度與所述第i個候選權重導出模式的劃分線平行的預測模式、基於所述當前塊的範本導出的候選預測模式、基於所述當前塊的周圍重建像素導出的候選預測模式、所述相鄰塊的預測模式、預測角度與所述第i個候選權重導出模式的劃分線垂直的預測模式和預設模式。
可選的,所述預設模式包括PLANAR模式。
在一些實施例中,預測列表確定單元22,還用於在碼流中寫入第一資訊,所述第一資訊用於指示所述候選預測模式列表中是否包括相鄰塊的預測模式。
在一些實施例中,處理單元23,具體用於基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定候選組合列表,所述候選組合列表包括至少一個候選組合,所述候選組合包括一個權重導出模式和K個預測模式;從所述候選組合列表中確定出第一組合,所述第一組合包括所述第一權重導出模式和所述K個第一預測模式。
在一些實施例中,處理單元23,具體用於基於所述N個候選權重導出模式和所述至少一個候選預測模式,得到T個第二組合,所述T個第二組合中的任一第二組合包括一權重導出模式和K個預測模式,且所述T個第二組合中任意兩個組合所包括的權重導出模式和K個預測模式不完全相同,所述T為大於1的正整數;基於所述T個第二組合,得到所述候選組合列表。
在一些實施例中,處理單元23,具體用於對於所述T個第二組合中的任一第二組合,確定使用所述第二組合中的權重導出模式和K個預測模式,對所述當前塊的範本進行預測時,所述第二組合對應的代價;根據所述T個第二組合中各第二組合對應的代價,確定所述候選組合列表。
在一些實施例中,處理單元23,還用於將第一索引寫入碼流,所述第一索引所述第一索引用於指示第一組合。
在一些實施例中,所述當前塊的上側範本的高度為1,和/或,所述當前塊的左側範本的寬度為1。
在一些實施例中,所述當前塊的屬性資訊包括所述當前塊的尺寸資訊。
應理解,裝置實施例與方法實施例可以相互對應,類似的描述可以參照方法實施例。為避免重複,此處不再贅述。具體地,圖25所示的裝置20可以對應於執行本申請實施例的編碼端的編碼方法中的相應主體,並且裝置20中的各個單元的前述和其它操作和/或功能分別為了實現編碼端的編碼方法等各個方法中的相應流程,為了簡潔,在此不再贅述。
上文中結合附圖從功能單元的角度描述了本申請實施例的裝置和系統。應理解,該功能單元可以透過硬體形式實現,也可以透過軟體形式的指令實現,還可以透過硬體和軟體單元組合實現。具體地,本申請實施例中的方法實施例的各步驟可以透過處理器中的硬體的集成邏輯電路和/或軟體形式的指令完成,結合本申請實施例公開的方法的步驟可以直接體現為硬體解碼處理器執行完成,或者用解碼處理器中的硬體及軟體單元組合執行完成。可選地,軟體單元可以位於隨機記憶體,快閃記憶體、唯讀記憶體、可程式設計唯讀記憶體、電可讀寫可程式設計記憶體、寄存器等本領域的成熟的儲存媒介中。該儲存媒介位於記憶體,處理器讀取記憶體中的資訊,結合其硬體完成上述方法實施例中的步驟。
圖26是本申請實施例提供的電子設備的示意性框圖。
如圖26所示,該電子設備30可以為本申請實施例所述的視訊編碼器,或者視訊解碼器,該電子設備30可包括:
記憶體31和處理器32,該記憶體31用於儲存電腦程式34,並將該程式碼34傳輸給該處理器32。換言之,該處理器32可以從記憶體31中調用並運行電腦程式34,以實現本申請實施例中的方法。
例如,該處理器32可用於根據該電腦程式34中的指令執行上述方法200中的步驟。
在本申請的一些實施例中,該處理器32可以包括但不限於:
通用處理器、數位訊號處理器(Digital Signal Processor,DSP)、專用積體電路(Application Specific Integrated Circuit,ASIC)、現場可程式設計閘陣列(Field Programmable Gate Array,FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件等等。
在本申請的一些實施例中,該記憶體31包括但不限於:
易失性記憶體和/或非易失性記憶體。其中,非易失性記憶體可以是唯讀記憶體(Read-Only Memory,ROM)、可程式設計唯讀記憶體(Programmable ROM,PROM)、可擦除可程式設計唯讀記憶體(Erasable PROM,EPROM)、電可擦除可程式設計唯讀記憶體(Electrically EPROM,EEPROM)或快閃記憶體。易失性記憶體可以是隨機存取記憶體(Random Access Memory,RAM),其用作外部快取記憶體。透過示例性但不是限制性說明,許多形式的RAM可用,例如靜態隨機存取記憶體(Static RAM,SRAM)、動態隨機存取記憶體(Dynamic RAM,DRAM)、同步動態隨機存取記憶體(Synchronous DRAM,SDRAM)、雙倍數據速率同步動態隨機存取記憶體(Double Data Rate SDRAM,DDR SDRAM)、增強型同步動態隨機存取記憶體(Enhanced SDRAM,ESDRAM)、同步連接動態隨機存取記憶體(synch link DRAM,SLDRAM)和直接記憶體匯流排隨機存取記憶體(Direct Rambus RAM,DR RAM)。
在本申請的一些實施例中,該電腦程式34可以被分割成一個或多個單元,該一個或者多個單元被儲存在該記憶體31中,並由該處理器32執行,以完成本申請提供的方法。該一個或多個單元可以是能夠完成特定功能的一系列電腦程式指令段,該指令段用於描述該電腦程式34在該電子設備30中的執行過程。
如圖26所示,該電子設備30還可包括:
收發器33,該收發器33可連接至該處理器32或記憶體31。
其中,處理器32可以控制該收發器33與其他設備進行通訊,具體地,可以向其他設備發送資訊或資料,或接收其他設備發送的資訊或資料。收發器33可以包括發射機和接收機。收發器33還可以進一步包括天線,天線的數量可以為一個或多個。
應當理解,該電子設備30中的各個元件透過匯流排系統相連,其中,匯流排系統除包括資料匯流排之外,還包括電源匯流排、控制匯流排和狀態訊號匯流排。
圖27是本申請實施例提供的視訊編解碼系統的示意性框圖。
如圖27所示,該視訊編解碼系統40可包括:視訊編碼器41和視訊解碼器42,其中視訊編碼器41用於執行本申請實施例涉及的視訊編碼方法,視訊解碼器42用於執行本申請實施例涉及的視訊解碼方法。
本申請還提供了一種電腦儲存媒介,其上儲存有電腦程式,該電腦程式被電腦執行時使得該電腦能夠執行上述方法實施例的方法。或者說,本申請實施例還提供一種包含指令的電腦程式產品,該指令被電腦執行時使得電腦執行上述方法實施例的方法。
本申請還提供了一種碼流,該碼流是根據上述編碼方法生成的。
當使用軟體實現時,可以全部或部分地以電腦程式產品的形式實現。該電腦程式產品包括一個或多個電腦指令。在電腦上載入和執行該電腦程式指令時,全部或部分地產生按照本申請實施例該的流程或功能。該電腦可以是通用電腦、專用電腦、電腦網路、或者其他可程式設計裝置。該電腦指令可以儲存在電腦可讀儲存媒介中,或者從一個電腦可讀儲存媒介向另一個電腦可讀儲存媒介傳輸,例如,該電腦指令可以從一個網站網站、電腦、伺服器或資料中心透過有線(例如同軸電纜、光纖、數位用戶線路(digital subscriber line,DSL))或無線(例如紅外、無線、微波等)方式向另一個網站網站、電腦、伺服器或資料中心進行傳輸。該電腦可讀儲存媒介可以是電腦能夠存取的任何可用媒介或者是包含一個或多個可用媒介集成的伺服器、資料中心等資料存放裝置。該可用媒介可以是磁性媒介(例如,軟碟、硬碟、磁帶)、光媒介(例如數位視訊光碟(digital video disc,DVD))、或者半導體媒介(例如固態硬碟(solid state disk,SSD))等。
本領域普通技術人員可以意識到,結合本申請中所公開的實施例描述的各示例的單元及演算法步驟,能夠以電子硬體、或者電腦軟體和電子硬體的結合來實現。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本申請的範圍。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以透過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,該單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或元件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是透過一些介面,裝置或單元的間接耦合或通訊連接,可以是電性,機械或其它的形式。
作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。例如,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
以上內容,僅為本申請的具體實施方式,但本申請的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本申請揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本申請的保護範圍之內。因此,本申請的保護範圍應以申請專利範圍的保護範圍為准。
10:視訊解碼裝置
11:權重導出模式確定單元
12:預測列表確定單元
13:處理單元
14:預測單元
20:視訊編碼裝置
21:權重導出模式確定單元
22:預測列表確定單元
23:處理單元
24:預測單元
30:電子設備
31:記憶體
32:處理器
33:收發器
34:電腦程式
40:視訊編解碼系統
41:視訊編碼器
42:視訊解碼器
100:視訊編解碼系統
110:編碼設備
111:視訊源
112:視訊編碼器
113:輸出介面
120:解碼設備
121:輸入介面
122:視訊解碼器
123:顯示裝置
130:通道
200:視訊編碼器
210:預測單元
211:幀間預測單元
212:幀內預測單元
220:殘差單元
230:變換/量化單元
240:反變換/量化單元
250:重建單元
260:環路濾波單元
270:解碼圖像緩存
280:熵編碼單元
300:視訊解碼器
310:熵解碼單元
320:預測單元
321:幀間預測單元
322:幀內預測單元
330:反量化/變換單元
340:重建單元
350:環路濾波單元
360:解碼圖像緩存
S101~S104:步驟
S201~S204:步驟
圖1為本申請實施例涉及的一種視訊編解碼系統的示意性框圖;
圖2是本申請實施例涉及的視訊編碼器的示意性框圖;
圖3是本申請實施例涉及的視訊解碼器的示意性框圖;
圖4為權重分配示意圖;
圖5為權重分配示意圖;
圖6A為幀間預測的示意圖;
圖6B為加權幀間預測的示意圖;
圖7A為幀內預測的示意圖;
圖7B為幀內預測的示意圖;
圖8A-8I為幀內預測的示意圖;
圖9為幀內預測模式的示意圖;
圖10為幀內預測模式的示意圖;
圖11為幀內預測模式的示意圖;
圖12為MIP的示意圖;
圖13為TIMD預測示意圖;
圖14A為DIMD對應的柱狀圖;
圖14B為DIMD預測示意圖;
圖15為一種組合預測示意圖;
圖16為一種範本示意圖;
圖17A為一種幀間加幀內預測示意圖;
圖17B為另一種幀間加幀內預測示意圖;
圖18為相鄰塊示意圖;
圖19為本申請一實施例提供的視訊解碼方法流程示意圖;
圖20A為權重分配示意圖;
圖20B為權重分配示意圖;
圖21A為一種範本示意圖;
圖21B為一種範本權重的導出示意圖;
圖22A為一種過渡區域示意圖;
圖22B為另一種過渡區域示意圖;
圖23為本申請實一施例提供的視訊編碼方法流程示意圖;
圖24是本申請一實施例提供的視訊解碼裝置的示意性框圖;
圖25是本申請一實施例提供的視訊編碼裝置的示意性框圖;
圖26是本申請實施例提供的電子設備的示意性框圖;
圖27是本申請實施例提供的視訊編解碼系統的示意性框圖。
S101~S104:步驟
Claims (82)
- 一種視訊解碼方法,其中,包括: 確定N個候選權重導出模式,所述N為正整數; 基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式; 基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,所述K為大於1的正整數; 基於所述第一權重導出模式和K個第一預測模式對當前塊進行預測,得到所述當前塊的預測值。
- 根據請求項1所述的方法,其中,所述基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式,包括: 對於所述N個候選權重導出模式中的第i個候選權重導出模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的候選預測模式列表,所述i為小於或等於N的正整數。
- 根據請求項2所述的方法,其中,所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的候選預測模式列表,包括: 基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表。
- 根據請求項3所述的方法,其中,若所述至少一個預測模式對應一個候選預測模式列表時,則所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表,包括: 對於所述至少一個預測模式中的第j個預測模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,所述j為正整數; 基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表。
- 根據請求項4所述的方法,其中,所述基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表,包括: 將所述第j個預測模式的候選預測模式列表,確定為所述至少一個預測模式的候選預測模式列表。
- 根據請求項4所述的方法,其中,所述基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表,包括: 若所述第j個預測模式的候選預測模式列表中包括預設預測模式時,則將所述第j個預測模式的候選預測模式列表,確定為所述至少一個預測模式的候選預測模式列表。
- 根據請求項4所述的方法,其中,所述基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表,包括: 若所述第j個預測模式的候選預測模式列表中不包括預設預測模式時,則將所述預設預測模式添加至所述第j個預測模式的候選預測模式列表中,得到所述至少一個預測模式的候選預測模式列表。
- 根據請求項3所述的方法,其中,若所述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表時,則所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表,包括: 對於所述至少一個預測模式中的第j個預測模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,所述j為正整數。
- 根據請求項4或8所述的方法,其中,所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,包括: 確定第一查閱資料表,所述第一查閱資料表包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊; 基於所述當前塊的屬性資訊和所述第i個候選權重導出模式,在所述第一查閱資料表中,確定出所述第j個預測模式對應的相鄰塊; 基於所述第j個預測模式對應的相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項4或8所述的方法,其中,所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,包括: 基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述當前塊的相鄰塊關於所述第j個預測模式的權重; 基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項10所述的方法,其中,所述基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述當前塊的相鄰塊關於所述第j個預測模式的權重,包括: 基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述相鄰塊中第一點的權重; 將所述第一點的權重,確定為所述相鄰塊關於所述第j個預測模式的權重。
- 根據請求項11所述的方法,其中,所述基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述相鄰塊中第一點的權重,包括: 基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述第一點的權重。
- 根據請求項12所述的方法,其中,所述基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述第一點的權重,包括: 基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述範本的權重; 將所述範本的權重中所述第一點對應的權重,確定為所述第一點的權重。
- 根據請求項11所述的方法,其中,所述基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述相鄰塊中第一點的權重,包括: 確定所述當前塊中所述第一點對應的第二點; 基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述第二點的權重; 基於所述第二點的權重,確定所述第一點的權重。
- 根據請求項14所述的方法,其中,所述第二點為所述當前塊中與所述第一點相鄰的一個點。
- 根據請求項11所述的方法,其中,所述第一點為所述相鄰塊中的任意一個點。
- 根據請求項11所述的方法,其中,所述第一點為所述相鄰塊中與所述當前塊相鄰的一個點。
- 根據請求項10所述的方法,其中,所述基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表,包括: 若所述相鄰塊關於所述第j個預測模式的權重大於或等於預設閾值,則獲取所述相鄰塊的預測模式; 基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項18所述的方法,其中,若所述權重的取值範圍為0到n時,則所述預設閾值為n/2,所述n為正數。
- 根據請求項10所述的方法,其中,若所述權重的取值為第一值或第二值時,則所述基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表,包括: 若所述相鄰塊關於所述第j個預測模式的權重等於所述第一值,則獲取所述相鄰塊的預測模式,所述第一值大於所述第二值; 基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項18所述的方法,其中,所述獲取所述相鄰塊的預測模式,包括: 按照預設的檢查順序,依次獲取所述當前塊的各相鄰塊中,關於所述第j個預測模式的權重大於或等於預設閾值或等於第一值的相鄰塊的預測模式。
- 根據請求項21所述的方法,其中,所述基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,包括: 按照所述檢查順序,將獲取的所述相鄰塊的預測模式依次添加至所述第j個預測模式的候選預測模式列表中。
- 根據請求項21所述的方法,其中,若所述當前塊的相鄰塊包括左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊,則所述預設的檢查順序為左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊。
- 根據請求項18所述的方法,其中,所述基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,包括: 若所述第j個預測模式的候選預測模式列表中不包括所述相鄰塊的預測模式時,則將所述相鄰塊的預測模式,添加至所述第j個預測模式的候選預測模式列表中。
- 根據請求項18所述的方法,其中,所述方法還包括: 若所述相鄰塊關於所述第j個預測模式的權重小於預設閾值或等於第二值,則跳過獲取所述相鄰塊的預測模式。
- 根據請求項10所述的方法,其中,若所述當前塊包括M個相鄰塊時,則所述基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表,包括: 基於所述M個相鄰塊分別關於所述第j個預測模式的權重,以及所述M個相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,所述M為正整數。
- 根據請求項26所述的方法,其中,所述基於所述M個相鄰塊分別關於所述第j個預測模式的權重,以及所述M個相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,包括: 基於所述M個相鄰塊分別關於所述第j個預測模式的權重大小,將所述M個相鄰塊的預測模式添加至所述候選預測模式列表中,直到所述候選預測模式列表的長度達到預設長度為止。
- 根據請求項27所述的方法,其中,所述M個相鄰塊包括左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊中的至少一個。
- 根據請求項4或8所述的方法,其中,所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表之前,所述方法還包括: 確定所述第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式; 所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,包括: 若確定所述第j個預測模式的候選預測模式列表中包括所述相鄰塊的預測模式時,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項29所述的方法,其中,所述確定所述第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式,包括: 解碼碼流,得到第一資訊,所述第一資訊用於指示所述候選預測模式列表中是否包括相鄰塊的預測模式; 基於所述第一資訊,確定所述第j個預測模式的候選預測模式列表中是否包括所述相鄰塊的預測模式。
- 根據請求項29所述的方法,其中,所述確定所述第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式,包括: 按照預設順序,將所述預設順序中位於所述相鄰塊的預測模式之前的各預測模式添加至所述候選預測模式列表後,所述候選預測模式列表的長度未達到預設長度時,則確定所述第j個預測模式的候選預測模式列表中包括所述相鄰塊的預測模式。
- 根據請求項31所述的方法,其中,所述預設順序包括:預測角度與所述第i個候選權重導出模式的劃分線平行的預測模式、基於所述當前塊的範本導出的候選預測模式、基於所述當前塊的周圍重建像素導出的候選預測模式、所述相鄰塊的預測模式、預測角度與所述第i個候選權重導出模式的劃分線垂直的預測模式和預設模式。
- 根據請求項32所述的方法,其中,所述預設模式包括PLANAR模式。
- 根據請求項1至8任一項所述的方法,其中,所述基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,包括: 解碼碼流,得到第一索引,所述第一索引所述第一索引用於指示第一組合,所述第一組合包括所述第一權重導出模式和所述K個第一預測模式; 基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定候選組合列表,所述候選組合列表包括至少一個候選組合,所述候選組合包括一個權重導出模式和K個預測模式; 基於所述第一索引,從所述候選組合列表中確定出所述第一組合。
- 根據請求項34所述的方法,其中,所述基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定候選組合列表,包括: 基於所述N個候選權重導出模式和所述至少一個候選預測模式,得到T個第二組合,所述T個第二組合中的任一第二組合包括一權重導出模式和K個預測模式,且所述T個第二組合中任意兩個組合所包括的權重導出模式和K個預測模式不完全相同,所述T為大於1的正整數; 基於所述T個第二組合,得到所述候選組合列表。
- 根據請求項35所述的方法,其中,所述基於所述T個第二組合,得到所述候選組合列表,包括: 對於所述T個第二組合中的任一第二組合,確定使用所述第二組合中的權重導出模式和K個預測模式,對所述當前塊的範本進行預測時,所述第二組合對應的代價; 根據所述T個第二組合中各第二組合對應的代價,確定所述候選組合列表。
- 根據請求項1至8任一項所述的方法,其中,所述當前塊的上側範本的高度為1,和/或,所述當前塊的左側範本的寬度為1。
- 根據請求項1至8任一項所述的方法,其中,所述當前塊的屬性資訊包括所述當前塊的尺寸資訊。
- 一種視訊編碼方法,其中,包括: 確定N個候選權重導出模式,所述N為正整數; 基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式; 基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,所述K為大於1的正整數; 基於所述第一權重導出模式和K個第一預測模式對當前塊進行預測,得到所述當前塊的預測值。
- 根據請求項39所述的方法,其中,所述基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式,包括: 對於所述N個候選權重導出模式中的第i個候選權重導出模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的候選預測模式列表,所述i為小於或等於N的正整數。
- 根據請求項40所述的方法,其中,所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的候選預測模式列表,包括: 基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表。
- 根據請求項41所述的方法,其中,若所述至少一個預測模式對應一個候選預測模式列表時,則所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表,包括: 對於所述至少一個預測模式中的第j個預測模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,所述j為正整數; 基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表。
- 根據請求項42所述的方法,其中,所述基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表,包括: 將所述第j個預測模式的候選預測模式列表,確定為所述至少一個預測模式的候選預測模式列表。
- 根據請求項42所述的方法,其中,所述基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表,包括: 若所述第j個預測模式的候選預測模式列表中包括預設預測模式時,則將所述第j個預測模式的候選預測模式列表,確定為所述至少一個預測模式的候選預測模式列表。
- 根據請求項42所述的方法,其中,所述基於所述第j個預測模式的候選預測模式列表,確定所述至少一個預測模式的候選預測模式列表,包括: 若所述第j個預測模式的候選預測模式列表中不包括預設預測模式時,則將所述預設預測模式添加至所述第j個預測模式的候選預測模式列表中,得到所述至少一個預測模式的候選預測模式列表。
- 根據請求項41所述的方法,其中,若所述至少一個預測模式中每一個預測模式對應的一個候選預測模式列表時,則所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第i個候選權重導出模式對應的K個預測模式中至少一個預測模式的候選預測模式列表,包括: 對於所述至少一個預測模式中的第j個預測模式,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,所述j為正整數。
- 根據請求項42或46所述的方法,其中,所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,包括: 確定第一查閱資料表,所述第一查閱資料表包括不同的塊屬性資訊和不同權重導出模式下,不同預測模式對應的相鄰塊; 基於所述當前塊的屬性資訊和所述第i個候選權重導出模式,在所述第一查閱資料表中,確定出所述第j個預測模式對應的相鄰塊; 基於所述第j個預測模式對應的相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項42或46所述的方法,其中,所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,包括: 基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述當前塊的相鄰塊關於所述第j個預測模式的權重; 基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項48所述的方法,其中,所述基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述當前塊的相鄰塊關於所述第j個預測模式的權重,包括: 基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述相鄰塊中第一點的權重; 將所述第一點的權重,確定為所述相鄰塊關於所述第j個預測模式的權重。
- 根據請求項49所述的方法,其中,所述基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述相鄰塊中第一點的權重,包括: 基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述第一點的權重。
- 根據請求項50所述的方法,其中,所述基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述第一點的權重,包括: 基於所述第i個候選權重導出模式、所述當前塊的屬性資訊和所述當前塊的範本,確定所述範本的權重; 將所述範本的權重中所述第一點對應的權重,確定為所述第一點的權重。
- 根據請求項49所述的方法,其中,所述基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述相鄰塊中第一點的權重,包括: 確定所述當前塊中所述第一點對應的第二點; 基於所述第i個候選權重導出模式,以及所述當前塊的屬性資訊,確定所述第二點的權重; 基於所述第二點的權重,確定所述第一點的權重。
- 根據請求項52所述的方法,其中,所述第二點為所述當前塊中與所述第一點相鄰的一個點。
- 根據請求項49所述的方法,其中,所述第一點為所述相鄰塊中的任意一個點。
- 根據請求項49所述的方法,其中,所述第一點為所述相鄰塊中與所述當前塊相鄰的一個點。
- 根據請求項48所述的方法,其中,所述基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表,包括: 若所述相鄰塊關於所述第j個預測模式的權重大於或等於預設閾值,則獲取所述相鄰塊的預測模式; 基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項56所述的方法,其中,若所述權重的取值範圍為0到n時,則所述預設閾值為n/2,所述n為正數。
- 根據請求項48所述的方法,其中,若所述權重的取值為第一值或第二值時,則所述基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表,包括: 若所述相鄰塊關於所述第j個預測模式的權重等於所述第一值,則獲取所述相鄰塊的預測模式,所述第一值大於所述第二值; 基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項56所述的方法,其中,所述獲取所述相鄰塊的預測模式,包括: 按照預設的檢查順序,依次獲取所述當前塊的各相鄰塊中,關於所述第j個預測模式的權重大於或等於預設閾值或等於第一值的相鄰塊的預測模式。
- 根據請求項59所述的方法,其中,所述基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,包括: 按照所述檢查順序,將獲取的所述相鄰塊的預測模式依次添加至所述第j個預測模式的候選預測模式列表中。
- 根據請求項59所述的方法,其中,若所述當前塊的相鄰塊包括左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊,則所述預設的檢查順序為左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊。
- 根據請求項56所述的方法,其中,所述基於所述相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,包括: 若所述第j個預測模式的候選預測模式列表中不包括所述相鄰塊的預測模式時,則將所述相鄰塊的預測模式,添加至所述第j個預測模式的候選預測模式列表中。
- 根據請求項56所述的方法,其中,所述方法還包括: 若所述相鄰塊關於所述第j個預測模式的權重小於預設閾值或小於第二值,則跳過獲取所述相鄰塊的預測模式。
- 根據請求項48所述的方法,其中,若所述當前塊包括M個相鄰塊時,則所述基於所述相鄰塊關於所述第j個預測模式的權重,確定所述第j個預測模式的候選預測模式列表,包括: 基於所述M個相鄰塊分別關於所述第j個預測模式的權重,以及所述M個相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,所述M為正整數。
- 根據請求項64所述的方法,其中,所述基於所述M個相鄰塊分別關於所述第j個預測模式的權重,以及所述M個相鄰塊的預測模式,確定所述第j個預測模式的候選預測模式列表,包括: 基於所述M個相鄰塊分別關於所述第j個預測模式的權重,將所述M個相鄰塊的預測模式添加至所述候選預測模式列表中,直到所述候選預測模式列表的長度達到預設長度為止。
- 根據請求項65所述的方法,其中,所述M個相鄰塊包括左側相鄰塊、上側相鄰塊、左下方相鄰塊、右上方相鄰塊和左上方相鄰塊中的至少一個。
- 根據請求項42或46所述的方法,其中,所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表之前,所述方法還包括: 確定所述第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式; 所述基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表,包括: 若確定所述第j個預測模式的候選預測模式列表中包括所述相鄰塊的預測模式時,基於所述第i個候選權重導出模式和所述當前塊的屬性資訊,確定所述第j個預測模式的候選預測模式列表。
- 根據請求項67所述的方法,其中,所述確定所述第j個預測模式的候選預測模式列表中是否包括相鄰塊的預測模式,包括: 按照預設順序,將所述預設順序中位於所述相鄰塊的預測模式之前的各預測模式添加至所述候選預測模式列表後,所述候選預測模式列表的長度未達到預設長度時,則確定所述第j個預測模式的候選預測模式列表中包括所述相鄰塊的預測模式。
- 根據請求項68所述的方法,其中,所述預設順序包括:預測角度與所述第i個候選權重導出模式的劃分線平行的預測模式、基於所述當前塊的範本導出的候選預測模式、基於所述當前塊的周圍重建像素導出的候選預測模式、所述相鄰塊的預測模式、預測角度與所述第i個候選權重導出模式的劃分線垂直的預測模式和預設模式。
- 根據請求項69所述的方法,其中,所述預設模式包括PLANAR模式。
- 根據請求項68所述的方法,其中,所述方法還包括: 在碼流中寫入第一資訊,所述第一資訊用於指示所述候選預測模式列表中是否包括相鄰塊的預測模式。
- 根據請求項39至46任一項所述的方法,其中,所述基於所述N個候選權重導出模式和所至少一個述候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,包括: 基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定候選組合列表,所述候選組合列表包括至少一個候選組合,所述候選組合包括一個權重導出模式和K個預測模式; 從所述候選組合列表中確定出第一組合,所述第一組合包括所述第一權重導出模式和所述K個第一預測模式。
- 根據請求項72所述的方法,其中,所述基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定候選組合列表,包括: 基於所述N個候選權重導出模式和所述至少一個候選預測模式,得到T個第二組合,所述T個第二組合中的任一第二組合包括一權重導出模式和K個預測模式,且所述T個第二組合中任意兩個組合所包括的權重導出模式和K個預測模式不完全相同,所述T為大於1的正整數; 基於所述T個第二組合,得到所述候選組合列表。
- 根據請求項73所述的方法,其中,所述基於所述T個第二組合,得到所述候選組合列表,包括: 對於所述T個第二組合中的任一第二組合,確定使用所述第二組合中的權重導出模式和K個預測模式,對所述當前塊的範本進行預測時,所述第二組合對應的代價; 根據所述T個第二組合中各第二組合對應的代價,確定所述候選組合列表。
- 根據請求項72所述的方法,其中,所述方法還包括: 將第一索引寫入碼流,所述第一索引所述第一索引用於指示第一組合。
- 根據請求項39至46任一項所述的方法,其中,所述當前塊的上側範本的高度為1,和/或,所述當前塊的左側範本的寬度為1。
- 根據請求項39至46任一項所述的方法,其中,所述當前塊的屬性資訊包括所述當前塊的尺寸資訊。
- 一種視訊解碼裝置,其中,包括: 權重導出模式確定單元,用於確定N個候選權重導出模式,所述N為正整數; 預測列表確定單元,用於基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式,所述候選預測模式列表包括至少一個候選預測模式; 處理單元,用於基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,所述K為大於1的正整數; 預測單元,用於基於所述第一權重導出模式和K個第一預測模式對當前塊進行預測,得到所述當前塊的預測值。
- 一種視訊編碼裝置,其中,包括: 權重導出模式確定單元,用於確定N個候選權重導出模式,所述N為正整數; 預測列表確定單元,用於基於所述N個候選權重導出模式,以及當前塊的屬性資訊,確定至少一個候選預測模式,所述候選預測模式列表包括至少一個候選預測模式; 處理單元,用於基於所述N個候選權重導出模式和所述至少一個候選預測模式,確定所述當前塊對應的第一權重導出模式和K個第一預測模式,所述K為大於1的正整數; 預測單元,用於基於所述第一權重導出模式和K個第一預測模式對當前塊進行預測,得到所述當前塊的預測值。
- 一種電子設備,其中,包括處理器和記憶體; 所示記憶體用於儲存電腦程式; 所述處理器用於調用並運行所述記憶體中儲存的電腦程式,以實現上述請求項1至38或39至77任一項所述的方法。
- 一種視訊編解碼系統,其中,包括:視訊編碼器和視訊解碼器; 所述的視訊解碼器用於實現上述請求項1至38任一項所述的方法; 所述的視訊編碼器用於實現上述請求項39至77任一項所述的方法。
- 一種電腦可讀儲存媒介,其中,用於儲存電腦程式; 所述電腦程式使得電腦執行如上述請求項1至38或39至77任一項所述的方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/133539 WO2024108391A1 (zh) | 2022-11-22 | 2022-11-22 | 视频编解码方法、装置、设备、系统、及存储介质 |
| WOPCT/CN2022/133539 | 2022-11-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW202425644A true TW202425644A (zh) | 2024-06-16 |
Family
ID=91194958
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112139263A TW202425644A (zh) | 2022-11-22 | 2023-10-13 | 視訊編解碼方法、裝置、設備、系統、及儲存媒介 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20250280117A1 (zh) |
| JP (1) | JP2025539839A (zh) |
| CN (1) | CN120239967A (zh) |
| MX (1) | MX2025005956A (zh) |
| TW (1) | TW202425644A (zh) |
| WO (1) | WO2024108391A1 (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250324040A1 (en) * | 2024-04-10 | 2025-10-16 | Qualcomm Incorporated | Position and block characteristics dependent matrix intra prediction for video coding |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7475908B2 (ja) * | 2020-03-17 | 2024-04-30 | シャープ株式会社 | 予測画像生成装置、動画像復号装置及び動画像符号化装置 |
| CN113766245A (zh) * | 2020-06-05 | 2021-12-07 | Oppo广东移动通信有限公司 | 帧间预测方法、解码器、编码器及计算机存储介质 |
| CN116980594A (zh) * | 2020-12-03 | 2023-10-31 | Oppo广东移动通信有限公司 | 帧内预测方法、编码器、解码器以及存储介质 |
| CN116711304A (zh) * | 2020-12-28 | 2023-09-05 | Oppo广东移动通信有限公司 | 预测方法、编码器、解码器以及存储介质 |
| CN113794881B (zh) * | 2021-04-13 | 2023-03-24 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
-
2022
- 2022-11-22 WO PCT/CN2022/133539 patent/WO2024108391A1/zh not_active Ceased
- 2022-11-22 JP JP2025529885A patent/JP2025539839A/ja active Pending
- 2022-11-22 CN CN202280101897.XA patent/CN120239967A/zh active Pending
-
2023
- 2023-10-13 TW TW112139263A patent/TW202425644A/zh unknown
-
2025
- 2025-05-19 US US19/211,871 patent/US20250280117A1/en active Pending
- 2025-05-21 MX MX2025005956A patent/MX2025005956A/es unknown
Also Published As
| Publication number | Publication date |
|---|---|
| MX2025005956A (es) | 2025-06-02 |
| JP2025539839A (ja) | 2025-12-09 |
| WO2024108391A1 (zh) | 2024-05-30 |
| US20250280117A1 (en) | 2025-09-04 |
| CN120239967A (zh) | 2025-07-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP4510581A1 (en) | Video encoding method, apparatus and device, video decoding method, apparatus and device, video encoding and decoding system, and storage medium | |
| US20240364860A1 (en) | Method for video encoding/decoding and bitstream transmission | |
| KR20230111256A (ko) | 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더및 비디오 디코더 | |
| US20250358401A1 (en) | Video coding method and video decoder | |
| US20240372984A1 (en) | Prediction methods | |
| US20250350760A1 (en) | Method and device for video decoding, and method for video encoding | |
| CN116684598A (zh) | 图像解码设备和方法、图像编码设备和方法以及存储介质 | |
| US20250392702A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, device, system, and storage medium | |
| US20250280117A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, and devices, system and storage medium | |
| WO2023122968A1 (zh) | 帧内预测方法、设备、系统、及存储介质 | |
| WO2024216632A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| TW202433936A (zh) | 視訊編解碼方法、裝置、設備、系統、及儲存媒介 | |
| RU2846142C2 (ru) | Способ и аппарат, устройство, система кодирования видео и носитель данных | |
| WO2024192733A9 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| WO2024092425A1 (zh) | 视频编解码方法、装置、设备、及存储介质 | |
| WO2025007254A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| WO2023220970A1 (zh) | 视频编码方法、装置、设备、系统、及存储介质 | |
| WO2023197229A1 (zh) | 视频编解码方法、装置、设备、系统及存储介质 |