Facebook con Spectrum facilita il caricamento di immagini di grandi dimensioni da app mobile

Poichà© gli smartphone moderni acquisiscono immagini ad alta risoluzione, le dimensioni dei file di grandi dimensioni rendono gli upload inaffidabili su alcune reti mobili. L'invio a piena risoluzione é spesso uno spreco, in quanto la rete di consegna dei contenuti (CDN) ridimensiona comunque l'immagine per il destinatario. Spectrum nasce per comprimere le immagini senza troppa perdita di qualità  prima dell'upload.

Scritto da

Simone Ziggiotto

il

Facebook ha rilasciato Spectrum 1.0.0, libreria open source che consente agli sviluppatori di app che decidono di utilizzarla di comprimere e ottimizzare le immagini per il caricamento attraverso internet, preservando al contempo la massima qualità originale possibile.

Negli ultimi anni, le fotocamere dei telefoni cellulari, anche quelli più economici, sono migliorate significativamente, sia in termini di qualità delle foto che di funzionalità: è aumentato il numero di megapixel, sono arrivati sul mercato i telefoni con doppia/tripla/quadrupla fotocamera e ci sono stati diversi miglioramenti nella tecnologia HDR e nelle foto scattate in condizioni di scarsa luminosità. L’aumento della qualità, tuttavia, ha portato i file delle immagini a ‘pesare’ di piu’, ossia occupare piu’ spazio fisico nella memoria di un telefono, e, quindi, il caricamento di questi file sui social media o su un servizio di cloud attraverso internet è diventato poco pratico a causa di connessioni poco affidabili – sopratutto in ambienti urbani densamente popolati o nei mercati emergenti – sia per via di tempi di caricamento lunghi che per un consumo di dati maggiore che è negativo per queli utenti che hanno un piano dati che non offre molti ‘giga’. E anche se gli smartphone moderni acquisiscono immagini ad alta risoluzione, la condivisione di immagini sui social a piena risoluzione secondo Facebook è spesso uno spreco, in quanto la rete di consegna dei contenuti (CDN) ridimensionerà comunque l’immagine per il destinatario. 

Al fine di semplificare e rendere piu’ efficiente il processo di upload delle immagini, Facebook ha sviluppato la libreria di elaborazione delle immagini per Android e iOS chiamata ‘Spectrum’ che ha già implementato nelle proprie applicazioni. Ora, questa libreria diventa accessibile a tutti gli sviluppatori di app che ne vogliono fare uso per migliorare le esperienze fotografiche nelle proprie applicazioni: Spectrum 1.0.0 è disponibile su GitHub e, in breve, serve a comprimere le immagini prima del caricamento.

Spectrum 1.0.0

Il core di Spectrum è scritto in C++, linguaggio che consente la condivisione tra le app di Facebook per Android e iOS, rendendo così i risultati più coerenti. Le API Java e Objective-C offerte sono solo delle rifiniture attorno a questo core per semplificare lo sviluppo di un’app. Inoltre, il core C++ offre un maggiore controllo sulle allocazioni delle risorse e spesso consente una maggiore velocità di esecuzione per operazioni computazionali intensive.

L’API di Spectrum consente agli sviluppatori di "concentrarsi sulle proprietà di output desiderate anziché sui singoli passaggi" ha detto Facebook, "Successivamente, è Spectrum a  scegliere in modo trasparente il modo ottimale per soddisfare la richiesta di transcodifica. Ad esempio, quando viene data l’opportunità, Spectrum preferisce operazioni senza perdita di dati per il ritaglio e la rotazione di immagini JPEG. Un altro esempio è il ridimensionamento, in cui Spectrum ottimizza l’interazione tra il campionamento del decodificatore e il ridimensionamento pixel-perfetto".

"Speriamo che Spectrum avvantaggi gli sviluppatori nello stesso modo in cui ha aiutato Facebook a creare una migliore esperienza di produzione di immagini" ha aggiunto Facebook, "Nelle nostre app, Spectrum ha migliorato l’affidabilità e la qualità dei caricamenti di immagini su larga scala. L’integrazione predefinita con Mozilla JPEG consente una riduzione fino al 15% nelle dimensioni del file di caricamento rispetto ad un encoder di base. Siamo entusiasti di vedere come la comunità utilizzerà la libreria Spectrum 1.0.0 per migliorare le esperienze fotografiche nelle loro applicazioni".

Impostazioni privacy