# JPEG 2000

JPEG 2000 és un estàndard de compressió d'imatges que pretén millorar el popular JPEG. JPEG 2000 va ser desenvolupat entre els anys 1997 i 2000 pel grup Joint Photographic Experts Group i utilitza l'extensió .jp2.
Els principals canvis tècnics del JPEG 2000 respecte al JPEG són l'ús d'una Transformada Wavelet Discreta en lloc de la Transformada Discreta del Cosinus, i la reorganització de les paraules de bit per permetre una millor escalabilitat.

## Millores del JPEG 2000 respecte al JPEG
### Millores provinents de l'ús de la Compressió per ondetes

* Major taxa de compressió per imatges amb un baix ratio de compressió. En aplicar poca compressió amb l'estàndard JPEG el resultat de la imatge codificada és molt bona, per tant les millores que JPEG 2000 pot oferir no són moltes, malgrat això les comparacions numèriques demostren que el JPEG 2000 dona millor qualitat en aplicar poc compressió, una millora que pràcticament mai és perceptible a simple vista.
* Major taxa de compressió per imatges amb un alt ratio de compressió. En intentar fer grans compressions amb JPEG apareix l'anomenat efecte bloc. Com JPEG 2000 no basa la seva compressió en la divisió per blocs, evita aquests efecte i en grans compressions ofereix una millor qualitat, no només numèrica, sinó també a simple vista.
* Les Regions d'Interès, o ROI (provinent del seu acrònim en anglès) permeten codificar algunes regions de la imatge amb menys pèrdues que algunes altres fent la codificació no sigui uniforme en tota la imatge.

### Millores provinents de la reorganització de les paraules de bit

* Millor recepció progressiva. JPEG 2000 permet fer una primera visualització de baixa qualitat amb la lectura dels primers bits, i de mica en mica anar obtenint imatges de major qualitat amb la lectura dels bits successius. Aquesta funció ja la permetia JPEG però s'havia d'haver tingut en compte al codificar la imatge, i els resultats amb els primers bits on eren tan bons com els oferts per JPEG 2000.
* Escalabilitat de mida. JPEG 2000 permet visualitzar la imatge codificada en menor mida només amb la lectura dels primers bits, sense necessitat d'haver de descodificar tota la imatge i després aplicar una delmació.

### Altres millores

* Les Metadades de JPEG2000 permeten indicar sobre quin espai de color està treballant la imatge, a més a més de moltes altres metadades basades en l'estàndard DIG35, (igual que MPEG-4)
* Capes i animacions, les capes i animacions són permeses en JPEG 2000, tot i que en lloc d'usar l'extensió .jp2 utilitza l'extensió .jpx
* Clips de pel·lícula: JPEG 2000, té un estàndard propi de codificació de vídeo sota l'extensió .jpm. És l'estàndard actual usat en l'emmagatzemament de cinema digital.

## Procés de compressió

El procés de compressió del JPEG 2000 està dividit en quatre grans blocs: preprocessat, on es prepara la imatge per començar la compressió, dins del preprocessat trobem els blocs de la transformada per components, i el de la divisió de la imatge en mosaic; Transformada wavelet, on transformem la imatge a un altre domini; Quantització, on eliminem les parts de la transformada que no ens interessen; i Codificació on escrivim les dades sobre un arxiu.
En el procés de descompressió simplement s'inverteixen els passos fets en la compressió.

### Preprocessat

El preprocessat fem dues parts, invertibles en l'ordre: La transformada de components de color, i la divisió d'imatge sobre mosaic.

#### Transformació de les components de color

La transformació de color consisteix a canviar la imatge de l'espai RGB a altres espais menys redundants entre si. En la primera versió de l'estàndard (PART1) només hi han definides dues transformades de color:
* Transformada irreversible: Basada en la transformació YCbCr, es diu irreversible perquè comet errors en arrodonir les components, tot i ser lleugerament més perfecte.:
${\begin{bmatrix}Y\\Cb\\Cr\end{bmatrix}}={\begin{bmatrix}0.229&0.587&0.114\\0.299&0.587&0.886\\0.771&0.587&0.114\end{bmatrix}}\times {\begin{bmatrix}R\\G\\B\end{bmatrix}}\qquad \qquad {\begin{bmatrix}R\\G\\B\end{bmatrix}}={\begin{bmatrix}-1.8450&0.0&1.8450\\2.6424&-0.2516&-0.6873\\-1.1280&1.2953&-0.1673\end{bmatrix}}\times {\begin{bmatrix}Y\\Cb\\Cr\end{bmatrix}}$
* Transformada reversible: Treballa sobre una transformació YUV simplificada a valors submúltiples de 2 per permetre que siguin fàcilment reversibles.
${\begin{bmatrix}Y\\U\\V\end{bmatrix}}={\begin{bmatrix}0.25&0.5&0.25\\0&-1&1\\1&-1&0\end{bmatrix}}\times {\begin{bmatrix}R\\G\\B\end{bmatrix}}\qquad \qquad {\begin{bmatrix}R\\G\\B\end{bmatrix}}={\begin{bmatrix}1&-0.25&+0.75\\1&-0.25&-0.25\\1&+0.75&-0.25\end{bmatrix}}\times {\begin{bmatrix}Y\\U\\V\end{bmatrix}}$
En la Part 2 de l'estàndard (Extensió), es dona flexibilitat sobre les transformades, permeten que el codificador pugui triar ell quina es la transformada que vol aplicar.

#### Divisió de la imatge sobre mosaic (Tiling)

L'altre pas del preprocessat tracta en dividir la imatge en blocs cada un dels quals es tractarà de forma independent a la codificació, com si es tractés d'una imatge diferent.
En el JPEG la divisió es feia en blocs de 8x8 començat pel primer píxel de dalt a l'esquerra. En el JPEG 2000, la mida del bloc, es variable segons trobi oportú el codificador, de la mateixa manera el punt des d'on es divideix la imatge també pot decidir-ho el compressor.
L'estàndard no defineix com s'ha de fer per trobar la mida i l'offset òptim simplement reserva una espai a la capçalera perquè el codificador fiqui els valors que ell trobi més òptims.

### Transformada Discreta de Wavelet

Una de les principals característiques del jpeg2000 es que utilitza la Transformada Wavelet, la transformada wavelet es basa en la descomposicions successives de la imatge en pas alt i pas baix, en direccions verticals i horitzontals. Aquesta descomposició es força pròxima al ull humà i aconsegueix que en aplicar grans compressions el resultat sigui força òptim per la visió humana.
En aplicar aquests tipus de transformada com a resultat obtenim una matriu dades on tenim la imatge dividia en subbandes. La divisió en subbandes proporciona forces avantatges com el poder accedir ràpidament a una determinada resolució de la imatge sense haver de llegir tot el resultat de la transformada, o poder aplicar compressions diferents depenen de la banda de freqüències que ens interessi més comprimir.
La successió de transformades es pot repetir tants cops com el codificador trobi oportú. Depenen de la quantitat de vegades que s'hagi repetit la transformada la transformada serà dita en un nivell diferent.

### Quantització

Un cop realitzada la transformada quantifiquem els valor de la transformada, escalant-los, i aplicant un arrodoniment. Això ens provocarà una pèrdua d'informació que disminuirà la qualitat de la imatge, però es traduirà amb compressió.
La quantificació pot ser semi-uniforme, aplicant valors escalars diferents a cada una de les subbandes tipus que retorna la transformada Wavelet.
Fora de l'estàndard és possible aplicar algorismes de "rate allocation" per trobar la millor relació entre la quantificació i la qualitat.

#### Regions d'Interès

La quantificació del JPEG2000 permet aplicar diferents quantificacions a cada un dels blocs que hem creat en la divisió sobre mosaic. Això ens permet implementar les Regions d'Interès. Una regió d'interès, és una part de la imatge a la qual donem molta més importància que la resta, aplicant menys compressió.

### Codificació

L'últim gran bloc es basa en codificar els valor quantitzats, bàsicament te dos parts principals:
* Compressió entròpica, basada en l'algorisme "codificació binaria aritmètica adaptada". (ABAC del acrònim angles "adaptative Binary aritmetic coding"). El ABAC és considerat el millor algorisme de compressió d'imatges un cop transformades, sent utilitzat en el JPEG2000 i en el MPEG-4.
* Reorganització de les paraules de bit, per poder permetre la escalabilitat, i la recepció progressiva JPEG2000 abans de tancar l'arxiu ordena totes les paraules de bit de major importància(base de la transformada) a menor.

## L'estàndard

Fonts: JEPG i IGN Standardization Team
| Part | Nom | Contingut | Data |
| Part 1 | Core coding system Nucli del sistema de codificació | S'explica tot el sistema de codificació i descodificació usat pel JPEG 2000, així com la composició dels arxius jp2. | 2000-12-00Desembre 2000 |
| Part 2 | Extension Extensió | Es un complement a la part1, on es defineixen altres formes més flexibles de fer transformades, i àrees d'interès. Es defineix el arxiu .jpx, com a evolució del .jp2, permeten capes i animacions. Inserció de metadades segons l'especificació de l'estàndard DIG35 | 2001-11-00Novembre 2001 |
| Part 3 | Motion JPEG 2000 JPEG 2000 en moviment | Es defineix el arxiu .mj2, pensat per comprimir seqüències amb moviment mitjançat JPEG2000, i sense fer ús de una compressió temporal. El Motion JPEG 2000 ha estat triat com a estàndard per la distribució de cinema digital en sales de cine. | 2001-11-00Novembre 2001 |
| Part 4 | Conformance Conformitat | Es definixen proves tests sobre la codificació i la descodificació per comprovar si la compressió o la descompressió aplicada és correcte. | 2002-05-00Maig 2002 |
| Part 5 | Reference Software Programari de Referència | Es tracta de un petit documents explicatiu, adjuntat a dos codis fonts (un en C i un en java) que son mostra d'implementació de la Part 1. | 2001-11-00Novembre 2001 |
| Part 6 | Compound image file formats Format per arxius de composició de imatges. | Es defineix una nou format (.jpm) que s'utilitza per emmagatzemar documents de imatges. Permet definir pàgines, cadascuna amb diverses imatges, i permet diferents compressions a cada una de les imatges. | 2003-04-00Abril 2003 |
| Part 7 | Abandonada | Havia de explicar com implementar el JPEG 2000 sobre petits formats (per exemple càmeres fotogràfiques) però es va considerar que la part 5 ja era suficient i es va abandonar. | 3 |
| Part 8 | Security Seguratat. | Explica com implementar encriptació, identificació de fonts, accés condicional, protecció de propietat, entre d'altres sobre imatges JPEG 2000. | 2008-07-00Juliol 2008 |
| Part 9 | Interactive Protocol Protocol de interactivitat | Defineix com aplicar interactivitat en JPEG 2000 basant-se en HTML i un protocol client - servidor. | 2004-10-00Octubre 2004 |
| Part 10 | 3D 3D | Afegeix una nova part a l'estàndard explicant com codificar imatges en 3D. Es va dubtar si crear un nou estàndard per elles però al basar-se en quadrícules no uniformes, que també tenen aplicació sobre el 2D es va afegir com una part més de l'estàndard. | 2007-03-00Març 2007 |
| Part 11 | Wireless Sense fils | Ja que les comunicacions sense fils son més donades a errors, JPEG 2000, afegeix en aquesta part de l'estàndard millores en la correcció d'errors. | 2007-07-00Juliol 2007 |
| Part 12 | ISO Base media file format Formatació d'arxiu en base multimèdia ISO | Una gran part és comuna amb la part 12 del MPEG-4 i parla de un ús comú de les metadades per a futures aplicacions. | 2007-07-00Juliol 2007 |

## Vegeu també

* AVIF
* WebP

## Referències

* ↑ Taubman, David; Marcellin, Michael. JPEG2000 Image Compression Fundamentals, Standards and Practice: Image Compression Fundamentals, Standards and Practice. Springer Science & Business Media, 2012. ISBN 9781461507994.
* ↑ JPEG. «Joint Photographic Experts Group, JPEG2000».
* ↑ IGN Standardization Team. «JPEG2000 (ISO 15444)».

## Notes

* ↑ Això és una millora respecte JPEG ja que el anomenat MJPEG(Motion JPEG), mai ha estat un estàndard acceptat pel Joint Photographic Experts Group
* ↑ Es tracta de la data de la publicació del estàndard

## Enllaços externs

* Pàgina oficial sobre JPEG 2000 dins la web del grup Joint Photographic Experts Group (anglès)
* L'estàndard JPEG 2000 s'ha de pagar per ser consultat, però dins la web del Joint Photographic Experts Group hi ha disponibles els esborranys anteriors a la publicació i trossos no complets de l'estàndard actual Arxivat 2006-07-02 a Wayback Machine. (anglès)
* Everything you always wanted to know about JPEG 2000 - published by intoPIX in 2008 (PDF) (anglès)