ES2331327T3 - Metodo y aparato para texturizar un pixel. - Google Patents

Metodo y aparato para texturizar un pixel. Download PDF

Info

Publication number
ES2331327T3
ES2331327T3 ES06126695T ES06126695T ES2331327T3 ES 2331327 T3 ES2331327 T3 ES 2331327T3 ES 06126695 T ES06126695 T ES 06126695T ES 06126695 T ES06126695 T ES 06126695T ES 2331327 T3 ES2331327 T3 ES 2331327T3
Authority
ES
Spain
Prior art keywords
pixel
pixels
values
mapping
map
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES06126695T
Other languages
English (en)
Inventor
Tomas Akenine-Moller
Jacob Strom
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2331327T3 publication Critical patent/ES2331327T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Color Image Communication Systems (AREA)

Abstract

Un método de texturización de un píxel, que comprende: almacenar (910) las pluralidades respectivas de valores de referencia de téxeles y los valores de mapeo o correlación de téxeles que mapean o correlacionan los mismos con los respectivos de una pluralidad de bloques de solapamiento de téxeles; generar un valor de píxel para el píxel desde la referencia de téxel almacenada y los valores de mapeo o correlación; y visualizar o presentar (970) el píxel sensible al valor de píxel generado.

Description

Método y aparato para texturizar un píxel.
Antecedentes de la invención Campo técnico de la invención
La presente invención se refiere a gráficos por ordenador, y más particularmente, a métodos de tratamiento de texturas de gráficos, aparatos y productos de programación por ordenador.
Descripción de la técnica relacionada
La composición en tiempo real de gráficos tridimensionales tiene un número de aplicaciones atractivas en terminales móviles, que incluyen juegos, interfaces hombre-máquina, mensajería y comercio por internet. Puesto que la composición tridimensional es una tarea computacionalmente cara, debe construirse demasiado a menudo equipo físico (hardware) dedicado para alcanzar suficiente rendimiento. Son, por consiguiente, de gran importancia modos innovadores para disminuir la complejidad y el uso de ancho de banda de esta arquitectura de hardware.
Un modo estándar de aumentar el nivel de realismo en composición en tiempo real es aplicar texturas a las superficies. Esto puede hacerse de una variedad de maneras, que incluyen mapeo de ambiente, mapeo de relieve, aplicación de texturas por medio de generación coordinada de texturas automática, texturización basada en proyección, y más. Común a todas las diferentes maneras de usar texturas es que puede necesitarse un filtrado de textura de alta calidad para reducir problemas de efecto dentado. El efecto dentado puede ser extremadamente perturbador para el expectador humano, sobre todo para escenas dinámicas.
Un esquema comúnmente usado para el filtrado de texturas que se implementa en equipo físico es el mip-mapeo y, en forma de mip-mapeo trilineal, esto proporciona un filtrado de calidad relativamente alta. Una desventaja es que puede aparecer desenfoque excesivo. Sin embargo, debe tenerse en cuenta que esto puede ser preferible al efecto dentado. El mip-mapeo es explicado, por ejemplo, por Lance Williams en "Pyramidal Parametrics", (Computer Graphic, SIGGRAPH '83 Proceedings, pp. 1-11, Julio 1983).
El mip-mapeo trilineal requiere ocho téxeles que son filtrados en un color que se usa, y por consiguiente, en el peor caso, pueden necesitarse ocho lecturas de memoria antes de que se obtenga el color filtrado. Memorias rápidas (caches)
de texturas con extracción previa pueden ocultar este problema, pero tales técnicas pueden ser caras en equipo físico.
Esquemas de filtrado anisotrópico pueden reducir o eliminar el desenfoque excesivo mediante, por ejemplo, filtrado de varias muestras de mip-mapa trilineal. El objetivo último es que ambos, juntos, pueden cubrir perfectamente el cuadrilátero que se obtiene de proyectar un píxel para aplicar una textura al espacio. Aunque se aumenta la calidad, varias lecturas de memoria pueden aumentar de manera importante. Números comunes varían desde 16 a 128 lecturas de téxeles.
Aspectos de composición, filtrado de texturas, mapeo de texturas, y/o paramétricos se explican en las siguientes referencias: Akenine-Möller, Tomas, y Eric Haines, Real-Time Rendering, 2ª edición, Junio 2002; Beers, Andrew C., Maneesh Agrawala, y Navin Chaddha, "Rendering from compressed Textures", Computer Graphics (SIGGRAPH 96 Proceedings), pp. 373-378, Agosto 1996; Behrens, Uwe, "Averaged Area Tables por Texture Filtering", SIGGRAPH 2001 Conference Abstracts and Applications, p. 150, 2001; Crow, Franklin C., "Summed-Area Tables por Texture Mapping", Computer Graphics (SIGGRAPH'84 Proceedings), pp. 207-212, Julio 1984; McCabe, Dan, y John Brothers, "DirectX 6 Texture Map Compression", Game Developer Magazine, vol. 5, no. 8, pp. 42-46, Agosto 1998; y Williams, Lance, "Pyramidal Parametrics", Computer Graphics (SIGGRAPH'83 Proceedings), pp. 1-11, Julio 1983.
Para plataformas móviles, los accesos a memoria pueden ser extremadamente caros. En una arquitectura de gráficos por ordenador estándar, más de dos tercios de los accesos a la memoria pueden ser debidos a texturización. En el ejemplo de mip-mapeo trilineal por ejemplo, la texturización puede requerir ocho accesos a memoria, mientras que el resto del explorador de imagen puede requerir otros tres (lectura-z, escritura-z y escritura de memoria temporal de color). Con once accesos a memoria por píxel, la frecuencia de reloj puede necesitar ser muy alta para obtener un rendimiento razonable. Una elevada velocidad de reloj puede costar mucha energía y puede no ser adecuada para plataformas móviles. Puede, así, ser deseable reducir un número de accesos a memoria que se necesitan para texturizar, aun manteniendo una calidad de textura que sea similar al mip-mapeo.
La compresión de texturas es un medio usado a menudo para ahorrar ancho de banda en equipo físico de gráficos. La idea es que los valores de téxel (que pueden comprender textura) sean almacenados en un formato comprimido en la memoria, y esto puede reducir el ancho de banda necesitado cuando la textura es enviada a través del bus. Cuando los datos alcanzan su destino, un mecanismo de equipo físico puede descomprimir los datos de téxel.
Un trabajo pionero es explicado por Andrew C. Beers et al. en "Rendering from Compressed Textures", (Computer Graphics, SIGGRAPH 96 Proceedings, pp. 373-378, Agosto 1996). Beers et al. explica el uso de cuantificación de vectores, y orientación del conjunto de vectores usando un número de imágenes. Un esquema popular se llama S3TC.
El documento US 5.956.431 A describe un sistema de tratamiento de imagen, que incluye un sistema codificador de imagen y un sistema descodificador de imagen que se acoplan juntos. El sistema codificador de imagen incluye un descomponedor de bloques y un codificador de bloques que se acoplan juntos. El codificador de bloques incluye un cuantificador de color y un módulo de construcción de mapas de bit. El descomponedor de bloques rompe o descompone una imagen original en bloques. Luego cada bloque es procesado o tratado por el codificador de bloques. Expresamente, el cuantificador de color selecciona algún número de puntos base, o palabras código, que sirven como valores de píxel de referencia, tal como los colores de los que se derivan los valores de píxel cuantificados. Luego el módulo de construcción de mapas de bit traza, mapea o correlaciona cada píxel de color con uno de los colores cuantificados derivados. Las palabras código y los mapas de bit son entregadas como bloques de imágenes codificadas. El sistema descodificador incluye un descodificador de bloques. El descodificador de bloques incluye un detector de tipos de bloque, uno o más unidades descodificadoras, y un selector de entrega o salida. Utilizando las palabras código de los bloques de datos codificados, las unidades del comparador y del descodificador determinan los colores cuantificados para el bloque de imágenes codificadas y traza, mapea o correlaciona cada píxel con uno de los colores cuantificados. El selector de entrega o salida entrega el color apropiado, que se pide en un compositor de imagen con los otros bloques descodificados para entregar una imagen representativa de la imagen original.
Sumario
De acuerdo con los aspectos de la presente invención, se proporciona un método, un aparato y programa de ordenador de acuerdo con las reivindicaciones independientes. Las realizaciones están definidas por las reivindicaciones dependientes, respectivamente.
Por ejemplo, la presente invención puede usarse de manera ventajosa en un dispositivo portátil, como un terminal inalámbrico, un Asistente Personal Digital (PDA), o similar.
Breve descripción de los dibujos
La Fig. 1 ilustra una representación de almacenamiento para un bloque de téxeles de acuerdo con algunas realizaciones de la presente invención.
La Fig. 2 ilustra un mapeo de valor de téxel ternario a modo de ejemplo de acuerdo con otras realizaciones de la presente invención.
La Fig. 3 ilustra una relación de píxel/téxel a modo de ejemplo.
La Fig. 4 ilustra una disposición de bloques de téxeles que se solapan de acuerdo con algunas realizaciones de la presente invención.
La Fig. 5 ilustra un conjunto de téxeles vecinos más próximos a modo de ejemplo de acuerdo con algunas realizaciones de la presente invención.
La Fig. 6 ilustra un terminal inalámbrico configurado para proporcionar tratamiento de texturas de acuerdo con algunas realizaciones de la presente invención.
La Fig. 7 es un diagrama de flujo que ilustra operaciones de tratamiento de texturas a modo de ejemplo de acuerdo con otras realizaciones de la presente invención.
Descripción detallada
La presente invención se describirá ahora más completamente con referencia a los dibujos que se acompañan, en los cuales se muestran realizaciones a modo de ejemplo de la presente invención. Estas realizaciones se disponen de manera que esta aplicación sea detallada y completa. Números iguales hacen referencia a elementos similares en todos los dibujos.
De acuerdo con varias realizaciones de la presente invención descritas aquí, se presentan nuevos planteamientos de filtrado de texturas que pueden reducir significativamente el uso de ancho de banda. Aspectos de la invención pueden incluir:
Compresión de Textura; y/o
Solapamiento de Bloques de Texturas; y/o
Filtrado de Texturas.
Estos tres aspectos pueden ser combinados de acuerdo con las realizaciones de la presente invención para proporcionar un Sistema de Filtrado de Textura de Hombre Pobre (POOMA). Primeramente se dará un breve sumario de realizaciones a modo de ejemplo de tal sistema, y a continuación se dará un mayor detalle de cómo pueden construirse aspectos de la presente invención.
En algunas realizaciones de la presente invención, una imagen de textura puede dividirse en pequeños bloques (por ejemplo 3x2 téxeles), y puede usarse compresión de textura para reducir el ancho de banda de memoria que se necesita para extraer tal bloque, típicamente por debajo de una lectura de memoria de 32 bits. El siguiente paso, solapamiento de texturas, puede ser tanto como hacer el solapamiento de bloques, de manera que cada grupo de téxeles de 4-vecinos esté siempre contenido completamente en uno de los bloques. Esto hace posible hacer filtrado bilineal con un acceso a memoria. El filtrado de textura tal como se describe aquí proporciona un modo de filtrar cuatro téxeles con el fin de obtener el color del píxel. Tal como en el caso de mip-mapeo, el filtrado bilineal de los cuatro píxeles puede usarse en el nivel de mip-mapa inferior. Sin embargo, en lugar de extraer téxeles de un nivel de mip-mapa superior, se computa la media de los cuatro téxeles leídos recientemente y se usa en su lugar ese valor. El resultado puede proporcionar una texturización significativamente mejor que usando el mip-mapeo del vecino más cercano, y puede producir casi tan buenos resultados como el mip-mapeo trilineal. El coste puede ser sólo de una lectura de memoria de 32 bits por color filtrado, comparado con dos para el mip-mapeo de vecino más cercano (mala calidad) y ocho para mip-mapeo trilineal (alta calidad).
\vskip1.000000\baselineskip
A Compresión de Texturas
Aspectos de descodificadores de compresión de texturas de acuerdo con las realizaciones de la presente invención descritas aquí, pueden ser similares al popular esquema S3TC, con modificación de manera que sea posible leer el bloque completo sólo en una transferencia de memoria de 32 bits. En el ejemplo de una arquitectura de 32 bits, las siguientes modificaciones, tomadas solas o en combinación, permiten la relación 1 bloque/transferencia de
memoria:
El tamaño del bloque es significativamente menor, por ejemplo 2x3 píxeles;
Se usan tres colores (dos colores de referencia más uno intermedio) en lugar de cuatro;
Los colores de referencia son codificados con 11 bits por color en lugar de 16; y/o
Los tres colores son codificados con una representación ternaria (en contraposición a una representación binaria).
Estas modificaciones hacen posible leer el bloque completo en una transferencia de memoria de 32 bits (cuatro bytes).
Un bloque de 2x3 téxeles puede representarse usando un elemento de dato 100 como se muestra en la Fig. 1. En la Fig. 1, rL, gL y bL representan los componentes rojo, verde y azul de un primer color de referencia, marcado aquí con "L" como en "left" (izquierda). Del mismo modo, rR, gR y bR representan un segundo color de referencia, marcado con "R" como en "right" (derecha). A partir de estos dos colores, se crea un color de referencia "middle" (medio), tomando la media aritmética de R y L. Este nuevo color de referencia se denota "M" como en "middle". Obsérvese que mientras R y L pueden ser almacenados con 4+4+3 bits, pueden usarse 5+5+4 bits para representar M.
Además, los bits marcados con x en la Fig. 1 representan el color de tres de los téxeles del bloque. Por ejemplo, se puede elegir que los tres téxeles más superiores tomen su color de x, y que los téxeles más inferiores sean controlados por y. Tanto x como y están mapeados en triplos de L, M y R usando la Tabla 1:
\vskip1.000000\baselineskip
TABLA 1
1
\vskip1.000000\baselineskip
Por ejemplo, si x=23 (10111) e y=0 (00000), el bloque 200 será descodificado como se muestra en la Fig. 2, donde el píxel superior izquierdo tomará el valor de referencia "right", el siguiente píxel el valor "middle" etc. El intervalo desde 27 hasta 31 no se usa. En general, es posible codificar k 3-tuplos usando bits (log(3^k)/log(2)) de techo. Esto puede permitir que se lean 2x3=6 valores de téxel en una sola transferencia de memoria de 32 bits. Comparado con dos bytes por píxel, la relación de compresión es 2x4:6x4, es decir, 1:3. Obsérvese que, si la lectura es ampliada, hay una mayor posibilidad de que el siguiente píxel se dirija al mismo bloque. Así, pueden necesitarse transferencias de memoria cero para la texturización de ese píxel.
B. Solapamiento de Bloques de Texturas
Cuando se hace una interpolación bilineal convencional, pueden necesitarse los cuatro téxeles más próximos al punto de muestra en el mapa de texturas. Por ejemplo, como se muestra en la Fig. 3, si un píxel está dentro del área gris 310, los cuatro de los valores de color de téxel vecinos más próximos se encuentran en el mismo bloque, y sólo se necesita una transferencia de memoria. Con mucha frecuencia, sin embargo, puede ser necesario extraer hasta cuatro bloques con el fin de obtener todos los vecinos más próximos.
En la Fig. 4, se muestra cómo pueden disponerse los bloques en modo de solapamiento de acuerdo con las realizaciones de la invención para evitar lecturas adicionales para interpolación bilineal. El bloque 400a marcado con una línea llena solapa así tanto el bloque 400b marcado con trazos cuadrados (a la derecha), como el bloque 400c marcado con trazos redondos (abajo). De esta manera, es siempre posible encontrar un bloque que contenga a los cuatro vecinos de un cierto píxel. Los cuatro vecinos pueden, por consiguiente, disponerse sólo en una extracción de
memoria.
Esto puede suceder al coste de expansión de los datos 1,5 veces en la dirección x y 2 veces en la dirección y. Sin embargo, puesto que la relación de compresión de la compresión de textura es 3:1, se terminará con los mismos requisitos de memoria, como si ni la compresión de textura ni el solapamiento de textura se usasen.
El solapamiento puede estar limitado a una dirección. Por ejemplo, mediante solapamiento sólo en la dirección x, los datos se expanden solamente en un factor de 1,5. (Incluyendo la compresión, el almacenamiento total es sólo 0,5 del original.) Entonces, en el 50% de los casos, los cuatro píxeles están dentro del bloque. En los casos restantes, debe leerse otro bloque. La Tabla 2 muestra qué requisitos de memoria y qué ancho de banda medio pueden necesitarse.
\vskip1.000000\baselineskip
TABLA 2
2
\vskip1.000000\baselineskip
C. Filtrado de Texturas
Una vez que los cuatro téxeles vecinos del píxel han sido extraídos, la texturización puede comenzar. Designando los cuatro téxeles vecinos más próximos con A, B, C y D como se muestra en la Fig. 6, usando una interpolación bilineal sobre A, B, C y D, puede obtenerse un primer valor Q de mip-mapa de nivel inferior. Haciendo la media entre A, B, C y D, puede obtenerse un segundo valor P de mip-mapa de nivel superior. Una interpolación lineal puede llevarse a cabo entre los valores de mip-mapa primero y segundo Q y P, con el fin de determinar un valor para el píxel, dependiendo en cómo estén de próximos el píxel y los niveles de mip-mapa inferior y superior.
Obsérvese que, si A, B, C y D están en posiciones pares del mapa de téxeles, P será el téxel correspondiente en la jerarquía de mip-mapa. En este caso, el resultado será igual al de usar interpolación bilineal en el nivel de mip-mapa inferior e interpolación de vecino más cercano en el nivel de mip-mapa superior. Sin embargo, si A, B, C y D no están en posiciones pares, puede obtenerse un valor que sea más correcto que usar sólo el vecino más cercano en el nivel de mip-mapa superior. Así, el rendimiento puede aumentar con respecto a usar interpolación bilineal en el nivel inferior y de vecino más cercano en el nivel superior.
A veces, el resultado del anteriormente descrito filtrado de texturas POOMA parece incluso mejor que el filtrado trilineal, puesto que la pérdida de enfoque puede no ser tan severa. Obsérvese que este filtrado de texturas puede reducir a la mitad el número de transferencias de memoria independientemente de la compresión de texturas y del solapamiento de bloques de texturas.
De acuerdo con aspectos de la presente invención, puede proporcionarse una capacidad para ganar bits en la representación de los téxeles usando 3 niveles (L, M y R) en lugar de cuatro niveles. La representación ternaria puede usar sólo bits (log(3^k)/log(2)) de techo para k téxeles, en lugar de 2*k bits que pueden requerirse cuando se usan cuatro niveles. Esto puede aumentar la eficiencia de compresión por bloque. De acuerdo con otros aspectos, el uso de bloques de solapamiento puede hacer posible reducir el número medio de bloques a los que se necesita acceder con el fin de reducir un píxel a un acceso a memoria de 32 bits por píxel. De acuerdo con otros aspectos adicionales, el filtrado de los cuatro píxeles vecinos puede usarse para producir el color del píxel. Esto significa que sólo se necesita acceder a un nivel de mip-mapa por píxel, en lugar de dos como en el caso de mip-mapeo trilineal, por lo que se reduce a la mitad el número de accesos a memoria requeridos. Se apreciará que estas características pueden usarse en varias combinaciones y/o separadamente.
La Fig. 7 ilustra distancias desde el centro de los téxeles a un píxel.
\vskip1.000000\baselineskip
D. Implementaciones a Modo de Ejemplo
En la presente aplicación, las Figs. 6 y 7 son diagramas que ilustran a modo de ejemplo aparatos y operaciones de acuerdo con realizaciones de la presente invención. Se ha de entender que las operaciones representadas en los diagramas, y combinaciones de las mismas, pueden ser implementadas usando uno o más circuitos electrónicos, como circuitos incluidos en un componente de un sistema de comunicaciones inalámbrico o en un terminal inalámbrico. Se apreciará también que, en general, las operaciones representadas en los diagramas, y combinaciones de las mismas, pueden ser implementadas en uno o más circuitos electrónicos, tales como en uno o más componentes electrónicos discretos, uno o más circuitos integrados (ICs), uno o más circuitos integrados específicos de aplicación (ASICs), y módulos de circuito específicos de aplicación, así como por instrucciones de programa de ordenador que pueden ser ejecutadas por un ordenador u otros aparatos de procesamiento de datos, tales como un microprocesador o procesador de señal digital (DSP), para producir una máquina de manera que las instrucciones que se ejecutan en el ordenador o en otro aparato de tratamiento de datos programable crean circuitos electrónicos u otros medios que implementan las operaciones especificadas. Las instrucciones de programa de ordenador pueden ser también ejecutadas en uno o más ordenadores o en otros aparatos de tratamiento de datos para hacer que se realicen una serie de acciones por el ordenador u ordenadores u otros aparatos programables con el fin de producir un proceso implementado por ordenador que incluye las operaciones especificadas.
Las instrucciones de programa de ordenador pueden ser también incorporadas en forma de un producto de programa de ordenador en un medio de almacenamiento legible por un ordenador, es decir, como un código de programa legible por ordenador incorporado en el medio para su uso por o en relación con un sistema de ejecución de instrucciones. El medio de almacenamiento legible por ordenador puede incluir, pero no está limitado a, medios de almacenamiento electrónicos, magnéticos, ópticos u otros, tales como un disco magnético u óptico o un dispositivo de memoria de circuito integrado. Por ejemplo, las instrucciones de programa de ordenador pueden ser incorporadas en la memoria incluida en un componente de un aparato de comunicaciones inalámbrico y/o medio de almacenamiento operable para programar tal memoria. De acuerdo con esto, los bloques de los diagramas esquemáticos de las Figs. 6 y 7 soportan circuitos electrónicos y otros aparatos que realizan las operaciones especificadas, actúan para llevar a cabo las operaciones especificadas, y los productos de programa de ordenador configurados para llevar a cabo las operaciones especificadas.
La Fig. 6 ilustra un terminal inalámbrico 600 en el cual puede ser incorporada la presente invención. El terminal 600 incluye una pantalla 610 que está controlada por un procesador 620 de datos, tal como un microprocesador, microcontrolador, procesador de señal digital (DSP), o procesador de gráficos, y la memoria 630 asociada. Un circuito 622 de tratamiento de texturas, mostrado aquí como implementado en el procesador 620, almacena y extrae información de bloques de téxel en y desde la memoria 630. Un circuito generador de pantalla 624, mostrado también aquí como implementado en el procesador 620, controla la pantalla 610 responsable del circuito de tratamiento de texturas 622. El circuito del procesador de texturas 622 puede ser configurado para realizar las técnicas de compresión de texturas, solapamiento de bloques y filtrado de texturas descritas aquí.
Se ha de apreciar que el aparato de la Fig. 6 se proporciona a modo de ejemplo, y que la invención puede ser realizada en cualquiera de un cierto número de otras formas. Por ejemplo, la invención es igualmente adecuada para su aplicación en otros tipos de dispositivos que generan pantallas de gráficos, que incluyen, pero no están limitados a, PCs de escritorio y estaciones de trabajo, ordenadores portátiles, libretas de notas, tabletas y otros ordenadores portátiles, asistentes digitales personales (PDAs), y lectores de libros electrónicos y otros dispositivos gráficos portátiles. Se apreciará también que la arquitectura de tratamiento de gráficos ilustrada en la Fig. 6 es meramente ejemplar, y que una variedad de arquitecturas, tales como arquitecturas que usan equipo físico de gráficos dedicados para un propósito especial para general pantallas de gráficos, pueden usarse con la invención. De acuerdo con varias realizaciones de la presente invención, la compresión de texturas, disposición de bloques de téxeles y filtrado de texturas descritos aquí pueden usarse individualmente o en combinación, y estas operaciones pueden ser aplicadas en cualquiera de un número de ambientes de tratamiento de gráficos diferente, que incluyen el mostrado en el terminal inalámbrico 600 de la Fig. 6.
La Fig. 7 ilustra operaciones de tratamiento de texturas a modo de ejemplo de acuerdo con algunas realizaciones de la presente invención, que pueden ser implementadas, por ejemplo, por el procesador 620 y la memoria 630 del terminal inalámbrico de la Fig. 6. Elementos de datos respectivos (por ejemplo palabras de 32 bits que incluyen información de color RGB como se ha descrito anteriormente) son almacenados por unos respectivos de una pluralidad de bloques de téxeles que se solapan (Bloque 710). Cada uno de los elementos de datos incluye valores de referencia de téxel primero y segundo y uno o más valores de téxel para téxeles del bloque, en el que los uno o más valores de téxel mapean o correlacionan los téxeles a 3-tuplos de los valores de referencia de téxel primero y segundo, y un tercer valor de referencia de téxel es determinado por los valores de referencia primero y segundo, por ejemplo, como media aritmética de los valores de referencia de téxel primero y segundo. Se apreciará que los valores de téxel pueden incluir, pero no están limitados a, valores de color RGB, valores de escala de grises, y/u otras formas de representación usadas comúnmente en aplicaciones de gráficos.
La texturización de un píxel empieza con la extracción del elemento o elementos de datos asociados con el bloque o bloques de téxeles que incluyen los téxeles vecinos más próximos, por ejemplo, los cuatro vecinos más próximos, para el píxel (Bloque 720). Los valores de téxel en los elemento/elementos de datos extraídos son entonces mapeados o correlacionados a 3-tuplos de los valores de referencia de téxel (Bloque 30). Un primer valor de mip-mapa es interpolado bilinealmente a partir de los valores de téxel para los téxeles vecinos más próximos (Bloque 40) y un segundo valor de mip-mapa es generado mediante las medias de los valores de téxel para los téxeles de vecino más próximo (Bloque 50). Un valor de píxel para el píxel es interpolado linealmente a partir de los valores de mip-mapa primero y segundo (Bloque 60), y el valor de píxel generado se usa para mostrar el píxel (Bloque 70).
Aunque la Fig. 7 ilustra un uso combinado de la nueva compresión de texturas, disposiciones de bloques de téxeles que se solapan y técnicas de filtrado de texturas de la presente invención, se apreciará que el uso de subconjuntos de estas técnicas en combinación con técnicas convencionales cae dentro del ámbito de la presente invención. Por ejemplo, las novedosas técnicas de compresión de texturas de la presente invención pueden ser usadas con una disposición convencional de bloques de téxeles que no se solapan, y con técnicas convencionales de filtrado de texturas bilineales, trilineales u otras. De manera similar, el almacenamiento y/o la compresión de texturas convencional y las técnicas convencionales de filtrado de texturas pueden ser usadas con las disposiciones novedosas de bloques de téxeles de la presente invención. Finalmente, técnicas convencionales de almacenamiento y/o compresión de texturas y disposiciones convencionales de bloques de téxeles pueden ser usadas con las nuevas técnicas de filtrado de texturas de la presente invención.
En los dibujos y memoria, se han descrito realizaciones a modo de ejemplo de la invención. Aunque se emplean términos específicos, se usan sólo en un sentido genérico y descriptivo y no con fines de limitación.

Claims (10)

1. Un método de texturización de un píxel, que comprende:
almacenar (910) las pluralidades respectivas de valores de referencia de téxeles y los valores de mapeo o correlación de téxeles que mapean o correlacionan los mismos con los respectivos de una pluralidad de bloques de solapamiento de téxeles;
generar un valor de píxel para el píxel desde la referencia de téxel almacenada y los valores de mapeo o correlación;
y
visualizar o presentar (970) el píxel sensible al valor de píxel generado.
\vskip1.000000\baselineskip
2. El método de acuerdo con la reivindicación 1, en el que la generación de un valor de píxel para el píxel desde la referencia de téxel almacenada y los valores de mapeo o correlación de téxeles comprenden
generar valores de píxel para píxeles en un mapa de píxeles desde la referencia de téxel almacenada y los valores de mapeo o correlación de téxeles para los conjuntos de téxeles vecinos más próximos en la pluralidad de los bloques de solapamiento de téxeles; y
en el que los bloques de téxeles se solapan de manera que al generar un valor de píxel para cualquier píxel en el mapa de píxeles se requiere la referencia del téxel almacenado y los valores de mapeo o correlación de téxeles para no más de un bloque único de téxeles.
\vskip1.000000\baselineskip
3. El método de acuerdo con la reivindicación 1, en el que la generación de un valor de píxel para el píxel desde la referencia de téxel almacenada y los valores de mapeo o correlación de téxeles comprenden
generar valores de píxel para píxeles en un mapa de píxeles desde la referencia de téxel almacenada y los valores de mapeo o correlación de téxeles para los conjuntos de téxeles vecinos más próximos en la pluralidad de los bloques de solapamiento de téxeles; y
en el que los bloques de téxeles se solapan de manera que al generar un valor de píxel para cualquier píxel en el mapa de píxeles se requiere la referencia del téxel almacenado y los valores de mapeo o correlación de téxeles para no más de dos bloques de téxeles.
\vskip1.000000\baselineskip
4. El método de acuerdo con la reivindicación 1, en el que los bloques de téxeles se solapan en dos direcciones ortogonales.
5. El método de acuerdo con la reivindicación 1, en el que los bloques de téxeles se solapan en una sola dirección.
6. El método de acuerdo con la reivindicación 1, en el que la generación de un valor del píxel para el píxel comprende:
procesar o tratar la referencia del téxel almacenada y los valores de mapeo o correlación de téxeles para al menos un bloque de téxeles para obtener los valores de téxeles para un conjunto de los téxeles vecinos más próximos para el píxel;
interpolar bilinealmente (940) un primer valor de mip-map para el píxel desde los valores de téxeles para el conjunto de téxeles vecino más próximo;
promediar (950) los valores de téxeles para el conjunto de téxeles vecino más próximo para generar un segundo valor de mip-map; e
interpolar (960) entre el primer y segundo mip-map valores para generar el valor del píxel para el píxel.
\vskip1.000000\baselineskip
7. Un aparato (800) que comprende:
una pantalla (810);
medios (830) para almacenar pluralidades respectivas de valores de referencia de téxeles y valores de mapeo o correlación de téxeles que mapean o correlacionan a los mismos con los respectivos de una pluralidad de bloques de solapamientos de téxeles;
medios (820) para generar un valor de píxel para el píxel desde la referencia de téxel almacenada y valores de mapeo o correlación de téxeles; y
medios (824) para visualizar o presentar el píxel en la pantalla (810) sensible al valor del píxel generado.
\vskip1.000000\baselineskip
8. El aparato de acuerdo con la reivindicación 7, en el que los medios (830) para almacenar, los medios (820) para generar un valor de píxel, y los medios (824) para visualizar están implementados en un terminal inalámbrico.
9. Un producto de programa de ordenador para texturizar un píxel, comprendiendo el producto de programa de ordenador un código de programación legible por ordenador, incorporado en un medio de almacenamiento de programa legible por ordenador, comprendiendo el código de programación legible por ordenador:
un código de programa configurado para almacenar pluralidades respectivas de valores de referencia de téxeles que mapean o correlacionan a los mismos con los respectivos de una pluralidad de bloques de solapamiento de téxeles;
un código de programa configurado para generar un valor de píxel para el píxel desde la referencia de téxeles almacenada y los valores de mapeo o correlación de téxeles; y
un código de programa configurado para causar una presentación o visualización del píxel sensible al valor del píxel generado.
\vskip1.000000\baselineskip
10. El producto de programa de ordenador de acuerdo con la reivindicación 9, en el que el código de programa configurado para generar un valor de píxel para el píxel comprende:
un código de programa configurado para tratar o procesar la referencia de téxel almacenada y los valores de mapeo o correlación de téxeles para al menos un bloque de téxeles para obtener valores de téxeles para un conjunto de téxeles vecinos más próximos para el píxel;
un código de programa configurado para interpolar bilinealmente un primer valor de mip-map para el píxel desde los valores de téxeles para el conjunto de téxeles vecinos más próximos;
un código de programa configurado para promediar los valores de téxeles para el conjunto de téxeles vecinos más próximos para generar un segundo valor de mip-map; y
un código de programa configurado para interpolar entre el primer y segundo mip-map valores para generar el valor de píxel para el píxel.
ES06126695T 2002-06-07 2003-06-02 Metodo y aparato para texturizar un pixel. Expired - Lifetime ES2331327T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US326849 1989-03-21
US38704902P 2002-06-07 2002-06-07
US387049P 2002-06-07
US10/326,849 US6940511B2 (en) 2002-06-07 2002-12-20 Graphics texture processing methods, apparatus and computer program products using texture compression, block overlapping and/or texture filtering

Publications (1)

Publication Number Publication Date
ES2331327T3 true ES2331327T3 (es) 2009-12-29

Family

ID=29714997

Family Applications (2)

Application Number Title Priority Date Filing Date
ES06126695T Expired - Lifetime ES2331327T3 (es) 2002-06-07 2003-06-02 Metodo y aparato para texturizar un pixel.
ES03737982T Expired - Lifetime ES2277086T3 (es) 2002-06-07 2003-06-02 Metodo y aparato para codificar informacion de texturas.

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES03737982T Expired - Lifetime ES2277086T3 (es) 2002-06-07 2003-06-02 Metodo y aparato para codificar informacion de texturas.

Country Status (10)

Country Link
US (2) US6940511B2 (es)
EP (2) EP1520259B1 (es)
JP (2) JP4648701B2 (es)
KR (1) KR101034925B1 (es)
CN (1) CN1659595B (es)
AT (2) ATE438903T1 (es)
AU (1) AU2003245901A1 (es)
DE (2) DE60328733D1 (es)
ES (2) ES2331327T3 (es)
WO (1) WO2003105090A1 (es)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6819793B1 (en) * 2000-06-30 2004-11-16 Intel Corporation Color distribution for texture and image compression
US7082217B2 (en) * 2002-10-28 2006-07-25 Web Technology Corp. Method and apparatus for image compression in block units
KR100995022B1 (ko) 2003-12-13 2010-11-19 엘지디스플레이 주식회사 디스플레이 및 그 구동방법
JP2008510213A (ja) * 2004-08-11 2008-04-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ストライプに基づく画像データ記憶方法
JP4444180B2 (ja) * 2005-07-20 2010-03-31 株式会社東芝 テクスチャ符号化装置、テクスチャ復号化装置、方法、およびプログラム
US20070177553A1 (en) * 2006-01-31 2007-08-02 Nokia Corporation Apparatus, method and computer program product providing efficient signaling of user allocations in an optimum manner
US7714873B2 (en) 2006-06-29 2010-05-11 Microsoft Corporation Strategies for compressing textures
US7683910B2 (en) 2006-06-29 2010-03-23 Microsoft Corporation Strategies for lossy compression of textures
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
US8594441B1 (en) * 2006-09-12 2013-11-26 Nvidia Corporation Compressing image-based data using luminance
US7760936B1 (en) * 2006-09-12 2010-07-20 Nvidia Corporation Decompressing image-based data compressed using luminance
US8311347B2 (en) 2006-11-10 2012-11-13 Microsoft Corporation Image compression based on parameter-assisted inpainting
US8724895B2 (en) 2007-07-23 2014-05-13 Nvidia Corporation Techniques for reducing color artifacts in digital images
US8780128B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Contiguously packed data
US8165393B2 (en) 2008-06-05 2012-04-24 Microsoft Corp. High dynamic range texture compression
US8508543B2 (en) * 2008-06-18 2013-08-13 Microsoft Corporation Layered texture compression architecture
US20090322777A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Unified texture compression framework
WO2009157904A1 (en) 2008-06-27 2009-12-30 Thomson Licensing Methods and apparatus for texture compression using patch-based sampling texture synthesis
GB2462589B (en) * 2008-08-04 2013-02-20 Sony Comp Entertainment Europe Apparatus and method of viewing electronic documents
US8373718B2 (en) 2008-12-10 2013-02-12 Nvidia Corporation Method and system for color enhancement with color volume adjustment and variable shift along luminance axis
US8577164B2 (en) * 2009-01-19 2013-11-05 Telefonaktiebolaget L M Ericsson (Publ) Image processing
US9153064B2 (en) * 2009-12-23 2015-10-06 Intel Corporation Grouping pixels to be textured
US9041723B2 (en) 2011-05-05 2015-05-26 Arm Limited Method of and apparatus for encoding and decoding data
GB2495301B (en) 2011-09-30 2018-01-17 Advanced Risc Mach Ltd Method of and apparatus for encoding data
GB2503691B (en) 2012-07-04 2019-08-14 Advanced Risc Mach Ltd Methods of and apparatus for encoding and decoding data
US9177415B2 (en) 2013-01-30 2015-11-03 Arm Limited Methods of and apparatus for encoding and decoding data
US10147202B2 (en) 2013-03-15 2018-12-04 Arm Limited Methods of and apparatus for encoding and decoding data
WO2015035129A2 (en) * 2013-09-09 2015-03-12 Lynx Laboratories Inc. Rendering engine for multi-dimensional tracking, reconstruction and mapping
US9619898B2 (en) * 2013-12-28 2017-04-11 Intel Corporation Angle-dependent anisotropic filtering
KR20160032597A (ko) * 2014-09-16 2016-03-24 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치
KR102477264B1 (ko) * 2015-09-22 2022-12-13 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치
CN111515149B (zh) * 2020-04-26 2020-12-29 广东弓叶科技有限公司 人机协作分选系统及其机器人的抓取位置获取方法
CN115943421A (zh) * 2020-09-17 2023-04-07 华为技术有限公司 单通道的渲染和后处理滤波

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2440768C3 (de) 1974-08-26 1982-03-18 Philips Patentverwaltung Gmbh, 2000 Hamburg Verfahren und Vorrichtung zur Datenkompression für die Faksimile-Übertragung graphischer Information
JPH0944695A (ja) 1995-07-25 1997-02-14 Matsushita Electric Ind Co Ltd テクスチャマッピング方法およびテクスチャマッピング装置
US6236405B1 (en) 1996-07-01 2001-05-22 S3 Graphics Co., Ltd. System and method for mapping textures onto surfaces of computer-generated objects
US6366290B1 (en) 1997-03-31 2002-04-02 Cirrus Logic, Inc. Dynamically selectable texture filter for a software graphics engine
US6459433B1 (en) * 1997-04-30 2002-10-01 Ati Technologies, Inc. Method and apparatus for compression of a two dimensional video object
US5920495A (en) 1997-05-14 1999-07-06 Cirrus Logic, Inc. Programmable four-tap texture filter
US6304268B1 (en) * 1997-06-26 2001-10-16 S3 Graphics Co., Ltd. Trilinear texture filtering of two levels of detail based on a single level of detail
US6016152A (en) 1997-08-01 2000-01-18 Avid Technology, Inc. Apparatus and method for non-uniform image scaling
US6181347B1 (en) 1997-09-17 2001-01-30 Cirrus Logic, Inc. Selectable mode smoothing texture filter for computer graphics
US5956431A (en) 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
JP2001507823A (ja) 1997-10-28 2001-06-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 画像の圧縮及び復元
US6184893B1 (en) 1998-01-08 2001-02-06 Cirrus Logic, Inc. Method and system for filtering texture map data for improved image quality in a graphics computer system
JP3365293B2 (ja) * 1998-02-12 2003-01-08 株式会社日立製作所 Dram,ロジック混載lsiを使ったキャッシュメモリ及びそれを用いたグラフィックスシステム
US6259460B1 (en) * 1998-03-26 2001-07-10 Silicon Graphics, Inc. Method for efficient handling of texture cache misses by recirculation
US6469700B1 (en) 1998-06-24 2002-10-22 Micron Technology, Inc. Per pixel MIP mapping and trilinear filtering using scanline gradients for selecting appropriate texture maps
US6292193B1 (en) 1998-07-30 2001-09-18 Compaq Computer Corporation Techniques for anisotropic texture mapping using multiple space-invariant filtering operations per pixel
GB2343599B (en) * 1998-11-06 2003-05-14 Videologic Ltd Texturing systems for use in three dimensional imaging systems
JP2000155851A (ja) 1998-11-20 2000-06-06 Sony Corp テクスチャ・マッピング装置及びこれを具備したレンダリング装置、並びに情報処理装置
US6452603B1 (en) * 1998-12-23 2002-09-17 Nvidia Us Investment Company Circuit and method for trilinear filtering using texels from only one level of detail
US7050063B1 (en) * 1999-02-11 2006-05-23 Intel Corporation 3-D rendering texture caching scheme
JP2001126084A (ja) * 1999-10-28 2001-05-11 Sega Corp テクスチャ表示装置、テクスチャ表示方法及び記録媒体
JP2003115056A (ja) * 1999-12-16 2003-04-18 Sega Corp 画像生成方法及びこれを用いた画像生成装置
US6819793B1 (en) * 2000-06-30 2004-11-16 Intel Corporation Color distribution for texture and image compression
US6919903B2 (en) * 2001-03-02 2005-07-19 Mitsubishi Electric Research Laboratories, Inc. Texture synthesis and transfer for pixel images
US20020180749A1 (en) * 2001-06-01 2002-12-05 Chien-Chung Hsiao Method of bilinear texture filtering
TW544636B (en) * 2001-11-22 2003-08-01 Silicon Integrated Sys Corp Method of texture mapping
US7336284B2 (en) * 2004-04-08 2008-02-26 Ati Technologies Inc. Two level cache memory architecture

Also Published As

Publication number Publication date
JP5091220B2 (ja) 2012-12-05
ATE438903T1 (de) 2009-08-15
KR20050004915A (ko) 2005-01-12
DE60310720T2 (de) 2007-10-11
CN1659595B (zh) 2010-05-12
EP1768059A3 (en) 2007-06-27
EP1768059A8 (en) 2007-06-20
KR101034925B1 (ko) 2011-05-17
EP1768059A2 (en) 2007-03-28
EP1520259A1 (en) 2005-04-06
JP2010102729A (ja) 2010-05-06
ES2277086T3 (es) 2007-07-01
US7633507B2 (en) 2009-12-15
WO2003105090A1 (en) 2003-12-18
US6940511B2 (en) 2005-09-06
JP2005531833A (ja) 2005-10-20
EP1520259B1 (en) 2006-12-27
JP4648701B2 (ja) 2011-03-09
DE60328733D1 (de) 2009-09-17
ATE349743T1 (de) 2007-01-15
US20050264573A1 (en) 2005-12-01
DE60310720D1 (de) 2007-02-08
CN1659595A (zh) 2005-08-24
EP1768059B1 (en) 2009-08-05
AU2003245901A1 (en) 2003-12-22
US20030227462A1 (en) 2003-12-11

Similar Documents

Publication Publication Date Title
ES2331327T3 (es) Metodo y aparato para texturizar un pixel.
CN107273301B (zh) 存储阵列的方法和设备、确定数据值的方法和设备、介质
US8670613B2 (en) Lossless frame buffer color compression
ES2728097T3 (es) Procesamiento de imágenes basado en peso
US9530189B2 (en) Alternate reduction ratios and threshold mechanisms for framebuffer compression
US10964088B2 (en) Mipmap with mixed texture types
US6819324B2 (en) Memory interleaving technique for texture mapping in a graphics system
JP2011502312A (ja) データを圧縮及び解凍する方法及び装置
WO2017222633A1 (en) Image rotation method and apparatus
JP2009099098A (ja) コンピュータグラフィックス描画装置及び描画方法
EP2327058A1 (en) Pixel block processing
ES2635540T3 (es) Sistema y método de descodificación utilizable en bloques de elementos de textura codificada
CN115145836A (zh) 访问编码数据块
Pres InsightE
JP2006099447A (ja) メモリマッピング方法及びメモリインターフェイス回路