Why use DDS for video streaming?

advertisement
Video Over DDS
DDS Information Day
Brussels, Belgium-June-26,2007
Ertan DENIZ
MilSOFT A.S, Teknokent ODTU,Ankara/Turkey
edeniz@milsoft.com.tr
Copyright © MilSOFT,Turkey
Huseyin Kutluca, hkutluca@milsoft.com.tr
UNCLASSIFIED
1
Outline
•
•
•
•
•
•
•
•
Introduction
Image Exploitation System for UAVs
Why Use DDS for Video Streaming?
MilSOFT DDS
DDS Topics
QoS choices
Future Work
Conclusion
Copyright © MilSOFT,Turkey
UNCLASSIFIED
2
Introduction
• DDS middleware
•
•
•
•
•
•
Location transparency with pub/sub mechanism
Redundancy and fault tolerance mechanisms
Multiple readers/writers
Transient and persistent services
Asynchronous, time-independent data distribution
Rich set of QoS, suitable for real-time systems
• Wide range of Application Areas
•
•
•
•
•
C4I
Industrial automation
Distributed control and simulation
Telecom equipment control
Sensor networks
• Use Case: Image Exploitation System for UAVs
Copyright © MilSOFT,Turkey
UNCLASSIFIED
3
DDS on UAV Image Exploitation System
DB Server
Raw Data
Recording
High Capacity
Storage Unit
Pre-processed &
Georecorded Data
Sensor Data
(EO/IR, SAR, GMTI)
Raw Data
Telemetry
Data Receiver
Screening
Copyright © MilSOFT,Turkey
DDS
based
Data
Streamin
g
Exploitation 1
UNCLASSIFIED
Pre-processor
Artifacts
Exploitation 2 All Data in DB
4
DDS on UAV Image Exploitation System
• Data
• Events
• User information
• Resource Management
• Radar data streaming
• SAR streaming
• GMTI streaming
• Telemetry streaming
• Video streaming
•
•
•
•
•
Live data streaming
Recorded data streaming
Data Publisher: DataReceiver
Data Subscribers: Consoles and Pre-Processor
Content of data MPEG-2 TS
Copyright © MilSOFT,Turkey
UNCLASSIFIED
5
MPEG-2 TS (Transport Stream)
• Elementary Stream
• Video, audio, telemetry data, etc...
• From each elementary stream Packetized Elementary Stream
(PES) is formed
• And each PES is broken into fixed-size Transport Packets
• TS packets are 188 bytes of which 4 bytes are for the header
and 184 bytes are for the payload
• Transport Stream can multiplex multiple elementary streams
• The TS packet header contains a Packet Identifier (PID) to identify
different elementary streams
• 8 Mbit data rate for UAV Image Exploitation System
Copyright © MilSOFT,Turkey
UNCLASSIFIED
6
Why use DDS for video streaming?
• Publish-Subscribe simplifies the development process
• The clients do not need to know where the server is, and the server
does not need to know the clients
• DDS specification implies mutlicast communication and the
interoperability wire protocol RTPS supports and recommends
multicasting
• Dramatically decreased bandwith usage with DDS implementations
which support multicast
• Quality Of Service attributes like reliability, durability, transport
priority directly can be used for video streaming channels
• Generally DDS implementations have very low latencies in
data transmission compared to other middlewares, which
makes it a good choice
Copyright © MilSOFT,Turkey
UNCLASSIFIED
7
Why MilSOFT DDS
• MilSOFT DDS is compliant with current DDS specification,
version 1.2
• Provides Minimum Profile QoS attributes, which are
neccessary for video streaming
• Completely decentralized design
• No dynamic memory allocation after initialization
• Zero-copy access to data
• Implements multicast communications
Copyright © MilSOFT,Turkey
UNCLASSIFIED
8
MilSOFT DDS Middleware
More information on http://dds.milsoft.com.tr
Copyright © MilSOFT,Turkey
UNCLASSIFIED
9
Video Over DDS Architecture
Copyright © MilSOFT,Turkey
UNCLASSIFIED
10
DDS Types and Topics Used For Video Streaming
• So how do we encapsulate MPEG2-TS packets into DDS
types?
• There are two DDS types and two corresponding Topics.
• VideoHeader  VideoHeaderTopic
• VideoPacket  VideoPacketType
• VideoHeader
• Contains the header of the video, which is needed to initialize the
decoder. (FPS, height, width, etc... )
• VideoPacket
• Contains MPEG2-TS packets
Copyright © MilSOFT,Turkey
UNCLASSIFIED
11
VideoHeader Topic
struct VideoHeader
{
long headerType; // key
sequence<char, HEADER_MAX_DATA> headerData;
};
• Published once for each Transport Stream
• Contains the necessary information
• initialize the video decoder
• information about the other multiplexed elementary streams
• Key to distinguish the video header from other header data
• Late joiners also get this topic
Copyright © MilSOFT,Turkey
UNCLASSIFIED
12
QOS for VideoHeader Topic
• VideoHeaderTopic is necessary to initialize decoding of the
video
• Header information is critical for clients
• Use Reliability QoS (RELIABLE)
• Both publishers and subscribers are Reliable
• Late joining viewers need this information
• Use Durability QoS (TRANSIENT_LOCAL)
• There are different instances of the header according to it’s
type. We need only the last update of each instance!
• History QoS is default, kind = KEEP_LAST, depth = 1
Copyright © MilSOFT,Turkey
UNCLASSIFIED
13
VideoPacket Topic
struct VideoPacketType
{
long frameNumber;
sequence<char, PACKET_MAX_DATA_SIZE> packetData;
};
• MPEG2-TS packets are too small in size (188 bytes).
• VideoPacket type sends multiple TS packets of a video frame
at each VideoPacket sample
• Decreases the overhead and increases the bandwidth utilization
• A frame can span multiple VideoPacket samples (fragmented)
• Each sample contains TS packets of only one frame
Copyright © MilSOFT,Turkey
UNCLASSIFIED
14
QOS for VideoPacket Topic
• For VideoPacketTopic we may need both Reliable and Best
Effort delivery, according to client needs
• Use Offered >= Requested semantics
• Server publishes with a Reliable writer ( Offer Reliable communication )
• Clients subscribe with either Reliable or Best Effort readers
• Data is not needed by late joiners
• Durability is Volatile
• VideoPacket Type has no key, but we can use History QoS for
buffering
• History QoS, kind = KEEP_LAST, depth value can be used as a buffer
(set it to more than 1)
Copyright © MilSOFT,Turkey
UNCLASSIFIED
15
Other Concerns And Solutions
• We don’t want out of sequence frames
• DDS already satisfies this, no out of order packets!
• We don’t want frames which are too late
• Use Lifespan QoS
• Decoding takes time
• Either read data from a DataReaderListener and immediately put into
the queue of another thread
• Use WaitSets
Copyright © MilSOFT,Turkey
UNCLASSIFIED
16
Future Work
• Implement advanced services like rewind, replay, fast-forward
etc...
• Network reservations
• Use RSVP (IntServ) to reserve bandwith
• Analyze different methods to give DDS video streams a
priority
• Use Transport_Priority QoS (not completely standard)
• More standardization is needed in this area
• Standardize Flow Control mechanisms in DDS for better
utilization of network bandwith
Copyright © MilSOFT,Turkey
UNCLASSIFIED
17
Conclusion
• Video over DDS is possible!
• DDS provides a good set of QoS attributes for video
streaming
• Performance requirements
• Image Exploitation system for UAVs uses 8 Mbit MPEG-2 TS
• 20 Mbit video streaming is possible with DDS
Copyright © MilSOFT,Turkey
UNCLASSIFIED
18
Thank You!
Copyright © MilSOFT,Turkey
UNCLASSIFIED
19
Download