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