Larry’s Personal & Tech ramblings

Just another WordPress.com weblog

Fast ARM JPEG code licensing

WordPress (the company which hosts this site) collects some interesting statistical data on the people who visit the blog.  To me, the most interesting data is a list of the search words which direct people to this site.  Since I started including the JPEG and ARM keywords in my posts, I’ve seen a steady stream of people searching for basically the same thing: Free optimized source code for decoding JPEG/MPEG images on ARM devices.  I’ve done such searches myself and have come to the conclusion that it’s not available.  For anyone who has done research and invested tons of time and energy into writing optimized code, it is unlikely that they will be willing to give it away for free.  There are plenty of open-source and free projects on the internet that are valuable and professionally done, but there usually comes a point in a project’s lifetime when the author commercializes it to get compensated for the time invested.

I try to share my knowledge and experience with the developer community; I understand the frustration of wasting precious time locating resources or coming up with workarounds for problems outside of (or within) my code.  I also make a living writing software, and so I must write code which is worth compensation from my customers and maintain innovative solutions which compare well with my competition.  The geek in me would love to have an open discussion about the fastest way to decode Huffman encoded data or minimize the calculations in the IDCT, but as a consultant, that would be self-defeating.

The “trade secrets” are visible in the source code, but hidden in the object code, so licensing object code will incur less risk to me and therefore cost considerably less.  I’ve licensed my code to various companies for values ranging from several hundred dollars to tens of thousands.  The price varies according to the risk and time required.  Companies needing help with ARM optimization issues are encouraged to contact me.  The amount I charge for my time or code is usually far more economical than having other programmers spend time trying to invent what I’ve already  got working.

July 31, 2007 - Posted by bitbank | arm, arm9, asm, assembly language, jpeg, omap, optimization, pocket pc, smartphone, xscale | | 5 Comments

5 Comments »

  1. am I wrong or most OMAPS already include a MPEG decoder DSP?

    Comment by nomadsoul | August 9, 2007

  2. On Windows Mobile devices, the DSP portion of the OMAP is dedicated to radio functions and cannot run user code. I don’t think it comes with MPEG software in the DSP portion of the chip.

    Comment by bitbank | August 9, 2007

  3. oh…im used to Linux embedded ;-)

    Comment by nomadsoul | August 10, 2007

  4. What about Intel Performance Primitives for XScale?
    It’s a heck of a lot cheaper, but it doesn’t give you source. If all you need is an optimized jpeg library, you can get it affordably from Intel, or go to the ARM group for an expensive license.

    Comment by David | September 12, 2007

  5. The Intel Performance Primitives only help with the IDCT which represents about 1/3 of the decode time. If you’re using the IJG code for the Huffman decode or pixel rendering then the Intel library won’t help much.

    Comment by bitbank | September 12, 2007

Leave a comment