Sto realizzando un'app per fotocamera e questa app fornirà alcuni filtri agli utenti. Attualmente il mio codice è su NDK e funziona Ok, tuttavia voglio renderlo un po 'più veloce. Sembra GPU e opengl Es 2.0 è la strada da percorrere. La mia unica preoccupazione per la GPU è la limitazione della memoria. Dal momento che le moderne fotocamere prendono immagini a 5-10 MP mentre la limitazione della memoria GPU è molto inferiore. Mi stavo chiedendo se c'è un modo per ovviare a questa limitazione. L'unica opzione logica che mi sembra è dividere l'immagine in una parte più piccola, quindi elaborarli su GPU e infine assomigliarli all'immagine finale. La mia domanda è, se questo approccio sarebbe ancora buono per le prestazioni e c'è anche qualche altra opzione per l'elaborazione di immagini ad alta risoluzione su GPU mobili.Come gestire la limitazione della memoria della GPU per l'elaborazione di immagini ad alta risoluzione su GPU?
Modifica: Ho bisogno di chiarire che voglio utilizzare GPU per l'elaborazione delle immagini, quindi il mio obiettivo non è quello di visualizzare i risultati sullo schermo. Lo renderò a un'altra texture e salvarlo su disco.
Dipende davvero da cosa si sta tentando di fare. Il vantaggio offerto dalle GPU è che sono altamente paralleli, ma non tutti i problemi possono essere semplificati semplicemente lanciando più core su di essi. – thecoshman
Volevo ottenere una soluzione generale a un problema generale, ma attualmente sto cercando di codificare "laplacian pyramid" che è molto costosa quando viene eseguita sulla CPU. – dirhem
beh, se si sta facendo qualcosa come applicare una tinta a un'immagine, in cui si desidera applicare la stessa operazione a tutti i bit, quindi il caricamento sulla GPU è una soluzione ovvia. attività come la sfocatura di un'immagine sono un po 'più complicate, dato che ogni nuovo valore dipende da un intervallo di pixel. Nel tuo caso però, devi considerare che ci sono molte differenze tra l'hardware, come la quantità di RAM che supportano, la consistenza della trama, la quantità di dati che puoi inviare a loro. Potrebbero non essere nemmeno in grado di eseguire l'elaborazione in stile OpenCL – thecoshman