MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Kakshya::ContainerDataStructure Struct Reference

Container structure for consistent dimension ordering. More...

#include <NDimensionalContainer.hpp>

+ Collaboration diagram for MayaFlux::Kakshya::ContainerDataStructure:

Public Member Functions

 ContainerDataStructure (DataModality mod, OrganizationStrategy org=OrganizationStrategy::PLANAR, MemoryLayout layout=MemoryLayout::ROW_MAJOR)
 Construct a container structure with specified parameters.
 
 ContainerDataStructure ()=default
 
std::vector< DataDimension::Roleget_expected_dimension_roles () const
 Get the expected dimension roles for this structure's modality.
 
size_t get_expected_variant_count (const std::vector< DataDimension > &dimensions) const
 Calculate expected number of data variants for given dimensions.
 
uint64_t get_variant_size () const
 
bool validate_dimensions (const std::vector< DataDimension > &dimensions) const
 Validate that dimensions match this structure's expectations.
 
size_t get_dimension_index_for_role (const std::vector< DataDimension > &dimensions, DataDimension::Role role) const
 Find the index of a dimension with the specified role.
 
uint64_t get_total_elements () const
 
uint64_t get_samples_count () const
 
uint64_t get_samples_count_per_channel () const
 
uint64_t get_channel_count () const
 
uint64_t get_pixels_count () const
 
uint64_t get_height () const
 
uint64_t get_width () const
 
size_t get_frame_count () const
 
size_t get_frame_size () const
 

Static Public Member Functions

static ContainerDataStructure audio_planar ()
 Create structure for planar audio data.
 
static ContainerDataStructure audio_interleaved ()
 Create structure for interleaved audio data.
 
static ContainerDataStructure image_planar ()
 Create structure for planar image data.
 
static ContainerDataStructure image_interleaved ()
 Create structure for interleaved image data.
 
static uint64_t get_variant_size (const std::vector< DataDimension > &dimensions, DataModality modality, OrganizationStrategy organization, size_t variant_index=0)
 Calculate size of a specific variant in the organization.
 
static uint64_t get_total_elements (const std::vector< DataDimension > &dimensions)
 Get total elements across all dimensions.
 
static uint64_t get_samples_count (const std::vector< DataDimension > &dimensions)
 Extract sample count from dimensions.
 
static uint64_t get_samples_count_per_channel (const std::vector< DataDimension > &dimensions)
 Get samples per channel (time dimension only).
 
static uint64_t get_channel_count (const std::vector< DataDimension > &dimensions)
 Extract channel count from dimensions.
 
static uint64_t get_pixels_count (const std::vector< DataDimension > &dimensions)
 Get pixel count (spatial dimensions only).
 
static uint64_t get_height (const std::vector< DataDimension > &dimensions)
 Extract height from image/video dimensions.
 
static uint64_t get_width (const std::vector< DataDimension > &dimensions)
 Extract width from image/video dimensions.
 
static size_t get_frame_count (const std::vector< DataDimension > &dimensions)
 Extract frame count from video dimensions.
 
static size_t get_frame_size (const std::vector< DataDimension > &dimensions)
 Extract the size of non time dimensions (channel, spatial, frequency)
 

Public Attributes

std::vector< DataDimensiondimensions
 
std::optional< size_t > time_dims
 
std::optional< size_t > channel_dims
 
std::optional< size_t > height_dims
 
std::optional< size_t > width_dims
 
std::optional< size_t > frequency_dims
 
DataModality modality {}
 
MemoryLayout memory_layout = MemoryLayout::ROW_MAJOR
 
OrganizationStrategy organization = OrganizationStrategy::PLANAR
 

Detailed Description

Container structure for consistent dimension ordering.

Provides standard indices and layout structures for common data types, supporting digital-first, data-driven workflows. These structures are not tied to analog metaphors, but instead facilitate generic, flexible processing of multi-dimensional data.

Definition at line 22 of file NDimensionalContainer.hpp.


The documentation for this struct was generated from the following files: