|
Scope
|
2021-08-08 12:57:18
|
https://www.gdcc.tech/rules/
|
|
|
|
veluca
|
2021-08-08 12:57:20
|
dim 3 and 4 in general have much weaker prediction
|
|
|
Scope
|
2021-08-08 12:57:42
|
<https://www.ebi.ac.uk/empiar/>
<https://www.sdss.org/>
<https://pds-atmospheres.nmsu.edu/data_and_services/atmospheres_data/catalog.htm>
|
|
2021-08-08 01:00:25
|
Maybe something like JXL + internal Brotli (for data) might work
|
|
|
|
veluca
|
2021-08-08 01:08:32
|
you can always stuff whatever you want in a JUMBF box of some sort and then brotlify it...
|
|
|
diskorduser
|
2021-08-08 04:39:07
|
But brotli encoding takes more time. Encoding a image with brotli will be slow. Isn't?
|
|
|
Scope
|
2021-08-08 04:40:52
|
Because it's not just images, it's images and specific data
|
|
2021-08-08 04:41:58
|
π€
https://bugzilla.mozilla.org/show_bug.cgi?id=1723555
|
|
|
_wb_
|
|
diskorduser
But brotli encoding takes more time. Encoding a image with brotli will be slow. Isn't?
|
|
2021-08-08 04:43:47
|
Brotli has a speed setting, it can be very fast and still better than gzip
|
|
|
diskorduser
|
2021-08-08 04:44:50
|
So brotli image format :p
|
|
|
Scope
|
2021-08-08 04:46:59
|
Brotli compression mode is already available and supported in JXL
|
|
|
diskorduser
|
2021-08-08 04:48:21
|
I thought it is only for metadata
|
|
|
_wb_
|
2021-08-08 04:49:02
|
We used to have Brotli itself as a separate Modular entropy coder backend, but we removed that from the spec
|
|
2021-08-08 04:49:39
|
Instead we added lz77 to the ANS entropy coder
|
|
2021-08-08 04:50:28
|
Which basically gives the same power as Brotli except for the initialization dictionary (which is useless for images anyway)
|
|
2021-08-08 04:51:27
|
That means you don't need Brotli if you just want to decode pixels (which is quite good because otherwise libjxl_dec would be at least twice as large)
|
|
2021-08-08 04:52:55
|
For metadata we do still have Brotli though, since 1) Brotli is useful for that, and 2) we assume decoder binary size is not a big deal in use cases where you care about metadata
|
|
|
Scope
|
2021-08-08 04:54:55
|
And also Brotli lib is usually already available in browsers
|
|
|
diskorduser
|
2021-08-08 04:56:34
|
What if you remove jpg decoder and separate brotli libs in browsers and use just djxl for those things
|
|
2021-08-08 05:01:33
|
Or djxl uses brotli libs of browsers so doing it doesn't make any sense?
|
|
|
Scope
|
2021-08-08 05:03:13
|
I think so, and for Jpeg it is possible, but the Jpeg encoder is still used and needed, so that is the problem
|
|
|
diskorduser
|
2021-08-08 05:17:11
|
Is it possible to predict missing chroma by luma on 4:2:0 recompressed-jpg jxl? Or Something like this :
https://gist.github.com/igv/a015fc885d5c22e6891820ad89555637
|
|
|
_wb_
|
2021-08-08 06:35:39
|
The thing with chroma from luma in jxl is that in case of 4:2:0 it will use the top left quadrant of luma to predict chroma, which is quite likely totally not useful
|
|
|
Scope
|
2021-08-08 11:54:50
|
<https://encode.su/threads/3108-Google-s-compression-proje%D1%81ts?p=70534&viewfull=1#post70534>
|
|
2021-08-08 11:57:02
|
|
|
2021-08-09 01:07:53
|
As far as I remember it requires JPEG XT (although I have seen 10-bit modifications of regular JPEG, but they will not be compatible with most decoders)
|
|
|
|
veluca
|
2021-08-09 01:33:01
|
well, DCT coefficients of JPEG 1 are 12-bit
|
|
2021-08-09 01:33:23
|
you can gain a few bits using more precision in IDCT + ycbcr conversion
|
|
2021-08-09 01:34:29
|
I'm not 100% sure how many more bits you get that way, but I suspect you gain one or two bits over "traditional" JPEG decoding
|
|
2021-08-09 02:41:21
|
possibly yes
|
|
2021-08-09 02:41:25
|
didn't test it yet
|
|
2021-08-09 02:53:07
|
the simplest way to try it out is decompress to PNG with libjpeg and get version 1, and do lossless JPEG recompression and then decompress that to PNG for version 2, and then see if you can tell the difference π
|
|
2021-08-09 02:55:48
|
yup
|
|
2021-08-09 02:55:59
|
iirc libjpeg, libjpeg-turbo and mozjpeg all decode in the same way
|
|
|
Jyrki Alakuijala
|
2021-08-09 04:18:14
|
I believe yes. My back-of-the-envelope (or actually back in the furthest neuron) hints that JPEGs can be decoded to about 10.5 bits
|
|
2021-08-09 04:19:23
|
jpeg xl computes intermediate results with higher accuracy -- but even more accuracy is possible than jpeg xl is producing today (i.e., we can go to HDR10+ with traditional jpegs)
|
|
|
|
veluca
|
|
Jyrki Alakuijala
jpeg xl computes intermediate results with higher accuracy -- but even more accuracy is possible than jpeg xl is producing today (i.e., we can go to HDR10+ with traditional jpegs)
|
|
2021-08-09 04:36:13
|
how exactly? floats are pretty precise as it is...
|
|
|
_wb_
|
2021-08-09 05:26:55
|
What's the PAE and MAE we can get on a jpeg with all-1s quant tables?
|
|
2021-08-09 05:28:54
|
I suppose we need a jpeg encoder that does ycbcr and fdct in high precision (starting from 16-bit png, say)
|
|
|
Jyrki Alakuijala
|
|
veluca
how exactly? floats are pretty precise as it is...
|
|
2021-08-09 07:06:07
|
today we would show traditional jpegs in an 8 bit frame buffer in the end
|
|
|
_wb_
|
2021-08-09 07:31:45
|
What about chrome? Wouldn't we give it half float buffers if the jpeg has a PQ or HLG icc profile?
|
|
2021-08-09 07:32:02
|
But we need a jpeg encoder that takes more than 8-bit rgb as input
|
|
|
Jyrki Alakuijala
|
2021-08-09 08:16:43
|
to be honest, I don't know -- if we do, that's great
|
|
|
spider-mario
|
|
_wb_
But we need a jpeg encoder that takes more than 8-bit rgb as input
|
|
2021-08-09 08:19:27
|
iirc, libjpeg can optionally be built in 12-bit mode
|
|
2021-08-09 08:19:38
|
that was one reason for using `JSAMPLE`/`MAXJSAMPLE`/`BITS_IN_JSAMPLE` in `codec_jpg`
|
|
2021-08-09 08:20:44
|
but I donβt think we have ever actually tested it
|
|
|
_wb_
|
2021-08-09 08:53:44
|
Does 12-bit mode libjpeg produce jpegs that can be decoded with default libjpeg?
|
|
|
spider-mario
|
2021-08-09 08:55:41
|
thatβs something I wasnβt sure of and would like to try
|
|
|
|
veluca
|
2021-08-10 01:46:30
|
it's going to be subtle for sure
|
|
2021-08-10 01:53:46
|
... probably? not 100% sure
|
|
|
spider-mario
thatβs something I wasnβt sure of and would like to try
|
|
2021-08-10 01:59:00
|
well, at least a 12-bit JPEG cannot be read by imagemagick nor cjxl
|
|
|
_wb_
|
2021-08-10 05:46:22
|
Yes, but so is arithmetic coding, lossless jpeg, and hierarchical jpeg, which are all in the 1992 spec but not supported by most jpeg decoders
|
|
|
spider-mario
|
|
veluca
well, at least a 12-bit JPEG cannot be read by imagemagick nor cjxl
|
|
2021-08-10 08:43:36
|
oh, disappointing
|
|
2021-08-10 08:43:55
|
was it one you generated yourself?
|
|
|
|
veluca
|
2021-08-10 09:09:54
|
nah, random one from the libjpeg-turbo test suite
|
|
|
diskorduser
|
2021-08-10 02:45:36
|
anyone use android 12. avif works on it?
|
|
|
improver
|
2021-08-10 04:33:18
|
android11, opens fine in chrome but not in files. i wonder if/when ill get update to 12
|
|
2021-08-10 04:34:16
|
still in beta. not anytime soon i guess
|
|
|
diskorduser
|
2021-08-10 05:10:32
|
Pixel phones have android 12 beta
|
|
2021-08-10 05:12:33
|
Someone ported android 12 to my phone. But I'm lazy to install it.
|
|
|
Scope
|
2021-08-10 06:28:05
|
https://medium.com/adobetech/image-optimisation-with-next-gen-image-formats-webp-and-avif-248c75afacc4
|
|
2021-08-10 06:29:45
|
> How do we ensure if the image has same visual quality? Answer is PSNR (Peak Signal to Noise Ratio)
π€
|
|
|
_wb_
|
2021-08-10 06:31:49
|
Ugh why do people keep claiming psnr says anything about visual quality...
|
|
|
lithium
|
2021-08-10 06:40:26
|
I guess engineer love PSNR?
> PSNR, PSNR-HVS, Y-PSNR, X-PSNR
|
|
|
_wb_
|
2021-08-10 06:52:06
|
PSNR correlates with human perception like the weight of a painting in kilograms correlates to its artistic value.
|
|
|
|
veluca
|
2021-08-10 06:57:56
|
well, maybe to its economic value π
|
|
|
spider-mario
|
|
_wb_
Ugh why do people keep claiming psnr says anything about visual quality...
|
|
2021-08-10 07:11:35
|
because itβs _objective_!
|
|
2021-08-10 07:11:44
|
it answers the wrong question, but objectively
|
|
2021-08-10 07:11:47
|
like frequentist statistics
|
|
|
_wb_
|
|
veluca
well, maybe to its economic value π
|
|
2021-08-10 07:15:43
|
Right. It reflects the amount of paint that went into the painting, but it doesn't care about where what color went. Pretty accurate analogy.
|
|
|
spider-mario
|
2021-08-10 07:27:47
|
there are similar problems in medicine
|
|
2021-08-10 07:28:02
|
tests that turn out not to tell at all what they are supposed to tell
|
|
2021-08-10 07:28:14
|
but nevertheless they keep being used dogmatically because βitβs the best we haveβ
|
|
2021-08-10 07:30:20
|
with appeals to consequences (https://www.logicallyfallacious.com/logicalfallacies/Appeal-to-Consequences) like βif we are not to use this test, it means that we have no viable test for thisβ
|
|
2021-08-10 07:30:24
|
and, well, yes, it does mean that
|
|
2021-08-10 07:30:38
|
(sorry for the digression)
|
|
2021-08-10 07:31:54
|
basically, wishful thinking is rampant
|
|
2021-08-10 07:32:05
|
itβs good to be on the lookout for it (including in oneself)
|
|
|
_wb_
|
2021-08-10 07:46:27
|
In case of psnr, better metrics do exist though
|
|
2021-08-10 07:46:38
|
But even those are not perfect
|
|
2021-08-10 07:47:53
|
So I guess many people have the attitude "no objective metric is a substitute for subjective eval, so we might as well use the simplest and oldest metric"
|
|
|
spider-mario
|
2021-08-10 08:03:18
|
ah, so a nirvana fallacy (https://rationalwiki.org/wiki/Nirvana_fallacy) in response to new metrics?
|
|
|
_wb_
|
2021-08-10 08:25:43
|
Yes, I think so.
|
|
|
|
veluca
|
2021-08-10 08:30:36
|
to give PSNR some credit here, it is one of the few (only?) metrics I know how to solve some optimization problems for in an exact way, and in some cases that's even useful
|
|
2021-08-10 08:31:31
|
(in general, those cases are the ones where you manage to transform your image so that some weighted PSNR actually helps in that space :P)
|
|
|
_wb_
|
2021-08-11 06:03:11
|
It's also useful if your problem is not visual optimization but just "storing a 2D array of numbers in a lossy way".
|
|
2021-08-11 06:00:54
|
https://twitter.com/jonsneyers/status/1425512124063813640?s=19
|
|
|
Scope
|
2021-08-12 12:37:00
|
WebP2 has triangular previews, which is an interesting thing, but it is an additional image for the preview, unlike JXL, where it is part of the image
<https://000566524.codepen.website/?preview=AzFhqCBwmt34gyNzfH7iVoErk7T3RW6hS6Xo4vEq2AT2TcphQkyZZpyDDyZxHoGflzF7crbOvhvvl26pVjYkNWgdBdprEeqUURSfwEwXiVuHmt2kuSl8lO5ThRSfluaOTDjc/P/EdTHUHFkia/wBTh73YNYS9zFrrbzGtk8tS9gg3dJ5bAjiwmM+gxXvIu5rm42ObIr0YMxMgeAtWjV3mH/ita9nKI9PrRD7qvuQGoDg5BPhAO+kPXhddDDziI8Ocb3MLImE46ILFAEJTDeV4PvG2srfDAWVp+h8Dntgm4FnTr4h+NR23ExOx8CLakoSHI598ZzMOVMW3g==>
|
|
2021-08-12 12:45:01
|
So far, WebP2 differs from AVIF in more well designed as a format specifically for images and also better lossless compression, but if consider the combination of AVIF and Jpeg XL, it loses in almost everything
|
|
2021-08-12 12:49:09
|
Personally I would like to see WebP2 instead of AVIF, but when AVIF already exists this is a big problem, now for its existence WebP2 should be much better than AVIF (currently it is either a little better or about the same or worse in some areas)
|
|
|
Fraetor
|
2021-08-12 12:53:19
|
AVIF does seem like a bit of a bodged together thing that just came out of the side of AV1.
|
|
2021-08-12 12:54:14
|
The encoding is pretty good, but it lacks a lot of the niceties of a dedicated image format.
|
|
|
Scope
|
2021-08-12 01:00:36
|
AVIF is more like something made very quickly for images based on things already used or planned to use, like AV1 is already there as a decoder anyway (or an encoder somewhere), HEIF is also already used to support HEIC format on many smartphones (at least for decoding), so, like, let's take these ready and used technologies
|
|
|
_wb_
|
|
Fraetor
AVIF does seem like a bit of a bodged together thing that just came out of the side of AV1.
|
|
2021-08-12 01:24:02
|
That's exactly what it is. It's a great video codec with a mediocre and verbose image container around it.
|
|
|
BlueSwordM
|
2021-08-13 12:29:35
|
LMAO, does he know that distance is based on a metric as well?
|
|
|
Scope
|
2021-08-13 12:39:15
|
Drop Butteraugli and add PSNR <:Hypers:808826266060193874>
|
|
|
_wb_
|
2021-08-13 06:16:39
|
Well to be fair, there might be cases when the 'image' is not visual and then Butteraugli will not make sense, while psnr might.
|
|
|
BlueSwordM
|
2021-08-13 06:19:55
|
I think the guy is having trouble understanding however...
https://github.com/libjxl/libjxl/issues/436#issuecomment-898218016
|
|
|
_wb_
|
2021-08-13 06:22:19
|
If you do `-m -c 1 -Q 50,70` or something like that (no XYB, and 'higher' chroma quality than luma quality so they end up getting similar loss), it does basically psnr optimization
|
|
2021-08-13 06:23:46
|
(Lossy modular is quite simplistic and always optimizes for PSNR, just with different amount of loss for luma and for chroma, and by default it works in XYB)
|
|
|
diskorduser
|
2021-08-13 06:27:57
|
I think he needs tool a compare to compare other image formats using butteraugli
|
|
|
BlueSwordM
|
2021-08-13 06:28:56
|
I'm not sure.
I think he wanted one thing initially:
1. Have target PSNR/SSIM to objectively measure quality, not having to use target file size/target bpp
Then it devolved to him wanting that, and an easy way to compare encode "quality" using PSNR/SSIM. π
|
|
|
BlueSwordM
I'm not sure.
I think he wanted one thing initially:
1. Have target PSNR/SSIM to objectively measure quality, not having to use target file size/target bpp
Then it devolved to him wanting that, and an easy way to compare encode "quality" using PSNR/SSIM. π
|
|
2021-08-13 06:29:39
|
Actually, how did he get to looking at the file size/bpp option without looking at distance in the 1st place?
|
|
|
_wb_
|
2021-08-13 06:30:15
|
SSIM is slightly better but almost as bad as psnr
|
|
2021-08-13 06:30:51
|
Multi-scale ssim in a perceptual color space is getting a bit better
|
|
2021-08-13 06:31:38
|
Doing aggregation of the heatmap with a higher norm than the usual 'just average it' and you start having a reasonable metric
|
|
2021-08-13 06:31:51
|
That's what DSSIM and SSIMULACRA do
|
|
2021-08-13 06:32:42
|
They're ssim-based, but 1) in a perceptual color space (not ycbcr), 2) multi-scale, 3) not just looking at avg error but also penalizing worst error
|
|
|
BlueSwordM
|
2021-08-13 06:33:27
|
It's better, but SSIM isn't optimal either, for one reason it particular: it only takes into account luma values, even though it takes into consideration frequency data in its analysis, while only spitting out an average value.
|
|
2021-08-13 06:34:23
|
For example, as an RD tune, SSIM is good for better detail retention, but as seen in aomenc and x265, using SSIM as an RD tune means colors get sacrificed in the process, and so do low variance spots in the image.
|
|
|
_wb_
|
2021-08-13 06:40:52
|
They use Y-only ssim? Or chroma just gets too low weight?
|
|
|
BlueSwordM
|
|
_wb_
They use Y-only ssim? Or chroma just gets too low weight?
|
|
2021-08-13 06:43:11
|
Chroma gets too low weight in that mode.
|
|
2021-08-13 06:51:07
|
It's not really an issue where the color are vibrant and saturated, but any time colors gets slightly less saturated, you can easily tell the SSIM RD tune just makes colors look noticeably worse. It's not a large difference, but it's not really subtle either.
|
|
|
Scope
|
2021-08-13 11:46:03
|
https://ai.googleblog.com/2021/08/soundstream-end-to-end-neural-audio.html
|
|
2021-08-13 11:47:00
|
https://1.bp.blogspot.com/-tzWjqrUOrvk/YRRAc81_kJI/AAAAAAAAIBU/wVzK2cKGjakFls0JSvcE93G6hFMmhg_bgCLcBGAsYHQ/s1061/image1.png
|
|
|
improver
|
2021-08-13 11:50:35
|
>The quality of the reconstructed audio using either of these codecs is excellent at medium-to-low bitrates (12β20 kbps), but it degrades sharply when operating at very low bitrates (βͺ
3 kbps)
why would anyone want 3kbps, whatever codec it'd be
|
|
2021-08-13 11:52:24
|
aint networks getting faster, and things take advantage of that (eg higher quality VoLTE stuff)
|
|
|
Scope
|
2021-08-13 11:58:03
|
For many things, for amateur radio, for data transmission from space, also the network may not always be stable even at high maximum speed and such a codec can scale well for different bandwidths
|
|
2021-08-13 12:03:02
|
https://google-research.github.io/seanet/soundstream/examples/
|
|
|
_wb_
|
2021-08-13 02:42:06
|
Just send things as text instead of audio if bandwidth is such a problem, imo...
|
|
2021-08-13 02:43:26
|
I prefer 1kb of text over 50kb of overcompressed audio that sounds ok but the AI might be subtly changing the words.
|
|
|
Scope
|
2021-08-13 03:07:47
|
Mostly yes, but it's not always convenient or possible to type or translate voice to text, also this SoundStream is suitable for everything, not just voice, unlike the last Lyra implementation, also it can dynamically scale to unstable network and bandwidth, so it can be useful in many use cases, just like it is better to hear something at low bitrate, with unstable connection, than to drop connection or hear constantly laggy or unclear speech at higher bitrate
Also after significant progress in video compression, audio compression has been a bit behind and with very limited bandwidth it's not uncommon for audio to take up more bandwidth than video (because otherwise the quality wasn't enough to be understandable)
|
|
|
|
Stan
|
2021-08-13 03:30:50
|
I'm in awaiting Google SoundStream vs Microsoft Satin comparison π
|
|
2021-08-13 03:33:22
|
btw, ms ai codec in production, google is half a year behind
|
|
|
BlueSwordM
|
|
improver
>The quality of the reconstructed audio using either of these codecs is excellent at medium-to-low bitrates (12β20 kbps), but it degrades sharply when operating at very low bitrates (βͺ
3 kbps)
why would anyone want 3kbps, whatever codec it'd be
|
|
2021-08-13 03:47:30
|
For the times when my reception is absolutely awful and to use as little data as possible.
|
|
2021-08-13 03:47:45
|
For reference, I only have a 250MB data cap on my mobile plan.
|
|
|
improver
|
2021-08-13 03:48:26
|
such low datacaps are absolutely vile in current year
|
|
|
Scope
|
|
Stan
btw, ms ai codec in production, google is half a year behind
|
|
2021-08-13 03:51:06
|
https://twitter.com/Android/status/1366801139547660289
|
|
|
|
Stan
|
|
Scope
https://twitter.com/Android/status/1366801139547660289
|
|
2021-08-13 04:18:44
|
https://github.com/google/lyra
> Earlier this year, Google released Lyra, a neural audio codec trained to compress low-bitrate speech. SoundStream extends this work with a system consisting of an encoder, decoder, and quantizer
|
|
|
Scope
|
2021-08-13 04:21:00
|
Yep, it's basically an improved Lyra, for voice SoundStream also works better, according to the examples
|
|
|
BlueSwordM
|
2021-08-13 04:21:49
|
I'm actually surprised by one thing: why didn't they compare to xHE-AAC?
|
|
2021-08-13 04:22:12
|
Android 11 natively supports xHE-AAC decoding, so it would have been interesting to test it against the best of the best.
|
|
|
Scope
|
2021-08-13 04:23:09
|
Probably because xHE-AAC is not for VoIP
|
|
|
improver
|
2021-08-13 04:25:22
|
I suspect it'd perform pretty bad
|
|
2021-08-13 04:27:58
|
> Improved quality at stereo bit rates of 12 to 500 kbit/s or above
so yes it's not for 3kbit/s
|
|
|
Scope
|
2021-08-13 04:28:00
|
It's better than Opus between 12-32 kbit/s, but it can't be lower than 12 kbit/s
|
|
|
improver
|
2021-08-13 04:28:43
|
that's actually a good thing :^)
|
|
2021-08-13 04:29:44
|
I wonder how it compares to opus at higher bitrates
|
|
|
|
veluca
|
2021-08-13 04:29:45
|
so it turns out that with a good encoder and decoder pair (like in https://github.com/libjxl/libjxl/pull/427) you can actually make HDR JPEG 1 that are visually lossless (at least on my TV :P)
|
|
2021-08-13 04:30:12
|
https://old.lucaversari.it/hdr/ files I used for testing
|
|
2021-08-13 04:30:22
|
(needs a JXL-enabled chrome 'cause that's what I used)
|
|
2021-08-13 04:30:42
|
(none of that code even tries to get decent filesizes yet, you've been warned :P)
|
|
|
diskorduser
|
|
BlueSwordM
For reference, I only have a 250MB data cap on my mobile plan.
|
|
2021-08-13 04:34:25
|
Oh that's very bad.
|
|
|
|
Stan
|
|
veluca
so it turns out that with a good encoder and decoder pair (like in https://github.com/libjxl/libjxl/pull/427) you can actually make HDR JPEG 1 that are visually lossless (at least on my TV :P)
|
|
2021-08-13 04:40:41
|
for my macbook/retina they look identical, but jxl a little bit darker on each file
|
|
|
|
veluca
|
2021-08-13 04:41:35
|
is it with Chrome with HDR support?
|
|
|
|
Stan
|
2021-08-13 04:42:26
|
not sure, just chrome with jxl enabled flag
|
|
|
|
veluca
|
2021-08-13 04:44:00
|
you can tell by how the .jpg look like
|
|
2021-08-13 04:44:11
|
if the .jpg look the same as the .jxl, then it's no HDR
|
|
2021-08-13 04:45:27
|
(just for completeness: this https://old.lucaversari.it/hdr/hbd_djxl.jxl is a full-high-bit-depth pipeline, https://old.lucaversari.it/hdr/mozjpeg.jxl is a 100% JPEG 1 pipeline, and https://old.lucaversari.it/hdr/orig.jxl is the original)
|
|
|
|
Stan
|
|
veluca
(just for completeness: this https://old.lucaversari.it/hdr/hbd_djxl.jxl is a full-high-bit-depth pipeline, https://old.lucaversari.it/hdr/mozjpeg.jxl is a 100% JPEG 1 pipeline, and https://old.lucaversari.it/hdr/orig.jxl is the original)
|
|
2021-08-13 04:55:13
|
now i found the difference for mozjpeg.jxl. Clouds and windows on the building have a sharp structure. hbd_djxl.jxl and orig.jxl looks same
|
|
2021-08-13 04:55:28
|
btw, these jpeg files do not work in safari
|
|
|
|
veluca
|
2021-08-13 04:56:51
|
what do you mean they don't work in Safari?
|
|
2021-08-13 04:57:10
|
hbd_djxl and orig looking the same is kinda the point yes π
|
|
|
diskorduser
|
2021-08-13 05:03:00
|
Looks bad on chrome Android
|
|
2021-08-13 05:03:57
|
|
|
2021-08-13 05:06:11
|
HDR avif also look bad like this on Android chrome.
|
|
|
|
veluca
|
2021-08-13 05:17:51
|
that's not visualized in HDR mode
|
|
2021-08-13 05:18:09
|
at least not in the screenshot xD
|
|
2021-08-13 05:18:15
|
but that's also some rather extreme banding...
|
|
2021-08-13 05:18:54
|
(what file is that? that's worse than anything I've seen myself)
|
|
|
Fox Wizard
|
2021-08-13 05:19:27
|
The original and jxl ones look nice <:Poggers:805392625934663710>
|
|
2021-08-13 05:20:07
|
~~If you ignore the terrible chromatic aberration~~
|
|
|
|
Stan
|
|
veluca
what do you mean they don't work in Safari?
|
|
2021-08-13 05:20:33
|
|
|
|
|
veluca
|
2021-08-13 05:21:09
|
what...
|
|
|
Fox Wizard
~~If you ignore the terrible chromatic aberration~~
|
|
2021-08-13 05:21:30
|
that's the photographer's fault π
|
|
|
Fox Wizard
|
2021-08-13 05:21:40
|
Yeah <:cheems:720670067091570719>
|
|
2021-08-13 05:21:47
|
At least it works properly for me in HDR mode
|
|
|
|
veluca
|
|
Stan
|
|
2021-08-13 05:22:01
|
does it work in other software? I have to admit I don't have a lot of patience for whatever it is that Safari might be doing here
|
|
|
|
Stan
|
|
veluca
does it work in other software? I have to admit I don't have a lot of patience for whatever it is that Safari might be doing here
|
|
2021-08-13 05:25:30
|
mac preview not working too
|
|
2021-08-13 05:26:14
|
gimp works
|
|
|
|
veluca
|
|
Stan
mac preview not working too
|
|
2021-08-13 05:26:48
|
well that's at least consistent
|
|
2021-08-13 05:27:51
|
does `mozjpeg.jpg` work, btw?
|
|
|
|
Stan
|
|
diskorduser
|
|
veluca
(what file is that? that's worse than anything I've seen myself)
|
|
2021-08-13 05:37:01
|
https://old.lucaversari.it/hdr/hbd_djxl.jxl this
|
|
|
|
veluca
|
|
diskorduser
https://old.lucaversari.it/hdr/hbd_djxl.jxl this
|
|
2021-08-13 05:37:31
|
ok, seems like something in hdr on Android is broken
|
|
|
Stan
yes
|
|
2021-08-13 05:37:58
|
sounds like fun... I assume I did something that Mac's JPEG decoder doesn't like
|
|
|
diskorduser
|
|
veluca
ok, seems like something in hdr on Android is broken
|
|
2021-08-13 05:38:43
|
I think it's a chrome bug. avif HDR worked fine on Firefox but not on chrome.
|
|
|
|
veluca
|
2021-08-13 05:39:33
|
ah, yes, I meant HDR in Chrome π
|
|
2021-08-13 05:45:47
|
ah I think I know what's wrong
|
|
2021-08-13 05:46:57
|
missing APP0 marker... gimme a minute
|
|
|
Stan
yes
|
|
2021-08-13 05:58:04
|
can you try again? I should have updated the files
|
|
|
Scope
|
2021-08-13 10:22:26
|
https://evilmartians.com/chronicles/decoding-avif-deep-dive-with-cats-and-imgproxy
|
|
2021-08-13 10:28:59
|
So maybe that's what makes AVIF good at compressing art images
|
|
|
190n
|
2021-08-13 10:30:37
|
that article is pretty good
|
|
|
|
veluca
|
2021-08-13 11:42:39
|
no, for now it's just a JPEG 1 *en*coder - I do decoding with cjxl to do lossless recompression and then djxl
|
|
2021-08-13 11:43:12
|
it's kinda silly, but representative of the pixels you'd get if you implemented JPEG 1 decoding with libjxl
|
|
2021-08-13 11:43:21
|
just without actually coding it π
|
|
2021-08-13 11:46:05
|
seems like that
|
|
2021-08-13 11:46:38
|
so far I only got ~5bpp HDR JPEGs xD but I don't see a reason why it shouldn't be possible to do much much better
|
|
|
spider-mario
|
2021-08-13 11:47:16
|
did we try with `jpegtran -optimize` in the end?
|
|
|
|
veluca
|
2021-08-13 11:47:46
|
yup, the number is after running that
|
|
|
spider-mario
|
|
|
veluca
|
2021-08-13 11:48:04
|
(also it's apparently needed for it to work on OSX... don't ask me...)
|
|
|
spider-mario
|
2021-08-13 11:48:08
|
isnβt that chroma from luma?
|
|
|
|
veluca
|
2021-08-13 11:48:16
|
it is π
|
|
2021-08-13 11:49:08
|
CfL in JPEG recompression will increase the per-pixel error *slightly*
|
|
2021-08-13 11:49:26
|
you mean with CfL for JPEG recompression?
|
|
2021-08-13 11:50:14
|
the trick is that for JPEG recompression CfL is applied on integers π (but not when decoding to pixels) - so the encoder can do the exact opposite and when you want to get the DCT coefficients back, you can
|
|
2021-08-13 11:52:10
|
I don't think it affects quality much either way (likely CfL gives you slightly better quality than not doing it, as long as the encoder takes it into account), but a decoder that starts from a JPEG cannot assume that the encoder was aware of it
|
|
2021-08-14 12:28:58
|
I had a go at making an encoder that would produce decent bitrates for HDR (1.5~3 bpp depending on the image), I think it looks pretty good (there are a couple of artefacts here and there but kinda hard to notice unless you put your nose on the screen :D) but (a) I didn't look for too long and (b) I literally wrote this in two hours, so it could be super suboptimal π files are here if anybody is interested: https://old.lucaversari.it/hdr/smaller/
|
|
2021-08-14 12:31:23
|
but I think it's about time for me to switch to "weekend mode" π
|
|
|
fab
|
2021-08-14 09:02:51
|
i get used to avif
|
|
2021-08-14 09:03:00
|
the more i want 480p at 2,2 px fonts
|
|
2021-08-14 09:03:07
|
like windows 11
|
|
2021-08-14 09:03:13
|
the more i get used to avif
|
|
|
diskorduser
|
2021-08-14 09:28:42
|
Ok. just use avif. Good for you.
|
|
|
fab
|
2021-08-14 09:29:32
|
i don't like avif
|
|
2021-08-14 09:29:42
|
but the point i'm get used
|
|
2021-08-14 09:30:03
|
1509x1080 explicit in webp 56,1 KB (57.454 byte)
|
|
|
diskorduser
|
2021-08-15 03:23:00
|
I tried compressing jxl source code with dependencies with brotli but file size and encoding time is larger than xz. So, Brotli works good only for htmls?
|
|
|
Scope
|
2021-08-15 03:27:14
|
Not only, Brotli as well as Zstd have the main advantage in decompression speed, but at high compression modes they will always have slower compression than LZMAx (with still fast decompression)
|
|
|
spider-mario
|
2021-08-15 03:38:39
|
could be worth trying with `--large_window=30`
|
|
|
fab
|
2021-08-15 04:40:14
|
https://www.reddit.com/r/PleX/comments/6y9211/thinking_about_switching_your_library_to_hevch265/ already in the txt <#794206170445119489>
|
|
2021-08-15 04:40:23
|
old 2017 reddit post
|
|
|
Scope
|
2021-08-15 04:58:26
|
> Minimal image container: add convert tool
https://chromium.googlesource.com/codecs/libwebp2/+/be4db2b35eb3940a21f0a40363afb60fc56484f7%5E%21/
Looks like AVIF with minimal container/headers? π€
But perhaps this is only for WebP2 or for AVIF-like without HEIF and most likely which is not compatible with the specs
|
|
2021-08-15 04:58:31
|
|
|
|
|
veluca
|
2021-08-16 01:07:09
|
AFAIU they want to extend the AVIF spec to have a more "decent" container
|
|
|
_wb_
|
2021-08-16 05:47:09
|
Makes sense, but also somewhat problematic to keep changing a spec. That makes it hard to know what "I support `image/avif`" actually means...
|
|
|
|
Stan
|
|
veluca
can you try again? I should have updated the files
|
|
2021-08-16 02:14:33
|
it works now
|
|
|
|
veluca
|
2021-08-16 02:24:14
|
good, thanks!
|
|
|
eddie.zato
|
2021-08-17 06:19:10
|
`jpegtran` gives an error: `Premature end of JPEG file`. How can I fix such a file? Because `cjxl` doesn't want to read it.
|
|
2021-08-17 06:19:16
|
Viewers open the file without any problems.
|
|
2021-08-17 06:38:01
|
If I add `FF D9` to the end, I get another error `Corrupt JPEG data: premature end of data segment`.
|
|
2021-08-17 06:38:32
|
But I don't see any visual corruption on the image. So I think it can be fixed.
|
|
|
_wb_
|
2021-08-17 06:49:16
|
It's likely a progressive jpeg that was truncated
|
|
2021-08-17 06:54:48
|
Probably the bottom is a bit lower quality than the top
|
|
|
eddie.zato
|
2021-08-17 07:27:19
|
Silly question. `jpegtran` can do rotation and do it losslessly, right? Then I can just rotate the image twice and fix it. <:kekw:808717074305122316>
|
|
|
_wb_
|
2021-08-17 07:28:21
|
that doesn't give an error?
|
|
2021-08-17 07:28:38
|
you can also hack jpegtran to not abort on that error, I guess
|
|
2021-08-17 07:28:59
|
that's what most viewers do: just assume that the missing coefficients are all zeroes
|
|
|
eddie.zato
|
2021-08-17 07:29:20
|
It gives an error on the first rotation, but creates a new rotated file.
|
|
2021-08-17 07:33:56
|
`jpegtran -copy none -optimize -outfile 1.jpg 0.jpg` gives an error and creates a new file, but it is just a copy of the original with the same problem. But with `-rotate` the file has `FF D9` at the end. So I think that would be the way to fix it for me.
|
|
2021-08-17 07:52:25
|
There is a difference, after all.
```
PS > jpegtran -rotate 180 -outfile 1.jpg 0.jpg
Premature end of JPEG file
PS > jpegtran -rotate 180 -outfile 2.jpg 1.jpg
PS > ssimulacra 0.jpg 2.jpg
0.05208653
PS > ls 0.jpg,2.jpg | Format-Table Name,Length
Name Length
---- ------
0.jpg 2961762
2.jpg 3665479
```
|
|
2021-08-17 08:10:07
|
Fixed it with `-trim` without rotation. I guess this is the best way to minimize damage to the original file.
|
|
|
Scope
|
2021-08-17 03:04:39
|
https://news.ycombinator.com/item?id=28187895
|
|
2021-08-18 01:02:46
|
https://twitter.com/jaffathecake/status/1427950852241870855
|
|
2021-08-18 01:02:50
|
Also, even without lossy color reduction, Oxipng is not the most efficient optimizer, so other services can create smaller PNGs in lossless mode too
|
|
|
_wb_
|
2021-08-18 09:00:06
|
I wonder who came up with how `clap` (CleanAperture) is defined in heif/isobmff but it is seriously messed up
|
|
2021-08-18 09:00:38
|
It's just a crop rectangle definition
|
|
2021-08-18 09:03:49
|
In jxl we define it in a simple way: a frame can have a width and height that differs from the image dimensions, and it has x0, y0 offsets, and then it gets painted on the image canvas with its topleft corner at position (x0,y0).
|
|
2021-08-18 09:05:08
|
In avif/heif, you use a `clap` box to do cropping, and it consists of 8 (!) signed 32-bit numbers
|
|
2021-08-18 09:06:31
|
The numbers are numerators and denominators, so you can put rational numbers there (but they have to be integers in the case of width and height, so those denominators are completely silly)
|
|
2021-08-18 09:07:03
|
The offset is not an x0,y0 of the topleft corner, oh no
|
|
2021-08-18 09:07:37
|
It is the offset of the *center* of the crop compared to the *center* of the image
|
|
2021-08-18 09:09:13
|
Which is why you need rationals: if you want to crop a 9x9 image from the topleft of a 10x10 image, then the center of the crop is -1/2 pixel above and to the left of the center of the image
|
|
2021-08-18 09:10:56
|
Nevermind that you could avoid that by just using the topleft corner coords instead of center points, making those 16 bytes of denominators totally unnecessary.... The plot thickens!
|
|
2021-08-18 09:11:58
|
One reason to use `clap` cropping is that hevc and av1 cannot represent images with odd dimensions when they use 4:2:0
|
|
2021-08-18 09:12:50
|
So if you want to have an image that is 99x99 pixels and 4:2:0, you need to encode it as a 100x100 image and then crop it at the avif/heif level
|
|
2021-08-18 09:15:03
|
But a recent amendment of the isobmff spec from which avif/heif derive the `clap` spec says that in case of 4:2:0, the crop dimensions have to be even!
|
|
2021-08-18 09:17:04
|
That means that now a `clap` box that would use such a -1/2 center offset to crop a 100x100 image to 99x99 had become illegal (and viewers will either ignore it or refuse to show the image)
|
|
2021-08-18 09:18:35
|
Meaning there is again no way to do a 99x99 image in 4:2:0 in heic/avif with the `clap` property (but there are other tricks, I think)
|
|
2021-08-18 09:24:55
|
It's just so incredibly messy and unelegant, using 32 bytes just to specify a crop (something that will typically take 7 bytes or so in jxl), with way more restrictions than seem reasonable
|
|
2021-08-18 09:27:10
|
E.g. you also cannot crop the central 100x100 pixels from a 102x102 image in a 4:2:0 avif/heif, because the coordinates of the topleft pixel also need to be even
|
|
2021-08-18 09:32:40
|
(it kind of makes sense, if you want to stay in yuv420 then you would need that restriction, but still, that's a very video-oriented thing to restrict what you can do in an image codec by assuming you will never go to rgb)
|
|
2021-08-18 09:36:25
|
TL;DR: the `clap` box wastes quite some bytes on a rational representation of crop dimensions/offsets, reflecting a typical "designed by committee" attitude of "let's make it as generic as possible", and then later on they restricted things to integers anyway, and even in case of 4:2:0 to _even_ integers only (but the bytes wasted in the bitstream syntax remain wasted)
|
|
2021-08-18 09:38:32
|
Oh and all of that is as recent as 2021
|
|
2021-08-18 09:38:34
|
ISO/IEC 23000-22:2019/DAM 2:2021
|
|
2021-08-18 09:39:08
|
You can find older versions of that spec online but not the current version
|
|
2021-08-18 09:39:17
|
Because of the ISO paywall
|
|
2021-08-18 09:39:56
|
So if you think the avif spec is any better than the jxl spec in terms of open access, think again
|
|
2021-08-18 09:41:33
|
Most of the avif spec consists of references to MIAF/HEIF and to recursively resolve those references to their most recent version, you do hit the ISO paywall
|
|
2021-08-18 09:45:47
|
</end rant>
|
|
|
|
veluca
|
2021-08-20 12:39:59
|
no it's not π
|
|
2021-08-20 12:40:24
|
yes
|
|
2021-08-20 12:40:44
|
you lose half a bit or so with the colorspace conversion, and a bit more with the DCT
|
|
2021-08-20 12:41:05
|
I think you can notice more easily in specific gradients and such
|
|
2021-08-20 12:47:43
|
TN panels are not fully 8 bit IIRC as it is so...
|
|
2021-08-20 12:48:24
|
dark areas and some peculiar blue-green shades can show it more easily
|
|
|
diskorduser
|
2021-08-20 01:02:02
|
Banding artifacts are more visible on a true 8bit panel
|
|
2021-08-20 01:02:14
|
I've experienced it
|
|
|
spider-mario
|
2021-08-20 01:04:19
|
often 6 bits + FRC
|
|
|
diskorduser
|
2021-08-20 01:04:26
|
I mean, most TN displays are just 6bit + frc. They do dithering
|
|
|
|
veluca
|
2021-08-20 01:07:23
|
I'd guess it depends on the manufacturer/model π
|
|
|
w
|
2021-08-20 01:07:30
|
you normally wouldnt notice it even side by side to an ips
|
|
|
|
veluca
|
2021-08-20 01:08:27
|
that, I doubt π at least for people that did a lot of image comparisons...
|
|
|
_wb_
|
2021-08-20 01:21:33
|
yes, if you first nearest-neighbor upsample the image 8x so only the DC coefficient is used, and then downscale again π
|
|
2021-08-20 01:22:04
|
but no, let's just say jpeg is always lossy
|
|
|
|
veluca
|
2021-08-20 01:25:39
|
*and* don't use YCbCr π
|
|
|
_wb_
|
2021-08-20 02:43:29
|
`convert foo.png -sample 800% upsampled.ppm; cjpeg -quality 100 -rgb -sample 1x1 upsampled.ppm > foo.jpg`
|
|
2021-08-20 02:49:08
|
Then `convert foo.jpg -sample 12.5% decoded.png` might be lossless
|
|
2021-08-20 02:49:19
|
(haven't tried though)
|
|
|
Scope
|
2021-08-20 11:06:34
|
π€
<https://chromium.googlesource.com/codecs/libwebp2/+/refs/heads/main/doc/container/#conversion-from_to-avif>
> AVIF is a MIAF/ISOBMFF wrapper around an OBU bitstream, which is itself usually made of a sequence header, a frame header and an AV1 tile group.
>
> Stripping everything but the AV1 tile group and the necessary fields in the sequence and frame headers would produce lighter web image files:
> - Easy to parse and write,
> - No redundant field that could be contradictory and/or invalid (image dimensions stored in MIAF, sequence header and frame header),
> - Fewer features means low vulnerability,
> - Smaller files, especially for tiny images or icons.
|
|
2021-08-20 11:08:35
|
Comparison between a minimal header (left) and a Sequence Header OBU (right):
|
|
|
|
veluca
|
2021-08-21 12:09:08
|
JPEG's DC encoding is kinda really really bad π
|
|
2021-08-21 12:10:01
|
lossless transcode could do a *lot* better than that, but doesn't try to do i.e. RCTs in that case because 99% of cases your image is YCbCr and RCTs are not that useful
|
|
|
Scope
|
2021-08-21 02:08:07
|
Btw, even VP10 had a palette coding and it is not a separate mode for the entire image/frame, also as far as I understand this mode can apply all the filtering and other stuff, maybe some things can be applied and will be useful in JXL π€
https://youtu.be/MQhVGAUrWyk?t=1285
|
|
2021-08-21 02:08:20
|
|
|
2021-08-21 02:11:29
|
|
|
|
_wb_
|
2021-08-21 02:15:19
|
We have a "no transform" (not really no transform, but no dct) in VarDCT
|
|
2021-08-21 02:15:51
|
And of course there's patches or multi-layer where things can be done in Modular mode
|
|
2021-08-21 02:17:35
|
Not sure if we have good heuristics to select Hornuss (the arbitrary name we gave to the "no transform" option, since it still does something, so "Identity" was considered to be a bad name)
|
|
|
Scope
|
2021-08-21 02:19:39
|
So it's kind of a patches, too π€
|
|
|
_wb_
|
2021-08-21 02:37:03
|
Intra block copy is like patches, except with patches you first encode the "sprite sheet" (hidden frame) and then the main frame, so decode of the main frame can still be done in parallel. Intra block copy makes decode inherently sequential.
|
|
|
Scope
|
2021-08-21 04:44:30
|
So this is another thing for the usefulness of adding multithreaded decoding in browsers π€
|
|
2021-08-21 05:43:35
|
<https://encode.su/threads/3397-JPEG-XL-vs-AVIF?p=70658&viewfull=1#post70658>
|
|
2021-08-21 05:46:16
|
**SolidComp**
> One challenge with hardware acceleration, including GPU, is that Firefox and Chrome seem to be throwing their users under a bus when it comes to modern codecs like HEVC. They're choosing not to use the built-in OS decoders, which are likely to be hardware-based or at least GPU accelerated. Windows 10, macOS, etc. have full support for formats like HEVC, and before that H.264, but those creeps at Firefox and Chrome refuse to use those built-in APIs. The whole drama of whether a browser "supports" these formats is deceptive, because they don't need to β it's already built into the OSes, so the browsers don't need to do anything but use the features. For a while Firefox was offering a form of support for H.264 that involved repeatedly downloading an open-source plug-in from Cisco, instead of just using the decoders built into Windows 10 or whatever. Maybe they still do that. I don't know what their exact arguments are, but it might some leftist ideological nonsense. The OS codecs are free, so it's not like they'd have to spend any money to support HEVC and so forth.
>
> In any case, there's not much transparency or rigor in the development of these new image formats. They don't seem to do the kind of full-effort deep thinking about hardware acceleration, GPU acceleration, or SIMD optimization in advance that I'd expect from billion dollar companies, before designing the codec. It seems like it's always just an informal effort by a handful of guys at Google and that photo hosting company, with unclear supervision or accountability, and no real concrete goals or benchmarks, especially regarding hardware, GPU, SIMD, etc. Or battery. Battery is huge. I wouldn't do anything at all without setting goals for real-world battery usage, and then design and deliver a codec that hit those goals. Hardware acceleration usually means big battery savings.
|
|
2021-08-21 05:46:28
|
> One codec under development that specifically considers hardware optimization from the outset is AV2, a potential successor to AV1. Apparently AV1 sucks for hardware implementation (that they introduced a video codec at this point in history without optimizing it for hardware is just incredible, and illustrates how poorly supervised these Google teams are). So now some people are trying to follow up with AV2, with hardware in mind. I don't know if it's about hardware encoding or decoding or both.
|
|
|
improver
|
2021-08-21 06:50:33
|
based perspective
|
|
|
|
veluca
|
2021-08-21 06:58:53
|
"the browsers don't need to do anything but use the features" <- that's an interesting perspective... (not particularly *correct*, but interesting)
|
|
2021-08-21 06:59:32
|
having said that the amount of truth in the rest of the post feels kinda low, so there's that π
|
|
|
Fraetor
|
2021-08-21 08:28:34
|
I guess the reason they don't is so they can work cross platform?
|
|
|
_wb_
|
2021-08-21 08:39:45
|
Yes, using OS-specific stuff is not exactly great for portability.
|
|
|
|
veluca
|
2021-08-22 10:27:41
|
There is also the *small* detail that 99% of the code that a browser writes for a format has nothing to do with decoding the format, and everything to do with interacting with the decoder library for that format...
|
|
|
fab
|
2021-08-26 04:41:51
|
how to convert in libaom with ffmpeg media encoder on android
|
|
2021-08-26 04:42:05
|
i'm at 26 frame after 3 minutes and 50
|
|
2021-08-26 04:42:13
|
with a 640x800 video
|
|
2021-08-26 04:42:53
|
30 fps
|
|
2021-08-26 04:43:21
|
1% after 5 minutes
|
|
2021-08-26 04:49:58
|
is running 1,1 fps
|
|
|
diskorduser
|
2021-08-26 04:50:03
|
Just don't.
|
|
|
fab
|
2021-08-26 04:50:04
|
snapdragon 780
|
|
2021-08-26 04:50:13
|
i bought best processor
|
|
2021-08-26 04:50:16
|
why so bad
|
|
2021-08-26 04:50:24
|
1:20 83 fps
|
|
|
diskorduser
|
|
fab
|
2021-08-26 04:50:56
|
so is risky to force threads in a smartphone
|
|
2021-08-26 04:51:02
|
smartphone don't work in threads
|
|
2021-08-26 04:51:06
|
they aren't pc
|
|
2021-08-26 04:51:19
|
how many threads use snapdragon 780 by default
|
|
2021-08-26 04:51:24
|
i read 4
|
|
2021-08-26 04:51:29
|
but at what frequency
|
|
|
diskorduser
|
2021-08-26 04:52:04
|
Even Snapdragon 8xx series can't encode av1 at reasonable speeds.
|
|
|
fab
|
2021-08-26 04:52:04
|
is termux any faster
|
|
2021-08-26 04:52:25
|
why lack of ARM
|
|
2021-08-26 04:52:36
|
so rav1e works better?
|
|
|
diskorduser
|
2021-08-26 04:52:55
|
Don't use mobile devices for av1 encode
|
|
|
fab
|
2021-08-26 04:53:00
|
instructions
|
|
2021-08-26 04:53:11
|
assembly
|
|
2021-08-26 04:54:12
|
yes but is encoding fairly great
|
|
2021-08-26 04:54:19
|
can i wait until it ends
|
|
2021-08-26 04:54:25
|
why not
|
|
2021-08-26 04:54:34
|
at least for one video
|
|
|
diskorduser
|
2021-08-26 04:54:40
|
Do you want to ruin battery?
|
|
|
fab
|
2021-08-26 04:54:40
|
00:53 seconds
|
|
2021-08-26 04:54:41
|
is
|
|
2021-08-26 04:55:05
|
16 % in 5:58
|
|
2021-08-26 04:55:07
|
pog
|
|
2021-08-26 04:55:19
|
i expected much better
|
|
2021-08-26 04:55:28
|
but the video will be good quality
|
|
|
diskorduser
Do you want to ruin battery?
|
|
2021-08-26 04:55:59
|
even 4 cores can ruin battery of entire phone
|
|
2021-08-26 04:56:05
|
or even 1 core
|
|
2021-08-26 04:56:14
|
is core a different concept than phone
|
|
2021-08-26 04:56:27
|
like even 0 core can run battery of a phone
|
|
2021-08-26 04:56:35
|
i will not force threads
|
|
2021-08-26 04:56:39
|
i know is a phone
|
|
|
diskorduser
|
2021-08-26 04:57:08
|
Just use a pc to encode av1.
|
|
|
fab
|
2021-08-26 04:59:38
|
it needs 40 minutes
|
|
2021-08-26 04:59:47
|
don't know if is right
|
|
|
diskorduser
|
2021-08-26 05:01:12
|
Stop it
|
|
|
fab
|
2021-08-26 05:08:56
|
i stopped
|
|
2021-08-26 05:09:04
|
i thought it was a smartphone for gaming
|
|
2021-08-26 05:09:10
|
the snapdragon 780
|
|
2021-08-26 05:09:16
|
my mom said or samsung or xiaomi
|
|
2021-08-26 05:09:31
|
because she don't like oppo
|
|
2021-08-26 05:10:05
|
so smartphone for gaming don't exist?
|
|
|
diskorduser
Stop it
|
|
2021-08-26 05:10:49
|
i remember you compressing a jxl in lossless modular with a similar phone or maybe orum (user) at 8 mpx/s
|
|
|
diskorduser
|
2021-08-26 05:11:37
|
Encoding jxl is okay but not av1.
|
|
|
fab
because she don't like oppo
|
|
2021-08-26 05:13:20
|
Good mom
|
|
|
fab
|
|
diskorduser
Encoding jxl is okay but not av1.
|
|
2021-08-26 05:35:56
|
What has av1 so complex? Is It a video codec?
|
|
|
diskorduser
|
2021-08-26 05:39:56
|
You're asking this question even after spending a year at av1 discord server?
|
|
|
fab
|
2021-08-26 05:41:43
|
3 years and half
|
|
|
Scope
|
2021-08-28 06:51:48
|
Also, from AV1 discord, well optimized software vs. hardware decoding
|
|
|
_wb_
|
2021-08-28 07:36:03
|
I guess hw decode is still better for battery
|
|
2021-08-28 07:36:45
|
But yes, that's a rather good illustration of why hw decode for still images doesn't really make sense
|
|
2021-08-28 07:38:13
|
For video, if you're going to be decoding for several minutes, maybe hours, then hw decode is nice because battery impact of cpu decode is somewhat significant
|
|
2021-08-28 07:38:41
|
For still, battery impact of cpu decode is kind of irrelevant
|
|
|
|
veluca
|
2021-08-28 09:13:25
|
the tldr being software decoding is faster?
|
|
2021-08-28 09:14:20
|
well, I suspect this is different on mobile
|
|
2021-08-28 09:14:30
|
I wonder if one could make a gpu-backed sw decoder that would be faster...
|
|
|
w
|
2021-08-28 09:17:09
|
yeah how do i know that isnt a 5995wx
|
|
2021-08-28 10:42:57
|
nvidia also has jpeg decoding
|
|
2021-08-28 10:43:11
|
and it's only meant for mass jpeg decoding for machine learning (for nvidia's case)
|
|
|
_wb_
|
2021-08-28 11:27:04
|
No idea, do you know what is using that hw decoder?
|
|
2021-08-28 11:43:59
|
Should I keep renewing flif.info ?
|
|
2021-08-28 01:03:55
|
i don't track visitors, it's just a domain name that points to FLIF-hub.github.io
|
|
2021-08-28 01:06:45
|
cost is not a big issue, it's 14.5 EUR per year
|
|
2021-08-28 01:07:19
|
just seems a bit unnecessary to keep it around since I consider it superseded
|
|
2021-08-28 01:11:54
|
meh, I'll keep it for another year
|
|
|
|
veluca
|
|
_wb_
cost is not a big issue, it's 14.5 EUR per year
|
|
2021-08-28 01:47:10
|
that's pretty expensive for a domain π
|
|
|
_wb_
|
2021-08-28 01:48:26
|
yeah i'm probably not using the cheapest registrar, also there's the usual trick that the first year or first two years it's cheap and then it's more expensive if you want to keep the domain
|
|
|
spider-mario
|
2021-08-28 01:56:01
|
if you want expensive, look at .io
|
|
2021-08-28 01:56:06
|
(or worse, .tt, but thatβs more niche)
|
|
2021-08-28 02:02:13
|
yes, .io is around $40 / year
|
|
|
BlueSwordM
|
|
w
yeah how do i know that isnt a 5995wx
|
|
2021-08-28 05:24:44
|
Because mindfreeze only has a 10900k <:kekw:808717074305122316>
|
|
|
|
veluca
|
2021-08-28 05:52:05
|
can you tell us a bit more about the test setup? π
|
|
|
BlueSwordM
|
|
veluca
can you tell us a bit more about the test setup? π
|
|
2021-08-28 06:18:40
|
10900k with stock power limits(Skylake 10C/20T) with Git dav1d at the time.
RTX 3090.
64GB of RAM at 3200MHz with CL16 XMP timings.
|
|
|
|
veluca
|
2021-08-28 06:19:09
|
ok, so definitely not "cheap gpu on super powerful cpu"
|
|
2021-08-28 06:19:25
|
(although I guess nvdec performance doesn't depend on the GPU performance?)
|
|
|
BlueSwordM
|
|
veluca
(although I guess nvdec performance doesn't depend on the GPU performance?)
|
|
2021-08-28 06:19:47
|
Indeed. NVDEC only depends on its HW decoder and some memory bandwidth.
|
|
|
|
veluca
|
2021-08-28 06:20:23
|
I assume sw decoding was multi-threaded
|
|
|
BlueSwordM
|
|
veluca
I assume sw decoding was multi-threaded
|
|
2021-08-28 06:21:41
|
Yes, definitely not single threaded π
I don't think a single Skylake CPU core can do over 1000MP/s on a single core of video decoding at 1080p.
|
|
|
|
veluca
|
2021-08-28 06:22:54
|
it might be interesting to redo that with different core counts
|
|
2021-08-28 06:23:41
|
I mean, it does make sense to use hw decoding if the alternative is basically halting the rest of the system because all the CPU cores are crunching pixels like crazy...
|
|
|
BlueSwordM
|
2021-08-28 06:24:23
|
Yeah, and in this case, even with a 3090 that has some very high idle power draw, I'm sure it's more efficient than a monster 10900k decoding stuff at 4,5-5GHz π
|
|
|
Scope
|
2021-08-28 06:26:07
|
But, NVDEC at the moment is also the fastest AV1 hardware decoder (something like 2-3 times faster than what AMD video cards have), although, I do not know about the Intel decoder speed
|
|
2021-08-28 06:27:42
|
And current decoders in smartphones are probably even slower, but for power saving yes, they are useful
|
|
|
BlueSwordM
|
2021-08-28 06:33:02
|
Actually, throughput on Samsung's AV1 HW decoders is excellent for a mobile device.
|
|
2021-08-28 06:33:12
|
Throughput is very high, which is why it can do 8k30 10bpc.
|
|
|
Scope
|
2021-08-28 06:33:21
|
However, this is the first generation of AV1 hardware decoders, judging by AVC and HEVC their speed with new generations can significantly increase (more than the increase in performance of new CPUs)
|
|
|
_wb_
|
2021-08-28 06:34:11
|
The annoying thing with hw is that it takes quite a lot of time and up-front investment to make it, and then it adds cost to devices even if there are no royalties to be paid (SoC area, amortized design costs)
|
|
2021-08-28 06:37:29
|
I wonder if we shouldn't aim more for a modular hw design where the hw doesn't do specific bitstreams but it does generic things like dct transforms and convolutions - sufficiently standardized and ubiquitous that software can rely on it being there the way it now relies on floating point arithmetic to be there
|
|
|
|
veluca
|
2021-08-28 06:58:19
|
I suspect (but do not know) that you can get 50% of the way there by doing GPU decoding
|
|
2021-08-28 06:58:45
|
I don't think there are that many standardized components in video codecs though π
|
|
|
BlueSwordM
Throughput is very high, which is why it can do 8k30 10bpc.
|
|
2021-08-28 06:59:03
|
one annoying limitation is that IIRC they only do 420
|
|
|
BlueSwordM
|
|
veluca
one annoying limitation is that IIRC they only do 420
|
|
2021-08-28 06:59:31
|
Indeed.
Profile 1 4:4:4 decoders will come later.
|
|
|
Scope
|
2021-08-28 07:00:24
|
But at least all should support 10-bit, as far as I know
|
|
|
_wb_
|
|
veluca
I don't think there are that many standardized components in video codecs though π
|
|
2021-08-28 07:11:50
|
I mean more like extra SIMD that does things like say a 1D dct8/16 or other useful building blocks
|
|
|
diskorduser
|
|
BlueSwordM
Indeed.
Profile 1 4:4:4 decoders will come later.
|
|
2021-08-28 07:12:41
|
4:4:4 12-bit hw decode when
|
|
|
lithium
|
2021-08-28 07:41:24
|
av1 HW decoder also can decode full-range avif(ycocg)?
|
|
|
_wb_
|
2021-08-28 07:49:46
|
Is YCoCg even in the spec already?
|
|
|
lithium
|
2021-08-28 07:56:31
|
I guess? I not sure this is a full implement.
> https://github.com/AOMediaCodec/libavif/blob/master/CHANGELOG.md
> 0.8.4 - 2020-11-23
> Added
> YCgCo support (full-range only, wantehchang)
> avifenc --cicp 2/2/8 or --cicp 1/13/8
|
|
2021-08-28 08:01:29
|
I remember YCoCg define in h.273.
> https://www.itu.int/rec/T-REC-H.273-201612-I/en
|
|
|
_wb_
|
2021-08-28 08:10:29
|
https://github.com/AOMediaCodec/libavif/blob/772b49e2c313181eb7cf15780ce30782b803996f/src/reformat.c#L286
|
|
2021-08-28 08:10:55
|
That's not the reversible YCoCg
|
|
2021-08-28 08:12:28
|
I wonder what the point is of doing YCoCg if it's for lossy only - it's not particularly better than YCbCr in terms of being perceptually relevant
|
|
2021-08-28 08:14:29
|
https://github.com/AOMediaCodec/libavif/blob/772b49e2c313181eb7cf15780ce30782b803996f/src/reformat.c#L610
|
|
2021-08-28 08:14:42
|
There's a reversible one there though
|
|
2021-08-28 08:19:28
|
Anyway, a hw av1 decoder will probably have yuv output and consider it not its problem how to interpret it
|
|
2021-08-28 08:20:00
|
Probably yuv420 only in most cases
|
|
2021-08-28 08:21:07
|
And then the yuv420 will go to the gpu, which will probably support it natively (but I dunno if you can tell it to do something different from the usual ycbcr)
|
|
2021-08-28 08:21:54
|
YCoCg is mostly useful imo because it can be done in a reversible way, so it is good for lossless
|
|
2021-08-28 08:22:30
|
But that only makes sense if it's done in 444
|
|
|
|
veluca
|
2021-08-28 08:35:20
|
one thing I don't understand is why "TV range" YUV is still a thing
|
|
|
_wb_
|
2021-08-28 08:41:08
|
I have three hypotheses:
|
|
2021-08-28 08:41:47
|
1) inertia - not bothering to change existing stuff that does that from the analog days
|
|
2021-08-28 08:42:55
|
2) some hw implementations can perhaps get away with fewer precision bits or simpler clamping logic if they can assume there's a bit of headroom and footroom in the ranges?
|
|
2021-08-28 08:45:06
|
3) smaller ranges mean less information/entropy in the source signal, so you get "better compression" if you measure it in the naive way (since you just have a slightly less noisy / less precise signal to compress in the first place)
|
|
2021-08-28 08:49:01
|
TV range is like encoding 8-bit sRGB images in a wider gamut space like P3 but still in 8-bit
|
|
2021-08-28 08:49:15
|
You will get smaller files
|
|
2021-08-28 08:49:20
|
And more banding
|
|
|
spider-mario
|
2021-08-28 09:14:17
|
from what I recall, the ITU allows TV range for HLG (makes sense since HLG is made for TV production) but strongly discourages it for PQ
|
|
2021-08-28 09:15:24
|
I wonder if I can find the reference again
|
|
|
BlueSwordM
|
2021-08-29 06:24:19
|
No, FLIF is completely super seeded by JXL lossless.
|
|
|
_wb_
|
2021-08-29 06:32:48
|
There might be the occasional image where flif still does better, or has a better encode time vs density, but as a codec, I think it's superseded and the only thing left to do with it is to convert any .flif file that people might have to (png and then to) jxl.
|
|
|
Justin
|
2021-08-29 02:12:29
|
Let me see
|
|
2021-08-29 02:15:30
|
avif.io Domain was 40β¬ for first year, then 5β¬ per month. Same for Jpegxl
|
|
2021-08-29 02:18:26
|
Basically the only reason there's ads on the blog post, so it becomes even. Besides the investment of time for content and marketing, plus the initial money on both converter functionalities. but since it's more of a hobby, that's fine. π
|
|
|
|
sebseb
|
2021-08-30 08:02:03
|
It's a great idea to integrate libjxl to ffmpeg. Someone has try but i don't think that it's in FFMPEG https://ffaux-bg.ffmpeg.org/project/ffmpeg/patch/20200412113100.80562-1-varun.gupta140@gmail.com/
|
|
|
fab
|
2021-08-30 08:14:37
|
security problems
|
|
|
Traneptora
|
|
_wb_
Should I keep renewing flif.info ?
|
|
2021-08-30 08:17:15
|
absolutely, just put a stub there
|
|
2021-08-30 08:18:13
|
I think if you don't someone malicious could snap it up
|
|
2021-08-31 03:00:25
|
ffmpeg is a multimedia swiss army knife
|
|
2021-08-31 03:01:09
|
included with it it are a number of encoders and decoders and muxers and demuxers
|
|
2021-08-31 03:01:50
|
it has support for many images either via internal or library support as well
|
|
2021-08-31 03:02:44
|
It would not be *too* difficult to try to add a jpegxl decoder to libavcodec and libavformat, via libjxl
|
|
2021-08-31 03:03:41
|
but jpeg lossless transcoding would be impossible
|
|
2021-08-31 03:04:26
|
and the encoder would be more difficult as well
|
|
|
Scope
|
2021-08-31 04:01:11
|
But, patch is old and seems to be abandoned
|
|
|
diskorduser
|
2021-08-31 01:52:03
|
I think it's better to ask for it after browser support.
|
|
2021-08-31 01:52:44
|
Because they will say some lame reasons for not adding support.
|
|
2021-08-31 04:12:22
|
Jxl is new. So they have more reasons.
|
|
|
|
sebseb
|
|
Traneptora
and the encoder would be more difficult as well
|
|
2021-08-31 07:02:09
|
Yes, I think that FFMPEG use libwebp (to encode en decode) for Webp. So i think it's possible to make this with libjxl. That's give more visibility to JPEG-XL. I try to send a mail to the guy who begin the patch but a have no reponse
|
|
|
Traneptora
|
2021-08-31 07:14:29
|
it would be straightforward to write it yourself wiw
|
|
|
|
sebseb
|
|
Traneptora
it would be straightforward to write it yourself wiw
|
|
2021-08-31 07:16:22
|
I can only code "Hello world" π
|
|
|
Traneptora
|
|
|
sebseb
|
2021-08-31 07:57:36
|
I saw a project in 2020 with the βGoogle Summer of Code 2020 but nothing in the result (only for FLIF Encoder & Decoder Project) https://trac.ffmpeg.org/wiki/SponsoringPrograms/GSoC/2020#JPEGXLDecoder
|
|
|
Fraetor
|
2021-09-02 01:55:50
|
Does anyone know of any good breakdowns of how JPEG works?
|
|
|
_wb_
|
2021-09-02 03:00:40
|
This one is quite nice imo: https://parametric.press/issue-01/unraveling-the-jpeg/
|
|
|
Fraetor
|
2021-09-02 03:51:25
|
Thanks!
|
|
|
|
Deleted User
|
2021-09-03 02:41:25
|
That should probably help. It should arrive in repositories after the next FLIF update, but those that compiled FLIF themselves are screwed if they don't visit flif.info on their own...
https://github.com/FLIF-hub/FLIF/pull/563
|
|
2021-09-03 02:45:48
|
Oh, by the way <@!794205442175402004>: FLIF's README.md still points to GitLab and not GitHub, where all issues and PRs are.
https://github.com/FLIF-hub/FLIF/pull/561
|
|
|
_wb_
Not sure if we have good heuristics to select Hornuss (the arbitrary name we gave to the "no transform" option, since it still does something, so "Identity" was considered to be a bad name)
|
|
2021-09-03 03:22:36
|
How does exactly "Hornuss" work? And where did that name come from?
|
|
|
_wb_
|
2021-09-03 05:04:04
|
How it works: <@179701849576833024> knows better, but the idea is that it's a transform to be used when DCT is not a good idea
|
|
2021-09-03 05:04:24
|
Originally we called it the "Identity" transform
|
|
2021-09-03 05:04:56
|
But an identity transform would just be a no-op, encoding raw pixel values
|
|
2021-09-03 05:05:09
|
That's not quite what that transform does
|
|
2021-09-03 05:06:18
|
So at some point one of the national bodies of ISO was reviewing the spec and said "you shouldn't call this an identity transform if it does something that is not the identity"
|
|
2021-09-03 05:06:35
|
We had to come up with a new name
|
|
2021-09-03 05:07:25
|
"Hornuss" is basically a random word that is not the word "Identity"
|
|
2021-09-03 05:07:31
|
https://en.wikipedia.org/wiki/Hornussen
|
|
2021-09-03 05:08:10
|
It's the name of the puck in some obscure sport I never heard about
|
|
2021-09-03 07:55:00
|
ugh, I really have been neglecting the flif repo, sorry about that
|
|
2021-09-03 07:57:42
|
https://github.com/godotengine/godot/issues/31568 does someone feel like opening an issue like that but for jxl?
|
|
|
|
veluca
|
|
_wb_
How it works: <@179701849576833024> knows better, but the idea is that it's a transform to be used when DCT is not a good idea
|
|
2021-09-03 08:19:18
|
Ehhh, I don't exactly remember - but it's roughly a "subtract the average from every pixel" kind of transform
|
|
|
Fraetor
|
|
Oh, by the way <@!794205442175402004>: FLIF's README.md still points to GitLab and not GitHub, where all issues and PRs are.
https://github.com/FLIF-hub/FLIF/pull/561
|
|
2021-09-03 08:56:57
|
I'm not sure who would be the relavent contact, but the same should probably be done with the link on jpeg.org
|
|
|
_wb_
|
2021-09-03 09:06:53
|
well strictly speaking, the gitlab repo is the one owned by JPEG
|
|
|
Fraetor
|
2021-09-03 09:07:14
|
Ah, fair.
|
|
|
_wb_
|
2021-09-03 09:07:52
|
maybe we should add a self-reference to the github repo in the main README though, so you can easily find it from the gitlab repo
|
|
2021-09-03 09:08:15
|
(since the gitlab repo mirrors the github one)
|
|
|
Fraetor
|
2021-09-03 09:08:47
|
That sounds like a good idea. Discoverability of the Github from the Gitlab is pretty poor.
|
|
|
Scope
|
2021-09-03 09:08:57
|
Also <https://github.com/cloudinary/fuif/pull/10>
|
|
|
_wb_
|
2021-09-03 11:22:11
|
Could do that, though it might be already too late
|
|
2021-09-03 11:22:14
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903600
|
|
2021-09-03 11:22:37
|
Today I learned that flif was actually in Debian unstable at some point (I didn't know that)
|
|
2021-09-03 11:22:55
|
Today I also learned that it was removed from Debian unstable 3 years ago π
|
|
2021-09-03 11:24:33
|
because of mostly silly things, it seems ("security issues" being feeding a broken/malicious input file to the _encoder_ which causes it to crash instead of gracefully printing an error)
|
|
|
|
veluca
|
2021-09-03 11:26:38
|
the encoder crashing *is* a security issue, not everyone only uses decoders on user input π
|
|
|
_wb_
|
2021-09-03 11:36:10
|
Yeah it is
|
|
2021-09-03 11:37:35
|
But the binary is just an example application
|
|
2021-09-03 11:38:05
|
If you want to do it properly, you use the library, not the example app
|
|
2021-09-03 11:38:30
|
But ok, the distro was shipping the example app so there's that
|
|
|
BarryCap
|
2021-09-03 04:47:37
|
Any thoughts about WebP v2?
|
|
2021-09-03 04:48:00
|
I discovered it with squoosh.app
|
|
2021-09-03 04:49:13
|
I found it could compete a bit with jxl...
|
|
|
improver
|
2021-09-03 04:52:40
|
when it comes to natural photos, it looked more realistic than avif when i looked, but still less than jxl
|
|
|
|
Deleted User
|
2021-09-03 04:57:51
|
btw, can it losslessly represent a WebP v1?
|
|
|
BarryCap
|
2021-09-03 05:00:58
|
It has lossless compression, but I don't think it can use the WebP v1 codec to compress.
|
|
|
|
Deleted User
|
2021-09-03 05:06:12
|
Ok, so the lifecycle of a typical image on the web will be lossy compressed JPEG, which was then recompressed to WebP, then recompressed again to AVIF and lastly back to WebP2...
|
|
|
_wb_
|
2021-09-03 05:17:01
|
WebP2 has nothing to do with WebP1 except the name and some of the people involved, afaik
|
|
2021-09-03 05:18:15
|
I don't think it's still in active development atm, it's kind of unclear to me what its advantage would be over avif or jxl
|
|