jpg、png格式的圖片轉換成webp后顏色失真的問題


今天簡單的試用了一下 cweb.exe 將 jpg, png 格式的圖片轉換成 webp 格式。

我今天下載的是當前最新版:1.0.0

cwebp 3.jpg  -q 85 -o 3.webp

 

發現圖片中的女模特原來粉紅色的指甲顏色有失真的情況:變暗了。

這個情況與使用 ffmpeg 將多張jpg圖片生成 mp4 視頻的時候出現的顏色失真有點類似。

 

jpg格式:

 

轉換成webp格式后:

 

百度了一下 webp 顏色失真,找了一篇關於顏色失真的討論,但沒有答案:http://www.cocoachina.com/bbs/read.php?tid=332365

圖片上傳到服務器不能太大,所以先做等比例壓縮,但是壓縮后再轉webp圖片就變色。求大家指教。。。。
ps:不管裁剪,壓縮,轉webp后都會變色,只有原圖轉才沒問題

 

另外一篇提到:http://weixin.niurenqushi.com/article/2017-05-23/4859725.html

因為 JPEG 采用的色彩格式是 YUVJ420P,對應的色彩區間是 0-255,而 WebP 采用的色彩格式是 YUV420P,對應的色彩區間是 16-235,也就是說如果單純的轉碼,會丟失 0-15236-255 的色彩,也就是出現了色差。

雖然從產品角度來看,這樣的色差是可以容忍的,但是從技術角度,我們當然是希望可以有解決色差的方法,進一步跟進發現,cwebp 提供了一個 “-metadata” 的參數,
可以將原圖的額外信息復制到 WebP 圖像上,雖然會增加額外的存儲空間,但是可以保證視覺體驗與原圖一致,並且增加的空間也僅限於保存原圖的額外信息那一部分。 通過增加
"-metadata all", 轉碼后的 WebP 圖像消去了色差 該參數有 “all, none, exif, icc, xmp” 五種可選項,默認是 none,支持 exif, icc, xmp 三種類型或其任意組合的信息保留,
例如,上述 JPEG 原圖額外信息正是 ICC Profile 信息,可以使用
"-metadata icc" 或者 "-metadata all" 保證轉碼質量。

但是我測試  -metadata all ,發現還是存在色差問題。

 

 

google了一下,找到一篇:https://groups.google.com/a/webmproject.org/forum/#!topic/webp-discuss/TtX0JB-kyUE

下面摘取了一部分內容:

'cwebp'的默認編碼參數是使用有損編碼。 
這意味着源圖像和壓縮圖像之間的小的(希望無法察覺的)差異是不可避免的。當提升-q參數值時,差異在幅度上越來越小。 
盡管如此,即使在q = 100時,也可以得到+/- 1的差異(主要是因為顏色空間轉移:RGB < - > YUV,這會產生一些舍入誤差)。 

如果壓縮為JPEG格式,您會遇到類似的差異。 
當使用 -lossless 選項時,顏色失真不會發生。

但是生成的webp文件很大。

 

2018-10-10

https://bugs.chromium.org/p/webp/issues/detail?id=232

-pre 4  或 -sharp_yuv
效果好多了,色差就不顯的那么明顯了。

但是另一張圖片上的粉紅色的文字還是有明顯的色差。


 

 

webp格式:https://img.alicdn.com/tps/i3/0/TB2flVsaOMnBKNjSZFCXXX0KFXa_!!0-juitemmedia.jpg_800x800q90.jpg_.webp

jpg格式:https://img.alicdn.com/tps/i3/0/TB2flVsaOMnBKNjSZFCXXX0KFXa_!!0-juitemmedia.jpg_800x800q90.jpg

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM