„Progresywny” JPEG: Dlaczego wiele stron internetowych unika renderowania JPEG w ten sposób? Za I przeciw?


39

Gdy obrazy JPEG są używane przez stronę internetową, zwykle są renderowane od góry do dołu ... ale można je również renderować w trybie zwanym progresywnym JPEG , w którym obraz zaczyna się w pełnym rozmiarze , ale jest rozmazany , a następnie ostrzejszy z kolejne podania, aż do pełnego załadowania. Ładowanie postępowe wymaga zapisania obrazu w ten sposób.

Dlaczego więcej stron nie używa progresywnego JPEG? Jakie są wady? Czy to po prostu brak obsługi narzędzi, czy też pliki te są gorsze od tradycyjnych renderowanych obrazów JPEG z góry?


2
Co się stało z gifami z przeplotem?

7
Byli świetnym budowniczym napięć w filmach z około 1990 roku, czekając na załadowanie obrazu, och, jest trochę mniej blokujący, ok, prawie możemy zobaczyć twarz zabójców ... BAM [cięcie do dramatycznej sekwencji akcji]
Mark Henderson

1
Podoba mi się nieskończony algorytm powiększania używany w Blade Runner.
Chris W. Rea,

3
@Chris, to nic w porównaniu z oprogramowaniem w Red Dwarf .
Peter Taylor,

@PeterTaylor To jest niesamowite :-)
Chris W. Rea

Odpowiedzi:


14

Progresywny JPEG ma wsparcie rozproszone od samego początku. Strona Wikipedia na JPEG mówi:

Jednak progresywne pliki JPEG nie są tak szeroko obsługiwane [potrzebne źródło], a nawet niektóre oprogramowanie, które je obsługuje (takie jak wersje Internet Explorera wcześniejszego niż Windows 7) [12] wyświetla obraz dopiero po jego całkowitym pobraniu.

Uwaga: Pierwsze oświadczenie nie jest pozyskiwane, a źródło drugiego niekoniecznie mówi, że jest ono obsługiwane tylko w systemie Windows 7.

Nie pamiętam, kiedy po raz pierwszy uniknąłem Progresywnego JPEG, ale najnowszym problemem było to, że analizatory obrazu we Flashu (które mogą ładować PNG, GIF i JPEG) również nie mogą ładować Progresywnego JPEG ( zaktualizowane łącze w Internet Archive ) .


Ale używanie Flasha jest złe! ;-)
Marco Demaio

15

Zwykle zapisuję obrazy jako progresywne.

Nigdy nie spotkałem się z wadami lub problemami z renderowaniem . I nawet jeśli bardzo stara przeglądarka może nie wyświetlać progresywnego efektu, w końcu renderuje obraz, więc nie jest to duży problem.

Progresywne obrazy JPEG są zwykle mniejsze niż ten sam obraz bez progresywnego .

Na przykład obraz JPG o rozdzielczości 8 KB (maksymalna jakość) może łatwo stać się wartością 6 KB (wciąż maksymalna jakość), gdy zastosowany jest tryb progresywny i bez utraty rozdzielczości.

Co więcej, w edytorach obrazów, takich jak Photoshop, zapisywanie obrazu jako progresywnego JPG nie bierze niczego (jest to tylko pole wyboru w oknie, które pojawia się podczas używania polecenia „Zapisz jako”), więc zwykle to robię.


7
Rzeczywiście, yuiblog.com/blog/2008/12/05/imageopt-4 stwierdził, że 94% plików JPEG większych niż 10 KB kompresuje się lepiej (mniej) przy postępowym (choć jest inaczej dla małych plików, ponieważ 75% plików JPEG mniejszych niż 10 KB kompresuje się lepiej bez trybu progresywnego). Dlatego ogólnie dobrym pomysłem jest zapisywanie dużych plików JPEG jako progresywnych.
John Mellor,

1
Zgadzam się z Johnem, jeśli obniżysz jakość z maksymalnej do bardzo wysokiej (80% -90%) lub niższej, zobaczysz, że progresja nie daje już mniejszych rozmiarów.
joelpittet

1
Nie możesz mieć pewności, że obrazy 6K i 8K są tej samej jakości. Jest to ustawienie maksymalne, a redukcja będzie niewidoczna. Podejrzewam, że mniejszy plik będzie bardziej stratny. Nie ma możliwości, aby algorytm progresywny był o 25% bardziej wydajny. Jeśli już, to powinno być mniej wydajne, ponieważ dodaje warstwę separacji do skorelowanych skompresowanych danych.
Zdenek,

6

Artlung omówił kilka kwestii związanych ze wsparciem, ale jest też fakt, że przez większość czasu nie będzie to miało znaczenia. Ważną kwestią w pytaniu jest „dopóki nie zostanie w pełni załadowany”. Format progresywny nie jest estetyczną estetyką, która powoduje rozmycie obrazu, jest funkcjonalny:

Jeśli obraz jest wystarczająco duże (o rozmiar pliku), że to potrwać do pobrania, wtedy zobaczysz postęp.
Nawet jeśli każdy plik JPEG wszędzie został zapisany jako progresywny, przy obecnych wspólnych prędkościach połączenia przeważająca większość obrazów, które napotkasz, po prostu nie są wystarczająco duże, abyś mógł zobaczyć efekt w jakimkolwiek znaczącym stopniu. Był to świetny pomysł, gdy wszyscy używali powolnych modemów telefonicznych, ale coraz bardziej interesuje go ograniczona praktyczna aplikacja poza witrynami, które naprawdę wymagają bardzo dużych zdjęć, jak wybredny fotograf lub coś takiego.

To samo dotyczy GIF-ów z przeplotem, ponieważ ktoś dodał je w komentarzach.

Istnieje tutaj potencjalny czynnik odbiorców, powiedzmy, jeśli weźmie się pod uwagę kraje o słabiej rozwiniętej infrastrukturze sieci, w których mogą osiągać znacznie wolniejsze prędkości, ale nie mogę z tym rozmawiać. I mógł je zobaczyć jak ewentualnie mający jakąś aplikację do przeglądania mobilnego, ale potem z powrotem do pętli przy wsparciu wypryskami dla tej funkcji.


1
Myślę, że mobilność jest tutaj naprawdę ważnym aspektem - domyślam się, że nowy smartfon ją obsługuje; i sprawi, że przeglądanie w 3G lub niższych prędkościach będzie znacznie lepsze - jeśli zobaczysz obrazy, które nie mają związku z ładowaniem, możesz wyjść, zanim zmarnujesz więcej czasu lub pieniędzy
Baumr

Przeglądarka mobilna może domyślnie mieć ustawienie wyświetlania tylko pierwszego lub drugiego przebiegu progresywnego JPEG. Pozwoli to zaoszczędzić na danych i zapewni szybsze przeglądanie.
niedz.

Baumr: Nie, koszt procesora jest zbyt wysoki; mój telefon nie rysuje nawet częściowo zwykłego obrazu, czeka na pełne załadowanie, a nawet wyświetla.
Zdenek,

sunk818: Choć teoretycznie jest to możliwe, byłby to hack między warstwami. Będziesz musiał przeanalizować JPEG w części stosu TCP i wcześnie przerwać przesyłanie ... Straszne. I to też przerwałoby rurociągi. I większość bibliotek JPEG odmówiłaby pracy z takim plikiem, więc musiałbyś również użyć hakowania homebrew! Po prostu nie.
Zdenek,

3

Google wykorzystuje ładowanie progresywne obrazów w images.google.com. Najpierw rozciągają kciuk, aby wyświetlić podgląd wymiarów, a następnie ładują oryginalny obraz. Myślę, że to dobra praktyka. Podobnie jak Progresywny JPEG


Ja też to robię. A moje rozwiązanie jest jeszcze lepsze, ponieważ Google ładuje cały obraz ukryty, podczas gdy stopniowo go upuszczam w niskiej jakości.
Zdenek

2

Progresywne renderowanie (gif / jpeg) było dla starych dobrych czasów Internetu, w których serwery działały powoli, a transfer ostatniej mili przebiegał podczas przeszukiwania POTS. Nikt już nie marnuje na to czasu.

Tak wielu odbiorców mojej strony internetowej korzysta z Internetu szerokopasmowego, że nie służy to żadnemu celowi poza minimalnym zanikiem obrazu na bardzo dużym obrazie (chociaż na kablu 8 MB jest to prawie niezauważalne). Jeśli twoi odbiorcy nadal korzystają z telefonu Dial-up, możesz się tym martwić.

Jak wskazano w komentarzach poniżej, stare jest nowe, a nowa prędkość transferu ostatniej mili nadal stanowi problem dla sieci telefonii komórkowej i dostępu satelitarnego z powodu problemów z szybkością łącza lub opóźnieniami. Dlatego zwracaj uwagę na swoich odbiorców i wdrażaj je ponownie, aby uzyskać lepsze wrażenia użytkowników tam, gdzie ich potrzebujesz.


3
Zaniedbujesz połączenia mobilne 3G - mogą być wolne; zależy od tego, czy odwiedzający ją odwiedzą witrynę, ale ogólnie rynek i korzystanie z niej naprawdę rosną
Baumr

1
Progresywny JPEG jest również dobry w krajach wyspiarskich, w których przepustowość jest ograniczona, a opóźnienia są wysokie.
niedz.

Ale nadal nie należy unikać progresywnego renderowania.
Bhavesh Gangani

Tak, obecnie mniej jest regionu na świecie niż na 2G lub 3G. Właśnie użytkownik z Barundi załadował stronę o globalnej długości 3-8 sekund z przewodowego pulpitu w 115 sekund z połączenia mobilnego 2G. To wciąż może być powolny świat na urządzeniach mobilnych.
ClearCrescendo,

60% połączeń Chrome to 2G - Chrome Dev Summit 2016.
Thomas McCabe,

1

W przypadku witryn takich jak Wikipedia, które faktycznie wyświetlają własne miniatury w locie, istnieje dodatkowa uwaga: wszystkie algorytmy tworzenia progresywnych plików JPEG zajmują więcej pamięci i cykli procesora. Gdy oryginalne pliki są wystarczająco duże, stwarza to problemy.


0

Wiele bibliotek wcale tego nie oferuje lub domyślnie nie. Ale to nie jest powód. Prowadzę stronę internetową oferującą obrazy i nienawidzę progresywnych plików JPEG. Czemu? Ponieważ zastosowany w nich algorytm jest gorszy niż mój! Używam tej samej techniki co Google, a ponadto nakładam średnią miniaturę na małą. W ten sposób użytkownik uzyskuje niemal pełną jakość natychmiast przy każdym połączeniu, bez względu na to, jak ogromny był oryginał. Pliki progresywne stają się bardzo blokujące, niszcząc ten efekt.

Nakładka na miniaturę jest na to sposobem.


0

Progresywny JPEG działa w Chrome, Firefox i IE 9+. Myślę, że dotyczy to większości przeglądarek używanych obecnie do korzystania z Internetu.

Progresywny JPEG zapewnia lepszą obsługę w wielu sytuacjach. Lubię widzieć progresywność podczas odwiedzania powolnej witryny (kraj wyspiarski, efekt slashdot, szczytowy ruch itp.). Nie muszę od razu widzieć pełnej jakości. Początkowa idea obrazu jest często wystarczająca. Bardziej denerwuje mnie widok wolnego ładowania obrazu od góry do dołu. Przypomina mi to 300 dni modemu transmisji danych pobierania sztuki ASCII.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.