JPEG Processing Neural Operator for Backward-Compatible Coding

August 1, 2025 · View on GitHub

This repository contains the offical source code of our ICCV 2025 paper:

JPEG Processing Neural Operator for Backward-Compatible Coding


1. Overview

JPNeO inserts two lightweight neural operators around the standard JPEG codec:

ModuleRoleStatus
JENOEncoder-side operator that learns a perceptual re-mapping before quantizationpre-trained weights provided
JDNODecoder-side operator that removes JPEG artifacts without IDCTtrain from scratch
Q θLearned quantization matrices shared by encoder / decoderpre-trained weights provided

The resulting .jpg bit-streams remain bit-exactly compatible with every legacy JPEG decoder.


1. Installation

Our code is based on Ubuntu 20.04, pytorch, CUDA (NVIDIA RTX 3090 24GB, sm86) and python.

For enviorment setup, we recommend to use CONDA for the installation:

conda env create --file env.yaml
conda activate jpneo

This DEMO file includes the pre-trained checkpoint of JPNeO’s encoder, JENO, along with the pre-trained quantization matrix ./bin/learned_qmaps.pt, enabling reviewers to directly test image compression. To test proposed model, modify each file's image path such as :


2. Training Decoder

Our JDNO is too heavy to be uploaded. Therefore, we provide the training code below.

The basic train code are following:

Training JDNO python train.py --config configs/train_JDNO.yaml --gpu 0

This process automatically generates a save folder and checkpoint files.

The pre-trained weights will be uploaded sooner or later.


4. Quick Demo (Image-level Compression)

You can test the pre-trained JENO and learned quantization matrix using the provided script `TRYME.ipynb'.

Then run the script to compress the image using JENO and QθQ_\theta.