4 ms·
Likely they are patenting their use of ANS rather than ANS itself. You can patent anything if you get specific enough. For things like video formats it actua
by justonepost 9y ago
Likely they are patenting their use of ANS rather than ANS itself. You can patent anything if you get specific enough. For things like video formats it actually works because it keeps others from creating decoders/encoders.
- cma 9y agoApplying it to video is one of the most obvious applications and it pretty much just slots in as a module, replacing huffman coding or arithmetic coding.
- justonepost 9y agoYeah, that's always tricky, but you are still missing the point. It's not using it for video they have to prove is non obvious but how they are using it for video. Given the elite mathematical skills you'll need to understand all of this I suspect they'll be able to protect it. Good reference on this patent: https://encode.ru/threads/2648-Published-rANS-patent-by-Storeleap/page3 https://encode.ru/threads/2648-Published-rANS-patent-by-Stor...
- thechao 9y agoThe genius of ANS is that it isn't a difficult concept to understand. It's a cleverly designed look-up-table. The only really difficult part is the proof of certain parts of the codec window.
- cyphar 9y agoBut is it difficult to understand for a patent clerk, with a massive time crunch and likely not-incredibly-deep knowledge about information theory? Software patents are dangerous for many reasons, but the fact that they're so easy to get is quite worrying.
- cma 9y agohttps://www.google.com/patents/US20170164007 https://www.google.com/patents/US20170164007 Claim one: none of the transform block stuff etc. is new. The only thing added is: > processing a binary flag or bit using the Boolean ANS decoder to generate an output value for the binary flag or bit using the ANS state; and >processing a token using the symbol ANS decoder to generate an output value for the token using the ANS state; That's just slotting existing ANS implementation as a module. Other entropy encoders were used in that exact stage prior to this. The other claims 2-8 just add on ANS optimizations that aren't video specific whatsoever. Things including using a bytestream instead of a bitstream. If any of those were a significant invention by the filee (I'm not going to rule that out, someone please chime in if there was one), why didn't they also patent their application to the entropy encoding stage of image encoding? Or the entropy encoding stage of all sorts of other compression applications? I haven't read through all the others below claim 8, they look similar with the main variation being using instructions stored in "non-transitory memory" (hardware decoders), but there might be something more video-specific there.
- pera 9y agoI think you are correct: ANS is an entropy coding method, so a patent shouldn't be able to claim a new use for encoding some specific type of information [1]. Also, Duda's paper even exemplifies the obvious use case for video compression [2]. [1] - https://en.wikipedia.org/wiki/Inventive_step_and_non-obviousness#1984.E2.80.932006:_Teaching-suggestion-motivation_test https://en.wikipedia.org/wiki/Inventive_step_and_non-obvious... [2] - https://arxiv.org/abs/1311.2540 https://arxiv.org/abs/1311.2540
- TD-Linux 9y agoUnfortunately, that's not the case, at least as the patent office currently sees things. There's thousands of patents for H.264 and HEVC that amount to "code a certain bitstream symbol with CABAC this certain way".
- cxseven 9y agoIf that's the case, that's a terrible perversion of the intended purpose of patents. The progress of science and the useful arts would probably be better served by putting the entire patent system on hiatus for a few decades.
- TD-Linux 9y agoThe patent describes not just "slotting in", but one way in particular. Note that if you were to "slot in" ANS into the current AV1 codebase, for example, it wouldn't actually read on this patent because AV1 codes its coefficients differently.
- cma 9y agoI didn't say it covered slotting it in to anything. I don't read your comment as showing how it is slotted in one "way" in particular, but rather how it is slotted into one thing in particular.