1

我正在尝试提取 libjpeg 中的解压部分以将其添加到嵌入式项目中,因此我应该采用最小的代码大小,但我认为代码非常复杂,您知道如何从库中排除这部分? 还有另一种方法吗,我想将 jpeg 照片解压缩返回表单相机以对其进行模式识别。有任何想法吗 ???

4

2 回答 2

4

libjpeg是一个非常优化的库,它被移植到许多架构中。

如果这个库占用太多资源,我建议你看看其他类似的库:

https://code.google.com/p/picojpeg/

picojpeg 是一个公共领域的 JPEG 解压缩器,用纯 C 语言编写在单个源文件 picojpeg.c 和单个标头 picojpeg.h 中。它有几个相当独特的属性,使其在小型 8/16 位嵌入式设备或内存非常有限的环境中非常有用:

http://sourceforge.net/projects/libjpeg-turbo/

libjpeg-turbo 是 libjpeg 的衍生产品,它使用 MMX、SSE、SSE2 和 NEON SIMD 指令在 x86、x86-64 和 ARM 平台上将基线 JPEG 压缩/解压缩速度提高约 2-4 倍。它基于 libjpeg/SIMD,但具有许多增强功能。

希望能帮助到你 !

于 2013-04-22T17:11:28.623 回答
2

拆开像这样的库来修剪它是一项崇高的努力,这种项目分支可以使……比如说……最小化的 jpeg 库。minjpeglib。或者更小。让我们去纳米。是的,问题是这已经完成了。非常多。您可能对它们有一些问题,因为它们可能不包含 jpeg 格式能够提供的所有功能。因此,有些图像可能无法加载,有些图像可能无法正确加载。

如果您想要完全支持,那么 jpeglib 如此庞大和复杂是有原因的。

如果你真的想进入 jpeglib,我真的不知道从哪里开始,但我可以给出一些广泛的建议。梳理它以获得您想要的某些特定功能。跟踪它的依赖关系。它使用了哪些结构、哪些辅助函数以及哪些标头。将这些部分复制到一个新文件夹中,添加一些位,直到您有一个可以编译和运行的程序。不幸的是,我不能保证它不会包含大部分或全部原始 jpeglib。

确认!被威扎德先生打败!

于 2013-04-22T17:22:40.547 回答