如何从头开始编写JPEG文件解码器

McB*_*den 16 jpeg

我知道有很多这方面的工具.我的目标是学习.所以我可以用fopen()读取一个JPEG文件,我知道这是一个二进制文件.那又怎样?我知道我可以学习JPEG规范.但它似乎没有说明二进制jpeg文件的结构是什么.

这个文件包含0和1如何转换这个或者我怎么知道哪个比特链意味着什么?

我遇到过这个例子:nano jpeg decoder 但是读取代码非常困难

提前致谢

PS:这个普林斯顿家伙已经做了一个关于此的项目,提供了一个很好的参考

one*_*sse 26

这个页面有很多关于如何处理jpeg文件的信息.此外,您可以看看我自己尝试用Python编写jpeg解码器.

程序中的短变量名称通常直接对应于标准中的变量.因此,如果您准备好标准,它将会有很大帮助.它被称为ITU-1150,可在互联网上免费获取.


Dav*_*ave 13

如果你刚刚开始,Jpegs很棘手.您需要使用霍夫曼表,具有某种快速逆离散余弦变换函数,以及解释量化表的能力.

http://en.wikipedia.org/wiki/JPEG非常有帮助.

如果你想从更简单的东西开始,请查看PNG.格式基本上是一个标题,后跟一堆可变长度,块,然后是一个zlib流.解压缩会留下几乎原始的像素,但它们已被过滤掉了.不受过滤很容易.