Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In the same genre and likewise in Haskell, I recommend Exploring JPEG:

http://www.imperialviolet.org/binary/jpeg/

On the decoder side, for someone who has basic familiarity with compression and signal processing, the obstacles in understanding MP3 are polyphase filter banks and the mixed discrete cosine transform, which are not much explained in this article. They both take advantage of alias cancelation properties (in the frequency domain for the filter bank and in the temporal domain for the MDCT) that in my opinion are pretty subtle. The rest of the components in an MP3 decoder have close analogues in image compression (e.g. joint stereo is a decorrelation transform that is analogous to going from RGB to a luminance-chrominance color space), so they shouldn't be difficult to grasp.

For those trickier signal processing parts, Pan's IEEE article A Tutorial on MPEG/Audio Compression is a great place to start:

http://www.ee.columbia.edu/~dpwe/e6820/papers/Pan95-mpega.pd...



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: