2010-04-14 25 views
7

Estoy haciendo un montón de procesamiento de imágenes en C y necesito una biblioteca de manipulación de matriz buena, razonablemente ligera y, sobre todo, FAST con una licencia permisiva. Principalmente me estoy enfocando en transformaciones afines e inversiones de matrices, así que no necesito nada demasiado sofisticado o hinchado.¿Qué es una buena biblioteca de manipulación de matrices disponible para C?

Principalmente me gustaría algo que sea muy rápido (¿usando SSE quizás?), Con una API limpia y (con suerte) preempaquetada por muchos de los sistemas de administración de paquetes de Unix.

Tenga en cuenta que esto es para C no para C++.

Gracias

:)

Respuesta

8

diría BLAS o LAPACK.

Here tiene algunos ejemplos.

+0

esto se ve muy bien :) pero no puedo encontrar un binario precompilado de la biblioteca en cualquier lugar para mi sistema de ventanas (por desgracia en este momento). ¿Alguna idea de dónde podría encontrarlo? – horseyguy

+0

Comience a buscar aquí: http://blogs.msdn.com/hpctrekker/archive/2009/02/24/hpc-math-attacks-blas-lapack-linpack-atlas-dgemm-acml-mkl-cuda.aspx –

+2

BLAS y LAPACK generalmente se consideran interfaces, de la misma manera que OpenGL es una interfaz con muchas implementaciones subyacentes por parte de los proveedores de tarjetas gráficas. Dicho esto, el BLAS más rápido que hay ahora es GotoBLAS2, pero su licencia es restrictiva. Intel y AMD proporcionan sus propias bibliotecas (MKL y ACML), pero también son restrictivas. Siga las implementaciones de referencia de netlib si quiere realmente gratis. Por lo general, debe compilarlos usted mismo para que su procesador obtenga el mejor rendimiento. –

8
+0

no, quiero manipulación de matrices, no manipulación de imágenes (estoy escribiendo mi propia manipulación de imágenes lib) gracias :) – horseyguy

+1

Mira, también hay MATRIZ MATRIMONIAL buena. También simplifica el procesamiento de imágenes. –

+0

Muchas gracias :) pero realmente * solo * necesito la manipulación de la matriz, estoy buscando algo ligero que proporcione la funcionalidad que necesito ... :) – horseyguy

2

Usted podría intentar CUBLAS (biblioteca CUDA básicas de álgebra lineal subrutinas) con tarjeta gráfica CUDA permitido hacer la manipulación de matrices de nVidia GPUs Tiene un impulso de rendimiento bastante significativo que otras bibliotecas de CPU, aunque no es tan liviano para su requerimiento.

This page contiene alguna descripción y cifras al respecto.

Cuestiones relacionadas