Stream Features
Video Stream Feature (0x201)
Feature ID |
0x201 |
|
|---|---|---|
Version |
0x001 |
(0.1) |
Pointer Count |
12 |
|
Bootstrap ID |
0x2010010C |
(Max pointers) |
Pointer 0 |
String |
Description |
Pointer 1 |
Reg 32 |
Stream Config |
Pointer 2 |
Reg 32 |
Delay |
Pointer 3 |
Reg 64 |
Dest MAC Addr (MSBs) |
Pointer 4 |
Reg 32 |
Dest IP Addr |
Pointer 5 |
Reg 32 |
Dest Port |
Pointer 6 |
Reg 32 |
Source Port |
Pointer 7 |
Reg 32 |
Pixels Per Line (Width) |
Pointer 8 |
Reg 32 |
Lines Per Frame (Height) |
Pointer 9 |
Reg 32 |
Pixel Format |
Pointer 10 |
Reg 32 |
X Offset |
Pointer 11 |
Reg 32 |
Y Offset |
Stream Config (Pointer 1)
| Field | bits | msb |
|---|---|---|
Fire Test Pkt |
1 |
31 |
Stream Format |
4 |
23 |
Enable Stream |
1 |
16 |
Max Pkt Size |
15 |
15 |
Fire Test Packet Field
Set to 1 to launch a single test packet of the Max Packet Size.
Self clearing.
Stream Format
Selects Stream Format option for the stream.
Enable Stream
Set to 1 to enable the stream.
Max Packet Size
Set to limit the maximum packet size.
Max Packet size may also be restricted by an internal hardware limit.
Setting Max Packet Size to 0 will disable the stream.
Parametric Pixel Format (0x210)
EEVideo pixel formats are declared with Parametric Pixel Format descriptions.
Embedded systems require maximum flexibility for pixel formats. Traditional standards limit formats to predefined legacy video types. Modern embedded applications increasingly use non-visible wavelengths, depth sensing, hyper-spectral imaging, and other custom data that do not fit classic video formats.
EEVideo uses a parametric description system instead of a fixed list. This enables the widest possible range of formats — including legacy ones (HDR monochrome, RGBA, sub-sampled YUV, Bayer) and future ones (hyper-spectral, 3D, event-based) — while allowing drivers and host processors to understand buffering requirements and frame sizes without knowing every component detail.
This also simplifies device implementation. Stream generators can use parametric fields to format the output stream rather than maintain large implementation specific look-up tables.
Feature ID |
0x210 |
a |
|---|---|---|
Version |
0x001 |
(0.1) |
Pointer Count |
4 |
b |
Bootstrap ID |
0x21000104 |
(Max pointers) |
Pointer 0 |
String |
Description |
Pointer 1 |
Reg 32 |
Pixel Group Format Register |
Pointer 2 |
Reg 32 |
Valid Streams (bit-field) |
Pointer 3 |
Reg 32 |
Stream XRef Count |
Pixel Group Format Register (Pointer 1)
The pixel Format register points to the first register of the list of registers that define the format.
The parametric format is built around repeating sample groups. A group is the smallest set of samples that repeats across the frame. * For monochrome: the group is one sample. * For RGB or YUV 4:4:4: the group contains 3 samples. * For Bayer or YUV 4:2:2: the group is more complex but still fully described.
The Pixel Group Format Register defines the relationship between sample groups and image pixels.
| Field Name | Bits | Description |
|---|---|---|
Y Samples per Group |
4 |
Number of sample lines required for each sample group |
X Samples per Group |
4 |
Number of samples on each line included in the group |
Y Pixels per Group |
4 |
Number of pixel lines represented by the group |
X Pixels per Group |
4 |
Number of pixels in each line represented by the group |
Interleaved Columns |
4 |
Number of column bands (multi-tap sensors) |
Interleaved Rows |
4 |
Number of row bands (multi-tap sensors) |
Bits per Pixel |
8 |
Total bits required to represent one image pixel pixel |
Standard Format Examples
| Format | Y s/g | X s/g | Y p/g | X p/g | ICols | IRows | BPP | Comps |
|---|---|---|---|---|---|---|---|---|
Monochrome 8 |
1 |
1 |
1 |
1 |
1 |
1 |
8 |
1 |
Monochrome 12 |
1 |
1 |
1 |
1 |
1 |
1 |
12 |
1 |
RGB 8:8:8 |
1 |
3 |
1 |
1 |
1 |
1 |
24 |
3 |
RGB 5:6:5 |
1 |
3 |
1 |
1 |
1 |
1 |
16 |
3 |
RGBA 10-bit |
1 |
4 |
1 |
1 |
1 |
1 |
40 |
4 |
YUV 4:4:4 10 |
1 |
3 |
1 |
1 |
1 |
1 |
30 |
3 |
YUV 4:2:2 12 |
1 |
4 |
1 |
2 |
1 |
1 |
24 |
4 |
YUV 4:1:1 8 |
2 |
3 |
2 |
2 |
1 |
1 |
12 |
6 |
Bayer GRBG 10 |
2 |
2 |
2 |
2 |
1 |
1 |
10 |
4 |
Field Descriptions
Y / X Samples per Group
Number of raw samples in each repeating group (vertical × horizontal).
For single sample (Mono) formats, they are always 1.
For RGB, RGBA, YUV 4:4:4, and 4:2:2, Y is still one because the samples are the same for each line. X indicates the number of samples of different types (i.e. 3 for RGB, 4 for YUV 4:2:2 which is delivered U,Y,V,Y).
Y Samples/Group is two for YUV 4:1:1 and Bayer patterns because those patterns are not the same on consecutive lines, but repeat every 2 lines.
Y / X Pixels per Group
Number of actual image pixels represented by one sample group. This allows correct frame-size calculation even when multiple samples map to one pixel (e.g. Bayer or 4:2:2).
Y and X Samples/Pixel indicates the number pixels represented by each sample group. Frame sizes are specified by X and Y pixel dimensions, but the data stream may deliver multiple samples per pixel. These Pixels/Group provides the group to pixel mapping.
For single sample formats Y and X Pixels/Group are always 1. For many multi-sample formats Y is still 1 and X represents the sample count, just like the group fields. These fields may differ from the Samples/Group settings when individual pixels are represented by different sets of samples.
Bayer and half-band chroma patterns are good examples. Each pixel in YUV 4:2:2 requires 1 Y, 2 X subgroup. For Bayer patterns, each pixel requires only 1 X and 1 Y sample out of the 2x2 group so each group provide 2x2 pixels.
Interleaved Columns / Rows
Number of column or row bands delivered by multi-tap sensors (usually 1,1 for non-interleaved delivery).
Bits Per Pixel
Total of bits needed to represent one image pixel pixel. Used with frame width/height to calculate buffer size.
Sample Type Registers (Pointer 1 + x)
Immediately following the Pixel Group Format Register are one or more Sample Type Registers (one per sample in the group).
Sample types must be listed in the order the samples arrive.
| Field | Bits | Description |
|---|---|---|
Type |
8 |
Top-level sample category |
Sub-type |
12 |
Specific variant or standard |
Pad Bits |
4 |
Padding bits for byte alignment |
Bit Depth |
8 |
Valid data bits per sample |
Sample Type Field (8-bit)
The 8 bit sample type field contains an index to the EEVideo sample type list.
The sample type list is short and only defines the most general category of the sample. Each Type has a list of sub-types that more specifically define the qualities of the actual sample. In many cases, the simple Type identifier will be adequate for classifying the format and selecting processing options.
Sample types are defined in the appendix.
Sample Sub-type Field
Specific assignments are TBD. Sub-types can express conformance to particular video standards like sRGB, SMPTE, or ITU-R BT component specifications. Sub-types may indicate raw, unprocessed, sensor data. Sub-types may indicate linear or non-linear (gamma) scales. Sub-types may indicate bandwidth limiting (half,full) of the sample.
Sub-type assignment lists are unique for each top level Sample Type.
User defined sub-types are also available.
Sub-type lists are expected to grow over the life of the EEVideo specification.
Pad Bits Field (packing)
By default samples in EEVideo streams are packed together, not byte aligned. This allows 4x 12 bit pixels to fit in a 6 byte (48 bit) window. This increases channel efficiency, but may require unpacking effort from the host.
If byte aligned samples are desired, pad bits may be added in front of the sample data. For example, adding 4 pad bits would extend a 12 bit sample to 16 bits (2 bytes) in the stream data. Now those same 4 pixels require 8 bytes of stream bandwidth, but the host will not be responsible for bit manipulations to separate the samples.
Bit Depth Field
The Bit Depth Field reports the bit resolution of each sample type. Samples frequently use the same resolution for all sample types, but this is not required. RGB 565 is an example.
Valid Streams (Pointer 2)
Bit-field indicating which streams support this Pixel Format (bit 0 = stream 0, etc.).
An EEVideo device may support multiple streams and all streams may not support all pixel formats.
Stream XRef Count (Pointer 3)
EEVideo format streams include the Format Feature index in Start of Frame packets to identify the pixel format.
Other streaming formats use other identifiers.
The Stream XRef Count register indicates the number of alternate stream packet formats able to use this pixel format.