本技術涉及視頻處理,特別是涉及一種幀內濾波預測方法、變換方法、視頻編解碼方法及裝置。
背景技術:
1、由于視頻圖像數據量比較大,通常需要對其進行編碼壓縮,壓縮后的數據稱之為視頻碼流,視頻碼流通過有線或者無線網絡傳輸至用戶端,再進行解碼觀看。整個視頻編碼流程包括預測、變換、量化、熵編碼等過程。其中,預測分為幀內預測和幀間預測兩部分。
2、本技術的發明人在長期的研發過程中,發現目前預測方法還存在一定的局限性,也在一定程度上影響了壓縮率。
技術實現思路
1、本技術提供一種幀內濾波預測方法、變換方法、視頻編解碼方法及裝置,可以提高壓縮率。
2、為達到上述目的,本技術提供一種幀內濾波預測方法,該方法包括:
3、基于當前塊所屬圖像中的預設搜索范圍搜索出當前塊的至少一個匹配塊;
4、對所述當前塊進行劃分,得到所述當前塊的n個子塊,n為大于或等于2的整數;
5、基于所述至少一個匹配塊的參考模板和所述當前模板求解出至少一個濾波模型的參數;
6、基于所述至少一個匹配塊,并利用所述至少一個濾波模型分別預測出至少一個所述子塊的預測值,以得到所述當前塊的預測塊。
7、在一實施例中,所述基于所述至少一個匹配塊的參考模板和所述當前模板求解出至少一個濾波模型的參數,包括:基于每一匹配塊的參考模板和當前模板求解出每一匹配塊對應的至少一個濾波模型的參數。
8、在一實施例中,所述基于每一匹配塊的參考模板和當前模板求解出每一匹配塊對應的至少一個濾波模型的參數,包括:
9、使用每一匹配塊的完整參考模板和完整的當前模板進行至少一個濾波模型的參數計算,得到每一匹配塊對應的至少一個濾波模型。
10、在一實施例中,所述對所述當前塊進行劃分,得到所述當前塊的n個子塊,包括:對當前塊及當前模板一同進行劃分,得到當前塊的n個子塊以及當前模板中的與至少一個子塊一一對應的至少一個子模板;
11、所述基于每一匹配塊的參考模板和當前模板求解出每一匹配塊對應的至少一個濾波模型的參數,包括:使用當前塊內的各個子塊各自對應子模板以及該匹配塊對應的參考模板中與各個子塊的子模板對應的區域,對各個子塊對應的至少一個濾波模型進行參數求解,得到各個子塊對應于該匹配塊的至少一個濾波模型。
12、在一實施例中,所述對當前塊及當前模板一同進行劃分之后,包括:
13、判斷每一子塊是否為第一子塊,所述第一子塊為當前無法進行濾波模型參數求解的子塊;
14、若當前塊對應的所有子塊中存在所述第一子塊,執行所述基于每一匹配塊的參考模板和當前模板求解出每一匹配塊對應的至少一個濾波模型的參數的步驟,以對除所述第一子塊之外的各個子塊對應的至少一個濾波模型進行參數求解,得到除所述第一子塊之外的各個子塊對應于該匹配塊的至少一個濾波模型;或,
15、若當前塊對應的所有子塊中存在所述第一子塊,對當前模板進行擴展,以使至少部分所述第一子塊能夠獲取到足夠的模板區域像素進行濾波模型的參數的求解;執行所述基于每一匹配塊的參考模板和當前模板求解出每一匹配塊對應的至少一個濾波模型的參數的步驟,以使用當前塊內的至少部分第一子塊和除第一子塊之外的各個子塊各自對應的更新后的子模板以及該匹配塊對應的參考模板中與所述更新后的子模板對應的區域,對至少部分第一子塊和除第一子塊之外的各個子塊對應的至少一個濾波模型進行參數求解;所述當前塊中各個子塊的更新后的子模板是利用n個子塊的分割線的延長線對擴展后的當前模板進行劃分得到的。
16、在一實施例中,所述判斷每一子塊是否為第一子塊,包括:
17、判斷每個子塊對應的子模板中像素數量是否小于閾值,所述閾值是固定常數或基于所述當前塊尺寸確定的;或,
18、判斷每個子塊對應的子模板的大小是否符合預設條件。
19、在一實施例中,所述對當前模板進行擴展,包括:
20、將當前模板中的上方模板往外擴展第一預設長度,和/或,將當前模板中的左方模板往外擴展第二預設長度,所述第一預設長度和/或所述第二預設長度為固定常數或基于所述當前塊尺寸確定的;或,
21、將當前模板中的上方模板往外擴展,和/或,將當前模板中的左方模板往外擴展,直至至少部分第一子塊對應的模板區域像素總個數達到數量閾值,所述數量閾值為固定常數或基于所述當前塊尺寸確定的。
22、在一實施例中,所述基于所述至少一個匹配塊,并利用所述至少一個濾波模型分別預測出至少一個所述子塊的預測值,包括:
23、采用所述至少一個所述子塊中每一子塊對應的濾波模型對其對應的匹配塊中的與所述每一子塊對應的區域進行濾波處理,而得到所述每一子塊的預測值。
24、在一實施例中,采用所述至少一個所述子塊中每一子塊對應的濾波模型對其對應的匹配塊中的與所述每一子塊對應的區域進行濾波處理,包括:
25、通過每一子塊對應的濾波模型,對其對應的匹配塊中的與所述每一子塊對應的區域中每一像素的像素值和/或所述每一像素的鄰域像素的像素值進行運算,和/或,對所述每一像素的梯度信息進行運算,和/或,對所述當前塊中對應像素的位置信息進行運算,得到所述當前塊中對應像素的預測值,以得到所述每一子塊的預測值。
26、在一實施例中,所述對所述當前塊中對應像素的位置信息進行運算,包括:
27、對所述當前塊中對應像素的水平位置進行偏移縮放;和/或,
28、對所述當前塊中對應像素的垂直位置進行偏移縮放;和/或,
29、對所述當前塊中對應像素的水平位置和/或垂直位置進行非線性運算。
30、在一實施例中,所述對其對應的匹配塊中的與所述每一子塊對應的區域中每一像素的像素值和/或所述每一像素的鄰域像素的像素值進行運算,包括:
31、對所述每一像素的像素值及其鄰域像素的像素值經過平滑濾波得到的濾波值進行運算。
32、在一實施例中,其中,所述濾波值為對所述每一像素的像素值及其鄰域像素的像素值進行均值濾波、中值濾波或高斯濾波得到的值。
33、在一實施例中,所述當前塊中對應像素的預測值等于像素信息值、梯度運算值、位置信息運算值和/或常數項的和;
34、所述像素信息值為對所述每一像素的像素值和/或所述每一像素的鄰域像素的像素值進行運算得到的值,所述梯度運算值為對所述每一像素的梯度信息進行運算得到的值,所述位置信息運算值為對所述當前塊中對應像素的位置信息進行運算得到的值,所述常數項為對預設常數進行運算得到的值。
35、在一實施例中,所述每一像素的梯度信息包括所述每一像素的梯度值和/或所述每一像素的鄰域像素的梯度值。
36、在一實施例中,所述至少一個所述子塊來自于所述當前塊中除第二子塊之外的所有子塊,所述第二子塊為不符合利用濾波模型進行預測的條件的子塊。
37、在一實施例中,
38、所述第二子塊對應的子模板中像素數量小于閾值,所述閾值是固定常數或基于所述當前塊尺寸確定的;或,
39、所述第二子塊對應的子模板的大小不符合預設條件。
40、在一實施例中,以當前劃分模式對應的n-1根分割線對當前塊進行劃分,而得到當前塊的n個子塊。
41、所述當前劃分模式來自于預設的m個劃分模式;或,所述當前劃分模式來自于從預設的m個劃分模式中選出的j個劃分模式;或,所述當前劃分模式來自于g個候選幀內預測組合對應的至少一個劃分模式,所述g個候選幀內預測組合是基于j個劃分模式的所有候選幀內預測組合的模板代價值從所述j個劃分模式的所有候選幀內預測組合選出的,所述j個劃分模式是從預設的m個劃分模式選出的;或,所述當前劃分模式來自于f個候選幀內預測模式對應的至少一個劃分模式,所述f個候選幀內預測模式是基于g個劃分模式的所有候選幀內預測組合的代價值從所述g個候選幀內預測組合選出的,所述g個候選幀內預測組合是基于j個劃分模式的所有候選幀內預測組合的模板代價值從所述j個劃分模式的所有候選幀內預測組合選出的,所述j個劃分模式是從預設的m個劃分模式選出的。
42、在一實施例中,所述基于所述至少一個匹配塊的參考模板和所述當前模板求解出至少一個濾波模型的參數,之后包括:
43、確定出每種幀內預測組合的模板代價值和/或代價值,每個幀內預測組合包括一所述劃分模式以及按照一所述劃分模式對當前塊劃分得到的至少兩個子塊各自選用的幀內預測模式,各個子塊的幀內預測模式的選擇范圍包括各個子塊對應的至少一個濾波模型;
44、基于所有幀內預測組合的模板代價值和/或代價值,確定出最佳的幀內預測模式,所述最佳的幀內預測模式的選擇范圍包含所有幀內預測組合。
45、在一實施例中,所述基于所述至少一個匹配塊的參考模板和所述當前模板求解出至少一個濾波模型的參數,之后包括:
46、確定出每種幀內預測組合的模板代價值;基于所有幀內預測組合的模板代價值,從包含所有幀內預測組合的模式范圍內確定出最佳的幀內預測模式,或,
47、確定出每種幀內預測組合的代價值;基于所有幀內預測組合的代價值,從包含所有幀內預測組合的模式范圍內確定出最佳的幀內預測模式;或,
48、確定出每種幀內預測組合的模板代價值;基于所有幀內預測組合的模板代價值,從所有幀內預測組合中選出至少兩個幀內預測組合;確定出至少兩個幀內預測組合各自的代價值;基于所述至少兩個幀內預測組合各自的代價值,選出最佳的幀內預測模式,所述最佳的幀內預測模式的選擇范圍包含所述至少兩個幀內預測組合;或,
49、確定出每種幀內預測組合的模板代價值;基于所有幀內預測組合的模板代價值,從所有幀內預測組合中選出至少三個幀內預測組合;基于當前塊的原始值和至少三個幀內預測組合各自預測的當前塊的預測結果,確定出至少三個幀內預測組合各自的第一代價值;基于所述至少三個幀內預測組合各自的第一代價值,選出至少兩個幀內預測模式,所述至少兩個幀內預測模式的選擇范圍包括所述至少三個幀內預測組合;基于當前塊的原始值和至少兩個幀內預測模式各自預測重建的當前塊的重建結果,確定出至少兩個幀內預測模式各自的第二代價值;基于所述至少兩個幀內預測模式各自的第二代價值,從至少兩個幀內預測模式中選出最佳的幀內預測模式;或,
50、基于當前塊的原始值和所有幀內預測組合各自預測的當前塊的預測結果,確定出所有幀內預測組合各自的第一代價值;基于所有幀內預測組合各自的第一代價值,選出至少兩個幀內預測模式,所述至少兩個幀內預測模式的選擇范圍包含所有幀內預測組合;基于當前塊的原始值和至少兩個幀內預測模式各自預測重建的當前塊的重建結果,確定出至少兩個幀內預測模式各自的第二代價值;基于所述至少兩個幀內預測模式各自的第二代價值,從至少兩個幀內預測模式中選出最佳的幀內預測模式;
51、其中,在待計算代價值、第一代價值或第二代價值的所有幀內預測組合中包含預設組合時,所述預設組合為至少一個子塊選用的幀內預測模式為所述濾波模型的幀內預測組合,通過所述基于所述至少一個匹配塊,并利用至少一個所述濾波模型分別預測出至少一個所述子塊的預測值的步驟,計算出所述預設組合的代價值、第一代價值或第二代價值。
52、在一實施例中,若各個子塊對應的濾波模型數量大于或等于2,各個子塊的幀內預測模式的選擇范圍包括各個子塊的預選后的至少一個濾波模型,各個子塊的所述預選后的至少一個濾波模型的模板代價值小于各個子塊對應的其余濾波模型的模板代價值。
53、在一實施例中,所述預設的m個劃分模式是基于至少一個劃分角度和劃分間隔數據設定的。
54、在一實施例中,所述基于當前塊所屬圖像中的預設搜索范圍搜索出當前塊的最佳匹配塊,包括:
55、以當前塊的第一模板在當前塊的預設搜索范圍中進行匹配搜索而確定出當前塊的至少一個匹配塊;
56、所述第一模板等同于所述當前模板,或,第一模板不等同于所述當前模板。
57、在一實施例中,所述至少一個匹配塊對應的至少一個搜索模板與所述第一模板之間的差距小于除所述至少一個搜索模板之外的其余搜索模板與第一模板之間的差距;所述搜索模板和其對應的匹配塊之間的位置關系等同于所述第一模板和所述當前塊之間的位置關系。
58、在一實施例中,所述當前模板為與所述當前塊周圍的重建像素區域,所述當前模板與所述當前塊的位置關系等同于所述參考模板與所述參考模板對應的所述匹配塊的位置關系。
59、為達到上述目的,本技術還提供一種幀內濾波預測方法,該方法包括:
60、基于當前塊所屬圖像中的預設搜索范圍搜索出當前塊的至少一個匹配塊;
61、基于至少一個匹配塊的參考模板和當前模板求解出至少一個濾波模型的參數;
62、基于所有幀內預測組合各自的模板代價值和/或代價值,確定出最佳的幀內預測模式,所述最佳的幀內預測模式的選擇范圍包括所述所有幀內預測組合,每種幀內預測組合包括一所述劃分模式以及按照一所述劃分模式對當前塊劃分得到的至少兩個子塊各自選用的幀內預測模式,各個子塊的幀內預測模式的選擇范圍包括各個子塊對應的至少一個濾波模型。
63、為達到上述目的,本技術還提供一種視頻編碼方法,該方法包括:
64、基于上述的方法確定圖像中的當前塊的預測塊;
65、基于所述預測塊對所述當前塊進行編碼。
66、在一實施例中,所述基于所述預測塊對所述當前塊進行編碼,包括:
67、在所述預測塊是應用所述當前塊信息確定的情況下,在編碼碼流中設置預設句法元素的值,其中所述預設句法元素不同取值代表是否啟用所述幀內濾波預測方法;
68、在所述預測塊對應的幀內預測模式為預設組合時,所述預設組合為所述當前塊的至少一個子塊選用的幀內預測模式為所述濾波模型的幀內預測組合,對所述濾波模型的參數相關的句法元素進行編碼。
69、為達到上述目的,本技術還提供一種視頻解碼方法,該方法包括:
70、基于上述的方法確定圖像中的當前塊的預測塊;
71、基于所述預測塊對所述當前塊進行解碼。
72、為達到上述目的,本技術還提供一種變換方法,該方法包括:
73、確定當前幀中的當前塊的預測塊;
74、在所述預測塊對應的幀內預測模式為第一幀內預測組合,所述第一幀內預測組合為所述當前塊的至少一個子塊選用的幀內預測模式為非傳統幀內預測模式的幀內預測組合的情況下,利用解碼端幀內模式推導方法并基于所述預測塊進行推導,以推導出一傳統幀內預測模式;
75、利用推導出的所述傳統幀內預測模式選擇所述當前塊使用的變換核。
76、在一實施例中,所述變換方法應用于視頻編碼方法或視頻解碼方法中。
77、為達到上述目的,本技術還提供一種編碼器,該編碼器包括處理器;所述處理器用于執行指令以實現如上述方法的步驟。
78、為達到上述目的,本技術還提供一種解碼器,該解碼器包括處理器;所述處理器用于執行指令以實現如上述方法的步驟。
79、為達到上述目的,本技術還提供一種計算機可讀存儲介質,其用于存儲指令/程序數據,指令/程序數據能夠被執行以實現上述方法。
80、本技術利用求解出的濾波模型對當前塊中的至少一個幾何塊對應的匹配塊進行濾波操作,如此可以不用傳輸預測方向的信息,比特開銷較小,有利于提升壓縮率;且豐富了傳統幀內預測之外的候選項,增強了對不同圖像內容的適應性,有利于提升壓縮率和圖像質量。