The only parameter available to ojph_compress to control lossy quality is -qstep, which AFAIK automatically generates quantization step sizes in each sub-band and optimizes PSNR. The latter results in very noticeable visual artifacts at lower qualities.
For example, the leftmost tile was encoded at with -qstep 0.025. For comparison, the center tile was encoded using KDU with -rate 0.4 Ctype=Y and the rightmost tile with Qfactor=86. Note that Qfactor removes some but not all the high-frequency artifacts. All encoded images were around 466 kB.
Ideally, OpenJPH would ultimately include visual weighting options at encoding. In the meantime, it might make sense to note limitations at low quality/bit rates.
Source image (thanks @hmaarrfk):
rev.zip
The only parameter available to
ojph_compressto control lossy quality is-qstep, which AFAIK automatically generates quantization step sizes in each sub-band and optimizes PSNR. The latter results in very noticeable visual artifacts at lower qualities.For example, the leftmost tile was encoded at with
-qstep 0.025. For comparison, the center tile was encoded using KDU with-rate 0.4 Ctype=Yand the rightmost tile withQfactor=86. Note that Qfactor removes some but not all the high-frequency artifacts. All encoded images were around 466 kB.Ideally, OpenJPH would ultimately include visual weighting options at encoding. In the meantime, it might make sense to note limitations at low quality/bit rates.
Source image (thanks @hmaarrfk):
rev.zip