本技術(shù)涉及圖像處理,特別是涉及一種圖像壓縮方法、裝置、計算機設(shè)備、存儲介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、圖像壓縮可以有效降低圖像數(shù)據(jù)的大小,從而可以有利于圖像存儲、圖像傳輸以及其它下游業(yè)務(wù),因此通常會對圖像進行壓縮。傳統(tǒng)的圖像壓縮方式,主要是采用特定的壓縮算法對圖像進行壓縮,通常不考慮圖像中是否存在對象的邊緣區(qū)域,導(dǎo)致經(jīng)過壓縮后,圖像的邊緣區(qū)域會出現(xiàn)質(zhì)量問題;而且,即使考慮邊緣區(qū)域,但在識別圖像中對象的邊緣區(qū)域時,為了避免只采用當(dāng)前行的像素信息進行識別而導(dǎo)致準(zhǔn)確性低的問題,通常會保留上一行或多行的像素信息,從而在對當(dāng)前行進行檢測時,會結(jié)合當(dāng)前行的像素信息以及上一行或多行的像素信息來判斷當(dāng)前行是否屬于邊緣區(qū)域。
2、然而,傳統(tǒng)的圖像壓縮方式中,若不考慮對象的邊緣區(qū)域,經(jīng)過壓縮后圖像的邊緣區(qū)域會出現(xiàn)質(zhì)量問題,若考慮對象的邊緣區(qū)域,完全保留上一行或多行的像素信息,則會導(dǎo)致空間占用成本較大。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種圖像壓縮方法、裝置、計算機設(shè)備、存儲介質(zhì)和程序產(chǎn)品,能夠既能確保壓縮后圖像的邊緣區(qū)域的圖像質(zhì)量,又能有效降低空間占用的成本。
2、第一方面,本技術(shù)提供了一種圖像壓縮方法,所述方法包括:
3、在圖像的當(dāng)前圖塊中檢測出滿足目標(biāo)條件的區(qū)域,得到由所述區(qū)域中的像素值構(gòu)成的平坦子序列;其中,所述目標(biāo)條件為所述當(dāng)前圖塊中存在最大像素值與最小像素值之間的差值小于預(yù)設(shè)閾值的區(qū)域、且所述當(dāng)前圖塊整體的最大像素值與最小像素值之間的差值大于所述預(yù)設(shè)閾值;
4、根據(jù)所述平坦子序列確定信息記錄所需的第一比特數(shù),按照所述第一比特數(shù)記錄所述平坦子序列的關(guān)鍵信息;所述關(guān)鍵信息包括序列存在性、所述平坦子序列的起點位置和起點像素值;
5、判斷所述平坦子序列的起點位置與在先圖塊中平坦子序列的起點位置是否滿足預(yù)設(shè)臨近條件,以及判斷所述平坦子序列的起點像素值與所述在先圖塊中平坦子序列的起點像素值是否滿足預(yù)設(shè)匹配條件;所述在先圖塊是在所述當(dāng)前圖塊之前執(zhí)行了編碼處理的在先行的至少一個圖像塊,記錄所述在先圖塊的關(guān)鍵信息所需的比特數(shù)為所述第一比特數(shù);
6、若滿足所述預(yù)設(shè)臨近條件和所述預(yù)設(shè)匹配條件,則將所述當(dāng)前圖塊確定為邊緣區(qū)域,為所述邊緣區(qū)域分配編碼時所需的第二比特數(shù);所述第二比特數(shù)大于為非邊緣區(qū)域分配的比特數(shù);
7、按照所述第二比特數(shù)對所述當(dāng)前圖塊進行編碼,得到所述當(dāng)前圖塊的編碼結(jié)果。
8、在其中一個實施例中,所述在圖像的當(dāng)前圖塊中檢測出滿足目標(biāo)條件的區(qū)域,得到由所述區(qū)域中的像素值構(gòu)成的平坦子序列包括:
9、在圖像的當(dāng)前圖塊中,采用滑動窗口檢測是否存在最大像素值與最小像素值之間的差值小于預(yù)設(shè)閾值的區(qū)域;
10、若存在小于所述預(yù)設(shè)閾值的區(qū)域,則檢測所述當(dāng)前圖塊整體的最大像素值與最小像素值之間的差值是否大于所述預(yù)設(shè)閾值;
11、若大于所述預(yù)設(shè)閾值,則所述區(qū)域滿足所述目標(biāo)條件,將所述區(qū)域中的像素值組成平坦子序列。
12、在其中一個實施例中,所述根據(jù)所述平坦子序列確定信息記錄所需的第一比特數(shù)包括:
13、為記錄序列存在性分配所需的第一子比特數(shù);
14、為記錄所述平坦子序列的起點位置分配所需的第二子比特數(shù);
15、根據(jù)所述平坦子序列的像素值大小,為記錄所述平坦子序列的起點像素值分配所需的第三子比特數(shù);
16、對所述第一子比特數(shù)、所述第二子比特數(shù)和所述第三子比特數(shù)進行求和,得到信息記錄所需的第一比特數(shù)。
17、在其中一個實施例中,所述判斷所述平坦子序列的起點位置與在先圖塊中平坦子序列的起點位置是否滿足預(yù)設(shè)臨近條件,以及判斷所述平坦子序列的起點像素值與所述在先圖塊中平坦子序列的起點像素值是否滿足預(yù)設(shè)匹配條件包括:
18、計算所述平坦子序列的起點位置與在先圖塊中平坦子序列的起點位置之間的距離,判斷所述距離是否小于預(yù)設(shè)距離;
19、所述平坦子序列的起點像素值與所述在先圖塊中平坦子序列的起點像素值之間的像素差值,判斷所述像素差值是否小于第一預(yù)設(shè)差值;
20、所述若滿足所述預(yù)設(shè)臨近條件和所述預(yù)設(shè)匹配條件,則將所述當(dāng)前圖塊確定為邊緣區(qū)域包括:
21、若所述距離小于或等于所述預(yù)設(shè)距離、且所述像素差值小于或等于所述第一預(yù)設(shè)差值,則將所述當(dāng)前圖塊確定為邊緣區(qū)域。
22、在其中一個實施例中,所述方法還包括:
23、判斷所述當(dāng)前圖塊中平坦子序列的起點位置與所述在先圖塊中平坦子序列的起點位置是否朝相同方向偏移;
24、所述若滿足所述預(yù)設(shè)臨近條件和所述預(yù)設(shè)匹配條件,則將所述當(dāng)前圖塊確定為邊緣區(qū)域包括:
25、若所述起點位置朝相同方向偏移、滿足所述預(yù)設(shè)臨近條件和所述預(yù)設(shè)匹配條件,則將所述當(dāng)前圖塊確定為邊緣區(qū)域。
26、在其中一個實施例中,所述方法還包括:
27、對所述當(dāng)前圖塊中的平坦子序列進行長度計算,得到第一長度;
28、對所述在先圖塊中的平坦子序列進行長度計算,得到第二長度;或者,所述在先圖塊的關(guān)鍵信息和所述當(dāng)前圖塊的關(guān)鍵信息均包括長度信息,根據(jù)記錄的所述長度信息確定所述在先圖塊中平坦子序列的長度,得到所述第二長度;
29、判斷所述第一長度與所述第二長度之間的差值小于或等于第二預(yù)設(shè)差值;
30、所述若所述起點位置朝相同方向偏移、滿足所述預(yù)設(shè)臨近條件和所述預(yù)設(shè)匹配條件,則將所述當(dāng)前圖塊確定為邊緣區(qū)域包括:
31、若所述差值小于或等于所述第二預(yù)設(shè)差值、所述起點位置朝相同方向偏移、滿足所述預(yù)設(shè)臨近條件和所述預(yù)設(shè)匹配條件,則將所述當(dāng)前圖塊確定為邊緣區(qū)域。
32、第二方面,本技術(shù)還提供了一種圖像壓縮裝置,所述裝置包括:
33、檢測模塊,用于在圖像的當(dāng)前圖塊中檢測出滿足目標(biāo)條件的區(qū)域,得到由所述區(qū)域中的像素值構(gòu)成的平坦子序列;其中,所述目標(biāo)條件為所述當(dāng)前圖塊中存在最大像素值與最小像素值之間的差值小于預(yù)設(shè)閾值的區(qū)域、且所述當(dāng)前圖塊整體的最大像素值與最小像素值之間的差值大于所述預(yù)設(shè)閾值;
34、記錄模塊,用于根據(jù)所述平坦子序列確定信息記錄所需的第一比特數(shù),按照所述第一比特數(shù)記錄所述平坦子序列的關(guān)鍵信息;所述關(guān)鍵信息包括序列存在性、所述平坦子序列的起點位置和起點像素值;
35、第一判斷模塊,用于判斷所述平坦子序列的起點位置與在先圖塊中平坦子序列的起點位置是否滿足預(yù)設(shè)臨近條件,以及判斷所述平坦子序列的起點像素值與所述在先圖塊中平坦子序列的起點像素值是否滿足預(yù)設(shè)匹配條件;所述在先圖塊是在所述當(dāng)前圖塊之前執(zhí)行了編碼處理的在先行的至少一個圖像塊,記錄所述在先圖塊的關(guān)鍵信息所需的比特數(shù)為所述第一比特數(shù);
36、分配模塊,用于若滿足所述預(yù)設(shè)臨近條件和所述預(yù)設(shè)匹配條件,則將所述當(dāng)前圖塊確定為邊緣區(qū)域,為所述邊緣區(qū)域分配編碼時所需的第二比特數(shù);所述第二比特數(shù)大于為非邊緣區(qū)域分配的比特數(shù);
37、編碼模塊,用于按照所述第二比特數(shù)對所述當(dāng)前圖塊進行編碼,得到所述當(dāng)前圖塊的編碼結(jié)果。
38、在其中一個實施例中,所述檢測模塊,還用于在圖像的當(dāng)前圖塊中,采用滑動窗口檢測是否存在最大像素值與最小像素值之間的差值小于預(yù)設(shè)閾值的區(qū)域;若存在小于所述預(yù)設(shè)閾值的區(qū)域,則檢測所述當(dāng)前圖塊整體的最大像素值與最小像素值之間的差值是否大于所述預(yù)設(shè)閾值;若大于所述預(yù)設(shè)閾值,則所述區(qū)域滿足所述目標(biāo)條件,將所述區(qū)域中的像素值組成平坦子序列。
39、在其中一個實施例中,所述記錄模塊,還用于為記錄序列存在性分配所需的第一子比特數(shù);為記錄所述平坦子序列的起點位置分配所需的第二子比特數(shù);根據(jù)所述平坦子序列的像素值大小,為記錄所述平坦子序列的起點像素值分配所需的第三子比特數(shù);對所述第一子比特數(shù)、所述第二子比特數(shù)和所述第三子比特數(shù)進行求和,得到信息記錄所需的第一比特數(shù)。
40、在其中一個實施例中,所述第一判斷模塊,還用于計算所述平坦子序列的起點位置與在先圖塊中平坦子序列的起點位置之間的距離,判斷所述距離是否小于預(yù)設(shè)距離;所述平坦子序列的起點像素值與所述在先圖塊中平坦子序列的起點像素值之間的像素差值,判斷所述像素差值是否小于第一預(yù)設(shè)差值;
41、所述分配模塊,還用于若所述距離小于或等于所述預(yù)設(shè)距離、且所述像素差值小于或等于所述第一預(yù)設(shè)差值,則將所述當(dāng)前圖塊確定為邊緣區(qū)域。
42、在其中一個實施例中,所述裝置還包括:
43、第二判斷模塊,用于判斷所述當(dāng)前圖塊中平坦子序列的起點位置與所述在先圖塊中平坦子序列的起點位置是否朝相同方向偏移;
44、所述分配模塊,還用于若所述起點位置朝相同方向偏移、滿足所述預(yù)設(shè)臨近條件和所述預(yù)設(shè)匹配條件,則將所述當(dāng)前圖塊確定為邊緣區(qū)域。
45、在其中一個實施例中,所述裝置還包括:
46、計算模塊,用于對所述當(dāng)前圖塊中的平坦子序列進行長度計算,得到第一長度;對所述在先圖塊中的平坦子序列進行長度計算,得到第二長度;或者,所述在先圖塊的關(guān)鍵信息和所述當(dāng)前圖塊的關(guān)鍵信息均包括長度信息,根據(jù)記錄的所述長度信息確定所述在先圖塊中平坦子序列的長度,得到所述第二長度;
47、第三判斷模塊,用于判斷所述第一長度與所述第二長度之間的差值小于或等于第二預(yù)設(shè)差值;
48、所述分配模塊,還用于若所述差值小于或等于所述第二預(yù)設(shè)差值、所述起點位置朝相同方向偏移、滿足所述預(yù)設(shè)臨近條件和所述預(yù)設(shè)匹配條件,則將所述當(dāng)前圖塊確定為邊緣區(qū)域。
49、第三方面,本技術(shù)還提供了一種計算機設(shè)備,所述計算機設(shè)備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)所述圖像壓縮方法的步驟。
50、第四方面,本技術(shù)還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)所述圖像壓縮方法的步驟。
51、第五方面,本技術(shù)還提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)所述圖像壓縮方法的步驟。
52、上述圖像壓縮方法、裝置、計算機設(shè)備、存儲介質(zhì)和程序產(chǎn)品,在圖像的當(dāng)前圖塊中檢測出滿足目標(biāo)條件的區(qū)域,得到由區(qū)域中的像素值構(gòu)成的平坦子序列;其中,目標(biāo)條件為當(dāng)前圖塊中存在最大像素值與最小像素值之間的差值小于預(yù)設(shè)閾值的區(qū)域、且當(dāng)前圖塊整體的最大像素值與最小像素值之間的差值大于預(yù)設(shè)閾值;根據(jù)平坦子序列確定信息記錄所需的第一比特數(shù),按照第一比特數(shù)記錄平坦子序列的關(guān)鍵信息;關(guān)鍵信息包括序列存在性、平坦子序列的起點位置和起點像素值;判斷平坦子序列的起點位置與在先圖塊中平坦子序列的起點位置是否滿足預(yù)設(shè)臨近條件,以及判斷平坦子序列的起點像素值與在先圖塊中平坦子序列的起點像素值是否滿足預(yù)設(shè)匹配條件;在先圖塊是在當(dāng)前圖塊之前執(zhí)行了編碼處理的在先行的至少一個圖像塊,記錄在先圖塊的關(guān)鍵信息所需的比特數(shù)為第一比特數(shù);若滿足預(yù)設(shè)臨近條件和預(yù)設(shè)匹配條件,則將當(dāng)前圖塊確定為邊緣區(qū)域,為邊緣區(qū)域分配編碼時所需的第二比特數(shù);第二比特數(shù)大于為非邊緣區(qū)域分配的比特數(shù);按照第二比特數(shù)對當(dāng)前圖塊進行編碼,得到當(dāng)前圖塊的編碼結(jié)果。因此,本技術(shù)的圖像壓縮方法不僅考慮了圖像中對象的邊緣區(qū)域,從而在經(jīng)過圖像壓縮后的邊緣區(qū)域也能確保圖像清晰度,而且在識別當(dāng)前圖塊是否為邊緣區(qū)域時,還會考慮在先圖塊的平坦子序列的關(guān)鍵信息,不僅可以進一步有效提高邊緣區(qū)域經(jīng)過壓縮后的清晰度,而且在保存在先圖塊的平坦子序列的關(guān)鍵信息時,所需的空間占用成本低。