Tôi đang tạo ứng dụng máy ảnh và ứng dụng này sẽ cung cấp một số bộ lọc cho người dùng. Hiện tại mã của tôi là trên NDK và nó hoạt động Ok, tuy nhiên tôi muốn làm cho nó nhanh hơn một chút. Có vẻ như GPU và opengl Es 2.0 là con đường để đi. Mối quan tâm duy nhất của tôi với GPU là giới hạn bộ nhớ của họ. Vì các máy ảnh hiện đại có hình ảnh 5-10 mp trong khi giới hạn bộ nhớ GPU ít hơn nhiều so với máy ảnh. Tôi đã tự hỏi nếu có một cách để làm việc xung quanh giới hạn đó. Tùy chọn hợp lý duy nhất dường như với tôi là chia nhỏ hình ảnh hơn một phần, và sau đó xử lý chúng trên GPU và cuối cùng là đưa chúng vào hình ảnh cuối cùng. Câu hỏi của tôi là, nếu cách tiếp cận này vẫn sẽ tốt cho hiệu suất và cũng có tùy chọn khác để xử lý hình ảnh hình ảnh có độ phân giải cao trên GPU di động.Làm cách nào để xử lý giới hạn bộ nhớ của GPU để xử lý hình ảnh có độ phân giải cao trên GPU?
Chỉnh sửa: Tôi cần làm rõ rằng tôi muốn sử dụng GPU để xử lý hình ảnh để mục tiêu của tôi không hiển thị kết quả trên màn hình. Tôi sẽ đưa nó vào một texture khác và lưu nó vào đĩa.
Nó thực sự phụ thuộc vào những gì bạn đang cố gắng làm. Ưu điểm mà GPU cung cấp là chúng có tính song song cao, nhưng không phải tất cả các vấn đề đều có thể được thực hiện dễ dàng hơn bằng cách đơn giản là ném nhiều lõi hơn vào chúng. – thecoshman
Tôi muốn nhận được một giải pháp chung cho một vấn đề chung tuy nhiên hiện tại tôi đang cố gắng để mã "kim tự tháp Laplacian" mà là rất tốn kém khi nó được thực hiện trên CPU. – dirhem
tốt, nếu bạn đang làm một cái gì đó như áp dụng một màu sắc cho một hình ảnh, nơi bạn muốn áp dụng các hoạt động tương tự cho tất cả các bit, sau đó tải lên GPU là một giải pháp rõ ràng. các tác vụ như làm mờ hình ảnh phức tạp hơn một chút, vì mỗi pixel giá trị mới tùy thuộc vào phạm vi pixel. Trong trường hợp của bạn, bạn phải xem xét có rất nhiều sự khác biệt giữa phần cứng, chẳng hạn như bao nhiêu ram họ hỗ trợ, làm thế nào lớn một kết cấu, bao nhiêu dữ liệu bạn có thể gửi cho họ. Họ thậm chí không thể thực hiện xử lý kiểu OpenCL – thecoshman