390 likes | 485 Vues
Explore Fourier Transform, Discrete Cosine Transform, periodic functions, time and frequency domains, Fourier expansion, and sampling theory for image compression. Learn the application of Discrete Cosine Transform (DCT) and its role in JPEG compression.
E N D
Computer Graphics Recitation 7
Motivation – Image compression What linear combination of 8x8 basis signals produces an 8x8 block in the image?
The plan today • Fourier Transform (FT). • Discrete Cosine Transform (DCT).
What is a transformation? • Function : rule that tells how to obtain result y given some input x • Transformation : rule that tells how to obtain a function G(f) from another function g(t)
What do we need transformations for? • Mathematical tool to solve problems • Change a quantity to another form that might exhibit useful features • Example: XCVI x XII 96 x 12 = 1152 MCLII
Periodic function • Definition: g(t) is periodic if exists P such that g(t+P) = g(t) • Period of a function: smallest constant P that satisfies g(t+P) = g(t)
Attributes of periodic function • Amplitude: max value it has in any period • Period: P • Frequency: 1/P, cycles per second,Hz • Phase: position of function within a period
Time and Frequency • example : g(t) = sin(2pft) + (1/3)sin(2p(3f)t)
Time and Frequency • example : g(t) = sin(2pft) + (1/3)sin(2p(3f)t) = +
Time and Frequency • example : g(t) = sin(2pft) + (1/3)sin(2p(3f)t) = +
Time and Frequency 1, -a/2 < t < a/2 0, elsewhere • example : g(t) ={
Time and Frequency 1, -a/2 < t < a/2 0, elsewhere • example : g(t) ={ = + =
Time and Frequency 1, -a/2 < t < a/2 0, elsewhere • example : g(t) ={ = + =
Time and Frequency 1, -a/2 < t < a/2 0, elsewhere • example : g(t) ={ = + =
Time and Frequency 1, -a/2 < t < a/2 0, elsewhere • example : g(t) ={ = + =
Time and Frequency 1, -a/2 < t < a/2 0, elsewhere • example : g(t) ={ = + =
Time and Frequency 1, -a/2 < t < a/2 0, elsewhere • example : g(t) ={ = A (1/k)sin(2pkft)
Time and Frequency • If the shape of the function is far from regular wave its Fourier expansion will include infinite num of freq. A (1/k)sin(2pkft) =
Frequency domain • Spectrum of freq. domain : range of freq. • Bandwidth of freq. domain : width of the spectrum • DC component (direct current): component of zero freq. • AC – all others
Fourier transform • Every periodic function can be represented as the sum of sine and cosine functions • Transform a function between a time and freq. domain G(f) = g(t)[cos(2pft) - isin(2pft)]dt g(t) = G(f)[cos(2pft) + isin(2pft)]df
Fourier transform • Discrete G(f) = (1/n) g(t)[cos(2pft/n) - isin(2pft/n)] , 0<f<n-1 g(t) = (1/n) G(f)[cos(2pft/n) + isin(2pft/n)] , 0<t<n-1
FT for digitized image • Each pixel Pxy = point in 3D (z coordinate is value of color/gray level • Each coefficient describes the 2D sinusoidal function needed to reconstruct the surface • In typical image neighboring pixels have “close” values surface almost flat most FT coefficients small
Sampling theory • Image = continuous signal of intensity function i(t) • Sampling: store a finite sequence in memory i(1)…i(n) • The bigger the sample, the better the quality? – not necessarily
Sampling theory • We can sample an image and reconstruct it without loss of quality if we can : • - Transform i(t) function from time to freq. Domain • - Find the max freq. fm • - Sample i(t) at rate > 2fm • - Store the sampled values in a bitmap
Sampling theory • Some loss of image quality because: -fm can be infinite: choose a value s.t freq. > fm do not contribute much (low amplitudes) - Bitmap may be too small • 2fm is Nyquist rate
Fourier Transform • Periodic function can be represented as sum of sine waves that are integer multiple of fundamental (basis) frequencies • Freq. domain can be applied to a non periodic function if it is nonzero over a finite range
Discrete Cosine Transform • A variant of discrete Fourier transform - Real numbers - Fast implementation -Separable (row/column)
Discrete Cosine Transform • Example: DCT on 8 points f=0 1 f=1…7 G = (½) C P cos((2t+1)fp/16) , C = { f t f f • Fourier transform on 8 points G = P cos(2pft/8) – i P sin(2pft/8) , f=0,1,…,7 t f t
Discrete Cosine Transform • Example 8 points: Same meaning: the 8 numbers Gf tell what sinusoidal func. should be combined to approximate the function described by the 8 original numbers Pt
Discrete Cosine Transform • Example 8 points: f=0 1 f=1…7 G = (½) C P cos((2t+1)fp/16) , C = { f t f f • G3 = contribution of sinusoidal with freq. 3tp/16 to the 8 numbers Pt • G7 = contribution of sinusoidal with freq. 7tp/16 to the 8 numbers Pt
Discrete Cosine Transform • Example 8 points: The inverse DCT P = (½) C G cos((2t+1)jp/16) , t=0,1,…,7 j t j
Discrete Cosine Transform • 2D DCT G = C C Pxy cos((2x+1)ip/2n)cos((2y+1)jp/2n) j i ij • 2D Inverse DCT (IDCT) P =¼ C C Gij cos((2x+1)ip/16) cos((2y+1)jp/16) xy j i C f = { f=0 1 f=1…7
Using DCT in JPEG • DCT on 8x8 blocks
Using DCT in JPEG • Block size : small block • - faster • - correlation exists between neighboring pixels • large block • - better compression in “flat” regions • Power of 2 – for fast implementation
Using DCT in JPEG • DCT – basis
Using DCT in JPEG • For almost flat surface most Gij=0 • For surface that oscillates much many Gij non zero • G00 = DC coefficient • Numbers at top left of Gij contribution of low freq. sinusoidal to the surface, bottom right – high freq.
Using DCT in JPEG • Numbers at top left of Gij contribution of low freq. sinusoidal to the surface, bottom right – high freq. • Scan each block in zig-zag order
Image compression using DCT • DCT enables image compression by concentrating most image information in the low frequencies • Loose unimportant image info buy cut Gij at right bottom • Decoder computes the inverse IDCT