fbpx

Java Image Libraryの速度比較 − JDeliとImageIO/JAIの比較

私たちのJava画像ライブラリJDeliの速度をImageIOやJAIと比較してみました。JDeli、ImageIO/JAIのいずれも、過去バージョンに比べて改善されており、いくつかの興味深い知見が得られました。その評価結果を詳しく見ていきましょう。
BuildVu開発者ブログから

著者 Amy Pearson (IDRsolutions)  翻訳 BuildVu日本チーム

明らかな改善点は、HEICやGIFの読み書き、JPEG2000の書き込み、WMFやEMFの読み出しといったフォーマットの追加サポートです。しかし、私たちは、フォーマットの取り扱いに関するスピードの改善も見てみたいと思っています。

速度比較テストはどのように行われたのでしょうか?

Java Microbenchmark Harnessを使用して、ImageIOJAIに対するライブラリのパフォーマンスをテストすることで、より正確なテストができることがわかりました。どのようにテストを行うか知りたい場合は、JMHIDEA IDEを使ったJavaライブラリの画像性能テスト方法(英語)という記事があります。

テストに使用したコードはGitHubにありますし、テストは試用版でも問題なく運用できますので、ご自身でテストを行いたい方はぜひお試しください。ぜひ、あなた自身の画像ファイルのデータセットやハードウェアでテストを実行し、結果を教えてください。

テスト方法について

まず、JDeliとImageIO/DJIの両方でサポートされているフォーマットをテストしていることを確認しておきます。そのため、DICOM、EMF、HEIC、PSD、SGI、WebP、WMFは含めないことにしています。
HEICは現在他のライブラリがサポートしていないにもかかわらず、読み出しと書き出しの両方で分けて入れています。私たちのチームが苦労して作った新しいフォーマットの速度を見ることに興味がありますし、皆さんも興味を持たれるのではないかと思いました。
速度を比較したいので、平均時間モードを採用します。これは、1回の操作の平均秒数を取るものです。これらのテストではすべて、50ファイルのディレクトリを使用して、画像をBufferedImageとしてJavaにロードすることにします。各テストについて、最良の結果を緑色でハイライトしています。

スコアを見てみましょう:
読み込み
ファイルタイプ
ImageIO
ImageIO/JAI
JDeli
PNG
0.168 ± 0.001
非対応
0.483 ± 0.001
JPEG
6.159 ± 0.013
非対応
10.464 ± 0.005
GIF
0.063 ± 0.001
非対応
0.027 ± 0.001
BMP
0.099 ± 0.001
非対応
0.026 ± 0.001
TIFF
0.014 ± 0.001
非対応
0.015 ± 0.001
JPEG2000
非対応
24.855 ± 0.044
17.528 ± 0.032
 
HEIC
非対応
非対応
0.085 ± 0.001
書き出し
ファイルタイプ
ImageIO
ImageIO/JAI
JDeli
PNG
0.623 ± 0.006
非対応
0.216 ± 0.001
JPEG
10.600 ± 0.0.077
非対応
5.809 ± 0.011
TIFF
非対応
11.738 ± 0.050
6.379 ± 0.013
GIF
1.078 ± 0.004
非対応
0.027 ± 0.001
 
HEIC
非対応
非対応
0.297 ± 0.001

JDeliにはPNGとTIFFの圧縮オプションがいくつかあるので、圧縮は速度に最適化したオプションに設定しました。両ライブラリとも、速度や画質を優先するオプションが異なるため、テストでは同等の画質設定で速度を比較しています。

まとめ

JDeliはImageIOの多くのバグを修正し、より多くのファイルやファイルフォーマットを扱えるようになった。テストの際、ImageIOで例外が発生するファイルがありましたので、テストを公正に行うため、これらのファイルを削除し、両方のライブラリで処理できるファイルに置き換えることにしました。

あなたのユースケースに最適なJava画像ライブラリを選択することは重要ですが、ここでは比較可能な画像品質に対して速度のみを比較しています。ファイルサイズ、品質、サポートされているフォーマットなど、比較できる指標はたくさんあります。

一行のJavaコードで画像の読み取りと書き込みが可能

画像の読み込み:

				
					BufferedImage image = JDeli.read(streamOrFile);
				
			

画像の書き出し:

				
					JDeli.write(myBufferedImage, OutputFormat.HEIC, outputStreamOrFile)


				
			

Javaで画像ファイルを扱う開発ツール(SDK)をお探しのみなさま、効率のよい開発作業のためにJDeliがきっとお役に立つことと思います。JDeliは無料で試用していただけますので、まずはお試しのうえ、ぜひ導入をご検討ください。

JDeliでのシステム開発やプログラミング、無料トライアルの情報はこちらをご覧ください。技術的なことから費用面まで、ご質問・ご相談もこちらからお寄せください。

取り扱い製品について

PDF規格は複雑なうえに、過去からの積み重ねで非常にわかりにくくなっています。PDF連携ソフトウェアの開発では、英国IDRsolutions 社のPDF関連製品(変換ツール、ライブラリ、ソフトウェア部品など)を、ぜひご検討ください。
IDRsolutions はPDF関連ツールを20年以上に渡って開発・提供し続けています。PDF分野の老舗企業として、世界中の企業や公的機関にご活用いただいています。
日本では株式会社インターワークがIDRsolutions社の日本総代理店として取り扱っていますので、お気軽にご相談ください。

VIEWING PRODUCTS
BuildVu

PDFをHTML5やSVGに変換

PDFのフォームをHTML5に変換

SDK PRODUCTS
JPEDAL

PDFファイルの表示、変換、抽出

多くの画像ファイル形式を読み書き、変換、操作、処理

    Facebook
    Twitter
    Email
    公式ブログロゴ

    製品に関する記事や開発者のブログ

    タグ付きPDF入門:試して分かった!AI活用とアクセシビリティ

    タグ付きPDFの仕様が策定されてから20年以上が経過しましたが、この構造化技術はあまり注目されることなく時が過ぎてきました。しかし、AI時代の到来により状況は一変しています。ChatGPTなどのAIによる文書理解において、タグ付きPDFはタグなしのPDFと比較して、驚くほど正確な解析を実現できることが明らかになってきました。アクセシビリティから文書解析、HTMLへの変換まで—長年活用されていなかったタグ付きPDFが、AI時代の文書活用に新たな可能性をもたらす具体的なメリットを、実例とともに細かく解説していきます。

    PDF用語集

    この記事ではPDF関連の一般的な用語を網羅し、それぞれの定義を解説します。

    PDFメタデータとは?開発者が知っておくべき基礎知識

    PDFファイルを扱う際、「メタデータ」という言葉を耳にすることが多いでしょう。メタデータとは、ドキュメントに関する情報を指し、ファイルの作成者や作成日、使用されたソフトウェアなど、ドキュメントを説明する情報が含まれています。この記事では、開発者向けにPDFメタデータの基本からその利用方法までをわかりやすく解説します。

    PDFファイルを扱うシステム開発・ウェブ開発に役立つ

    開発者向けPDF入門ガイド

    開発者向けPDF入門ガイド

    PDFの基礎から応用まで開発者のための入門ガイド2024年版

    PDF の仕様や活用方法など、開発者に必要な情報がコンパクトにまとめました。初めてPDFを扱う開発者にも分かりやすく、基礎から応用までカバーしているため、PDF のポテンシャルを最大限に引き出し、アプリケーション開発やドキュメント管理の効率化を図るための手引きとなるでしょう。技術的な側面に興味がある開発者だけでなく、ビジネスでPDFを有効活用したい方にもおすすめの一冊です。

    MENU
    PAGE TOP