ES2236219T3 - Procesador de formas. - Google Patents

Procesador de formas.

Info

Publication number
ES2236219T3
ES2236219T3 ES01928048T ES01928048T ES2236219T3 ES 2236219 T3 ES2236219 T3 ES 2236219T3 ES 01928048 T ES01928048 T ES 01928048T ES 01928048 T ES01928048 T ES 01928048T ES 2236219 T3 ES2236219 T3 ES 2236219T3
Authority
ES
Spain
Prior art keywords
pixel
pixels
display
state
shape
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES01928048T
Other languages
English (en)
Inventor
Majid Picsel Technologies Limited ANWAR
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Picsel Research Ltd
Original Assignee
Picsel Research Ltd
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
Priority claimed from GBGB0009129.8A external-priority patent/GB0009129D0/en
Priority claimed from US09/703,502 external-priority patent/US7055095B1/en
Application filed by Picsel Research Ltd filed Critical Picsel Research Ltd
Application granted granted Critical
Publication of ES2236219T3 publication Critical patent/ES2236219T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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/10Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Quality & Reliability (AREA)
  • Image Generation (AREA)
  • Saccharide Compounds (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)
  • Polarising Elements (AREA)
  • Photoreceptors In Electrophotography (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

Método para representar una imagen como una visualización, que comprende una pluralidad de líneas de píxeles, que comprende: recibir un flujo de objetos (100) a visualizar, incluyendo cada objeto una forma (102) y un relleno (104); convertir (220, 512), para cada objeto, la forma del objeto en una pluralidad de líneas de datos de barrido codificados que tienen uno de al menos dos estados posibles para cada pixel de la visualización que incluyen un primer estado y un segundo estado, representando el primer estado un pixel dentro de la forma y representando el segundo estado un pixel fuera de la forma; y combinar (226, 516) cada una de la pluralidad de líneas de datos de barrido codificados y el relleno en una línea de un cuadro para la visualización; caracterizado porque: convertir la forma del objeto en una pluralidad de líneas de datos de barrido codificados comprende: a. representar cada pixel de la visualización como una matriz de subpíxeles, incluyendo la matriz de subpíxeles una o másregiones de subpíxeles que cubren el pixel; b. generar, para cada fila horizontal en la matriz de subpíxeles, datos de intersección que incluyen una coordenada para cada intersección entre la forma del objeto y la matriz de subpíxeles, c. procesar los datos de intersección para cada fila en la matriz de subpíxeles, para extraer series de subpíxeles ¿activados¿ que están dentro de la forma o de subpíxeles ¿desactivados¿ que están fuera de la fuera, y, para cada línea de la visualización: d. analizar las series extraídas de subpíxeles para identificar series de píxeles que están dentro de la forma, asociados con dicho primer estado, series de píxeles que están fuera de la forma, asociados con dicho segundo estado, y series de píxeles transicionales que están en los bordes de una forma, de manera que están parcialmente dentro y parcialmente fuera, asociados con un tercer estado; e. procesar adicionalmente aquellos píxeles identificados como píxeles transicionales para generar un valor en escala de grises para cada pixel transicional correspondiente a la proporción del pixel transicional que está dentro de la forma; f. generar una línea de datos de barrido codificados que comprenda la longitud de dichas series de píxeles en cada estado y, para píxeles transicionales en el tercer estado, el valor en escala de grises asociado.

Description

Procesador de formas.
Antecedentes de la invención
La representación gráfica de formas abstractas puede requerir un procesamiento sustancial de datos de descripción de forma. En el Java 2D API, que proporciona herramientas de software para procesar gráficos vectoriales bidimensionales, pueden encontrarse métodos conocidos para procesar formas. Sin embargo, sigue existiendo una necesidad de un motor de procesamiento de formas que reduzca la complejidad computacional para conservar recursos de procesamiento, particularmente en sistemas integrados que incluyen dispositivos de visualización.
La presente invención se refiere a la representación suavizada de formas rellenas, en la que el suavizado se realiza por muestreo de superficie sin ponderación.
La publicación "Computer Graphics: Principles and Practice", 1997, ADDISON-WESLEY, de J.D. Foley et al., como técnica anterior más próxima, da a conocer en las páginas 132-135 el principio de suavizado por muestreo de superficie sin ponderación y especifica que el valor gris para cada pixel de la forma se fija proporcional a una cantidad de superficie cubierta por el pixel en una rejilla de subpíxeles.
Además, en la página 983 hace referencia a la publicación "Tint Fill", Proc. Siggraph 79 (ACM), 1979, páginas 276 a 283, de A.R. Smith, para el llenado liso relacionado.
En el documento US 6.034.700 se da a conocer una implementación especial del suavizado empleando valores grises para píxeles en bordes de forma.
Sumario de la invención
El procesador de formas es un módulo de representación que puede utilizarse para enviar objetos gráficos que tienen un formato predefinido a una memoria intermedia de cuadros o a un dispositivo físico de visualización. Los documentos a representar por el procesador de formas pueden descomponerse en objetos gráficos primitivos y pasarse al procesador de formas, el cual puede a su vez componer los objetos para la visualización. El procesador de formas procesa ventajosamente cada objeto como valores en escala de grises hasta que se dé salida a datos de pixel para el objeto hacia una pantalla o una memoria intermedia de cuadros.
La invención se refiere a un método para representar una imagen como una visualización, tal como se define mediante la reivindicación 1 adjunta, un sistema para procesar objetos gráficos para representar una imagen como una visualización, tal como se define mediante la reivindicación 28 adjunta, y un programa informático para procesar objetos gráficos para representar una imagen como una visualización, tal como se define mediante la reivindicación 60 adjunta.
Un sistema para procesar objetos gráficos puede incluir un mecanismo de entrada para recibir un flujo de objetos, teniendo cada objeto un conjunto de parámetros que definen una imagen, y un procesador de objetos que procesa el flujo de objetos, objeto a objeto, para crear una matriz de pixeles.
Un parámetro del conjunto de parámetros puede ser una trayectoria, procesando el procesador de objetos la trayectoria para crear una matriz de píxeles representativa de un contorno de la imagen. El procesador de objetos puede suavizar los bordes de la trayectoria. El procesador de objetos puede codificar con segmentos en blanco el contorno de la imagen. Un parámetro del conjunto de parámetros puede ser una caja de delimitación (bounding box), indicando la caja de delimitación al procesador de objetos una superficie en la que ha de representarse el objeto. El procesador de objetos puede recibir un factor de lisura, especificando el factor de lisura una cantidad de sobremuestreo del objeto en relación con la matriz de píxeles. Un parámetro del conjunto de parámetros puede ser una transparencia, incluyendo la transparencia un valor de transparencia o un indicador de un mapa de bits de valores de transparencia para la forma.
Un parámetro del conjunto de parámetros puede ser un relleno, incluyendo el relleno al menos uno de un color, una textura o un mapa de bits. Los bordes suavizados pueden representarse como valores en escala de grises. Una curva de respuesta de tonalidad puede aplicarse a los valores en escala de grises de los bordes suavizados. La matriz de píxeles puede transmitirse a al menos uno de una pantalla, una impresora, un puerto de red o un archivo. Uno de los parámetros pueden ser datos de forma preprocesados. Los datos de forma preprocesados pueden incluir una máscara de recorte (clip mask). Los datos de forma preprocesados pueden incluir una transparencia. Los datos de forma preprocesados pueden incluir un relleno. El método puede incluir además almacenar datos de procesamiento intermedio en una antememoria, incluyendo los datos de procesamiento intermedio al menos uno de una máscara de recorte, un relleno o una transparencia.
Un método para representar imágenes descrito en la presente memoria incluye recibir un objeto a visualizar, incluyendo el objeto una forma y un relleno; convertir la forma del objeto en una pluralidad de líneas de datos de barrido codificados que tienen uno de al menos dos estados posibles para los píxeles de una visualización que incluyen un primer estado y un segundo estado, representando el primer estado un pixel dentro de la forma y representando el segundo estado un pixel fuera de la forma; y combinar cada una de la pluralidad de líneas de datos de barrido codificados y el relleno en una línea de un cuadro para la visualización.
Los datos de barrido codificados pueden incluir un tercer estado posible para un pixel de una visualización que representa una parte de un pixel dentro de la forma. La forma puede incluir una trayectoria que incluya una pluralidad de segmentos. El método puede incluir convertir uno o más de la pluralidad de segmentos de la trayectoria, que puede ser curva, en una pluralidad de segmentos no curvos. El cuadro puede incluir al menos uno de una memoria de vídeo o un dispositivo de visualización. El cuadro puede corresponder a al menos uno de una memoria no de vídeo y una memoria intermedia de formato de mapa de bits de salida. La forma puede incluir una máscara de recorte de datos de barrido codificados. Un valor para el tercer estado posible puede calcularse para un pixel dividiendo el pixel en una pluralidad de regiones de subpíxel, determinando cuáles de la pluralidad de regiones de subpíxeles se encuentran dentro de la forma y determinar una relación entre las regiones de subpíxeles de la pluralidad de regiones de subpíxeles dentro de la forma y la pluralidad de regiones de subpíxel. El valor puede representarse como un valor en escala de grises.
El objeto a visualizar puede incluir una transparencia, y la combinación puede incluir además combinar cada una de la pluralidad de líneas de datos de barrido codificados y la transparencia en una línea de un cuadro para la visualización. El objeto a visualizar puede incluir una transparencia, preprocesándose la transparencia según al menos uno de una corrección de profundidad en bits, una corrección de tonalidad, un escalamiento, una descompresión o una decodificación. La transparencia puede incluir un indicador de un mapa de bits de valores de transparencia para la forma. El relleno puede incluir al menos uno de un color, una textura o un mapa de bits. El método puede incluir almacenar la pluralidad de líneas de datos de barrido codificados como una máscara de recorte en una antememoria. El método puede incluir indexar la máscara de recorte según la forma.
Tal como se describe en la presente memoria, un método para suavizar acromáticamente los bordes de una imagen en color representada puede incluir recibir un objeto a visualizar, incluyendo el objeto una forma y un relleno, incluyendo el relleno uno o más colores; representar un pixel de una visualización como una matriz de subpíxeles, incluyendo la matriz de subpíxeles una o más regiones de subpíxeles que cubren el píxel; intersecar la forma con la matriz de subpíxeles; y convertir la matriz de subpíxeles en un valor en escala de grises para el pixel.
El método puede incluir combinar el valor en escala de grises para el pixel y el relleno correspondiente al pixel con un valor previo para el pixel. El método puede incluir repetir la recepción de un objeto que representa un pixel, intersecar la forma, convertir la matriz de subpíxeles y combinar para obtener una línea de barrido de píxeles. El método puede incluir codificar con segmentos en blanco los valores en escala de grises para la línea de barrido de píxeles. Una o más dimensiones de la matriz de subpíxeles pueden estar controladas por un valor de lisura.
Tal como se describe en la presente memoria, un método para alisar un borde de un objeto gráfico puede incluir recibir un objeto a visualizar, incluyendo el objeto una trayectoria que delinea el objeto, teniendo la trayectoria un interior y un exterior; sobremuestrear, para cada uno de una pluralidad de pixeles que intersecan la trayectoria, uno de los píxeles para obtener un valor en escala de grises representativo de una parte de uno de los píxeles que puede estar dentro de la trayectoria; y combinar la pluralidad de píxeles con los datos almacenados en una matriz de píxeles.
El método puede incluir, para cada pixel de la pluralidad de píxeles, ponderar un valor de relleno según el valor en escala de grises y desponderar los datos almacenados en la memoria de vídeo según el valor en escala de grises. El método puede incluir, para cada pixel de la pluralidad de píxeles, ponderar un valor de relleno para el pixel según un valor de transparencia y desponderar los datos almacenados en la matriz de pixeles según el valor de transparencia.
Tal como se describe en la presente memoria, un sistema para procesar objetos gráficos puede incluir medios de recepción para recibir un objeto a visualizar, incluyendo el objeto una forma, un relleno y una alfa; medios de conversión para convertir la forma del objeto en datos de barrido codificados que tengan uno de al menos dos estados posibles para píxeles que incluyen un primer estado y un segundo estado, representando el primer estado un pixel dentro de la forma y representando el segundo estado un pixel fuera de la forma; y un medio de combinación para combinar los datos de barrido codificados, el relleno y la alfa en una línea de un cuadro.
Los datos de barrido codificados pueden tener un tercer estado posible, incluyendo el tercer estado posible un valor en escala de grises que representa un pixel que puede estar en un borde de la forma, correspondiendo el valor en escala de grises a una parte del pixel que puede estar dentro de la forma. El cuadro puede corresponder a al menos uno de un visualizador, una impresora, un archivo o un puerto de red. El objeto puede incluir al menos uno de un relleno de fondo o un relleno de sustitución, combinando el medio de combinación el al menos uno del relleno de fondo o el relleno de sustitución en una línea de un cuadro.
Tal como se describe en la presente memoria, un programa informático para procesar objetos gráficos puede incluir un código ejecutable por ordenador para recibir un objeto a visualizar, incluyendo el objeto una forma, un relleno y una alfa; un código ejecutable por ordenador para convertir la forma del objeto en datos de barrido codificados que tengan uno de al menos dos posibles estados para píxeles de una matriz de píxeles que incluyen un primer estado y un segundo estado, representando el primer estado un píxel dentro de la forma y representando el segundo estado un píxel fuera de la forma; y un código ejecutable por ordenador para combinar los datos de barrido codificados, el relleno y la alfa en una línea de un cuadro de la matriz de píxeles.
La matriz de píxeles puede corresponder a al menos uno de un visualizador, una impresora, un archivo o un puerto de red. Los datos de barrido codificados pueden tener un tercer estado posible, incluyendo el tercer estado posible un valor en escala de grises que representa un pixel que puede estar en un borde de la forma, correspondiendo el valor en escala de grises a una parte del pixel que pueden estar dentro de la forma.
Tal como se describe en la presente memoria, un sistema para procesar objetos gráficos puede incluir un procesador, configurado el procesador para recibir un objeto gráfico que puede incluir una forma, un relleno y una transparencia, para convertir la forma del objeto gráfico en datos de barrido codificados que correspondan a píxeles interiores, píxeles exteriores y píxeles transicionales para una línea de barrido de una visualización, incluyendo cada pixel transicional un valor en escala de grises correspondiente a una parte del pixel dentro de la forma, y para combinar los datos de barrido codificados, el relleno y la alfa con una línea de datos de pixel; y una memoria que almacena la línea de datos de pixel, adaptada la memoria para proporcionar la línea de datos de pixel al procesador, y adaptada la memoria para almacenar una nueva línea de datos de pixel que pueda generarse cuando la línea de datos de pixel pueda combinarse con los datos de barrido codificados, el relleno y la transparencia.
El sistema puede incluir un visualizador configurado para visualizar la memoria. El procesador puede ser uno o más de un microprocesador, un microcontrolador, un microcontrolador integrado, un procesador programable de señales digitales, un circuito integrado de aplicación específica, una matriz de puertas programable o una matriz lógica programable. El sistema puede ser al menos uno de una impresora configurada para imprimir las líneas de datos de pixel almacenadas en la memoria, un dispositivo de almacenamiento configurado para almacenar las líneas de datos de pixel almacenadas en la memoria o un dispositivo de red configurado para dar salida a las líneas de datos de pixel almacenadas en la memoria. El procesador puede ser al menos uno de un chip, un conjunto de chips (chipset) o una pastilla (die). El procesador y la memoria pueden ser al menos uno de un chip, un conjunto de chips o una pastilla. El visualizador puede ser un visualizador de al menos uno de una agenda electrónica, un ordenador de mano, un dispositivo de juego portátil, un teléfono celular con capacidad de red, un asistente digital personal, un teléfono mejorado, un cliente ligero de red o un receptor decodificador integrado.
El visualizador puede ser al menos uno de una impresora o un trazador. El visualizador puede utilizarse en un sistema de gestión de documentos. El visualizador puede utilizarse en al menos una de una máquina de fax, una fotocopiadora o una impresora de un sistema de gestión de documentos. El visualizador puede utilizarse en un sistema para coche. El visualizador puede utilizarse en al menos uno de un reproductor de audio, un microondas, una nevera, una lavadora, una secadora de ropa, un horno o un lavavajillas. El procesador puede recibir una pluralidad de objetos gráficos y procesa la pluralidad de objetos gráficos en paralelo.
Breve descripción de los dibujos
Los anteriores y otros objetos y ventajas de la invención se apreciarán más plenamente a partir de la siguiente descripción adicional de la misma, con referencia a los dibujos adjuntos, en los que:
La figura 1 muestra una estructura de datos para un objeto gráfico que puede utilizarse con un procesador de formas;
la figura 2 es un diagrama de bloques funcionales de un procesador de formas;
la figura 3 representa un ejemplo de una operación sobre datos de intersección realizada por un proceso de intersección;
la figura 4 muestra una estructura de datos para datos de barrido codificados; y
la figura 5 es un diagrama de flujo de un proceso para procesar formas.
Descripción detallada de la(s) realización(ones) preferida(s)
Para proporcionar una comprensión global de la invención, a continuación se describirán ciertas realizaciones ilustrativas, incluyendo un procesador de formas bidimensionales que emplea un filtrado espacial y un control de tonalidad para los bordes de los objetos representados. Sin embargo, los expertos medios en la técnica entenderán que los métodos y sistemas descritos en la presente memoria pueden adaptarse adecuadamente a otras aplicaciones, tales como el procesamiento de formas tridimensionales, y pueden combinarse con un suavizado de imagen completa. Por ejemplo, puede combinarse una etapa de suavizado basto de imagen completa con el suavizado fino de bordes de objeto.
La figura 1 muestra una estructura de datos para un objeto gráfico que puede utilizarse con un procesador de formas. El objeto 100 gráfico, o sencillamente objeto 100, puede incluir una caja 101 de delimitación, una forma 102, un relleno 104 y una alfa 106. La forma 102 puede incluir una trayectoria 108 con parámetros 110 y 112 de trazo y relleno o una máscara 114 de recorte. El relleno 104 puede incluir un color 116 o un mapa 118 de bits. La alfa 106 puede incluir un valor 120 o una máscara 122.
La caja 101 de delimitación puede incluir una ubicación en la que ha de representarse el objeto 100 y puede definir una región en la que ha de dibujarse el objeto. Este parámetro puede emplearse, por ejemplo, para simplificar la representación de un arco mediante la combinación de una trayectoria circular con una caja 101 de delimitación que recubre un cuadrante del círculo.
La forma 102 puede incluir una trayectoria 108 que define una secuencia de elementos de trayectoria conectados utilizando una descripción de trayectoria de tipo PostScript. Se conocen otras representaciones de trayectoria, y también pueden utilizarse. La trayectoria 108 puede incluir, por ejemplo, segmentos de línea recta, curvas de Bezier con una dirección y una curvatura controladas por dos puntos u otras construcciones de trayectoria. La trayectoria 108 puede ser abierta o cerrada. A fin de soportar geometrías más complejas, la trayectoria 108 puede incluir regiones que se intersequen entre sí o múltiples regiones inconexas. El trazo 110 para la trayectoria 108 puede incluir parámetros o atributos que incluyen, por ejemplo, atributos de unión que especifican la representación para elementos de trayectoria unidos, tales como redondos, biselados o en inglete, y atributos de casquete que especifican la representación para un extremo de la trayectoria 108, tal como redondo, plano, cuadrado, triangular, etc. El relleno 112 puede incluir una regla de arrollamiento (winding rule) u otro algoritmo o parámetro para distinguir un interior de la trayectoria 108 de un exterior de la trayectoria 108 para que puedan rellenarse las regiones adecuadas. La máscara 114 de recorte puede incluir un indicador de una representación almacenada temporalmente del objeto 100 gráfico a fin de reducir el procesamiento redundante de objetos recurrentes.
El relleno 104 puede incluir generalmente información concerniente a cómo ha de rellenarse una forma 102. Aquélla puede incluir, por ejemplo, un color 116, que puede ser un valor de color definido en una paleta, tal como una paleta de 8 bits, o puede ser un color basado en componentes tal como un RGB de 24 bits, un RGB de 15 bits, un CMYK de 32 bits, o el color 116 puede ser un valor en escala de grises. El relleno 104 puede incluir un mapa 118 de bits que incluya un mapa de bits de una textura a usar para rellenar la forma 102. El mapa 118 de bits puede incluir en su lugar un indicador de un mapa de bits a usar para rellenar la forma 102. Un mapa de bits así puede proporcionarse en cualquier variedad de modelos de color, tales como los empleados parar el relleno 104.
La alfa 106 puede incluir generalmente información relativa a una transparencia de la forma 102 cuando se rellene y visualice. La alfa puede incluir un valor 120 que es un valor individual que describe una transparencia para toda una forma 102 que normalmente va de cero (transparente) a uno (opaca). Opcionalmente, la alfa 106 puede incluir una máscara 122 que es una máscara alfa, o un indicador de una máscara alfa, de valores para cada pixel de la forma 102 representada.
A un experto en la técnica le resultarán evidentes adaptaciones adecuadas de, y mejoras apropiadas a, las estructuras de datos anteriores. En particular, el objeto 100 gráfico puede incluir otras características descritas en especificaciones de representación tales como PostScript, el Java 2D API o las bibliotecas Quartz y QuickDraw utilizadas, por ejemplo, en el sistema operativo Mac OS X.
La figura 2 es un diagrama de bloques funcionales de un procesador de formas. En general, el procesador 200 de formas proporciona un mecanismo de entrada para recibir un flujo de objetos gráficos e incluye un procesador de objetos que procesa el flujo de objetos, objeto a objeto, para crear una matriz de píxeles para visualizarlo en una pantalla. El procesador 200 de formas recibe un objeto gráfico descrito por una forma, mostrada en la figura 2 como una trayectoria 202, una caja 203 de delimitación, un relleno 204 y una alfa 206, que pueden corresponder, por ejemplo, a los componentes del objeto 100 gráfico descrito más arriba con referencia a la figura 1. El procesador 200 de formas puede recibir una máscara 232 de recorte en vez de una trayectoria 202, que puede ser pasada por el procesador 200 de formas directamente a un combinador 226 de líneas de barrido, tal como se describirá más adelante.
Los datos de control para el procesador 200 de formas pueden incluir una caja 208 de delimitación de pantalla, una lisura 210, una curva 212 de respuesta de tonalidad, una profundidad 214 en bits, un espacio 216 de color y una dirección 218 base de pantalla. Estos datos de control pueden almacenar parámetros físicos relativos a una visualización, tales como la dirección 218 base de pantalla o la curva 212 de respuesta de tonalidad. La curva 212 de respuesta de tonalidad puede regular los valores en escala de grises de los datos de barrido codificados, tal como se describe más adelante, según unas alinealidades para un dispositivo de visualización. Por ejemplo, un valor de intensidad del 50% de la escala total puede dar como resultado una intensidad de pixel del 65% para un dispositivo particular. La curva 212 de respuesta de tonalidad puede compensar estas alinealidades utilizando una tabla de consulta o algún otro enfoque algorítmico o basado en consulta. Otros datos de control pueden corresponder a parámetros especificados por un usuario (o programador). Por ejemplo, la lisura 210, que almacena un valor para una finura o granularidad de un procesamiento de bordes, puede ser un valor (o valores) que describa una matriz NxN de subregiones para cada pixel de visualización, tal como se describirá más adelante.
La trayectoria 202 se facilita a un convertidor 220 de barrido, el cual, utilizando datos de una intersección 221, proporciona datos de intersección a una memoria 222 intermedia de intersecciones. Un proceso 224 de intersección procesa adicionalmente los datos de intersección y proporciona una salida a un combinador 226 de líneas de barrido, el cual combina la salida con otros descriptores y datos de control de objeto gráfico para generar una salida hacia una memoria de vídeo o un dispositivo físico de visualización. Los datos intermedios generados por el procesador 200 de formas pueden incluir una caja 228 de delimitación de trayectoria, una trayectoria 230 aplanada y una máscara 232 de recorte. La máscara 232 de recorte o la trayectoria 230 aplanada pueden emplearse independientemente del procesador 200 de formas o pueden volverse a presentar como una entrada válida, reduciendo así una redundancia de llamadas repetidas al procesador 200 de formas. El procesador 200 de formas puede generar otros datos intermedios (no mostrados) a los que dar salida, que incluyen como ejemplos entradas intersecadas u otros ajustes de preprocesamiento, tales como una descompresión de mapas de relleno, y conversiones, correcciones, ajustes y escalamiento de espacios de color.
Antes del procesamiento de líneas de barrido, el convertidor 220 de barrido puede preprocesar la trayectoria 202. Por ejemplo, pueden evitarse conversiones de barrido innecesarias intersecando ciertos datos y determinando si se requiere un procesamiento. Por ejemplo, la caja 203 de delimitación para la trayectoria 202 y la caja 208 de delimitación de pantalla pueden intersecarse en la intersección 221. Si la salida de la intersección 221 es nula, entonces no se requiere procesamiento adicional. Aunque no se muestran explícitamente en la figura 2, pueden obtenerse otras intersecciones, tales como una intersección con una caja de delimitación para el relleno 204 (que puede ser inferida por el procesador 200 de formas a partir de los datos de relleno) o una caja de delimitación para la alfa 206 (que, de nuevo, puede ser inferida por el procesador 200 de formas a partir de los datos de alfa). Si un conjunto de intersecciones es nulo, no se requiere procesamiento para la trayectoria 202 y una siguiente trayectoria 202 secuencial puede procesarse inmediatamente. Tal como se ha indicado anteriormente, si una máscara 232 de recorte se presenta como una forma, en vez de la trayectoria 202, la máscara 232 de recorte puede pasarse directamente al combinador 226 de líneas de barrido, circunvalando así la conversión de barrido y otras etapas de procesamiento de trayectorias. Cualquier dato intermedio de procesamiento puede almacenarse de esta manera para evitar o reducir el procesamiento redundante, incluyendo, por ejemplo, la máscara 232 de recorte, los datos de relleno, los datos de alfa, los datos de trayectorias aplanadas, etc.
El convertidor 220 de barrido puede convertir la trayectoria 202 en intersecciones con líneas de barrido de un dispositivo de visualización objetivo. Esta función puede realizarse de manera sobremuestreada utilizando la lisura 210. Es decir, antes de localizar intersecciones, cada línea de píxeles puede dividirse en regiones de subpíxeles, o matrices de subpíxeles, empleando la lisura 210 como parámetro. Así que, por ejemplo, una lisura 210 de dos puede dar como resultado el procesamiento de una línea de barrido de cien píxeles para generar datos de intersección como una matriz de dos por doscientos de regiones de subpíxeles que cubren la misma superficie de una visualización en pantalla. Una lisura 210 de cuatro puede dar como resultado el procesamiento de la misma línea de barrido para generar datos de intersección como una matriz de cuatro por cuatrocientos de regiones de subpíxeles, etc.
La trayectoria 202 puede aplicarse entonces a las regiones de subpíxeles. Las intersecciones, o datos de intersección, resultantes pueden almacenarse horizontalmente línea a línea, incluyendo una coordenada x para cada intersección, junto con un sentido (por ejemplo, arriba o abajo) en el que la trayectoria interseca un eje horizontal. Se conocen otras representaciones y también pueden ser utilizadas por el convertidor 220 de barrido. El convertidor 220 de barrido puede generar la caja 228 de delimitación de trayectoria. El convertidor 230 de barrido también puede generar una trayectoria 230 aplanada como etapa intermedia, en la que segmentos continuos no lineales, tales como curvas de Bezier, se convierten en una serie de segmentos de trayectoria recta. Esto puede reducir la complejidad computacional de las operaciones asociadas con la trayectoria. Los datos de intersección pueden almacenarse en la memoria 222 intermedia de intersecciones.
En general, el proceso 224 de intersección analiza filas de regiones de subpíxeles e identifica series de píxeles que están fuera de una forma, píxeles que están dentro de una forma y píxeles transicionales. Los píxeles transicionales, aquellos que se encuentran en los bordes de una forma e intersecan la forma de manera que están parcialmente dentro y parcialmente fuera de la forma, pueden alisarse para eliminar o reducir las irregularidades u otros artefactos asociados con la representación. Esta técnica de sobremuestreo se describe más adelante con más detalle con referencia a la figura 3. Los píxeles interiores, los píxeles exteriores y los píxeles transicionales pueden combinarse entonces en la memoria de vídeo, tal como se describirá más adelante.
La figura 3 representa un ejemplo de una operación sobre datos de intersección realizada por el proceso 224 de intersección. En el ejemplo de la figura 3, los datos de intersección corresponden a una línea de barrido de cien píxeles, con una lisura 210 que tiene un valor correspondiente a una matriz de subpíxeles de cuatro por cuatro para cada pixel de línea de barrido.
Una tabla 301 muestra datos de intersección recibidos de la memoria 222 intermedia de intersecciones de la figura 2. Tal como se muestra en la tabla 301, los datos de intersección pueden incluir generalmente coordenadas x en las que la trayectoria 202 interseca regiones de subpíxeles, junto con un sentido de la trayectoria 202. Para la primera fila, la fila N, la trayectoria 202 interseca el 40° subpíxel en un sentido ascendente. En la misma fila, la trayectoria 202 interseca el 140° subpíxel en un sentido descendente. En la tabla 301, también se establecen los datos de intersección para las filas N+1 a N+3. Se apreciará que este es un ejemplo específico y que, dependiendo de la complejidad de la trayectoria 202, pueden proporcionarse más o menos datos de intersección para una fila de regiones de subpíxeles.
Los datos de intersección pueden procesarse para extraer series de "activado" o "desactivado" según una regla de arrollamiento o un método similar. En el ejemplo mostrado en la figura 3, los datos de intersección de la tabla 301 pueden procesarse de esta manera para generar los datos codificados de una tabla 302 por la aplicación de una regla de arrollamiento par/impar, en este ejemplo.
Tales como se representa en la tabla 302, los datos para cada fila de subpíxeles pueden codificarse como un par de datos que incluye una bandera de activación/desactivación y una serie de subpíxeles adyacentes en la fila que comparten la bandera de activación/desactivación. En general, el final de una serie puede identificarse mediante una transición del interior al exterior o viceversa, tal como se determina aplicando una regla de arrollamiento o una técnica similar a los datos de intersección. A partir de estos datos, pueden extraerse series de datos que reflejen píxeles de la visualización objetivo que estarán completamente dentro o fuera de la forma que describen los datos de intersección. En el ejemplo de la tabla 302, puede reconocerse fácilmente una primera serie de cinco píxeles "desactivados" que están fuera de la forma, correspondiente a la filas N a N+3 y a unas regiones 1-20 horizontales de subpíxeles.
Tal como se representa en la tabla 304, la transición de series "desactivadas" a series "activadas" puede caracterizarse por el número de regiones de subpíxeles "activados" o "desactivados" para cada fila de subpíxeles. En el presente ejemplo, los datos tras la primera serie de cinco píxeles "desactivados" pueden agruparse en colecciones de cuatro regiones de subpíxeles correspondientes a píxeles, por ejemplo, unas regiones 21-24, 25-28, etc. de subpíxeles.
Las regiones de subpíxeles "activados" en cada grupo de regiones de subpíxeles pueden entonces sumarse en cuatro filas para obtener un número total de las regiones de subpíxeles "activados" para un pixel. La tabla 304 muestra este total para seis píxeles consecutivos horizontalmente. El primero de estos píxeles, correspondiente a las regiones 21-24 horizontales de subpíxeles y a las filas N a N+3, no incluye ninguna región de subpíxeles "activados" de las filas N a N+2 y cuatro regiones de subpíxeles "activados" de la fila N+3. Esto proporciona una "activación" total para este píxel de cuatro regiones de subpíxeles. Esto corresponde a un proporción de 4:16 o al veinticinco por ciento (4/16 de la matriz de subpíxeles de cuatro por cuatro). Esto se representa como un valor en escala de grises del veinticinco por ciento para este pixel. Este análisis puede repetirse para regiones de subpíxeles consecutivas horizontalmente hasta que se llegue a un pixel totalmente "activado". En el ejemplo de la figura 3, se alcanza un pixel "activado" en la región 41-44 de subpíxeles, en la que dieciséis de dieciséis regiones de subpíxeles están "activadas". El pixel correspondiente puede dar comienzo a una serie de píxeles "activados" hasta el final de una línea de barrido o hasta una siguiente transición, si se produjese una transición así.
Los datos resultantes para cada línea de barrido se representan como series de píxeles "activados", series de píxeles "desactivados" y uno o más píxeles transicionales que tienen valores en escala de grises que indican cuánto de un pixel transicional se encuentra dentro (o alternativamente, fuera) de una forma. La figura 4, más adelante, muestra un ejemplo de una estructura de datos que contiene líneas de barrido de datos codificados con segmentos en blanco de esta manera. En algunas implementaciones, los valores en escala de grises pueden incluir el valor máximo o mínimo en escala de grises (por ejemplo, 100% o 0%), que de otro modo representan píxeles o series que están "activados" o "desactivados". Este enfoque puede aplicarse ventajosamente, por ejemplo, para optimizar la codificación de datos que exhiben series cortas que alternan entre la "activación" y la "desactivación".
Se apreciará que pueden emplearse otras técnicas para obtener valores en escala de grises para píxeles transicionales. Por ejemplo, la parte de un píxel que está dentro de una forma puede determinarse matemáticamente utilizando información de punto y de pendiente para la trayectoria 306. Mediante el alisamiento de los bordes de forma en valores en escala de grises, puede realizarse una operación de suavizado acromático para una imagen a todo color. Posteriormente puede proporcionarse color en un combinador de líneas de barrido, tal como se describirá más adelante. Esta técnica también puede emplearse ventajosamente sin sobremuestreo (es decir, con un valor de lisura 210 que especifique que cada pixel corresponde a una única región de subpíxeles), porque pospone el procesamiento de valores de alfa y de relleno para una forma hasta que las líneas de barrido de nuevos datos de pixel se combinen con las líneas de barrido de datos de pixel actuales. También debería apreciarse que, aunque el ejemplo anterior se refiere a una forma que tiene una sola región interior, pueden caracterizarse de manera similar formas más complejas que incluyan múltiples regiones interiores y exteriores.
Con referencia de nuevo a la figura 2, la salida del proceso 224 de intersección puede almacenarse como una máscara 232 de recorte. La máscara 232 de recorte puede indexarse según un número de referencia basado en, por ejemplo, el indicador de trayectoria para la trayectoria 202 que se ha procesado, así como cualquier información de escalamiento. Cuando se almacena de esta manera, cada nueva trayectoria 202 recibida por el procesador 200 de formas puede compararse con una reserva de máscaras de recorte almacenadas temporalmente, de modo que pueda reducirse o evitarse el procesamiento redundante de formas idénticas, tales como tipos de letra recurrentes en líneas de texto.
El combinador 226 de líneas de barrido puede combinar la salida del proceso 224 de intersección, o la máscara 232 de recorte, con un cuadro de datos de vídeo actuales. Tal como se apreciará a partir de la figura 2, esto puede incluir cálculos adicionales, no indicados más adelante, para correlacionar valores de pixel con parámetros de visualización tales como direcciones de memoria de visualización, espacio de color, profundidad en bits, etc. Un preprocesamiento por parte del combinador 226 de líneas de barrido puede incluir una descompresión de un mapa de alfa o un mapa de relleno, una conversión del espacio de color, una corrección del color, un ajuste del color y un escalamiento.
El combinador 226 de líneas de barrido puede dar salida directamente a una pantalla, a algún otro dispositivo de visualización o a una memoria intermedia de cuadros para una posterior representación de mapas de bits. Esta puede incluir una memoria no de vídeo o una memoria intermedia de formato de mapas de bits de salida. El combinador 226 de líneas de barrido puede operar normalmente sobre una línea de datos de vídeo, o fila de píxeles, a la vez. En ciertas realizaciones, puede proporcionarse una serie de combinadores de líneas de barrido para operar sobre una serie de líneas de barrido en paralelo. Para cada pixel, el combinador 226 de líneas de barrido puede combinar el relleno 204 (por ejemplo, un valor de color de 24 bits), la alfa 206 y la salida (o la máscara de recorte, cuando esté disponible) del proceso 224 de intersección correspondientes a ese pixel. En general, el relleno 204 se multiplica por alfa (para la transparencia (0 \leq alfa \leq 1)) y por la salida del proceso 224 de intersección (0 (= desactivación) \leq salida \leq 1 (= activación)). Esto representa el valor de pixel generado por el procesador 200 de formas. Este nuevo valor se combina en el combinador 226 de líneas de barrido con el valor antiguo del pixel, que se desponderará por un factor complementario. Esta operación de combinación puede expresarse matemáticamente como:
[Ec. 1]P_{i} = aef + (1 - ae)P_{i-1}
en la que
f = el valor de relleno para un pixel (por ejemplo, un valor de color de 24 bits);
P_{i} = la salida del combinador de líneas de barrido;
P_{i-1} = el valor de pixel anterior (de la memoria intermedia);
\alpha = valor de alfa de la forma en el píxel
e = valor de borde para el pixel (salida del proceso de intersección)
\hskip1.7mm
= 0, fuera
\hskip1.7mm
= 1, dentro
\hskip1.7mm
= valor en escala de grises, % del borde dentro de la forma.
La salida combinada puede almacenarse en la memoria de vídeo para visualizarse. Se apreciará que la ecuación 1 es representativa y que pueden emplearse otras ecuaciones para combinar datos antiguos y nuevos, pixel a pixel, siempre y cuando la ecuación pondere adecuadamente datos antiguos y nuevos para reflejar, por ejemplo, la transparencia y los bordes de los datos nuevos. Esto puede ser, por ejemplo, un proceso de dos etapas en el que se realice primero una ponderación de bordes, seguida por una ponderación de transparencias. Además, existen formas degeneradas de la ecuación 1 que pueden emplearse en el combinador 226 de líneas de barrido para reducir la complejidad de procesamiento. Por ejemplo, cuando haya una serie de píxeles dentro de la forma que es totalmente opaca (es decir, e = 1 y alfa = 1), entonces la salida del combinador 226 de líneas de barrido es simplemente el valor de relleno para cada pixel. En este caso, pueden proporcionarse valores de relleno, f, para los píxeles correspondientes directamente a la memoria de vídeo sin un procesamiento adicional.
La figura 4 muestra una estructura de datos para datos de barrido codificados como salida para el proceso 224 de intersección. Generalmente, los valores de pixel pueden almacenarse como "activado", "desactivado" o "escala de grises". Los píxeles que están activados corresponden a píxeles dentro de una forma, que se representarán como valores de color proporcionados por el relleno 204 de la figura 2. Los píxeles que están desactivados corresponden a píxeles fuera de la forma, y no afectarán al visualizador o la memoria intermedia de cuadros existentes. Tal como se ha indicado anteriormente, pueden dotarse a parámetros adicionales de un objeto, tal como un relleno de fondo que proporcione valores de relleno para píxeles "desactivados" o píxeles fuera de la forma. Como otro ejemplo, puede proporcionarse un relleno de sustitución que se resta de un valor previo en la memoria intermedia de cuadros antes de combinarse. Los valores en escala de grises representan bordes de forma, y se representarán como valores de color proporcionados por el relleno 204 y se ajustarán a escala según el valor en escala de grises. La codificación proporciona un esquema para representar líneas de datos de vídeo que permiten una reducción significativa en los costes de procesamiento cuando se procesa la forma. Por ejemplo, la codificación como series de "activación" y "desactivación" es económica, y los cálculos en escala de grises son menos caros en uso de memoria y tiempo de procesador porque evitan el requisito de una matriz de píxeles completa para el procesamiento de imágenes. Adicionalmente, la codificación de segmentos en blanco proporciona un beneficio cuando se almacenan los datos de vídeo como máscaras de recorte. Sin embargo, se apreciará que pueden emplearse adecuadamente otras técnicas de compresión con los sistemas descritos en la presente memoria.
La estructura 400 de datos codificada con segmentos en blanco puede incluir un encabezado 402, una longitud 404, una anchura 406, una altura 408, uno o más desfases 410 y uno o más segmentos 412 de datos. El encabezado 402 puede incluir cualquier información de encabezado útil para identificar o utilizar la estructura 400 de datos. La longitud 404 puede indicar una longitud de la estructura 400 de datos. La anchura 406 puede indicar un valor representativo de una anchura, en píxeles, de una forma. La altura 408 puede indicar un valor representativo de un número de líneas de barrido de una forma. Los uno o más desfases 410 indican desfases en bytes a segmentos de datos para cada línea de barrido de una forma. Los uno o más segmentos 412 de datos contienen cada uno datos codificados para una línea de barrido de una forma. Los segmentos 412 de datos pueden representarse como "interior" seguido por un segmento en blanco, en píxeles, "exterior" seguido por un segmento en blanco, en píxeles, o "de borde" seguido por un número de pixeles en el borde y un valor en escala de grises para cada uno del número de píxeles en el borde. Cada valor de borde pueden representarse, por ejemplo, como un valor en escala de grises de un byte (256 niveles).
La figura 5 es un diagrama de flujo de un proceso para el procesamiento de formas. En la siguiente exposición, la frase "datos de intersección" pretende hacer referencia a datos que describen intersecciones entre una trayectoria y regiones de subpíxeles. En un caso degenerado, cada región de subpíxeles puede corresponder a un pixel completo, y por tanto no se realiza alisamiento. La frase "datos de barrido codificados" pretende hacer referencia a datos, en forma no comprimida o comprimida (por ejemplo, codificada con segmentos en blanco), que describen regiones de una línea de barrido en uno de tres estados, concretamente, activado, desactivado o en escala de grises. Las series se determinan mediante una transición de dentro a fuera de una trayectoria, tal como se define aplicando una regla de arrollamiento o una técnica similar a los datos de intersección.
El proceso 500 puede comenzar en 502 mediante la recepción de un objeto, tal como se muestra en la etapa 504. El objeto puede ser, por ejemplo, el objeto 100 gráfico descrito anteriormente con referencia a la figura 1. En una etapa 506 opcional, se determina si el objeto se encuentra en una antememoria. Esta determinación puede tomarse empleando, por ejemplo, el nombre de la forma o cualquier otra información que pueda identificar inequívocamente la forma del objeto como correspondiendo a un artículo en la antememoria. Si la forma del objeto está almacenada temporalmente, entonces el proceso 500 puede avanzar a la etapa 516, en la que el objeto puede combinarse con una memoria de vídeo actual utilizando la forma almacenada temporalmente y cualesquiera datos de relleno y de transparencia suministrados con el objeto. Si la forma no está almacenada temporalmente, entonces el proceso 500 puede avanzar a la etapa 508.
Tal como se observa en la etapa 508, el proceso 500 puede generar una trayectoria aplanada, tal como se ha descrito anteriormente con referencia al convertidor 220 de barrido de la figura 2. La trayectoria aplanada puede utilizarse entonces para generar datos de intersección representativos de intersecciones entre una trayectoria y regiones de subpixeles, tal como se muestra en la etapa 510. Puede comprenderse que estas intersecciones pueden ser representativas de los bordes de una forma. Tal como se muestra en la etapa 512, entonces pueden generarse datos de barrido codificados a partir de los datos de intersección, tal como se ha descrito anteriormente, por ejemplo, con referencia al proceso 224 de intersección de la figura 2. Los datos de barrido codificados, representativos de un contorno de la forma del objeto, pueden almacenarse en la antememoria, tal como se muestra en la etapa 514. Los datos de barrido codificados pueden combinarse entonces con una memoria de vídeo, tal como se muestra en la etapa 156 y tal como se describe con más detalle con referencia al combinador 226 de líneas de barrido de la figura 2. El proceso 500 puede entonces volver a la etapa 504, en la que puede recibirse un siguiente objeto consecutivo.
La memoria de vídeo puede proporcionar cuadros de datos de vídeo a un visualizador en el que el contenido de la memoria de vídeo se convierte en una forma visible para los seres humanos. Le memoria de vídeo también puede almacenar uno o más cuadros de datos de vídeo anteriores para combinarlos con nuevas líneas de datos de vídeo generadas por el procesador de formas. Se apreciará que el visualizador puede ser un visualizador de cristal líquido, un visualizador de diodos emisores de luz o cualquier otro visualizador para proporcionar datos de vídeo en forma visible para los seres humanos. El visualizador puede también ser una impresora, trazador u otro dispositivo para reproducir datos de vídeo en un soporte tangible y fijo tal como el papel.
Se apreciará que el proceso 500 anterior y el procesador 200 de formas de la figura 2 pueden desarrollarse en hardware, software o alguna combinación de éstos. El proceso 500 puede llevarse a cabo en uno o más microprocesadores, microcontroladores, microcontroladores integrados, procesadores programables de señales digitales u otros dispositivos programables, junto con memorias internas y/o externas tales como memorias de sólo lectura, memorias programables de sólo lectura, memorias programables de sólo lectura que pueden borrarse electrónicamente, memorias de acceso aleatorio, memorias de acceso aleatorio dinámico, memorias de acceso aleatorio con doble velocidad de datos, memorias de acceso aleatorio Rambus directo, memorias flash o cualesquiera otras memorias volátiles o no volátiles para almacenar instrucciones de programa, datos de programa y salidas de programa y otros resultados intermedios o finales. El proceso 500 y el procesador 200 de formas pueden también, o en su lugar, incluir un circuito integrado de aplicación específica, una matriz de puertas programable, una matriz lógica programable o cualquier otro dispositivo que pueda configurarse para procesar señales electrónicas.
Cualquier combinación de los circuitos y componentes anteriores, ya esté empaquetada discretamente como un chip, un conjunto de chips o una pastilla, puede estar adecuadamente adaptada para usarse con los sistemas descritos en la presente memoria. Se apreciará además que el proceso 500 y el procesador 200 de formas anteriores pueden desarrollarse como un código ejecutable por ordenador creado utilizando un lenguaje de programación estructurado, tal como el C, un lenguaje de programación orientado a objetos, tal como el C++, o cualquier otro lenguaje de programación de alto nivel o de bajo nivel que pueda compilarse o interpretarse para que se ejecute en uno de los dispositivos anteriores, así como combinaciones heterogéneas de procesadores, arquitecturas de procesadores o combinaciones de hardware y software diferentes.
El procesador 200 de formas puede ser particularmente adecuado para sistemas de procesamiento de imágenes canalizados y/o en paralelo en los que pueden procesarse simultáneamente diferentes objetos gráficos y luego combinarse en un cuadro de memoria de vídeo. El procesador 200 de formas puede, por tanto, llevarse a cabo como una serie de procesos físicamente separados o como una serie de procesos lógicamente separados, tales como múltiples hilos del procesador de formas que se ejecutan en un microprocesador. Este enfoque puede aplicarse de manera similar a distintas líneas de barrido de un objeto gráfico.
Los sistemas anteriores proporcionan una representación de imágenes eficaz para visualizadores que pueden ser bastante adecuados para pequeños dispositivos de baja potencia, tales como dispositivos portátiles que tienen pantallas de visualizador de cristal líquido (LCD - Liquid Cristal Display), incluyendo agendas electrónicas, ordenadores de mano, dispositivos de juego portátiles, teléfonos celulares con capacidad web (u otros teléfonos o dispositivos de comunicación inalámbricos) y asistentes personales digitales (PDA - Personnal Digital Assistant). El sistema también puede incorporarse en dispositivos terminales de bajo coste con unidades de visualización, tales como teléfonos mejorados, clientes ligeros de red y receptores decodificadores integrados, así como otros dispositivos de representación tales como impresoras, trazadores y similares. El sistema puede emplearse con utilidad como, por ejemplo, un sistema integrado en dispositivos de manipulación de documentos, tales como máquinas de fax, impresoras, fotocopiadoras, etc., en los que un visualizador de documentos de trabajo y/o una interfaz de usuario pueden mejorar la funcionalidad. El sistema puede emplearse con utilidad en sistemas para coche que representan imágenes y/o proporcionan una interfaz gráfica de usuario a un usuario de automóvil, tal como en un salpicadero o consola central de un automóvil. Los sistemas descritos en la presente memoria pueden incorporarse en dispositivos de consumo, incluyendo un reproductor de audio, un microondas, una nevera, una lavadora, una secadora de ropa, un horno o un lavavajillas. Los sistemas descritos en la presente memoria también pueden incorporarse con utilidad en cualquiera de los sistemas anteriores, en los que se genera una salida a distintos dispositivos, tales como un visualizador, una impresora, una red y/o un archivo. Un único dispositivo puede utilizar el procesador de formas para dar salida a todos o cualquiera de estos dispositivos.
Aunque la invención se ha dado a conocer en relación con las realizaciones preferidas mostradas y descritas en detalle, se entenderá que la invención no ha de limitarse a las realizaciones descritas en la presente memoria, sino que está definida por las siguientes reivindicaciones, que han de interpretarse de manera tan amplia como se permita bajo la ley.

Claims (61)

1. Método para representar una imagen como una visualización, que comprende una pluralidad de líneas de píxeles, que comprende:
recibir un flujo de objetos (100) a visualizar, incluyendo cada objeto una forma (102) y un relleno (104);
convertir (220, 512), para cada objeto, la forma del objeto en una pluralidad de líneas de datos de barrido codificados que tienen uno de al menos dos estados posibles para cada pixel de la visualización que incluyen un primer estado y un segundo estado, representando el primer estado un pixel dentro de la forma y representando el segundo estado un pixel fuera de la forma; y
combinar (226, 516) cada una de la pluralidad de líneas de datos de barrido codificados y el relleno en una línea de un cuadro para la visualización; caracterizado porque:
convertir la forma del objeto en una pluralidad de líneas de datos de barrido codificados comprende:
a.
representar cada pixel de la visualización como una matriz de subpíxeles, incluyendo la matriz de subpíxeles una o más regiones de subpíxeles que cubren el pixel;
b.
generar, para cada fila horizontal en la matriz de subpíxeles, datos de intersección que incluyen una coordenada para cada intersección entre la forma del objeto y la matriz de subpíxeles,
c.
procesar los datos de intersección para cada fila en la matriz de subpíxeles, para extraer series de subpíxeles "activados" que están dentro de la forma o de subpíxeles "desactivados" que están fuera de la fuera,
y, para cada línea de la visualización:
d.
analizar las series extraídas de subpíxeles para identificar series de píxeles que están dentro de la forma, asociados con dicho primer estado, series de píxeles que están fuera de la forma, asociados con dicho segundo estado, y series de píxeles transicionales que están en los bordes de una forma, de manera que están parcialmente dentro y parcialmente fuera, asociados con un tercer estado;
e.
procesar adicionalmente aquellos píxeles identificados como píxeles transicionales para generar un valor en escala de grises para cada pixel transicional correspondiente a la proporción del pixel transicional que está dentro de la forma;
f.
generar una línea de datos de barrido codificados que comprenda la longitud de dichas series de píxeles en cada estado y, para píxeles transicionales en el tercer estado, el valor en escala de grises asociado.
2. Método según la reivindicación 1, en el que el valor en escala de grises para un pixel transicional se calcula determinando cuáles de la pluralidad de regiones de subpíxeles están dentro de la forma y determinando una proporción entre las regiones de subpíxeles de la pluralidad de regiones de subpíxeles dentro de la forma y la pluralidad de regiones de subpíxeles.
3. Método según la reivindicación 1 o la reivindicación 2, en el que la forma comprende una trayectoria (108) que incluye una pluralidad de segmentos.
4. Método según la reivindicación 3, en el que los segmentos de trayectoria incluyen parámetros que definen los atributos de trazo de los segmentos de trayectoria.
5. Método según la reivindicación 3 o la reivindicación 4, que comprende además convertir uno o más de la pluralidad de segmentos de la trayectoria que es curva en una pluralidad de segmentos no curvos.
6. Método según cualquiera de las reivindicaciones 1 a 5, en el que el cuadro incluye al menos uno de una memoria de vídeo o un dispositivo de visualización.
7. Método según cualquiera de las reivindicaciones 1 a 6, en el que el cuadro corresponde a al menos una de una memoria no de vídeo o una memoria intermedia de formato de mapa de bits de salida.
8. Método según cualquiera de las reivindicaciones 1 a 7, que comprende además almacenar (514) la pluralidad de líneas de datos de barrido codificados como una máscara de recorte en una antememoria.
9. Método según la reivindicación 8, que comprende además indexar la máscara de recorte según la forma.
10. Método según la reivindicación 8 o la reivindicación 9, en el que combinar incluye acceder a la máscara de recorte y combinar los datos de barrido codificados asociados con la máscara de recorte.
11. Método según cualquiera de las reivindicaciones 1 a 10, en el que el objeto a visualizar incluye una transparencia (106) y combinar comprende además combinar cada una de la pluralidad de líneas de datos de barrido codificados y la transparencia en una línea de un cuadro para la visualización.
12. Método según cualquiera de las reivindicaciones 1 a 11, en el que el objeto a visualizar incluye una transparencia (106), preprocesándose la transparencia según al menos uno de una corrección de profundidad en bits, una corrección de tonalidad, un escalamiento, una descompresión o una decodificación.
13. Método según la reivindicación 12, en el que la transparencia comprende un indicador de un mapa de bits de valores de transparencia para la forma.
14. Método según cualquiera de las reivindicaciones 1 a 13, en el que el relleno (104) incluye al menos uno de un color (116), una textura o un mapa (118) de bits.
15. Método según cualquiera de las reivindicaciones 1 a 14, en el que la forma incluye una máscara (114) de recorte que comprende una pluralidad de líneas de datos de barrido codificados, tal como se genera mediante el método según la reivindicación 1, que representa la forma.
16. Método según cualquier reivindicación anterior, que comprende además aplicar un algoritmo para determinar un interior de la forma y un exterior de la forma.
17. Método según la reivindicación 16, en el que aplicar un algoritmo incluye aplicar una regla de arrollamiento.
18. Método según cualquier reivindicación anterior, adaptado para suavizar acromáticamente los bordes de una imagen en color representada en la que el relleno (104) del objeto a visualizar incluye uno o más colores (116, 118), que comprende combinar el valor en escala de grises para cada píxel transicional y el relleno (104) correspondiente a ese pixel con un valor previo para el pixel.
19. Método según cualquier reivindicación anterior, que comprende además codificar con segmentos en blanco los valores en escala de grises para los píxeles transicionales.
20. Método según cualquier reivindicación anterior, en el que una o más dimensiones de la matriz de subpíxeles están controlados por un valor de lisura.
21. Método según cualquier reivindicación anterior, adaptado para alisar un borde del objeto, en el que la forma del objeto incluye una trayectoria (108) que delinea el objeto, teniendo la trayectoria un interior y un exterior, que comprende:
sobremuestrear, para cada uno de una pluralidad de píxeles que intersecan la trayectoria, uno de los píxeles para obtener un valor en escala de grises representativo de una parte del pixel que está dentro de la trayectoria; y
combinar la pluralidad de píxeles con los datos almacenados en una matriz de píxeles.
22. Método según cualquiera de las reivindicaciones anteriores, en el que cada objeto incluye además una caja (101) de delimitación, indicando la caja de delimitación una zona en el que ha de representarse el objeto.
23. Método según la reivindicación 22, que comprende además preprocesar el objeto intersecando la caja de delimitación de objeto con parámetros que definen las fronteras de la visualización para determinar cuándo cae el objeto dentro de la zona de visualización.
24. Método según la reivindicación 23, en el que no se procesan adicionalmente objetos preprocesados que tienen una intersección nula entre la caja de delimitación de objeto y la visualización.
25. Método según cualquier reivindicación anterior, en el que combinar cada una de una pluralidad de líneas de datos de barrido codificados y el relleno en una línea de un cuadro para la visualización comprende combinar el relleno (104) correspondiente a un pixel con un valor previo para el pixel, ponderando el relleno (104) con un factor de ponderación y desponderando el valor de píxel anterior con un factor complementario, en el que dicho factor de ponderación se fija en la unidad para píxeles interiores, se fija en cero para píxeles exteriores y se fija igual al valor en escala de grises para píxeles transicionales.
26. Método según la reivindicación 25, en el que el objeto a visualizar incluye una transparencia (106) y la combinación se pondera adicionalmente según la transparencia.
\newpage
27. Método según cualquier reivindicación anterior, en el que los datos de intersección comprenden además, para cada fila de la matriz de subpíxeles, una coordenada x para cada intersección entre la forma del objeto y la fila de subpíxeles, junto con un sentido ascendente o descendente en el que la forma interseca la fila.
28. Sistema para procesar objetos gráficos para representar una imagen como una visualización que comprende una pluralidad de líneas de píxeles, que comprende:
medios (202, 204, 206) de recepción para recibir un flujo de objetos (100) a visualizar, incluyendo cada objeto una forma (102), un relleno (104) y una alfa (106);
medios (220, 222, 224) de conversión para convertir (220, 512) la forma de cada objeto en una pluralidad de líneas de datos de barrido codificados que tienen uno de al menos dos estados posibles para píxeles de la visualización, que incluyen un primer estado y un segundo estado, representando el primer estado un pixel dentro de la forma y representando el segundo estado un pixel fuera de la forma; y
un medio (226) de combinación para combinar cada una de la pluralidad de líneas de datos de barrido codificados, el relleno y la alfa en una línea de un cuadro para la visualización, caracterizado porque:
los medios de conversión están adaptados para:
a.
representar cada píxel de la visualización como una matriz de subpíxeles, incluyendo la matriz de subpíxeles una o más regiones de subpíxeles que cubren el píxel;
b.
generar, para cada fila horizontal en la matriz de subpíxeles, datos de intersección que incluyen una coordenada para cada intersección entre la forma del objeto y la matriz de subpíxeles,
c.
procesar los datos de intersección para cada fila en la matriz de subpíxeles, para extraer series de subpíxeles "activados" que están dentro de la forma o de subpíxeles "desactivados" que están fuera de la fuera,
y, para cada línea de la visualización:
d.
analizar las series extraídas de subpíxeles para identificar series de píxeles que están dentro de la forma, asociados con dicho primer estado, series de pixeles que están fuera de la forma, asociados con dicho segundo estado, y series de pixeles transicionales que están en los bordes de una forma, de manera que están parcialmente dentro y parcialmente fuera, asociados con un tercer estado;
e.
procesar adicionalmente aquellos píxeles identificados como píxeles transicionales para generar un valor en escala de grises para cada pixel transicional correspondiente a la proporción del pixel transicional que está dentro de la forma;
f.
generar una línea de datos de barrido codificados que comprenda la longitud de dichas series de píxeles en cada estado y, para píxeles transicionales en el tercer estado, el valor en escala de grises asociado.
29. Sistema según la reivindicación 28, en el que el cuadro corresponde a al menos uno de un visualizador, una impresora, un archivo o un puerto de red.
30. Sistema según la reivindicación 28 ó 29, incluyendo además cada objeto al menos uno de un relleno de fondo o un relleno de sustitución, combinando el medio de combinación el al menos uno del relleno de fondo o el relleno de sustitución en una línea de un cuadro.
31. Sistema según cualquiera de las reivindicaciones 28 a 30, en el que dichos medios de recepción, medios de conversión y medio de combinación comprenden un procesador y una memoria, configurado el procesador para combinar los datos de barrido codificados, el relleno y la alfa con una línea de datos de pixel; y
adaptada la memoria para almacenar la línea de datos de pixel y para proporcionar la línea de datos de pixel al procesador, y adaptada la memoria para almacenar una nueva línea de datos de pixel que se genera cuando la línea de datos de pixel se combina con los datos de barrido codificados, el relleno y la transparencia.
32. Sistema según la reivindicación 31, que comprende además un visualizador, configurado el visualizador para visualizar la memoria.
33. Sistema según la reivindicación 31 o la reivindicación 32, comprendiendo además el procesador uno o más de un microprocesador, un microcontrolador, un microcontrolador integrado, un procesador programable de señales digitales, un circuito integrado de aplicación específica, una matriz de puertas programable o una matriz lógica programable.
34. Sistema según cualquiera de las reivindicaciones 31 a 33, que comprende además al menos uno de una impresora configurada para imprimir las líneas de datos de píxel almacenadas en la memoria, un dispositivo de almacenamiento configurado para almacenar las líneas de datos de pixel almacenadas en la memoria o un dispositivo de red configurado para dar salida a las líneas de datos de pixel almacenadas en la memoria.
35. Sistema según cualquiera de las reivindicaciones 31 a 34, en el que el procesador es al menos uno de un chip, un conjunto de chips o una pastilla.
36. Sistema según cualquiera de las reivindicaciones 31 a 34, en el que el procesador y la memoria son al menos uno de un chip, un conjunto de chips o una pastilla.
37. Sistema según la reivindicación 32 o cualquiera de las reivindicaciones 33 a 36 cuando dependen de la reivindicación 32, en el que visualizador es un visualizador de al menos uno de una agenda electrónica, un ordenador de mano, un dispositivo de juego portátil, un teléfono celular con capacidad de red, un asistente digital personal, un teléfono mejorado, un cliente ligero de red o un receptor decodificador integrado.
38. Sistema según la reivindicación 32 o cualquiera de las reivindicaciones 33 a 36 cuando dependen de la reivindicación 32, en el que visualizador es al menos uno de una impresora o un trazador.
39. Sistema según la reivindicación 32 o cualquiera de las reivindicaciones 33 a 36 cuando dependen de la reivindicación 32, en el que visualizador se utiliza en un sistema de gestión de documentos.
40. Sistema según la reivindicación 32 o cualquiera de las reivindicaciones 33 a 36 cuando dependen de la reivindicación 32, en el que visualizador se utiliza en al menos una de una máquina de fax, una fotocopiadora o una impresora de un sistema de gestión de documentos.
41. Sistema según la reivindicación 32 o cualquiera de las reivindicaciones 33 a 36 cuando dependen de la reivindicación 32, en el que visualizador se utiliza en un sistema para coche.
42. Sistema según la reivindicación 32 o cualquiera de las reivindicaciones 33 a 36 cuando dependen de la reivindicación 32, en el que visualizador se utiliza en al menos uno de un reproductor de audio, un microondas, una nevera, una lavadora, una secadora de ropa, un horno o un lavavajillas.
43. Sistema según cualquiera de las reivindicaciones 31 a 42, en el que el procesador recibe una pluralidad de objetos gráficos y procesa la pluralidad de objetos gráficos en paralelo.
44. Sistema según cualquiera de las reivindicaciones 28 a 30, en el que:
dichos medios de recepción incluyen un mecanismo de entrada para recibir dicho flujo de dichos objetos; y
dichos medios de conversión y medio de combinación comprenden un procesador de objetos que procesa el flujo de objetos, objeto a objeto, para crear una matriz de píxeles.
45. Sistema según la reivindicación 44, en el que la forma de cada objeto incluye una trayectoria, procesando el procesador de objetos la trayectoria para crear una matriz de píxeles representativa de un contorno de la imagen.
46. Sistema según la reivindicación 45, en el que el procesador de objetos suaviza los bordes de la trayectoria.
47. Sistema según la reivindicación 45 o la reivindicación 46, en el que el procesador de objetos codifica el contorno de la imagen.
48. Sistema según cualquiera de las reivindicaciones 44 a 47, en el que cada objeto incluye además una caja (101) de delimitación, indicando la caja de delimitación al procesador de objetos una zona en la que ha de representarse el objeto.
49. Sistema según cualquiera de las reivindicaciones 44 a 48, en el que el procesador de objetos recibe un factor (210) de lisura, especificando el factor de lisura una cantidad de sobremuestreo del objeto en relación con la matriz de píxeles.
50. Sistema según cualquiera de las reivindicaciones 44 a 49, en el que la alfa (106) de cada objeto incluye un valor de transparencia o un indicador de un mapa de bits de valores de transparencia para la forma.
51. Sistema según cualquiera de las reivindicaciones 44 a 50, en el que el relleno (104) de cada objeto incluye al menos uno de un color (116), una textura o un mapa (118) de bits.
52. Sistema según la reivindicación 46 o cualquiera de las reivindicaciones 47 a 51 cuando dependen de la reivindicación 46, en el que los bordes suavizados se representan como valores en escala de grises.
53. Sistema según la reivindicación 52, en el que se aplica una curva de respuesta de tonalidad a los valores en escala de grises de los bordes suavizados.
54. Sistema según cualquiera de las reivindicaciones 44 a 53, en el que la matriz de píxeles se transmite a al menos uno de una pantalla, una impresora, un puerto de red o un archivo.
55. Sistema según cualquiera de las reivindicaciones 44 a 54, en el que cada objeto incluye datos de forma preprocesados.
56. Sistema según la reivindicación 55, en el que los datos de forma preprocesados incluyen una máscara de recorte que comprende una pluralidad de líneas de datos de barrido codificados, tal como es generada por el sistema según la reivindicación 31, que representa la forma.
57. Sistema según la reivindicación 55 o la reivindicación 58, en el que los datos de forma preprocesados incluyen una transparencia.
58. Sistema según cualquiera de las reivindicaciones 55 a 67, en el que los datos de forma preprocesados incluyen un relleno.
59. Sistema según cualquiera de las reivindicaciones 44 a 58, que comprende además almacenar datos de procesamiento intermedio en una antememoria, incluyendo los datos de procesamiento intermedio al menos uno de una máscara de recorte, tal como se define en la reivindicación 59, un relleno o una transparencia.
60. Programa informático para procesar objetos gráficos para representar una imagen como una visualización que comprende una pluralidad de líneas de píxeles, que comprende un código ejecutable por ordenador para:
recibir un flujo de objetos (100) a visualizar, incluyendo cada objeto una forma (102), un relleno (104) y una alfa (106);
convertir (220, 512), para cada objeto, la forma del objeto en una pluralidad de líneas de datos de barrido codificados que tienen uno de al menos dos estados posibles para cada pixel de la visualización, que incluyen un primer estado y un segundo estado, representando el primer estado un pixel dentro de la forma y representando el segundo estado un pixel fuera de la forma; y
combinar (226, 516) cada una de la pluralidad de líneas de datos de barrido codificados, el relleno y la alfa en una línea de un cuadro para la visualización; caracterizado porque:
convertir la forma del objeto en una pluralidad de líneas de datos de barrido codificados comprende:
a.
representar cada pixel de la visualización como una matriz de subpíxeles, incluyendo la matriz de subpíxeles una o más regiones de subpíxeles que cubren el pixel;
b.
generar, para cada fila horizontal en la matriz de subpíxeles, datos de intersección que incluyen una coordenada para cada intersección entre la forma del objeto y la matriz de subpíxeles,
c.
procesar los datos de intersección para cada fila en la matriz de subpíxeles, para extraer series de subpíxeles "activados" que están dentro de la forma o de subpíxeles "desactivados" que están fuera de la forma,
y, para cada línea de la visualización:
d.
analizar las series extraídas de subpíxeles para identificar series de píxeles que están dentro de la forma, asociados con dicho primer estado, series de pixeles que están fuera de la forma, asociados con dicho segundo estado, y series de píxeles transicionales que están en los bordes de una forma, de manera que están parcialmente dentro y parcialmente fuera, asociados con un tercer estado;
e.
procesar adicionalmente aquellos píxeles identificados como píxeles transicionales para generar un valor en escala de grises para cada pixel transicional correspondiente a la proporción del pixel transicional que está dentro de la forma;
f.
generar una línea de datos de barrido codificados que comprenda la longitud de dichas series de píxeles en cada estado y, para píxeles transicionales en el tercer estado, el valor en escala de grises asociado.
61. Programa informático según la reivindicación 60, en el que la visualización corresponde a al menos uno de un visualizador, una impresora, un archivo o un puerto de red.
ES01928048T 2000-04-14 2001-04-17 Procesador de formas. Expired - Lifetime ES2236219T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB0009129 2000-04-14
GBGB0009129.8A GB0009129D0 (en) 2000-04-14 2000-04-14 Digital document processing
US703502 2000-10-31
US09/703,502 US7055095B1 (en) 2000-04-14 2000-10-31 Systems and methods for digital document processing
PCT/GB2001/001712 WO2001080183A1 (en) 2000-04-14 2001-04-17 Shape processor

Publications (1)

Publication Number Publication Date
ES2236219T3 true ES2236219T3 (es) 2005-07-16

Family

ID=38666808

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01928048T Expired - Lifetime ES2236219T3 (es) 2000-04-14 2001-04-17 Procesador de formas.

Country Status (10)

Country Link
US (2) US6781600B2 (es)
EP (2) EP1528510B1 (es)
JP (1) JP5106735B2 (es)
CN (1) CN1241150C (es)
AT (1) ATE286285T1 (es)
AU (1) AU2001254915A1 (es)
DE (1) DE60108093T2 (es)
ES (1) ES2236219T3 (es)
HK (1) HK1057121A1 (es)
WO (1) WO2001080183A1 (es)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
GB0105561D0 (en) * 2001-03-07 2001-04-25 Segmentis Ltd Improvements in and relating to image signal processing and printing of picture therefrom
JP3576126B2 (ja) * 2001-07-30 2004-10-13 株式会社ナムコ 画像生成システム、プログラム及び情報記憶媒体
GB0124630D0 (en) * 2001-10-13 2001-12-05 Picsel Res Ltd "Systems and methods for generating visual representations of graphical data and digital document processing"
AUPS134202A0 (en) * 2002-03-25 2002-05-09 Canon Kabushiki Kaisha System and method for optimizing halftoning printer performance
US7109997B1 (en) * 2002-06-28 2006-09-19 Microsoft Corporation Systems and methods for direct storage of compressed scan converted data
JP2004120122A (ja) * 2002-09-24 2004-04-15 Sharp Corp 画像処理装置
US7800631B2 (en) 2003-03-18 2010-09-21 Qualcomm Incorporated Triangle rendering using direct evaluation
US7209105B2 (en) * 2003-06-06 2007-04-24 Clairvoyante, Inc System and method for compensating for visual effects upon panels having fixed pattern noise with reduced quantization error
US7420568B1 (en) * 2003-12-17 2008-09-02 Nvidia Corporation System and method for packing data in different formats in a tiled graphics memory
US7277095B2 (en) * 2004-03-16 2007-10-02 Canon Kabushiki Kaisha Method of rendering graphical objects
US20050240818A1 (en) * 2004-04-05 2005-10-27 James Don R Jr System and method for processor diagnostic device with video controller
KR100600350B1 (ko) * 2004-05-15 2006-07-14 삼성에스디아이 주식회사 역다중화 및 이를 구비한 유기 전계발광 표시 장치
US20050264554A1 (en) * 2004-05-25 2005-12-01 Deming James L Tile based rendering of smooth points using polygons
US7868903B2 (en) * 2004-10-14 2011-01-11 Daktronics, Inc. Flexible pixel element fabrication and sealing method
US8001455B2 (en) * 2004-10-14 2011-08-16 Daktronics, Inc. Translation table
US7893948B1 (en) 2004-10-14 2011-02-22 Daktronics, Inc. Flexible pixel hardware and method
US8344410B2 (en) 2004-10-14 2013-01-01 Daktronics, Inc. Flexible pixel element and signal distribution means
US8184128B2 (en) * 2004-10-27 2012-05-22 Hewlett-Packard Development Company, L. P. Data distribution system and method therefor
JP4266939B2 (ja) 2005-02-10 2009-05-27 株式会社ソニー・コンピュータエンタテインメント 描画処理装置および描画データ圧縮方法
US7747946B2 (en) * 2005-04-11 2010-06-29 Microsoft Corporation System and method for adorning shapes with data driven objects
JP2006338507A (ja) * 2005-06-03 2006-12-14 Fujifilm Holdings Corp 処理装置及び処理方法
JP2006338506A (ja) * 2005-06-03 2006-12-14 Fujifilm Holdings Corp コネクタ
US20070067517A1 (en) * 2005-09-22 2007-03-22 Tzu-Jen Kuo Integrated physics engine and related graphics processing system
US8294731B2 (en) * 2005-11-15 2012-10-23 Advanced Micro Devices, Inc. Buffer management in vector graphics hardware
US20090009526A1 (en) * 2007-07-03 2009-01-08 Sun Microsystems, Inc. Method and system for rendering a shape
US8407619B2 (en) * 2008-07-30 2013-03-26 Autodesk, Inc. Method and apparatus for selecting and highlighting objects in a client browser
US8218904B2 (en) * 2008-08-27 2012-07-10 Lockheed Martin Corporation Method and system for circular to horizontal transposition of an image
KR20110007838A (ko) * 2009-07-17 2011-01-25 삼성전자주식회사 영상 처리 방법 및 장치
EP2845164B1 (en) 2012-04-30 2018-06-06 Dolby Laboratories Licensing Corporation Reference card for scene referred metadata capture
US10019137B2 (en) 2012-05-09 2018-07-10 Qualcomm Incorporated Electronic document display
JP2014106809A (ja) * 2012-11-28 2014-06-09 Konica Minolta Inc データ処理装置、コンテンツ表示方法およびブラウジングプログラム
EP4040395A1 (en) * 2016-01-18 2022-08-10 Advanced Micro Devices, Inc. Performing anti-aliasing operations in a computing system
JP6295299B2 (ja) * 2016-08-26 2018-03-14 株式会社ミツトヨ 座標補正方法及び三次元測定装置
EP3293672A1 (en) * 2016-09-07 2018-03-14 Malvern Panalytical Limited Particle boundary identification
CN106651807B (zh) * 2016-12-29 2020-03-10 上海天马有机发光显示技术有限公司 一种图像处理系统、显示设备及图像处理方法
CN107492139B (zh) * 2017-08-25 2020-06-16 网易(杭州)网络有限公司 泛光信息的处理方法、装置、存储介质、处理器及终端
CN107730467B (zh) * 2017-10-16 2020-04-10 芯颖科技有限公司 显示方法、装置、设备及存储介质
US10699374B2 (en) 2017-12-05 2020-06-30 Microsoft Technology Licensing, Llc Lens contribution-based virtual reality display rendering
CN107943479B (zh) * 2017-12-12 2020-11-10 网易(杭州)网络有限公司 图形用户界面中物理边界的定义方法、装置和设备
CN108762832A (zh) * 2018-05-16 2018-11-06 无锡小天鹅股份有限公司 家用电器默认数据设置方法、装置和衣物处理装置
US10650576B1 (en) * 2018-11-12 2020-05-12 Adobe Inc. Snapping experience with clipping masks
US11076151B2 (en) 2019-09-30 2021-07-27 Ati Technologies Ulc Hierarchical histogram calculation with application to palette table derivation
US11915337B2 (en) 2020-03-13 2024-02-27 Advanced Micro Devices, Inc. Single pass downsampler
US11748923B2 (en) 2021-11-12 2023-09-05 Rockwell Collins, Inc. System and method for providing more readable font characters in size adjusting avionics charts
US11887222B2 (en) 2021-11-12 2024-01-30 Rockwell Collins, Inc. Conversion of filled areas to run length encoded vectors
US11854110B2 (en) 2021-11-12 2023-12-26 Rockwell Collins, Inc. System and method for determining geographic information of airport terminal chart and converting graphical image file to hardware directives for display unit
US11954770B2 (en) 2021-11-12 2024-04-09 Rockwell Collins, Inc. System and method for recreating graphical image using character recognition to reduce storage space
US11915389B2 (en) 2021-11-12 2024-02-27 Rockwell Collins, Inc. System and method for recreating image with repeating patterns of graphical image file to reduce storage space
US11842429B2 (en) 2021-11-12 2023-12-12 Rockwell Collins, Inc. System and method for machine code subroutine creation and execution with indeterminate addresses

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5083262A (en) 1986-04-28 1992-01-21 International Business Machines Corporation Language bindings for graphics functions to enable one application program to be used in different processing environments
GB2240016A (en) 1990-01-15 1991-07-17 Philips Electronic Associated Texture memories store data at alternating levels of resolution
US5459823A (en) 1990-07-05 1995-10-17 Canon Kabushiki Kaisha Graphics engine for true colour 2D graphics
JPH04246690A (ja) 1990-08-29 1992-09-02 Xerox Corp 高品質のイメージを並みの解像度で表示する方法
JPH04262473A (ja) 1990-09-28 1992-09-17 Xerox Corp 多重ステッパーを用いた高速図形画像生成法
US5390320A (en) 1991-01-22 1995-02-14 Grumman Aerospace Corporation Automatically converting structured analysis tool database outputs into an integrated simulation model via transportable standardized metafile
CA2062911A1 (en) 1991-05-17 1992-11-18 Stephen C. Gates Computer graphics system and method for auto-tresselating graphic objects
EP0529121A1 (en) 1991-08-24 1993-03-03 International Business Machines Corporation Graphics display tool
JPH07146931A (ja) * 1993-03-08 1995-06-06 Canon Inf Syst Res Australia Pty Ltd 画像創成方法
GB2278524B (en) * 1993-05-28 1997-12-10 Nihon Unisys Ltd Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency
US5528738A (en) * 1993-10-06 1996-06-18 Silicon Graphics, Inc. Method and apparatus for antialiasing raster scanned, polygonal shaped images
US5911066A (en) 1994-02-22 1999-06-08 Microsoft Corporation Data transfer utilizing a single functionally independent data transfer mechanism
JPH07271958A (ja) * 1994-03-31 1995-10-20 Toshiba Corp 画像ファイル装置及び画像ファイルアクセス方法
JPH07282274A (ja) * 1994-04-04 1995-10-27 Mitsubishi Electric Corp グラフィック表示装置
JP3000855B2 (ja) * 1994-07-29 2000-01-17 日本ビクター株式会社 文字図形処理装置及び情報処理装置
AUPM822394A0 (en) * 1994-09-16 1994-10-13 Canon Inc. Object based rendering system
AUPM822194A0 (en) * 1994-09-16 1994-10-13 Canon Inc. Utilisation of scanned images in an image compositing system
US5920323A (en) * 1995-02-09 1999-07-06 Canon Kabushiki Kaisha Diagram processing apparatus and method
US6025853A (en) * 1995-03-24 2000-02-15 3Dlabs Inc. Ltd. Integrated graphics subsystem with message-passing architecture
JP3634447B2 (ja) 1995-07-14 2005-03-30 キヤノン株式会社 画像処理装置及び方法
US5867166A (en) 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US6008820A (en) * 1995-08-04 1999-12-28 Microsoft Corporation Processor for controlling the display of rendered image layers and method for controlling same
JP3753263B2 (ja) 1995-08-23 2006-03-08 ヒューレット・パッカード・カンパニー 画像を処理する方法
US6173075B1 (en) * 1995-08-30 2001-01-09 Usanimation, Inc. Drawing pixmap to vector conversion
US5910805A (en) 1996-01-11 1999-06-08 Oclc Online Computer Library Center Method for displaying bitmap derived text at a display having limited pixel-to-pixel spacing resolution
AU2585797A (en) 1996-03-15 1997-10-01 University Of Massachusetts Compact tree for storage and retrieval of structured hypermedia documents
KR0172581B1 (ko) 1996-04-02 1999-03-30 이진기 단계적 표현 가능형 폰트 그 변환 방법 및 렌더링 방법
US5754348A (en) 1996-05-14 1998-05-19 Planetweb, Inc. Method for context-preserving magnification of digital image regions
JPH09325748A (ja) * 1996-06-03 1997-12-16 Toshiba Corp 文字パターン形成装置及び文字パターン形成方法
EP0925542B1 (en) 1996-09-09 2002-08-07 Design Intelligence, Inc. Automatic layout and formatting of content for a design in a medium
AU6155498A (en) 1997-02-10 1998-09-09 Logitech, Inc. Touch pad with scroll bar, command bar
JP3361951B2 (ja) 1997-02-25 2003-01-07 大日本スクリーン製造株式会社 印刷データ処理装置および方法
JP2957511B2 (ja) * 1997-03-28 1999-10-04 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィック処理装置
US5982381A (en) 1997-07-03 1999-11-09 Microsoft Corporation Method and apparatus for modifying a cutout image for compositing
US6417848B1 (en) 1997-08-25 2002-07-09 Ati International Srl Pixel clustering for improved graphics throughput
US6049390A (en) * 1997-11-05 2000-04-11 Barco Graphics Nv Compressed merging of raster images for high speed digital printing
US6034700A (en) 1998-01-23 2000-03-07 Xerox Corporation Efficient run-based anti-aliasing
US6857102B1 (en) 1998-04-07 2005-02-15 Fuji Xerox Co., Ltd. Document re-authoring systems and methods for providing device-independent access to the world wide web
AU5688199A (en) 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
AU743218B2 (en) * 1998-09-11 2002-01-24 Canon Kabushiki Kaisha Fast renering techniques for rasterised graphic object based images
US6336124B1 (en) 1998-10-01 2002-01-01 Bcl Computers, Inc. Conversion data representing a document to other formats for manipulation and display
US6125391A (en) 1998-10-16 2000-09-26 Commerce One, Inc. Market makers using documents for commerce in trading partner networks
US6608630B1 (en) * 1998-11-09 2003-08-19 Broadcom Corporation Graphics display system with line buffer control scheme
US6480201B1 (en) * 1999-08-24 2002-11-12 Microsoft Corporation Alpha regions

Also Published As

Publication number Publication date
JP2003531446A (ja) 2003-10-21
EP1272977B8 (en) 2005-08-10
JP5106735B2 (ja) 2012-12-26
DE60108093T2 (de) 2006-01-12
WO2001080183A8 (en) 2004-12-23
EP1528510A3 (en) 2012-03-07
DE60108093D1 (de) 2005-02-03
EP1528510B1 (en) 2017-01-18
CN1426574A (zh) 2003-06-25
US6781600B2 (en) 2004-08-24
HK1057121A1 (en) 2004-03-12
WO2001080183A1 (en) 2001-10-25
US7009624B2 (en) 2006-03-07
US20050030321A1 (en) 2005-02-10
US20010030655A1 (en) 2001-10-18
EP1272977B1 (en) 2004-12-29
ATE286285T1 (de) 2005-01-15
AU2001254915A1 (en) 2001-10-30
EP1528510A2 (en) 2005-05-04
EP1272977A1 (en) 2003-01-08
CN1241150C (zh) 2006-02-08

Similar Documents

Publication Publication Date Title
ES2236219T3 (es) Procesador de formas.
KR100707579B1 (ko) 비디오 데이터의 프레임 생성 방법 및 시스템
KR100300972B1 (ko) 텍스춰매핑수행장치및텍스춰캐시의데이터억세스방법
JP5595739B2 (ja) グラフィックスを処理する方法およびそのための装置
US5945997A (en) Block- and band-oriented traversal in three-dimensional triangle rendering
US7538778B2 (en) Method and system for dynamically allocating a frame buffer for efficient anti-aliasing
US6940514B1 (en) Parallel initialization path for rasterization engine
US20060033745A1 (en) Graphics engine with edge draw unit, and electrical device and memopry incorporating the graphics engine
KR102001191B1 (ko) 라인을 따른 텍스트 이미지 렌더링
JP2000511364A (ja) 表示データ用の格納条件を減少させる方法及び装置
US8456481B2 (en) Block linear memory ordering of texture data techniques
US20030179199A1 (en) Method of creating a larger 2-D sample location pattern from a smaller one by means of X, Y address permutation
US6943797B2 (en) Early primitive assembly and screen-space culling for multiple chip graphics system
US7663642B2 (en) Systems and methods for rendering a polygon in an image to be displayed
EP1014306B1 (en) Antialiased high-resolution frame buffer architecture
US20040217967A1 (en) Bandwidth reduction
US6992678B2 (en) Image processing apparatus and method of same
JPH06309472A (ja) テクスチャ・マッピングの方法及びテクスチャ・マッピング装置
JPH11224331A (ja) ラスタ画像生成装置およびラスタ画像生成方法