2012-01-30 26 views
9

Dự án libjpeg-turbo "sử dụng hướng dẫn SIMD (MMX, SSE2, NEON) để tăng tốc độ nén và giải nén JPEG cơ bản trên x86, x86-64 và hệ thống ARM".Chia sẻ lợi ích của thiết bị Android từ tối ưu hóa Libjpeg-turbo?

Loại chia sẻ nào của không gian thiết bị Android hỗ trợ các hướng dẫn này và do đó sẽ nhận được lợi ích từ việc sử dụng thư viện này?

(Tôi sẽ được giải nén JPEG trong mã nguồn gốc truy cập thông qua NDK.)

Trả lời

11

Phần lớn các thiết bị Android trên thị trường sử dụng một số hương vị của CPU ARM. Điện thoại cao cấp (ví dụ: HTC Sensation) có xu hướng sử dụng CPU ARM hỗ trợ NEON (Qualcomm Snapdragon, OMAP4, Samsung Exynos, Tegra3). Điện thoại cũ/ít khả năng hơn thường có một số chipset ARMv6 như dòng sản phẩm Qualcomm MSM72xx. Một số ví dụ điển hình là Google G1 và Motorola Droid gốc.

Máy tính bảng Android là một câu chuyện hơi khác. Một tỷ lệ lớn các thiết bị máy tính bảng hiện tại dựa trên chipset nVidia Tegra2 không bao gồm hỗ trợ NEON. Máy tính bảng mới hơn dựa trên Tegra3 (Asus Transformer Prime) bao gồm hỗ trợ cho NEON. Một vài máy tính bảng hiếm được dựa trên SOC của Qualcomm (ví dụ: HTC Flyer) và cũng hỗ trợ NEON. Ngoài ra còn có một vài máy tính bảng giá rẻ dựa trên MIPS và thậm chí một số với chip x86. Sau đó, có danh mục thiết bị Google-TV tương đối mới. Trong năm qua, chúng chủ yếu là x86, nhưng thế hệ mới nhất sắp ra mắt sẽ có nhiều CPU sử dụng CPU ARM.

-3

Hiện nay tất cả các thiết bị Android sử dụng tập lệnh ARM. Và hầu hết trong số họ (nhưng không phải tất cả) hỗ trợ tập lệnh NEON. Hướng dẫn NEON giống như SSE2 đến x86.

+0

Xin lỗi, điều này không đúng, Có rất nhiều thiết bị Android không dùng cánh tay sử dụng kiến ​​trúc x86 và mips –

5

cho cổng libjpeg-turbo mà tôi đã (và vẫn làm việc trên) có những điều sau đây để xem xét:

tập lệnh (ARMv6, ARMv7), SIMD (có hoặc không có NEON)

Libjpeg-turbo thực sự tỏa sáng trên armv7 với NEON. NEON là hỗ trợ SIMD của cánh tay.

Tegra, Tegra2 không có NEON nhưng nó là armv7 chẳng hạn. Vì vậy, libjpeg-turbo có thể được xây dựng ngay bây giờ chuyển NEON hỗ trợ tắt nhưng vẫn sử dụng một số tối ưu hóa armv7 ... nó sẽ không được nhanh như vậy. Nó sẽ vẫn nhanh hơn libjpeg hiện đang được tìm thấy trong Android.

Có những con chip armv6 đang được đưa vào điện thoại mới chạy Android. Đặc biệt đối với các thị trường rẻ hơn. Thay vì sau đó vào một danh sách đầy đủ, những gì cần phải xảy ra trong lib (và đây là loại WIP cho tôi hiện nay) đang nhận được tối ưu hóa armv6 khác nhau vào libjpeg-turbo để có một câu chuyện hay về libjpeg-turbo trên android. Hãy theo dõi.