Performance & Compatibility Considerations
For video projects, we strongly recommend performing annotations on a sample of the data that will be used in the project before starting with the project itself.
Audio files must have a constant bitrate.
Audio files with variable bitrate will cause the final annotation timings to not be correct in the final export.
Performance is heavily tied to the user's machine and internet connection.
If the user's internet connection allows for downloading at 2MB/s, and each image or frame in an asset is 30MB in size, then each image will load in 15 seconds at best.
Hub provides a direct connection between the user and the server where the image is located, adding no overhead.
In the performance table below, there is a column with tests performed with a high-end machine (2023 MacBook Pro M2) and with a low-end machine. Performance will vary greatly depending on the machine where Ango Hub is run.
In almost all cases, the number of annotations impacts performance as much as, if not more than the size of the asset.
Ango Hub does not enforce any limits on the size of assets and the numbers of annotations in each task. You may upload videos and audio files of any length, images of any resolution, and medical files of any size, then annotate them with an unlimited number of labels.
While we are always working to improve the performance of our platform, as a result of bandwidth, browser, and host machine performance limitations, this may occasionally translate into slower than expected performance while annotating on Ango Hub.
In general, we always recommend testing the platform with demo assets and annotations to sample the platform's performance before moving the project to production.
Performance Limitation Recommendations
Actual performance may vary according to a variety of factors not taken into consideration in this table.
Asset Type | Max Asset Size and Max Annotation/Keypoint Number (High-End Machine) | Max Asset Size and Max Annotation/Keypoint Number (Low-End Machine) | Notes (if any) |
---|---|---|---|
Text (NER) | 1 MB with 2.5k annotations (with 0 or 1 nested classifications) | 1 MB with 1k annotations (with 0 or 1 nested classifications) | The number of annotations impacts performance more than the size of the asset. Assets up to 1MB open without any issues, and are functional, if the number of annotations is below 2k. After the 2-2.5k annotation mark, while scrolling through the text is still smooth, placing and removing annotations is slow and effectively not usable. If your task involves more than 1.5-2k annotations per asset, we strongly recommend splitting the assets into parts. |
Audio | 200 MB+ with 1k-1.5k annotations | 150 MB with 600-750 annotations | In our testing, MP3 audio files of up to 200MB, 3 hour long, with 1k annotations, performed smoothly with no visible performance degradation. After 2k annotations, the platform is still usable but performance is degraded. |
Video | 400 MB Max resolution: 1080p Max annotations: 30-35k total keypoints | 200 MB, Max resolution: 1080p, Max annoations: 10k total keypoints | The size of the asset does not impact actual platform performance until the number of annotations becomes significant, or until the asset goes above 500 MB. We have tested video annotating with up to 35k total keyframes, with satisfactory (but not smooth) performance. The way keyframes are calculated is this: for example, if the video has 1000 frames, and there are 40 annotations on the video (e.g. 40 timeline rows), with all annotations having a keyframe on each frame (e.g. no interpolation), then the total will be 40 * 1000 = 40k keyframes. A keyframe means any time an annotation has been placed or edited on the video. Performance in videos may vary considerably based on encoding, frame rate, and other factors. We recommend the .mp4 format with the H.264 encoding for maximum performance. See more on codecs here. |
500 MB+ | 200 MB+ | The size of the asset does not impact actual platform performance until the number of annotations becomes significant. | |
NIFTI/NRRD | 200 MB+ | 75-100 MB+ | Assets larger than 200-300 MB can be uploaded, but performance will degrade, and beyond 500-750 MB the platform will not load the file. |
Special Considerations for Video Assets
Buffering
To improve asset opening time, Hub does not preload the entire video on open. It instead opens the first few frames and keeps loading the rest of the video in the background. This is similar to how, for example, YouTube works.
If the video is particularly large, and the user's internet connection is slow, this may mean that the video may stutter while playing. This is normal and expected, as it means the user is still downloading the video and thus cannot play it.
We recommend using the MP4 format, and for frame-based annotating tasks, to maintain the bitrate as low as possible without compromising the quality of the asset.
When pre-labeling, we strongly recommend assigning each object an ObjectID, such that if the same object is annotated between frames, Hub does not have to create a new timeline row per frame. For example, if you are tracking a specific object in a video, in each frame, have the polygon/segmentation/bounding box tracking the object always have the same Object ID.
In our testing, videos with up to 30-35k keyframes performed well. More annotations may cause stuttering during playback of the video and slowness of the labeling interface.
General
My assets load slowly, but once loaded, Hub is responsive. This is likely an issue with the internet connection. Either the user's connection is slow, or the server's. If you uploaded the assets using drag and drop, they are stored in an AWS instance, which makes it likely that the issue is at the user's end rather than at the server's.
When the asset is loaded, Hub becomes slow, laggy, or unresponsive. This can be a result of either one of: the asset is too large, or the number of annotations is too high. In this case, we would recommend splitting the asset, if possible, into more, smaller assets.
Image
In image tasks, the most demanding workflows usually involve segmentations with large numbers of points. If you experience performance degradation when opening such an image, toggling "Hide Segmentation Points" from the Quick Settings menu at the bottom right of the editor can help alleviate the issue.
Last updated