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
Links
- 238000000034 method Methods 0.000 claims abstract description 101
- 230000008569 process Effects 0.000 claims abstract description 50
- 239000011159 matrix material Substances 0.000 claims abstract description 42
- 238000012800 visualization Methods 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 31
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000004804 winding Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006837 decompression Effects 0.000 claims description 4
- 239000006187 pill Substances 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000005406 washing Methods 0.000 claims description 3
- 239000003086 colorant Substances 0.000 claims description 2
- 230000000295 complement effect Effects 0.000 claims description 2
- 239000000945 filler Substances 0.000 claims 4
- 238000009966 trimming Methods 0.000 claims 1
- 238000009499 grossing Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000009849 deactivation Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000007788 liquid Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003706 image smoothing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000010453 quartz Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1205—Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/10—Mixing 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.
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.
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.
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.
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.
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)
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)
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 |
-
2001
- 2001-04-16 US US09/835,462 patent/US6781600B2/en not_active Expired - Lifetime
- 2001-04-17 EP EP04013827.3A patent/EP1528510B1/en not_active Expired - Lifetime
- 2001-04-17 WO PCT/GB2001/001712 patent/WO2001080183A1/en active Search and Examination
- 2001-04-17 ES ES01928048T patent/ES2236219T3/es not_active Expired - Lifetime
- 2001-04-17 JP JP2001577305A patent/JP5106735B2/ja not_active Expired - Fee Related
- 2001-04-17 AU AU2001254915A patent/AU2001254915A1/en not_active Abandoned
- 2001-04-17 CN CNB01808382XA patent/CN1241150C/zh not_active Expired - Fee Related
- 2001-04-17 AT AT01928048T patent/ATE286285T1/de not_active IP Right Cessation
- 2001-04-17 EP EP01928048A patent/EP1272977B8/en not_active Expired - Lifetime
- 2001-04-17 DE DE60108093T patent/DE60108093T2/de not_active Expired - Lifetime
-
2003
- 2003-12-24 HK HK03109409A patent/HK1057121A1/xx not_active IP Right Cessation
-
2004
- 2004-05-24 US US10/853,482 patent/US7009624B2/en not_active Expired - Lifetime
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) | ラスタ画像生成装置およびラスタ画像生成方法 |