Fast AIS Data Decoding Algorithm for Multi-Core CPU
- Xiangkun Zeng, Huaran Yan, Yingjie Xiao, and Xiaoming Yang
According to the provisions of the SOLAS convention, more than 600,000 ships in the world have installed automatic identification systems, which can produce more than 3 billion lines of AIS message data every day. The large amount of AIS message data provides many applications. At the same time, the design of efficient decoding of AIS messages has become a new problem. The former AIS message decoding methods mostly use online real-time decoding and decode the messages line by line according to the order of messages. These methods are slow and inefficient when decoding large amounts of AIS messages, and they cannot use multi-core CPU computing power to the extreme. In this paper, the decoding process is decomposed into several steps such as data reading, single-line message filtering, multi-line message filtering, single-line message binary transcoding, multi-line message binary transcoding, binary code decoding, and preservation results. Because multi-line message filtering and multi-line message binary transcoding are difficult to perform in parallel, these two steps are performed in serial, while the other steps are run in parallel. For binary code decoding, which consumes the largest computing resources in the process, the data is blocked first, and then decoding tasks are created and run in parallel. This method makes full use of the parallel computing capability of multi-core CPU and achieves high speed in the running test.