JPEG XL

Info

rules 57
github 35276
reddit 647

JPEG XL

tools 4225
website 1655
adoption 20712
image-compression-forum 0

General chat

welcome 3810
introduce-yourself 291
color 1414
photography 3435
other-codecs 23765
on-topic 24923
off-topic 22701

Voice Channels

General 2147

Archived

bot-spam 4380

on-topic

Whatever else

fab
2022-11-08 02:53:18
2022-11-08 02:53:32
https://artifacts.lucaversari.it/libjxl/libjxl/2022-11-08T12%3A51%3A53Z_0d5f6450f6be84cf550f0a6ede8a297447a0565a/
2022-11-08 02:53:44
i copied 21 files
2022-11-08 02:54:01
all the executable as someone said
2022-11-08 02:54:09
in pictures/q
DZgas Ж
fab
2022-11-08 04:10:33
show output File
fab
2022-11-08 04:12:29
I can't open the computer, at the moment
DZgas Ж
fab I can't open the computer, at the moment
2022-11-08 04:13:11
then can you describe what was art there?
fab
2022-11-08 04:15:58
Screenshot of a video
2022-11-08 04:16:07
YouTube
2022-11-08 04:16:11
Neomelodico
2022-11-08 04:16:42
Size 3,5mb
2022-11-08 04:16:52
Original jpg 6,2mb
2022-11-08 04:17:04
It saturated my RAM
2022-11-08 04:17:27
And was slow to encode
2022-11-08 04:17:43
Like One minute and ten
fab It saturated my RAM
2022-11-08 04:18:00
First time at 99%
DZgas Ж
2022-11-08 04:20:32
<@416586441058025472> what it has to do with the fact that I need to look at the boundaries of the VarDCT Blocks
fab
2022-11-08 04:21:04
I don't know how to use benchmark XL
2022-11-08 04:21:13
Tool
2022-11-08 04:21:47
Of the images i used it didn't changed colours
2022-11-08 04:21:58
But i didn't used backgrounds
2022-11-08 04:22:09
You can report to jon on GitHub
DZgas Ж
2022-11-08 04:22:10
<:SadCheems:890866831047417898>
fab
2022-11-08 04:22:38
And you say you used benchmark xl
DZgas Ж but it doesn't work, show what you have at the output
2022-11-08 04:22:58
It works
DZgas Ж
fab It works
2022-11-08 04:23:48
I get an identical image but with a broken color profile
fab
DZgas Ж I get an identical image but with a broken color profile
2022-11-08 04:24:21
I didn't open on xnviewmp but on Windows photo viewer on Windows 7
2022-11-08 04:24:26
No problem
2022-11-08 04:24:43
Only a background in the black borders
2022-11-08 04:24:50
With pinky tones
2022-11-08 04:25:13
But image display good
DZgas Ж
2022-11-08 04:25:29
I don't understand at all How this can allow me to see the VarDCT
fab
2022-11-08 04:25:38
It uses iccv4
2022-11-08 04:25:49
Color profile
DZgas Ж
2022-11-08 04:26:44
<@416586441058025472>I don't understand How this can allow me to see the VarDCT
fab
2022-11-08 04:27:06
I encoded a normal image
2022-11-08 04:27:25
And posted the screenshot of powershell
2022-11-08 04:27:55
Go in <#794206170445119489>
lithium
2022-11-08 05:14:46
Hello <@226977230121598977> Sorry to bother you, This nonphoto content sample(white blank) is very interesting, I test this sample on libjxl v0.6.0 229f574(nonphoto_separation branch) and libavif aom [enc/dec]:3.2.0-143-gf20d487e3, Look like libjxl nonphoto_separation experiment feature is very useful on this case. > base png 202 > jxl > d 0.1 e 9 211(separate=1) > d 0.1 e 3 200(separate=1) > d 0.5 e 9 211(separate=1) > d 0.5 e 7 388(separate=1) > d 1.0 e 9 207(separate=1) > d 1.0 e 7 374(separate=1) > d 12 e 7 379(separate=1) > > avif > cq-level 7 317 > cq-level 15 321 > avifenc --min 0 --max 63 -s 4 -j 12 -d 10 -a end-usage=q -a cq-level=7 I still look forward libjxl lossy can implement more improvement and feature for nonphoto content 🙂
DZgas Ж
lithium Hello <@226977230121598977> Sorry to bother you, This nonphoto content sample(white blank) is very interesting, I test this sample on libjxl v0.6.0 229f574(nonphoto_separation branch) and libavif aom [enc/dec]:3.2.0-143-gf20d487e3, Look like libjxl nonphoto_separation experiment feature is very useful on this case. > base png 202 > jxl > d 0.1 e 9 211(separate=1) > d 0.1 e 3 200(separate=1) > d 0.5 e 9 211(separate=1) > d 0.5 e 7 388(separate=1) > d 1.0 e 9 207(separate=1) > d 1.0 e 7 374(separate=1) > d 12 e 7 379(separate=1) > > avif > cq-level 7 317 > cq-level 15 321 > avifenc --min 0 --max 63 -s 4 -j 12 -d 10 -a end-usage=q -a cq-level=7 I still look forward libjxl lossy can implement more improvement and feature for nonphoto content 🙂
2022-11-08 05:15:49
ehh
2022-11-08 05:16:46
<@461421345302118401> https://discord.com/channels/794206087879852103/794206087879852106/1038861311964098641 It's the second day I've been trying to figure out how to do this. can you help?
lithium
DZgas Ж <@461421345302118401> https://discord.com/channels/794206087879852103/794206087879852106/1038861311964098641 It's the second day I've been trying to figure out how to do this. can you help?
2022-11-08 05:40:41
I haven't use benchmark_xl before, look like I get same error on my windows 10 system. > speed_stats.GetSummary
DZgas Ж
lithium I haven't use benchmark_xl before, look like I get same error on my windows 10 system. > speed_stats.GetSummary
2022-11-08 05:41:12
I have exactly the same error
2022-11-08 05:41:17
<@532010383041363969>
2022-11-08 05:48:57
<@853026420792360980>
2022-11-08 05:52:49
benchmark_xl on Windows not work command --debug_image_dir and --save_decompressed
Traneptora
2022-11-08 05:53:35
it's a known but that I already reported
DZgas Ж
Traneptora it's a known but that I already reported
2022-11-08 05:54:35
You on linux?
Traneptora
2022-11-08 05:54:55
I am, but the bug is cross-platform
2022-11-08 05:55:02
`--save_decompressed` doesn't work
DZgas Ж
2022-11-08 05:55:07
oh no
Traneptora
2022-11-08 05:55:42
https://github.com/libjxl/libjxl/issues/1872
DZgas Ж
2022-11-08 05:56:02
oohhh I absolutely can't get a grid of VarDCT blocks at the moment
2022-11-08 05:56:45
well so and so
ayumi
DZgas Ж oohhh I absolutely can't get a grid of VarDCT blocks at the moment
2022-11-08 10:54:21
You do not need `--save_decompressed` for `benchmark_xl` to generate the `ac_strategy.png` files. It will work with just `--input` and `--debug_image_dir` (and in your case `--codec`, because you want to change the encoder speed preset). So, assuming you have a debug build of `benchmark_xl` and Graphviz tools in your PATH (`benchmark_xl` depends on Graphviz), you can try something like this: ``` $ ./benchmark_xl --input=/tmp/jxl/orig/white.png --codec=jxl:lighting,jxl:thunder:jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=/tmp/jxl/debug ```
2022-11-08 10:55:07
This is what I get after running this command:
2022-11-08 10:55:22
2022-11-08 10:57:45
After `benchmark_xl` finishes, the `ac_strategy.png` files should be in sub-folders of the `--debug_image_dir` you specified.
2022-11-08 11:07:34
The `convert` tool mentioned earlier is part of ImageMagick and would be needed for overlaying the original image with `ac_strategy.png`, which in case of your pure-white image is definitely not needed.
Jyrki Alakuijala
2022-11-09 09:43:12
the latest head improved jpeg1 coding further by 2 %
DZgas Ж
ayumi You do not need `--save_decompressed` for `benchmark_xl` to generate the `ac_strategy.png` files. It will work with just `--input` and `--debug_image_dir` (and in your case `--codec`, because you want to change the encoder speed preset). So, assuming you have a debug build of `benchmark_xl` and Graphviz tools in your PATH (`benchmark_xl` depends on Graphviz), you can try something like this: ``` $ ./benchmark_xl --input=/tmp/jxl/orig/white.png --codec=jxl:lighting,jxl:thunder:jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=/tmp/jxl/debug ```
2022-11-09 09:47:09
```C:\Users\a\Desktop\jxl-x64-windows-static-1>benchmark_xl --input=13.png --codec=jxl:lighting,jxl:thunder:jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=. benchmark_xl v0.8.0 6f8cd1b [Unknown] D:\a\libjxl\libjxl\tools\benchmark\benchmark_codec.cc:52: JXL_ABORT: Invalid parameter lighting```
2022-11-09 09:47:43
I'm already tired, you all write me something and Nothing works for me
2022-11-09 09:48:47
<@865952699433484298> you can *just do it* for these 3 image and send the results here. https://discord.com/channels/794206087879852103/794206087879852106/1038860533325103165
afed
2022-11-09 09:53:52
maybe make a separate encoder for xyb, because I noticed that there is a cjpeg_hdr or combine hdr and xyb jpeg into one encoder?
2022-11-09 10:07:37
i also worry that chrome might find reasons not to accept the improved jpeg decoder as well, because it will be slower than libjpeg-turbo (and quality improvement is not a priority over speed) and because its newer and this lib has not been in production as long as libjpeg-turbo, so there are higher vulnerability risks
Jyrki Alakuijala
2022-11-09 10:07:51
yes, xyb should be a flag in a jpeg1 encoder -- too many systems fail with ICCv4
afed i also worry that chrome might find reasons not to accept the improved jpeg decoder as well, because it will be slower than libjpeg-turbo (and quality improvement is not a priority over speed) and because its newer and this lib has not been in production as long as libjpeg-turbo, so there are higher vulnerability risks
2022-11-09 10:10:33
I have some positive signals from them for JPEG1 improvements, so I am hopeful -- but yes, it needs to be technically and by user experience comparable In chrome they allow for experiments, so if there are subtle considerations, it can be first place behind a flag and the impact can be explored It will still be like 5x faster than AVIF and 2x faster than WebP, so it shouldn't be disruptive for user experience
DZgas Ж
2022-11-09 10:10:37
can someone just DO IT, the unhappy 3 pictures
Jyrki Alakuijala
DZgas Ж I need to find out how and why the reduced quality affects the weight of the picture, if it remains identical, I would not have a question if it were to weigh less, But WEIGHT is increasing, this is not normal, are you on linux? could you run up command?
2022-11-09 10:18:46
if all coefficients are zeros, they all pack very efficiently -- thus the ideal coding uses only 8x8 dct and all AC coeffs zeros a more advanced coding might use 32x32 or 64x64s and then at the border use smaller transforms, they might insert an image for filter control and adaptive quantization -- but then not use it for the image you use because it is just flat
DZgas Ж
Jyrki Alakuijala if all coefficients are zeros, they all pack very efficiently -- thus the ideal coding uses only 8x8 dct and all AC coeffs zeros a more advanced coding might use 32x32 or 64x64s and then at the border use smaller transforms, they might insert an image for filter control and adaptive quantization -- but then not use it for the image you use because it is just flat
2022-11-09 11:22:31
it is I who want to look at the structure of the blocks!
Jyrki Alakuijala
2022-11-09 11:26:30
print it out in enc_ac_strategy.cc ?
DZgas Ж
ayumi You do not need `--save_decompressed` for `benchmark_xl` to generate the `ac_strategy.png` files. It will work with just `--input` and `--debug_image_dir` (and in your case `--codec`, because you want to change the encoder speed preset). So, assuming you have a debug build of `benchmark_xl` and Graphviz tools in your PATH (`benchmark_xl` depends on Graphviz), you can try something like this: ``` $ ./benchmark_xl --input=/tmp/jxl/orig/white.png --codec=jxl:lighting,jxl:thunder:jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=/tmp/jxl/debug ```
2022-11-09 11:26:54
<@532010383041363969>
Jyrki Alakuijala
2022-11-09 11:30:02
also true, I never used that, just statistics and debug prints of ac strategy 🙂
2022-11-09 11:30:19
--more_columns might also help -- it can print statistics on dct use
DZgas Ж
DZgas Ж I'm already tired, you all write me something and Nothing works for me
2022-11-09 11:31:56
<@532010383041363969>you suggest something but I don't even want to try it, nothing works
ayumi You do not need `--save_decompressed` for `benchmark_xl` to generate the `ac_strategy.png` files. It will work with just `--input` and `--debug_image_dir` (and in your case `--codec`, because you want to change the encoder speed preset). So, assuming you have a debug build of `benchmark_xl` and Graphviz tools in your PATH (`benchmark_xl` depends on Graphviz), you can try something like this: ``` $ ./benchmark_xl --input=/tmp/jxl/orig/white.png --codec=jxl:lighting,jxl:thunder:jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=/tmp/jxl/debug ```
2022-11-09 11:40:20
not work
_wb_
DZgas Ж ```C:\Users\a\Desktop\jxl-x64-windows-static-1>benchmark_xl --input=13.png --codec=jxl:lighting,jxl:thunder:jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=. benchmark_xl v0.8.0 6f8cd1b [Unknown] D:\a\libjxl\libjxl\tools\benchmark\benchmark_codec.cc:52: JXL_ABORT: Invalid parameter lighting```
2022-11-09 11:42:43
It's lightNing
DZgas Ж
_wb_ It's lightNing
2022-11-09 11:44:24
What???
_wb_ It's lightNing
2022-11-09 11:45:07
```C:\Users\a\Desktop\jxl-x64-windows-static-1>benchmark_xl --input=13.png --codec=jxl:lightning,jxl:thunder:jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=. benchmark_xl v0.8.0 6f8cd1b [Unknown] **D:\a\libjxl\libjxl\tools\benchmark\benchmark_codec.cc:52: JXL_ABORT: Invalid parameter jxl** ```
2022-11-09 11:47:44
Maybe you can already tell me what to do, I haven't been able to achieve anything for the third day <@794205442175402004>
2022-11-09 11:50:08
```speed_stats.GetSummary(&summary)``` Error on WIndows on builds over the past YEAR
2022-11-09 11:51:22
i check benchmark_xl v0.7.0 09e08f8
2022-11-09 11:51:27
same
2022-11-09 11:52:00
benchmark_xl v0.7.0 3aaae25 same
_wb_
2022-11-09 11:52:59
```benchmark_xl --input=13.png --codec=jxl:lightning,jxl:thunder,jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=. ```
2022-11-09 11:53:17
You had a : instead of ,
DZgas Ж
_wb_ You had a : instead of ,
2022-11-09 11:53:40
```C:\Users\a\Desktop\jxl-x64-windows-static-1>benchmark_xl --input=13.png --codec=jxl:lightning,jxl:thunder,jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=. benchmark_xl v0.8.0 6f8cd1b [Unknown] 4 total threads, 9 tasks, 4 threads, 0 inner threads Error in jxl:lightning codec D:\a\libjxl\libjxl\tools\benchmark\benchmark_xl.cc:143: JXL_CHECK: speed_stats.GetSummary(&summary) Error in jxl:thunder codec D:\a\libjxl\libjxl\tools\benchmark\benchmark_xl.cc:143: JXL_CHECK: speed_stats.GetSummary(&summary) Error in jxl:cheetach codec Error in jxl:falcon codec D:\a\libjxl\libjxl\tools\benchmark\benchmark_xl.cc:143: JXL_CHECK: speed_stats.GetSummary(&summary) D:\a\libjxl\libjxl\tools\benchmark\benchmark_xl.cc:143: JXL_CHECK: speed_stats.GetSummary(&summary)```
2022-11-09 11:54:44
Build Two Year Ago ```C:\Users\a\Desktop\jxl-x64-windows-static-2>benchmark_xl --input=13.png --codec=jxl:lightning,jxl:thunder,jxl:falcon,jxl:cheetach,jxl:hare,jxl:wombat,jxl:squirrel,jxl:kitten,jxl:tortoise --debug_image_dir=. benchmark_xl v0.7.0 28a26e6 [Scalar] 4 cores, 9 tasks, 4 threads, 0 inner threads Error in jxl:cheetach codec D:\a\libjxl\libjxl\tools\benchmark\benchmark_xl.cc:133: JXL_CHECK: speed_stats.GetSummary(&summary) Error in jxl:lightning codec D:\a\libjxl\libjxl\tools\benchmark\benchmark_xl.cc:133: JXL_CHECK: speed_stats.GetSummary(&summary) Error in jxl:falcon codec D:\a\libjxl\libjxl\tools\benchmark\benchmark_xl.cc:133: JXL_CHECK: speed_stats.GetSummary(&summary) Error in jxl:thunder codec D:\a\libjxl\libjxl\tools\benchmark\benchmark_xl.cc:133: JXL_CHECK: speed_stats.GetSummary(&summary)```
2022-11-09 11:54:58
my Linux freind
2022-11-09 11:55:17
why did it work for you?
2022-11-09 11:56:50
I use exactly the same thing, and I gave my friend on linux exactly the same thing, but nothing works for both of us
2022-11-09 11:58:29
Thanks a lot, I've been waiting for this for a long time
2022-11-09 11:59:00
zsh yes
2022-11-09 11:59:55
I want to say that it ... shit
2022-11-09 12:00:20
and no, bash doesn't work either
2022-11-09 12:01:19
<@456226577798135808>he also tried to compile the build himself, and it doesn't work either
_wb_
2022-11-09 12:02:04
That's weird, that stuff should normally not be compiled in
2022-11-09 12:02:40
It's a debug thing to make a visualization of the MA tree
2022-11-09 12:03:33
Installing `dot` would help, but it shouldn't be trying to call it in the first place
DZgas Ж
2022-11-09 12:04:06
__jxl executes the command via system for some reason__ sh: line 1, dot: command not found
2022-11-09 12:05:23
ahhah really bruh
2022-11-09 12:09:03
<@794205442175402004><@456226577798135808><@532010383041363969> <@268284145820631040> <@853026420792360980> *I just for fun placed the dot file near to the program Inside it is the sh command: echo HELLO GUYS As a result, it started and even did something I have questions for the developers* *1. Why jxl use external commands in it's code? 2. Why dependency is not linked as library? 3. Just why?*
_wb_
2022-11-09 12:10:51
https://github.com/libjxl/libjxl/blob/c391c17397d18845ea5e1b0e4b2ff997424514d4/lib/jxl/modular/encoding/enc_debug_tree.cc#L118
2022-11-09 12:11:38
that system call is behind a `#if JXL_ENABLE_DOT`, how did that get defined?
2022-11-09 12:12:43
oh it gets defined for everything except iOS, what
DZgas Ж
2022-11-09 12:12:51
*benchmark_xl was compiled on my machine benchmark_xl2 was downloaded as static program*
_wb_
2022-11-09 12:13:42
oh but that function only gets called if kPrintTree is true, which is never the case
2022-11-09 12:13:43
https://github.com/libjxl/libjxl/blob/5fef3ec57452f2865a62c0e01cdcf3635f09b920/lib/jxl/modular/encoding/enc_encoding.cc#L41
DZgas Ж
2022-11-09 12:13:53
it's funny that it's Modular code even though I don't even use it
_wb_
2022-11-09 12:14:25
everything uses modular code, VarDCT uses it for the DC and control fields
2022-11-09 12:15:25
anyway it looks like you somehow have a build where someone changed kPrintTree
DZgas Ж
_wb_ anyway it looks like you somehow have a build where someone changed kPrintTree
2022-11-09 12:16:08
this error has been in at least all builds for 2 years now
_wb_
2022-11-09 12:16:24
no libjxl does not use this at all, this is just some debug instrumentation that should not end up in libjxl nor in benchmark_xl
Traneptora
DZgas Ж <@794205442175402004><@456226577798135808><@532010383041363969> <@268284145820631040> <@853026420792360980> *I just for fun placed the dot file near to the program Inside it is the sh command: echo HELLO GUYS As a result, it started and even did something I have questions for the developers* *1. Why jxl use external commands in it's code? 2. Why dependency is not linked as library? 3. Just why?*
2022-11-09 12:16:40
I'm not a libjxl dev, btw
DZgas Ж
Traneptora I'm not a libjxl dev, btw
2022-11-09 12:17:33
you're dev of what?
Traneptora
2022-11-09 12:17:58
I wrote the FFmpeg plugin for libjxl, and I'm working on my own standalone decoder.
DZgas Ж
2022-11-09 12:18:02
I called you because you participated in the topic, maybe you are interested.
Traneptora
2022-11-09 12:18:20
that's fair. but in this case I have no idea lol
_wb_
2022-11-09 12:19:48
oh wait what
2022-11-09 12:19:49
https://github.com/libjxl/libjxl/blob/83944e4b8d389d27e3851a85403f4045ecd53015/lib/jxl/enc_modular.cc#L1093
2022-11-09 12:20:39
that call is not guarded by a compile-time `false`, so in the benchmark_xl case it does actually get compiled in
2022-11-09 12:20:55
good catch, <@226977230121598977> !
DZgas Ж
2022-11-09 12:21:10
<:BlobYay:806132268186861619>
_wb_
2022-11-09 12:29:33
https://github.com/libjxl/libjxl/pull/1881
Jyrki Alakuijala
_wb_ everything uses modular code, VarDCT uses it for the DC and control fields
2022-11-09 02:00:06
libjxl-tiny doesn't use modular -- so it is a possibility not to use it
Jim
2022-11-09 02:11:08
So tiny has no lossless?
Jyrki Alakuijala
2022-11-09 02:47:17
no lossless, it is a model implementation for HW that could be put into cameras
DZgas Ж
2022-11-09 02:49:24
<:FeelsReadingMan:808827102278451241> wh
lonjil
2022-11-09 02:51:38
I thought tiny was supposed to be good for shipping as a wasm shim until browsers support jxl
DZgas Ж
Jyrki Alakuijala no lossless, it is a model implementation for HW that could be put into cameras
2022-11-09 02:53:58
Jpeg XL can lossless use VarDCT?
2022-11-09 02:54:15
-d 0.0000000~
2022-11-09 02:58:21
well, technically, my example with a white sheet proves that lossless is possible
2022-11-09 02:59:40
well well
2022-11-09 03:06:03
well.
Jim
2022-11-09 03:06:08
I would guess it's similar to setting jpg to 100% quality. Not lossless, but as close as you're gonna get.
DZgas Ж
2022-11-09 03:06:26
now everything is clear
Jim I would guess it's similar to setting jpg to 100% quality. Not lossless, but as close as you're gonna get.
2022-11-09 03:07:54
the fact is that the codec creates functions. for transformations and subsequent compression. And as I understand it, the chances of using certain functions depend on the quality, for some reason
2022-11-09 03:08:25
And now I finally understand what they are
2022-11-09 03:09:20
whoooa
Jim
2022-11-09 03:09:56
Quality or speed?
DZgas Ж
2022-11-09 03:09:56
jxl:squirrel:d5.0
2022-11-09 03:10:08
e7
2022-11-09 03:12:26
no way! d0.1 and d5.0 functions is identifical
2022-11-09 03:12:51
But then why does it weigh 25 bytes more
2022-11-09 03:21:30
what? why is that? why is there a difference? what does it count that?
2022-11-09 03:22:11
bt_diffmap
2022-11-09 03:22:24
I don't know what it is
2022-11-09 03:22:49
but that's, problem
2022-11-09 03:23:36
<@794205442175402004> don't know what's the ? for some reason, there is a different method for different qualities, and the more quality is set, the better the compression comes out
2022-11-09 03:24:41
2022-11-09 03:24:55
dot in corner
_wb_
Jyrki Alakuijala libjxl-tiny doesn't use modular -- so it is a possibility not to use it
2022-11-09 03:25:02
Technically, it does, for encoding DC and dctselect and quantweights, it just does it in an fjxl-style way where it only uses a tiny subset of what modular can do, with fixed MA trees etc
DZgas Ж <@794205442175402004> don't know what's the ? for some reason, there is a different method for different qualities, and the more quality is set, the better the compression comes out
2022-11-09 03:26:16
What's your input image and encode settings?
DZgas Ж
_wb_ What's your input image and encode settings?
2022-11-09 03:27:33
my classic jxl:tortoise:d0.1 jxl:tortoise:d5.0
DZgas Ж my classic jxl:tortoise:d0.1 jxl:tortoise:d5.0
2022-11-09 03:30:37
it also turns out that at squirrel speed formulas are built so inefficiently that the Size of the file turns out to be 3 times more than tortoise and 2 times more than lightning
Jyrki Alakuijala
2022-11-09 03:31:16
tortoise (speed 9) doesn't have much testing
2022-11-09 03:31:19
anything can happen
DZgas Ж
DZgas Ж it also turns out that at squirrel speed formulas are built so inefficiently that the Size of the file turns out to be 3 times more than tortoise and 2 times more than lightning
2022-11-09 03:31:37
but now I want to understand why In all cases, if the same speed parameter is applied to this picture, but Different quality - the size is always different
Jyrki Alakuijala
2022-11-09 03:31:49
I'd use speed 7 -- perhaps consider speed 8 (which is also mostly untested but less aggressive, so less things can go very silly)
DZgas Ж
Jyrki Alakuijala I'd use speed 7 -- perhaps consider speed 8 (which is also mostly untested but less aggressive, so less things can go very silly)
2022-11-09 03:33:15
let's look at the speed 1
2022-11-09 03:33:25
very simple
2022-11-09 03:34:14
Identical blocks, identical formulas - size difference of 6 bytes
2022-11-09 03:34:36
identical
2022-11-09 03:34:46
2022-11-09 03:35:32
jxl:lightning:d0.1 183 byte jxl:lightning:d5.0 177 byte
2022-11-09 03:35:43
because what?
2022-11-09 03:37:06
<:Thonk:805904896879493180> <:Thonk:805904896879493180> <:Thonk:805904896879493180> <:Thonk:805904896879493180> <:Thonk:805904896879493180>
Jyrki Alakuijala I'd use speed 7 -- perhaps consider speed 8 (which is also mostly untested but less aggressive, so less things can go very silly)
2022-11-09 03:40:31
jxl:squirrel:d0.1 2**8**5 byte jxl:squirrel:d5.0 2**6**5 byte difference of 20 bytes all debug output is identical (I'm hash of the all output)
2022-11-09 03:41:34
<:JXL:805850130203934781> <:Thonk:805904896879493180>
_wb_
2022-11-09 03:58:05
quantization factors will be different, they're not in the debug output
DZgas Ж
_wb_ quantization factors will be different, they're not in the debug output
2022-11-09 03:58:48
but why are they different with exactly the identical output
_wb_
2022-11-09 04:00:53
it's like an 8-bit png being smaller than a 16-bit png even if the pixel values are identical
DZgas Ж
_wb_ it's like an 8-bit png being smaller than a 16-bit png even if the pixel values are identical
2022-11-09 04:03:38
I wanted to say that this is a bug of rounding coefficients... but there is nothing... only White in the image
2022-11-09 04:04:15
in general, this is not a tangible problem, but it is there.
_wb_
2022-11-09 04:07:32
it's too much of a special case to be worth detecting and optimizing it — it only applies to cases where doing more aggressive quantization happens to produce the exact same image, which can happen for single-color images but in general it will nearly never happen
DZgas Ж
2022-11-09 04:12:48
and yet this is a very strange instability
Jyrki Alakuijala
2022-11-09 04:14:03
Jon, perhaps we can learn something from it
DZgas Ж
_wb_ it's too much of a special case to be worth detecting and optimizing it — it only applies to cases where doing more aggressive quantization happens to produce the exact same image, which can happen for single-color images but in general it will nearly never happen
2022-11-09 04:14:39
I am sure that this can be done with much more colored if you draw on the borders of the blocks. Well, because of this, it can be noticeable on enlarged pixel-arts
Jyrki Alakuijala
2022-11-09 04:15:06
I am just afraid that right now we don't have capacity to look into this -- Wasm implementation and faster 16-bit lossless encoding are our top-most priorities now
2022-11-09 04:15:28
I think there is a good chance that every weirdness has a possibility to reveal an optimization possibility
2022-11-09 04:15:51
we should carefully record this into our bugs and come back to this in about 12 months
DZgas Ж
2022-11-09 04:17:06
I haven't said the funniest thing yet
2022-11-09 04:17:50
compression of this image by the VarDCT method is **20 **bytes less than Modular
2022-11-09 04:18:44
Encoding [Modular, lossless, effort: 9], Compressed to 130 bytes (0.002 bpp). Encoding [VarDCT, d25.000, effort: 9], Compressed to 110 bytes (0.002 bpp).
_wb_
2022-11-09 04:19:57
$ cjxl 13.png 13.png.jxl -d 0 -g 3 JPEG XL encoder v0.8.0 [SSE4,SSSE3,Emu128] Read 800x600 image, 202 bytes, 340.3 MP/s Encoding [Modular, lossless, effort: 7], Compressed to 53 bytes (0.001 bpp). 800 x 600, 1.63 MP/s [1.63, 1.63], 1 reps, 4 threads.
2022-11-09 04:21:08
default group size makes it 12 groups, -g 3 makes it a single group
DZgas Ж
2022-11-09 04:21:32
-g -1 == default --- default is how much
_wb_
2022-11-09 04:21:45
default is -g 1, which is 256x256 groups
DZgas Ж
2022-11-09 04:21:45
12 ok
_wb_
2022-11-09 04:22:04
-g 0 is 128x128 groups, -g 2 is 512x512 groups, -g 3 is 1024x1024 groups
DZgas Ж
2022-11-09 04:22:45
54 bytes if e 9
_wb_
2022-11-09 04:23:12
yeah, that kind of thing can happen
2022-11-09 04:23:47
heuristics are just heuristics, not everything can be estimated perfectly especially not to the byte
DZgas Ж
2022-11-09 04:24:56
eh, and how to get this in libjxl ...
_wb_ yeah, that kind of thing can happen
2022-11-09 04:30:06
I found new bug, with the parameters --modular_palette_colors=0 -P 15, a giant file is created, if you manually write -P 0, then everything is fine
2022-11-09 04:30:13
_wb_
2022-11-09 04:32:19
Strange...
DZgas Ж
2022-11-09 04:41:17
Last Build on Windows ```benchmark_xl --input=13.png --codec=jxl:lightning --debug_image_dir=. benchmark_xl v0.8.0 cdf0332 [Unknown] 4 total threads, 1 tasks, 0 threads, 4 inner threads Error in jxl:lightning codec D:\a\libjxl\libjxl\tools\benchmark\benchmark_xl.cc:143: JXL_CHECK: speed_stats.GetSummary(&summary)```
2022-11-09 04:41:39
the same error as it was
afed
Jyrki Alakuijala the latest head improved jpeg1 coding further by 2 %
2022-11-09 05:32:34
<@794205442175402004> is there any comparison for this new jpeg encoder and decoder for these metrics? <https://jon-cld.s3.amazonaws.com/test/index.html> or could it indirectly interfere with the jxl adoption, since the difference between the old jpeg may become less noticeable?
lithium
lithium Hello <@226977230121598977> Sorry to bother you, This nonphoto content sample(white blank) is very interesting, I test this sample on libjxl v0.6.0 229f574(nonphoto_separation branch) and libavif aom [enc/dec]:3.2.0-143-gf20d487e3, Look like libjxl nonphoto_separation experiment feature is very useful on this case. > base png 202 > jxl > d 0.1 e 9 211(separate=1) > d 0.1 e 3 200(separate=1) > d 0.5 e 9 211(separate=1) > d 0.5 e 7 388(separate=1) > d 1.0 e 9 207(separate=1) > d 1.0 e 7 374(separate=1) > d 12 e 7 379(separate=1) > > avif > cq-level 7 317 > cq-level 15 321 > avifenc --min 0 --max 63 -s 4 -j 12 -d 10 -a end-usage=q -a cq-level=7 I still look forward libjxl lossy can implement more improvement and feature for nonphoto content 🙂
2022-11-09 05:36:24
Look like something happened on e5~e7? or separate feature affect heuristic? > d0.5-e3 199 > d0.5-e4 235 > d0.5-e5 308 > d0.5-e6 308 > d0.5-e7 388 > d0.5-e8 212 > d0.5-e9 211 > > -d 0.5 -e 3~9 --separate=1 --num_threads=12 > JPEG XL encoder v0.6.0 229f574 (nonphoto_separation branch) > input white blank, nonphoto content Probably can do some simple palette sort and fast DCT(use target distance) to help heuristic decide apply which lossy algorithm is suitable input pixel? > fast DCT:true, palette sort:true > fast DCT:true, palette sort:False > apply varDCT > > fast DCT:False, palette sort:true > apply lossy palette > > fast DCT:False, palette sort:False > apply lossless > > fast DCT:False, palette sort:False and input format is jpeg > apply jpeg lossless
DZgas Ж
lithium Look like something happened on e5~e7? or separate feature affect heuristic? > d0.5-e3 199 > d0.5-e4 235 > d0.5-e5 308 > d0.5-e6 308 > d0.5-e7 388 > d0.5-e8 212 > d0.5-e9 211 > > -d 0.5 -e 3~9 --separate=1 --num_threads=12 > JPEG XL encoder v0.6.0 229f574 (nonphoto_separation branch) > input white blank, nonphoto content Probably can do some simple palette sort and fast DCT(use target distance) to help heuristic decide apply which lossy algorithm is suitable input pixel? > fast DCT:true, palette sort:true > fast DCT:true, palette sort:False > apply varDCT > > fast DCT:False, palette sort:true > apply lossy palette > > fast DCT:False, palette sort:False > apply lossless > > fast DCT:False, palette sort:False and input format is jpeg > apply jpeg lossless
2022-11-09 05:54:37
I don't understand too
_wb_ it's too much of a special case to be worth detecting and optimizing it — it only applies to cases where doing more aggressive quantization happens to produce the exact same image, which can happen for single-color images but in general it will nearly never happen
2022-11-09 05:55:35
<@461421345302118401>there is a small answer here, and it also says below that this is not a particularly important bug right now https://discord.com/channels/794206087879852103/794206087879852106/1039936369436393613
2022-11-09 05:57:06
perhaps it will be necessary to create a more complex and color picture so that it would be much more revealing to demonstrate this bug, but so far I'm already tired
lithium
DZgas Ж <@461421345302118401>there is a small answer here, and it also says below that this is not a particularly important bug right now https://discord.com/channels/794206087879852103/794206087879852106/1039936369436393613
2022-11-09 06:41:36
> 12 months oh no... I thought current encoder is really great for photo content, I just hope encoder can get more quality improve and feature for nonphoto content. Better encoder heuristic can handle different type content, and increase encoder robustness for random input image.
DZgas Ж
lithium > 12 months oh no... I thought current encoder is really great for photo content, I just hope encoder can get more quality improve and feature for nonphoto content. Better encoder heuristic can handle different type content, and increase encoder robustness for random input image.
2022-11-09 06:46:27
unfortunately, we are not high-class programmers.... I mean, the source code is open. And you can do code improvements whenever you want.
2022-11-09 11:09:28
interesting between q4 and q5
2022-11-09 11:09:49
on 1 bit image
lf
2022-11-10 06:35:50
Is there recommendations for public reading material on jpeg XL beside the reference implementation?
Cool Doggo
DZgas Ж interesting between q4 and q5
2022-11-10 07:27:34
distances >=20 (less than around q 4.68) have --resampling=2 by default
_wb_
lf Is there recommendations for public reading material on jpeg XL beside the reference implementation?
2022-11-10 07:48:31
You mean technical details or high-level?
lf
_wb_ You mean technical details or high-level?
2022-11-10 07:56:51
Probably middle level. Mostly so I know what I am looking at when going into the code. This is only for hobby stuff so I don't want to spend to mutch time figuring out what's going on
2022-11-10 07:58:38
Or I wait until there are more writeups or the ISO/ DIN is available in my local catalog
DZgas Ж
Cool Doggo distances >=20 (less than around q 4.68) have --resampling=2 by default
2022-11-10 08:18:42
Tricky
_wb_
lf Or I wait until there are more writeups or the ISO/ DIN is available in my local catalog
2022-11-10 08:58:20
You can find spec drafts in this discord
DZgas Ж
2022-11-10 09:24:06
a new day -- new problems of encoder characteristic
2022-11-10 09:24:35
look at my new test picture
2022-11-10 09:25:22
I'll start with the strongest
lf
_wb_ You can find spec drafts in this discord
2022-11-10 09:25:22
Oh ya thank you
DZgas Ж
DZgas Ж I'll start with the strongest
2022-11-10 09:26:45
fact that e1 size 7 times less, it is an actual LossLess. while the e7 at its size is Lossy
2022-11-10 09:28:05
in XOR it's noticeable
2022-11-10 09:31:02
I also want to say that the last build did not fix the errors on windows that were with the benchmark
DZgas Ж I'll start with the strongest
2022-11-10 09:38:05
and e9 made it even worse
2022-11-10 09:41:39
resample=8 shows a completely different result than I expected
2022-11-10 09:44:06
and here is the difference in quality between e1 and e9 at the same size. e9 is blur, and I don't understand why he and e7 do it the same way. It's a disaster for pixel art. Okay, this is just a criticism of VarDCT. Modular still works great
_wb_
2022-11-10 10:01:52
We need some heuristics to avoid doing vardct by default on images like pixel art where dct is a bad idea and modular will work better. Challenge is to do this in a way that doesn't cause surprises, because it introduces a big discontinuity in encoder behavior depending on image content (changing one pixel could lead to a completely different encode mode getting used).
w
2022-11-10 10:22:25
there could at least be a heuristic for single color images
_wb_
2022-11-10 10:46:48
Yes, I guess. Feels a bit niche, but considering e.g. layered images, it might be relatively common...
DZgas Ж
_wb_ We need some heuristics to avoid doing vardct by default on images like pixel art where dct is a bad idea and modular will work better. Challenge is to do this in a way that doesn't cause surprises, because it introduces a big discontinuity in encoder behavior depending on image content (changing one pixel could lead to a completely different encode mode getting used).
2022-11-10 10:55:31
you really need the mode of determining which image is in the frame... perhaps to do this, you just need to do 2 compressions VarDCT (on q100) and Modular at e1 speed and then select the mode that size less
_wb_
2022-11-10 01:46:45
https://twitter.com/sketchplanator/status/1590344714360082432?t=xxYdvCo5cnVJJAI0owQCmQ&s=19
2022-11-10 01:46:59
Applies to image quality assessment too
lonjil
2022-11-10 01:48:54
Remember when a common criticism of open codecs was "since they don't have money, they rely on objective metrics, which results in worse quality than our proprietary and well funded stuff which relies on mass subjective testing"?
spider-mario
2022-11-10 01:58:22
somewhat relevant
2022-11-10 01:58:36
also https://www.discovermagazine.com/the-sciences/why-scientific-studies-are-so-often-wrong-the-streetlight-effect but I think I have already linked it in the past
spider-mario somewhat relevant
2022-11-10 01:59:12
(“Understanding Psychology as a Science”, 2008, Zoltan Dienes)
2022-11-10 02:01:47
(another writing I have greatly enjoyed from that author is https://www.researchgate.net/publication/228711807_Bayesian_Versus_Orthodox_Statistics_Which_Side_Are_You_On )
improver
2022-11-10 02:31:39
psychology and politics start dominating all entities composed of humans if these entities get large enough. true objectiveness and intellectual motivation are already pretty scarce in general population, and they get easily lost / filtered out in bureaucratic megastructures
BlueSwordM
lonjil Remember when a common criticism of open codecs was "since they don't have money, they rely on objective metrics, which results in worse quality than our proprietary and well funded stuff which relies on mass subjective testing"?
2022-11-10 04:19:23
<:KekDog:805390049033191445> <:KekDog:805390049033191445> <:KekDog:805390049033191445>
2022-11-10 04:19:46
Bro, when introducing a new standard from the likes of MPEG, they always use objective metrics like PSNR and SSIM <:KekDog:805390049033191445>
lonjil
2022-11-10 04:22:46
Yeah. I just remember seeing an mpeg person like, 7 years ago on HN explaining why Google's VPx codecs will always be worse than their codecs 😂
spider-mario
2022-11-10 04:39:38
might have been an x264 author
2022-11-10 04:39:41
I think I remember that post
2022-11-10 04:39:53
it made some good points
BlueSwordM
lonjil Yeah. I just remember seeing an mpeg person like, 7 years ago on HN explaining why Google's VPx codecs will always be worse than their codecs 😂
2022-11-10 04:41:22
Oh, shikari was mainly complaining about poor encoder design philosophies.
lonjil
2022-11-10 04:50:26
I specifically remember someone singling out open source projects
DZgas Ж
2022-11-10 05:44:54
lithium
DZgas Ж unfortunately, we are not high-class programmers.... I mean, the source code is open. And you can do code improvements whenever you want.
2022-11-10 05:46:01
Thank you for your reply, It is really sad, I think I don't have enough encoder development skill to improvement nonphoto content quality and feature. Current libjxl is really great, but I guess I need find another way to process my nonphoto content.
DZgas Ж
lithium Thank you for your reply, It is really sad, I think I don't have enough encoder development skill to improvement nonphoto content quality and feature. Current libjxl is really great, but I guess I need find another way to process my nonphoto content.
2022-11-10 05:46:46
and what kind of content do you have?
lithium
DZgas Ж and what kind of content do you have?
2022-11-10 05:51:06
2d Art(pixiv), manga, comic, For some source, I want use slight filter and use lossy encoder save result.
DZgas Ж
lithium 2d Art(pixiv), manga, comic, For some source, I want use slight filter and use lossy encoder save result.
2022-11-10 05:53:43
avif speed 1-3 for all. webp q80-q90 for manga (if there is a lot of it, but if there is not lot then also AVIF)
lithium
2022-11-10 05:58:08
I understand mathematically lossless is best for non photo content, but I prefer lossy but visual lossless or near lossless plan. (tiny error is acceptable)
DZgas Ж avif speed 1-3 for all. webp q80-q90 for manga (if there is a lot of it, but if there is not lot then also AVIF)
2022-11-10 06:01:57
I test libavif before, av1 CDEF have some benefit for non photo content, libjxl butteraugli is great for some type 2d art(non photo content).
DZgas Ж
lithium I understand mathematically lossless is best for non photo content, but I prefer lossy but visual lossless or near lossless plan. (tiny error is acceptable)
2022-11-10 06:03:07
if we talk about lossless mode only, then there is nothing better than jpeg xl
lithium
DZgas Ж if we talk about lossless mode only, then there is nothing better than jpeg xl
2022-11-10 06:03:33
Agree
2022-11-10 06:07:26
I like webp near lossless(60 or 40) lossy mode, so I still want to find a newer lossy encoder, quality near webp near lossless and higher density.
DZgas Ж
lithium I like webp near lossless(60 or 40) lossy mode, so I still want to find a newer lossy encoder, quality near webp near lossless and higher density.
2022-11-10 06:18:02
webp is not so good anymore... if anything, the new terminal versions have an **experimental **automatic filter adjustment function, it also makes the quality a little better
2022-11-10 06:19:14
I tried it, it really smooths artifacts better, and removes unnecessary smoothing more cleverly, but coding takes about 2 times longer
_wb_
2022-11-10 07:11:36
There's a few near-lossless approaches that could be tried in modular
DZgas Ж
2022-11-10 09:52:09
the difference between e6 and e7 looks funny
improver
2022-11-10 09:53:13
artsy
lonjil
2022-11-10 09:54:13
I've passed 1000 lines of code in my jxl decoder
improver
2022-11-10 09:54:48
how many structures can it parse yet
lonjil
2022-11-10 09:55:09
I'm almost done with the frame header
_wb_
2022-11-10 10:12:50
lonjil
2022-11-10 11:06:39
pro tip: how to pad your loc metrics to avoid elon firing u ```rust set!( r, self.encoding == FrameEncoding::Modular, Un(2), self.group_size_shift, u8 ); ```
2022-11-11 12:11:04
Alright, FreamHeader finished, time for sleep
DZgas Ж
2022-11-11 05:55:42
jpeg xl "E 6" turned out to be the best of the fastest compression methods, I'm happy to compress 700 thousand images
2022-11-11 06:19:59
q 70 i use
yurume
2022-11-11 11:02:10
https://crowd-jpeg.vercel.app/ "each visit to the page deteriorates the main image"
2022-11-11 11:02:32
which made into the HN front page just right now and the visit counter is skyrocketing
DZgas Ж
2022-11-12 06:54:47
is the video of this comparison on YouTube
2022-11-12 09:08:55
someone has windows build of libjxl-tiny ?
fab
2022-11-12 10:16:56
is a virus on windows 7
2022-11-12 10:17:24
if you want to download the only site is doom9 alternative jpg codecs
2022-11-12 10:17:33
in new and alternative codecs section
2022-11-12 10:17:52
but link is too old 2 months ago and in sendspace
DZgas Ж
fab if you want to download the only site is doom9 alternative jpg codecs
2022-11-12 10:38:54
it's amazing that he was there, thank you. but still there are problems with his Linux, he doesn't understand PNG or BMP. just like that on windows it will be possible to use it not without problems
2022-11-12 10:39:16
cjxl_tiny.exe
2022-11-12 10:40:59
AH! my friend outrun me by 5 minutes, and compiled it too (last build)
2022-11-12 10:41:58
for some reason, the executable file turned out to be 3 times smaller (MSVC vs MinGW)
2022-11-12 10:43:56
yes, I don't understand why it was impossible to put some kind of TINY PNG decoder
2022-11-12 10:54:27
ppm not work
2022-11-12 10:55:44
pfm only...well
2022-11-12 11:00:46
I have a lot of software... but none can create a pfm file
_wb_
2022-11-12 11:03:39
Imagemagick can
2022-11-12 11:04:24
`convert image.png -colorspace RGB input-for-libjxl-tiny.pfm`
DZgas Ж
2022-11-12 11:04:43
I don't like Imagemagick
_wb_ Imagemagick can
2022-11-12 11:05:08
anyone more?
_wb_
2022-11-12 11:07:46
Gimp?
2022-11-12 11:08:08
You can also use cjxl/djxl to produce a pfm
DZgas Ж
_wb_ Gimp?
2022-11-12 11:12:00
<:SadCheems:890866831047417898>
fab
_wb_ You can also use cjxl/djxl to produce a pfm
2022-11-12 11:13:39
Yes
2022-11-12 11:13:44
I did this
DZgas Ж
_wb_ You can also use cjxl/djxl to produce a pfm
2022-11-12 11:13:53
It would be very nice if in libjxl-tiny... and in standart libjxl was introduced the microscopic QOI
JendaLinda
2022-11-12 11:34:27
Gimp cannot handle pfm produced by djxl, the levels are all wrong like if they were shifted/truncated. Gimp also refuses to read pam files at all.
DZgas Ж
2022-11-12 12:56:51
<:PepeSadCatGun:973222795150508082>
2022-11-12 01:32:30
I get photoshop 2007. converted it to 32 bits, then saved it to .PFM. then compressed it. In Photoshop, the PFM file is displayed well, but cjxl-tiny has lost colors, brightness, And in addition mirrored the image
_wb_ `convert image.png -colorspace RGB input-for-libjxl-tiny.pfm`
2022-11-12 02:08:52
mirroring is photoshop problem, but the problem with colors is completely identical
_wb_
2022-11-12 02:23:08
Pfm has no colorspace info, libjxl-tiny expects linear, others will interpret it as sRGB
DZgas Ж
_wb_ Pfm has no colorspace info, libjxl-tiny expects linear, others will interpret it as sRGB
2022-11-12 02:37:33
you gave me a command for Imagemagick, and it turns out it doesn't work, and photoshop too. In this case, I don't understand how I can get the PFM file Correctly to compress it via libjxl-tiny
_wb_
2022-11-12 02:39:08
Do you have a tagged png as input? If it is untagged, then you need to do something like `convert image.png -colorspace sRGB -colorspace RGB input.pfm` iirc
2022-11-12 02:40:45
Also, to decode the jxl you need something like this: `djxl compressed.jxl decompressed.png --bits_per_sample 16 --color_space RGB_D65_SRG_Per_SRG`
DZgas Ж
_wb_ Do you have a tagged png as input? If it is untagged, then you need to do something like `convert image.png -colorspace sRGB -colorspace RGB input.pfm` iirc
2022-11-12 02:40:49
not work too
_wb_
2022-11-12 02:41:04
How do you view the jxl file you get?
DZgas Ж
2022-11-12 02:41:34
firefox and PaintDotNet is same
2022-11-12 02:41:39
_wb_ Also, to decode the jxl you need something like this: `djxl compressed.jxl decompressed.png --bits_per_sample 16 --color_space RGB_D65_SRG_Per_SRG`
2022-11-12 02:43:57
This gives the correct result. But now I have a question - why should I do this?
2022-11-12 02:44:48
the decoder cannot decode correctly by default, it's the problem
2022-11-12 02:54:26
returning to the topic of libjxl-tiny, there are artifacts like libjxl e5+ so some function also deteriorate images.. I wanted to do testing to find out how TINY would be worse than libjxl e 3. But now I won't do this because I'm not comparing photos, but this pictures, and at the very beginning already lost... I do not know which specific function is responsible for such artifacts... I just seemed to me that libjxl-tiny technology would be somewhere between libjxl e1-e3. in the beginning, I was wary when I saw 8x16 variable blocks in the description. But now it's clear to me that libjxl-tiny is all technology but little bit.
_wb_
DZgas Ж This gives the correct result. But now I have a question - why should I do this?
2022-11-12 03:00:49
It would be better if djxl would do that by default, I agree. The issue is not in the decode, it is in the png writing...
spider-mario
2022-11-13 09:43:17
_wb_
2022-11-13 09:54:53
Lol what
improver
2022-11-13 09:58:27
ol good velocidensity meme
veluca
2022-11-13 10:09:44
I can't imagine it's anything but a troll
lonjil
2022-11-13 10:13:25
Everyone on 4chan is a troll
improver
2022-11-13 10:20:53
it kinda works though because encoders used to be worse back then and people were younger & less picky
2022-11-13 10:21:37
it's like you'd often remember stuff sounding better than it actually will nowadays
Traneptora
2022-11-13 10:25:49
it's a common meme yea
190n
spider-mario
2022-11-13 11:43:30
this image gains 0.05 butteraugli every time it's reposted
Traneptora
190n this image gains 0.05 butteraugli every time it's reposted
2022-11-14 12:44:49
but what about my convergent jxl generation loss
diskorduser
Traneptora but what about my convergent jxl generation loss
2022-11-16 06:34:32
what is mm?
yurume
2022-11-16 08:53:44
I believe "mm" is for "minus-minus", for `--`
Traneptora
2022-11-16 09:40:43
^ it's this, yes
2022-11-16 09:41:29
once it finds `--` it stops parsing arguments and treats everything after that as a filename
yurume
2022-11-16 09:44:13
now, `-` is officially a "hyphen-minus" (the official Unicode name), and also colloquially called a dash 😉
Traneptora
2022-11-16 02:22:29
nah, a hyphen and a dash are different
_wb_
2022-11-16 02:59:54
there are many dash-like things: en-dash –, em-dash —, minus sign −, figure dash ‒, and the hyphen-minus from ASCII/Unicode -, to name a few
Traneptora
2022-11-16 03:22:13
but I always pronounce `--help` and the like as "minus minus help"
2022-11-16 03:22:16
when reading it out loud
2022-11-16 03:22:23
and that's why I called it `foundMM`
_wb_
2022-11-16 03:29:20
I'd say dash dash help 🙂
novomesk
2022-11-16 04:12:21
...---... call for help.
Traneptora
2022-11-16 04:21:22
._.
BlueSwordM
2022-11-17 01:39:44
What the actual fuck? <:KekDog:805390049033191445> Bro, I got native AVIF support out of the box with KDE <:kekw:808717074305122316>
Traneptora
2022-11-17 06:15:46
sounds like a classic consumer of proprietary software
2022-11-17 06:15:49
"It doesn't work. Fix it."
diskorduser
2022-11-19 05:08:22
These 3 plugins does not have enough information or guide to install them on mac/windows. proper documentation of installation or an installer is needed. it should be easier for an average computer user to install these plugins. they don't know about compiling software from GitHub.
2022-11-19 05:29:57
for average user, github is not a familiar website. mostly they don;t need source code. it would be better if there is page for installing these plugins.
2022-11-19 05:37:42
Would it be easier if there is an installer.exe and uninstaller for this purpose? many people don't touch windows terminal.
2022-11-19 05:56:43
Does it cost some money for signing?
2022-11-19 06:07:39
still it is better to have some installer even if it is unsigned and it triggers the antivirus.
2022-11-19 06:13:10
https://wixtoolset.org/ may be this will work.
sklwmp
2022-11-21 12:27:20
this is probably one of the funnier twitter interactions i have seen in the mess it's in right now
monad
2022-11-21 05:34:09
*sneaking jxl into a tweet quote for more visibility by also mentioning avif*
Jim
2022-11-21 12:11:40
Not able to find anything like that, just Intel vs AMD... and all those statistics are from either self-done benchmarks or Steam -- so those stats are likely focused on the high-end & gamer markets. Typical Joe isn't going to be running benchmarks and may not be using Steam.
2022-11-21 12:14:47
Granted, AVX2 goes back to 2013 processors. I would say stick with that. Usage of processors with just AVX are likely a fairly small %.
The_Decryptor
2022-11-21 12:21:49
I think it'd make sense to follow the x86 microarchitecture levels, https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level
2022-11-21 12:22:07
That groups AVX/AVX2 together into the same tier
improver
2022-11-21 12:29:41
i have a laptop which can do AVX but not AVX2
w
2022-11-21 12:30:36
avx2 is haswell and later, sandy bridge and ivy bridge were very popular
Jim
The_Decryptor I think it'd make sense to follow the x86 microarchitecture levels, https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level
2022-11-21 12:31:08
Except they haven't actually built it yet. Looks like they are putting everything on v2 which doesn't appear to even have AVX support yet.
The_Decryptor
2022-11-21 12:32:04
That was just a page I found talking about them, GCC/Clang have supported them for a couple of years
diskorduser
2022-11-23 01:52:37
jxl larger than png and webp
_wb_
2022-11-23 01:58:01
What about -e 9?
diskorduser
2022-11-23 02:02:08
31.4k. still I think it should compress it better than webp by default settings.
_wb_
2022-11-23 02:34:44
it's mostly that we need to improve lossless encoder heuristics for such cases
diskorduser
2022-11-23 03:45:23
on compiling fjxl, I get the error during building. what is this? `❯ ./build.sh /usr/bin/ld: cannot find -lomp: No such file or directory clang-15.0: error: linker command failed with exit code 1 (use -v to see invocation) `
afed
2022-11-23 03:50:13
perhaps openmp is missing
_wb_
2022-11-23 03:59:43
`sudo apt install libomp-dev` or something like that should do the trick
diskorduser
afed perhaps openmp is missing
2022-11-23 04:00:28
do you know which package provides it? I'm using opensuse. https://pastebin.pl/view/raw/37bfa6ad
_wb_
2022-11-23 04:01:39
on my debian, I see these: ``` libomp-dev - LLVM OpenMP runtime - dev package libomp5 - LLVM OpenMP runtime libomp-13-dev - LLVM OpenMP runtime - dev package libomp-13-doc - LLVM OpenMP runtime - Documentation libomp5-13 - LLVM OpenMP runtime libomp-14-dev - LLVM OpenMP runtime - dev package libomp-14-doc - LLVM OpenMP runtime - Documentation libomp5-14 - LLVM OpenMP runtime libomp-15-dev - LLVM OpenMP runtime - dev package libomp-15-doc - LLVM OpenMP runtime - Documentation libomp5-15 - LLVM OpenMP runtime ```
diskorduser
2022-11-23 04:04:45
I see these packages. not sure which one to install.
2022-11-23 04:04:56
`S | Name | Summary | Type --+----------------+---------------------+-------- | libomp11-devel | MPI plugin for LLVM | package | libomp12-devel | MPI plugin for LLVM | package | libomp13-devel | MPI plugin for LLVM | package | libomp14-devel | MPI plugin for LLVM | package | libomp15-devel | MPI plugin for LLVM | package`
_wb_
2022-11-23 04:06:17
probably the same one as the clang/llvm version you're using?
diskorduser
2022-11-23 04:07:15
It compiled successfully!!
BlueSwordM
2022-11-24 04:37:57
>`WebP is a relatively new image format` <:KekDog:805390049033191445>
Jyrki Alakuijala
diskorduser 31.4k. still I think it should compress it better than webp by default settings.
2022-11-24 01:20:48
webp lossless is good, too 🙂
Traneptora
2022-11-24 02:27:17
webp lossless iirc is something you et al invented from scratch, right?
2022-11-24 02:27:32
like it's basically an unrelated codec to webp lossy
_wb_
2022-11-24 02:49:24
Yeah, it's completely unrelated
2022-11-24 02:55:07
It has some nice ideas, some of which were brought to jxl, some we couldn't really bring to jxl...
2022-11-24 03:00:19
Lossless webp is by design a bit closer to png than jxl: it also does things interleaved, sample values are bytes, and entropy coding is lz77-style. By contrast, jxl does things planar, sample values have arbitrary range (doesn't need to be mapped to bytes), and entropy coding is more statistical/ctx modeling (though there's also an lz77 option)
2022-11-24 03:04:05
Interleaved and hardcoded for 8-bit rgba is good for speed and allows some interesting coding tools like the color cache, which is harder to do if you don't hardcode for a specific bitdepth and channel count
Gota7
2022-11-24 08:03:14
hello, I'm a game developer and want to add JXL support to my game since I saw the insane amounts of compression capable
2022-11-24 08:03:31
the game is a 3d platformer made in C++
2022-11-24 08:04:18
the problem is including the entire libjxl seems very bloated, are there "miniature" decoder implementations like `stb_image`, `dr_wav`, etc.?
2022-11-24 08:04:46
or is including the library not too expensive size-wise?
yurume
2022-11-24 08:10:25
as a past gamedev, I would suggest not to do that 😉
2022-11-24 08:11:10
as a game developer you have *way* more freedom than jxl, and you can always use that as an advantage
2022-11-24 08:12:41
for example it is very likely that you can use texture compression algorithms like PVRTC which can be decompressed directly from GPU
Gota7 the problem is including the entire libjxl seems very bloated, are there "miniature" decoder implementations like `stb_image`, `dr_wav`, etc.?
2022-11-24 08:13:49
there *exists* a smaller implementation, I have written one (https://github.com/lifthrasiir/j40) but that sounds like a solution seeking matching problems
Gota7
2022-11-24 08:21:48
I want the formats used to be cross platform though
_wb_
2022-11-24 08:21:50
libjxl_dec is also a lot smaller than the full libjxl
Gota7
2022-11-24 08:22:24
I can try using that, I have tried j40 but even though I define the needed macros I get linker errors <@268284145820631040>
2022-11-24 08:22:33
Let me send a pic
2022-11-24 08:23:25
2022-11-24 08:23:34
I can try `libjxl_dec` when I get a chance
yurume
2022-11-24 08:25:59
huh that's strange. do you have multiple `#include <j40.h>` lines across your code?
Gota7
2022-11-24 08:26:18
I have one in a header
yurume
2022-11-24 08:26:28
but without `J40_IMPLEMENTATION`, right?
Gota7
2022-11-24 08:26:32
Yep
2022-11-24 08:27:02
yurume
2022-11-24 08:27:11
can you try `::j40_from_file` etc?
Gota7
2022-11-24 08:28:03
didn't work unfortunately, still linker errors
2022-11-24 08:28:11
I'm using DEVKITARM for the 3ds
yurume
2022-11-24 08:30:37
(by the way you can get `CHAR_BIT` from `#include <limits.h>`)
Gota7
2022-11-24 08:30:44
Ohhh ok
yurume
2022-11-24 08:31:30
thinking about that, I realized I never actually have built J40 in C++ (though it does have `extern "C" { ... }`), let me check that first
2022-11-24 08:42:27
I have *other* issues to sort out (recent enough compilers will require `-fpermissive`, due to the differences between C and C++), but J40 seems to compile fine with g++
Gota7
2022-11-24 09:04:53
I have fpermissive enabled by chance
2022-11-24 09:05:21
Extern c think makes sense though
yurume
2022-11-24 09:06:15
I worried about the possibility that function declarations in `extern "C"` might be interpreted as something else in C++, but that's not the case
2022-11-24 09:07:02
so your error indicates that, for some reason, compiler thought that: ```cpp extern "C" { j40_err j40_output_format(j40_image *image, int32_t channel, int32_t format); j40_err j40_output_format(j40_image *image, int32_t channel, int32_t format) { ... } } ```doesn't mean what I wanted to mean
Gota7
2022-11-24 09:08:03
I can't try anything now, but I will experiment later
yurume
2022-11-24 09:09:19
I will try to actually install devkitPro
2022-11-24 09:31:08
I've replicated every environment and still can't get the exactly same error as you've seen...
Gota7
2022-11-24 10:46:37
Ah dang
2022-11-24 10:46:57
Appreciate your help though
2022-11-24 11:12:16
2022-11-24 11:12:34
so I narrowed it down to the macro not seeming to be defined, despite me doing so
2022-11-24 11:12:57
as this still compiles, even though it shouldn't
yurume
2022-11-24 11:21:10
ah wait
Gota7
2022-11-24 11:21:17
so it turns out I was dumb
2022-11-24 11:21:18
yurume
2022-11-24 11:21:30
now it dawned to me that I think you've found a very important caveat in J40
Gota7
2022-11-24 11:21:31
I needed to define the header with implementation before including the header that included the header
yurume
2022-11-24 11:21:39
yes, exactly
2022-11-24 11:22:23
so... if there are two `#include <j40.h>` lines and `J40_IMPLEMENTATION` was in between the second include will be ignored and you won't get any implementation
2022-11-24 11:23:07
it seems it's very easy to overlook, neither I nor you were able to figure that at the first glance, J40 ideally should guard against such errors
Gota7
2022-11-24 11:24:29
yeah, I haven't encountered it with the stb or dr libs, so looking how they do it would be helpful
2022-11-24 11:24:50
though are there more compilation flags other than `-fpermissive` needed as I did have some build errors
2022-11-24 11:24:58
yurume
Gota7 yeah, I haven't encountered it with the stb or dr libs, so looking how they do it would be helpful
2022-11-24 11:26:20
probably because J40 relies a lot on self-inclusion (sth like `#include __FILE__`)?
Gota7
2022-11-24 11:26:52
yeah, that's what I've seen
2022-11-24 11:29:53
there are several main issues: implicit pointer casting (C++ doesn't like it; `-fpermissive` should downgrade errors to warnings), `[[nodiscard]]` incorrectly applied (you can `#define J40_NODISCARD` to disable J40's default behavior), `j40__floor_lg64` missing (huh, so there is no `__builtin_clzll` in this platform?), `posix_memalign` missing (oops), and finally enums declared in structs have independent scopes in C++
Gota7
2022-11-24 11:31:05
I mean this is probably the biggest edge case of using the header
2022-11-24 11:31:22
idk who else would have the idea of using this library for the 3ds of all things
yurume
2022-11-24 11:32:08
is it even barely practical? 🤔
2022-11-24 11:33:03
J40 (and more generally JPEG XL) requires quite a lot of dynamic allocations and I'm very sure that you will have that problem even after you manage to compile J40 or libjxl-tiny
Gota7
2022-11-24 11:33:56
idk how well the 3ds performs in that, but I do know stb_image and audio streaming through those single headers work well :p
yurume
2022-11-24 11:34:18
but besides from that practical concern, I designed J40 as a portable library and it's a shame that there are still lots of compat issues 🤣
Gota7
2022-11-24 11:34:25
(though you legit have to add multi-threading just to handle audio *and* gameplay)
2022-11-24 11:35:00
I mean you don't know until you test
2022-11-24 11:35:26
I still have a ton of errors with my game's cross compilation system that I have yet to fix
2022-11-24 11:37:33
designing single header portable libs sounds really hard though with how dense they are, they are super useful though
2022-11-24 11:39:09
<@794205442175402004> where is this libjxl_dec, I see the full version here: https://github.com/libjxl/libjxl
2022-11-25 02:35:35
ye
novomesk
2022-11-25 01:02:28
BitDefender thinks that cjxl.exe is Gen:Variant.Tedy.210850
improver
2022-11-25 01:08:29
Tedy :--DDD
novomesk
2022-11-25 01:29:43
But there is not enough interest from the rest of the security ecosystem to declare it malicious.
Fedora
2022-11-25 06:22:54
signed by ev code signing certificate - https://antiscan.me/images/result/0cslKrLokF2w.png original unsigned - https://antiscan.me/images/result/htjyIY0KyB57.png
2022-11-25 06:25:08
just give microsoft 300 bucks a year and found a company to whitelist your software from several AVs <:lul:946531054485930015>
2022-11-25 06:25:12
10/10 works
Kagamiin~ Saphri
Fedora signed by ev code signing certificate - https://antiscan.me/images/result/0cslKrLokF2w.png original unsigned - https://antiscan.me/images/result/htjyIY0KyB57.png
2022-11-27 04:21:10
lmao imagine using antivirus software /hj
2022-11-27 04:22:07
sucks for corporate workstations where antivirus software is mandated by company policy... and it's usually crap such as McAfee or TrendMicro
2022-11-27 04:23:27
at work we're forced to use McAfee even on GNU/Linux... and because of this we're forced to use Ubuntu because the policies are only set up to work correctly on Ubuntu and putting it in any other distro makes it wreak havoc
diskorduser
2022-11-27 04:30:01
What kind of policies
Eugene Vert
2022-11-27 05:23:21
Wow telegram desktop from flathub supports JXL view and upload
afed
2022-11-27 05:27:04
would be nice to add this for all platforms, then basically more than 700 million users would get jxl support https://github.com/telegramdesktop/tdesktop/issues/5522#issuecomment-1295915969
novomesk
2022-11-27 05:47:01
It will get JXL support on Windows too but people are demanding HEIC. Unfortunately HEIF implementation has vulnerabilities. It is not such big problem for an image viewer where you open only your images. But it is a risk to receive unknown files from other sources.
_wb_
2022-11-27 07:06:01
Why?
novomesk
2022-11-27 07:09:41
Because tdesktop app would crash upon receiving specific files.
_wb_
2022-11-27 07:13:54
Oh, that's not good. Why does it crash? Is the decoder just buggy?
novomesk
_wb_ Oh, that's not good. Why does it crash? Is the decoder just buggy?
2022-11-27 07:18:57
Those are issues in libde265 (used via libheif). Time to time they get fixed, author has lot of work on other projects. Meanwhile new incidents are being discovered.
_wb_
2022-11-27 07:22:12
I see. I didn't know that libde265 had some security issues. I guess x265 could be used too, is that in a better shape security-wise?
spider-mario
2022-11-27 07:25:19
doesn’t that do encoding only?
2022-11-27 07:26:57
at least that’s what we wrote in https://research.google/pubs/pub50095/
2022-11-27 07:27:15
> Note that x265 is only an encoder. We used the decoder in FFmpeg at revision 2d58fa (February 5th, 2020), which is not parallelized, even when the input would allow it.
_wb_
2022-11-27 08:06:38
Ah, no idea
2022-11-27 08:07:09
What decoder does ffmpeg use then?
spider-mario
2022-11-27 09:23:31
its own, from what I recall
2022-11-27 09:24:58
https://github.com/FFmpeg/FFmpeg/blob/2324b917fce0eb0175ed3c135a51213e1bf7bc18/libavcodec/hevcdec.c
_wb_
2022-11-27 10:00:48
embed
2022-11-27 10:00:59
https://embed.moe/auto.gif?q=https%3A%2F%2Fcdn.discordapp.com%2Fattachments%2F794206087879852106%2F1046546161173008486%2Ftest.jxl
2022-11-27 10:01:42
https://embed.moe/auto.gif?q=https%3A%2F%2Fcdn.discordapp.com%2Fattachments%2F794206087879852106%2F1046546161173008486%2Ftest.jxl
_wb_
2022-11-27 10:01:53
hm, why is the embed bot failing on this?
2022-11-27 10:02:21
2022-11-27 10:03:14
that's what I get when doing cjxl -d 11 on a random grayscale 160x120 face
2022-11-27 10:04:44
with color, it's a bit larger
2022-11-27 10:04:54
2022-11-27 10:05:38
obviously this is very low quality. Probably still good enough to recognize a face though.
2022-11-27 10:06:10
What exactly is the use case you have, <@1046483207568228383> ? Where does the size limit come from?
BlueSwordM
spider-mario doesn’t that do encoding only?
2022-11-27 10:30:59
Yes.
_wb_ What decoder does ffmpeg use then?
2022-11-27 10:31:10
ffhevc.
drowsycharizard
_wb_ What exactly is the use case you have, <@1046483207568228383> ? Where does the size limit come from?
2022-11-27 10:37:44
Hi! let's carry on the discussion in the forum 🙂
uis
2022-11-28 05:09:30
JXL supports colored splines. Does it mean JXL can losslessy encode amime-style pictures with lossy techniques for gradient and splines for outlines?
Traneptora
2022-11-28 05:57:26
in theory, but no encoder does that atm
_wb_
2022-11-28 06:31:50
One complication is that jxl splines are added to the image, i.e. they don't paint over whatever is underneath...
2022-11-28 06:36:24
So they can be used to draw lines on a smooth background, but not really to do outlines where the two sides of the line have a different color
2022-11-28 06:37:40
Except if the color of the line is black or white, then you can cheat by using extreme values that can be added to anything and still result in black or white
2022-11-28 06:38:24
(at least for black that works... For white maybe it doesn't really, and causes blindingly bright white instead)
Traneptora
2022-11-28 07:06:59
You could always do a frame for splines with a kReplace blending mode
Kagamiin~ Saphri
diskorduser What kind of policies
2022-11-28 07:58:56
antivirus policies
2022-11-28 07:59:11
corporate IT shit
novomesk
2022-11-28 09:25:03
Some AV vendors changed their opinion.
Jim
2022-11-28 09:38:37
False positives happen all the time. If someone reported it I am sure they are correcting it.
diskorduser
2022-11-29 10:41:22
<@853026420792360980> Does using jaotc improve jxlatte performance?
Traneptora
diskorduser <@853026420792360980> Does using jaotc improve jxlatte performance?
2022-11-29 01:55:25
never heard of jaotc. what's that?
diskorduser
2022-11-29 01:56:19
Precompiled machine code
Traneptora
2022-11-29 01:57:07
just googled it. I'd have to investigate, tbh.
afed
2022-11-29 03:04:21
so cjpeg_hdr can encode jx-jpeg/jpeg_xyb? https://github.com/libjxl/libjxl/pull/1928
spider-mario
2022-11-29 04:10:30
not xyb, as the ICC profile needs to signal either PQ or HLG to indicate that the JPEG is HDR
Traneptora
diskorduser Precompiled machine code
2022-11-29 04:15:47
update: apparently jaotc is deprecated and only exists between JDK9 and JDK11
2022-11-29 04:15:53
it's not worth it to try to encorporate it
diskorduser
2022-11-29 04:16:54
Yeah I know. I used it on Java 11. it worked
Traneptora
2022-11-29 04:17:18
jxlatte is built for Java 8 so it doesn't really seem worth it to me
2022-11-29 04:17:26
to try to integrate it
diskorduser
2022-11-29 04:30:48
Ok. But my Java 8 code worked on java11 too
spider-mario
2022-11-29 05:11:22
ow, gcj looks even more dead