DFJPEGTurbo 0.2.1

DFJPEGTurbo 0.2.1

测试已测试
Language语言 Obj-CObjective C
许可证 MIT
Released最后发布2015年8月

kean 维护。



  • 作者
  • Alexander Grebenyuk

Objective-C libjpeg-turbo 封装器(JPEG 图像编解码器,它使用 SIMD 指令(MMX、SSE2、NEON)来加速 x86、x86-64 和 ARM 系统上的基线 JPEG 压缩和解压缩)。 DFJPEGTurbo 使用 libjpeg-turbo 版本 1.4.1,现在包括 arm64 支持。

DFJPEGTurbo 支持 基线 和渐进式 JPEG 的解压缩。

要求

  • iOS 6.0

示例

解压缩 JPEG

NSData *jpegData;
UIImage *image = [DFJPEGTurboImageDecoder imageWithData:data];

使用 libjpeg-turbo 的一个比例因子解压缩 JPEG

NSData *jpegData;
// Scale must be implemented by libjpeg-turbo which supports only several scaling factors (1/1, 1/2, 1/4 etc).
DFJPEGScale scale = DFJPEGScaleMake(1, 2); // 0.5 scale
UIImage *image = [DFJPEGTurboImageDecoder imageWithData:jpegData orientation:UIImageOrientationDown scale:scale];

基准测试(基线 JPEG)

在旧的基于 ARM 的系统(iPhone 4S、iPhone 5C)上的基准测试表明,libjpeg-turbo 相对于原生的 CGContextDrawImage 提供了非常明显的性能提升。然而,在较新的系统(iPhone 6)上,libjpeg-turbo 的表现不佳。基准测试实现可在项目目录中的 Demo/DFJPEGTurboBenchmark 中查看。

iPhone 6(Apple A8)

输入图像 CGContextDrawImage libjpeg-turbo
1024x768,0.3 压缩质量 10.51 毫秒 9.75 毫秒
1024x768,0.5 压缩质量 10.56 毫秒 10.15 毫秒
1024x768,0.7 压缩质量 10.14 毫秒 11.61 毫秒
1024x768,0.9 压缩质量 10.13 毫秒 12.44 毫秒
2048x1536,0.3 压缩质量 41.60 毫秒 36.98 毫秒
2048x1536,0.5 压缩质量 33.46 毫秒 40.56 毫秒
2048x1536,0.7 压缩质量 33.85 毫秒 45.53 毫秒
2048x1536,0.9 压缩质量 34.79 毫秒 52.60 毫秒

iPhone 5C(Apple A6)

输入图像 CGContextDrawImage DFJPEGTurbo
1024x768,0.3 压缩质量 42.47 毫秒 22.26 毫秒
1024x768,0.5 压缩质量 40.75 毫秒 23.28 毫秒
1024x768,0.7 压缩质量 40.51 毫秒 26.11 毫秒
1024x768,0.9 压缩质量 39.82 毫秒 29.77 毫秒
2048x1536,0.3 压缩质量 130.72 毫秒 81.95 毫秒
2048x1536,0.5 压缩质量 129.83 毫秒 86.50 毫秒
2048x1536,0.7 压缩质量 130.42 毫秒 98.17 毫秒
2048x1536,0.9 压缩质量 130.03 毫秒 106.18 毫秒

联系信息

许可证

DFJPEGTurbo 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。