UPV



Resumen

Título: Aplicaciones de la aritmética en coma fija a la representación de primitivas gráficas de bajo nivel

La aritmética en coma fija tiene la propiedad de realizar operaciones con números decimales con un coste computacional entero. A pesar de no estar soportada de forma nativa por los lenguajes de programación y por las CPUs generalistas, es la aritmética ideal para aplicaciones de control industrial, simulación, informática gráfica, multimedia y señal digital, etc. Su falta de normalización y soporte impide su uso extendido en muchos campos de la informática.
Esta tesis justifica la utilización de esta aritmética en informática y en concreto en el campo de los gráficos por computador. En primer lugar realiza un estudio de implementación y normalización de la aritmética presentando incrementos de potencia relativos y precisiones obtenidas tanto en operaciones aritméticas como en funciones senoidales, exponenciales o logarítmicas. Seguidamente se aplica en algunos ejemplos de simulación discreta y de vuelo.
Dentro del campo de los gráficos por computador se analizan los algoritmos de dibujo de primitivas básicas como las líneas, con y sin aliasing, así como su recortado y el dibujo de circunferencias y elipses. Se realiza un estudio del estado del arte en estos cuatro campos. A continuación se presentan algunas implementaciones de algoritmos basados en la coma fija y se analiza la mejora del coste computacional y de la precisión obtenida respecto de los algoritmos de fuerza bruta y de los tradicionales.
Mientras los algoritmos tradicionales suelen entregar un error comprendido entre los 0.32 y 0.45 píxeles, dependiendo de la primitiva analizada, los algoritmos basados en la coma fija no superan lo 0.25 de media, igualando el mínimo error teórico generado por los algoritmos de fuerza bruta.
Por otro lado, los algoritmos basados en la aritmética en coma fija suelen mejorar la velocidad media de los algoritmos tradicionales, pudiéndose a veces conseguir aceleraciones elevadas si se utilizan técnicas de paralelización. Éste sería el caso de la versión paralela del algoritmo DDA con y sin antialiasing que podría dibujar una recta con coste temporal logarítmico respecto de su longitud en píxeles.
Los algoritmos obtenidos son tan sencillos que pueden ser implementados algunos de ellos en hardware dentro de un procesador gráfico de forma muy eficiente y con un consumo bajo de recursos o implementarse en forma de rutinas en ensamblador muy rápidas dentro de los paquetes gráficos tipo OpenGL o como controladores de impresoras. Así mismo, las técnicas de paralelización permiten utilizar esquemas SIMD fácilmente implementables en arquitecturas SWAR comerciales tipo MMX o superior, pudiendo incrementar la velocidad de cálculo del orden de un 30% más en las implementaciones prácticas realizadas.

Más información

También puede encontrar una referencia completa a este trabajo en Aplicaciones de la aritmética en coma fija a la representación de primitivas gráficas de bajo nivel, ProQuest Information & Learning, ISBN: 0-493-43368-6    (Citation+Abstract)    (24 pages preview) y en el repositorio Riunet de la UPV.

Universidad Politécnica de Valencia