A Hierarchical Approach to the Out-of-order Arrival of Frames in Video Streaming Applications on Clustered MPSoC
Résumé
We consider video streaming applications written in the form of coarse-grained parallel threads which are mapped onto a multi processor system-on-chip. For performance reasons, the threads are replicated, organized into several parallel pipelines, and mapped onto a clustered architecture. This type of architecture has non uniform memory access so that latencies vary strongly. As a consequence, data items potentially arrive at the join task in an arbitrary order, but have to leave in-order. We extend an algorithm initially conceived for networking applications. This algorithm re-establishes the order while using minimal buffer space for a given throughput. Data items are either stored in a buffer or discarded if their earliness or lateness exceeds a limit previously fixed by experimentation. The extended algorithm handles the notion of hierarchy which is typical for video streaming: several blocks make up a stripe, several stripes make up a frame and so forth. We show first experimental results for a multi-pipeline Motion JPEG decoder on a multi-cluster SoC and compare with an existing implementation.