Exploiting capabilities/limitations of available video hardware is nothing new in terms of multimedia programming. The old IBM VGA hardware had a 320×200 resolution mode that could display 256 unique colors. For years, that drove many graphic-heavy applications (notably games but also certain video applications such as FLIC files originally generated by Autodesk software). Back when I was hacking on the Sega Dreamcast I started to brainstorm about a vector quantizer video codec that could take advantage of the PowerVR 3D graphics hardware present in the console.
Category Archives: Outlandish Brainstorms
More On That Multimedia Programming Language
I move swiftly from project to project and I know some readers are hoping that I succinctly forget about this multimedia programming language idea. Just a few more thoughts:
Matthieu Castet tipped me off that gcc 4 actually offers vector data type extensions. The concept is to declare and use vector data types in such a way that the compiler will understand how to transform them into SIMD instructions (MMX, SSE2, Altivec, et al). Please forgive my skepticism regarding how well this could possibly work. I do not begrudge the gcc developers for their roles; I know it’s a tough duty and I appreciate that gcc works across so many different CPU architectures. However, one area of gcc that seems to break down with inordinate regularity is optimization along with C/ASM code intermingling.
One item that I did not make clear in my first post about the language is driving motivation. The idea is to take something that resembles an ISO-style spec and compile it directly. Have you ever looked at a formal ISO spec? Probably not an official one, but chances are that if you have been working on multimedia tech for any period of time you have at least seen ISO draft documents floating around on the internet. Generally, they are impenetrable but also highly programmatic. I think it would be useful to compile the specs directly.
Maybe I am thinking of some literate programming variation.
Custom Multimedia Programming Language
This is what happens when you spend year in and year out thinking about the exact same topic… You start thinking about designing a new programming language!
More Crazy RE Experiments – call/ret
I have been at it again, concocting more highly specialized reverse engineering experiments. If you have been reading my blog for awhile and are familiar with my methods, or lack thereof, you know I like to try random stuff in the hope that I may accidently come across a good idea.
So we have these WinCE binary modules with debug symbols that implement various advanced Microsoft media codecs. Then we also have the Microsoft media modules that Linspire licensed (provided you know where to find them) that also have copious debug symbols. I wanted to put this intelligence to good use.