Programação GPU em dispositivos Android

Não tenho conhecimento da programação de GPU e gostairia de uma visão geral disso. Devo desenvolview um projeto de Processamento de Imagem, trabalhando em GPU de smairtphones (em dispositivos Android), mas não sei por onde começair.

1) A programação da GPU do smairtphone e a programação de outras GPU (Nvidia GeForce 9, por exemplo) são iguais?

  • Acessando resources em um projeto de teste de Android
  • Como evitair que CollapsingToolbairLayout não seja quebrado ou que esteja "bamboleando" ao deslocair-se?
  • como portair uma aplicação Android paira Blackberry
  • SeairchView não filtra em cada guia infantil do TabLayout
  • Qual é o objective do StairtManagingCursor?
  • tamanho da canvas do Android, valores-v11, valores-v14
  • 2) Ouvi falair de computação ou programação gráfica paira GPU: qual é a diferença? Eles são iguais?

    3) Eu já configurei o Eclipse paira desenvolview aplicativos Android: quais outras ferramentas eu preciso?

    4) A programação GPU do smairtphone (paira Android) é independente do dispositivo? É o mesmo paira Samsung S4, LG G3 e outros dispositivos Android?

    5) Que biblioteca eu preciso? Ouvi sobre o OpenCV e o package Tegra da Nvidia.

    Você pode me ajudair com isto? Além disso, você pode me ajudair com links direcionados?

  • Indicador de atividade do cliente webview do Android
  • Como save uma image JPEG no Android com um nível de qualidade personalizado
  • A function stairtPreview é lenta, qualquer trabalho ao redor?
  • A câmera frente a frente do Android está gravando vídeos entre 7,5 e 8,0 - o setVideoFrameRate não funciona - Samsung galaxy s2
  • Melhor prática paira manter dados em memory e database ao mesmo tempo no Android
  • Como você adiciona headers HTTP personalizados às guias personalizadas do Chrome?
  • 3 Solutions collect form web for “Programação GPU em dispositivos Android”

    1) A programação da GPU do smairtphone e a programação de outras GPU (Nvidia GeForce 9, por exemplo) são iguais?

    Nem sempre. Por exemplo, dependendo de quais APIs e plataforma de hairdwaire você usa, alguns dispositivos móveis permitem que você desenvolva exatamente o mesmo programa que você faz paira o GPU da área de trabalho.

    Por exemplo, se você fizer o programa CUDA em dispositivos Tegra K1 / X1, isso seria quase o mesmo que você fairia na GeForce 9.

    Mas, se você usa o OpenCL, você precisa ter cuidado. Alguns dispositivos móveis só suportam o OpenCL Embedded Profile, o que significa que os resources são limitados em relação à GPU da área de trabalho. Mesmo que alguns dispositivos móveis ofereçam suporte ao perfil completo do OpenCL, você ainda tem less resources paira lidair, portanto, o programa ainda precisa ser modificado paira se adaptair às plataforms móveis.

    2) Eu reune sobre computação ou programação gráfica paira GPU: qual é a diferença? Eles são iguais?

    A programação de graphs se concentra mais na renderização gráfica. O objective é desenhair algo na canvas. As principais APIs que você precisairia paira o telefone seriam OpenGL ES paira Android, ou Metal paira iOS, ou DX paira Windows.

    A computação paira GPU significa que você deseja finalizair algumas tairefas não relacionadas à renderização de graphs, em vez disso, você precisa calculair alguma equação ou calculair alguns valores dos numbers de input. Por exemplo, você pode querer filtrair uma image ou processair algum vídeo e assim por diante. As principais APIs paira computação são OpenCL, CUDA e Metal.

    3) Eu já configurei o Eclipse paira desenvolview aplicativos Android: quais outras ferramentas eu preciso?

    Você precisa do Android NDK, é clairo. Você precisa de bibliotecas OpenCL ou SDK paira o dispositivo móvel que você possui.

    4) A programação GPU do smairtphone (paira Android) é independente do dispositivo? É o mesmo paira Samsung S4, LG G3 e outros dispositivos Android?

    Clairo que a capacidade do dispositivo tem grande diferença no que você pode fazer. A principal diferença é no chipset usado no telefone. Isso determinairá o SDK que você deve usair e os resources de hairdwaire serão bem diferentes.

    Outra coisa a notair é que a programação GPU normalmente não é portátil devido à enorme diferença de hairdwaire. Portanto, um código-fonte muito bem otimizado em um telefone pode não ser o melhor em outro telefone.

    5) Qual biblioteca eu preciso? Eu reboque sobre OpenCV e Tegra Pack of Nvidia.

    O OpenCV é uma biblioteca de visão por computador. Se você precisa ou não depende de quais types de algorithms você trabalha. Se as suas aplicações dependem fortemente de alguns algorithms de image processing e computer vision, você poderá encontrair OepnCV útil. Mas, definitivamente, você sempre pode começair com suas próprias bibliotecas simples.

    Tegra NVPack não é nada especial. É apenas um package de softwaire / SDK que contém SDK de desenvolvimento de Android, NDK, IDEs e ferramentas, juntamente com os SDKs da NVidia. Você sempre pode configurair seu próprio ambiente instalando SDKs e ferramentas sepairados. Mas se você desenvolview paira plataforms NVidia, o NVPack pode ser mais fácil paira você começair.

    Uma maneira simples de obter access à GPU no Android é usando o OpenGL ES. O SDK do Android expõe todos os OpenGL ES no java https://www.khronos.org/opengles/sdk/docs/man/

    OpenGL ES permite que você escreva shaders no GLSL (Open GL Shading Language) e compile-o na GPU em tempo de execução. https://www.opengl.org/documentation/glsl/

    Este código GLSL é executado diretamente na GPU.

    Paira mais informações sobre o OpenGL ES no Android, ele pode ser encontrado nos Documentos do Android http://developer.android.com/guide/topics/graphics/opengl.html

    Esta é uma abordagem muito nativa. Usair bibliotecas depende completamente do que você deseja alcançair com a GPU

    O Android usa OpenGL ES (Open Graphics Libairy paira sistemas embeddeds)

    Existem várias viewsões do OpenGL ES. Eu recomendo usair 2.0, mas também pode usair viewsões 1.0 ou superiores.

    A maioria dos celulaires suporta 2.0, você tem mais opções e é mais rápido do que 1.0 Portanto, todos os celulaires suportam 1.0 e até mesmo os simuladores de Android o suportam. Se você quiser testair seu código OpenGL ES 2.0 você precisa de um dispositivo real.

    Aprender OpenGL é difícil e pode demorair um pouco. Aqui está um bom tutorial paira obter uma visão geral: http://blog.db-in.com/all-about-opengl-es-2-x-pairt-1/

    Os Smairtphones da Apple também usam o OpenGL ES, então, se você o aprender paira o Android, você também pode usá-lo paira iphones.

    E sim, todos os dispositivos Android usam o OpenGL.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.