|
Traneptora
|
2023-08-21 04:07:43
|
https://resources.infosecinstitute.com/topics/hacking/xml-vulnerabilities/
|
|
2023-08-21 04:07:52
|
https://resources.infosecinstitute.com/topics/vulnerabilities/xml-vulnerabilities-still-attractive-targets-attackers/
|
|
2023-08-21 04:08:14
|
https://itnext.io/vulnerabilities-due-to-xml-files-processing-xxe-in-c-applications-in-theory-and-in-practice-f94912216093
|
|
2023-08-21 04:08:23
|
XML is a buggy security *landmine*
|
|
2023-08-21 04:09:06
|
Consider the following:
|
|
2023-08-21 04:09:10
|
```xml
<?xml version="1.0"?>
<!DOCTYPE lolz [
<!ENTITY lol "lol">
<!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
<!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
<!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
<!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
<!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
<!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
]>
<lolz>&lol9;</lolz>
```
|
|
2023-08-21 04:09:17
|
This is *LEGAL XML*
|
|
2023-08-21 04:09:21
|
think about that.
|
|
2023-08-21 04:11:19
|
This is from a microsoft article that's specifically about how to defend your xml-using application against attacks
|
|
2023-08-21 04:11:21
|
https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/november/xml-denial-of-service-attacks-and-defenses
|
|
2023-08-21 04:11:37
|
At this point, you should just considering using JSON instead.
|
|
|
Demonik
|
2023-08-21 08:25:28
|
is there a way to build just decode/encode library with no platform specific code, no file handling, no threads or anything like that - I just want minimal library where I give it file or stream I already read from somewhere and it gives me results?
|
|
2023-08-21 08:27:35
|
with no dependencies
|
|
|
jonnyawsom3
|
2023-08-21 09:15:05
|
Might be a start https://github.com/libjxl/libjxl-tiny
|
|
|
Demonik
|
2023-08-21 09:16:12
|
this is encoder and it's the opposite of what I need
|
|
2023-08-21 09:16:21
|
it's a tool
|
|
2023-08-21 09:17:07
|
I need a library, at least decoder but decoder+encoder would be better, something that can be easily plugged into crossplatform software where I'm already handling files
|
|
2023-08-21 09:17:35
|
and preferably not having to deal with cmake
|
|
2023-08-21 09:17:58
|
because trying to crosscompile with cmake makes me want to unalive myself
|
|
2023-08-21 09:20:34
|
https://github.com/libjxl/jxl-rs something like this but with reference implementation
|
|
|
yoochan
|
2023-08-21 11:08:35
|
you could try j40... but it's not feature complete yet
|
|
|
_wb_
|
2023-08-21 12:56:12
|
libjxl does not do file handling
|
|
|
Demonik
|
2023-08-21 02:09:21
|
as far as I understand `JPEGXL_INTERNAL_SOURCES_DEC` lists all files that are needed for decoder library and that includes `file_io.h` which uses stdio to read/write files
|
|
|
yoochan
you could try j40... but it's not feature complete yet
|
|
2023-08-21 02:11:05
|
that looks nice but it lacks a lot of features, I wish reference implementation was more like this
|
|
2023-08-21 02:11:34
|
would make integration so much easier for everyone
|
|
|
_wb_
|
|
Demonik
as far as I understand `JPEGXL_INTERNAL_SOURCES_DEC` lists all files that are needed for decoder library and that includes `file_io.h` which uses stdio to read/write files
|
|
2023-08-21 02:23:11
|
does it? hm, probably should change that. libjxl itself should not do any file io
|
|
2023-08-21 02:23:35
|
i guess except in some debug builds where it can dump debug output files, hmm
|
|
|
Demonik
|
2023-08-21 02:24:06
|
well it's hard to say for me because I hate cmake and don't know shit about it
|
|
|
Foxtrot
|
2023-08-21 02:27:40
|
So I saw this CLA topic: https://github.com/libjxl/libjxl/pull/2741
Makes me wonder... Who even owns JPEG XL?
I thought that copyright is owned by JPEG committee.
But the CLA is for Google. I guess because JXL is based on PIK?
But it's also based on FUIF which is owned by Cloudinary, so why there isnt CLA for Cloudinary? Or CLA for JPEG group?
I just dont understand.
|
|
|
_wb_
|
2023-08-21 02:39:36
|
libjxl is owned by "the jpeg xl project" which is a kind of intentionally vague term which is understood to include Google and Cloudinary. Google is the legal entity administrating the libjxl CLA.
|
|
|
Demonik
|
2023-08-21 02:40:06
|
I can't even figure out how to build just jxl lib let alone how to cross compile it because cmake is the most unintuitive build system ever created and it seems its whole purpose is to make building projects as hard as possible
|
|
|
_wb_
|
2023-08-21 02:40:50
|
the JPEG committee has nothing to do with libjxl except that it 'ratifies' libjxl to be a reference implementation (in 18181-4)
|
|
2023-08-21 02:41:23
|
the JPEG XL standard (as in the spec documents) is 'owned' by ISO/IEC
|
|
|
Quackdoc
|
|
Demonik
I can't even figure out how to build just jxl lib let alone how to cross compile it because cmake is the most unintuitive build system ever created and it seems its whole purpose is to make building projects as hard as possible
|
|
2023-08-21 02:42:04
|
I use these for buidling libjxl for android, it should more or less relate to anything else with some minor tweaking to remove the android specific bits
https://github.com/Quackdoc/libmpv-android-video-build/blob/6927421abcd226b2311458299de9d088976b9279/buildscripts/scripts/libjxl.sh
https://github.com/Quackdoc/libmpv-android-video-build/blob/6927421abcd226b2311458299de9d088976b9279/buildscripts/scripts/brotli.sh
|
|
|
Foxtrot
|
|
_wb_
libjxl is owned by "the jpeg xl project" which is a kind of intentionally vague term which is understood to include Google and Cloudinary. Google is the legal entity administrating the libjxl CLA.
|
|
2023-08-21 03:24:52
|
thanks for explanation 🙂
|
|
|
w
|
2023-08-22 07:11:49
|
libjxl is as hard to build as imagemagick
|
|
2023-08-22 07:12:00
|
with only 1 core, might be worse
|
|
2023-08-22 07:14:23
|
something still needs to be done about the memory usage
|
|
|
Traneptora
|
2023-08-22 09:10:56
|
Not sure how much can be fixed with regard to the compile speed, as C++ does that with templates and header files
|
|
|
Quackdoc
|
2023-08-22 09:20:35
|
you can always try different compilers and linkers, some are better some are worse
|
|
|
Traneptora
|
2023-08-22 09:24:53
|
the best way to get a C++ library to compile quickly is to just write it in C
|
|
|
VcSaJen
|
2023-08-23 01:09:39
|
In my experience, Delphi is the quickest. The launch is literally instantaneous.
|
|
|
OkyDooky
|
2023-08-24 03:13:34
|
Using JPEG XL as one of the examples of why we'd need some more engine representation on the CanIUse website \: https://mastodon.social/@nekohayo/110942348238393206
|
|
|
Lemenus
|
2023-08-24 09:05:21
|
build
|
|
|
VcSaJen
|
2023-08-25 12:24:46
|
What's the difference between WebKitGTK and WebKit?
|
|
|
HCrikki
|
2023-08-25 01:04:31
|
afaik webkitgtk's release schedule matches gnome desktop and apps' release schedule better and LTS distros'
|
|
2023-08-25 01:05:38
|
for apps/games embedding it, its more accomodating as a build target than either nightlies or stables of regular webkit and blink
|
|
|
Traneptora
|
2023-08-27 12:04:22
|
Just merged my JXL parser into FFmpeg
|
|
2023-08-27 12:04:23
|
<:poggies:853085814032302122>
|
|
|
lonjil
|
|
_wb_
|
2023-08-27 03:18:19
|
So now ffprobe etc will do jxlinfo style stuff?
|
|
|
diskorduser
|
2023-08-27 04:06:51
|
Does imagemagick support lossless jpg to jxl?
|
|
|
Fraetor
|
2023-08-27 04:12:17
|
I don't think so.
|
|
|
Traneptora
|
|
_wb_
So now ffprobe etc will do jxlinfo style stuff?
|
|
2023-08-27 06:04:58
|
it already did, but most importantly it'll be able to read concatenated JXL files from a stream
|
|
2023-08-27 06:05:14
|
this matters if you want to do something like store jxl sequences in a container as a pseudo-prores
|
|
2023-08-27 06:05:51
|
also, notably, it won't have to call the libjxl decoder to get basic info about the stream
|
|
2023-08-27 06:06:02
|
like the pixel format or the dimensions
|
|
2023-08-27 06:08:05
|
```
$ ffmpeg -hide_banner -i george-smile4.jxl
Input #0, jpegxl_pipe, from 'george-smile4.jxl':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: jpegxl, rgb24(pc, gbr/bt709/iec61966-2-1), 3840x2160, 25 fps, 25 tbr, 25 tbn
At least one output file must be specified
```
|
|
2023-08-27 06:08:20
|
it still will, but it doesn't have to, in the case libjxl support isn't compiled it
|
|
2023-08-27 06:08:32
|
and it can streamcopy it just fine
|
|
2023-08-27 06:10:06
|
this might be relevant to people like <@184373105588699137> who did some hack to get JXL inside NUT
|
|
|
Quackdoc
|
|
jonnyawsom3
|
|
Quackdoc
sorry for brevity, on phone can add jxl to riff bmp tags to get ffmpeg to mux jxl into mkv, mov mp4 etc.
the decode speed is a little low for my system (400fps in mpv) sounds like a lot but in reality need around 600fps for really good scrubbing still usable, don't get me wrong.
biggest issue is that ffmpeg seems to be messing up some conversions, so some videos get really mangled (happens with png and even raw video, no idea why)
```patch
diff --git a/libavformat/riff.c b/libavformat/riff.c
index df7e9df31b..16e37fb557 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -34,6 +34,7 @@
* files use it as well.
*/
const AVCodecTag ff_codec_bmp_tags[] = {
+ { AV_CODEC_ID_JPEGXL, MKTAG('J', 'X', 'L', ' ') },
{ AV_CODEC_ID_H264, MKTAG('H', '2', '6', '4') },
{ AV_CODEC_ID_H264, MKTAG('h', '2', '6', '4') },
{ AV_CODEC_ID_H264, MKTAG('X', '2', '6', '4') },
```
|
|
2023-08-27 06:50:01
|
Now it just needs a riff tag, although probably not suitable to be implimented by default
|
|
2023-08-28 12:58:51
|
And the [recent reddit post](https://redd.it/1637lmm) seems like it'd be the perfect use case ;P
|
|
|
Quackdoc
|
2023-08-28 05:23:42
|
the biggest thing for me is being able to mux an image sequence, using parallel to encode jxl images is much faster then using ffmpeg, so ill probably look back into it eventually. currently just using image sequences has been fine, but VS has been picky lately with image sequences.
|
|
|
perk11
|
2023-08-28 06:22:09
|
Using animated JXL should achieve better compression because there is some inter-frame compression, but when I tried it with cjxl it was extremely slow and RAM-hungry. But it did produce a smaller file than a sequence of JXLs.
|
|
|
Quackdoc
|
2023-08-28 06:22:57
|
interframe compression is explicitly something I don't want personally
|
|
|
perk11
|
2023-08-28 06:23:28
|
What is your usecase for this? How will you play it back?
|
|
|
Quackdoc
|
2023-08-28 06:23:49
|
video editing and medium quality vfx sequence exporting
|
|
2023-08-28 06:24:05
|
basically a replacement for prores and tiff
|
|
2023-08-28 06:28:29
|
I need to test e7 d0.25 for cjxl
|
|
2023-08-28 06:28:51
|
these are the ssimulacra2rs results I got encoding netflix's chimera use q95 e4,
https://cdn.discordapp.com/attachments/587033245061873759/1116353467326410832/prores.png
https://cdn.discordapp.com/attachments/587033245061873759/1116374917995315290/jxlseqQ95E4.png
|
|
2023-08-28 06:29:09
|
e4 kinda hurts, but at 1/3rd the filesize of prores, it's really nice
|
|
2023-08-28 06:29:24
|
anything more really hurt encoding speed
|
|
|
_wb_
|
|
perk11
Using animated JXL should achieve better compression because there is some inter-frame compression, but when I tried it with cjxl it was extremely slow and RAM-hungry. But it did produce a smaller file than a sequence of JXLs.
|
|
2023-08-28 06:37:42
|
I don't think libjxl currently does anything inter itself — but iirc cjxl does preserve cropped frames in gif/apng input, which is a kind of (simple) inter frame.
|
|
2023-08-28 06:38:49
|
In principle jxl does have some coding tools that could be useful for inter, in particular patches and frame blending. But this is not a jxl dev focus at all, since we are not trying to compete with video codecs.
|
|
|
perk11
|
2023-08-28 06:41:01
|
Oh good to know it just preserves it from apng/gif. I thought it was a part of libjxl.
For my use case of lossless compression of desktop screenshots taken every few miutes jxl already outperforms x264 (which is the best video compression codec for lossless). The problem is only with speed/RAM currently. I understand it's not a focus.
|
|
|
_wb_
|
2023-08-28 06:47:31
|
As a mezzanine format like prores it could be useful, or even for use cases like digital cinema where j2k is currently used. It's a bit computationally heavy at the moment for such use cases, but I think it's already feasible now.
|
|
2023-08-28 06:48:23
|
For archival use cases (where ffv1 is now typically used) it could also be good.
|
|
|
Quackdoc
|
2023-08-28 06:48:50
|
as mentioned above, i've also been looking into it as a replacement for tiff too for exports with exr isnt suitable for one reason or another
|
|
|
perk11
|
2023-08-28 06:52:03
|
These were my tiny test results (as cjxl took forever and ran out of RAM on larger data sets):
Source 30 png screenshots: 55.3 Mb
converting each file to JXL individually (-d0, default settings): 28.4 Mb
apng created using ffmpeg: 66.0 Mb
animated jxl created from apng using cjxl (-d0, default settings): 21.9 Mb
libx264rgb lossless video: 37.1 Mb
|
|
|
_wb_
|
2023-08-28 06:52:06
|
We should at some point port some of the libjxl-tiny stuff back to libjxl imo (wdyt <@987371399867945100> ?) so we can do something like e5-e6 but with fixed huffman coding instead of ANS so it's faster and lower memory...
|
|
|
Quackdoc
|
|
_wb_
|
2023-08-28 06:54:57
|
cjxl currently fully decodes the input file to memory and then encodes it frame by frame to a compressed bitstream in memory, and then it writes the whole output file from memory. That approach is obviously not going to work if there are many frames.
|
|
|
jonnyawsom3
|
2023-08-28 10:21:40
|
Sounds like that could be part of the streaming encoder being PR'd currently
|
|
|
_wb_
I don't think libjxl currently does anything inter itself — but iirc cjxl does preserve cropped frames in gif/apng input, which is a kind of (simple) inter frame.
|
|
2023-08-28 10:22:44
|
Yeah, no interframe, but it does use the previous frames to compress the new data losslessly, reusing redundant blocks essentially (At a guess, it's undocumented from what I know)
|
|
|
_wb_
|
2023-08-28 11:13:56
|
no it doesn't, it encodes frames completely independently atm
|
|
2023-08-28 11:14:58
|
I guess you could manually subtract the previous frame from the current though and set the frame blending to `kAdd` when using libxjl directly
|
|
|
jonnyawsom3
|
2023-08-28 12:59:07
|
Huh, I guess maybe just generic compression across the whole file? Otherwise I don't know how an animated JXL can be any smaller than separate files
|
|
|
_wb_
|
2023-08-28 01:49:19
|
well if the gif or apng has cropped frames then cjxl will preserve those
|
|
|
spider-mario
|
2023-08-28 02:07:48
|
and at present, only then; cjxl does not try to infer them
|
|
2023-08-28 02:08:01
|
if you pass it an “unoptimised” GIF, you’ll get an “unoptimised” JXL
|
|
|
jonnyawsom3
|
2023-08-28 02:09:47
|
Yeah, while testing with GIFs recently I've been removing duplicate frames and using pallete. Always surprising just how unoptimized files can be :P
|
|
|
perk11
|
|
_wb_
I guess you could manually subtract the previous frame from the current though and set the frame blending to `kAdd` when using libxjl directly
|
|
2023-08-28 03:16:53
|
I tried something like that, not in frames, but in separate files, but only storing difference between the frames, and it took more space than just storing full frames, my guess is because the parts that changed had to encode more data than when starting from the blank state. So it needs to be a smarter algorithm than that to be efficient (which converting from apng seems to achieve).
|
|
|
_wb_
|
2023-08-28 05:00:54
|
Subtracting previous frame is useful if there are parts that are static, but if everything is changing it just doubles the entropy
|
|
|
Kyle
|
2023-08-29 10:46:16
|
Hello. I just wanted to ask whether patch/dots generation only applies to VarDCT mode or both VarDCT and modular. Really interested with JPEG XL tech since I'm developing a website that supports JPEG/PNG, WebP, and JPEG XL all at the same time, and it is interesting to note that I consistently get better and smaller files with JPEG XL (`-d 2.5`) compared to WebP (quality 80).
|
|
2023-08-29 10:47:57
|
Also, the `photon_noise` configuration is a game-changer. It really makes a *huge* difference in image quality, specially for images with high ISO and not much denoising. Wondering if this will soon become automatically recognized from EXIF tags and applied...
|
|
|
Tirr
|
2023-08-29 10:53:00
|
IIRC libjxl does patch detection also on Modular (lossless), but only on `-e 7` (default) or higher
|
|
|
Kyle
|
2023-08-29 10:56:49
|
If that's true, that's awesome! I encode in `-e 9` all the time, anyway. I'm not in a hurry to get the files if they result in better and smaller files than WebP 🙂
|
|
2023-08-29 10:57:27
|
Now all I have to wait for is browser support... Sigh.
|
|
|
jonnyawsom3
|
2023-08-29 12:18:35
|
This might help a bit too <https://github.com/libjxl/libjxl/blob/main/doc/encode_effort.md>
|
|
|
Kyle
Now all I have to wait for is browser support... Sigh.
|
|
2023-08-29 12:20:47
|
Not necessarily... Depends if you want to try adding the WASM decoder
|
|
|
OkyDooky
|
2023-08-29 01:25:20
|
That ticket filed there does a reasonably good job at explaining exactly that ;)
(<@219079106673901568>)
|
|
2023-08-29 01:25:25
|
or so I was told
|
|
|
VcSaJen
|
2023-08-29 01:26:29
|
What ticket where
|
|
|
OkyDooky
|
2023-08-29 01:26:51
|
the thing you were replying to
|
|
2023-08-29 01:27:25
|
https://github.com/Fyrd/caniuse/issues/6807
|
|
|
Traneptora
|
2023-08-29 04:47:33
|
btw, I have a personal fork of libjxl/libjxl on github
|
|
2023-08-29 04:47:42
|
main branch tracks main branch
|
|
2023-08-29 04:47:50
|
but I frequently get failed workflow runs
|
|
2023-08-29 04:48:13
|
could it be possible for the workflows to have some kind of if-statement that makes them only run if the repo is libjxl/libjxl
|
|
2023-08-29 04:52:37
|
e.g. Mirror To Gitlab shouldn't run on forks
|
|
|
Kyle
|
|
This might help a bit too <https://github.com/libjxl/libjxl/blob/main/doc/encode_effort.md>
|
|
2023-08-30 03:36:23
|
Thanks, I checked it out. I guess I'll keep on using `-e 9` when I'm not in a hurry 🙂 Still not sure whether Modular mode can use patches/dots, but I guess it doesn't matter in the end 🙂
|
|
|
jonnyawsom3
|
|
Kyle
Thanks, I checked it out. I guess I'll keep on using `-e 9` when I'm not in a hurry 🙂 Still not sure whether Modular mode can use patches/dots, but I guess it doesn't matter in the end 🙂
|
|
2023-08-30 03:40:02
|
The page I linked says for VarDCT patches turn on at `-e 7` and for Modular patches turn on at `-e 5`, so yes it does use patches and dots
|
|
|
Kyle
|
2023-08-30 03:44:09
|
Aww. I promise I read and re-read it multiple times but somehow I still managed to miss the modular part. My bad. Thanks for pointing it out!
|
|
|
jonnyawsom3
|
2023-08-30 03:53:30
|
No worries, it's pretty dense text
|
|
|
Tirr
|
2023-08-30 03:55:50
|
note that libjxl doesn't try that much on detecting patches, it will do so just on some obvious ones (repeating patterns, glyphs etc.)
|
|
|
jonnyawsom3
|
2023-08-30 04:14:04
|
Has to be pixel perfect matches currently too, so any slight warping from scaling could stop it from working properly too
|
|
|
monad
|
2023-08-30 05:47:53
|
Rather patches _or_ dots, and patches can be lossy.
|
|
|
Moritz Firsching
|
|
Traneptora
could it be possible for the workflows to have some kind of if-statement that makes them only run if the repo is libjxl/libjxl
|
|
2023-08-30 06:54:46
|
sure, good idea. I will have a look
|
|
2023-08-30 06:56:43
|
let's see if this helps: https://github.com/libjxl/libjxl/pull/2761
|
|
2023-08-30 09:10:13
|
Done. Let me know if this disables enough workflows, or if some more need this if
|
|
|
Traneptora
|
|
Moritz Firsching
Done. Let me know if this disables enough workflows, or if some more need this if
|
|
2023-08-30 05:24:02
|
CI is passing on my fork now 👍
|
|
2023-09-05 01:54:18
|
<@179701849576833024> can https://github.com/libjxl/libjxl/pull/2768 be merged? I noticed you approved the changes but it's still a PR. I'm not sure the dev policy on this kind of thing
|
|
|
|
veluca
|
2023-09-05 01:54:51
|
ah I usually wait for the author to click that "merge" button
|
|
2023-09-05 01:54:57
|
but perhaps you cannot?
|
|
|
Traneptora
|
2023-09-05 01:54:57
|
I can't merge it
|
|
2023-09-05 01:55:04
|
I don't have push access to the repository
|
|
|
|
veluca
|
2023-09-05 01:55:19
|
I'd have thought approval would be sufficient... oh well
|
|
2023-09-05 01:55:21
|
merged
|
|
|
Traneptora
|
2023-09-05 01:55:23
|
thanks 👍
|
|
|
DZgas Ж
|
2023-09-07 07:14:31
|
where the... oh.
|
|
2023-09-07 07:15:59
|
I would like to say that by entering the -v parameter, which is already additional for -help, it is very strange to see NOT the full set of parameters
|
|
2023-09-07 07:17:08
|
real fun
|
|
|
jonnyawsom3
|
2023-09-07 07:18:11
|
Probably can do with more adjustment in future
|
|
|
DZgas Ж
|
2023-09-07 07:21:13
|
👆 -e 7 -d 25 --resampling=1 I just forgot about the maximum possible compression, I need to remember
|
|
|
VcSaJen
|
2023-09-07 11:28:15
|
what if... hear me out, `-v 4`
|
|
|
w
|
2023-09-08 12:00:01
|
what if.. it's just one -v
|
|
2023-09-08 12:00:16
|
or even better, no -v
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2023-09-08 11:22:11
|
also merging params would be nice, like `cjxl -hvvvv`
|
|
|
spider-mario
|
2023-09-08 12:29:29
|
slightly too reminiscent of HIV/HPV/HSV to my taste
|
|
2023-09-08 12:29:34
|
human vvv virus
|
|
|
gb82
|
|
VcSaJen
what if... hear me out, `-v 4`
|
|
2023-09-09 06:16:01
|
--fullhelp? -fh?
|
|
|
DZgas Ж
|
2023-09-09 06:40:56
|
Just do as before -h -v
|
|
|
w
|
2023-09-09 06:44:13
|
just do -h
|
|
2023-09-09 06:44:23
|
why would i want little help
|
|
2023-09-09 06:44:26
|
when i can have all help
|
|
|
Nova Aurora
|
2023-09-09 06:46:18
|
Because sometimes you have limited or no scroll back and don't need every single debug option of a program, just it's main usage
|
|
|
w
|
2023-09-09 06:47:35
|
-h is still too long
|
|
|
YAGPDB.xyz
|
2023-09-09 06:47:35
|
Couldn't find command 'is still too long'
|
|
|
uis
|
2023-09-12 12:04:04
|
Theoretically can svg be rendered to jxl splines?
|
|
|
jonnyawsom3
|
2023-09-12 12:05:07
|
There is a tool but you'd have to build it yourself https://github.com/wwww-wwww/spline
|
|
|
gb82
|
2023-09-12 07:01:47
|
How well does it work?
|
|
|
monad
|
2023-09-12 09:22:47
|
better than any other svg to jxl spline converter
|
|
|
OkyDooky
|
2023-09-12 12:39:34
|
I never saw a different one, lol
|
|
2023-09-12 12:40:02
|
Depends on the image, not that good for complex things.
(<@703028154431832094>)
|
|
|
jonnyawsom3
|
2023-09-12 01:50:32
|
If I recall JXL can't fill shapes with splines, so you'll end up with hollow shapes a lot
|
|
|
w
|
2023-09-12 03:04:24
|
yeah would be nice if it could do closed loops
|
|
2023-09-12 03:04:37
|
and an option to disable the mirror
|
|
2023-09-12 03:06:17
|
guess we gotta wait for jxl2
|
|
2023-09-12 03:06:39
|
i mean jxxl
|
|
|
jonnyawsom3
|
2023-09-12 03:27:44
|
JpegXtendedSplines
|
|
|
Traneptora
|
2023-09-12 03:51:28
|
I'd like to statically link in libjxl to cjxl/djxl, but have it dynamically link to system libraries
|
|
2023-09-12 03:51:53
|
is there a way to do that?
|
|
|
_wb_
|
2023-09-13 02:50:46
|
probably there is, but I dunno much at all about build options
|
|
|
Traneptora
|
2023-09-13 08:12:10
|
enabling JPEGXL_STATIC causes it to try to link it all system libraries statically
|
|
2023-09-13 08:12:16
|
including e.g. libgif
|
|
2023-09-13 08:12:43
|
which will fail
|
|
|
Demiurge
|
2023-09-15 05:05:56
|
That's not what splines are intended for
|
|
|
w
|
2023-09-15 05:06:52
|
if that's not what they're for then they're useless
|
|
2023-09-15 05:06:54
|
jxl doa
|
|
|
Quackdoc
|
2023-09-15 05:07:45
|
and wrenches weren't intended for being used as a hammer, never stopped me though xD
|
|
|
Demiurge
|
2023-09-15 05:09:13
|
They are meant for subtracting from an image as a preprocessing step before DCT encoding, for more efficient DCT compression
|
|
2023-09-15 05:10:17
|
To remove some high frequency information from the image before DCT
|
|
2023-09-15 05:11:00
|
But there is no encoder that does that so far
|
|
2023-09-15 05:11:36
|
But it would be a cheap way to get a good increase in quality/bitrate
|
|
|
w
|
2023-09-15 07:13:58
|
so it's useless
|
|
|
_wb_
|
2023-09-15 08:04:54
|
No, it's just not an easy to use coding tool from an encoder pov, so it is currently not used at all by the libjxl encoder. But it could be useful for future encoder improvements, it's mostly a question of coming up with computationally cheap enough detection heuristics.
|
|
|
w
|
2023-09-15 08:11:41
|
could be useful so right now useless
|
|
2023-09-15 08:27:21
|
even for that use case it doesn't seem like a very effective solution
|
|
2023-09-15 08:29:18
|
so to me, the whole idea of having the feature for a possible use case can be extended to more spline features
|
|
2023-09-15 08:29:26
|
but we're left with basic splines so it just looks like an afterthought
|
|
2023-09-15 08:31:16
|
unless it can be demonstrated right now that it's useful
|
|
|
yoochan
|
2023-09-15 08:44:46
|
that would be nice indeed to see a nice demo of splines and patches... but I think the priority is now to push the format itself and bundle a nice libjxl v1.0. Even if these features don't bring as much efficiency as planned, they were designed to future proof the format, and the current efficiency is quite good already
|
|
|
Traneptora
|
|
Traneptora
I'd like to statically link in libjxl to cjxl/djxl, but have it dynamically link to system libraries
|
|
2023-09-15 09:54:51
|
I ended up not finding a way to do this
|
|
2023-09-15 09:55:33
|
so I set the LDFLAGS to include `-Wl,-rpath,/path/to/libjxl/build/` because that way it would link them against their own built libraries and not the system libraries
|
|
2023-09-15 09:55:57
|
ran into this issue when using a modified libjxl that spits out debugging info
|
|
2023-09-15 09:56:13
|
djxl would still use the system libjxl
|
|
|
jonnyawsom3
|
|
w
but we're left with basic splines so it just looks like an afterthought
|
|
2023-09-15 11:06:13
|
I recall some usecases were for hair to keep fine edges, or replacing edges entirely to avoid color bleeding for example
|
|
|
_wb_
|
2023-09-15 02:57:35
|
the splines in jxl are not so basic — they have variable width and color, so that's relatively expressive
|
|
2023-09-15 02:58:10
|
I mean, I don't think you can even do that in svg, can you?
|
|
2023-09-15 02:58:46
|
but they don't include closed shapes and fill, so yeah it's not a substitute for vector graphics in general
|
|
|
jonnyawsom3
|
2023-09-15 05:25:10
|
In that case, you could probably work around the fill by increasing width and overlapping, if you really wanted to make SVG like images
|
|
|
Demiurge
|
|
_wb_
No, it's just not an easy to use coding tool from an encoder pov, so it is currently not used at all by the libjxl encoder. But it could be useful for future encoder improvements, it's mostly a question of coming up with computationally cheap enough detection heuristics.
|
|
2023-09-15 05:36:12
|
I thought a simple spline transform already exists
|
|
2023-09-15 05:42:56
|
It's not meant for vector graphics. It is meant for preprocessing raster graphics to remove high frequency signals before DCT
|
|
2023-09-15 05:43:56
|
JXL is a raster format
|
|
|
_wb_
|
2023-09-15 06:15:51
|
there is no encoder at all for splines in libjxl - the only testing that was done so far were some examples with manually fitted splines, just as a 'demo' that it indeed can work significantly better than DCT on some kinds of image content
|
|
|
jonnyawsom3
|
2023-09-15 06:16:53
|
Huh, are those demos still around?
|
|
|
spider-mario
|
2023-09-15 06:59:01
|
I might have them somewhere
|
|
|
yoochan
|
|
_wb_
I mean, I don't think you can even do that in svg, can you?
|
|
2023-09-15 07:40:23
|
indeed, svg is pure bezier, you can only choose the stroke cap and join shape but not the width along the path
|
|
|
Huh, are those demos still around?
|
|
2023-09-15 07:40:35
|
I'll be curious to see also 🙂
|
|
|
spider-mario
|
2023-09-15 07:53:08
|
the thing is, the form they likely survived as is old commits based on an old revision of libjxl, hardcoding the spline data in C++
|
|
2023-09-15 07:53:21
|
I don’t think they rebase cleanly
|
|
2023-09-15 07:53:38
|
and I’m not sure the bitstream at the time was already finalised
|
|
2023-09-15 07:54:22
|
so some tweaking might be needed to get them to work with current libjxl
|
|
|
Demiurge
|
|
_wb_
there is no encoder at all for splines in libjxl - the only testing that was done so far were some examples with manually fitted splines, just as a 'demo' that it indeed can work significantly better than DCT on some kinds of image content
|
|
2023-09-16 07:13:33
|
Don't you mean when combined with DCT? Also I thought that simple and fast spline transforms for raster images are a thing that already has years of research and prior work
|
|
2023-09-16 07:16:42
|
https://en.wikipedia.org/wiki/Hough_transform
|
|
2023-09-16 07:32:00
|
Maybe I was wrong. Maybe it's not a very common or thoroughly studied topic at all.
|
|
2023-09-16 07:33:44
|
But theoretically there could be a fast and simple algorithm to detect and remove splines from an image as a pre/postprocessing step in JXL to greatly reduce lossy bitrate for free
|
|
|
_wb_
|
2023-09-16 08:02:37
|
I guess all kinds of algorithms exist but we need something that is fast, not some super slow academic research code in Matlab. I dunno if there is something usable already available, I haven't investigated.
|
|
|
Demiurge
|
2023-09-16 05:59:49
|
Yeah, maybe spline detection and subtraction from raster images is less common than I thought
|
|
|
w
|
2023-09-16 06:01:18
|
<a:pensiveWobble:873465538112790569>
|
|
|
yoochan
|
|
_wb_
I guess all kinds of algorithms exist but we need something that is fast, not some super slow academic research code in Matlab. I dunno if there is something usable already available, I haven't investigated.
|
|
2023-09-16 08:43:05
|
I bet that, like for patches, first users of splines will be editors with a knowledge a priori of splines, like a manga editor. A first step could be to include some way (in the api) to send coordinates for the encoder. Borders, text balloons, hairs or pen strokes could be passed
|
|
|
VcSaJen
|
|
yoochan
indeed, svg is pure bezier, you can only choose the stroke cap and join shape but not the width along the path
|
|
2023-09-21 01:15:48
|
I think inkscape can do variable width
|
|
|
yoochan
|
2023-09-21 01:17:47
|
perhaps, but with custom extensions to svg... still waiting for svg 2 spec 😄
|
|
|
lonjil
|
2023-09-21 08:40:23
|
is it possible to store 32 bit samples in a JXL? per channel I mean
|
|
|
jonnyawsom3
|
2023-09-21 08:46:49
|
As 32bit float, yes
|
|
|
_wb_
|
2023-09-21 08:59:24
|
Yes, float32 or uint24 is the maximum you can do per channel.
|
|
|
Nova Aurora
|
2023-09-21 09:01:30
|
SMH no 64-bit color?
|
|
|
Traneptora
|
2023-09-21 09:07:53
|
you can't use int32 in modular mode?
|
|
2023-09-21 09:07:56
|
that's odd
|
|
|
lonjil
|
2023-09-21 09:08:28
|
Is the 24 bit limit for ints so that it can be done with floats or something?
|
|
|
Traneptora
|
2023-09-21 09:09:34
|
I don't think there's any inherent limit in the format with regard to 32-bit ints. It's probably just a libjxl limitation
|
|
|
_wb_
|
2023-09-22 07:22:27
|
libjxl uses float32 internally for everything, that's where the 24-bit limit comes from
|
|
2023-09-22 07:24:59
|
the spec allows up to 31-bit ints, which could in principle be made to work in libjxl since we use int32_t buffers in modular (but convert to float atm because everything else like blending is implemented only with float32 types)
|
|
2023-09-22 07:25:27
|
> bits_per_sample is the number of bits per channel of the original image. The encoding of this value depends on float_sample: for integers the value is in range [1, 31], for floating point the value is in range [5, 32].
|
|
2023-09-22 07:26:13
|
the header syntax allows signaling a bit depth up to 64, but that would be out of spec if you go above 31 for int and above 32 for float
|
|
2023-09-22 07:27:40
|
so we _could_ in the future extend the spec and have a new profile/level that goes up to 64-bit, which would require implementing modular in int64_t and using double buffers, if the need would arise
|
|
2023-09-22 07:28:13
|
but at the moment the spec limits are int31 and float32, and the libjxl implementation limits are int24 and float32
|
|
2023-09-22 07:31:51
|
the use cases where you need more precision than that are quite limited and you can of course always also just use more channels and manually split the precision bits. That's why we chose to limit it to what can be conveniently done with 32-bit buffers — having additional code paths for 64-bit would be kind of overkill and unnecessary code complication/binary size bloat imo.
|
|
|
DZgas Ж
|
2023-09-22 08:41:04
|
Noise generation is not a one seed for noise??
|
|
|
_wb_
|
2023-09-22 11:10:00
|
this is weird — noise is supposed to be deterministic
|
|
2023-09-22 11:10:52
|
<@179701849576833024> <@604964375924834314> any idea what is going on there?
|
|
2023-09-22 11:11:13
|
does this also happen at -e 7 ? could be a bug only in e8+
|
|
|
spider-mario
|
2023-09-22 01:40:55
|
it could be that the noise is a red herring
|
|
2023-09-22 01:41:12
|
does it not happen at all without it?
|
|
|
jonnyawsom3
|
2023-09-22 01:44:26
|
The first and second I could see being slight error in the noise, but the third being almost 1/3 larger? Hmm...
|
|
|
|
Mrtt
|
2023-09-22 03:13:43
|
If noise is generated on multiple threads, the sequences may not be the same on each runs, either each thread should have his own noise generator with the same seed or the behaviour starts to be non determinist
|
|
|
|
veluca
|
2023-09-22 03:23:34
|
noise generation is (supposed to be) 100% deterministic, it uses a written-in-the-spec RNG and a written-in-the-spec seed
|
|
|
DZgas Ж
|
|
The first and second I could see being slight error in the noise, but the third being almost 1/3 larger? Hmm...
|
|
2023-09-22 09:28:14
|
the first and second files are a problem. With identical encoding parameters use the one file, the result should always be identical byte by byte. when using the noise generation parameter, this is not observed
|
|
|
spider-mario
|
2023-09-22 09:29:23
|
but only then?
|
|
|
DZgas Ж
|
|
spider-mario
but only then?
|
|
2023-09-22 09:29:38
|
?
|
|
|
spider-mario
|
|
DZgas Ж
?
|
|
2023-09-22 09:30:28
|
you say “when using the noise generation parameter, this is not observed”; I am wondering whether, when not using the noise generation parameter, it is always observed
|
|
2023-09-22 09:30:51
|
i.e. is it only with the noise generation parameter that there is this anomaly
|
|
2023-09-22 09:31:23
|
(not trying to minimise the issue, just to get some clue as to what could be causing it)
|
|
|
DZgas Ж
|
2023-09-22 09:32:37
|
oh
|
|
2023-09-22 09:33:10
|
having started doing tests with a other images, all the problems suddenly disappeared <:monkaMega:809252622900789269>
|
|
|
spider-mario
you say “when using the noise generation parameter, this is not observed”; I am wondering whether, when not using the noise generation parameter, it is always observed
|
|
2023-09-22 09:35:25
|
here is an image with which I observe obvious problems, perhaps problems in it.
-e 9 -d 2.85 --noise=1
|
|
2023-09-22 09:38:28
|
I have done tests compression on 10 other images, this problem is not observed anywhere
|
|
|
spider-mario
i.e. is it only with the noise generation parameter that there is this anomaly
|
|
2023-09-22 09:40:24
|
Yes. only when the noise parameter is activated. in normal cases, everything is fine
|
|
2023-09-22 09:41:05
|
and now it also turned out that I was lucky, I tried the noise parameter for the first time, and it broke in my first picture
|
|
|
monad
|
2023-09-23 01:18:21
|
Might need more context to reproduce. I'm always getting 6779 bytes with my build of 97e5ab09.
|
|
|
nec
|
2023-09-24 04:14:02
|
Sometimes when I encode such patterns, I get a kind of artifacts. It appears at 5-9 efforts, so I suppose it's caused by gabor-like transform. It reduces filesize a lot, but similarly a huge ssimulacra score drop in such particular cases. Stats for a full image at -q 85, -e 4 728kb 82.34 ssimu, -e 5 404kb 67.95, -e 9 407kb 69.65. It's rather rare, but also easily perceivable, due to big value changes at corners, and sometimes sides of 32x blocks. Is it possible to improve or predict it? A crop for demonstration.
|
|
|
Traneptora
|
2023-09-24 07:28:11
|
Disabling gaborish is a good idea for checkerboard-like scenarios
|
|
2023-09-24 07:28:18
|
such as manga scans
|
|
2023-09-24 07:28:37
|
the encoder won't do that automatically - that's something where there's room for improvement
|
|
2023-09-24 07:28:52
|
you can disable it manually in cjxl with --gaborish=0
|
|
|
fab
|
2023-09-24 09:35:55
|
D 5.404 probably need JPEG XL 2 with traneptora encoder
|
|
2023-09-24 09:36:21
|
And the processing time is something that doesn't know
|
|
2023-09-24 09:36:38
|
Because they rely on heuristics
|
|
|
nec
|
2023-09-24 12:11:39
|
I've tried --gaborish=0 and it might be slightly better for such patterns according to ssimulacra score and filesize, but has no effect on these grid-like distortions. So maybe it's chroma from luma that is also added at effort 5 that causes it. Here is a pixel value difference map and you can see that the strongest distortions are concentrated at the corners of 32x32 blocks. It's fixed by higher bpp, that happens by default with -e 1-4 or when used with -q 92-93 and -e 5-9. I'm not sure if it's even a problem, because -e 4 -q 60 provides similar size, but disastrous quality below 50 ssimulacra. There is no even a choice between -e 4 -q 60 at 399kb and -e 5 -q 85 at 404kb. It's just that it would be perfect if 5-9 efforts would spend more bits in such 0.1-1% exceptional situations to give something around 80-82 ssimulacra score.
|
|
|
fab
|
|
nec
I've tried --gaborish=0 and it might be slightly better for such patterns according to ssimulacra score and filesize, but has no effect on these grid-like distortions. So maybe it's chroma from luma that is also added at effort 5 that causes it. Here is a pixel value difference map and you can see that the strongest distortions are concentrated at the corners of 32x32 blocks. It's fixed by higher bpp, that happens by default with -e 1-4 or when used with -q 92-93 and -e 5-9. I'm not sure if it's even a problem, because -e 4 -q 60 provides similar size, but disastrous quality below 50 ssimulacra. There is no even a choice between -e 4 -q 60 at 399kb and -e 5 -q 85 at 404kb. It's just that it would be perfect if 5-9 efforts would spend more bits in such 0.1-1% exceptional situations to give something around 80-82 ssimulacra score.
|
|
2023-09-24 01:33:33
|
They won't
|
|
2023-09-24 01:33:56
|
In this way we would have dinosaurs
|
|
|
OkyDooky
|
2023-09-24 07:36:45
|
https://github.com/mastodon/mastodon/issues/20255#issuecomment-1557704455
|
|
|
jonnyawsom3
|
2023-09-25 12:31:17
|
I remember seeing that thread months ago, not promising for JXL unfortunately
|
|
|
DZgas Ж
|
|
monad
Might need more context to reproduce. I'm always getting 6779 bytes with my build of 97e5ab09.
|
|
2023-09-25 08:30:59
|
I used the last build that I downloaded for windows x64 on the same day https://artifacts.lucaversari.it/libjxl/libjxl/latest/
|
|
|
DZgas Ж
Noise generation is not a one seed for noise??
|
|
2023-09-26 04:57:06
|
|
|
|
_wb_
|
|
DZgas Ж
|
|
2023-09-26 06:57:26
|
this nondeterministic encoding is weird — so you can reliably get different encode results on the same call, but only for one specific input image?
|
|
2023-09-26 06:57:52
|
what is the format of this input image? do you still get the problem if you first convert it to some other format like ppm?
|
|
2023-09-26 06:58:36
|
could you also try encoding with a single thread to see if it's related to that?
|
|
|
DZgas Ж
|
2023-09-26 08:33:17
|
the image itself, with which I get such results https://discord.com/channels/794206087879852103/794206170445119489/1154893743774765196
|
|
|
_wb_
could you also try encoding with a single thread to see if it's related to that?
|
|
2023-09-26 08:35:17
|
the same problems with 1 thread
|
|
|
_wb_
|
2023-09-26 08:36:42
|
Does it also happen at e7?
|
|
|
DZgas Ж
|
|
_wb_
Does it also happen at e7?
|
|
2023-09-26 08:38:03
|
no, it only on e8 and e9
|
|
2023-09-26 08:43:18
|
perhaps i need to download some ready-made package of photos for compression and check each one there
|
|
2023-09-26 09:01:03
|
I took a classic collection of photos https://github.com/MohamedBakrAli/Kodak-Lossless-True-Color-Image-Suite , and found that the photos are numbered:
1 2 3 4 5 7 8 9 10 11 12 14 15 16 17 18 19 21 22 23 24
they have problems, their file size is always different. But the:
6 13 20 always identical
|
|
|
yoochan
|
2023-09-26 10:55:49
|
I can reproduce on Ubuntu : ```cjxl -e 9 -d 2.85 --noise=1 --num_threads=1 3.png 3.jxl
JPEG XL encoder v0.9.0 17c4104e [AVX2]
```
|
|
2023-09-26 10:56:17
|
gives different sizes each time :
```Compressed to 84372 bytes (1.717 bpp).
Compressed to 88631 bytes (1.803 bpp).
Compressed to 88558 bytes (1.802 bpp).
``` etc.
|
|
2023-09-26 10:59:57
|
and I confirm that image 6.png gives the same number of bytes (didn't compared the hashes yet)... <@226977230121598977> you are a good bug spotter 😄
|
|
|
_wb_
|
2023-09-26 11:38:04
|
must be something nondeterministic in the butteraugli iterations then?
|
|
2023-09-26 11:38:55
|
but what could cause nondeterministic behavior? uninitialized memory?
|
|
2023-09-26 11:39:49
|
this is potentially a security bug so I think we should investigate with some priority...
|
|
2023-09-26 11:47:14
|
the encoded images decode to different pixels too, so different quantization choices are being made, not just different entropy coding choices
|
|
2023-09-26 11:48:38
|
without --noise=1 the filesizes are a lot smaller too, so I guess there is something broken in the combination of noise and butteraugli iters
|
|
|
DZgas Ж
|
|
yoochan
and I confirm that image 6.png gives the same number of bytes (didn't compared the hashes yet)... <@226977230121598977> you are a good bug spotter 😄
|
|
2023-09-26 11:49:11
|
🥴 you know, I use jpeg XL once every half a year, and I always find some problems
|
|
|
_wb_
|
2023-09-26 11:49:47
|
maybe the butteraugli iterations are driving up the quality, trying to compensate for the noise, and also the encoder-side noise generation isn't properly initialized?
|
|
|
DZgas Ж
|
2023-09-26 11:50:29
|
as far as I can understand, the development team does not have any staff of testers who would only do every day that they compressed different photos and looked at them
|
|
|
DZgas Ж
all the problems are completely identical. on all parameters from 5 to 9.
By the way, now I can say that the problem is definitely not in the red channel, because after extracting it, I saw that it was the red color that worked almost perfectly. While all other colors behave terribly in the image where there is an overabundance of red.
original | old | new
1. color correction
2. only red channel
3. all channels except red
|
|
2023-09-26 11:52:50
|
<@1051137277813870592>by the way, I haven't rechecked this problem for half year
|
|
2023-09-26 11:54:03
|
https://discord.com/channels/794206087879852103/794206170445119489/1107299655655641188 as well as the "rows" of pictures that I personally chose for noticeable artifacts that should not be
|
|
|
yoochan
I can reproduce on Ubuntu : ```cjxl -e 9 -d 2.85 --noise=1 --num_threads=1 3.png 3.jxl
JPEG XL encoder v0.9.0 17c4104e [AVX2]
```
|
|
2023-09-26 11:58:57
|
I had an assumption that other people don't see this bug just because of AVX. that everything is fine with them, and the problem is precisely in some SSE sequences that are caused by some inconspicuous bug. But it's good that it's something more obvious
|
|
|
_wb_
|
2023-09-26 12:00:28
|
basically e8/e9 are in general not well tested (for lossy), especially in combination with nonstandard options
|
|
|
DZgas Ж
|
2023-09-26 12:00:36
|
I am wondering if it is realistic to create completely identical conditions on a virtual machine in order to record a list of all commands executed in assembler when encoding an image. that would then impose 2 lists of all executed commands to find the moment of divergence in coding
|
|
2023-09-26 12:00:53
|
But most likely the error can be found easier
|
|
|
_wb_
|
2023-09-26 12:11:22
|
yeah, something in the noise generation is not properly working when decoding is done by the encoder in the adaptive quantization passes — I'll just disable noise generation there since even if it would work properly, it would not be useful imo (noise will just lower the BA score and make it bump up the quality, while I think it makes more sense to let it do just the same thing as without noise)
|
|
2023-09-26 12:25:43
|
This should fix it: https://github.com/libjxl/libjxl/pull/2825
|
|
|
OkyDooky
|
2023-09-26 07:17:49
|
So is there any news about chromium supporting jpeg xl?
|
|
|
gb82
|
2023-09-26 07:22:40
|
not afaik
|
|
|
OkyDooky
|
2023-09-26 07:30:25
|
Whats firefox waiting for with their neutrality? Safari has it on by default
|
|
2023-09-26 07:31:02
|
And if apple adopts something new faster than anyone else then that sure means something
|
|
2023-09-26 07:31:19
|
Yeah, wouldn't count much on Google to make the next move tbh
|
|
2023-09-26 07:32:18
|
Maybe when cjxl 1.0 is out and AVIF still has barely any adoption (likely) and they don't have an alternative to it.
|
|
|
Cacodemon345
|
2023-09-26 07:55:02
|
I mean Apple went for JPEG 2000, which failed hard ultimately.
Whether JPEG XL becomes the next JPEG 2000 in terms of that is the real concern at this point.
|
|
|
lonjil
|
2023-09-26 08:00:59
|
pretty sure more websites are already shipping JXL than ever did J2000
|
|
|
Cacodemon345
|
2023-09-26 09:10:23
|
Does Safari support JPEG XL animation though?
|
|
|
OkyDooky
|
2023-09-26 10:14:40
|
That's a pretty safe deadline to aim for, in my opinion, since you can have reasonable trust that you aren't going to have any major issues, initially, and that things will only get better.
In the mean time, Thorium's developer has a repo for the patch that it uses to retain and maintain JXL support. It's likely that it, or parts of it, can be used in other Chromium based browsers. If we can grt a number of those to merge the patch, then it'll be "use literally any browser but Chrome and it'll work," which would be an acceptable point of leverage, I think.
|
|
|
_wb_
|
|
Cacodemon345
Does Safari support JPEG XL animation though?
|
|
2023-09-27 05:40:07
|
Yes, that seems to work fine. Not that I think this is a major selling point for JXL — animation is something a video codec like AVIF is inherently better at...
|
|
|
Traneptora
|
2023-09-27 12:19:36
|
I'm attempting to run `./ci.sh opt` in libjxl, but it returns an error when building doc
|
|
2023-09-27 12:19:49
|
```
FAILED: CMakeFiles/doc /home/leo/Programs/libjxl/bench/third_party/libjxl/build/CMakeFiles/doc
cd /home/leo/Programs/libjxl/bench/third_party/libjxl/build && /usr/bin/cmake -E make_directory /home/leo/Programs/libjxl/bench/third_party/libjxl/build && /usr/bin/doxygen /home/leo/Programs/libjxl/bench/third_party/libjxl/build/Doxyfile.doc
error: Specified markdown mainpage 'README.md' does not exist
```
|
|
2023-09-27 12:20:29
|
I'm not sure why, cause README.md exists in the home directory
|
|
|
|
runr855
|
2023-09-27 02:47:25
|
Another reason it's great that Apple has implemented libjxl, is the amount of vulnerability testing which it will receive. iOS especially is a huge target for malicious actors
|
|
|
OkyDooky
|
2023-09-27 06:25:18
|
Would you mind sharing the link with me or posting it on this issue\: https\://github.com/uazo/bromite-buildtools/issues/336
More options for patches might make it easier for the developer to include it.
(<@456226577798135808>)
|
|
2023-09-27 06:27:32
|
So, would that mean that AVIF would be a better choice for replacing GIF? If it is better at animation and low BPP, then that kind of sums up the advantages for using GIF over JPG have often been.
(<@794205442175402004>)
|
|
|
Demiurge
|
2023-09-27 06:33:05
|
That's what it means
|
|
|
username
|
|
Would you mind sharing the link with me or posting it on this issue\: https\://github.com/uazo/bromite-buildtools/issues/336
More options for patches might make it easier for the developer to include it.
(<@456226577798135808>)
|
|
2023-09-27 06:33:29
|
https://github.com/OpenMandrivaAssociation/chromium-browser-stable/blob/master/chromium-restore-jpeg-xl-support.patch
|
|
|
Demiurge
|
2023-09-27 06:33:50
|
Video codes are better at animation although JXL is still good at artificial graphics
|
|
2023-09-27 06:34:11
|
Like throbbers
|
|
2023-09-27 06:34:20
|
And sprites
|
|
|
Fraetor
|
|
So, would that mean that AVIF would be a better choice for replacing GIF? If it is better at animation and low BPP, then that kind of sums up the advantages for using GIF over JPG have often been.
(<@794205442175402004>)
|
|
2023-09-27 08:12:35
|
For most longer gif type use cases, AV1 will still be better than AVIF due to better interframe compression. The main disadvantage is that is can't be put in an <img> tag. (Except in Safari IIRC.)
|
|
|
lonjil
|
2023-09-27 08:18:02
|
I thought any valid AV1 stream could be put in an AVIF file
|
|
|
Fraetor
|
2023-09-27 08:33:13
|
Maybe I'm misunderstanding it. I thought there were some limitations imposed by libavif?
|
|
2023-09-27 08:33:49
|
Like it was intra-only?
|
|
|
lonjil
|
2023-09-27 08:39:50
|
pretty sure that is not the case
|
|
|
Fraetor
|
2023-09-27 08:45:23
|
That's nice then. Go AVIF for animation!
|
|
|
lonjil
|
2023-09-27 08:46:11
|
really they should just allow webm in img tags
|
|
|
Fraetor
|
2023-09-27 08:46:40
|
Yeah.
|
|
|
OkyDooky
|
2023-09-27 10:32:24
|
Thanks. I've been mulling around the idea of an image board, but it would auto-convert uploads to more modern codecs (maybe in-browser like jpegxl.io does). So, pretty much Everything-\>JXL, but it would allow AVIF to pass through. But, this makes me think GIF-\>AVIF and JPG/PNG/Whatever-\>JXL would make sense.
(<@1028567873007927297>)
|
|
2023-09-27 10:32:48
|
Thanks, I'll post it to the issue tracker.
(<@245794734788837387>)
|
|
|
Demiurge
|
2023-09-28 12:49:16
|
JXL should still theoretically be better for certain types of animations that are less efficient to compress with video/DCT codecs
|
|
2023-09-28 12:49:58
|
But in practice right now libjxl isn't as efficient as some gif optimizers are
|
|
2023-09-28 12:50:33
|
Even though jpegxl can probably be more efficient than GIF theoretically.
|
|
|
jonnyawsom3
|
2023-09-28 12:58:38
|
Namely artificial images, and the WebP pallete ordering along with possibly bitpacking with modular trickery should close the gap
|
|
|
username
|
2023-09-28 12:59:41
|
also for animations aren't blending modes supported but libjxl currently doesn't make use of them when encoding?
|
|
|
Demiurge
|
2023-09-28 01:27:20
|
The libjxl encoding tools don't actually take full advantage of what the format is capable of. There is a lot of room for improvement and optimization, but image compression wizards would actually have to get interested in hacking on the tools, and it probably doesn't help that they're written in C++ instead of C...
|
|
2023-09-28 01:27:51
|
And C++ is a very painful language to read...
|
|
2023-09-28 01:28:57
|
Makes it harder for outsiders to get involved compared to C I believe
|
|
|
BlueSwordM
|
|
lonjil
I thought any valid AV1 stream could be put in an AVIF file
|
|
2023-09-28 03:26:22
|
Yes.
|
|
|
OkyDooky
|
2023-09-28 06:14:23
|
I didn't realize he made that project a separate repo. Probably. But, I think it still makes sense here, while this is still the actively used browser. I'll give the other one a look.
(<@456226577798135808>)
|
|
|
Demiurge
|
2023-09-28 07:04:50
|
C++ is probably the worst language to read someone else's code in, when you think about it.
|
|
2023-09-28 07:05:27
|
Google uses it a lot lately though instead of something like Go
|
|
2023-09-28 07:09:54
|
Because it's one of those stupid "corporate" languages that attract a lot of attention from non-programmers and all of the crappy college courses for programming 101 tend to teach their students C++ because of how hip and happening it is perceived to be.
|
|
2023-09-28 07:11:43
|
So there is a surplus of young and naive newbies fresh off the college assembly line who know how to program very poorly in C++
|
|
2023-09-28 07:12:01
|
And the cycle of stupidity continues...
|
|
|
w
|
2023-09-28 07:12:27
|
that's oop for you
|
|
|
Demiurge
|
2023-09-28 07:12:54
|
Yes, you can replace C++ for OOP and everything I said would still apply
|
|
2023-09-28 07:14:00
|
It's been the corporate hot sensation for as long as the buzzword was invented, and I'm pretty sure it was designed to make programming harder and less enjoyable on purpose
|
|
2023-09-28 07:17:56
|
Rather than doing things in the most obvious and straightforward manner, try to think of arbitrary layers of abstraction you can apply, without thinking of whether it actually will serve a useful purpose to you later on in development.
|
|
2023-09-28 07:18:26
|
Think of ways to overcomplicate your software without thinking about whether you need that or not
|
|
|
lonjil
|
2023-09-28 07:18:51
|
OOP is great
|
|
|
w
|
2023-09-28 07:18:53
|
at my corporate job i have to use c++
|
|
2023-09-28 07:18:57
|
at some point i stopped caring
|
|
|
Demiurge
|
2023-09-28 07:18:59
|
Or what purpose it serves. Send messages to objects because lol why not it's so cool
|
|
|
lonjil
|
2023-09-28 07:19:18
|
And it was invented decades before it became hot
|
|
2023-09-28 07:19:50
|
And the inventor specifically says that C++ is not what he had in mind when inventing OOP.
|
|
|
Demiurge
|
2023-09-28 07:20:26
|
Look I can do everything by sending messages to objects. Don't ask me why, I do it for the lulz
|
|
|
lonjil
|
2023-09-28 07:20:55
|
Because it's a useful abstraction model
|
|
|
Demiurge
|
2023-09-28 07:21:02
|
Is it always?
|
|
|
Cacodemon345
|
|
Demiurge
Look I can do everything by sending messages to objects. Don't ask me why, I do it for the lulz
|
|
2023-09-28 07:21:10
|
Since when Objective-C was a good example?
|
|
|
lonjil
|
2023-09-28 07:21:11
|
What does that mean?
|
|
|
Demiurge
|
2023-09-28 07:21:12
|
For everything all the time forever?
|
|
|
Cacodemon345
|
2023-09-28 07:21:46
|
IMO C++ with OOP works really really well for scriptable and moddable game engines.
|
|
|
lonjil
|
2023-09-28 07:21:48
|
Most programs and libraries will make use of multiple kinds of abstraction
|
|
|
Demiurge
|
2023-09-28 07:22:00
|
Having a useful abstraction model without knowing what the use for it is, is useless.
|
|
2023-09-28 07:22:19
|
Why abstract things all the time when there isn't a reason to?
|
|
2023-09-28 07:23:09
|
Sometimes all you want is to call a function, without allocating an object for it
|
|
|
lonjil
|
2023-09-28 07:23:23
|
Yes?
|
|
2023-09-28 07:23:27
|
You can do that
|
|
|
Demiurge
|
2023-09-28 07:23:40
|
Sometimes it makes more sense to just do what you are trying to do without all this useless OOP boilerplate
|
|
|
w
|
2023-09-28 07:24:00
|
yeah you can do fully functional in c++ but it's ugly as hell
|
|
|
lonjil
|
2023-09-28 07:24:13
|
Consider that your issues are with poorly designed languages, not with the OOP model.
|
|
2023-09-28 07:24:38
|
OOP isn't even incompatible with functional programming.
|
|
|
Demiurge
|
2023-09-28 07:25:39
|
Fair. But I feel like OOP is a dogma and a buzzword that gets dogmatically applied to everything when it doesn't always serve a rational purpose. That's why we have poorly designed languages
|
|
|
w
|
2023-09-28 07:25:51
|
i dislike both
|
|
2023-09-28 07:26:04
|
i like my functional bug free code
|
|
|
Demiurge
|
2023-09-28 07:26:49
|
I think college should teach test driven development instead of whatever language is "hot"
|
|
|
lonjil
|
2023-09-28 07:27:22
|
Many universities are still using Scheme lmao
|
|
|
Demiurge
|
2023-09-28 07:27:28
|
And they should teach low level languages so you aren't sheltered from what the computer is actually doing
|
|
|
lonjil
|
2023-09-28 07:27:48
|
And the Java courses use ancient Java
|
|
2023-09-28 07:27:55
|
They don't do anything hot
|
|
2023-09-28 07:28:12
|
My girlfriend had to learn C89 in college like 3 years ago.
|
|
|
Demiurge
|
2023-09-28 07:29:05
|
New students should learn about pointers and memory allocation so they are familiar with what they are getting themselves into. They shouldn't be sheltered from what the computer actually sees behind the scenes.
|
|
|
w
|
2023-09-28 07:29:25
|
y'all goign to the wrong universities
|
|
|
Demiurge
|
2023-09-28 07:29:45
|
Hiding the low level stuff doesn't make it go away, it just makes students less prepared
|
|
|
lonjil
|
2023-09-28 07:29:57
|
Less prepared for what?
|
|
2023-09-28 07:30:05
|
Writing JavaScript for websites?
|
|
|
Demiurge
|
2023-09-28 07:30:20
|
For inevitable bugs and problems in the low level implementation.
|
|
|
Cacodemon345
|
2023-09-28 07:30:45
|
System-level programming is nowadays a different thing.
|
|
|
w
|
2023-09-28 07:30:58
|
yeah they should be teaching low-code/no-code
|
|
2023-09-28 07:31:10
|
like how to use chatgpt
|
|
|
Demiurge
|
2023-09-28 07:31:53
|
Hmm, well I guess some people are trained in JavaScript without any expectations of being able to understand how any of that even is possible behind the scenes... and when their web browser crashes it's all magic to them
|
|
|
w
|
2023-09-28 07:32:09
|
even learning those "behind the scenes" is flawed because those often change aswell
|
|
|
Demiurge
|
2023-09-28 07:32:21
|
Not really...
|
|
|
w
|
2023-09-28 07:32:27
|
for my university the "language" was always an afterthought
|
|
|
Demiurge
|
2023-09-28 07:32:50
|
The low level stuff has not changed at all for a long long time and is not expected to change for an even longer time
|
|
|
w
|
2023-09-28 07:33:45
|
for my school's systems course the toy lang changed from x86_64 to arm
|
|
2023-09-28 07:35:15
|
for the one of the three computery courses for a CS degree
|
|
|
Demiurge
|
2023-09-28 07:35:15
|
Even if the instruction set changes, most things are still the same too...
|
|
|
lonjil
|
2023-09-28 07:35:31
|
Soon we'll be seeing computers with magic pointers that know whether they were acquired legitimately and know how they're allowed to be used.
|
|
|
Demiurge
|
2023-09-28 07:35:57
|
They know if you've been bad or good so be good for goodness sake
|
|
|
lonjil
|
2023-09-28 07:36:31
|
Also I want to point out that pointers in languages like C are not the same as pointers on a hardware level.
|
|
|
Demiurge
|
2023-09-28 07:36:39
|
All your other knowledge about low level programming will still apply though when that happens.
|
|
2023-09-28 07:36:59
|
With only the addition of magic pointer rules.
|
|
|
w
|
2023-09-28 07:37:21
|
meh i dont think it's worth it
|
|
|
Demiurge
|
2023-09-28 07:37:43
|
And it will be useful to know how it actually works underneath regardless of what language you like to use
|
|
2023-09-28 07:38:20
|
It will be easier to understand why things break when there's a problem.
|
|
2023-09-28 07:38:57
|
If the implementation is "magic" then you're just helplessly lost as to why it doesn't always work
|
|
|
Quackdoc
|
2023-09-28 07:44:31
|
I still dont understand oop vs non oop, i've tried and it just doesnt click lmao
|
|
|
Demiurge
|
2023-09-28 07:45:42
|
I don't think it is supposed to... A friend of mine and I kinda suspect it's designed to be deliberately obscure and take the fun out of programming...
|
|
|
w
|
2023-09-28 07:45:42
|
functional takes a different kind of thinking
|
|
2023-09-28 07:46:05
|
(true functional)
|
|
|
Quackdoc
|
2023-09-28 07:46:13
|
I dunno, to me it's like, I just tell pc what I want it to do and it do it, modelling and stuff is confusing to me
|
|
|
w
|
2023-09-28 07:46:25
|
you can have object modeling in functional
|
|
|
Demiurge
|
2023-09-28 07:47:03
|
Kind of how a lot of stuff these days is designed to be intentionally ugly, like corporate globohomo art style.
|
|
|
Quackdoc
I dunno, to me it's like, I just tell pc what I want it to do and it do it, modelling and stuff is confusing to me
|
|
2023-09-28 07:47:41
|
That does seem the most natural and obvious thing to do...
|
|
2023-09-28 07:48:30
|
Just tell it what to do... I think they call that "procedural" but it's actually more like "normal"
|
|
|
w
|
2023-09-28 07:49:41
|
in oop it's like you turn on your pc
|
|
2023-09-28 07:49:45
|
in functional you get a new pc that's turned on
|
|
2023-09-28 07:50:32
|
mutation is the core of oop and i dont like it
|
|
|
Demiurge
|
2023-09-28 07:50:47
|
Define a class, allocate an object, and pass a message to it telling it to turn itself on.
|
|
2023-09-28 07:51:08
|
Lots of pointless busywork.
|
|
2023-09-28 07:51:17
|
Maybe that's what it was invented for.
|
|
2023-09-28 07:51:23
|
To create jobs.
|
|
|
w
|
2023-09-28 07:51:44
|
well it's more intuitive since that's how humans normally think
|
|
|
Demiurge
|
2023-09-28 07:52:01
|
That's what they say and yet I never normally think like that lol
|
|
|
lonjil
|
2023-09-28 07:52:26
|
I get the feeling that you've never worked on anything non-trivial.
|
|
2023-09-28 07:53:01
|
also why do you use the term 'globohomo'?
|
|
|
Demiurge
|
2023-09-28 07:53:06
|
I think, "remember what I tell you and do it in this order under these conditions..."
|
|
|
Quackdoc
|
2023-09-28 07:53:17
|
I think the idea of bassing things on human intuation is idiotic and narccisitic. somethings click with people better, its as simple as that, I for one literally can't program in python for the life of me and it's not like I havent tried
|
|
2023-09-28 07:53:31
|
however a lot of people find python and that style of coding very intuitive
|
|
|
Demiurge
|
2023-09-28 07:53:39
|
It stands for globally homogenized, it's the name of the grotesque art style on most Android phones
|
|
|
lonjil
|
2023-09-28 07:53:50
|
🤔
|
|
2023-09-28 07:54:01
|
*really*
|
|
|
w
|
2023-09-28 07:54:15
|
that's not a real word
|
|
|
Demiurge
|
2023-09-28 07:54:49
|
https://knowyourmeme.com/memes/subcultures/corporate-art-style
|
|
|
Quackdoc
|
2023-09-28 07:55:29
|
it's a term thats been around for a long time, globohomo is terrible and I myself hate it
|
|
2023-09-28 07:55:44
|
I hate how deeply associated with material UI it has become since I really like material UI design
|
|
|
lonjil
|
2023-09-28 07:56:31
|
it looks like a term intentionally designed to look like something referring to globalism and homosexuality.
|
|
|
w
|
2023-09-28 07:56:51
|
woke brain
|
|
|
Quackdoc
|
|
lonjil
it looks like a term intentionally designed to look like something referring to globalism and homosexuality.
|
|
2023-09-28 07:57:01
|
thats just silly
|
|
2023-09-28 07:57:31
|
here in canada we call homogenized milk homo milk all the time
|
|
|
w
|
2023-09-28 07:57:42
|
yeah homo to me was homogeneous first
|
|
2023-09-28 07:57:59
|
that's what the homo in homosexual is anyway
|
|
|
Quackdoc
|
2023-09-28 07:58:05
|
for me it's just short for anything with homo*
|
|
|
Demiurge
|
2023-09-28 07:58:29
|
Even their skin tones are blue and pink and other neon colors like that so as not to possibly make anyone feel excluded or unsafe.
|
|
|
lonjil
|
2023-09-28 07:58:32
|
people do use "homogenized" for terrible racist stuff when talking about globalism, so either way it looks bad
|
|
|
Quackdoc
|
2023-09-28 07:59:41
|
so call them a dipshit
|
|
2023-09-28 08:00:04
|
equating every homo* to derogatory nature is silly
|
|
2023-09-28 08:00:26
|
though globohomo is intented as a disparaging term
|
|
|
Demiurge
|
2023-09-28 08:00:54
|
I think we can all at least agree that it's a pretty hideous art style at least without getting politically charged. Personally I don't like talking about politics unless it's mocking the whole idea entirely and how ridiculous and artificial and fake all the supposed political issues of our time actually are
|
|
|
lonjil
|
|
Demiurge
|
2023-09-28 08:01:19
|
And how ridiculous it is that people actually argue and break friendships apart over something as fake as politics
|
|
|
Quackdoc
|
2023-09-28 08:01:59
|
I never used to mind discussing poltics but people have taken even the smallest of things to absurd levels of excientment
|
|
|
Demiurge
|
2023-09-28 08:03:56
|
Hold on, I think I detect a controversial thought. Let me check social media so I know how outraged I'm supposed to be right now... ah, never mind, you're good. For now.
|
|
|
lonjil
|
|
Demiurge
And how ridiculous it is that people actually argue and break friendships apart over something as fake as politics
|
|
2023-09-28 08:04:03
|
politics has real impacts on people's actual lives
|
|
|
Demiurge
|
|
lonjil
politics has real impacts on people's actual lives
|
|
2023-09-28 08:04:53
|
Mostly because people allow themselves to care or pay attention to these vampires that use politics as a way to steal our energy.
|
|
2023-09-28 08:05:16
|
But that's just been my experience.
|
|
|
lonjil
|
2023-09-28 08:05:52
|
well, when a politician promises to make my life worse, and lots of people support them, that will make me upset, for I hope understandable reasons
|
|
|
Demiurge
|
2023-09-28 08:06:21
|
I got fatigued of getting upset over every politician that does that.
|
|
2023-09-28 08:06:48
|
And eventually decided to stop giving them my precious attention and energy
|
|
|
Quackdoc
|
|
Demiurge
Hold on, I think I detect a controversial thought. Let me check social media so I know how outraged I'm supposed to be right now... ah, never mind, you're good. For now.
|
|
2023-09-28 08:06:58
|
lol for real
|
|
|
lonjil
|
2023-09-28 08:07:04
|
who said anything about being upset *at* a politician
|
|
|
Demiurge
|
2023-09-28 08:07:17
|
Truth is every politician promises to make our lives worse and they need us more than we need them
|
|
|
lonjil
|
2023-09-28 08:07:21
|
how about being upset with the real shit that actually affects my daily life
|
|
|
Demiurge
|
2023-09-28 08:07:44
|
They need us to care about them and think they're important...
|
|
2023-09-28 08:09:09
|
I am still upset all the time with politics and government making my life personally harder on a daily basis but I really try to avoid letting them steal my psychic energy by wasting brain cells thinking about them or reading the news these days.
|
|
2023-09-28 08:09:56
|
There's nothing I can actually do about it as long as everyone still believes that they are their rightful lords
|
|
2023-09-28 08:10:22
|
And that they are important and are supposed to run their lives
|
|
2023-09-28 08:10:56
|
It's not my government and there really is nothing I can do about them other than try my best to ignore them
|
|
2023-09-28 08:11:44
|
Especially since everyone else still thinks we need our exalted rulers
|
|
2023-09-28 08:12:53
|
No matter how much they lie about things or betray the supposed agreement or contract we SUPPOSEDLY have with them
|
|
2023-09-28 08:13:22
|
Without any consequences of course
|
|
2023-09-28 08:14:55
|
So the sooner you accept that it's not your problem, they don't work for you and there's nothing you can do except stop giving them energy, the better I think...But that's just my opinion right now.
|
|
|
w
|
2023-09-28 08:15:16
|
doomer brain
|
|
2023-09-28 08:15:25
|
politics is important
|
|
|
lonjil
|
2023-09-28 08:15:46
|
I have to wonder whether the things that are making my life worse are quite different from the things making your life worse.
|
|
|
Demiurge
|
|
w
politics is important
|
|
2023-09-28 08:16:17
|
Yeah well I doubt that's a convincing enough argument to make me reconsider...
|
|
|
w
|
2023-09-28 08:16:51
|
policy is important
|
|
|
Demiurge
|
|
lonjil
I have to wonder whether the things that are making my life worse are quite different from the things making your life worse.
|
|
2023-09-28 08:18:48
|
People usually have different things bothering them, and that's fine. I don't judge or resent you if you have vastly different goals and ideals.
|
|
2023-09-28 08:20:51
|
Although... if your goal is to become a politician, then maybe I'll judge you a little for that :)
|
|
2023-09-28 08:21:24
|
People who are drawn to power are least fit to wield it
|
|
|
w
|
2023-09-28 08:22:41
|
but if you want to change policy...
|
|
|
Demiurge
|
2023-09-28 08:22:52
|
But I'm not assuming that's your desired career choice.
|
|
2023-09-28 08:24:31
|
Policy is completely irrelevant and impotent, without dutiful computers carrying out the instructions programmed into them...
|
|
|
w
|
2023-09-28 08:24:54
|
um okay
|
|
|
Demiurge
|
2023-09-28 08:25:16
|
Remove the programming and you remove the importance of policy
|
|
|
w
|
2023-09-28 08:25:35
|
real armchair programming and politics
|
|
|
Demiurge
|
2023-09-28 08:26:00
|
Indeed :)
|
|
2023-09-28 08:26:41
|
I would like humans to question the programming given to them...
|
|
2023-09-28 08:27:17
|
And stop saying they're just following their instructions...
|
|
2023-09-28 08:27:40
|
Not assuming agency for any of their own actions...
|
|
2023-09-28 08:28:11
|
Little more than a computer in this state...
|
|
|
spider-mario
|
2023-09-28 08:41:20
|
let’s maybe move this to <#806898911091753051> ?
|
|
|
nec
|
2023-09-29 01:24:12
|
Any advantage/disadvantage of using --num_threads=1?
|
|
|
spider-mario
|
2023-09-29 02:02:20
|
compression-wise, no
|
|
2023-09-29 02:02:30
|
the compressed/decompressed files should be identical either way
|
|
2023-09-29 02:02:37
|
(if they are not, it’s a bug)
|
|
2023-09-29 02:02:54
|
performance should be the only difference
|
|
2023-09-29 02:03:40
|
if running several processes in parallel, it may make sense to use a lower `--num_threads` for each of them
|
|
|
nec
|
2023-09-29 02:54:58
|
Thank you!
|
|
|
Jyrki Alakuijala
|
2023-09-29 03:08:27
|
I have a big revamp of image quality in the libjxl encoder pending in a PR: https://github.com/libjxl/libjxl/pull/2836
|
|
2023-09-29 03:08:48
|
it will solve some issues and create some new issues
|
|