【问题标题】:Extract decompression part from jpeglib从jpeglib中提取解压部分
【发布时间】:2013-04-22 16:19:52
【问题描述】:

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

【问题讨论】:

  • 您的嵌入式设备真的太拥挤以至于需要缩减库吗?即,您实际上是否尝试过简单地包含该库并使用它?
  • 问题是嵌入式板没有足够的ROM空间来包含所有库

标签: c jpeg decode libjpeg


【解决方案1】:

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 指令加速基线 JPEG 在 x86、x86-64 和 ARM 上压缩/解压缩大约 2-4 倍 平台。它基于 libjpeg/SIMD,但有许多增强功能。

希望对你有帮助!

【讨论】:

  • 当我使用 Visual Studio 2010 编译这个库时,它会生成包含解决方案的 app.sln -> (djpeg,cjpeg,jpegtran,rdjpgcom,wrjpgcom),每个项目都包含它的文件,我感兴趣在 djpeg 中包含 cderror.h cdjpeg.h jconfig.h jerror.h jinclude.h jmorecfg.h jpeglib.h jversion.h cdjpeg.c djpeg.c rdcolmap.c wrbmp.c wrgif.c wrppm.c wrrle.c wrtarga .c )) 我需要在一个项目中编译这些文件,但我总是会遇到链接器错误、未定义的引用等错误
【解决方案2】:

拆分像这样的库以对其进行精简是一项崇高的工作,这种项目分叉可以使……比如说……最小化的 jpeg 库。 minjpeglib。或者更小。让我们去nano。是的,问题是这已经完成了。 Quite a lot. 您可能对它们有一些问题,因为它们可能不包含 jpeg 格式能够提供的所有功能。因此,有些图像可能无法加载,有些图像可能无法正确加载。

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

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

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

【讨论】:

  • 当我使用 Visual Studio 2010 编译这个库时,它会生成包含解决方案的 app.sln -> (djpeg,cjpeg,jpegtran,rdjpgcom,wrjpgcom),每个项目都包含它的文件,我感兴趣在 djpeg 中包含 cderror.h cdjpeg.h jconfig.h jerror.h jinclude.h jmorecfg.h jpeglib.h jversion.h cdjpeg.c djpeg.c rdcolmap.c wrbmp.c wrgif.c wrppm.c wrrle.c wrtarga .c )) 我需要在一个项目中编译这些文件,但我总是会遇到链接器错误、未定义的引用等错误
猜你喜欢
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多