libjpeg
表示
開発元 | Independent JPEG Group |
---|---|
最新版 |
9f
/ 2024年1月14日 |
プログラミング 言語 | C言語 |
種別 | グラフィックライブラリ |
ライセンス | フリー、ロイヤリティ無しで商用利用可、表示が必要。 |
公式サイト | http://www.ijg.org |
開発元 | Libjpeg-Turboプロジェクト |
---|---|
最新版 |
3.0.2
/ 2024年1月25日 |
プログラミング 言語 | C言語 |
種別 | グラフィックライブラリ |
公式サイト | https://libjpeg-turbo.org/ |
libjpegは、JPEGのエンコード、デコードを行うためのライブラリである。JPEGファイルを操作するためのユーティリティも含んでいる。開発はIndependent JPEG Groupで、「IJG JPEG ライブラリ」とも呼ばれる。
派生として、SIMD命令(MMX、SSE2、AVX2、NEON、AltiVec)に対応することで高速描画を可能にしたlibjpeg-turboが存在する。
概要
[編集]libjpegはC言語で記述されたライブラリで、JPEGデコーダ、JPEGエンコーダ、その他JPEGユーティリティの広く使われている実装を含んでいる。 このライブラリはIndependent JPEG Groupによって保守されている。
エンコード、デコードにおいて負荷が高いDCTの演算では、浮動小数点演算、精度の高い整数演算、高速な整数演算の三通りが実装されており、用途によって選択できる。後者ほど演算誤差が大きい代わり、高速になる。
量子化テーブルはあらかじめプリセットもされており、1つのパラメータだけで画質と圧縮率のバランスを変更できる。プログラマによる量子化テーブルの定義も可能である。
ユーティリティ
[編集]libjpegは以下のユーティリティプログラムを含んでいる。
- cjpegとdjpeg - JPEGと、他の一般的な画像フォーマットとの変換を行う。
- rdjpgcomとwrjpgcom - JFIFファイル内にあるテキストの読み書きを行う。
- jpegtran - JPEGファイルに対し、以下のような変換を行う。
jpegtranによる操作は、画像の劣化は発生しない(データの伸張と再圧縮をともなわず、そのためジェネレーションロスによる劣化が起きない)。
jpegtranのユーザインタフェースとなる、JpegcropというWindowsアプリケーションが存在する。