Performance and CPU Load
The following tables show Figment's output FPS and CPU load (in percent) in different settings. Each setting is evaluated across different input frequencies (left column). We define the frequency as the interval (in milliseconds) between frames entering the machine learning model. To make the input FPS explicit we specify each frequency as 1000/FPS
. With the next release (currently in beta) we will add the option set_input_frequency
to the setOption
function allowing you to control the input frequency.
Plain Figment
CPU load when rendering a MediaStream while Figment is deactivated: 3-5 %
Performance Mode | Quality Mode | |
1000/5 | 5 FPS / 4-9 % | 5 FPS / 7-9 % |
1000/10 | 9 FPS / 8-10 % | 9 FPS / 12-14 % |
1000/20 | 18 FPS / 13-15 % | 16 FPS / 19-21 % |
1000/30 | 25 FPS / 18-21 % | 22 FPS / 25-28 % |
1000/40 * | 31 FPS / 22-25 % | 27 FPS / 31-32 % |
1000/50 | 35 FPS / 26-28 % | 32 FPS / 35-37 % |
1000/75 | 49 FPS / 32-35 % | 41 FPS / 42-44 % |
1000/100 | 58 FPS / 35-37 % | 46 FPS / 48-51% |
Figment in WebRTC Peer Connection
CPU load of WebRTC peer connection (15 FPS, 480p) while Figment is deactivated: 16-18 %. Our implementation is based on this WebRTC sample.
Performance Mode | Quality Mode | |
1000/5 | 5 FPS / 11-14 % ** | 5 FPS / 14-16 % ** |
1000/10 | 9 FPS / 21-23 % | 9 FPS / 24-26 % |
1000/20 | 17 FPS / 30-32 % | 16 FPS / 36-39 % |
1000/30 | 24 FPS / 40-43 % | 21 FPS / 46-49 % |
1000/40 * | 30 FPS / 44-47 % | 27 FPS / 54-57 % |
1000/50 | 34 FPS / 48-50 % | 30 FPS / 59-61 % |
1000/75 | 49 FPS / 55-57 % | 40 FPS / 64-68 % |
1000/100 | 57 FPS / 59-61 % | 46 FPS / 74-76 % |
*Current default setting.
** Setting Figment's input frequency to a lower FPS than the WebRTC baseline positively impacts WebRTC's CPU load. This explains the lower CPU load than with the WebRTC baseline.
Last updated