software patents, submarines and linear algebra
probably by now, many of you have heard that Forgent Networks is <a href="http://ir.forgent.com/ireye/ir_site.zhtml?ticker=FORG&script=410&layout=-6&item_id=314044">claiming a patent on some of the compression techniques used in the JPEG image format</a> and actively trying to get licensing fees from anyone who uses jpeg compression in their software. the patent was filed 16 years ago and they've waited until now to assert their ownership. of course now jpegs are so widely used that there's no way the technology can really be eliminated or replaced without causing a lot of harm. so any companies that distribute software that handles jpegs are stuck either paying licensing fees or getting sued. open source developers are, of course, even more screwed. when Unisys pulled a similar stunt with a patent on the LZW compression used in gifs a few years ago, there were similar problems. many powerful open source image libraries such as perl's GD library had to remove support for gifs.
obviously, i'm not very happy about this whole situation. i wrote the following post on the <a href="http://www.webdesign-l.com/">webdesign-l</a> list:
i'd really love to see someone with high paid lawyers attack the
foundations of software patents. patent law specifically forbids
patenting mathematical processes and techniques. companies are somehow
getting away with patenting computer algorithms. anyone who's studied
computer science and is familiar with things like the lambda calculus
knows that any computer algorithm can be represented as a mathematical
in my <em>introductory</em> linear algebra class, we went over a basic lossy
compression algorithm similar to what jpeg uses. the idea is that an
N x M matrix can be decomposed into two smaller matrices (eg, an N x 1
and a 1 x M matrix) that, when multiplied together produce
approximately the original matrix. if your original matrix is actually
a bitmap where each element in the matrix represents a pixel, what you
end up with is basic jpeg compression. for a small image (say 10
pixels by 10 pixels), you can do the whole process by hand on a
blackboard. the compression technique that the patent covers is a
little more complex than that but is still essentially <strong>math</strong> which
you shouldn't be able to patent.
i'm not holding my breath for anyone to actually put this argument
forth in court though. any of the companies with enough money to
challenge the foundations of software patents realizes that they
benefit too greatly from them. microsoft, IBM, lucent, etc. all
maintain huge portfolios of software patents, many over really trivial
algorithms. between them they just make agreements: you can use my
patents in your products if i can use your patents in my products. but
they have patents on enough basic algorithms that they can effectively
lock out any smaller competitors that they want to (or use the threat
of patent lawsuits as leverage for takeover bids, etc).
software patents are the single greatest threat to open source
software development. particularly the stupid, simple patents and the
patents like this one that pop up 16 years after the fact when the
algorithms are already in too widespread use to replace.
<a href="http://www.meyerweb.com/eric/">eric meyer</a> then gave me a little hope by replying with link to a story about how
<a href="http://www.sciam.com/article.cfm?articleID=000C4F59-8093-1D2B-97CA809EC588EEDF&catID=2">these kinds of "submarine" patents may be made illegal</a> soon due to widespread abuse. that would be a start i guess.
in general though, i expect this same kind of situation to happen over and over again, causing serious harm to the advancement of computer science and software development for as long as software patents are legal.