问题标签 [libjpeg-turbo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
762 浏览

c++ - YCbCr 直接从 jpeg 加载器输入

我需要从 JPEG 图像中提取 CbCr 色度数据,以进行图像分析。(在 C/C++ 中)

  1. 据我了解,JPEG“原始数据”是压缩的 YCbCr。我在这个假设中正确吗?如何验证给定图像的这一点?

  2. 我目前正在使用 TubroJpeg 库。tjDecompressToYUV的文档说:

将 JPEG 图像解压缩为 YUV 平面图像。此函数执行 JPEG,但省略了颜色转换步骤,因此生成平面 YUV 而不是 RGB 图像。

我对这个函数的输出有点困惑。我认为 YUV 和 YCbCr 是稍微不同的色彩空间。这是否意味着对于 UV 色度我需要操纵输出,并且输出“UV”分量实际上是 CbCr 分量?

0 投票
0 回答
532 浏览

performance - TurboJpeg:没有速度改进

我在 64 位 CentOS 6.4 机器上。我有一个简单的基准,可以将 JPEG 读入内存或写入 JPEG。我以前使用的是 libjpeg。现在,我安装了 TurboJpeg,重新编译,我没有看到性能提升。我重新链接到 libturbojpeg,我将 LD_LIBRARY_PATH 更改为指向 libturbo 库所在的位置(在 /opt/libjpeg-turbo 中),我做了我能想到的一切,但性能完全相同。

为什么是这样?

难道我机器上已经在 /usr/lib64 中的 libjpeg.so 文件已经来自 libjpeg-turbo 了吗?这是我唯一能想到的。

但是,我怎么能确定 libjpeg-turbo 没有更快,而且我没有做错什么?

0 投票
1 回答
551 浏览

java - Android 本机链接器需要名为 libjpeg.so.62 的文件

我有一个使用 libjpeg-turbo 的 Android 应用程序的本机库。我正在使用 NDK 编译库和 libjpeg-turbo。一切似乎都可以正常编译和安装(我在 /data/data/com.company.app/lib 中看到手机上的所有 .so 文件),我正在打电话

E/AndroidRuntime(8186):java.lang.UnsatisfiedLinkError:dlopen 失败:无法加载“libjnilibrapper.so”所需的库“libMySuperLib.so”;由于无法加载“libMySuperLib.so”所需的库“libjpeg.so.62”;由找不到库“libjpeg.so.62”引起

我找到了这个解决方法,像这样创建lib的符号链接让我通过了这个错误

root@klteatt:/data/data/com.company.app/lib # ln -s libjpeg.so libjpeg.so.62

但这当然不是解决方案。

我们哪里会出错?为什么它特别想要 libjpeg.so.62?

0 投票
1 回答
2091 浏览

libjpeg - libjpeg-turbo - libturbojpeg.a 和 libjpeg.a 有什么区别

我的意图是使用 libjpeg-turbo(请参阅http://www.libjpeg-turbo.org/Main/HomePage)作为 Independent Jpeg Group(http://www. ijg.org/)。我的开发平台是 Linux on X_86 , 64 bit

我从http://sourceforge.net/projects/libjpeg-turbo/files/1.3.1/下载了“官方”二进制包

提供了两个静态库“libturbojpeg.a”和“libjpeg.a”,它们似乎都支持传统的 libjpeg API。

我想“libturbojpeg.a”是“更快”的实现,这是我应该使用的..但想确定这一点。也一直想知道如果没有人想使用“libjpeg.a”,为什么会与这个版本一起打包?

浏览了大部分文档后,我还不确定

我尝试了粗略的方法,例如

  • 使用 Linux“nm”命令列出符号 - 这两个库中都有相同的符号,所以我可以互换使用它们

  • 使用 linux 归档器“ar -tvf”窥视库并检查对象名称 - 其中的对象具有相似的名称,只是 libturbojpeg.a 中的对象具有前缀“libturbojpeg_la-j”

有什么见解吗?

谢谢 - Yogesh Devi

0 投票
0 回答
714 浏览

c++ - 如何以最简单的方式从 RGB 缓冲区保存 JPEG 文件(VS2008 C++)?

我看过很多指南,但似乎总是缺少一些东西。

如果有人可以在这里发布完整的“白痴”指南,那就太好了!

无论如何,我将在这里提供到目前为止我尝试做的事情:我尝试下载libjpeg,但对所需的所有配置和 makefile 感到困惑。我已经下载了 libjpeg-turbo,目前我正在(成功地)链接到 jpeg.lib 并包括“jpeglib.h”。

我正在使用我在网上找到的这段代码(在对其进行一些小的修改后导致它无法编译),当块结束时(当最后一个'}'被调用)

0 投票
0 回答
630 浏览

android - 如何在 Android 上使用 mozjpeg 库/可执行文件?

我知道,可能最好的办法是继续尝试使用 NDK 构建它,但我以前从未使用过 NDK,所以会很难。因此,我认为最好先问清楚。也许有人已经尝试在 Android 上构建/运行mozjpeg?甚至可能吗?

我的主要目标是执行可以通过使用jpegtran可执行文件(无损旋转、裁剪、优化 jpeg 文件)来完成的操作。来自 Java 代码。

我已经看到了构建 libjpeg-turbo: libjpeg-turbo for android 的说明——但它们适用于 mozjpeg 吗?

0 投票
1 回答
549 浏览

image - 使用 libPng 解码时缩小图像

libjpeg-turbo,支持在解码时缩小图像的能力,只要为比例分子和分母提供适当的值。因此,如果在应用程序中使用,可以发出适当的请求来处理我们可能在低分辨率屏幕上显示图像的事实。这将导致更快的解码。

考虑到这一点,我想看看 libPng 是否也是如此,但是我看不到任何允许我请求缩减的参数。我在互联网上进行了一些搜索,但找不到任何东西,甚至在 libpng 文档中也没有。

我是否遗漏了什么或者 libpng 在解码时不支持缩减?

0 投票
1 回答
967 浏览

c - 为什么 read_JPEG_file() 无法在 C 中写入图像 (libjpeg/jpeg-turbo)?

它是来自 jpeg-trubo 的 example.c 的略微修改的代码(该代码包含错误)。

当我尝试将图像数据写入文件时,它在 cinfo.next_scanline==9 时失败,它与 jpeg_write_scanlines 在线崩溃。错误:SigSegv 错误。cinfo.image_height 设置为 404。阅读循环看起来不错。你能帮忙解决问题吗?

0 投票
2 回答
386 浏览

colors - 即使质量为 100,libjpeg 也不是精确的像素值

我正在编写一个程序来读取一些文本文件并使用libjpeg将其写入 JPEG 文件。当我将质量设置为 100(带有jpeg_set_quality)时,灰度实际上没有质量下降。但是,当我转向 RGB 时,即使质量为 100,似乎也有压缩。

当我将此输入转换为灰度 JPEG 图像时,它可以很好地工作并给我一个干净的 JPEG 图像:

(水平翻转)输出为:

灰度

现在,当我假设数组是红色时,分别使用以下两个数组作为绿色和蓝色:

这是我得到的颜色输出:

RGB

虽然只有 5 个输入像素具有任何颜色值,但周围的像素在转换为颜色时也得到了一个值。对于灰度图像和 RGB 图像,质量都设置为 100。

我想看看是什么原因造成的,以及如何修复它,这样颜色也只用于实际具有输入值的像素?

0 投票
1 回答
433 浏览

c++ - Libjpeg 在某个特定位置写入文本

有没有办法在具有特定“大小”的某个(x,y)位置输出文本,例如数字“1”?例如在 gnuplot 中,我们可以使用

绘图...使用 x:y:size w 标签中心...

有没有类似的东西可以与 libjpeg 库一起使用?