|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
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 VisionStep * | ahead (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 VisionStep * | behind (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 VisionStep & | step () const noexcept |
Public Attributes | |
| uint32_t | channels { 4 } |
| std::unordered_map< size_t, Completed > | completed |
| Handle | current {} |
| uint32_t | h { 0 } |
| size_t | index { 0 } |
| Handle | prev {} |
| Handle | prev_cache {} |
| std::vector< Keypoint > | prev_keypoints |
| VisionResult | result |
| const VisionSequence * | sequence { nullptr } |
| uint32_t | storage_h { 0 } |
| uint32_t | storage_w { 0 } |
| uint32_t | w { 0 } |
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.
| Handle | Working 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.