In general, stages of the image processing process are described in Fig. 1.
Figure 1: Stages of image processing process
To find out where the image quality is being destroyed, we have performed the test. We have feed the color test pattern image into the Zoom app. Then the image was sent to our iOS application and then sent back to Zoom.
The original preview image (1), the image on the entrance to our iOS application (2) and the image received from our iOS application by Zoom Mac application (3) were captured on the same screen and colors were measured by the Digital Color Meter utility (Fig. 2).
Figure 2: Measurement method
The color distortion implemented by our iOS application (between steps 2 and 3) is minimal (1-3 points) and is caused by the .264 encoding-decoding process.
The significant change is implemented inside the Zoom CDN and Zoom SDK. The nature of this distortion (black changed from 0 to 16, white changed from 255 to 235) is peculiar for conversion from Full-range to Video-range color space. However, the pixel buffer provided by the Zoom SDK is erroneously marked as full range (Fig. 3).
Figure 3: Properties of the CVPixelBuffer provided by the Raw Data API
Which iOS Client SDK version?
Smartphone (please complete the following information):
- Device: Any iPad
- OS: iOS 14