Exploring the Future Potential of AI-Enabled Smartphone Processors
Qo s provisioning for scalable video streaming over ad hoc networks using cross-layer design
1. Computer and Information Sciences
Computer Engineering Department
QoS Provisioning for Scalable Video Streaming Over
Ad-Hoc Networks Using Cross-Layer Design
1
2. Multi-hop Wireless Networks.
Quality of Service (QoS).
Cross-layer Design.
Scalable Video Coding.
Simulation Environment.
Proposed Solution.
Results and Findings.
Future Works.
Publications from this Thesis.
2
4. Multi-hop Wireless Networks (MHWNs):
It is defined as a collection of nodes that communicate with each
other wirelessly by using radio signals with a shared common
channel.
Source Destination
Hop
Path, chain or route
Host Switching Unit
4
5. There are several names for MHWNs; it could be called packet
radio network, Ad-Hoc network or mobile network.
The nodes here could be named stations or radio transmitters
and receivers.
MHWNs
Ad-Hoc
Networks
Mesh Networks
Wireless Sensor
Networks
5
6. Ad-Hoc Networks:
Nodes in the network are mobile in general.
The wireless hosts in such networks, communicate with each
other without the existing of a fixed infrastructure and without a
central control.
A mobile ad-hoc network can be connected to other fixed
networks or to the Internet.
Most of the Ad-Hoc networks use the allocated frequencies for
the Industrial, Scientific and Medical (ISM) band.
6
7. Ad-hoc networks have several advantages over the traditional
networks, like:
Ad-hoc networks can have more flexibility.
It is better in mobility.
It can be turn up and turn down in a very short time.
It can be more economical.
It considered a robust network because of its non-hierarchical
distributed control and management mechanisms.
7
8. The main challenges face the Ad-Hoc networks are the following:
Energy conservation: Nodes in Ad-Hoc networks are equipped
with limited batteries.
Unstructured and/or time-varying network topology: Because of
the nodes mobility, that makes the network topology usually
unstructured and makes the optimizing process a difficult task.
Scalability & heterogeneity: In some cases, there will be a huge
number of nodes.
8
9. Low-quality communications: In general, the wireless channel is
weak, unreliable, unprotected from outside interferences, and the
quality of the network can be affected by the environmental
factors.
Resource-constrained computation: The resources in Ad-Hoc
networks “such as network bandwidth” are available in limited
amounts.
Ease of snooping on wireless transmissions (security hazard).
9
10. In addition to that, Ad-Hoc networks inherit some of the issues
which are faced by the traditional wireless networks, like:
There are no known boundaries for the maximum range that
nodes will be able to receive network frames.
The wireless channel has time-varying and asymmetric
propagation properties.
Hidden-node and exposed-node problems may occur.
COLLISION Blocked
By The
Transmitter
Receiver Transmitter Exposed Node
Sender 1 Receiver Sender 2
10
13. ZigBee is a new standard for the ad-hoc networks based on the
IEEE 802.15.4 standard.
The ZigBee standard is a specification for Low Rate Wireless
Personal Area Networks (LR-WPANs) that are formed and
maintained under the ZigBee working alliance.
13
14. Application Layer
Slotted
(beacon enabled mode) Defined in the
ZigBee Specification
Based on CSMA/CA Network Layer
Un-Slotted
(beaconless mode)
MAC Sub-Layer
Based on DSSS Defined in the
IEEE 802.15.4 Standard
Physical Layer
Data rate for each channel is 250 kbps
Three physical layers:
• 2.4 GHz
• 915 MHz
• 868 MHz
14
16. Ad-Hoc On-Demand Distance Vector Routing (AODV):
The AODV routing protocol is based on the Destination
Sequenced Distance Vector (DSDV) algorithm.
It can minimize the number of required broadcasts by creating
routes in on-demand basis.
It is considered as a pure on-demand route acquisition system.
16
17. Route Discovery Process in AODV:
Last Sequence
RREQ
Number for the
Destination
Destination
RREQ RREQ
Source
RREQ
The intermediate nodes reply to the
Broadcast ID RREQ only if they have a route to the
destination with a sequence number
* Route Request (RREQ)
equal or greater than the one included
Node’s IP Address in the RREQ. 17
19. The source node needs to reinitiate the
route discovery protocol every time it
moves.
If any node in the route moves away, its
upstream neighbor propagates a link failure
notification message (RREP with ∞ metric).
Nodes in AODV use hello messages to
inform about their neighbors in the
network, and for maintaining the
connectivity of nodes.
19
21. In general, QoS is defined as a measure of how well the network
performs its tasks and satisfies the users’ requirements.
QoS represents the set of parameters which should be
implemented in the network infrastructure to meet the service
performance requirements.
Performance
Parameters
Throughput Delay Jitter Packet Loss Availability
Transmission Propagation Queuing Processing
21
22. The QoS requirements can be differ based on the provided
service.
Transferring a file Multimedia Streaming
There are another important problems in Ad-Hoc network when
providing QoS such as routing, maintenance and variable
resource problems .
22
23. The QoS in multi-hop network can be classified based on the
QoS approaches or based on the layer at which nodes operate in
the network protocol stack.
QoS QoS
Approaches Approaches
Coupled Decoupled Independent Dependent
23
25. In the early stage of the multi-hop wireless Application
networks, the network protocol design was
Presentation
based on the layered architecture.
Session
The main feature of this approach was the
Transport
simplicity of the protocol design.
Network
However, this approach was not ideal for the
Data Link
multi-hop wireless networks, because of its
inflexibility which result in poor performance. Physical
OSI Model
25
26. In the layered architectures, the Layer 3 Task 3
networking task will be divided and Layer 2 Task 2
distributed among layers, and each layer
will be assigned to provide certain services. Layer 1 Task 1
The communication between nonadjacent Layer 3
layers is forbidden, while the adjacent
layers can only communicate procedure Layer 2
calls and responses.
Layer 1
Protocols in the layered architecture are
designed by respecting the rules of the
reference architecture.
26
27. The cross-layer design can be defined as a protocol design by the
violation of the reference layered communication architecture
with respect to a certain layered architecture.
The violation of a layered architecture can be done in many
different ways.
After the violation of the layered architecture, the layers will be
no longer separated.
27
28. Categories of cross-layer designs:
Hints
Notifications
Interface
to set a
lower
layer
Interface for
parameter
explicit
notification
from a
lower layer Upward Downward Back-and-forth
to higher information flow
information flow information flow
layer
1 Creation of New Interfaces
28
29. Categories of cross-layer designs:
Designed layer
Fixed layer
Super
layer
Merging of Coupling without Vertical
2 3 4
adjacent layers new interfaces calibration
29
30. Based on the number of layers involved in optimizations
(single, multiple or full), the cross-layer design can be
categorized to three types:
• Layer trigger scheme.
• Joint optimization scheme.
• Full cross-layer design.
30
31. QoS Support With Cross-layer Design:
Network Status
Transport Layer
Traffic Volume
Rate Control Congestion Control
Network Layer
Admission Control Routing
Flow Distribution
MAC Layer
Scheduling Channel Assignment Space and Time
Physical Layer
Modulation / Rate
Ideas
Power Control
Adaptation Network Topology
31
33. The video stream consists of multiple
frames that are displayed in a certain
frame rate.
The size of the frames is specified by the
format of the frame.
Y U V
Luminance Component Two chrominance components, hue Intensity
Format Video Resolution (in pixels)
Size Used in This Thesis
Quarter CIF (QCIF)
96 × 80
176 × 144
Common Intermediate Format (CIF) 352 × 288
33
34. The constraints on the multimedia applications can be different
from one device to another.
This issue, is one of the reasons which makes the video
compression plays a major role in video transmission nowadays.
The main goal of the video compression algorithms is to achieve
an optimal compression while maintaining a low level of
distortion from the compression process.
34
35. Video compression or what is known as video coding is the
process of compacting a digital video signal into a fewer number
of bits.
Compression
Process
Compressor De-compressor
(Encoder) (Decoder)
The reduction of the video size by the compression process is
achieved by removing redundancy (unnecessary components for
reproduction process).
35
36. Residual
Temporal Frames Spatial Coefficients
video
Input Model Model
Stored Entropy Encoded
Motion Vectors
Frames Encoder Output
Video Coding
36
37. Scalability means it is possible to remove some parts of the
stream while maintaining a result that forms another valid bit
stream for some target decoder, and represents the original
content with a reconstruction quality that is less than the original
bit stream.
It allows recipients, and other network
elements, to adjust the video stream
according to their capabilities.
It can help in protecting
the more important parts
of the bit stream from
being dropped or lost in
case of congestion. 37
39. Quality scalability:
The quality scalability a.k.a. "SNR scalability" is similar to the
spatial scalability but without changing of resolution between
layers.
Quality
Scalability
Coarse Grain
Scalability
Medium Grain
Scalability
Fine Grain
Scalability
39
40. Scalable Video Coding (SVC) is an encoding technique that
allows adapting to the variable network conditions.
It has been standardized by the Joint Video Team (JVT) of the
ISO/IEC Moving Pictures Experts Group (MPEG) and the ITU-T
Video Coding Experts Group (VCEG) as an extension for the
H.264/AVC standard.
40
42. Tools Used in This Thesis:
Network Simulator 2: It is an open source object oriented
discrete-event simulator. It is written in C++, and it uses Object
Tool Command Language (OTcl) as a command and
configuration interface.
Network
Scenario
42
43. Joint Scalable Video Model (JSVM): It is an open source project
written in C++ and used as the reference software for the
Scalable Video Coding (SVC) project.
Scalable Video-streaming Evaluation Framework (SVEF): It is a
mixed online/offline open-source framework used to evaluate
the performance of H.264/SVC video streaming. SVEF is written
in C and Python and released under the GNU General Public
License.
43
44. myEvalSVC & myEvalSVC_Sink: They are a customized agents
used to evaluate H.264/SVC transmission over NS2 simulator.
Cygwin: It is software provides Linux look and feel environment
for Microsoft Windows.
Visual C++ 2008 Express Edition: Microsoft Visual C++ is an
Integrated Development Environment (IDE) product from
Microsoft for the C, C++, and C++/CLI programming languages.
44
45. Simulation Parameters:
Parameter Used Value
Network Queue
Number Dimensions
Transmitted SignalFactor (Gt)
CarrierRoutingofType Type(Pt_)
AntennaPropagation Model
Transmit Data ofSize Size (CS)
Radio ChannelDuration Z_)
Network Interface Type
Interface LossNodes
Max Fragmented Y_,
Operating Protocol
SimulationRateGain
System Frequency
Number Threshold
Antenna Model
Sensing Sources
Traffic Type
Location (X_,
Queue Power
Antenna DropTwo80802.15.4m
Scalable3,×dBi (SVC)
20000.0012000Queue
m0, 2s
WirelessKbps
OmniPriority
Tail2.4Bytes
IEEEAODV
(0, 1,GHz
250Antenna
50, 20w
Ray100
1.0 Channel
-1000.5)
1.0
Video
Ground
Receive MAC TypeFOREMAN
Antenna Gain (Gr)
YUV VideoReceiver Threshold (RX)
Sequence Z YUV Video Sequence802.15.4 BUS
IEEE dBi
1.0
Number of Frames 150 Number of Frames 150
Frame Rate 15 fps Frame Rate 15 fps
Resolution (in pixels) 96 × 80
MAX Resolution (in pixels) 96 × 80
Y
X 45
46. Preparing Input Trace • YUV Video
• Main Configuration File
1 • Layer Configuration File
JSVM 9.19.14 Decoder
---------- new ACCESS UNIT Length LId TId QId Packet-Type GENERAL =======================================
Start-Pos. #==============================
---------- Discardable Truncatable
========== ====== 24] OutputFile
JSVM Encoder
NON-VCL: SEI NAL UNIT [message(s): === === === ============ =========== ===========
Bitstream.264 # Bitstream file (Specifies the filename
0x00000000 PARAMETER SET (ID=0) (ID=0) 0 StreamHeader
NON-VCL: SEQUENCE
NON-VCL: SUBSET SEQUENCE57 (H264AVCEncoderLibTestStatic)
PARAMETER SET 0
0 No No
# for the bit-stream to be encoded)
0x00000039PARAMETER SET (ID=0)
NON-VCL: PICTURE 12
FrameRate 0 0 0 ParameterSet
15.0 No
# Maximum frame rateNo [Hz]
0x00000045PARAMETER SET (ID=1)
NON-VCL: PICTURE
8 10]0
#MaxDelay
NON-VCL: SEI NAL UNIT [message(s): 0 0 ParameterSet
1200.0 No No
# Maximum structural delay [ms]
0x0000004d 0, QL 0, 18 BId-1,0 0, QP 32 ) 0 SliceData
Frame 0 ( LId 0, TL AVC-I, AP
FramesToBeEncoded 0 150 No No
# Number of frames (at input frame rate)
Frame 0 ( LId 0, TL 0, QL 1, SVC-I, BId 0, AP 0, QP 32 )
.Frame .0.( LId.0, TL . .QL 2, SVC-I, BId 1, AP.0, QP.32 ). . . . . . . . . .
. . . . . . 0, . . . . . . . . . . . .
ReconFile Original # (Specifies the number of frames of the
Frame 0 ( LId 0, TL 0, QL 3, SVC-I, BId 2, AP 0, QP 32 ) Encoding Process
rec.yuv
........................................ Bitstream.264 # input sequence to be encoded)
encoding.txt
. . . . . . . . . . . . . . . . . . . . . Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
......
Reconstructed file
JSVM 9.19.14 Encoder
Info: MaxDeltaQP was set to 0 for layer with MGSVectorMode
#====================== INPUT / OUTPUT =========================================
JSVM Decoder
profile & level info:
JSVM BitStreamExtractor
===================== SourceWidth 96 # Input frame width
(H264AVCDecoderLibTestStatic)
DQ= 0: Main @ Level 1
SourceHeight 80 (BitStreamExtractorStatic)
# Input frame height
DQ= 1: Scalable High Intra @ Level 1
DQ= 2: Scalable High Intra @ FrameRateIn Level 1 15 # Input frame rate [Hz]
DQ= 3: Scalable High Intra @ Level 1
AU 0: I T0 L0 Q0 QP 32 Y 33.6156 U 39.4929 V FrameRateOut 39.9656156032 bit # Output frame rate [Hz]
0: I T0 L0 Q1 QP 32 InputFile 240 bit FOREMAN_96x80_15.yuv
# Input file
Decoding
0: I T0 L0 Q2 QP 32
Reconstructed 200 bit
0: I T0 L0 Q3 QP 32 Y 33.6427 U 39.4929 V 40.0422 rec_layer.yuv
#ReconFile NALUReconstructed file
176 bit # Trace File
Process Video Sequence
. . . . . . . . . . . . . . . . . . . . . . . . . . .#SymbolMode
............. 0 # 0=CAVLC, 1=CABAC
originaltrace.txt
decoding.txt. . . . . . . Bitstream.yuv. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
46
47. Preparing Input Frame
Trace Decoding Process Frame NALU Trace File
decoding.txt Originaltrace.txt
2
Time Size LId TId QId Number
0.000000 787 0 0 0 0
0.033333 240 0 0 0 2
0.066667 275 0 F-N Stamp
0 0 3
0.100000 244 0 0
(f-nstamp) 0 4
0.133333 262 0 0 0 5
0.166667 283 0 0 0 6
0.200000 303 0 0 0 7
................................................................
sendingtrace.txt Frame
Sending
Number
Time
0x00000000 57 0 0 0 StreamHeader No No -1 0
0x00000039 12 0 0 0 ParameterSet No No -1 0
0x00000045 8 0 0 0 ParameterSet No No -1 0
NS2_Trace.awk
0x0000004d 18 0 0 0 SliceData No No 0 0
0x0000005f 745 0 0 0 SliceData No No 0 0
...........................................................
NS2_Trace.txt
47
48. NS2_Trace.txt
Simulation Flow VideoTrace
Application myEvalSVC myEvalSVC_Sink Application
Transport UDP UDP Transport
Network AODV AODV Network
Logical Link Control Logical Link Control
PriQueue / PriQueue /
Interface Queue Interface Queue
MyPriQueue MyPriQueue
Medium Access Control IEEE 802.15.4 IEEE 802.15.4 Medium Access Control
Network Interface Network Interface
Physical IEEE 802.15.4 IEEE 802.15.4 Physical
Simulated
Source Network Sink
48
Node Node
50. Start-Pos. Length LId TId QId Packet-Type Discardable Truncatable
========== ====== === === === ============ =========== ===========
0x00000000 57 0 0 0 StreamHeader No No -1 0
Reconstructing Video
0x00000039
0x00000045
12
8
0
0
0 0 ParameterSet No
0 Prepare_ReceivedTrace_Step2.exe
0 ParameterSet No
No
No
-1
-1
0
0
0x0000004d 18 0 0 0 SliceData No No 0 40558
2
0x0000005f 745 0 0 0 SliceData No No 0 40558
0x00000348 18 0 0 0 SliceData No No 2 40575
0x0000035a 198 0 0 0 SliceData No No 2 40575
....................................................................................
Start Frame Packet-
received.txt Frame
Sending
sendingtrace.txt
Position Size LId TId Id Type
Q Discardable Number
Truncatable Time
0x0000004d 18 0 0 0 SliceData No No 0 40558
0x0000005f 745 0 0 0 SliceData No No 0 40558
0x00000348 18 0 0 0 SliceData nalufilter No
SVEF No 2 40575
0x0000035a 198 0 0 0 SliceData No No 2 40575
0x00000420 18 0 0 0 SliceData No No 3 40597
0x00000432 233 0 0 0 SliceData No No 3 40597
........................................................... Original
filteredtrace.txt Bitstream.264
Video
JSVM BitStreamExtractor
(BitStreamExtractorStatic)
50
53. 1) Reducing the total number of the
dropped base frames.
2) Reducing the total number of
useless enhancement frames.
Goals
3) Giving the base frame a high Simplicity
priority when network is congested.
Efficiency
4) Reducing the average delay as
much as possible. Creative
5) Maintaining an acceptable jitter
value.
6) Balancing between the simplicity of
the design and the performance.
7) Maintain the layering principle as
much as possible.
53
54. Proposed Cross Layer Design Framework:
Application
Transport
Qid Value
Network
Queue Length Logical Link Control
Interface Queue
NB
Medium Access Control
Network Interface
Physical
54
57. In Simulation Scenarios, the following points have been
considered:
Evaluating the proposed design on stressed networks.
Study the effect of queue size on the proposed solution.
Evaluate the proposed design with different movement
scenarios.
Evaluate the proposed design with different number of nodes.
Evaluate the proposed design with different number of senders.
57
58. Acronyms and Notations:
PriQueue: represent the results for the original system.
MyPriQueue: represent the results when the proposed design is applied.
Qid0: Base frames.
Qid1: First enhancement frames.
Qid2: Second enhancement frames.
Qid3: Third enhancement frames.
UQid: Useless enhancement frames.
58
67. Some of the interesting open issues and future work for this
thesis:
Deploying the proposed framework in a real environment.
Consider the noise in the design and in the evaluation process.
Prevent the useless frames from being sent.
Find a way to reduce the effect of the proposed design on the
average jitter.
Increase the number of simultaneous senders while maintaining
good video quality.
67
69. Conference:
International Conference on Wireless
Communications, Networking and Mobile Computing
Paper Title:
QoS Provisioning for H.264/SVC Streams over Ad-Hoc
ZigBee Networks using Cross-Layer Design
Founded by:
King Abdulaziz City for Science and Technology under
grant number ARB-29-54
69
In some cases, the node or the network cannot support the uncompressed video stream. Also, video compression enables a more efficient use of transmission resources.
Network with heterogeneous clients.
Medium Grain Scalability (MGS): it increases the efficiency by using a flexible prediction module, where all layers can be referenced.
The transmitted power is the power that is transmitted from the antenna into space.The receiver threshold is the parameter used to specify the communication range of the wireless nodes and the threshold is the minimal power of the packet required for successful reception.The carrier sensing threshold describes the sensing range of a node.The two-ray ground model considers the received power from both the direct path and a ground reflection path.
Encoder can be used for generating SVC bit-stream.-pf: specifies the name of the config file to be used.BitStreamExtractor to generate the original NALU trace file.-pt: generates a packet trace file from the given stream.NALU: Network Abstraction Layer Unit.rec.yuv: Specifies the filename of the coded and reconstructed input sequence for the layer. This sequence is provided for debugging purposes.
nalufiltertool to filter the NAL units that have unsatisfied dependencies and emulate a play-out buffer, dropping NAL units that were received too late.nalufilter<sent stream trace file> <received trace file> <play out buffer in milliseconds> <frames per second> > <filtered trace file>
The current version of JSVM cannot decode video streams affected by out of order, corrupted, or missing NALUs.<bytes per frame>: length in bytes of each YUV frame, obtained from width*height*1.5.