问题标签 [turbojpeg]
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.
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 没有更快,而且我没有做错什么?
c - libjpeg turbo tjCompressFromYUV
我想在 C 中使用 libturbojpeg 将平面 4:2:0 YUV 缓冲区压缩为 jpeg 图像,但我在使用该tjCompressFromYUV()
函数时遇到了问题。
这是我的代码:
返回的错误字符串tjGetErrorStr()
是“Bogus input colorspace”。
我尝试链接 libturbojpeg 版本 1.4.2 和 1.4.90。
任何帮助将不胜感激,
谢谢
jpeg - libjpeg-turbo的压缩速度和我程序中的libjpeg没有区别
我的程序在android设备上运行,设备是支持NEON的ARM系统。
起初我使用 libjpeg 将 RGB 图像(800*480)压缩为 jpeg。每张图像的速度约为 70 毫秒,但对我来说太慢了。后来我找到了libjpeg-turbo,似乎它可以提高ARM中的NEON的压缩速度。
但是经过编译和测试,我发现它们的压缩速度几乎一样。并且传递给 tjCompress2 的质量和标志的更改也没有生效。我不知道我的程序中是否有问题或缺少某些东西。下面的代码:
jpeg buffer(out) 由我自己分配和释放。
我使用的 libjpeg-turbo 版本是 1.4.2
c - 来自 libjpeg-turbo-1.5.1-vc.exe 的 TurboJPEG API 产生错误的输出
我在 Visual Studio 2015 中用 C 语言编写了一个测试程序,用于测试 libjpeg-turbo TurboJPEG-API。
在这个测试程序中,我生成一个 800x800 RGB 像素的图像并将其写入磁盘。当我使用TJSAMP_GRAY
该tjCompress2
功能时,磁盘上生成的图像看起来不错:
当我改用图像时TJSAMP_444
,图像看起来很奇怪:
但是,这两个图像都无法在 Adobe Photoshop 中打开,而是在 MS-Paint、Chrome 或 Internet Explorer 中打开。TJSAMP_GRAY
除了产生奇怪的图像之外的所有其他选项,质量设置为 100TJSAMP_GRAY
会产生奇怪的输出。(这篇文章中的图像是通过屏幕截图复制的,并保存为 png 以用于较小的数据。)turbojpeg.dll
我还通过 P-Invoke使用该库编写了一个 C#-Program 。该程序正在产生有效的输出。
问:我的错在哪里?
有问题的源代码:
为了完整起见,测试 C# 源代码可以正常工作:
turbojpeg - turbojpeg 的 tjDecompressToYUV2 数据格式
我想使用 turbo jpeg 将 JPEG 图像转换为 Y'UV420p。我认为这使用了一些 2x2 块,其中 Y' 中的信息是 U 和 V 组件中的信息的两倍,但我无法找到这样做的示例。
如何从 tjDecompressToYUV2 中提取这些单独的组件以及为尺寸为 2 的倍数的图像分配的缓冲区格式是什么?
假设我有一个 1024 宽 x 512 像素高的图像。如何从以下代码中提取每个 Y' U 和 V 值:
IE。如何从缓冲区中提取组件?
jpeg - libjpeg 中的“CCIR601_sampling”是什么?
正如标题所述:libjpeg 中的 thejpeg_compress_struct
和 the jpeg_decompress_struct
in 都有一个如下定义的字段:
我很难弄清楚这意味着什么,或者应该如何使用它。如果您尝试将此标志设置为true
,用于压缩或解压缩,libjpeg 将简单地触发致命错误并显示此消息:
“还”很有趣,因为这种方式已经有 20 多年了,至少回到 libjpeg62。
那么,CCIR601_sampling 应该做什么呢?它是作为用户可设置的压缩、解压缩参数,还是两者兼而有之?它是否存储为文件格式的一部分?为什么它从未真正实施过?
c++ - 为什么使用 TurboJPEG 将 JPEG 解压为 BMP 比 OpencV 慢?
理论上使用 turbojpeg 更快,但我的测试结果恰恰相反。结果:
使用 OpenCV imencode:38.78 毫秒
使用涡轮解压:87.5 毫秒
以下是我的代码:
这是主要功能
Libjpeg-turbo 被官方证明要快 2 到 6 倍。 https://libjpeg-turbo.org/About/Performance