TELEMED ArtUs RF Data Control Instructions
- June 10, 2024
- TELEMED
Table of Contents
ArtUs RF Data Control
ArtUs RF Data Control
The native C++ SDK sample ArtUs RF Data Control should be used for the beamformed RF data capture, and recording into the data files. The sample allows to control few parameters of ultrasound scanner ArtUs and to define dimensions of RF data stream. For the explicit description of the sample we refer to [1]. The front panel of the demo sample is presented in the Fig. below. The RF window (11) defines the amount of RF data to be transferred and the relative position of the RF output window in the image frame (10). For the convenience in the user manual RF window data and the main acquisition parameters sometimes will be called sub-frame. The sample allows to record RF window data to the file (6). The front panel and main controls of ArtUs RF Data Control sample are presented below:
Fig. Front panel of ArtUs RF Data Control demo
Num | Component | Description |
---|---|---|
1 | Main scanning controls | Controls starts (Run) and stops |
(Freeze) ultrasound scanning.
2| B mode controls| Allows to select scanning type (B Standard,
B WideView, B Compound), to adjust scanning depth (Depth, mm), amplification
of the image data (B Gain, %), power of transmitted ultrasound signal (B
Power, dB), focal depth (Focus), scanning frequency (Frequency), steering
angle (Steering Angle) and lines density (Lines Density). There is an option
to select scan direction (Change Scan Direction).
3| RF Data Source Point| RF data is received as an array of 16-bit
integers. This option allows to select the point of the beamformer from which
RF data will be received.
For ArtUs ultrasound scanner the following RF data types are available:
• Beamformer output (I, 16 bit),
• TFC (time-frequency control) filter output (I, 16 bit),
• Angle apodization output (I, 16 bit),
• Hilbert transform output (I+Q, 16 bit + 16 bit).
For the further details related to these data types we refer to [1].
4| RF window Position and Size| The position and size of RF window
could be adjusted by the controls.
There is a trade-off between RF window size and scanning speed (fps).
5| RF Scan Line| These controls allow to select RF scanning line
which will be displayed on screen.
6| Record RF data| RF data recording into (*.bin) file from the selected data
source point and RF window (11). Preselected number of frames (N) is recorded
into the file (default value – 100). The position and size of RF window can be
adjusted by the controls. The file size could be controlled by observing
indications of the counter (size in MB). There is an option to record single
RF frame (button Record Single Frame) which could be selected from cine loop.
The RF frames could be recorded by pressing Start/Stop radio buttons as well.
Recording of RF data while scanning may result into reduced FPS (depends on
the disk).
Note! There is a small number of randomly skipped frames in RF data
records when the file is recorded directly to disc in real-time during
scanning. It is recommended to save RF data from Cine
buffer after scanning when freeze button is pressed. Such writing ensures that
all collected RF data will be recorded without missing frames and reduction of
FPS.
7| Save/Load settings| Allows to save current scanning and RF
window settings to file, which could be loaded and settings reset.
8| Cine| Cine loop options. Allows to play recorded sequence and to
watch it frame by frame.
9| RF data plot| Displays the RF data of the single selected line
(dashed yellow line superimposed on the B mode image marks the scanline
position).
Controls (I Scale, Q Scale) allows to adjust the scale of shown RF signal.
The displayed RF signals are scaled by both axes in order to obtain well
visible waveforms.
10| Main B mode imaging
window| Displays full grayscale B mode images and the superimposed
boundary lines of adjustable RF window.
11| RF window| The contour (solid light blue lines) outlines the
external boundaries of the RF window. The scanning line numbers and imaging
depth are displayed close to the border.
12| Options| Options allows to adjust size of acquired Cine in MB.
Maximum allowed size 1200 MB. Takes effect after software restart.
13| Two scanning
lines mode| This mode scans only two selected (Line1, Line2) scanning
lines and allows to achieve much higher FPS.
14| FPS| There are FPS indicators B FPS: X / Y and RF FPS: X / Y
where:
X – screen rendering speed, depends on PC performance
Y – true scanning speed
Structure of the RF data file
The collected RF data and the main acquisition parameters needed for off-line
analysis and imaging could be recorded into binary files (*.bin). The filename
contains acquisition time and date information, and the probe type code (HH.MM
.SS_DD-MM-YYYY_probe code.bin, i.e. “16.34.00_27-102017_L18-10H30-A4.bin”).
The ArtUs RF Data Control SDK allows to record the RF data files of unlimited
size (limited only by the capacity of the HDD).
Each recorded RF data sub-frame contains header information and beamformed RF
data from the corresponding RF window. The position and size of the window
could be adjusted during scanning, and therefore the header of acquisition
information is written to file for each sub-frame in a recorded sequence.
Please note that smaller window size allows to achieve higher frame rates. The
file structure for single sub-frame is defined as follows:
Contents of the
file| Data type| Number of elements
(bytes)| Description
---|---|---|---
RF file type| char| 1 (6 bytes)| RF file version is written only in the
beginning of the file not before each frame
(currently RF0004).
number_of_frames| int32| 1 (4 bytes)| Number of RF frames recorded into file
(!Note: if Record Multiple Frames
Start/Stop option is used during recording of RF data the field will be equal
to 0).
header_size| int32| 1 (4 bytes)| Size of header in bytes
frame_size| int32| 1 (4 bytes)| Size of RF frame in bytes
source_ID| int32| 1 (4 bytes)| RF data source ID: 1 – Beamformer output, 2 –
TFC filter output, 3 – Angle apodization output, 4 – Hilbert transform output
tx_frequency| int32| 1 (4 bytes)| US wave transmission frequency, in Hz.
frame_rate| int32| 1 (4 bytes)| The actual number of frames per second, since
streaming started, depends on the
used scanning probe and size of RF window. Frame rate is multiplied by 100.
Length_of_RF_row| int32| 1 (4 bytes)| Number of RF signal samples in a single
scanning row.
Number_of_RF_rows| int32| 1 (4 bytes)| Number of RF scanning lines in a
predefined RF window.
Sampling_period_ns| int32| 1 (4 bytes)| Sampling period – defines the
digitization resolution, in nanoseconds (ns). For the
ArtUs system – 25 ns ~ 40 MHz sampling for depths up to 8192 samples, and 50
ns (20 MHz) for number of samples >8192.
Sample_size| int32| 1 (4 bytes)| Number of BIT’s, at present 16/32 BIT for the
RF data
start_depth| int32| 1 (4 bytes)| Scanning start depth in mm (offset for each
beam) used for imaging of the scanning window in absolute coordinate system
Start_pointposition
and_orientation| int32| 3 × Number_of_RF_rows
(3 × Number_of_RF_rows
× 4 bytes)| Start position coordinates and orientation angle of each beam are
originally recorded in triplets (beam_xi, beam_yi, anglei, where i-th scanning
beam) for each scanning beam beginning from left side of the sector.
• angle – specifies the angle of the ultrasonic beam’s direction (in radians
multiplied by 1000000).
The angle is given relative to the perpendicular to the center of the probe’s
surface (angle = 0 for linear array probes); in case of compound scanning mode
(B
compound) the parameter returns angle of beams for each compounded sub-frame
(number of compounded sub-frames could be adjusted by Frames Num.
control);
• beam_x – start x coordinates of each beam, (in µm);
• beam_y – start y coordinates of each beam, (in µm).
time_stamps| uint32| Number_of_RF_rows
(Number_of_RF_rows × 4 bytes)| Time stamps for each ultrasound scanning line.
Timestamp – time from the last start of scanning until the start of receiving
of RFdata in present ultrasound line. One discrete of Timestamp = sampling
period (25 ns for 40 MHz sampling clock of ArtUs).
| | | Maximum time for 32-bit timestamp is 28606043.625 µsec (28.605043625
sec),
after that timestamp counter begins count from zero. Timestamps are in
samples.
---|---|---|---
frame| int16| Number_of_RF_rows × Length_of_RF_row
(Number_of_RF_rows × Length_of_RF_row × 2 bytes) for source_ID=1, 2,
3; and 2 × Number_of_RF_rows
× Length_of_RF_row
(2 × Number_of_RF_rows
× Length_of_RF_row × 2 bytes) for ource_ID=4|
Structure of the file:
Source_ID=1, 2, 3
Source_ID=4 (Hilbert transform output)
Known Issues
- There is a small number of randomly skipped frames in RF data records when the file is recorded directly to disc in real-time during scanning. The recording itself during scanning may reduce FPS (depends on disc speed). If the exact moments of time are important, we recommend to check time stamps in RF data recordings. Overall, the missing frames are caused due to unpredictable behaviour of windows task scheduler which distributes resources for different processes such as B mode stream, RF data stream, writing to disc etc. We recommend to record RF data files after scanning from the Cine loop memory. There will be all frames without losses. The same proposal is valid for the other developments, since you can use SDK and retrieve RF data from Cine loop memory.
- Artusrf_data_control tool indicates number of rendered frames per second. USGFW2 SDK architecture assumes that ultrasound data captured from beamformer hardware is stored into cineloop buffer with frame rate ultrasound scanning is performed. But rendering is performed with FPS that Windows OS allows to process. If system does not allow to render all frames stored in cineloop buffer because of ultrasound data processing calculations or because of Windows threads manager switch algorithm some frame in cineloop is skipped to save ultrasound streaming timings. It is a reason why you can to see FPS in artus_rf_control less than real scanning FPS. You can also to observe different FPS for B and RF data rendering because Windows threads switch manager decided to dedicate more time to one of (B or RF) processing threads.
References
[1] Echo Blaster 64, Echo Blaster 128, LS64, LS128, ClarUs, SmartUs, MicrUs
and ArtUs Series Ultrasound Systems Ultrasonography for Windows II Software
Development Kit (Usgfw2 SDK) Programmer’s Guide, (main sub-section – 4.9).
Revision History
Version | Date | Description of Revision | Revision author |
---|---|---|---|
1.0.0 | 2-9-2019 | Initial Release | A. Sakalauskas |
1.1.0 | 10-9-2019 | Added option to record single RF frame | A. Sakalauskas |
1.2.0 | 30/12/2019 | Added option to record predefined number of RF frames and | |
save file dialog window. Structure of the file was modified. | A. Sakalauskas | ||
1.3.0 | 22/04/2020 | Added option to record I and Q components into RF data file |
for Hilbert transform output; Changed display of RF window line numbers to
start from 1; RF window movement step changed from 2 to 1.| A. Sakalauskas
1.4.0| 05-05-20| Added option to record time stamps for each scanning line
into RF data file| A. Sakalauskas
1.4.1| 07-10-20| Added option to adjust Cine buffer size, two scanning lines
mode.| V. Perlibakas
A.Sakalauskas
1.4.2| 18/01/2021| Fixed writing of beam coordinates and angles to RF file in
compound mode.| A. Portniagin
V. Perlibakas
1.4.3| 12-04-21| Added section “Known issues”| A. Sakalauskas
1.4.4| 19/04/2021| B and RF mode FPS output changed from “Drawing FPS” to
“Drawing FPS / Scanning FPS”| V.Perlibakas
1.4.5| 23/06/2021| Sampling period for higher depths (>8192 samples)
automatically set to 50 ns.| A. Portniagin
A. Prysiazhniuk
1.4.6| 11-04-22| Fixed bug of writing number of frames field into a RF data
file, RF file structure version RF0004 created.| V.Perlibakas
A.Sakalauskas
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>