390 likes | 480 Views
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?.
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