Sunteți pe pagina 1din 27

Codarea JPEG 2000

1.1 Noiuni teoretice

Standardul JPEG2000 a fost gndit pentru mbuntirea standardului JPEG

JPEG2000 s-a dorit a fi mai flexibil, cu un raport de compresie mult mai mare (pn la
300:1), cu o structur mai unitar.

JPEG2000 utilizeaz n locul Tansformatei Cosinus Discrete Transformata Wavelet Discret

Standardul JPEG2000 permite ambele metode de compresie: cu pierderi i fr pierdei.

Paii algoritmului de codare sunt ilustrai n Figura 1.1:

Imagine
original

Pregtire
imagine

Transf. Wavelet
Discret

Cuantizare

Codare

Imagine
comprimat

mpachetare
date

Controlul
fluxului

Figura 1.1: Schema algoritmului de codare


Pregtirea imaginii

Conform standardului JPEG2000 pregtirea imaginii este compus din urmtoarii pai (vezi
Figura 1.2):
- partiionarea imagini n cadre
- ajustarea nivelului datelor
- o transformare color ireversibil
2

Pregtire
imagine
Partiionare
imagine

Ajustare
nivel

II

III

IV

[0, 2 N 1] [2 N 1 , 2 N 1 ]

Transformare
color

RGB YCbCr

Pentru situaia n care imaginea care trebuie comprimat este mai mare dect memoria
disponibil s-a prevzut posibilitatea partiionarea imaginii n dreptunghiuri disjuncte numite
cadre

Valorile datelor de intrare trebuie s fie ntr-o gam centrat n jurul lui zero, deoarece
standardul opereaz cu filtrri de tip trece-sus. Aa se explic necesitatea celei de a doua etape
de ajustare nivel.

Al treilea pas n aceast etap const dintr-o tranformare a matricii color. Tipul de
transformare depinde de reprezentarea iniial a imaginii. Se dorete ca imaginea care va intra
n a doua etap a procesului de compresie s fie reprezentat n formatul YCRCB.

Modelul imaginii

Transformarea color

Aplicarea Transformatei Wavelet

Transformata Wavelet are expresia:

c j,k =

f (t ) j , k (t )dt

- c j ,k sunt coeficienii Wavelet discrei


- j , k (t ) sunt funciile de baz Wavelet care se obin prin scalarea i translatarea unei
funcii Wavelet mam dup cum urmeaz:
j
2

j , k (t ) = 2 (2 j t k )
unde k este parametrul de translaie, j este parametrul de dilatare, iar (t ) este funcia
Wavelet mam.

Un exemplu de funcie Wavelet mam este urmtoarea:

Funcia Wavelet Daubechies

Structura TWD:

Imaginea fiind un semnal bidimendional se aplic transformata wavelet pe linii i coloane:

Aplicarea transformatei wavelet pentru componenta de luminanta pe un nivel derezoluie

Aplicarea transformatei wavelet la o imagine pe un nivel

Cele patru subimaginii sunt:


I Imaginea filtrat trece-jos pe linii i coloane, notat n literatura de specialitate cu LL (low
subbands for row and column filtering)
II Imaginea filtrat trece-sus pe linii i trece-jos pe coloane, notat n literatura de
specialitate cu HL (high subbands for row filtering and low subbands column filtering)
III Imaginea filtrat trece-jos pe linii i trece-sus pe coloane, notat n literatura de
specialitate cu LH (low subbands for row filtering and high subbands column filtering)
10

IV Imaginea filtrat trece-sus pe linii i coloane, notat n literatura de specialitate cu HH


(high subbands for row and column filtering)

Exemplu de aplicare a transformatei wavelet pe patru nivele de rezoluie


11

Exemplu

Subimaginea LL va fi corespondentul imaginii originale, dar la o rezoluie mai mic cu unu


Pentru aceast subimagine se aplic din nou Transformata Wavelet n acelai mod.
Specificaiile standardului JPEG2000 permit efectuarea ntre 0 i 32 de nivele de rezoluie
(aplicare Transformatei Wavelet de 32 de ori).

12

Cuantizarea
se face cuantizarea coeficienilor transformatei wavelet cu un cuantizor cu caracteristica
uniform i zon moart n jurul lui zero pentru fiecare subimagine.
Pentu o subimagine se utilizeaz un pas de cuantizare, fiecare sub-imagine avnd propiul pas
de cuantizare
Relaia cuantizorului este dat de relaia:
Val.coef .
q = sign(Val.coef .)

sub imagine

13

De exemplu pentru valoarea -21.82:

Codarea
Fiecare subimagine a unui cadru a unei imagini este mprit n uniti i mai mici, numite
blocuri de cod cu dimensiuni de tipul 64x64 sau 32x32 pixeli.

14

n cadrul unui bloc de cod citirea valorilor cuantizate ale coeficienilor transformatei wavelet
se face n benzi, fiecare band avnd o nlime de patru eantioane.
La rndul lor citirea benzilor se face de la stnga la dreapta i de sus n jos.

15

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

Modul de baleiere a coeficienilor ntr-un bloc de cod

Codarea se face ca la JPEG modul progresiv lund n considerare paralelipipede de bii

De notat faptul c tot procedeul de codare pentru un bloc de cod are loc la nivel de plan de bit
i nu la nivel de bit

Pentru codarea planului de bit se utilizeaz un codor aritmetic binar adaptiv bazat pe context

Codarea cuprinde trei etape numite:


- propagarea importanei (significance propagation)
- rezoluia amplitudinii (magnitude refinement)
- eliminarea repetiiilor (clean-up)
16

Aceste etape ale compresiei sunt aplicate planelor de bit ncepnd cu planul LSB. Singurul
care face excepie este planul MSB la care se utilizeaz doar eliminarea repetiiilor.

W1 W5 W9 W13
W2 W6 W10 W14
W3 W7 W11 W15
W4 W8 W12 W16

Planul LSB al biilor


Planul MSB al biilor

Aezarea biilor ntr-un paralelipiped

Fluxul de date codat este organizat pe nivele de calitate. Un nivel de calitate este ansamblul
de plane de bit consecutive dintr-o regiune a imaginii.

Fiecare bloc de cod poate contribui cu un anumit numr de plane de bit codate la un nivel de
calitate a imaginii.

Controlul debitului
17

Controlul ratei de debit este operaia prin care fluxul de date este alterat n scopul atingerii
unui debit de date dorit

trebuie s fie se analizeze toate blocurile comprimate i s se decid care din ele s fie
trunchiat, dup o stategie care s minimizeze efectul distorsiunilor

Structura fluxului de date

Datele prelucrate pn n acest moment sunt mprite n pachete, care corespund diferitelor
regiuni ale unei imagini

O regiune este o mulime de blocuri de cod la un nivel de rezoluie fixat

Un exemplu de astfel de regiuni pentru 4 nivele de rezoluie este prezentat mai jos

Culoarea
fundalului
reprezint diverse nivele de
rezoluie,
iar
desenul
reprezint o regiune

18

Exemplu de partiie a regiunilor n cadrul diferitelor


rezoluii pentru o imagine

Un pachet este compus dintr-un header i datele comprimate.

Pachetele sunt multiplexate astfel nct s formeze un flux de date.


Header
Imagine

Flux date
partiie

Flux date
partiie

Header
partiie
Pachet
Header
pachet

..

Flux date
partiie

Sfrit
partiie

Flux date
pachete
Pachet

..

Pachet

Date
comprimate

Codarea multirezoluie permite decompresia aceleiai imaginii n mod diferit din punct de
vedere a calitii i dimensiunii n funcie de aplicaie:

19

20

21

22

23

24

25

26

27

S-ar putea să vă placă și