MATLAB Implementation of SPIHT Algorithm (Excluding Arithmetic Coding Stage)

Resource Overview

This MATLAB implementation focuses on the core Set Partitioning in Hierarchical Trees (SPIHT) algorithm without the arithmetic coding module. The implementation demonstrates wavelet-based image compression through three main components: wavelet decomposition using functions like wavedec2, significant coefficient identification through tree structure traversal, and bit-plane coding for progressive transmission. Performance evaluation compares this implementation against standard SPIHT using the lena512.raw test image, showing PSNR results at various bit rates (0.1-0.9 bpp).

Detailed Documentation

This MATLAB implementation provides the complete Set Partitioning in Hierarchical Trees (SPIHT) algorithm framework while specifically excluding the arithmetic coding stage. The code handles wavelet coefficient organization through hierarchical tree structures and implements the sorting pass and refinement pass operations essential to the SPIHT methodology. Performance evaluation compares this implementation against the standard SPIHT algorithm using the lena512.raw test image. The comparison examines Peak Signal-to-Noise Ratio (PSNR) results across various bit rates: - At 0.1000 bpp: SPIHT achieves 29.8107 dB while this implementation reaches 29.3202 dB - At 0.2000 bpp: SPIHT achieves 32.7202 dB versus 32.2514 dB for this code - At 0.3000 bpp: SPIHT shows 34.5479 dB compared to 34.0331 dB - At 0.4000 bpp: SPIHT reaches 35.8422 dB while this implementation achieves 35.4857 dB - At 0.5000 bpp: SPIHT achieves 36.8623 dB versus 36.5939 dB - At 0.6000 bpp: SPIHT shows 37.6650 dB compared to 37.3759 dB - At 0.7000 bpp: SPIHT reaches 38.2581 dB while this code achieves 38.0491 dB - At 0.8000 bpp: SPIHT achieves 38.9390 dB versus 38.7058 dB - At 0.9000 bpp: SPIHT shows 39.5218 dB compared to 39.3437 dB The implementation includes key functions for wavelet transformation, significance testing using threshold-based comparisons, and list processing for managing significant coefficients. The performance differential primarily stems from the absence of arithmetic coding, which would normally provide additional compression efficiency. This implementation serves as an educational tool for understanding the core SPIHT algorithm mechanics before incorporating entropy coding stages.