יש לעבור בלולאה על בלוקים של פיקסלים בגודל ארבע על ארבע ומתוכם לחשב בלוק בתמונה החדשה של שתיים על שתיים ע"י מיצוע משוקלל של הפיקסלים בתמונה המקורית.
בעצם זה שתי לולאות מכוננות שהאינדקס מתקדם בקפיצות של 4 ובכל איטרציה מחשבים 4 פיקסלים חשדים.
יש לשים לב שאת המשקולות יש לחשב לפי BILINIEAR INTERPOLATION
ספטמבר 2020
זה בעיית demosaicing. יש לעבור בלולאה על בלוקים של 4X4 ומתוכם לחשב בלוק חדש 2X2, אבל גם הבלוק החדש יהיה בנוי מאותה תבנית GR;BG, לכן R,B ימוצעו כל אחד מהפיקסלים בצבעו, אבל G צריך להתמצע בהתאם למשולש המתאים בבלוק המקורי, שמאלי עליון או ימני תחתון.
1. יש לכתוב פונק' שמקבלת מספר, mask ודגל, והפונק' עושה set או unset בהתאם לדגל.
2. יש לכתוב פונק' שעוברת על מערך ומחפשת ערך מסוים. לאחר תשובה רגילה מנסים לסבך ומבקשים לייעל את הלולאה כדי שיהיו כמה שפחות opcodes. ביקשו מספר פעמים.
3. יש מער' אופטית שמקבלת בכל רגע מספר פיקסלים דפוקים. הפיקסלים הדפוקים נשמרים במבנה נתונים עם מיקום X,Y וביט שאומר אם הפיקסל שחור או לבן. (סה"כ 9bytes)
סה"כ יכולים להיות 4000x5000 פיקסלים כאלה. יש 40K זיכרון לזה. ביקשו לבנות פונק' שמחזירה מערך של הפיקסלים האלה. לאחר מכן ניסו לסבך ואמרו שזה לא עובד ושאלו מה הבעיה. ציפו לשמוע שהזיכרון לא יספיק ואיך לצמצם אותו בצורה נכרת. ביקשו מספר דרכים.
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2020
לגבי 3, יש נתון נוסף שיש רק 10K פיקסלים דפוקים- שלב א: 5000 - 13^2, 4000 - 12^2, סהכ 25 ביט + אחד לשחור/לבן' 26 ביט. נכנס. אח"כ סיבכו שוב והורידו את הגודל ל 26K. אז צריך להגיד שהסתברותית יהיו בין 2-3 פיקסלים דפוקים בשורה ולכן הפתרון הוא עבור כל שורה(X) לשמור את ה (Y)ים ואת הביט שחור/לבן. וכך מצמצמים עוד.