present v0.2

Post on 23-Jun-2015

246 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

... it's very interesting

TRANSCRIPT

Improvement of lossless Compression for JPEG files

Irina Bocharova, Kirill Yurkov,Mikhail Bogdanov, Roman Bolshakov, Alexander Buslaev,

Yuri Konoplev, Anrew Tereskin, Oleg FinkelshteynITMO

autumn 2010 - spring 2011

-: big team from ITMO :- () Compression of JPEG autumn 2010 - spring 2011 1 / 27

Agenda

Purpose

Schemes of encoder and decoder

encoding DC

encoding RUN’s and AC

Levenstein encoder

Arithmetic encoder

Results

Problems

-: big team from ITMO :- () Compression of JPEG autumn 2010 - spring 2011 2 / 27

Purpose

Realize a recoder of JPEG to reduce bit stream

Requirements: bit-to-bit corrsepondense

-: big team from ITMO :- () Compression of JPEG autumn 2010 - spring 2011 3 / 27

Scheme of encoder

-: big team from ITMO :- () Compression of JPEG autumn 2010 - spring 2011 4 / 27

Scheme of decoder

-: big team from ITMO :- () Compression of JPEG autumn 2010 - spring 2011 5 / 27

encoding DC (DC Prediction)

B

A

C

X?

?

P =

DCC , |DCB − DCA| < |DCB − DCC |

DCA, otherwise

x - P encoded by arithmetic encoder.

-: big team from ITMO :- () Compression of JPEG autumn 2010 - spring 2011 6 / 27

encoding DC ( zero map, numbers of nonzero encoding )

y0 y1 y2

y3 x

Context for encoding x :

y0 + λ1y1 + λ2y2 + λ3y3

-: big team from ITMO :- () Compression of JPEG autumn 2010 - spring 2011 7 / 27

AC blocks encoding

-: big team from ITMO :- () Compression of JPEG autumn 2010 - spring 2011 8 / 27

Runs and levels encoding

We need to encode the pairs: (l0, r0), (l1, r1), . . . , (ln, rn, )

The value n known to encoder. For encoding pair (li , ri ) we constructtwo dimensional context:

n

n − i

-: big team from ITMO :- () Compression of JPEG autumn 2010 - spring 2011 9 / 27

Arithmetic coding

Arithmetic + Adaptivemodel

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 10 /

27

Levenstein code

A universal code encoding the non-negative integers

It works so:code of 0 is "0 and if we want to encode a positive number we donext:

1 Init the step count var C to 12 Write a binary representation of the number without the leading "1"to

the beginning of the code.3 Let M be the number of bits written in step 2.4 If M is not 0, increment C, repeat from step 2 with M as the new

number.5 Write C "1"bits and a "0"to the beginning of the code.

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 11 /

27

Some samples

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 12 /

27

Some information about samples

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 13 /

27

Results and Comparison

Picture Size PackJpg PCAR

A10 842 KB 19.2 % 11.5 %

Afisha 213 KB 28.6 % 20.0 %

Bird 82 KB 17.7 % 9.4 %

Document 103 KB 29.7 % 25.4 %

Flower 5 KB 18.5 % 6.0 %

Monkey 30 KB 30.6 % 24.7 %

Portrait 63 KB 25.5 % 25.0 %

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 14 /

27

Problems (bit-to-bit)

We need to read and write JFIF (JPEG) files maintatining bitwiseidentity.

Two possible implementation paths:Full parser: file → internal structrures → file

Pros: very flexible, easy to process once we have the structureCons: implementing a writer adhering to the bitwise identityrequirement is difficult. High serialization overhead.

Stream encoder: leaves most of non-interesting metadata as is(compressing using general-purpose stream methods)

Pros: faster, no serialization code (decoder reuses the jpeg headerparser from encoder), guarantees exactness in metadataCons: we lose flexibility, save some redundant information (e.g.standard Huffman tables)

After several attempts, we settled on the latter solution which worksfor an estimate of 95% of JPEG files in the wild (for those we areunable to process, a diagnostic is provided)

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 15 /

27

Problems (Unknown alphabet size)

Starts from alphabet contains one symbol Ω = ζ,where ζ is escape symbol

For each new input symbol at+1

1 a ∈ Ω,encode a with probality distribution p(a) = τ(a)

t+1

2 a /∈ Ω

encode escape symbol with probability distribution p(a) = τ(a)t+1

encode a with Levenstein codeΩ = Ω ∪ a

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 16 /

27

Thanks

Questions ?

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 17 /

27

References

[Rissanen, J.J.; Langdon, G.G., 1979]Arithmetic codingIBM Journal of Research and Development, p: 149-162.

[Levenstein V.I., 1968]About redundancy and slowdown of difference coding of naturalnumbersProblems of cybernetics, Moscow, Science, p: 173-179.

[Krichevsky, R.E.; Trofimov V.K., 1981]The Performance of Universal EncodingIEEE Trans. Information Theory, Vol. IT-27, No. 2, pp. 199–207.

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 18 /

27

other information

-: big team from ITMO :- () Compression of JPEGautumn 2010 - spring 2011 19 /

27

top related