Libjpeg-turbo优化有哪些Android设备受益?

occ*_*lus 9 java-native-interface android jpeg android-ndk libjpeg-turbo

libjpeg的涡轮增压项目"使用SIMD指令(MMX,SSE2,NEON)加快基线JPEG压缩和解压在x86,x86-64的,而ARM系统".

Android设备空间的哪些部分支持这些说明,因此使用此库可以获得速度优势?

(我将解压缩通过NDK访问的本机代码中的jpegs.)

Bit*_*ank 11

市场上绝大多数Android设备都使用了一些ARM CPU.高端手机(例如HTC Sensation)倾向于使用支持NEON的ARM CPU(Qualcomm Snapdragon,OMAP4,Samsung Exynos,Tegra3).较旧/功能较差的手机通常具有一些ARMv6芯片组,如Qualcomm MSM72xx系列.一些很好的例子是谷歌G1和最初的摩托罗拉Droid.

Android平板电脑的故事略有不同.大部分现有平板电脑设备均基于nVidia Tegra2芯片组,不包括NEON支持.基于Tegra3(华硕Transformer Prime)的较新平板电脑确实包含对NEON的支持.一些罕见的平板电脑基于高通的SOC(例如HTC Flyer),也支持NEON.还有一些基于MIPS的低成本平板电脑甚至一些带有x86芯片的平板电脑.然后是相对较新的Google-TV设备类别.在过去的一年中,这些主要是x86,但即将推出的最新一代将有许多使用ARM CPU.


小智 5

对于我所做的libjpeg-turbo端口(并且还在继续工作),需要考虑以下事项:

指令集(armv6,armv7),SIMD(带或不带NEON)

Libjpeg-turbo真的与NEON一起闪耀在armv7上.NEON是arm的SIMD支持.

Tegra,Tegra2没有NEON,但它是armv7.所以libjpeg-turbo现在可以建立,现在关闭NEON支持,但仍然使用一些armv7优化...它不会那么快.它仍然比目前在android中找到的libjpeg更快.

有一些armv6芯片被放入运行Android的新手机中.特别是对于更便宜的市场.而不是进入一个详尽的列表,在lib中需要发生什么(这对我来说这是WIP类型的东西)正在对libjpeg-turbo进行各种armv6优化,所以在android上有一个关于libjpeg-turbo的好故事.敬请关注.