ทำไมคนใช้ภาพ JPG?


17

ฉันเห็นภาพ JPG ทุกที่ แต่ทำไม

ไฟล์ PNG มีความทึบในขณะที่ JPG ไม่มี ฉันได้ลองส่งออกภาพบางส่วนไปยัง PNG และ JPG เพื่อเปรียบเทียบขนาดและพวกเขาทั้งคู่ตรงกันหรือ PNG มีขนาดเล็กลง (ขึ้นอยู่กับภาพของหลักสูตร)

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือภาพ JPG ขนาด 512x512 ที่ระบุว่า "JPG"

ป้อนคำอธิบายรูปภาพที่นี่

และนี่คือรูปภาพ PNG ขนาด 512x512 ที่ระบุว่า "PNG"

JPG คือ 31.7kb และ PNG คือ 25.9kb

แล้วอะไรล่ะ


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

1
@Nobody PNG อาจสูญเสียหรือสูญเสียไป ขึ้นอยู่กับว่าคุณจะส่งออกอย่างไร
DA01

8
FYI, คุณไม่ค่อยจะใช้ JPG สำหรับการวาดเส้นเหมือนตัวอย่างที่คุณใช้ที่นี่ ดังนั้นตามตัวอย่างเหล่านี้อย่างหมดจดคุณจะไม่ใช้ JPG แต่ถ้าเป็นรูปคุณจะรู้ว่าคุณได้ผลลัพธ์ที่แตกต่างอย่างสิ้นเชิง
DA01

7
ฉันไม่อยากเชื่อเลยว่าคำถามนี้จะมีชีวิตรอดเกินกว่า 10 วินาที
เสื้อคลุมธรรมดา

2
@ DA01 PNG จะไม่สูญเสีย แต่คุณสามารถจัดการภาพโดยไม่ตั้งใจก่อนที่จะส่งออกไปยัง PNG เพื่อทำให้ภาพมีขนาดเล็กลง ข้อกำหนด PNG ไม่ได้มีอะไรเกี่ยวกับเรื่องนี้
ไม่มีใคร

คำตอบ:


35

เนื่องจากวิธีบีบอัดรูปภาพที่มีสีและรูปร่างที่ผิดปกติดีกว่าเช่นภาพถ่าย

คุณเคยลองใช้ epxeriment แบบเดียวกับที่เคยทำ แต่แล้วถ่ายรูป . png นั้นน่าจะมีขนาดใหญ่กว่า. jpg โดยไม่คำนึงถึงปัจจัยการบีบอัดของ. jpg

ตัวอย่าง:

รูปภาพ png
.png รูปภาพ, 110k

jpeg ที่คุณภาพ 100
.jpg ที่คุณภาพ 100%, 63k

jpeg ที่ 30 คุณภาพ
.jpg ที่คุณภาพ 30% ความเลว 9k

หากคุณมองอย่างใกล้ชิดคุณจะเห็นสิ่งประดิษฐ์บางอย่างที่มีคุณภาพ 30% .jpg แต่ส่วนใหญ่เป็นเพราะขอบหลอดไฟที่แข็งเมื่อเทียบกับพื้นหลังสีเขียวที่เรียบไม่ได้ให้อัลกอริธึมการบีบอัดที่ดีเกินไป คุณสามารถลดรูปภาพปกติให้มีคุณภาพ 10 หรือ 5% โดยไม่สูญเสียสิ่งที่คุณสังเกตเห็นได้อย่างรวดเร็ว


3
FWIW: หลังจากปรับ PNG ให้เหมาะสมแล้วจะมีขนาด 34 KB โดยไม่มีการสูญเสียที่รู้จัก
มาริโอ

ว้าวฉันไม่เคยรู้เลย ฉันลองแปลงภาพถ่ายที่ฉันถ่ายเป็น PNG และเปลี่ยนจาก 550k เป็น 2933k คุณรู้หรือไม่ว่าสิ่งที่ทำให้กรณีหรือไม่
JediBurrell

10
@JediBurrell การบีบอัด PNG เป็นแบบไม่สูญเสีย (AFAIK) เสมอในขณะที่การบีบอัดของ JPG จะลดลงในที่สุดข้อมูลรูปภาพ ในกรณีของคุณ JPG ที่ถูกบีบอัดแล้วถึงแม้ว่ารูปภาพที่ดูดีจะมีขอบรอบ ๆ ที่เก็บข้อมูลแต่ละอัน (บีบอัดสี่เหลี่ยมเล็ก ๆ ที่ประกอบเป็นรูปภาพ JPG) และ PNG จะเลือกสิ่งประดิษฐ์เหล่านี้เพื่อไม่ให้สูญหาย ดังนั้น PNG ของคุณจึงมีขนาดใหญ่กว่า JPG ดั้งเดิมของคุณมาก การบีบอัด JPG ซ้ำอีกครั้งโดยใช้ JPG จะทำให้สิ่งนี้แย่ลงหลายต่อหลายครั้ง - เอฟเฟกต์นี้เรียกว่า "การบล็อกเมตา"
Jay Versluis

2
@JediBurrell หากคุณสนใจในรายละเอียดด้านเทคนิคและคณิตศาสตร์คุณสามารถรับชมวิดีโอนี้โดย Computerphile
พอล Manta

2
"พื้นหลังสีเขียวที่ราบรื่นนั้นไม่ได้ยืมตัวเองได้ดีไปกว่าอัลกอริธึมการบีบอัด": มันตรงกันข้าม, การไล่ระดับสีนั้นแสดงโดย JPEG ได้ดีมาก, ในขณะที่ขอบแข็งไม่ได้ผลิตสิ่งประดิษฐ์ใกล้เคียง สำหรับผู้อยากรู้อยากเห็นอ่านเกี่ยวกับฟูริเยร์แปลงสัญญาณสี่เหลี่ยม
Lloeki

13

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

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

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

เหตุใดจึงใช้ JPEG โดยทั่วไปแล้วจะด้อยกว่าในแง่ของความเที่ยงตรงและพื้นที่เก็บข้อมูล แน่นอนเหตุผลหลักคือมันเป็นมาตรฐานอุตสาหกรรมและได้รับการสนับสนุนอย่างกว้างขวาง กล้องทุกตัวในโลกใช้ RAW (แท้จริง, ข้อมูลดิบ) หรือ JPEG มีตัวประมวลผลข้อมูลฮาร์ดแวร์ในตัวกล้องเหล่านั้นเพื่อบีบอัดข้อมูล JPEG อย่างรวดเร็วที่สุดเป็นต้น

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

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


PNG อาจสูญเสียโอกาส ซอฟต์แวร์บันทึกอาจเลือกที่จะสูญเสียข้อมูลที่ยากสำหรับรูปแบบการบีบอัดที่ดีกว่า ธรรมชาติของเวฟเล็ตของ jpeg ทำให้มันเป็นไปไม่ได้ที่จะสูญเสีย
joojaa

@joojaa คุณสามารถสำรองข้อความที่บีบอัด PNG "อาจเลือกที่จะสูญเสียข้อมูลที่ยากลำบาก"?
CJ Dennis

@joojaa JPEG ใช้การบีบอัด DCT ไม่ใช่เวฟเล็ต คุณอาจคิดถึง JPEG 2000
bcrist

7
ฉันเข้าใจว่าการลดสีเกิดขึ้นก่อนที่ภาพจะถูกส่งไปยังตัวแปลงสัญญาณ PNG เพียงเพราะรูปแบบสามารถจัดเก็บข้อมูลที่สูญหายไปแล้วไม่ทำให้สูญเสีย การเปลี่ยน RGB 32 บิตด้วยภาพอัลฟ่าเป็นรูปภาพขาวดำ 1 บิตจะสูญเสียข้อมูลจำนวนมาก แต่ไม่ใช่ PNG ที่ทำเช่นนั้น ลดความลึกของสีเป็นแปลงสูญเสียไม่สูญเสียการบีบอัด
CJ Dennis

2
ความผิดพลาดของฉันคือ DCT ประเด็นของฉันคือในขณะที่ PNG นั้นไม่สูญเสียตัวเพิ่มประสิทธิภาพ PNG ทั้งหมด แต่อย่างใด! ดังนั้นโดยไม่ทราบว่าคุณใช้อะไรคุณไม่ทราบว่ากระบวนการนี้เป็นแบบสูญเสียหรือไม่ ดังนั้นคำถามเกี่ยวกับความไม่เป็นไปได้จึงไม่ง่ายอย่างที่คิด เช่นเดียวกับการเปลี่ยนแปลงความลึกของสีที่เกิดขึ้นก่อนที่จะบันทึกเครื่องมือเพิ่มประสิทธิภาพ PNG อาจเปลี่ยนภาพในรูปแบบอื่นก่อนบันทึก @JCDennis crunchers เหล่านี้มีอยู่เพียงแค่ดูหน้าคู่มือของตนเอง
joojaa

7

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


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