ขนาดไฟล์ "ที่เหมาะสมที่สุด" ของภาพ JPEG ที่เกี่ยวกับขนาดของไฟล์คือเท่าใด


10

ฉันวางแผนที่จะเขียนสคริปต์ที่จะสแกนภาพ JPEG มากกว่า 100,000 ภาพและบีบอัดใหม่หากมีขนาดใหญ่เกินไป การเขียนสคริปต์เป็นส่วนที่ง่าย แต่ฉันไม่แน่ใจว่าจะจัดหมวดหมู่รูปภาพว่า "ใหญ่เกินไป" ได้อย่างไร

ตัวอย่างเช่นมีภาพขนาด 2400x600px ที่มีขนาดไฟล์ 1.81MB บันทึกของ Photoshop สำหรับคำสั่งเว็บสร้างไฟล์ 540KB ที่ 60 คุณภาพและขนาดเดียวกัน นี่คือประมาณ 29% ของขนาดเดิม

ตอนนี้ฉันกำลังคิดถึงการใช้ตัวเลขเหล่านี้เป็นแนวทาง บางสิ่งบางอย่างเช่น 540KB / (2,400 * 600 / 1,000,000) = 375KB ต่อล้านพิกเซล ภาพที่มีขนาดใหญ่กว่านี้ถือว่ามีขนาดใหญ่ นี่เป็นวิธีที่ถูกต้องหรือมีวิธีที่ดีกว่านี้หรือไม่

แก้ไข 1: รูปภาพจำเป็นต้องปรับให้เหมาะสมเพื่อแสดงบนเว็บไซต์

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



1
ความคิดเห็นแรกของ xiota ควรเป็นคำตอบ! btw ลำดับความสำคัญของคุณคืออะไร? ถ้าด้วยเหตุผลบางอย่างคุณแค่ต้องการไฟล์เล็ก ๆ คุณภาพก็อาจจะแย่ลงในบางครั้ง มันง่ายในการสร้างไฟล์ jpeg ขนาดใหญ่ที่ไม่มีเหตุผลพร้อมคุณภาพที่รับไม่ได้ การตรวจจับและบีบอัดรูปภาพเหล่านี้เป็นความคิดที่ดีเพียงใช้การตั้งค่าคุณภาพ jpeg เช่น xiota กล่าว
szulat

18
"เหมาะสมที่สุด" สำหรับวัตถุประสงค์อะไร? แม้กระทั่งการพูดว่า 'การใช้เว็บ' นั้นค่อนข้างกว้าง ผู้ชมที่คาดการณ์ไว้จะมองภาพในโทรศัพท์ขนาดกะทัดรัดหรือไม่? สมาร์ทโฟนขนาดใหญ่ แผ่นหรือแท็บเล็ต โน้ตบุ๊ค จอคอมพิวเตอร์ขนาดใหญ่? ทีวี 60 "8K? jumbotron?
ไมเคิลซี

2
มีความเป็นไปได้ที่ซ้ำกันของคุณภาพที่จะเลือกเมื่อแปลงเป็น JPG?
Hueco

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

คำตอบ:


4

บนเฉลี่ย , จุดหวาน JPEG เป็นรอบหนึ่งบิตต่อพิกเซล

แน่นอนว่าสิ่งนี้จะแตกต่างกันไปขึ้นอยู่กับเนื้อหาของภาพเพราะกราฟิกบางประเภท (เช่นพื้นที่ราบและการไล่ระดับสีที่ราบเรียบ) บีบอัดได้ดีกว่าสิ่งอื่น (เสียง, ข้อความ) ดังนั้นจึงไม่ใช่วิธีที่มีประสิทธิภาพ

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

ต้องบอกว่ามีวิธีการปฏิบัติที่สมเหตุสมผล:

  1. เลือกการตั้งค่าคุณภาพ JPEG สูงสุดที่คุณพอใจ (อยู่ในช่วง 70 ถึง 85)
  2. บีบอัดรูปภาพให้อยู่ในระดับคุณภาพนั้น
  3. หากภาพที่บีบอัดใหม่มีขนาดเล็กกว่า ~ 10%ให้เก็บภาพที่บีบอัดใหม่ไว้

สิ่งสำคัญคือต้องไม่เลือกขนาดไฟล์ที่เล็กลงและจำเป็นต้องลดขนาดไฟล์ลงอย่างมาก นั่นเป็นเพราะการบีบอัดไฟล์ JPEG ใหม่มักจะลดขนาดไฟล์ลงเล็กน้อยเนื่องจากการสูญเสียรายละเอียดที่เกิดจากการสูญเสียรายละเอียดของ JPEG และการแปลงเป็น 8 บิต RGB ดังนั้นขนาดไฟล์ที่หยดน้อยอาจมีคุณภาพที่ลดลงอย่างมาก มัน.


4
นี่คือสิ่งที่ฉันทำในท้ายที่สุด ฉันใช้หนึ่งบิตต่อพิกเซลเป็นแนวทางในการกรอง 30,000 ภาพจาก 100,000+ ภาพและบีบอัดใหม่โดยใช้ imagemagick ที่มีคุณภาพ 85% หากภาพที่ได้มีขนาดเล็กกว่า 50% จากนั้นฉันจะเก็บภาพใหม่ มันใช้งานได้ในกรณีของฉันเพราะ "ภาพใหญ่" ถูกสร้างขึ้นโดยใช้ Photoshop โดยใช้คุณภาพ 100% รูปภาพอื่น ๆ กว่า 70,000 รูปนั้นเป็น OK-ish ในแง่ของขนาดไฟล์และการบีบอัดใหม่นั้นไม่ได้สร้างการประหยัดที่เพียงพอ (เปอร์เซ็นต์ฉลาด) หรือมีการสูญเสียคุณภาพอย่างเห็นได้ชัด
Salman

1
ฉันชอบย่อหน้าที่สองของคุณ แต่คุณได้รับการสนับสนุนสำหรับกฎนิ้วหัวแม่มือแบบหนึ่งบิตต่อพิกเซล (24 ×การบีบอัด) ที่คุณนำไปด้วยหรือไม่?
โปรดอ่านโปรไฟล์ของฉัน

30

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

พิจารณาตัวเลือกต่อไปนี้แทน:

  • วิธีการที่ดีพอ  ใช้การตั้งค่าคุณภาพที่คุณยอมรับได้เช่น 75 เปรียบเทียบขนาดของผลลัพธ์กับภาพต้นฉบับและเก็บไฟล์ขนาดเล็กลง ดูคุณภาพที่ควรเลือกเมื่อแปลงเป็น JPG?

  • ใช้ผืน JPEGเช่น JPEGmini หรือjpeg-recompressจากJPEG การเก็บถาวร พวกเขาถูกออกแบบมาเพื่อทำสิ่งที่คุณดูเหมือนจะพยายามทำ แต่มีความตระหนักมากขึ้นเกี่ยวกับขั้นตอนวิธี JPEG

  • สร้างภาพขนาดย่อหลายขนาดตามที่Nathancahillแนะนำจากมุมมองของผู้พัฒนาเว็บ


7
หรือถ้าคุณต้องการที่จะไป "ที่สุด" ในการลด JPEG, guetzli จดบันทึกความต้องการหน่วยความจำและเวลา
ฟิลิปเคนดัล

2
ฉันลอง guetzli แต่ไม่ประทับใจมาก มันช้ามากและลดขนาดลงประมาณ 20-30% เท่านั้น ด้วย jpeg-recompress ไฟล์จะลดลง 80% ด้วยอัลกอรึทึมทอด
xiota

18

ไม่นี่เป็นวิธีที่ผิด

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

ทำการทดสอบ ใช้ไฟล์สีขาวที่มีขนาด 2400x600px และบันทึกเป็น JPG

ตอนนี้ถ่ายรูปป่า (เหมือนกัน 2400x600px) พร้อมรายละเอียดมากมายแล้วบันทึกไว้ ไฟล์นี้จะมีขนาดใหญ่ขึ้นโดยใช้การตั้งค่าการบีบอัดเดียวกัน

ขนาดสุดท้ายขึ้นอยู่กับ 3 ปัจจัยเหล่านี้:

  • ขนาดพิกเซล
  • การตั้งค่าการบีบอัด
  • เนื้อหา (รายละเอียดและความซับซ้อนของภาพ)

ดังนั้นคุณไม่สามารถและไม่ควรกำหนดน้ำหนักตามขนาดพิกเซล


แต่ฉันเข้าใจปัญหาของคุณ

หากไม่มีการวิเคราะห์การบีบอัดภาพปัจจุบันมันยากที่จะกำหนดน้ำหนัก "ดีที่สุด" (ซึ่งสัมพันธ์กับผู้สังเกตการณ์หรือการใช้ภาพ)

คุณสามารถกำหนดการตั้งค่าการบีบอัดและบีบอัด "ทั้งหมด" ใหม่ได้ ฉันไม่ทราบว่าคุณต้องการทำเช่นนั้นก่อน "อัปโหลด" ซึ่งอาจช่วยให้คุณประหยัดเวลาได้มากกว่าการบันทึกข้ามบางส่วน

มีเครื่องมือบางอย่างที่วิเคราะห์รูปภาพและคำนวณอัตราส่วนการบีบอัดปัจจุบัน แต่ฉันสงสัยว่ามันสำคัญขนาดนั้น


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

เกี่ยวกับวลีสุดท้ายของคุณ อัตราส่วนการอัดเป็นจริงคร่าว ๆ ว่า OP จะคำนวณตั้งแต่มันjpeg size / raw sizeและraw size = pixel size * number of pixel, pixel sizeเป็น 3 octets สำหรับพื้นที่สี 24bit RGB และอย่างที่คุณพูดด้วยตัวคุณเองการวัดนี้ไม่เพียงพอที่จะตัดสินว่าภาพนั้นถูกบีบอัดอย่างเพียงพอ
zakinster

9
@SalmanA ไม่ฉันขอแนะนำให้คุณเลิกใช้วิธีนี้โดยสิ้นเชิง JPEG มีขนาดใหญ่เท่าที่จำเป็นต้องมีคุณภาพตามที่ระบุ ข้อเสนอของคุณที่จะเห็นว่าภาพที่ใหญ่ที่สุดในตัวอย่างของคุณคือคุณภาพที่ 70% เพียงแค่เลือกระดับความซับซ้อนของภาพและพูดว่า "อะไรที่ซับซ้อนกว่านั้นซับซ้อนเกินไปและจะลดระดับลง" อย่างไรก็ตามหากเกือบทุกภาพมีขนาดเล็กกว่าเกณฑ์นี้ที่คุณภาพ 70% ปัญหาของการมีไฟล์ "ใหญ่เกินไป" คืออะไร?
David Richerby

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

10

นักพัฒนาเว็บที่นี่ นี่คือวิธีที่ฉันเข้าหา:

1. กำหนดขนาดภาพที่แสดงและความละเอียดหน้าจอที่ต้องการ

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

2. ใช้สคริปต์ภาพย่อเพื่อสร้างไฟล์ภาพใหม่

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

lena.jpg (Original, 2000x3000)
lena-thumb.jpg (100x150)
lena-thumb@2x.jpg (200x300)
lena-product.jpg (400x600)
lena-product@2x.jpg (800x1200)

3. บีบอัด

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


นี่คือวิธีจัดการกับสิ่งนี้ในอนาคต: ขอให้ช่างภาพวางต้นฉบับความละเอียดสูงในไดเรกทอรีจากนั้นใช้สคริปต์เพื่อสร้างขนาดที่เล็กลง (ภาพขนาดย่อที่หลากหลายและขนาดใหญ่กว่าสำหรับเดสก์ท็อปและมือถือ) และวางไว้ใต้ www ด้วย url การเขียนใหม่ แต่ตอนนี้ฉันไม่สามารถเข้าถึงต้นฉบับได้
ซัลมา

6

ในขณะที่คำตอบของ @ Rafaelได้อธิบายถึงการบีบอัดไฟล์ JPEG แล้วฉันจะพยายามตอบเว็บของคุณและอัปโหลดปัญหา

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

เมื่อคุณทราบถึงวัตถุประสงค์ด้านภาพแล้วเว็บไซต์ (หรือ CMS หรือ Front-end Framework) จะต้องมีขนาดพิกเซลสูงสุดเพื่อให้ภาพของคุณสอดคล้อง โลโก้อาจจะสูงสุด 600x600px ปกพื้นหลังอาจเป็นสูงสุด 1280x720px รูปถ่ายเนื้อหาสำหรับการแสดงผลแบบเต็มหน้าจอ 1920x1080 หรือความละเอียดดั้งเดิมของกล้องเพื่อการอนุรักษ์รายละเอียดที่สมบูรณ์ ตรวจสอบขนาดที่ถูกต้องจากเว็บไซต์ที่คุณต้องการอัปโหลด คุณต้องการจับคู่อย่างน้อยที่สุดในขนาดพิกเซลสูงสุดที่ต้องการทั้งนี้ขึ้นอยู่กับอัตราส่วนที่คุณต้องการ ระวังบริการบางอย่างจะครอบตัดและยืดภาพของคุณหากอัตราส่วนไม่เหมือนกัน ในกรณีนี้คุณจะต้องปรับภาพให้พอดีกับขนาดและอัตราส่วนสูงสุดที่ต้องการ

จากนั้นเว็บไซต์อาจกำหนดขีด จำกัด ขนาดไฟล์ (หรืออาจไม่ขึ้นอยู่กับวัตถุประสงค์ของภาพ) เกี่ยวกับเวลาในการโหลดหน้าเว็บยิ่งดี ในตัวอย่างภาพความละเอียดสูงที่ 2400x600px ขนาด 300 ถึง 500kB นั้นเป็นขนาดที่สมบูรณ์สำหรับการโหลด รูปภาพเนื้อหา (เช่นภาพถ่าย) อาจหนักกว่านี้หากจุดประสงค์ของภาพต้องการ (เช่นการแสดงเต็มหน้าจอ) จนถึงความละเอียดดั้งเดิมของกล้องหากจำเป็น หากไม่มีการระบุตัวบ่งชี้ขีด จำกัด ขนาดไฟล์นั้นอาจเดาได้ยากเนื่องจากขึ้นอยู่กับอุปกรณ์ผู้ชม (มือถือเดสก์ท็อป ... ) คุณภาพเครือข่ายประเทศผู้ชม ... สำหรับคุณภาพและบริการสูงสุดให้รักษาภาพถ่ายทีละภาพ รับขนาดไฟล์ขั้นต่ำโดยไม่มีส่วนที่มองเห็นได้ เพื่อความสะดวกหรือการประมวลผลความเร็วสคริปต์ปรับขนาดโดยใช้ระดับการบีบอัดที่น่าพอใจโดยรวม (ประมาณ 70 ควรจะดี)@ คำตอบของ xiotaอาจเป็นเครื่องมือที่คุณต้องการ กำหนดมาตรฐานของคุณเองที่นี่

TL; DRวัตถุประสงค์ของภาพในเว็บไซต์เป็นกุญแจสำคัญสำหรับการปรับขนาด / จำนวนการบีบอัด


3

สิ่งที่คุณกำลังคำนวณคือขนาดบีบอัดเฉลี่ยของพิกเซลภาพถ้าคุณหารด้วยขนาดพิกเซลดิบ (ปกติ 3 octet สำหรับ 24 บิต RGB) คุณจะได้อัตราส่วนการบีบอัด

นี่เป็นตัวชี้วัดที่ดีที่ให้ข้อมูลเกี่ยวกับสถานะการบีบอัดของภาพ แต่ไม่เพียงพอที่จะตัดสินว่าภาพนั้นถูกบีบอัดอย่างเพียงพอหรือไม่เพราะอัตราส่วนการบีบอัดไม่ได้ขึ้นอยู่กับโปรไฟล์การบีบอัดเท่านั้น (อัลกอริธึม = JPEG, คุณภาพ = 60/100) แต่ยังมีศักยภาพในการบีบอัดของภาพ: ภาพที่แตกต่างกันที่มีขนาดเท่ากันและโปรไฟล์การบีบอัดเดียวกันจะให้ขนาด jpeg ที่แตกต่างกันเนื่องจากรูปภาพบีบอัดได้ง่ายมากขึ้นหรือน้อยลง (รูปภาพเปล่าง่ายต่อการบีบอัดสีขาว เสียงไม่ดัง)

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

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

มีเครื่องมือมากมายที่มีอยู่ในการบีบอัดไฟล์จำนวนมากอีกทั้งคุณยังสามารถเขียนสคริปต์ของคุณเองและใช้สแต็คทางเทคนิคที่เหมาะสม (C ++ และ libjpeg ส่วนใหญ่) มันสามารถทำได้อย่างรวดเร็วแม้สำหรับไฟล์> 100k

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


ภาพ JPG มักจะตัวอย่างสีมาด้วย 4: 2: 2 หรือ 4: 2: 0 ( en.wikipedia.org/wiki/Chroma_subsampling#4:2:2 ) ดังนั้นพิกเซล "ดิบ" ที่ JPG บีบอัดมี 2x หรือ 4x luma pixels มากที่สุดเท่าที่แต่ละ chroma channel (ลดลงครึ่งหนึ่งในแนวนอนและแนวตั้ง) คุณอาจต้องการนำมาพิจารณาเมื่อพิจารณา "ภาพที่ถูกบีบอัด" แต่ใช่อย่างที่คุณพูดนั่นไม่ใช่การวัดที่ยอดเยี่ยมสำหรับเนื้อหาภาพที่ไม่รู้จัก
ปีเตอร์

+1 สำหรับการ rescaling ในบางจุดคุณจะได้คุณภาพของภาพที่ดีขึ้นโดยลดขนาดลงกว่าโดยลดบิตต่อพิกเซลให้ดียิ่งขึ้น แตกต่างจากตัวแปลงสัญญาณวิดีโอที่ทันสมัยเช่น h.264 หรือ h.265 (ซึ่งสามารถส่งสัญญาณตัวถอดรหัสให้ทำการปรับและทำให้ดีขึ้นได้ดีกว่า) หรือภาพนิ่ง HEIF ซึ่งเป็น HEVC (h.265) I-frame , JPEG ไม่ได้ ' ไม่มีสิ่งใดในนั้นและจะได้รับการบล็อกด้วยสิ่งประดิษฐ์จำนวนมากหากคุณไม่กินมัน ดังนั้นคุณต้องลดระดับลงแทนที่จะลดคุณภาพลงหากคุณมีภาพที่มีความละเอียดสูงมาก
ปีเตอร์

2
For example there is a 2400x600px image with a file size of 1.81MB.
Photoshop's save for web command creates a 540KB file at 60 quality and same dimensions.    
This is about 29% of original size.

ขนาดที่ไม่มีการบีบอัดดั้งเดิมคือ 2400 x 600 x 3 = 4,320,000 ไบต์ (4.1 MB) เนื่องจากสี 24 บิตจะเป็นข้อมูล RGB สามพิกเซลต่อพิกเซลเสมอ ไม่มีทางแก้ไขความจริงอันสมบูรณ์นี้

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

แต่ 540 KB เป็น 0.540 / 4.1 = 13% ของ 4.1 MB ขนาดเดิม อาจเป็น 29% ของขนาด JPG ก่อนหน้า แต่เป็น 13% ของขนาดดั้งเดิมที่ไม่บีบอัด นั่นคือ 1/8 ของขนาดที่ไม่บีบอัดดั้งเดิมซึ่งโดยทั่วไปถือว่ามีคุณภาพ "ดี" ไม่เหมาะสมไม่ใช่คุณภาพสูงสุด แต่โดยทั่วไปเหมาะสมอาจดีพอสำหรับการใช้งานบางประเภท เพียงแค่พูดว่ามันมีขนาดเล็กอยู่แล้ว

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

ดังนั้นการตัดสินใจคือถ้าคุณต้องการมันเล็กหรือถ้าคุณต้องการมันดี

แต่การทำให้ JPG ที่มีขนาดใหญ่ขึ้นนั้นยังคงแย่ลงเนื่องจากมีการเพิ่มสิ่งประดิษฐ์ JPG มากขึ้นและเมื่อมีขนาดเล็กข้อมูลก็จะถูกเปลี่ยนและมันจะไม่ดีขึ้นเลย

โดยทั่วไปแล้ววัตถุ JPG จะแสดงสองวิธีเช่นบล็อก 8x8 พิกเซลที่มองเห็นได้ของสีเดียวในพื้นที่ที่ราบรื่นโดยไม่มีรายละเอียดหรือเป็นขอบขรุขระที่มองเห็นได้รอบขอบรายละเอียด

หากแก้ไขและบันทึก JPG อีกครั้งจะมีการเพิ่มส่วน JPG เพิ่มเติม หากจำเป็นต้องมีวิธีปฏิบัติที่ดีในการบันทึกซ้ำอีกครั้งเพื่อให้ตรงกับการตั้งค่าการบีบอัดดั้งเดิม


จำนวน 4.1 ล้านบาทเป็นเพียงความจริงถ้ามีการบีบอัดที่ไม่ทั้งหมด แต่แม้ JPEG ที่มีคุณภาพที่สมบูรณ์แบบสามารถมีขนาดไฟล์เล็กลงเนื่องจากการบีบอัด lossless
Marv

ใช่นั่นคือเหตุผลที่ฉันเรียกมันว่า "uncompressed" ซึ่งเป็นวิธีที่ภาพดิจิตอลทุกรูปเริ่มต้นซึ่งแน่นอนว่าขนาดข้อมูลจริงและขนาดดั้งเดิมของข้อมูลซึ่งเป็นสาเหตุที่สำคัญ ใช่แม้ JPG 100 ระดับสูงสุดจะถูกบีบอัดให้เล็กลงอย่างมากไม่ใช่การสูญเสีย JPG แบบไม่สูญเสียเป็นตัวเรียกชื่อผิด เราไม่มีโปรแกรมที่เสนอ มันใช้เรียกมันอย่างอื่น (Wikipedia พูดว่า DNG และบางอย่างดิบ) อย่างไรก็ตาม JPEG2 สามารถบีบอัดแบบ lossless ได้ แต่มีปัญหาอื่น ๆ เช่นเว็บเบราว์เซอร์ไม่รองรับการแสดง JPEG2 และร้านขายภาพพิมพ์ไม่ยอมรับ
WayneF

ไม่มีทางแก้ไขความจริงอันสมบูรณ์นี้ ... ยกเว้นการสุ่มสีย่อยซึ่ง JPEG ใช้ JPEG บีบอัดในพื้นที่สี YUV (ความสว่าง + องค์ประกอบสองสี) ไม่ใช่ RGB โดยปกติแล้ว 4: 2: 2 หรือ 4: 2: 0 จะลดจำนวนพิกเซลในแต่ละช่องสัญญาณ Chroma สองเท่าด้วย 2x หรือ 4x en.wikipedia.org/wiki/Chroma_subsampling#4:2:2 หลังจากเปลี่ยนจาก RGB เป็น YUV และการสุ่มตัวอย่างย่อยข้อมูลความละเอียดของสีนั้นจะหายไปทั้งหมดและไม่ได้เป็นส่วนหนึ่งของ JPEG ที่ใช้บิตในการเข้ารหัส หากคุณต้องการดูบิต / พิกเซลควรอยู่ในรูปแบบสีของ JPEG ที่คุณกำลังพิจารณา
Peter Cordes

2
มาเลยอ่านข้อความ ความจริงที่สองคือการพูดและเรียกว่า "ไม่บีบอัด" โดยเฉพาะและกล่าวว่าสี 24 บิตเป็นสามไบต์ต่อพิกเซลเสมอ :)
WayneF

0

จริง ๆ แล้ว "Save for Web" ของ Photoshop นั้นเป็นเรื่องที่ดีพอสมควรระหว่างขนาดไฟล์และคุณภาพดังนั้นถ้าคุณไม่มีข้อกำหนดเฉพาะคุณควรทำตามนั้น คำแนะนำทั่วไปสำหรับนักพัฒนาเว็บคือการติดช่วงที่มีคุณภาพ 50-70% แน่นอนว่ามีข้อยกเว้น: คุณจะต้องมีคุณภาพ 90-95% ในโลโก้ บริษัท ซึ่งต้องดูดีตลอดเวลา (หรือแม้แต่แปลงเป็นรูปแบบที่ไม่มีการสูญเสีย) และลดลงถึง 30% สำหรับขนาดใหญ่ แต่แทบจะไม่เหลือเลย พื้นหลังหน้ามองเห็นได้

ยังไม่ลืมที่จะ rescale ภาพของคุณ ภาพขนาด 2400x600 จะดูดีมากบนจอแสดงผล 4K แต่จะลดขนาดลงบนหน้าจอที่เล็กลงทำให้สิ้นเปลืองแบนด์วิดธ์ของข้อมูลโดยไม่มีการปรับปรุงภาพสำหรับผู้ใช้ ตรวจสอบเทมเพลตเว็บไซต์ที่คุณจะใช้เพื่อค้นหาความกว้างที่เหมาะสมที่สุดสำหรับภาพ โดยทั่วไปในขณะที่เขียนนั้นจะอยู่ที่ประมาณ 1200-1300 พิกเซล (ดูความละเอียดที่นิยมมากที่สุดที่นี่ )

อย่าลืมเก็บภาพต้นฉบับที่คุณแปลงเป็นคุณภาพเว็บไว้ หากคุณจำเป็นต้องทำงานซ้ำหรือพิมพ์เนื้อหานี้คุณจะต้องเสียใจที่จะได้งานพิมพ์ที่มีคุณภาพ 60% และความละเอียด 1 Mpix เท่านั้น

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