To nie jest gwarantowane, ale może się zdarzyć. Zwłaszcza jeśli powtórzysz proces dekodowania -> dekodowanie -> kodowanie -> dekodowanie wystarczająco długo, ostatecznie ustali się on w punkcie stałym i przestanie tracić jakość dalej (o ile zachowasz tę samą jakość i ten sam enkoder).
kodowania JPEG odbywa się w kilku etapach:
- RGB do konwersji YUV
- DCT (zmiany w dziedzinie częstotliwości)
- kwantyzacji (Wyrzucanie bity DCT)
- kompresji bezstratnej
Dekodowanie jest tym samym procesem wstecz.
Kroki 1 i 2 mają błędy zaokrąglania (szczególnie w enkoderach zoptymalizowanych pod kątem prędkości z użyciem matematyki całkowitej), więc w przypadku idempotentnego ponownego kodowania musisz mieć szczęście, aby kodowanie i dekodowanie błędów zaokrąglania były niewielkie lub anulować się nawzajem.
Krok 3, który jest głównym krokiem stratnym, jest w rzeczywistości idempotentny. Jeśli twoje zdekodowane piksele przekonwertują się na podobne do DCT, będą kwantyzować ponownie do tych samych danych!
JPEG XR używa również YUV, więc może ponieść pewne błędy zaokrągleń, ale OTOH zamiast DCT wykorzystuje inny przekształcać, które mogą być obliczone bez zaokrąglania błędów, więc powinno być łatwiej round-trip JPEG XR niż inne formaty.
Nie wiem na pewno, ale nie liczę na to. Zwłaszcza między różnymi silnikami. Nawet przy pojedynczym silniku uzyskane przybliżenia mogą nie powodować tego samego regionu po dwukrotnym zastosowaniu. –
Powiedziałbym, że nie. Po każdym kodowaniu do jpeg będzie więcej "straty". – leppie