4 ms·
Interesting detail, thank you. I never did a dive into how well Zoom optimized for power consumption. Good things to keep in mind.
by Fwirt 5y ago
Interesting detail, thank you. I never did a dive into how well Zoom optimized for power consumption. Good things to keep in mind.
- floatingatoll 5y agoThe five relevant questions are, as best as I can remember right now: 1) Is the user's camera on, transmitting an H.264-encoded stream? 2) Is the user using virtual backgrounds, which have a CPU minimum requirement beyond that of the rest of Zoom? 3) Is the user screen sharing, transmitting an H.264-encoded stream, with or without the full-motion video checkbox enabled? 4) How many attendees are shown on the user's screen and are being H.264-decoded to the display? 5) Does Zoom use Apple's A/V interfaces for H.264 encoding and decoding, directly or indirectly, and has Apple (not Zoom!) improved the watts used for those operations on the M1 CPU? #5, at least, I can consider. I'm looking inside the Zoom macOS binary now and I see a variety of functions in aomhost that are, essentially, image and video stream processing functions, with custom code for _avx2 and _sse2, on my Intel Mac. Zoom supposedly released an M1 native update in December, but I don't (yet) know how to get the M1 client on my Intel Mac to inspect further. EDIT: Found the M1 client: https://zoom.us/download https://zoom.us/download, "Apple Silicon". In the M1 client, the framework aomhost, which contained x64-optimized function names, is absent; as well as libmpg123. Framework aomagent replaces ApplicationServices with ColorSync,CoreGraphics. So at least for #5, I suspect that Zoom is using Apple's encoding/decoding interfaces, since there's little chance they ported the third-party open source libraries to native macOS interfaces. They're still bundling OpenSSL 1.1.1k rather than using Apple's SSL interfaces, so presumably they only rewrote the MPEG interfaces because they had SSE/AVX optimizations.