Decodifica JPG più veloce con Internet Explorer 11

Internet Explorer 11 su Windows 8.1 sfrutta l'elaborazione parallela della GPU per decodificare e visualizzare le immagini JPG presenti nelle pagine web.
Internet Explorer 11 su Windows 8.1 sfrutta l'elaborazione parallela della GPU per decodificare e visualizzare le immagini JPG presenti nelle pagine web.

Ad un mese circa dal lancio ufficiale di Windows 8.1, Microsoft ha iniziato la pubblicazione di articoli che descrivono le nuove funzionalità di Internet Explorer 11. Dopo aver illustrato le capacità video del browser, l’azienda di Redmond ha rivelato alcuni dettagli sulla decodifica delle immagini JPG. Sfruttando la GPU, IE11 è in grado di caricare le immagini presenti in una pagina web ad un velocità superiore rispetto a IE10, riducendo il consumo di memoria e migliorando la durata della batteria.

Microsoft afferma che il 61% dei contenuti scaricati dai siti web sono rappresentati da immagini e che il 47% di esse sono immagini JPG. Internet Explorer 11 carica le immagini con una velocità fino al 45% superiore e usa fino al 40% di memoria in meno rispetto alle precedenti versioni del browser. Per spiegare come sia stato possibile ottenere questi miglioramenti, la software house di Redmond ha descritto la pipeline di codifica di un’immagine JPG.

Il primo passo è la conversione dallo spazio colore RGB allo spazio colore YCbCr, ovvero dalla rappresentazione in base alle componenti rosso, verde e blu alle componenti di luminanza (Y) e crominanza (Cb e Cr). Il passo successivo è la compressione lossy mediante il sottocampionamento della crominanza (chroma subsampling). I canali Cb e Cr possono essere compressi in modo significativo, in quanto l’occhio umano è più sensibile alla luminosità e meno sensibile al colore. La maggior parte delle immagini JPG sono sottocampionate utilizzando uno schema 4:2:2 o 4:2:0. In questo modo, l’occupazione di memoria si riduce fino al 62,5% rispetto all’immagine RGB originale. Per ottenere l’immagine JPG finale si effettuano la trasformata discreta del coseno, la quantizzazione e la codifica di Huffman.

Il processo di decodifica avviene in ordine inverso. Fino a IE10, tutti i passi sono stati eseguiti dalla CPU. Internet Explorer 11, invece, effettua il chroma upsampling e la conversione da YCbCr a RGB sulla GPU, riducendo drasticamente l’elaborazione dato che le operazioni avvengono in parallelo. Inoltre, la copia dell’immagine YCbCr sulla GPU (più piccola dell’immagine RGB) riduce l’occupazione di memoria. Meno CPU e meno memoria significa anche meno consumi e maggiore autonomia.

Per decodificare e visualizzare l’immagine JPG visibile in alto (un fienile situato sulle montagne Grand Tetons nel Wyoming), IE10 su Windows 8 impiega 81,5 millisecondi, mentre IE11 su Windows 8.1 impiega 57,5 millisecondi. Per trarre beneficio dalla decodifica hardware JPG di Internet Explorer 11, Microsoft suggerisce agli sviluppatori di usare una modalità di sottocampionamento 4:2:2 o 4:2:0.

Ti consigliamo anche

Link copiato negli appunti