พจนานุกรม

กระบวนการเข้ารหัสคืออะไร

กระบวนการเข้ารหัส (Encoding Process) คือชื่อของวิธีที่ไฟล์ JPEG ใช้ในการบีบอัดข้อมูลภาพ เช่น baseline หรือ progressive ค่าดังกล่าวอ่านมาจากข้อมูลภาพโดยตรง

encoding-process

Encoding Process คือกระบวนการที่แปลงรูปภาพให้เป็นข้อมูลภาพที่ถูกบีบอัด ในรายงานเมทาดาทา Encoding Process คือชื่อวิธีที่ไฟล์ JPG ใช้ ตัวอย่างเช่น Baseline DCT, Huffman coding.

ค่านี้มี 2 ส่วน ส่วนแรกระบุว่านำข้อมูลภาพไปบีบอัดอย่างไร ส่วนที่สองระบุว่านำผลลัพธ์ไปบรรจุเป็นบิตอย่างไร

ไฟล์ใดที่มีรายการนี้อยู่

Encoding Process เป็นฟิลด์ของ JPEG และมีอยู่ในภาพ JPEG ทุกไฟล์ มาตรฐาน JPEG จะเก็บข้อมูลนี้ไว้ในส่วนหัวสั้นๆ ที่อยู่ก่อนข้อมูลภาพที่ถูกบีบอัด

แหล่งที่มาของค่า

ไม่มีทั้งกล้องหรือโปรแกรมใดที่เขียน Encoding Process เป็นแท็กแยกต่างหาก โปรแกรมอ่านอย่าง ExifTool จะคำนวณค่าออกมาจากตัวบ่งชี้ Start of Frame ซึ่งเป็นตัวเปิดส่วนหัวนั้น มาตรฐาน JPEG กำหนดตัวบ่งชี้ที่ต่างกันสำหรับแต่ละ encoding process

ส่วนหัวเดียวกันนี้ยังเก็บความกว้างและความสูงของภาพ จำนวนนับบิตต่อหนึ่งตัวอย่าง และจำนวนของ องค์ประกอบสี ExifTool ยังคำนวณค่า chroma subsampling จากส่วนหัวนี้ด้วย

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

ลักษณะของค่าเป็นอย่างไร

ExifTool จะแสดงค่าใดค่าหนึ่งจาก 13 ค่า ตามข้อมูลของ Library of Congress ค่าใช้บ่อยคือ baseline และ progressive

  • Baseline DCT, Huffman coding
  • Extended sequential DCT, Huffman coding
  • Progressive DCT, Huffman coding
  • Lossless, Huffman coding
  • Sequential DCT, differential Huffman coding
  • Progressive DCT, differential Huffman coding
  • Lossless, Differential Huffman coding
  • Extended sequential DCT, arithmetic coding
  • Progressive DCT, arithmetic coding
  • Lossless, arithmetic coding
  • Sequential DCT, differential arithmetic coding
  • Progressive DCT, differential arithmetic coding
  • Lossless, differential arithmetic coding

ความหมายของแต่ละส่วนของค่า

  • DCT ย่อมาจาก discrete cosine transform กระบวนการ JPEG ที่ใช้ DCT เป็นแบบสูญเสียข้อมูล กล่าวคือจะทิ้งรายละเอียดบางส่วนเพื่อทำให้ไฟล์เล็กลง
  • Baseline คือกระบวนการ DCT พื้นฐาน ใช้ 8 บิตต่อหนึ่งตัวอย่างและใช้ Huffman coding
  • Sequential หมายความว่าองค์ประกอบสีแต่ละตัวถูกจัดเก็บในหนึ่งสแกน
  • Extended sequential ทำงานเหมือน baseline แต่รองรับ 12 บิตต่อหนึ่งตัวอย่างและใช้ arithmetic coding ได้ด้วย
  • Progressive จะจัดเก็บรูปภาพเป็นหลายสแกน โดยทั่วไปแต่ละสแกนจะเพิ่มคุณภาพขึ้น ทำให้โปรแกรมดูภาพสามารถแสดงภาพหยาบๆ ก่อนแล้วค่อยๆ ทำให้คมชัดขึ้น
  • Lossless จะไม่ใช้ DCT ภาพที่ถอดรหัสแล้วจะเหมือนกับต้นฉบับทุกประการ
  • differential อยู่ในโหมดแบบลำดับชั้น ซึ่งแต่ละเฟรมถัดไปจะจัดเก็บเฉพาะส่วนที่แตกต่างจากเฟรมก่อนหน้า
  • Huffman coding และ arithmetic coding เป็น 2 วิธีแบบไม่สูญเสียข้อมูลในการบรรจุข้อมูลให้ใช้บิตน้อยลง

เหตุใดจึงสำคัญต่อไฟล์ของคุณ

มาตรฐาน JPEG ไม่บังคับให้ทุกโปรแกรมรองรับทุกกระบวนการ ตัวถอดรหัส DCT ทุกตัวต้องรองรับ baseline ดังนั้นไฟล์แบบ baseline จึงเป็นตัวเลือกที่ปลอดภัยเมื่อต้องการให้ภาพเปิดได้ทุกที่

กระบวนการอื่นอาจเปิดไม่ได้ในบางโปรแกรม ตามข้อมูลของ Library of Congress กระบวนการแบบ lossless ดั้งเดิมไม่ได้รับการรองรับอย่างแพร่หลายในแอปพลิเคชัน มีตัวแปรแบบ lossless ตัวหนึ่งที่ใช้ Huffman coding อยู่ใน Adobe DNG raw format รุ่น 1.1

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

คีย์เมตา