"Progressives" JPEG: Warum vermeiden viele Websites das Rendern von JPEGs auf diese Weise? Für und Wider?

39

Wenn JPEG-Bilder von einer Webseite verwendet werden, werden sie normalerweise von oben nach unten gerendert. Sie können jedoch auch in einem Modus namens progressives JPEG gerendert werden , bei dem das Bild in voller Größe , aber unscharf beginnt und dann schärfer wird aufeinanderfolgende Pässe, bis es voll geladen ist. Beim progressiven Laden muss das Bild auf diese Weise gespeichert werden.

Warum verwenden nicht mehr Websites progressives JPEG? Was sind die Nachteile? Ist es einfach ein Mangel an Werkzeugunterstützung oder sind diese Dateien den herkömmlichen von oben nach unten gerenderten JPEG-Bildern in irgendeiner Weise unterlegen?

Chris W. Rea
quelle
2
Was ist auch mit Interlaced-Gifs passiert?
7
Sie waren ein großartiger Suspense Builder in Filmen von circa 1990 und warteten darauf, dass das Bild geladen wurde, oh, es ist ein bisschen weniger blockig, ok, wir können fast das Gesicht der Mörder sehen ... BAM [Schnitt zu einer dramatischen Action-Sequenz]
Mark Henderson
1
Ich mag den unendlich erweiterten Zoom-In-Algorithmus, der in Blade Runner verwendet wird.
Chris W. Rea
3
@ Chris, das ist nichts im Vergleich zu der Software in Red Dwarf .
Peter Taylor
@ PeterTaylor Das ist fantastisch :-)
Chris W. Rea

Antworten:

14

Progressives JPEG wird seit seiner Einführung von Scattershots unterstützt. Auf der Wikipedia-Seite zu JPEG heißt es:

Allerdings sind progressive JPEGs nicht so weit unterstützt, [Bearbeiten] und sogar einige Software , die Unterstützung bietet sie (wie Internet Explorer - Versionen vor Windows 7) [12] nur zeigt das Bild , nachdem sie vollständig heruntergeladen wurde.

Hinweis: Die erste Anweisung ist nicht vollständig und die Quelle für die zweite Anweisung besagt nicht unbedingt, dass dies nur in Windows 7 unterstützt wird.

Ich kann mich nicht erinnern, wann ich Progressive JPEG zum ersten Mal vermieden habe, aber das neueste Problem war, dass die Bildparser in Flash (die PNGs, GIFs und JPEGs laden können) auch Progressive JPEG ( aktualisierter Link im Internetarchiv ) nicht laden können .

artlung
quelle
Aber mit Flash ist böse! ;-)
Marco Demaio
15

Normalerweise speichere ich Bilder als progressiv.

Ich habe noch nie von Nachteilen oder Renderproblemen gehört . Und selbst wenn einige sehr alte Browser den progressiven Effekt nicht rendern, rendern sie schließlich das Bild, sodass dies kein großes Problem darstellt.

Progressive JPEG-Bilder sind normalerweise kleiner als das gleiche Bild ohne Progressive .

Beispielsweise kann ein JPG-Bild mit 8K (max. Qualität) leicht zu einem JPG-Bild mit 6K (immer noch max. Qualität) werden, wenn Progressive verwendet wird und kein Pixel der Definition verloren geht.

Bei Bildbearbeitungsprogrammen wie Photoshop genügt es nicht, ein Bild als JPG progressiv zu speichern (dies ist nur ein Kontrollkästchen im Fenster, das bei Verwendung des Befehls "Speichern unter" angezeigt wird).

Marco Demaio
quelle
7
In der Tat hat yuiblog.com/blog/2008/12/05/imageopt-4 festgestellt, dass 94% der JPEGs, die größer als 10 KB sind , im progressiven Modus besser (kleiner) komprimiert werden (dies ist jedoch bei kleinen Dateien anders als bei 75% der JPEGs, die kleiner als 10 KB sind besser ohne progressiven Modus). Daher ist es im Allgemeinen eine gute Idee, große JPEGs als progressiv zu speichern.
John Mellor
1
Ich stimme John zu, wenn Sie die Qualität von maximaler Qualität auf sehr hoch (80% -90%) oder niedriger bringen, werden Sie feststellen, dass progressive nicht länger eine kleinere Größe ergibt.
Joelpittet
1
Sie können nicht sicher sein, ob die 6K- und 8K-Bilder dieselbe Qualität haben. Dies ist die maximale Einstellung und die Reduzierung wird unsichtbar. Ich vermute, dass die kleinere Datei verlustbehafteter sein wird. Der progressive Algorithmus könnte auf keinen Fall 25% effizienter sein. Wenn überhaupt, sollte es weniger effizient sein, da es korrelierten komprimierten Daten eine Trennebene hinzufügt.
Zdenek
6

Artlung behandelte einige Support-Überlegungen, aber es gibt auch die Tatsache, dass es die meiste Zeit nicht wichtig sein wird. Das wichtige Element in der Frage ist "bis es voll geladen ist". Das progressive Format ist keine ästhetische Schönheit, die das Bild unscharf werden lässt, sondern funktional:

Wenn ein Bild groß genug (von Dateigröße) ist , dass es eine Weile , bis Download nimmt, dann werden Sie den Fortschritt sehen.
Selbst wenn alle JPEG-Dateien überall als progressiv gespeichert wurden, ist bei den derzeit üblichen Verbindungsgeschwindigkeiten die überwiegende Mehrheit der Bilder, auf die Sie stoßen, nicht groß genug, um den Effekt jemals in nennenswertem Maße zu erkennen. Dies war eine großartige Idee, als alle mit langsamen Telefonmodems arbeiteten, aber es ist zunehmend eine Neugier auf begrenzte praktische Anwendungen jenseits von Websites, die wirklich sehr große Bilder erfordern, wie z. B. einen wählerischen Fotografen oder ähnliches.

Das Gleiche gilt für Interlaced-GIFs, da sie in den Kommentaren von jemandem behandelt wurden.

Hier gibt es einen potenziellen Publikumsfaktor, wenn Sie Länder mit einer weniger entwickelten Netzinfrastruktur in Betracht ziehen, in denen sie möglicherweise erheblich langsamer werden, aber ich kann nicht damit sprechen. Ich könnte meinen, dass sie möglicherweise eine Anwendung für mobiles Browsen haben, aber dann kehren wir zur punktuellen Unterstützung der Funktion zurück.

Su '
quelle
1
Ich denke, dass das Handy hier eine große Rolle spielt - ich vermute, dass das neue Smartphone dies unterstützt. und das macht das Surfen mit 3G oder langsameren Geschwindigkeiten viel besser - wenn Sie Bilder sehen, die beim Laden irrelevant sind, können Sie gehen, bevor Sie mehr Zeit oder Geld
verschwenden
Ein mobiler Browser kann standardmäßig so eingestellt sein, dass nur der erste oder zweite Durchgang eines progressiven JPEG angezeigt wird. Dies spart Daten und sorgt für ein schnelleres Surferlebnis.
So,
Baumr: Nein, die CPU-Kosten sind zu hoch. Mein Telefon zeichnet nicht einmal teilweise ein reguläres Bild, sondern wartet auf die vollständige Auslastung, bevor es überhaupt angezeigt wird.
Zdenek
sunk818: Obwohl theoretisch möglich, wäre es ein Cross-Layer-Hack. Sie müssten das JPEG im TCP-Teil des Stapels analysieren und die Übertragung vorzeitig unterbrechen ... Schrecklich. Und es würde auch das Pipelining brechen. Und die meisten JPEG-Bibliotheken würden sich weigern, mit solchen Dateien zu arbeiten, daher müssten Sie auch einen Homebrew-Hack verwenden! Einfach nein.
Zdenek
3

Google verwendet das progressive Laden ihrer Bilder in images.google.com. Zuerst strecken sie den Daumen, um die Abmessungen in der Vorschau anzuzeigen, und laden dann das Originalbild darüber. Ich denke, das ist eine gute Praxis. Genau wie bei Progressive JPEG

Themetis
quelle
Das mache ich auch Und meine Lösung ist noch besser, weil Google das gesamte Bild versteckt lädt, während ich es nach und nach auf die Version mit geringer Qualität fallen lasse.
Zdenek
2

Progressive Rendering (gif / jpeg) war für die guten alten Zeiten des Internets gedacht, in denen die Server langsam waren und die Datenübertragung auf der letzten Meile beim Crawlen durch POTS erfolgte. Niemand verschwendet mehr Zeit damit.

So viele meiner Website-Besucher nutzen Breitband, dass es keinem anderen Zweck dient als einem minimalen Einblendeffekt auf einem sehr großen Bild (obwohl es bei einem 8-MB-Kabel kaum auffällt). Wenn Ihr Publikum immer noch telefoniert, sollten Sie sich darüber Gedanken machen.

Und wie in den Kommentaren unten ausgeführt, ist das Alte neu und die neue Übertragungsgeschwindigkeit für die letzte Meile ist aufgrund von Problemen mit der Verbindungsgeschwindigkeit oder der Latenz immer noch ein Problem für das Mobilfunknetz und den Satellitenzugriff. Achten Sie also auf Ihr Publikum und implementieren Sie es erneut, um die Benutzererfahrung dort zu verbessern, wo Sie sie benötigen.

Fiasco Labs
quelle
3
Sie vernachlässigen mobile 3G-Verbindungen - diese können langsam sein. Es wird davon abhängen, ob die Leute Ihre Site besuchen, aber der Markt und die Nutzung im Allgemeinen wachsen
Baumr
1
Progressive JPEG eignet sich auch für Inselstaaten, in denen die Bandbreite begrenzt und die Latenz hoch ist.
So,
Dennoch sollte progressives Rendern nicht vermieden werden.
Bhavesh Gangani
Ja, es ist heutzutage weniger, in welcher Region der Welt Sie mit 2G oder 3G unterwegs sind. Gerade hat ein Benutzer aus Barundi eine Seite von 3-8s global von einem kabelgebundenen Desktop geladen, der in 115s von einer 2G-Mobilverbindung aus vollständig ist. Es kann immer noch eine langsame Welt auf dem Handy sein.
ClearCrescendo
60% der Chrome-Verbindungen sind 2G - Chrome Dev Summit 2016.
Thomas McCabe,
1

Für Sites wie Wikipedia, die ihre eigenen Thumbnails im Handumdrehen rendern, gibt es eine zusätzliche Überlegung: Alle Algorithmen zum Erstellen progressiver JPEGs benötigen mehr Speicher und CPU-Zyklen. Wenn die Originaldateien groß genug sind, treten Probleme auf.

trlkly
quelle
0

Viele Bibliotheken bieten es nicht oder nicht standardmäßig an. Aber das ist nicht der Grund. Ich betreibe eine Website mit Bildern und hasse die progressiven JPEGs. Warum? Weil der in ihnen verwendete Algorithmus schlechter ist als mein eigener! Ich verwende die gleiche Technik wie Google und überlagere das kleine Miniaturbild tatsächlich mit einem mittleren Miniaturbild. Auf diese Weise erhält der Benutzer bei jeder Verbindung, egal wie groß das Original war, sofort fast die volle Qualität. Die progressiven Dateien werden sehr blockiert, wodurch dieser Effekt zunichte gemacht wird.

Thumbnail-Overlay ist der Weg, um es zu tun.

Zdenek
quelle
0

Progressive JPEG funktioniert in Chrome, Firefox und IE 9+. Ich denke, das deckt die meisten Browser ab, die heute verwendet werden, um das Web zu nutzen.

Progressive JPEG bietet in vielen Situationen ein besseres Benutzererlebnis. Ich mag es progressiv zu sehen, wenn ich eine langsame Seite besuche (Inselland, Slashdot-Effekt, Spitzenverkehr usw.). Ich muss nicht sofort die volle Qualität sehen. Eine erste Idee des Bildes ist oft gut genug. Es ärgert mich mehr, wenn ich ein langsames Laden von oben nach unten sehe. Es erinnert mich an die 300-Baud-Modem-Tage des Herunterladens von ASCII-Kunst.

Sonne
quelle