JFIF ย่อมาจาก JPEG File Interchange Format และ JPEG ย่อมาจาก Joint Photographic Experts Group JFIF เป็นรูปแบบไฟล์ที่ใช้เก็บข้อมูลภาพ JPEG เพื่อให้โปรแกรมและคอมพิวเตอร์ต่างๆ เปิดไฟล์ได้
เวอร์ชัน JFIF เป็นช่องข้อมูลเมทาดาทาภายในไฟล์ JPEG ช่องนี้บอกคุณว่าไฟล์ใช้ข้อกำหนด JFIF เวอร์ชันใด เช่น 1.01 หรือ 1.02 คุณจะพบช่องนี้ใน ไฟล์ JPG เนื่องจาก JFIF เป็นรูปแบบสำหรับภาพ JPEG เท่านั้น
สิ่งที่ JFIF เพิ่มให้กับภาพ JPEG
มาตรฐาน JPEG กำหนดวิธีการบีบอัดข้อมูลภาพ ไฟล์ JFIF คือไฟล์ JPEG ปกติที่มีบล็อกข้อมูลพิเศษเพิ่มเข้ามา 1 บล็อก เรียกว่าเซ็กเมนต์ APP0 บล็อกนี้จะอยู่ถัดจากตัวมาร์กเกอร์เริ่มต้นภาพทันที
ข้อมูลในเซ็กเมนต์ APP0 จะเริ่มต้นด้วยข้อความ JFIF เซ็กเมนต์นี้เก็บข้อมูลที่ไม่มีอยู่ในข้อมูลภาพที่ถูกบีบอัด ได้แก่
- เวอร์ชัน JFIF
- ความหนาแน่นพิกเซลแนวนอนและแนวตั้ง พร้อมกับ หน่วยความละเอียด เป็นนิ้ว เซนติเมตร หรือไม่มีหน่วย
- อัตราส่วนพิกเซล ซึ่งโปรแกรมจะคำนวณจากค่าความหนาแน่นทั้ง 2 ค่า
- ตัวอย่างภาพขนาดเล็กแบบเลือกใส่ เรียกว่า thumbnail
JFIF ยังระบุรูปแบบสีด้วย ภาพแบบ JFIF จะมี 1 ช่องสัญญาณที่เป็นความสว่างอย่างเดียว หรือ 3 ช่องสัญญาณในสีแบบ YCbCr
ไฟล์ใดที่มีรายการนี้อยู่
ชนิด MIME image/jpeg ถูกกำหนดให้ใช้กับภาพ JPEG ในรูปแบบ JFIF ส่วนขยายไฟล์ .jpg, .jpeg, .jpe, .jif และ .jfif ทั้งหมดอยู่ในรูปแบบนี้ ดังนั้นไฟล์ที่มีชื่อลงท้ายด้วย .jfif จะเก็บภาพประเภทเดียวกับไฟล์ .jpg
กล้องดิจิทัลมักบันทึกภาพ JPEG ในรูปแบบ Exif แทน Exif จะเก็บเมทาดาทาส่วนใหญ่อยู่ในเซ็กเมนต์ APP1 และเซ็กเมนต์นี้ก็ต้องอยู่ถัดจากจุดเริ่มต้นภาพทันทีเช่นกัน เนื่องจากทั้งสองเซ็กเมนต์ต้องมาก่อน ไฟล์จึงไม่สามารถใช้ JFIF และ Exif พร้อมกันได้
ยังมีบางโปรแกรมที่เขียนเซ็กเมนต์ JFIF ไว้ก่อนเซ็กเมนต์ Exif ในไฟล์ลักษณะนี้ คุณจะเห็นทั้งเวอร์ชัน JFIF และ เวอร์ชัน Exif
ลักษณะของค่าเป็นอย่างไร
เวอร์ชัน JFIF ถูกเก็บใน 2 ไบต์ ไบต์แรกเก็บเลขเวอร์ชันหลัก และไบต์ที่สองเก็บเลขเวอร์ชันย่อย เวอร์ชัน 1.02 จะถูกเก็บเป็นไบต์ 01 และ 02
ExifTool แสดงช่องนี้เป็น JFIFVersion โดยพิมพ์เลขเวอร์ชันหลัก จุด และเลขเวอร์ชันย่อยแบบ 2 หลัก รีจิสทรีของฟอร์แมตระบุว่า JFIF มี 3 เวอร์ชัน ได้แก่
1.00: เวอร์ชันแรกๆ ของข้อกำหนด1.01: เวอร์ชันก่อน 1.021.02: เวอร์ชันวันที่ 1 กันยายน 1992
แหล่งที่มาของค่า
โปรแกรมที่บันทึกไฟล์ JPEG จะเขียนเซ็กเมนต์ APP0 และหมายเลขเวอร์ชันลงในนั้น ITU ได้เผยแพร่ JFIF เป็นคำแนะนำ T.871 ในปี 2011 และ ISO กับ IEC ได้เผยแพร่ข้อความเดียวกันเป็นมาตรฐาน ISO/IEC 10918-5 มาตรฐานนี้อ้างอิงเวอร์ชัน 1.02 และไฟล์ที่ปฏิบัติตามต้องเก็บค่า 1.02
โปรแกรมที่พัฒนาบนไลบรารี libjpeg จะเขียนค่า 1.01 เป็นค่าเริ่มต้น เอกสารของไลบรารีระบุให้ตั้งค่า 1.02 เมื่อโปรแกรมเพิ่มเซ็กเมนต์ส่วนขยายจากเวอร์ชัน 1.02 ดังนั้นไฟล์ที่บันทึกในปัจจุบันอาจแสดงเป็น 1.01 หรือ 1.02 ก็ได้
เหตุใดจึงสำคัญต่อไฟล์ของคุณ
เวอร์ชันจะบอกโปรแกรมว่าสามารถอ่านข้อมูล JFIF ได้หรือไม่ ข้อกำหนดระบุว่าโดยทั่วไปไฟล์จะถอดรหัสได้เมื่อเลขเวอร์ชันหลักของไฟล์ตรงกับเลขเวอร์ชันหลักที่โปรแกรมรองรับ
เวอร์ชันยังบอกด้วยว่าไฟล์สามารถเก็บ thumbnail แบบใดได้บ้าง เซ็กเมนต์ส่วนขยายชื่อ JFXX จะใช้ได้เฉพาะในเวอร์ชัน 1.02 ขึ้นไป เซ็กเมนต์ JFXX สามารถเก็บ thumbnail ที่บีบอัดด้วย JPEG หรือ thumbnail ที่ไม่บีบอัดก็ได้
ไฟล์ JPEG ที่ไม่มีเวอร์ชัน JFIF หมายความว่าไม่มีเซ็กเมนต์ JFIF ซึ่งเป็นเรื่องปกติสำหรับภาพถ่ายที่กล้องบันทึกในรูปแบบ Exif