קידוד וידאו - עדיף הפסד Packet סובלנות

Sep 25, 2018

קידוד וידאו - עדיף הפסד Packet סובלנות


Video Coding - Better Packet Loss Tolerance.png

זרם הווידאו H.264 הנוכחי (שאינו היררכי) הוא מאוד בוגר במונחים של דחיסת נתונים, וכל השיטות שנלמדו מתוך ספרים משמשים בעת דחיסת נתונים. אחד החשובים ביותר הוא לשלוח תוספות. מֵידָע. אם מסגרת תמונה של וידאו תשתנה רק במקצת בהתאם למסגרת הקודמת, אזי בעת העברת תמונת המסגרת, אין צורך להעביר את המידע שלא השתנה. ה- Codec ישדר רק את המידע המצטבר ויידע את המקבל: "פיקסלים אלה עשו שינויים כאלה בעוד שהפיקסלים האחרים נותרו על כנם". בדרך זו, המידע שיש להעביר הוא הרבה פחות מהמידע המועבר על ידי התמונה של המסגרת כולה, כך אפקט דחיסה הוא השתפר הרבה.

 

עם זאת, כאשר הרשת יש אובדן מנות, החיסרון של שיטה זו מידע מצטבר נוספים יודגשו. ברגע שחבילה אבודה, הקצה המקבל אינו יכול לקבל את פרטי השינוי האחרונים של מסגרת תמונת הווידאו, כך שלתמונת הווידאו תהיה שגיאה קלה. כאשר החבילה הבאה היא הגיעה, התמונה עצמה בנויה על מידע לא נכון, ולכן איכות התמונה היא אפילו יותר גרוע. בתגובה לבעיה זו, ה- codec הנוכחי משתמש בשיטה להעברת מידע מסגרת תמונה מלאה מעת לעת. ברגע אובדן מנות מתרחשת, המקלט יכול לבקש לעדכן מסגרת שלמה של התמונה כדי להאיץ את תהליך זמירה. עם זאת, זה יגרום לעיכוב הרשת כולה, בתוספת זמן העיבוד הפנימי של ה- codec, התוצאה היא מובנת מאליה.

 

ישנם גם כמה ספקים המשתמשים קדימה אלגוריתם תיקון שגיאות (FEC) כדי לפתור בעיה זו. FEC הוא סוג של אלגוריתם לחסימת בלוקים שמשפר את הדיוק על ידי יצירת מידע מיותר ושידור מידע מיותר יחד עם זרם החבילה המקורי. מידע מיותר זה יכול לעזור לשחזר מנות אבודות ברשת, בתנאי שהמידע הנכון והמידע המיותר מספיקים. שיטה זו נשמעת טוב, אבל כמובן שזה עולה קצת. מאז codec גם צריך לשלוח מידע מיותר, את דרישות רוחב הפס של הרשת להגדיל בהתאם. רכיבי codec מסוימים מבטיחים רוחב פס תמסורת מתמשכת (וידאו פלוס תקורה) על ידי הקרבת רוחב הפס המוקצה לסרטון. ברור, זה יביא הפסד איכות הווידאו זרם. בנוסף, באלגוריתם FEC, לפני העברת קוד FEC, יש ליצור מנות נתונים ויש לחשב את קוד FEC. בסוף מקבל, מנות נתונים ומידע מיותר צריך לאסוף כדי לשחזר את מנות הנתונים שאבדו, אשר בהכרח להגדיל את העיכוב. הגידול בעיכוב יפחית את האינטראקטיביות של תקשורת וידאו ולהגדיל את הקושי של שיחה דו כיוונית.

 

אז, מה SVC יכול לפתור את הבעיה? אנו יודעים ש- SVC יוצר תמונות וידאו באמצעות שכבת בסיס ושכבת שיפור אחת או יותר, המופיעות בחבילות נתונים שונות ברשת, בהשפעת האובדן של מנות נתוני שכבת הבסיס וכתוצאה מהקידוד הלא היררכי. זה עקבי, אבל ההשפעה של אובדן שכבת מנות הפסד הוא הרבה יותר קטן. מאז שכבת ההעשרה מבוססת על שכבת הבסיס ולא על תמונת המסגרת הקדמית, אובדן המנות של שכבת ההעשרה גורם רק לחדות זמנית ולפגיעה ברמת המסגרת מבלי להשפיע על הארכיטקטורה הבסיסית של תמונת הווידאו.

 

קוד FEC יכול להגן על מידע שכבת הבסיס של זרם הווידאו SVC באותו אופן כמו קידוד לא היררכי. בתקשורת וידאו SVC עם דרישות ברזולוציה נמוכה יותר, השימוש בקודים FEC יש גם את המגבלות, תקורה תקלות ועיכוב של קידוד נמוך רוחב פס לא היררכי. בדרישות רוחב הפס הגבוה יותר, ההבדל בין טכניקות קידוד וידאו שכבות ולא שכבות הוא ברור מאוד. הסיבה לכך היא כי יש רק תקורה בשכבת הבסיס, אבל לא בשכבת שיפור. לדוגמה, אם קוד FEC מוסיף סך של 20% תקורה, ואת שכבת הבסיס רק תופסת 25% רוחב הפס של כל תקשורת וידאו, כלומר, קידוד וידאו מרובד, קוד FEC רק תופסת 5% תקשורת וידאו כולו. רוחב פס, בעוד קודי FEC לכבוש 20% של רוחב הפס הכולל וידאו לא שכבת קידוד.

 

לכן, היתרונות של וידאו שכבת וידאו קידוד הטכנולוגיה כאן משתקפים שילוב של וידאו שכבת ארכיטקטורת זרם שכבת הבסיס FEC הגנה. עבור שיחות ברוחב פס נמוך, ההשפעות שהושגו על ידי קידוד וידאו בשכבת וידאו לא מרובד קידוד דומים. עם זאת, בשיחות ברוחב פס גבוה, קידוד וידאו בשכבות יכול לספק וידאו באיכות גבוהה יותר ברשת קל לשחרר מנות, ודורש פחות הגנה מאשר קידוד וידאו לא שכבת.


אולי גם תרצה