2012-01-30 12 views
9

Projekt "używa instrukcji SIMD (MMX, SSE2, NEON) do przyspieszenia podstawowej kompresji JPEG i dekompresji w systemach x86, x86-64 i ARM".Jaka część urządzeń z Androidem korzysta z optymalizacji Libjpeg-turbo?

Jaki udział w przestrzeni urządzenia z systemem Android obsługuje te instrukcje, a tym samym uzyskałby dużą szybkość korzystania z tej biblioteki?

(będę dekompresji plików JPEG w natywnym kodzie dostępna przez NDK.)

Odpowiedz

11

Zdecydowana większość urządzeń z systemem Android na rynku wykorzystuje trochę smaku procesora ARM. Telefony z wyższej półki (np. HTC Sensation) mają tendencję do używania procesorów ARM, które obsługują NEON (Qualcomm Snapdragon, OMAP4, Samsung Exynos, Tegra3). Starsze/mniej sprawne telefony mają zwykle trochę chipsetu ARMv6, takiego jak seria Qualcomm MSM72xx. Dobrym przykładem są Google G1 i oryginalny Motorola Droid.

Tablety z Androidem to nieco inna historia. Duży odsetek istniejących tabletów oparty jest na chipsecie nVidia Tegra2, który nie zawiera obsługi NEON. Nowsze tablety oparte na Tegra3 (Asus Transformer Prime) obejmują obsługę NEON. Kilka rzadkich tabletów bazuje na SOC Qualcomm (np. HTC Flyer), a także obsługuje NEON. Istnieje również kilka tanich tabletów opartych na MIPS, a nawet niektórych z chipami x86. Następnie pojawia się stosunkowo nowa kategoria urządzeń Google TV. W ubiegłym roku były to głównie wersje x86, ale najnowsza generacja wkrótce będzie posiadała wiele procesorów wykorzystujących procesory ARM.

-3

Obecnie wszystkie urządzenia Android wykorzystuje zestaw instrukcji ARM. I większość z nich (ale nie wszystkie) obsługuje zestaw instrukcji NEON. Instrukcje NEON przypominają SSE2 do x86.

+0

Przepraszam, że to nieprawda. Istnieje mnóstwo urządzeń z Androidem X86 i mips –

5

dla portu libjpeg-turbo, które zrobiłem (i wciąż pracuje nad) istnieją następujące rzeczy do rozważenia:

zestaw instrukcji (armv6, ARMv7), SIMD (z lub bez NEON)

Libjpeg-turbo naprawdę błyszczy na armv7 z NEON. NEON jest wsparciem dla SIMD ręki.

Tegra, Tegra2 nie ma NEON, ale na przykład jest armv7. Tak więc libjpeg-turbo można teraz zbudować, wyłączając obsługę NEON, ale nadal korzystamy z niektórych optymalizacji armv7 ... to nie będzie tak szybkie. Nadal będzie szybszy niż libjpeg, który obecnie znajduje się w Androidzie.

Istnieją układy armv6 na nowe telefony z systemem Android. Zwłaszcza na tańsze rynki. Zamiast wchodzenia na wyczerpującą listę, to, co musi się wydarzyć w lib (i jest to obecnie dla mnie typem WIP), dostaje różne optymalizacje armv6 do libjpeg-turbo, więc istnieje dobra historia dla libjpeg-turbo na Androida. Bądźcie czujni.

Powiązane problemy