ภาพ OpenEXR (.exr)
Academy มาตรฐานOpenEXR เป็นรูปแบบภาพ HDR ระดับมืออาชีพที่ใช้ในเวิร์กโฟลว์ภาพยนตร์และวิชวลเอฟเฟกต์ รองรับพิกเซลแบบ half 16 บิตและ floating-point 32 บิต พร้อมหลายช่องสัญญาณและเลเยอร์
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ EXR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ EXR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
76 2F 31 01การแสดงผลรูปแบบ ASCII: v/1.
มาตรฐาน: Academy Software Foundation (ASWF) Open Standard
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | คอนเทนเนอร์แบบชังก์ที่ขยายได้ รองรับแชนเนล พาร์ต และเลเยอร์ข้อมูลเชิงลึกได้ตามต้องการ |
| การบีบอัด | PIZ (เวฟเล็ต), ZIP/ZIPS, RLE, B44/B44A, DWAA/DWAB (DCT แบบสูญเสียข้อมูล) และไม่บีบอัด |
| การจัดลำดับไบต์ | ลำดับไบต์แบบ Little-Endian (Intel x86) |
| พื้นที่สี | Linear ACEScg, ACES2065-1, Linear Rec.709, พิกัดโครมาติซิตีที่กำหนดได้ตามต้องการ |
| ช่องสัญญาณและโครงสร้าง | ชื่อแชนเนลที่กำหนดได้ตามต้องการ (R, G, B, A, Z-depth, Normal, WorldPos, MotionVectors, Cryptomatte) |
| ขนาดสูงสุด | แทบไม่จำกัด (รองรับ deep zoom แบบไทล์และขอบเขตผืนภาพขนาดหลายกิกะพิกเซล) |
| ความโปร่งใส | แชนเนลอัลฟาแบบ floating-point เต็มรูปแบบ และอาร์เรย์ตัวอย่างเชิงปริมาตรสำหรับ deep compositing |
| การสตรีมและแบบโปรเกรสซีฟ | การสตรีมชังก์แบบสแกนไลน์หรือไทล์ช่วยให้อ่านเฟรมบางส่วนและเรนเดอร์ภาพพร็อกซีได้รวดเร็ว |
ตารางเปรียบเทียบทางเทคนิค: EXR กับคู่แข่ง
| คุณลักษณะทางเทคนิค | EXR (ปัจจุบัน) | HDR | TIFF | PNG |
|---|---|---|---|---|
| ช่วงไดนามิก | linear แบบ half 16 บิตและ float 32 บิต | เลขชี้กำลัง 8 บิตที่ใช้ร่วมกัน (RGBE) | จำนวนเต็ม 8/16 บิต หรือเลขทศนิยม 32 บิต | จำนวนเต็มมาตรฐาน 8 บิต / 16 บิต |
| พาสหลายช่องสัญญาณ | ช่องสัญญาณและส่วนต่างๆ ที่ตั้งชื่อเองได้ไม่จำกัด | RGB เท่านั้น | การรองรับเลเยอร์แบบจำกัด | RGBA เท่านั้น |
| การยอมรับในอุตสาหกรรม | มาตรฐาน 3D ของฮอลลีวูดและ VFX สากล 100% | การจัด 3D แสง / พาโนรามาแบบเดิม | งานก่อนพิมพ์และการถ่ายภาพ | การรองรับแตกต่างกันไปตามซอฟต์แวร์ |
| การจัดการสี | การรวมเข้าด้วยกันแบบเนทีฟของ ACES และ OpenColorIO | แกมม่า / เชิงเส้นเฉพาะกิจ | แท็กโปรไฟล์ ICC | แท็ก sRGB / ICC |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ภาพแสดงผลมืดสนิทหรือสว่างจ้าจนเป็นปื้นสีขาวโพลน
สาเหตุหลัก: ขาดการแปลงค่าการแสดงผลจาก linear เป็น sRGB หรือมีการกำหนดค่าขอบเขตสี ACES ไม่ถูกต้อง
การกู้คืน: ใช้ File2File.app HDR Viewer เพื่อปรับใช้เส้นโค้งโทนสี (tone curve) แบบ ACEScg หรือ Linear-to-sRGB
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ตัวแยกวิเคราะห์ OpenEXR ที่จัดการข้อมูลแบบ chunk ซับซ้อนต้องตรวจสอบนิยามช่องสัญญาณและขอบเขตไทล์อย่างเคร่งครัด เพื่อป้องกันปัญหาความปลอดภัยของหน่วยความจำ
เวกเตอร์การโจมตีที่ทราบ
- เกิดภาวะ Integer overflow ในการคำนวณระยะห่างบัฟเฟอร์หลายช่องสัญญาณ (buffer stride) ในไลบรารี libopenexr
- อ่านข้อมูลนอกขอบเขตของฮีประหว่างคลายการบีบอัดสตรีม PIZ หรือ DWAA
- การโจมตีแบบปฏิเสธการให้บริการ (Denial of Service) ผ่านโครงสร้างส่วนหัวแบบหลายส่วนที่มีการเรียกซ้ำลึกเกินไป
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ถอดรหัสไฟล์ EXR โดยใช้บิวด์ WebAssembly แบบแซนด์บ็อกซ์ที่ปลอดภัยต่อหน่วยความจำพร้อมขีดจำกัดขนาดไทล์ที่เข้มงวด
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- รองรับพิกเซลแบบ 16-bit half-float และ 32-bit floating-point โดยตรง ช่วยรักษาค่าความสว่างได้ตั้งแต่แสงแดดจ้าจนถึงเงามืด
- สถาปัตยกรรมหลายช่องสัญญาณแบบอิสระ ช่วยบรรจุพาสการเรนเดอร์ 3D ทั้งหมด (beauty, diffuse, specular, depth, cryptomatte) ไว้ในไฟล์เดียว
- อัลกอริทึมการบีบอัด DWAA/DWAB และ PIZ ระดับแนวหน้าของอุตสาหกรรม ให้การบีบอัดที่ยอดเยี่ยมโดยไม่สูญเสียรายละเอียดภาพ
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ขนาดไฟล์ใหญ่มากเมื่อบันทึกพาสการเรนเดอร์ 3D แบบ 4K/8K 32-bit หลายเลเยอร์แบบไม่บีบอัด
- ใช้ทรัพยากร CPU และหน่วยความจำสูงระหว่างการคลายการบีบอัดหลายช่องสัญญาณในซอฟต์แวร์ทั่วไป
- ต้องใช้กระบวนการจัดการสี (ACES หรือ OCIO) เพื่อให้เรนเดอร์แสดงผลได้อย่างถูกต้องบนหน้าจอ sRGB มาตรฐาน
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- Industrial Light & Magic เป็นผู้คิดค้นชนิดข้อมูลเลขทศนิยม 'half' ขนาด 16-bit ขึ้นมาโดยเฉพาะสำหรับรูปแบบ OpenEXR
- ไบต์ magic สี่ตัวแรกของทุกไฟล์ EXR คือ 0x76 0x2F 0x31 0x01 ซึ่งถอดเป็น ASCII ได้ว่า 'v/1\x01'
- OpenEXR รองรับ 'Deep Data' ซึ่งพิกเซลเดียวสามารถจัดเก็บตัวอย่างสีและความลึกได้หลายค่าในระยะทางที่ต่างกันผ่านกลุ่มควันและเมฆกึ่งโปร่งใส
คำถามทางเทคนิคที่พบบ่อย
เหตุใดจึงใช้ OpenEXR ในเวิร์กโฟลว์วิชวลเอฟเฟกต์บางประเภท?
รูปแบบนี้เก็บข้อมูลภาพ HDR ที่มีความแม่นยำสูง และรองรับหลายช่องสัญญาณ ส่วนภาพ และข้อมูลความลึกสำหรับการคอมโพสิต
Half float กับ float ใน OpenEXR ต่างกันอย่างไร
Half float ใช้ 16 บิตต่อช่องสี ให้ช่วงรับแสง 30 สต็อปและใช้พื้นที่ไฟล์เพียงครึ่งหนึ่งของ float 32 บิต จึงเป็นตัวเลือกยอดนิยมในอุตสาหกรรมสำหรับงาน beauty render
จะแปลง EXR เป็น PNG หรือ JPG มาตรฐานได้อย่างไร?
คุณสามารถแปลงไฟล์ EXR เป็นภาพ PNG หรือ JPG ที่ปรับโทนสีแล้วได้โดยตรงในเว็บเบราว์เซอร์ด้วย File2File.app