Effective P2P H.264/AVC Real-time Video Transmission Over Error

Download Report

Transcript Effective P2P H.264/AVC Real-time Video Transmission Over Error

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
Students: Meir Shiri and Tomer Levy
Advisors: Dr. Ofer Hadar and Dr. Evgeny Kaminsky
Project Goal:
“Investigate the resilience of the Intel IPP
(Integrated
Performance
Primitives
)
compression protocol by using transmission
and reception real-time chains.”
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
Problem Definition:
• The guidelines to minimize the visual disruption to the viewer are:
1.
Limit the damage , both spatial and temporal.
2.
Sprinkle the damage across the screen .
3.
Spread the damage over multiple frames.
Problem Solution - Error resilience:
• Error resilience refers to mechanisms in the Encoder.
Project Description:
Encoder
PC1
WANem
PC2
RTP – Real-time Transport Protocol
MPEG4
RTP
UDP
IP
Application
Transport
Network
H.264/AVC – Compression
Protocol - briefly
• Three types coded frames:
I-frame
P-frame
• Intra-coded
frame, coded
independently of
all other frames.
• Predicatively
coded frame,
coded based on
previously coded
frame.
B-frame
• Bi-directionally
predicted frame,
coded based on
both previous
and future
coded frames.
Project Description:
Encoder
PC1
WANem
PC2
Why Intel IPP ?
• Provides source code and libraries for media types such as:
Data
Image
and
Video
Com
and
Signal
Intel IPP
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.
Intel IPP Encoder
• Input YUV frames.
• Output MPEG-4 bit stream file.
• Disable Motion Estimation for
testing purposes.
• Parameters file.
Intel IPP Encoder GUI
• In order to control IIPP encoder parameters we implemented a
GUI.
Compress
file
Configure
Encoder
parameters
Pick a YUV
file
Intel IPP Encoder GUI
• Configure Encoder parameters:
Intel IPP Encoder GUI
• Example of compressing a YUV file, using Intel IPP encoder:
Project Description:
Encoder
PC1
WANem
PC2
VSS – Vanguard Software Solution
• In order to send the video between the computers, we used
VSS filters.
• Sender side:
• Receiver side:
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.
Project Description:
Encoder
PC1
WANem
PC2
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.
WANem – Wide Area Network
Emulator
Project Description:
Encoder
PC1
WANem
PC2
Direct Show Filters
For example:
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:
Creating instance of the required
filter – Intel IPP Encoder
• DirectShow Base Classes – C++
classes.
Creation
Registration
Logic
DirectShow Filter
Problem
Streaming
compressed video
over
communication
channels that
introduce errors !
–
Solutions
Error Resilience
Methods
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
Error resilience - Selective Intra
Coding:
• Sprinkles a few intra coded macroblocks in the P and B frames.
• Tradeoff
benefits
Error
resiliency
Coding
efficiency
Less
Delay
Jitter
Stable
output
bit rate
Stable
workload
for the
decoder
Error resilience - Selective Intra
Coding - Methods:
There are several methods for dispersing the Intra coded macroblocks
in the output stream:
Error resilience - Selective Intra
Coding - Motion Tracking:
• Insert the intra coded macroblocks according to a motion
tracking algorithm:
Error resilience - Selective Intra
Coding - Methods:
There are several methods for dispersing the Intra coded macroblocks
in the output stream:
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 =
•40 rows
20 frames.
Frame Height
16
Project Description:
Any Encoder
PC1
WANem
PC2
The End !