Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Jpeg "Syntax" (https://www.delphipraxis.net/88687-jpeg-syntax.html)

Relicted 19. Mär 2007 13:12


Jpeg "Syntax"
 
Mahlzeit.

Ich habe mal folgende Frage:
Ich bastel gerade bissl mit jpegs rum.
Auf wikipedia habe ich gesehen dass jpegs ein "ende-token" benutzen welches "FF D9" ist.
Ich habe nun eine jpeg datei die insgesammt 3 mal das FF D9 aufweist. kann mir jemand erklären wo das eigentliche bild nun endet bzw was das mit den mehrfachten FF D9's aufsich hat?

Gruß
reli

edit: mich vertan mit der tag reihenfolge sorry :-)

Bernhard Geyer 19. Mär 2007 13:48

Re: Jpeg "Syntax"
 
JPEG-Dateiformat

Phoenix 19. Mär 2007 13:49

Re: Jpeg "Syntax"
 
http://www.wotsit.org/list.asp?al=J

Relicted 19. Mär 2007 14:25

Re: Jpeg "Syntax"
 
danke den wiki link kenn ich selbst... nur versteh ich noch nicht warum ich 3 begin und 3 ende token habe... in einer normalen jpeg datei.

Klaus01 19. Mär 2007 15:26

Re: Jpeg "Syntax"
 
Vielleicht ist es eine jpeg Datei die das Bild in verschiedene Auflösungen
gespeichert hat. So daß das Bild z.B. im Web langsam aufgebaut wird.
Grüße
Klaus

dizzy 19. Mär 2007 15:46

Re: Jpeg "Syntax"
 
Das nennt sich progressives Encoding, und speichert das Bild nicht wirklich in mehreren Auflösungen. Es ordnet die Matrizen nur so an, dass alle niederfrequenten Teile zu erst in einem Rutsch übertragen werden können, dann die etwas höher frequenten, usw.
Üblich ist, dass eine 8x8 Matrix "am Stück" hintereinander liegt, und das Bild somit blöckchenweise ankäme. Beim progressiven Format also erst die DC-Anteile aller Blöcke, bis hin zur maximalen Frequenz, wodurch sich das Bild schrittweise verfeinern lässt, aber bereits nach teilweiser Übertragung ganz angezeigt (wenn auch eben zunächst recht blockig).

An welchen Stellen so in etwa finden sich denn die Marker? Sind sie verschachtelt, oder immer anfang-daten-ende-anfang-daten-ende? Ich hab das Format grad nicht im Kopf, aber bei letzterer Variante könnte ich mir gut vorstellen, dass damit Header von Nutzdaten getrennt werden.
Ansonsten kann die Kombination natürlich auch in den Nutzdaten auftreten, und zwar ist FF soweit ich weiss das Escapezeichen im jpeg Format. Wenn nun aber etwas wie "XX XX FF FF D9 XX XX" da steht, wäre das ein gefluchtetes "FF" mit "D9" ohne Fluchtung, und somit kein Marker! Schau mal, ob du vor deinen vermeintlichen Marken eine gerade Anzahl von "FF"-Gruppen stehen hast. Dann ist das D9 Nutzdatum.

Gruss,
Fabian

Relicted 19. Mär 2007 20:34

Re: Jpeg "Syntax"
 
ah das hört sich schon etwas sinniger an... ich schätze mal zusatzdaten könnte man dann hinter das letzt EOI ( end of image ) setzen ohne dass es das bild beeinträchtigt?!

gruß
reli

dizzy 20. Mär 2007 01:05

Re: Jpeg "Syntax"
 
Aus dem Wiki-Link von Bernhard:
Zitat:

Zitat von Wikipedia
Da einen Dekoder nur Daten zwischen einer Anfangsmarke und einer Endmarke interessieren, ist es auch möglich, EXIF, IPTC-NAA-Standard-Informationen und sogar ganze XML- oder andere Dateien nach dem Datacontainer-Verfahren in der JPEG-Datei unterzubringen. Die Erweiterungen sind aber nicht JFIF-konform.

\\Edit: Auf der Seite stehen übrigends alle Infos über das Verhalten von Markern und Escaping im jpeg-Format. Damit sollte sich deine Eingangsfrage klären lassen. (Ich setzte mal voraus, dass du dein Testbild in einem gängigen Betrachter ansehen kannst, es also gültig und Fehlerfrei ist.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz