Take a look at claims 1, 19 and 20 to see what is covered: https://patents.google.com/patent/US11234023B2/en
The application received 3 rejections before allowance, so it's not like the USPTO rubber-stamped it: https://patentcenter.uspto.gov/#!/applications/16456602/ifw/...
I'm not familiar with this technology and don't have time to take a closer look. But if I were to take a closer look, I'd check out what the examiner wrote in their allowance (Notice of Allowance and Fees Due) to see if they identified a specific feature that makes it patentable.
Thanks. That seems helpful.
To save people some digging and so it's easier to discuss, I've copied (actually retyped) something I found which seems relevant. At your second link, there's a document called "Notice of Allowance and Fees Due (PTOL-85)", and starting on p. 10, there's a section called "Reasons for Allowance", which reads:
----------
Reasons for Allowance
Claims 1 - 28 are allowed in light of the Examiner's Amendment and the Applicant's response filed on August 23, 2021.
The following is an Examiner's statement of reasons for allowance: Applicant has amended independent claim to incorporate detailed subject matter of the decoding process and apparatus.
The closest prior art Greenfield et al., (US 2016/0248440 A1), Li et al., (US 2015/0103902 A1) and Converse (US 2017/0164007 A1) do not disclose the claimed element, "during a first phase of the two-phase structure, selectively updating, depending on a determination of whether or not an output symbol from a previous iteration was generated, state of the RANS decoder using probability information for the output symbol from the previous iteration, the state of the RANS decoder being tracked using a value;" and "during the second phase of the two-phase structure, selectively generating, depending on a determination of whether or not the state of the RANS decoder includes sufficient information to generate an output symbol for a current iteration, the output symbol for the current iteration using the state of the RANS decoder, the state of the RANS decoder including sufficient information to generate the output symbol for the current iteration if the state of the RANS decoder is greater than a threshold". Therefore, the prior art references taken either alone or in combination fails to anticipate or fairly suggest the limitations of the independent claims. While using a range asymmetric number system (RANS) decoder was known at the time of the invention, Applicant's very specific claimed structure is considered patentable over the prior art of record.
----------
As a total layman, not knowing the tech here (or patents or law), it sounds promising to me, in the sense that it probably doesn't stop everyone from using RANS.
It mentions prior art and says "RANS" ... "was known" in conjunction with that. And it also says "very specific claimed structure", which also sounds like this doesn't cover all of RANS.
> state of the RANS decoder including sufficient information to generate the output symbol for the current iteration if the state of the RANS decoder is greater than a threshold
I am not a lawyer. That reads to me like a 'relaxation'/optimization of the decoder to allow for iterations that don't yield any symbols, but still transforms the decoder state which affects subsequent symbols.
It's interesting, but feels a bit obvious to me. IIRC zstd decoder spec explicitly describes a state machine that is updated as bytes are read and symbols emitted and it doesn't seem like a big leap to imagine some ops taking multiple iterations. Then again I'm not exactly drowning in novel compression algorithms that I invented myself, so...
I wonder if you'd work around it if you it 'transpose' the problem and consider it to be variable bytes-per-instruction but still one instruction-per-symbol.
As Timothy Lee says in the article, the problem with this type of patent is that it boxes in how you can use the original technology: you can freely tie your shoes with this shoelace, but if you use a double knot, now you infringe a patent.
In some ways, this mirrors the difference between copyleft and permissive copright licenses. By failing to patent the original invention, Duda made ANS useful and widely available, but he now has no leverage against Microsoft.
Except, he can challenge Microsoft's patent on prior art terms
1. MSFT attempts to assert patent
2. Defender says haha
3. MSFT files motion with court
4. Defender calls MSFT: "you want your patent invalidated, because this is how you get your patent invalidated"
5. <back and forth>
6. Defender pays $, MSFT withdraws motion from court.
even more likely:
1. MSFT doesn't take companies to court on patents - that's not their business model
2. In the next mega cross-licensing negotiation between MSFT and <Google, IBM, etc> said patent it added to a pile of 1000s of others.
3. Little stack pays bigger stack by the inch (not joking)
4. Your cellphone is $1 more expensive
5. Patent attorney's kid goes to college. Yours does too.
6. Attorney's kid goes debt-free. Yours does not.
(pls correct me if there's a more modern version)
That's called the aglet
(No, the Patent Office does not have a good reputation for rejecting prior-art-plus-a-few-minor-tweaks patent applications up front.)
Frankly, it seems that most (nearly all) patents have only a trivial amount of money invested to create the idea, other than what the patent lawyer costs. For example, "playing checkers --- with a computer" patents. Ending all patents would not slow down innovation at all.
There is one exception, drug patenting, where billions are spent developing a drug and getting it approved.
Did you read this ?
> where billions are spent developing a drug and getting it approved
I do grant that the practice of patenting small incremental changes to existing patented things ("this drug, with slower release!") does seem a bit questionable, but overall it still seems like a good thing. I'd be interested in hearing your argument for why it's not a good fit.
So, you might say, only big business could afford to file patents. Not exactly, $1m is well within the reach of a startup.
But even for big business, they're not going to file 1000 patents at a cost of a billion dollars.
Patent trolling would become an untenable business plan.
https://www.seattletimes.com/business/amazon/microsoft-still...
As I've stated elsewhere in this thread, you don't have to be a dick about owning the patent. It's your patent, and you can do with it what you want. There are patent pools that are managed to ensure they can't be used for evil that you can donate your patent to if you can't afford the time to manage it.
This algorithm is a great example as its a general use encoding mechanism. If I develop software to encode and decode radio transmissions to a satellite using it, patenting it will prevent it from being using for say image encoding and decoding across the web. That use has zero impact on my concrete implementation or my commercial sector.
Even for overlapping industries, if there are zero patents, and two competing companies independently come to the same technological solution what is the justification for being able to patent that? If they didn't come to it independently because its available publicly on the web, then its prior art and shouldn't be patent-able anyway. If one reversed engineered the other solution and reproduced it, that's perfectly legal for other industries under certain circumstances and is explicitly allowed under the DMCA. I'm not arguing its right, but if that is supposed to be illegal patents as designed are the wrong tool for enforcement.
This isn't a patent covering a specific use of a specific algorithm for a specific industry (which even then I don't think should be patent-able) but the general algorithm itself restricting ALL uses of it. This is an existing concept that was intended to be open, already exists in the real world, and is on route to becoming part of international standards being gobbled up by Microsoft. There does not appear to be a significant or meaningful contribution to the work in this patent and should really have been rejected due to prior art.
Saying the original author should have patented this is also facile as that takes an enormous amount of resources that isn't available to most lone developers, or researchers, especially when the intent is to give it away freely to world.
You're also glossing over the personal value of time expenditure to do that which even with professional guidance can take hundreds of hours. It is absolutely prohibitively expensive for something someone is going to give away for free and even most small independent companies.
There should be no reason that a donated public idea or concept should require any expenditure for protection.
I do feel that if I spend my time creating something on my own, I should be free to use it, yes. Unfortunately, the patent system means I'm not necessarily allowed to use something I invented and created myself, because it may be patented.
As John Carmack said:
"The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying."
(Source: I'm a former patent examiner.)