Learned Image Compression with Hierarchical Progressive Context Modeling [ICCV 2025]

June 3, 2026 · View on GitHub

arXiv License: MIT

News

✅We open-source the model HPCM_Phi_Context, which employs ψᵢ as progressive context in progressive context modeling. We release the model checkpoint optimized for MSE with λ = 0.013. See issue #3 for detailed discussion.

🎉Our new work based on HPCM, "Scaling Learned Image Compression Models up to 1 Billion", has been released on arXiv! [link] We have released the HPCM-1B code and checkpoint optimized for MSE with λ = 0.0483.

Introduction

This repository is the official PyTorch implementation of the paper "Learned Image Compression with Hierarchical Progressive Context Modeling".

Abstract: Context modeling is essential in learned image compression for accurately estimating the distribution of latents. While recent advanced methods have expanded context modeling capacity, they still struggle to efficiently exploit long-range dependency and diverse context information across different coding steps. In this paper, we introduce a novel Hierarchical Progressive Context Model (HPCM) for more efficient context information acquisition. Specifically, HPCM employs a hierarchical coding schedule to sequentially model the contextual dependencies among latents at multiple scales, which enables more efficient long-range context modeling. Furthermore, we propose a progressive context fusion mechanism that incorporates contextual information from previous coding steps into the current step, effectively exploiting diverse contextual information. Experimental results demonstrate that our method achieves state-of-the-art rate-distortion performance and strikes a better balance between compression performance and computational complexity.

Highlights

Our Hierarchical Progressive Context Modeling (HPCM) entropy model significantly advances the performance of Learned Image Compression (LIC) models with the key insights:

  • Efficient global-local context modeling with Hierarchical Coding Schedule.
  • Exploring effective rich context information through Progressive Context Fusion.

Our method achieves state-of-the-art compression performance gains on Kodak (-19.19%), CLIC (-18.37%), and Tecnick (-22.20%) over VTM-22.0.

Performance

table1

Installation

This implementation requires Python 3.8 and PyTorch 1.12.

  1. Install the dependencies

    pip install -r requirements.txt
    
  2. Compile the arithmetic coder

    If you need real bitstream writing, please compile the arithmetic coder using the following commands. The compiled files are located in the directories src/entropy_models/entropy_coders/unbounded_rans/build.

    cd src/entropy_models/entropy_coders/unbounded_rans
    sh setup.sh
    

    We provide the arithmetic coder for Linux, Python 3.8, specifically _CXX.cpython-38-x86_64-linux-gnu.so and unbounded_ans.cpython-38-x86_64-linux-gnu.so.

Usage

Dataset

Download Flickr2W for training; Kodak, CLIC and TESTIMAGES for evaluation.

Training

python train.py --model_name [HPCM_Base/HPCM_Large] --train_dataset [path-to-train-dataset] --test_dataset [path-to-test-dataset] --lambda [lambda] -e [epoch-num] -lr [learning-rate] -bs [batch-size]

Testing

python test.py --model_name [HPCM_Base/HPCM_Large] --dataset [path-to-test-dataset] --checkpoint [path-to-checkpoint]

Pretrained Model

HPCM-Base models:

LambdaMetricLinkLambdaMetricLink
0.0018MSELink2.4MS-SSIMLink
0.0035MSELink4.58MS-SSIMLink
0.0067MSELink8.73MS-SSIMLink
0.013MSELink16.64MS-SSIMLink
0.025MSELink31.73MS-SSIMLink
0.0483MSELink60.5MS-SSIMLink

HPCM-Large models:

LambdaMetricLinkLambdaMetricLink
0.0018MSELink2.4MS-SSIMLink
0.0035MSELink4.58MS-SSIMLink
0.0067MSELink8.73MS-SSIMLink
0.013MSELink16.64MS-SSIMLink
0.025MSELink31.73MS-SSIMLink
0.0483MSELink60.5MS-SSIMLink

R-D Data

R-D data on CLIC Pro Valid and Tecnick datasets is in R-D_Data.md.

HPCM-Base, Kodak, PSNR

bpp = [0.1211, 0.1757, 0.2729, 0.4125, 0.5898, 0.8209]
psnr = [29.4022, 30.7547, 32.4012, 34.2063, 36.0145, 37.7525]

HPCM-Base, Kodak, MS-SSIM

bpp = [0.0974, 0.1447, 0.2124, 0.2958, 0.4082, 0.5724]
db_msssim = [13.2883, 14.8748, 16.5800, 18.1826, 19.7679, 21.4763]

HPCM-Large, Kodak, PSNR

bpp = [0.0951, 0.1537, 0.2438, 0.3778, 0.5516, 0.7843]
psnr = [28.9135, 30.4490, 32.1219, 33.9923, 35.8511, 37.7480]

HPCM-Large, Kodak, MS-SSIM

bpp = [0.0943, 0.1429, 0.2090, 0.2935, 0.4016, 0.5577]
db_msssim = [13.2098, 14.7740, 16.6119, 18.2272, 19.7947, 21.4393]

Acknowledgement

Part of our code is implemented based on CompressAI and DCVC-DC. Thank for the excellent jobs!

We thank Yingzhen Zhai and Zixu Chen for their valuable suggestions to this repository.

Citation

@article{li2025hpcm,
  title={Learned Image Compression with Hierarchical Progressive Context Modeling},
  author={Li, Yuqi and Zhang, Haotian and Li, Li and Liu, Dong},
  journal={arXiv preprint arXiv:2507.19125},
  year={2025}
}

Contact

If you have any questions, please feel free to contact lyq010303@mail.ustc.edu.cn.