本發(fā)明涉及編碼器,尤其涉及一種硬件編碼器的編碼方法及裝置。
背景技術(shù):
1、硬件編碼器,一種將物理量轉(zhuǎn)換為電信號或數(shù)字信號的硬件設(shè)備,以便讓計算機(jī)、控制系統(tǒng)或其他電子設(shè)備對轉(zhuǎn)換得到信號進(jìn)行進(jìn)一步的處理、分析或顯示,這種轉(zhuǎn)換過程是實現(xiàn)自動化、測量、監(jiān)控和控制系統(tǒng)的基石。
2、與軟件編碼器不同,硬件編碼器在設(shè)計階段就要考慮到應(yīng)用場景的性能需求,因此每個流水級的算法設(shè)計都要考慮到其性能瓶頸,從而限制部分模塊的計算量,此外實際編碼圖像中都會存在不同復(fù)雜程度的區(qū)域,如果硬件編碼器都采用相同的計算流程就會導(dǎo)致簡單區(qū)域冗余計算,復(fù)雜區(qū)域計算不足的問題,從而無法完全發(fā)揮其性能。
3、可見,提出一種提高硬件編碼器的編碼靈活性的技術(shù)方案顯得尤為重要。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供一種硬件編碼器的編碼方法及裝置,能夠硬件編碼器的編碼靈活性。
2、為了解決上述技術(shù)問題,本發(fā)明第一方面公開了一種硬件編碼器的編碼方法,所述方法包括:
3、檢測當(dāng)前場景下已編碼幀組的第一編碼信息;
4、根據(jù)所述第一編碼信息,計算所述當(dāng)前場景下當(dāng)前編碼幀的初始規(guī)劃編碼信息,所述當(dāng)前編碼幀包括多個編碼樹單元;
5、獲取所述當(dāng)前編碼幀中當(dāng)前編碼樹單元的在前相鄰編碼樹單元的第二編碼信息;
6、根據(jù)所述第二編碼信息和所述初始規(guī)劃編碼信息,計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息,所述目標(biāo)規(guī)劃編碼信息用于指示硬件編碼器對所述當(dāng)前編碼樹單元執(zhí)行相匹配的編碼操作。
7、作為一種可選的實施方式,在本發(fā)明第一方面中,所述第一編碼信息包括第一編碼參數(shù)和所述已編碼幀組已消耗的第一時鐘周期數(shù),所述根據(jù)所述第一編碼信息,計算所述當(dāng)前場景下當(dāng)前編碼幀的初始規(guī)劃編碼信息,包括:
8、根據(jù)所述第一編碼參數(shù),分析所述當(dāng)前場景下的性能約束信息;
9、根據(jù)所述性能約束信息和所述第一時鐘周期數(shù),分析所述當(dāng)前場景下當(dāng)前編碼幀所在的當(dāng)前編碼幀組規(guī)劃消耗的第二時鐘周期數(shù);
10、根據(jù)所述第一時鐘周期數(shù)和所述第二時鐘周期數(shù),計算所述當(dāng)前編碼幀規(guī)劃消耗的第三時鐘周期數(shù)和幀級規(guī)劃編碼參數(shù);
11、根據(jù)所述第三時鐘周期數(shù)和所述幀級規(guī)劃編碼參數(shù),生成所述當(dāng)前編碼幀的初始規(guī)劃編碼信息。
12、作為一種可選的實施方式,在本發(fā)明第一方面中,所述第二編碼信息包括所述在前相鄰編碼樹單元已消耗的第四時鐘周期數(shù),所述根據(jù)所述第二編碼信息和所述初始規(guī)劃編碼信息,計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息,包括:
13、根據(jù)所述第四時鐘周期數(shù)和所述第三時鐘周期數(shù),計算所述當(dāng)前編碼樹單元規(guī)劃消耗的第五時鐘周期數(shù);
14、根據(jù)所述第五時鐘周期數(shù),更新所述幀級規(guī)劃編碼參數(shù),更新后的所述幀級規(guī)劃編碼參數(shù)滿足所述第五時鐘周期數(shù)對應(yīng)的約束條件;
15、獲取所述當(dāng)前編碼樹單元的基本信息;
16、根據(jù)所述基本信息和更新后的所述幀級規(guī)劃編碼參數(shù),計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息。
17、作為一種可選的實施方式,在本發(fā)明第一方面中,所述當(dāng)前編碼樹單元包括多個像素塊,所述基本信息包括像素塊分布信息和像素塊特征信息,所述根據(jù)所述基本信息和更新后的所述幀級規(guī)劃編碼參數(shù),計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息,包括:
18、對于每個所述像素塊,根據(jù)所述像素塊分布信息和像素塊特征信息,匹配與該像素塊相關(guān)聯(lián)的幀內(nèi)多向關(guān)聯(lián)像素塊和幀間參考像素塊;
19、根據(jù)所有所述幀內(nèi)多向關(guān)聯(lián)像素塊,分析所述當(dāng)前編碼樹單元的冗余空間信息;
20、根據(jù)所有所述幀間參考像素塊,分析所述當(dāng)前編碼樹單元的第一運(yùn)動信息,所述第一運(yùn)動信息用于表示所述當(dāng)前編碼樹單元的運(yùn)動情況;
21、根據(jù)第一編碼信息,匹配所述冗余空間信息和所述第一運(yùn)動信息各對應(yīng)的優(yōu)先權(quán)值;
22、根據(jù)所述冗余空間信息、所述第一運(yùn)動信息和各對應(yīng)的所述優(yōu)先權(quán)值,分析所述當(dāng)前編碼樹單元對應(yīng)的圖像復(fù)雜度信息;
23、根據(jù)所述圖像復(fù)雜度信息和更新后的所述幀級規(guī)劃編碼參數(shù),計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息。
24、作為一種可選的實施方式,在本發(fā)明第一方面中,所述基本信息還包括實際像素值信息,所述根據(jù)所有所述幀內(nèi)多向關(guān)聯(lián)像素塊,分析所述當(dāng)前編碼樹單元的冗余空間信息,包括:
25、對于每個所述像素塊,根據(jù)該像素塊的所述幀內(nèi)多向關(guān)聯(lián)像素塊,預(yù)測該像素塊的第一預(yù)測像素值信息;
26、根據(jù)所有所述第一預(yù)測像素值信息,計算所述當(dāng)前編碼樹單元的第二預(yù)測像素值信息;
27、根據(jù)所述第二預(yù)測像素值信息和所述實際像素值信息,分析所述當(dāng)前編碼樹單元的冗余空間信息,所述冗余空間信息包括預(yù)測偏置值,所述預(yù)測偏置值用于表示所述第二預(yù)測像素值信息與所述實際像素值信息之間的偏差,所述偏差用于表示所述當(dāng)前編碼樹單元中的冗余空間。
28、作為一種可選的實施方式,在本發(fā)明第一方面中,所述幀間參考像素塊在所述已編碼幀組中,所述幀間參考像素塊所在幀為所述當(dāng)前編碼幀的參考幀,所述根據(jù)所有所述幀間參考像素塊,分析所述當(dāng)前編碼樹單元的第一運(yùn)動信息,包括:
29、對于每個所述像素塊,根據(jù)該像素塊的所述幀間參考像素塊,預(yù)測該像素塊的第二運(yùn)動信息,所述第二運(yùn)動信息用于表示所述像素塊基于所述幀間參考像素塊的運(yùn)動情況;
30、根據(jù)所有所述第二運(yùn)動信息,分析所述當(dāng)前編碼樹單元的第一運(yùn)動信息。
31、作為一種可選的實施方式,在本發(fā)明第一方面中,所述方法還包括:
32、根據(jù)所述目標(biāo)規(guī)劃編碼信息,預(yù)測所述當(dāng)前編碼樹單元的編碼效果信息;
33、判斷所述編碼效果信息與預(yù)設(shè)編碼效果信息是否相匹配,當(dāng)判斷出所述編碼效果信息與所述預(yù)設(shè)編碼效果信息不相匹配時,則根據(jù)所述預(yù)設(shè)編碼效果信息和所述編碼效果信息,確定至少一個目標(biāo)項和所有所述目標(biāo)項之間的關(guān)聯(lián)信息,所述目標(biāo)項為所述當(dāng)前編碼樹單元中使得所述編碼效果信息與所述預(yù)設(shè)編碼效果信息不相匹配的目標(biāo)像素塊;
34、根據(jù)所有所述目標(biāo)項,確定所述目標(biāo)規(guī)劃編碼信息中與所有所述目標(biāo)項相匹配的目標(biāo)參數(shù)信息;
35、根據(jù)所述關(guān)聯(lián)信息、所述預(yù)設(shè)編碼效果信息和所述目標(biāo)參數(shù)信息,調(diào)整所述目標(biāo)規(guī)劃編碼信息。
36、本發(fā)明第二方面公開了一種硬件編碼器的編碼裝置,所述裝置包括:
37、檢測模塊,用于檢測當(dāng)前場景下已編碼幀組的第一編碼信息;
38、計算模塊,用于根據(jù)所述第一編碼信息,計算所述當(dāng)前場景下當(dāng)前編碼幀的初始規(guī)劃編碼信息,所述當(dāng)前編碼幀包括多個編碼樹單元;
39、獲取模塊,用于獲取所述當(dāng)前編碼幀中當(dāng)前編碼樹單元的在前相鄰編碼樹單元的第二編碼信息;
40、所述計算模塊,還用于根據(jù)所述第二編碼信息和所述初始規(guī)劃編碼信息,計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息,所述目標(biāo)規(guī)劃編碼信息用于指示硬件編碼器對所述當(dāng)前編碼樹單元執(zhí)行相匹配的編碼操作。
41、作為一種可選的實施方式,在本發(fā)明第二方面中,所述第一編碼信息包括第一編碼參數(shù)和所述已編碼幀組已消耗的第一時鐘周期數(shù),所述計算模塊根據(jù)所述第一編碼信息,計算所述當(dāng)前場景下當(dāng)前編碼幀的初始規(guī)劃編碼信息的具體方式包括:
42、根據(jù)所述第一編碼參數(shù),分析所述當(dāng)前場景下的性能約束信息;
43、根據(jù)所述性能約束信息和所述第一時鐘周期數(shù),分析所述當(dāng)前場景下當(dāng)前編碼幀所在的當(dāng)前編碼幀組規(guī)劃消耗的第二時鐘周期數(shù);
44、根據(jù)所述第一時鐘周期數(shù)和所述第二時鐘周期數(shù),計算所述當(dāng)前編碼幀規(guī)劃消耗的第三時鐘周期數(shù)和幀級規(guī)劃編碼參數(shù);
45、根據(jù)所述第三時鐘周期數(shù)和所述幀級規(guī)劃編碼參數(shù),生成所述當(dāng)前編碼幀的初始規(guī)劃編碼信息。
46、作為一種可選的實施方式,在本發(fā)明第二方面中,所述第二編碼信息包括所述在前相鄰編碼樹單元已消耗的第四時鐘周期數(shù),所述計算模塊根據(jù)所述第二編碼信息和所述初始規(guī)劃編碼信息,計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息的具體方式包括:
47、根據(jù)所述第四時鐘周期數(shù)和所述第三時鐘周期數(shù),計算所述當(dāng)前編碼樹單元規(guī)劃消耗的第五時鐘周期數(shù);
48、根據(jù)所述第五時鐘周期數(shù),更新所述幀級規(guī)劃編碼參數(shù),更新后的所述幀級規(guī)劃編碼參數(shù)滿足所述第五時鐘周期數(shù)對應(yīng)的約束條件;
49、獲取所述當(dāng)前編碼樹單元的基本信息;
50、根據(jù)所述基本信息和更新后的所述幀級規(guī)劃編碼參數(shù),計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息。
51、作為一種可選的實施方式,在本發(fā)明第二方面中,所述當(dāng)前編碼樹單元包括多個像素塊,所述基本信息包括像素塊分布信息和像素塊特征信息,所述計算模塊根據(jù)所述基本信息和更新后的所述幀級規(guī)劃編碼參數(shù),計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息的具體方式包括:
52、對于每個所述像素塊,根據(jù)所述像素塊分布信息和像素塊特征信息,匹配與該像素塊相關(guān)聯(lián)的幀內(nèi)多向關(guān)聯(lián)像素塊和幀間參考像素塊;
53、根據(jù)所有所述幀內(nèi)多向關(guān)聯(lián)像素塊,分析所述當(dāng)前編碼樹單元的冗余空間信息;
54、根據(jù)所有所述幀間參考像素塊,分析所述當(dāng)前編碼樹單元的第一運(yùn)動信息,所述第一運(yùn)動信息用于表示所述當(dāng)前編碼樹單元的運(yùn)動情況;
55、根據(jù)第一編碼信息,匹配所述冗余空間信息和所述第一運(yùn)動信息各對應(yīng)的優(yōu)先權(quán)值;
56、根據(jù)所述冗余空間信息、所述第一運(yùn)動信息和各對應(yīng)的所述優(yōu)先權(quán)值,分析所述當(dāng)前編碼樹單元對應(yīng)的圖像復(fù)雜度信息;
57、根據(jù)所述圖像復(fù)雜度信息和更新后的所述幀級規(guī)劃編碼參數(shù),計算所述當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息。
58、作為一種可選的實施方式,在本發(fā)明第二方面中,所述基本信息還包括實際像素值信息,所述計算模塊根據(jù)所有所述幀內(nèi)多向關(guān)聯(lián)像素塊,分析所述當(dāng)前編碼樹單元的冗余空間信息的具體方式包括:
59、對于每個所述像素塊,根據(jù)該像素塊的所述幀內(nèi)多向關(guān)聯(lián)像素塊,預(yù)測該像素塊的第一預(yù)測像素值信息;
60、根據(jù)所有所述第一預(yù)測像素值信息,計算所述當(dāng)前編碼樹單元的第二預(yù)測像素值信息;
61、根據(jù)所述第二預(yù)測像素值信息和所述實際像素值信息,分析所述當(dāng)前編碼樹單元的冗余空間信息,所述冗余空間信息包括預(yù)測偏置值,所述預(yù)測偏置值用于表示所述第二預(yù)測像素值信息與所述實際像素值信息之間的偏差,所述偏差用于表示所述當(dāng)前編碼樹單元中的冗余空間。
62、作為一種可選的實施方式,在本發(fā)明第二方面中,所述幀間參考像素塊在所述已編碼幀組中,所述幀間參考像素塊所在幀為所述當(dāng)前編碼幀的參考幀,所述計算模塊根據(jù)所有所述幀間參考像素塊,分析所述當(dāng)前編碼樹單元的第一運(yùn)動信息的具體方式包括:
63、對于每個所述像素塊,根據(jù)該像素塊的所述幀間參考像素塊,預(yù)測該像素塊的第二運(yùn)動信息,所述第二運(yùn)動信息用于表示所述像素塊基于所述幀間參考像素塊的運(yùn)動情況;
64、根據(jù)所有所述第二運(yùn)動信息,分析所述當(dāng)前編碼樹單元的第一運(yùn)動信息。
65、作為一種可選的實施方式,在本發(fā)明第二方面中,所述裝置還包括:
66、預(yù)測模塊,用于根據(jù)所述目標(biāo)規(guī)劃編碼信息,預(yù)測所述當(dāng)前編碼樹單元的編碼效果信息;
67、判斷模塊,用于判斷所述編碼效果信息與預(yù)設(shè)編碼效果信息是否相匹配;
68、確定模塊,用于當(dāng)所述判斷模塊判斷出所述編碼效果信息與所述預(yù)設(shè)編碼效果信息不相匹配時,則根據(jù)所述預(yù)設(shè)編碼效果信息和所述編碼效果信息,確定至少一個目標(biāo)項和所有所述目標(biāo)項之間的關(guān)聯(lián)信息,所述目標(biāo)項為所述當(dāng)前編碼樹單元中使得所述編碼效果信息與所述預(yù)設(shè)編碼效果信息不相匹配的目標(biāo)像素塊;
69、所述確定模塊,還用于根據(jù)所有所述目標(biāo)項,確定所述目標(biāo)規(guī)劃編碼信息中與所有所述目標(biāo)項相匹配的目標(biāo)參數(shù)信息;
70、調(diào)整模塊,用于根據(jù)所述關(guān)聯(lián)信息、所述預(yù)設(shè)編碼效果信息和所述目標(biāo)參數(shù)信息,調(diào)整所述目標(biāo)規(guī)劃編碼信息。
71、本發(fā)明第三方面公開了另一種硬件編碼器的編碼裝置,所述裝置包括:
72、存儲有可執(zhí)行程序代碼的存儲器;
73、與所述存儲器耦合的處理器;
74、所述處理器調(diào)用所述存儲器中存儲的所述可執(zhí)行程序代碼,執(zhí)行本發(fā)明第一方面公開的硬件編碼器的編碼方法。
75、本發(fā)明第四方面公開了一種計算機(jī)存儲介質(zhì),所述計算機(jī)存儲介質(zhì)存儲有計算機(jī)指令,所述計算機(jī)指令被調(diào)用時,用于執(zhí)行本發(fā)明第一方面公開的硬件編碼器的編碼方法。
76、與現(xiàn)有技術(shù)相比,本發(fā)明實施例具有以下有益效果:
77、本發(fā)明實施例中,檢測當(dāng)前場景下已編碼幀組的第一編碼信息;根據(jù)第一編碼信息,計算當(dāng)前場景下當(dāng)前編碼幀的初始規(guī)劃編碼信息,當(dāng)前編碼幀包括多個編碼樹單元;獲取當(dāng)前編碼幀中當(dāng)前編碼樹單元的在前相鄰編碼樹單元的第二編碼信息;根據(jù)第二編碼信息和初始規(guī)劃編碼信息,計算當(dāng)前編碼樹單元的目標(biāo)規(guī)劃編碼信息,目標(biāo)規(guī)劃編碼信息用于指示硬件編碼器對當(dāng)前編碼樹單元執(zhí)行相匹配的編碼操作??梢?,實施本發(fā)明提出一種幀組級、幀級、單元級相融合的編碼器編碼控制機(jī)制,能夠根據(jù)當(dāng)前場景下當(dāng)前編碼幀之前的已編碼幀組的第一編碼信息,計算當(dāng)前編碼幀的初始規(guī)劃編碼信息,通過獲取到的當(dāng)前編碼幀中當(dāng)前編碼樹單元的在前相鄰編碼樹單元的第二編碼信息,實時調(diào)節(jié)上述計算出的初始規(guī)劃編碼信息,進(jìn)而得到適應(yīng)于當(dāng)前編碼樹單元的用于指示硬件編碼器對當(dāng)前編碼樹單元執(zhí)行相匹配的編碼操作的目標(biāo)規(guī)劃編碼信息,實現(xiàn)合理分配編碼器的運(yùn)算性能,提高編碼樹單元的目標(biāo)規(guī)劃編碼信息的計算準(zhǔn)確性,提高硬件編碼器的編碼靈活性,有利于充分釋放硬件編碼器的編碼性能,還有利于提高編碼圖像的輸出質(zhì)量。