本發(fā)明涉及軟件開發(fā)領域,具體涉及一種圖片壓縮方法、系統(tǒng)和存儲介質。
背景技術:
1、現(xiàn)如今上傳圖片的場景及處理方式一般有如下兩種:
2、第一種系統(tǒng)限制圖片大小和像素,并且系統(tǒng)不支持自動壓縮。此時前端服務往往直接強制限制了圖片的大小。
3、第二種是系統(tǒng)只限制圖片大小不要求圖片分辨率,并且系統(tǒng)支持一定比例尺寸大小的自動壓縮。用戶可直接上傳一定大小的圖片,系統(tǒng)服務根據要求自動對圖片進行一定范圍的大小壓縮。
4、上述現(xiàn)有技術中,現(xiàn)有的圖片壓縮與存儲方法往往采用固定的壓縮比例或者簡單的算法,當圖片過大時可能導致壓縮過后的圖片重點不清晰。
技術實現(xiàn)思路
1、為實現(xiàn)上述目的及其它相關目的,本發(fā)明公開一種圖片壓縮方法,包括:
2、接收用戶上傳的圖片,并對圖片進行判斷;
3、若圖片大小小于預設圖片大小閾值,則對圖片直接進行預壓縮,生成預壓縮圖片;
4、若圖片大小大于預設圖片大小閾值,則根據圖片計算得到動態(tài)壓縮率,根據動態(tài)壓縮率對圖片進行預壓縮,生成預壓縮圖片,其中,所述動態(tài)壓縮率為:
5、cri=ai/(ai+ci);
6、其中,cri為第i個區(qū)域的動態(tài)壓縮率,ai為圖片中的第i個區(qū)域的重要性權重,ci為第i個區(qū)域的復雜度指標;
7、對預壓縮圖片進行檢驗,若其大小和分辨率大于預設的圖片大小閾值和圖片分辨率閾值,則通過優(yōu)化算法確定壓縮參數(shù),根據壓縮參數(shù)對預壓縮圖片進行壓縮,并反復執(zhí)行該步驟,直到預壓縮圖片符合大小和分辨率要求,此時將預壓縮圖片作為最終壓縮圖片;
8、對最終壓縮圖片進行存儲。
9、進一步的,所述通過優(yōu)化算法確定壓縮參數(shù)包括:
10、p=arg?minp(qloss(p)+λ?sizediff(p));
11、其中p為壓縮參數(shù),qloss(p)為以p為自變量的質量損失函數(shù),sizediff(p)為壓縮后圖像大小與目標大小的差異,λ為正則化參數(shù),上述公式表示,p值需滿足qloss(p)+λ?sizediff(p)為最小值。
12、進一步的,所述對最終壓縮圖片進行存儲包括:
13、根據不同的存儲介質和網絡延遲時間計算存儲決策值:
14、d=s(r)*t/x;
15、其中s(r)為取決于存儲介質r的成本函數(shù),t為當前網絡環(huán)境下的網絡延遲時間,x為用戶上傳的圖片大??;
16、根據決策值選擇數(shù)值最低的存儲介質和上傳時間,將圖片上傳到對象存儲系統(tǒng)內進行持久化存儲。
17、進一步的,所述質量損失函數(shù)為衡量壓縮后圖片相對于原圖損失程度的函數(shù),基于峰值信噪比或結構相似性指數(shù)進行定義。
18、另一方面,本發(fā)明還提供了一種圖片壓縮系統(tǒng),包括:
19、圖片接收模塊,用于接收用戶上傳的圖片;
20、預處理模塊,用于對圖片進行判斷并預處理;
21、若圖片大小小于預設圖片大小閾值,則對圖片直接進行預壓縮,生成預壓縮圖片;
22、若圖片大小大于預設圖片大小閾值,則根據圖片計算得到動態(tài)壓縮率,根據動態(tài)壓縮率對圖片進行預壓縮,生成預壓縮圖片,其中,所述動態(tài)壓縮率為:
23、cri=ai/(ai+ci);
24、其中,cri為第i個區(qū)域的動態(tài)壓縮率,ai為圖片中的第i個區(qū)域的重要性權重,ci為第i個區(qū)域的復雜度指標;
25、圖片壓縮模塊,用于對預壓縮圖片進行檢驗,若其大小和分辨率大于預設的圖片大小閾值和圖片分辨率閾值,則通過優(yōu)化算法確定壓縮參數(shù),根據壓縮參數(shù)對預壓縮圖片進行壓縮,并反復執(zhí)行該步驟,直到預壓縮圖片符合大小和分辨率要求,此時將預壓縮圖片作為最終壓縮圖片;
26、存儲模塊,用于對最終壓縮圖片進行存儲。
27、另一方面,本發(fā)明還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)上述所述的方法。
28、通過采用上述技術方案,接收到用戶上傳的圖片時,首先判斷圖片的大小,若圖片大小小于預設圖片大小閾值,則對圖片直接進行預壓縮,生成預壓縮圖片,若圖片大小大于預設圖片大小閾值,則根據圖片計算得到動態(tài)壓縮率,根據動態(tài)壓縮率對圖片進行預壓縮,生成預壓縮圖片,對重要性較高的區(qū)域進行保護;之后對預壓縮圖片進行壓縮,使得圖片在符合大小和分辨率的前提下,盡可能平衡質量以及圖像大小之間的差異,提高綜合壓縮質量;之后考慮存儲成本和上傳的時間成本,選擇合適的存儲介質和上傳時間對圖片進行上傳,動態(tài)平衡了圖片質量、壓縮效率以及成本之間的關系。
1.一種圖片壓縮方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述通過優(yōu)化算法確定壓縮參數(shù)包括:
3.根據權利要求1所述的方法,其特征在于,所述對最終壓縮圖片進行存儲包括:
4.根據權利要求2所述的方法,其特征在于,所述質量損失函數(shù)為衡量壓縮后圖片相對于原圖損失程度的函數(shù),基于峰值信噪比或結構相似性指數(shù)進行定義。
5.一種圖片壓縮系統(tǒng),其特征在于,包括:
6.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執(zhí)行時實現(xiàn)權利要求1-4之一所述的方法。