Lecture #9 High Compression Gal Leonard Keret This lecture • • • • • • Introduction. Why compression. Type of compression. Known Image algorithms. SPIHT algorithm for 2d images. SPIHT algorithm for hyper-spectral images. Introduction • Why hyperspectral Imaging? • How does the process work? Why Hyper-spectral Imaging? – Detection and identification of the surface and atmospheric constituents. – Analysis of soil present. – Monitoring agriculture and forest status. – Environmental studies. – Military surveillance. How does the process work? 1. Images collecting hundreds of narrow bands of data. 2. Each substance has its own spectrum characteristics or diagnostic absorption features. 3. Comparing its resulting spectrum features with known substances, reveals the information about the composition of the area. Collecting the information • Gain high resolution spectrum information is generate massively large image data sets. • Access and transport of these data sets will stress processing, storage and transmission capabilities. How big? • AVIRIS - A typical hyperspectral imaging system, has 224 sensors. Each sensor has a wavelength sensitive range of approximately 10 nanometers. Covering range between 380 2500 nm. • If each band is 615 X 512 scans (pixels), with one byte per pixel, the whole data set will be over 70 Mbytes. • AVIRIS can yield 16 Gigabytes of data per day! The Solution Compression Types of Compression • Lossless – reduces the redundancy of data sets without losing any information. This is a reversible process. Compression ratio is about (2-3):1. • Lossy – reduces the redundancy of data sets by losing information. Not a reversible process. Examples • Lossless: • Lossy: Lossless • There are algorithms based on pixel predictions. • Hyper spectral images have two main forms of correlations: – Near-allocated bands have very high correlation. – adjacent pixels are likely to have similar spectral signatures Bands Correlation • Each band is considered as an individual 2D image. • Pixels from the current band and from the previously coded bands are involved in prediction of the current pixel. • We use the previous band pixel value 𝑋𝑎 , 𝑋𝑏 , 𝑋𝑐 , 𝑋 and the current band value 𝑌𝑎 , 𝑌𝑏 , 𝑌𝑐 , to predict the value 𝑌𝑝 . Bands Correlation • We use 𝑋𝑎 , 𝑋𝑏 , 𝑋𝑐 , 𝑋 and 𝑌𝑎 , 𝑌𝑏 , 𝑌𝑐 , to get horizontal, vertical and spectrum gradients. • Horizontal - ( 𝑋𝑏 − 𝑋𝑐 , 𝑋 − 𝑋𝑎 , 𝑌𝑏 − 𝑌𝑐 ) • Vertical - ( 𝑋𝑎 − 𝑋𝑐 , 𝑋 − 𝑋𝑏 , 𝑌𝑎 − 𝑌𝑐 ) • spectrum - ( 𝑋𝑏 − 𝑋𝑐 , 𝑋 − 𝑋𝑎 , 𝑌𝑏 − 𝑌𝑐 ) Pixels Correlation • The value of pixel X can be predicted by the other three pixels. • 𝑋 = (𝐴 + 𝐵)/2 • 𝑋 =𝐴+𝐵−𝐶 • 𝑋 = 𝐴 + (𝐵 − 𝐶)/2 • results show that the first prediction function obtains the best performance. Coding • Coding is the final phase of the algorithm. • We use entropy coding, like: – Huffman coding. – Arithmetic coding. – Rice coding. – Golumb coding. Lossy • Significantly higher compression ratio then of lossless compression. • The goal is to achieve as high as possible compression ratio without losing important information. Algorithms: • • • • • BMP - uncompressed GIF - lossless compression JPEG – lossy compression 2D-SPECK – similar to 2D-SPIHT 2D-SPIHT SPIHT • Set Partitioning In Hierarchical Trees. • Encoder and decoder. • Based on Discrete Wavelet Transform, and sorting coefficients before transmission. • Low complexity. • Fast in encoding and decoding. • “State of the art”. Wavelet Transform • Conversion of periodic signal (repeats its values in regular intervals or periods) into the sum of a infinite set of simple oscillating functions, based on sines and cosines. • Captures both frequency and location information (location in time). based on Fourier Transform 𝐹 𝑥 = 1 2𝜋 ∞ 𝑓(𝑡)(cos 𝑤𝑡 − 𝑖𝑠𝑖𝑛 𝑤𝑡)𝑑𝑡 -∞ 𝑢0 , 𝑢1 , 𝑢2 , 𝑢3 , … , 𝑢𝑛 From Time domain to Frequency domain Wavelet Transform to Discrete Wavelet Transform Wavelet Transform • “Applying a 2-D DWT to an image results in a sparse representation.” An example of the 2D discrete wavelet transform that is used in JPEG2000 • The original image is transformed from low frequencies to higher frequencies. • Each image describing local changes in brightness (details) in the original image. Example Low magnitude High magnitude SPIHT2D vs JPEG • images compressed with JPEG (using xv) and with SPIHT to exactly the same file size. SPIHT • Encoder and decoder are built on the same sorting algorithm. • No need to save or transmit additional information. • We do not need to collect all coefficients. • Find which DWT Coefficients are more relevant. Spectral information • High frequency = small details (sharpness). • most of an images small details is concentrated in the high frequency components. • High magnitude = image information. • Large low activity areas are expected to be identified in the lowest frequencies. Sorting • SPIHT sorts coefficients and sends them in decreasing magnitude. • Starting with the coefficients with the highest magnitude at the lowest pyramid levels. • A transformed coefficient with larger magnitude has larger information content. and therefore should be transmitted first. Sorting process The SPIHT multistage encoding process employs three lists and sets: 1. LIP – List of insignificant pixels contains individual coefficients that have magnitudes smaller than the threshold. Encoding process 2. LIS – list of insignificant sets contains sets of wavelet coefficients that are defined by tree structures and are found to have magnitudes smaller than the threshold (insignificant). • The sets exclude the coefficients corresponding to the tree and all sub tree roots. Encoding process 3. LSP – List of significant pixels is a list of pixels found to have magnitudes larger than the threshold (significant). 4. Set of offspring (direct descendants) of a tree node, 𝑂 𝑖, 𝑗 , in the tree structures is defined by pixel location 𝑖, 𝑗 . 𝑂 𝑖, 𝑗 = 2𝑖, 2𝑗 , 2𝑖, 2𝑗 + 1 , 2𝑖 + 1,2𝑗 , 2𝑖 + 1,2𝑗 + 1 3. Set of descendants, 𝐷(𝑖, 𝑗), of a node is defined by pixel location 𝑖, 𝑗 . 4. 𝐿 𝑖, 𝑗 is defined as 𝐿 𝑖, 𝑗 = 𝐷 𝑖, 𝑗 − 𝑂 𝑖, 𝑗 . Encoding process • For each pixel in LIP, one bit is used to describe its significant, the pixel remains in the LIP and no more bits are generated. Otherwise the pixel is moved to LSP. • Similarly, each set in the LIS requires one bit for the significance information. The insignificant sets remain in the LIS. Encoding process • The significant sets are partitioned into subsets, which are processed in the same manner and at the same resolution until each significant subset has exactly one coefficient. • Finally, each pixel in the LSP is refined with one bit describe its significance. • This procedure is then repeated each stage resolution. Set the Threshold • The initial threshold is defined by: 𝑛 = 𝑙𝑜𝑔2 (max 𝑐(𝑖,𝑗) ) (𝑖,𝑗) • Each stage, 𝑛 is reduced by one. • Test: is 2𝑛 ≤ 𝑐𝑖,𝑗 ≤ 2𝑛+1 ? Sorting Algorithm 1. Initialization: – Set 𝑛 = 𝑙𝑜𝑔2 (max{|𝑐𝑖,𝑗 |}) . (𝑖,𝑗) – Set LSP as an empty list. – Add all 𝑖, 𝑗 ∈ 𝐻 to the LIP. – Add only 𝑖, 𝑗 ∈ 𝐻 that has descendants also to LIS as type D. Significant function 1, • 𝑆𝑛 𝑇 = 0, 𝑖𝑓 2𝑛 ≤ 𝑐𝑖,𝑗 < 2𝑛+1 𝑒𝑙𝑠𝑒 2. Sorting pass: – For each element (i,j) in LIP: • If 𝑆𝑛 𝑖, 𝑗 = 1 then – Move (i,j) to LSP. – For each element (i,j) in LIS: • If element is of type D then: – If 𝑆𝑛 𝐷 𝑖, 𝑗 = 1 then » For each 𝑘, 𝑙 ∈ 𝑂 𝑖, 𝑗 : • If 𝑆𝑛 𝑘, 𝑙 = 1 then add 𝑘, 𝑙 to LSP. • If 𝑆𝑛 𝑘, 𝑙 = 0 then add 𝑘, 𝑙 to LIP. » If 𝐿(𝑖, 𝑗) ≠ ∅ then move (i,j) to LIS as type L. » Else remove (i,j) from the LIS. • If element is of type L then: – If 𝑆𝑛 𝐿 𝑖, 𝑗 = 1 then » Add each 𝑘, 𝑙 ∈ 𝑂 𝑖, 𝑗 to LIS as type D. » Remove (i,j) from LIS. 3. Quantization step: – decrement n by 1 and go to Step 2. • If a pixel is not significant, it remains in the LIP and no more information is generated. One of them compressed with SPIHT2D, the other is real. Compression rate 1:2 Compression Algorithms Average decompression times for image compression methods with respect to file size. Compression ratios and compression speed for some methods Little problem: 2D-SPIHT is suited for 2D images not 3D. From 2D to 3D • Each band will be (discrete fourier) transformed separately. • Sorting coefficients should apply for 3D tree (pyramid) instead of 2D. • One pixel corresponds to eight direct descendant pixels. Instead of four (2D tree). 3D SPIHT Algorithm • Set S is significant if: 𝑐𝑖,𝑗,𝑘 ≥ 2𝑛 . Where 𝑐𝑖,𝑗,𝑘 denote the transformed coefficients at coordinate (𝑖, 𝑗, 𝑘). • And the same for: 𝑛 = 𝑙𝑜𝑔2 ( max 𝑐(𝑖,𝑗,𝑘) ) (𝑖,𝑗,𝑘) Significant function: 1, 𝑆𝑛 𝑇 = 0, 𝑖𝑓 2𝑛 ≤ 𝑐𝑖,𝑗,𝑘 < 2𝑛+1 𝑒𝑙𝑠𝑒 3D-SPIHT (Same - same, different name) Thank U. Lecture #9 High Compression Bibliography • • • SPIHT algorithm: http://140.118.16.82/www/index.php/JCIE/article/view/667/281 SPIHT algorithm: http://www.cipr.rpi.edu/research/SPIHT/EW_Code/csvt96_sp.pdf SPIHT compare with JPEG: http://www.cipr.rpi.edu/research/SPIHT/spiht5.html • • • • • • Wikipedia: wavelet transform: http://en.wikipedia.org/wiki/Wavelet_transform Wikipedia: discrete wavelet transform: http://en.wikipedia.org/wiki/Discrete_wavelet_transform Hyperspectral Image Compression Using Three-Dimensional Wavelet Coding - Xaoli Tang, William A. Pearlman and James W. Modestino. Lecture #8 (wavelet transform). Compare: http://www.sciencedirect.com/science/article/pii/S0895611198000421 Lossless Compression of Hyperspectral Images Based on 3D Context Prediction Lin BAI, Mingyi HE, Yuchao DAI School of Electronics and Information, Northwestern Polytechnical University Shaanxi Key Laboratory of Information Acquisition and Processing Xi’an, 710072, P.R. China.