Zusammenfassung

  • RFC 2035 überträgt kein vollständiges JPEG je Bild. Stabile oder ableitbare Tabellen und Markierungen entfallen; ein acht Oktett großer RTP/JPEG-Kopf wiederholt Type, Q, Breite, Höhe und den 24-Bit-Fragment Offset.
  • Zeitstempel, Sequenznummer, Offset und Marker beantworten getrennt Zugehörigkeit, Reihenfolge, Byteposition und erklärtes Ende. Gemeinsam machen sie Lücken sichtbar; keiner beweist allein Vollständigkeit.
  • Neustartmarken setzen Decoderzustand zurück. Bei Types 4 und 5 kann Paketausrichtung partielles Decodieren nach Verlust ermöglichen, aber weder korrekte Pixel noch Frist, Kontinuität oder wahrgenommene Qualität garantieren.

Ein verspätetes Paket besitzt in RFC 2035 eine bessere Adresse als seinen Platz in der Empfangsschlange. Der Fragment Offset nennt seine Byteposition im JPEG-Scan. Damit kann der Empfänger Daten direkt an die erklärte Stelle schreiben und Netzwerkreihenfolge von Bildordnung trennen.

Diese Trennung trägt den Entwurf von Oktober 1996. Ein gewöhnliches JPEG enthält Tabellen, Maße und Markierungssegmente. In einem Videostrom ändern viele dieser Beschreibungen sich selten oder lassen sich nach gemeinsamer Regel erzeugen. Ihre Wiederholung verbraucht Bandbreite, ohne neue Bildproben zu liefern. RFC 2035 beginnt die Nutzlast daher mit entropiecodierten Scandaten; abgesehen von Neustartmarken wird die JPEG-Syntax rekonstruiert.

Ein bewusst kleiner JPEG-Vertrag

Die Spezifikation beschränkt sich auf sequenzielle DCT und einen einzelnen verschachtelten Scan. Wenige Types bilden Abtastung und Neustartverhalten ab. So konnten auch eingeschränkte Hardware-Codecs eine gemeinsame Fläche implementieren. Das Format ist kein universeller Transport für jede JPEG-Variante.

Der Acht-Oktett-Kopf enthält ein typspezifisches Byte, drei Offset-Bytes, Type, Q, Width und Height. Type bestimmt die Interpretation, Q die Quantisierung, Breite und Höhe werden in Acht-Pixel-Einheiten ausgedrückt. Diese Angaben können sich ändern, weil eine Quelle Qualität und Auflösung zur Ratenanpassung variiert.

Für Q von 1 bis 99 definiert RFC 2035 die Tabellenerzeugung. Ab 100 werden dynamische Tabellen über ein Sitzungsverfahren benötigt, das außerhalb der Spezifikation liegt; null ist reserviert. Eine sichtbare Zahl kann also ohne externen Kontext unvollständig sein. Auch mit Kontext bleibt sie eine Rekonstruktionsanweisung, kein Nachweis korrekter Codierung oder intakter Scandaten.

Vier Felder dürfen nicht zu einem grünen Haken werden

Fragmente eines Bildes tragen denselben RTP-Zeitstempel. Die Sequenznummer zeigt Ordnung und Ausfälle im Paketstrom. Der Fragment Offset platziert Nutzdaten. Marker erklärt das letzte Paket.

Ein gemeinsamer Zeitstempel schließt keine Lücke. Kontinuierliche Sequenzen beglaubigen keine Bytes. Ein richtiger Offset bringt keine Nachbarbereiche. Marker füllt keinen fehlenden Anfang. Der Empfänger muss Offset und Länge vergleichen, Überschneidungen und freie Bereiche erkennen sowie Beginn und Ende getrennt festhalten.

Darum zerlegt der Entwurf auf RTP-Ebene und empfiehlt Paketgrößen ohne untere Fragmentierung. Geht ein IP-Fragment verloren, kann das ganze Datagramm der Anwendung vorenthalten bleiben. Eigenständige RTP-Pakete bewahren die tatsächlich eingetroffenen Bereiche und geben Kontrolle über Größe und Takt. Das schafft Beobachtbarkeit, keine zuverlässige Lieferung.

Verliert man das letzte Paket, verschwindet auch Marker. Ein Offset null unter neuem Zeitstempel zeigt einen neuen Beginn. Erst lückenlose Bereiche bis zum nächsten Marker stützen die Vollständigkeit des Nachfolgers. Sie reparieren das vorherige Bild nicht.

Neustart begrenzt Abhängigkeit, nicht Schaden

Huffman-Decodierung und DC-Vorhersage tragen JPEG-Zustand fort. Eine Neustartmarke setzt ihn zurück. Types 0 und 1 verwenden keine; Types 2 und 3 erlauben sie ohne Paketausrichtung; Types 4 und 5 richten Intervalle und Pakete aus und kennzeichnen deren Lage durch einen Neustartzähler.

Ein intaktes ausgerichtetes Intervall kann ohne alle früheren Bytes decodierbar sein. Die verlorene Region entsteht dadurch nicht neu. Auch Nützlichkeit, Playoutfrist und Bewegungsfluss bleiben offen. Begrenzte Zustandsabhängigkeit ist weder Verlustverschleierung noch Dienstgüte.

RFC 2435 erklärte RFC 2035 später für überholt; das heutige IANA-Register verweist beim statischen Nutzlasttyp 26 auf den Nachfolger. Dieser Status ist relevant, darf aber spätere optionale Köpfe oder geänderte Neustartmechanismen nicht rückwirkend in RFC 2035 einbauen.

Vom Paketereignis bis zur sichtbaren Szene

Eine Aufzeichnung belegt beobachtete Bytes und deklarierte Felder. Der Rekonstruktor kann seine erzeugte JPEG-Syntax protokollieren. Der Decoder ergänzt Annahme, Fehler und Bildbereiche. Playout, Rendering und Wahrnehmung folgen als eigene Ereignisse.

Lu Hengs Vorrang des laufenden Codes liefert dafür eine praktische Ordnung: erst Ereignisse sichern, dann Symbole bilden. Ein abgeleitetes „vollständig“ darf Rohpakete, Offsets und Grenzen nicht ersetzen. Sonst wird eine berechenbare Schlussfolgerung zur nicht überprüfbaren Autorität.

Die dünne gemeinsame Schicht von RFC 2035 ließ Rekonstruierbares weg, wiederholte veränderlichen Kontext und machte Fragmentposition oberhalb von IP sichtbar. Ihr Nutzen hängt an ihrer Begrenzung. Ein Paket kann seinen Platz belegen. Das vollständige, rechtzeitige und gesehene Bild braucht weitere Evidenz.

Quellen