Multimedia- and Web-based Information Systems Lecture 6.

Post on 17-Jan-2016

213 views 0 download

Tags:

Transcript of Multimedia- and Web-based Information Systems Lecture 6.

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”;