Digital Image Compression via Singular Value Decomposition Robert
Digital Image Compression via Singular Value Decomposition Robert White Ray Buhr Math 214 Prof. Buckmire May 3, 2006
The Problem • High resolution digital images are dense files and take up lots of bandwidth • Cost of: • time spent online • accepting large files • capable machinery
The Solution • Using Singular Value Decomposition, we can reduce the size of the image’s matrix • Eliminates the end SVDs • Cuts out the boring parts
The Matrix/Image • Matrix represents a grayscale image (126 x 128) • Each component is represented by a # 0 -255
The Process • A = U*Σ*V • • T ∑= the normalized singular values (√λ for ATA) V= columns are eigenvectors of ATA U= columns are eigenvectors of AAT [U, S, V]=svd(A) factors A in Matlab
For Example A=4 x 4= 3 0 7 8 5 5 7 0 2 7 4 9 5 9 6 9
U= 0. 4 219 9 0. 3323 5 0. 3 409 9 0. 8 795 9 0. 5 238 5 0. 6 566 9 0. 3392 8 ∑= 0. 0 274 9 0. 8427 9 0. 0342 76 0. 1872 7 0. 2 738 3 0. 6 22. 495 680 892 0 6 1 0 7. 0824 0. 3 0 0 452 0. 6699 1 5 0 0 VT = 0 0 6. 0901 0 0 0. 83996 0. 3 2 4 6 0. 5 0 1 5 3 0. 5 0 5 7 2 - - - 0. 6 2 2 3 8
Taking Care of Business • SVD, singular values = rank(A) • A = σ1 u 1 v. T 1 + …σkukv. Tk + 0*uk+1 v. Tk+1 • Approximate A by eliminating small singular values
The Pictures The original, k=126 k=4
The Pictures k=8 k=20
The Pictures k=50 Original, again, k=126
The Results How much space is this process saving? 4 + 4(126) + 4(128) = 1020 8 + 8(126) + 4(128) = 2040 20 + 20(126) + 20(128) = 5100 (~31. 6%) 50 + 50(126) + 50(128) = 12750 (~79. 0%) (126)*(128) = 16128! x + x(126) + x(128) = 16128, x ≈ 63. 247
- Slides: 12