Libargus API Libargus Camera API

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions
Argus::Ext::IDolWdrSensorMode Class Reference
SensorMode | Ext::DolWdrSensorMode

Interface to the properties of a DOL WDR device. More...

`#include <DolWdrSensorMode.h>`

Inheritance diagram for Argus::Ext::IDolWdrSensorMode:

List of all members.

## Public Member Functions

virtual uint32_t | getExposureCount () const =0
| Returns the number of exposures captured per frame for this DOL WDR mode.
virtual uint32_t | getOpticalBlackRowCount () const =0
| Returns number of Optical Black rows at the start of each exposure in a DOL WDR frame.
virtual Status | getVerticalBlankPeriodRowCount (std::vector< uint32_t > *verticalBlankPeriodRowCounts) const =0
| Returns number of vertical blank period rows for each DOL WDR exposure.
virtual uint32_t | getLineInfoMarkerWidth () const =0
| Returns line info markers width in pixels.
virtual uint32_t | getLeftMarginWidth () const =0
| Returns number of margin pixels on left per row.
virtual uint32_t | getRightMarginWidth () const =0
| Returns number of margin pixels on right per row.
virtual Size2D< uint32_t > | getPhysicalResolution () const =0
| Returns the physical resolution derived due to the interleaved exposure output from DOL WDR frames.

## Static Public Member Functions

static const InterfaceID & | id ()

## Protected Member Functions

| ~IDolWdrSensorMode ()
Protected Member Functions inherited from Argus::Interface
| Interface ()
| ~Interface ()

## Detailed Description

Interface to the properties of a DOL WDR device.

Returns the extended properties specific to a Digital Overlap (DOL) Wide Dynamic Range (WDR) extended sensor mode. DOL WDR is a multi-exposure technology that enables fusion of various exposures from a single frame to produce a WDR image.

A DOL WDR RAW buffer contains different DOL exposures in an interleaved layout. DOL WDR supports two exposure (long and short) and three exposure (long, short and very short) schemes. These schemes are referred to as DOL-2 and DOL-3 respectively.

Exposures are time staggered which leads to vertical blank period (VBP) rows being inserted in between various exposures. This scheme results in (N-1) sections of VBP rows for an N exposure DOL WDR frame.

Each exposure is preceded by optical black (OB) rows.

Each row of DOL WDR RAW interleaved frame starts with a few Line Info (LI) marker pixels. LI pixels distinguish the kind of row. Row types include: a. Long Exposure b. Short Exposure c. Very Short Exposure d. Vertical Blank Period

For a DOL-2 exposure scheme, there is only one section of VBP rows. The data layout per exposure looks like this: Long exposure has OB rows, image rows, VBP rows. Short exposure has OB rows, VBP rows, image rows.

The ordering of VBP rows changes across exposures but the count of VBP rows per exposure remains the same. The final interleaved DOL WDR RAW frame buffer is produced by interleaving each exposure's data on a per row basis in a round robin fashion across exposures.

For a DOL-3 exposure scheme, there are two sections of VBP rows. For the sake of terminology these are referred to as VBP[0] and VBP[1]. The data layout per exposure looks like this: Long exposure has OB rows, image rows, VBP[0] rows, VBP[1] rows. Short exposure has OB rows, VBP[0] rows, image rows, VBP[1] rows. Very Short exposure has OB rows, VBP[0] rows, VBP[1] rows, image rows.

Again, only the ordering of VBP[0] and VBP[1] rows changes across exposures but the count of VBP[0] and VBP[1] rows remains the same. Similar to the DOL-2 scheme, the final interleaved DOL WDR RAW frame buffer for DOL-3 scheme is produced by interleaving each exposure's data on a per row basis in a round robin fashion across exposures.

This scheme can be extended to DOL-N exposures with (N-1) sections of VBP rows ranging from VBP[0] to VBP[N-2]. When considering the vertical blank period sections for exposure N, the rows of VBP[X] will come before the image data if X < N, otherwise they will come after the image data.

Hence, a DOL-N RAW buffer would have different dimensions than the fused output WDR frame buffer. The resolution of the DOL-N RAW buffer is referred to as physical resolution.

The set of properties for basic sensor modes is still applicable to DOL WDR sensor mode. Those properties are available through the ISensorMode interface. The only difference is that the resolution property provided by the ISensorMode interface for DOL WDR would be the size of the fused WDR frame. WDR fusion typically eliminates LI markers, OB rows and VBP rows and merges the individual exposures to create a frame that is smaller in height and width than the DOL WDR RAW interleaved frame.

Following the LI marker pixels is the actual pixel data for each row. This data may include margin pixels on the left or right side of the row, which are generally used for filtering and cropped out of a fused DOL image. The width of these margin pixels can be queried by getLeftMarginWidth()/getRightMarginWidth().

See also:
  ISensorMode

Definition at line 130 of file DolWdrSensorMode.h.

## Constructor & Destructor Documentation

Argus::Ext::IDolWdrSensorMode::~IDolWdrSensorMode | ( |  | ) |

inline protected

Definition at line 184 of file DolWdrSensorMode.h.

## Member Function Documentation

virtual uint32_t Argus::Ext::IDolWdrSensorMode::getExposureCount | ( |  | ) | const

pure virtual

Returns the number of exposures captured per frame for this DOL WDR mode.

Typically, 2 = Long, Short or 3 = Long, Short, Very Short exposures.

virtual uint32_t Argus::Ext::IDolWdrSensorMode::getLeftMarginWidth | ( |  | ) | const

pure virtual

Returns number of margin pixels on left per row.

virtual uint32_t Argus::Ext::IDolWdrSensorMode::getLineInfoMarkerWidth | ( |  | ) | const

pure virtual

Returns line info markers width in pixels.

These occur at the start of each pixel row to distinguish row types. There are different line info markers to distinguish each different exposure and vertical blank period rows.

Optical black rows have the same line info markers as the exposure type they appear on.

virtual uint32_t Argus::Ext::IDolWdrSensorMode::getOpticalBlackRowCount | ( |  | ) | const

pure virtual

Returns number of Optical Black rows at the start of each exposure in a DOL WDR frame.

virtual Size2D<uint32_t> Argus::Ext::IDolWdrSensorMode::getPhysicalResolution | ( |  | ) | const

pure virtual

Returns the physical resolution derived due to the interleaved exposure output from DOL WDR frames.

virtual uint32_t Argus::Ext::IDolWdrSensorMode::getRightMarginWidth | ( |  | ) | const

pure virtual

Returns number of margin pixels on right per row.

virtual Status Argus::Ext::IDolWdrSensorMode::getVerticalBlankPeriodRowCount | ( | std::vector< uint32_t > * | verticalBlankPeriodRowCounts | ) | const

pure virtual

Returns number of vertical blank period rows for each DOL WDR exposure.

Parameters:

  [out] | verticalBlankPeriodRowCounts | The output vector to store the vertical blank period (VBP) rows per DOL WDR exposure. Size of the vector is getExposureCount()-1 count values. When considering the vertical blank period sections for exposure N, the rows of VBP[X] will come before the image data if X < N, otherwise they will come after the image data.

static const InterfaceID& Argus::Ext::IDolWdrSensorMode::id | ( |  | ) |

inline static

Definition at line 133 of file DolWdrSensorMode.h.

The documentation for this class was generated from the following file:

- include/Argus/Ext/DolWdrSensorMode.h