日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

為什么Android的圖片質量會比iPhone的差?

瀏覽:28日期:2022-09-27 17:41:47

經常看到有人問:“安卓版微信發出去的圖片怎么那么渣!比iPhone的差遠了!”。不只是微信,很多應用安卓版的圖片質量就是要比iPhone版遜色很多,這到底是怎么回事?

我們團隊最初也糾結過這個問題,費了半天勁、繞了好大圈,直到最后才發現,原來這是谷歌犯得一個“小”錯誤,而且一直錯到了今天。

谷歌的錯就在于:libjpeg。

為什么Android的圖片質量會比iPhone的差?

libjpeg是廣泛使用的開源JPEG圖像庫(參考 http://en.wikipedia.org/wiki/Libjpeg ),安卓也依賴libjpeg來壓縮圖片。通過查看源碼,我們會發現安卓并不是直接封裝的libjpeg,而是基于了另一個叫Skia的開源項目(http://en.wikipedia.org/wiki/Skia_Graphics_Engine)來作為的圖像處理引擎。Skia是谷歌自己維護著的一個大而全的引擎,各種圖像處理功能均在其中予以實現,并且廣泛的應用于谷歌自己和其它公司的產品中(如:Chrome、Firefox、Android等)。Skia對libjpeg進行了良好的封裝,基于這個引擎可以很方便為操作系統、瀏覽器等開發圖像處理功能。

libjpeg在壓縮圖像時,有一個參數叫optimize_coding,關于這個參數,libjpeg.doc有如下解釋:

boolean optimize_coding TRUE causes the compressor to compute optimal Huffman coding tables for the image. This requires an extra pass over the data and therefore costs a good deal of space and time. The default is FALSE, which tells the compressor to use the supplied or default Huffman tables. In most cases optimal tables save only a few percent of file size compared to the default tables. Note that when this is TRUE, you need not supply Huffman tables at all, and any you do supply will be overwritten.

這段話大概的意思就是如果設置optimize_coding為TRUE,將會使得壓縮圖像過程中基于圖像數據計算哈弗曼表(關于圖片壓縮中的哈弗曼表,請自行查閱相關資料),由于這個計算會顯著消耗空間和時間,默認值被設置為FALSE。

這段解釋乍看起來沒有任何問題,libjpeg的代碼也經受了十多年的考驗,健壯而高效。但很多人忽略了這一點,那就是,這段解釋是十多年前寫的,對于當時的計算設備來說,空間和時間的消耗可能是顯著的,但到今天,這似乎不應再是問題,相反,我們應該更多的考慮圖片的品質(越來越好的顯示技術)和圖片的大小(越來越依賴于云服務)。

谷歌的Skia項目工程師們最終沒有設置這個參數,optimize_coding在Skia中默認的等于了FALSE,這就意味著更差的圖片質量和更大的圖片文件,而壓縮圖片過程中所耗費的時間和空間其實反而是可以忽略不計的。那么,這個參數的影響究竟會有多大呢?

經我們實測,使用相同的原始圖片,分別設置optimize_coding=TRUE和FALSE進行壓縮,想達到接近的圖片質量(用Photoshop放大到像素級逐塊對比),FALSE時的圖片大小大約是TRUE時的5-10倍。換句話說,如果我們想在FALSE和TRUE時壓縮成相同大小的JPEG圖片,FALSE的品質將大大遜色于TRUE的(雖然品質很難量化,但我們不妨說成是差5-10倍)。

我們又對Android和iOS進行了對比(均使用標準的JPEG壓縮方法),兩個系統都沒有提供設置optimize_coding的接口(通過閱讀源碼,我們已經知道Android是FALSE,iOS不詳),當壓縮相同的原始圖片時,結果也是一樣,iOS完勝。想要品質接近,文件大小就會差出5-10倍,而如果要壓縮出相同大小的文件,Android的壓縮品質簡直就是慘不忍睹。

結果說明,蘋果很清楚optimize_coding參數和哈弗曼表的意義,這里需要特別指出,蘋果使用的哈弗曼表算法與libjpeg(及我們后來自行采用的libjpeg-turbo)不同,像素級可以看出區別,蘋果似乎基于libjpeg又進行了進一步的優化,壓縮出來的圖片細節上更柔和、更平滑。

以上試驗,我們嘗試過多個原圖、多種壓縮比例,試驗結果均類似,如有興趣,您不妨也自行進行嘗試。

最終我們決定,不再使用安卓系統原生的JPEG壓縮方法,而是基于libjpeg-turbo自行編譯了一版native的安卓庫,專門用來壓縮圖片,這樣在我們的產品中,就做到了僅僅用1/5的圖片大小,就能讓用戶得到不遜色甚至更優的圖片品質,對于我們團隊來說,費了半天勁、繞了好大圈是非常值得的。(使用libjpeg-turbo還有性能上的好處,這里就不再贅述了)

最后,附上我們團隊在github上的開源項目地址,供參考:https://github.com/bither

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品欧美精品| 亚洲综合五月| 91嫩草精品| 青草av.久久免费一区| 蜜桃成人av| 久久男女视频| 日韩精品国产欧美| 日韩视频精品在线观看| 午夜精品亚洲| 亚洲精品极品| 国产福利一区二区精品秒拍| 久久精品国产999大香线蕉 | 九九综合九九| 先锋影音国产一区| 欧美日韩伊人| 日本在线视频一区二区| 亚洲精品无播放器在线播放| 国产伦精品一区二区三区视频| 国产成人精品三级高清久久91| 在线精品亚洲欧美日韩国产| 久久亚州av| 91精品国产调教在线观看| 丝袜脚交一区二区| 国产精品高清一区二区| 久久精选视频| 欧美日韩精品一区二区三区视频 | 桃色一区二区| 国产精品日韩久久久| 欧美日本不卡高清| 久久九九精品| 日本不卡视频一二三区| 国产精品13p| 欧美成人国产| 精品丝袜久久| 亚洲欧美日韩一区在线观看| 欧美视频久久| 桃色av一区二区| 国产精品66| 亚洲成人不卡| 91精品国产经典在线观看| 伊人成人在线视频| 国产一区二区三区不卡视频网站| 精品黄色一级片| 久久国产电影| 欧美午夜三级| 高清av一区| 免费黄网站欧美| 国产日韩1区| 午夜一级在线看亚洲| 狂野欧美性猛交xxxx| 婷婷丁香综合| 老牛国内精品亚洲成av人片| 日韩午夜av在线| 麻豆91小视频| 日韩精选在线| 久久影视一区| 精品视频自拍| 亚州精品视频| 国产综合亚洲精品一区二| 一区二区三区网站| 亚洲国产一区二区在线观看| 欧美一区三区| 欧美国产亚洲精品| 亚洲精品综合| 丝袜美腿一区二区三区| 黄色亚洲免费| 国产成人免费| 国产精品一区二区av交换 | 久久电影tv| 国产精品免费不| 日韩黄色av| 亚洲色诱最新| 精品高清久久| 91九色综合| 蜜臀久久99精品久久久久宅男| 精品亚洲成人| 麻豆一区二区99久久久久| 亚洲一二三区视频| 美女视频免费精品| 91亚洲无吗| 久久国产精品免费精品3p| 亚洲伊人影院| 老色鬼久久亚洲一区二区| 欧美福利一区| 亚洲v在线看| 精品免费视频| 国产亚洲精品美女久久久久久久久久| 日本h片久久| 黄色在线一区| 国产理论在线| 中文字幕成在线观看| 国产a亚洲精品| 91伊人久久| 青青草视频一区| 国产精品色在线网站| 国产精品永久| 日本成人中文字幕| 欧美亚洲网站| 欧美极品一区二区三区| 日韩精品91| 日韩免费精品| 国产欧美日韩综合一区在线播放| 国产日韩一区二区三区在线播放| 日本午夜大片a在线观看| 青青草伊人久久| 国产一卡不卡| 麻豆成人av在线| 免费观看久久av| 亚洲精品一区二区妖精| 一区二区精品| 中文字幕中文字幕精品| 性色av一区二区怡红| 欧美一区免费| 福利精品在线| 亚洲精品九九| 欧美日韩午夜| 石原莉奈在线亚洲二区| 午夜精品影视国产一区在线麻豆| 国产夫妻在线| 国产精品毛片在线| 亚洲人成高清| 日韩中文字幕麻豆| 日本不卡视频一二三区| 久久免费精品| 另类综合日韩欧美亚洲| 久久久一本精品| 国产在线|日韩| 视频一区在线播放| 亚洲欧洲一区二区天堂久久| 天堂成人免费av电影一区| 石原莉奈在线亚洲三区| 99综合视频| 久久精品99久久久| 最新亚洲一区| 九九九精品视频| 日韩网站中文字幕| 免费视频最近日韩| 亚洲欧美一级| 久久天堂影院| 日韩精品一区二区三区免费观影| 亚洲精品动态| 亚洲久久一区| 婷婷亚洲成人| 四虎成人av| 欧美一区二区三区激情视频| 国产精品白丝久久av网站| 欧美日韩亚洲一区二区三区在线| 精品国产精品国产偷麻豆| 欧美日韩国产在线一区| 日韩动漫一区| 精品久久久网| 日韩一区欧美| 亚洲一级淫片| 精品资源在线| 久久男人天堂| 亚洲夜间福利| 亚洲精品成人一区| 精品国模一区二区三区| 影视先锋久久| 日韩免费小视频| 国产91一区| 亚洲欧美视频一区二区三区| 国产精品亚洲欧美一级在线| 三级在线看中文字幕完整版| 丁香六月综合| 麻豆中文一区二区| 国产一区二区三区91| 日韩av资源网| 麻豆国产精品777777在线| 亚洲一区有码| 精品美女在线视频| 国产日产一区| 亚洲欧美网站| 欧美国产精品| 美日韩精品视频| 91欧美在线| 日韩精品一页| 亚洲91久久| 国产情侣久久| 7777精品| 91亚洲国产高清| 亚洲人成网站在线在线观看| 日韩电影免费网站| 日本视频一区二区| 亚洲不卡系列| 国产乱人伦精品一区| 中文在线资源| 日韩av在线中文字幕| 美女网站久久| 欧美一级一区| 亚洲涩涩在线| 精品久久精品| 久久aⅴ国产紧身牛仔裤| 亚洲日产国产精品| 亚洲区国产区| 丁香六月综合| 欧美午夜精彩| 日韩av网站免费在线| 国产精品99精品一区二区三区∴| 91日韩在线|