Make avatar-image-quality more consistent#8010
Conversation
The file-size of many images will already be smaller than 20 kB, when encoded at 256x256, and it can be a large improvement in quality.
The resolution-limits for avatar-images are currently 512x512 or 256x256. Reducing the resolution further, to 2/3 each step, can reduce the quality much more than is necessary to fit within the file-size-limits, which are currently 60 kB or 20 kB. An image made entirely of noise (which results in unusually large file-sizes), encoded with jpeg-quality 75, and 4:2:2-colour-subsampling (the format currently used for encoding images), can be below 60 kB at 227x227. For the lower file-size-limit of 20 kB, such images can be too large at 170x170, but fit at 149x149. More normal images will have a lower file-size at the same resolution. Before this change, the target-resolutions for resampling were: 512x512 -> 341x341 -> 227x227. And for the lower file-size-limit: 256x256 -> 170x170 -> 113x113. After this change, the target-resolutions for resampling will be: 512x512 -> 448x448 -> 392x392 -> 343x343 -> 300x300 -> 262x262 -> 229x229. And for the lower file-size-limit, those will be: 256x256 -> 224x224 -> 196x196 -> 171x171 -> 149x149 -> 130x130 -> 113x113. This does add 2 steps between the previous target-resolutions, while still reaching target-resolutions close to the previous ones, to reduce situations in which the quality will be lower than before.
| } | ||
|
|
||
| target_wh = target_wh * 2 / 3; | ||
| target_wh = target_wh * 7 / 8; |
There was a problem hiding this comment.
I'm going to change this anyway in #7827 because using multipliers like 49/64 isn't great, they add more aliasing effect than 6/8 (which is 48/64), it's better to lose ~2% of the image size. Anyway, this is already better than 2/3.
Hocuri
left a comment
There was a problem hiding this comment.
Thanks for the endurance, and sorry that this took so long! Usually we're faster with looking at PRs, but we had some features to deliver which pushed everything else back in the list of priorities, and we're now starting to work through the backlog.
I tested this on my 5 years old middle-class phone, and even in battery saver mode, it was reasonably fast, so, this seems like a clear improvement, thanks!
|
FTR, CI is failing because it doesn't work for outside contributors, unfortunately. I'm just going to merge this anyways, because this doesn't touch any code that is tested by the failing tests. |
See commit-descriptions for details.
I moved these 2 commits from #7822 into this PR, to make it easier to review.