[英]Lossless JPEG file writing
我有一個關於JPEG文件寫入的問題。 假設我有一個PNG文件example.png,我想將文件格式更改為JPEG而不會丟失任何信息。 就目前而言,我有兩個解決方案:
解決方案1:使用MATLAB執行文件格式轉換
我= imread('example.png');
imwrite(I 'example.jpg', '模式', '無損');
II = imread('example.jpg');
不同= I-II;
MAX(不同(:))
此解決方案可以生成無損JPEG文件。 然而,該解決方案的問題在於原始圖像中的一些信息(例如DPI分辨率)可能丟失。 此外,流行的圖像查看器(如IrfanView和Windows Paint)無法查看生成的輸出圖像。
解決方案2:使用IrfanView軟件。 使用IrfanView程序的“另存為”功能,我們可以非常輕松地更改文件格式。 但是,雖然我在保存JPEG文件時設置了“最佳質量100”選項,但輸出圖像也顯示一些信息丟失。 對於所有像素,這兩個圖像之間的差異不為零。
因此,我想知道我應該怎么做以解決問題。 任何想法將不勝感激。
這個問題沒有解決方案(但是,截至2018年)。
如果希望JPEG文件可用於大多數圖像查看器,則無法避免使用有損壓縮。
普遍支持的JPEG版本基於DCT壓縮,根據定義,它執行轉換和舍入,導致一些精度損失。
很少支持替代的無損JPEG壓縮方法JPEG-LS。
還有JPEG-XT擴展,它是有損圖像+圖層的組合,用於重建無損原始圖像。 它在JPEG圖像查看器中優雅地失敗,但它甚至更新,我不知道它是否已在任何地方實現。
如果你真的需要無損,請使用PNG。 使用JPEG,你可以得到的最好的是在RGB色彩空間中質量= 100的最低損耗JPEG(這不是字面上的100%)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.