aspose.info
TH

JPEG - รูปแบบไฟล์รูปภาพ

อัปเดตเมื่อ

ไฟล์ JPEG คืออะไร?

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

ข้อมูลจำเพาะของรูปแบบไฟล์

รูปแบบไฟล์ภาพ JPEG ได้รับการกำหนดมาตรฐานโดย Joint Photographic Experts Group และด้วยเหตุนี้จึงใช้ชื่อ JPEG รูปแบบนี้เป็นทางเลือกในการจัดเก็บและส่งภาพถ่ายบนเว็บ ขณะนี้ระบบปฏิบัติการเกือบทั้งหมดมีโปรแกรมดูที่รองรับการแสดงภาพ JPEG ซึ่งมักจะจัดเก็บด้วยนามสกุล JPG เช่นกัน แม้แต่เว็บเบราว์เซอร์ก็รองรับการแสดงภาพ JPEG ก่อนที่จะเข้าสู่ข้อกำหนดรูปแบบไฟล์ JPEG จำเป็นต้องกล่าวถึงกระบวนการโดยรวมของขั้นตอนที่เกี่ยวข้องกับการสร้าง JPEG

ขั้นตอนการบีบอัด JPEG

การแปลงร่าง: ภาพสีจะเปลี่ยนจาก RGB เป็นภาพความสว่าง/สี (ตาไวต่อความส่องสว่าง ไม่ใช่ความเข้มของสี ดังนั้นส่วนที่เป็นสีจะสูญเสียข้อมูลจำนวนมาก ดังนั้นจึงสามารถบีบอัดได้มาก

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

การจัดระเบียบเป็นกลุ่ม: พิกเซลขององค์ประกอบสีแต่ละรายการจะจัดเป็นกลุ่มขนาด 8×2 พิกเซลที่เรียกว่า “หน่วยข้อมูล” หากจำนวนแถวหรือคอลัมน์ไม่คูณด้วย 8 แถวล่างและคอลัมน์ขวาสุดจะซ้ำกัน

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

Quantization: แต่ละองค์ประกอบที่แปลงแล้ว 64 รายการในหน่วยข้อมูลจะถูกหารด้วยตัวเลขแยกกันซึ่งเรียกว่า ‘Quantization Coefficient (QC)’ แล้วปัดเศษเป็นจำนวนเต็ม นี่คือจุดที่ข้อมูลสูญหายอย่างไม่สามารถแก้ไขได้ QC จำนวนมากทำให้เกิดการสูญเสียมากขึ้น โดยทั่วไป JPEG ส่วนใหญ่อนุญาตให้ใช้ตาราง QC ที่แนะนำโดยมาตรฐาน JPEG

การเข้ารหัส: ค่าสัมประสิทธิ์การแปลงเชิงปริมาณ 64 ค่า (ซึ่งตอนนี้เป็นจำนวนเต็ม) ของแต่ละหน่วยข้อมูลจะถูกเข้ารหัสโดยใช้การเข้ารหัส RLE และ Huffman ร่วมกัน

การเพิ่มส่วนหัว: ขั้นตอนสุดท้ายจะเพิ่มส่วนหัวและพารามิเตอร์ JPEG ทั้งหมดที่ใช้และแสดงผลผลลัพธ์

ตัวถอดรหัส JPEG ใช้ขั้นตอนย้อนกลับเพื่อสร้างภาพต้นฉบับจากภาพที่บีบอัด

โครงสร้างไฟล์

ภาพ JPEG จะแสดงเป็นลำดับของกลุ่มโดยแต่ละส่วนจะขึ้นต้นด้วยเครื่องหมาย เครื่องหมายแต่ละตัวเริ่มต้นด้วย 0xFF ไบต์ตามด้วยธงเครื่องหมายเพื่อแสดงประเภทของเครื่องหมาย เพย์โหลดที่ตามด้วยเครื่องหมายจะแตกต่างกันไปตามประเภทเครื่องหมาย ประเภทเครื่องหมาย JPEG ทั่วไปมีดังต่อไปนี้:

ชื่อสั้นไบต์เพย์โหลดชื่อความคิดเห็น
SOI0xFF, 0xD8ไม่มีจุดเริ่มต้นของรูปภาพ
S0F00xFF, 0xC0ขนาดตัวแปรจุดเริ่มต้นของเฟรม
S0F20xFF, 0xC2ขนาดตัวแปรเริ่มต้นสำหรับเฟรม
DHT0xFF, 0xC4ขนาดตัวแปรกำหนดตาราง Huffman
DQT0xFF, 0xDBขนาดตัวแปรกำหนดตารางปริมาณ
DRI0xFF, 0xDD4 ไบต์กำหนดช่วงเวลารีสตาร์ท
SOS0xFF, 0xDAขนาดตัวแปรเริ่มการสแกน
RSTn0xFF, 0xD//n//(/th//n//#0..7)ไม่มีรีสตาร์ท
APPn0xFF, 0xE//n//ขนาดตัวแปรเฉพาะแอปพลิเคชัน
COM0xFF, 0xFEขนาดตัวแปรข้อคิดเห็น
EOI0xFF, 0xD9ไม่มีจุดสิ้นสุดของภาพ

ภายในข้อมูลรหัสเอนโทรปี หลังจากไบต์ 0xFF ใดๆ ไบต์ 0x00 จะถูกแทรกโดยตัวเข้ารหัสก่อนไบต์ถัดไป เพื่อไม่ให้ดูเหมือนเป็นเครื่องหมายที่ไม่ต้องการ เพื่อป้องกันข้อผิดพลาดในการจัดเฟรม ตัวถอดรหัสต้องข้าม 0x00 ไบต์นี้ เทคนิคนี้เรียกว่า การบรรจุไบต์ (ดูข้อมูลจำเพาะ JPEG ส่วน F.1.2.3) ใช้กับข้อมูลที่เข้ารหัสเอนโทรปีเท่านั้น ไม่ใช่ข้อมูลเพย์โหลดของตัวทำเครื่องหมาย . อย่างไรก็ตาม โปรดทราบว่าข้อมูลที่เข้ารหัสด้วยเอนโทรปีมีเครื่องหมายไม่กี่ตัวของมันเอง โดยเฉพาะเครื่องหมายรีเซ็ต (0xD0 ถึง 0xD7) ซึ่งใช้เพื่อแยกส่วนอิสระของข้อมูลที่เข้ารหัสเอนโทรปีเพื่อให้สามารถถอดรหัสแบบขนานได้ และตัวเข้ารหัสมีอิสระที่จะแทรกเครื่องหมายรีเซ็ตเหล่านี้ในช่วงเวลาปกติ (แม้ว่าจะไม่ใช่ตัวเข้ารหัสทุกตัวที่ทำเช่นนี้)

ดูเพิ่มเติม