|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
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::Role > | get_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< DataDimension > | dimensions |
| 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 |
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.