CharLS は、ロスレスおよびほぼロスレスの画像圧縮および解凍のための JPEG-LS 標準の C++ 実装です。 JPEG-LS は、JPEG 2000 圧縮率に匹敵する、複雑度の低い画像圧縮規格です。
JPEG-LS (ISO/IEC 14495-1:1999 / ITU-T.87) は、ヒューレット・パッカードの LOCO アルゴリズムから派生した画像圧縮規格です。 JPEG-LS は、JPEG 2000 の可逆圧縮率と同様に、複雑さが低く (高速圧縮を意味します)、圧縮率が高くなります。 JPEG-LS は JPEG 2000 よりも古いロスレス JPEG に似ていますが、興味深いことに、2 つの異なる技術によりパフォーマンス特性が大きく異なります。ロスレス JPEG および JPEG-LS に関するウィキペディア: https://en.wikipedia.org/wiki/Lossless_JPEG
ヒント: ITU は、JPEG-LS 標準 (ITU-T.87) のバージョンを無料でダウンロードできるようにしています。テキストは ISO バージョンと同じです。
このプロジェクトの目標は、ISO/IEC 14495-1:1999「連続階調静止画像のロスレスおよびほぼロスレス圧縮: ベースライン」規格を完全に実装することです。このライブラリは移植可能な C++ で最初から作成されています。メイン ブランチは C++17 を使用します。 2.x ブランチは C++14 で維持されます。すべての主流の JPEG-LS 機能は、このライブラリによって実装されます。 https://imagecompression.info/gralic で公開された予備テスト結果によると、CharLS は元の HP コードの約2 倍高速で、JPEG-XR と JPEG 2000 の両方を 3 倍上回っています。
次の JPEG-LS オプションは、CharLS 実装ではサポートされていません。これらのオプションのほとんどは、実際にはほとんど使用されません。
オリジナルのベースライン JPEG-LS 標準 ISO 14495-1:1999 をリリースした後、ISO は ISO/IEC 14495-2:2003 と呼ばれる JPEG-LS 標準の拡張版をリリースしました。「連続階調静止画像のロスレスおよびほぼロスレス圧縮:拡張機能」。現在、CharLS はこれらの拡張機能をサポートしていません。
コードは Windows および 64 ビット Linux 上で定期的にコンパイル/テストされます。さらに、コードは Linux Intel/AMD 32/64 ビット (slackware、debian、gentoo)、Solaris SPARC システム、Intel ベースの Mac、および Windows CE (ARM CPU、エミュレート) で正常にテストされていますが、あまり一般的ではないコンパイラではマイナーなコードが必要になる場合があります。コードの編集。 C++ 言語の機能 (テンプレート、特性) を活用して、最適化されたコードを作成します。一般に、最新のコンパイラーで最高のパフォーマンスを発揮します。
寸法 | サポートされているバージョン |
---|---|
Cバージョン | >= 17 |
C++ バージョン | >= 17 |
CMake | >= 3.16 |
GCC | >= 9.1 |
クラン | >= 7.0.0 |
MSVC | >= 2019年 |
アップルクラン | >= 12 |
Windows 上の vcpkg を使用する
PS > vcpkg install charls charls:x64 - windows
Linux または macOS 上の vcpkg を使用する場合
~ /$ ./vcpkg install charls
他のプラットフォーム、その他のインストール オプション、ソースからビルドする方法などについては、ドキュメントを参照してください。
ライブラリを入手したら、サンプル フォルダーにいくつかのコード サンプルが用意されています。
このリポジトリはソース コードとして提供されており、特にバイナリ リリースは提供しません。代わりに、「ヘッドでライブ」 (最新バージョンからビルドするか、必要に応じて、長期サポート (LTS) ブランチと呼ばれる既知のサポートされているブランチに対してビルドする) ことをお勧めします。古いコンパイラ バージョンのサポートは、コンパイラの新しいバージョンが利用可能になってから 5 年後に段階的に廃止されます。これは、最小限必要な C++ 言語バージョンにも当てはまります。
API や ABI に重大な破壊的変更が発生する前に、メインからブランチが作成され、そのスナップショットが LTS ブランチとして凍結されます。
CharLS は GDCM DICOM ツールキットで使用されています。Linux 上で CharLS を開始できるようにしてくれた Mathieu Malaterre に感謝します。 Kata Kan Ryu は、CharLS を使用する irfanview プラグイン用のカラー変換と DIB 出力形式コードの初期バージョンを作成しました。
このプロジェクトのコードは BSD スタイル ライセンスを通じて入手でき、必要に応じて商用のクローズド ソース アプリケーションでコードを使用できます。このプロジェクトのコードはすべて最初から書かれており、他の JPEG-LS 実装に基づいていません。 Hewlett Packard は JPEG-LS 実装に適用される特許を所有していると主張していますが、準拠した JPEG-LS 実装に対しては無料でライセンスを供与していることに注意してください。これらの特許の中には、あなたの国ではすでに期限が切れているものもあります。このコードを商用目的で使用する場合は、使用する前に https://hpl.hp.com/loco/ で詳細をお読みください。