Co to są artefakty JPEG i co można z nimi zrobić?

25

Wiem, że JPEG to „stratny” algorytm kompresji, który odrzuca informacje w celu zaoszczędzenia miejsca. Jaki jest tego efekt wizualny? Słyszałem o „artefaktach JPEG”. Jak to wygląda?

Czy są sytuacje, w których ten sam poziom kompresji tworzy więcej artefaktów i wygląda gorzej? Czy treść obrazu w ogóle ma znaczenie? Z czym algorytm dobrze sobie radzi i z czym ma problem?

Zakładając, że JPEG jest wymagany, czy istnieje sposób na zmniejszenie artefaktów? Jeśli przesyłam do serwisu internetowego, który zastosuje własną kompresję poza moją kontrolą, czy mogę coś zrobić z obrazem z wyprzedzeniem, aby mógł lepiej przetrwać?

mattdm
źródło
Niektóre odpowiedzi dotyczące kawałków tej kwestii istnieją tutaj: photo.stackexchange.com/questions/5317/...
dpollitt
Dzięki @dpollit. Nie widziałem tego z powodu brytyjskiej pisowni i braku tagów. Ponadto chodzi szczególnie o niską rozdzielczość i niski rozmiar pliku.
mattdm
Chciałbym zobaczyć przykłady odpowiedzi na poziomie pikseli (lub większych).
mattdm
1
Chciałbym skierować Cię do mojej odpowiedzi na temat linku @dpollit, do którego wcześniej linkowałem, w szczególności do połączonej z nim strony internetowej , która zawiera cały ładunek przykładowych obrazów z każdego głównego poziomu „jakości”, ze szczegółami na poziomie pikseli, dla różnych typów obrazów.
jrista
1
@BBking - Chciałbym zobaczyć odpowiedź na ten temat wraz z referencjami.
mattdm

Odpowiedzi:

19

Przykład

Korzystanie z aktualnego zdjęcia zdjęcia tygodnia. To jest wysokiej jakości JPEG:

gimp Q = 99

ponownie zapisane w Gimp z jakością JPEG 80 (niska); zwróć uwagę na ogólną utratę ostrości, „kropki” wokół krawędzi o wysokim kontraście, utratę szczegółów w obszarach o niskim kontraście:

gimp Q = 80

i ponownie zapisane w GIMP z jakością JPEG 30 (bardzo niska); należy zwrócić uwagę na wyraźne bloki 8x8 i znaczną utratę ostrości i szczegółów koloru:

gimp Q = 30

Trzy rodzaje zniekształceń

JPEG ma tendencję do wprowadzania dwóch trzech rodzajów zniekształceń:

  • ogólna utrata ostrości i oscylacji wokół krawędzi o wysokim kontraście: są one spowodowane przybliżonymi przejściami intensywności z płynnymi funkcjami (cosinus); widzisz je jako małe „kropki” lub „aureole” wokół krawędzi; są szczególnie dobrze widoczne na obrazach tekstów rysunków ręcznych.
  • struktura blokująca: obraz jest przetwarzany osobno dla każdego bloku 8x8 (lub większego w przypadku próbkowania w dół barwy), krawędzie bloku stają się widoczne przy wysokim stopniu kompresji.
  • utrata szczegółów kolorów: zależy to od zapisania parametrów, program może agresywnie „próbkować” (zmniejszać rozdzielczość) kanały chromatyczności; rzadko dotyczy to fotografii naturalnej.

Widoczna struktura bloków i aureole wokół krawędzi są zwykle nazywane artefaktami JPEG. Powiększmy nasz przykład, aby zobaczyć je lepiej. Od lewej do prawej: kadr z oryginalnych obrazów JPEG Q80 i JPEG Q30. Artefakty oznaczyłem na zielono (kółka na aureole i kropki na bloki 8x8):

porównanie trójstronne

Jak każda utrata informacji, nie można jej odzyskać. Ostrzenie może pomóc odzyskać utracony kontrast krawędzi, ale sprawia, że ​​„aureole” są bardziej widoczne; odszumianie może pomóc usunąć „aureole”, ale jeszcze bardziej zmniejsza ostrość. Jeśli struktura bloku jest widoczna, prawdopodobnie jest już za późno. Po prostu trzymaj oryginalne obrazy o wysokiej rozdzielczości i wysokiej jakości i nie nadpisuj ich.

Strategie hostingowe

Jeśli kontrolujesz parametry kompresji JPEG i chcesz zmaksymalizować jakość obrazu:

  • utrzymuj współczynnik kompresji na jak najniższym poziomie (użyj ustawień wysokiej jakości)
  • weź pod uwagę próbkowanie kanałów chromatyczności (może to być prawie niezauważalne dla niektórych obrazów i pozwala na niższy współczynnik kompresji w kanale jasności przy takim samym ograniczeniu rozmiaru pliku)
  • rozważ użycie zmiennoprzecinkowej dyskretnej transformacji kosinusowej (może to zwiększyć precyzję transformacji, ale zapisywanie plików potrwa dłużej)
  • rozważ użycie niższej rozdzielczości zamiast wyższego współczynnika kompresji (biorąc pod uwagę to samo ograniczenie rozmiaru pliku)

Jeśli przesyłasz do usługi innej firmy i nie kontrolujesz parametrów kompresji, niewiele możesz na to poradzić:

  • wybierz usługę, która jest znana z tego, że preferuje wysokiej jakości JPEG (Flickr, SmugMug, 23hq, 500px) niż usługi, o których wiadomo, że nadmiernie kompresują w celu oszczędzania ruchu (Picasa, Imgur, Dropbox); zazwyczaj dostajesz za co płacisz.
  • spróbuj samodzielnie zmienić rozmiar zdjęć i załadować odpowiedni rozmiar (niektóre usługi i tak go skompresują, inne mogą wyświetlać plik po przesłaniu)
sastanina
źródło
16

JPEG faktycznie używa dwóch rodzajów kompresji, stratnej i bezstratnej. Bezstratna kompresja nie powoduje artefaktów, więc możemy zignorować tę część. Szczególny rodzaj kompresji stratnej w JPEG, zwany dyskretną transformacją cosinusową dla algorytmów matematycznych, umożliwia kompromis między stopniem kompresji a wiernością. Większość oprogramowania spełnia tę funkcję jako „jakość”, zwykle w skali 0-100, przy czym 100 oznacza brak straty lub bardzo niewielką stratę i stamtąd spada.

Ten szczególny algorytm kompresji został przyjęty, ponieważ jest dobry w wyrzucaniu rzeczy, których ludzki system wzrokowy nie zauważa tak bardzo, jak innych elementów sceny. Po części dlatego całkiem przyzwoicie wyglądające zdjęcia mogą mieć imponująco wysokie współczynniki kompresji. Dlatego też działa dobrze na prawdziwych ciągłych tonach, a nie tak dobrze na syntetycznych obrazach i grafikach.

Oto 200 x 300 obszar większego zdjęcia z pikselami powielonymi 2x, aby lepiej je zobaczyć. Zastosowano kompresję JPEG „jakość” 100:

Jakość 80, zmniejszenie rozmiaru pliku o 79%:

Jakość 60, redukcja 86%:

Jakość 40, redukcja 90%:

Zmniejszenie rozmiaru pliku oparto na kompresjach JPEG całego pliku, dzięki czemu struktury nagłówka i inne stałe koszty ogólne stanowiły niewielką część danych.

Zauważ, że musisz szukać artefaktów na drugim zdjęciu, mimo że prawie 4/5 oryginalnych informacji zostało odrzuconych. Artefakty kompresji JPEG są zwykle najbardziej widoczne na ostrych krawędziach i powoli zmieniających się płaskich obszarach. Ponieważ grafika liniowa ma ostre krawędzie, kompresja JPEG nie jest do tego odpowiednia.

Widać, że artefakty kompresji stają się coraz gorsze przy wyższych współczynnikach kompresji. Pamiętaj jednak, że dolne zdjęcie zachowuje niesamowitą ilość informacji wizualnych z powodu usunięcia 9/10 jego nieprzetworzonych informacji.

Typami artefaktów charakterystycznych dla stratnej kompresji JPEG są „blokowanie” w powoli zmieniających się płaskich obszarach i „brud” otaczający krawędzie o wysokim kontraście. Na przykład zobacz prawy dolny obszar na powyższym obrazku. Zawiera nieostre tło, więc wartości zmieniają się powoli. Blokowanie jest dość oczywiste. Aby zobaczyć przykłady „brudu”, rozejrzyj się po lewym rogu kozy. Te dwa rodzaje artefaktów są zwykle silną wskazówką, że kompresja JPEG była objęta. Poszukaj ich również na innych zdjęciach powyżej, aby zorientować się, jak wyglądają, kiedy zaczynają się pojawiać, i jaki stopień kompresji możesz tolerować w różnych okolicznościach.

Olin Lathrop
źródło
1
Widoczna strata nie pochodzi z samego DCT, ale z kwantyzacji współczynników DCT po transformacji.
Sarge Barszcz
10

Kompresja JPG odbywa się w blokach pikseli. Na mocno skompresowanym obrazie JPG można zobaczyć krawędzie tych bloków: na oryginalnym obrazie dwa piksele mogły być bardzo blisko pod względem jasności i koloru, ale jeśli znajdują się w różnych blokach, to po kompresji i dekompresji (podczas oglądania) każdy z nich ich wartości mogą różnić się od oryginału, więc tracisz stopniowe mieszanie i zaczynasz dostrzegać tę „blokadę”.

wprowadź opis zdjęcia tutaj

Oto typowy przykład na niebie - JPG zapisany w jakości 0.

Jeśli zostaniesz przesłany na stronę korzystającą z kompresji JPG, możesz uzyskać lepsze wyniki, wykonując dwie czynności (musisz eksperymentować z witryną, aby zobaczyć, co działa):

  • zmień rozmiar obrazu, aby mieścił się w granicach maksymalnej wysokości / szerokości dozwolonej przez witrynę, aby strona nie zmieniała rozmiarów Twoich zdjęć

  • wykonaj własną kompresję, aby uzyskać mniejszy rozmiar pliku o dobrej jakości. W zależności od sposobu działania witryny, jeśli obraz jest już wystarczająco mały, może nie poddać się dalszej kompresji, a nawet jeśli tak, może mieć mniejszy efekt.

Jeśli chodzi o usuwanie artefaktów JPG z obrazu, artefakty JPG mogą wyglądać podobnie do normalnego szumu czujnika. Oprogramowanie redukujące hałas z powodzeniem usunie niektóre drobne artefakty JPG, ale z utratą szczegółów.

hałas jak artefakty jpg

Oto przykład z jakością JPG 50%, z blokowaniem, ale także ciemniejszymi i jaśniejszymi pikselami przypominającymi szum.

Topaz Labs ma produkt o nazwie DeJpeg , który działa specjalnie na artefakty JPG. Wykonuje to dobrą robotę bez zbytniej utraty szczegółów. Wtyczka może także wyostrzać i generalnie redukować szumy. Wtyczka jest kompatybilna z Photoshop CS, Photoshop Elements i Paint Shop Pro. Nie sądzę, że to działa z Lightroom lub Aperture.

MikeW
źródło
Czy możesz podać przykład artefaktu JPEG, który wygląda podobnie do szumu czujnika?
mattdm
Dodałem jedno z ciemnego nieba zaoszczędzonego przy 50% jakości JPG.
MikeW
5

W przypadku stron internetowych, które kompresują pliki, dopóki nie osiągną określonego docelowego rozmiaru pliku, istnieje sposób na poprawę jakości obrazów w określonych okolicznościach.

JPEG działa poprzez konwersję obrazu do [serii] reprezentacji przestrzeni częstotliwości [s] (gdzie X i Y reprezentują częstotliwości poziome i pionowe, a „jasność” reprezentuje amplitudę częstotliwości). Częstotliwości poniżej pewnej amplitudy są ignorowane, co zmniejsza ilość przechowywanych danych, osiągając kompresję.

Szum ma szerokie spektrum częstotliwości, których JPEG nie może skompresować. Dlatego możesz mieć dwa obrazy, zastosować ten sam poziom kompresji i uzyskać dwa różne rozmiary plików po kompresji JPEG.

Jeśli zrobisz zdjęcie i celowo rozmyjesz nieistotne obszary tła, zmniejszysz całkowitą ilość informacji i osiągniesz znacznie wyższą kompresję tych obszarów, pozostawiając więcej kilobajtów do kodowania obszarów, w których ważne są szczegóły. Działa to szczególnie dobrze w przypadku obrazów, na których tło jest już nieostre.

Matt Grum
źródło
3

Oto przykład powiększonego JPEG:

wprowadź opis zdjęcia tutaj

Zdjęcie użytkownika Wikipedii FelixH. Ten obraz jest objęty licencją Creative Commons Uznanie autorstwa-Na tych samych warunkach 3.0 Unported.

Na tym obrazie wyraźnie widać tak zwane „artefakty” w niebieskim obszarze. Zwróć uwagę, jak obraz wydaje się być podzielony na bloki, a granice bloków nie pasują.

Istnieje wiele rzeczy, które można zrobić, aby uniknąć lub zmniejszyć ten problem:

  • Najbardziej oczywiste: nie używaj JPEG. Możesz pracować ze swoimi obrazami przy użyciu formatu bezstratnej kompresji, takiego jak RAW, PNG lub bezstratny TIFF. Przejdziesz na wersję JPEG tylko w ostatnim kroku, gdy chcesz przesłać zdjęcie do Internetu, e-maila itp.

  • Format jpeg pozwala na konfigurację poziomu kompresji. Jeśli chcesz, możesz uzyskać mniej artefaktów, ale plik będzie większy.

  • Unikaj ponownego zapisywania pliku JPEG w kółko, ponieważ każde pokolenie jeszcze bardziej obniża jakość.

Miguel
źródło
Nawet RAW i PNG mogą uzyskać artefakty z powodu kwantyzacji pikseli. Dopóki nie zmienisz żadnych wartości, będzie to efekt jednorazowy i nie dojdzie do dalszych strat z powodu digitalizacji. Jeśli jednak zmienisz wartości na dowolnym etapie, takie jak przyciemnienie lub rozjaśnienie sceny, lub zmieszanie z innymi wartościami itp., Wówczas przesunięcie wartości może spowodować powstanie nowych artefaktów przy następnym zapisie (nawet bez kompresji) z powodu kwantyzacji (prawdopodobnie forma kompresji), aby zapisać nowy obraz obliczeniowy. Aby zminimalizować te efekty, używaj możliwie największej liczby bitów na każdym kroku i zachowaj cały przepływ pracy.
Skaperen
@Skaperen: mylisz tutaj dwie różne rzeczy. To pytanie dotyczy utraty szczegółów z powodu kompresji JPEG. Opisujesz utratę szczegółów wprowadzoną przez niektóre algorytmy przetwarzania obrazu. To, co opisujesz, jest poprawne, ale w ogóle nie jest związane z formatami obrazów, więc powiedzenie, że RAW i PNG są powiązane z kwantyzacją pikseli, jest błędne, te formaty plików nie powodują żadnej utraty jakości.
Miguel
Nawiasem mówiąc, ten obraz pokazuje także inny problem: pokazuje aureolę z nieostrej maski.
mattdm,
1

Artefakty to niepożądane efekty uboczne przetwarzania obrazu. W tym przypadku wynikają one ze sposobu kompresji danych przez algorytm JPEG.

Zasadniczo ludzie chcą mieć możliwość przechowywania zdjęć cyfrowo, bez zajmowania zbyt dużej przestrzeni dyskowej. W rezultacie większość zdjęć jest przechowywana w formacie JPEG. Jest to format, który kompresuje dane tworzące obraz w sposób, który stara się zachować jak najwięcej szczegółów. Poziom kompresji można zmienić podczas tworzenia pliku. Jest to jednak algorytm „stratny”, co oznacza, że ​​odrzuca niektóre dane - nie można wrócić ze skompresowanego pliku JPEG do oryginalnych danych.

Ta utrata danych odbywa się kosztem jakości obrazu. Kompresja została zaprojektowana w taki sposób, aby minimalizować wpływ na ogólny obraz, ale może być zauważalna przy wysokich poziomach kompresji.

Artefakty JPEG najczęściej wyglądają jak blokowe sekcje koloru. Można je zobaczyć tam, gdzie następuje subtelna stopniowa zmiana koloru w dużym odcieniu kolorów - np. Na niebieskim niebie lub w mglistej scenie. Artefakty wyglądają raczej jak postrzępione kontury określonego koloru niż gładka mieszanka.

W przypadku bardziej skompresowanych scen artefakty można również zobaczyć wokół granic obiektów - np. Gałęzi drzewa na jasnym niebie. Wyglądają jak plamiste bloki otaczające obiekt.

Najlepsze podejście do ograniczenia artefaktów to:

  1. Zawsze zachowuj oryginalny obraz - nie zapisuj skompresowanego pliku JPEG, a następnie otwórz go później i zapisz ponownie. Dla skrajnego przykładu tego zobacz Generation Loss , wideo pokazujące obraz ponownie skompresowany 600 razy.
  2. Zapisz możliwie najwyższą jakość, biorąc pod uwagę ograniczenia rozmiaru pliku.
  3. Unikaj korzystania z usług, które poważnie kompresują twoje zdjęcia - w razie potrzeby umieść je gdzie indziej i połącz z nimi bezpośrednio.

Aby uzyskać więcej informacji, zobacz http://photo.net/learn/jpeg/

Sprawa Maynarda
źródło