I'm just gonna ramble about codecs for a bit.

Codecs like H.264, AAC, PNG, JPEG, GIF, and even MP3, MPEG-2, and AC-3 are never going to go away. They're going to be with us forever.

Plenty of codecs have come and gone a la RealVideo (.rm), WMA, WMV, FPS1, H.263, DivX/Xvid/MPEG-4 Part 2, VP6, RealAudio (.ra), etc.

Then there are codecs that were pretty much dead on arrival like FLIF.

The image format wars are so fucking fucked right now. On the Chrome (and Firefox because they have no significant market share anymore so they just have to follow whatever Google decides) side you have WebP (AVIF is also starting to gain some traction) and on the Apple/Safari side you have JPEG2000. Safari has enough market share that CDNs will encode JPEG2000 images just for Safari.

The best solution is JPEG XL. However, adoption isn't looking so good.
https://caniuse.com/jpegxl

It looks like AVIF has won the image format wars.
https://caniuse.com/avif

Well, it certainly could have been worse.

I also just found out about Google's Lyra speech codec:
https://en.wikipedia.org/wiki/Lyra_(codec)

And Microsoft's new speech codec, Satin:
https://techcommunity.microsoft.com/t5/microsoft-teams-blog/satin-microsoft-s-latest-ai-powered-audio-codec-for-real-time/ba-p/2141382

Those are both really cool!

It makes me wonder what could be possible as we get more powerful NPUs and TPUs. Would be neat to use a neutral net to encode video. I guess it is already kind of possible. You could use a neutral net to examine a video and dynamically adjust the encoding parameters on the fly to get the best possible quality.

Actually, I wonder if that's what NVEC2 is doing. Once NVIDIA added tensor cores we got NVENC2. Encoding speed was almost halved compared to previous generations but the quality dramatically went up. At content delivery bitrates like 720p 30FPS at constrained VBR of 3.5 Mbps it'll deliver a higher quality video than x264 on the placebo preset. I bet that's what they're doing. Well, at least it's part of what they're doing. Would be nice to have an open source implementation tho.

Speaking of new possibilities for video encoding, I wonder if VVC/H.266 will learn their lesson from HEVC/H.265 licensing fiasco. Even if licensing is exactly the same as AVC/H.264 I wonder if the industry will adopt it the same as they did with AVC/H.264 or if they'll just embrace royalty free codecs like AV1 because they don't want the possibility of having to deal with all of that shit again with the next generation.

I mean, it seems the industry got burned pretty badly from the HEVC/H.265 licensing mess. I think they've kind of screwed themselves. The industry seems to be embracing royalty free codecs. You needn't look any further than Opus to see that. xHE-AAC outperforms Opus. Especially at very low bitrates. However, the industry sees Opus as good enough and it has received wide adoption while xHE-AAC has revived very limited adoption. And now for speech we apparently have neural net codecs that are royalty free and can work at absurdly low bitrates.

So, even though VVC/H.266 outperforms AV1 I could see the industry saying, "that's cool but this is good enough. We're not doing that again. We'll be making our next codec ourselves to."

I think our future is going to be filled with royalty free codecs that are standard and widely supported.

Thank you for reading my blog post.
internet.jpg

@sjw
WebP is at least a decent format (cause i particulary like that it combines both alpha transparency (like png) and lossy compression (like jpg) and manages to produce smaller file than jpg even with the alpha channel)

it also helps that it’s been supported in virtually all browsers currently

and by the way, FLIF wasnt dead on arrival, but has just become unmaintained as the result of JPEGXL

Follow

@lapin It's wholly controlled by Google, and it doesn't matter if it's open and if the implementation is opensource — this alone make it a big no-no for me. Currently i just set image.webp.enabled to false in Firefox.
I hope it never takes off and gets superseded by something that has the same features but is controlled by at least a consortium of companies, just like AV1 superseded VP9.
@sjw

@m0xee @sjw
i dont particularly mind using webp (or golang for that matter) just because google is the one backing it, as long as they get the job done

but well if AVIF does take off, becomes more and more adopted and supersedes webp (because it does support alpha+lossy just like webp), then i wouldn’t complain either

>just like AV1 superseded VP9

on this topic i really hope the encoding of these two become faster. its been a few years and they’re still so painfully slow compared to x264

@lapin
I like go — as as language. But it's a prime example of how bad Google is for a project. Reference go implementation doesn't support PowerPC BE — Google isn't interested, they only support a handful of architectures. gccgo supports everything gcc does, but it lags several versions behind.
It is open source, you can fork it in theory, but no one needs your incompatible fork. It you want to stay relevant, you have to do what Google does and more. Only a few companies can afford that.
@sjw

@m0xee @sjw
i feel like one of the things golang is good at is making software that deals with back-end web server than system software in general (speaking from personal experience)

what were you writing that you need golang to support that architecture in particular?

@lapin
No, it's actually pretty good as a general purpose language! I get why it's associated with back-end, considering its background, but it's not about that at all, there is a lot of good stuff in go:
gomuks — the Matrix client, very feature-rich, and lightweight compared to most clients, when I need IM-only I actually prefer it
And go is really popular for TUI apps like that: gomphotherium — the mastodon client, amfora — the gemini browser.
@sjw

@lapin
There is a popular free Proton Bridge replacement in go — hydroxide. Bridge itself is written in go. Okay these are services so they don't count I suppose 😅
I have my own tool that switches VPN servers based on my list of preferred countries and server load — I can rewrite it in python (I actually did) and even in shell, but why the hell not go? The fact that you can add a web API and some lightweight web-interface comes in handy too.
Not web-things only, go is good!
@sjw

@m0xee
>”Not web-things only”
>All the things you mentioned are all connected to the web in one way or another

i completely agree with you, but :doge_laugh:

Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml