Obraz JPEG (.jpg)
ISO/IEC StandardJPEG to najczęściej stosowany standard kompresji stratnej w fotografii cyfrowej i obrazach internetowych. Wykorzystuje większą wrażliwość ludzkiego oka na luminancję niż na chrominancję.
Konwertuj PNG na JPG
Darmowy konwerter z PNG na JPG w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.
Kompresuj JPG online
Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia
Inspekcja i metadane
Systemy operacyjne i analizatory plików identyfikują pliki JPG, sprawdzając początkową sekwencję bajtów binarnych:
Podpis nagłówka na poziomie bajtów (Magic Bytes)
Systemy operacyjne i analizatory plików identyfikują pliki JPG, sprawdzając początkową sekwencję bajtów binarnych:
PODPIS HEX (OFFSET 0):
FF D8 FFREPREZENTACJA ASCII: ÿØÿ
Normalizacja: ISO/IEC 10918-1 / ITU-T T.81
Specyfikacja techniczna
| Architektura kontenera | Strumień binarny rozdzielany znacznikami (prefiks 0xFF) zawinięty w nagłówki JFIF lub EXIF |
| Kompresja | Stratna dyskretna transformata kosinusowa (DCT) + kodowanie entropowe długości serii i Huffmana |
| Kolejność bajtów (Endianness) | Big-Endian dla długości znaczników i tablic kwantyzacji; Exif może być Little (II) lub Big (MM) |
| Przestrzenie kolorów | sRGB, Adobe RGB, CMYK, Y'CbCr, Skala szarości |
| Kanały i struktura | 8 bitów na kanał (24-bitowy Truecolor) lub 8-bitowa skala szarości |
| Maks. wymiary | 65 535 x 65 535 pikseli (2-bajtowe liczby całkowite bez znaku) |
| Przezroczystość | Brak (tylko nieprzezroczystość; brak obsługi kanału alfa) |
| Streaming i progresywne ładowanie | Progresywne kodowanie JPEG zapisuje dane w wielu przebiegach widmowych, od niskiej do wysokiej rozdzielczości. |
Techniczna macierz porównawcza: JPG a konkurencja
| Atrybut techniczny | JPG (Bieżący) | WebP | AVIF | PNG |
|---|---|---|---|---|
| Paradygmat kompresji | Stratny DCT + kodowanie Huffmana | Stratny (VP8) i bezstratny | Stratny (AV1) i bezstratny | Bezstratny Deflate |
| Przezroczystość alfa | Brak obsługi kanału alfa (zawsze nieprzezroczysty) | 8-bitowa przezroczystość alfa | 8-bitowe / 10-bitowe / 12-bitowe alfa | Pełne 8-bitowe / 16-bitowe alfa |
| Dekodowanie sprzętowe | Obsługa dedykowanego sprzętowego dekodowania JPEG zależy od układu i urządzenia. | Powszechne dekodowanie sprzętowe w nowoczesnych układach SoC | Szybko rosnące dekodowanie sprzętowe w nowoczesnych procesorach GPU | Szybkie dekodowanie oparte na procesorze CPU |
| Wydajność kompresji | Dobra wartość odniesienia dla fotografii | O 25%-35% mniejszy niż JPEG przy tej samej jakości | O 40%-55% mniejszy niż JPEG przy tej samej jakości | Nieefektywny dla zawartości fotograficznej |
| Głębia kolorów | Standardowe 8 bitów na kanał (24-bitowy Truecolor) | 8 bitów na kanał | 10-bitowe i 12-bitowe HDR z szeroką paletą barw | 8 i 16 bitów na kanał |
Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego
Przeglądarka obrazów pokazuje komunikat „Przedwczesny koniec pliku JPEG" lub dolna część zdjęcia jest jednorodnie szara lub ma kolorowe pasy.
Główna przyczyna: Przerwane pobieranie lub niepełny zapis na dysku, w którym brakuje znacznika końca strumienia 0xFFD9 (EOI) oraz danych skanowania obrazu.
Odzyskiwanie: Dołącz znacznik 0xFFD9 na końcu uciętego strumienia, aby umożliwić dekoderom wyświetlenie nienaruszonej górnej części fotografii.
Kolory obrazu wydają się mocno przesunięte, odwrócone lub psychodeliczne.
Główna przyczyna: Odwrócony nagłówek przestrzeni kolorów CMYK lub nieprawidłowy osadzony profil ICC.
Odzyskiwanie: Skonwertuj przestrzeń kolorów z CMYK do sRGB za pomocą ImageMagick („magick broken.jpg -colorspace sRGB fixed.jpg").
Plik nie otwiera się i zgłasza błąd „Znaleziono nieprawidłowy znacznik".
Główna przyczyna: Uszkodzenie bitowe w nagłówkach tablicy kwantyzacji (DQT 0xFFDB) lub tablicy Huffmana (DHT 0xFFC4).
Odzyskiwanie: Zastąp uszkodzone znaczniki nagłówka standardowymi bazowymi tablicami Huffmana i kwantyzacji JFIF wyodrębnionymi z nienaruszonego pliku JPEG.
Analiza bezpieczeństwa i wektory ataku na parser
Bezpieczeństwo JPEG wiąże się przede wszystkim z wyciekami danych EXIF naruszającymi prywatność oraz przepełnieniami bufora w starszych dekoderach języka C (libjpeg).
Znane wektory ataku
- Ujawnienie poufnych metadanych: niewyczyszczone nagłówki EXIF zawierające współrzędne GPS, numery seryjne aparatów i podglądy miniatur.
- Odczyty spoza bufora i przepełnienia liczb całkowitych w starszym parserze libjpeg mogą uszkadzać znaczniki restartu (RST) lub skrypty skanowania progresywnego.
- Pliki polimorficzne łączące nagłówki JPEG z wykonywalnymi archiwami ZIP lub RAR.
Najlepsze praktyki obronne: Zawsze usuwaj metadane EXIF i geolokalizację GPS ze zdjęć użytkowników przed publikacją, aby chronić ich prywatność. Używaj nowoczesnych dekoderów bezpiecznych pod względem pamięci (takich jak image-rs w języku Rust) lub dekoderów działających w piaskownicy WebAssembly.
Pochodzenie historyczne i kamienie milowe
Główne zalety
- Dekodowanie JPEG jest szeroko obsługiwane przez oprogramowanie i urządzenia do obsługi obrazów, ale zgodność zależy od urządzenia i aplikacji.
- Doskonałe współczynniki kompresji (od 10:1 do 20:1) dla fotograficznych tonów ciągłych.
- Niewielki rozmiar pliku i możliwość progresywnego wyświetlania obrazu.
Ograniczenia techniczne i wady
- Kompresja stratna powoduje artefakty (dzwonienie i widoczne bloki) wzdłuż ostrych krawędzi.
- Brak obsługi kanału przezroczystości.
- Strata generacyjna występuje za każdym razem, gdy plik jest dekompresowany, edytowany i ponownie zapisywany.
Ciekawe informacje techniczne
- Klasyczny obraz testowy „Lenna", użyty do opracowania kompresji JPEG, został zeskanowany z wydania magazynu Playboy z listopada 1972 roku.
- Podpróbkowanie chrominancji JPEG 4:2:0 zmniejsza o połowę rozdzielczość chrominancji zarówno w poziomie, jak i w pionie przy niemal zerowej degradacji percepcyjnej.
- Każdy standardowy plik JPEG zaczyna się od znacznika 0xFFD8 (Start of Image) i kończy znacznikiem 0xFFD9 (End of Image).
Często zadawane pytania techniczne
Dlaczego wielokrotne zapisywanie pliku JPEG obniża jakość obrazu?
JPEG to nieodwracalnie stratny format kompresji. Za każdym razem, gdy dekompresujesz i ponownie zapisujesz plik JPEG, krok kwantyzacji DCT odrzuca szczegóły przestrzenne wysokiej częstotliwości i ponownie przybliża bloki pikseli 8x8, powodując skumulowane artefakty „straty generacyjnej".
Co to jest progresywny JPEG i dlaczego jest przydatny?
Standardowy bazowy JPEG dekoduje linię po linii od góry do dołu. Progresywny JPEG koduje dane obrazu w wielu przejściach widmowych, pozwalając przeglądarkom natychmiast renderować rozmycie całego obrazu w niskiej rozdzielczości i wyostrzać je progresywnie w miarę pobierania kolejnych bajtów.
Czym jest podpróbkowanie chrominancji (4:2:0 kontra 4:4:4)?
Ludzka siatkówka ma więcej komórek pręcikowych (luminancja/jasność) niż czopków (kolor). Format JPEG wykorzystuje to, zachowując pełną rozdzielczość jasności (Y) przy jednoczesnym zmniejszeniu o połowę rozdzielczości kolorów (Cb, Cr) w poziomie i w pionie (4:2:0), co pozwala odrzucić 50% surowych danych przed kompresją przy niezauważalnej dla oka stracie jakości.
Czy obraz JPEG może mieć przezroczyste tło?
Nie. Standardowa specyfikacja JPEG nie uwzględnia pojęcia kanału alfa. Jeśli wymagana jest przezroczystość, należy przekonwertować obraz do formatu WebP, AVIF lub PNG.
Powiązane pary konwersji JPG
Konwersja rastrowych obrazów PNG do formatu JPEG zmniejsza rozmiar pliku poprzez zastosowanie kompresji stratnej, co sprawia, że obrazy szybciej ładują się na stronach internetowych i zajmują mniej miejsca.
Konwersja stratnego obrazu rastrowego JPEG na bezstratny obraz rastrowy PNG zapobiega dalszej utracie jakości przy kolejnych zapisach i zapewnia obsługę przezroczystości dzięki kanałowi alfa.
Konwersja obrazów JPEG do WebP może zmniejszyć rozmiar pliku przy podobnej jakości obrazu. Wynik zależy od zawartości obrazu i ustawień kodowania.
Konwersja WebP do JPEG może ułatwić użycie nieruchomego obrazu w programach, które nie obsługują WebP. JPEG nie zachowuje przezroczystości ani animacji.
Konwersja zdjęć HEIC do obrazów JPEG zmienia domyślny format aparatu Apple w powszechnie odczytywane pliki rastrowe dla starszego oprogramowania i przeglądarek internetowych.
Konwersja obrazów AVIF do JPEG może ułatwić ich użycie w starszym oprogramowaniu, które nie obsługuje formatu AV1 Image File Format.
Konwersja starszego pliku JPEG na format AVIF znacznie zmniejsza rozmiar pliku, zachowując jednocześnie wysoką wierność wizualną dzięki zaawansowanej technologii kodowania wideo.
Konwertuj duże kompozycje Adobe Photoshop PSD na kompaktowe zdjęcia JPEG, które można wyświetlać na wielu urządzeniach.