|
_wb_
|
2021-01-26 04:32:27
|
Squoosh includes jxl support: https://squoosh.app/
|
|
2021-01-26 04:33:44
|
ImageMagick supports jxl since version 7.0.10-54: https://imagemagick.org/
|
|
2021-01-26 04:35:04
|
https://www.reddit.com/r/jpegxl/comments/l4nwb2/how_to_view_jpeg_xl_images_in_nomacs_for_windows/
|
|
|
BlueSwordM
|
2021-01-26 04:44:35
|
Instructions how to get JPEG XL for all QT stuff on Linux:
https://github.com/novomesk/qt-jpegxl-image-plugin
After that, you will be able to view your pictures, have thumbnails generated, and even capture JXL screenshots.
|
|
2021-01-28 04:10:19
|
How to get nomacs on Windows to decode JPEG-XL images natively:
https://old.reddit.com/r/jpegxl/comments/l4nwb2/how_to_view_jpeg_xl_images_in_nomacs_for_windows/
|
|
|
yllan
|
2021-01-31 06:07:34
|
macOS JXL viewer + QuickLook plugin https://github.com/yllan/JXLook
|
|
|
_wb_
|
2021-02-02 01:15:11
|
Thumbnail handler for Windows File Explorer: https://github.com/saschanaz/jxl-winthumb
|
|
2021-02-04 09:36:57
|
https://jeremylee.sh/bin.html
|
|
|
Scope
|
2021-02-08 01:07:07
|
https://github.com/mirillis151/jpegxl-wic
|
|
|
Nova Aurora
|
2021-02-08 01:21:43
|
Cool, so that'll help with windows
|
|
|
|
Deleted User
|
2021-02-08 07:02:33
|
Yeah, this will help a lot with the adoption on windows
|
|
|
raysar
|
2021-02-08 09:13:58
|
i don't understant "according value is added to your PATH environment variable"
What folder need to be in the PATH?
|
|
2021-02-08 10:01:38
|
the readme is incomprehensible for non dev.
|
|
|
elvissteinjr
|
|
raysar
the readme is incomprehensible for non dev.
|
|
2021-02-08 12:47:42
|
Probably because these aren't non-dev instructions, but how to compile it manually and have it install afterwards. I'd imagine binary releases will be available sooner or later.
|
|
|
BlueSwordM
|
2021-02-08 01:47:49
|
The easy part is putting stuff in yout path.
The hard stuff is everything else.
|
|
|
spider-mario
|
2021-02-09 11:18:28
|
I remember when I was 11 or 12 and got my hands on a Java book (1.2 iirc)
|
|
2021-02-09 11:18:45
|
it said to install the JDK, and then to run “javac foo.java”
|
|
2021-02-09 11:18:57
|
without explaining the required “add to PATH” step in between
|
|
2021-02-09 11:19:09
|
so it didn’t work for me and I gave up (and learned C++ instead)
|
|
|
BlueSwordM
|
2021-02-09 11:44:46
|
Which was a good thing in retrospec.
|
|
2021-02-09 11:44:53
|
Honestly, I like C/C++.
|
|
|
Pieter
|
2021-02-09 11:51:32
|
first learned Basic ("wow I can make a computer do things"), then C ("wow I can make a computer do things quickly!"), then Java ("wow a language with some helpful abstractions and standard routine"), then C++ ("wow, that, but fast!")
|
|
|
Nova Aurora
|
2021-02-10 12:07:34
|
Python, then C
|
|
|
Master Of Zen
|
2021-02-10 12:18:52
|
Fun, stuff. But more faster language is used for matrix GUI app -> worse it is
|
|
2021-02-10 12:20:29
|
C++ have icons and button misalign, bare bone functionality. Rust is ugly as hell because gtk+.
JS is nice, a lot of features, etc
|
|
|
lonjil
|
2021-02-10 06:21:30
|
I learned C from a book that was printed before I was born.
|
|
|
_wb_
|
2021-02-10 06:27:02
|
I started with Commodore Basic, then GW Basic and QuickBasic, then TurboPascal, PPL, C, C++, PHP, Perl, Java, Prolog, Haskell, [series of weird academic declarative languages you never heard of], and now just C++
|
|
|
Pieter
|
2021-02-10 06:34:00
|
GWBasic, QBasic, QuickBasic, Visual Basic 3, 5, 6; Perl, C, Java, PHP, Prolog, Haskell, [series of weird academic declarative languages you never heard of, except you, <@!794205442175402004>], C++, Python.
|
|
|
_wb_
|
2021-02-10 06:47:27
|
Ah yes, QBasic was the stripped down version of QuickBasic, right? Without compiler, only interpreter iirc.
|
|
|
Pieter
|
2021-02-10 06:48:13
|
Yes. But I learned about QBasic before QuickBasic (or even the existence of a "compiler")
|
|
|
_wb_
|
2021-02-10 06:48:44
|
Same. QBasic shipped with DOS iirc
|
|
|
Pieter
|
2021-02-10 06:49:20
|
GWBasic I learned maybe around 1994. QuickBasic I got from Pater Leo, who I believe you know. Maybe in 1996 or 1997.
|
|
2021-02-10 06:49:47
|
QBasic was somewhere in between.
|
|
|
_wb_
|
2021-02-10 07:00:07
|
Haha, Father Leo, Latin teacher. Yes. I once made a RPG/adventure game set in that school. Text based, written in really ugly QuickBasic spaghetti
|
|
|
Pieter
|
2021-02-10 07:01:54
|
Apparently he died in 2019.
|
|
2021-02-10 07:03:50
|
To anyone confused here, <@794205442175402004> and I went to the same school (but didn't know each other there), and later became colleagues.
|
|
|
mvanderhallen
|
2021-02-10 10:15:25
|
<@!799692065771749416> <@!794205442175402004> I'm betting I've heard at least *one* of these academic declarative languages 😄
|
|
2021-02-10 10:17:06
|
Pretty sure I even pass posters explaining one of them daily (well, before the Covid-19 pandemic lockdown obviously)
|
|
|
_wb_
|
2021-02-10 10:17:48
|
CHR probably?
|
|
|
mvanderhallen
|
2021-02-10 10:18:10
|
*ding ding*
|
|
2021-02-10 10:26:59
|
And probably at least one of you learned Mercury as well 🙂
|
|
|
_wb_
|
|
Scope
|
2021-02-10 05:10:24
|
<https://github.com/novomesk/qt-jpegxl-image-plugin/commit/9af0185382957c99e58455af940f14f88784c18e>
`Adjust for new encoding API` <:Hypers:808826266060193874>
|
|
|
BlueSwordM
|
|
Scope
<https://github.com/novomesk/qt-jpegxl-image-plugin/commit/9af0185382957c99e58455af940f14f88784c18e>
`Adjust for new encoding API` <:Hypers:808826266060193874>
|
|
2021-02-10 05:12:58
|
Yeah, that fixed the compile bug I had yesterday.
|
|
|
raysar
|
2021-02-10 05:17:40
|
When i compile with the new commit i have:
`-- CMAKE_SYSTEM_PROCESSOR is x86_64
-- tcmalloc version -- tcmalloc 2.8.0 disabled due to https://github.com/gperftools/gperftools/issues/1204
CMake Error at CMakeLists.txt:127 (message):
Different C/C++ compilers set: GNU vs Clang`
I'm a noob, i do this command: export CC=clang-7 CXX=clang++-7
What i need to do in debian to correct that? 🥺
|
|
|
Pieter
|
|
mvanderhallen
And probably at least one of you learned Mercury as well 🙂
|
|
2021-02-10 06:14:22
|
I never learned Mercury.
|
|
|
mvanderhallen
|
|
Pieter
I never learned Mercury.
|
|
2021-02-10 06:42:51
|
Yeah, I wasn't sure whether it was the engineering or Informatica students who had to learn that as well in the declarative languages course :). I remember studying it when I had to TA the course 😂
|
|
|
Pieter
|
2021-02-10 06:46:40
|
I think in Declarative Languages we only had Haskell and Prolog (and maybe one course about something else, I'm not sure).
|
|
|
Nova Aurora
|
2021-02-11 07:41:19
|
Anyone else have trouble compiling the latest version of the qt-jpeg-xl plugin?
|
|
2021-02-11 07:42:54
|
I get this:
|
|
|
diskorduser
|
2021-02-11 11:20:04
|
It compiles fine here
|
|
|
Scope
|
2021-02-13 10:15:54
|
https://openbenchmarking.org/test/pts/jpegxl&eval=38154180e2f8902493961238685d09b5b503d8ff#metrics
|
|
2021-02-13 10:16:12
|
|
|
|
fab
|
2021-02-13 12:37:07
|
has anyone jpeg xl 0.3.1 without compiling anything on linux? ah that's probably adoption and not tools
|
|
|
Crixis
|
2021-02-13 01:55:11
|
Yes, <@111445179587624960> on encode.us
|
|
2021-02-13 01:55:34
|
For windows
|
|
|
fab
|
2021-02-13 02:41:24
|
as far i understood there is only gwenview and another program for screenshots master of zen used who still needs the codec compiled or has old version (older than 0.3.0) so it doesn't count and i don't think you can can change an executable like 0.3.0 or -s 4 -q 99.2. anyway is old version older than 0.3.0. Windows with jxl winthumb the new release it uses only one core. at the moment you need the cmd to encode like i made for %i in (D:\Immagini\Screen\screendecember\*.png) do cjxl "%i" "%i.jxl" -s 4 -q 99.2 --num_threads=2
there is a \ before *PNG
|
|
2021-02-13 02:45:26
|
but maintaining all colors or most colors isn't worth it and i think neither near lossless as it had grooves in the image before 0.2.0 got released
|
|
|
raysar
|
2021-02-13 03:43:17
|
<@456226577798135808> i see you compiled jxl encoder with mingw64, can you help me to do the same? I don't understant what cmake param i need to use to compile it for windows.
|
|
|
|
Deleted User
|
2021-02-13 03:54:05
|
I didn't, that was Scope's build.
https://encode.su/threads/3564-JXL-version-0-3-released?p=68594&viewfull=1#post68594
|
|
|
raysar
|
|
I didn't, that was Scope's build.
https://encode.su/threads/3564-JXL-version-0-3-released?p=68594&viewfull=1#post68594
|
|
2021-02-13 04:18:53
|
Ah ok, i did not see it thank you.
Somebody have a link to explain how to cross compile with cmake? google is not my friend :/
|
|
|
BlueSwordM
|
|
raysar
Ah ok, i did not see it thank you.
Somebody have a link to explain how to cross compile with cmake? google is not my friend :/
|
|
2021-02-13 04:19:48
|
https://discord.com/channels/794206087879852103/804324493420920833/808735571262308383
|
|
|
Scope
|
2021-02-13 04:42:06
|
https://twitter.com/phoronix/status/1360596837070213122
|
|
2021-02-13 04:42:17
|
But, there are still no lossless modes and I have the same suggestions (developers may have their opinion):
- adding lossless modes (at least with default encoding speeds and some of the faster `-s 3` or `-s 5`, depending on which is more tuned and planned for practical use)
- decoding speed for default lossy and lossless modes
- Jpeg recompression speed comparison is not that important practically since it is fast enough or at least leave only one default speed mode, but it would be better to add fast lossless and lossy modes instead
- use the same test image/images as for AVIF and WebP2
|
|
|
_wb_
|
2021-02-13 04:46:15
|
Agreed with the above
|
|
|
Scope
|
2021-02-14 03:29:30
|
https://openbenchmarking.org/test/pts/jpegxl-decode
|
|
2021-02-15 11:58:15
|
Hmm, although WebP2 has lossless mode tests
|
|
2021-02-16 12:00:55
|
|
|
|
_wb_
|
2021-02-17 01:30:04
|
is there a viewer that properly implements animation already?
|
|
|
diskorduser
|
2021-02-17 02:34:00
|
gwenview
|
|
|
BlueSwordM
|
2021-02-17 03:29:33
|
Yeah, gwenview QT on Linux seems to support proper JXL animations with the QT JXL plugin.
|
|
|
Master Of Zen
|
2021-02-17 04:50:38
|
drop me jxl animation example?
|
|
|
BlueSwordM
|
|
Master Of Zen
drop me jxl animation example?
|
|
2021-02-17 05:03:18
|
|
|
|
Master Of Zen
|
2021-02-17 05:11:06
|
works
|
|
|
Crixis
|
2021-02-17 05:13:53
|
no animation on pixbuf
|
|
|
Scope
|
2021-02-17 05:16:37
|
Also doesn't work in Nomacs (windows)
|
|
|
|
paperboyo
|
2021-02-17 05:31:07
|
Is there a list of tools supporting jxl somewhere? (apart from upthread, that is)
|
|
|
_wb_
|
2021-02-17 05:36:29
|
Not afaik, at some point I want to put one on my jxl website but haven't done it yet
|
|
2021-02-17 05:37:18
|
If someone can summarize the most significant tools (and the ones that are not stuck in an old libjxl), that would be useful
|
|
|
Master Of Zen
|
2021-02-24 12:33:19
|
<@!794205442175402004> is butteraugli no longer in maintenance? https://github.com/google/butteraugli/pulls
Pull requests from 2+ years ago are not merged
|
|
|
_wb_
|
2021-02-24 12:34:16
|
there's a butteraugli in libjxl
|
|
2021-02-24 12:34:41
|
I don't know if the standalone butteraugli is still maintained
|
|
|
Master Of Zen
|
|
_wb_
I don't know if the standalone butteraugli is still maintained
|
|
2021-02-24 12:35:54
|
Ability to use it for video, building videos out of heatmaps, that's would be amazing
|
|
|
_wb_
|
2021-02-24 12:37:00
|
I think people are already experimenting with butteraugli-optimized av1
|
|
|
spider-mario
|
2021-02-24 01:22:44
|
my understanding is that jxl butteraugli is preferred
|
|
2021-02-24 01:22:51
|
it has the butteraugli_main binary too
|
|
2021-02-24 01:23:06
|
or maybe only if enabling the dev tools? I don’t remember
|
|
2021-02-24 01:24:19
|
but it doesn’t take motion into account, which would be desirable for video
|
|
2021-02-24 01:25:21
|
so for video, at the moment, it would really only be applicable to the use case of pausing the video to look at an individual frame from it
|
|
|
_wb_
|
2021-02-24 02:10:42
|
could probably just weigh everything by the amount of motion happening in that part of the frame with some simple heuristic
|
|
|
Master Of Zen
|
|
spider-mario
but it doesn’t take motion into account, which would be desirable for video
|
|
2021-02-24 02:21:00
|
there is niche for high fidelity metrics in video encoding
|
|
2021-02-24 02:21:45
|
So far "best" video metric is VMAF, and it quite forgivable in terms of being true to the source, and focus on preserving appeal
|
|
|
Petr
|
|
paperboyo
Is there a list of tools supporting jxl somewhere? (apart from upthread, that is)
|
|
2021-03-04 08:35:54
|
I've added a new section "Software" to the "JPEG XL" article on English Wikipedia (translated from "JPEG XL" on Czech Wikipedia, also by me). I think this could be a good public list of JXL tools.
|
|
|
fab
|
2021-03-04 08:41:31
|
citing online media converter and tools that break windows or are unofficial for Microsoft even if you're tempted by Linux you shouldn't make it shown
|
|
2021-03-04 08:41:43
|
the article is about jpeg xl not linux
|
|
2021-03-04 08:42:22
|
someone from jpeg itu will delete what you wrote the same
|
|
|
Petr
|
2021-03-07 07:52:44
|
Anyone uses "Mirillis Action!" screen recorder? It reportedly now supports JXL for screenshots. https://www.neowin.net/news/mirillis-action-4160/
|
|
|
Master Of Zen
|
|
Petr
Anyone uses "Mirillis Action!" screen recorder? It reportedly now supports JXL for screenshots. https://www.neowin.net/news/mirillis-action-4160/
|
|
2021-03-08 12:03:59
|
For screenshots I use spectacle, and with qt jxl plugin it support making jxl screenshots
|
|
2021-03-08 12:04:17
|
|
|
2021-03-08 12:04:44
|
|
|
|
improver
|
2021-03-09 01:13:43
|
https://gitlab.com/wg1/jpeg-xl/-/blob/945ad0ce4262382f850bea3f5cc51ca5cc2a40a2/plugins/gdk-pixbuf/pixbufloader-jxl.c#L276 this should probably be just "jxl", not "JPEG XL". I think. as it currently sticks out compared to other loaders
|
|
2021-03-09 01:14:11
|
|
|
|
_wb_
|
2021-03-09 01:33:11
|
good point. The media type is `image/jxl` so it does indeed make sense to use `jxl` there
|
|
2021-03-12 11:36:34
|
Would anyone be interested in making a "mozjpegxl" tool? I'm not talking about a new jxl encoder, but something simpler: just a tool that encodes an image to jpeg with mozjpeg, then recompresses the jpeg to jxl with cjxl. As a starting point, it could be as simple as a git repo with two subrepos (one for mozjpeg, one for libjxl) and a two-line bash script. It could later be extended into something more complicated (a single cli tool that doesn't write the intermediate jpeg and directly does pixels to jxl).
|
|
|
Scope
|
2021-03-12 11:43:25
|
I don't think this requires a special tool when it can be done by a simple script (and it will also extend the life of a Jpeg even further)
|
|
2021-03-12 12:00:03
|
And for what purposes, for comparisons or to quickly convert back to legacy Jpeg for clients who do not support it?
But I think that if the source image is available, it would be better to directly convert to jxl (and if necessary convert to legacy jpeg, even if it is not lossless recompression)
|
|
|
Jim
|
2021-03-12 12:13:29
|
Have to agree with Scope. It is easy enough to pass a jpg into mozjpg then pass the output file into cjxl with a script. Not sure there needs to be a separate tool.
Also, mozjpegxl would probably be confused as a mozjxl by many thinking it will compress a jxl more like mozjpeg.
|
|
|
Scope
|
2021-03-12 12:18:45
|
But it might be good to have MozJpeg in JXL by default instead of LibJpeg
|
|
|
Jim
|
2021-03-12 12:24:08
|
Not sure about that, I think mozjpeg drops all metadata and that might not be what people want... Or maybe have a specific need for following the standard (maybe using older software).
Also, I think you can define which jpg encoder it uses when you compile as long as it is compatible with libjpeg. I believe mozjpeg can be used in place of libjpeg. Correct me if I'm wrong.
|
|
|
Scope
|
2021-03-12 12:30:14
|
Yep, although sjpeg (which can be used in JXL) is also not very different in quality
|
|
2021-03-12 12:35:16
|
And about MozJpeg (or rather jpegtran):
```-copy none Copy no extra markers from source file. This setting
suppresses all comments and other metadata in the
source file.
-copy comments Copy only comment markers. This setting copies
comments from the source file but discards any other
metadata.
-copy all Copy all extra markers. This setting preserves
miscellaneous markers found in the source file, such
as JFIF thumbnails, Exif data, and Photoshop settings.
In some files, these extra markers can be sizable.
Note that this option will copy thumbnails as-is;
they will not be transformed.```
|
|
|
_wb_
|
2021-03-12 12:57:56
|
It would be just to have a convenient way to make jxls that can be converted to legacy jpegs if needed, which is indeed kind of trivial but maybe there are things that can be done to make it better than the simple two-line script.
|
|
2021-03-12 12:58:32
|
E.g. maybe there are mozjpeg options that turn out to result in jpegs that compress better with jxl
|
|
2021-03-12 01:00:56
|
or maybe you want to pre-process the input image to convert it to a particular color space (e.g. Display P3) and save some bytes on the icc compression
|
|
2021-03-12 01:01:31
|
for instance, you'd probably want to make mozjpeg do 4:4:4, since jxl compression is better for 4:4:4 jpegs than for 4:2:0 jpegs
|
|
2021-03-12 01:02:45
|
and you'd probably want to disable any huffman optimization or progressive scans, because that will just make the jpeg reconstruction data larger, mozjpeg slower, and does not have an effect on the main jxl file
|
|
2021-03-12 01:03:44
|
though if you also care about the size of the legacy jpeg, you may want to do that after all — so the tool may have different settings depending on if you want to optimize mostly the jxl or mostly the jpeg
|
|
|
NeRd
|
|
_wb_
E.g. maybe there are mozjpeg options that turn out to result in jpegs that compress better with jxl
|
|
2021-03-13 06:16:55
|
I've been experimenting with running jpegultrascan (https://github.com/MegaByte/jpegultrascan/blob/master/jpegultrascan.md) on JPEG files before transcoding to JXL, which sometimes results in smaller JXL files (although your milage may vary: sometimes they're bigger!).
|
|
|
_wb_
|
2021-03-13 07:16:35
|
If it's a lossless jpeg recompressor, it can only affect the jpeg reconstruction data, not the actual jxl codestream
|
|
2021-03-13 07:19:13
|
In the next version there will be a `--strip` option to just remove the jpeg reconstruction data and any metadata, so you get a containerless jxl. Still the exact same image data, but you cannot convert back to the exact original jpeg file anymore (but you could in principle convert to a different one that has an identical image)
|
|
|
BlueSwordM
|
2021-03-13 03:51:23
|
What would be the advantage of such a method?
|
|
2021-03-13 03:51:34
|
Slightly higher efficiency?
|
|
|
Scope
|
2021-03-13 04:00:01
|
Yes, it is more costly to save the exact same Jpeg than just the same pixels
|
|
|
Jim
|
2021-03-13 04:02:08
|
Could also be used for things like social media or photo sharing/storage services to remove metadata to prevent you from accidentally sharing a photo with your location information embedded in it.
|
|
|
_wb_
|
2021-03-13 04:02:34
|
If there's no metadata, the difference is small, just a few hundred bytes or so
|
|
|
Scope
|
2021-03-13 04:16:01
|
Someday I think it is possible to add something like `--optimize` in addition to `--strip`, for more efficient JXL compression, instead of using MozJpeg before that (if the exact same Jpeg isn't needed)
|
|
|
_wb_
|
2021-03-13 04:18:03
|
You mean still use only jpeg-compatible encoding, but do a new one from pixels?
|
|
2021-03-13 04:18:32
|
If jpeg-compatible is not needed, you can do `-j`
|
|
|
Scope
|
2021-03-13 04:20:08
|
To get a pixel-by-pixel match, but not a byte-by-byte in a decoded Jpeg
|
|
|
Jim
|
2021-03-13 04:20:53
|
Not really sure why jpeg-compatible will ever really be needed. I mean, we'll just have jxl for the next couple decades before finally converting them to JPEG 2040 (whatever that will be called). Not sure what the reason for converting back to jpeg will be.
|
|
|
_wb_
|
2021-03-13 04:22:08
|
Legacy applications that cannot be upgraded to jxl would be a reason...
|
|
|
Scope
To get a pixel-by-pixel match, but not a byte-by-byte in a decoded Jpeg
|
|
2021-03-13 04:23:15
|
That's what --strip will do. The data itself (dct coeffs) are always optimized.
|
|
|
Scope
|
2021-03-13 04:24:49
|
Oh, okay, then that's what I mean
|
|
|
improver
|
2021-03-13 05:35:17
|
I actually like byte-by-byte equal mode. Having a way to get exactly same file opens up possibilities of more efficient storage for systems which use hashes for addressing files (in some cases but not others).
|
|
2021-03-13 05:36:13
|
Would've been cool to have something like that for PNG -> JXL modular case but I guess that's asking a bit too much
|
|
|
Scope
|
2021-03-13 05:49:34
|
For Jpeg this is how it works now in JXL, for PNG I think this is a much more rarely needed thing, although it is possible to hash the decoded PNG after JXL and it will be exactly the same (well, unless the encoding in libpng/lodepng is changed)
|
|
|
_wb_
|
2021-03-13 06:47:03
|
That would only work if the PNG was created with the same encoder/encode settings as whatever djxl does
|
|
2021-03-13 06:48:03
|
There are way more ways to encode pixels as a PNG than there are ways to decode dct coefficients as a JPEG
|
|
|
Pieter
|
2021-03-13 06:48:22
|
really?
|
|
2021-03-13 06:48:31
|
oh, i guess zlib itself adds a ton
|
|
|
_wb_
|
2021-03-13 06:48:36
|
Yes
|
|
2021-03-13 06:49:05
|
JPEG is just huffman so if you know the huffman table it is deterministic
|
|
2021-03-13 06:49:28
|
(you still need the scan script etc, but that's a small amount of info)
|
|
2021-03-13 06:49:55
|
PNG is lz77 matching, which can be done in many ways
|
|
|
Pieter
|
2021-03-13 06:50:10
|
png i guess is the transformation on the pixel data, the metadata chunks... but then lz77
|
|
|
_wb_
|
2021-03-13 06:50:17
|
(there's also the per-row predictor, but that's a small amount of info)
|
|
2021-03-13 06:50:44
|
lz77 is the main problem, some png optimizers spend a lot of time in finding good matches
|
|
|
Pieter
|
2021-03-13 06:51:03
|
you could make a png recompressor dat only guaranteed identical pre-lz77 bytes, but that's not as fun
|
|
|
_wb_
|
2021-03-13 06:51:46
|
We kind of already have that (well minus the chunk order)
|
|
|
Pieter
|
2021-03-13 06:54:40
|
kind of an interesting question, what metadata you need to reconstruct various compressed formatd
|
|
|
|
veluca
|
2021-03-14 08:17:31
|
https://github.com/google/grittibanzli one could use that as metadata, I guess 🙂
|
|
|
_wb_
|
2021-03-14 08:22:14
|
What? Lode actually did that already? Lol I did not know that
|
|
2021-03-14 08:26:17
|
Then we have the main thing needed for a `pbrd` box, I think. Just need to record some other png-specific things like the pixel format, palette, chunk order, interlacing, non-image-chunks, and predictors per row.
|
|
2021-03-14 08:27:09
|
Very low priority, but if there's a use case, we could do lossless png bitstream compression
|
|
|
spider-mario
|
2021-03-14 12:04:36
|
we could name it “PNG XS” for maximum confusion
|
|
|
bonnibel
|
2021-03-14 12:29:18
|
call it PNG (short for __p__ng __n__ext-__g__en)
|
|
|
Scope
|
2021-03-14 12:31:08
|
JPNG (__J__XL __PNG__) - confusion with JPG and PNG at the same time
|
|
|
Jim
|
2021-03-14 12:31:19
|
JPNG XL
|
|
2021-03-14 12:31:46
|
`.jpxl`
|
|
|
_wb_
|
2021-03-14 01:37:52
|
The concept of "[format] bitstream reconstruction data" is nice. For PNG I don't think it's particularly useful, but we could also do it for PSD, TIFF and XCF. It gets a bit trickier (probably would do layers as jxl sub-bitstreams in the reconstruction data, and only encode the merged image in the jxl itself, unless all layers do normal blending without layer fx, then you don't really need a separate merged image)
|
|
2021-03-14 01:40:34
|
Properly compressed PSD/XCF that also just works in browsers would be pretty great. PSD compression is so weak (basically RLE only) that huge savings would be possible, and you could even do it near-lossless for the pixel data in many use cases, saving even more bytes.
|
|
|
Scope
|
2021-03-16 01:10:23
|
https://ci.appveyor.com/project/novomesk/qt-jpegxl-image-plugin/builds/38248446/artifacts
|
|
|
Petr
|
|
Scope
https://ci.appveyor.com/project/novomesk/qt-jpegxl-image-plugin/builds/38248446/artifacts
|
|
2021-03-16 01:47:41
|
Cool! Which apps can use it?
|
|
|
Scope
|
2021-03-16 01:49:54
|
All qt-based, for example nomacs https://ci.appveyor.com/project/diemmarkus/nomacs/build/artifacts
|
|
|
Petr
|
2021-03-16 02:00:36
|
Seems that also XnView MP can use it. Great!
|
|
|
Lastrosade
|
2021-03-16 02:33:55
|
I feel like i've been asking this every month but are there windows builds of the latest cjxl somewhere ?
|
|
|
Scientia
|
2021-03-16 02:35:18
|
i'm sure you could make your own with msys
|
|
|
Crixis
|
2021-03-16 02:35:56
|
https://discordapp.com/channels/794206087879852103/794206170445119489/821360934919602176, today message
|
|
|
Lastrosade
|
2021-03-16 02:36:20
|
They don't support avx2 for some reason when I build it mysalf
|
|
|
Scope
|
2021-03-16 02:38:04
|
There is a bug in the GCC compiler on Windows (but Clang is fine)
|
|
|
fab
|
|
Petr
Seems that also XnView MP can use it. Great!
|
|
2021-03-16 02:41:02
|
how
|
|
2021-03-16 02:41:18
|
when xnview had jpeg xl 0.1.0
|
|
2021-03-16 02:41:27
|
i could get work libjxl 0.2.0
|
|
2021-03-16 02:41:32
|
how you did?
|
|
2021-03-16 02:41:36
|
with new build
|
|
2021-03-16 02:41:42
|
now they work re troactively?
|
|
|
Jim
|
2021-03-16 02:45:00
|
XnView (latest version) had jpeg xl 0.3, where did you get 0.1?
|
|
|
Petr
|
|
fab
how
|
|
2021-03-16 05:56:28
|
XnView MP uses Qt, so it should be able…
|
|
|
Jim
|
2021-03-16 06:12:11
|
I installed it, but have no idea if it's working. It already has 0.3 so I don't know if it's using that or the plugin. I don't see any way of identifying which is being used.
|
|
|
Petr
|
2021-03-19 08:39:33
|
Does anyone use AppVeyor? (https://www.appveyor.com)
|
|
2021-03-19 08:40:05
|
I found it when searching for AV1 binaries for Windows: https://ci.appveyor.com/project/marcomsousa/build-aom/build/artifacts
|
|
2021-03-19 08:41:45
|
I guess it could be used to build libjxl and thus provide a **reliable** and **stable** place for downloading binaries.
|
|
2021-03-19 08:43:20
|
It would look more attractively for users than searching through threads on encode.su.
|
|
2021-03-19 08:45:21
|
And if I'm correct, the builds would be available soon after releasing new versions of libjxl (unlike https://jeremylee.sh/bin.html).
|
|
2021-03-19 08:48:05
|
Not only libjxl could use it. Also JPEG XL WIC and other tools.
|
|
|
|
Deleted User
|
2021-03-19 08:48:24
|
MozJPEG uses it, too.
|
|
|
Scope
|
2021-03-19 08:54:39
|
This is just a kind of virtual machine, it still requires scripts and the proper environment to compile, as well as manually checking for any changes that might break the build
|
|
|
Petr
|
2021-03-19 09:22:14
|
OK. I was just asking to find out whether it could ease lives of both the developers and the users…
|
|
|
_wb_
|
2021-03-19 09:31:00
|
At some point we're going to move development to a public github repo (instead of the current private repo), and I hope that besides the various builds for CI, we can also automate some builds for releases. It would mostly be useful for Windows and MacOS, I suppose. For GNU/Linux it's more convenient to get it in the major distros, and for platforms like iOS/Android/exotic stuff, the target audience will probably know how to compile things.
|
|
|
Lastrosade
|
|
Petr
And if I'm correct, the builds would be available soon after releasing new versions of libjxl (unlike https://jeremylee.sh/bin.html).
|
|
2021-03-19 10:31:22
|
Yeah I don't have an automatic build thing, its just when I feel like clicking on it
|
|
|
fab
|
2021-03-19 10:36:37
|
what is the laguage of squoosh
|
|
2021-03-19 10:36:40
|
web assembly
|
|
2021-03-19 10:36:41
|
web asm
|
|
2021-03-19 10:36:50
|
can you write in the right way
|
|
2021-03-19 10:38:53
|
WebAssembly
|
|
|
Petr
|
|
Lastrosade
Yeah I don't have an automatic build thing, its just when I feel like clicking on it
|
|
2021-03-19 10:43:22
|
If you configured it to do the build with just one click then it's a pretty high level of automation. 👍
|
|
|
Lastrosade
|
2021-03-19 10:44:31
|
Yeah but its cheating https://github.com/m-ab-s/media-autobuild_suite
|
|
|
|
veluca
|
2021-03-19 11:12:09
|
who needs clicking? 😄 just a few command (in my history) here... then again, I'm a dev xD
|
|
|
|
Deleted User
|
|
Jim
|
2021-03-19 11:22:57
|
<:galaxybrain:821831336372338729>
|
|
|
Scope
|
2021-03-19 11:23:07
|
m-ab-s also needs some changes for Jpeg XL, but I think it would be better to wait until GCC 11 release and then write all the requests
|
|
|
Master Of Zen
|
|
Petr
|
|
Lastrosade
Yeah but its cheating https://github.com/m-ab-s/media-autobuild_suite
|
|
2021-03-22 08:56:34
|
As long as it doesn't harm anyone, such cheating is welcome and appreciated. 🙂
|
|
|
_wb_
|
2021-03-25 11:00:05
|
It would be cool to have a simple way to do wasm-based jxl decoding to include some jxl images on a web page, as a demo. Does anyone know enough about js/wasm to do that?
|
|
|
|
veluca
|
2021-03-25 11:02:53
|
I know squoosh.app does it, so it shouldn't be *too* hard...
|
|
2021-03-25 11:04:01
|
(for example by copying whatever they do 😛)
|
|
|
Scope
|
2021-03-25 11:04:09
|
And here http://libwebpjs.appspot.com/jpegxl/ (but it's a very old version)
> Jan 3: *.jxl images can add as input for decoding
|
|
|
Pieter
|
2021-03-25 11:15:16
|
i have compiled c++ code to wasm in the past
|
|
|
Jim
|
2021-03-25 11:16:07
|
Probably wouldn't be too hard to take how some of the polyfills for previous image formats work and mash in the wasm files from Squoosh to build browser support.
|
|
|
|
veluca
|
2021-03-25 11:17:39
|
from the quick look I gave, it seems to work drawing on a canvas - so not quite a native experience
|
|
2021-03-25 11:18:58
|
then again, likely not too hard to convert img src=*jxl into a canvas
|
|
|
Jim
|
2021-03-25 11:25:20
|
Either that or the AVIF polyfill converts the decoded pixels into a BMP and feeds it into an img tag.
|
|
2021-03-25 11:28:30
|
Using canvas would likely work better since you can detect when they try to download the image and feed in the JXL data so it has more native feel. I don't think that can be done through an img tag.
|
|
|
_wb_
|
2021-03-26 01:28:32
|
Squoosh is a rather big project and it uses fancy build tools I don't know. I am quite lousy at keeping up with frontend things. <@!710762823986446367> <@!228116142185512960> how hard would it be to make something that loads some jxl decoder js/wasm code and then I can write something like
```
<canvas data-jxl-src="bla.jxl"></canvas>
```
and it works?
|
|
|
Jake Archibald
|
2021-03-26 01:35:51
|
Check out https://github.com/jakearchibald/jakearchibald.com/blob/main/shared/demos/2020/avif-has-landed/DecodedImg/index.tsx which I wrote for the AVIF post on my blog
|
|
|
Lastrosade
|
2021-03-26 01:45:38
|
That's a nice website
|
|
|
_wb_
|
2021-03-26 02:06:34
|
I am an absolute noob. How do I turn that into a `.js` I can use on a webpage?
|
|
|
Dr. Taco
|
2021-03-26 10:35:37
|
looks like a JSX file written in typescript. double ew
|
|
2021-03-26 10:36:41
|
you could copy/paste it into https://babeljs.io/repl
|
|
2021-03-26 10:38:02
|
then check the React and TypeScript boxes, but I'm pretty sure it only outputs to ES5
|
|
2021-03-26 10:38:32
|
so you'd probably be better off just going from TSX to JSX to attempt to make it more readable. but it would still require react or preact to run it anyway
|
|
|
Paint_Ninja
|
2021-03-26 10:40:03
|
If it's on npm, you can use skypack and let it handle all the transpiling complexity for you
|
|
2021-03-26 10:40:44
|
https://www.skypack.dev/
|
|
2021-03-26 10:46:10
|
Ohh wait nevermind, if I'm understanding correctly that DecodedImage index.tsx is meant to be used as a Preact component, not as a standard JS polyfill on a webpage
|
|
|
Dr. Taco
|
2021-03-26 11:04:44
|
yep, it's a meta-language wrapped in a meta-language
|
|
|
lithium
|
2021-03-30 04:02:34
|
Look like XnView MP 0.98.2 64bits (Feb 19 2021) jxl decoder break again,
some jxl file will decode fail(black rectangle) and display wrong bit depth(8bit => 48bit),
nomacs can success decode jxl file.
|
|
|
eddie.zato
|
2021-04-02 05:16:26
|
Hey guys. Can anyone share the latest cjxl.exe with input jpg support?
|
|
|
Crixis
|
2021-04-02 05:58:40
|
https://jeremylee.sh/bin.html
|
|
|
eddie.zato
|
|
Crixis
https://jeremylee.sh/bin.html
|
|
2021-04-02 06:14:55
|
`INPUT
the input can be PNG, PPM, PFM, or PGX`
`Failed to read image 0.jpg`
|
|
|
Crixis
|
2021-04-02 06:16:51
|
let me test
|
|
2021-04-02 06:18:54
|
oh you have right wait
|
|
2021-04-02 06:25:25
|
https://encode.su/attachment.php?attachmentid=8418&d=1617022583
|
|
|
eddie.zato
|
|
Crixis
https://encode.su/attachment.php?attachmentid=8418&d=1617022583
|
|
2021-04-02 06:29:53
|
Thanks, but is there any chance to get at least avx build? Can't run it on my Ivy Bridge. Sorry for bother you 😄
|
|
|
Crixis
|
2021-04-02 06:32:45
|
you can try to build it, you can use mingw
|
|
|
eddie.zato
|
2021-04-02 06:34:15
|
Ok, I'll try
|
|
|
Crixis
|
2021-04-02 06:35:11
|
or more automatic
|
|
2021-04-02 06:35:13
|
media autobuild_suite
|
|
|
Petr
|
|
Crixis
oh you have right wait
|
|
2021-04-02 07:40:04
|
Why would anyone build libjxl without jpg support in the first place? 😲
|
|
|
Crixis
|
2021-04-02 07:40:27
|
I think for a dependency issue
|
|
|
Lastrosade
|
2021-04-02 12:16:41
|
but it's not disabled
|
|
|
Crixis
|
|
Lastrosade
but it's not disabled
|
|
2021-04-02 12:54:26
|
it fail to read jpeg
|
|
|
Lastrosade
|
2021-04-02 12:55:06
|
I am aware
|
|
2021-04-02 12:55:12
|
But I have no idea why
|
|
|
eddie.zato
|
2021-04-02 01:23:45
|
I have built 0.3.7 using mas. JPEG support is present. 😄
`INPUT
the input can be PNG, APNG, GIF, JPEG, PPM, PFM, or PGX`
|
|
|
Lastrosade
|
2021-04-02 02:48:18
|
I'm so tired of this
|
|
2021-04-02 02:48:25
|
I can't even check if I can make it work
|
|
|
Crixis
|
2021-04-02 03:00:35
|
rm -r from powershell
|
|
|
Lastrosade
|
2021-04-02 03:09:40
|
even powershell crashes
|
|
2021-04-02 03:10:13
|
I'll have to reboot
|
|
2021-04-02 03:10:18
|
so next week lmao
|
|
|
lithium
|
|
Lastrosade
I'm so tired of this
|
|
2021-04-02 03:34:43
|
Try fastcopy or robocopy?
|
|
|
diskorduser
|
2021-04-02 04:53:01
|
Delete permanently
|
|
|
|
Diamondragon
|
2021-04-02 08:33:08
|
-i -g
|
|
|
eddie.zato
|
2021-04-05 11:30:55
|
If I want to achieve the maximum compression level for lossless jpeg transcoding, all I have is “-s 9”, right? No more tricks to reduce file size without sacrificing original quality?
|
|
|
_wb_
|
2021-04-05 11:36:42
|
There are probably things that could be done to slightly improve the AC ctx modeling and the DC encoding in JPEG recompression.
|
|
2021-04-05 11:37:27
|
Like doing -E 3 for the DC (but I guess cjxl will not pass that option to the right place atm)
|
|
|
fab
|
2021-04-05 12:10:43
|
you said that even 30% is achievable
|
|
|
_wb_
|
2021-04-05 12:32:18
|
No, I don't think I said that, and I don't think it's achievable
|
|
|
eddie.zato
|
2021-04-06 05:17:12
|
This is quite impressive result 😄
` J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: SSE4,Scalar]
Read 4077x3978 image, 56.4 MP/s
Encoding [Container | JPEG, lossless transcode, squirrel | JPEG reconstruction data], 4 threads.
Encoding [Container | JPEG, lossless transcode, kitten | JPEG reconstruction data], 4 threads.
Encoding [Container | JPEG, lossless transcode, tortoise | JPEG reconstruction data], 4 threads.
Name Size_bytes Ratio
---- ---------- -----
0.jpg 24582566 100
7.jxl 15095192 61,41
8.jxl 15097305 61,41
9.jxl 13352148 54,32`
Image from here https://3dnews.ru/assets/external/illustrations/2021/04/05/1036515/gal1.jpg
|
|
|
_wb_
|
2021-04-06 05:42:18
|
https://c.tenor.com/wEtLAbx6hSAAAAAM/snoop-dog-dance.gif
|
|
|
monad
|
|
eddie.zato
This is quite impressive result 😄
` J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: SSE4,Scalar]
Read 4077x3978 image, 56.4 MP/s
Encoding [Container | JPEG, lossless transcode, squirrel | JPEG reconstruction data], 4 threads.
Encoding [Container | JPEG, lossless transcode, kitten | JPEG reconstruction data], 4 threads.
Encoding [Container | JPEG, lossless transcode, tortoise | JPEG reconstruction data], 4 threads.
Name Size_bytes Ratio
---- ---------- -----
0.jpg 24582566 100
7.jxl 15095192 61,41
8.jxl 15097305 61,41
9.jxl 13352148 54,32`
Image from here https://3dnews.ru/assets/external/illustrations/2021/04/05/1036515/gal1.jpg
|
|
2021-04-06 05:47:33
|
Keeping in mind that JPEG isn't optimized to begin with. mozjpeg gets it down to 17.9 MB.
|
|
|
eddie.zato
|
2021-04-06 05:59:47
|
Yeah, I know that 😊
|
|
|
_wb_
|
|
monad
Keeping in mind that JPEG isn't optimized to begin with. mozjpeg gets it down to 17.9 MB.
|
|
2021-04-06 06:04:07
|
With jpegtran?
|
|
|
eddie.zato
|
2021-04-06 06:12:08
|
With Leanify we can go even further
`PS > .\leanify gal1.jpg
Processing: gal1.jpg
23.44 MB -> 17.08 MB Leanified: 6.36 MB (27.14%)
PS > cjxl gal1.jpg 2.jxl -s 9
J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: SSE4,Scalar]
Read 4077x3978 image, 28.5 MP/s
Encoding [Container | JPEG, lossless transcode, tortoise | JPEG reconstruction data], 4 threads.
Compressed to **13351568** bytes (6.586 bpp).
4077 x 3978, 0.08 MP/s [0.08, 0.08], 1 reps, 4 threads.`
|
|
|
monad
|
|
_wb_
With jpegtran?
|
|
2021-04-06 02:51:17
|
Yes, that's what I meant.
|
|
|
eddie.zato
With Leanify we can go even further
`PS > .\leanify gal1.jpg
Processing: gal1.jpg
23.44 MB -> 17.08 MB Leanified: 6.36 MB (27.14%)
PS > cjxl gal1.jpg 2.jxl -s 9
J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: SSE4,Scalar]
Read 4077x3978 image, 28.5 MP/s
Encoding [Container | JPEG, lossless transcode, tortoise | JPEG reconstruction data], 4 threads.
Compressed to **13351568** bytes (6.586 bpp).
4077 x 3978, 0.08 MP/s [0.08, 0.08], 1 reps, 4 threads.`
|
|
2021-04-06 03:09:50
|
leanify is displaying the size in mebibytes, the savings are equivalent with mozjpeg's jpegtran.
|
|
2021-04-06 03:15:01
|
If you're just referring to the jxl size, well, stripping metadata likely helped.
|
|
|
|
Deleted User
|
2021-04-11 10:06:00
|
Suggestion: make `jxl_merge` tool. Takes multiple .jxl files and merges them into one multi-layer, single-page .jxl image, to keep this tool simple. (Optionally with `jxl_split` tool which does the exact reverse of the first one.)
|
|
|
monad
|
2021-04-16 12:14:18
|
Are there any cjxl options that can significantly reduce RAM consumption for lossless modular encoding?
|
|
2021-04-16 02:45:22
|
Looking through the code, it's not obvious that anything exposed to the command line should make a significant difference besides speed/effort.
|
|
|
Scientia
|
2021-04-16 02:50:23
|
this is kind of a joke but is a `tree_from_jxl` tool possible? would it have any use?
|
|
|
Pieter
|
2021-04-16 02:53:49
|
i don't see why not
|
|
2021-04-16 02:54:29
|
it'd probably only work for jxl files actually created through jxl_from_tree though
|
|
|
Scientia
|
2021-04-16 02:55:10
|
you think it would work on a regular modular jxl or nah?
|
|
2021-04-16 02:55:21
|
probably not
|
|
|
Pieter
|
2021-04-16 02:58:24
|
well regular jxl can have tons of features that can't be represented in the jxl_from_tree format (actual pixels that differ from the prediction being the most obvious one...)
|
|
|
Scientia
|
2021-04-16 02:58:59
|
might be an interesting feature to convert a regular modular jxl to just the prediction
|
|
2021-04-16 02:59:21
|
or not, but I assume it would look interesting at the very least
|
|
|
Pieter
|
2021-04-16 03:00:28
|
i guess just a way to show the MA tree (in jxl_from_tree format) would be interesting on its own, even if it can't exactly represent the input
|
|
|
Scientia
|
2021-04-16 03:01:24
|
you'd need to explicitly say "the output is not identical to the input" so there was no confusion
|
|
|
zebefree
|
2021-04-16 04:36:50
|
Ideally everything in the codestream could be represented in the text format.
|
|
2021-04-16 04:37:27
|
It would be cool to be able to dump an image to the text form, edit it in your favorite text editor, and convert it back to a jxl.
|
|
|
Scientia
|
2021-04-16 05:16:23
|
If you store the differences along with the tree that's gonna be a big text file
|
|
|
_wb_
|
|
Scientia
this is kind of a joke but is a `tree_from_jxl` tool possible? would it have any use?
|
|
2021-04-16 05:23:33
|
If you toggle a constant bool some part of the code, you can print MA trees as part of the debug info you get in benchmark_xl (you can also get quantization heatmaps and block selection maps for vardct that way, and maps of predictor choices per pixel for modular)
|
|
|
Scientia
|
2021-04-16 05:41:40
|
Interesting
|
|
|
eddie.zato
|
2021-04-21 11:58:33
|
I think this is a bug.
When processing jpeg files, cjxl creates .tmp files in the %temp% folder and doesn't remove them after encoding is complete.
My %temp% is of limited size and I noticed that it was almost full after playing around with cjxl and a bunch of jpegs.
cjxl 0.3.7, win 10
|
|
|
|
veluca
|
2021-04-21 12:01:42
|
that shouldn't happen...
|
|
|
eddie.zato
|
2021-04-21 12:05:39
|
This only happens if the input file is jpeg
|
|
2021-04-21 12:09:10
|
I was building the cjxl using media-autobuild_suite because the other 0.3.7 binaries I found on the internet don't support jpeg for input.
|
|
|
raysar
|
2021-04-21 12:39:43
|
But your binary 0.3.7 works with jpeg input? (with temp but)
|
|
|
eddie.zato
|
|
spider-mario
|
2021-04-21 12:59:30
|
I didn’t even think we had any code in cjxl that creates temporary files
|
|
2021-04-21 12:59:31
|
do we?
|
|
|
BlueSwordM
|
2021-04-21 01:06:00
|
I'm actually surprised. With how much JXL I encode these days, I would have a massive temo folder.
|
|
2021-04-21 01:06:09
|
Maybe it is a Windows thing?
|
|
|
raysar
|
2021-04-21 01:07:02
|
<@!387462082418704387> i'm searching the lastest binary working perfectly fine for windows (i'm using 0.3.4 😕 ). You can send it here, i can test it on my machine.
|
|
|
eddie.zato
|
2021-04-21 01:08:35
|
Sure 😄
https://eddiezato.github.io/bin/
|
|
|
raysar
|
2021-04-21 01:13:59
|
Thanks, i'm searching where is the temps folder? %user%\AppData\Local\Temp ?
|
|
|
spider-mario
|
2021-04-21 01:14:32
|
see, this is one of the aspects that surprise me: to write there, we would have to actually know the location of the folder
|
|
2021-04-21 01:14:58
|
and I don’t think we have code that does that (outside of the `custom` codec in the benchmark)
|
|
|
eddie.zato
|
|
raysar
Thanks, i'm searching where is the temps folder? %user%\AppData\Local\Temp ?
|
|
2021-04-21 01:15:46
|
Press Win+R and type %temp%
|
|
|
spider-mario
|
2021-04-21 01:15:53
|
ah, `codec_apng` seems to
|
|
2021-04-21 01:15:59
|
is it APNG files that you are encoding?
|
|
|
Crixis
|
2021-04-21 01:16:10
|
I confirm the problem
|
|
2021-04-21 01:16:13
|
|
|
|
spider-mario
|
2021-04-21 01:16:20
|
ah no, you said JPEG
|
|
|
eddie.zato
|
2021-04-21 01:17:23
|
Yep, I only play with jpeg and png
|
|
|
raysar
|
2021-04-21 01:18:31
|
Ah yes i see it, i have a temps file too. That's the same for 0.3.4 binary.
|
|
|
spider-mario
|
2021-04-21 01:19:57
|
that really puzzles me
|
|
|
eddie.zato
|
2021-04-21 01:20:43
|
They are just copies of the input jpeg files.
|
|
|
raysar
|
2021-04-21 01:20:44
|
Windows flush temp folder sometime? But it's not smart to wear ssd for nothing with temp file, it need to be only in ram non?
|
|
|
spider-mario
|
2021-04-21 01:21:05
|
maybe libjpeg is causing that somehow
|
|
2021-04-21 01:24:35
|
apparently yes, it could be
|
|
2021-04-21 01:24:44
|
> If the compressor requires full-image buffers (for entropy-coding optimization or a multi-scan JPEG file), it will create temporary files for anything that doesn't fit within the maximum-memory setting.
|
|
2021-04-21 01:25:19
|
GDAL users have noticed a similar thing: https://trac.osgeo.org/gdal/ticket/1795
|
|
2021-04-21 01:26:18
|
I would have thought that it would then remove them, but maybe it doesn’t or we need to do something specific to trigger the removal
|
|
|
eddie.zato
|
|
raysar
Windows flush temp folder sometime? But it's not smart to wear ssd for nothing with temp file, it need to be only in ram non?
|
|
2021-04-21 01:26:42
|
My %temp% is located on the RamDisk created by the ImDisk Toolkit. It resets itself every time the OS is rebooted.
|
|
|
raysar
|
|
spider-mario
I would have thought that it would then remove them, but maybe it doesn’t or we need to do something specific to trigger the removal
|
|
2021-04-21 01:46:21
|
I don't know, but for me it's not suitable to have an useless copy of jpeg in temp, it's created even if it's a low res jpeg.
|
|
|
spider-mario
|
2021-04-21 02:01:35
|
> NOTE: Unless you develop your own memory manager back end, then temporary files will never be used. The back end provided in libjpeg-turbo (jmemnobs.c) simply malloc()s and free()s virtual arrays, and an error occurs if the required memory exceeds the limit specified in cinfo->mem->max_memory_to_use.
|
|
2021-04-21 02:01:39
|
so maybe that’s not it, then
|
|
|
raysar
|
2021-04-21 02:17:53
|
So a windows specialist need to debug the binary to find what function ask a temp file creation 😄
|
|
|
spider-mario
|
2021-04-21 02:20:23
|
maybe that’s a difference between libjpeg and libjpeg-turbo and your binary actually links to the non-turbo version?
|
|
2021-04-21 02:21:33
|
ah, I seem to have a few too
|
|
2021-04-21 02:22:15
|
a few of them are PNGs or GIFs, actually
|
|
2021-04-21 02:22:57
|
or even PPM
|
|
2021-04-21 02:23:40
|
(oh, right, maybe it’s just that we try to decode them as JPEGs first)
|
|
|
improver
|
2021-04-24 06:28:12
|
|
|
2021-04-24 06:28:16
|
:<
|
|
2021-04-24 06:36:44
|
i tried saving to exr and converting that via cjxl, which failed with illegal instruction
|
|
|
190n
|
2021-04-24 06:37:11
|
what cpu do you have?
|
|
|
improver
|
|
190n
|
2021-04-24 06:38:58
|
huh weird
|
|
2021-04-24 06:39:13
|
that should support most instructions unless your cjxl build somehow uses avx512
|
|
|
improver
|
2021-04-24 06:39:41
|
it really shouldn't
|
|
2021-04-24 06:40:25
|
```
% cjxl -v 20210424_201012.exr 20210424_201012.jxl
J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: AVX2]
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/extras/codec_exr.cc:57: no OpenEXR whiteLuminance tag found and no intensity_target specified, defaulting to 255
Read 4016x3008 image, 6.9 MP/s
Encoding [VarDCT, d1.000, squirrel], 6 threads.
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/enc_ac_strategy.h:60: JXL_DASSERT: masking_field_row[by * masking_field_stride + bx] > 0
zsh: illegal hardware instruction (core dumped) cjxl -v 20210424_201012.exr 20210424_201012.jxl
```
|
|
2021-04-24 06:40:42
|
not really sure if it's because of assert
|
|
|
Pieter
|
2021-04-24 06:42:46
|
on a CPU and OS that support AVX2?
|
|
|
190n
|
2021-04-24 06:43:11
|
zen 2 supports avx2
|
|
2021-04-24 06:43:32
|
did you compile this yourself? or is it someone else's build?
|
|
|
improver
|
2021-04-24 06:44:10
|
compiled from AUR, -git
|
|
2021-04-24 06:44:45
|
I did include `-march=native -mtune=native` in CFLAGS/CXXFLAGS but not sure whether they could be causing it
|
|
2021-04-24 06:45:02
|
pfm and png encoding seem to work fine
|
|
|
_wb_
|
2021-04-24 06:45:16
|
Illegal instruction is what you get if an assert fails
|
|
|
improver
|
2021-04-24 06:45:50
|
confusing
|
|
|
Pieter
|
2021-04-24 06:45:51
|
in theory it's possible that your OS didn't enable AVX2 support (it needs runtime opting in by the OS beyond hardware support), but that's extremely unlikely on OSes that are less than a decade old
|
|
|
_wb_
|
2021-04-24 06:46:32
|
Please open a bug report, it is likely just a bug on our end
|
|
|
improver
|
2021-04-24 06:46:51
|
alright.
|
|
|
_wb_
|
2021-04-24 06:47:14
|
Exr is not exactly well tested
|
|
2021-04-24 06:47:50
|
As an input for cjxl I mean
|
|
|
improver
|
2021-04-24 06:55:49
|
https://gitlab.com/wg1/jpeg-xl/-/issues/215
|
|
|
|
veluca
|
2021-04-24 07:01:53
|
That's an interesting error
|
|
2021-04-24 07:02:27
|
OTOH, dassert should be disabled by default in optimized builds... Something might be off in the pkgbuild
|
|
|
_wb_
|
2021-04-24 07:07:19
|
The assert probably shouldn't fail though :)
|
|
|
|
veluca
|
2021-04-24 07:11:32
|
Ah that for sure :D I suspect it's some form of impossibly bright pixels or something like that that makes the encoder do weird stuff
|
|
2021-04-24 07:11:56
|
I don't think we ever test exr, so it might have broken in funny ways...
|
|
|
_wb_
|
2021-04-24 07:21:50
|
There can be NaN or infinities in an exr, and I assume the encoder heuristics are not designed for that 😅
|
|
2021-04-24 07:22:48
|
Or just large negative values or extremely large values
|
|
|
improver
|
2021-04-24 10:14:25
|
```
% cjxl -v -m 20210424_201012.pfm 20210424_201012.pfm.m.jxl
J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: AVX2]
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/extras/codec_pnm.cc:301: PNM: no color_space/icc_pathname given, assuming sRGB
Read 4016x3008 image, 65.3 MP/s
Encoding [Modular, lossless, squirrel], 6 threads.
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:818: JXL_FAILURE: No feasible selector for 8927592
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:818: JXL_FAILURE: No feasible selector for 9700587
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:818: JXL_FAILURE: No feasible selector for 10143300
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:563: JXL_RETURN_IF_ERROR code=1: ok_
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:720: JXL_RETURN_IF_ERROR code=1: CanEncode(fields, &extension_bits, &total_bits)
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/enc_modular.cc:1051: JXL_RETURN_IF_ERROR code=1: Bundle::Write(stream_headers[stream_id], writer, layer, aux_out)
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/enc_frame.cc:1243: JXL_RETURN_IF_ERROR code=1: modular_frame_encoder->EncodeStream( get_output(0), aux_out, kLayerModularGlobal, ModularStreamId::Global())
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/enc_file.cc:268: JXL_RETURN_IF_ERROR code=1: EncodeFrame(cparams, info, metadata.get(), io->frames[i], passes_enc_state, pool, &writer, aux_out)
Failed to compress to Modular.
```
|
|
|
BlueSwordM
|
|
veluca
That's an interesting error
|
|
2021-04-24 11:48:32
|
That's odd.
|
|
2021-04-24 11:48:38
|
I don't get the bug on my side.
|
|
2021-04-24 11:48:43
|
It encodes just fine with the EXR file?
|
|
2021-04-24 11:48:57
|
|
|
2021-04-24 11:49:03
|
It must be a build issue.
|
|
|
improver
|
2021-04-25 12:03:44
|
I exported exr and pfm from gimp. pfm isn't from exr
|
|
2021-04-25 12:04:03
|
(just clarifying incase)
|
|
2021-04-25 12:04:50
|
<@!321486891079696385> which version? is it latest git or tagged one?
|
|
2021-04-25 12:05:05
|
(in my case it was latest git)
|
|
|
BlueSwordM
|
|
improver
<@!321486891079696385> which version? is it latest git or tagged one?
|
|
2021-04-25 12:59:38
|
Latest git as well interesting enough.
|
|
|
improver
|
2021-04-25 01:08:53
|
did you use aur or manual build? https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=libjpeg-xl-git seem to have some stuff what could change whether asserts are enabled, specifically `-DCMAKE_BUILD_TYPE:STRING='None'`
|
|
2021-04-25 01:09:25
|
(not really sure whether that's what is happening here)
|
|
|
BlueSwordM
|
|
improver
did you use aur or manual build? https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=libjpeg-xl-git seem to have some stuff what could change whether asserts are enabled, specifically `-DCMAKE_BUILD_TYPE:STRING='None'`
|
|
2021-04-25 01:20:19
|
Manual build:
``` git clone https://gitlab.com/wg1/jpeg-xl.git --recursive
cd jpeg-xl
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -march=native" -DCMAKE_C_FLAGS="-O3 -march=native" - DJPEGXL_ENABLE_PLUGINS=ON -DJPEGXL_ENABLE_GIMP_SAVING=1 -DJPEGXL_ENABLE_DEVTOOLS=ON -DCMAKE_INSTALL_PREFIX=/usr -
DBUILD_TESTING=OFF -DJPEGXL_WARNINGS_AS_ERRORS=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=1 -DJPEGXL_ENABLE_SJPEG=OFF ..
cmake --build . -- -j 16
sudo make install```
|
|
|
|
veluca
|
|
improver
```
% cjxl -v -m 20210424_201012.pfm 20210424_201012.pfm.m.jxl
J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: AVX2]
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/extras/codec_pnm.cc:301: PNM: no color_space/icc_pathname given, assuming sRGB
Read 4016x3008 image, 65.3 MP/s
Encoding [Modular, lossless, squirrel], 6 threads.
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:818: JXL_FAILURE: No feasible selector for 8927592
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:818: JXL_FAILURE: No feasible selector for 9700587
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:818: JXL_FAILURE: No feasible selector for 10143300
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:563: JXL_RETURN_IF_ERROR code=1: ok_
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/fields.cc:720: JXL_RETURN_IF_ERROR code=1: CanEncode(fields, &extension_bits, &total_bits)
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/enc_modular.cc:1051: JXL_RETURN_IF_ERROR code=1: Bundle::Write(stream_headers[stream_id], writer, layer, aux_out)
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/enc_frame.cc:1243: JXL_RETURN_IF_ERROR code=1: modular_frame_encoder->EncodeStream( get_output(0), aux_out, kLayerModularGlobal, ModularStreamId::Global())
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/enc_file.cc:268: JXL_RETURN_IF_ERROR code=1: EncodeFrame(cparams, info, metadata.get(), io->frames[i], passes_enc_state, pool, &writer, aux_out)
Failed to compress to Modular.
```
|
|
2021-04-25 06:15:47
|
Well, that's a "true" error, at least... Interesting that it doesn't seem to happen to everyone, sounds like it will be fun to debug
|
|
|
improver
|
2021-04-25 09:34:36
|
idk if pfm one "doesnt happen to everyone'
|
|
2021-04-25 09:35:03
|
ive not made issue for and havent uploaded file
|
|
2021-04-25 09:36:00
|
blueswordm's messages were about exr
|
|
|
veluca
Well, that's a "true" error, at least... Interesting that it doesn't seem to happen to everyone, sounds like it will be fun to debug
|
|
2021-04-25 12:52:12
|
https://gitlab.com/wg1/jpeg-xl/-/issues/216
|
|
|
|
veluca
|
2021-04-25 12:54:34
|
will look into it next week, thanks for the report!
|
|
|
BlueSwordM
|
|
improver
https://gitlab.com/wg1/jpeg-xl/-/issues/216
|
|
2021-04-25 05:18:18
|
I can confirm, I get the same error with pfm using lossless modular.
|
|
|
Scientia
|
|
_wb_
If you toggle a constant bool some part of the code, you can print MA trees as part of the debug info you get in benchmark_xl (you can also get quantization heatmaps and block selection maps for vardct that way, and maps of predictor choices per pixel for modular)
|
|
2021-04-26 04:00:30
|
can you tell me what to modify to compile it this way? I'm interested in getting the trees from some jxls
|
|
2021-04-26 04:55:28
|
DW if you see this a lot later I didn't ping you to not disturb you 🙂
|
|
|
|
veluca
|
2021-04-26 05:12:00
|
There's a kPrintTree constant in lib/jxl/modular/enc_encoding.cc
|
|
2021-04-26 05:13:29
|
But I don't remember if the decoder can do this, you might have to add a call to PrintTree in lib/jxl/dec_modular.cc, in DecodeGlobalInfo - or something like that
|
|
2021-04-26 05:13:55
|
(you also need to install graphviz)
|
|
|
Scientia
|
2021-04-26 05:14:17
|
so best case scenario toggling this to true will make the decoder print the tree?
|
|
|
|
veluca
|
2021-04-26 05:14:33
|
In theory, but likely not
|
|
|
Scientia
|
2021-04-26 05:14:45
|
it appears i already have graphviz installed
|
|
|
|
veluca
|
2021-04-26 05:15:19
|
I can probably make a simple patch to make that happen - but in a few hours, I have my PhD defense coming up 🤣
|
|
|
Scientia
|
2021-04-26 05:15:28
|
nah it's fine
|
|
2021-04-26 05:15:48
|
I just needed to get the trees of a few jxl arts that didn't have the trees published for whatever reason
|
|
2021-04-26 05:16:06
|
i can wait a few days etc 🙂
|
|
|
_wb_
|
2021-04-26 05:50:55
|
In general a tree_from_jxl utility would be useful. The tree for the xor pattern I only found because I made a xor pattern image, used the existing encoder to encode it with -s 9 -I 1, printing the tree. That gives you the shape of the tree but not the offsets in the leaf nodes (those are not really used in the current encoder, since usually the symbols in a leaf have a nontrivial distribution anyway).
|
|
|
sklwmp
|
2021-04-27 04:22:22
|
Has anyone tried opening JXL files from https://sneyers.info/jxl/art/ in ImageGlass? It seems that ImageGlass crashes whenever it tries to open "Tropical Island Sunset"
|
|
|
Pieter
|
2021-04-27 04:23:46
|
i think there was a recent bug related to a feature used in some of those jxl art pictures, fixed in the latest release
|
|
2021-04-27 04:24:06
|
is it possible you (or imageglass) is still using an older version/plugin or so
|
|
|
sklwmp
|
2021-04-27 04:24:30
|
Oh, you're right. An update is available.
|
|
2021-04-27 04:24:38
|
No wait, huh?
|
|
2021-04-27 04:25:00
|
It told me an update was available, but when I clicked on it, it said it was already up-to-date
|
|
2021-04-27 04:26:29
|
Anyway, it seems I'm up to date but it still crashes. The files open fine in Chrome Dev.
|
|
|
_wb_
|
2021-04-27 04:27:37
|
I think it will be fixed in the next sync. Firefox was also reporting a problem with that image
|
|
2021-04-27 04:28:29
|
Or rather with the multi-layer version of it
|
|
|
Scientia
|
2021-04-27 04:53:26
|
it's the same with nomacs
|
|
2021-04-27 04:53:32
|
maybe it's the qt plugin?
|
|
2021-04-27 04:53:46
|
because the gdk pixbuf plugin has no issue with it
|
|
|
BlueSwordM
|
|
Scientia
maybe it's the qt plugin?
|
|
2021-04-27 04:59:01
|
No, it works just fine here with latest Git.
|
|
|
Scientia
|
|
_wb_
|
2021-04-27 05:02:58
|
Does it crash only on the very last image of the page?
|
|
2021-04-27 05:03:19
|
Because then it's a bug that will be fixed in the public repo at next sync
|
|
|
BlueSwordM
|
|
_wb_
Does it crash only on the very last image of the page?
|
|
2021-04-27 05:03:20
|
Oh, it actually does.
There were 2 Tropical images, I did not notice.
|
|
|
_wb_
|
2021-04-27 05:03:37
|
There was a bug in layer blending
|
|
2021-04-27 05:04:14
|
Fixed last week, hasn't been a sync yet since then
|
|
|
Jim
|
2021-04-27 05:05:05
|
The last 2 cause a crash for me.
|
|
|
_wb_
|
2021-04-27 05:05:42
|
I think the bug was only created at the last sync, so the released version should still be ok but the current public git head is not
|
|
2021-04-27 05:06:35
|
Both of them? That's a bit weird
|
|
2021-04-27 05:06:51
|
The one without the overlay logo should not be affected
|
|
|
fab
|
2021-04-27 05:09:02
|
imageglass don't read half of the jxl image on windows 7
|
|
|
Scientia
|
2021-04-27 05:39:46
|
Mine crashes on the black and white jxl logo, the bamboo and lightning, and the jxl logo overlayed on the tropical background
|
|
2021-04-27 05:40:07
|
I think it might crash on the tropical background by itself but idk
|
|
|
fab
|
2021-04-27 05:57:07
|
i didn't compiled i downloaded the latest release in github
|
|
2021-04-27 06:05:36
|
the ones that i converted now work
|
|
2021-04-27 06:10:44
|
even older
|
|
2021-04-27 06:10:58
|
it was an error because i used strange options maybe
|
|
2021-04-27 06:11:05
|
i got some file corrupted
|
|
2021-04-27 06:11:10
|
about 100
|
|
2021-04-27 06:11:15
|
of 800
|
|
2021-04-27 06:11:38
|
with q 60.4 options and faster decoding with some modular q 86.6 before
|
|
2021-04-27 06:12:05
|
i did with an old build now that the folder hasn't error file imageglass works
|
|
|
_wb_
|
2021-04-27 06:35:47
|
Maybe imageglass cannot deal with higher bitdepth or out-of-bounds values. Likely an application bug then.
|
|
|
fab
|
2021-04-27 07:15:12
|
no
|
|
2021-04-27 07:15:17
|
in my case not
|
|
2021-04-27 07:15:26
|
is just that i put error file in a folder
|
|
|
eddie.zato
|
2021-05-02 08:27:27
|
--target_size doesn't work with --modular?
```PS > cjxl 0.png 4.jxl --modular --target_size=5350 -E 3 -I 1 -s 9
J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: SSE4,Scalar]
Quality 100.00 yields 17328 bytes, 15.042 bpp.
Quality -900.00 yields 516 bytes, 0.448 bpp.
Quality -612.47 yields 529 bytes, 0.459 bpp.
Quality -408.00 yields 548 bytes, 0.476 bpp.
Quality -262.63 yields 563 bytes, 0.489 bpp.
Quality -159.08 yields 615 bytes, 0.534 bpp.
Quality -85.68 yields 683 bytes, 0.593 bpp.
Quality -33.62 yields 780 bytes, 0.677 bpp.
Quality 3.28 yields 982 bytes, 0.852 bpp.
Quality 29.13 yields 1384 bytes, 1.201 bpp.
Read 96x96 image, 5.7 MP/s
Encoding [Modular, Q29.13, tortoise], 4 threads.
Compressed to 1384 bytes (1.201 bpp).
96 x 96, 0.24 MP/s [0.24, 0.24], 1 reps, 4 threads.```
|
|
|
_wb_
|
2021-05-02 08:30:48
|
Looks like the search is just doing a very poor job here (I think it stops after 10 tries and it wasted most of them at way too low quality)
|
|
|
|
veluca
|
2021-05-02 09:54:29
|
-900 quality? xD
|
|
2021-05-02 09:55:21
|
I'd suggest you don't even try it - either lossless compresses better than vardct, or likely vardct will do a better job than lossy modular...
|
|
|
_wb_
|
2021-05-02 10:00:01
|
--target_size / --target_bpp is in any case an inefficient way to set a quality target, and it is likely to give much more inconsistent results than setting --distance.
|
|
|
eddie.zato
|
2021-05-02 11:05:11
|
I'm just trying different options with lossy vardct/modular to compete with lossy avif on digital art images. First aiming for close dssim values, then for the same size. Unfortunately, avif almost always wins when looking at quality and file size.
For example, enlarged pngs to show the difference in quality. Yeah, avif has lost some details, but it looks better and is smaller.
```avifenc -j 4 -y 444 -r f --min 23 --max 23 -s 0 0.png 1.avif
cjxl 0.png 2.jxl -d 0.94 -E 3 -I 1 -s 9
name dssim size
1.avif 0.00057152 3765
2.jxl 0.00057467 4999```
png original https://i.imgur.com/x6fVXzH.png
png from avif https://i.imgur.com/oXP6CBO.png
png from jxl https://i.imgur.com/KMR2hHm.png
|
|
|
_wb_
|
2021-05-02 11:14:30
|
Maybe try if -s 7 or -s 8 do better
|
|
2021-05-02 11:16:39
|
For these kind of images we've seen it before that avif encoders are better in lossy than the current jxl encoder is.
|
|
|
lithium
|
2021-05-02 11:59:16
|
-E 3 and -I 1 is work on vardct?
|
|
2021-05-02 12:01:36
|
-I F, --iterations=F
[modular encoding] fraction of pixels used to learn MA trees (default=0.5, try 0 for no MA and fast decode)
-E K, --extra-properties=K
[modular encoding] number of extra MA tree properties to use
|
|
|
_wb_
|
2021-05-02 12:02:35
|
Those options aren't really used in vardct, at least not currently: it uses a fixed MA tree for the DC
|
|
|
fab
|
2021-05-02 12:06:07
|
and what are this
|
|
2021-05-02 12:06:08
|
https://discord.com/channels/794206087879852103/794206170445119489/835813088883113994
|
|
|
lithium
|
|
eddie.zato
I'm just trying different options with lossy vardct/modular to compete with lossy avif on digital art images. First aiming for close dssim values, then for the same size. Unfortunately, avif almost always wins when looking at quality and file size.
For example, enlarged pngs to show the difference in quality. Yeah, avif has lost some details, but it looks better and is smaller.
```avifenc -j 4 -y 444 -r f --min 23 --max 23 -s 0 0.png 1.avif
cjxl 0.png 2.jxl -d 0.94 -E 3 -I 1 -s 9
name dssim size
1.avif 0.00057152 3765
2.jxl 0.00057467 4999```
png original https://i.imgur.com/x6fVXzH.png
png from avif https://i.imgur.com/oXP6CBO.png
png from jxl https://i.imgur.com/KMR2hHm.png
|
|
2021-05-02 12:10:23
|
For drawing content, you need wait jpeg xl implement some vardct improvement.
|
|
|
mincerafter42
|
2021-05-02 10:00:13
|
Hello, I am once again posting in a server I am very inactive in. Are there any really powerful image editors for JXL? Specifically, one where I can select the most important parts of an image (like text) and they will be the parts that are prioritized in the progressive encoding. I have been encountering Internet speeds that are even more incredibly slow than usual and I realized such an editor would be useful for anyone in the same situation. Please ping me with any replies because, like I said, I am not very active here.
(Did you know that when Discord loses connection it seemingly deletes the message you're composing? After 2 tries I gave up and composed this message externally and just pasted it in, including this part.)
|
|
2021-05-02 10:00:54
|
*such an editor would be useful for the creators of images that are viewed by users in the same situation
|
|
|
raysar
|
|
mincerafter42
Hello, I am once again posting in a server I am very inactive in. Are there any really powerful image editors for JXL? Specifically, one where I can select the most important parts of an image (like text) and they will be the parts that are prioritized in the progressive encoding. I have been encountering Internet speeds that are even more incredibly slow than usual and I realized such an editor would be useful for anyone in the same situation. Please ping me with any replies because, like I said, I am not very active here.
(Did you know that when Discord loses connection it seemingly deletes the message you're composing? After 2 tries I gave up and composed this message externally and just pasted it in, including this part.)
|
|
2021-05-03 12:39:28
|
Support of software is read and basic encode with default param, i list all software: https://docs.google.com/spreadsheets/d/1bTeraUXIl-nGM8c53IdURxmJbabX9eXqPZwVSynoH9U
|
|
|
|
Deleted User
|
|
mincerafter42
Hello, I am once again posting in a server I am very inactive in. Are there any really powerful image editors for JXL? Specifically, one where I can select the most important parts of an image (like text) and they will be the parts that are prioritized in the progressive encoding. I have been encountering Internet speeds that are even more incredibly slow than usual and I realized such an editor would be useful for anyone in the same situation. Please ping me with any replies because, like I said, I am not very active here.
(Did you know that when Discord loses connection it seemingly deletes the message you're composing? After 2 tries I gave up and composed this message externally and just pasted it in, including this part.)
|
|
2021-05-03 01:28:26
|
> select the most important parts of an image (like text) and they will be the parts that are prioritized in the progressive encoding
Sorry, there are no such powerful editors yet. Even simple JXL merging tool for encoding every JXL layer separately remains only a suggestion:
https://discord.com/channels/794206087879852103/803663417881395200/830745493368733697
|
|
|
mincerafter42
|
2021-05-03 01:35:21
|
it appears I have some options:
- do nothing and wait for such an editor to be available
- make one myself (this option will be harder)
|
|
|
Pieter
|
2021-05-03 01:36:04
|
I vote for the second option.
|
|
|
|
Deleted User
|
2021-05-03 01:48:04
|
I also wanted to do this, but the codebase is too complex for me (at least now) and I don't have "proper" tools to help me with coding and definitely make understanding such an advanced codebase easier.
|
|
|
mincerafter42
|
2021-05-03 02:04:22
|
next option (it is actually a question): what would be the best language to code a powerful editor in
|
|
|
Pieter
|
2021-05-03 02:06:25
|
I assume the current encoder API doesn't let you do this, so for starters you'd need your own fork of the C++ encoder codebase, or get patches to do these things merged.
|
|
2021-05-03 02:15:07
|
It doesn't let you select prioritized areas in the encoder, which is what <@281958058190700546> seems to be after.
|
|
2021-05-03 02:19:00
|
Well even no JXL software exists that can do this, but at least the format supports things like that to a certain extent. I don't know of any other formats that do.
|
|
|
mincerafter42
|
2021-05-03 02:52:39
|
technically I could massively misuse GIF and make the first frames be ones with the most important areas
but then of course I'd be restricted to 256 colours per layer so the solution is to make it an even more progressive image using layered local colour palettes
|
|
2021-05-03 02:59:22
|
https://cdn.discordapp.com/attachments/818293093714886679/838607259511554058/xatu.gif then I made an example (yes it's a scene from the pokémon anime with subtitles, I had that on hand) (only 256 colours here because Discord massively messes up displaying local colour palettes)
|
|
|
_wb_
|
|
mincerafter42
Hello, I am once again posting in a server I am very inactive in. Are there any really powerful image editors for JXL? Specifically, one where I can select the most important parts of an image (like text) and they will be the parts that are prioritized in the progressive encoding. I have been encountering Internet speeds that are even more incredibly slow than usual and I realized such an editor would be useful for anyone in the same situation. Please ping me with any replies because, like I said, I am not very active here.
(Did you know that when Discord loses connection it seemingly deletes the message you're composing? After 2 tries I gave up and composed this message externally and just pasted it in, including this part.)
|
|
2021-05-03 05:17:35
|
There is not such editor/tool yet, but there is a "saliency progression" option to cjxl iirc that takes a heatmap as input and uses it to guide detail in progressive passes (iirc)
|
|
2021-05-03 05:18:29
|
I don't know if and how well it works atm
|
|
|
|
veluca
|
2021-05-03 09:06:51
|
yeah, we didn't test it for a long time, but in theory it should work...
|
|
|
improver
|
2021-05-04 08:00:49
|
jxl on android chrome canary when (iirc building that was disabled)
|
|
|
eddie.zato
|
2021-05-05 02:46:48
|
I figured out how to build jxl with msys2. No need to wait for other stuff like when using mabs. But one thing still bothers me. The size of the binaries has gotten bigger. For example:
``` msys2
cjxl.exe 9920070 bytes
djxl.exe 7924854 bytes
masb
cjxl.exe 6735872 bytes
djxl.exe 5039616 bytes
from jeremylee.sh
cjxl.exe 4818432 bytes
djxl.exe 4107776 bytes```
I build like this:
```cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_DEVTOOLS=ON -DJPEGXL_ENABLE_OPENEXR=OFF -DJPEGXL_ENABLE_SKCMS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_STATIC=ON -DJPEGXL_WARNINGS_AS_ERRORS=OFF ..
ninja```
Of course, this isn't a big problem. But how to reduce the size of the binaries?
|
|
|
Scope
|
2021-05-05 02:48:29
|
`strip.exe -s cjxl.exe`
|
|
|
eddie.zato
|
|
Scope
`strip.exe -s cjxl.exe`
|
|
2021-05-05 02:53:14
|
Yay, it works! Thanks!
|
|
|
|
veluca
|
|
eddie.zato
I figured out how to build jxl with msys2. No need to wait for other stuff like when using mabs. But one thing still bothers me. The size of the binaries has gotten bigger. For example:
``` msys2
cjxl.exe 9920070 bytes
djxl.exe 7924854 bytes
masb
cjxl.exe 6735872 bytes
djxl.exe 5039616 bytes
from jeremylee.sh
cjxl.exe 4818432 bytes
djxl.exe 4107776 bytes```
I build like this:
```cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_DEVTOOLS=ON -DJPEGXL_ENABLE_OPENEXR=OFF -DJPEGXL_ENABLE_SKCMS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_STATIC=ON -DJPEGXL_WARNINGS_AS_ERRORS=OFF ..
ninja```
Of course, this isn't a big problem. But how to reduce the size of the binaries?
|
|
2021-05-05 07:51:33
|
also -DCMAKE_CXX_FLAGS='-ffunction-sections -fgc-sections' can help (I don't remember if we pass it by default though)
|
|
|
eddie.zato
|
|
veluca
also -DCMAKE_CXX_FLAGS='-ffunction-sections -fgc-sections' can help (I don't remember if we pass it by default though)
|
|
2021-05-05 08:04:15
|
`c++.exe: error: unrecognized command-line option '-fgc-sections'; did you mean '-fdata-sections'?`
|
|
|
|
veluca
|
2021-05-05 08:04:48
|
Eh, nevermind then xD
|
|
2021-05-05 08:07:54
|
Ah, maybe it is -Wl,--gc-sections
|
|
2021-05-05 08:08:04
|
Since it's a linker option...
|
|
2021-05-05 08:08:48
|
(you can also pass -s in the cxx flags, ought to be equivalent to calling strip afterwards)
|
|
|
eddie.zato
|
2021-05-05 08:15:57
|
This worked: 😄
```cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_OPENEXR=OFF -DJPEGXL_ENABLE_SKCMS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_STATIC=ON -DJPEGXL_WARNINGS_AS_ERRORS=OFF -DCMAKE_CXX_FLAGS='-ffunction-sections -fdata-sections' -DCMAKE_EXE_LINKER_FLAGS='-Wl,--gc-sections -Wl,--no-export-dynamic' ..
ninja
strip -s cjxl.exe djxl.exe
Name Length
---- ------
cjxl.exe 6023680
djxl.exe 4798464```
|
|
2021-05-05 08:18:26
|
Took flags from ci.sh
|
|
2021-05-09 06:48:08
|
Playing with tools. Trying to capture the output to a variable in pwsh. Just curious why cjxl output is sent to stderr?
|
|
|
_wb_
|
2021-05-09 07:07:17
|
Good question. Maybe we at some point wanted to keep the option open to encode to stdout?
|
|
2021-05-09 07:16:56
|
Tools like cjpeg/djpeg write their output to stdout. Not very convenient if you ask me, since it is very rare that you want to do anything else than `> outputfile`, and much more common that you forget to redirect stdout and end up with a messed up terminal...
|
|
|
eddie.zato
|
|
_wb_
Good question. Maybe we at some point wanted to keep the option open to encode to stdout?
|
|
2021-05-09 07:25:42
|
Oh, ok, that makes sense.
|
|
|
zebefree
|
2021-05-09 12:43:07
|
Other programs that can output binary data to stdout check isatty(STDOUT_FILENO) first and report an error in that case, to avoid sending binary output to a terminal.
|
|
|
_wb_
|
2021-05-09 01:15:35
|
Yes, not sure if that is easy to do in a portable way though
|
|
|
Pieter
|
2021-05-09 04:07:45
|
#ifndef _WIN32
...
#endif
|
|
|
|
Deleted User
|
2021-05-10 01:33:42
|
Are there any image viewers that dither high bit depth images to 8 bpc?
|
|
|
_wb_
|
2021-05-10 01:35:27
|
I think Photoshop does that, if you call that an image viewer
|
|
|
|
Deleted User
|
2021-05-10 01:39:28
|
No, I'm thinking more about tools that focus on image viewing over everything else. mpv can dither but that's again mainly a video player and not pleasant for typical image viewing.
|
|
|
_wb_
|
2021-05-10 01:48:40
|
maybe we should contribute a bit to an image viewer and make it do everything better: in particular doing downscaling in linear color and dithering in the conversion to display space are things that all image viewers should do but probably none actually do.
|
|
|
spider-mario
|
2021-05-10 02:08:21
|
somewhat relatedly, I have found it disappointingly difficult to find a color-managed comic book viewer
|
|
2021-05-10 02:08:30
|
I was almost tempted to try and write one myself at some point
|
|
2021-05-10 02:08:41
|
but in the end I got an iPad for that
|
|
2021-05-10 02:08:47
|
great comic book machine.
|
|
2021-05-10 02:10:22
|
right, that’s another option, as well as some Chrome app I used a few years ago
|
|
2021-05-10 02:10:26
|
(2018 iirc)
|
|
2021-05-10 02:12:12
|
in my experience, they are more often distributed as cbr/cbz/cb7/all that stuff
|
|
|
|
veluca
|
2021-05-10 02:12:49
|
btw, we decided not to do dithering in the core libjxl library - if a software wants dithering, they can implement it themselves on top of the float-based callback system
|
|
|
spider-mario
|
2021-05-10 02:13:31
|
but yes, the Readium Chrome app works well for EPUB, including math formulas in EPUB3
|
|
2021-05-10 02:14:03
|
it renders the second edition of “Physics of Digital Photography” very well 😁
|
|
2021-05-10 02:15:34
|
|
|
|
|
paperboyo
|
|
_wb_
I think Photoshop does that, if you call that an image viewer
|
|
2021-05-10 02:47:42
|
Photoshop has dither option on explicit conversions between colour modes, not in the display path AFAIK.
|
|
|
eddie.zato
|
2021-05-10 03:22:45
|
On windows there is a good viewer for comics and ebooks - SumatraPDF. I created an issue for jxl support. Without much expectation, but just in case.
|
|
|
spider-mario
|
2021-05-10 03:32:51
|
iirc, that one is not color-managed at all
|
|
|
eddie.zato
|
2021-05-10 03:56:15
|
There is another great and functional app for comics - NeeView. It has "effect panel" with some color management, I dunno if there is anything useful there. It could view jxl, if only were plugins for wic or susie. https://bitbucket.org/neelabo/neeview/
|
|
|
|
Deleted User
|
|
veluca
btw, we decided not to do dithering in the core libjxl library - if a software wants dithering, they can implement it themselves on top of the float-based callback system
|
|
2021-05-10 04:19:40
|
But even djpeg supports dithering! That would be quite a regression for JXL. :/
|
|
|
|
veluca
|
2021-05-10 04:20:45
|
does it? IIRC it suports dithering to lower-than-8-bit output
|
|