ไฟล์ E57 คืออะไร??
ไฟล์ที่มีนามสกุล .e57 เป็นรูปแบบไฟล์ที่มีขนาดกะทัดรัดและเป็นกลางสำหรับผู้ขาย ซึ่งใช้สำหรับจัดเก็บและแลกเปลี่ยนข้อมูลภาพสามมิติ (3D) เช่น พอยต์คลาวด์ รูปภาพ และข้อมูลเมตา ข้อมูลดังกล่าวมักถูกสร้างขึ้นด้วยระบบต่างๆ เช่น เลเซอร์สแกนเนอร์ ได้รับการพัฒนาโดยคณะอนุกรรมการด้านการทำงานร่วมกันของข้อมูลของคณะกรรมการ ATSM E57 เกี่ยวกับระบบภาพ 3 มิติ E57 เป็นโอเพ่นซอร์สและเก็บข้อมูลจุด 3 มิติ คุณลักษณะของมัน (เช่น สีและความเข้ม) และภาพ 2 มิติที่บันทึกโดยระบบภาพ 3 มิติ
รูปแบบไฟล์ E57
ข้อกำหนดรูปแบบไฟล์ E57 มีอยู่ในเว็บไซต์ ATSM และสามารถอ้างอิงสำหรับการอ้างอิงของนักพัฒนา กระดาษแนวคิดและรายละเอียดทางเทคนิคของรูปแบบไฟล์ E57 มีให้ใช้เป็นเอกสารอ้างอิงโดย Daniel Huber ข้อมูลในไฟล์ E57 จะถูกบันทึกในโครงสร้างต้นไม้แบบลำดับชั้นตาม XML ดังที่แสดงในภาพต่อไปนี้ ที่ระดับต่ำ ไฟล์ E57 จะถูกบันทึกเป็นไฟล์ไบนารีที่บีบอัดเพื่อทำให้ขนาดไฟล์มีขนาดกะทัดรัด
โครงสร้างไฟล์ E57
โครงสร้างของไฟล์ E57 แสดงดังตารางต่อไปนี้
โครงสร้างไฟล์ |
---|
ส่วนหัว |
ส่วนไบนารี (จุด) |
ส่วนไบนารี (จุด) |
… |
… |
ส่วนไบนารี (รูปภาพ) |
ส่วน XML |
ส่วนหัว E57
ส่วนหัว E57 เป็นโครงสร้างไบนารีขนาดเล็ก 48 ไบต์ที่มีข้อมูลระดับไฟล์ที่สำคัญ เช่น หมายเลขเวอร์ชันและตำแหน่งของส่วน XML มันสามารถแสดงในเชิงโปรแกรมได้ดังนี้
struct E57FileHeader {
char fileSignature[8];
uint32_t majorVersion;
uint32_t minorVersion;
uint64_t filePhysicalLength;
uint64_t xmlPhysicalOffset;
uint64_t xmlLogicalLength;
uint64_t pageSize;
}
ลำดับชั้น XML
ส่วน XML ของไฟล์ E57 อธิบายลำดับชั้นของต้นไม้โดยใช้ชุดย่อยของ XML มาตรฐาน ซึ่งอิงจากองค์ประกอบ E57 แปดประเภท โดยแต่ละองค์ประกอบถูกสร้างขึ้นโดยใช้ชุดของบล็อกหลัก องค์ประกอบ E57 ห้ารายการเหล่านี้เป็นประเภทเทอร์มินัล และสามรายการเหล่านี้ไม่ใช่เทอร์มินัล
ประเภทเทอร์มินัล
Integer
- จำนวนเต็มที่มีลายเซ็นขนาดสูงสุด 63 บิต
Float
- เก็บเลขทศนิยมตัวเดียวหรือสองตัวในรูปแบบ IEEE 754-1985
ScaledInteger
- จัดเก็บตัวเลขที่มีเศษส่วนเป็นจำนวนเต็มพร้อมกับมาตราส่วนและค่าชดเชย
String
- เก็บข้อมูลข้อความในรูปแบบ UTF-8 ที่เข้ารหัสและรองรับอักขระสากล
Blob
- จัดเก็บบล็อกทึบของข้อมูลไบนารีที่ผู้อ่านตีความโดยขึ้นอยู่กับบริบท
ประเภทที่ไม่ใช่เทอร์มินัล
Structure
- ประกอบด้วยชุดองค์ประกอบ E57 ที่ไม่มีลำดับของประเภทใดก็ได้ โครงสร้าง E57 นั้นคล้ายคลึงกับโครงสร้างในภาษาโปรแกรม C
Vector
- ประกอบด้วยรายการสั่งซื้อของรายการที่พิมพ์เหมือนกันอย่างมาก แฟล็กในองค์ประกอบอนุญาตให้จำกัดรายการให้พิมพ์เหมือนกันทั้งหมดหากต้องการ
CompressedVector
- ประกอบด้วยรายการลำดับของรายการที่พิมพ์เหมือนกัน ซึ่งถูกบีบอัดในรูปแบบไบนารี เช่นเดียวกับประเภทข้อมูล Blob การแสดง CompressedVector จะแบ่งออกเป็นส่วน XML และส่วนไบนารี