Lots of effort has been put into ensure the efficient of the screen transfer, how to ensure 40-60 fps of transfer without sacrificing high PC's CPU (<10%). The efficient use of GPU on both device and PC is crucial, absence of GPU of any one side will slow down the mirroring significantly. We also have homegrown compression (SFC) to handle devices without GPU. We will perform image compression (H.264 or homegrown), transfer and decompress and render on PC, PC has to handle multiple devices. The image (quality + latency) are highly impacted by many factors: frames per second, data size (resolution, quality) per frame, USB transfer rate, adb transfer rate, CPU/GPU of devices and PC. We offer many parameters to tune.
Resolution
Lite version offers 640p resolution, Pro offers 4 resolutions, we will maintain the aspect ratio, the resize is done on the devices. For example, the device with 4K resolution has very little impact on screen quality on PC but 1080p does. 1080p will put heavy burden on both devices and PC (generate and move more data).
Device Acceleration
There are 3 acceleration methods:
- HA1: This is transfer as fast as possible, this is done on the device. Usually can reach 40-60 frames per second (FPS) with average device and PC.
- HA2: This is rate limited to no more than 30 FPS, more device CPU/GPU is required to manually resize and compress screen image. This mode is useful for recording (will switch to HA2 when recording is turned on), 60 FPS recording will create huge MP4 file size.
- Compatibility mode: This mode is required for the devices SoC that does not offer GPU or H.264 compression. We developed our patented compression technology called SFC, that compression is viable in slow device CPU. Almost all recent SoC has offer GPU (and H.264), this mode is useful for headless devices without GPU. SFC utilizes CPU on the devices and PC, on average this mode can achieve 10-15 fps.
Image Quality
We offer 3 image quality: Low, Medium and High by tuning H.264 bitrate, the quality will not impact on static image (device will transfer high quality static image if image is not refreshed), more apparent in dynamic images.
[Adv] Device coding setting
Tune H.264 profile to achieve higher image quality, Android requires baseline profile, not all devices will support other profiles.
[Adv] PC Acceleration
TC is tuned to utilize Intel i-series CPU/GPU, if you have external graphics board, you can adjust if DirectX or OpenGL gives better performance. Usually, DirectX is good enough.
[Adv] Hardware Acceleration
For HA1 and HA2, it will let GPU to decompression and rendering in one step. If this mode is unchecked, it will do the decompression (GPU) and render as 2 distinct steps (moving lots of data).
[Adv] Native vs Projection
Prior of Android 12 we can do H.264 or SFC compression with our own code, we called it "native", with the introduction of "screen projection" feature in Android, we have added "projection" into Total Control. Android projection has similar speed (if not faster) than our native mode, it is difficult for us to maintain 2 modes for every new releases of Android. Starting Android 12, we will no longer offer "native" mode or SFC.