Dav2d
277 points
5 hours ago
| 11 comments
| code.videolan.org
| HN
jzebedee
4 hours ago
[-]
Project description:

  dav2d is the fastest AV2 decoder on all platforms :)
  Targeted to be small, portable and very fast.
If you're out of the loop like me:

  AV2 is the next-generation video coding specification from the Alliance for Open Media (AOMedia). Building on the foundation of AV1, AV2 is engineered to provide superior compression efficiency, enabling high-quality video delivery at significantly lower bitrates. It is optimized for the evolving demands of streaming, broadcasting, and real-time video conferencing. 
- from https://av2.aomedia.org/
reply
delfinom
4 hours ago
[-]
reply
Telaneo
3 hours ago
[-]
They've done the same thing with AV1, and I can't see that having prevented adoption, nor can I imagine Sisvel wanting to poke the bear that is AOMedia unless they're certain their case is absolutely watertight.
reply
walrus01
3 hours ago
[-]
I see zero public evidence that they've filed any lawsuits against the members of AOM in any jurisdiction. I'm sure there's been a lot of threatening letters sent...
reply
jorvi
2 hours ago
[-]
Yup. The Dolby/Disney vs Snapchat lawsuit is going to be the first one. So far it's only been filed.

The big question is if AOMedia is going to make good on their Mutually Assured Destruction promise of using their patent and financial war chest to to countersue into oblivion anyone trying to go after AV1 adaptors.

reply
dmitrygr
1 hour ago
[-]
I would love to live in a world where this happens. I will place big bets that it will, regrettably not happen.
reply
Telaneo
3 hours ago
[-]
Same, which is what makes it seem to me that that case is absolutely not watertight. Those patents are probably all about esoteric minutiae (to be fair, that's because that's what it takes to make a better video codec these days) and everything and anything that can seemingly be connected to AV2 (or AV1 for that matter), many of which have only gotten a patent because the person approving it only barely understands what it's saying.
reply
ronsor
3 hours ago
[-]
This is a thinly veiled extortion racket and any competent system would fine them into bankruptcy.
reply
mort96
2 hours ago
[-]
We need a more efficient way to eliminate bullshit patents or bullshit patent infringement claims than "violate them then spend millions on lawyers to fight them in court".
reply
brookst
2 hours ago
[-]
Sure, and at the same time we need a more efficient way to ensure big companies can’t just take what they want and bury anyone who complains.

It’s not an easy problem.

reply
BLKNSLVR
45 minutes ago
[-]
You can tell Sisvel are a bunch of grifters by the fact they use slight grey text on a slightly less grey background.

Aesthetics over function; style over substance. If that's their web design policy it's likely their policy in all other aspects.

I'm also not sure that they're aware that intellectual property rights no longer exist in the US. If AV2 was vibe coded, there would be no case.

reply
astrange
28 minutes ago
[-]
> If AV2 was vibe coded, there would be no case.

…for copyright. Not for anything else. Patents would still apply.

reply
walrus01
4 hours ago
[-]
Sisvel is a patent troll. Take a look at the combined list of all companies that are the AOM and tell me with a straight face that all of their corporate in house counsel specializing in intellectual property law are wrong.
reply
asveikau
3 hours ago
[-]
I don't know this stuff super well but I imagine it's not necessarily about the lawyers being right or wrong so much as what they can convince people of. The ideal scenario for the patent troll is they can intimidate you into licensing with them. Another good outcome for them (though more costly) is they can convince some non-expert in court. In either case the big players behind the codec can defend themselves but a small one just picking it up downstream as OSS can't.
reply
walrus01
3 hours ago
[-]
I don't doubt for a minute that they are going to attempt to intimidate companies using av1 which are much smaller than the AOM founders.
reply
tensor
4 hours ago
[-]
Not on topic, but wow the internet has very quickly devolved into: click -> "making sure you're not a bot", click -> "making sure you're a human", click -> "COOKIES COOKIES COOKIES", click -> "cloudflare something something"
reply
thresh
4 hours ago
[-]
We had to set it up on the parts of VideoLAN infra so the service would remain usable.

Otherwise it was under a constant DDoS by the AI bots.

reply
nijave
2 hours ago
[-]
While I do sympathetize with the AI DDoS situation, it'd be nice if there were a solution that allows them to work so they can pull official docs.

For instance, MCP, static sites that are easy to scale, a cache in front of a dynamic site engine

reply
thresh
2 hours ago
[-]
Of course, static websites is the best solution to that problem.

Our documentation and a main website are not fronted by this protection, so they're still accessible for the scrapers.

reply
hectormalot
2 hours ago
[-]
Maybe I’m naive about this, but I didn’t expect AI scrapers to be that big of a load? I mean, it’s not that they need to scrape the same at 1000+ QPS, and even then I wouldn’t expect them to download all media and images either?

What am I missing that explains the gap between this and “constant DDoS” of the site?

reply
thresh
2 hours ago
[-]
You cant really cache the dynamic content produced by the forges like Gitlab and, say, web forums like phpbb. So it means every request gets through the slow path. Media/JS is of course cached on the edge, so it's not an issue.

Even when the amount of AI requests isnt that high - generally it's in hundreds per second tops for our services combined - that's still a load that causes issues for legitimate users/developers. We've seen it grow from somewhat reasonable to pretty much being 99% of responses we serve.

Can it be solved by throwing more hardware at the problem? Sure. But it's not sustainable, and the reasonable approach in our case is to filter off the parasitic traffic.

reply
fragmede
1 hour ago
[-]
You kind of can though. You serve cached assets and then use JavaScript to modify it for the individual user. The specific user actions can't be cached, but the rest of it can.
reply
Y-bar
2 hours ago
[-]
They are a scourge, they never rate-limit themselves, there are a hundred of them, and a significant number don’t respect robots.txt. Many of them also end up our meta:no-index,no-follow search pages leading to cost overruns on our Algolia usage. We spend way too much time adjusting WAF and other bot-controls than we should have.
reply
nijave
2 hours ago
[-]
I think there's a few things at play here

- AI scrapers will pull a bunch of docs from many sites in parallel (so instead of a human request where someone picks a single Google result, it hits a bunch of sites)

- AI will crawl the site looking for the correct answer which may hit a handful of pages

- AI sends requests in quick succession (big bursts instead of small trickle over longer time)

- Personal assistants may crawl the site repeatedly scraping everything (we saw a fair bit of this at work, they announced themselves with user agents)

- At work (b2b SaaS webapp) we also found that the personal assistant variety tended to hammer really computationally expensive data export and reporting endpoints generally without filters. While our app technically supported it, it was very inorganic traffic

That said, I don't think the solution is blanket blocks. Really it's exposing sites are poorly optimized for emerging technology.

reply
nerdralph
3 hours ago
[-]
I highly doubt there is no other technically feasible option to block the AI bots. You end up blocking not just bots, but many humans too. When I clicked on the link and the bot block came up, I just clicked back. I think HN posts should have warnings when the site blocks you from seeing it until you somehow, maybe, prove you are human.
reply
goobatrooba
2 hours ago
[-]
I'm sure there are many solutions for many problems, but expecting a small Foss development team to know or implement them all is rather unreasonable.

I think the world gains more if the VLAN team focuses on their amazing, free contribution to the world, than if they spend the same time trying to figure out how to save you two clicks.

We all hate that this is happening, but you don't need to attack everyone that is unfortunately caught up in it.

reply
overfeed
2 hours ago
[-]
> I highly doubt there is no other technically feasible option to block the AI bots.

If you have discovered such an option, you could get very wealthy: minimizing friction for humans in e-commerce is valuable. If you're a drive-by critic not vested in the project, then yours is an instance of talk being cheap.

reply
thresh
2 hours ago
[-]
I'm all ears on how we can fix it otherwise.

Keep in mind that those kinds of services: - should not be MITMed by CDNs - are generally ran by volunteers with zero budget, money and time-wise

reply
nerdralph
1 hour ago
[-]
First off, don't block the first connection of the day from a given IP. Rate limit/block from there, for example how sshguard does it.

I've seen several posts on HN and elsewhere showing many bots can be fingerprinted and blocked based on HTTP headers and TLS.

For the bots that perfectly match the fingerprint of an interactive browser and don't trigger rate limits, use hidden links to tarpits and zip bombs. Many of these have been discussed on HN. Here's the first one that came to memory: https://news.ycombinator.com/item?id=42725147

reply
port11
4 hours ago
[-]
The internet is such a Tragedy of the Commons… its citizens that act selfishly and in bad faith will slowly make it unusable.
reply
codedokode
3 hours ago
[-]
No, it is because citizen allow treating them like this.
reply
esseph
3 hours ago
[-]
> its citizens that act selfishly and in bad faith will slowly make it unusable

It's rarely been the citizens that have been the problem, but the governments and companies that seek the use the network connection for their overwhelming benefit.

Re (above):

> Not on topic, but wow the internet has very quickly devolved into: click -> "making sure you're not a bot", click -> "making sure you're a human", click -> "COOKIES COOKIES COOKIES", click -> "cloudflare something something"

reply
fastball
3 hours ago
[-]
wat. The protections in place that the OP is talking about are almost entirely due to (not government and company) bad actors.
reply
honktime
4 hours ago
[-]
Its pretty explicitly not a tragedy of the commons. Its a tragedy of the ruling class abusing the resources of the 'commons' to extract value. There is nothing 'commons' about trillion dollar companies extracting all available value from the labor of the working class. That's just the tragedy that'll bring around the death of society, the same tragedy that brings all other tragedys
reply
throw-the-towel
3 hours ago
[-]
The commons in question is the internet itself.
reply
amusingimpala75
4 hours ago
[-]
Thank you for describing the tragedy of the commons
reply
multjoy
3 hours ago
[-]
The commons were never unregulated. This is a tragedy of enclosure.

https://en.wikipedia.org/wiki/Enclosure

reply
dyauspitr
3 hours ago
[-]
There’s definitely lots of problems with the ruling class and wealth disparity. Perhaps the defining problems of our current age.

That being said, so many of the plebs suck. Like 2% will ruin everything for everyone.

reply
throw-the-towel
3 hours ago
[-]
While a lot of the plebs do suck, a pleb who sucks causes way less problems than a big corp that sucks simply by virtue of not having too much resources.
reply
dyauspitr
1 hour ago
[-]
I agree.

But whether you agree with me or not, most paradigm shifting changes come from billionaires/corps because they are the only ones with the money to pull off massive shifts. Most innovation is not grassroots and heavily funded by the “elites”. This is how most successful countries have been for atleast the last 100 years. So billionaires add a lot of value even as they cause a lot of pain.

The solution in my mind is we absolutely need uncapped billionaires but they need to be effectively taxed (not like 90% but closer to 50%) and they have to have absolutely no influence on the government.

reply
notenlish
3 hours ago
[-]
Nearly every single website I'm not logged into these days want me to "confirm I'm not a bot".

it is incredibly annoying but what can you do? AI scrapers ruined the web.

reply
pixelpoet
2 hours ago
[-]
No one's even clicking anymore, everything implores me to tap or swipe these days, and everything is optimised for humans with one eye above the other.

Then I press the X to close the all-caps banner commanding me to install the app, upon which I get sent to the app store. Users of the website refer to it as an app.

reply
rayiner
3 hours ago
[-]
Wow I’m glad it’s not just me. I thought my IP block had gotten caught up in some known spamming or something.
reply
tomwheeler
2 hours ago
[-]
At least this one was significantly faster than Cloudflare and required no action on my part.
reply
tosti
4 hours ago
[-]
I get exactly none of that. Is your adblocker still working?
reply
oybng
4 hours ago
[-]
renders your gigabit connection pointless
reply
arkensaw
2 minutes ago
[-]
maybe not great naming. Sounds very similar to the rapper D4vd, who was just arrested for murdering a 14 year old girl
reply
jofzar
44 seconds ago
[-]
Actually it's closer to https://youtube.com/@dave2d who is a popular tech YouTuber
reply
Telaneo
3 hours ago
[-]
Glorious. Really looking forward to seeing how much better than AV1 it actually turns out to be. It's a shame it'll take a while before we'll have a decent encoder (it took an annoyingly long time until SVT-AV1 was usable).
reply
risho
2 hours ago
[-]
is there any understanding of how big of an improvment av2 will be over av1?
reply
pkos98
2 hours ago
[-]
off topic, but related to the recent github alternative discussion:

Wow, this gitlab instance looked so much cleaner/simpler and less clunky than my past experiences! Also loaded really fast on first page load as well as subsequent actions

reply
0x0
2 hours ago
[-]
Just recently noticed this got posted to deb-multimedia, although I think there is a typo in the package description....

https://www.deb-multimedia.org/dists/unstable/main/binary-am...

... it says "fast and small AV1 video stream decoder"

... should probably be "AV2" ?

reply
sylware
3 hours ago
[-]
I would even remove the C code and lower the usage of the assembler pre-processor to a basic C pre-processor.

Happy, AV2 decoding already here.

:)

reply
Zopieux
4 hours ago
[-]
>video decoder implementation

>look inside

>it's C

reply
tux3
4 hours ago
[-]
Not just C, dav1d and dav2d are actually mostly written in ASM! Then there's a bit of C as the glue or for functions that don't have optimized ASM yet.

Since dav2d is newer it has a higher fraction of C, but not enough for it to be the main language in the codebase :)

reply
Almondsetat
3 hours ago
[-]
What are you even implying?
reply
notenlish
3 hours ago
[-]
I think they mean that video decoders and encoders tend to have custom assembly code for speedup.
reply
Almondsetat
2 hours ago
[-]
And? It's common knowledge that the "reference" or "research" version of any codec is always quite high level to get development going and actually produce a working bitstream
reply
IshKebab
3 hours ago
[-]
That codecs should be written in safer languages given that they usually process untrusted files. There have been a number of serious hacks from file parsing bugs due to them being written in unsafe languages.

There's literally a DSL designed for this purpose (Wuffs) so it would be interesting to hear why they didn't use it.

reply
brigade
2 hours ago
[-]
There's an order of magnitude difference in speed requirements between file format parsing and image decoding, then another order of magnitude difference to video decoding. Even rav1d reuses dav1d's assembly (most of the actual runtime) to approach its speed.
reply
astrange
31 minutes ago
[-]
The people who write DSLs for video codec asm, or who claim that it's fine to use intrinsics or X higher-level language and it will still be fast enough to be usable, are simply wrong and have never been able to demonstrate otherwise.

Having said that I do think you could write a DSL to generate safe performant asm for a video codec. Just not a platform-independent one. It would still have to be asm.

reply
adobrawy
42 minutes ago
[-]
There was already attempt for dav1d to re-implement in rust by rav1d. It was hard to match performance: https://www.memorysafety.org/blog/rav1d-perf-bounty/
reply
sergiotapia
3 hours ago
[-]
muh rust muh safety muh Safe Code
reply
kylec
3 hours ago
[-]
I wonder if the author is a Dave2D fan?

https://www.youtube.com/@Dave2D

reply
breve
13 minutes ago
[-]
The AV1 decoder is dav1d. The AV2 decoder is dav2d.

One day in the mysterious future the AV3 decoder will be dav3d.

reply
7bees
2 hours ago
[-]
I think it's an increment on this: https://www.videolan.org/projects/dav1d.html
reply
d3Xt3r
2 hours ago
[-]
reply
foo-bar-baz529
2 hours ago
[-]
They’re more of a D4vd fan
reply
dcsommer
4 hours ago
[-]
We must not continue to develop media codecs in memory unsafe languages. Small, auditable sections can opt-out perhaps, but choosing default-unsafe for this type of software is close to professional negligence.
reply
fguerraz
3 hours ago
[-]
Cryptography and video codecs are notable exceptions, they put a lot of effort to making the code provably memory safe: no recursion, limited use of stack variables, no dynamic allocations, etc. As a result, memory safe languages bring nothing but trouble by making it non deterministic, that’s especially true for crypto where compiler “optimisations” guarantee you side channels attacks.
reply
astrange
29 minutes ago
[-]
Video codecs just don't need to do dynamic allocations because it's not relevant to the problem. There's still certainly plenty of opportunities for memory bugs because there's a lot of pointer math.
reply
simonask
21 minutes ago
[-]
What in the world do you mean by “non-deterministic”?

C compilers, Rust compilers, and assemblers are all deterministic.

reply
WhatIsDukkha
2 hours ago
[-]
Thank you for mentioning this.

I wonder IFF Rust had an effects system that a Jasmin MIR transform (ie like SPIRV is for shaders) would be useful?

https://github.com/jasmin-lang/jasmin

reply
fishgoesblub
3 hours ago
[-]
Of the 3 software AV1 encoders, the only one that is fully dead is the Rust encoder (rav1e). If people truly wanted memory safe encoders/decoders, they would fund and develop them.
reply
simonask
19 minutes ago
[-]
Encoding is a way, way less risky thing to be doing compared to decoding.
reply
vlovich123
3 hours ago
[-]
Fully dead in what sense? Seems like it still has active development to me.
reply
fishgoesblub
3 hours ago
[-]
It hasn't had any proper quality/speed improvements in years. Only thing that has changed is updating deps and some bug fixes.
reply
esseph
3 hours ago
[-]
> If people truly wanted memory safe encoders/decoders

Really? How many codecs have your neighbors contributed money for the development of, just curious.

reply
computerbuster
2 hours ago
[-]
I think these conversations are directed by the parties funding the efforts. Example: "we (large company) want a fast AV2 decoder" -> they pay a specialized team to do it -> this team works in C for the most part, so it is done in C. If there were financial incentives to do it in Rust, they'd pay more for a Rust decoder.
reply
Telaneo
3 hours ago
[-]
Given Netflix's involvement with SV1-AV1, (not even that) indirectly, at least 1.
reply
kllrnohj
2 hours ago
[-]
For the codec itself, the majority of it is performance sensitive and often has a significant amount of assembly even, so a memory safe language doesn't change much.

However for the container/extractor... those should absolutely be in a memory safe language, and those are were a lot of the exploits/crashes are, too, as metadata is more fuzzy.

As a practical example of this see something like CrabbyAVIF. All the parser code is rust, but it delegates to dav1d for the actual codec portion

reply
maxloh
2 hours ago
[-]
Decoders written in Rust will be a lot slower than the equivalents in assembly.
reply