Optimizing Seam Carving using parallel programming in Cuda
-
Input: Ảnh RGB
-
Output: Ảnh được thay đổi kích thước (theo chiều rộng) mà không làm biến dạng các đối tượng quan trọng
-
Ý nghĩa thực tế của ứng dụng:
- Các phiên bản với các kích thước khác nhau của cùng một tấm ảnh để hiển thị trên các thiết bị khác nhau (máy tính, điện thoại, ...)
-
Có cần tăng tốc:
-
Chuyển ảnh từ RGB sang gray scale
-
Chạy hàm kernel edge detection lên ảnh
-
Tính energy map dựa vào kết quả của edge detection
-
Tìm seam ít quan trọng nhất
-
Bỏ seam đó ra và xuất ảnh
-
Song song hóa grayscale (mỗi thread 1 pixel)
-
Song song hóa edge detection (mỗi thread 1 pixel)
-
Song song tính energy map bằng cách tính từng dòng
-
Tối ưu hóa như (Option 1)
-
Song song hóa bỏ seam
-
Boilerplate (input, output, timer, setup, ...)
-
Edge Detection (Host)
-
Edge Detection (Device)
-
Find Least Significant Seam (Host)
-
Find Least Significant Seam (Device)