IDS peak ICV v1.0.0
Loading...
Searching...
No Matches
UnpackModule Class Reference

#include <peak_icv/pipeline/detail/peak_icv_unpack_module.hpp>

Inheritance diagram for UnpackModule:
Collaboration diagram for UnpackModule:

Public Member Functions

 UnpackModule ()
 Creates an instance of class UnpackModule.
 
 ~UnpackModule () override
 
 UnpackModule (const UnpackModule &other)=delete
 Copy constructor for class UnpackModule is deleted.
 
 UnpackModule (UnpackModule &&other) noexcept
 
UnpackModule & operator= (const UnpackModule &other)=delete
 Copy assignment for class UnpackModule is deleted.
 
UnpackModule & operator= (UnpackModule &&other) noexcept
 
void Serialize (peak::common::serialization::IArchive &archive) const override
 This function has no effect on the Unpack module.
 
void Deserialize (const peak::common::serialization::IArchive &archive) override
 This function has no effect on the unpack module.
 
void SetEnabled (bool enable) override
 Does nothing for the unpack module.
 
bool IsEnabled () const override
 Returns true since the unpack module is always enabled.
 
const char * GetType () const override
 Returns the type of the module for serialization purposes.
 
void ResetToDefault () override
 Does nothing for the unpack module.
 
void SetTargetBitDepth (size_t bitDepth)
 Set the target bit depth.
 
void SetProcessingPolicy (ProcessingPolicy policy)
 Set the processing policy.
 
peak::icv::Image Process (const peak::icv::Image &input) const
 Converts a packed pixel format image into an unpacked Bayer or mono format.
 
peak::common::Any Process (const peak::common::Any &input) const override
 Converts a packed pixel format image into an unpacked Bayer or mono format.
 
void ReleaseBuffers () const
 Frees unused internal buffers.
 

Detailed Description

Unpack is an image pipeline module that converts packed pixel formats into corresponding unpacked Bayer or mono formats.

The unpack module is always enabled and cannot be disabled. It converts input images with packed pixel formats into their corresponding unpacked Bayer or monochrome formats, preserving the original bit depth of the image.

Since
1.0

Definition at line 38 of file peak_icv_unpack_module.hpp.

Constructor & Destructor Documentation

◆ UnpackModule() [1/3]

UnpackModule ( )
inline

Creates an instance of class UnpackModule.

Since
1.0

Definition at line 229 of file peak_icv_unpack_module.hpp.

◆ ~UnpackModule()

~UnpackModule ( )
inlineoverride
Since
1.0

Definition at line 236 of file peak_icv_unpack_module.hpp.

◆ UnpackModule() [2/3]

UnpackModule ( const UnpackModule & other)
delete

Copy constructor for class UnpackModule is deleted.

Note
If you need to copy a module, you can create a new one and copy the parameters via Serialize() and Deserialize().
Since
1.0

◆ UnpackModule() [3/3]

UnpackModule ( UnpackModule && other)
inlinenoexcept
Since
1.0

Definition at line 244 of file peak_icv_unpack_module.hpp.

Member Function Documentation

◆ Deserialize()

void Deserialize ( const peak::common::serialization::IArchive & archive)
inlineoverridevirtual

This function has no effect on the unpack module.

Since
1.0

Implements ISerializable.

Definition at line 264 of file peak_icv_unpack_module.hpp.

◆ GetType()

const char * GetType ( ) const
inlineoverridevirtual

Returns the type of the module for serialization purposes.

Returns
A string representing the module's type.
Since
1.0

Implements IModule.

Definition at line 279 of file peak_icv_unpack_module.hpp.

◆ IsEnabled()

bool IsEnabled ( ) const
inlineoverridevirtual

Returns true since the unpack module is always enabled.

Returns
True.
Since
1.0

Implements IModule.

Definition at line 274 of file peak_icv_unpack_module.hpp.

◆ operator=() [1/2]

UnpackModule & operator= ( const UnpackModule & other)
delete

Copy assignment for class UnpackModule is deleted.

Note
If you need to copy a module, you can create a new one and copy the parameters via Serialize() and Deserialize().
Since
1.0

◆ operator=() [2/2]

UnpackModule & operator= ( UnpackModule && other)
inlinenoexcept
Since
1.0

Definition at line 249 of file peak_icv_unpack_module.hpp.

◆ Process() [1/2]

peak::common::Any Process ( const peak::common::Any & input) const
inlineoverridevirtual

Converts a packed pixel format image into an unpacked Bayer or mono format.

This function unpacks the input image from a packed format to its corresponding unpacked Bayer or monochrome format, preserving the input bit depth.

Note
This operation disregards any specified image regions and processes the entire image.
Parameters
inputThe packed input image to unpack.
Returns
The unpacked output image with the downsampled bit depth.
Exceptions
peak::common::InvalidCastExceptionIf the input cast to peak::icv::Image failed.
Since
1.0

Implements IModule.

Definition at line 439 of file peak_icv_unpack_module.hpp.

◆ Process() [2/2]

peak::icv::Image Process ( const peak::icv::Image & input) const
inline

Converts a packed pixel format image into an unpacked Bayer or mono format.

This function unpacks the input image from a packed format to its corresponding unpacked Bayer or monochrome format, preserving the input bit depth.

Note
This operation disregards any specified image regions and processes the entire image.
Parameters
inputThe packed input image to unpack.
Returns
The unpacked output image with the downsampled bit depth.
Since
1.0

Definition at line 421 of file peak_icv_unpack_module.hpp.

◆ ReleaseBuffers()

void ReleaseBuffers ( ) const
inline

Frees unused internal buffers.

This module uses pre-allocated internal buffers to accelerate conversions. When the image size or pixel format changes, new buffers are allocated, which may cause the internal buffer pool to grow over time. This function can be used to release unused buffers and reduce memory usage.

Note
Avoid calling this function too frequently (e.g., after every resize or format change), as it introduces some overhead.
Since
1.0

Definition at line 464 of file peak_icv_unpack_module.hpp.

◆ ResetToDefault()

void ResetToDefault ( )
inlineoverridevirtual

Does nothing for the unpack module.

Since
1.0

Implements IModule.

Definition at line 408 of file peak_icv_unpack_module.hpp.

◆ Serialize()

void Serialize ( peak::common::serialization::IArchive & archive) const
inlineoverridevirtual

This function has no effect on the Unpack module.

Since
1.0

Implements ISerializable.

Definition at line 259 of file peak_icv_unpack_module.hpp.

◆ SetEnabled()

void SetEnabled ( bool enable)
inlineoverridevirtual

Does nothing for the unpack module.

Since
1.0

Implements IModule.

Definition at line 269 of file peak_icv_unpack_module.hpp.

◆ SetProcessingPolicy()

void SetProcessingPolicy ( ProcessingPolicy policy)
inline

Set the processing policy.

Defines how the bit depth is handled during image processing — whether it is increased, decreased, or preserved.

  • Fast: Converts a packed image to an unpacked pixel format with the same Bayer pattern. The resulting bit depth is the minimum of the input pixel format and the target bit depth.
  • Balanced: Converts a packed image to an unpacked pixel format with the same Bayer pattern and retains the original bit depth of the input.
  • Enhanced: Converts a Bayered image to a pixel format with the same Bayer pattern. The resulting bit depth is the maximum of the input pixel format and the target bit depth.
Parameters
policyThe desired processing policy
Since
1.0

Definition at line 416 of file peak_icv_unpack_module.hpp.

◆ SetTargetBitDepth()

void SetTargetBitDepth ( size_t bitDepth)
inline

Set the target bit depth.

Specifies the desired bit depth for image processing. Whether the actual bit depth is increased, decreased, or preserved depends on the selected processing policy and the bit depth of the input image.

Parameters
bitDepthThe target bit depth to use during processing.
Since
1.0

Definition at line 411 of file peak_icv_unpack_module.hpp.