Re:Video Codec in 100 lines of Rust
by dr-ando on Monday December 19, 2022 @05:39PM
(#34058805)
Funnily enough I recently released 0.1.0 of "less-avc" a pure Rust H.264 (AVC) video encoder: https://github.com/strawlab/less-avc/ . For now it only implements a lossless I PCM encoder but supports a few features I need such as high bit depth. If anyone has a codec-writing itch they want to scratch, I would welcome work towards the compression algorithms H.264 supports: context-adaptive variable-length coding (CAVLC) and context-adaptive binary arithmetic coding (CABAC). Also I'm happy for constructive criticism or questions on this library. I think it is fairly idiomatic, and no `unsafe`, rust. While H.264 is an older codec now, as far as I can tell, this also means any patents on it are about to run out and it is very widely supported.
[ Parent
| on HN ]
Re:Video Codec in 100 lines of Rust
by userbinator on Monday December 19, 2022 @06:57PM
(#34059616)
as far as I can tell, this also means any patents on it are about to run out
Not for H.264; looks like the last patent expires in 2028:
https://scratchpad.fandom.com/wiki/MPEG_patent_lists#H.264_p...
On the other hand, the last patent on MPEG-4 ASP (Xvid/DivX/etc.) which preceded H.264 apparently just expired earlier this month:
https://meta.wikimedia.org/wiki/Have_the_patents_for_MPEG-4_...
...and IANAL but that means the patents for H.263 and everything older should've already expired too.
Re:Video Codec in 100 lines of Rust
by Dylan16807 on Monday December 19, 2022 @09:04PM
(#34060644)
"method of selecting a reference picture" sounds like an encoding patent, and that one was filed four years after the standard came out. I wouldn't worry about 2028.
It's harder to evaluate the blob of patents from 2004-2005.
That's a great list of the H.264 patent claims--thanks. I had naively assumed that since the first iteration of standard was published in 2003 that "obviously" all related patents (to features in the first iteration, anyway) would have to have been filed prior. Clearly, that is not the case.