Multimedia- and Web-based Information Systems Lecture 6
Jan 17, 2016
Multimedia- and Web-based Information Systems
Lecture 6
Picture Compression OverviewThe JPEG method
Important steps during the compression of single pictures
Picture Preparation– Generation of a suitable digital representation– Blocks of 8x8 pixels, fixed number of bits per
pixel, planes, color model
Picturepreparation
uncompressedpicture
Pictureprocessing
Quanti-sation
Entropy-coding
compressed picture
Important steps during the compression of single pictures
Picture Processing– Mathematically exact– Transformations
Time domain to frequency domain Cosine Transformation (DCT)
Picturepreparation
uncompressedpicture
Pictureprocessing
Quanti-sation
Entropy-coding
compressed picture
Important steps during the compression of single pictures
Quantisation– Representation of Values (Losses)– Importance of information– Characteristic curve (Companding)
Picturepreparation
uncompressedpicture
Pictureprocessing
Quanti-sation
Entropy-coding
compressed picture
Important steps during the compression of single pictures
Entropy encoding– Lossless compression– Linear data stream
Picturepreparation
uncompressedpicture
Pictureprocessing
Quanti-sation
Entropy-coding
compressed picture
JPEG and Motion JPEG Demands
Independent of the size of a picture Arbitrary Width/Height-relation Independent of color model and color variety Contents of a picture may have arbitrary
complexity State of the art regarding compression ratio Sequential and progressive picture
composition
JPEG Overview
Different Modes– Overview of the different possibilities
Picture Preparation
Pixel
Block, MCU
Picture Processing
Prediction
FDCT
Quantisation Entropy encoding
Run time encoding
Huffman
JPEG Modes
Lossy, sequential DCT-based Mode (base mode, baseline process)
Extended lossy DCT-based Mode Lossless Mode Hierarchical Mode
Baseline Process
Uses– Planes– Blocks (8x8)– Minimum Coded Unit (MCU)– FDCT (Forward Discrete Cosine Transformation)– Run length encoding– Huffmann
Picture Preparation
Picture consists of multiple planes (max. 255)– RGB, YUV or YIQ– Alpha channel
Planes with different resolution
2nd and 3rd plane have half the resolution in X-direction (e.g. YUV)
Minimum Coded Unit (MCU)
Assembly of data units from multiple different planes
DCT-based mode
Lossy and sequential 8 bits per Pixel
8x8 Blocks FDCT Quantisation Tables
Entropy encoding
Tablesuncompressed
picture
compressed picture
Transformation of blocks
Forward Discrete Cosine Transformation (FDCT)
Forward Discrete Cosine Transformation (FDCT):
7
0
7
0 16
)12(cos
16
)12(cos
4
1
x yyxvuvu
vyuxsCCS
with: 2
1, vu cc
Formula applied to each block for all 0 ≤ u, v ≤ 7: Blocks with 8x8 pixel result in 64 DCT coefficients: 1 DC-coefficient S00: basic color of the block 63 AC-coefficients: (likely) zero or near-zero values
, for u,v=0; else cu,cv=1
Example
Quantisation
64 DCT-Coefficients Table of coefficients for the quantisation Sq(v,u) = round (S(v,u) / Q(v,u)) R(v,u) = Sq(v,u) * Q(v,u) Trough Q(v,u), particular areas can be
emphasized / neglected
Entropy encoding
Quantisated DC-coefficient Zig-zag
Sequential image composition
In one step (encoded / decoded) Top to bottom
Progressive image composition
Image gets clearer through multiple steps
Summary
JPEG– State of the Art for the compression of single
pictures– Variety of degrees of freedom
E.g. Resolution
– Lossless mode almost reaches a 2:1 ratio
Perl
What Perl is
Merger of Unix tools– Very popular under UNIX– shell, sed, awk
Programming language– C syntax
Scripting language– Ability to change everything during runtime– Fast to employ, one-liners possible– Slower than C
What Perl is
Easy to learn– Learning curve similar to human language– More difficult things possible
Tell it to be more strict Object orientation
Esp. suited for the web & text processing– Regular expressions
How to get & use it
http://www.perl.com– ActiveState makes port for Microsoft Windows
Current Version is 5.6.1 Comprehensive documentation included
– C:\Perl\html\index.html– Perldoc
Running perl scripts– perl –w script.pl– #!/usr/bin/perl + chmod (Unix)
Variables
Scalars $ Arrays @ Hash % No need to declare variables Automatic conversion of numbers and strings
$camels = ‘123‘;
print $camels + 1 , “\n“;
Arrays
Multivalued Variable Lookup by number List Assignments
Accessing
@home = ("couch", "chair", "table", "stove")($one, $two, $three, $four) = @home($one, $two) = ($two, $one)
$home[0] - $home[3]
Hashes
Multivalued Variable Lookup by name List Assignments
Accessing
%longday = ( "Sun" => "Sunday","Mon" => "Monday","Tue" => "Tuesday" );
@list = %longday
$longday{"Sun"}, $longday{"Mon"}
Quoting in Perl
Double Quotes ““ interprete variables and backslashes
Single Quotes ‘‘ don‘t
$one=“two”; $two=“four”;print ‘$one + $one is $two \n’;print “$one + $one is $two \n”;