Perché XCode converte i PNG in formato CgBI?

5

Secondo la ricerca effettuata qui link , la conversione di Xcode di PNG nel formato proprietario Apple CgBI non crea un miglioramento notevole delle prestazioni . La loro tesi è che la conversione riduce solo la velocità di caricamento PNG di 1 nanosecondo.

Se questo è vero, perché Apple si preoccupa del formato CgBI? Qualcun altro ha benchmarkato il caricamento delle immagini CgBI rispetto alle normali immagini PNG sui dispositivi iOS per vedere se hanno prestazioni diverse?

    
posta Gdeglin 23.10.2012 - 02:04
fonte

1 risposta

2

Questo post sul blog che descrive il brevetto che Apple ha presentato per il Il formato CgBI implica che Apple abbia pensato che ci fossero alcuni benefici tecnici dalla conversione. In particolare:

  • If the file has the CgBI header, then CRCs can be ignored
  • The RGBA pixels are written in a different order (BGRA)
  • The data is pre-multiplied if there is an alpha channel

Il primo e l'ultimo vantaggio hanno maggiori probabilità di avere un valore, ma non sono un esperto di grafica.

Con il post che hai visualizzato nella tua domanda, c'è un sottile cambiamento di attenzione nel confronto dei risultati.

L'elenco 4 set di immagini e le loro dimensioni.

  • Non ottimizzato (ovvero PNG) a 49,63 MB
  • Xcode convertito in CGB a 26,46 MB
  • Ottimizzazione ImageOptim delle immagini PNG a 16,81 MB
  • Ottimizzazione ImageAlpha + ImageOptim a 9,37 MB

E ci sono altre due cose da notare. Innanzitutto, le seconde due serie di immagini sono i risultati delle loro routine di compressione. In secondo luogo, notano che hanno eseguito compressioni ripetute (ottimizzazioni) delle immagini fino a quando non hanno ottenuto alcun beneficio aggiuntivo. Nonostante il loro desiderio di credere diversamente, questi insiemi di numeri sono non di confronto tra mele e mele.

Parlando della velocità di caricamento, dichiarano: Although Xcode optimisation is assumed to improve decoding speed of PNG images, testing on an actual device disproves that. Xcode-optimized images were significantly slower to display.

E forniscono tre, non quattro, serie di risultati da esaminare. Non forniscono tempi di caricamento per le immagini PNG non ottimizzate, forniscono solo risultati per le immagini ottimizzate CgBI e ImageOptim. Non così sorprendentemente, le ottimizzazioni dei loro prodotti superano quelle fornite da Xcode.

Si spingono fino al punto di dichiarare che Decoding speed appears to be correlated to image file size more than anything else . Più avanti nell'articolo, forniscono un altro link che conferma la loro osservazione relativa alle dimensioni del file. Usando un po 'di logica possiamo tranquillamente concludere che se avessero fornito tempi di caricamento per le immagini PNG non ottimizzate, allora sarebbe stato il set più lento dal momento che era anche il più grande set di immagini.

Quindi la base della tua domanda è un po 'off - la conversione di Xcode in CgBI fa fornisce un miglioramento delle prestazioni a causa delle dimensioni ridotte del file immagine. Possiamo dire solo dalle dimensioni del file immagine. Mentre le persone ImageOptim sono riuscite a ottenere 1/3 o 1/5 delle dimensioni del file originale con passate multiple, la conversione di Xcode è arrivata a circa 1/2 della dimensione del file originale su un singolo passaggio.

Quindi Xcode offre miglioramenti delle prestazioni "out-of-the-box" di un fattore due da un singolo percorso di ottimizzazione.
Esistono alternative add-on come ImageOptim per ottenere maggiori miglioramenti ma a un costo di ulteriori round di ottimizzazione.

    
risposta data 28.11.2012 - 20:43
fonte

Leggi altre domande sui tag