Download presentation
Presentation is loading. Please wait.
1
Department of Communication Systems Engineering
Ben Gurion University of the Negev Be’er-Sheva, Israel Projects Day Effective P2P H.264/AVC Real-time Video Transmission Over Error Prone Networks פרוייקט זה עוסק בשידורי וידאו realtime מעל רשתות החשופות לשגיאות ואיבודי חבילות, בפרוייקט זה נבחן לעומק את השיטות השונות להתגבר על שגיאות אלו ולשפר את חויית הצופה (QoE). Students: Meir Shiri and Tomer Levy Advisors: Dr. Ofer Hadar and Dr. Evgeny Kaminsky
2
Project Goal: “Investigate the resilience of the Intel IPP (Integrated Performance Primitives ) compression protocol by using transmission and reception real-time chains.” מטרת הפרוייקט היא בעצם לחקור את העמידות לשגיאות של encoder מסויים באמצעות שרשראות שידור וקליטה Live. בפרוייקט זה בחרנו לחקור את פרוטוקול הדחיסה Intel IPP מהסיבות שנפרט בהמשך.
3
background קצת רקע בקצרה:
Streaming compressed video over communication channels that introduce errors, for example Internet channel: In this project we will discuss the technology features that provide these countermeasures קצת רקע בקצרה: שליחה של מידע מעל רשתות החשופות לשגיאות והשהייות ממושכות ומשתנות מחייבת נקיטת אמצעים ושיטות שונות על מנת לשמור על איכות חווית הצפייה בוידאו. בפרוייקט זה נדון בשיטות שונות אלו ונציג דרכי שימוש בהם. Streaming compressed video over communication channels that introduce errors, losses and excessive delay requires countermeasures to preserve the quality of the viewing experience. In this project we will discuss the technology features that provide these countermeasures and suggested application methods for their use.
4
Problem Definition: The guidelines to minimize the visual disruption to the viewer are: Limit the damage , both spatial and temporal. Sprinkle the damage across the screen . Spread the damage over multiple frames. כעת נגדיר את הבעיה אתה מתמודדים, כאשר משדרים סרט וידאו ברשת חשופה לשגיאות, ננקוט בקווים המנחים הבאים על מנת למזער את ההפרעות הנראות לעין לצופה: נדרש להגביל את השגיאה גם במרחב וגם בזמן, במילים אחרות, להקטין את השטח של האזור הפגוע ולא לתת לשגיאה להתפשט לאורך הזמן. למרוח את השגיאה על פני כל המסך ולא לתת לה להתרכז באזור גדול מסויים אחד. לפזר את השגיאות מעל מספר מסגרות במקום לתת להן להתרכז במסגרת אחת. When the multimedia stream is subject to damage, the guidelines to minimize the visual disruption to the viewer are: The damage should be limited in extent, both spatial and temporal. In other words, minimize the areas of the screen that are affected, and do not allow the damage to persist or build up over time Sprinkle the damage across the screen rather than letting it concentrate in one large area Spread the damage over multiple frames rather than concentrating it all in one frame
5
Problem Solution - Error resilience:
Error Concealment Error Resilience System Robustness. Error resilience refers to mechanisms in the Encoder. היכולת של מערכת למזער שגיאות ולהתאושש מהן במהירות מגדירות את חוסנה של המערכת על מנת להשיג חוסן זה קיימות שתי טכניקות נפרדות ומשלימות:error resilience and error concealment. Error concealmentהוא מנגנון הממומש ב- decoder, אשר נועד להסתיר את השגיאות. Error resilience הוא מנגנון הממומש ב- encoder, אשר מגדיל את היכולת של הוידאו הדחוס להתמודד עם שגיאות. The ability of the system to minimize and to quickly recover from the damage is its robustness. In order to achieve robustness, we use two separate and complementary techniques: error resilience and error concealment. Error resilience refers to mechanisms in the Encoder, that enhance the capability of the compressed bit stream to resist channel errors.
6
Project Description: WANem PC1 PC2 Encoder
כאן ניתן לראות את שרשראות השידור והקליטה שנועדו לבדוק את העמידות לשגיאות של פרוטוקולי דחיסה שונים. ניתן להחליף את ה- encoder בכל encoder אחר ולבחון את ביצועיו ועמידותו לשגיאות. PC2
7
RTP – Real-time Transport Protocol
MPEG4 RTP UDP IP Application Transport Network פרוטוקול RTP משמש להעברת realtime מולטימדיה, מועבר מעל גבי פרוטוקול UDP על מנת לספק מהירות העברה גבוהה ו – delay נמוך שהם פרמטרים קריטיים להעברת וידאו בזמן אמת. לא דורש סידור מחדש של החבילות.
8
H.264/AVC – Compression Protocol - briefly
Three types coded frames: I-frame Intra-coded frame, coded independently of all other frames. P-frame Predicatively coded frame, coded based on previously coded frame. B-frame Bi-directionally predicted frame, coded based on both previous and future coded frames.
9
Project Description: WANem PC1 PC2 Encoder
כאן ניתן לראות את שרשראות השידור והקליטה שנועדו לבדוק את העמידות לשגיאות של פרוטוקולי דחיסה שונים. ניתן להחליף את ה- encoder בכל encoder אחר ולבחון את ביצועיו ועמידותו לשגיאות. PC2
10
Why Intel IPP ? בחרנו בפרוטוקול דחיסה זה מהסיבות הבאות:
Provides source code and libraries for media types such as: Image and Video Data Com and Signal Intel IPP בחרנו בפרוטוקול דחיסה זה מהסיבות הבאות: הפרוטוקול מספק קוד מקור וספריות עבור סוגי מדיה שונים. Provides source code and libraries for media types such as MP3, MPEG-2, MPEG-4, H.263, JPEG, JPEG2000, GSM-AMR, G.723, and computer vision. [Intel] Support advanced commands such as: MMX, SSE2 etc. Multi-Core Processors Enable the True Parallel Execution of Multi-Threaded Software Applications: Well documented. Easy to use.
11
Why Intel IPP ? Support advanced commands such as: MMX, SSE2 etc. Multi-Core Processors Enable the True Parallel Execution of Multi-Threaded Software Applications: Well documented. Easy to use. -תומך בפקודות מעבד מתקדמות כמו MMX (Multi Media Extensions - מעבד פנטיום משופר ומהיר במיוחד להפעלת תכניות מולטימדיה ) ו –SSE2 - SSE2, Streaming SIMD Extensions 2, is one of the IA-32 SIMD (Single Instruction, Multiple Data) -מעבד עם ליבה כפולה מאפשר עיבוד מקבילי של אפליקציות. מתועד בצורה טובה. קל לשימוש. Support advanced commands such as: MMX, SSE2 etc. Multi-Core Processors Enable the True Parallel Execution of Multi-Threaded Software Applications: Well documented. Easy to use.
12
Intel IPP Encoder Input YUV frames. Output MPEG-4 bit stream file. Disable Motion Estimation for testing purposes. Parameters file. מקבל בכניסה חוצץ המכיל מסגרות בפורמט YUV ומטפל בהם מסגרת אחרי מסגרת. מייצר קובץ בפורמט H264 במוצא. ניתן לבטל את ה – motion estimation למטרת בדיקות. משתמש בקובץ par כקובץ קונפיגורציה על מנת לקבוע את אופן הדחיסה. Uses input data from the decoder YUV frame buffers on a frame by frame basis. Creates an MPEG-4 bit stream file, out.cms, between 800KB and 1MB in size, video only. Motion Estimation can be disabled for testing purposes. Requires input parameters via a parameter file, though some elements can be ignored
13
Intel IPP Encoder GUI In order to control IIPP encoder parameters we implemented a GUI. Pick a YUV file Configure Encoder parameters Compress file על מנת לבצע דחיסה ב- offline באמצעות ה – encoder של Intel בנינו GUI. ה- GUI מאפשר למשתמש לבחור קובץ וידאו בפורמט YUV, לקנפג את הפרמטרים של הדחיסה ולבצע את הדחיסה באמצעות IIPP.
14
Intel IPP Encoder GUI Configure Encoder parameters: ניתן להתרשם מהכמות הגדולה של הפרמטרים שניתן לקנפג על מנת לבצע דחיסה טובה. החשובים מבינהם: מספר המסגרות שרוצים לקודד רזולוצית קובץ היציאה. מספר המסגרות בין שתי מסגרות I סמוכות. -כמות מסגרות הייחוס. -כמות ה- slices בהתאם למספר ה- threads. -קצב המסגרות לשניה. - Motion estimation -ועוד.
15
Intel IPP Encoder GUI Example of compressing a YUV file, using Intel IPP encoder: כאן ניתן לראות דוגמא לפלט של הרצת ה- GUI, בפלט זה ניתן לראות הפרמטרים ששימשו לדחיסה וסיכום של הדחיסה הכולל זמן דחיסה, קצב מסגרות,ניצול CPU, גודל הקובץ הדחוס, יחס הדחיסה ועוד.
16
Project Description: WANem PC1 PC2 Encoder
כאן ניתן לראות את שרשראות השידור והקליטה שנועדו לבדוק את העמידות לשגיאות של פרוטוקולי דחיסה שונים. ניתן להחליף את ה- encoder בכל encoder אחר ולבחון את ביצועיו ועמידותו לשגיאות. PC2
17
VSS – Vanguard Software Solution
In order to send the video between the computers, we used VSS filters. Sender side: Receiver side: על מנת להעביר את הוידאו בין המחשבים התשתמשנו בטכנולוגית VSS אשר מספקת פילטרים בתוכנה, בעזרתם הקמנו את שרשראות השידור והקליטה. שרשרת השידור מורכבת מ – RTP muxer ו- NetSender. שרשרת הקליטה מורכבת מ – Demuxer ו- NetReceiver.
18
VSS – Vanguard Software Solution
multiplexes video and audio streams to transport with RTP protocol. compatible with VSS muxer filters. Sends data over network. Receives and reassembles the transmitted packets into a stream. RTP Muxer - מרבב וידאו ואודיו לחבילות מעל גבי פרוטוקול RTP. מספק השהיה נמוכה יחסית ל – M2TS. משמש לסינכרון שליחת החבילות עם ה- demuxer. Demuxer – מבצע את הפעולה ההפוכה בשרשרת הקליטה. NetSender – שולח את המידע ברשת במוד של unicast או multicast . יש לו פונקציה להגבלת הרוחב פס, גודל חוצץ לפני השידור. NetReceiver – מקבל את המידע ובונה אותו מחדש לוידאו. multiplexes video and audio streams to transport with RTP protocol. VSS RTP transport solution provides much lower latency values compared to M2TS. compatible with VSS muxer filters. Sends data over network in either unicast or multicast modes. Has a bandwidth limiter function. Receives and reassembles the transmitted packets into a stream
19
Project Description: WANem PC1 PC2 Encoder
כאן ניתן לראות את שרשראות השידור והקליטה שנועדו לבדוק את העמידות לשגיאות של פרוטוקולי דחיסה שונים. ניתן להחליף את ה- encoder בכל encoder אחר ולבחון את ביצועיו ועמידותו לשגיאות. PC2
20
WANem – Wide Area Network Emulator
Meant to provide a real experience of a Wide Area Network/Internet, during application development / testing over a LAN environment. Can be used to simulate WAN characteristics like Network delay, Packet loss, Packet corruption, Disconnections, Packet re-ordering, Jitter, etc. שרת אמולציה המבוסס על מערכת הפעלה לינוקס אשר התעבורה בין המחשבים עובר דרכו באמצעות חיבורים פיזיים. אמולטור זה מדמה סביבת WAN על כל הפרמטרים השונים שלה על מנת לבדוק את העמידות האפליקציות בסביבה אמיתית. Meant to provide a real experience of a Wide Area Network/Internet, during application development / testing over a LAN environment.
21
WANem – Wide Area Network Emulator
ניתן לראות את ה- GUI של המערכת אשר מאפשר לקנפג פרמטרי WAN שונים כגון: השהיות, איבודי חבילות, חבילות שגויות, ניתוקים יזומים, שינוי סדר חבילות, השהייה משתנה jitter ועוד. ניתן לבנות כלל עבור כתובות IP מסוימות ועליהן להפעיל את הפרמטרים. Can be used to simulate WAN characteristics like Network delay, Packet loss, Packet corruption, Disconnections, Packet re-ordering, Jitter, etc.
22
Project Description: WANem PC1 PC2 Encoder
כאן ניתן לראות את שרשראות השידור והקליטה שנועדו לבדוק את העמידות לשגיאות של פרוטוקולי דחיסה שונים. ניתן להחליף את ה- encoder בכל encoder אחר ולבחון את ביצועיו ועמידותו לשגיאות. PC2
23
complex multimedia task
Direct Show Filters complex multimedia task filter For example: Output Input פילטרים אלו מחלקים משימת מולטימדיה מסובכת (לדוגמא הרצת פליבק של וידאו) לסדרה של צעדי עיבוד בסיסיים הידועים כפילטרים. לכל פילטר המייצג שלב אחד בעיבוד המידע ישנה כניסה או/ ו יציאה אשר בעזרתם הוא מתחבר ליתר הפילטרים בגרף. DirectShow divides a complex multimedia task (e.g. video playback) into a sequence of fundamental processing steps known as filters. Each filter — which represents one stage in the processing of the data — has input and/or output pins that may be used to connect the filter to other filters.
24
GraphEdit The GUI that can be used to visually build and test filter graphs. Searches the Windows Registry. Connects the filters together, and, at the developer's request, executes : Intel IPP Sender graph: זהו בעצם ה- GUI שבעזרתו ניתן לבנות בצורה ולבדוק גרף של פילטרים הוא סורק את הרגיסטרי של Windows ומחפש פילטרים רשומים ובונה את הגרף בהתאם למיקומים שסופקו. לאחר מכן, הוא מחבר את הפילטרים ביחד ולבקשת המשתמש מריץ את הגרף . ניתן לראות לדוגמא את הגרף של המחשב בשרשרת השידור. The GUI that can be used to visually build and test filter graphs. Searches the Windows Registry for registered filters and builds its graph of filters based on the locations provided. After this, it connects the filters together, and, at the developer's request, executes (i.e., plays, pauses, etc.) the created graph
25
Creating instance of the required filter – Intel IPP Encoder
DirectShow Base Classes – C++ classes. Creation Registration Logic DirectShow Filter על מנת לבנות פילטר, משתמשים בסט של מחלקות C++ אשר ניתן למצוא אותם ב- DirectShow SDK ונקראות גם DirectShow Base Classes מחלקות אלו מטפלות ביצירת הפילטר, הרישום שלו ברגיסטרי ולוגיקת החיבור שלו. ניתן לראות דוגמא של קוד של פילטר. In order to build the filter we are using a set of C++ classes provided in the DirectShow SDK, called the DirectShow Base Classes. These handle much of the creation, registration and connection logic for the filter
26
Error Resilience Methods
Problem – Solutions Streaming compressed video over communication channels that introduce errors ! Error Resilience Methods על מנת להתמודד עם בעיית הערוצים החשופים לשגיאות קיימות מספר שיטות להתמודדות אשר ניתן לממש בדוחס.
27
Error resilience - Selective Intra Coding:
Halt error propagation by frequent emplacement of I-frames. But, what about the coding efficiency ? Jitter & Higher BW Q factor השמה תכופה של מסגרות I היא ללא ספק הכלי הטוב ביותר לעצור את התפשטות השגיאות זאת מאחר ומסגרת I מסתמכת רק על ה- MB שלה ולא מסתמכת על מסגרות אחרות, אלא משמשת כרפרנס למסגרות אחרות. יעילות הדחיסה של מסגרות I היא נמוכה ממסגרות P ו B ולכן שידור של מסגרות I גוררת Jitter בגלל זמני שידור ארוכים ופיקים של BW. הדוחס יכול לפצות על חסרונות אלו ע"י הקטנה משמעותית של ה- Q פקטור. Selective Intra Coding Frequent emplacement of I-frames in the stream is undoubtedly the most powerful tool to halt error propagation and to recover corrupted pictures. Since the I-frames are compressed based entirely on their own macroblocks, without prediction or reference to other frames, they are able to stand alone. I-frames establish new references for the subsequent prediction process. The coding efficiency of I-frames is lower than the coding efficiency of predicted frames. Consequently, transmitting an I-frame requires higher bandwidth which results in: Delay Jitter – due to longer transmission period on narrow bandwidth channels, Bandwidth Excursions due to the suddenly larger bit rate The encoder can compensate for these effects by drastically reducing the Q Factor in Subsequent Intra Coded Macroblocks Rather than inserting a whole I-frame, the encoder sprinkles a few intra coded macroblocks in the P and B frames. The number and location of these Intra MBs can be configured. The Intra MB update provides a reasonable tradeoff between the error-resiliency and coding efficiency, and can be used with other error resilience schemes. The benefits of this technique include: Stable output bit rate Less Delay Jitter Stable workload for the decoder There are several methods for dispersing the Intra coded macroblocks in the output stream.
28
Error resilience - Selective Intra Coding:
Sprinkles a few intra coded macroblocks in the P and B frames. Tradeoff benefits Stable workload for the decoder Stable output bit rate Less Delay Jitter Error resiliency Coding efficiency במקום להכניס מסגרות I שלמות, הדוחס מפזר MB במסגרות P ו- B. ניתן לקנפג את מספר ה- MB ואת המיקום שלהם. MB אלו מספקים פתרון סביר לטריידאופ בין עמידות לשגיאות לבין יעילות דחיסה וניתן להתשמש בהם בנוסף לשיטות אחרות. היתרונות של שיטה זו הן: ביטרט יציב במוצא, Jitter נמוך יותר, עומס עבודה נמוך יותר ל- Decoder Intra Coded Macroblocks Rather than inserting a whole I-frame, the encoder sprinkles a few intra coded macroblocks in the P and B frames. The number and location of these Intra MBs can be configured. The Intra MB update provides a reasonable tradeoff between the error-resiliency and coding efficiency, and can be used with other error resilience schemes. The benefits of this technique include: Stable output bit rate Less Delay Jitter Stable workload for the decoder
29
Error resilience - Selective Intra Coding - Methods:
There are several methods for dispersing the Intra coded macroblocks in the output stream: Intra Coded Macroblocks Motion Tracking Row based Distribution Random Distribution Decoder Indicated Loss ישנן שיטות שונות לפיזור ה- MB ב- Stream: המטרה של שיטה זו היא להוריד ככל האפשר את הנזק הנראה לעין כתוצאה משימוש במסגרות יחסיות. במקרים כאלו ה- motion compensation ב- decoder ייצר זנב של ארטיפקטים. בדיקות הוכיחו את היעילות של שיטה זו ואישרו שהיא מספקת עמידות לשגיאות טובה תוך כדי הגדלה מינימלית של רוחב הפס. השיטה מורידה את הזנבות ע"י הכנסה של MB בהתאם לאלגוריתם למעקב אחר תנועה , motion tracking, אשר בצורה נפרדת עוקב אחרי אזורים עם תנועות מהירות ומעדכן את אותם בתדירות גבוהה יותר מאשר אזורים יציבים. שיטה זה מגבירה את ההתאוששות הכללית משגיאות של איבודי חבילות מבלי להתייחס לתנועה. שורה אופקית אחת או יותר של MB, מוכנסת למסגרות P ו-B, השורות הנבחרות נעות למטה שורה אחת ממסגרת למסגרת. מספר המסגרות הנדרש כדי לסרוק תמונה שלמה הוא Frame Height/16, לדוגמא, מסגרת SD עם 480 פיקסלים מורכבת מ- 40 שורות. אם שיטה זו תשתמש ב-2 שורות אז מכסימום של 20 שורות יידרשו על מנת לנקות תמונה שגויה. החסרונות של שיטה זו: פגיעה ביעילות הדחיסה – בדוגמא שראינו, נשלח מסגרת I כל 20 מסגרות. בהנחה שהנזק מפוזר באופן אחיד ( אותה הסתברות לאיבוד לכל MB ), אזי מספר המסגרות הנדרשות לתקן שגיאה הוא חצי אינטרוול או 10 מסגרות בדוגמא שלנו. מספר זה גבוה . שיטה זה מכניסה MB בכל מסגרת P ו-B בהסתמך על הסתברות מוערכת לאיבוד חבילות. משקל גדול יותר מקבלות המסגרות במרכז בגלל שסביר להניח שה-MB באזורים אלו ישמשו כרפרנס למסגרות הבאות. פחות משקל מוקצה לאזורים בשוליים. שיטה זו מסתמכת על הפורס שיזהה MB חסרים. פרוטוקול איתותים ובקרה נפרד מודיע לדוחס על MB חסרים. ברגע שהדוחס קיבל סימן שחסרים MB, הוא מכניס מסגרת I. ניתן לשלב טכניקה זו עם אחרות. כשלעצמה היא שיטה אפקטיבית לרשתות עם מספר איבודים קטן ו- delay קצר מאחר ומסגרת ה- I מסופקת בצורה גסה בזמן RTT אשר נע בין 50 ל-200 מיליסקונדס. היתרון הגדול של שיטה זו הוא העדכון המהיר מבלי לשלוח סתם MB ללא צורך. Motion Tracking The goal of this method is to reduce the visible damage that result from losses to reference frames. In such cases the motion compensation system in the decoder produces comet tail artifacts. Testing validated the effectiveness of this method, and demonstrated that it provides good error resilience with minimal increase of bandwidth. Breaking and clean up of these “tales” is performed by inserting the intra coded macroblocks according to a motion tracking algorithm, which separately tracks fast motion regions, and updates them more frequently than stable regions. Row based Distribution This method accelerates the general recovery from packet losses without regard to motion. One or more horizontal rows of the macroblocks are inserted in the inter frames (P and B). The selected lines move downwards from frame to frame by one row. The number of frames required to “scan” the entire image space is: Frame Height / 16. For example a SD frame of 480 pixels consists of 40 rows. If this method is used with two rows, then a maximum of 20 frames will be needed to clean the corrupted pictures. The drawbacks of this method are: It amounts to a GOP change. In this example the equivalent of an I Frame is sent every 20 frames, significantly decreasing the compression efficiency Assuming that the damage is uniformly distributed (any macroblock can be lost with equal probability) then the expected number of frames to correct the error is ½ the interval – or 10 in this example. This number is fairly high. Random Distribution This method inserts intra coded macroblocks in every inter coded frame, based on the expected packet loss probability estimate. Greater weight is assigned to the central portion of the frame, because macroblocks in this area are more likely to be references for other predictions. Lesser weight is assigned to the peripheral macroblocks. Decoder Indicated Loss This method relies on the decoder to detect missing macroblocks. A separate signaling and control protocol informs the decoder about missing macroblocks. Upon receiving the indication of the missing macroblock, the encoder inserts an I coded macroblock, or I frame, in the output stream. This technique can be combined with the others. On its own it is an effective method for low loss, low delay networks because the missing I coded macroblock will be supplied in roughly a network round trip time, which ranges from ms in most networks. It has the benefit of providing fairly rapid updates without incurring unnecessary overhead of redundant macroblocks.
30
Error resilience - Selective Intra Coding - Motion Tracking:
Insert the intra coded macroblocks according to a motion tracking algorithm: ישנן שיטות שונות לפיזור ה- MB ב- Stream: המטרה של שיטה זו היא להוריד ככל האפשר את הנזק הנראה לעין כתוצאה משימוש במסגרות יחסיות. במקרים כאלו ה- motion compensation ב- decoder ייצר זנב של ארטיפקטים. בדיקות הוכיחו את היעילות של שיטה זו ואישרו שהיא מספקת עמידות לשגיאות טובה תוך כדי הגדלה מינימלית של רוחב הפס. השיטה מורידה את הזנבות ע"י הכנסה של MB בהתאם לאלגוריתם למעקב אחר תנועה , motion tracking, אשר בצורה נפרדת עוקב אחרי אזורים עם תנועות מהירות ומעדכן את אותם בתדירות גבוהה יותר מאשר אזורים יציבים. שיטה זה מגבירה את ההתאוששות הכללית משגיאות של איבודי חבילות מבלי להתייחס לתנועה. שורה אופקית אחת או יותר של MB, מוכנסת למסגרות P ו-B, השורות הנבחרות נעות למטה שורה אחת ממסגרת למסגרת. מספר המסגרות הנדרש כדי לסרוק תמונה שלמה הוא Frame Height/16, לדוגמא, מסגרת SD עם 480 פיקסלים מורכבת מ- 40 שורות. אם שיטה זו תשתמש ב-2 שורות אז מכסימום של 20 שורות יידרשו על מנת לנקות תמונה שגויה. החסרונות של שיטה זו: פגיעה ביעילות הדחיסה – בדוגמא שראינו, נשלח מסגרת I כל 20 מסגרות. בהנחה שהנזק מפוזר באופן אחיד ( אותה הסתברות לאיבוד לכל MB ), אזי מספר המסגרות הנדרשות לתקן שגיאה הוא חצי אינטרוול או 10 מסגרות בדוגמא שלנו. מספר זה גבוה . שיטה זה מכניסה MB בכל מסגרת P ו-B בהסתמך על הסתברות מוערכת לאיבוד חבילות. משקל גדול יותר מקבלות המסגרות במרכז בגלל שסביר להניח שה-MB באזורים אלו ישמשו כרפרנס למסגרות הבאות. פחות משקל מוקצה לאזורים בשוליים. שיטה זו מסתמכת על הפורס שיזהה MB חסרים. פרוטוקול איתותים ובקרה נפרד מודיע לדוחס על MB חסרים. ברגע שהדוחס קיבל סימן שחסרים MB, הוא מכניס מסגרת I. ניתן לשלב טכניקה זו עם אחרות. כשלעצמה היא שיטה אפקטיבית לרשתות עם מספר איבודים קטן ו- delay קצר מאחר ומסגרת ה- I מסופקת בצורה גסה בזמן RTT אשר נע בין 50 ל-200 מיליסקונדס. היתרון הגדול של שיטה זו הוא העדכון המהיר מבלי לשלוח סתם MB ללא צורך. Motion Tracking The goal of this method is to reduce the visible damage that result from losses to reference frames. In such cases the motion compensation system in the decoder produces comet tail artifacts. Testing validated the effectiveness of this method, and demonstrated that it provides good error resilience with minimal increase of bandwidth. Breaking and clean up of these “tales” is performed by inserting the intra coded macroblocks according to a motion tracking algorithm, which separately tracks fast motion regions, and updates them more frequently than stable regions. Row based Distribution This method accelerates the general recovery from packet losses without regard to motion. One or more horizontal rows of the macroblocks are inserted in the inter frames (P and B). The selected lines move downwards from frame to frame by one row. The number of frames required to “scan” the entire image space is: Frame Height / 16. For example a SD frame of 480 pixels consists of 40 rows. If this method is used with two rows, then a maximum of 20 frames will be needed to clean the corrupted pictures. The drawbacks of this method are: It amounts to a GOP change. In this example the equivalent of an I Frame is sent every 20 frames, significantly decreasing the compression efficiency Assuming that the damage is uniformly distributed (any macroblock can be lost with equal probability) then the expected number of frames to correct the error is ½ the interval – or 10 in this example. This number is fairly high. Random Distribution This method inserts intra coded macroblocks in every inter coded frame, based on the expected packet loss probability estimate. Greater weight is assigned to the central portion of the frame, because macroblocks in this area are more likely to be references for other predictions. Lesser weight is assigned to the peripheral macroblocks. Decoder Indicated Loss This method relies on the decoder to detect missing macroblocks. A separate signaling and control protocol informs the decoder about missing macroblocks. Upon receiving the indication of the missing macroblock, the encoder inserts an I coded macroblock, or I frame, in the output stream. This technique can be combined with the others. On its own it is an effective method for low loss, low delay networks because the missing I coded macroblock will be supplied in roughly a network round trip time, which ranges from ms in most networks. It has the benefit of providing fairly rapid updates without incurring unnecessary overhead of redundant macroblocks.
31
Error resilience - Selective Intra Coding - Methods:
There are several methods for dispersing the Intra coded macroblocks in the output stream: Intra Coded Macroblocks Motion Tracking Row based Distribution Random Distribution Decoder Indicated Loss ישנן שיטות שונות לפיזור ה- MB ב- Stream: המטרה של שיטה זו היא להוריד ככל האפשר את הנזק הנראה לעין כתוצאה משימוש במסגרות יחסיות. במקרים כאלו ה- motion compensation ב- decoder ייצר זנב של ארטיפקטים. בדיקות הוכיחו את היעילות של שיטה זו ואישרו שהיא מספקת עמידות לשגיאות טובה תוך כדי הגדלה מינימלית של רוחב הפס. השיטה מורידה את הזנבות ע"י הכנסה של MB בהתאם לאלגוריתם למעקב אחר תנועה , motion tracking, אשר בצורה נפרדת עוקב אחרי אזורים עם תנועות מהירות ומעדכן את אותם בתדירות גבוהה יותר מאשר אזורים יציבים. שיטה זה מגבירה את ההתאוששות הכללית משגיאות של איבודי חבילות מבלי להתייחס לתנועה. שורה אופקית אחת או יותר של MB, מוכנסת למסגרות P ו-B, השורות הנבחרות נעות למטה שורה אחת ממסגרת למסגרת. מספר המסגרות הנדרש כדי לסרוק תמונה שלמה הוא Frame Height/16, לדוגמא, מסגרת SD עם 480 פיקסלים מורכבת מ- 40 שורות. אם שיטה זו תשתמש ב-2 שורות אז מכסימום של 20 שורות יידרשו על מנת לנקות תמונה שגויה. החסרונות של שיטה זו: פגיעה ביעילות הדחיסה – בדוגמא שראינו, נשלח מסגרת I כל 20 מסגרות. בהנחה שהנזק מפוזר באופן אחיד ( אותה הסתברות לאיבוד לכל MB ), אזי מספר המסגרות הנדרשות לתקן שגיאה הוא חצי אינטרוול או 10 מסגרות בדוגמא שלנו. מספר זה גבוה . שיטה זה מכניסה MB בכל מסגרת P ו-B בהסתמך על הסתברות מוערכת לאיבוד חבילות. משקל גדול יותר מקבלות המסגרות במרכז בגלל שסביר להניח שה-MB באזורים אלו ישמשו כרפרנס למסגרות הבאות. פחות משקל מוקצה לאזורים בשוליים. שיטה זו מסתמכת על הפורס שיזהה MB חסרים. פרוטוקול איתותים ובקרה נפרד מודיע לדוחס על MB חסרים. ברגע שהדוחס קיבל סימן שחסרים MB, הוא מכניס מסגרת I. ניתן לשלב טכניקה זו עם אחרות. כשלעצמה היא שיטה אפקטיבית לרשתות עם מספר איבודים קטן ו- delay קצר מאחר ומסגרת ה- I מסופקת בצורה גסה בזמן RTT אשר נע בין 50 ל-200 מיליסקונדס. היתרון הגדול של שיטה זו הוא העדכון המהיר מבלי לשלוח סתם MB ללא צורך. Motion Tracking The goal of this method is to reduce the visible damage that result from losses to reference frames. In such cases the motion compensation system in the decoder produces comet tail artifacts. Testing validated the effectiveness of this method, and demonstrated that it provides good error resilience with minimal increase of bandwidth. Breaking and clean up of these “tales” is performed by inserting the intra coded macroblocks according to a motion tracking algorithm, which separately tracks fast motion regions, and updates them more frequently than stable regions. Row based Distribution This method accelerates the general recovery from packet losses without regard to motion. One or more horizontal rows of the macroblocks are inserted in the inter frames (P and B). The selected lines move downwards from frame to frame by one row. The number of frames required to “scan” the entire image space is: Frame Height / 16. For example a SD frame of 480 pixels consists of 40 rows. If this method is used with two rows, then a maximum of 20 frames will be needed to clean the corrupted pictures. The drawbacks of this method are: It amounts to a GOP change. In this example the equivalent of an I Frame is sent every 20 frames, significantly decreasing the compression efficiency Assuming that the damage is uniformly distributed (any macroblock can be lost with equal probability) then the expected number of frames to correct the error is ½ the interval – or 10 in this example. This number is fairly high. Random Distribution This method inserts intra coded macroblocks in every inter coded frame, based on the expected packet loss probability estimate. Greater weight is assigned to the central portion of the frame, because macroblocks in this area are more likely to be references for other predictions. Lesser weight is assigned to the peripheral macroblocks. Decoder Indicated Loss This method relies on the decoder to detect missing macroblocks. A separate signaling and control protocol informs the decoder about missing macroblocks. Upon receiving the indication of the missing macroblock, the encoder inserts an I coded macroblock, or I frame, in the output stream. This technique can be combined with the others. On its own it is an effective method for low loss, low delay networks because the missing I coded macroblock will be supplied in roughly a network round trip time, which ranges from ms in most networks. It has the benefit of providing fairly rapid updates without incurring unnecessary overhead of redundant macroblocks.
32
Error resilience - Selective Intra Coding - Row Based Distribution:
One or more horizontal rows of the macroblocks are inserted in the inter frames (P and B). frames to “scan” the entire image = Frame Height 16 40 rows frames. ישנן שיטות שונות לפיזור ה- MB ב- Stream: המטרה של שיטה זו היא להוריד ככל האפשר את הנזק הנראה לעין כתוצאה משימוש במסגרות יחסיות. במקרים כאלו ה- motion compensation ב- decoder ייצר זנב של ארטיפקטים. בדיקות הוכיחו את היעילות של שיטה זו ואישרו שהיא מספקת עמידות לשגיאות טובה תוך כדי הגדלה מינימלית של רוחב הפס. השיטה מורידה את הזנבות ע"י הכנסה של MB בהתאם לאלגוריתם למעקב אחר תנועה , motion tracking, אשר בצורה נפרדת עוקב אחרי אזורים עם תנועות מהירות ומעדכן את אותם בתדירות גבוהה יותר מאשר אזורים יציבים. שיטה זה מגבירה את ההתאוששות הכללית משגיאות של איבודי חבילות מבלי להתייחס לתנועה. שורה אופקית אחת או יותר של MB, מוכנסת למסגרות P ו-B, השורות הנבחרות נעות למטה שורה אחת ממסגרת למסגרת. מספר המסגרות הנדרש כדי לסרוק תמונה שלמה הוא Frame Height/16, לדוגמא, מסגרת SD עם 480 פיקסלים מורכבת מ- 40 שורות. אם שיטה זו תשתמש ב-2 שורות אז מכסימום של 20 שורות יידרשו על מנת לנקות תמונה שגויה. החסרונות של שיטה זו: פגיעה ביעילות הדחיסה – בדוגמא שראינו, נשלח מסגרת I כל 20 מסגרות. בהנחה שהנזק מפוזר באופן אחיד ( אותה הסתברות לאיבוד לכל MB ), אזי מספר המסגרות הנדרשות לתקן שגיאה הוא חצי אינטרוול או 10 מסגרות בדוגמא שלנו. מספר זה גבוה . שיטה זה מכניסה MB בכל מסגרת P ו-B בהסתמך על הסתברות מוערכת לאיבוד חבילות. משקל גדול יותר מקבלות המסגרות במרכז בגלל שסביר להניח שה-MB באזורים אלו ישמשו כרפרנס למסגרות הבאות. פחות משקל מוקצה לאזורים בשוליים. שיטה זו מסתמכת על הפורס שיזהה MB חסרים. פרוטוקול איתותים ובקרה נפרד מודיע לדוחס על MB חסרים. ברגע שהדוחס קיבל סימן שחסרים MB, הוא מכניס מסגרת I. ניתן לשלב טכניקה זו עם אחרות. כשלעצמה היא שיטה אפקטיבית לרשתות עם מספר איבודים קטן ו- delay קצר מאחר ומסגרת ה- I מסופקת בצורה גסה בזמן RTT אשר נע בין 50 ל-200 מיליסקונדס. היתרון הגדול של שיטה זו הוא העדכון המהיר מבלי לשלוח סתם MB ללא צורך. Motion Tracking The goal of this method is to reduce the visible damage that result from losses to reference frames. In such cases the motion compensation system in the decoder produces comet tail artifacts. Testing validated the effectiveness of this method, and demonstrated that it provides good error resilience with minimal increase of bandwidth. Breaking and clean up of these “tales” is performed by inserting the intra coded macroblocks according to a motion tracking algorithm, which separately tracks fast motion regions, and updates them more frequently than stable regions. Row based Distribution This method accelerates the general recovery from packet losses without regard to motion. One or more horizontal rows of the macroblocks are inserted in the inter frames (P and B). The selected lines move downwards from frame to frame by one row. The number of frames required to “scan” the entire image space is: Frame Height / 16. For example a SD frame of 480 pixels consists of 40 rows. If this method is used with two rows, then a maximum of 20 frames will be needed to clean the corrupted pictures. The drawbacks of this method are: It amounts to a GOP change. In this example the equivalent of an I Frame is sent every 20 frames, significantly decreasing the compression efficiency Assuming that the damage is uniformly distributed (any macroblock can be lost with equal probability) then the expected number of frames to correct the error is ½ the interval – or 10 in this example. This number is fairly high. Random Distribution This method inserts intra coded macroblocks in every inter coded frame, based on the expected packet loss probability estimate. Greater weight is assigned to the central portion of the frame, because macroblocks in this area are more likely to be references for other predictions. Lesser weight is assigned to the peripheral macroblocks. Decoder Indicated Loss This method relies on the decoder to detect missing macroblocks. A separate signaling and control protocol informs the decoder about missing macroblocks. Upon receiving the indication of the missing macroblock, the encoder inserts an I coded macroblock, or I frame, in the output stream. This technique can be combined with the others. On its own it is an effective method for low loss, low delay networks because the missing I coded macroblock will be supplied in roughly a network round trip time, which ranges from ms in most networks. It has the benefit of providing fairly rapid updates without incurring unnecessary overhead of redundant macroblocks.
33
Project Description: WANem PC1 PC2 Any Encoder
לסיכום, בפרוייקט זה בנינו שרשראות שידור וקליטה של RT וידאו, כאשר שמנו דגש על המודולריות של המערכת, על מנת שתהווה פלטפורמה עתידית לבחינת פרוטוקולי דחיסה ופריסה שונים. PC2
34
Questions ?! The End ! ישנן שיטות שונות לפיזור ה- MB ב- Stream:
המטרה של שיטה זו היא להוריד ככל האפשר את הנזק הנראה לעין כתוצאה משימוש במסגרות יחסיות. במקרים כאלו ה- motion compensation ב- decoder ייצר זנב של ארטיפקטים. בדיקות הוכיחו את היעילות של שיטה זו ואישרו שהיא מספקת עמידות לשגיאות טובה תוך כדי הגדלה מינימלית של רוחב הפס. השיטה מורידה את הזנבות ע"י הכנסה של MB בהתאם לאלגוריתם למעקב אחר תנועה , motion tracking, אשר בצורה נפרדת עוקב אחרי אזורים עם תנועות מהירות ומעדכן את אותם בתדירות גבוהה יותר מאשר אזורים יציבים. שיטה זה מגבירה את ההתאוששות הכללית משגיאות של איבודי חבילות מבלי להתייחס לתנועה. שורה אופקית אחת או יותר של MB, מוכנסת למסגרות P ו-B, השורות הנבחרות נעות למטה שורה אחת ממסגרת למסגרת. מספר המסגרות הנדרש כדי לסרוק תמונה שלמה הוא Frame Height/16, לדוגמא, מסגרת SD עם 480 פיקסלים מורכבת מ- 40 שורות. אם שיטה זו תשתמש ב-2 שורות אז מכסימום של 20 שורות יידרשו על מנת לנקות תמונה שגויה. החסרונות של שיטה זו: פגיעה ביעילות הדחיסה – בדוגמא שראינו, נשלח מסגרת I כל 20 מסגרות. בהנחה שהנזק מפוזר באופן אחיד ( אותה הסתברות לאיבוד לכל MB ), אזי מספר המסגרות הנדרשות לתקן שגיאה הוא חצי אינטרוול או 10 מסגרות בדוגמא שלנו. מספר זה גבוה . שיטה זה מכניסה MB בכל מסגרת P ו-B בהסתמך על הסתברות מוערכת לאיבוד חבילות. משקל גדול יותר מקבלות המסגרות במרכז בגלל שסביר להניח שה-MB באזורים אלו ישמשו כרפרנס למסגרות הבאות. פחות משקל מוקצה לאזורים בשוליים. שיטה זו מסתמכת על הפורס שיזהה MB חסרים. פרוטוקול איתותים ובקרה נפרד מודיע לדוחס על MB חסרים. ברגע שהדוחס קיבל סימן שחסרים MB, הוא מכניס מסגרת I. ניתן לשלב טכניקה זו עם אחרות. כשלעצמה היא שיטה אפקטיבית לרשתות עם מספר איבודים קטן ו- delay קצר מאחר ומסגרת ה- I מסופקת בצורה גסה בזמן RTT אשר נע בין 50 ל-200 מיליסקונדס. היתרון הגדול של שיטה זו הוא העדכון המהיר מבלי לשלוח סתם MB ללא צורך. Motion Tracking The goal of this method is to reduce the visible damage that result from losses to reference frames. In such cases the motion compensation system in the decoder produces comet tail artifacts. Testing validated the effectiveness of this method, and demonstrated that it provides good error resilience with minimal increase of bandwidth. Breaking and clean up of these “tales” is performed by inserting the intra coded macroblocks according to a motion tracking algorithm, which separately tracks fast motion regions, and updates them more frequently than stable regions. Row based Distribution This method accelerates the general recovery from packet losses without regard to motion. One or more horizontal rows of the macroblocks are inserted in the inter frames (P and B). The selected lines move downwards from frame to frame by one row. The number of frames required to “scan” the entire image space is: Frame Height / 16. For example a SD frame of 480 pixels consists of 40 rows. If this method is used with two rows, then a maximum of 20 frames will be needed to clean the corrupted pictures. The drawbacks of this method are: It amounts to a GOP change. In this example the equivalent of an I Frame is sent every 20 frames, significantly decreasing the compression efficiency Assuming that the damage is uniformly distributed (any macroblock can be lost with equal probability) then the expected number of frames to correct the error is ½ the interval – or 10 in this example. This number is fairly high. Random Distribution This method inserts intra coded macroblocks in every inter coded frame, based on the expected packet loss probability estimate. Greater weight is assigned to the central portion of the frame, because macroblocks in this area are more likely to be references for other predictions. Lesser weight is assigned to the peripheral macroblocks. Decoder Indicated Loss This method relies on the decoder to detect missing macroblocks. A separate signaling and control protocol informs the decoder about missing macroblocks. Upon receiving the indication of the missing macroblock, the encoder inserts an I coded macroblock, or I frame, in the output stream. This technique can be combined with the others. On its own it is an effective method for low loss, low delay networks because the missing I coded macroblock will be supplied in roughly a network round trip time, which ranges from ms in most networks. It has the benefit of providing fairly rapid updates without incurring unnecessary overhead of redundant macroblocks.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.