注意目前這裡沒有進行任何開發。該專案的部分內容已用於 JPEG XL,該文件正在積極開發中。
PIK 是適用於照片和網際網路的全面影像格式。
PIK 是 JPEG 的現代化變體,具有相似的目標:高效儲存和交付照片和 Web 影像。它是專為高品質和快速解碼而設計的。
可實現高品質(感知無損)的功能:
除了完全和感知無損編碼之外,PIK 在各種位元率 (0.5 - 3 bpp) 上實現了品質/大小/速度的良好平衡。 PIK 支援自動/無監督壓縮,因為它保證整個影像保持目標品質。它優先考慮真實性,即原作的忠實再現,而不是透過幻覺細節或「增強」(例如銳化/飽和)輸入來實現的美學。
支援快速解碼的功能(> 1 GB/s 多執行緒):
其他特點:
PIK 的響應模式編碼器支援相當於將解析度降低 4 倍或 8 倍的通道。此格式支援更靈活的通道,具有從相當於 8 倍下採樣到全解析度的任何細節等級。一次傳遞中的細節量不需要是均勻的:可以以更高的細節發送影像區域。響應模式對編碼影像大小的影響很小,對於 3 遍響應影像(8x、4x、全解析度),平均影響約為 2%。在這種配置中,前兩次平均每次佔用圖像大小的 20%。
該軟體目前需要支援 AVX2 和 FMA 的 CPU,例如 Haswell。目前建置需要 clang 6 或更高版本。
為了構建,可以使用以下指令:
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
這會在build/
中建立cpik
和dpik
二進位檔案。
基本用法如下:
cpik [--distance ] input.png output.pik
cpik 的選用--distance
命令列參數是 Butteraugli 距離(請參閱 http://github.com/google/butteraugli),它指示最大可接受的誤差。較大的值會導致檔案較小且品質較低。預設值 1.0 應產生感知上無損的結果。
請注意,比特流仍在開發中,尚未凍結。