Witold Kaczurba, Analog Devices
במערכות וידאו, הנמצאות כבר עתה ביישומי צריכה רבים, גוברת שליטתן בתחומי הרכב, הרובוטיקה והתעשייה. מעבר זה לתוך יישומים לא-צרכניים נבע בעיקר מהכנסתו של תקן HDMI ומ-DSPs ו-FPGAs יותר מהירים ויותר יעילים.
מאמר זה סוקר את הדרישות להשגת ראייה סטריאוסקופית (וידאו 3D) תוך שימוש במצלמות וידאו אנלוגיות או HDMI. הוא מתאר מערכת מבוססת-FPGA המשלבת שני זרמי וידאו לתוך זרם וידאו 3D יחיד לשם העברה דרך משדר HDMI 1.4, ומערכת מבוססת DSP החוסכת רוחב-פס DMA בהשוואה לזה הנדרש באופן רגיל לשם קליטת נתונים משתי מצלמות. יתר על כן, הוא מציג שיטה להשגת פורמט של זה ליד זה לשימוש עם מצלמות 3D או מערכות הדורשות וידאו 3D.
סקירה כללית
ראייה סטריאוסקופית דורשת שתי מצלמות וידאו במרחק כ-5.5 סמ’ ביניהן, המרווח האופייני בין שתי עיניים תקניות, כמתואר באיור 1.
הדיאגרמה המלבנית ברמה גבוהה המוצגת באיור 2 משתמשת בשתי מצלמות וידאו מסונכרנות המשתמשות באותו תקן וידאו, שני מפענחי וידאו ו-FPGA אחד. כדי להבטיח אותו קצב מסגרות במדויק, מצלמות הוידאו צריכות להיות נעולות-קו אל ייחוס תזמון משותף. ללא סנכרון, לא תהיה אפשרות לשלב את המוצאים ללא שימוש בזיכרון חיצוני כדי לאחסן מסגרות וידאו מלאות.
איור 3 מראה שני זרמי וידאו נעולים בקו המאוחדים לתמונה סטריאוסקופית יחידה. איור 4 מראה כיצד לא ניתן לאחד זרמי וידאו ללא סנכרון מבלי לשמור את מסגרת הוידאו במלואה בתוך זיכרון חיצוני.
המוצאים של שתי מצלמות הוידאו המסונכרנות מומרים לדיגיטליים על-ידי מפענחי וידאו, דוגמת ADV7181D, ADV7182 או ADV7186 עבור מצלמות וידאו אנלוגיות; או על-ידי מקלטי HDMI דוגמת ADV7610 או ADV7611 עבור מצלמות וידאו דיגיטליות.
מפענחי וידאו ומקלטי HDMI משתמשים בעניבות נעולות מופע (phase-locked loops – ) כדי להפיק נתוני שעון ופיקסל בפסי המוצא שלהם. המשמעות היא ששני תחומי שעון נפרדים יופקו עבור שתי המצלמות כאשר הופכים את הוידאו האנלוגי לדיגיטלי או קולטים את זרם ה-HDMI. יתר על כן, שני זרמי הוידאו עלולים להיות לא-מכוונים (misaligned). יש לקזז את הפרשי התזמון וחוסר הכיוון בעזרת התקן-עורף (back-end device) כגון FPGA, ולהביא בכך את הנתונים אל תחום שעון משותף לפני שילוב שתי תמונות הוידאו למסגרת וידאו סטריאוסקופית יחידה. זרם הוידאו המסונכרן נשלח לאחר מכן דרך משדר HDMI בעל יכולת HDMI 1.4 3D דוגמת ה-ADV7511 או ADV7513 או שניתן להעבירו ל-DSP דוגמת המעבד Blackfin® – ADSP-BF609 לשם עיבוד נוסף.
ארכיטקטורות למדידת זמן (clocking)
למפענחי וידאו יש שני מקורות מדידת זמן נפרדים התלויים באם הם נעולים או לא-נעולים. כאשר PLL הוידאו נעול לאות הסנכרון המגיע אליו – סנכרון אופקי עבור מפענחי וידאו או השעון TMDS עבור HDMI – הוא מפיק שעון הנעול למקור הוידאו המגיע. כאשר נעילת הוידאו נאבדת, או כאשר ה-PLL נמצא במוד של הליכה חופשית (free-run) מאולצת, ה-PLL של הוידאו איננו נעול על אות הסנכרון המגיע אלא מפיק מוצא שעון הנעול לשעון הגביש. בנוסף, השעון עשוי לא להפיק מוצא אחרי איפוס מאחר שמזין שעון ה-LLC מכוון למוד של עכבה גבוהה אחרי האיפוס.
לכן, אם למערכת יש שני אפיקי וידאו או יותר ממפענח הוידאו או מקלט ה-HDMI, יהיו לה שני תחומי שעון שונים בעלי תדרים ומופעים שונים, גם אם אותו שעון גביש מסופק לשני מפענחי וידאו או מקלטי HDMI, מאחר שכל התקן יוצר את השעון העצמי שלו המבוסס על ה-PLL שלו עצמו.
מערכת סינכרונית בעלת מפענחי וידאו נעולים
בוידאו סטריאוסקופי רגיל המשתמש בשני מקורות, כל אחד ממפענחי הוידאו ננעל על אות הוידאו המגיע ומפיק את השעון של עצמו המבוסס על אות סנכרון אופקי או שעון TMDS המגיע אליו. כאשר שתי מצלמות מסונכרנות – או נעולות בקו אל אותו ייחוס-תזמון – קווי המסגרת יהיו תמיד מכוונים. מאחר ששני מפענחי הוידאו הנפרדים קולטים את אותו אות סנכרון אופקי, לשעוני הפיקסל יהיה אותו תדר שעון פיקסל. דבר זה מאפשר להביא את שני אפיקי הנתונים אל תחום שעון משותף, כמוצג באיור 5.
מערכת וידאו אסינכרונית
לרוע המזל, אחד המפענחים עשוי לאבד את הנעילה בשל אות מקור וידאו בעל איכות ירודה, כמתואר באיור 6; או שהמצלמות עשויות לאבד סנכרון בשל קישור וידאו מנותק, כמוצג באיור 7. דבר זה יוביל לתדרים שונים בשני אפיקי הנתונים, ויוביל לחוסר סימטריה בכמות הנתונים המועברת לעורף.
ניתן לזהות את איבוד נעילת הוידאו על-ידי שימוש בפסק (interrupt) (SD_UNLOCK עבור מפענחי וידאו SD, CP_UNLOCK עבור מפענחי וידאו רכיבים, או אוגרי TMDSPLL_LCK במקלטי HDMI) אשר מופעל בעקבות השהייה. מפענחי וידאו משלבים מנגנונים להחלקת הסנכרון האופקי הלא-יציב, כך שנעילת וידאו אבודה עשויה לתפוס זוג קווים. השהיה זו ניתנת להקטנה על-ידי בקרת איבוד הנעילה בתוך ה-FPGA.
מוד שעון תלת-מצבי
כאשר מתכננים משאבי שעון FPGA, חשוב לדעת שבמחדל, מפענחי וידאו ומוצרי HDMI רבים מעבירים את השעון ואת קווי הנתונים למוד תלת-מצבי אחרי איפוס. לכן, שעון הפיקסל LLC לא יתאים לאיפוסים סינכרוניים.
חוסר כיוון של נתונים בשני זרמי וידאו
כדי לפשט את המערכת ולהקטין את ממדי הזיכרון הדרוש לשם שילוב שתי התמונות, יש לסנכרן נתונים המגיעים ל-FPGA כך הפיקסל ה-Nth מהקו ה-Mth של המצלמה הראשונה ייקלט עם הפיקסל ה-Nth של הקו ה-Mth של המצלמה השנייה.
דבר זה עלול להיות קשה לביצוע במבוא של ה-FPGA מאחר ששני אפיקי הוידאו עלולים להיות בעלי כמיסות שונה: מצלמות נעולות-קו יכולות להפיק קווים לא-מכוונים, אורכי חיבור שונים יכולים לתרום לחוסר הכיוון, ומפענחי וידאו יכולים ליצור כמיסויות תיחול שונות. בשל כמיסויות אלה, ניתן לצפות שלמערכת בעלת מצלמות נעולות-קו יהיו מספר פיקסלים של חוסר כיוון.
חוסר כיוון של מצלמות נעולות-קו
אפילו למצלמות נעולות-קו עלולים להיות במוצא קווי וידאו לא מכוונים. איור 8 מציג את אותות הסנכרון האנכי ממוצא ה-CVBS של שתי מצלמות. מצלמה אחת, השולטת בסנכרון, מספקת אות נועל-קו למצלמה השנייה, הנשלטת בסנכרון. חוסר כיוון של 380ns נראה בבירור. איור 9 מראה את הנתונים המשודרים על-ידי מפענחי הוידאו למוצאים של מצלמות אלו. ניתן לבחון בהזזה של 11- פיקסל.
אורכי חיבור שונים
כל החיבורים החשמליים גורמים להשהיית התפשטות, כך שעליך לוודא שלשני אפיקי הוידאו יש אותה המסילה ואותו אורך כבל.
כמיסויות מפענח הוידאו/מקלט ה-HDMI
כל מפענחי הוידאו גורמים לכמיסות במידה שונה בהתאם לתכונות התקפות. יתירה מזה, חלקי וידאו אחדים מכילים מרכיבים – כגון FIFO עמוק-צבע – שיכולים להוסיף כמיסות אתחול אקראית. מערכת סטריאוסקופית טיפוסית המשתמשת במפענחי וידאו עשויה להיות בעלת השהיית אתחול אקראית של כ-5 שעוני פיקסל. מערכת המכילה משדרים ומקלטים HDMI, כמוצג באיור 10, עשויה להיות בעלת השהיית תיחול אקראית של
כ-40 שעוני פיקסל.
קיזוז חוסר הכיוון
איור 11 מראה מערכת בה אות אנלוגי מכל מצלמה הופך לדיגיטלי בעזרת מפענח וידאו. הנתונים והשעון הם נפרדים עבור כל אפיק וידאו. שני אפיקי הוידאו מחוברים ל-FIFOs, אשר חוצצים את הנתונים המגיעים כדי לקזז עבור חוסר כיוון של נתונים. כאשר רושמים בשעון את הנתונים, ה-FIFOs משתמשים בשעון משותף של אחד המפענחים. במערכת נעולה, לשני אפיקי הנתונים צריך להיות בדיוק אותו תדר שעון, המבטיח ששום FIFO איננו גולש או חומק (underflows) בשעה שמצלמות נעולות-קו ומפענחי הוידאו הם נעולים.
על-ידי חיבור או ניתוק של מוצאי ה-FIFOs, גוש הבקרה שומר על רמות ה-FIFO כדי למזער את חוסר הכיוון בפיקסל. אם הקיזוז מתנהל כשורה, מוצא גוש ה-FPGA צריך להיות מסודר לשני אפיקי הנתונים מהפיקסל הראשון ביותר. נתונים אלה מועברים אחר כך לעורף ה-FPGA לשם יצירת תבנית 3D.
מדידת חוסר הכיוון
חוסר כיוון בין שני זרמי נתונים דיגיטליים ניתן למדוד במוצא של FIFOs הוידאו על-ידי שימוש במונה חד-שעון המאופס על-ידי פולס הסנכרון האנכי (vertical sync – VS) של אחד האותות המגיעים. איור 12 מראה שני זרמי וידאו (vs_a_in ו-vs_b_in) לא מכוונים ב-4 פיקסלים. מונים סופרים את חוסר הכיוון תוך שימוש בשיטה המוצגת ב-Listing 1. הספירה מתחילה על הקצה העולה של ה-VS1 ומסתיימת על הקצה העולה של VS2.
אם אורך הפיקסל הכולל של מסגרת ידוע, השיפוע השלילי (VS2 הקודם ל-VS1) ניתן לחשב על ידי-חיסור ערך הספירה מאורך המסגרת. יש לחשב ערך שלילי זה כאשר השיפוע עובר מחצית אורך מסגרת הפיקסל. בתוצאה אפשר להשתמש כדי ליישר מחדש את הנתונים האגורים ב-FIFOs.
בעת שנתוני הפיקסל, הקו והמסגרת הם סינכרוניים אמיתית, FPGA יכול לבנות את נתוני הוידאו אל זרימת וידאו 3D, כמתואר באיור 13.
הנתונים המגיעים נרשמים לתוך זיכרון על-ידי שעון פשוט. נתח תזמון הסנכרון בוחן את אותות הסנכרון ומבודד את תזמון הוידאו, כולל אורכי המרפסת האופקית הקדמית והאחורית, המרפסות האנכיות הקדמית והאחורית, אורך הסנכרון האופקי והאנכי, אורך הקו הפעיל האופקי, מספר הקווים הפעילים האנכיים והקיטוב של אותות הסנכרון. העברת מידע זה למשחזר תזמון הסנכרון ביחד עם מיקום הפיקסל האופקי והאנכי מאפשרת לו לייצר תזמון אשר שונה כדי להתאים את מבנה הוידאו 3D הרצוי. יש להשהות את התזמון החדש הנוצר כדי להבטיח
שה-FIFOs כוללים את הכמות הדרושה של נתונים.
וידאו 3D זה ליד זה
הארכיטקטורה הפחות תובענית ביותר במונחים של זיכרון היא המבנה זה ליד זה (side-by-side) הדורש רק חוצץ – 2 קווים (FIFOs) כדי לאגור את התוכן של הקווים המגיעים משני מקורות הוידאו. על המבנה זה ליד זה להיות כפליים רחב מהמבנה המקורי. כדי להשיג זאת, יש להשתמש בשעון כפול לצורכי תזמון הסנכרון המשוחזר באורך קו אופקי מוכפל. השעון המוכפל המשמש לתזמון הקצה האחורי ירוקן את ה-FIFO הראשון ואח”כ את ה-FIFO השני בקצב כפול, המאפשר סידור זה ליד זה של התמונות, כמתואר באיור 14. תמונת הזה ליד זה מוצגת באיור 15.
סיכום
המפענחים ומוצרי ה-HDMI של Analog Devices ביחד עם עיבוד מאוחר פשוט יכולים ליצור ולאפשר העברת וידאו סטריאוסקופי 3D אמיתי. כמתואר, אפשר להשיג וידאו 3D בעזרת גושים דיגיטליים פשוטים וללא זיכרון יקר. מערכת זו ניתנת למימוש בכל סוג של מערכת הדורש ראיית 3D, החל ממצלמות מקליטות וידאו פשוטות ועד מערכות מתמחות מבוססות ADSP-BF609 DSP שיכולות לשמש למעקב אחר עצמים ולקביעת ממדיהם.
אודות המחבר
Witold Kaczurba is a senior applications engineer in Kaczurba, the Advanced TV group in Limerick, Ireland, supports decoders and HDMI products. He joined ADI in 2007 after graduating from the Technical University of Wroclaw, Poland, with an MSc in electrical engineering. As a student, he worked for small electronic and IT companies, then joined ADI in Ireland as a co-op student and subsequently as an applications engineer.