1 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
首先,我假設(shè)您的視頻,音頻和圖像文件已經(jīng)使用有損算法進(jìn)行了壓縮。在這種情況下,您通常將無(wú)法使用其他不同的壓縮算法來(lái)壓縮數(shù)據(jù)。如果文本數(shù)據(jù)通常只是整個(gè)數(shù)據(jù)集的一小部分,我認(rèn)為我根本不會(huì)理會(huì)應(yīng)用任何進(jìn)一步的壓縮,因?yàn)樵黾榆浖膹?fù)雜性以獲得很小的整體收益是沒(méi)有道理的。例如,如果您將一個(gè)10MB的音頻文件與一個(gè)5kB的文本文件結(jié)合在一起,并且能夠?qū)⑽谋緣嚎s到1kB(這可能比您實(shí)際實(shí)現(xiàn)的要好得多),那么數(shù)據(jù)包的完整大小只會(huì)從10.005MB減少到10.001MB,或減少0.04%。
如果文本量通常很高,以至于您可以證明壓縮的合理性,則Android使用標(biāo)準(zhǔn)的Android API支持inflate / deflate和gzip。還有用于 bzip2 和 lzma(2) 的 3rd 方 Java 庫(kù),我想它們可以在不修改 Android 的情況下編譯(不過(guò)我還沒(méi)有嘗試過(guò))。Google可以快速搜索到Go的gzip,bzip2和lzma實(shí)現(xiàn)。
這些算法通常以更高的計(jì)算成本和以下內(nèi)存要求為代價(jià)更好地壓縮數(shù)據(jù):deflate,gzip,bzip2,lzma。特別是lzma編碼器/解碼器可能需要比Android應(yīng)用程序?qū)嶋H可用的內(nèi)存更多的內(nèi)存。特別是壓縮器需要相對(duì)更多的內(nèi)存,而如果您使用較小的字典,則解碼器不需要的太多。
- 1 回答
- 0 關(guān)注
- 232 瀏覽
添加回答
舉報(bào)