MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Kinesis::Vision::VisionPass< Handle > Struct Template Reference

State threaded through one execution of a VisionSequence. More...

#include <VisionContext.hpp>

+ Inheritance diagram for MayaFlux::Kinesis::Vision::VisionPass< Handle >:
+ Collaboration diagram for MayaFlux::Kinesis::Vision::VisionPass< Handle >:

Classes

struct  Completed
 

Public Member Functions

const VisionStepahead (size_t offset=1) const noexcept
 Op at offset steps ahead, or nullptr past the end.
 
void begin (const VisionSequence &seq, uint32_t width, uint32_t height)
 Reset the walk band for a fresh run.
 
const VisionStepbehind (size_t offset=1) const noexcept
 Op at offset steps back, or nullptr before the start.
 
void forget ()
 Discard retained cross-run state.
 
const Handle * memo (size_t key, const Handle &input) const
 Memoised output for key when it was produced from input.
 
size_t plane_size () const noexcept
 
void set_geometry (uint32_t width, uint32_t height) noexcept
 
const VisionStepstep () const noexcept
 

Public Attributes

uint32_t channels { 4 }
 
std::unordered_map< size_t, Completedcompleted
 
Handle current {}
 
uint32_t h { 0 }
 
size_t index { 0 }
 
Handle prev {}
 
Handle prev_cache {}
 
std::vector< Keypointprev_keypoints
 
VisionResult result
 
const VisionSequencesequence { nullptr }
 
uint32_t storage_h { 0 }
 
uint32_t storage_w { 0 }
 
uint32_t w { 0 }
 

Detailed Description

template<typename Handle>
struct MayaFlux::Kinesis::Vision::VisionPass< Handle >

State threaded through one execution of a VisionSequence.

Shared by the CPU and GPU executors so op functions have one signature on both paths. Three bands: the walk, working storage, and redundancy caches.

Cross-run retained state is not here. It is owned vectors on the CPU path and owned images on the GPU path, neither of which is a working storage handle, so each executor holds its own in its own types.

Template Parameters
HandleWorking storage handle. Slot index on the CPU path, shared_ptr<VKImage> on the GPU path.

sequence is non-owning and valid only for the run that constructed the pass. Storage and caches outlive a single run once the pass is held by the executor; the walk band is reset per run by begin().

Definition at line 102 of file VisionContext.hpp.


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