We studied several well-known timing synchronization algorithms in this paper, and applied them to our distributed real-time camera system. We proposed a peer-to-peer framework for distributed real-time gesture recognition, and this study serves as the keystone of the system. Cameras and microprocessors are now cheap enough that many smart camera nodes can be used in a single system. A smart camera node contains not only video capturing devices, but also processing elements to perform both capture and process in the same package. Sometimes, using multiple relatively inexpensive cameras with lower resolution might even provide better performance and be more cost efficient than using single high-end camera. In order to perform real-time video processing, distributed multiple cameras require distributed processing power, and the distributed nodes have to remain synchronized to ensure the correctness of distributed video processing. Though clock synchronization has already been well studied in decades, most previous work uses domain knowledge to achieve good synchronization result on a certain network structure. Precision in microseconds could be achieved in several previous approaches. However, for our distributed real-time video processing system, such precision is not required; only frame-precision is needed for our system, which is around tens of milliseconds. In our distributed camera system we assume no deterministic network structure for the camera nodes. Since there is no single time synchronization algorithm would suit every network structure, we would like to investigate the possibility to perform clock synchronization in application layer, where domain knowledge of underlying structure is not needed. We choose algorithms that achieve synchronization by exchanging messages between camera nodes to achieve synchronization on heterogeneous network structures. We investigate three well-known message-exchanging timing synchronization methods: Lamport’s; Lundelius’ and Halpern’s algorithms, and perform experiments on our distributed camera system. All these methods can tolerate up to one third of faulty camera nodes, and Halpern’s algorithm could even survive as long as the network is connected. Three different network configurations are used in our simulation, and each configuration can represent certain realistic camera distributions. Among all the algorithms we studied, Halpern’s algorithm is the simplest one in sense of computation complexity, and can achieve the most precise synchronization, regardless the huge variation in transmission delay. Halpern’s algorithm also uses less message exchanges, and can even be hidden within normal data packages, which is a better choice for our distributed real-time camera system.
|