9
votes

Quelle part des appareils Android bénéficient des optimisations de Libjpeg-Turbo?

the libjpeg-turbo projet "utilise des instructions SIMD (MMX, SSE2, NEON) pour accélérer la compression de base JPEG et la décompression de la JPEG sur X86, X86-64 et Systèmes de bras ".

Quel type de part de l'espace de périphérique Android prend en charge ces instructions et obtiendrait donc une offre de vitesse d'utiliser cette bibliothèque?

(Je vais décompresser les JPEG dans un code natif accédé via NDK.)


0 commentaires

3 Réponses :


-3
votes

Actuellement, tous les appareils Android utilisent le jeu d'instructions de bras. Et la plupart d'entre eux (mais pas tous) prend en charge le jeu d'instructions au néon. Les instructions au néon sont comme SSE2 à X86.


1 commentaires

Désolé, ce n'est tout simplement pas vrai, il y a beaucoup de dispositifs Android ARM NONY utilisant des architectures X86 et MIPS



11
votes

La grande majorité des dispositifs Android sur le marché utilisent une certaine saveur de CPU à bras. Les téléphones haut de gamme (par exemple Sensation HTC) ont tendance à utiliser les CPU de bras qui supportent le néon (Qualcomm Snapdragon, OMAP4, Samsung Exynos, Tegra3). Les téléphones plus anciens / moins capables ont généralement des chipsets d'armv6 tels que la série Qualcomm MSM72XX. Certains bons exemples sont les Google G1 et le motorola droid d'origine.

Les comprimés Android sont une histoire légèrement différente. Un pourcentage important de dispositifs de tablette existants repose sur la chipset Nvidia Tegra2 qui n'inclut pas le soutien au néon. Les tablettes plus récentes basées sur Tegra3 (ASUS Transformer Premier) incluent le support au néon. Quelques tablettes rares sont basées sur le SOC de Qualcomm (par exemple, SO.G HTC Flyer) et soutenir également le néon. Il existe également quelques comprimés à faible coût basés sur des mips et même certains avec des puces X86. Ensuite, il y a la catégorie relativement nouvelle de périphériques Google-TV. Au cours de la dernière année, il y a été principalement x86, mais la dernière génération à venir aura bientôt beaucoup, qui utilisent des processeurs de bras.


0 commentaires

5
votes

pour le port de libjpeg-turbo que j'ai fait (et je travaille toujours sur) les éléments suivants à considérer:

Ensemble d'instructions (armv6, armv7), SIMD (avec ou sans néon)

libjpeg-turbo brille vraiment sur armv7 avec le néon. Neon est le soutien de la SIMD du bras.

Tegra, Tegra2 n'a pas de néon mais il est ARMV7 par exemple. Donc, Libjpeg-Turbo peut être construit à l'heure actuelle, tournez-vous en tant que support néon, mais utilisez toujours certaines des optimisations de l'AMVV7 ... Ce n'est tout simplement pas aussi rapide. Il sera toujours plus rapide que le libjpeg qui se trouve actuellement dans Android.

Il y a des chips armv6 qui sont placés dans de nouveaux téléphones fonctionnant Android. Surtout pour les marchés moins chers. Plutôt dans une liste exhaustive, ce qui doit se produire dans la libère (et c'est des trucs de type WIP pour moi actuellement) obtient diverses optimisations d'armv6 à Libjpeg-Turbo, donc il y a une bonne histoire de Libjpeg-Turbo sur Android. Restez à l'écoute.


0 commentaires