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
. The input frequency can be controlled with the set_input_frequency
option in the set setOption
function.
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