You are here: Home » Image Formats » JPEG

JPEG

JPEG ( / p ɛ ɡ / gaița PEG ) [1] este o metodă frecvent utilizată de compresie lossy pentru imagini digitale, produse în special pentru acele imagini prin intermediul fotografiei digitale. Gradul de compresie poate fi setat astfel încât un compromis între selectabil enbeeldkwaliteit de stocare. JPEG ajunge în mod obișnuit. 10: 1 compresie cu pierderi mici perceptibil în calitate a imaginii [2]

Compresie JPEG este utilizat într – un număr de formate de imagine. JPEG / Exif este cel mai comun format de imagine utilizat de captare digitală camera’sen alte dispozitive de imagistica fotografice; împreună cu JPEG / JFIF este cel mai utilizat pentru stocarea și transmiterea fotografiilor pe World Wide Web. [3] Acest format variante sunt de multe ori nu se disting și pur și simplu numit JPEG.

Termenul “JPEG” este un acronim pentru Joint Photographic Experts Group , care a creat standardul. MIME tipul de suport pentru JPEG este o imagine / jpeg , cu excepția cazului în versiunile mai vechi de Internet Explorer, care oferă un tip MIME imagine / pjpeg atunci când încărcarea imaginilor JPEG. [4] fișiere JPEG au , de obicei , o extensie .jpg sau .jpeg .

JPEG / JFIF suportă o dimensiune maximă a imaginii de 65.535 x 65.535 pixeli, [5] , care până la 4 pixeli giga un raport de 1: 1.

Standardul JPEG

“JPEG” este acronimul pentru Joint Photographic Experts Group, numele comisiei care a creat standardul JPEG și , de asemenea , alte standarde de codificare imagini statice. “Joint” a fost în ISO TC97 WG8 și CCITT SGVIII. În 1987, ISO TC 97 a fost ISO / IEC JTC1 iar în 1992 a devenit CCITT ITU-T. În prezent , pe partea JTC1 JPEG este una dintre cele două subseturi ale Comitetului ISO / IEC Tehnic Comun 1, subcomitetul 29, Grupul de lucru 1 (ISO / IEC JTC 1 / SC 29 / WG 1) – titlu de codificare a mărfurilor de imagini statice . [6 ] [7] [8] privind ITU-T-side ITU-T SG16 este organul respectiv. Grupul în original , JPEG a fost organizat în 1986, [9] , care este primul standard JPEG în 1992, care a fost aprobat în septembrie 1992 ca Recomandarea ITU-T T.81 [10] și în 1994 ca ISO / IEC 10918-1 .

Standardul JPEG specifică codec – ul, care determină modul în care o imagine este comprimată într – un flux de octeți și înapoi decomprimat într – o imagine, dar nu și formatul de fișier care este utilizat pentru a conține acest flux. [11] Standardele Exif și JFIF, cel mai mult frecvent utilizate fișier de definire formate de schimb de imagini comprimate JPEG.

Standardele JPEG sunt listate oficial ca tehnologia informației – compresie digitală și codificare tonuri continue imagini statice . ISO / IEC 10918 este alcătuit din următoarele componente:

Comprimarea digitală ȘI CODIFICAREA continuous-TONE IMAGINI STILL – PIESE [7] [9] [12]
Parte standardul ISO / IEC ITU-T Rec. În prima dată de lansare publică ultima modificare Titlu Descriere
Partea 1 ISO / IEC 10918-1: 1994 T.81 (09/92) 18 septembrie 1992 Cerințe și orientări
Partea 2 ISO / IEC 10918-2: 1995 T.83 (11/94) 11 noiembrie 1994 testarea conformității reguli și verificări pentru conformitatea software-ului (partea 1)
partea 3 ISO / IEC 10918-3: 1997 T.84 (07/96) 03 iulie 1996 O aprilie 1999 extensii extinderi de serie de partea 1, inclusiv pentru a îmbunătăți spiff formatul de fișier
partea 4 ISO / IEC 10918-4: 1999 T.86 (06/98) 18 iunie 1998 29 iunie 2012 Înregistrare profilurilor JPEG, tag-uri spiff profile spiff, spatii de culoare spiff, markeri APPN spiff tipuri de compresie și autoritățile de înmatriculare (REGAUT) Modalități de a extinde unele dintre parametrii pentru JPEG
partea 5 ISO / IEC 10918-5: 2013 T.871 (05/11) 14 mai 2011 JPEG Interchange Format fișier (JFIF) Un popular format de faptul că , de facto , formatul de fișier pentru imagini codificate a fost de standardul JPEG. În 2009, comisia JPEG a stabilit în mod oficial un grup ad – hoc pentru standardizarea JFIF JPEG partea 5. [13]
partea 6 ISO / IEC 10918-6: 2013 T.872 (06/12) iunie 2012 Aplicabile sistemelor de imprimare Specifică un subset de caracteristici și instrumente de aplicare pentru schimbul de imagini codificate în conformitate cu ISO / IEC 10918-1 pentru imprimare.

ECMA TR / 98 specifică fișierul JPEG Interchange Format (JFIF); prima ediție a fost publicată în iunie 2009. [14]

utilizarea tipică

Algoritmul de compresie JPEG este cel mai bun pe fotografii și picturi ale unor scene realiste, cu variații netede de ton si culoare. Pentru utilizarea Internetului, în care cantitatea de date care sunt utilizate pentru o imagine este importantă, JPEG este foarte popular. JPEG / Exif este salvat, de asemenea, forma cea mai comună de camere digitale.

JPEG, pe de altă parte, poate fi mai puțin potrivite pentru desene și alte textuale sau grafice iconic, unde contraste puternice pot provoca artefacte vizibile între pixelii adiacenți. Astfel de imagini pot fi mai bine stocate într-un format grafic lossless, cum ar fi TIFF, TOXICOLOGICĂsau, PNG, sau brut. Standardul JPEG include de fapt, un mod de codare fără pierderi, dar nu este acceptat în cele mai multe produse.

Deoarece utilizarea tipică a JPEG este o metoda de compresie lossy, ceea ce reduce ușor fidelitatea imaginii, aceasta nu ar trebui să fie utilizat în scenarii în care este necesară reprezentarea exactă a datelor (cum ar fi unele aplicații de imagistica științifice și medicale și anumite lucrări de prelucrare tehnică) .

JPEG nu este potrivit pentru fișierele supuse unor operații multiple, cum ar fi unele de calitate a imaginii va fi de obicei se pierde de fiecare dată când merge imaginea este decomprimat și comprimat din nou, mai ales în cazul în care imaginea este decupată sau deplasată, sau în cazul în care parametrii de codificare sunt schimbate – vezi digital pierdere generație pentru mai multe informatie.Om a preveni acest lucru, o imagine poate fi modificată sau pot fi stocate pentru a fi schimbate în viitor, într-un format lossless, exportate ca copii JPEG pentru distribuție.

compresie JPEG

JPEG utilizează o formă lossy de compresiune pe baza de transformare Cosinus discretă (DCT). Această operație matematică convertește fiecare cadru / câmp al sursei video a domeniului spațial (2D), în domeniul de frecvență (aka transforma domeniu). Un model perceptiv vag bazat pe sistemul psiho-vizual uman ignoră informații de înaltă frecvență, tranziții adică ascuțite în intensitate și nuanța. In domeniul de transformare, se va reduce în continuare informații numite cuantizare. Mai simplu spus, cuantizare este o metodă pentru reducerea optimă a unui număr mare de scală (cu diferite pe care fiecare număr) într-o mai mică și domeniu de transformare este o reprezentare adecvată a imaginii, deoarece coeficienții de înaltă frecvență, care contribuie mai puțin la imaginea generală decât alți coeficienți, sunt în mod tipic valori mici, cu o compresibilitate ridicată. Coeficienții cuantificați sunt apoi secvențiat și Lossless ambalate în șirul de biți de ieșire. Aproape toate implementări de software de control al utilizatorului JPEG permis asupra raportului de compresie (precum și alți parametri opționali), permițând utilizatorului să tranzacționeze off calitatea imaginii pentru dimensiunea fișierului mai mică. În aplicații embedded (cum ar fi miniDV, ceea ce face un sistem similar de compresie DCT), parametrii sunt pre-selectate și pentru aplicație.

Metoda de compresie este de obicei lossy, lăsând unele date originale se pierd și nu pot fi restaurate, orice pierdere de calitate a imaginii. Un mod lossless opțional definit de standardul JPEG. Cu toate acestea, acest mod nu este acceptat pe scară largă în produse.

Există , de asemenea , o intercalare progresiv în format JPEG, în care datele sunt comprimate în mai multe treceri de detaliu progresiv mai mari. Acest lucru este ideal pentru imagini de mari dimensiuni , care sunt afișate în timpul descărcării printr – o conexiune lentă, permițând o examinare rezonabilă după ce a primit doar o parte din date. Cu toate acestea, suport pentru JPEG progresive nu este universal. În cazul în care JPEG progresiv prin programe care nu acceptă (cum ar fi versiunile de Internet Explorer sunt furnizate pentru Windows 7) [15] Software – ul afișează imaginea până când este complet descărcat.

Există, de asemenea, multe sisteme de imagistică medicală și de trafic de imagini JPEG 12 biți, imaginile în tonuri de gri normale, pentru a crea și de proces. Formatul de 12 biți JPEG are o parte din caietul de sarcini JPEG pentru ceva timp, dar acest format nu este la fel de larg acceptată.

editare lossless

A se vedea, de asemenea: jpegtran

O serie de modificări la o imagine JPEG poate fi efectuată o pierdere de încărcare ( de exemplu, fără recompresie și a pierderii de calitate) , atâta timp cât dimensiunea imaginii unui multiplu de 1 MCU bloc (Minim unitate Codificat) ( de obicei 16 pixeli în ambele traseu, pentru 4: 2: Prelevarea de probe Chroma 0). Utilitati care implementeaza acest sub jpegtran, cu interfață de utilizator jpeg culturi, și JPG_TRANSFORM plugin IrfanView.

Blocuri poate fi rotit în trepte de 90 de grade, care se reflectă în axele orizontale, verticale și diagonale și miscate în imagine. Nu toate blocurile din imaginea originală să fie utilizată în cea modificată.

Marginile de sus și din stânga ale unui JPEG ar trebui să fie pe un 8 x 8 pixeli bloc de delimitare, dar partea de jos și marginile din dreapta nu trebuie să. Acest lucru limitează posibilele recolte fără pierderi operații, și , de asemenea previne flips și rotații ale unei imagini a căror fund sau dreapta nu se află pe o graniță bloc pentru toate canalele (deoarece frontiera s- ar termina la partea de sus sau la stânga, în cazul în care – așa cum sa menționat mai sus – un bloc limită este pentru cazul).

Rotațiile în cazul în care imaginea nu este un multiplu de 8 sau 16, valoare care depinde de Subeșantionare croma, nu pierderea-free. O astfel de rotire a imaginii asigură faptul că blocurile sunt recalculate de luare de calitate. [16]

Atunci când se utilizează lossless culturi, în cazul în care partea de jos sau de pe partea dreaptă a zonei de cultură nu se află pe o graniță bloc decât restul datelor blocurilor parțiale folosite în trunchiat încă fișier, și pot fi recuperate. De asemenea, este posibil să se convertească între momentul inițial și formatele progresive fără pierderi de calitate, deoarece singura diferență este ordinea în care coeficienții incluși în dosar.

Mai mult decât atât, se pot uni imaginile JPEG fără pierderi, atâta timp cât acestea sunt stocate cu aceeași calitate și marginile coincid cu frontierele bloc.

fișiere JPEG

Formatul de fișier cunoscut sub numele de “JPEG Interchange Format” (JIF) este specificat în Anexa B a standardului. Cu toate acestea, acest format “pur” rar folosit, în principal, din cauza dificultății de programare codoare și decodoare pentru a pune în aplicare pe deplin toate aspectele standardului și din cauza anumitor deficiențe ale standardului:

  • definiție de culoare
  • Înregistrare componente subeșantionare
  • Pixel aspect definiție Ratio.

Mai multe tipuri de standarde suplimentare au fost dezvoltate pentru a aborda aceste probleme. Prima dintre acestea, lansat în 1992, a fost JPEG Interchange Format (JFIF sau) , urmat în ultimii ani de schimbabile Image File Format (EXIF) și profiluri de culoare ICC. Ambele formate utilizează efectiv layout – ul octet JIF, care este format din mai multe markeri , dar , în plus, să utilizeze una dintre JIF puncte de extensie standard și anume, aplicații markeri : JFIF utilizate APP0, în timp ce Exif utilizat APP1. În cadrul acestor segmente ale fișierului, care au fost pentru utilizare ulterioară în standardul JIF și nu sunt citite de aceasta, adăugarea acestor standarde de metadate specifice.

Astfel, în unele privințe, JFIF este o versiune restrangerii a standardului JIF , deoarece acestea vor fi anumite restricții (cum ar fi faptul că nu toate permițând diferitelor moduri de codare), în timp ce în alte privințe , este o extensie a JIF datorită metadatelor adăugate. Documentatia propune standardul JFIF original: [17]

JPEG Interchange Format este un minim de biți format JPEG fișier permite comutarea între o gamă largă de platforme și aplicații. Acest format minimal nu include caracteristicile avansate ale TIFF specificații JPEG sau format de fișier specifice aplicației. De asemenea, nu ar trebui să-l, în unicul scop al acestui format simplificat este acela de a permite schimbul de imagini comprimate JPEG.

Fișierele de imagine care utilizează compresie JPEG sunt , în general “JPEG”, și stocate în variante ale formatului JIF. Cele mai multe dispozitive de captare a imaginii (cum ar fi camerele digitale) , care sunt ieșiri de JPEG creează de fapt fișiere în formatul Exif, formatul pe care industria camerelor digitale standardizate de metadate uitwisseling.Aan de altă parte, deoarece standardul Exif nu profiluri de culoare permite stand, cele mai multe magazine de editare de imagini software JFIF în format JPEG, și , de asemenea , segmentul APP1 din fișierul Exif pentru a înregistra metadatele într – un mod aproape compatibil; Standardul JFIF a fost interpretat oarecum flexibil. [18]

Strict vorbind, standardele JFIF și Exif nu sunt compatibile, deoarece fiecare necesită segmentul de marcare (APP0 sau app1, respectiv), mai întâi apar. În practică, cele mai multe fișiere JPEG conțin un segment de marcator JFIF precede antetul Exif. Acest lucru permite cititorilor mai mari să se ocupe în mod corect vechiul format segmentul JFIF, in timp ce cititorii mai noi decodifice următorul segment Exif, care necesită mai puțin stricte ca acestea să apară în primul rând.

extensii de fișiere JPEG

Cele mai comune extensii de fișiere pentru fișierele JPEG care utilizează compresia .jpg și .jpeg , cu toate că .jpe, .jfif și .jif fi de asemenea utilizat. De asemenea , este posibil ca datele JPEG să fie încorporate în alte formate – fișiere TIFF criptate pe o imagine JPEG ca miniatură adesea încorpora imaginii principale; Fișierele MP3 și JPEG pot conține o copertă de artă în tag – ul ID3v2.

profil de culoare

Multe fișiere JPEG încorpora un profil de culoare ICC (spațiu de culoare). profilurile de culoare utilizate în mod obișnuit includ sRGB și Adobe RGB. Datorită faptului că aceste spații de culoare utilizând o transformare non-lineară, intervalul dinamic al unui fișier de 8 biți JPEG oprește este de aproximativ 11; A se vedea curba gamma.

Sintaxa și structura

Un JPEG constă dintr – o serie de segmente, fiecare dintre care încep cu un marcaj , fiecare dintre care începe cu un octet 0xFF urmat de un octet care este care markerul. Unii markeri conține numai acești doi octeți; altele sunt urmate de doi octeți (ridicat apoi scăzută) , cu indicarea lungimii datelor sarcină utilă marker specific care urmează. (Lungimea include doi octeți pentru lungime, dar nu și cei doi octeți pentru marcare.) Unele dintre elementele de marcare, urmată de entropie codificate de date; Durata acestui marker nu include datele entropie codificate. Rețineți că octeți succesive sunt 0xFF utilizate ca umplutură octeți în scopuri de umplutură, cu toate că acest lucru se umple numai octet umplutură ar trebui să aibă loc o dată pentru markeri imediat după scanare de date codificate-entropie ( a se vedea secțiunea B.1.1.2 JPEG specificație pentru detalii și E. 1.2, în special “În toate cazurile în care se adaugă marcatori după datele comprimate, introduceți în mod opțional octeți 0xff, eticheta poate precede”).

Datele entropie codificate, după orice octet 0xFF se introduce 0x00 un octet la codificator pentru următorul octet, astfel încât acesta nu pare un marker neprevăzută, apar erori de încadrare. Decodoare ar trebui să săriți peste acest octet 0x00. Aceasta tehnica, numita umplutura octet (a se vedea secțiunea JPEG specificație F.1.2.3) se aplică numai la datele codificate, entropia nu marker de sarcină utilă de date. Cu toate acestea, rețineți că entropia codificate de date are o pereche de markeri ai propriei sale; Readucerea special markeri (0xD0 la 0xD7), care sunt folosite pentru a izola fragmente independente de entropie codificate de date de decodare codificatoare paralel posibil și libere acestor markeri în mod regulat plasați din nou (deși nu toate codificările).

COMUNĂ JPEG MARKERI [19]
nume scurt octeți încărcătură utilă Nume Comentarii
SO I 0xFF, 0xD8 Nu INCEPEREA Image
SOF0 0xFF, 0xC0 dimensiune variabilă INCEPEREA Frame (linia de bază DCT) Indică faptul că aceasta este o linie de bază JPEG DCT pe bază, și specifică lățimea, înălțimea, numărul de componente, și componenta Subeșantionare (de exemplu, 4: 2: 0).
Sof2 0xFF, 0xC2 dimensiune variabilă INCEPEREA Frame (progresiv DCT) Indică faptul că progresivă bazată pe DCT-JPEG, și specifică lățimea, înălțimea, numărul de componente, și Subeșantionare componente (de exemplu, 4: 2: 0).
DHT 0xFF, 0xC4 dimensiune variabilă Defini Huffman (e) Specifică unul sau mai multe tabele Huffman.
DQT 0xFF, 0xDB dimensiune variabilă Defini tabelul de cuantizare (s) Specifică unul sau mai multe tabele de cuantizare.
DRI 0xFF, 0xDD 4 octeți Interval de repornire a defini Specifică intervalul dintre RST n markeri în blocuri macro. Acest marcaj este urmat de doi octeți , în care mărimea fixă, astfel încât să poată fi tratate ca orice alt segment de dimensiune variabilă.
SOS 0xFF, 0xDA dimensiune variabilă Început de scanare Pornește o scanare de sus în jos a imaginii. În situația în imaginile inițiale JPEG DCT, în general, există o singură scanare. Progresive imagini JPEG DCT conțin, de regulă mai multe scanări. marcare Aceasta determină ce segmentul de date va conține, și este urmată imediat de date codificate de entropie.
RST n 0xFF, 0xD n ( n = 0..7) Nu repornire Inserează în fiecare caz r macroblocuri, în care r trebuie să fie setată în intervalul de repornire de către un marker DRI. Nu utilizați în cazul în care nu există nici un DRI marker.The low trei biți din valoarea ciclului de cod al etichetei 0-7.
APP n 0xFF, 0xE n dimensiune variabilă specifice aplicației De exemplu, un fișier Exif JPEG utilizează un marker APP1 pentru a stoca metadate într-o structură care se bazează îndeaproape pe TIFF stabilit.
COM 0xFF, 0xFE dimensiune variabilă comentariu Include un comentariu text.
EOI 0xFF, 0xD9 Nu Sfârșitul imaginii

Există și alte Start frame markeri care introduce alte tipuri de codare JPEG.

Pentru mai mulți vânzători ar putea folosi același APP n marker tip de markeri specifice aplicației de multe ori începe cu un nume standard sau furnizor ( de exemplu , “Exif” sau “Adobe”) , sau orice alt șir de caractere de identificare.

La un marker repornire, predictori bloc cu bloc sunt resetate, iar șirul de biți este sincronizat cu o limită de octet. Repornească markerilor prevăzute cu mijloace pentru eroarea de recuperare, bitstream cum ar fi transmiterea printr-o rețea nesigure sau corupție fișier. Din moment ce ruleaza de macroblocuri din nou, pot fi decodate independent între markeri, aceste ruleaza pot fi decodificate în paralel.

JPEG exemplu codec

Cu toate că un fișier JPEG poate fi codificat în diferite moduri, aceasta se face, de obicei, codare JFIF. Codul este format din mai multe etape:

  1. Aspectul culorilor din imagine este convertit la RGB la Y’C B C R , constând dintr – un singur component luma (Y ‘), care este luminozitatea și două componente chroma (C B și C R ), care este de culoare . Acest pas este uneori peste bătut.
  2. Rezoluția datelor Chroma este redus, de obicei, cu un factor de 2 sau 3. Acest lucru arată că ochiul este mai puțin sensibil la detalii de culoare fine decât cele mai fine detalii de luminozitate.
  3. Imaginea este împărțită în blocuri de 8 x 8 pixeli, iar pentru fiecare bloc, în care fiecare dintre Y, C B și C R date supuse cosinus discrete transforma (DCT), care a fost dezvoltat în 1974 de către N. Ahmed, T . Natarajan și KR Rao; vezi Referirea 1 pe transformare Cosinus discretă. Un DCT este similar cu o transformare Fourier în sensul că produce un tip de spectru de frecvență spațială.
  4. Amplitudinile componentelor de frecvență sunt cuantificate. Ochiul uman este mult mai sensibil la mici variații de culoare sau luminozitate peste zone mari decât puterea de variații de luminozitate de înaltă frecvență. Prin urmare, amploarea componentelor de înaltă frecvență este stocată cu o precizie mai mică decât componentele de frecvență joasă. Setarea de calitate a codorului ( de exemplu, 50 sau 95 pe o scară de la 0-100 în bibliotecă JPEG Independent Group [20] ) va afecta măsura în care scade rezoluția fiecărei componente de frecvență. În cazul în care se utilizează setarea de calitate prea scăzută, componentele de înaltă frecvență sunt eliminate complet.
  5. Datele rezultate pentru toate cele 8 x 8 blocuri comprimat în continuare utilizând un algoritm fără pierderi, o variantă de codificare Huffman.

Procesul de decodare inversează acești pași, cu excepția cuantizare , așa cum este ireversibilă. În restul acestei secțiuni, procesele de criptare și decriptare mai detaliat.

codificare

Multe dintre opțiunile nu sunt utilizate adesea în standardul JPEG, și așa cum sa menționat mai sus, cele mai multe software-ul de imagine utilizează formatul JFIF mai simplu la crearea unui fișier JPEG, care, printre altele, precizează metoda de criptare. Aici urmează o scurtă descriere a unuia dintre cele mai comune metode de codificare, atunci când sunt aplicate la o intrare 24 care este biți per pixel (opt fiecare roșu, verde și albastru). Această opțiune particulară este o metodă de comprimare a datelor lossy.

transformare a spațiului de culoare

În primul rând, imaginea trebuie să fie convertite din RGB într – un spațiu de culoare diferită numită Y’C B C R (sau, colocvial, YCbCr). Ea are trei componente Y, C B și C R : component Y ‘în strălucirea unui pixel, iar C B și C R componente reprezintă cromatică (defalcate pe componente albastre și roșii). Acesta este în esență același ca spațiu de culoare utilizat de televizor color digitală și video digitale , cum ar fi video DVD – uri, și este similar cu modul în care culoarea este reprezentată în video de analog PAL si MAC (acestea nu NTSC nu analogic, care este utilizat de culoare YIQ spaţiu). Y’C B C R conversia spațiului de culoare permite o compresie mai mare , fără o influență semnificativă asupra calității imaginii de percepție (sau calitatea imaginii mai perceptiv pentru aceeași compresie). De compresie este mai eficient, deoarece informațiile de luminozitate, ceea ce este mai important este limitată la calitatea perceptuale finală a imaginii la un singur canal. Acest lucru corespunde mai mult percepția culorilor în sistemul vizual uman. Transformarea culorilor îmbunătățește , de asemenea , de compresie de decorelare statistică.

O conversie specială în Y’C B C R este specificat în standardul JFIF și trebuie să fie făcut pentru a afecta rezultat compatibilitate maximă JPEG. Cu toate acestea, unele implementări JPEG în modul ” de înaltă calitate” , această etapă nu se aplică și informațiile de culoare pentru a menține locul modelul de culoare RGB, [ necesită citare ] , în cazul în care imaginea este stocată într – un canale separate pentru componentele de luminozitate roșu, verde și albastru . Acest lucru duce la compresie mai puțin eficient, și nu ar fi , probabil , utilizat în cazul în care fișierul este deosebit de important.

sub-eșantionare

Ca urmare a densitățile de culoare și luminozitate sensibil receptorii din ochiul uman, ființa umană poate fi văzută în detaliu considerabil mai fine în luminozitatea unei imagini (componenta Y “) decât în nuanța și saturația culorilor ale unei imagini (componente CB și Cr). Cu ajutorul acestor cunoștințe, encodere pot fi proiectate pentru a comprima mai eficient imaginile.

Transformarea în Y’C B C R modelul de culoare permite următorul pas obișnuit, care este rezoluția spațială a componentelor Cb și Cr (numite “scădere sub – eșantionare” sau “eșantionare cromatică”). Proporțiile în care în jos-eșantionarea se face de obicei pentru imaginile JPEG sunt 4: 4: 4 (fără sub – eșantionare), 4: 2: 2 (reducere cu un factor de 2 , în direcția orizontală), sau ( de obicei) 4: 2 : 0 (reducere cu un factor de 2 în ambele direcții orizontale și verticale). Pentru restul procesului de comprimare sunt Y, Cb și Cr separat și integrate într – un mod similar.

divizat bloc

După Subeșantionare, fiecare canal trebuie să fie împărțită în 8 × 8 blocuri. În funcție de eșantionare Chroma livrează această minimă Codificat unitate (MCU) blocuri de dimensiunea de 8 x 8 (4: 4: 4 – nu Subeșantionare), 16 x 8 (4: 2: 2), sau mai uzual 16 × 16 (4: 2: 0). În microcontrolerelor de compresie video sunt numite blocuri macro.

În cazul în care datele unui canal nu are ca rezultat un număr întreg de blocuri, apoi codorului, spațiul rămas din blocuri parțiale, având o formă de date fictive în. Umplerea marginile cu o culoare solidă (de exemplu, negru) pot face apel artefacte de-a lungul partea vizibilă a frontierei; repetând pixelii muchiilor este o tehnica care reduce (dar nu neapărat elimina complet), cum ar fi artefacte, și pot fi de asemenea folosite tehnici mai avansate la limita de umplere.

Transformarea cosinus discretă

8 × 8 sub-imaginea afișată în 8-bit tonuri de gri

Apoi, fiecare 8 x 8 blocuri ale fiecărei componente (Y, Cb, Cr) este transformat într-o reprezentare domeniu de frecvență, cu un tip normalizat bidimensională transforma II cosinus discretă (DCT), introdus de N. Ahmed, T. Natarajan, și KR Rao în 1974; vezi Referirea 1 pe transformare Cosinus discretă. DCT este uneori numit “II tip DCT”, în cadrul unei familii de transformări menționate transformare cosinus indiscret și inversul corespunzătoare (IDCT) este denumit “tip III DCT”.

Ca un exemplu, poate fi de circa 8 x 8 8-biți sub-imagine:

{\ Stilul de afișare \ stânga [{\ begin {matrice} {} rrrrrrrr 52 & 55 & 61 & 66 & 70 & 61 & 64 & 73 \\ 63 & 59 & 55 & 90 & 109 & 85 & 69 & 72 \\ 62 & 59 & 68 & 113 & 144 & 104 & 66 & 73 \\ 63 & 58 & 71 & 122 & 154 & 106 & 70 & 69 \\ 67 & 61 & 68 & 104 & 126 & 88 & 68 & 70 \ \ 79 & 65 & 60 & 70 & 77 & 68 & 58 & 75 \\ 85 & 71 & 64 & 59 & 55 & 61 & 65 & 83 \\ 87 & 79 & 69 & 68 & 65 & 76 & 78 & 94 \ end {matrice}} \ dreapta].}\ Stânga [{\ begin {matrice} {} rrrrrrrr 52 & 55 & 61 & 66 & 70 & 61 & 64 & 73 \\ 63 & 59 & 55 & 90 & 109 & 85 & 69 & 72 \\ 62 & 59 & 68 & 113 & 144 & 104 & 66 & 73 \\ 63 & 58 & 71 & 122 & 154 & 106 & 70 & 69 \\ 67 & 61 & 68 & 104 & 126 & 88 & 68 & 70 \\ 79 & 65 & 60 & 70 & 77 & 68 & 58 & 75 \\ 85 & 71 & 64 & 59 & 55 & 61 & 65 & 83 \\ 87 & 79 & 69 & 68 & 65 & 76 & 78 & 94 \ end {matrice }} \ dreapta].

Înainte de a calcula DCT de 8 x 8 bloc, valorile sunt deplasate dintr – un set pozitiv asupra centrata la zero. picătură un 8 biți pentru fiecare element din blocul original în intervalul {\ Stilul de afișare [0255]}[0255] . Centrul intervalului (în acest caz, valoarea 128) se scade din fiecare element, o serie de date , care este centrată pe zero , pentru a produce, astfel încât intervalul modificat {\ Stilul de afișare [-128127]}[-128 127] . Această etapă reduce gama dinamica de motive etapa de prelucrare care DCT urmează. ( În afară de diferența în intervalul dinamic în cadrul fazei DCT, acest pas este matematic echivalent cu scăderea 1024 coeficientul DC , după executarea transformării – care este o modalitate mai bună de a fi operația pe anumite arhitecturi, deoarece include performanța a unei scăderi mai degrabă decât 64.)

Această etapă conduce la următoarele valori:

{\ Stilul de afișare g = {\ begin {matrice} {c} x \\\ plămân săgeată dreapta la stânga \\\ [{\ begin {matrice} {} rrrrrrrr -76 și -73 și -67 și -62 și -58 și -67 și -64 și -55 \ \ -65 și -69 și -73 și -38 și -19 și -43 și -59 și -56 \\ – 66 și -69 și -60 și -15 & 16 și -24 & -62 și -55 \\ – 65 și -70 și -57 și -6 & 26 & -22 și -58 și -59 \ \ -61 și -67 și -60 și -24 și -2 și – 40 și – 60 și -58 \\ – 49 & -63 și -68 și -58 și -51 și -60, -70 și -53 \\ – 43 & -57 și -64 și -69 și – 73 și -67 & – 63 & -45 \\ – 41 & -49 și -59 și -60 și -63 și -52 și -50 și -34 \ end {matrice}} \ dreapta] \ end {matrice}} {\ Bigg \ downarrow} y}.g = {\ begin {matrice} {c} x \\\ plămân săgeată dreapta la stânga \\\ [{\ begin {matrice} {} rrrrrrrr -76 și -73 și -67 și -62 și -58 și -67 și -64 și -55 \\ - 65 și -69 și -73 și -38 și -19 și -43 și -59 și -56 \\ - 66 și -69 și -60 și -15 & 16 & -24 și - 62 și -55 \\ - 65 și -70 și -57 și -6 & 26 & -22 și -58 și -59 \\ - 61 și -67 și -60 și -24 și -2 și -40 și -60 și - 58 \\ - 49 & -63 și -68 și -58 și -51 și -60 și -70 și -53 \\ - 43 & -57 și -64 și -69 și -73 și -67 și -63 și - 45 \\ - 41 & -49 și -59 și -60 și -63 și -52 și -50 și -34 \ end {matrice}} \ dreapta] \ end {matrice}} {\ Bigg \ downarrow} y .

Următorul pas este de două-dimensional DCT, care este dat prin luarea:

DCT transformă un 8 x 8 bloc de intrare valori o combinație liniară a acestor 64 de modele. Cartușele sunt denumite bidimensionale DCT funcțiile de bază , iar valorile de ieșire sunt denumite coeficienți de transformare . Index orizontal {\ Stilul de afișare u}TU și indexul vertical {\ Stilul de afișare v}v .

{\ Stilul de afișare \ G_ {u, v} = {\ frac {1} {4}} \ alfa (u) \ alfa (v) \ sum _ {x = 0} ^ {7} \ sum _ {y = 0} ^ {7} G_ {x, y} \ cos \ left [{\ frac {(2x + 1) pe care \ pi} {16}} \ dreapta] \ cos \ left [{\ frac {(2y + 1 ) v \ pi} {16}} \ dreapta]}\ G_ {u, v} = {\ frac {1} {4}} \ alfa (u) \ alfa (v) \ sum _ {x = 0} ^ {7} \ sum _ {y = 0} ^ { 7} G_ {x, y} \ cos \ left [{\ frac {(2x + 1) pe care \ pi} {16}} \ dreapta] \ cos \ left [{\ frac {(2y + 1) v \ pi {16}}} \ dreapta]

Adevărat

  • {\ Stilul de afișare \ u}\ u este frecvența spațială orizontală, numerele întregi {\ Stilul de afișare \ 0 \ Leq ai <8}\ 0 \ Leq tine <8 .
  • {\ Stilul de afișare \ v}\ v este frecvența spațială pe verticală, numerele întregi {\ Stilul de afișare \ 0 \ Leq v <8}\ 0 \ v Leq <8 .
  • {\ Stilul de afișare \ alpha (u) = {\ begin {cazuri} {\ frac {1} {\ sqrt {2}}} și {\ mbox {if}} u = 0 \\ 1 și {\ mbox {altfel }} \ end {cazuri}}}\ Alpha (u) = {\ begin {cazuri} {\ frac {1} {\ sqrt {2}}} și {\ mbox {if}} u = 0 \\ 1 și {\ mbox {altceva}} \ end {cazuri}} este un factor de scală de normalizare pentru a face ortonormală de transformare
  • {\ Afișează Stil \ G_ {x, y}}\ G_ {x, y} este valoarea pixelului la coordonatele {\ display Stil \ (x, y)}\ (X, Y)
  • {\ Afișaj Stil \ G_ {u, v}}\ G_ {u, v} este coeficientul DCT la coordonatele {\ display Stil \ (u, v).}\ (U, V).

În cazul în care vom efectua această transformare pe matricea noastra de mai sus, obținem următoarea (rotunjit la două zecimale):

{\ Stilul de afișare G = {\ begin {matrice} {c} te \\\ pulmonar săgeată dreapta la stânga \\\ [{\ begin {matrice} {} & rrrrrrrr -415.38 -30.19 și -61.20 și 27, 24 și 56,12 și -20.10 & – 02:39 și 00:46 & 04:47 \\ -21.86 și -60.76 & 10:25 & 13:15 și -7.09 și -8.54 și 4.88 \\ – 46.83 și 7.37 și 77.13 și -24.56 și -28.91 și 9,93 și 5,42 și -5.65 \\ – 12:07 & 48.53 & 34.10 și -14.76 și -10.24 & 6,30 și 1,83 și 1,95 \\ & 12:12 -6.55 și -13.20 și -3.95 și -1.87 și -2.79 și 1.75 și 3.14 \\ – 7 73 și 2,91 și 2,38 și -5.94 și -2.38 și 0,94 și 4,30 și 1,85 \\ – 1,03 și 0,18 și 0,42 și -2.42 și -0.88 și -3.02 și -0.66 \\ & 4.12-0.17 și 0,14 și -1.07 și -4.19 și -1.17 și -0.10 & 0,50 și 1,68 \ end {matrice}} \ dreapta] \ end {matrice}} {\ Bigg \ downarrow} v}.G = {\ begin {matrice} {c} te \\\ pulmonar săgeată dreapta la stânga \\\ [{\ begin {matrice} {} & rrrrrrrr -415.38 -30.19 și -61.20 și 27.24 și 56 12 și -20.10 și - 2.39 & 0. 46 \\ & 04:47 -21.86 și -60.76 & 10:25 & 13:15 și -7.09 și -8.54 și 4.88 \\ - 46,83 & 7.37 și 77.13 și -24.56 și -28.91 și 9,93 și 5,42 și -5.65 \\ - 48.53 & 12 & 07 & 34.10 -14.76 și -10 24 și 6,30 și 1,83 și 1,95 \\ & 12:12 -6.55 și -13.20 și -3.95 și -1.87 și -2.79 și 1,75 și 3.14 \ \ - 7,73 și 2,91 și 2,38 și -5.94 și -2.38 și 0,94 și 4,30 și 1,85 \\ - 1,03 și 0,18 și 0,42 și - 2,42 și -0.88 și -3.02 și -0.66 \\ & 4.12-0.17 și 0,14 și -1.07 și -4.19 și -1.17 -0 și 10 & 0 0,50 și 1,68 \ end {matrice}} \ dreapta] \ end {matrice}} {\ Bigg \ downarrow} v.

Notă intrarea de sus în colțul din stânga , cu dimensiunea relativ mare. Acesta este coeficientul DC (denumită componenta constantă), care definește culoarea de bază a întregului bloc. Cei 63 de coeficienți rămase, coeficienții AC (cunoscute și sub denumirea componentelor alternative). [21] Avantajul DCT este tendința pentru majoritatea semnalului agregat într – un colț al rezultatului, așa cum este arătat mai sus. Pasul de cuantizare în acest scop, în același timp , accentuează urmează a reduce dimensiunea totală a coeficienților DCT, ceea ce duce la semnalul de entropie care poate fi ușor comprima eficient fază.

DCT crește temporar adâncimea de biți a datelor, deoarece coeficienți DCT de 8 biți / componente pentru a fi de până la 11 biți sau mai mult (în funcție de fiabilitatea de calcul DCT), magazin. Acest codec poate forța numere de 16 biți temporar pentru a menține acești coeficienți, dublarea afișaj în acest moment; Aceste valori sunt de obicei reduse la valori de 8 biți care sunt pasul de cuantizare. Creșterea temporară mărime, în acest stadiu, nici o preocupare de performanță pentru cele mai multe implementări JPEG, dat fiind că, de obicei, doar o foarte mică parte a imaginii este stocată o formă complet DCT, în orice moment în timpul codificarea imaginii sau a procesului de decodare.

cuantizare

Ochiul uman este bun la a distinge mici diferente in luminozitate pe o suprafață relativ mare, dar nu la fel de bun la a distinge puterea precisă a unei variații de luminozitate de înaltă frecvență. Acest lucru face posibil pentru a reduce foarte mult cantitatea de informații în componentele de înaltă frecvență. Acest lucru se face prin simpla orice componentă în domeniul de frecvență împărțit printr-o constantă pentru acea componentă, și rotunjită la cel mai apropiat număr întreg. Această operațiune a rotunjire este singura operațiune de lossy în întregul proces (cu excepția eșantionării Chroma), în cazul în care calculul DCT se realizează cu o precizie suficient de mare. Ca urmare a acestui fapt este de obicei cazul în care multe dintre componentele de înaltă frecvență rotunjite la zero, iar o mare parte din restul devin numere pozitive sau negative mici, ceea ce reprezintă cu mult mai puțini biți pentru.

Elementele din matricea de cuantificare reglează raportul de compresie, produc valori mai mari de compresie mai mare. O matrice de cuantizare tipic (pentru o calitate de 50% ca în standardul original JPEG) este următoarea:

{\ Stilul de afișare Q = {\ begin {} bmatrix 16 & 11 & 10 & 16 & 24 & 40 & 51 & 61 \\ 12 & 12 & 14 & 19 & 26 & 58 & 60 & 55 \\ 14 & 13 & 16 & 24 & 40 & 57 & 69 & 56 \\ 14 & 17 & 22 & 29 & 51 & 87 & 80 & 62 \\ 18 & 22 & 37 & 56 & 68 & 109 & 103 & 77 \\ 24 & 35 & 55 & 64 & 81 & 104 & 113 & 92 \\ 49 & 64 & 78 & 87 & 103 & 121 & 120 & 101 \\ 72 & 92 & 95 & 98 & 112 & 100 & 103 & 99 \ end {} bmatrix}.}Q = {\ begin {} bmatrix 16 & 11 & 10 & 16 & 24 & 40 & 51 & 61 \\ 12 & 12 & 14 & 19 & 26 & 58 & 60 & 55 \\ 14 & 13 & 16 & 24 & 40 & 57 & 69 & 56 \\ 14 & 17 & 22 & 29 & 51 & 87 & 80 & 62 \\ 18 & 22 & 37 & 56 & 68 & 109 & 103 & 77 \\ 24 & 35 & 55 & 64 & 81 & 104 & 113 & 92 \\ 49 & 64 & 78 & 87 & 103 & 121 & 120 & 101 \\ 72 & 92 & 95 & 98 & 112 & 100 & 103 & 99 \ end {}} bmatrix.

Coeficienții DCT cuantificați se calculează cu

{\ Stilul de afișare B_ {j, k} = \ mathrm {de} \ left ({\ frac {G_ {j, k}} {Q_ {j, k}}} \ dreapta) {\ mbox {pentru}} j = 0,1,2, \ ldots, 7; k = 0,1,2, \ ldots, 7}B_ {j, k} = \ mathrm {de} \ left ({\ frac {G_ {j, k}} {{Q_ j, k}}} \ dreapta) {\ mbox {}} pentru j = 0,1 2, \ ldots, 7, k = 0,1,2, \ ldots, 7

în cazul în care {\ Stilul de afișare G}G coeficienții DCT cuantificați este; {\ Stilul de afișare Q}Q este cuantizarea de mai sus, și {\ Stilul de afișare B}B este cuantificați coeficienții DCT.

Utilizarea acestei matrice de cuantizare cu coeficient DCT matricea de mai sus rezultă în:

Stânga: imaginea finală este construit dintr-o serie de funcții de bază. Dreapta: fiecare DCT funcții de bază, care cuprind imaginea și coeficientul de greutate corespunzătoare. Orientul Mijlociu: funcțiile de bază, înmulțit cu coeficientul: această componentă se adaugă la claritatea beeld.Voor final, 8 × 8 macroblocului în acest exemplu amplificat 10X prin interpolare biliniară.
{\ Stilul de afișare B = \ stânga [{\ begin {matrice} {} rrrrrrrr -26 și -3 și -6 & 2 & 2 & -1 & 0 & 0 \\ 0 și -2 și -4 și 1 & 1 & 0 0 & & \\ 0 – 3 & 1 & 5 & -1 -1 0 0 & & \\ 0 – 3 și 1 & 2 & -1 0 0 & & & 0 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \ \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ end {matrice}} \ dreapta].}B = \ stânga [{\ begin {matrice} {} rrrrrrrr -26 și -3 și -6 & 2 & 2 & -1 & 0 & 0 \\ 0 și -2 și -4 și 1 & 1 & 0 & 0 & 0 \\ - 3 & 1 & 5 & -1 -1 0 0 & & \\ 0 - 3 și 1 & 2 & -1 0 0 & & & 0 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ end {matrice}} \ dreapta].

De exemplu, folosind -415 (coeficientul CC) și rotunjire la cel mai apropiat număr întreg

{\ Stilul de afișare \ mathrm {de} \ left ({\ frac {-415.37} {16}} \ dreapta) = \ mathrm {de} \ left (-25.96 \ dreapta) = -. 26}\ Mathrm {de} \ left ({\ frac {-415.37} {16}} \ dreapta) = \ mathrm {de} \ left (-25.96 \ dreapta) = - 26.

Rețineți că majoritatea elementelor de frecvență mai mare de sub-bloc (de exemplu, printr – un x sau y frecvență spațială mai mare de 4) este comprimat la valori de zero.

entropie

Articol principal: Codificare entropiei

ordonare zigzag Piese JPEG

Entropia este o formă specială de compresie fără pierderi a datelor. Este vorba de controlarea componentelor imaginii într-o “zig-zag” Pentru a activa utilizarea run-lungime de codificare algoritm (RLE), că grupurile de frecvențe similare între ele, codificarea de lungime inserarea de zero-uri, și apoi folosind Huffman de codificare pe ceea ce rămâne .

Standardul JPEG, de asemenea, face posibilă, dar nu este necesar, decodoare, în scopul de a sprijini utilizarea de codificare aritmetică, care matematic superioară Huffman de codificare. Cu toate acestea, rareori utilizați această caracteristică, pentru că a fost punct de vedere istoric brevete necesită licențe de drepturi de autor purtătoare, și pentru că mai lent pentru a codifica și decodifica în comparație cu codificarea Huffman. codificare aritmetică face în mod tipic fișiere aproximativ 5-7% mai mici.

Precedent Coeficientul DC cuantificată este utilizat pentru a prezice coeficientul curent continuu cuantificată. Diferența este codat între cele două decât valoarea reală. Codificarea 63 de coeficienți AC cuantificați nu utilizează o astfel de predicție diferențiere.

Secvența zig-zag pentru coeficienții cuantificați de mai sus sunt prezentate mai jos. (Formatul prezentat este numai pentru ușurința înțelegerii / vizualizare.)

-26
-3 0
-3 -2 -6
2 -4 1 -3
1 1 5 1 2
-1 1 -1 2 0 0
0 0 0 -1 -1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0
0 0 0 0
0 0 0
0 0
0

În cazul în care i blocul -ORAȘUL este reprezentat de {\ Stilul de afișare B_ {i}}bi} , iar pozițiile sunt reprezentate în cadrul fiecărui bloc de {\ Stilul de afișare (p, q)}(P, q) , unde {\ p = Stilul de afișare 0,1, .. ., 7}p = 0,1, ..., 7 și {\ Afișaj Stil q = 0,1, …, 7}q = 0,1, ..., 7 , apoi, fiecare coeficient al DCT este imaginea poate fi reprezentat ca {\ display Style B_ {i} (p, q)}B_ {i} (p, q) . Deci , în diagrama de mai sus, ordinea de pixeli care codifică ( denumite i blocul -ORAȘUL) este {\ Stilul de afișare B_ {i} (0,0)}B_ {i} (0,0) , {\ Stilul de afișare B_ {i} (0,1)}B_ {i} (0,1) , { \ Stilul de afișare B_ {i} (1,0)}B_ {i} (1,0) , {\ Stilul de afișare B_ {i} (2,0)}B_ {i} (2.0) , {\ Stilul de afișare B_ {i} (1,1)}B_ {i} (1,1) , {\ Stilul de afișare B_ { i} (0,2)}B_ {i} (0,2) , {\ Stilul de afișare B_ i} {(0,3)}B_ {i} (0,3) , {\ Stilul de afișare B_ i} {(1,2)}B_ {i} (1,2) și așa mai departe.

Secvențiale de bază a proceselor de codificare și decodificare JPEG

Acest mod de codificare este linia de bază secvențială de codificare. JPEG de bază suportă de asemenea progresiv de codificare. In timp ce codul secvențial codifică coeficienții de un bloc la un moment dat (în zig – zag), codificarea progresivă codifică coeficienți egale discontinuă tuturor aflate ın blocuri într – o singură (o scanare ), urmat de următorul set de coeficienți ai tuturor blocurilor, enzovoort.Bijvoorbeeld , în cazul în care imaginea este împărțită în N 8 x 8 blocuri {\ Stilul de afișare B_ {0}, {1} B-, B- {2}, …, {n-B_ 1}}{\ Stilul de afișare B_ {0}, {1} B-, B- {2}, ..., {n-B_ 1}} , apoi oa treia scanare progresivă codificare care codifică componenta DC {\ afișare stil B_ i} {(0,0)}B_ {i} (0,0) pentru toate blocurile, adică, pentru toate {\ afișare stil i = 0,1,2, …, N-1 }i = 0,1,2, ..., N-1 , în prima scanare. Aceasta este urmată de a doua scanare de codificare cu o pereche de componente (presupunând că patru componente au {\ display Style B_ i} {(0,1)}B_ {i} (0,1) pentru {\ display Stil B_ i} {(1,1)}B_ {i} (1,1) , încă un mod de zig-zag) , coeficienții tuturor blocurilor ( de exemplu, ordinea este: {\ Stilul de afișare B_ {0} (0,1), B_ {0} (1,0) B- {0} (2.0) B- {0} ( 1,1), B_ {1} (0, 1), B_ 1} {(1,0), …, N} B_ {(2,0), B_ N} {(1,1)}{\ Afișaj Stil B_ {0} (0,1), B_ {0} (1,0) B {0} (2,0) B {0} (1.1), B_ {1} (0, 1), B_ 1} { (1,0), ..., N} B_ {(2,0), B_ N} {(1,1)} ) , urmat toți coeficienții de toate blocurile au rămas în ultima scanare.

Trebuie remarcat faptul că de îndată ce toți coeficienții sunt codificate similare aflate ın , iar apoi codifica poziția următoare se află lângă traversarea zigzag așa cum se arată în figura de mai sus. S-a constatat că valoarea de ieșire progresivă codarea JPEG oferă adesea o compresie mai bună în comparație cu valoarea inițială secvențială JPEG , din cauza posibilității de tabele diferite Huffman ( a se vedea mai jos) reglate la frecvențe diferite pe fiecare “scanare” sau “pass” (care este format similare situat coeficienți), dar diferenta nu este prea mare.

In restul articolului, se presupune că modelul coeficientul este generat de modul secvențial.

Pentru a codifica modelul menționat mai sus coeficientul generat, JPEG utilizează codare Huffman. Standardul JPEG oferă scop general tabele Huffman; codificatoare pot alege, de asemenea, tabele Huffman optimizate pentru distribuțiilor de frecvență reale în imagini sunt codificate pentru a genera.

Procesul de codificare a datelor cuantificată în zig-zag, începe cu o codificare a lungimii de execuție de mai jos, în care a explicat:

  • x este coeficientul AC cuantizat nenul.
  • Lungimea buclă numărul de zerouri , care a ajuns la acești coeficienți non-zero , AC.
  • SIZE este numărul de biți necesari pentru a reprezenta x .
  • AMPLITUDINEA este bitul de reprezentare a x .

Codarea a lungimii de execuție de lucrări prin examinarea fiecărui non-zero , AC coeficient x , și determinarea modului în care au venit in mai multe zerouri înainte de ultimul coeficient de curent alternativ. Cu aceste informații, sunt create două simboluri:

simbolul 1 simbolul 2
(Durata Buclă, SIZE) (AMPLITUDINE)

Atât runlength și MĂRIMEA se sprijină pe același octet, ceea ce înseamnă că fiecare conține doar patru bucăți de informații. Biții mai mari de manipulare a numărului de zerouri, în timp ce biții inferiori reprezintă numărul de biți necesari pentru a codifica valoarea x .

Ca o implicare directă a simbolului 1 sunt capabile să stocheze informații cu privire la primele 15 zerouri precedente coeficientului AC non-zero , numai. Cu toate acestea, JPEG definește două cuvinte speciale de cod Huffman. Una dintre ele este pentru terminarea seriei prematur , atunci când coeficienții rămași la zero (așa-numitul “End-of-Block” sau “EPO”), iar celălalt atunci când rula de zerouri depășește 15 , în scopul de a realiza un non Coeficientul de zero AC. În acest caz, 16 zerouri întâlnite înainte de o anumită bază non-zero , AC coeficient de simbol 1 este “specială” codificat ca: (15, 0) (0).

Procedeul global continuă până când “EPO” – este atins – marcate cu (0, 0).

În acest scop, secvența este de la anterioară este:

(0, 2) (- 3); (1, 2) (- 3); (0, 2) (- 2); (0, 3) (- 6); (0, 2) (2); (0, 3) (- 4); (0, 1) (1); (0, 2) (- 3); (0, 1) (1);
(0, 1) (1); (0, 3) (5); (0, 1) (1); (0, 2) (2); (0, 1) (- 1); (0, 1) (1); (0, 1) (- 1); (0, 2) (2); (5, 1) (- 1);
(0, 1) (- 1); (0, 0).

(Prima valoare în matrice, -26, este coeficientul DC, nu este codat în același mod, vezi mai sus.).

De aici a făcut calcule de frecvență bazate pe evenimente ale coeficienților. In exemplul nostru, bloca majoritatea dintre coeficienții cuantificați cantități mici, care nu sunt imediat precedate de un coeficient de zero. Aceste cazuri mai frecvente, acesta va fi reprezentat de un cuvinte cod mai scurt.

Raportul de compresie și artefacte

Această imagine afișează pixelii care diferă între o imagine de bază non-comprimat și aceeași calitate a imaginii JPEG comprimat cu o setare de 50. Darker înseamnă o diferență mai mare este. Să acorde o atenție deosebită la schimbările care au loc în apropierea muchiilor ascuțite și cu o formă de bloc.

Imaginea originală

Comprimat de 8 × 8 pătrate sunt vizibile în fotografie scară în sus, împreună cu alte artefacte vizuale ale compresie lossy

Raportul de compresie rezultată poate fi variată în funcție de necesități de utilizat mai mult sau mai puțin agresive în separatoare în faza de cuantizare. Zece la unu compresie de obicei ca rezultat o imagine care nu pot fi distinse cu ochiul liber al originalului. Un raport de compresie de 100: 1 este, de obicei, este posibil, dar nu vor fi evidente artifacted în comparație cu originalul. Nivelul adecvat de compresie depinde de utilizarea la care este adus imaginea.

IMAGE EXTERN
Ilustrarea jantei exprimat [22]

Cei care folosesc World Wide Web poate fi familiarizat cu neregulile cunoscute sub numele de artefacte sale de compresie care apar în imagini JPEG sub formă de zgomot în jurul marginilor de contrast ( în special curbele și unghiurile), sau “unghiular” pot face fotografii. Acest lucru este cauzat de pasul de cuantizare a algoritmului JPEG. Ele sunt în special vizibile în jurul valorii de colțuri ascuțite între culori contrastante (text este un exemplu bun, deoarece conține multe astfel de colțuri). Artefactele analogice din video MPEG sunt denumite zgomot de țânțar, deoarece rezultatul “graba de margine” și puncte tulburătoare care se schimbă de timp, cum ar fi roiuri de țânțari în jurul obiectului. [22] [23]

Aceste piese pot fi reduse prin alegerea unei presiuni mai mici; ele pot fi evitate în totalitate prin stocarea unei imagini prin intermediul unui format fără pierderi, dar acest lucru va avea ca rezultat un fișier mai mare. Imaginile sunt create cu ajutorul unor programe de însoțiri ray forme izbitor unghiulare de pe teren. Anumite artefacte de compresie de joasă intensitate poate fi acceptabilă în cazul în care numai vizualizarea imaginilor, dar poate fi subliniat atunci când imaginea este apoi prelucrat, de obicei, până la o calitate inacceptabilă. Să considerăm exemplul de mai jos, care arată efectul de compresie asupra unei etape de procesare detectare a marginilor.

Imagine compresie fără pierderi compresie lossy
original circle.png lossless circle.jpg lossy
Prelucrate prin
detector de margine Canny
Lossless-cerc-canny.png Lossy-cerc-canny.png

Unele software-ul permite utilizatorului la suma cu care blocurile individuale sunt comprimate variază. compresie mai puternică este aplicată în unele zone ale imaginii, care arată mai puține artefacte. În acest fel, este posibil să se reducă fișier JPEG manuală cu pierderi mai mici de calitate.

Având în vedere că etapa de cuantificare întotdeauna are ca rezultat o pierdere de informații, JPEG standard întotdeauna un codec de compresie lossy. (Informațiile au pierdut ambele cuantizare și frământarea numerelor în virgulă mobilă). Chiar dacă matricea de cuantificare este o matrice de cele, informația este încă pierdut în etapa de rotunjire.

decodare

Decripta imaginea din toate cele de mai sus inversat.

Cu matrice de coeficienți DCT (după adăugarea diferenței coeficientului DC spate)

{\ Stilul de afișare \ stânga [{\ begin {matrice} {} rrrrrrrr -26 și -3 și -6 & 2 & 2 & -1 & 0 & 0 \\ 0 și -2 și -4 și 1 & 1 & 0 & 0 & 0 \\ – 3 & 1 & 5 & -1 -1 0 0 & & \\ 0 – 3 și 1 & 2 & -1 0 0 & & & 0 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & end 0 & 0 & 0 & 0 & 0 & 0 \ {matrice}} \ dreapta]}\ Stânga [{\ begin {matrice} {} rrrrrrrr -26 și -3 și -6 & 2 & 2 & -1 & 0 & 0 \\ 0 și -2 și -4 și 1 & 1 & 0 & 0 & 0 \\ - 3 & 1 & 5 & -1 -1 0 0 & & \\ 0 - 3 și 1 & 2 & -1 & 0 & 0 0 & & \\ 0 1 0 & & & & 0 0 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & end 0 & 0 & 0 & 0 \ {matrice}} \ dreapta]

precum și luarea produsului de intrare-cu-intrare cu matricea de cuantificare a rezultatelor de mai sus, în

{\ Stilul de afișare \ stânga [{\ begin {matrice} {} rrrrrrrr -416 și -33 și -60 & 32 & 48 & -40 & 0 & 0 \\ 0 și -24 și -56 & 19 & 26 & 0 & 0 & 0 \\ – 42 & 13 & 80 & -24 și -40 & 0 & 0 & 0 \\ – 42 & 17 & 44 & -29 & 0 & 0 & 0 & 0 \\ 18 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & end 0 & 0 & 0 & 0 & 0 & 0 \ {matrice}} \ dreapta]}\ Stânga [{\ begin {matrice} {} rrrrrrrr -416 și -33 și -60 & 32 & 48 & -40 & 0 & 0 \\ 0 și -24 și -56 & 19 & 26 & 0 & 0 & 0 \\ - 42 & 13 & 80 & -24 și -40 & 0 & 0 & 0 \\ - 42 & 17 & 44 & -29 & 0 & 0 & 0 & 0 \\ 18 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & end 0 & 0 & 0 & 0 \ {matrice}} \ dreapta]

care este foarte similar cu originalul DCT matricea coeficient pentru partea superioară stânga.

Următorul pas este de două-dimensional inversă DCT (2D DCT tip III), care este dată prin luarea:

{\ Stilul de afișare F_ {x, y} = {\ frac {1} {4}} \ sum _ {u = 0} ^ {7} \ sum _ {v = 0} ^ {7} \ alfa (u) \ alpha (v) F_ {u, v} \ cos \ left [{\ frac {(2x + 1) pe care \ pi} {16}} \ dreapta] \ cos \ left [{\ frac {(2y + 1) v \ pi} {16}} \ dreapta]}F_ {x, y} = {\ frac {1} {4}} \ sum _ {u = 0} ^ {7} \ sum _ {v = 0} ^ {7} \ alfa (u) \ alfa (v ) F_ {u, v} \ cos \ left [{\ frac {(2x + 1) pe care \ pi} {16}} \ dreapta] \ cos \ left [{\ frac {(2y + 1) v \ pi} {16}} \ dreapta]

Adevărat

  • {\ Stilul de afișare \ x}\ X este rândul pixeli, numere întregi {\ Stilul de afișare \ 0 \ Leq x <8}\ 0 \ Leq x <8 .
  • {\ Stilul de afișare \ y}\ y este coloana pixeli de numere întregi {\ Stilul de afișare \ 0 \ Leq y <8}\ 0 \ Leq y <8 .
  • {\ Stilul de afișare \ \ alpha (h)}\ \ Alpha (u) așa cum este definit mai sus, pentru numerele întregi {\ Stilul de afișare \ 0 \ Leq ai <8}\ 0 \ Leq tine <8 .
  • {\ Afișaj Stil \ F_ {u, v}}\ F_ {u, v} este coeficientul aproximativ reconstruit la coordonatele {\ display Stil \ (u, v).}\ (U, V).
  • {\ Display Stil \ F_ {x, y}}\ F_ {x, y} este valoarea pixelului reconstruit la coordonatele {\ display Stil \ (x, y)}\ (X, Y)

Finalizarea ieșire la valori întregi (deoarece originalul a avut valori întregi) rezultă într-o imagine cu valori (în continuare mutat în jos de 128)

Observați ușoara diferențele dintre original (de sus) și imaginea decomprimat (de mai jos), care poate fi văzut cel mai ușor în colțul din stânga jos.
{\ Stilul de afișare \ stânga [{\ begin {matrice} {} rrrrrrrr -66 și -63 și -71 și -68 și -56 și -65 și -68 și -46 \\ – 71 și -73 și -72 și – 46 și -20 ° C și -41 și -66 și -57 \ \ -70 și -78 ° C și -68 și -17 & 20 & -14 și -61 și -63 \\ – 63 și -73 și -62 și – 8 & 27 & -14 și -60 și -58 \\ – 58 & -65 și -61 și -27 și -6 și -40 și -68 și -50 \ \ -57 și -57 și -64 și -58 și -48 și -66 și -72 și -47 \\ – 53 și -46 și -61 și -74 și -65 și -63 și -62 și -45 \\ – 47 & -34 și -53 și -74 și -60 și -47 și – 47 & -41 \ end {matrice}} \ dreapta]}\ Stânga [{\ begin {matrice} {} rrrrrrrr -66 și -63 și -71 și -68 și -56 și -65 și -68 și -46 \\ - 71 și -73 și -72 și -46 și - 20 și -41 și -66 și -57 \\ - 70 și -78 ° C și -68 și -17 & 20 & -14 și -61 și -63 \\ - 63 și -73 și -62 și -8 & 27 & -14 și -60 și -58 \\ - 58 & -65 și -61 și -27 și -6 și -40 și -68 și -50 \\ - 57 și -57 și -64 și -58 și -48 și -66 și -72 și -47 \\ - 53 și -46 și -61 și -74 și -65 și -63 și -62 și -45 \\ - 47 & -34 și -53 și -74 și -60 și -47 și -47 și -41 \ end {matrice}} \ dreapta]

și adăugarea de 128 pentru fiecare element

{\ Stilul de afișare \ stânga [{\ begin {matrice} {} rrrrrrrr 62 & 65 & 57 & 60 & 72 & 63 & 60 & 82 \\ 57 & 55 & 56 & 82 & 108 & 87 & 62 & 71 \\ 58 & 50 & 60 & 111 & 148 & 114 & 67 & 65 \\ 65 & 55 & 66 & 120 & 155 & 114 & 68 & 70 \\ 70 & 63 & 67 & 101 & 122 & 88 & 60 & 78 \ \ 71 & 71 & 64 & 70 & 80 & 62 & 56 & 81 \\ 75 & 82 & 67 & 54 & 63 & 65 & 66 & 83 \\ 81 & 94 & 75 & 54 & 68 & 81 & 81 & 87 \ end {matrice}} \ dreapta].}\ Stânga [{\ begin {matrice} {} rrrrrrrr 62 & 65 & 57 & 60 & 72 & 63 & 60 & 82 \\ 57 & 55 & 56 & 82 & 108 & 87 & 62 & 71 \\ 58 & 50 & 60 & 111 & 148 & 114 & 67 & 65 \\ 65 & 55 & 66 & 120 & 155 & 114 & 68 & 70 \\ 70 & 63 & 67 & 101 & 122 & 88 & 60 & 78 \\ 71 & 71 & 64 & 70 & 80 & 62 & 56 & 81 \\ 75 & 82 & 67 & 54 & 63 & 65 & 66 & 83 \\ 81 & 94 & 75 & 54 & 68 & 81 & 81 & 87 \ end {matrice }} \ dreapta].

Acesta este extras sub – imagine. În general, se poate furniza valorile procesului de decompresie în afara originalului gama de tensiune de intrare de {\ Stilul de afișare [0255]}[0255] . În cazul în care se întâmplă acest lucru, decodorul trebuie să fie tăiate pentru a menține valorile de ieșire acestea sunt în acest interval, pentru a preveni preaplin atunci când stocarea imaginii decomprimat cu adâncimea de biți originală.

Decomprimat poate fi sub-imagine comparat cu originalul sub-imagine (a se vedea figurile la dreapta), prin diferența (original – necomprimate), rezultate în următoarele valori de eroare:

{\ Stilul de afișare \ stânga [{\ begin {matrice} {} rrrrrrrr -10 și -10 & 4 & 6 & -2 și -2 și -9 \\ 4 & 6 & 4 & 8 & -1 & 1 și – 2 & 7 & 1 \\ 4 9 & 8 & 2 și -4 și -10 și -1 și 8 \\ – 2 & 3 și 5 & 2 & -1 -8 & 2 & – \\ 1 – 3 și -2 & 1 & 3 & 4 & 0 & 8 & 8 -8 \\ & -6 și -4 și -3 -0 & 6 & & 2 & \\ -6 și 10 -11 și -3 și 5 – 8 & -4 și -1 -0 \\ 6 și -15 și -6 & 14 & -3 și -5 și -3 și 7 \ end {matrice}} \ dreapta]}\ Stânga [{\ begin {matrice} {} rrrrrrrr -10 și -10 & 4 & 6 & -2 și -2 și -9 \\ 4 & 6 & 4 & 8 & -1 & 1 și 2 & 7 & 1 \\ 4 9 & 8 & 2 și -4 și -10 și -1 și 8 \\ - 2 & 3 și 5 & 2 & -1 -8 & 2 & \\ -1 și -2 și -3 1 & 3 & 4 & 8 & 0 \\ & -8 8 -4 -6 & & & & -0 -3 6 & 2 & \\ -6 și 10 -11 și -3 5 & 8 & - -1 & 4 & 6 & \\ -0 -15 -6 & 14 & -3 și -5 și -3 și 7 \ end {array}} \ dreapta]

cu o eroare absolută medie de aproximativ 5 valori pe pixeli ( de exemplu, {\ Stilul de afișare {\ frac {1} {64}} \ sum _ {x = 0} ^ {7} \ sum _ {y = 0} ^ { 7} | e (x, y) |} = 4.8750{\ Stilul de afișare {\ frac {1} {64}} \ sum _ {x = 0} ^ {7} \ sum _ {y = 0} ^ {7} |  e (x, y) |  = 4.8750} ).

Eroarea este cel mai vizibil în colțul din stânga jos, unde pixelul din stânga jos devine mai întunecat decât pixelii din dreapta imediată a acesteia.

precizia necesară

Descriere codarea în standardul JPEG este precizia care este necesară pentru producția nu repara imaginea comprimată. Standardul JPEG (MPEG și standarde similare) include o serie de cerințe de precizie pentru codificarea, inclusiv toate porțiunile procesului de decodare (decodificare de lungime variabilă, invers DCT, dequantization, ieșirile renormalizare); ieșirea algoritmului de referință nu trebuie să depășească:

  • maximum o diferență unică pentru fiecare componentă pixel
  • scăzut de eroare medie pătrat pentru fiecare bloc de 8 × 8 pixeli
  • eroarea medie foarte scăzută pe fiecare bloc de 8 × 8 pixeli
  • foarte scăzut de eroare medie pătrat peste întreaga imagine
  • eroarea medie extrem de reduse pe întreaga imagine

Aceste cereri sunt testate pe un număr mare de imagini de intrare randomizate, pentru a face față cu cele mai rele cazuri. fostul standardului IEEE 1180-1990 conținea un număr de cerințe de precizie similare. Precizia are implicații pentru punerea în aplicare a decodoarelor, și este esențial, deoarece unele procese de codare (utilizate în special pentru codificarea secvențelor de imagini ca MPEG) ar trebui să poată să construiască o referință decodificate imagine la partea codificator. Fiecare 8 biți per pixel precizie-component de ieșire, dequantization și inverse transformări de sprijin sunt în mod tipic DCT efectuate cu cel puțin 14 biți de precizie în decodoarelor optimizate.

Efectele de compresie JPEG

artefacte de compresie JPEG se amesteca bine în fotografii cu texturi detaliate neuniforme, care permite rate de compresie mai mari. Observați modul în care un raport de compresie mai mare afectează în primul rând texturi de înaltă frecvență, în colțul din stânga al imaginii, și modul în care liniile contrastante devin neclare. Raportul de foarte mare de compresie afectează în mod serios calitatea imaginii, deși culoarea și imaginea formei de ansamblu încă ușor de recunoscut. Precizia culorilor mai puțin sarcinii (pentru un ochi uman), atunci precizia contururilor (în funcție de luminanță). Acest lucru justifică faptul că imaginile trebuie să fie transformată mai întâi într-un model de culoare la luminanța informațiilor cromatice separă înainte de prelevare a suprafețelor cromatice (care poate funcționa, de asemenea, la o cuantizare de calitate inferioară) pentru a menține precizia planului luminanță cu mai multe informații biți.

imagini mostră

Pentru mai multe informații, ar RGB necomprimate bitmap de mai jos (73 242 pixeli) 219 726 bytes (excluzând toate celelalte antetele de informații) necesare pentru imaginea de 24 de biți. Dimensiunile fișierelor enumerate mai jos , inclusiv antetul interne de informații JPEG și unele meta-date. Pentru cele mai înalte imagini de calitate (Q = 100) necesită aproximativ 8,25 biți per pixel de culoare. Pe imagini în tonuri de gri, un minim de 6,5 biți per pixel este suficient (o structură similară Q = 100 de informații de calitate culoare are nevoie de aproximativ 25% biți mai mult codificate). Cea mai înaltă calitate a imaginii de mai jos (Q = 100) este codificată de nouă biți per pixel de culoare, imaginea de calitate medie (Q = 25) utilizează un singur bit per pixel culoare. Pentru majoritatea aplicațiilor, factorul de calitate nu ar trebui să meargă mai mici decât 0,75 biți per pixel (Q = 12,5), așa cum se poate vedea imaginea de calitate scăzută pe. Imaginea de pe cea mai slaba calitate utilizate doar 0,13 bit per pixel, și oferă o color.This foarte slabă este utilă atunci când imaginea va fi afișată într – o dimensiune redusă în mod semnificativ. O metodă de obținere a matricelor mai bune cuantizare pentru o calitate a imaginii oferite prin intermediul PSNR în loc de Q-factor este descris în Minguillon & Pujol (2001). [24]

NOTA: imaginile de mai sus NU SUNT IEEE / CCIR / EBU  IMAGINI DE TESTARE ȘI SETĂRILE CODOARE NU SUNT SAU ESTE SPECIFICAT Indisponibila.
Imagine Calitate Dimensiune (bytes) rata compresiei comentariu
De exemplu, JPG JPEG RIP 100.jpg Cea mai înaltă calitate (Q = 100) 83261 2.6: 1 artefacte extrem de mici
De exemplu, JPG JPEG RIP 050.jpg De înaltă calitate (Q = 50) 15138 15: 1 Primele semne de artefacte sub-imagine
De exemplu, JPG JPEG RIP 025.jpg calitate medie (Q = 25) 9553 23: 1 artefacte mai puternice; Pierderea de frecvențe înalte,
De exemplu, JPG JPEG RIP 010.jpg Calitate scăzută (Q = 10) 4787 46: 1 Pierderea de înaltă frecvență severă; artefacte limite sub-imagine ( “macro-blocare”) sunt evidente
De exemplu, JPG JPEG RIP 001.jpg Cea mai slabă calitate (Q = 1) 1523 144: 1 Pierderea extremă de culoare și de detaliu; Frunzele sunt aproape de nerecunoscut

Medie de calitate foto utilizează doar 4,3% din spațiul de stocare necesar pentru imaginea necomprimat, dar are puține pierderi notabile de detaliu sau artefacten.Echter vizuale, odată ce un anumit prag de compresie este trecut, imaginile comprimate prezintă defecte vizibile din ce în ce. A se vedea articolul pe teoria vitezei de distorsiune pentru o explicație matematică a acestui efect de prag. O limitare specifică a JPEG pentru acest lucru este non-suprapunere 8 x 8 bloc transforma structura. Mai multe modele moderne, cum ar fi JPEG 2000 enJPEG XR prezintă o degradare a calității ca scade consumul de biți – cu ajutorul transformărilor cu o extindere spațială mare a coeficienților de frecvență joasă și prin utilizarea de suprapunere transforma funcții de bază.

 

compresie fără pierderi în continuare

A apărut din 2004-2008 noi cercetari cu privire la modalitățile de a comprima în continuare datele în imagini JPEG fără a modifica imaginea reprezentată. [25] [26] [27] [28] Acest lucru are aplicații în scenarii în care imaginea originală este disponibilă numai în format JPEG și dimensiunea trebuie să fie reduse pentru arhivare sau verzending.Standard instrumente de compresie de uz general , nu se poate comprima semnificativ fișiere JPEG.

De obicei, astfel de aranjamente să profite de îmbunătățiri în schema de naiv pentru codificarea coeficienților DCT, care nu iau în considerare:

  • Corelațiile dintre magnitudini de coeficienți adiacente în același bloc;
  • Corelațiile dintre variabilele din același coeficient de blocuri adiacente;
  • Corelațiile dintre variabile de același coeficient / bloc în diferite canale;
  • DC-coeficienții atunci când sunt luați împreună seamănă cu o versiune a imaginii reducerea dimensiunilor originale înmulțită cu un factor de scală. Sisteme cunoscute pentru codificarea lossless a imaginilor cu tonuri continue sunt aplicate pentru a realiza compresie ceva mai bun decât Huffman codat DPCM utilizează JPEG.

Unele standard de opțiuni rar utilizate sunt deja în format JPEG pentru a îmbunătăți eficiența codării coeficienților DCT codificare opțiunea aritmetică și Codeermogelijkheid progresivă (cu rate de transfer mai mici produce deoarece valorile codificate independent pentru fiecare coeficient și fiecare coeficient de distribuție semnificativ diferite). Metode moderne îmbunătățite acestor tehnici prin coeficienții coeficienți de ordine de grup de dimensiuni mai mari reciproc, [25] , utilizând coeficienți învecinate și blocuri de noile valori ale coeficientului de a prezice [27] blocuri diviza sau coeficienți între un număr mic de modele codificate în mod independent , bazat pe statisticile lor și valori adiacente; [26] [27] . și , recent , prin decodificarea blocuri prezice următoarele blocuri în domeniul spațial și care codifică aceste predicții pentru a genera coeficienți DCT [28]

De obicei, astfel de metode pot comprima fișiere JPEG existente între 15 și 25 la sută, cât și JPEG comprimat la setări de calitate scăzută, poate produce o îmbunătățire de până la 65%. [27] [28]

Un instrument disponibil gratuit numit packJPG [29] se bazează pe hârtie 2007 “Reducerea Concediere îmbunătățită pentru fișierele JPEG.”

Formate derivate pentru 3D stereoscopic

JPEG stereoscopic

Un exemplu de fișier .jps stereoscopic

JPS este o imagine stereoscopică JPEG utilizată pentru a crea efecte 3D din imagini 2D. Acesta conține două imagini statice, una pentru ochiul stâng și una pentru ochiul drept; codificate ca două imagini adiacente într – un fișier JPG. Stereoscopică JPEG (JPS, .jps de expansiune) este un format bazat pe JPEG pentru imagini stereoscopice. [30] [31] Ea are o serie de configurații care sunt stocate în câmpul tag – ul JPEG Aplicația 3, dar , de obicei , conține o imagine cu lățime dublă care două imagini de dimensiuni identice în strabism ( de exemplu , cadrul din stânga pe jumătatea dreaptă a imaginii și vice – versa) side-by-side format de fișier formation.This poate fi văzut ca un JPEG fără un software special, sau pot fi prelucrate pentru afișare în alte moduri.

JPEG Multi-Format imagine

JPEG Format Multi-Picture (MPO, extensia .mpo) este un format bazat-JPEG pentru mai multe imagini de vizualizare. Ea include combinarea a două sau mai multe fișiere JPEG unele cu altele. [32] [33] Există, de asemenea , domenii speciale care descriu EXIF scopul său. Acest lucru este utilizat de camera foto Fujifilm FinePix Real 3D W1, Panasonic Lumix DMC-TZ20, DMC-TZ30, DMC-TZ60 și DMC-TS4 (FT4), Sony DSC-HX7V, HTC Evo 3D, AVCHD JVC GY-HMZ1U / MVC camera video de expansiune și camera 3D Nintendo 3DS. In ultimii ani, din cauza utilizării tot mai mare de imagini stereoscopice, mult efort a fost cheltuit de către comunitatea științifică pentru a dezvolta algoritmi de compresie a imaginii stereoscopice. [34] [35]

chestiuni legate de patente

In anul 2002, Forgent Networks a afirmat că proprietatea și va pune în aplicare drepturi de brevet cu privire la tehnologia JPEG, care rezultă dintr-un brevet depusă la 27 octombrie 1986 și a fost acordat la 06 octombrie 1987 (US Patent 4698672). Anunțul a creat o furie care amintește de tentative de Unisys a-și proteja drepturile sale asupra standardului de compresie TOXICOLOGICĂsau-imagine.

Comisia JPEG a investigat cererea de brevet în 2002 și a simțit că au fost invalidate de stadiul cunoscut al tehnicii. [36] Alții au ajuns la concluzia , de asemenea , că Forgent brevet care JPEG a acoperit. [37] Cu toate acestea, între 2002 și 2004 , Forgent a fost în măsură să în jurul valorii de $ SUA 105 milioane de câștig prin licențiere brevet lor aproximativ 30 de companii. In aprilie 2004, Forgent a dat in judecata 31 de alte companii pentru a pune în aplicare plăți ulterioare de licență. În luna iulie a aceluiași an, un consorțiu de 21 de companii mari de calculatoare a depus un contraproces, cu scopul de a invalida brevetul. În plus, Microsoft a lansat un proces împotriva Forgent în aprilie 2005. [38] În februarie 2006, Brevete și Mărci Statele Unite ale Americii Oficiul a fost de acord să re-examineze Forgent de brevet JPEG la cererea Fundației de Brevete Publice. [39] La mai 26, 2006, USPTO a găsit vidul de brevet de inventie , pe baza stadiului tehnicii. USPTO , de asemenea , a constatat că Forgent știa despre stadiul actual al tehnicii, și nu spun Oficiul de Brevete, făcând apel la brevet de inventie pentru a recupera foarte puține șanse de succes. [40]

Forgent posedă , de asemenea , un brevet similară acordat de către Oficiul European de Brevete în 1994, dar nu este clar modul în care executorii. [41]

Din 27 octombrie 2006 termen de 20 de ani , apare SUA de brevet să fi expirat, iar în noiembrie 2006, Forgent a fost de acord să lase executarea creanțelor față de brevete folosind standardul JPEG. [42]

Comisia JPEG are ca unul dintre obiectivele sale explicite că standardele lor (în special, metodele lor de bază) implementabile fără plata taxelor de licență și au drepturi de licență corespunzătoare pentru standardul JPEG 2000 securizat de la peste 20 de organizații mari.

Început în august 2007, o alta companie, Global Holdings brevet de invenție, LLC a susținut că brevetul său (US Patent 5253341), publicat în 1993, este încălcat prin descărcarea de imagini JPEG fie pe un site sau prin e – mail. În cazul în care nu nul, acest brevet se aplică oricărui site care afișează imagini JPEG. Brevetul de invenție a apărut [ clarificare necesară ] în iulie 2007 , după șapte ani de reexaminare de către US Patent and Trademark Office, care a fost revocat toate pretențiile inițiale ale brevetului, ci o revendicare suplimentară (revendicarea 17) a fost confirmată. [ 43]

In primele două procese ca răspuns la noua cercetare, ambele depuse în Chicago, Illinois, Global Patent Holdings a dat in judecata Green Bay Packers, CCC, Motorola, Apple, Orbitz, OfficeMax, Caterpillar, Kraft si Peapod in calitate de invinuiti. Un al treilea proces a fost depusa la 5 decembrie 2007, în Florida de Sud, la ADT Security Services, AutoNation, Florida Cristale Corp, HearUSA, MovieTickets.com, Ocwen Financial Corp și Anvelopă Britanie, și un al patrulea proces pe 8 ianuarie 2008 în Sud Florida, la Boca Raton Resort & Club. Un al cincilea proces a fost intentat Global de Brevete Holdings în Nevada. Proces care a fost depusa de catre Zappos.com, Inc., care se presupune că a fost amenințat de către Global Holdings brevet de invenție, și care caută o declarație judiciară că “341 brevetul nu este valid și nu ar fi încălcat.

Global de Brevete Holdings a dat în judecată , de asemenea , utilizarea de “341 brevetului sau amenințând critici sincere , de brevete software larg, inclusiv Gregory Aharonian [44] și operatorul anonim al unui blog site – ul cunoscut sub numele de” Patent Troll Tracker. ” [45] , pe 21 decembrie 2007, brevet avocat Vernon Francissen Chicago a cerut brevetul SUA și Mărci pentru a reexamina cererea singura rămasă din “341 brevetul pe baza noului stat al tehnicii. [46]

La data de 5 martie 2008, US Patent and Trademark Office a fost de acord cu “341 brevetul reexaminata constată că noul stat al tehnicii a ridicat noi întrebări substanțiale în ceea ce privește valabilitatea brevetului. [47] Având în vedere cele de anchetă, infractorii suspectați în patru din cele cinci procese aflate pe rol au depus propuneri de suspendare a activității lor (ședere) , până la finalizarea brevetului SUA și revizuirea “341 programe de brevete și Trademark Office. La data de 23 aprilie 2008, un judecător a prezidat cele două procese din Chicago, Illinois , a acordat propunerilor de rezoluție depuse în aceste cazuri. [48] La data de 22 iulie 2008, Oficiul European de Brevete a emis primul “Oficiul Acțiunea” din a doua constatare reexaminare cererea bazată pe invalid nouăsprezece motive diferite. [49] pe 24 noiembrie 2009, un nou permis de cercetare a fost emisă anularea tuturor creanțelor.

Începând cu anul 2011 și continuând de la începutul anului 2013, o entitate cunoscută ca Princeton Digital Image Corporation, [50] , situat în East Texas, a început persecutarea unui mare număr de societăți pentru presupusa încălcare a brevetul US 4813056. Princeton susține că standardul de compresie JPEG încalcă “056 brevetului și are un număr mare de site – uri web, comercianți cu amănuntul, aparat de fotografiat și producătorii de unități dat în judecată și distribuitori. Brevetul de invenție a fost inițial deținută și atribuit General Electric. Brevetul de invenție a expirat în decembrie 2007, dar Princeton are un număr mare de companii dați în judecată pentru “încălcări din trecut” ale acestui brevet. ( În conformitate cu legea brevetelor din SUA, un titular de brevet poate da în judecată pentru “încălcarea trecut” la șase ani pentru depunerea unui proces , astfel încât Princeton ar rămâne , teoretic , da în judecată companiile până în decembrie 2013) Începând cu martie 2013, Princeton a avut costume de așteptare din New York si Delaware împotriva a peste 55 de companii. Implicarea General electric în costum este necunoscut, cu toate că înregistrările judiciare arată că brevetul atribuit la Princeton în 2009 și își păstrează anumite drepturi asupra brevetului. [51]

implementari

O aplicație foarte importantă a unui codec JPEG este gratuit biblioteca de programare libjpeg a Grupului Independent JPEG. Acesta a fost publicat pentru prima dată în 1991 și este importantă pentru succesul standardului. [52] Această bibliotecă sau un derivat al acestuia directă este utilizată în numeroase aplicații.