Ho bisogno di decodificare (decomprimere in bitmap) piuttosto piccolo (circa 1200 * 1200) JPEG. Il problema è che ho bisogno di farlo in fretta. Ho provato libjpeg ed è piuttosto lento. Ho anche provato BitmapFactory.decodeByteArray - è un po 'più veloce, ma non abbastanza veloce. Quali sono le altre opzioni? Una libreria nativa (C++) è molto preferita.Modo rapido per decodificare l'immagine JPEG
P.S. I miei file JPEG sono creati direttamente in memoria.
P.P.S. Mi chiedo come mai libjpeg sia più lento di BitmapFactory.decodeByteArray.
Da quando è 1200x1200 "piuttosto piccolo"? La maggior parte degli schermi è solo 320x240 circa. Diamine, il mio desktop è solo 1280x1024. (1) Crea un JPEG più piccolo (2) Decodificalo solo una volta e mettilo in cache. –
Buon punto, in realtà :) Lo considero piccolo da quando ho iniziato a lavorare con le reflex digitali. E io sto prendendo di mira i tablet. Ora, come per i tuoi suggerimenti: 1) Ho provato che (fattore di scala 2) - le prestazioni non sono ancora sufficienti, un'ulteriore riduzione della risoluzione è inaccettabile. 2) In nessun modo, ho bisogno di visualizzare diversi JPEG in tempo reale (più o meno). –
Per quanto riguarda la differenza di velocità; Il codice di Android probabilmente utilizzerà alcune istruzioni impostate sulla CPU ARM per decodificare il JPG più velocemente di quanto il codice C possa utilizzare con la CPU. – stealthcopter