Image processing libjpeg提供的图像质量较差

Image processing libjpeg提供的图像质量较差,image-processing,compression,jpeg,libjpeg,Image Processing,Compression,Jpeg,Libjpeg,我正在使用libjpeg从工作时的原始RGB数据生成jpeg。它工作正常,尽管jpeg输出的质量不令人满意,并且与类似保存的png(libpng)的差异很大。我想,可能是默认的质量设置设置为低,但我检查了默认设置为100,这是该库可以获得的最大值。甚至使用jpeg_set_quality()将其显式设置为100也没有帮助。然后我查看了库描述,并将默认的J_DCT_方法从JDCT_ISLOW更改为JDCT_FLOAT,只是因为它说后者比前者更精确。然而,最终的输出没有什么不同,图像在某些地方仍然“

我正在使用libjpeg从工作时的原始RGB数据生成jpeg。它工作正常,尽管jpeg输出的质量不令人满意,并且与类似保存的png(libpng)的差异很大。我想,可能是默认的质量设置设置为低,但我检查了默认设置为100,这是该库可以获得的最大值。甚至使用jpeg_set_quality()将其显式设置为100也没有帮助。然后我查看了库描述,并将默认的J_DCT_方法从JDCT_ISLOW更改为JDCT_FLOAT,只是因为它说后者比前者更精确。然而,最终的输出没有什么不同,图像在某些地方仍然“模糊”。我还检查了“平滑”是否设置为零,如果设置为非零,则可能会产生差异。如果我不关心速度/内存,是否有其他设置可以更改以提高生成图像的保真度?我正在参考此页面了解库方法:


谢谢

较差的JPEG质量来自子采样和量化表的组合。在LibJpeg中,“质量”设置会影响后者。如果您已将其设置为100,但仍然得到错误的输出,请检查子采样

此外,JPEG对图像类型很敏感。JPEG不能很好地处理由相同颜色区域组成的图像(例如,与照片相反的绘图、卡通)


正如您所建议的,更改DCT方法对质量影响不大。

如何显示模糊的JPEG和正确的PNG,以便我们可以看到差异并推断出原因?我曾想过这样做,但目前我没有一个不是客户数据的文件-根据隐私条款,我无法共享。我会尝试自己制作一些东西,并很快与大家分享。