Home Experiences Projects Awards Blogs
Back

Quadtree Image Compressor

Java

Description

This repository contains a Java-based application developed as part of the IF2211 Algorithm Strategy course. The project focuses on image compression using the Quadtree method, a divide-and-conquer approach that recursively splits images into smaller blocks based on color similarity.

To determine block homogeneity, the program implements five error metrics:

  • Variance
  • Mean Absolute Deviation (MAD)
  • Max Pixel Difference
  • Entropy
  • Structural Similarity Index (SSIM)

In addition to compressing images, the program also supports generating GIF visualizations that illustrate the compression process in action. This allows users to better understand how the quadtree structure adapts to different image regions. The program is written entirely in Java, emphasizing efficiency and clarity in algorithm design.

Program Structure

├── README.md
├── bin
│   ├── ErrorMetrics.class
│   ├── IO.class
│   ├── ImageMatrix.class
│   ├── Main.class
│   ├── QuadtreeCompression.class
│   ├── QuadtreeNode.class
│   └── UI.class
├── doc
│   └── Tucil2_13523046_13523091.pdf
├── src
│   ├── ErrorMetrics.java
│   ├── IO.java
│   ├── ImageMatrix.java
│   ├── Main.java
│   ├── QuadtreeCompression.java
│   ├── QuadtreeNode.java
│   └── UI.java
└── test
    ├── input
    └── output
  • bin : contains Java executable .class files compiled from the source code in the src folder.
  • src : contains the main program's source code files (.java).
  • doc : contains the assignment report and program documentation.
  • test : contains the test results included in the report.

Author

NIM Nama Anggota Github
13523046 Ivan Wirawan ivan-wirawan
13523091 Carlo Angkisan carllix