1 / 23

A New Image Compression Scheme Based on Locally Adaptive Coding

A New Image Compression Scheme Based on Locally Adaptive Coding. Chair Professor Chin-Chen Chang Feng Chia University. Introduction. Image compression technique. w. h. Image. Index table. Vector Quantization Encoder. Introduction (Cont.). Image compression technique. w. h. Image.

Rita
Download Presentation

A New Image Compression Scheme Based on Locally Adaptive Coding

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A New Image Compression Scheme Based on Locally Adaptive Coding Chair Professor Chin-Chen Chang Feng Chia University

  2. Introduction Image compression technique w h Image Index table Vector Quantization Encoder

  3. Introduction (Cont.) Image compression technique w h Image Index table Vector Quantization Decoder

  4. Introduction (Cont.) VQ Histogram Index table Image

  5. Locally adaptive scheme Introduction (Cont.) • Ex: a a b b c a c a b d c c e f b a List List b a a 0 0 1 … List List List List c c c a b a b a b c b a 002 012 102 002 012 102 002 012 102 002 012 102 0a100b100c110101101… 1: index existed in list 0: the symbol does not exist in list • Concept: Moving the Recently Used to the Front

  6. The Proposed Method Divide the temporary codebook into two Parts (frequently-used and infrequently-used) Refine the frequently-used part of temporary codebook Divide image into non-overlapping blocks Generate temporary codebook Image I Refine the infrequently-used part of temporary codebook generated codebook Output Compress I by referencing the generated codebook Compression code

  7. The Proposed Method (Cont.) • The proposed method includes two phases for codebook generation • Temporary codebook generation • Codebook refining

  8. Temporary Codebook Generation • The codebook generation is based on the concept of locally adaptive coding Temporary Codebook w Bi = {84, 170, 166, 167, 83, …, 168} G1 = { g1,1={199, 96, 84, 167, 83, …, 130}, g1,2={201, 97, 90, 167, 85, …, 132}, g1,3={200, 95, 82, 167, 81, …, 131}} h G2 = { g2,1={84, 170, 166, 167, 84, …, 170}, g2,2={86, 168, 165, 170, 90, …, 165}} G3 = { g3,1={184, 83, 194, 170, 166, …, 110}, g3,2={180, 80, 194, 166, 168, …, 114}, g3,3={185, 85, 190, 172, 160, …, 120}, g3,4={191, 88, 197, 170, 162, …, 107}} ∵d(Bi , g2,1) = 2.24 TH = 25 ∴ add Bi into G2 and move G2 to be the first one Image Gn = { gn,1={244, 83, 174, 210, 166, …, 127}, gn,2={243, 80, 175, 213, 168, …, 128}, gn,3={240, 85, 176, 209, 160, …, 126}, gn,4={244, 88, 178, 213, 162, …, 127}} *d(•): Euclidean distance function

  9. Temporary Codebook Generation (Cont.) Temporary Codebook Temporary Codebook G1 = { g1,1={199, 96, 84, 167, 83, …, 130}, g1,2={201, 97, 90, 167, 85, …, 132}, g1,3={200, 95, 82, 167, 81, …, 131}} G2 = { g2,1={84, 170, 166, 167, 84, …, 170}, g2,2={86, 168, 165, 170, 90, …, 165}, g2,3={84, 170, 166, 167, 83, …, 168}} G2 = { g2,1={84, 170, 166, 167, 84, …, 170}, g2,2={86, 168, 165, 170, 90, …, 165}, g2,3={84, 170, 166, 167, 83, …, 168}} G1 = { g1,1={199, 96, 84, 167, 83, …, 130}, g1,2={201, 97, 90, 167, 85, …, 132}, g1,3={200, 95, 82, 167, 81, …, 131}} G3 = { g3,1={184, 83, 194, 170, 166, …, 110}, g3,2={180, 80, 194, 166, 168, …, 114}, g3,3={185, 85, 190, 172, 160, …, 120}, g3,4={191, 88, 197, 170, 162, …, 107}} G3 = { g3,1={184, 83, 194, 170, 166, …, 110}, g3,2={180, 80, 194, 166, 168, …, 114}, g3,3={185, 85, 190, 172, 160, …, 120}, g3,4={191, 88, 197, 170, 162, …, 107}} Gn = { gn,1={244, 83, 174, 210, 166, …, 127}, gn,2={243, 80, 175, 213, 168, …, 128}, gn,3={240, 85, 176, 209, 160, …, 126}, gn,4={244, 88, 178, 213, 162, …, 127}} Gn = { gn,1={244, 83, 174, 210, 166, …, 127}, gn,2={243, 80, 175, 213, 168, …, 128}, gn,3={240, 85, 176, 209, 160, …, 126}, gn,4={244, 88, 178, 213, 162, …, 127}}

  10. Temporary Codebook Generation (Cont.) Temporary Codebook w G2 = { g2,1={84, 170, 166, 167, 84, …, 170}, g2,2={86, 168, 165, 170, 90, …, 165}, g2,3={84, 170, 166, 167, 83, …, 168}} Bj = {220, 212, 182, 179, 240, …, 246} h G1 = { g1,1={199, 96, 84, 167, 83, …, 130}, g1,2={201, 97, 90, 167, 85, …, 132}, g1,3={200, 95, 82, 167, 81, …, 131}} G3 = { g3,1={184, 83, 194, 170, 166, …, 110}, g3,2={180, 80, 194, 166, 168, …, 114}, g3,3={185, 85, 190, 172, 160, …, 120}, g3,4={191, 88, 197, 170, 162, …, 107}} Image Gn = { gn,1={244, 83, 174, 210, 166, …, 127}, gn,2={243, 80, 175, 213, 168, …, 128}, gn,3={240, 85, 176, 209, 160, …, 126}, gn,4={244, 88, 178, 213, 162, …, 127}} ∵ No any block satisfies d(Bj, gk) TH = 25 ∴ Create a new group Gn+1, add Bj into Gn+1, and move Gn+1 to be the first one

  11. Temporary Codebook Generation (Cont.) Temporary Codebook Temporary Codebook G2 = { g2,1={84, 170, 166, 167, 84, …, 170}, g2,2={86, 168, 165, 170, 90, …, 165}, g2,3={84, 170, 166, 167, 83, …, 168}} Gn+1 = { gn+1,1={220, 212, 182, 179, 240, …, 246}} G2 = { g2,1={84, 170, 166, 167, 84, …, 170}, g2,2={86, 168, 165, 170, 90, …, 165}, g2,3={84, 170, 166, 167, 83, …, 168}} G1 = { g1,1={199, 96, 84, 167, 83, …, 130}, g1,2={201, 97, 90, 167, 85, …, 132}, g1,3={200, 95, 82, 167, 81, …, 131}} G1 = { g1,1={199, 96, 84, 167, 83, …, 130}, g1,2={201, 97, 90, 167, 85, …, 132}, g1,3={200, 95, 82, 167, 81, …, 131}} G3 = { g3,1={184, 83, 194, 170, 166, …, 110}, g3,2={180, 80, 194, 166, 168, …, 114}, g3,3={185, 85, 190, 172, 160, …, 120}, g3,4={191, 88, 197, 170, 162, …, 107}} G3 = { g3,1={184, 83, 194, 170, 166, …, 110}, g3,2={180, 80, 194, 166, 168, …, 114}, g3,3={185, 85, 190, 172, 160, …, 120}, g3,4={191, 88, 197, 170, 162, …, 107}} Gn = { gn,1={244, 83, 174, 210, 166, …, 127}, gn,2={243, 80, 175, 213, 168, …, 128}, gn,3={240, 85, 176, 209, 160, …, 126}, gn,4={244, 88, 178, 213, 162, …, 127}} Gn = { gn,1={244, 83, 174, 210, 166, …, 127}, gn,2={243, 80, 175, 213, 168, …, 128}, gn,3={240, 85, 176, 209, 160, …, 126}, gn,4={244, 88, 178, 213, 162, …, 127}} Gn+1 = { gn+1,1={220, 212, 182, 179, 240, …, 246}}

  12. Codebook Refining IF ||Gi|| > THF = 3 Then Add Gi into Frequently-used part Else add Gi into Infrequently-used part Temporary Codebook ||Gn+1|| =1 Gn+1 = { gn+1,1={220, 212, 182, 179, 240, …, 246}} G2 = { g2,1={84, 170, 166, 167, 84, …, 170}, g2,2={86, 168, 165, 170, 90, …, 165}, g2,3={84, 170, 166, 167, 83, …, 168}} Frequently-used ||G2|| =3 Gn G1 = { g1,1={199, 96, 84, 167, 83, …, 130}, g1,2={201, 97, 90, 167, 85, …, 132}, g1,3={200, 95, 82, 167, 81, …, 131}} ||G1|| =3 G3 G3 = { g3,1={184, 83, 194, 170, 166, …, 110}, g3,2={180, 80, 194, 166, 168, …, 114}, g3,3={185, 85, 190, 172, 160, …, 120}, g3,4={191, 88, 197, 170, 162, …, 107}} ||G3|| =4 Infrequently-used Gn+1 G2 Gn = { gn,1={244, 83, 174, 210, 166, …, 127}, gn,2={243, 80, 175, 213, 168, …, 128}, gn,3={240, 85, 176, 209, 160, …, 126}, gn,4={244, 88, 178, 213, 162, …, 127}} ||Gn|| =4 G1

  13. Codebook Refining (Cont.) For frequently-used part c3={185, 84, 194, 170, 164, …, 113} Compute Gi’s centroid cn={243, 85, 176, 211, 164, …, 127} G3 = { g3,1={84, 83, 94, 170, 166, …, 210}, g3,2={80, 80, 94, 166, 168, …, 214}, g3,3={85, 85, 90, 172, 160, …, 220}, g3,4={91, 88, 97, 170, 162, …, 207}} : ∵d(c3, cn) = 32 THH = 35 ∴ Combine c3 and cn by c3’ = (c3 + cn)/2 Use the centroids to represent the codewords c3={185, 84, 194, 170, 164, …, 113} Gn = { gn,1={244, 83, 174, 210, 166, …, 127}, gn,2={243, 80, 175, 213, 168, …, 128}, gn,3={240, 85, 176, 209, 160, …, 126}, gn,4={244, 88, 178, 213, 162, …, 127}} cn={243, 85, 176, 211, 164, …, 127} c3’={214, 85, 185, 191, 164, …, 120} : Centroid of Gn

  14. Codebook Refining (Cont.) For infrequently-used part c1={200, 96, 85, 167, 83, …, 131} c2={85, 170, 166, 169, 86, …, 168} Compute Gi’s centroid cn+1={220, 212, 182, 179, 240, …, 246} Gn+1 = {gn+1,1={220, 212, 182, 179, 240, …, 246}} cn+1={220, 212, 182, 179, 240, …, 246} Use the centroids to represent the codewords G2 = {g2,1={84, 170, 166, 167, 84, …, 170}, g2,2={86, 168, 165, 170, 90, …, 165}, g2,3={84, 170, 166, 167, 83, …, 168}} c2={85, 170, 166, 169, 86, …, 168} G1 = { g1,1={199, 96, 84, 167, 83, …, 130}, g1,2={201, 97, 90, 167, 85, …, 132}, g1,3={200, 95, 82, 167, 81, …, 131}} c1={200, 966, 85, 167, 83, …, 131}

  15. Codebook Refining (Cont.) Frequently-used part C3’={214, 85, 185, 191, 164, …, 120} : ∵d(c3’, c1) = 132.57 THL = 135 ∴ Delete c1 from Infrequently-used part Infrequently-used part c1={200, 96, 85, 167, 83, …, 131} c1={200, 96, 85, 167, 83, …, 131} c2={85, 170, 166, 169, 86, …, 168} c2={85, 170, 166, 169, 86, …, 168} cn+1={220, 212, 182, 179, 240, …, 246} cn+1={220, 212, 182, 179, 240, …, 246}

  16. Codebook Refining (Cont.) Frequently-used part C3’={214, 85, 185, 191, 164, …, 120} C3’={214, 85, 185, 191, 164, …, 120} c2={85, 170, 166, 169, 86, …, 168} : : Infrequently-used part c2={85, 170, 166, 169, 86, …, 168} ∵ No any codeword cj from frequently-used part satisfies d(c2, cj) THL = 135 ∴ Add c2 into frequently-used part and delete c2 from infrequently-used part cn+1={220, 212, 182, 179, 240, …, 246}

  17. Codebook Refining (Cont.) Frequently-used part C3’={214, 85, 185, 191, 164, …, 120} C3’={214, 85, 185, 191, 164, …, 120} c2={85, 170, 166, 169, 86, …, 168} c2={85, 170, 166, 169, 86, …, 168} cn+1={220, 212, 182, 179, 240, …, 246} : : Generated codebook Infrequently-used part cn+1={220, 212, 182, 179, 240, …, 246} ∵ No any codeword cj from frequently-used part satisfies d(cn+1, cj) THL = 135 ∴ Add cn+1 into frequently-used part and delete cn+1 from infrequently-used part Empty

  18. Image Compression Generated codebook w 1 h C0={214, 85, 185, 191, 164, …, 120} c1={85, 170, 166, 169, 86, …, 168} : cn={220, 212, 182, 179, 240, …, 246} Index table Image

  19. Experimental Results (b) Goldhill (a) Alan (c) Lena (d) Tiffany

  20. Experimental Results (Cont.) (a) Codebook size comparison

  21. Experimental Results (Cont.) (b) PSNR comparison with different THs

  22. Experimental Results (Cont.)

  23. Conclusions • The proposed method significantly reduces the size of codebook and maintains a good image quality of the compressed images.

More Related