MXPA03002165A - Aceleracion de graficos mejorados por hardware de imagenes orientadas a subcomponentes de pixel. - Google Patents

Aceleracion de graficos mejorados por hardware de imagenes orientadas a subcomponentes de pixel.

Info

Publication number
MXPA03002165A
MXPA03002165A MXPA03002165A MXPA03002165A MXPA03002165A MX PA03002165 A MXPA03002165 A MX PA03002165A MX PA03002165 A MXPA03002165 A MX PA03002165A MX PA03002165 A MXPA03002165 A MX PA03002165A MX PA03002165 A MXPA03002165 A MX PA03002165A
Authority
MX
Mexico
Prior art keywords
character
subcomponents
pixel
graphics unit
hardware graphics
Prior art date
Application number
MXPA03002165A
Other languages
English (en)
Inventor
Mohammed El-Gammal
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA03002165A publication Critical patent/MXPA03002165A/es

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/34Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
    • G09G3/36Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source using liquid crystals
    • G09G3/3607Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source using liquid crystals for displaying colours or for displaying grey scales with a specific pixel layout, e.g. using sub-pixels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2300/00Aspects of the constitution of display devices
    • G09G2300/04Structural and physical details of display devices
    • G09G2300/0439Pixel structures
    • G09G2300/0443Pixel structures with several sub-pixels for the same colour in a pixel, not specifically used to display gradations
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0421Horizontal resolution change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0457Improvement of perceived resolution by subpixel rendering
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2007Display of intermediate tones
    • G09G3/2074Display of intermediate tones using sub-pixels
    • 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/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Image Generation (AREA)

Abstract

La aceleracion de la presentacion y animacion de caracteres que trata cada subcomponente del pixel como una fuente de intensidad de luminancia distinta. Se genera una representacion de mapa de bits del caracter orientado a los subcomponentes mediante el uso de una sola muestra de imagen para generar cada subcomponente del pixel. Esto se puede conseguir por medio de, por ejemplo, ajustar a sobre escala una representacion del caracter, colocando la representacion ajustada a sobre escala del caracter sobre una cuadricula, y despues asignando una luminancia y posiblemente un valor de transparencia a cada posicion de la cuadricula en base a las propiedades del caracter ajustado a sobre escala en esa posicion de la cuadricula. Despues se presenta el caracter por medio de la interconexion con una unidad de graficos de hardware que realiza la presentacion animacion finales del caracter.

Description

ACELERACION DE GRAFICOS MEJORADOS POR HARDWARE DE IMAGENES ORIENTADAS A SUBCOMPONENTES DE PIXEL ANTECEDENTES DE LA INVENCION 1. El Campo de la Invención La presente invención se relaciona con métodos y sistemas para desplegar visualmente imágenes, y más particularmente, con métodos y sistemas para presentar y animar de manera eficiente caracteres, usando una unidad de gráficos de hardware cuando se trata cada subcomponente de pixel (elemento de imagen) como una fuente de intensidad de luminancia independiente. 2. Antecedentes y Técnica Relacionada Comúnmente se usan dispositivos de despliegue visual para presentar imágenes a un espectador humano. La presentación efectiva de las imágenes a un espectador humano es fundamental para la televisión y muchos tipos de tecnología de computación. De conformidad con lo anterior, los dispositivos de despliegue visual están asociados con los televisores y muchos sistemas de computación. Las imágenes se presentan a un espectador usando miles de pixeles distribuidos en un patrón de cuadrícula en un dispositivo de despliegue visual. Los valores de color e/o intensidad de cada uno de los pixeles se pueden ajusfar con el propósito de formar la imagen deseada. En un dispositivo de despliegue visual típico, el color que percibe un usuario como emitido desde un solo pixel está representado de hecho por múltiples componentes de color desplazados. Por ejemplo, en un dispositivo de despliegue visual RGB, hay una fuente de luz que emite exclusivamente el color rojo. Otra fuente de luz separada emite exclusivamente el color verde. Otra fuente de luz separada emite exclusivamente el color azul. Estas fuentes de luz se llaman en la presente los componentes de color rojo, verde y azul de un pixel. Para cualquier pixel dado, estos componentes de color están espacialmente desfasados. Sin embargo, el desfasamiento espacial es suficientemente pequeño como para que un usuario humano tipico sea incapaz de distinguir los componentes de color individuales de un pixel. Más bien, la luz desde los componentes de color se fusiona armoniosamente junta de tal manera que se perciba que el pixel tiene un solo color. Este color de pixel individual se puede ajustar mediante el ajuste de la intensidad de los componentes de color rojo, verde, y azul del pixel, de tal manera que el pixel puede conseguir una amplia variedad de colores percibidos. El blanco se puede conseguir por medio de tener las máximas intensidades en los componentes de color rojo, verde, y azul. A la inversa, el negro se puede conseguir por medio de tener las minimas intensidades en los componentes de color rojo, verde, y azul.
Los despliegues visuales de televisión y los monitores de computadora tipicos dependen de que cada pixel tenga múltiples componentes dirigibles espacialmente desplazados, sean esos componentes los componentes de color rojo, verde, y azul, u otros. El despliegue visual llamado Despliegue Visual de Cristal Liquido (LCD) es un ejemplo de un dispositivo de despliegue visual que utiliza múltiples elementos distintamente dirigibles, a los que se hace referencia en la presente como subelementos de pixel o subcomponentes de pixel, para representar cada pixel de una imagen que se esté desplegando visualmente. Por ejemplo, la Figura 1 ilustra una computadora portátil convencional 100, que comprende un alojamiento 101, una unidad de disco 102, un teclado 103, y un despliegue visual 104. El despliegue visual 104 puede ser, por ejemplo, un despliegue visual LCD. Normalmente, cada pixel en un despliegue visual LCD a colores está representado por un solo elemento de pixel, el cual usualmente comprende tres subcomponentes de pixel no cuadrados tales como un subcomponente de pixel rojo, un subcomponente de pixel verde, y un subcomponente de pixel azul. De esta manera, un conjunto de subcomponentes de pixel RGB juntos componen un solo elemento de pixel. Los despliegues visuales LCD convencionales comprenden una serie de subcomponentes de pixel RGB que comúnmente están configurados para formar franjas a lo largo del despliegue visual. Las franjas RGB normalmente corren toda la longitud del despliegue visual en una dirección. Algunas veces se hace referencia a las franjas RGB resultantes como "rayado RGB". Los monitores LCD comunes que se usan para aplicaciones de computadora, que son más anchos que altos, tienden a tener franjas RGB que corren en la dirección vertical. La Figura 2A ilustra una pantalla LCD conocida 200 que comprende una pluralidad de filas (R1-R12) y columnas (C1-C1G) que se pueden representar en el despliegue visual 104. Cada intersección de fila/columna forma un cuadrado (o un rectángulo que es casi de la misma altura que la anchura) , que representa un elemento de pixel. La Figura 2B ilustra la porción superior a mano izquierda del despliegue visual conocido 200 con mayor detalle. Note en la Figura 2B cómo cada elemento de pixel (por ejemplo, el elemento de pixel -R2, Cll) , comprende tres subcomponentes distintos, un subcomponente rojo 206, un subcomponente verde 207, y un subcomponente azul 208. Cada subcomponente de pixel conocido 206, 207, 208 es aproximadamente un tercio de la anchura de un pixel mientras que es igual, en altura, a la altura de un pixel. Como se ilustra en la Figura 2A y la Figura 2B, una configuración conocida de los subcomponentes de pixel RGB 206, 207, 208 forma lo que parecen ser franjas de color verticales hacia abajo del despliegue visual 200. De conformidad con lo anterior, a la configuración de los subcomponentes de color de 1/3 de ancho 206, 207, 208, de la manera conocida que se ilustra en las Figuras 2A y 2B, algunas veces se le llama "rayado vertical". Aunque en la Figura 2A únicamente se muestran 12 filas y 16 columnas para propósitos de ilustración, las proporciones comunes de columna x fila incluyen, por ejemplo, 640x480, 800x600, y 1024x768. En adición al rayado vertical, los LCDs se fabrican con subcomponentes de pixel configurados en muchos patrones adicionales que incluyen, por ejemplo, en zigzag y un patrón delta común en visores de cámaras grabadoras de video, o en rayado horizontal en donde cada uno de los subcomponentes de pixel RGB tiene un tercio de la altura total del pixel, y tiene la misma anchura que el pixel. Las características de la presente invención se pueden usar con esas configuraciones de subcomponentes de pixel. Sin embargo, puesto que la configuración de rayado vertical RGB es más común, las modalidades de la presente invención se explicarán en el contexto del uso de despliegues visuales verticalmente rayados RGB. Tradicionalmente, cada conjunto de subcomponentes de pixel para un elemento de pixel se trata como una sola unidad de pixel. De conformidad con lo anterior, en los sistemas conocidos los valores de intensidad luminosa para todos los subcomponentes de pixel de un elemento de pixel se generan desde la misma porción de una imagen. Considere, por ejemplo, la imagen representada por la cuadrícula 220 que se ilustra en la Figura 2C. En la Figura 2C cada cuadrado representa un área de una imagen que se va a representar por medio de un solo elemento de pixel que incluye un subcomponente de pixel rojo, verde y azul del cuadrado correspondiente de la cuadrícula 220. En la Figura 2C, se usa un círculo sombreado para representar una sola muestra de la imagen a partir de la cual se generan los valores de intensidad luminosa. Note cómo se usa una sola muestra 222 de la imagen 220 en los sistemas conocidos para generar los valores de intensidad luminosa para cada uno de los subcomponentes de pixel rojo, verde y azul 232, 233, 234. De esta manera, en los sistemas conocidos, generalmente se usan los subcomponentes de pixel RGB como un grupo para generar un solo pixel coloreado que corresponde a una sola muestra de la imagen que se va a representar . La luz desde cada grupo de subcomponentes de pixel se añade junta de manera efectiva para crear el efecto de un solo color cuyo matiz, saturación, e intensidad dependen del valor de cada uno de los tres subcomponentes de pixel. Digamos, por ejemplo, que cada subcomponente de pixel tiene una intensidad potencial de entre 0 y 255. Si a los tres subcomponentes de pixel se les da la intensidad de 255, el ojo percibe el pixel como blanco. Sin embargo, si a los tres subcomponentes de pixel se les da un valor de 0, el ojo percibe un pixel negro. Por medio de variar las respectivas intensidades de cada subcomponente de pixel es posible generar millones de colores entre estos dos extremos. Dado que se mapea una sola muestra a un triple de los subcomponentes del pixel que son cada uno 1/3 de un pixel en anchura, ocurre el desplazamiento espacial de los subcomponentes del pixel izquierdo y derecho, puesto que los centros de estos elementos está a 1/3 desde el centro de la muestra. Considere, por ejemplo, que una imagen que se fuera a representar fuera un cubo rojo con los componentes verde y azul iguales a cero. Como resultado del desplazamiento entre la muestra y el subcomponente de la imagen verde, cuando se despliega visualmente en un despliegue visual LCD del tipo que se ilustra en la Figura 2A, la posición aparente del cubo en el despliegue visual se cambiará un tercio de un pixel a la izquierda de su posición real. De manera similar, un cubo azul apareceria como desplazado un tercio de un pixel a la derecha. De esta manera, las técnicas de formación de imágenes convencionales que se usan con las pantallas LCD pueden dar como resultado errores de desplazamiento de imagen indeseables . Los caracteres de texto representan un tipo de imagen que es particularmente dificil de desplegar visualmente de manera exacta dadas las resoluciones de despliegue visual de panel plano típicas de 72 ó 96 puntos (pixeles) por pulgada (dpi, por sus siglas en inglés) . Esas resoluciones de despliegue visual están muy por debajo de los 600 dpi que soportan la mayor parte de las impresoras, y de las resoluciones aún mayores que se encuentran en el texto impreso más comercialmente tales como libros y revistas . De conformidad con lo anterior, los objetos visuales más pequeños tales como los caracteres de texto pueden aparecer burdos cuando la resolución de la imagen está limitada a la resolución del pixel. De hecho, la sabiduría convencional era que la resolución de la imagen estaba limitada necesariamente a la resolución del pixel. Sin embargo, en la solicitud de patente de los Estados Unidos de Norteamérica con número de serie US 6,188,385 Bl, emitida el 13 de febrero de 2001, a William Hill y colaboradores, y titulada "Method and Apparatus for Displaying Images Such As Text" (a la que se hará referencia de aquí en adelante como la "patente de Hill y colaboradores" ) , la cual está incorporada a la presente como referencia en su totalidad, se describe una técnica para mejorar la resolución a la resolución del subcomponente del pixel. A una tecnología de despliegue visual que incorpora cuando menos algo de la tecnología que se describe en la patente de Hill y colaboradores, frecuentemente se hace referencia como CLEARTYPE®, término que es una marca comercial registrada de Microsoft Corporation. La patente de Hill y colaboradores describe una tecnología que trata cada subcomponente de pixel como una fuente de intensidad luminosa independiente separada. Esto contrasta con la técnica convencional de tratar el conjunto de subcomponentes de pixel RGB para un pixel dado como siendo una sola fuente de intensidad luminosa. En otras palabras, la patente de Hill y colaboradores describe que cada muestra de imagen se usa para generar el valor de intensidad de luminancia para un solo subcomponente del pixel. Esto contrasta con la técnica convencional de generar todos los valores de los subcomponentes de pixel para un pixel dado usando una sola muestra de imagen. De esta manera, la tecnología que se describe en la patente de Hill y colaboradores permite que un dispositivo de despliegue visual con rayado vertical RGB tenga una resolución horizontal efectiva que es hasta tres veces mayor que la resolución de pixeles horizontal. La Figura 3 ilustra un flujo funcional general que se puede implementar mediante la computadora 100 con el propósito de producir y entramar las imágenes de texto en el despliegue visual 104, usando la tecnología descrita en la patente de Hill y colaboradores. Para propósitos de la descripción, supongamos que una aplicación que se esté ejecutando en la computadora 100 da instrucciones al sistema operativo de la computadora de que la letra i que tiene una fuente y tamaño de puntos dados, se va a producir y entramar en el despliegue visual 104. La columna izquierda de la Figura 3 etiquetada bajo el encabezamiento "Flujo Funcional" ilustra las funciones generales que se implementan para producir un carácter de texto usando esta tecnología. La columna derecha de la Figura 3 bajo el encabezamiento "Ejemplo" representa el estado del carácter i después de que se implementa la función correspondiente a la izquierda. El proceso empieza con una descripción de caracter301, que describe la forma de un carácter. Esto se puede realizar mediante el uso de gráficos de vector, líneas, puntos y curvas, a partir de los cuales se puede derivar una representación digital de alta resolución del car cter. Un sistema operativo típico tendrá un número de diferentes descripciones de caracteres que corresponden a cada carácter de cada fuente. El elemento 311 muestra la representación visual de la descripción del car cter para la letra i. En adición a la información de texto, el sistema operativo también tiene acceso a información de color de fondo y de arreglo para las imágenes que se estén desplegando visualmente en ese momento, y la información de color de pincel y de transparencia que se vayan a aplicar al carácter de texto durante la presentación.
Con esta información del carácter y el despliegue visual, la operación procede al ajuste a escala 302, en donde se realiza un ajuste a escala no cuadrado como una función de la dirección y/o el número de subcomponentes del pixel incluidos en cada elemento de pixel. En particular, la dirección vertical del carácter descrito en la descripción del carácter se ajusta a escala con el propósito de satisfacer los requerimientos de altura para el tamaño de puntos especificado por la aplicación. Sin embargo, la dirección horizontal se ajusta a escala a un índice tres veces mayor que en la dirección vertical. Esto permite que las subsecuentes operaciones de procesamiento de imágenes aprovechen el grado horizontal más alto de resolución que se puede lograr mediante el uso de subcomponentes de pixel individuales como fuentes de intensidad luminosa independientes en un despliegue visual rayado verticalmente .
En el caso más simple, el ajuste a escala en la dirección horizontal es a una proporción relativa que está relacionada con el número de subcomponentes de pixel en un pixel dado. En el despliegue visual rayado vertical RGB, existen tres subcomponentes de pixel en cualquier pixel dado. De conformidad con lo anterior, en el caso más simple, el ajuste a escala en la dirección horizontal ocurre a una proporción aproximadamente tres veces la proporción del ajuste a escala en la dirección vertical. Este ajuste a escala puede ocurrir mediante la manipulación de la descripción del carácter según sea apropiado. El elemento 312 muestra el estado del car cter representado por la descripción del carácter ajustado a escala. Note que en el caso ilustrado en donde la altura del carácter permanece igual, la letra i se estira horizontalmente por un factor de aproximadamente tres durante el ajuste a escala. Después del ajuste a escala 302, la operación procede al adelgazamiento 303. A veces se usa el término "ajuste a la cuadrícula" para describir el proceso de adelgazamiento. El adelgazamiento envuelve el alineamiento de un carácter ajustado a escala adentro de una cuadricula. Este también envuelve la distorsión de las líneas externas de la imagen de tal manera que la imagen se conforme mejor a la forma de la cuadrícula. La cuadrícula se determina como una función del tamaño físico de los elementos del pixel del dispositivo de despliegue visual. A diferencia de las técnicas anteriores que no consiguieron tomar en consideración los límites de los subcomponentes del pixel durante el adelgazamiento, el adelgazamiento 303 trata los límites de los subcomponentes del pixel como límites a lo largo de los cuales se pueden y se deben alinear los caracteres, o límites a los cuales se debe ajusfar la línea externa de un car cter. El proceso de adelgazamiento envuelve alinear la representación ajustada a escala de un carácter adentro de la cuadrícula, a lo largo de, o adentro de un pixel y los límites del subcomponente de pixel de una manera destinada para optimizar el despliegue visual exacto del carácter usando los subcomponentes disponibles del pixel. En muchos casos, esto envuelve alinear la orilla izquierda del cuerpo de un car cter con el límite de un componente del pixel o subpixel izquierdo, y alinear la parte inferior de la base del carácter a lo largo del límite de un pixel o subcomponente del pixel. Los resultados experimentales han mostrado que en el caso del rayado vertical, los caracteres con cuerpos alineados de tal manera que el cuerpo del carácter tiene una orilla izquierda azul o verde generalmente tienden a ser más legibles que los caracteres con los cuerpos alineados para tener una orilla izquierda roja. De conformidad con lo anterior, durante el adelgazamiento de los caracteres que se van a desplegar visualmente en una pantalla con rayado vertical, se favorecen las orillas izquierdas azules o verdes para los cuerpos sobre las orillas izquierdas rojas. Durante el adelgazamiento 303, la imagen ajustada a escala 312 primeramente se coloca sobre un patrón de cuadrícula como se representa por medio del arreglo de cuadrícula 313A. El patrón de cuadrícula se muestra para cuatro columnas de pixeles etiquetadas Cl a C4 de izquierda a derecha, y seis filas de pixeles etiquetadas Rl a R6 de arriba a abajo. Note que los limites entre los subcomponentes del pixel están representados por lineas de rayas, excepto en donde también existe un limite entre pixeles. Los limites de pixeles están representados como lineas sólidas. Note que cada uno de los subcomponen es del pixel tiene un encabezamiento R, G o B que representa si la columna representa el color rojo, verde o azul, respectivamente. Durante el adelgazamiento 303, la orilla izquierda del carácter i ajustado a escala se alinea a lo largo del limite del subcomponente del pixel R/G, se tal manera que la orilla izquierda del cuerpo del carácter adelgazado 312' tenga una orilla izquierda verde para promover la legibilidad. También se ajusta la forma del carácter asi como la posición del car cter en la cuadricula. También se hacen los ajustes de espaciamiento del carácter. Una vez que está completo el adelgazamiento 303, la operación procede a la conversión por escaneo 304, la cual envuelve la conversión de la geometría ajustada a escala que representa un carácter dentro de una imagen de mapa de bits. Las operaciones de conversión por escaneo convencionales tratan a los pixeles como unidades individuales adentro de las cuales se puede mapear una porción correspondiente de la imagen ajustada a escala. Sin embargo, de conformidad con la patente de Hill y colaboradores, cada subcomponente del pixel se trata como un componente de intensidad luminosa separado adentro del cual se puede mapear una porción separada de la imagen ajustada a escala. Refiriéndonos a la Figura 3, la operación de conversión por escaneo da como resultado la imagen de mapa de bits 314. Note cómo cada subcomponente del pixel de las columnas de la imagen de mapa de bits C1-C4 se determina a partir de un segmento diferente de las columnas correspondientes de la imagen adelgazada ajustada a escala 313B. Esto contrasta con la técnica convencional de tener los tres valores de los subcomponentes del pixel para un pixel dado generado a partir de una sola porción de una imagen. Note además cómo la imagen de mapa de bits 314, comprende un cuerpo de anchura de pixel de 2/3 con una orilla izquierda alineada a lo largo de un limite de pixel rojo/verde. Note también que se usa un punto que es 2/3 de un pixel en anchura. Las técnicas de formación de imágenes de texto convencionales que trataban cada pixel como un componente de intensidad luminosa individual podrian haber resultado en una imagen menos exacta que tuviera un cuerpo de anchura de pixel completa y un punto de un tamaño de pixel completo en tamaño.
Una vez que se genera la representación del mapa de bits del texto (es decir, la imagen de mapa de bits 314) durante la conversión por escaneo 304, se puede dar salida a ésta a un adaptador de despliegue visual, o se puede procesar adicionalmente para realizar las operaciones de procesamiento de color y/o los ajustes de color para mejorar la calidad de la imagen. Aunque el ojo humano es mucho más sensible a las orillas de luminancia en oposición a las orillas de color (coloración) de la imagen, el tratar los subcomponentes del pixel RGB como elementos de intensidad luminosa independientes con el propósito de presentar la imagen puede dar como resultado efectos de borde de color no deseados. Si, por ejemplo, se quita el rojo de un conjunto RGB, es probable que el resultado sea un efecto de borde de color de ciano, el aditivo de verde y azul. De esta manera se puede suministrarla imagen de mapa de bits 314 al procesamiento de color 305, en donde se realiza el procesamiento de la imagen para determinar hasta donde se ha desviado la imagen de mapa de bits del color de pincel deseado. Si porciones de la imagen de mapa de bits se han desviado más de una cantidad seleccionada previamente del color de pincel deseado, se aplican ajustes en los valores de intensidad de los subcomponentes del pixel hasta que las porciones de la imagen se produzcan dentro de un rango aceptable de un promedio entre los colores del pincel y del fondo . La imagen de mapa de bits 314 se aplica entonces, por medio de una operación de fusión armoniosa de colores, a la imagen de fondo existente. En particular, para un pixel dado, dejemos que las intensidades de color rojo, verde y azul se den por medio de glyph.r, glyph.g, y glyph.b. Un glifo es un término que representa la forma del carácter con respecto a los subcomponentes de ese pixel del pixel dado. El vector de tres valores de los componentes de color rojo, verde, y azul está representado por el vector glyph.rgb. Los componentes de color del pincel y del primer plano están representados por un vector similar pincel. rgb. el vector pincel. rgb da un valor a escala de la transparencia del pincel en cada componente de color. El color del fondo para ese pixel se da por medio de un vector de tres valores dst.rgb. con el propósito de fusionar armoniosamente los colores el car cter pincelado sobre el fondo, se aplica la siguiente ecuación de vector (1) : DST . rgb^DST. gb+ (brush. rgb-dst . rgb) *glyph . rgb*brusha . rgb (1) En las técnicas convencionales que tratan cada subcomponente del pixel como un valor de intensidad de luminancia separado y distinto, esta operación de fusión armoniosa de colores, asi como las animaciones del carácter (por ejemplo, rotación y ajuste a escala) se realizan en el software. Los cálculos para realizarla fusión armoniosa de colores y la animación de un carácter son bastante complejos. Hasta para los sistemas de computación modernos puede ser desafiador presentar y animar caracteres que traten cada subcomponente del pixel como una fuente de intensidad de luminancia independiente. De conformidad con lo anterior, lo que se desea son sistemas y métodos para presentar y animar caracteres que traten cada subcomponente del pixel como una fuente de intensidad de luminancia independiente de una manera más eficiente .
COMPENDIO DE LA INVENCION Se describen métodos, sistemas, y productos para programas de computadora para acelerar la presentación y animación de caracteres en los cuales cada subcomponente del pixel se trate como una fuente de intensidad de luminancia distinta, generada a partir de su propio punto de muestra distinto. Esto contrasta con los caracteres convencionales en los cuales todos los subcomponentes del pixel de un pixel particular se generan a partir de un punto de muestra común.
Se genera una representación de mapa de bits del carácter orientado a los subcomponentes, mediante el uso de una sola muestra de imagen para generar cada subcomponente del pixel. En particular, con el propósito de presentar un carácter dado, una unidad de gráficos accesa una representación de carácter que describe la linea externa del carácter. Después, se ajusta a sobre escala la representación del carácter y se coloca conceptualmente sobre una cuadrícula. Cada posición de la cuadrícula corresponde a un punto de muestreo así como a un subcomponente de pixel particular. El adelgazamiento puede ocurrir mediante el ajuste de la forma del carácter mediante la consideración de los límites del subcomponente, no simplemente de los límites del pixel. Se realiza la conversión por escaneo para generar la representación de mapa de bits del carácter, en base a la posición del carácter en la cuadrícula. Después ocurre la compensación de color para compensar por los efectos de borde del color. Después de generar la representación del mapa de bits, se presenta el car cter mediante la interconexión con una unidad de gráficos del hardware que realiza la presentación y animación final del carácter. La velocidad de presentación y animación se incrementa sustancialmente sobre el método anterior de realizar la presentación y la animación en el software. En particular, se ajustan la representación del mapa de bits del carácter, así como las representaciones de mapas de bits o el pincel y/o el fondo, y después se emite una secuencia no convencional de llamadas de función a la unidad de gráficos del hardware para provocar que la unidad de gráficos del hardware presente el carácter por medio de fusionar de manera armoniosa los colores del carácter, ajustando a escala el car cter, y/o girando el carácter sobre un fondo. De conformidad con lo anterior, los principios de la presente invención permiten la presentación y animación más eficientes de caracteres que tengan valores de subcomponentes de pixel que se generaron a partir de puntos de muestra individuales. En la descripción que sigue se establecerán características y ventajas adicionales de la invención, y en parte serán obvias por la descripción, o se pueden aprender mediante la práctica de la invención. Las características y ventajas de la invención se pueden realizar y obtener por medio de los instrumentos y combinaciones particularmente señaladas en las reivindicaciones anexas. Estas y otras características de la presente invención se harán más completamente evidentes por la siguiente descripción y reivindicaciones anexas, o se pueden aprender mediante la práctica de la invención como se declara posteriormente en la presente - BREVE DESCRIPCION DE LOS DIBUJOS Con el propósito de describir la manera en la cual se pueden obtener las ventajas y características de la invención mencionadas anteriormente y otras, se presentará una descripción más particular de la invención brevemente descrita anteriormente mediante la referencia a las modalidades específicas de la misma, las cuales se ilustran en los dibujos anexos. Entendiendo que estos dibujos ilustran únicamente las modalidades típicas de la invención y que por lo tanto no se considerarán como limitando su alcance, la invención se describirá y explicará con especificidad y detalle adicionales a través del uso de los dibujos acompañantes en los cuales: La Figura 1 ilustra una computadora portátil convencional de conformidad con la técnica anterior. La Figura 2? ilustra un despliegue visual verticalmente rayado que comprende 12 filas y 16 columnas de pixeles, cada pixel teniendo un subcomponente de pixel rojo, verde, y azul, horizontalmente colocados unos junto a los otros para formar el rayado vertical de conformidad con la técnica anterior. La Figura 2B ilustra la porción superior a mano izquierda del despliegue visual de la Figura 2A con más detalle . La Figura 2C ilustra que cada subcomponente del pixel para un pixel dado se genera a partir del mismo punto de muestra de conformidad con la técnica anterior. La Figura 3 ilustra un flujo funcional general que se usa para presentar y entramar imágenes en las cuales cada subcomponente de pixel se genera a partir de su propio punto de muestra distinto. La Figura 4 ilustra un medio ambiente de computación de ejemplo que representa un medio ambiente operativo adecuado para la presente invención. La Figura 5 ilustra un sistema que puede implementar las características de la presente invención, que incluye una aplicación, un sistema operativo, y una unidad de gráficos de hardware que recibe las llamadas de función por medio de una Interfase de Programa de Aplicación de conformidad con la presente invención. La Figura 6 ilustra una variedad de estructura de datos envuelta con la fusión armoniosa de colores de un car cter en un fondo de conformidad con la presente invención . La Figura 7 ilustra un flujo funcional envuelto con el procesamiento de la estructura de datos de glifos de la Figura 6, con el propósito de realizar una técnica de presentación de tres pasos de conformidad con la presente invención .
DESCRIPCION DETALLADA DE LA INVENCION La presente invención se extiende a métodos, sistemas y productos de programas de computadora para acelerar la presentación y animación de caracteres que tratan cada subcomponente del pixel como una fuente de intensidad de luminancia distinta. En la presente en esta descripción y en las reivindicaciones se hará referencia a los caracteres que tratan cada subcomponente del pixel como una fuente de intensidad de luminancia distinta o, en otras palabras, caracteres en los cuales cada subcomponente del pixel se generó a partir de una muestra, como "caracteres orientados a los subcomponentes" . Los caracteres orientados a los subcomponentes se contrastan con las imágenes tipicas en las cuales se usa una sola muestra para generar todos los valores de los subcomponentes del pixel para un pixel dado. Se genera una representación de mapa de bits del carácter orientado a los subcomponentes mediante el uso de una sola muestra de imagen para generar cada subcomponente del pixel. Esto se puede realizar mediante, por ejemplo, ajustar a sobre escala una representación del carácter, colocando la representación ajustada a sobre escala del carácter en una cuadricula, y después asignando un valor de luminancia y posiblemente de transparencia a cada posición de la cuadricula en base a las propiedades del car cter ajustado a sobre escala en esa posición de la cuadricula. Después se presenta el carácter mediante la interconexión con una unidad de gráficos de hardware que realiza la presentación y animación final del carácter, La velocidad de presentación y animación se incrementa sustancialmente sobre el método anterior de realizar la presentación y la animación en el software. Posteriormente se mostrará que existen dificultades sustanciales al animar los caracteres orientados a los subcomponentes usando las unidades de gráficos de hardware convencionales. Estas dificultades se superan usando los principios de la presente invención. Las modalidades dentro del alcance de la presente invención pueden comprender un dispositivo de computación de uso especial o de uso general que incluya diferente hardware de computadora, como se describirá con mayor detalle posteriormente . Las modalidades dentro del alcance de la presente invención también incluyen medios legibles por computadora para llevar o tener instrucciones ejecutables por computadora o estructuras de datos almacenadas en las mismas. Esos medios legibles por computadora puede ser cualquier medio disponible que se pueda accesar mediante una computadora de uso general o de uso especial. A manera de ejemplo, y no de limitación, esos medios legibles por computadora pueden comprender medios de almacenamiento fisico tales como RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que se pueda usar para llevar o almacenar elementos de código de programa deseados en la forma de instrucciones ejecutables por computadora o estructuras de datos, y que se puedan accesar mediante una computadora de uso general o de uso especial. Cuando la información se transfiere o proporciona a través de una red u otra conexión de comunicaciones (ya sea alámbrica, inalámbrica, o una combinación de alámbrica e inalámbrica) a una computadora, la computadora propiamente ve la conexión como un medio legible por computadora. De esta manera, a cualquiera de tales conexiones se le denomina apropiadamente un medio legible por computadora. las combinaciones de los anteriores también se deben incluir dentro del alcance de los medios legibles por computadora, las instrucciones ejecutables por computadora comprenden, por ejemplo, instrucciones y datos que provocan que una computadora de uso general, una computadora de uso especial, o un dispositivo de procesamiento de uso especial, realice una cierta función o grupo de funciones. Aunque no se requiere, la invención se describirá en el contexto general de instrucciones ejecutables por computadora, tales como módulos de programas, que se ejecutan por medio de dispositivos de computación. Generalmente, los módulos de programas incluyen rutinas, programas, objetos, componentes, estructuras de datos, y similares, que realizan tareas particulares, o implementan tipos de datos abstractos particulares. Las instrucciones ejecutables por computadora, estructuras de datos asociadas, y módulos de programas representan ejemplos del elemento de código de programa para ejecutar los pasos y acciones de los métodos descritos en la presente . Aquellos expertos en la técnica notarán que la invención se puede practicar en medio ambientes de computación en red con muchos tipos de configuraciones de sistemas de computadora, incluyendo computadoras personales, dispositivos de mano, sistemas de múltiples procesadores, aparatos electrónicos de consumidor basados en microprocesador o programables, PCs en red, minicomputadoras , computadoras de múltiples usuarios, y similares. La invención también se puede practicar en medio ambientes de computación distribuida en donde las tareas las realizan dispositivos de procesamiento locales y remotos que están enlazados (ya sea por medio de enlaces alámbricos, enlaces inalámbricos, o por medio de una combinación de enlaces alámbricos e inalámbricos) a través de una red de comunicaciones. En un medio ambiente de computación distribuida, los módulos de programas pueden estar localizados en dispositivos de almacenamiento de memoria tanto locales como remotos. Con referencia a la Figura 4, un sistema ejemplar para implementar la invención incluye un dispositivo de computación de uso general en la forma de una computadora 420 que incluye una unidad de procesamiento 421, una memoria del sistema 422, y una barra colectora del sistema 423 que acopla diferentes componentes del sistema que incluyen la memoria del sistema 422 a la unidad de procesamiento 421. La barra colectora del sistema 423 puede ser cualquiera de muchos tipos de estructuras de barras colectoras incluyendo una barra colectora de memoria o controlador de memoria, una barra colectora periférica, y una barra colectora local que use cualquiera de una diversidad de arquitecturas de barra colectora. La memoria del sistema incluye la memoria de sólo lectura (ROM) 424 y la memoria de acceso directo (RAM) 425. En la ROM 424 se puede almacenar un sistema de entrada/salida básico (BIOS) 426, que contenga las rutinas básicas que ayuden a transferir la información entre los elementos adentro de la computadora 420, tal como durante el arranque.
La computadora 420 también puede incluir una unidad de disco duro magnético 427 para leer desde, y escribir en un disco duro magnético 439, una unidad de disco magnético 428 para leer desde, o escribir en un disco magnético removible 429, y una unidad de disco óptico 430 para leer desde, o escribir en un disco óptico removible 431 tal como una CD-ROM u otros medios ópticos. La unidad de disco duro magnético 427, la unidad de disco magnético 428, y la unidad de disco óptico 430 están conectadas a la barra colectora del sistema 423 por medio de una interfase de unidad de disco duro 432, una interfase de unidad de disco magnético 433, y una interfase de unidad óptica 434, respectivamente. Las unidades y sus medios legibles por computadora asociados proporcionan el almacenamiento no volátil de las instrucciones ejecutables por computadora, estructuras de datos, módulos de programas y otros datos para la computadora 420. Aunque el medio ambiente ejemplar descrito en la presente emplea un disco duro magnético 439, un disco magnético removióle 429, y un disco óptico removible 431, se pueden usar otros tipos de medios legibles por computadora para almacenar datos, incluyendo cartuchos magnéticos, tarjetas de memoria flash, discos versátiles digitales, cartuchos de Bernoulli, RAMs, ROMs, y similares . El elemento de código de programa que comprende uno o más módulos de programa se puede almacenar en el disco duro 439, el disco magnético 429, el disco óptico 431, la ROM 424 o la RAM 425, que incluyen un sistema operativo 435, una o más programas de aplicación 436, otros módulos de programa 437, y los datos del programa 438. Un usuario puede introducir comandos e información dentro de la computadora 420 a través del teclado 440, el dispositivo apuntador 442, u otros dispositivos de entrada (no se muestran) , tales como un micrófono, una palanca omnidireccional, un cojinete de juegos, un disco de satélite, un escáner, o similares. Estos y otros dispositivos de entrada frecuentemente se conectan a la unidad de procesamiento 421 a través de una interfase de puerto en serie 446, acoplada a la barra colectora del sistema 423. Alternativamente, los dispositivos de entrada pueden estar conectados por medio de otras interfases, tales como un puerto paralelo, un puerto de juegos, o una barra colectora universal en serie (USB, por sus siglas en inglés) .
A la barra colectora del sistema 423 también está conectado un monitor 447 u otro dispositivo de despliegue visual, por medio de una interfase, tal como un adaptador de video 448. En adición al monitor, las computadoras personales típicamente incluyen otros dispositivos de salida periféricos (no se muestran), tales como bocinas e impresoras. La computadora 420 puede operar en un medio ambiente en red, usando conexiones lógicas a una o más computadoras remotas, tales como las computadoras remotas 449a y 449b, Las computadoras remotas 449a y 449b pueden ser cada una otra computadora personal, un servidor, un enrutador, una PC de red, un dispositivo de pareación u otro nodo de red común, y típicamente incluyen muchos o todos los elementos descritos anteriormente con relación a la computadora 420, aunque en la Figura 4 únicamente se han ilustrado los dispositivos de almacenamiento de memoria 450a y 450b y sus programas de aplicación asociados 436a y 436b. Las conexiones lógicas que se ilustran en la Figura 4 incluyen una red de área local (LAN, por sus siglas en inglés) 451 y una red de área extendida (WAN, por sus siglas en inglés) 452 que se presentan en la presente a manera de ejemplo y no de limitación. Esos medio ambientes en red son el lugar común en las redes de computadoras en todas las oficinas o todas las empresas, las intranets y la Internet. Cuando se usa en un medio ambiente en red LAN, la computadora 420 se conecta a la red local 451 a través de una interfase de red o adaptador 453. Cuando se usa en un medio ambiente en red WAN, la computadora 420 puede incluir un módem 454, un enlace inalámbrico, u otro elemento para establecer comunicaciones a través de la red de área extendida 452, tal como la Internet. El módem 454, que puede ser interno o externo, se conecta a la barra colectora del sistema 423 por medio de la interfase de puerto en serie 446. En un medio ambiente en red, los módulos de programa que se ilustran relacionados con la computadora 420, o porciones de los mismos, se pueden almacenar en el dispositivo de almacenamiento de memoria remoto. Se notará que las conexiones de red que se muestran son ejemplares y se pueden usar otros elementos para establecer comunicaciones a través de la red de área extendida 452. La computadora 420 es un simple ejemplo de un dispositivo de computación de uso general que puede implementar los principios de la presente invención. En una modalidad, la computadora 420 puede estar físicamente estructurada como se muestra para la computadora 100 de la Figura 1. En ese caso, el monitor 447 puede ser, por ejemplo, el dispositivo de despliegue visual 104, La Figura 5 ilustra un sistema 500 que incluye diferentes elementos que se usan para presentar imágenes de caracteres en el monitor 447, de conformidad con la presente invención. La aplicación 436 y el sistema operativo 435 se implementan en la memoria del sistema 422 a medida que el procesador 421 ejecuta los diferentes métodos asociados con la aplicación y el sistema operativo. De conformidad con lo anterior, la aplicación 436 y el sistema operativo 435 se implementan en el software. El sistema 500 también incluye una unidad de gráficos de hardware 512. El sistema operativo 435 hace llamadas de función para, mediante lo mismo, controlar la unidad de gráficos de hardware 512. Frecuentemente se hace referencia al conjunto de reglas que gobiernan la estructura de las llamadas de función disponibles como una Interfase de Programa de Aplicación o API . De conformidad con lo anterior, la Interfase de Programa de Aplicación 511 se ilustra entre el sistema operativo 435 y la unidad de gráficos de hardware 512, indicando que las funciones se llaman y se regresan de conformidad con el conjunto de reglas definidas por la Interfase de Programa de Aplicación 511. Durante la operación, la aplicación 436 da salida a la información de texto al sistema operativo 435 para presentación en el monitor 447. La aplicación puede ser, por ejemplo, una aplicación de procesamiento de palabras, una aplicación de diseño de página Web, o cualquier otra de enumerable aplicaciones que dependen de que se despliegue visualmente el texto. La información de texto de salida incluye, por ejemplo, información que identifica los caracteres que se van a presentar, la fuente que se usará durante la presentación, el tamaño de puntos de los caracteres, y las texturas de los pinceles (es decir, valores de colores y transparencia) que se van a aplicar cuando se presente el carácter. El sistema operativo 435 incluye diferentes componentes responsables del control del despliegue visual del texto en el monitor 447. Estos componentes incluyen la información del despliegue visual 501, y una interfase de gráficos 502. La información de despliegue visual 501 incluye, por ejemplo, información sobre el ajuste a escala que se aplicará durante la presentación e/o información del color de fondo. La interfase de gráficos 502 incluye rutinas para procesar gráficos ?, asi como rutinas, tales como el entramador de tipo 503, para procesar caracteres que ocurren comúnmente tales como texto. El entramador de tipo 503 incluye representaciones de caracteres 504 y rutinas de presentación y entramado 505. Las representaciones de caracteres 504 pueden incluir, por ejemplo, información concernientes la linea externa del car cter tal como, por ejemplo, gráficos del vector, lineas, puntos y curvas. Existe una diversidad de técnicas convencionales para representar la linea externa de un carácter. La información de linea externa se puede usar para generar una representación de mapa de bits del carácter a niveles deseados de variación de resolución. Las rutinas de presentación y entramado 505 incluyen una subrutina de ajuste a escala 506, una subrutina de adelgazamiento 507, una subrutina de conversión por escaneo 508, y una subrutina de compensación de color 509. La operación de estas diferentes subrutinas 506, 507, 508 y 509 para generar un carácter orientado a los subcomponentes del pixel puede ser la misma que se describió anteriormente con respecto a la patente de Hill y colaboradores. Sin embargo, a diferencia de la patente de Hill y colaboradores, la interfase de gráficos 502 usa la interfase del programa de aplicación 511 para emitir llamadas de función a la unidad de gráficos de hardware 512, y para recibir potencialmente las respuestas de regreso desde la unidad de gráficos de hardware 512. La configuración de la interfase de gráficos 502 para interactuar con la unidad de gráficos de hardware 512 es mucho más que un problema trivial. Después de todo, el carácter deseado que se va a presentar o animar se ha construido de tal manera que cada subcomponente del pixel se genere a partir de un punto de muestreo diferente. Sin embargo, las unidades de gráficos de hardware convencionales están configuradas de tal manera que cada subcomponente del pixel en un pixel dado se genere a partir de un punto de muestra común, con los subcomponentes del pixel contribuyendo únicamente a la apariencia del pixel en ese punto de muestra. De conformidad con los principios de la presente invención, las unidades de gráficos de hardware convencionales se pueden usar para presentar y animar caracteres orientados a los subcomponentes del pixel, aunque las Interfases de Programas de Aplicación o APIs correspondientes a esas unidades de gráficos de hardware no estuvieran delineadas para tratar cada subcomponente del pixel como una fuente de intensidad luminosa separada. Con el propósito de modificar el carácter orientado a los subcomponente como es apropiado, y para emitir las llamadas de función apropiadas a la unidad de gráficos de hardware 512, la interfase de gráficos 502 incluye un módulo de adaptación 510. El módulo de adaptación 510 recibe una representación de mapa de bits de un car cter, asi como una representación de mapa de bits del pincel que se va a aplicar al car cter. La representación de mapa de bits del pincel incluye un valor de intensidad luminosa, así como un valor de transparencia para cada subcomponente del pixel. De esta manera, cada pixel RGB incluye seis valores, un valor de intensidad luminosa (brush.r) y un valor de transparencia (brush.ar) para el subcomponente de pixel rojo, un valor de intensidad luminosa (brush.g) y un valor de transparencia (brush.ag) para el subcomponente de pixel verde, y un valor de intensidad luminosa (brush.b) y un valor de transparencia (brush.ab) para el subcomponente de pixel azul. De conformidad con lo anterior, cada pixel de un carácter orientado a los subcomponentes incluye tres valores de intensidad luminosa, y tres valores de transparencia. Una Interf se de Programa de Aplicación (API) convencional para interconectarse con una amplia variedad de unidades de gráficos de hardware se llama DIRECTX® de MICROSOFT®. DirectX® permite la manipulación de pixeles que tienen tres valores de intensidad de color de pincel, uno para cada uno de rojo, verde, y azul. DirectX también permite un valor de transparencia que corresponda a la transparencia en el pixel como un todo. Sin embargo, como se mención previamente, el carácter orientado a los subcomponentes potencialmente incluye tres valores de transparencia para cada pixel, con el propósito de promover una sensación de alta resolución al carácter. El módulo de adaptación 510 compensa pos esta aparente incompatibilidad entre las APIs de hardware convencionales y el procesamiento de pixeles orientado a los subcomponentes de conformidad con la presente invención. La Figura 6 ilustra diferentes estructuras de datos que se usan con el propósito de realizar una operación relativamente compleja de presentar texto sobre una imagen de fondo no sólida tal como una imagen ya existente usando un pincel semitransparente no sólido. A veces se hace referencia a esta operación como "fusión armoniosa de colores". Refiriéndonos a la Figura 6, allí hay cuatro estructuras de datos relevantes que permiten que la fusión armoniosa de colores se realice sobre una base orientada a los subcomponentes . Tres de las estructuras de datos se proporcionan como entradas al módulo de adaptación 510. Estas incluyen una estructura de datos que define la forma del carácter (es decir, el glifo) , una estructura de datos que define el pincel y una estructura de datos que define el fondo (es decir, DST) sobre el cual se aplicará el pincel para formar el nuevo. La cuarta estructura de datos, llamada NewDST define la nueva imagen después de que se realiza la operación de la fusión armoniosa de colores. La estructura de datos del glifo se obtiene mediante la referencia a las cuatro columnas Cl a C4 del quinta fila R5 de la letra adelgazada i (ver el carácter 312' del patrón de cuadrícula 313B de la Figura 3) . Supongamos que esta letra i es una letra i blanca formada sobre un fondo negro. Refiriéndonos al elemento 313B, la columna 4 de la fila 5 es simplemente el fondo negro. De conformidad con lo anterior, la columna 4 de la estructura de datos del glifo en la Figura 6 contiene un valor de cero, indicativo de un fondo negro, para cada uno de los subcomponentes rojo, verde, y azul del pixel. De la misma manera, refiriéndonos al elemento 313B, los subcomponentes rojo y verde del primer pixel en la columna Cl, asi como el subcomponente azul del tercer pixel en la columna C3, son cada uno parte del fondo negro. De conformidad con lo anterior, a estos subcomponentes del pixel correspondientes también se les asigna un valor cero en la estructura de datos del glifo de la Figura 6. Con referencia al elemento 313B, los subcomponentes verde y azul del pixel en la columna C2 están mapeado completamente dentro del carácter i. De conformidad con lo anterior, se les asigna un valor máximo a estos subcomponentes de pixeles . En el caso en el que se usen 8 bits para asignar un valor entero a la intensidad de luminancia, se le puede asignar un valor entero de entre 0 y 255 a la intensidad de luminancia. De conformidad con lo anterior, se les asigna un valor de 255 a los subcomponentes de pixel correspondientes en la estructura de datos del glifo de la Figura 6. Nuevamente con referencia al elemento 313B, los subcomponentes de pixel remanentes (es decir, el subcomponente azul de la columna Cl, el subcomponente rojo de la columna C2, y los subcomponentes rojo y verde de la columna C3) contienen algo de fondo negro y porciones de carácter blanco. Se le asigna un valor entre 0 y 255 a los subcomponentes de pixel correspondientes del carácter glifo de la Figura 6 que es burdamente proporcional al porcentaje del área cubierta por el carácter blanco. Por ejemplo, el subcomponente azul de la columna Cl y el subcomponente verde de la columna 3 está cubiertos por las porciones del carácter blanco en una proporción de aproximadamente 155/255. De conformidad con lo anterior, a estos subcomponentes de pixel se les asignó un valor de 231 en el carácter glifo de la Figura 6. Como se mencionó anteriormente, la estructura de datos del glifo de la Figura 6 describe la forma de la letra i en las cuatro columnas Cl hasta C4 de la quinta fila R5 en la estructura de cuadricula 313B de la Figura 3. Para mayor claridad, se describe la operación de fusión armoniosa de colores con respecto a esta área limitada a pesar de que otras porciones del carácter también serian procesadas de una manera similar. Para mayor claridad, las otras estructuras de datos también están limitadas a este pequeña área del carácter . El ejemplo de la estructura de datos de pincel de la Figura 6 incluye seis valores para cada pixel RGB, una intensidad de luminancia y un valor de transparencia para cada uno de los tres subcomponentes del pixel RGB. El valor de la intensidad de luminancia varia aproximadamente sinusoidalmente entre 0 y 255 con un periodo de aproximadamente 4 columnas de pixel. El valor de la transparencia empieza en 255 y disminuye linealmente hacia abajo hasta 2. Un valor de 0 para el valor de transparencia de pincel indica que el pincel es completamente transparente, mientras que un valor de 255 indica que el pincel es completamente opaco. El ejemplo de la estructura de datos DST de la Figura 6 describe el fondo sobre el cual se va a aplicar el pincel. Si el fondo fuera simplemente un color sólido, cada pixel tendría los mismos valores para cada uno de los subcomponentes del pixel rojo, verde, y azul. No obstante, en este ejemplo, el fondo no es sólido como en el caso en donde se está presentando un carácter encima de una imagen ya existente . La estructura de datos NewDST está calculada para cada subcomponente de pixel basada en la siguiente ecuación de fusión armoniosa de colores (2) : NewDST = DST+(Brush.e - DST) *Glifo (F) *Brush. a (F) (2) en donde, Brush.c es el valor del color del pincel para el subcomponente; Brush.a es el valor de transparencia del pincel para el subcomponente; y Brush.a(F) es el valor de punto flotante de un Brush.a normalizado a un valor entre cero y uno; y Glifo (F) es el valor de punto flotante del Glifo normalizado a un valor entre cero y uno.
Para completar el ejemplo, esta ecuación se realiza para cada uno de los doce subcomponentes en el ejemplo para generar los valores para los doce subcomponentes del pixel en la nueva imagen Ne DS . Estos cálculos realizan la fusión armoniosa de colores para cada uno de los subcomponentes del pixel. No. obstante, los APIs de hardware convencional no están bosquejados para tratar a cada subcomponente de pixel como una fuente separada de intensidad de luminancia con sus propios puntos de muestra correspondientes. De conformidad con lo anterior, el módulo de adaptación 510 realiza algunas modificaciones en las estructuras de datos de entrada de la Figura 6 y entonces emita una secuencia no convencional de llamadas de función con el objetivo de obligar con "engaño" al hardware API para gue realice operaciones de fusión armoniosa de colores orientadas a los subcomponentes . En particular, la estructura de datos del glifo está tres veces ajustada a sobre escala. Entonces, el valor de intensidad de luminancia es asignado a un valor de transparencia "alfa" para el pixel. Esta modificación está ilustrada en la primera flecha 701 de la Figura 7. El número de columnas de pixel se triplica a doce. No obstante, solamente existe un valor de transparencia para cada pixel en el glifo. Lo anterior se ajusta con los requerimientos de Direct .
Con el propósito de eliminar efectos de borde, la subrutina de conversión de color 509 puede entonces asignar nuevamente un nuevo valor a cada columna que sea igual al promedio del valor anterior de la columna en curso, el valor anterior de la columna a la izquierda, y el valor anterior de la columna a la derecha. Por ejemplo, se le puede asignar nuevamente al pixel en la columna C8 un valor de 129, el cual es el promedio de 231, 155 y 0. Esta operación de promediar es ilustrada a través de la segunda flecha 702 en la Figura 7. Aun cuando la operación de promediar es ilustrada como que ocurre después de la operación de ajustar a sobre escala, la operación de promediar puede ocurrir antes de ajustar a sobre escala sin cambiar el resultado. En seguida, se pueden realizar tres pasos de presentación, un paso para generar un marco de medio aislante 703 de subcomponentes rojos, un paso para generar un marco de medio aislante 704 de subcomponentes verdes, y un paso para generar un marco de medio aislante 705 de subcomponentes azules. Con el propósito de cerrar estos tres canales de color en el presentador de salida, el módulo de adaptación 510 puede hacer las siguientes tres llamadas de función DirectX 8.1 a la unidad de gráficos de hardware 512. IDirect3DDevice8 : : SetRenderState (D3DRS_C0L0RWRITTEENABLE, COLOR RITEENABLE RED) IDirect3Device8 : : SetRenderState (D3DRS_C0L0RWRITEENABLE, COLORWRITEENABLE_GREEN) IDirect3Device8 : : SetRenderState (D3DRS_C0L0RWRITEENABLE, COLOR RITEENABLE_BLUE) El método "SetRenderState" establece un solo dispositivo de parámetro de estado de presentación. La variable del estado "D3DRS_C0L0RWRITEENABLE" permite una escritura por canal para un de medio aislante de color de objetivo especifico. La primera, segunda, y tercera llamadas de función especifica los medios aislantes de color rojo, verde, y azul, respectivamente, como el objetivo del medio aislante de color. En seguida, se presenta cada color. Para el color rojo, se usan los valores de transparencia de glifo que correspondieron anteriormente a un subcomponente de color rojo (es decir, las columnas Cl, C4, C7 y CIO) para poblar el medio aislante de objetivo rojo 703. De manera similar, se usan las columnas C2, C5, C8 y Cll para poblar el medio aislante de objetivo verde 704, y las columnas C3, C6, C9 y C12 se usan para poblar el medio aislante de objetivo azul 705. Se pueden presentar los colores a sus diversos medios aislantes de color usando las llamadas de función DirectX 8.1 de diferentes maneras. Por ejemplo, el pincel puede tener un color sólido en el que el mismo color se usa para cada pixel. Alternativamente, el pincel pudiera tener una textura a través de la cual se pueden usar diferentes colores para cada pixel. Asi mismo, el pincel puede ser opaco o semitransparente. La superficie del fondo puede ser la superficie final que se va a reflejar en la pantalla, o pudiera ser una superficie intermedia. Las superficies de fondo intermedias pudieran contener no solamente los valores de color RGB, sino que también los valores de transparencia para cada pixel. La siguiente porción de esta descripción describe una rutina C++ llamada "DrawGlyphExample" (Ejemplo de Dibujo de Glifo) que realiza una técnica de presentación en la cual la superficie de destino solamente tiene los valores de color RGB, pero no el valor de transparencia, y el pincel tiene tal textura para que cada pixel contenga cuatro valores, un valor para cada uno de los colores RGB, y un valor de transparencia que es común para todo el pixel. La rutina DrawGlyphExample opera para dibujar los cuatro pixeles de la Figura 7 que corresponden a las columnas Cl hasta C . Las porciones de código se presentarán segmento por segmento para claridad. Primero, se resumirán los diversos argumentos usados en el código. "pDev" es un apuntador a "Idirect3Ddevice8" el cual es un objeto DirectX 8.1 básico que implementa muchas partes del dibujo de API DirectX 8.1. "pGlyphTexture" es un apuntador a la textura que contiene datos de glifo preparados. Para claridad, se presume que esta textura tiene un tamaño de 256*256 y que contiene datos de transparencia de glifo correspondientes a las columnas Cl hasta Cl 12 en la esquina izquierda superior de la pantalla, como elementos [0] [0] a [0] [11]. "pBrushTexture" es un apuntador a la textura que contiene datos de pincel preparados . Para claridad, se presume que esta textura tiene un tamaño 256*256 y que contiene color de pincel y datos de transparencia correspondientes a las columnas Cl hasta C4 en la esquina superior izquierda, como elementos [0] [0] hasta [0] [3] . El siguiente ejemplo de código inicia la rutina de DrawGlyphsExample : Void DrawGlyphsExample (IDirect3Ddevice8 *pDev, IDirect3DTexture8 *pGlyphTexture, IDirect3DTexture8 *pBrushTexture) { Con el propósito de definir la forma del glifo y su posición en la pantalla, y también como se debe estirar y colocar el grabado de pincel en la pantalla, la información de la coordenada DirectX reside en la siguiente estructura denominada "TheVertex" (El Vértice) : Estructura del TheVertex { pública : flotar x, y, z, w; flotar bx, by; flotar gx, gy; } értices [4] Aquí, "x" y "y" representan un punto en la pantalla, "z" y "w" no se usan en este ejemplo bidimensional, pero se puede usar para gráficas tridimensionales, "bx" y "by" representan un punto en la superficie de la textura del pincel, "gx" y "gy" representan un punto en la superficie de textura del glifo . La forma del glifo es rectangular, de tal manera que la definición de coordenadas completa requiere de una configuración de cuatro vértices. Los siguientes operadores llenan los cuatro vértices con coordenadas particulares que coinciden con el ejemplo en la Figura 7: #define X 0 #define Y 0 #define W 4 ttdefine H 4 vértices [0] . x = X; vértices [0] .y - Y; vértices [1] . x = X+W; vértices [1] .y = Y; vértices [2] . = X+W; vértices [2] .y = Y+H; vértices [3] .x = X; vértices [3] .y = Y+H En este segmento, "X" será la coordenada X en la esquina superior izquierda del glifo de las imágenes de glifo que resultan como se colocaron en la ventana de la pantalla. "Y" será la coordenada Y de esta esquina como se colocó en la ventana de la pantalla. "W" es el ancho del rectángulo del glifo que resulta en la ventana de la pantalla. "H" será la altura del rectángulo del glifo que resulta en la ventana de la pantalla. Las siguientes dos lineas (cuatro en español) se usan para eliminar la tercera dimensión: vértices [0] . z = vértices [ 1 ]. z = vértices [2] . z = vértices [ 3 ]. z = 0; vértices [0] .w = vértices [1] .w = vértices [2] . w = vértices [3] .w = 1; Lo siguiente define los vértices de la textura del glifo . #define GWT 256. f #define GHT 256. f #define GX 0 #define GY 0 #define GW 12 #define GH 1 vértices [0] . gx (GX )/GWT; vértices [0] . gy = (GY ) /GH ; vértices [1] . gx (GX+GW) /GWT; vértices [ 1] . gy = GY ) /GHT; vértices [ 2 ] . gx (GX+GW) /GWT; vértices [ 2 ]. gy = (GY+GH) /GHT; vértices [3] . gx (GX )/G T; vértices [3] .gy = (GY+GH) /GHT; En este segmento, "GWT" será el ancho de toda la textura del glifo, "GHT" será la altura de toda la textura del glifo, "GX" será la coordenada X de la información del glifo dentro de la superficie de la textura, "GY" es la coordenada Y de la información del glifo dentro de la superficie de la textura, "GW" es el ancho del rectángulo de datos del ajuste a sobre escala del glifo, y "GH" es la altura del rectángulo de datos del glifo. A continuación se definen las vértices de la textura del pincel: #define BWT 256. f #define BHT 256. f #define BX 0 #define BY 0 #define BW 12 #define BH 1 vértices [0] .bx (BX )B T vértices [0] .by = (BY )/BHT; vértices [1] .bx (BX+BW) /BWT; vértices [ 1 ]. y = (BY )/BHT; vértices [2 ] . x (BX+BW)/BWT, vértices [2] .by = (BY+BH) /BHT; vértices [3] . BX (BX )/BWT vértices [3] .by = (BY+BH) /BHT; En este segmento, "BWT" será el ancho de toda la textura del pincel, "BH " será la altura de toda la textura del pincel, "BY" es la coordenada Y de la información del pincel adentro de la superficie de textura, "BW" es el ancho de un rectángulo en la superficie del pincel que se debe mapear al glifo, y "BH" es la altura del rectángulo en la superficie del pincel que se debe mapear al glifo. A continuación, se hacen llamadas de una secuencia de ajuste API DirectX 8.1 preliminar. La presentación involucrará dos etapas de textura. La etapa de textura es la parte del hardware que es capaz de traer datos desde la textura y manipular los datos. Todas las etapas de textura funcionan en paralelo. La etapa de textura ejecuta las mismas operaciones en cada pixel en el flujo. El hardware convencional puede contener hasta ocho etapas de textura, que se pueden distinguir por números del 0 al 7. En este ejemplo, la etapa de textura 0 manejará los datos de textura del pincel. La siguiente llamada de función DirectX 8.1 ordena que la etapa de textura 0 use la textura del pincel: pDev->SetTextura ( 0 , pBrushTexture ) La siguiente llamada de función DirectX 8.1 instruye la etapa de textura 0 que traiga datos desde la textura, sin realizar ningún cálculo, de tal manera que el registro de salida de la etapa de textura 0 contiene los valores de brush.rgb y brush.a: pDev->SetTextureStageState (0, D3DTSS_C0LORARGI , D3DTA_TEXTURE) ; pDev->SetTextureStageState (0, D3D SS_ALPHAARGI , D3DTAJIEXTURE) ; pDev->SetTextureStageState ( 0 , D3DTSS_COLOROP, D3DTOP_, SELECTARGI); pDev->SetTextureStageState (0, D3DTSS_ALPHAOP, D3DTOP_, SELECTARGI) ; La siguiente llamada de función DirectX 8.1 instruye a la etapa de textura 0 que use el primer conjunto (bx, by) de la estructura del TheVertex: pDev->SetTextureStageState ( 0 , D3DTSS_TEXTCOORDINDEX, 0 ) ; La siguiente llamada de función DirectX 8.1 informa a la etapa de textura 0 que la coordenada de la textura es tridimensional : pDev->SetTextureStageState (0, D3DTSS_TEXTURETRA SFORMFLAGS , D3DTTFF_COUNT2) ; La Etapa de textura 1 manejará datos de textura del glifo. De conformidad con lo anterior, la siguiente llamada de función DirectX 8.1 ordena a la etapa de textura 1 que maneje los datos de textura del glifo: pDev->SetTexture ( 1, pGlyphTexture) La siguiente llamada de función DirectX 8.1 instruye al canal de color de la etapa de textura 1 que obtenga datos de la etapa de textura 0 sin realizar ningún cálculo adicional . pDev->SetTextureStageState (1, D3DTSS_COLORARG2 , D3DTA_CURRENT) ; pDev->SetTextureStageState (1, D3DTSS_COLOROP, D3DTOP_, SELECTARG2) ; La siguiente llamada de función DirectX 8.1 instruye al canal alfa de la etapa de textura 1 que obtenga el primer valor alfa de la etapa de textura 0, que traiga el segundo valor alfa de la textura, entonces que multiplique estos dos valores y transmita el resultado al registro de salida: pDev->SetTextureStageState (1, D3DTSS_ALPHAARGI , D3DTA_TEXTURE) ; pDev->SetTextureStageState ( 1, D3DTSS_ALPHAARG2 , D3DTA_CURRENT ) ; pDev->SetTextureStageState (1, D3DTSS_ALPHA0P, D3DTOP_MODULATE ) ; La siguiente llamada de función DirectX 8.1 instruye a la etapa de textura 1 que use el segundo conjunto (gx, gy) de la estructura del TheVertex: PDev->SetTextureStageState (1, D3DTSS_TEXC00RDINDEX, 1) ; La siguiente llamada de función DirectX 8.1 informa a la etapa de textura 1 que la coordinada de la textura es bidimensional : pDev->SetTextureStageState (1, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 ) ; El registro de salida de la etapa de textura 1 suministrará hasta este momento cuatro valores: brush.rgb y brush . a*glyph . a . La siguiente llamada de función DirectX 8.1 inhabilita la etapa de textura 2: pDev->SetTextureStageState (2, D3DTSS_COLOROP, D3DTOP_DISABLE) ; Como resultado, el registro de salida de la etapa de textura 1 será dirigida a la salida del entramador. La salida del entramador también es parte del hardware que es capaz de traer los datos desde un medio aislante de pixeles de destino, aceptar los datos desde un estado de etapa de textura particular, ejecutar una operación de fusión armoniosa de colores, y almacenar el resultado de regreso al medio aislante de destino. El entramador de salida también requiere de ajuste preliminar. La siguiente llamada de función DirectX 8.1 habilita la fusión armoniosa de colores : pDev->SetRenderState ( D3DRS_ALPHABLENDENABLE , TRUE) ; La siguiente llamada de función DirectX 8.1 da instrucciones al entramador para que multiplique los valores de color, obtenidos de la etapa de textura 1, por el valor alfa que también obtuvo de la etapa de textura 1 : pDev->SetRenderState (D3DTSS_SRCBLEND, D3DBLEND_SRCALPHA) ; Como resultado, el entramador ejecutará la fórmula newdst.rgb = dst . rgb* ( 1-stage . a) + stage . gb*stage . a, en donde stage. rgb = brush.rgb y stage. a = brush . a*glyp . a son los valores calculados por la etapa de textura 1, en donde "dst" y "newdst" significan valores de pixeles del medio aislante de destino. Finalmente los anterior da que newdst. rgb = dst.rgb + (brush. rgb-dst . gb) *brush. a*glyph. . De esta manera el entramador calculará tres números, uno para cada uno de los componentes rojo, verde y azul, respectivamente. No obstante, no todos estos tres serán almacenados, en vista de los ajustes adicionales que se establecen a continuación. La siguiente llamada de función DirectX 8.1 informa al dispositivo Direct3D del formato de la estructura del TheVertex : SetVertexShader (D3DFVF_XYZRHW| D3DFVF_TEX2) ; Entonces, la rutina realiza tres pasos para cada uno de los componentes de color: rojo, verde, y azul. El siguiente segmento de código presenta el componente de color rojo. El código incluye comentarios que explican el funcionamiento inmediato a ese código: { //cambiar las vértices del glifo por 1 pixel ajustado sobre escala a la izquierda. //Esto moverá e ectivamente los datos del glifo de tal manera que //los centros de los pixeles de la pantalla serán mapeados //a pixeles de glifo con Índices 0, 3, 6 y 9. Para (int i = 0; i < 4; i++) értices [i] .gx-=l/GWT; //instruir al entramador que almacene solamente los valores roj os : pDev->DrawPrimitiveUP (D3DPT_TRIANGLEFAN, 2, vértices, sizeof (TheVertex) ) ; } El siguiente segmento de código presenta el componente de color verde. { //cambiar las vértices del glifo por 1 pixel de regreso a la derecha . //Esto moverá efectivamente los datos del glifo de tal manera que los //centros de los pixeles de la pantalla serán mapeados //a pixeles del glifo con índices 1, 4, 7 y 10. Para(int i =0; i <4; i++) értices [i] . gx+=l/GWT; //instruir al entramador que almacene solamente los valores verdes : pDev->SetRenderState ( D3DRS_C0L0RWRI EENABLE, D3DC0L0RWRITEENABLE_GREEN) ; //Dibujar el rectángulo como un conjunto de dos triángulos adyacentes : pDev->DrawPrimitiveUP (D3DPT_TRIANGLEFAN, 2, vértices, sizeof (TheVertex) ) ; } El siguiente segmento de código presenta el componente de color azul. { //mover las vértices del glifo por 1 pixel más a la derecha.
//Esto moverá efectivamente los datos del glifo de tal manera que //los centros de los pixeles de la pantalla serán mapeados //a pixeles del glifo con Índices 2, 5, 8 y 11. Para(int i = 0; i< : i++) vértices [i] . gx+=l/GWT; //instruir al entramador que almacene solamente los valores azules : pDev->SetRenderState ( D3DRS_COLORWRITEENABLE , D3DC0L0RWRITEENABLE BLUE) ; //Dibuje el rectángulo como un conjunto de dos triángulos adyacentes : pDev->DrawPrimitiveUP ( D3DPT_TRIANGLEFAN, 2, értices, sizeof (TheVertex) ) ; } Por consiguiente, durante está técnica de presentación de tres pasos, la fórmula newdst.rgb = dst.rgb + (brush. gb-dst . rgb) *brush,a*glyph. a se ha calculado tres veces. Cada vez, se usaron los mismos valores de pincel, pero con valores diferentes de glyph.a en cada paso. Por consideración a la total integridad, la siguiente linea de código (es decir, el corchete de cierre) simplemente finaliza la rutina: }//Fin de la rutina de ejemplo Por consiguiente, con algunas manipulaciones preliminares de la estructura de los datos del glifo, y por medio de realizar la presentación usando tres pasos, cada paso que es presentado de una manera no estándar, se le podría ocasionar a la unidad de gráficas de hardware 512 que realizará una presentación orientadas a los subcomponentes aun si la Interfase del Programa de Aplicación 511 no haya sido diseñada para tratar cada subcomponente de pixel como una fuente de intensidad luminosa por separado. De conformidad con lo anterior, los principios de la presente invención proveen para una apariencia de resolución más alta de presentación de un despliegue visual en el que cada subcomponente de pixel es tratado como una fuente de intensidad luminosa por separado generada desde un punto de muestra distintivo. Adicionalmente, las operaciones como la fusión armoniosa de colores se puede realizar por medio de una unidad de gráficas del hardware acelerando de esta manera el proceso de presentación. Después de haber revisado esta descripción, aquellas personas con experiencia ordinaria en la técnica reconocerán que también se pueden realizar otras operaciones en la imagen orientada al subcomponente usando la unidad de gráficas del hardware 512. En particular, los principios de la presente invención se pueden usar a escala y girar un carácter dado sobre un fondo usando la aceleración del hardware. Usando la subrutina de ejemplo que se acaba de describir, uno pudiera usar los principios de la presente invención para lograr los efectos tales como rotación y escalar por medio de cambiar los valores de vértices [i] . y vértices [i] . y. Se puede colocar el glifo sobre un área deseada de la ventana de la pantalla, con todos los cálculos para las transformaciones del glifo y del pincel que se proporcionan automáticamente por medio del hardware controlado por la emisión de DirectX 8.1, por ejemplo, la subrutina de ejemplo que se indica anteriormente. Para cada pixel en la pantalla, el hardware calculará los puntos correspondientes en las texturas del glifo y del pincel. Para las transformaciones afines arbitrarias, típicamente las coordenadas de las vértices no serían un valor entero. En ese caso, el hardware convencional puede usar los enteros más cercanos a los índices para traer valores de puntos correspondientes desde la textura. No obstante, este redondeo produce una fotografía un tanto áspera. Se puede refinar la fotografía por medio de usar ajustes DirectX 8.1 para forzar al hardware que use partes fraccionadas de coordenadas de textura calculadas para interpolación bilineal entre cuatro puntos cercanos. Lo anterior se puede lograr por medio de seguir los siguientes ajustes DirectX 8.1: pDev->SetTextureStageState ( 1 , D3DTSS_MAGFILTER, D3D FG_LINEAR) ; pDev->SetTextureStageState (1, D3DTSS_MINFILTER, D3DTFG_LINEAR) ; La interpolación bilineal propicia un estiramiento suave y una apelación visual mejorada de imágenes de glifo animadas. A pesar de la interpolación bilineal requiere cálculos significativos, la velocidad de presentación se ve sustancialmente sin ser afectada cuando se usa el hardware convencional. Lo anterior es en vista de que se les proporcionan estos cálculos en partes de hardware por separado que funcionan en paralelo con las partes de hardware que cumplen con las llamadas de función DirectX 8.1 enumeradas en la subrutina de ejemplo. La transformación a escala que se mencionó anteriormente no requiere de reconstrucción de textura de glifo y de pincel. Cuando se genera el siguiente marco, solamente cambia la información de coordenadas. No obstante, el ajuste a escala está relacionado con cómo se prepara la textura del glifo. Cuando no se requiere la transformación, se usaría la rutina de compensación de color 509 de la Figura 5, y el promedio representado por la flecha 702 en la Figura 7 no es usado. En contraste, cuando se aplica y se le da animación a la transformación (cambiada en cada marco) , se puede reducir el efecto de oscilación de color por medio de abstenerse de la rutina de compensación de color 509 precedente, y en su lugar usar el promedio representado por la flecha 702. En un sentido, el procedimiento de promediar 702 es una clase especial de rutina de compensación de color que suministra equilibrio de color cuando el glifo está a escala . Puesto que estas diversas operaciones tal como fusión armoniosa de colores, poner a escala, y girar se pueden realizar con la asistencia de unidades de gráficas de hardware las cuales típicamente pueden realizar esas operaciones más rápidamente que en el software, se pudiera mejorar significativamente la presentación y animación de un carácter dado. La presente invención puede incorporarse en otras formas específicas sin alejarse de su espíritu o de sus características esenciales. Las modalidades descritas se considerarán en todos los respectos solamente como ilustrativos y no restrictivos. El alcance de la invención es, por consiguiente, indicado por las reivindicaciones que se anexan más bien que por la descripción que antecede. Todos los cambios que ocurran están dentro del significado y rango de equivalencia de las reivindicaciones que se deben adoptar dentro de su alcance. Lo que se está reivindicando y se desea asegurar por medio de la Patente de Cartas de los Estados Unidos de Norteamérica es :

Claims (22)

REIVINDICACIONES
1. En un sistema de computadora que incluye una unidad de procesamiento, una unidad de gráficos de hardware, y un dispositivo visual para desplegar visualmente una imagen, la unidad de gráficos de hardware capaz de responder a llamadas de función recibidas por medio de una interfase de programa de aplicación, el dispositivo de despliegue visual teniendo una pluralidad de pixeles, cuando menos algunos de la pluralidad de pixeles incluyendo una pluralidad de subcomponentes de pixel, cada uno de diferente color, un método para presentar caracteres orientados a los subcomponentes dentro de la imagen desplegada visualmente, usando la unidad de gráficos de hardware, el método comprendiendo lo siguiente: una acción de generar una representación de mapa de bits de un carácter orientado a los subcomponentes, mediante el uso de una muestra para generar cada subcomponente del pixel; y una acción de presentar el carácter orientado a los subcomponentes en el dispositivo de despliegue visual por medio de hacer una o más llamadas de función a la unidad de gráficos de hardware, usando la interfase de programa de aplicació .
2. Un método de conformidad con la Reivindicación 1, en donde la acción de presentar el carácter orientado a los subcomponentes en el dispositivo de despliegue visual comprende lo siguiente: una acción de fusionar armoniosamente los colores del car cter orientado a los subcomponentes sobre un fondo, por medio de hacer una o más llamadas de función a la unidad de gráficos del hardware.
3. Un método de conformidad con la Reivindicación 2, en donde la acción de fusionar armoniosamente los colores del carácter orientado a los subcomponentes en el dispositivo de despliegue visual comprende lo siguiente: una acción de fusionar armoniosamente los colores del carácter orientado a los subcomponentes en una imagen de fondo no sólido, por medio de hacer una o más llamadas de función a la unidad de gráficos del hardware.
4. Un método de conformidad con la Reivindicación 2, en donde la acción de fusionar armoniosamente los colores del carácter orientado a los subcomponentes comprende lo siguiente: una acción de fusionar armoniosamente los colores del carácter orientado a los subcomponentes sobre un fondo, usando un "pincel semitransparente, por medio de hacer una o más llamadas de función a la unidad de gráficos del hardware.
5. Un método de conformidad con la Reivindicación 1, en donde la acción de presentar el carácter orientado a los subcomponentes en el dispositivo de despliegue visual comprende lo siguiente: una acción de girar el carácter orientado a los subcomponentes sobre un fondo, por medio de hacer una o más llamadas de función a la unidad de gráficos del hardware.
6. Un método de conformidad con la Reivindicación 1, en donde la acción de presentar el carácter orientado a los subcomponentes en el dispositivo de despliegue visual comprende lo siguiente: una acción de ajusfar a escala el carácter orientado a los subcomponentes sobre un fondo, por medio de hacer una o más llamadas de función a la unidad de gráficos del hardware.
7. Un método de conformidad con la Reivindicación 1, en donde la acción de presentar el carácter orientado a los subcomponentes en el dispositivo de despliegue visual comprende lo siguiente: una acción de presentar el carácter orientado a los subcomponentes en el dispositivo de despliegue visual, por medio de hacer una o más llamadas de función que sean compatibles con DirectX.
8. Un método de conformidad con la Reivindicación 1, en donde la Interfase de Programa de Aplicación está configurada para tratar cada pixel como una sola fuente de intensidad de luminancia, en lugar de tratar cada subcomponente del pixel como una sola fuente de intensidad de luminancia.
9. Un método de conformidad con la Reivindicación 8, en donde el método adicionalmente comprende lo siguiente: una acción de procesar el car cter orientado a los subcomponentes para interconectarse con la Interfase de Programa de Aplicación.
10. Un método de conformidad con la Reivindicación 9, en donde la acción de presentar el carácter orientado a los subcomponentes en el dispositivo de despliegue visual comprende lo siguiente: una acción de definir un canal de color para cada tipo de subcomponente de pixel; y una acción de poblar por separado un medio aislante de color distinto para cada canal de color.
11. Un producto de programa de computadora para usarse en un sistema de computadora que incluya una unidad de procesamiento, una unidad de gráficos de hardware, y un dispositivo visual para desplegar visualmente una imagen, la unidad de gráficos de hardware capaz de responder a llamadas de función recibidas por medio de una interfase de programa de aplicación, el dispositivo de despliegue visual teniendo una pluralidad de pixeles, cuando menos algunos de la pluralidad de pixeles incluyendo una pluralidad de subcomponentes de pixel, cada uno de diferente color, el producto de programa de computadora para implementar un método para presentar caracteres orientados a los subcomponentes dentro de la imagen desplegada visualmente, usando la unidad de gráficos de hardware, el producto de programa de computadora comprendiendo uno o más medios legibles por computadora que tienen almacenados en los mismos lo siguiente: instrucciones ejecutables por computadora para generar una representación de mapa de bits de un carácter orientado a los subcomponentes, por medio de tratar cada subcomponente del pixel como una fuente de intensidad de luminancia distinta; e instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware usando la interfase de programa de aplicación, las llamadas de función configuradas para provocar que la unidad de gráficos de hardware presente el carácter orientado a los subcomponentes en el dispositivo de despliegue visual.
12. Un producto de programa de computadora de conformidad con la Reivindicación 11, en donde el uno o más medios legibles por computadora son medios de almacenamiento físicos .
13. Un producto de programa de computadora de conformidad con la Reivindicación 11, en donde las instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware comprenden los siguiente: instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware que provoquen que la unidad de gráficos de hardware fusione armoniosamente los colores del carácter orientado a los subcomponentes sobre un fondo.
14. Un producto de programa de computadora de conformidad con la Reivindicación 13, en donde las instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware que provoquen que la unidad de gráficos de hardware fusione armoniosamente los colores del carácter orientado a los subcomponentes sobre un fondo comprenden los siguiente: instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware que provoquen que la unidad de gráficos de hardware fusione armoniosamente los colores del car cter orientado a los subcomponentes sobre un fondo de imagen no sólido.
15. Un producto de programa de computadora de conformidad con la Reivindicación 13, en donde las instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware que provoquen que la unidad de gráficos de hardware fusione armoniosamente los colores del carácter orientado a los subcomponentes sobre un fondo comprenden los siguiente: instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware que provoquen que la unidad de gráficos de hardware fusione armoniosamente los colores del carácter orientado a los subcomponentes sobre un fondo, usando un pincel semitransparente .
16. Un producto de programa de computadora de conformidad con la Reivindicación 11, en donde las instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware comprenden los siguiente: instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware que provoquen que la unidad de gráficos de hardware gire el carácter orientado a los subcomponentes sobre un ondo .
17. Un producto de programa de computadora de conformidad con la Reivindicación 11, en donde las instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware comprenden los siguiente: instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware que provoquen que la unidad de gráficos de hardware ajuste a escala el carácter orientado a los subcomponentes sobre un fondo.
18. Un producto de programa de computadora de conformidad con la Reivindicación 11, en donde las instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware comprenden los siguiente: instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware, usando DirectX.
19. Un producto de programa de computadora de conformidad con la Reivindicación 11, en donde las instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware comprenden los siguiente: instrucciones ejecutables por computadora para procesar el car cter orientado a los subcomponentes para que se interconecte con la Interfase de Programa de Aplicación.
20. Un producto de programa de computadora de conformidad con la Reivindicación 11, en donde las instrucciones ejecutables por computadora para hacer una o más llamadas de función a la unidad de gráficos de hardware comprenden los siguiente: instrucciones ejecutables por computadora para definir un canal de color para cada tipo de subcomponente del pixel; e instrucciones ejecutables por computadora para poblar por separado un medio aislante de color distinto para cada canal de color.
21. Un producto de programa de computadora de conformidad con la Reivindicación 11, en donde las instrucciones ejecutables por computadora para hacer una o más llamadas de función comprenden los siguiente: instrucciones ejecutables por computadora para proporcionar una interpolación de datos del glifo por medio del hardware de gráficos.
22. Un sistema de computadora que comprende lo siguiente : una unidad de procesamiento; una unidad de gráficos de hardware configurada para responder a llamadas de función por medio de una interfase de programa de aplicación; un dispositivo de despliegue visual para desplegar visualmente una imagen, y que tiene una pluralidad de pixeles, cuando menos algunos de la pluralidad de pixeles incluyendo una pluralidad de subcomponentes de pixel, cada uno de un color diferentes; y uno o más medios legibles por computadora que tienen instrucciones ejecutables por computadora almacenadas en los mismos, las cuales, cuando las ejecuta la unidad de procesamiento, están configuradas para ejemplificar concretamente lo siguiente: una unidad de ajuste a escala, configurada para ajustar a sobre escala una representación del carácter; una unidad de conversión por escaneo, configurada para colocar la representación del car cter ajustado a sobre escala sobre una cuadricula, y configurada para asignar cuando menos un valor de intensidad de luminancia a cada posición de la cuadricula, en base a las propiedades de la representación del car cter ajustado a sobre escala en esa posición de la cuadricula, en donde cada posición de la cuadricula corresponde a un subcomponente particular del pixel, en donde cada subcomponente del pixel de la representación del carácter ajustado a sobre escala corresponde a una o más posiciones de la cuadricula; y un módulo de adaptación configurado para hacer una o más llamadas de función a la unidad de gráficos de hardware a través de la interfase de programa de aplicación. Usando cuando menos los valores de intensidad de luminancia asignados a cada posición de la cuadricula, para provocar que la unidad de gráficos de hardware presente el carácter representado mediante la representación del carácter.
MXPA03002165A 2002-03-14 2003-03-12 Aceleracion de graficos mejorados por hardware de imagenes orientadas a subcomponentes de pixel. MXPA03002165A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/099,809 US6897879B2 (en) 2002-03-14 2002-03-14 Hardware-enhanced graphics acceleration of pixel sub-component-oriented images

Publications (1)

Publication Number Publication Date
MXPA03002165A true MXPA03002165A (es) 2005-02-14

Family

ID=27765457

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA03002165A MXPA03002165A (es) 2002-03-14 2003-03-12 Aceleracion de graficos mejorados por hardware de imagenes orientadas a subcomponentes de pixel.

Country Status (10)

Country Link
US (1) US6897879B2 (es)
EP (1) EP1345205A1 (es)
JP (1) JP4598367B2 (es)
KR (1) KR100848778B1 (es)
CN (1) CN100388179C (es)
AU (1) AU2003200970B2 (es)
BR (1) BR0300553A (es)
CA (1) CA2421894C (es)
MX (1) MXPA03002165A (es)
RU (1) RU2312404C2 (es)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563502B1 (en) * 1999-08-19 2003-05-13 Adobe Systems Incorporated Device dependent rendering
US7598955B1 (en) * 2000-12-15 2009-10-06 Adobe Systems Incorporated Hinted stem placement on high-resolution pixel grid
CN100389428C (zh) 2001-10-24 2008-05-21 Nik软件公司 用于利用图像基准点处理数字图像的方法和设备
US7602991B2 (en) * 2001-10-24 2009-10-13 Nik Software, Inc. User definable image reference regions
US6933947B2 (en) * 2002-12-03 2005-08-23 Microsoft Corporation Alpha correction to compensate for lack of gamma correction
US7580039B2 (en) * 2004-03-31 2009-08-25 Adobe Systems Incorporated Glyph outline adjustment while rendering
US7639258B1 (en) 2004-03-31 2009-12-29 Adobe Systems Incorporated Winding order test for digital fonts
US7719536B2 (en) * 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering
US7755786B2 (en) * 2004-05-03 2010-07-13 Microsoft Corporation Systems and methods for support of various processing capabilities
JP4528056B2 (ja) * 2004-08-09 2010-08-18 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、及び画像生成システム
KR100705188B1 (ko) * 2005-08-16 2007-04-06 주식회사 현대오토넷 문자 폰트 표시 방법
US7557817B2 (en) * 2005-08-23 2009-07-07 Seiko Epson Corporation Method and apparatus for overlaying reduced color resolution images
EP2023644A4 (en) * 2006-04-26 2012-01-18 Co Ltd Inlife-Handnet PORTABLE PERSONAL INTEGRATED STEREOSCOPIC VIDEO MULTIMEDIA DEVICE
US8339411B2 (en) * 2006-05-04 2012-12-25 Microsoft Corporation Assigning color values to pixels based on object structure
US7609269B2 (en) * 2006-05-04 2009-10-27 Microsoft Corporation Assigning color values to pixels based on object structure
US8159495B2 (en) * 2006-06-06 2012-04-17 Microsoft Corporation Remoting sub-pixel resolved characters
US20080068383A1 (en) * 2006-09-20 2008-03-20 Adobe Systems Incorporated Rendering and encoding glyphs
WO2008060276A1 (en) * 2006-11-14 2008-05-22 Microsoft Corporation Resource management for virtualization of graphics adapters
CN101918995B (zh) * 2008-04-18 2013-04-10 夏普株式会社 显示装置以及移动终端
US8692758B2 (en) * 2008-04-18 2014-04-08 Sharp Kabushiki Kaisha Display device and mobile terminal using serial data transmission
US20090276696A1 (en) * 2008-04-30 2009-11-05 Microsoft Corporation High-fidelity rendering of documents in viewer clients
BRPI0919433A2 (pt) * 2008-09-30 2015-12-15 Sharp Kk painel de exibição e método de inspeção de painel de exibição
KR101870677B1 (ko) * 2011-09-29 2018-07-20 엘지디스플레이 주식회사 유기 발광 표시 장치 및 그 구동 방법
CN104536713B (zh) * 2014-12-22 2020-03-17 小米科技有限责任公司 显示图像中的字符的方法及装置
KR101953503B1 (ko) 2015-02-26 2019-02-28 후아웨이 테크놀러지 컴퍼니 리미티드 Dpi 적응 방법 및 전자 디바이스
KR102396459B1 (ko) * 2015-08-31 2022-05-11 엘지디스플레이 주식회사 멀티비전 및 그의 구동방법
KR102608466B1 (ko) 2016-11-22 2023-12-01 삼성전자주식회사 영상 처리 방법 및 영상 처리 장치
US11836246B2 (en) * 2018-11-19 2023-12-05 Secure Micro Ltd Computer implemented method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237650A (en) * 1989-07-26 1993-08-17 Sun Microsystems, Inc. Method and apparatus for spatial anti-aliased depth cueing
US5684939A (en) * 1993-07-09 1997-11-04 Silicon Graphics, Inc. Antialiased imaging with improved pixel supersampling
US5651104A (en) * 1995-04-25 1997-07-22 Evans & Sutherland Computer Corporation Computer graphics system and process for adaptive supersampling
US5874966A (en) * 1995-10-30 1999-02-23 International Business Machines Corporation Customizable graphical user interface that automatically identifies major objects in a user-selected digitized color image and permits data to be associated with the major objects
GB9703565D0 (en) * 1997-02-20 1997-04-09 Division Ltd Efficient shared memory lookups in SIMD array-based graphics renderers and video processors
JP3045284B2 (ja) * 1997-10-16 2000-05-29 日本電気株式会社 動画表示方法および装置
US6952210B1 (en) 1997-12-05 2005-10-04 Adobe Systems Incorporated Method of generating multiple master typefaces containing kanji characters
US6535220B2 (en) * 1998-02-17 2003-03-18 Sun Microsystems, Inc. Static and dynamic video resizing
US6278466B1 (en) * 1998-06-11 2001-08-21 Presenter.Com, Inc. Creating animation from a video
US6188385B1 (en) * 1998-10-07 2001-02-13 Microsoft Corporation Method and apparatus for displaying images such as text
US6356278B1 (en) 1998-10-07 2002-03-12 Microsoft Corporation Methods and systems for asymmeteric supersampling rasterization of image data
US6393145B2 (en) * 1999-01-12 2002-05-21 Microsoft Corporation Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices
US6518974B2 (en) * 1999-07-16 2003-02-11 Intel Corporation Pixel engine
US6563502B1 (en) 1999-08-19 2003-05-13 Adobe Systems Incorporated Device dependent rendering
US6353220B1 (en) * 2000-02-01 2002-03-05 Raytheon Company Shielding of light transmitter/receiver against high-power radio-frequency radiation
AU2000256380A1 (en) 2000-06-26 2002-01-08 Microsoft Corporation Data structures for overscaling or oversampling character in a system for rendering text on horizontally striped displays
US7221381B2 (en) * 2001-05-09 2007-05-22 Clairvoyante, Inc Methods and systems for sub-pixel rendering with gamma adjustment

Also Published As

Publication number Publication date
US20030174145A1 (en) 2003-09-18
CA2421894A1 (en) 2003-09-14
JP4598367B2 (ja) 2010-12-15
AU2003200970A1 (en) 2003-10-02
CN1445650A (zh) 2003-10-01
AU2003200970B2 (en) 2008-10-23
CA2421894C (en) 2012-08-14
CN100388179C (zh) 2008-05-14
US6897879B2 (en) 2005-05-24
JP2003337562A (ja) 2003-11-28
BR0300553A (pt) 2004-08-10
KR100848778B1 (ko) 2008-07-28
RU2312404C2 (ru) 2007-12-10
KR20030074419A (ko) 2003-09-19
EP1345205A1 (en) 2003-09-17

Similar Documents

Publication Publication Date Title
MXPA03002165A (es) Aceleracion de graficos mejorados por hardware de imagenes orientadas a subcomponentes de pixel.
RU2258264C2 (ru) Способ и система для асимметричной растеризации данных изображения с избыточной выборкой
US7652674B2 (en) On the fly hardware based interdigitation
US6239783B1 (en) Weighted mapping of image data samples to pixel sub-components on a display device
US7224372B2 (en) Type size dependent anti-aliasing in sub-pixel precision rendering systems
KR20020008040A (ko) 표시 장치, 표시 방법 및 표시 제어 프로그램을 기록한기록 매체
EP1163657B1 (en) Weighted mapping of image data samples to pixel sub-components on a display device
US20070097145A1 (en) Method and system for supersampling rasterization of image data
US7495672B2 (en) Low-cost supersampling rasterization
JP3547250B2 (ja) 描画方法
US7940283B2 (en) Method and apparatus for pixel sampling
EP1431920B1 (en) Low-cost supersampling rasterization
JP3352458B2 (ja) グラフィック・ディスプレイ・システムにおける図形彩色方法
JP3544752B2 (ja) 画像情報生成方法、画像表示方法及び画像表示システム
JP2004078994A (ja) 描画方法
JPH08272351A (ja) 画像処理装置
Connal 2D Software Render Core for Prototyping in Development Environments
Su et al. P‐185L: Late‐News Poster: A Novel Rendering Algorithm with Adaptive Weighting Factors
JPH0359779A (ja) コンピュータグラフィック表示システムおよびデプスキューイングを行う方法

Legal Events

Date Code Title Description
FG Grant or registration