JPEG / Jpegli

Ideas for improvements and requests for new features in XnView MP

Moderators: helmut, XnTriq, xnview

rotbus19
Posts: 42
Joined: Sat Feb 17, 2024 11:47 am

JPEG / Jpegli

Post by rotbus19 »

This mainly relates to the Export dialog for Jpegli but may apply to other places, e.g. Save As and information in the Properties dialog.

1. XNView refers to 'JPEG-li' but it should be 'Jpegli' - see https://opensource.googleblog.com/2024/ ... brary.html

2. 'Optimize Huffman' doesn't appear to do anything when used with Jpegli. CLI help says disable Huffman must be used with Progressive level = 0 - could that be the issue?

3. DCT Method does nothing - disable this for Jpegli?

4. Smoothing factor does nothing - disable this for Jpegli?

5. Subsampling factor - the labelling for this is non-standard and inconsistent. Should be 444, 422, 420 (https://en.wikipedia.org/wiki/Chroma_subsampling + https://kraken.io/docs/chroma-subsampling).

However, better to make this human-friendly? I.E.

High compression (420)
Medium compression (422)
Low compression (440)
No compression (444)

Note: Jpegli allows for these 4 settings even though XNView only exposes 3 (omits 440)
rotbus19
Posts: 42
Joined: Sat Feb 17, 2024 11:47 am

Re: JPEG / Jpegli

Post by rotbus19 »

Just bumping this with clearer formatting:

Could the JPEG / Jpegli Subsampling be relabelled so that it is human-friendly and uses standard notation - like so:

Code: Select all

High compression (4:2:0)
Medium compression (4:2:2)
Low compression (4:4:0)
No compression (4:4:4)
It's currently non-standard and confusing for users - e.g.

Code: Select all

'4:2:0 (2x2, 1x1, 1x1) smallest file' 
then switches to

Code: Select all

'...best quality'
Plus, please use the correct name for Jpegli - not 'JPEG-li'
User avatar
user0
XnThusiast
Posts: 2292
Joined: Sat May 09, 2015 9:37 am

Re: JPEG / Jpegli

Post by user0 »

Chroma subsampling and JPEG sampling factors
There's a great deal of confusion around chroma subsampling notation. Chroma subsampling is generally expressed using J:a:b notation but the meaning of the notation varies between different sources and software. Furthermore, JPEG uses a different format internally which is sometimes exposed in user interfaces. This article attempts to shed some light on the different notations and how they are related.
  • chroma subsamplings
    in J:a:b notation, eg 4:4:4
  • sampling factors

    Code: Select all

    J:a:b	H	V	Sampling factors
    4:4:4	1⁄1	1⁄1	1×1, 1×1, 1×1
    4:4:0	1⁄1	1⁄2	1×2, 1×1, 1×1
    4:2:2	1⁄2	1⁄1	2×1, 1×1, 1×1
    4:2:0	1⁄2	1⁄2	2×2, 1×1, 1×1
    4:1:1	1⁄4	1⁄1	4×1, 1×1, 1×1
    4:1:0	1⁄4	1⁄2	4×2, 1×1, 1×1
    
  • description
    It could be "low, medium, none" (I would not repeat "compression"),
    but "smallest file, best quality" are also valid options and clear enough (see examples).

Example
chroma_subsampling_wording.png
You do not have the required permissions to view the files attached to this post.
rotbus19
Posts: 42
Joined: Sat Feb 17, 2024 11:47 am

Re: JPEG / Jpegli

Post by rotbus19 »

The XNView settings do not need to be an exhaustive tutorial on the technicalities of chroma sub-sampling, so using the most common notation of e.g. '4:2:0' is enough for the user to understand what is being applied.

For the average user, they want to know what effect the setting will have - therefore 'compression' is the clearest description. The Export setting could be labelled 'Subsampling compression' then 'High (4:2:0), Medium (4:2:2), Low (4:4:0), None (4:4:4)' - this is consistent and easily understood by all.

> "smallest file, best quality" are also valid options and clear enough

Switching units for the same function is bad UX. It confuses for no benefit. Be consistent - stick with the compression labelling, as above.