概要
普段はお仕事で、データの圧縮技術に関わっています。
最近流行りのAIと圧縮の関わりに興味があったため、JPEG AIというAI画像圧縮技術を勉強素材として選んで、実際に手を動かして学んでみました。
JPEG AIとは
JPEG AIはJPEGが標準化を進めている、AIベースの画像圧縮の規格です。
AIベースの画像圧縮は、アカデミックではLearned Image Compression (LIC) と呼ばれ、検索にかけると様々な論文が出てくることからもAIによる画像処理の中でも盛んな分野である印象です。
JPEG AIのリファレンスソフトは一般に公開されており、誰でも実行することが可能です。
https://gitlab.com/wg1/jpeg-ai/jpeg-ai-reference-software
リファレンスソフトの実行手順
ということで、リファレンスソフトを自分のPCで動かしてみました。
実行手順をメモとして記します。(2025/3/22現在の情報)
実行環境はWindows11のWSL2にインストールされたUbuntuです。今回はCPUのみの動作です。
まずは、リファレンスソフトを以下のレポジトリからダウンロードします。
git clone https://gitlab.com/wg1/jpeg-ai/jpeg-ai-reference-software.git
続いて、tagを選択してcheckoutします。ここでは、CD
を選びました。他のバージョンを選んでも良いですが、自分の環境ではDIS
タグ以降のコミットでは上手く動作しませんでした。
git checkout -b CD CD
以降は、リファレンスソフトのREADMEを参考にDockerで環境構築をします。
make run_docker
make build_test_libs
conda activate jpeg_ai_vm
ここまできたら、JPEG AIを動かすことができます。
data/test
にあるテスト画像をエンコード&デコードするコマンドがあらかじめ用意されているので、それを実行します。
make test
画像とビットレートを指定して、エンコード&デコードをすることももちろん可能です。
# encode
python -m src.reco.coders.encoder data/test/00001_TE_2096x1400_8bit_sRGB.png stream.bin --set_target_bpp 10
# decode
python -m src.reco.coders.decoder stream.bin dec.png
まとめ
JPEG AIのリファレンスソフトを動かしてみました。中身を勉強中なので、深堀りした内容を次の機会にまとめたいと思います。