ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

beamformer_parameters.h (2203B)


      1 /* See LICENSE for license details. */
      2 
      3 /* TODO(rnp):
      4  * [ ]: Upload previously exported data for display. maybe this is a UI thing but doing it
      5  *      programatically would be nice.
      6  * [ ]: Add interface for multi frame upload. RF upload already uses an offset into SM so
      7  *      that part works fine. We just need a way of specify a multi frame upload. (Data must
      8  *      be organized for simple offset access per frame).
      9  */
     10 
     11 typedef struct {
     12 	uint64_t shader_count;
     13 	uint32_t shader_ids[BeamformerMaxComputeShaderStages];
     14 	/* NOTE(rnp): this wants to be iterated on both dimensions. it depends entirely on which
     15 	 * visualization method you want to use. the coalescing function wants both directions */
     16 	float    times[32][BeamformerMaxComputeShaderStages];
     17 	float    rf_time_deltas[32];
     18 } BeamformerComputeStatsTable;
     19 
     20 #define BEAMFORMER_LIVE_IMAGING_DIRTY_FLAG_LIST \
     21 	X(ImagePlaneOffsets, 0) \
     22 	X(TransmitPower,     1) \
     23 	X(TGCControlPoints,  2) \
     24 	X(SaveData,          3) \
     25 	X(SaveNameTag,       4) \
     26 	X(StopImaging,       5) \
     27 	X(AcquisitionKind,   6) \
     28 
     29 /* NOTE(rnp): if this exceeds 32 you need to fix the flag handling code */
     30 
     31 #define BEAMFORMER_LIVE_IMAGING_PARAMETERS_LIST \
     32 	X(active,                         uint32_t, ,                               1)   \
     33 	X(save_enabled,                   uint32_t, ,                               1)   \
     34 	X(save_active,                    uint32_t, ,                               1)   \
     35 	X(acquisition_kind,               uint32_t, ,                               1)   \
     36 	X(acquisition_kind_enabled_flags, uint64_t, ,                               1)   \
     37 	X(transmit_power,                 float,    ,                               1)   \
     38 	X(image_plane_offsets,            float,    [BeamformerViewPlaneTag_Count], BeamformerViewPlaneTag_Count) \
     39 	X(tgc_control_points,             float,    [8],                            8)   \
     40 	X(save_name_tag_length,           int32_t,  ,                               1)   \
     41 	X(save_name_tag,                  char,     [128],                          128)
     42 
     43 #define X(name, type, size, ...) type name size;
     44 typedef struct {BEAMFORMER_LIVE_IMAGING_PARAMETERS_LIST} BeamformerLiveImagingParameters;
     45 #undef X