Tkachenko, Sofia (School: Municipal gymnasium #36)
There are situations when demonstration or group watching of a video requires a big screen but it is inaccessible. My project aims to develop an application that allows creating a mobile video wall using Android devices. A person can hear a difference in audio synchronization above 23 ms, but the Android devices‘ synchronization methods don’t provide such accuracy. That’s why I’ve developed a new synchronization algorithm. Each device constantly calculates the average difference between its time and the time of a low-latency JavaSocket server. The algorithm maintains stable and precise synchronization. The positions of devices are determined by two photos of the video wall, where each device is painted over with its combination of colors for identification. Then, the recognition noise is removed using mathematical morphology algorithms (erosion and disclosure). After that, devices’ positions are transformed into the video coordinate plane and sent to the devices through the Tomcat server. And to play the video I use my own video player based on MediaCodec and a low-level OpenSL EU audio player to minimize playback delay. Two series of tests were conducted to verify the accuracy of synchronization and video player performance. As a result, the average synchronization difference is 22 ms, which is insensible and video player can play video at 30 FPS. The application allows using up to 20 devices. This is defined by the number of colors used for identification, which can be increased. This application can be used both in the field of advertising and entertainment (flash mobs, installations) and for educational purposes (contests, cheerleading). Moreover, it will help modern teenagers to communicate in real life rather than in virtual reality using their devices.