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

问题描述 投票:16回答:2

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

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

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

提前致谢

PS:This princeton guy has done a project on this which provides a good reference

jpeg
2个回答
26
投票

This页面有很多关于如何处理jpeg文件的信息。另外,您可以在Python中编写jpeg解码器时查看my own attempt

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


13
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.