QQ群中的表情圖片的畫質是如何越傳越差的?

經常混QQ群,特別是二次元群的人或多或少都會發一些表情如「然而猴王早已看穿一切」「行行行你胸大你來說」之類的表情包,剛開始畫質還算正常,一段時間過去後就會發現這些圖片畫質越來越差。如下

可以看出白色部分有些許的變綠 ,我猜想是QQ之間經過多次傳圖,保存傳新圖就會出現這種情況,於是找了張北上大魔王

再經過多次(200多次(這裡要感謝某cern指點我用按鍵精靈 不然我手已經斷了))互傳之後

衣服和頭髮邊緣部分出現了明顯的條紋 不過似乎僅此而已了.沒有出現白色變成綠色的情況 後來縮小了200次小破後的北上圖又進行了一百來次的實驗

感覺畫質還行啊,和

這個比起來還是非常清晰的。

那麼以上實驗算是失敗了:沒有白色部分變綠 、畫質也沒變非常差。

可能原因:猜想錯誤、實驗方式不對(比如貼吧微博等環境的影響、手機QQ的影響?不過只是猜想)、實驗次數不足 等。

那麼問題來了,到底是什麼原因導致的. 可能涉及到圖像處理和jpeg演算法這一塊吧...


最終結論:一切都是百度的錯!!!!!!
-------------------------------------------------2016.10.12更新-------------------------------------------------
為什麼圖片反覆壓縮後會普遍會變綠而不是其他顏色? - 互聯網
我還真沒想到是用了不標準的JPEG演算法導致的,我實驗時調用的是Mathematica的標準演算法
該回答認為這個是谷歌的錯,這個bug是在2016 年 4 月修復的

本回答是在2016年3月5日作答的,而現在我仍然保留我的意見
因為當時我也測試過QQ,手機與電腦互傳20次後並沒有變綠(知乎也沒有這個問題)
Chrome瀏覽器我更是一直在用,在看到這個答案之前我並沒有注意到過這個問題
因此,我仍然堅持我當時的實驗結果,百度貼吧的演算法問題額外的嚴重...
-------------------------------------------------以下為原答案-----------------------------------------------------
有三個可能性
第一種:截圖放縮導致的固有問題.
第二種:圖片格式的壓縮問題.
第三種:某些平台的問題演算法.
------------------------------------------------------------------------------------------------------------------------
我們一個一個來分析,首先請允許我做一個滑稽的表情

說實話,我根本找不到不綠的滑稽大圖.....
先第一種可能性,模擬截圖,放大,截圖,縮小,截圖,截圖.......

小圖已不忍直視,大圖表示毫無壓力....
當然其實不用這麼傻乎乎的迭代,用中心極限定理易證無限次放縮截圖的操作等價於進行了一次高斯模糊,大解析度的圖片對於低強度的高斯模糊抗性高.
但是,這個效果和例圖效果根本不一樣啊....

截屏而造成該問題的可能性排除

------------------------------------------------------------------------------------------------------------------------
JPEG壓縮使用基於8*8塊大小的離散餘弦變換的有損壓縮方法.
可以猜想是因為這種信息損失的累積導致了最終的結果.
做個試驗,有損壓縮100次.

大圖仍舊毫無壓力.....

結論:JPEG有損壓縮導致了色塊化的模糊,與例圖效果相同.
可以發現,這圖要麼變紅,要麼變灰,怎麼著也不會變綠.

圖片有損壓縮是造成該效果的兇手.
但是給圖片戴綠帽的主謀則另有其人.

------------------------------------------------------------------------------------------------------------------------------------
嘗試了各大軟體,最後發現罪魁禍首是百度貼吧(安卓端):

我來看看百度到底幹了啥喪心病狂的事兒:

這個病態的演算法導致RGB中的R左偏與B"相消"
效果就是,R和B幾乎沒了,只剩Green了那就綠了.....

或許是百度程序員為了防止圖片在離散餘弦變換下變紅就每次變換加了一點點綠色?

這一個大鍋甩百度頭上也不大對,因為實驗可以看出30次迭代以後基本上就收斂了.用同一種方法艹表情總會收斂,但是這表情輾轉於各大平台,被各種方法花樣艹,想直視都難啊...
百度啊百度,看看你幹了什麼,真是罪大惡極,給80萬表情包戴上了綠帽...你看看,你看看,現在還有多少表情包不是綠的...哎呀呀........


啥??我一直以為是故意用這樣的圖呢,圖越破越傳神,越能體會出發圖者的不拘一格與不屑,更具調戲風味。。


那會fb表情包的時候灣灣們也說這個事來著,「你看他們用這麼劣質的圖,真是體現種族的xxxxxx」,然後他們發了很多精雕細琢、解析度超大,充分體現平面設計的精美圖片以顯示他們是優質人種。然而覺得他們的圖毫無樂趣可言。

原來只有我一個人想歪了。

========更新========
太開心了原來很多人都跟我想法一樣!答題時其他答案傾向認為這種高糊圖片不利於繼續傳播。以後如果有人發高清表情包,我真的會犯尷尬癌。。都怪你們的贊。。


http://tieba.baidu.com/p/4365871582
結論:都?賴百度貼吧


因為表情的傳播不只是 QQ,貼吧、微博、各種小論壇都有可能成為傳播路徑,而這些網站的壓縮參數未必都相同,畫質損耗就比較快了。
更別提把某個被多次壓縮過的表情作為素材進行二次創作的情形,平移破壞分區 DCT,旋轉縮放更是會直接引入畫質損耗,幾輪下來,表情就沒法看了。


謝邀。類似這個問題的在知乎已經被深入討論過,有空我給你找找答案。

=================================================

這個:
為什麼圖片反覆壓縮後會普遍會變綠而不是其他顏色? - 互聯網


這個現象在百度宇宙物理學裡簡稱綠移


百度罪名又加一條


高糊才是這種表情的精髓啊,你們沒覺得高清矢量表情很尷尬很傻逼嗎?


現在看清晰的反而覺得不對味兒了




是不是有些人懶得保存直接截圖下來…然後越截圖越差…


就我一個人覺得全是像素點很渣的畫質非常帶感?
之前自己做表情還故意搞成髒兮兮的樣子……


這是 Android 圖像庫的一個 bug,
標準的 JPEG 在做色彩空間轉換的時候,會用至少 16 比特精度,
Android 圖快只用了 8 比特。
這個 bug 同時也影響了 Chrome 瀏覽器。
這個問題在 Android 7.0 和 Chrome 52 里修復了。
參見 Use libjpeg-turbo for YUV-&>RGB conversion in jpeg encoder · google/skia@c7d01d3 · GitHub
想體驗的可以試試我寫的 JPEGreen Simulator


所以說不使用 PNG 格式的工具/平台 都是辣雞


不懂原理,但是個人認為出現這種現象的主因是百度貼吧。


正如讀書的時候av沒有一手來源 內存卡小 大家瞎jb轉格式 傳到我們所謂的好學生手機里的時候畫面也是渣的一逼了 有的甚至滿屏馬賽克的感覺 也就是那時候我的想像插上了翅膀



是安卓版手機qq的問題(似乎各種安卓客戶端都會有累死的問題?)...我記得之前知乎上不是有人分析過了么..印象中是某個安卓系統函數蠢了一下...

安卓版qq只要重複 收藏表情 發出去 刪除收藏表情 收藏剛發出去嗯表情...然後畫質就會顯著變差...
以下是很久之前做的實驗....


這種舊舊的圖更能體現出不羈的感覺/滑稽


推薦閱讀:

TAG:圖像處理 | QQ 群 | 二次元 | JPEG |