JPEG 2000

De Viquipèdia
Dreceres ràpides: navegació, cerca
JPEG 2000
JPEG 2000
Extensió del fitxer .jp2, .jpg2, .jpx(extensió), .mj2(video), .mjp2(video), .jpm(documents)
MIME image/jp2, image/jpx, video/mj2, image/jpm
Desenvolupador: Joint Photographic Experts Group
Tipus de format: Compressió de imatges amb i sense pèrdues
Extensió de: JPEG
Estàndard ISO/IEC 15444

JPEG 2000 és un estàndard de compressió d'imatges que pretén millorar el popular JPEG. JPEG 2000 neix promogut pel grup "Joint Photographic Experts Group" l'any 2000 usant l'extensió .jp2.

Els principals canvis tècnics del JPEG 2000 respecte al JPEG són l'ús de una Transformada Wavelet Discreta enlloc 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[modifica | modifica el codi]

Millores provinents de l'ús de la Compressió per Wavelets[modifica | modifica el codi]

Comparativa de la qualitat d'imatge entre JPEG i JPEG 2000 per ratios de compressió propers.
  • 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 es perceptible a simple vista.
  • Major taxa de compressió per imatges amb un alt ratio de compressió. Al intenta 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[modifica | modifica el codi]

  • Millor recepció progressiva. JPEG 2000 permet fer una primera visualització de baixa qualitat amb la lectura dels primers bits, i mica en mica anar obtenint imatges de major qualitat amb la lectura dels bits successius. Aquesta funció ja la permetia JPEG però s'havia de 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 de haver de descodificar tota la imatge i després aplicar una delmació.

Altres millores[modifica | modifica el codi]

  • 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 pelicula:[1] 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ó[modifica | modifica el codi]

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.

Diagrama de blocs del procés de compressió del JPEG 2000

En el procés de descompressió simplement s'inverteixen els passos fets en la compressió.

Preprocessat[modifica | modifica el codi]

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[modifica | modifica el codi]

La transformació de color consisteix a canviar la imatge del espai RGB a altres espais menys redundants entre si. En la primera versió del 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 dóna 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)[modifica | modifica el codi]

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 de una imatge diferent es tractes.

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[modifica | modifica el codi]

Imatge original i les seves transformades wavelet de nivell 1, nivell 2 i nivell 3.

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 al aplicar grans compressions el resultat sigui força òptim per la visió humana.

Al 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 qualitat 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ó[modifica | modifica el codi]

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 del estàndard és possible aplicar algorismes de "rate allocation" per trobar la millor relació entre la quantificació i la qualitat.

Regions d'Interès[modifica | modifica el codi]

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 de Interès. Una regió d'interès, es una part de la imatge a la qual donem molta més importància que la resta, aplicant menys compressió.

Codificació[modifica | modifica el codi]

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 es considerat el millor algorisme de compressió de imatges un cop transformades, sent utilitzat a més a més de en el JPEG2000 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[modifica | modifica el codi]

Part Nom Contingut Data[2]
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

Referències i notes al peu[modifica | modifica el codi]

Notes al peu[modifica | modifica el codi]

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

= Referències[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: JPEG 2000 Modifica l'enllaç a Wikidata

=