mirror of
https://github.com/saymrwulf/uhd.git
synced 2026-05-16 21:10:10 +00:00
55 lines
2.1 KiB
Text
55 lines
2.1 KiB
Text
/*! \page page_stream Device streaming
|
|
|
|
\tableofcontents
|
|
|
|
\section stream_intro Introduction to Streaming
|
|
|
|
The concept of streaming refers to the transportation of samples between
|
|
host and device. A stream is an object that facilitates streaming
|
|
between host application and device. An RX stream allows the user to
|
|
receive samples from the device. A TX stream allows the user to transmit
|
|
samples to the device.
|
|
|
|
\section stream_lle Link Layer Encapsulation
|
|
|
|
The VITA49 standard provides encapsulation for sample data across a link
|
|
layer. On all second generation hardware (and later), samples are
|
|
encapsulated into VRT IF data packets. These packets also provide sample
|
|
decoration such as stream time and burst flags. Sample decoration is
|
|
exposed to the user in the form of RX and TX metadata structs.
|
|
|
|
The length of an IF data packet can be limited by several factors:
|
|
|
|
- **MTU of the link layer:** network card, network switch
|
|
- **Buffering on the host:** frame size in a ring buffer
|
|
- **Buffering on the device:** size of BRAM FIFOs
|
|
|
|
\section stream_datatypes Data Types
|
|
|
|
There are two important data types to consider when streaming:
|
|
|
|
- The data type of the samples used on the host for processing
|
|
- The data type of the samples sent through the link-layer
|
|
|
|
\subsection stream_datatypes_cpu The host/CPU data type
|
|
|
|
The host data type refers to the format of samples used in the host for
|
|
baseband processing. Typically, the data type is complex baseband such
|
|
as normalized **complex-float32** or **complex-int16**.
|
|
|
|
\subsection stream_datatypes_otw The link-layer data type
|
|
|
|
The link-layer or "over-the-wire" data type refers to the format of the
|
|
samples sent through the link. Typically, this data type is **complex-int16**.
|
|
However, to increase throughput over the link-layer,
|
|
at the expense of precision, **complex-int8** may be used.
|
|
|
|
\subsection stream_datatypes_conv Conversion
|
|
|
|
The user may request arbitrary combinations of host and link data types;
|
|
however, not all combinations are supported. The user may register
|
|
custom data type formats and conversion routines. See
|
|
convert.hpp and \ref page_converters for further documentation.
|
|
|
|
*/
|
|
// vim:ft=doxygen:
|