Joint Photographic Experts Group (JPEG) * isch ä 1986 gründets Gremium vun de International Telecommunication Union (ITU). Des Gremium het äim September 1992 standardisierts Vofahre zuer sowohl voluschtbhaftete wiä voluschtfreye Kompression vun digitale (natürlichi) Bilder entwicklet, wue nochm Gremium bnennt worre isch. JPEG (au JPG) isch s im Web om witeschte vobreitete Grafikformat fier Photos.
Nachfolgprojekt sin JBIG (Bilevel Images, Schwarzweisszeichnunge) un JPEG-2000 (bssri Kompression, vieli sinnvolli Features), wue sich abr zuemindescht bies jetztert nit durchsetze het kinne. D Bewegtbildkompressionsvofahren MPEG-1 un MPEG-2 boue uff JPEG uff.
D JPEG-Kompression isch in de Norm ITU T.81 definiert, wue frey vofügbar isch (*, PDF). D Norm ischt identisch zue ISO 10918-1 (wue dert gege Bzahlung vofügbar isczh). S "Joint" im Nome stommt vun de Zämmeärbet vun de ITU, vum IEC un de ISO.
D Norm tuet 41 voschiedeni Untrdateiformt definiere, vun denne abr meischt nuer eins unterschtützt werre tuet (un wue au fascht alli Onwendunsfäll abdeckt).
D Kompression tuet duerch s Onwende vun mehreri Voarbeitungsschritt erfolge, vun denne nuer zwey vpluschtbhaftet sin. De JPEG Lossless Mode zuer voluschtfreye Kompression vowendet ä völligs ondres Vofahre (prädiktivr Koder un Entropiekodierung) uff des hier nit näher igonge wird.
Diä Datereduktion tuet duerch d voluschtbhaftete Voarbeitungschritt in Zommewirkung mit de Entropiekodierung erfolge.
Kompressionen bies ugfähr 1,5...2 Bit/Pixel sin visuell voluschtfrey, bie 0,7...1 Bit/Pixel sin noch gueti Ergebniss erzielbar, untr 0,3 Bit/Pixel tuet JPEG praktisch ubrouchbar werre, s Bild wierd zuenehmend vun uübersehbari Kompressionsartefakte (Blockbildung, stuffigi Übergäng, Farbeffekt on Graukeile) yberdeckt. De Nochfolgr JPEG-2000 isch wesentlich winigr fier diä Art vun Artefakte ofällig.
Guckt ma als Quellformat 24-Bit-RGB-Dateie ô, tuet ma Kompressionsrate vun 12 bies 15 fyr visuell voluschtfreye Bilder bies zue 35 fier noch guete Bilder, erhalte. D Qualität tuet abr nebe de Kompressionrat noch vun de Art vun de Bilder abhänge. Rausche un regelmäsigi feini Strukture im Bild voringre d maximal möglich Kompressionsrat.
PB 601 = (B' - Y') / 1,772 PR 601 = (R' - Y') / 1,402
Y' 601 0,299 0,587 0,114 R' PB 601 = -0,331264 0,5 * G' PR 601 0,5 -0,418688 -0,081312 B'
Y ist das Intensitätssignal (Luminanz) (entscheidet, ob eine Farbe eher heller oder dunkler ist), PB (oder auch U genannt) ist das Blau-Farbdifferenzsignal (entscheidet, ob eine Farbe eher gelblich oder bläulich ist) und PR (oder auch V genannt) ist das Rot-Farbdifferenzsignal (entscheidet, ob eine Farbe eher grünlich oder rötlich ist).
Bei 8-Bit-Eingangsdaten sind die Wertebereiche dieser renormierten Signale: Y' 601 = 0...255 PB 601 = -128...127 PR 601 = -128...127
Der maximale Hub der Farbdifferenzsignale entspricht damit in diesem Farbraum genau dem des Intensitätssignals (und dem der Quelldaten).
Meist wird eine vertikale und horizontale Unterabtastung jeweils um den Faktor 2 verwendet (YUV 4:2:0), die die Datenmenge um den Faktor 4 reduziert. Bei dieser Umwandlung wird die Tatsache ausgenutzt, dass die Ortsauflösung des menschlichen Auges für Farben deutlich geringer als für Schwarzweißübergänge ist.
Die Transformation ist eine orthonormale Transformation, weist gute Energiekompressioneigenschaften auf und es gibt eine inverse Transformation (was auch bedeutet, dass die DCT verlustfrei ist, die Daten nicht komprimiert, sondern nur in eine günstigere Form bringt).
Optimal ist diese Quantisierungsmatrix, wenn sie in etwa die Empfindlichkeit des Auges für die entsprechenden Ortsfrequenzen repräsentiert. Für grobe Strukturen ist das Auge empfindlicher, daher sind die Quantisierungswerte für diese Frequenzen kleiner als die für hohe Frequenzen.
Beispiel für Quantisierungsmatrix: 10 15 25 37 51 66 82 100 15 19 28 39 52 67 83 101 25 28 35 45 58 72 88 105 37 39 45 54 66 79 94 111 51 52 58 66 76 89 103 119 66 67 72 79 89 101 114 130 82 83 88 94 103 114 127 142 100 101 105 111 119 130 142 156
Beispiel für DCT-Koeffizienten von 4 aufeianderfolgenden 8×8-Blöcke, dahinter die Koeffizienten quantisiert): Vorhergehender Block: 1185,28 ... 119 ... ... ...
Block 1: 782,91 44,93 172,52 -35,28 -20,58 35,93 2,88 -3,85 78 3 7 -1 0 1 0 0 -122,35 -75,46 -7,52 55,00 30,72 -17,73 8,29 1,97 -8 -4 0 1 1 0 0 0 -2,99 -32,77 -57,18 -30,07 1,76 17,63 12,23 -13,57 0 -1 -2 -1 0 0 0 0 -7,98 0,66 2,41 -21,28 -31,07 -17,20 -9,68 16,94 0 0 0 0 0 0 0 0 3,87 7,07 0,56 5,13 -2,47 -15,09 -17,70 -3,76 0 0 0 0 0 0 0 0 -3,77 0,80 -1,46 -3,50 1,48 4,13 -6,32 -18,47 0 0 0 0 0 0 0 0 1,78 3,28 4,63 3,27 2,39 -2,31 5,21 11,77 0 0 0 0 0 0 0 0 -1,75 0,43 -2,72 -3,05 3,95 -1,83 1,98 3,87 0 0 0 0 0 0 0 0
Block 2: 1016,15 77,75 -95,79 77,51 -41,73 12,08 6,77 -9,93 102 5 -4 2 -1 0 0 0 -79,32 64,97 -38,84 25,78 3,71 -24,24 28,11 -19,71 -5 3 -1 1 0 0 0 0 4,80 -11,56 20,59 -29,11 33,91 -34,08 25,74 -14,55 0 0 1 -1 1 0 0 0 -4,61 6,06 -2,03 3,13 -4,82 9,48 -11,73 7,66 0 0 0 0 0 0 0 0 -4,56 5,17 -0,58 3,26 -2,81 4,67 -4,79 4,13 0 0 0 0 0 0 0 0 2,96 -3,71 4,52 -2,89 3,25 -2,03 1,44 -0,71 0 0 0 0 0 0 0 0 -2,12 3,25 -1,79 3,14 -5,05 6,08 -5,80 3,65 0 0 0 0 0 0 0 0 0,34 0,28 1,48 -1,87 3,02 -1,20 1,42 -1,23 0 0 0 0 0 0 0 0
Block 3: 749,47 -278,56 -43,79 51,49 54,43 -8,60 -27,50 -7,43 75 -19 -2 1 1 0 0 0 28,00 -3,17 -23,55 -6,25 10,76 18,95 -0,16 -12,75 2 0 -1 0 0 0 0 0 -12,68 6,12 -4,94 2,15 -5,86 -2,30 4,17 7,01 -1 0 0 0 0 0 0 0 -2,29 3,78 -1,90 6,42 6,11 0,29 -0,31 0,48 0 0 0 0 0 0 0 0 -4,55 1,23 -4,90 -4,88 1,16 -1,88 -3,68 -5,34 0 0 0 0 0 0 0 0 3,64 2,90 4,62 2,95 1,15 0,07 1,17 1,31 0 0 0 0 0 0 0 0 -1,43 -0,04 -4,13 -3,55 -0,70 -1,69 -2,86 -3,83 0 0 0 0 0 0 0 0 -0,21 1,45 0,39 1,16 1,07 -1,07 1,90 0,53 0 0 0 0 0 0 0 0
Block 4: 1318,05 -38,12 1,68 0,44 -10,14 -5,01 6,77 4,16 132 -3 0 0 0 0 0 0 -15,87 -19,60 3,69 3,71 10,90 4,65 -1,64 -2,91 -1 -1 0 0 0 0 0 0 -13,46 -18,07 -2,48 1,67 -7,66 2,14 7,56 7,44 -1 -1 0 0 0 0 0 0 0,48 9,56 -15,29 1,91 -0,13 -2,54 -0,76 0,24 0 0 0 0 0 0 0 0 4,97 4,93 2,61 -6,89 2,03 -1,21 0,39 3,42 0 0 0 0 0 0 0 0 2,78 -2,14 3,73 1,69 -0,61 2,36 -0,59 -1,75 0 0 0 0 0 0 0 0 0,39 1,06 -3,01 1,00 0,44 -1,34 -2,48 -0,97 0 0 0 0 0 0 0 0 -2,38 -3,18 0,25 -0,76 -2,85 -0,02 3,10 1,52 0 0 0 0 0 0 0 0
1 2 6 7 15 16 28 29 3 5 8 14 17 27 30 43 4 9 13 18 26 31 42 44 10 12 19 25 32 41 45 54 11 20 24 33 40 46 53 55 21 23 34 39 47 52 56 61 22 35 38 48 51 57 60 62 36 37 49 50 58 59 63 64
Weiterhin wird der Gleichstromanteil noch einmal differentiell zum Block links daneben kodiert und auf diese Weise die Abhängigkeiten zwischen benachbarten Blocks berücksichtigt.
Das obige Beispiel führt zu den folgenden umsortierten Koeffizienten 119 ... 78 3 -8 0 -4 7 -1 0 -1 0 0 0 -2 1 0 1 1 -1 0 ... 102 5 -5 0 3 -4 2 -1 0 0 0 0 1 1 -1 0 0 -1 0 0 0 0 0 0 0 1 0 ... 75 -19 2 -1 0 -1 1 -1 0 0 0 0 0 0 1 ... 132 -3 -1 -1 -1 0 0 0 -1 0 ...
Die Differenzkodierung des ersten Koeffizienten ergibt dann: -41 3 -8 0 -4 7 -1 0 -1 0 0 0 -2 1 0 1 1 -1 0 ... 24 5 -5 0 3 -4 2 -1 0 0 0 0 1 1 -1 0 0 -1 0 0 0 0 0 0 0 1 0 ... -27 -19 2 -1 0 -1 1 -1 0 0 0 0 0 0 1 ... 57 -3 -1 -1 -1 0 0 0 -1 0 ...
In strukturarmen Regionen (desselben Bildes) können die Koeffizienten auch so aussehen: 35 -2 0 0 0 1 0 ... 4 0 1 0 ... 0 0 2 0 1 0 ... -13 0 -1 ... 8 1 0 ... -2 0 ... Diese Bereiche lassen sich natürlich besser als strukturreiche Gebiete kodieren. Beispielsweise durch eine Kompression mittels Run-Length-Coding.
Die Zick-Zack-Umsortierung der DCT-Koeffizienten fällt zwar unter den Schutzbereich des US-Patentes 4,698,672 (und weiterer Anmeldungen und Patente in Europa und Japan), jedoch wurde 2002 Stand der Technik gefunden, der das beanspruchte Verfahren offenbart, sodass die Ansprüche kaum durchsetzbar sind (siehe *).
Die Dekompression ist zwar (weitgehend) verlustfrei, allerdings tritt das Inverse-Dekoder-Problem auf. Aus dekodierten Daten ist es nur schwierig möglich die ursprüngliche Datei zu rekonstruieren. Ein Dekodier-Kodier-Vorgang verändert die Datei und ist damit nicht verlustfrei, es treten wie beim analogen Überspielen Generationsverluste auf.
Die Generationsverluste von JPEG sind allerdings vergleichsweise klein, wenn wieder die gleiche Quantisierungstabelle zum Einsatz kommt und die Blockgrenzen die gleichen sind. Bei geeigneten Randbedingungen kann man sie bei JPEG sogar vermeiden. Bei JPEG-2000 ist das nicht mehr der Fall (überlappende Transformationen, wie sie bei JPEG-2000 wie auch in der Audiokompression zum Einsatz kommen, erfordern dafür utopische Rechenleistungen).
Die inverse DCT zur DCT der Kodierung ist einen DCT von Typ III, multipliziert mit 2/n.
Luege au en:Discrete cosine transform#DCT-III.
R' 1 0 1.402 Y' 601 G' = 1 -0,344136 -0,714136 * PB 601 B' 1 1,772 0 PR 601
Dazu ist die Entropiekodierung und die Zick-Zack-Umsortierung rückgängig zu machen. Die Operationen erfolgen dann auf Grundlage der DCT-Koeffizienten (umsortieren, weglassen nichtbenötigter Blöcke). Danach erfolgt wieder die Zick-Zack-Umsortierung und die Entropiekodierung. Wie man leicht sieht, erfolgen keine verlustbehafteten Arbeitsschritte mehr. Nicht jedes Programm führt diese Operationen verlustfrei durch, es muss dazu spezielle dateiformatspezifische Verarbeitungsmodule aufweisen. Bei dem verbreiteten Bildbearbeitungsprogrammen ist das meist nicht der Fall, da diese in der Regel die Datei komplett dekodieren und dann mit diesen Daten arbeiten.
Einschränkungen:
Bilder, die keine Auflösung haben, die ein Vielfaches von 16 Pixeln (bzw. 8 Pixel bei Schwarzweißbildern oder Farbildern ohne Unterabtastung) ist, haben ein Problem. Diese weisen unvollständige Blöcke auf, das heißt, Blöcke, die nicht alle synthetisierten Pixel verwenden. JPEG erlaubt solche Blöcke aber nur am rechten und am unteren Bildrand. Einige dieser Operationen verlangen daher einmalig, dass diese Randstreifen verworfen werden.
Ungeeignet ist JPEG für
Ein nachträgliches Heraufsetzen des Qualitätsfaktors vergrößert zwar den Speicherbedarf der Bilddatei, bringt aber verlorene Bildinformation nicht mehr zurück.
Eine JPEG-Transformation ist im Allgemeinen nicht reversibel. Das Öffnen und anschließende Speichern einer JPEG-Datei führt zu einer neuen verlustbehafteten Kompression.
Das Beispielbild vergleicht Aufnahmen, die mit unterschiedlicher Qualitätseinstellungen kodiert wurden. Die Portrait-Aufnahme besitzt eine Größe von 200×200 Pixeln. Bei 24 Bit Farbtiefe und unkomprimierter Speicherung erzeugt dieses Bild eine 120 Kbyte große Datei (exklusive Header und anderer Metainformationen).
Die Klötzchenbildung der 8×8 Pixel großen Quadrate stellt das rechte Teilbild vergrößert dar.
Für den Profi-Bereich ist JPEG als Dateiformat wegen der verlustbehafteten Datenreduktion ungeeignet. Statt dessen werden Formate eingesetzt, die verlustfrei komprimieren, ungeachtet des großen Speicherbedarfs. Beispiele sind TIFF, BMP, TGA oder PNG (Vollfarbenmodus). Moderne Quellgeräte (Scanner, Digitale Kameras) erfassen mehr als 8 Bit pro Farbpixel. Bereits einfache Scanner arbeiten intern mit 12 Bit, erlauben aber nur die Speicherung von 8 Bit pro Farbpixel. Eine Profiaufnahme von 6 Megapixel erfordert bei einer Farbtiefe von 16 Bit pro Grundfarbe und 3 Grundfarben einen Speicherbedarf von 36 Mbyte, der sich bei strukturreichen Bildern durch Kompression unwesentlich verkleinern lässt.
Es ist möglich, die Komprimierung von JPEG-Dateien verlustfrei zu optimieren und somit die Dateigröße etwas zu verringern (siehe jpegoptim in den Weblinks).
Als Dateiendung wird meistens .JPG (seltener .JPEG oder .JPE) oder .JFIF verwendet. Da einen Dekoder nur Daten zwischen einer Anfangsmarke und einer Endmarke interessieren, ist es auch möglich, EXIF und IPTC-NAA-Standard-Informationen in der JPEG-Datei unterzubringen. Die Erweiterungen sind aber nicht JFIF-konform.
Bilddateien, die im JPEG-Verfahren abgespeichert werden, bestehen aus einem Kopf (der leer sein kann) und den eigentlichen Daten, die durch einen SOI-Marker FF D8 eingeleitet werden. Sind sie streng JFIF-konform, folgen die Bytes: FF E0 00 10 4A 46 49 46 00 01. Die Sequenz 4A 46 49 46 ist die ASCII-Repräsentation von "JFIF". Gängige Bildprogramme erwarten keinen JFIF-Header. (???)
Die JPEG-Dateien sind in Segmente (bei TIFF als Tag bezeichnet) unterteilt. Die Segmente sind generell in folgender Form aufgebaut: Ein FF xx s1 s2 leitet den Tag ein. FF ist ein hexadezimaler Wert und entspricht dezimal 255. Das xx bestimmt die Art des Tags. 256 * s1 + s2 gibt die Länge des Segmentes an. In den Segmenten können sich weitere Bilder verbergen, oft ein kleines Thumbnail-Bild für die schnelle Vorschau. Einzelne Segmente können mehrfach vorkommen.
FF xx
| Bezeichnung |
|---|---|
FF D8 | Start Of Image (SOI) |
FF C0 | Image Format Information (width, height etc.) |
FF E0 | JFIF tag |
FF C4 | Define Huffman Table (DHT) |
FF DB | Define Quantisation Table (DQT) |
FF E1 | EXIF Daten |
FF EE | Oft für Copyright Einträge |
FF En | n=2..F allg. Zeiger |
FF FE | Kommentare |
FF DA | Start of Scan (SOS) |
FF D9 | End of Image (EOI) |
Ein Beispiel für einen Copyright-Tag:
FF EE 00 26 'File written by Adobe Photoshop. 4.0'
Ein Beispiel für einen Kommentar-Tag:
FF FE s1 s2 '"I Shot The Sheriff" is a "Yesterday"'s song ;-). This photo shot is dated ...'
Aufbau einer JPEG(JFIF)-Datei:
| SOI - Segment | FF D8
|
| APP0 - Segment | FF E0 s1 s2 4A 46 49 46 v1 v2 ...
|
| ... weitere Segmente | |
| SOS - Segment | FF DA s1 s2 ....
|
| Data | Komprimierte Daten |
| EOI - Segment | FF D9
|
Die Längenangaben der Segmente enthalten übrigens auch den Platz für die Längenangaben selbst: Ein leeres Segment hat daher die Länge 2, da dies der Länge der Komponenten s1 und s2 selbst entspricht.
Auf das Start-of-Scan-(SOS)-Segment (Marker FF DA) folgen direkt die komprimierten Daten, bis zum Start des nächsten Segments, das durch den nächsten Marker angezeigt wird. Sollte innerhalb der Daten ein FF auftreten, so wird dies mit einer folgenden 00 (Null) markiert. Andere Werte zeigen das Auftreten eines neuen Segments bzw. Markers an.
Ausnahme: Folgt dem FF einer der Restart-Marker (D0 - D7) so setzen sich die Daten direkt dahinter weiter fort: FF DA ... daten ... FF D0 ... daten ...
JPEG | JPEG | JPEG | Joint Photographic Experts Group | JPEG | JPEG | JPEG | JPEG | JPEG | Joint Photographic Experts Group | JPEG | JPEG | JPEG | Joint Photographic Experts Group | JPEG | JPEG | JPEG | Joint Photographic Experts Group | JPEG | Joint Photographic Experts Group | JPEG | JPEG | JPEG | JPEG | JPEG | JPEG | JPEG
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Joint Photographic Experts Group".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world