Es ist nicht garantiert, aber es kann passieren. Vor allem, wenn Sie den encode -> decode -> encode -> decode-Prozess mehrmals wiederholen, wird er sich schließlich auf einen Fixpunkt einstellen und die Qualität nicht mehr verlieren (solange Sie bei der gleichen Qualität und dem gleichen Encoder bleiben).
JPEG-Codierung in mehreren Schritten durchgeführt wird:
- RGB zu YUV-Umwandlungs
- DCT (Änderung in den Frequenzbereich)
- Quantisierung (Bits der DCT Wegwerfen)
- Lossless Kompression
Und Decodierung ist der gleiche Prozess rückwärts.
Die Schritte 1 und 2 haben Rundungsfehler (besonders bei geschwindigkeitsoptimierten Encodern mit Integer-Mathe), so dass Sie bei idempotentem Re-Encoding Glück haben müssen, wenn die Rundungsfehler von Codierung und Decodierung klein sind oder sich gegenseitig aufheben.
Der Schritt 3, der der verlustreiche Hauptschritt ist, ist tatsächlich idempotent. Wenn Ihre decodierten Pixel in ähnlich genug DCT konvertiert werden, wird es wieder zu den gleichen Daten quantisieren!
JPEG XR verwendet auch YUV, daher kann es Rundungsfehler geben, aber OTOH anstelle von DCT verwendet eine andere Transformation, die ohne Rundungsfehler berechnet werden kann. Daher sollte JPEG-XR einfacher als andere sein Formate.
Ich weiß es nicht sicher, aber ich würde nicht darauf zählen. Vor allem zwischen verschiedenen Motoren. Selbst bei einer einzigen Maschine führen die Annäherungen möglicherweise nicht zur selben Region, wenn sie zweimal angewendet werden. –
würde ich nein sagen. Nach jeder Kodierung zu JPEG wird es mehr "Verlust" geben. – leppie