Ah, that sounds familiar. I had a book that explained JPEG in about the same way, but included a couple formulas as well. They also used Lena. YUV and YIQ, as I understand it, are extremely similar. You can get both by multiplying a 3x3 matrix by RGB. In the case of the software I'm writing, my aim was not so much to be able to compress the full-frame data after generation, but to avoid rendering the data in the first place (as right now bandwidth is very tight, and things are also taking too long to render in good resolution). The software generates almost everything from functions that are continuous and pretty well-behaved, so theoretically I could have the Fourier transforms calculated ahead of time One simple thing that looked promising was to render chroma components in only about 1/4 or 1/9 the spatial resolution of luma, and maybe also in about 1/2 or 1/4 the temporal resolution (is that the right term to use?). However, it seems that interpolation takes as much time as generating the data in full resolution in this case. And another issue is that the framebuffer is a big pile of 8-bit integers, and all my calculations were almost exclusively floating-point, and the conversion from float to int was extremely slow. The entire rendering pipeline I am using is very easy to break down into smaller problems that can be parallelized. Consumer-grade CPUs have evolved a couple SIMD instructions to let them do some work in parallel, so this can give some advantage. Meanwhile, graphics cards have evolved into ridiculously fast stream processors... like a $500 Geforce graphics card clocked at 400 MHz being able to process almost 20 times faster than a $750 Opteron processor clocked at 2200 MHz, given an algorithm that can be parallelized. Guess those video games must be important. So right now I'm focusing on using the power of the graphics card to handle all the heavy computations. Despite being optimized to push insane numbers of triangles, they can be programmed to do some general computations and naturally they excel at parallelizable ones - the website http://gpgpu.org should have a couple notable examples, like realtime fluid flow models, or 20-30X faster MPEG compression, or realtime raytracing. I haven't yet figured out any applications of this software except for extremely visually impressive animations and presentations, but I'll see where it goes. Thanks for a detailed response. - Chris Hodapp