Optimizing seam carving on multi-GPU systems for real-time content-aware image resizing
Image resizing is increasingly important for picture sharing and exchanging between various personal electronic equipments. Seam Carving is a state-of-the-art approach for effective image resizing because of its content-aware characteristic. However, complex computation and memory access patterns make it time consuming and prevent its wide usage in real-time image processing. To address these problems, we propose a novel algorithm, called Non-Cumulative Seam Carving (NCSC), which removes main computation bottleneck. Furthermore, we also propose Partial update of Index Map (PIM) algorithm to reduce computation amount. Finally, we implement our algorithm on a multi-GPU platform. Results show that our approach achieves maximum \(10\times \) speedup over the original seam carving implementation on a single-GPU system. It also presents maximum \(103\times \) speedup on a two-GPU system over the single-thread CPU implementation of original seam carving algorithm. NCSC only takes 0.10s to reduce a \(1024 \times 640\) image to 70% in width on a two-GPU platform compared to 11s with the traditional seam carving on a single-thread CPU system.
seam carving content-aware image resizing gpgpu cuda heterogeneous system