summaryrefslogtreecommitdiffstats
path: root/docs/ufo.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ufo.txt')
-rw-r--r--docs/ufo.txt36
1 files changed, 36 insertions, 0 deletions
diff --git a/docs/ufo.txt b/docs/ufo.txt
new file mode 100644
index 0000000..64ffb13
--- /dev/null
+++ b/docs/ufo.txt
@@ -0,0 +1,36 @@
+ROOF on UFO
+===========
+ - Current implementation follows UFO architecture: reader and dataset-builder are split in two filters.
+ * The reader is multi-threaded. However, only a single instance of the builder is possible to schedule.
+ This could limit maximum throughput on dual-head or even signle-head, but many-core systems.
+ * Another problem here is timing. All events in the builder are initiaded from the reader. Consequently,
+ as it seems we can't timeout on semi-complete dataset if no new data is arriving.
+ * Besides, performance this is also critical for stability. With continuous streaming there is no problem,
+ however, if a finite number of frames requested and some packets are lost, the software will wait forever
+ for missing bits.
+
+UFO Architecture
+================
+
+
+Questions
+=========
+ - Can we pre-allocate several UFO buffers for forth-comming events. Currently, we need to buffer out-of-order
+ packets and copy them later (or buffer everything for simplicity). We can avoid this data copy if we can get
+ at least one packet in advance.
+
+ - How I can execute 'generate' method on 'reductor' filter if no new data on the input for the specified
+ amount of time. One option is sending empty buffer with metadata indicating timeout. But this is again
+ hackish.
+
+ - Can we use 16-bit buffers? I can set dimmensions to 1/4 of the correct value to address this. But is it
+ possible to do in a clean way?
+ * ufo-write definitively only supports fp32 input
+
+ - Are there a standard way to enable automatic propogation of dataset metadata trough the chain of filters? [solved]
+ * Metadata from all input buffers is copied to output automatically in 'processors'
+ * Metadata should be copied with 'ufo_buffer_copy_metadata' in 'reductors'
+
+ - We can create a separate subgraph for each plane. But this requires initial copy. Can this be zero-copy?
+
+ - What is 'ufotools' python package mentioned in documentation? Just a typo?