【问题标题】:The compressing speed of libjpeg-turbo has no difference with libjpeg in my programlibjpeg-turbo的压缩速度和我程序中的libjpeg没有区别
【发布时间】:2016-04-13 12:35:22
【问题描述】:

我的程序在android设备上运行,设备是支持NEON的ARM系统。

起初我使用libjpeg将RGB图像(800 * 480)压缩为jpeg。每张图像的速度约为 70 毫秒,但对我来说太慢了。后来我找到了libjpeg-turbo,看来它可以提高ARM中的NEON的压缩速度。

但是经过编译和测试,我发现它们的压缩速度几乎一样。并且传递给 tjCompress2 的质量和标志的更改也没有任何效果。我不知道我的程序中是否有问题或缺少某些东西。以下代码:

tjhandle _jpegCompressor = tjInitCompress();

tjCompress2(_jpegCompressor, (unsigned char*)in, PARAM_WIDTH,
            PARAM_WIDTH*PERSIZE, PARAM_HEIGHT, PERSIZE,
            (unsigned char**)&out, (long unsigned int*)outlen, TJSAMP_444, 100,
            TJFLAG_FASTDCT);

tjDestroy(_jpegCompressor);

jpeg buffer(out)由我自己分配和释放。

我使用的libjpeg-turbo版本是1.4.2

【问题讨论】:

  • 问题是什么?
  • 我的问题与libjpeg相比,libjpeg-turbo的压缩速度没有任何提升。我想看看我的程序有没有错误。
  • 这是一个陈述,而不是一个问题。

标签: jpeg libjpeg libjpeg-turbo turbojpeg


【解决方案1】:

据我所知,libjpeg-turbo 有用于 x86 处理器的 SIMD、SSE2、MMX 指令。我查看了一些汇编代码,但没有看到任何其他类型的 CPU 架构的代码。

我很惊讶它竟然奏效了。我认为它(库)保留了原始代码,这可以解释为什么它甚至能够运行。

如果您正在寻找优化,您可能希望查看可以对 libjpeg 本身进行的优化。有几个文档文件,其中一个专门包含在 ARM 处理器上进行优化的说明。您还可以调整内存管理器。你会在那里找到比我在这里输入的更多的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多