תמונת OpenEXR (.exr)
Academy תקןOpenEXR (EXR) הוא פורמט התמונות בתקן High Dynamic Range (HDR) של תעשיית הסרטים והאפקטים הוויזואליים (VFX), התומך בפיקסלים צפים של 16 סיביות (חצי) ו-32 סיביות על פני שכבות אינסופיות.
בדיקה ומטא-דאטה
מערכות הפעלה ומנתחי קבצים מזהים קבצי 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 |
|---|---|---|---|---|
| טווח דינמי | 16-bit half & 32-bit float linear | מעריך משותף 8 סיביות (RGBE) | שלם 8/16 סיביות או נקודה צפה 32 סיביות | שלם סטנדרטי 8 סיביות / 16 סיביות |
| מעברים רב-ערוציים | ערוצים וחלקים שרירותיים ללא הגבלה | RGB בלבד | תמיכה מוגבלת בשכבות | RGBA בלבד |
| אימוץ בתעשייה | תקן תלת-ממד ו-VFX הוליוודי אוניברסלי ב-100% | תאורה / פנורמה תלת-ממדית ישנה | הכפלה לדפוס וצילום | תקן רשת אוניברסלי |
| ניהול צבע | שילוב מובני של ACES & OpenColorIO | גמא / לינארי אד-הוק | תגי פרופיל ICC | תגי sRGB / ICC |
מצבי שיחשות נפוצים ומדריך שחזור הקסדצימלי (Hex)
התמונה מרונדרת ככה לחלוטין או שרופה עם כתמים לבנים גרעיניים.
גורם שורש: היעדר טרנספורמציית תצוגה מלינארי ל-sRGB או הקצאת מרחב צבע ACES שגויה.
התאוששות: החל טרנספורמציית עקומת גוונים ACEScg או Linear-to-sRGB ב-File2File HDR Viewer.
ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)
מנתחי OpenEXR מורכבים מבוססי-נתחים (chunks) חייבים לאמת בקפדנות את הגדרות הערוצים וגבולות האריחים כדי למנוע בעיות בטיחות זיכרון.
ווקטורי תקיפה ידועים
- גלישת מספר שלם (Integer overflow) בחישוב מרווח חיץ רב-ערוצי ב-libopenexr.
- קריאה מחוץ לגבולות הערימה (Heap out-of-bounds read) במהלך פענוח זרם דחוס ב-PIZ או DWAA.
- מניעת שירות (Denial of service) באמצעות רקורסיה עמוקה של כותרות מרובות-חלקים.
השיטות המומלצות להגנה:
היסטוריה ואבני דרך
יתרונות מרכזיים
- תמיכה מובנית בנקודה צפה של 16 סיביות (FP16) ו-32 סיביות (FP32) ששומרת על תאורה קיצונית משמש ישיר ועד צללים כהים.
- ארכיטקטורה מרובת ערוצים שרירותית המכילה את כל מעברי ההדמיה בתלת-ממד (יופי, דיפיוז, ספקולר, עומק, קריפטומאטה) בקובץ אחד.
- אלגוריתמי דחיסה מובילים בתעשייה DWAA/DWAB ו-PIZ המשיגים דחיסה מדהימה ללא אובדן ויזואלי.
מגבלות טכניות וחסרונות
- גדלי קבצים משמעותיים בעת שמירת מעברי הדמיה של 4K/8K 32 סיביות מרובי-שכבות ללא דחיסה.
- עומס גבוה על המעבד והזיכרון במהלך פענוח רב-ערוצי בתוכנות צרכניות.
- דורש טרנספורמציות ניהול צבע (כגון ACES או OCIO) כדי להציג נכון על גבי מסכי sRGB סטנדרטיים.
עובדות טכניות מעניינות
- Industrial Light & Magic המציאה את טיפוס נתוני הנקודה הצפה 'חצי' (half) של 16 סיביות במיוחד עבור פורמט OpenEXR.
- ארבעת בייטי הקסם הראשונים של כל קובץ EXR הם 0x76 0x2F 0x31 0x01, שמתורגמים ב-ASCII ל-'v/1\x01'.
- OpenEXR תומך ב-'Deep Data', שבו פיקסל בודד שומר דגימות צבע ועומק מרובות במרחקים שונים דרך עשן ועננים שקופים למחצה.
שאלות טכניות נפוצות
מדוע OpenEXR הוא הפורמט הסטנדרטי עבור אפקטים ויזואליים בהוליווד (VFX)?
ממש משום שהוא מאחסן ערכי תאורה של נקודה צפה (floating-point) ב-16 ביט וב-32 ביט עם טווח דינמי אינסופי, מעברי רינדור תלת-ממדיים רב-שכבתיים ומידע קומפוזיציות עמוק הנדרשים לאפקטים ויזואליים פוטוריאליסטיים.
מה ההבדל בין half float לבין float ב-EXR?
Half float משתמש ב-16 ביט לכל ערוץ צבע, ומציע 30 עצירות (stops) של טווח דינמי בחצי מגודל הקובץ של float מלא ב-32 ביט, מה שהופך אותו למועדף בתעשייה עבור רינדורי beauty.
כיצד אוכל להמיר EXR ל-PNG או ל-JPG רגילים?
תוכל להמיר קובצי EXR לתמונות PNG או JPG שעברו מיפוי גוונים (tone-mapped) באמצעות File2File.app ישירות בתוך דפדפן האינטרנט שלך.