4.13. פורמטי פיקסל¶
השלב הסופי של צינור ה-ISP אורז כל פיקסל לפריסת בתים מסוימת בזיכרון. הפורמט הנבחר מאזן בין איכות התמונה, גודל הזיכרון, ואופן שבו קוד במורד הזרם קורא את הבתים חזרה. קומץ פורמטים שולטים בתחום.
4.13.1. RAW (Bayer)¶
פלט ברירת המחדל הוא Bayer גולמי – אותה פסיפס של ערוץ-יחיד-לפיקסל שהחיישן מייצר. בית אחד לכל פיקסל, מסודר בתבנית Bayer: אדום וירוק מתחלפים בשורות זוגיות, ירוק וכחול מתחלפים בשורות אי-זוגיות. לא הופעל debayering, כך שכל תא עדיין מחזיק רק את הערך שמסנן הצבע שלו העביר.
Bayer גולמי הוא שליש מהזיכרון של תמונת RGB גמורה תלת-ערוצית – בית אחד לפיקסל לעומת שלושה – ולא בוזבזו מחזורי ISP על debayering או המרה. העלות היא שקוד המשתמש צריך לבצע את ה-debayering בעצמו לפני שעיבוד מודע-צבע כלשהו יכול לרוץ.
4.13.2. RGB888¶
RGB888 הוא הפורמט הגמור הטבעי לתמונת צבע: שלושה בתים לכל פיקסל, אחד לכל אחד מערוצי האדום, הירוק והכחול ב-8 סיביות לערוץ. עשרים וארבע סיביות לפיקסל וקצת פחות משבעה-עשר מיליון צבעים נבדלים.
RGB888 הוא הייחוס הרעיוני לתמונות צבע גמורות ורוב התוכנה החיצונית-ללוח מדברת בו. בחומרה משובצת חסרונו העיקרי הוא גודל הפיקסל של 24 סיביות – אינו כפולה של גודל המילה של המעבד, מסורבל ליישור זיכרון, וגדול ב-50% מהפורמט הבא מתחתיו.
4.13.3. RGB565¶
RGB565 אורז כל פיקסל לשני בתים: חמש סיביות אדום, שש סיביות ירוק, חמש סיביות כחול. סיבית הירוק הנוספת משקפת את הרגישות הגבוהה יותר של העין לירוק, והיא תואמת את המשקל הכפול של ערוץ הירוק בתבנית Bayer.
RGB565 הוא פורמט הצבע ברירת המחדל ב-OpenMV Cam. שני בתים לפיקסל הם בעלי יישור 16 סיביות, התואם את רוחבי הנתונים הטבעיים של ה-MCU – טעינות, אחסונים ואריתמטיקה של פיקסלים כולם רצים במהירות מלאה, ופעולות רבות יכולות לעבד צמד פיקסלים בבת אחת. הפיקסלים בני 24 הסיביות של RGB888 אינם מיושרים כך ומשלמים מחיר בכל גישה. גם החיסכון של 33 אחוז בזיכרון מול RGB888 מצטבר: QVGA (320 x 240) הוא 150 KB ב-RGB565 לעומת 225 KB ב-RGB888, והפער גדל עם הרזולוציה.
מנגד מתקבלים 65 אלף צבעים נבדלים במקום שבעה-עשר מיליון. עבור רוב משימות הראייה הממוחשבת ההבדל בלתי נראה, מכיוון שהאלגוריתמים מצמצמים את הפריים לייצוגים מעובדי-סף או מזוהי-קצוות שמשמיטים ממילא את רוב פרטי הצבע. עבור צפייה אנושית הסיביות החסרות מופיעות כפסים קלושים במעברי צבע חלקים אך לא כדבר שהעין מבחינה בו מיד.
4.13.4. YUV422¶
YUV422 מפצל את צבע כל פיקסל לערך בהירות (Y) ושני ערכי כרומה (U ו-V), ואז מבצע תת-דגימה של הכרומה מכיוון שהראייה האנושית רגישה הרבה פחות לשונות צבע מאשר לשונות בהירות. כל פיקסל נושא את ה-Y שלו, אך צמדי פיקסלים סמוכים חולקים U אחד ו-V אחד. פריסת הבתים לכל צמד היא ארבעה בתים – Y0, U, Y1, V – מה שמסתכם בשני בתים לפיקסל בממוצע, זהה ל-RGB565.
אך שני הבתים מציינים דברים שונים מאלה של RGB565. ערוץ ה-Y לבדו הוא תמונת גווני אפור בת 8 סיביות מוכנה לשימוש, וזה מה שרוב אלגוריתמי הראייה הממוחשבת הקלאסיים (זיהוי קצוות, התאמת תבניות, ניתוח רכיבים/כתמים) צורכים בפועל; ערוצי ה-U וה-V נושאים את מידע הצבע עבור המספר המועט של אלגוריתמים הזקוקים לו.
YUV422 הוא הבחירה הנכונה כאשר הצינור זקוק לשניהם – אלגוריתם בשלב מוקדם הקורא רק Y ואחריו שלב מאוחר יותר המשתמש בכרומה להחלטות צבע עדינות יותר – מכיוון שערכי ה-Y יושבים שם מוכנים לשימוש ללא המרת מרחב-צבע.
4.13.5. Grayscale¶
Grayscale הוא בית אחד לפיקסל: ערך הבהירות בלבד, ללא צבע כלל. זהו הפורמט הגמור הקטן ביותר – מחצית הגודל של RGB565 ו-YUV422, שליש הגודל של RGB888.
רוב אלגוריתמי הראייה הממוחשבת הקלאסיים עובדים ממילא על גווני אפור, כך שהשמטת ערוץ הצבע ישירות מהחיישן היא לעיתים קרובות הבחירה הפשוטה והחסכונית-בזיכרון ביותר. זיהוי קצוות, מציאת קווים, ניתוח רכיבים/כתמים, פענוח QR Code, התאמת תבניות וזיהוי AprilTag כולם רצים על גווני אפור ונהנים מהחוצץ הקטן יותר.
4.13.6. פורמטים אחרים¶
כמה פורמטים ש-OpenMV Cam יכולה לייצר אינם יוצאים מצינור ה-ISP כחלק מהזרימה הרגילה.
BINARY הוא סיבית אחת לפיקסל – הייצוג הקטן ביותר האפשרי. משמש לתמונות מעובדות-סף, חוצצי מסכה, ופלט של כל פעולה המבחינה רק בין התאמה לאי-התאמה בכל פיקסל.
JPEG הוא פורמט צבע דחוס. חלק מהחיישנים כוללים מקודד JPEG על-השבב ויכולים לספק פריימים דחוסי-JPEG ישירות; עבור חיישנים שאין להם כזה, ה-MCU מריץ מקודד JPEG על פריים RGB או גווני אפור גמור לאחר ה-ISP. כך או כך הפלט הוא זרם סיביות JPEG, שימושי לשמירת פריימים לאחסון או לשליחתם על פני קישור מוגבל-רוחב-פס.
PNG הוא פורמט דחוס ללא אובדן. חיישנים אינם מייצרים PNG ישירות; ה-MCU דוחס פריים RGB או גווני אפור גמור לפי דרישה. שימושי כאשר רוחב הפס או האחסון חשובים אך הדחיסה אבודת-המידע שמיישם JPEG הייתה משמיטה מידע שהיישום יזדקק לו מאוחר יותר.