Radiance HDR 图像 (.hdr)

Radiance มาตรฐาน

Radiance RGBE (HDR) คือรูปแบบภาพ High Dynamic Range พื้นฐานที่พัฒนาขึ้นสำหรับระบบสร้างภาพสังเคราะห์ Radiance โดยจัดเก็บค่าความสว่างที่แม่นยำตามหลักโฟโตเมทรีโดยใช้ตัวเลขยกกำลังร่วมกันขนาด 8-bit (shared exponent)

ตรวจสอบและดู Metadata

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ HDR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

การแปลงไฟล์แบบส่วนตัว 100% ในเบราว์เซอร์ - ไฟล์จะไม่ rời ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
การรับประกันความเป็นส่วนตัวแบบไม่มีการส่งผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ HDR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

ลายเซ็น HEX (OFFSET 0):

23 3F 52 41 44 49 41 4E 43 45 0A

การแสดงผลรูปแบบ ASCII: #?RADIANCE\n

มาตรฐาน: Radiance Synthetic Imaging System Standard

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์ASCII header ending with empty line followed by resolution string and binary RLE scanlines
การบีบอัดAdaptive adaptive run-length encoding (RLE) applied per-channel scanline
การจัดลำดับไบต์ (Byte Endianness)Big-Endian / Network byte order
พื้นที่สีLinear Rec.709 RGB with CIE chromaticity coordinates
ช่องสัญญาณและโครงสร้างRGBE: Red, Green, Blue (8-bit mantissas) + shared 8-bit Exponent
ขนาดสูงสุดPractically unlimited (32-bit unsigned resolution strings)
ความโปร่งใสNone (physical radiant luminance measurements)
การสตรีมและแบบโปรเกรสซีฟSequential scanline-by-scanline streaming playback

ตารางเปรียบเทียบทางเทคนิค: HDR กับคู่แข่ง

คุณลักษณะทางเทคนิคHDR (ปัจจุบัน)EXRTIFFJPEG
การเข้ารหัสพิกเซล32-bit RGBE (shared 8-bit exponent)16-bit half / 32-bit float per channelจำนวนเต็ม 8/16-บิต หรือทศนิยม 32-บิต8-bit gamma-encoded integer
กรณีการใช้งานหลักแสงสภาพแวดล้อม 360 องศา (IBL)การซ้อนภาพหลายผ่านสำหรับ VFXการถ่ายภาพและการเตรียมพิมพ์กราฟิกเว็บมาตรฐาน
ขอบเขตช่วงไดนามิก76 อันดับของขนาด (10^-38 ถึง 10^38)ช่วงทศนิยมที่กว้างเกือบอนันต์แตกต่างกันไปตามความลึกบิตช่วง SDR 8-บิตที่จำกัด
ช่องสัญญาณที่รองรับเฉพาะ RGBช่องสัญญาณตามอำเภอใจไม่จำกัดช่องสัญญาณตามอำเภอใจหลายช่องRGB / CMYK

รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex

ภาพแสดงแถบเส้นแนวนอนพาดผ่านความกว้างของเฟรมทั้งหมด

สาเหตุหลัก: ไบต์นับความยาวสตรีม (run-length count) เสียหายระหว่างการคลายการบีบอัด scanline RLE

การกู้คืน: ซ่อมแซมเครื่องหมาย scanline ที่เสียหายด้วย File2File HDR Repair หรือแปลงเป็นรูปแบบ EXR

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

โปรแกรมถอดรหัส Radiance HDR มักจะแยกวิเคราะห์บรรทัดส่วนหัวแบบ ASCII โดยใช้ฟังก์ชันสตริงที่ไม่มีการจำกัดขนาด ซึ่งอาจกระตุ้นให้เกิดช่องโหว่ stack buffer overflow

เวกเตอร์การโจมตีที่ทราบ

  • การเรียกใช้คำสั่ง sprintf/sscanf แบบไม่จำกัดขนาดเมื่ออ่านส่วนหัวสตริงความละเอียด ('-Y %d +X %d')
  • เกิดข้อผิดพลาด Heap out-of-bounds write ระหว่างการถอดรหัส scanline แบบ RLE ที่ผิดรูป
  • เกิดภาวะ Integer overflow เมื่อจัดสรรหน่วยความจำสำหรับบัฟเฟอร์เลขทศนิยม 32-bit ปลายทาง

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:

ประวัติความเป็นมาและเหตุการณ์สำคัญ

2000Paul Debevec ทำให้การจัดแสงโดยใช้ภาพ HDR (IBL) แพร่หลายในวงการคอมพิวเตอร์กราฟิกส์โดยใช้ไฟล์ .hdr ของ Radiance
1997กำหนดมาตรฐานการเข้ารหัสแบบ adaptive scanline run-length เพื่อช่วยลดขนาดไฟล์
1989Greg Ward คิดค้นการเข้ารหัสพิกเซลแบบ RGBE 32-bit และรูปแบบไฟล์ .hdr ที่ห้องปฏิบัติการแห่งชาติ Lawrence Berkeley

ข้อได้เปรียบและจุดเด่นสำคัญ

  • ใช้หน่วยความจำกะทัดรัดเพียง 32-bit ต่อพิกเซล แต่ครอบคลุมช่วงความสว่างของแสงจริงถึง 76 ลำดับความสว่าง
  • รองรับสากลในโปรแกรมเรนเดอร์ 3D ส่วนใหญ่ (Blender, Unreal Engine, Unity, Cinema 4D) สำหรับภาพแผนที่สภาพแวดล้อมรอบทิศทาง 360 องศา
  • โครงสร้างไฟล์มีความเรียบง่ายและแข็งแกร่ง สามารถนำไปใช้งานบนแพลตฟอร์มซอฟต์แวร์ต่างๆ ได้อย่างง่ายดาย

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • อาจเกิดอาการแถบสีแตก (banding) ในบริเวณที่มืดสนิท เนื่องจากข้อจำกัดของการเข้ารหัสด้วยเลขยกกำลังร่วม 8-bit
  • ช่องสัญญาณ RGB ไม่สามารถจัดเก็บค่าติดลบหรือเลเยอร์พาสหลายเลเยอร์แบบอิสระได้
  • ถูกแทนที่ด้วย OpenEXR เป็นส่วนใหญ่ในกระบวนการผลิตงานเทคนิคพิเศษแบบหลายพาส

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • ไฟล์ Radiance HDR ทุกไฟล์จะเริ่มต้นด้วยข้อความส่วนหัว '#?RADIANCE' หรือ '#?RGBE'
  • รูปแบบนี้ถูกสร้างขึ้นมาเพื่อจำลองแสงสว่างทางกายภาพในการออกแบบอาคารก่อนที่จะมีการก่อสร้างจริง
  • บทความวิจัยอันโด่งดังเมื่อปี 1997 ของ Paul Debevec ในงาน SIGGRAPH เรื่อง 'Recovering High Dynamic Range Radiance Maps from Photographs' ได้ใช้รูปแบบนี้เพื่อปฏิวัติการจัดแสงในงาน CGI

คำถามทางเทคนิคที่พบบ่อย

ไฟล์ .hdr ต่างจากไฟล์รูปภาพ JPEG ทั่วไปอย่างไร?

ไฟล์ .hdr เก็บค่าแสงสว่างทางกายภาพที่แท้จริง ไม่ใช่แค่ค่าพิกเซลสำหรับแสดงผลบนจอภาพ ทำให้เหมาะสำหรับใช้เป็นสภาพแวดล้อมแสงในงาน 3D

ฉันสามารถนำไฟล์ HDR ไปใช้ทำอะไรได้บ้าง?

นิยมนำไปใช้เป็นไฟล์ภาพพาโนรามา 360 องศาเพื่อจำลองแสงเงา (Environment Lighting) ในโปรแกรมเรนเดอร์ 3D

ทำไมภาพ HDR ถึงดูมืดหรือซีดเมื่อเปิดในโปรแกรมดูภาพทั่วไป?

เนื่องจากภาพ HDR เก็บช่วงไดนามิกที่กว้างมาก หน้าจอทั่วไปไม่สามารถแสดงผลช่วงแสงทั้งหมดได้ จึงต้องผ่านกระบวนการปรับโทนสี (tone mapping)