“ Progressive” JPEG: เพราะเหตุใดเว็บไซต์จำนวนมากจึงหลีกเลี่ยงการแสดงผลแบบ JPEG? ข้อเสียข้อดี?


39

เมื่อเว็บเพจใช้ภาพ JPEG ภาพเหล่านั้นมักจะแสดงจากบนลงล่าง แต่ก็สามารถแสดงผลได้โดยใช้โหมดที่เรียกว่าJPEG แบบโปรเกรสซีฟซึ่งภาพจะเริ่มขนาดเต็มแต่เบลอและจะคมชัดขึ้นด้วย ผ่านไปเรื่อย ๆ จนกว่าจะโหลดเต็มที่ การโหลดแบบโปรเกรสซีฟต้องมีการบันทึกภาพด้วยวิธีดังกล่าว

ทำไมเว็บไซต์ไม่ใช้ JPEG แบบก้าวหน้าอีกต่อไป ข้อเสียคืออะไร มันเป็นเพียงการขาดการสนับสนุนเครื่องมือหรือไฟล์เหล่านี้ด้อยกว่าภาพ JPEG ที่แสดงจากบนลงล่างแบบดั้งเดิมหรือไม่?


2
เกิดอะไรขึ้นกับ gifs ที่สอดประสานกันด้วย?

7
พวกเขาเป็นผู้สร้างผู้ใจจดใจจ่อที่ยอดเยี่ยมในภาพยนตร์ประมาณปี 1990 รอภาพโหลดโอ้มันบล็อกน้อยลงเล็กน้อยโอเคเราเกือบจะเห็นนักฆ่าเผชิญหน้า ... BAM [ตัดไปสู่ฉากแอ็คชั่นที่น่าทึ่ง]
Mark Henderson

1
ฉันชอบอัลกอริธึมการซูมเข้าที่ไม่สิ้นสุดที่ใช้ใน Blade Runner
Chris W. Rea

3
@ Chris, ว่าไม่มีอะไรเมื่อเทียบกับซอฟแวร์ในแคระแดง
Peter Taylor

@PeterTaylor มันยอดเยี่ยม :-)
Chris W. Rea

คำตอบ:


14

Progressive JPEG ได้รับการสนับสนุนการกระจายตั้งแต่เริ่มแรก หน้า Wikipedia บนJPEGพูดว่า:

อย่างไรก็ตาม JPEG แบบก้าวหน้าไม่ได้รับการสนับสนุนอย่างกว้างขวาง[จำเป็นต้องมี]และแม้แต่ซอฟต์แวร์บางตัวที่รองรับ (เช่นรุ่นของ Internet Explorer ก่อน Windows 7) [12]จะแสดงเฉพาะภาพหลังจากดาวน์โหลดเสร็จสมบูรณ์แล้ว

NB คำสั่งแรกไม่มีที่มาและแหล่งที่มาสำหรับที่สองไม่จำเป็นต้องพูดว่านี่เป็นเพียงการสนับสนุนใน Windows 7

ฉันจำไม่ได้ว่าเมื่อใดที่ฉันหลีกเลี่ยง Progressive JPEG แต่ปัญหาล่าสุดคือตัวแยกวิเคราะห์รูปภาพใน Flash (ซึ่งสามารถโหลด PNGs, GIFs และ JPEG) ไม่สามารถโหลด Progressive JPEG ( อัปเดตลิงก์ในที่เก็บถาวรอินเทอร์เน็ต )ได้


แต่การใช้ Flash นั้นชั่วร้าย! ;-)
Marco Demaio

15

ฉันมักจะบันทึกภาพแบบโปรเกรสซีฟ

ผมไม่เคยมีประสบการณ์หรือได้ยินข้อบกพร่องหรือปัญหาการแสดงผล และแม้ว่าเบราว์เซอร์ที่เก่ามากบางตัวอาจไม่แสดงเอฟเฟ็กต์แบบโปรเกรสซีฟในที่สุดพวกเขาก็ยังแสดงภาพได้ดังนั้นจึงไม่ใช่ปัญหาใหญ่

ภาพ Progressive JPEG มักจะมีขนาดเล็กกว่าขนาดภาพเดียวกันได้โดยไม่ต้องมีความก้าวหน้า

ตัวอย่างเช่นภาพ JPG ขนาด 8K (คุณภาพสูงสุด) อาจกลายเป็น 6K (ยังคงคุณภาพสูงสุด) ได้อย่างง่ายดายเมื่อมีการใช้งานแบบโปรเกรสซีฟและไม่มีการสูญเสียพิกเซลของความคมชัด

ยิ่งไปกว่านั้นด้วยโปรแกรมตกแต่งรูปภาพอย่าง Photoshop การบันทึกภาพแบบ JPG โปรเจคต์ไม่ได้ทำอะไรเลย (มันเป็นเพียงช่องทำเครื่องหมายในหน้าต่างที่ปรากฏขึ้นเมื่อใช้คำสั่ง "บันทึกเป็น") ดังนั้นฉันมักจะทำ


7
แท้จริงแล้วyuiblog.com/blog/2008/12/05/imageopt-4พบว่า JPEG ที่มีขนาดใหญ่กว่า 10K ที่บีบอัดได้ดีกว่า 10K (ขนาดเล็กกว่า) ถึง 94% เมื่อมีความก้าวหน้า (แตกต่างกันไปสำหรับไฟล์ขนาดเล็ก ดีกว่าโดยไม่ต้องโหมดก้าวหน้า) ดังนั้นจึงเป็นความคิดที่ดีที่จะบันทึก JPEG ขนาดใหญ่แบบก้าวหน้า
John Mellor

1
ฉันเห็นด้วยกับจอห์นถ้าคุณทำให้คุณภาพลดลงจากคุณภาพสูงสุดถึงสูงมาก (80% -90%) หรือต่ำกว่าคุณจะเห็นว่าโปรเกรสซีไม่ได้ให้ผลที่มีขนาดเล็กลงอีกต่อไป
joelpittet

1
คุณไม่รู้แน่ชัดว่าภาพ 6K และ 8K นั้นมีคุณภาพเท่ากัน มันเป็นการตั้งค่าสูงสุดและการลดลงจะมองไม่เห็น ฉันสงสัยว่าไฟล์ที่เล็กลงจะสูญเสียมากกว่า ไม่มีทางที่อัลกอริทึมแบบก้าวหน้าจะมีประสิทธิภาพมากขึ้น 25% ถ้ามีอะไรก็ควรจะมีประสิทธิภาพน้อยลงเพราะมันเพิ่มชั้นของการแยกเพื่อบีบอัดข้อมูลที่มีความสัมพันธ์
Zdenek

6

อาร์ทลุงครอบคลุมข้อควรพิจารณาในการสนับสนุน แต่ก็มีความจริงที่ว่ามันไม่สำคัญว่าจะใช้เวลาส่วนใหญ่ บิตที่สำคัญในคำถามคือ "จนกว่าจะโหลดจนเต็ม" รูปแบบโปรเกรสซีฟไม่ใช่ความสวยงามที่ทำให้ภาพเบลอ แต่ก็ใช้งานได้:

หากภาพเป็นพอขนาดใหญ่ (โดยขนาดไฟล์) ที่มันจะใช้เวลาในขณะที่การดาวน์โหลดแล้วคุณจะเห็นความคืบหน้า
แม้ว่า JPEG ทุกแห่งจะถูกบันทึกเป็นแบบโปรเกรสซีฟ แต่ที่การเชื่อมต่อทั่วไปในปัจจุบันความเร็วของภาพส่วนใหญ่ที่คุณจะพบก็ไม่ใหญ่พอที่คุณจะเห็นผลกระทบในระดับที่สำคัญ นี่เป็นความคิดที่ดีเมื่อทุกคนใช้โมเด็มโทรศัพท์ช้า แต่ความอยากรู้อยากเห็นของแอปพลิเคชั่นที่ใช้งานได้ จำกัด เกินกว่าไซต์ที่ต้องการรูปภาพที่มีขนาดใหญ่มากเช่นช่างภาพจู้จี้จุกจิกหรืออะไรบางอย่าง

เช่นเดียวกันกับ GIF แบบอินเทอร์เลซเนื่องจากมีคนพยายามตรึงไว้ในความคิดเห็น

มีปัจจัยที่เป็นไปได้ที่ผู้ชมอาจกล่าวได้ว่าถ้าคุณพิจารณาประเทศที่มีโครงสร้างพื้นฐานสุทธิที่พัฒนาน้อยกว่าซึ่งพวกเขาอาจได้รับความเร็วที่ช้ากว่ามาก แต่ฉันไม่สามารถพูดได้ ฉันจะได้เห็นพวกเขาเป็นอาจจะมีบางโปรแกรมประยุกต์สำหรับการเรียกดูมือถือ แต่แล้ววงเรากลับไปที่จุด ๆ สนับสนุนสำหรับคุณลักษณะ


1
ฉันคิดว่าอุปกรณ์พกพานั้นเป็นสิ่งที่ควรพิจารณาเป็นอย่างยิ่ง - ฉันเดาว่าสมาร์ทโฟนรุ่นใหม่รองรับ และมันจะทำให้ประสบการณ์การท่องอินเทอร์เน็ตบน 3G หรือช้ากว่านั้นดีกว่ามาก - ถ้าคุณเห็นภาพที่ไม่เกี่ยวข้องกับการโหลดคุณสามารถออกไปก่อนที่คุณจะเสียเวลาหรือเงินมากขึ้น
Baumr

เบราว์เซอร์มือถืออาจมีการตั้งค่าให้แสดงเฉพาะการผ่าน JPEG ครั้งแรกหรือครั้งที่สองตามค่าเริ่มต้น สิ่งนี้จะบันทึกข้อมูลและมอบประสบการณ์การท่องเว็บที่เร็วขึ้น
อาทิตย์

Baumr: ไม่ต้นทุน CPU สูงเกินไป โทรศัพท์ของฉันไม่ได้วาดภาพปกติบางส่วนมันรอโหลดเต็มก่อนที่จะแสดง
Zdenek

sunk818: ในขณะที่เป็นไปได้ในทางทฤษฎีมันจะเป็นแฮ็กข้ามชั้น คุณจะต้องแยกวิเคราะห์ JPEG ในส่วน TCP ของสแต็กและขัดขวางการถ่ายโอนก่อน ... แย่มาก และมันก็จะทำให้ท่อแตกได้เช่นกัน และไลบรารี JPEG ส่วนใหญ่จะปฏิเสธที่จะทำงานกับไฟล์ดังกล่าวดังนั้นคุณต้องใช้แฮ็ค homebrew ด้วย! แค่ไม่.
Zdenek

3

Google ใช้การโหลดรูปภาพที่มีความก้าวหน้าใน images.google.com ในตอนแรกพวกเขาขยายนิ้วหัวแม่มือเพื่อดูขนาดภาพจากนั้นโหลดภาพต้นฉบับมา ฉันคิดว่านั่นเป็นวิธีปฏิบัติที่ดี เช่นเดียวกับ Progressive JPEG


ฉันก็ทำเช่นนั้น และโซลูชันของฉันดียิ่งขึ้นเพราะ Google โหลดภาพเต็มซ่อนอยู่ในขณะที่ฉันวางไว้ในเวอร์ชันคุณภาพต่ำ
Zdenek

2

การเรนเดอร์โปรเกรสซีฟ (gif / jpeg) เป็นวันเก่าของอินเทอร์เน็ตที่เซิร์ฟเวอร์ทำงานช้าและการถ่ายโอนข้อมูลระยะทางขั้นสุดท้ายเสร็จสิ้นเมื่อคลานผ่าน POTS ไม่มีใครเสียเวลาไปกับมันอีกแล้ว

ผู้ชมเว็บไซต์ของฉันจำนวนมากใช้บรอดแบนด์ที่ไม่ได้มีจุดประสงค์อื่นนอกจากภาพที่จางหายไปเล็กน้อยในภาพที่มีขนาดใหญ่มาก (แม้ว่าจะใช้สายเคเบิลขนาด 8MB แต่ก็แทบจะไม่สังเกตเห็น) หากผู้ชมของคุณยังอยู่ในโทรศัพท์สายตรงคุณอาจต้องกังวลกับมัน

และตามที่ระบุไว้ในความคิดเห็นด้านล่างสิ่งที่เก่าใหม่และความเร็วในการถ่ายโอนไมล์ขั้นสุดท้ายใหม่ยังคงเป็นปัญหาสำหรับเครือข่ายโทรศัพท์มือถือและการเข้าถึงดาวเทียมเนื่องจากความเร็วในการเชื่อมโยงหรือปัญหาความล่าช้า ดังนั้นให้ความสนใจกับผู้ชมของคุณและนำไปใช้ใหม่เพื่อประสบการณ์การใช้งานที่ดีกว่าที่คุณต้องการ


3
คุณกำลังละเลยการเชื่อมต่อ 3G บนมือถือซึ่งอาจช้า มันจะขึ้นอยู่กับว่าผู้คนที่มาเยี่ยมชมเว็บไซต์ของคุณ แต่ตลาดและการใช้งานมีการเติบโตโดยทั่วไปจริงๆ
Baumr

1
Progressive JPEG นั้นดีสำหรับประเทศเกาะที่มีแบนด์วิดท์ จำกัด และเวลาในการตอบสนองสูง
อาทิตย์

แต่ก็ยังไม่ควรหลีกเลี่ยงการเรนเดอร์ที่ก้าวหน้า
Bhavesh Gangani

ใช่วันนี้ภูมิภาคของโลกจะน้อยลงหากคุณใช้ 2G หรือ 3G เพิ่งมีผู้ใช้จาก Barundi โหลดหน้าเว็บที่เป็น 3-8s ทั่วโลกจากเดสก์ทอปแบบใช้สายเสร็จสมบูรณ์ใน 115s จากการเชื่อมต่อมือถือ 2G มันยังคงเป็นโลกที่ช้าบนมือถือ
ClearCrescendo

60% ของการเชื่อมต่อของ Chrome คือ 2G - Chrome Dev Summit 2016
Thomas McCabe

1

สำหรับเว็บไซต์อย่าง Wikipedia ที่แสดงภาพขนาดย่อของตัวเองในทันทีนั้นมีการพิจารณาเพิ่มเติม: อัลกอริธึมทั้งหมดสำหรับการสร้าง JPEG แบบโปรเกรสซีฟใช้หน่วยความจำและรอบการประมวลผลมากขึ้น เมื่อไฟล์ต้นฉบับมีขนาดใหญ่พอจะทำให้เกิดปัญหา


0

ห้องสมุดหลายแห่งไม่ได้ให้บริการเลยหรือโดยปริยาย แต่นั่นไม่ใช่เหตุผล ฉันเรียกใช้เว็บไซต์ที่เสนอภาพและฉันเกลียด JPEG แบบโปรเกรสซีฟ ทำไม? เพราะอัลกอริทึมที่ใช้ในนั้นแย่กว่าของฉัน! ฉันใช้เทคนิคเดียวกับ Google รวมทั้งฉันวางทับภาพย่อขนาดกลางบนภาพขนาดเล็ก ด้วยวิธีนี้ผู้ใช้จะได้รับคุณภาพเกือบเต็มทันทีในทุกการเชื่อมต่อไม่ว่าต้นฉบับจะมีขนาดใหญ่เพียงใดก็ตาม ไฟล์โปรเกรสซีฟจะได้รับการบล็อกมากทำลายผลกระทบนี้

การวางซ้อนภาพย่อเป็นวิธีที่ทำได้


0

Progressive JPEG ใช้งานได้ใน Chrome, Firefox และ IE 9+ ฉันคิดว่ามันครอบคลุมเบราว์เซอร์ส่วนใหญ่ที่ใช้ในปัจจุบันเพื่อใช้งานเว็บ

Progressive JPEG ให้ประสบการณ์การใช้งานที่ดีขึ้นในหลาย ๆ สถานการณ์ ฉันชอบที่จะเห็นความก้าวหน้าเมื่อเยี่ยมชมเว็บไซต์ช้า (ประเทศเกาะผล slashdot, การจราจรสูงสุด ฯลฯ ) ฉันไม่จำเป็นต้องเห็นคุณภาพอย่างเต็มที่ในทันที ความคิดเริ่มต้นของภาพมักจะดีพอ มันทำให้ฉันรำคาญมากขึ้นเมื่อเห็นภาพที่โหลดจากบนลงล่างช้า มันทำให้ฉันนึกถึง 300 baud modem days ของการดาวน์โหลด ASCII art

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.