JPEG XL

Info

rules 57
github 35276
reddit 647

JPEG XL

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

General chat

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

Voice Channels

General 2147

Archived

bot-spam 4380

other-codecs

A homosapien
2024-09-20 11:43:29
Ya know, to save on battery life and all that
CrushedAsian255
2024-09-20 11:44:27
maybe a bunch of e-cores could work on some types of server
A homosapien
2024-09-20 11:46:15
Yeah, assuming it's all e-cores it doesn't sound like a bad idea
2024-09-20 11:46:32
Since they're more power efficient
CrushedAsian255
2024-09-20 11:48:16
that's just called a pi cluster
A homosapien
2024-09-20 11:48:37
True
2024-09-20 11:48:51
No need to reinvent the wheel I guess
lonjil
2024-09-20 11:50:21
I think Intel has some CPU models with 8 P cores and 16 E cores
jonnyawsom3
2024-09-20 12:00:37
A key thing to remember is that the E cores don't have multithreading. So for the Silicon of the same chips, you could've had that many threads anyway
lonjil
2024-09-20 12:01:11
wrong
2024-09-20 12:01:23
SMT actually kinda sucks these days
2024-09-20 12:02:49
SMT is good at making use of unused parts of a CPU core, but since we're in an era of increasing transistor density *without* reducing the energy consumption of transistors, things being unused is literally necessary to not make the chip not overheat to hell and back.
CrushedAsian255
2024-09-20 12:03:11
is SMT like Hyper threading?
lonjil
2024-09-20 12:03:16
yes
2024-09-20 12:03:35
simultaneous multi-threading, one core multiple threads
lonjil SMT is good at making use of unused parts of a CPU core, but since we're in an era of increasing transistor density *without* reducing the energy consumption of transistors, things being unused is literally necessary to not make the chip not overheat to hell and back.
2024-09-20 12:03:49
and in any case, Intel's E cores are SUPER TINY
2024-09-20 12:04:04
you get way more than two of them for every P core you replace
2024-09-20 12:04:23
The P cores would need to have like, 8x SMT to give you the same number of threads
CrushedAsian255
2024-09-20 12:04:48
we also don't want a repeat of bulldozer though
lonjil
2024-09-20 12:05:30
you would have to really fuck up to repeat that
lonjil SMT is good at making use of unused parts of a CPU core, but since we're in an era of increasing transistor density *without* reducing the energy consumption of transistors, things being unused is literally necessary to not make the chip not overheat to hell and back.
2024-09-20 12:08:50
so with SMT, you don't duplicate functional units, like ALUs and FPUs, since the point is to make use of unused units. But there are some things that you need to duplicate for each hyperthread. Most importantly, registers. In order to have two hyperthreads that run well, you need to double the size of your register file, and you need to double the complexity of your register rename engine. That's relatively cheap in terms of transistors, so back in the day, it made sense. But today, the biggest cost isn't transistors, it's power. And the register rename logic is the single most power hungry part of the CPU that needs to be turned on 100% of the time. So as soon as you add SMT, you double the minimum power draw of your CPU core, but you way less than double your potential performance.
CrushedAsian255
lonjil so with SMT, you don't duplicate functional units, like ALUs and FPUs, since the point is to make use of unused units. But there are some things that you need to duplicate for each hyperthread. Most importantly, registers. In order to have two hyperthreads that run well, you need to double the size of your register file, and you need to double the complexity of your register rename engine. That's relatively cheap in terms of transistors, so back in the day, it made sense. But today, the biggest cost isn't transistors, it's power. And the register rename logic is the single most power hungry part of the CPU that needs to be turned on 100% of the time. So as soon as you add SMT, you double the minimum power draw of your CPU core, but you way less than double your potential performance.
2024-09-20 12:09:56
> you don't duplicate functional units, like ALUs and FPUs that really just sounds like bulldozer or i guess its fine because they're not marketing SMT as different cores, just different logical threads
lonjil
2024-09-20 12:10:32
the problem with bulldozer was that it was garbage in general, not just that it shared FPUs between cores
2024-09-20 12:10:47
I mean, it didn't share ALUs, but it still had shit integer performance
2024-09-20 12:11:29
Apple shares their ARM SME unit between 4 cores and I've never seen anyone complain about it
Quackdoc
CrushedAsian255 we also don't want a repeat of bulldozer though
2024-09-20 12:29:39
bulldozer was chad
2024-09-20 12:30:16
AMD got screwed because they didn't predict the future properly, and made a great workaround of a "just in case" strategy that panned out
CrushedAsian255
2024-09-20 01:01:31
Given modern compression formats like Brotli, does minifying JS still help significantly?
username
2024-09-20 01:05:38
isn't part of the benefit of minifying related to decreasing the time/effort to parse the JS? if so then stuff like Brotli would have no benefits to that effect since the JS would be decompressed and then the unminifyed JS would be parsed
CrushedAsian255
2024-09-20 01:07:35
Oh yeah that’s a thing
_wb_
2024-09-20 01:45:44
parsing is usually the cheapest thing compared to all the other stuff a JS engine has to do
DZgas Ж
frep what res/bitrate/preset?
2024-09-20 02:11:41
preset 1 (I don't think it makes sense since I'm using my fork) on other presets, the speed difference is the same
2024-09-20 02:14:11
since SVT has a parameter that allows you to completely disable the native assembler optimizer, you can do this: The effect of processor instructions on the encoding speed of SVT-AV1 with identical PROCESSOR/consumption/power ``` mmx |sse 1x sse2 |sse3 1,32x ssse3 1.44x sse4_1|sse4_2|avx 5.3x avx2 |avx512 6.9x ```
lonjil SMT actually kinda sucks these days
2024-09-20 02:15:46
yep
2024-09-20 02:19:51
It makes logical sense that "more CPU area is occupied by work at a certain point.".. But it doesn't make sense if I just set the frequency boost to the temperature limits, without SMT. It comes out faster by ~5% when encoding. since the CPU usage density is less filled/clogged with queues and all sorts of garbage instructions that wander/walk back and forth
2024-09-20 02:21:29
This is probably effective if something cannot fully load the processor, but since I use CPU only for compression and for the neural network. Situations where the processor cannot be loaded - doesn't happen
lonjil someone needs to make a CPU with like, 8 to 16 "big" cores, and like 64 small cores for background processes
2024-09-20 02:24:41
The "little" cores are really the funniest thing I've seen.
2024-09-20 02:26:04
are so ____ that some are advised to turn them off so that more power goes to larger cores, as it will heat up less, giving more peak speed
frep
DZgas Ж are so ____ that some are advised to turn them off so that more power goes to larger cores, as it will heat up less, giving more peak speed
2024-09-20 04:11:08
skill (cooling) issue
gb82
lonjil you get way more than two of them for every P core you replace
2024-09-21 04:48:01
yeah you get 4 for every P-core die area
_wb_
2024-09-22 08:37:46
I guess I will renew flif.info one more year, and then I think I will stop renewing it. The site is on https://github.com/FLIF-hub/FLIF-hub.github.io so it will still be available, just with an uglier url
Meow
2024-09-22 08:54:23
Better to let someone take over the domain or it will become an online scam website
Demiurge
2024-09-22 08:57:28
.info is one of the cheapest right?
Meow
2024-09-22 08:58:51
And it's quite old
_wb_
2024-09-22 09:00:41
If someone wants to take it over, let me know. As long as you don't plan to make it an online scam website 🙂
Meow
2024-09-22 09:03:53
The original domain of an old wiki software was transferred to a scam as its owner forgot renewing
CrushedAsian255
2024-09-22 09:17:52
Maybe make it a redirect to jpegxl.info
2024-09-22 01:33:18
How many people are going to FLIF.info ?
Meow
CrushedAsian255 How many people are going to FLIF.info ?
2024-09-22 02:59:34
From Wikipedia
yoochan
CrushedAsian255 How many people are going to FLIF.info ?
2024-09-22 03:52:47
I did a lot before the jpeg xl era 😅 I found the progressive loading demo (with the fish) so relaxing
Cacodemon345
2024-09-22 04:05:56
Lol.
gb82
_wb_ If someone wants to take it over, let me know. As long as you don't plan to make it an online scam website 🙂
2024-09-22 05:25:04
I'd be happy to take it over & redirect it to a page on the Codec Wiki covering FLIF
AccessViolation_
Meow From Wikipedia
2024-09-22 06:16:12
Someone should probably replace them with archived links
2024-09-22 06:16:27
I would do it, but now that I've said this it would doxx me <:galaxybrain:821831336372338729>
RaveSteel
2024-09-22 06:46:16
Since JXL is partially based on FLIF it would maybe make sense to archive the original site on the info website for jxl and either refer to it if it is discussed on the main page or possibly create a subpage/section where the creation of JPEG XL is documented. There the FLIF stuff would be fitting
yoochan
RaveSteel Since JXL is partially based on FLIF it would maybe make sense to archive the original site on the info website for jxl and either refer to it if it is discussed on the main page or possibly create a subpage/section where the creation of JPEG XL is documented. There the FLIF stuff would be fitting
2024-09-22 07:05:02
on FUIF to be precise, even if FUIF is a work based on FLIF
Meow
AccessViolation_ Someone should probably replace them with archived links
2024-09-23 06:55:52
It's been frequently archived so it's not urgent to replace http://web.archive.org/web/20240922105531/https://flif.info/
2024-09-23 06:58:37
Even if the link were dead, a bot would replace it automatically
DZgas Ж
2024-09-23 12:39:37
AV1 -- CDEF -- enable-restoration=1 increases the quality on super-super strong compression, but since it is a post-post-filter, it also takes away from 10% to 25% of the decoding speed In 99% of cases, it is better to turn it off, 100% it needs to be turned off if it is a recording of the gameplay of the game AV1 -- Temporal Filter -- enable-tf=1 by default, this is the most destructive thing in the codec, it kills smooth lines, low-gradient colors and details, and moves objects that should always be stationary. Must always be turned off for all parameters The hidden **Warped Motion** level destroys the decoding speed. Completely violates the standards of the AV1 levels. In order to comply with the level 3.1 standard at 1280x720, it must be completely disabled. Since super-complex vercors heavily load decoding -- Because on the best presets the number of real blocks is many times greater, due to the more complex division of large blocks into small ones. Combined with 10 bits of color, this greatly reduces the decoding speed. -- this WM parameters do give a *micro bit* of quality in the case when an object is overlapped by another object, but on presets like -1 0 1 it is fully compensated by complex block separation. -- on presets like 4+, the number of small blocks is small enough that the overlap takes a maximum of 10% of the decoding, so WM can be good on weak presets
2024-09-23 12:44:13
The key frame original frame key frame with Temporal Filter key frame whitout
2024-09-23 10:05:00
For a very long time, it seemed to me that my old amd processor had special instructions built in exclusively for encoding and decoding JPEG. It seemed logical. Although I don't have a graphics core either. Many years later, well, it turned out to be true. (at the expense of 3DNow instructions!) https://libjpeg-turbo.org/About/SIMDCoverage
2024-09-24 12:59:29
<:SadOrange:806131742636507177>
username
username it's looking like the next release of libwebp might have some minor improvements to lossless encoding size https://github.com/webmproject/libwebp/commit/f2d6dc1eefdae4056de4ae0dfa513f2857d91693 LATE EDIT: there's also this commit https://github.com/webmproject/libwebp/commit/1bf198a22bd11b15ce74085939757b3361404d89
2024-09-24 07:02:40
some more commits for libwebp that relate to better lossless compression: https://github.com/webmproject/libwebp/commit/367ca938f11eda8d69c57530d0aa4e3df0bd0537 https://github.com/webmproject/libwebp/commit/7861947813b7ea02198f5d0b46afa5d987b797ae (EDIT heres a third one) https://github.com/webmproject/libwebp/commit/220ee52967c121adf3c690fbd0605a7de6371943 seems like lossless compression is going to use more memory/ram (not sure by how much exactly but seems like a relatively low'ish increase).
2024-09-26 05:27:26
alright so a friend and I wanted to test the compression gains with all 5 of these commits and uhhh th first test image we tried compresses noticeably worse at max compression effort with the master branch of libwebp <:ReeCat:806087208678588437>
2024-09-26 05:48:52
they made libwebp compress **WORSE** with all these commits designed to "**IMPROVE**" compression
2024-09-26 05:49:57
we even triple checked with different compiles and binaries and the results still came out with the newer commits compressing worse
HCrikki
2024-09-26 05:54:13
worse for smaller filesize? wouldnt be surprising a video codec prioritizes discarding even more detail for small wins in a an excel table (just dont show the low quality image)
Demez
2024-09-26 05:54:35
this is lossless compression
username
2024-09-26 05:54:37
I forgot to say this is for lossless
2024-09-26 05:54:39
yeah
2024-09-26 05:55:24
testing the main branch with all the mentioned commits against version 1.4.0 and the main branch comes out with larger files
HCrikki
2024-09-26 05:55:44
does libwebp do *lossless* animations btw?
username
2024-09-26 05:56:22
yeh though it's annoying to create them with the libwebp tools
jonnyawsom3
2024-09-28 05:34:07
Discord now supports animated WebP
2024-09-28 05:35:47
username
2024-09-28 05:35:58
https://discord.com/channels/794206087879852103/794206087879852106/1289443266475069523
jonnyawsom3
2024-09-28 05:36:17
😔
username
2024-09-28 05:36:42
if only there was good tooling for animated WebPs
2024-09-28 05:38:20
the libwebp tools suck and FFmpeg sucks
2024-09-28 05:38:58
only converting GIFs to animated WebP is a seemless process
VEG
2024-09-28 05:50:59
It looks like a static image for me 🤷‍♂️
Meow
username only converting GIFs to animated WebP is a seemless process
2024-09-28 06:42:04
Some softwares can directly export WebP animations
2024-09-28 06:43:20
https://help.clip-studio.com/en-us/manual_en/600_animation/Export_animation.htm#1428921
HCrikki
2024-09-28 07:20:18
as long as one skips the gif part, final webp/webm will be much higher quality and likely smaller too
Meow
2024-09-28 09:29:33
Although CSP users are somehow the group that hates WebP the most
CrushedAsian255
2024-09-28 10:51:53
Maybe their use case doesn’t work well with WebP
Meow
2024-09-28 10:58:02
Most of artists don't want to spend time on researching how to open and edit WebP
2024-09-28 10:59:01
They're especially furious about Chrome converting all their artworks to WebP and their audiences unable to open
JendaLinda
2024-09-28 05:00:59
Gimp supports animated WebP but doesn't support animated PNG.
2024-09-28 05:12:38
APNG is at least supported by ffmpeg.
Meow
2024-09-28 05:18:27
CSP has been supporting APNG for long time
JendaLinda
2024-09-28 05:23:36
The most useful tool for APNG is TwekPNG by my experience.
Quackdoc
Meow Although CSP users are somehow the group that hates WebP the most
2024-09-28 05:26:32
that's because they kill quality when they export it lol
JendaLinda
2024-09-28 05:28:28
It's not that difficult to create good animated WebP, but convert it to something else is tricky.
HCrikki
2024-09-28 05:29:56
if you have the original videos, you go back to those and dont bother with converting from webp
JendaLinda
2024-09-28 05:32:05
What about AVIF? I was trying to create AVIF animation with transparent background but couldn't find any way to do it. Is it even possible?
Meow
Quackdoc that's because they kill quality when they export it lol
2024-09-28 05:34:37
CSP didn't support WebP until this year
damian101
JendaLinda What about AVIF? I was trying to create AVIF animation with transparent background but couldn't find any way to do it. Is it even possible?
2024-09-28 05:35:20
Yes, I can do it.
JendaLinda
2024-09-28 05:36:02
Everything I tried I got black background.
damian101
2024-09-28 05:36:34
maybe it's a decoding issue
2024-09-28 05:37:05
like, transparency for animated stuff is generally badly supported
2024-09-28 05:37:53
I have never created animated transparent AVIF, but I would know how to do that.
JendaLinda
2024-09-28 05:41:52
As AVIF is based on video, it's expected to be a good format for animation. It can take advantage of all video encoding techniques.
damian101
2024-09-28 06:10:08
yes
2024-09-28 06:11:04
Already waiting for AVIF support everywhere so I can make my profile picture 8 MB Shrek playing in real-time.
_wb_
2024-09-28 06:14:40
GIF is the original sin. Things would be easier if still images and animation would not be as conceptually mixed.
juliobbv
Already waiting for AVIF support everywhere so I can make my profile picture 8 MB Shrek playing in real-time.
2024-09-28 06:20:22
size: 16x9... pixels
damian101
_wb_ GIF is the original sin. Things would be easier if still images and animation would not be as conceptually mixed.
2024-09-28 06:21:02
I don't understand what you are talking about. GIF is a video format.
RaveSteel
JendaLinda What about AVIF? I was trying to create AVIF animation with transparent background but couldn't find any way to do it. Is it even possible?
2024-09-28 06:21:26
ffmpeg is unable to create transparent avif, you can use avifenc for that. If the source is a video, you may be able to pipe it ti avifenc using ffmpeg's yuv4mpegpipe
juliobbv
I don't understand what you are talking about. GIF is a video format.
2024-09-28 06:22:16
before the PNG format became popular, GIFs were used way more for drawn/palletized stills
damian101
2024-09-28 06:22:46
(I was joking obviously...)
juliobbv
2024-09-28 06:22:58
ah gotcha 😄
damian101
2024-09-28 06:24:04
There is an important distinction between video and animation, though: Video has audio, animation does not.
2024-09-28 06:25:20
I mean, of course there can be standard video content without audio, but that's kinda rare...
_wb_
2024-09-28 06:37:52
Movies were silent for quite a while, historically 🙂
damian101
2024-09-28 06:38:59
usually played back with music, though
_wb_
2024-09-28 07:30:44
Yes, must have been fun to be a pianist back then
damian101
2024-09-28 08:16:09
if you had the skills, definitely
2024-09-28 08:16:44
Shostakovich got a lot his inspiration from his work as a cinema pianist.
JendaLinda
2024-09-28 08:37:09
GIF was actually not meant for animation. GIF was an image format and could do slides. Looping is an unofficial extension from Netscape.
2024-09-28 08:41:36
GIF was actually the only usable format for transparent images until the general adoption of Google Chrome because Internet Explorer didn't support transparency in PNG.
RaveSteel ffmpeg is unable to create transparent avif, you can use avifenc for that. If the source is a video, you may be able to pipe it ti avifenc using ffmpeg's yuv4mpegpipe
2024-09-28 08:50:11
It would be much easier if avifenc could just read APNG directly.
2024-09-28 08:53:19
Read APNG with ffmpeg and piping it somehow to avifenc is kinda cumbersome.
RaveSteel
2024-09-28 09:14:40
Well, the other option would be to extract all video frames and use avifenc directly on those frames, but that is even more cumbersome
JendaLinda
2024-09-28 09:15:59
What about the transparency?
RaveSteel
JendaLinda What about the transparency?
2024-09-28 09:16:18
In the latter case?
2024-09-28 09:16:33
It would be retained, if you extract the frames as PNGs
2024-09-28 09:19:49
According to `ffmpeg -h encoder=av1` av1_nvenc supports alpha with bgra and rgba, but requires an Nvidia GPU. Try that if you have one
JendaLinda
2024-09-28 09:21:45
I guess GTX 1050ti won't do.
RaveSteel
2024-09-28 09:22:22
I would still try it, this is the only way to get an alpha AVIF with ffmpeg directly
JendaLinda
2024-09-28 09:22:51
No way, it can barely do HEVC
2024-09-28 09:23:49
Anyway, extracting to individual PNGs the frame timigs wouldn't be preserved, so piping RGB+alpha it is.
RaveSteel
2024-09-28 09:24:51
In case you don't know how: `ffmpeg -i INPUT -f yuv4mpegpipe -strict -1 -pix_fmt yuva444p - | avifenc --stdin OUT.avif`
JendaLinda
2024-09-28 09:35:41
Couldn't I pipe RGB for lossless?
RaveSteel
2024-09-28 09:52:47
No, neither ffmpeg nor avifenc allow that
2024-09-28 09:53:03
You'll have to settle for yuva444p
A homosapien
2024-09-28 10:00:56
Why would you use lossless for avif?
JendaLinda
2024-09-28 10:18:46
Simple, in animation, AVIF can take advantage of AV1 interframes so in this particular case it might be better than other lossless formats.
RaveSteel You'll have to settle for yuva444p
2024-09-28 10:19:28
That's unfortunate. I guess this is just limitation of the current implementation. Is it at least full range YUV?
RaveSteel
2024-09-28 10:20:12
AVIF lossless is often/sometimes trading blows with lossless WebP, so I would recommend you compare it with a few of the files you want to convert
JendaLinda That's unfortunate. I guess this is just limitation of the current implementation. Is it at least full range YUV?
2024-09-28 10:20:37
Yes, yuva444p is full 4:4:4
2024-09-28 10:20:45
together with alpha that is
2024-09-28 10:21:33
FFmpeg supports alpha with WebP directly
JendaLinda
2024-09-28 10:21:47
I mean, if it's PC range or TV range.
RaveSteel
2024-09-28 10:22:24
`for y4m or stdin, range is retained`
2024-09-28 10:22:32
it will be the same as input
JendaLinda
2024-09-28 10:23:45
PC range pixel formats usually have "j" in the name.
RaveSteel
2024-09-28 10:38:28
Since your source files are APNG I can pretty much guarantuee that they are full range which will be retained with the command I sent, outputting full range AVIFs at the end
2024-09-28 10:46:58
No, I was wrong, it actually does output a TV range avif
spider-mario
JendaLinda PC range pixel formats usually have "j" in the name.
2024-09-28 10:50:46
iirc, the “j” pix_fmts are deprecated; it’s a separate -color_range flag now
2024-09-28 10:52:01
in fact, I see discussions about their removal https://patchwork.ffmpeg.org/project/ffmpeg/cover/20240112082950.41637-1-ffmpeg@haasn.xyz/
2024-09-28 10:52:56
https://www.reddit.com/r/ffmpeg/comments/1c6nnsq/yuv_and_yuvj/l04i38c/
JendaLinda
2024-09-28 10:53:41
Alright, the importing thing is if the flag makes it all through the entire process.
spider-mario
2024-09-28 11:04:38
maybe it makes a difference to specify it explicitly?
RaveSteel
2024-09-28 11:07:40
<@688076786525143117> What sources do your APNGs have? Would you be able to share one of the APNGs here?
A homosapien
JendaLinda Simple, in animation, AVIF can take advantage of AV1 interframes so in this particular case it might be better than other lossless formats.
2024-09-29 06:29:58
I did some testing with this test animation, RGBA lossless avif doesn't even beat animated png 🥲. YUVA avif landed in between apng and webp.
2024-09-29 06:30:21
Moral of the story, lossless avif sucks, always use lossy
2024-09-29 07:04:00
Here are the sizes: ``` rgb lossless avif --------- 1.07 MB apng ---------------------- 934 KB yuva "lossless" avif ------ 908 KB webp ---------------------- 631 KB jxl ----------------------- 521 KB ```
Meow
A homosapien Here are the sizes: ``` rgb lossless avif --------- 1.07 MB apng ---------------------- 934 KB yuva "lossless" avif ------ 908 KB webp ---------------------- 631 KB jxl ----------------------- 521 KB ```
2024-09-29 07:38:23
Are WebP and JXL lossless too?
_wb_
2024-09-29 07:45:32
AVIF cannot exploit any correlation between alpha and color, since those are in separate codestreams.
A homosapien
Meow Are WebP and JXL lossless too?
2024-09-29 08:08:32
all comparisons are lossless of course
CrushedAsian255
A homosapien Here are the sizes: ``` rgb lossless avif --------- 1.07 MB apng ---------------------- 934 KB yuva "lossless" avif ------ 908 KB webp ---------------------- 631 KB jxl ----------------------- 521 KB ```
2024-09-29 09:02:14
Is lossless in quotes because it’s the annoying yuv rounding error thing?
A homosapien
2024-09-29 09:02:48
Converting RGB to YUV is an inherently lossy process
CrushedAsian255 Is lossless in quotes because it’s the annoying yuv rounding error thing?
2024-09-29 09:10:38
https://github.com/AOMediaCodec/libavif/wiki/Drift
JendaLinda
2024-09-29 09:32:08
I was questioning if lossless and/or transparent animated AVIF is possible at all. Apparently there are some ways to do it but it's not worth the trouble.
2024-09-29 09:49:25
WebP is apparently better for lossless.
jonnyawsom3
2024-09-29 09:50:38
AV1 doesn't even beat PNG most of the time, so naturally WebP and then JXL will beat it
RaveSteel
JendaLinda WebP is apparently better for lossless.
2024-09-29 09:51:01
Not always, but as I said yesterday AVIF and WebP are ofen/sometimes trading blows, WebP is often better, but not always
JendaLinda
2024-09-29 09:51:20
Also, I think lossy WebP is perfectly fine for lossy animation, even with the 4:2:0 TV range. Most people don't seem to care about color fidelity in animation anyway, if they're using GIF.
2024-09-29 09:51:51
I fthey cared, they would use at least APNG.
jonnyawsom3
2024-09-29 09:53:07
Most animations are better stored lossless, with either limited color palette and sharp angles or smooth gradients in shading. Videos turned into GIFs on the other hand...
JendaLinda
2024-09-29 09:55:58
At the end, it depends on the application which format can be used. There are still websites that don't allow uploads in WebP.
2024-09-29 10:00:41
I was trying to optimize some GIFs by converting them to APNG. And it was both success and failure. Success if the GIF was using only global palette, failure if the GIF was using local palettes. In that case, APNG got bigger.
Cacodemon345
JendaLinda WebP is apparently better for lossless.
2024-09-29 01:38:32
There's no intraframe coding utilized for animations if I read the source correctly.
JendaLinda
2024-09-29 02:29:06
But that doesn't help lossless AVIF much.
2024-09-29 02:30:11
WebP can still do simple difference frames like GIF does.
_wb_
2024-09-29 03:08:10
For natural video, av1 will be much better than anything intra-only (or only simple inter like gif/apng/webp/jxl)
2024-09-29 03:09:19
At least for delivery quality. For authoring workflows and high-end applications like digital cinema, intra-only is the way to go.
Cacodemon345
2024-09-29 03:10:11
I wish there was an alternate AVIF decoder library for C that didn't rely on libyuv.
2024-09-29 03:10:18
And still maintained.
damian101
_wb_ At least for delivery quality. For authoring workflows and high-end applications like digital cinema, intra-only is the way to go.
2024-09-29 03:47:10
Well, the current intra-only approach used in digital cinema delivers significantly degraded quality, much worse than what you get on UHD Blu-ray, 4K DCP is severely bit-starved on usual movie content. That's because each JPEG2000 frame can only be ~1.24 MB MiB in size max in a standard 24 fps digital cinema package, no matter if 4K or 2K, due to a hard bitrate limit of 250 Mbit/s.
2024-09-29 03:47:49
Even worse, every 4K DCP JPEG2000 frame needs to contain a 2K JPEG2000 frame for backwards compatibility reasons with older projectors, using the scalability feature of JPEG2000. Really wouldn't be surprised if 2K cinema often looked significantly better than 4K, if supplied with a 2K-only DCP.
2024-09-29 03:49:08
3D and HFR have a 500 Mbit/s limit. At least those don't need to have the fallback 2K images. Still, with ~0.5 MiB per frame for 120fps content this probably means almost garbage tier quality at 4K... pointless to even support 120 fps with these restrictions...
_wb_
2024-09-29 03:52:29
I didn't realize the bitrate limit was that low, and not different for 4K than for 2K
damian101
_wb_ I didn't realize the bitrate limit was that low, and not different for 4K than for 2K
2024-09-29 03:53:14
The only JPEG2000 hardware decoder on the market back then (some FPGA by Xilinx) couldn't do more than that. Only reason why.
2024-09-29 03:54:59
And for 2K, it was ok.
_wb_
2024-09-29 04:09:53
Strange they didn't just bump up the limits
damian101
2024-09-29 04:17:55
They didn't want to complicate distribution. Thus backwards-compatible 4K DCPs seemed like a great idea. To the marketing people anyway. And 4K digital cinema still is little more than a marketing gimmick, due to the old inherited constraints.
Quackdoc
Cacodemon345 I wish there was an alternate AVIF decoder library for C that didn't rely on libyuv.
2024-09-29 04:19:18
its just mp4 demux + av1 decode + yuv->rgb, wiring these together probably isn't too painful
Cacodemon345
2024-09-29 04:20:02
It requires libyuv to scale the tiles.
Quackdoc
2024-09-29 04:21:21
interesting, I bet libyuv could be replaced in crabbyavif without too much issues hmmmm
JendaLinda
2024-10-01 09:22:17
`jpegtran` has an oversight that it adds JFIF marker even if EXIF marker already exists in the JPEG file, resulting in non-compliant EXIF file. EXIF is supposed to be the first marker in JPEG file, so is JFIF, that means if EXIF exists, there's simply nowhere to put JFIF.
Meow
2024-10-04 05:00:50
Seems the latest OpenEXR version breaks my jpegli `dyld[15035]: Library not loaded: /usr/local/opt/openexr/lib/libOpenEXR-3_2.31.dylib Referenced from: <1CFE580E-5732-368B-B23D-9B98B64AEBDC> /Users/meow/Tools/jpegli/build/tools/cjpegli Reason: tried: '/usr/local/opt/openexr/lib/libOpenEXR-3_2.31.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/openexr/lib/libOpenEXR-3_2.31.dylib' (no such file), '/usr/local/opt/openexr/lib/libOpenEXR-3_2.31.dylib' (no such file), '/usr/local/Cellar/openexr/3.3.0/lib/libOpenEXR-3_2.31.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/Cellar/openexr/3.3.0/lib/libOpenEXR-3_2.31.dylib' (no such file), '/usr/local/Cellar/openexr/3.3.0/lib/libOpenEXR-3_2.31.dylib' (no such file)`
spider-mario
2024-10-04 05:11:00
oh, yeah, there are sometimes annoying problems like that
2024-10-04 05:11:29
in first intention, I usually open `CMakeCache.txt`, remove all `*_OpenEXR_*` variables to force CMake to find it again, and then rerun it
2024-10-04 05:11:46
if that fails, I set `JPEGXL_ENABLE_OPENEXR` to false
2024-10-04 05:12:55
(ah, wait, jpegli)
2024-10-04 05:13:25
ah, the variable still has that name there
2024-10-04 05:14:04
I’m not sure OpenEXR input makes much sense for jpegli anyway, so maybe it’s best to just disable it
Meow
spider-mario in first intention, I usually open `CMakeCache.txt`, remove all `*_OpenEXR_*` variables to force CMake to find it again, and then rerun it
2024-10-04 05:24:43
Should I do anything else after editing CMakeCache.txt?
spider-mario
2024-10-04 05:36:29
rebuilding should be enough: it will detect that CMakeCache.txt has changed and will rerun cmake automatically
2024-10-04 05:36:41
you can rerun cmake by hand if you prefer
Meow
2024-10-04 05:44:25
Seems rerunning cmake or rebuilding the entire library of jpegli or libjxl now results in the same error: `CMake Error at cmake/FindAtomics.cmake:55 (message): Neither lock free instructions nor -latomic found. Call Stack (most recent call first): CMakeLists.txt:212 (find_package)`
2024-10-04 05:45:29
And developers for Telegram already faced it last year for libjxl https://github.com/TelegramMessenger/Telegram-iOS/issues/1235
2024-10-04 06:01:04
WTF the build problem is caused Xcode
2024-10-04 06:03:23
Reinstalling Xcode Command Line Tool can solve all problems above
2024-10-04 06:08:42
How Apple f ed its users
jonnyawsom3
2024-10-05 02:36:31
Curious if anyone has seen or tried compiling this before https://vivivi.leprd.space/software/gifthermal/
CrushedAsian255
2024-10-06 06:11:29
Can AVIF be a interframe predictive or is it intra only?
username
CrushedAsian255 Can AVIF be a interframe predictive or is it intra only?
2024-10-06 06:15:43
for animated ones? you can just shove a AV1 stream into a AVIF so I guess the answer is yes it can be interframe predictive
VEG
2024-10-06 06:58:43
I always thought that AVIF limits this
_wb_
2024-10-06 06:59:32
Originally it did, but they changed the spec and now AVIF can contain arbitrary AV1 payloads
2024-10-06 07:01:10
So it's basically just a video container that promises not to have audio (or subtitles, or whatever else goes into video containers besides the video itself)
VEG
2024-10-06 07:12:32
Oh, clear
2024-10-06 07:16:57
Does it support alpha channel in this mode? 🤔
Tirr
2024-10-06 07:20:43
I remember alpha channel in AVIF is stored in a different codestream unrelated to color channels
2024-10-06 07:21:56
so I guess there are essentially two encoded images when there's alpha
CrushedAsian255
_wb_ So it's basically just a video container that promises not to have audio (or subtitles, or whatever else goes into video containers besides the video itself)
2024-10-06 07:22:11
does it support exif/jumbf/xmp metadata?
Quackdoc
Tirr so I guess there are essentially two encoded images when there's alpha
2024-10-06 07:22:59
that is correct, this is also just in general a common old way of encoding alpha
CrushedAsian255
Quackdoc that is correct, this is also just in general a common old way of encoding alpha
2024-10-06 07:28:35
\*cough cough\* JNG
_wb_
Tirr so I guess there are essentially two encoded images when there's alpha
2024-10-06 12:01:50
Yes, and I guess for animated avif with alpha you basically have a color av1 for the RGB plus a grayscale av1 for the alpha
CrushedAsian255 does it support exif/jumbf/xmp metadata?
2024-10-06 12:02:19
Exif and xmp yes, JUMBF I dunno
damian101
VEG Does it support alpha channel in this mode? 🤔
2024-10-06 03:02:24
Yes, it's just a separate grayscale av1 stream that functions as the mask.
username
2024-10-06 04:17:56
does anyone know any JPEG decoders that take advantage of restart markers for multithreading?
_wb_
2024-10-06 08:46:57
I think there are some proprietary ones that even add an app marker with the offsets so if encoded that way the decoder doesn't need to parse the bitstream to look for restart markers, but can just seek. The same thing exists for PNG too. It only gives you parallel decode with stripes though, not tiles (so only of limited use for region of interest decoding).
JendaLinda
2024-10-07 02:09:02
Even mozjpeg jpegtran is adding APP0 JFIF when APP1 EXIF already exists. Seems nobody bothered fixing this bug.
DZgas Ж
spider-mario half-frame? wasn’t the interlacing on a line basis in both cases?
2024-10-07 02:33:05
it's funny that I remembered that old conversation. I wanted to add that the interlaced PAL scan looked better than the half-frame scan of SECAM and was less annoying. After the collapse of the USSR, television operated in two SECAM+PAL systems from region to region. But in general, there was rapid digitalization, and at the moment there are only a few analog television outlets in Russia, whose owners decided to pay extra for the rent of analog frequencies. 1-2 channels on country. Another funny fact is that, since Russia is a country that is well with space. We never got Netflix or anything like that. About wires. Everything works by satellites. Because of this, multi-storey buildings are literally hung with 10-20 satellite dishes on the side of the multi-storey building
2024-10-07 02:43:26
This is more of a joke, of course. But still the photos are real. https://discord.com/channels/794206087879852103/803950138795622455/1292859688932741170
2024-10-07 02:49:58
While in neighboring Poland, television has long been HEVC 1080p. In Russia, it was decided that rebuilding the networks of the whole of Russia is so expensive that it is better not to change anything and stay on 960x540 AVC as it is now. Anyway, television is dying, switching to satellite and the Internet. It's a pity that my satellite set-top box does not display any information about the codec that is received from the satellite. Perhaps HVEC use been there for a long time, even on low-quality transmission... but at least for 4k channels, it is definitely yes. <:H265_HEVC:805856045347242016>
username
2024-10-07 03:11:32
continuing from https://discord.com/channels/794206087879852103/803663417881395200/1292810554091507752: https://github.com/Yellow-Dog-Man/FreeImage/pull/17#issuecomment-2397145502 <@238552565619359744> rather then going lower for lossless effort why not get it closer to what the FreeImage and or libwebp defaults are? I don't know how and where Resonite exactly uses WebP/Image encoding however speed complaints seem to have only came after the lossless cruncher was enabled so surely something closer to default rather then lower is fine right?
jonnyawsom3
username continuing from https://discord.com/channels/794206087879852103/803663417881395200/1292810554091507752: https://github.com/Yellow-Dog-Man/FreeImage/pull/17#issuecomment-2397145502 <@238552565619359744> rather then going lower for lossless effort why not get it closer to what the FreeImage and or libwebp defaults are? I don't know how and where Resonite exactly uses WebP/Image encoding however speed complaints seem to have only came after the lossless cruncher was enabled so surely something closer to default rather then lower is fine right?
2024-10-07 03:20:45
Going for a setting that's both faster and smaller seems like a more appealing change for Frooxius to accept than doubling the encode time for the same relative gains
2024-10-07 03:21:52
I brought it up in the past to him and he said he doesn't care if the files are 50% larger so long as they're fast
username
2024-10-07 03:23:08
hm. also what where you comparing method 1 quality 20 to? was it method 3 and quality 30 or method 0 and quality 100
jonnyawsom3
2024-10-07 03:23:33
Also hence why I even mentioned setting both to 0, since as a live game most people just care that it shows up fast rather than how long until their storage quota is full
username hm. also what where you comparing method 1 quality 20 to? was it method 3 and quality 30 or method 0 and quality 100
2024-10-07 03:24:05
Method 0 Quality 100, which is what the game currently uses (Confirmed via a SHA256 match)
A homosapien
2024-10-07 03:26:44
Jeez, might as well be using PNG at that point if you want speed that bad
jonnyawsom3
2024-10-07 03:27:58
It was worse than an optimized PNG
2024-10-07 03:28:41
Naturally JXL was faster and denser
A homosapien
2024-10-07 03:31:57
What kind of media are we talking about?
2024-10-07 03:32:02
Non-photographic?
jonnyawsom3
2024-10-07 03:32:47
In-game photos/screenshots
username
2024-10-07 03:33:17
oh also I probably should have mentioned that I left a comment (the link I posted) on the github pull request before posting in here
2024-10-07 03:33:48
the majority of the comment is based around the idea that your results where against method 3 and quality 30
jonnyawsom3
2024-10-07 03:38:55
I know, I'm writing a reply
2024-10-07 03:39:51
I just wish I hadn't gone to bed early for once last night so I could've explained it to you better
username
2024-10-07 03:41:24
at the moment I'm leaning towards leaving it at `-z 4` (method 3 and quality 30) rather then lowering or raising it
2024-10-07 03:42:20
it's like 2.5 presets lower then the default FreeImage settings
jonnyawsom3
2024-10-07 04:19:42
I'm assuming encode speed changes based on image content, because I can't replicate the timings on the original issue in the Resonite github
DZgas Ж
DZgas Ж https://evanhahn.com/worlds-smallest-png/
2024-10-07 07:45:16
Today, one person tried to compress a png smaller than 83 bytes, today is the first time I needed this site
2024-10-07 08:03:38
discord can not play vlc can not mpc-hc can mpv can
RaveSteel
2024-10-07 08:11:03
3kbps lmao
DZgas Ж
2024-10-07 08:18:30
<:This:805404376658739230> vorbis best codec for this
Crite Spranberry
2024-10-07 08:21:35
wat about opus
CrushedAsian255
Crite Spranberry wat about opus
2024-10-07 08:27:43
Opus at 3.2 kbps (only goes by 0.4) sounds really weird
DZgas Ж
Crite Spranberry wat about opus
2024-10-07 08:27:52
for music compression at 10 kbps, it is worse than mp3
CrushedAsian255
2024-10-07 08:27:57
You have to force the encoder to go below 6kbps
DZgas Ж
2024-10-07 08:29:23
https://github.com/facebookresearch/encodec If you want to .... then use this. at 12 kbps, it sounds quite good on opus 64 kbps + stereo. I'm telling you why my vorbis file doesn't play everywhere
Crite Spranberry
2024-10-07 08:29:27
What if I told you could get a pretty long song at full 44100 or perhaps beyond under a MB
2024-10-07 08:30:18
This is 730KB <:t_:1240995769952112692> (spectral is from 40MB FLAC conversion)
DZgas Ж
Crite Spranberry What if I told you could get a pretty long song at full 44100 or perhaps beyond under a MB
2024-10-07 08:31:16
bruh. my link above
Crite Spranberry
2024-10-07 08:31:37
What if I told you this technology was older than me
DZgas Ж
2024-10-07 08:32:06
🥱
DZgas Ж https://github.com/facebookresearch/encodec If you want to .... then use this. at 12 kbps, it sounds quite good on opus 64 kbps + stereo. I'm telling you why my vorbis file doesn't play everywhere
2024-10-07 08:32:50
Crite Spranberry
2024-10-07 08:33:14
<:t_:1240995769952112692>
2024-10-07 08:34:41
Basically this is what you would call a tracker, which basically is a collection of uncompressed WAV sounds with instructions on where they go Basically the computer follows these instructions to play the song Therefore you can have basically an infinitely long song in a small file
DZgas Ж
2024-10-07 08:35:02
doesn 't impress
Crite Spranberry
2024-10-07 08:35:31
ok
RaveSteel
Crite Spranberry Basically this is what you would call a tracker, which basically is a collection of uncompressed WAV sounds with instructions on where they go Basically the computer follows these instructions to play the song Therefore you can have basically an infinitely long song in a small file
2024-10-07 08:36:52
aka a MIDI file
2024-10-07 08:37:04
or at least very similar lmao
Crite Spranberry
2024-10-07 08:37:15
I guess you could call it a midi with a bundled soundfont
damian101
CrushedAsian255 Opus at 3.2 kbps (only goes by 0.4) sounds really weird
2024-10-07 09:06:41
no wonder, it's purely optimized for voice down there
DZgas Ж <:This:805404376658739230> vorbis best codec for this
2024-10-07 09:07:22
I think fdk-aac is probably better.
DZgas Ж
I think fdk-aac is probably better.
2024-10-07 09:08:13
8 kbps cbr minimum
damian101
2024-10-07 09:08:27
oh right...
2024-10-07 09:08:42
this is really dumb anyway
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素
RaveSteel aka a MIDI file
2024-10-08 12:58:48
the two are very different
I think fdk-aac is probably better.
2024-10-08 12:59:48
MP3 (liblame) < Vorbis (libvorbis) ~ AAC-LC (libfdk_aac) < AAC-LC (iTunes) < Opus (libopus)
damian101
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素 MP3 (liblame) < Vorbis (libvorbis) ~ AAC-LC (libfdk_aac) < AAC-LC (iTunes) < Opus (libopus)
2024-10-08 01:00:11
this was for ~4 kbps
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素
2024-10-08 01:00:26
darn I have no idea on extremely low bitrates
RaveSteel
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素 the two are very different
2024-10-08 01:01:36
A strong similarity does exist, no? A tracker file and a MIDI file are interpreted by the software playing the file. Of course the tracker file has, at least according to above comment, I have never had tracker files or software installed, soundfiles which are then played according to the instructions, similar to a MIDI file. Right?
damian101
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素 MP3 (liblame) < Vorbis (libvorbis) ~ AAC-LC (libfdk_aac) < AAC-LC (iTunes) < Opus (libopus)
2024-10-08 01:02:07
fdk-aac -m [3-5] beats anything qaac has to offer, and even Opus on very variable content at high quality
2024-10-08 01:02:15
just by having superior consistency
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素
RaveSteel A strong similarity does exist, no? A tracker file and a MIDI file are interpreted by the software playing the file. Of course the tracker file has, at least according to above comment, I have never had tracker files or software installed, soundfiles which are then played according to the instructions, similar to a MIDI file. Right?
2024-10-08 01:04:01
Tracker files are monophonic on each channel with voice control events. MIDI files are polyphonic, can contain arbitrary metadata and can include effect settings, device configurations and more.
2024-10-08 01:06:11
They may look similar on the surface because both have audio synthesized in real-time, but when you really dig into the rabbit hole...
jonnyawsom3
2024-10-08 01:08:48
Trackers actually came up the other day https://discord.com/channels/794206087879852103/806898911091753051/1290666110798270476
damian101
fdk-aac -m [3-5] beats anything qaac has to offer, and even Opus on very variable content at high quality
2024-10-08 01:09:47
Well, at least -m 4 and -m 5 can definitely beat Opus on diverse content, like movie audio.
Demiurge
2024-10-08 01:56:33
So in other words, trackers were designed for creating music and midi files were designed for controlling hardware?
DZgas Ж
2024-10-08 02:15:17
To compress the 3 ep of TADC, I had to write my own algorithm, an analog of AQ mode 3 in x264 and x265, to dynamically determine the brightness in the frame, to increase the bitrate I split the episode into keyframes for 10 seconds and compress each one with its own CRF step Because AV1 all dev apparently decided to give a f... about it all👍
afed
2024-10-08 02:19:51
<https://github.com/gianni-rosato/svt-av1-psy>
DZgas Ж
afed <https://github.com/gianni-rosato/svt-av1-psy>
2024-10-08 02:39:25
full of code
2024-10-08 02:44:19
```python def adjust_qindex(qindex, avg_luma, frame_luma_bias, temporal_layer_index): return qindex + round(-((255 - avg_luma) / (1024.0 / (temporal_layer_index * 4 * (0.01 * frame_luma_bias)))) ** 0.5 * (qindex / 8.0)) if frame_luma_bias != 0 else qindex initial_qindex = 62 avg_luma = 32 frame_luma_bias = 100 temporal_layer_index = 2 adjusted_qindex = adjust_qindex(initial_qindex, avg_luma, frame_luma_bias, temporal_layer_index) print(f"out q: {adjusted_qindex}") ``` to check what quality will be given at what brightness, I wrote this function in python like this
2024-10-08 02:47:09
in fact, I'm not very happy with the flexibility of this func.
2024-10-08 02:49:07
I use much hard values... to implement using the psy method, will most likely have to change the entire logic of the psy function
2024-10-08 03:03:01
Although... in general, the code is written right inside the source code, so I can insert it into my fork with default parameters. The problem is that the psy function changes the QP (frame-luma-bias 100) 10 times lower than I need. because I'm doing a very strong compression. So this feature will only help me a little by default.
2024-10-08 03:06:35
```c qindex += (int32_t)rint(-pow((255 - pcs->ppcs->avg_luma) / (1024.0 / (pcs->temporal_layer_index * 4)), 0.5) * (qindex / 8.0)); ```
2024-10-08 03:29:01
remove temporal_layer_index `qindex += (int32_t)rint(-pow((255 - pcs->ppcs->avg_luma) / (256), 0.5) * (qindex / 8.0));`
2024-10-08 03:30:48
a very interesting thing that I did not want to add in any way is an increase in QP with strong brightness. I definitely didn't want that.
2024-10-08 05:29:32
The formula turned out to be not so simple
2024-10-08 05:31:26
2024-10-08 05:32:03
since QP is an integer, it little jumps
2024-10-08 07:43:16
It turned out to be a very difficult job on the eye. In addition, for some reason in function removes the effect for keyframes, which can cause a sharp jump in quality from the keyframe to the regular frame
afed <https://github.com/gianni-rosato/svt-av1-psy>
2024-10-08 11:28:34
```C qindex += (int32_t)rint(-pow((255 - pcs->ppcs->avg_luma) / (256.0), 12.0) * qindex); ``` As a result, after half a day of testing, I took the function in this form, on any default encoding
2024-10-09 08:38:27
an interesting bug mozjpeg-v4.1.1 DCT block in the 1280x7000 image is incorrectly rotated encoded
2024-10-09 08:41:15
mozjpeg-v4.1.1-win-x64\shared\Release\cjpeg.exe -baseline -notrellis -sample 2x2 -quality 50 -tune-psnr -quant-table 1 VK.png > VK.jpg
_wb_
2024-10-09 09:03:05
Woops how does that happen? Overflow in their deringing trick?
CrushedAsian255
2024-10-09 09:03:26
If anything looks more like it was inverted
_wb_
2024-10-09 09:03:43
Have you opened an issue for it? It should get fixed
username
2024-10-09 09:04:14
well first the latest version should probably be tested https://github.com/garyzyg/mozjpeg-windows/releases/latest
2024-10-09 09:05:10
the official mozjpeg repo can't do release tags anymore because they all lost permissions to do so
CrushedAsian255
2024-10-09 09:05:27
what
_wb_
2024-10-09 09:06:25
This looks like the first AC coefficient got a sign flip, which you can totally get if you exaggerate coefficients and rely on decoder clamping to get sharp black/white edges without ringing, so you end up with an int16 overflow
2024-10-09 09:07:44
At least that is where I would look first to find this bug
username
CrushedAsian255 what
2024-10-09 09:08:09
https://github.com/mozilla/mozjpeg/issues/424#issuecomment-1249902681
DZgas Ж
_wb_ Have you opened an issue for it? It should get fixed
2024-10-09 11:21:44
I don't know, maybe I'm cursed. everything I touch is broken, codecs, browsers, operating systems. sometimes it seems to me that I am the only one who Uses. The only one who compresses, who plays games. the only user of manjaro. It's all such a disappointment. I don't mind reporting it here, because there are people sitting here who care, but, I don't care, I showed a bug, you can repeat the bug and report it yourself
2024-10-09 11:32:15
for example, there is a bug in aac fdk, because of which my 2013 TV loses sound every 1-2 hours during playback, somewhere the legacy is broken, in some one byte. but no one knows about it
2024-10-09 11:34:21
Samsung J4 2018 does not support 10 bit AVC hardware decoder. but all AVC videos are decoded through a hardware decoder. Breaking 10 bits and YUV444 videos
2024-10-09 11:38:25
There were usually so many mistakes with manjaro that I'm surprised they haven't closed yet, they're so broken, part of life has become -- The only post on the entire Internet about error... without a solution
2024-10-09 11:39:00
Okay. here's a fun introduction to the ubuntu installer
RaveSteel
DZgas Ж I don't know, maybe I'm cursed. everything I touch is broken, codecs, browsers, operating systems. sometimes it seems to me that I am the only one who Uses. The only one who compresses, who plays games. the only user of manjaro. It's all such a disappointment. I don't mind reporting it here, because there are people sitting here who care, but, I don't care, I showed a bug, you can repeat the bug and report it yourself
2024-10-09 11:40:47
I know someone like that too lmao
DZgas Ж
2024-10-09 11:40:53
I am sure that I would write about errors in Jpeg XL every day. But so far I don't use Jpeg XL as I would like, only in Modular mode to archive photos once every half years
_wb_
2024-10-09 11:44:36
https://github.com/mozilla/mozjpeg/issues/444
DZgas Ж
_wb_ https://github.com/mozilla/mozjpeg/issues/444
2024-10-09 11:45:07
👍
2024-10-09 11:45:53
I'm surprised that didn't stop you
_wb_
2024-10-09 11:51:31
I didn't realize it had become that inactive. In any case a bug like that should be an easy fix, maybe I will look at it myself if it remains open for too long
DZgas Ж
2024-10-09 11:53:41
famously
RaveSteel
2024-10-09 11:54:01
Can the issue be replicated by using libjpeg-turbo? or does it only affect mozjpeg?
DZgas Ж
RaveSteel Can the issue be replicated by using libjpeg-turbo? or does it only affect mozjpeg?
2024-10-09 11:55:01
the file is here, you can test it yourself https://discord.com/channels/794206087879852103/805176455658733570/1293674664798978150
_wb_
2024-10-10 12:01:45
Likely only mozjpeg, disabling the overshoot thing (which is a mozjpeg addition) solves the issue.
Demiurge
2024-10-10 12:04:16
Maybe use plain arch instead of manjaro 👀
DZgas Ж
Demiurge Maybe use plain arch instead of manjaro 👀
2024-10-10 12:12:50
the inability to install without an internet connection is the funniest thing I've seen. the instructions for moving the offline filesystem from a USB flash drive to a disk are more long than a bible
RaveSteel
2024-10-10 12:13:31
Use archinstall or EndeavourOS or one of the other Arch derivatives
Demiurge
2024-10-10 12:14:30
Why would you do that? You will have to download updates anyways. If you bootstrap arch with the latest online packages then you don't need to waste time downloading updates
DZgas Ж
RaveSteel Use archinstall or EndeavourOS or one of the other Arch derivatives
2024-10-10 12:14:54
i use manjaro ok just sudo systemctl disable --now lightdm.service --force and kill every bad things
Demiurge
2024-10-10 12:15:29
The USB is meant as a bootable recovery and rescue disk, not as a template for your system
DZgas Ж
RaveSteel Use archinstall or EndeavourOS or one of the other Arch derivatives
2024-10-10 12:15:45
> You will have to download updates anyways no
Demiurge
2024-10-10 12:16:18
It has recovery and backup and partclone tools installed for system rescue
2024-10-10 12:17:22
It's a rescue disk, you're not meant to just copy it onto your hard drive...
DZgas Ж
Demiurge The USB is meant as a bootable recovery and rescue disk, not as a template for your system
2024-10-10 12:17:26
You don't understand what I'm talking about. Arch cannot install itself. A bootable image to disk. can't. it does not have the ability to perform the installation. nothing at all. You need an internet connection
RaveSteel
2024-10-10 12:17:59
Do you not have an internet connection?
DZgas Ж
RaveSteel Do you not have an internet connection?
2024-10-10 12:18:43
Why do I have to have it? it is not written on the ARCH website that this image is ONLINE-ONLY
2024-10-10 12:19:31
This is rather one of the funny problems. One of the hundreds I come across all the time
Demiurge
DZgas Ж You don't understand what I'm talking about. Arch cannot install itself. A bootable image to disk. can't. it does not have the ability to perform the installation. nothing at all. You need an internet connection
2024-10-10 12:19:34
Yes, it's true. It's not designed to copy itself onto the drive. It's designed to be a rescue disk you can use for backup and repair purposes, and it's designed to retrieve packages from online
lonjil
2024-10-10 12:20:28
you don't need it to "copy itself onto the drive" to have a linux image that can do an installation without an internet connection
Demiurge
2024-10-10 12:20:37
It's designed that way because it saves time and disk space as long as you have an internet connection
DZgas Ж
2024-10-10 12:21:05
The problem was funnier when I found out that DEBIAN does not have a built-in SSH server in the CD image version. And I just couldn't connect the system local without an internet connection without install openssh server.
lonjil
2024-10-10 12:21:24
For example, Alpine Linux images simply have a large collection of package archives in a directory on the install image, which of course the package manager can install from just as well as from the Internet.
DZgas Ж
Demiurge Yes, it's true. It's not designed to copy itself onto the drive. It's designed to be a rescue disk you can use for backup and repair purposes, and it's designed to retrieve packages from online
2024-10-10 12:22:31
That's why I call it more directly and offensively - not independent OS
Demiurge
2024-10-10 12:24:32
The arch iso has custom config designed to be a bootable rescue disk, you need different settings if it's only meant to stay on a single computer.
2024-10-10 12:25:06
It has lots of drivers for every type of system you could plug it into, but you only need the drivers for the system its being installed on
2024-10-10 12:25:34
What's wrong with installing it by downloading the latest packages online?
2024-10-10 12:25:50
Isn't that more logical?
2024-10-10 12:26:57
Personally I think Arch is not that great but it's probably the simplest Linux
2024-10-10 12:27:56
Debian is so bad it's tragic
DZgas Ж
lonjil For example, Alpine Linux images simply have a large collection of package archives in a directory on the install image, which of course the package manager can install from just as well as from the Internet.
2024-10-10 12:28:32
as the person who knows more than me told me when I wrote to him, "what the fuck did I install Alpine on your advice and it can't run programs for me": --- Uh. glibc... localhost:~# ldd mysql libs (x86_64)1.2.4_git20230717 Oh, yes, that's what I was talking about... use manjaro... or something else)))
Demiurge
2024-10-10 12:31:12
Symbol not found just means you're trying to run a dynamic linked binary that has missing library dependencies.
2024-10-10 12:31:25
You are trying to run a binary that was compiled for glibc
RaveSteel
DZgas Ж as the person who knows more than me told me when I wrote to him, "what the fuck did I install Alpine on your advice and it can't run programs for me": --- Uh. glibc... localhost:~# ldd mysql libs (x86_64)1.2.4_git20230717 Oh, yes, that's what I was talking about... use manjaro... or something else)))
2024-10-10 12:31:32
musl moment
Demiurge
2024-10-10 12:31:49
You should try running a non-glibc version
2024-10-10 12:31:53
Or compiling it
DZgas Ж
Demiurge What's wrong with installing it by downloading the latest packages online?
2024-10-10 12:32:00
I believe that everything I can use should work offline too☄️
Demiurge
2024-10-10 12:32:10
Or sometimes installing gcompat helps
RaveSteel
DZgas Ж I believe that everything I can use should work offline too☄️
2024-10-10 12:32:35
Luckily there are lots of installers providing an offline installer
2024-10-10 12:32:56
I.e. EndeavourOS, to just name one of them
Demiurge
DZgas Ж I believe that everything I can use should work offline too☄️
2024-10-10 12:33:02
I mean it could work offline but the arch iso was just designed that way to save space on the ISO
DZgas Ж
2024-10-10 12:33:06
yep like this arch offline installer: manjaro
Demiurge
2024-10-10 12:34:09
Just a suggestion. It might be simpler for you to just use arch
2024-10-10 12:34:19
And install it online
DZgas Ж
2024-10-10 12:37:46
https://www.linux.org.ru/forum/linux-hardware/16090572 manjaro bug from 2021 (still work) --- The WI-FI device is turned off by the system. after opening the laptop lid. I checked it a week ago
Demiurge Just a suggestion. It might be simpler for you to just use arch
2024-10-10 12:41:55
I don't think it meets my requirement to be offline. It's strange that you ignore it, giving an example of some advantages that I don't need at all.
RaveSteel I.e. EndeavourOS, to just name one of them
2024-10-10 12:42:51
A system that I really just didn't get to, having found something sufficient
Demiurge You should try running a non-glibc version
2024-10-10 12:44:52
No, the operating system is designed to run programs, the only task, not the other way around. Not in our time.
RaveSteel I know someone like that too lmao
2024-10-10 01:00:17
ask him to become a speedrunner of games
Demiurge
2024-10-10 01:01:08
You can't run precompiled binaries that depend on things you don't have. A lot of games on steam no longer work on modern linux because they depend on old version of glibc
2024-10-10 01:02:09
You can't expect to be able to run some random dynamic linked binary file on any system
2024-10-10 01:02:41
Just use a different, compatible binary or make one
2024-10-10 01:03:19
And avoid glibc because it's a compatibility mess
DZgas Ж
Demiurge You can't expect to be able to run some random dynamic linked binary file on any system
2024-10-10 01:03:33
i change os
Demiurge
2024-10-10 01:03:58
OS with new glibc can’t even run binaries compiled with old glibc
2024-10-10 01:04:24
glibc is one of the biggest problems with Linux as a whole
2024-10-10 01:05:04
Alpine also has a package called gcompat which allows some glibc programs to run
2024-10-10 01:05:22
Made by adelie linux developer
DZgas Ж
Demiurge OS with new glibc can’t even run binaries compiled with old glibc
2024-10-10 01:05:28
this is the problem of the old one. it is not considered in my case. I'm not interested in that. the new software does not run on the new Linux. alpine moment
Demiurge
2024-10-10 01:06:10
Because it was compiled for a different system. You can't run Darwin binaries on Linux either
DZgas Ж
Demiurge Because it was compiled for a different system. You can't run Darwin binaries on Linux either
2024-10-10 01:06:34
linux and linux
Demiurge
2024-10-10 01:06:43
Symbol not found errors are easy to fix
2024-10-10 01:06:52
Probably just install gcompat
2024-10-10 01:07:11
But you really ought to use a version that isn't compiled for glibc because that's inefficient
2024-10-10 01:07:46
It has a lot of extra symbols that don't need to be there and can be removed if you compile with musl
DZgas Ж
Demiurge Because it was compiled for a different system. You can't run Darwin binaries on Linux either
2024-10-10 01:08:31
I don't agree with you. That's how I see it: I have a program. I can run it on manjaro, I can run it on ubuntu, on mint. But I can't run it on alpine. This means that apline is a broken OS. And I won't use it anymore. Do you understand?
2024-10-10 01:09:33
Even more specifically: the program itself is much more important than the OS that runs it.
Demiurge
2024-10-10 01:09:46
Not including glibc was an intentional tactical decision by the alpine devs
2024-10-10 01:11:09
I wouldn't consider it broken just because the default install doesn't have glibc. It's still linux and you can still run glibc on it if you wanted to, or use gcompat to replace glibc
DZgas Ж
Demiurge Not including glibc was an intentional tactical decision by the alpine devs
2024-10-10 01:11:25
That it's his right. > if you compile with m... But I'm not going to do anything at all.
Demiurge
2024-10-10 01:13:24
There's even a whole page about this https://wiki.alpinelinux.org/wiki/Running_glibc_programs
2024-10-10 01:13:54
Use flatpak, or just type "apk add gcompat" if that isn't too hard to do ;)
2024-10-10 01:15:24
Or, you know, avoid using binary files that weren't compiled for alpine
DZgas Ж
2024-10-10 01:15:57
the Linux application does not run on Linux, because this Linux is not the Linux that it should be to run the application. This is one of the reasons why Windows is popular, why x86 is popular. That's why. It just works
Demiurge
2024-10-10 01:15:59
Even on Ubuntu you don't usually use binaries, you usually run software compiled for ubuntu
2024-10-10 01:17:02
Using build tools designed and optimized for ubuntu, the platform it will run on. Same applies to all distros like Alpine. It's always most optimal that way
DZgas Ж the Linux application does not run on Linux, because this Linux is not the Linux that it should be to run the application. This is one of the reasons why Windows is popular, why x86 is popular. That's why. It just works
2024-10-10 01:18:08
That's a legitimate problem with glibc and with Linux project refusing to include libc as part of Linux
2024-10-10 01:18:50
Linux is intentionally incomplete and some people think it's a virtue but I agree with you that it's not
DZgas Ж
Demiurge Using build tools designed and optimized for ubuntu, the platform it will run on. Same applies to all distros like Alpine. It's always most optimal that way
2024-10-10 01:19:07
"But they call all this one common Linux." Although as I see it, you don't mind diversity to the extent that some programs don't run on different Linux distributions.
Demiurge
2024-10-10 01:19:26
Linux is successful in spite of its lack of included libc, not because of it
2024-10-10 01:19:45
Linux is successful in spite of gpl, not because
2024-10-10 01:20:20
A lot of things people consider strengths of Linux are not really helping it succeed
DZgas Ж "But they call all this one common Linux." Although as I see it, you don't mind diversity to the extent that some programs don't run on different Linux distributions.
2024-10-10 01:20:47
No, I think it's a problem, but it's not the fault of Alpine
2024-10-10 01:21:02
It's a fault of the crappy state of Linux ecosystem
DZgas Ж
2024-10-10 01:21:06
the way
Demiurge
2024-10-10 01:22:27
And the arbitrary refusal of Linux to provide the bare minimum OS userspace library and tools
DZgas Ж
Demiurge It's a fault of the crappy state of Linux ecosystem
2024-10-10 01:23:19
Oh wonderful world
Demiurge
2024-10-10 01:25:39
If Linux was more like BSD it would be more likely to succeed without sabotaging itself. People wrongly attribute Linux success to its flaws
DZgas Ж
2024-10-10 01:25:44
And yet, a linux binary file remains the most stable way for a program at the moment, it is always there as a file, and it will always run as a program. I have an OS and I have a program. And I'm pretty sure that it will start at any moment. On any computer, in any environment.
2024-10-10 01:26:22
I have never seen a living person who would work on BSD. Really.
2024-10-10 01:26:32
<:Linux_Tux:806135372739510282>
Demiurge
2024-10-10 01:28:05
It succeeded by being in the right place at the right time in spite of its major flaws. if it adopted good ideas from BSD it would be in a lot more powerful position but instead Linux is very stagnant
2024-10-10 01:28:35
And this compatibility mess is a direct result of Linux refusing to evolve
2024-10-10 01:29:08
Because it doesn't provide a bare minimum baseline that can be expected on every system.
2024-10-10 01:29:39
Instead glibc does, and a terrible job too, since it's the main source of cross distro compat errors
2024-10-10 01:29:57
Even before musl was created to be a simpler alternative
2024-10-10 01:31:04
If you need compatibility with glibc there are plenty of different ways to do that on alpine
DZgas Ж
2024-10-10 01:31:33
dietlibc, uClibc, Newlib, musl, Klibc
2024-10-10 01:32:11
very open very source
Demiurge If you need compatibility with glibc there are plenty of different ways to do that on alpine
2024-10-10 01:35:01
I still live in a world where I can use neither arch nor alpine. and downloading and installing any linux is 5+5 minutes
Demiurge
2024-10-10 01:35:04
Completely abandoning glibc would be a step in the right direction. It's very telling that software compiled with musl can run on any system but software compiled with glibc can only run on certain versions of glibc.
2024-10-10 01:36:11
musl actually makes it possible to just have a "linux binary" that works everywhere, not a "glibc 2.19 linux binary"
2024-10-10 01:39:53
If you want Linux to evolve and become more universally compatible like that then you should support what the musl people are trying to accomplish for Linux... because Linus refuses to do it ;(
2024-10-10 01:41:21
It's really the fault and responsibility of Linus that we have this problem since he intentionally only wants to provide an incomplete and half baked system
2024-10-10 01:43:44
Some people actually argue that it would be a bad thing if Linux was less incomplete and try to justify the lack of effort
DZgas Ж
2024-10-10 01:44:46
It's good that I'm not a Linux developer
2024-10-10 01:45:04
and you too
Demiurge
2024-10-10 01:48:54
Considering how glacially slow the kernel gets improved it would be pretty frustrating I imagine
2024-10-10 01:49:43
It's basically just a collection of drivers with ancient glue code in between
2024-10-10 01:50:43
Ancient stagnant code that never gets refactored or replaced with more fault tolerant and cellular code
2024-10-10 01:52:36
Andy Tenenbaum's old criticism of Linux is still relevant today. Linus read his book but learned no lessons from it he said... the most basic and uninspired kernel with no separation and compartmentalization of code or fault-tolerant design paradigms
2024-10-10 01:53:18
Just a big monolithic kernel
2024-10-10 01:54:12
Only successful because there were no other alternatives at the time it was released
DZgas Ж
DZgas Ж ```C qindex += (int32_t)rint(-pow((255 - pcs->ppcs->avg_luma) / (256.0), 12.0) * qindex); ``` As a result, after half a day of testing, I took the function in this form, on any default encoding
2024-10-10 03:34:23
As a result of another day of tests, the dark areas became too demanding, so I had to change the function a little more ||Plot3D[-((255 - x) / 256)^8.0 * (y/4), {x, 0, 255}, {y, 1, 64}]|| `qindex += (int32_t)rint(-pow((255 - pcs->ppcs->avg_luma) / (256.0), 8.0) * (qindex/4.0));`
Smegas
2024-10-11 08:19:10
When I use --xyb for option 420 or 422 in jpegli, the image is very blurry compared to the image without using --xyb.
2024-10-11 08:20:04
With high quality settings.
CrushedAsian255
2024-10-11 08:20:25
I don't think XYB is optimised for 4:2:2
Tirr
2024-10-11 08:21:48
that artifacts don't look like XYB at all for me, they are rather RGB artifacts. I guess something's going wrong
username
2024-10-11 08:22:59
chroma subsampling selection in jpegli is messed up in multiple ways. for example there are two different 4:2:0 (or was it 4:2:2 or both?) modes but good luck trying to intentionally switch between them
2024-10-11 08:23:34
also non-xyb defaults to 4:4:4
2024-10-11 08:24:45
iirc using XYB with no forced chroma subsampling results in a different 4:2:0 then if you force 4:2:0
2024-10-11 08:26:28
https://github.com/libjxl/libjxl/issues/3605
2024-10-11 08:28:41
wait here this comment explains what is actually happening with what I am remembering https://github.com/libjxl/libjxl/issues/3605#issuecomment-2132425056
jonnyawsom3
2024-10-11 12:40:31
I think the blue channel subsampling was disabled to make it compatible with JXL transcoding
_wb_
2024-10-11 01:34:28
https://gitlab.com/wg1/jpegxe/ctc_tools/ https://jpeg.org/jpegxe/documentation.html Does anyone feel like making a submission to the JPEG XE call for proposals?
2024-10-11 01:40:48
The "uncompressed" format here is a sequence of 'events', where each event can be of different types and consists of bit-packed fields with an interpretation that depends on the event type.
lonjil
2024-10-11 01:41:49
what is JPEG XE?
_wb_
2024-10-11 01:43:03
something that doesn't exist yet, it's in exploration stage. It's for event-based vision. This document describes what they want to do: https://ds.jpeg.org/documents/jpegxe/wg1n100887-104-REQ-Use_Cases_and_Requirements_for_JPEG_XE_v2_0.pdf
yurume
2024-10-11 02:25:01
At this point we have too many JPEG X<alphabet> formats and more creative names would be preferred....
Cacodemon345
2024-10-11 03:11:33
I ain't interested in this. Not sure this will be useful as camera sensor standard...
Meow
2024-10-11 04:24:24
XI = 11 XV = 15 XL = 40 XC = 90
spider-mario
2024-10-11 04:26:31
“JPEG XV” would sound quite intriguing, I must admit
2024-10-11 04:26:34
extra value?
jonnyawsom3
2024-10-11 05:24:39
JPEG Extra Virgin
spider-mario
2024-10-11 05:46:13
like olive oil, right?
Tirr
2024-10-11 05:48:50
maybe JPEG 15
2024-10-11 05:49:04
ah I was late
jonnyawsom3
spider-mario like olive oil, right?
2024-10-11 05:49:14
"Exclusivity deal signed with MindGeek"
Posi832
2024-10-11 09:30:30
Next format should be called JPEG XXL
spider-mario
2024-10-11 09:36:51
or JPEG XML
CrushedAsian255
_wb_ The "uncompressed" format here is a sequence of 'events', where each event can be of different types and consists of bit-packed fields with an interpretation that depends on the event type.
2024-10-11 09:41:05
JpegRTC
_wb_ The "uncompressed" format here is a sequence of 'events', where each event can be of different types and consists of bit-packed fields with an interpretation that depends on the event type.
2024-10-11 09:42:54
How does this have anything to do with encoding and compression of images though
2024-10-11 09:43:13
This just looks like generalised MIDI
_wb_
2024-10-11 09:43:53
It is image data, just sparse, not with full frames of rectangular pixel grids
CrushedAsian255
2024-10-11 09:45:34
So just JPEG XL patches and frames?
2024-10-11 09:45:52
This feels like something that could extend jpeg xl
_wb_
2024-10-11 09:50:26
More like single pixels. But compression should be much simpler than jxl, it's more like XS, low-complexity
CrushedAsian255
2024-10-11 09:51:08
Is it for real time or meant to be highly compressed
_wb_
2024-10-11 09:52:05
Most use cases real time, though I guess sometimes they also need archival and then you can do something more
CrushedAsian255
2024-10-11 09:52:35
You could just do brotli
2024-10-11 09:54:41
Is there a spec?
_wb_
2024-10-11 09:54:47
Probably you can do better than generic byte compression by exploiting the field structure
CrushedAsian255 Is there a spec?
2024-10-11 09:55:47
The uncompressed format is described here: https://ds.jpeg.org/documents/jpegxe/wg1n100891-104-CPM-Common_Test_Conditions_for_JPEG_XE_v2_0.pdf
CrushedAsian255
_wb_ The uncompressed format is described here: https://ds.jpeg.org/documents/jpegxe/wg1n100891-104-CPM-Common_Test_Conditions_for_JPEG_XE_v2_0.pdf
2024-10-11 09:56:54
So that is what has to be made as small as possible?
_wb_
2024-10-11 09:57:22
Yes, there are also some example data files in that format available
2024-10-11 09:58:22
I assume e.g. typically the x,y coordinates will be correlated so probably some kind of delta coding will be useful
Nova Aurora
Posi832 Next format should be called JPEG XXL
2024-10-11 09:59:20
We need another x to show how powerful it is 😉
DZgas Ж
2024-10-12 03:57:49
what is the most indestructible image format? So that I can shooting it, delete bytes, replace bytes, add bytes and trim data. It is quite possible to do this for MP3 because it is the most indestructible format created specifically for CD. But it's a sound. What about the pictures?
2024-10-12 03:59:17
Even though Jpeg XL is divided in blocks of 256x256. Changing 1 byte anywhere will completely break it for decoding
CrushedAsian255
2024-10-12 04:01:35
Maybe something like JPEG XS?
2024-10-12 04:01:54
That JPEG XE proposal probably would have high resilience to corruptions as well
2024-10-12 04:02:11
The thing is unlike video or sound there is usually no reason to steam an image
2024-10-12 04:02:29
You usually either want the whole image or you don’t want it all, and you can usually load the whole image in one go
2024-10-12 04:03:00
So there isn’t really any image formats with internal packet loss / corruption compensation like video or audio
2024-10-12 04:03:30
Something like PPM since it is uncompressed would naturally be relatively endurant
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素
2024-10-12 04:18:52
Jia Tan XD
DZgas Ж
CrushedAsian255 So there isn’t really any image formats with internal packet loss / corruption compensation like video or audio
2024-10-12 04:20:12
🤔
2024-10-12 04:20:23
need to invent
lonjil
DZgas Ж Even though Jpeg XL is divided in blocks of 256x256. Changing 1 byte anywhere will completely break it for decoding
2024-10-12 04:22:07
that's probably just the current decoder implementation choosing to bail if something is wrong
dogelition
DZgas Ж what is the most indestructible image format? So that I can shooting it, delete bytes, replace bytes, add bytes and trim data. It is quite possible to do this for MP3 because it is the most indestructible format created specifically for CD. But it's a sound. What about the pictures?
2024-10-12 04:37:04
CD audio doesn't have anything to do with MP3 though
DZgas Ж
dogelition CD audio doesn't have anything to do with MP3 though
2024-10-12 04:38:38
I didn't even talk about CD audio. I was talking about CDs
2024-10-12 04:38:54
the disc
dogelition
2024-10-12 04:39:39
as in just putting files on a CD?
DZgas Ж
2024-10-12 04:40:04
<:PepeGlasses:878298516965982308> mp3 on CD
dogelition
2024-10-12 04:40:21
i'm confused
DZgas Ж
2024-10-12 04:40:38
what
2024-10-12 04:41:25
How could MP3 become a super successful format, without the internet, or anything else. in 1993