تصویر OpenEXR (.exr)
Academy استانداردفرمت OpenEXR (با پسوند EXR) استاندارد صنعت فیلمسازی و جلوههای ویژه (VFX) برای تصاویر با دامنه دینامیکی بالا (HDR) است که از پیکسلهای اعشاری نیمهدقت ۱۶ بیتی و تمامدقت ۳۲ بیتی در لایههای نامحدود پشتیبانی میکند.
بررسی و فراداده
سیستمعاملها و تحلیلگرهای فایل، فایلهای EXR را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای هدر در سطح بایت (Magic Bytes)
سیستمعاملها و تحلیلگرهای فایل، فایلهای EXR را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای HEX (آفست 0):
76 2F 31 01نمایش ASCII: v/1.
استانداردسازی: Academy Software Foundation (ASWF) Open Standard
مشخصات فنی
| معماری کانتینر | Extensible chunk-based container supporting arbitrary channels, parts, and deep data layers |
| فشردهسازی | PIZ (wavelet), ZIP/ZIPS, RLE, B44/B44A, DWAA/DWAB (lossy DCT), and uncompressed |
| ترتیب بایتها (Endianness) | Little-Endian (Intel x86) |
| فضاهای رنگی | Linear ACEScg, ACES2065-1, Linear Rec.709, Arbitrary chromaticity coordinates |
| کانالها و ساختار | Arbitrary channel names (R, G, B, A, Z-depth, Normal, WorldPos, MotionVectors, Cryptomatte) |
| حداکثر ابعاد | Practically unlimited (supports tiled deep zoom and multi-gigapixel canvas bounds) |
| شفافیت مشخصات | Full floating-point alpha channel and deep-compositing volumetric sample arrays |
| استریمینگ و پیشرونده | Scanline or tiled chunk streaming enables fast partial-frame reads and proxy rendering |
ماتریس مقایسه فنی: EXR در برابر رقبا
| ویژگی فنی | EXR (فعلی) | HDR | TIFF | PNG |
|---|---|---|---|---|
| دامنه دینامیکی | اعشاری خطی ۱۶ بیت نیمه و ۳۲ بیت کامل | نمایانگر مشترک ۸ بیتی (RGBE) | اعداد صحیح ۸/۱۶ بیتی یا اعشاری ۳۲ بیتی | استاندارد صحیح ۸ بیتی / ۱۶ بیتی |
| پاسهای چندکاناله | کانالها و بخشهای نامحدود با نامگذاری دلخواه | فقط RGB | پشتیبانی محدود از لایهها | فقط RGBA |
| پذیرش در صنعت | استاندارد جهانی ۱۰۰٪ در صنعت VFX و سهبعدی هالیوود | نورپردازی سهبعدی قدیمی / پانوراما | چاپ و عکاسی | استاندارد جهانی وب |
| مدیریت رنگ | یکپارچهسازی بومی ACES و OpenColorIO | گاما / خطی موردی | برچسبهای پروفایل ICC | برچسبهای sRGB / ICC |
حالتهای رایج خرابی و راهنمای بازیابی هگز
تصویر کاملاً تاریک یا با لکههای سفید انفجاری (Nuclear White) رندر میشود.
علت ریشهای: عدم وجود تبدیل نمایشگر linear-to-sRGB یا تعیین نادرست فضای رنگی ACES.
بازیابی: اعمال یک منحنی تن ACEScg یا Linear-to-sRGB در نمایشگر HDR فایلتوفایل.
تحلیل امنیتی و بردارهای حمله تجزیهکننده (Parser)
تجزیهکنندههای پیچیده مبتنی بر تکه (Chunk-based) در OpenEXR باید تعاریف کانال و محدوده تایلها را به شدت اعتبارسنجی کنند تا از بروز مشکلات ایمنی حافظه جلوگیری شود.
بردارهای حمله شناختهشده
- سرریز عدد صحیح (Integer overflow) در محاسبات گام بافر چندکاناله در کتابخانه libopenexr.
- خوانش خارج از محدوده حافظه هیپ (Heap out-of-bounds read) در هنگام بازگشایی استریم فشردهسازی شده PIZ یا DWAA.
- حمله محرومیت از سرویس (DoS) از طریق بازگشت (Recursion) عمیق هدر تکه چندبخشی توستهشده.
بهترین روشهای پدافندی:
تاریخچه و نقاط عطف
مزایا و نقاط قوت کلیدی
- پشتیبانی بومی از اعداد اعشاری نیمهدقت ۱۶ بیتی (FP16) و تمامدقت ۳۲ بیتی (FP32) جهت حفظ روشناییهای شدید از نور مستقیم خورشید تا تاریکی عمیق سایهها.
- معماری چندکاناله دلخواه که تمام پاسهای رندر سهبعدی (مانند زیبایی، دیفیوز، اسپکولار، عمق و کریپتومات) را در یک فایل واحد جای میدهد.
- الگوریتمهای فشردهسازی پیشرو در صنعت مانند DWAA/DWAB و PIZ بدون افت کیفیت بصری.
محدودیتها و معایب فنی
- حجم فایل بسیار بالا هنگام ذخیرهسازی پاسهای رندر ۴K/8K ۳۲ بیتی چندلایه و فشردهنشده.
- سربار بالا روی پردازنده و حافظه رم در طول روند بازگشایی فشردهسازی چندکاناله در نرمافزارهای مصرفی.
- نیازمند تبدیلکنندههای مدیریت رنگ (مانند ACES یا OCIO) جهت نمایش صحیح روی نمایشگرهای استاندارد sRGB.
نکات فنی جالب
- شرکت Industrial Light & Magic نوع داده اعشاری ۱۶ بیتی 'half' را به طور اختصاصی برای فرمت OpenEXR اختراع کرد.
- چهار بایت جادویی اول هر فایل EXR برابر با 0x76 0x2F 0x31 0x01 است که در کدگذاری اسکی به عبارت 'v/1\x01' ترجمه میشود.
- فرمت OpenEXR از 'دادههای عمیق' (Deep Data) پشتیبانی میکند؛ جایی که یک پیکسل منفرد میتواند نمونههای رنگی و عمقی متعددی را در فاصلههای مختلف از میان دود و ابرهای نیمهشفاف ذخیره کند.
سوالات فنی متداول
چرا OpenEXR فرمت استاندارد برای جلوههای ویژه هالیوود (VFX) است؟
به این دلیل که مقادیر نوری ممیز شناور ۱۶ بیتی و ۳۲ بیتی را با دامنه پویای بینهایت، پسزمینههای رندر سهبعدی چندلایه و اطلاعات کامپوزیت عمیق مورد نیاز برای جلوههای بصری واقعگرایانه ذخیره میکند.
تفاوت بین half float و float در EXR چیست؟
فرمت Half float از ۱۶ بیت در هر کانال رنگی استفاده میکند که ۳۰ استاپ دامنه پویایی را با نصف اندازه فایل فرمت float کامل ۳۲ بیتی ارائه میدهد و همین امر آن را به فرمت محبوب صنعت برای رندرهای زیباییشناختی تبدیل کرده است.
چرا میتوانم EXR را به PNG یا JPG استاندارد تبدیل کنم؟
شما میتوانید با استفاده از File2File.app مستقیماً درون مرورگر وب خود، فایلهای EXR را به تصاویر PNG یا JPG با نقشهبرداری تن (tone-mapped) تبدیل کنید.