ES2242349T3 - Formato de imagen estructurada (si) para describir imagenes en trama complejas en color. - Google Patents
Formato de imagen estructurada (si) para describir imagenes en trama complejas en color.Info
- Publication number
- ES2242349T3 ES2242349T3 ES99124094T ES99124094T ES2242349T3 ES 2242349 T3 ES2242349 T3 ES 2242349T3 ES 99124094 T ES99124094 T ES 99124094T ES 99124094 T ES99124094 T ES 99124094T ES 2242349 T3 ES2242349 T3 ES 2242349T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- frame
- paste
- rendering
- attribute
- 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
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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
- Document Processing Apparatus (AREA)
Abstract
Medios y procedimiento para la descripción de una imagen de color compleja de puntos como una colección de objetos en un formato jerárquico e independiente del dispositivo. El propósito de la imagen estructurada (IE) es expandir el ámbito de una imagen de puntos a una colección de objetos con componentes manipulables de forma independiente. Una IE es una descripción jerárquica de una única imagen de salida de puntos que se puede usar como una componente de una página en un documento estructurado. Los objetos que contribuyen a la imagen de puntos de salida pueden tener como origen texto, gráficos, otras imágenes de puntos o una combinación de los mismos, y todos mantienen la herencia de selectividad y modificación. La IE no sólo describe los datos origen sino también las operaciones de procesamiento de la imagen requeridas para generar la imagen de puntos de salida. La tecnología de IE soporta la re-editabilidad, personalización y mejora, ensamblado automático de imágenes y procesado de imágenes de alto rendimiento. Por tanto, este modelo tiene implicaciones no sólo en el campo de la edición y procesamiento de imágenes sino también en los servicios de almacenado e impresión usados para el tratamiento de imágenes.
Description
Formato de imagen estructurada (SI) para
describir imágenes en trama complejas en color.
Esta invención se refiere a un procesador /
generador de imágenes para representar una imagen en trama compleja
en color como una colección de objetos en un formato jerárquico e
independiente del dispositivo y, más en particular, a un formato de
imagen estructurada (SI) que incluye no sólo los datos originales,
sino también las operaciones de procesamiento de imágenes
requeridas para su renderización, y soporta la reeditabilidad, la
personalización y el realce, al montaje automático de imágenes, y la
generación de imágenes de altas prestaciones, utilizando una
adecuada interfaz de usuario.
Los productos integrados comercialmente
disponibles y empleados hoy requieren una considerable cantidad de
memoria para funcionar. Por ejemplo, Adobe Photoshop® almacena tres
copias de la trama, en tamaño original, durante la edición
interactiva. Así, una típica imagen en color de 24 bits (216 x 279
mm a 12 puntos por mm (8 1/2 x 11 pulgadas a 300 puntos por
pulgada) puede requerir 24 megabytes de memoria para cada copia de
la imagen.
Además, el software comercial a menudo muestra
prestaciones entre malas y lentísimas al editar imágenes grandes. De
nuevo, Photoshop® debe almacenar, como se ha expuesto
anteriormente, tres copias de la imagen (no importa cuán grande
sea). Dado que toda operación interactiva procesa la imagen
completa, la respuesta es extremadamente lenta.
Además, el software comercial típico almacena las
imágenes de salida como tramas completas. Por lo tanto, para cada
nueva versión de una imagen, debe grabarse una trama completa, y no
se puede deshacer las operaciones contenidas en esas versiones. A
24 megabytes por imagen, como se ha expuesto anteriormente, los
requisitos de espacio en disco pueden ser ingentes. Además, el
archivo de tales imágenes puede requerir asimismo un amplio espacio
de almacenamiento.
Además, existe una necesidad crítica para un
procesador de imágenes en el ruedo de la impresión comercial, con
la capacidad de crear una plantilla de tareas para construir
imágenes múltiples y personalizadas. Existen pocos, si acaso,
productos integrados comerciales de procesamiento de imágenes que
permitan la creación de tales plantillas de aplicación de tareas.
Además, los productos integrados de software comercial de
procesamiento de imágenes, tales como Photoshop®, tienen una
capacidad limitada para restituir la imagen de salida optimizada
para el dispositivo de salida. Típicamente, la corrección cromática
y la conversión sencilla de la resolución es todo lo que puede
aplicarse.
Además, en el software comercial típico de
procesamiento de imágenes, la capacidad de editar la lista de
operaciones de procesamiento de imágenes realizadas por el operador
también es muy limitada. Por ejemplo, Photoshop® permite sólo una
operación de "deshacer". Además, el software comercial típico
no permite la optimización del procesamiento de imágenes. Es decir,
una vez que una imagen está creada, se pierde la capacidad de
combinar las operaciones y aumentar las prestaciones en imágenes de
alta resolución.
Finalmente, existe un fuerte interés industrial
en la teoría de documentos estructurados y en cómo esta tecnología
puede afectar los productos y los servicios. La teoría actual de
documentos estructurados considera una imagen en trama como un
simple bloque de contenidos, sin ninguna naturaleza jerárquica ni
operaciones de procesamiento de imágenes asociadas a él. Para una
descripción orientada a las páginas, véase en la revista IEEE
Computer Graphics & Applications [Gráficos y Aplicaciones
Informáticas del IEEE] de Marzo de 1991, páginas
71-78, el artículo "Constructive Page
Description" ["Descripción Constructiva de Páginas"] por J.
Schonhut, H. Wiedling y V. Samara. Para una descripción general de
los documentos estructurados, véase "Structured Documents"
["Documentos Estructurados"], por J. Andre, R. Furuta y V.
Quint, Cambridge Series on Electronic Publishing [Serie de
Cambridge sobre Edición Electrónica], 1989.
Un campo próximo en el cual se ha establecido una
forma de generación de imágenes estructuradas son las Interfaces
Gráficas de Usuario [Graphical User Interfaces - GUI]. Tres
ejemplos para juegos de herramientas GUI ya establecidos son Motif
(véase Heller et al., "Motif Programming Manual"
["Manual de Programación de Motif"], Volumen 6, O'Reilly &
Associates, 1992), Tcl / Tk (véase Ousterhout, "Tcl and the Tk
Toolkit" ["Tcl y el Juego de Herramientas Tk"],
Addison-Wesley, 1994) e InterViews (véase LInton
et al., "Composing User Interfaces with InterViews"
["Cómo Componer Interfaces de Usuario con InterViews"], IEEE
Computer, Vol. 22, Nº 2, páginas 8-22, IEEE Press,
1989).
Es, por ello, un objetivo de la invención obviar
las desventajas precedentes proporcionando un formato SI que puede
operar sobre imágenes con resolución visualizable, con mínimos
requisitos de memoria y, aun así, capaz de producir imágenes
impresas de alta resolución y de gran calidad. SI es una tecnología
de base, capaz de abordar la gama completa de la adquisición de
objetos, el almacenamiento, la edición / preparación y la entrega /
transmisión a la renderización de salida.
Según un primer aspecto de la presente invención,
se proporciona un generador de imágenes electrónicas, que
comprende:
un módulo de construcción capaz de construir una
representación de imagen estructurada, comprendiendo la
representación al menos un objeto imagen que puede restituirse como
al menos una trama, y al menos un marco para pegar que tiene al
menos un atributo de imagen, representando cada marco para pegar un
cuadro sobre el cual se restituirá al menos un objeto imagen; y
un módulo de renderización en comunicación con el
módulo de construcción, siendo el módulo de renderización capaz de
realizar la renderización de la representación para dar una imagen
visualizable; en el que el módulo de renderización es capaz de
fusionar el objeto u objetos imagen sobre el marco o marcos para
pegar, a fin de formar la imagen visualizable según el atributo o
atributos del marco o marcos para pegar y, para cada atributo o
atributos de imagen, dicho atributo o atributos de imagen se asocia
a un marco o marcos para pegar, en lugar de a un objeto u objetos
imagen;
en el cual al menos uno entre el objeto u objetos
imagen y el atributo o atributos de imagen permanece indefinido
cuando la representación es construida por el módulo de
construcción, y al menos uno entre el objeto u objetos imagen y el
atributo o atributos de imagen es definido durante la renderización
por el módulo de renderización.
Según un segundo aspecto de la presente
invención, se proporciona un proceso para generar electrónicamente
una representación de una imagen estructurada, comprendiendo el
proceso:
seleccionar un objeto imagen, que puede
restituirse como una trama, en una memoria;
definir un marco para pegar que incluya al menos
un atributo de imagen, representando el marco para pegar un cuadro
sobre el cual se restituyen dichos datos;
construir la representación, que comprende el
objeto imagen y el marco para pegar, según el atributo o atributos
de imagen del marco para pegar; y
realizar la renderización de la representación en
un formato capaz de ser visualizado o impreso, en el que el
atributo, o atributos, de imagen está asociado al marco para pegar
y no al objeto imagen;
en el que al menos uno entre el objeto imagen y
el atributo, o atributos, de imagen permanece indefinido cuando se
construye la representación, y al menos uno entre el objeto imagen
y el atributo, o atributos, de imagen se define durante la
renderización.
La invención proporciona un formato SI capaz de
operar interactivamente sobre imágenes de resolución visualizable
y, por lo tanto, de presentar buena respuesta interactiva. Además,
la salida de alta resolución puede generarse simplemente
solicitando que se restituya, o rasterice, un objeto SI, con
resolución alta. El proceso de renderización utilizará
automáticamente las imágenes originales adecuadas y la información
dependiente del dispositivo para restituir en dispositivos
específicos. Aunque otros editores de imágenes pueden emplear
imágenes de resolución visualizable, SI escogerá la resolución de
la imagen según la tarea.
Es una característica de la SI almacenar imágenes
como un fichero de texto que contiene punteros a objetos
componentes. Las tramas de salida no se generan hasta que se
solicitan para su visualización o impresión. Por lo tanto, pueden
existir cientos de versiones de una SI en el espacio de disco
típicamente requerido por una imagen en trama. Como una SI no
almacena las tramas de los objetos componentes dentro del fichero de
SI, la utilización de imágenes de archivo, tales como las
ilustraciones preexistentes, por ejemplo, resulta mucho más
eficiente, ya que se requiere sólo una copia del original.
La invención proporciona instancias de SI que
pueden crearse para contener referencias indefinidas, tanto a
objetos componentes como a parámetros de procesamiento de imágenes.
Tal SI puede restituirse proporcionando la información indefinida
como, por ejemplo, argumentos de línea de comando. La SI puede
restituirse muchas veces con distintos datos de entrada, para
generar tramas de salida personalizadas. La capacidad de tener
instancias de SI válidas que contienen referencias indefinidas
permite la personalización y el montaje automático de imágenes.
Es otra característica de la invención hacer que
las SI almacenen todos los datos de componentes en formato
"nativo" (es decir, el texto se almacena como códigos ASCII,
los gráficos se almacenan en formato CGM o en algún otro formato
adecuado, etc.) Los procedimientos adecuados de renderización
convertirán el formato nativo en tramas, utilizando características
dependientes del dispositivo para optimizar la renderización. La
reducción a la escala adecuada de los datos componentes es inherente
a la renderización de la SI.
Finalmente, la invención proporciona instancias
de SI que contienen punteros a los datos componentes originales y
una descripción de todas las operaciones de procesamiento de
imágenes aplicadas a la imagen. La edición de las operaciones
previas puede ser tan sencilla como la edición de un fichero de
texto. Los editores interactivos basados en las SI pueden permitir
la edición de las operaciones interactivamente, por medio de la
edición de textos, o bien a través de un editor de imágenes
estructuradas. Pueden añadirse, borrarse y modificarse operaciones
de procesamiento de imágenes con comandos de usuario adecuados.
A fin de lograr el objetivo de la invención y de
superar las limitaciones expuestas anteriormente, se define una SI
que, en su forma más sencilla, se describe por medio de un conjunto
de representaciones y un marco para pegar. Las representaciones
especifican el contenido de la SI;
el marco para pegar especifica el "cuadro"
de la SI. El concepto de representaciones múltiples en trama es
entendido en la comunidad técnica y está actualmente en uso en
varias aplicaciones disponibles. Con la SI, sin embargo, la idea de
representaciones múltiples se expande para incluir datos no de
trama, tales como los conglomerados de texto, gráficos e imágenes
que especifican el procesamiento de imágenes y la fusión de
múltiples objetos componentes. Los objetos componentes tales como el
texto y los gráficos se almacenan en su formato nativo para
facilitar la editabilidad. El requisito de una representación
válida es que sea restituible en formato de trama, y que todas las
representaciones de una única SI tengan el mismo "aspecto"
cuando se restituyen, es decir, todas las representaciones deben
tener una apariencia esencialmente similar. Pueden tener
dimensiones y codificaciones distintas, pero deben ser, claramente,
renderizaciones de la misma imagen.
Otros objetivos, ventajas y características
sobresalientes de la invención se harán aparentes a partir de la
descripción detallada que, tomada en conjunto con los dibujos
adjuntos, revela las realizaciones preferidas de la invención.
Con referencia ahora a los dibujos que forman
parte de esta revelación original:
La Fig. 1 es un diagrama de bloques que muestra
los componentes generales que pueden utilizarse con la
invención;
La Fig. 2 es una representación gráfica que
muestra la variedad de tipos de datos que componen un objeto
SI;
La Fig. 3 es una representación gráfica que
muestra un ejemplo de las Representaciones Múltiples (Multiple
Representations - MR) que componen un objeto SI;
La Fig. 4 es una representación gráfica que
muestra la renderización de imágenes a fin de mantener la
Proporción del Aspecto;
La Fig. 5 muestra gráficamente los modelos
FitMode [Modalidad de Ajuste] disponibles, que definen cómo se
restituyen las tramas en las dimensiones definidas por el marco
para pegar, según la invención;
Las Figs. 6 y 7 muestran gráficamente el atributo
de alineación de la invención, mostrando la Fig. 6 cómo se utiliza
el atributo Justification [Alineación] para especificar que la
trama restituida se sitúe dentro del marco para pegar en una de
nueve posiciones posibles, y mostrando la Fig. 7 3 ejemplos del
atributo de alineación;
La Fig. 8 muestra gráficamente el atributo Angle
[Ángulo] de la invención, donde el lado (a) de la Fig. 8 muestra el
marco para pegar no girado, y el lado (b) muestra el marco para
pegar girado (nota: el objeto gira alrededor del ControlPoint [Punto
de Control]);
La Fig. 9 es una representación gráfica que
muestra un ajuste de renderización de ControlPoint según la
invención;
La Fig. 10 es una representación gráfica de una
Definición de Procesamiento de Imagen [Image Processing Definition
- IPD] según su vinculación con la SI de salida, que representa una
descripción estructurada de referencias a objetos componentes y
Operaciones de Procesamiento de Imágenes [Image Processing
Operations - IPO] aplicadas a esos objetos componentes;
La Fig. 11 ilustra el flujo de datos de trama
durante la renderización de una SI;
La Fig. 12 es una representación gráfica que
muestra que todos los objetos hijo son fusionados en el marco para
pegar padre en la ubicación especificada por el MergePoint [Punto
de Fusión] (correspondiente al marco para pegar del objeto) y el
ControlPoint [Punto de Control] (correspondiente al marco para pegar
del hijo);
La Fig. 13 es una representación gráfica que
muestra la función inicializadora del marco para pegar; en este
caso, inicializando un marco para pegar con una imagen de texto
escaneado;
La Fig. 14 es una representación gráfica que
muestra una SI no enlazada (con respecto a los objetos de entrada)
según la invención;
La Fig. 15 es una representación gráfica que
muestra una SI incompleta (con respecto a las operaciones y/o
atributos de procesamiento de imágenes) según la invención;
La Fig. 16 es una representación gráfica que
muestra la renderización de imágenes orientada a objetos, según la
invención;
La Fig. 17 es una representación gráfica que
muestra la renderización de árbol de procesamiento según la
invención;
La Fig. 18 proporciona una muestra de SI con
fichero SID asociado, visualizado gráficamente, según la
invención;
Las Figs. 19a-c proporcionan los
ficheros SID asociados a la SI de nivel máximo mostrada en la Fig.
18;
Las Figs. 20a-b ilustran un
ejemplo de fichero de Representación Múltiple (MR) y una
demostración gráfica del mismo;
La Fig. 21 muestra gráficamente la interacción
entre los atributos Fixed Point [Punto Fijo] y ControlPoint [Punto
de Control] según la invención.
La formación de Imágenes Estructuradas
[Structured Imaging - SI] es una descripción jerárquica de una
imagen en trama compuesta, que se compone de imágenes componentes
(es decir, objetos hijo) y de las operaciones de procesamiento de
imágenes [Image Processing Operations - IPO] necesarias para
realizar la renderización de la imagen en trama de salida. Todo
tipo de datos que pueda ser restituido como una trama es un
componente potencial de una SI. La SI es un agente habilitador para
la creación y manipulación de imágenes complejas, de manera fácil y
rápida, para su inclusión en documentos impresos.
La SI puede implementarse (véase la Fig. 1) en un
sistema de hardware convencional 100 que incluye un microprocesador
110 para recibir señales desde, y emitir señales a, otros diversos
componentes del sistema 100, según uno o más programas de software
ejecutados en un microprocesador 110. Un dispositivo de entrada del
usuario 120, tal como un ratón, un teclado, una pantalla táctil y/o
combinaciones de los mismos, se proporciona para permitir que un
operador interactúe con la SI suministrando, por ejemplo, señales
de control a la misma. Un dispositivo 130 de salida de imágenes, tal
como un monitor de visualización de vídeo, o una impresora, pueden
proporcionarse para emitir datos SI. Un dispositivo 140 de entrada
de SI, tal como un escáner, puede proporcionarse para escanear
imágenes que se almacenan luego en la memoria como fuentes de
imágenes. Las fuentes de imágenes también pueden suministrarse desde
discos, por ejemplo.
El microprocesador 110 incluye una memoria de
sólo lectura (ROM) 150 para almacenar programas operativos y datos
de imágenes, utilizada por SI para construir y editar imágenes. Se
proporciona una memoria de acceso aleatorio (RAM) 160 para ejecutar
los diversos programas operativos, y pueden proporcionarse ficheros
adicionales 170 para el desborde de la memoria RAM.
Es importante, sin embargo, que SI también puede
implementarse en sistemas empotrados (no mostrados), así como en
sistemas en red, donde los diversos componentes de hardware están
en red, y pueden, o no, residir en la misma ubicación (tampoco
mostrados). No hay ningún requisito en cuanto a que el sistema de
hardware esté físicamente cableado. El sistema de hardware
convencional descrito anteriormente se proporciona sólo como
ejemplo, y no es más preferible que los sistemas empotrados o en
red.
Una SI está definida por un "objeto", que es
una representación de datos que puede visualizarse como una imagen
en trama, y un "marco para pegar" que representa un
"cuadro" para que el objeto se restituya sobre el mismo. Una SI
no tiene especificado un tamaño absoluto dentro de la descripción
de la SI. El tamaño de cada subobjeto se almacena dentro del marco
para pegar como un tamaño relativo al padre del subobjeto.
Para convertir un objeto SI en una imagen en
trama, se invoca al procedimiento de renderización ReadObject ()
(véase más adelante) por medio de las instrucciones adecuadas de
comando, utilizando, por ejemplo, el dispositivo 120 de entrada del
usuario, con el objeto, el marco para pegar y las dimensiones
absolutas del objeto padre como parámetros. El objeto SI y todos
los objetos hijos se restituirán automáticamente con el tamaño de
salida apropiado. Una SI se describe por medio de un fichero de
Definición de Imagen Estructurada (Structured Image Definition -
SID).
También debería entenderse que un objeto SI puede
ser automáticamente escaneado en la SID empleando el software
apropiado de escaneo de la SI. De esta manera, la edición
interactiva no es en absoluto el único procedimiento para crear o
preparar una SID para su impresión.
Un objeto SI es una representación de datos
(Véase la Fig. 2) que puede restituirse en una imagen en trama.
Estos datos pueden representar imágenes en trama sencillas, tales
como ficheros TIFF, o datos más complicados como una colección
jerárquica de subobjetos y operaciones asociadas de procesamiento
de trama. Los posibles tipos de datos de objetos incluyen:
- 1)
- imagen en trama - TIFF, RES u otra visualización digital,
- 2)
- texto elemental - anotación textual sencilla,
- 3)
- gráficos CGM - anotación gráfica sencilla,
- 4)
- IPD - descripción de procesamiento de imagen SI,
- 5)
- fichero MR - fichero que contiene una descripción de representaciones múltiples de imagen.
Una característica importante de la tecnología SI
es la capacidad de almacenar operaciones de procesamiento de
imágenes (IPO) dentro de la SID. El tipo IPD de datos de objeto
proporciona el mecanismo para almacenar las IPO, como se expondrá en
mayor detalle más adelante.
Un objeto SI individual puede representar más de
un tipo de datos y/o fichero de datos. Por ejemplo (véase la Fig.
3), un objeto SI individual puede hacer referencia a un directorio
que contiene varios ficheros TIFF almacenados con distintas
resoluciones. Cada fichero TIFF representa la misma imagen, pero
tiene distintas dimensiones absolutas en píxeles y fotometría. Este
concepto se conoce como representaciones múltiples (MR). SI
especifica múltiples representaciones, por determinar numéricamente,
pero el formato de fichero MR se define para aquellas aplicaciones
que requieren especificaciones explícitas de representaciones
múltiples (como se describirá más adelante).
El objeto supremo en una SI, es decir, el objeto
que no tiene padre, se llama el objeto raíz. Esto se describirá en
mayor detalle en la exposición del proceso de renderización de
objetos, más adelante.
El marco para pegar es el "cuadro" en el
cual se restituyen los objetos SI. Pueden especificarse varios
atributos dentro del marco para pegar (véase la Fig. 3):
- 1)
- RelativeSize [Tamaño Relativo];
- 2)
- Angle [Ángulo];
- 3)
- FitMode [Modalidad de Ajuste];
- 4)
- Justification [Alineación]; y
- 5)
- ControlPoint [Punto de Control].
El marco para pegar especifica el tamaño del
objeto restituido con respecto a su objeto padre. Por ejemplo, el
marco para pegar, aplicado a un subobjeto, puede especificar un
tamaño tal como (1.0, 0.5) con respecto al objeto padre, donde (1.0,
0.5) son las proporciones del ancho y el alto. En tiempo de
renderización, si se especifica que el padre se restituye con (1000
x 2000) píxeles, el subobjeto se restituiría con (1000 x 1000)
píxeles, dado que la dimensión del marco para pegar especificaba que
el subobjeto ha de restituirse con el ancho total, pero con la
mitad del alto. El tamaño relativo por omisión es (1.0, 1.0).
Al realizar la renderización de una SI, se
utiliza el tamaño relativo del marco para pegar a fin de determinar
el tamaño absoluto del marco para pegar, basado en el tamaño
absoluto del objeto padre (véase la Fig. 4). Sin embargo, por
razones de renderización de calidad óptima, puede ser preferible
hacer que el objeto hijo se restituya con dimensiones absolutas
distintas, en lugar de las dimensiones determinadas por el tamaño
del marco para pegar y del padre. Por ejemplo, considere que el
objeto hijo sea un fichero TIFF de texto escaneado, con una
proporción del aspecto de 10 a 1 (ancho a alto). Considere que el
marco para pegar asociado tenga un tamaño relativo de (0.67, 0.33).
Sea el objeto padre restituido con un tamaño absoluto de (450 x
300) píxeles. Por lo tanto, el marco para pegar hijo tiene un
tamaño absoluto de (300 x 100). Si el fichero TIFF se redujera a
escala para ajustarse a esta ventana, se estiraría en un factor de
3 en la dirección del eje de las y, lo que distorsionaría
notablemente el texto. En este caso, podría ser preferible
restituir el texto con la proporción del aspecto original, para
ajustarse al marco para pegar deseado: el fichero TIFF podría
reducirse de escala hasta las dimensiones de (300 x 30) para
mantener la proporción del aspecto de 10 a 1 (ancho a alto).
Para soportar este tipo de renderización, SI
define seis atributos FitMode [Modalidad de Ajuste] (véase la Fig.
5) a fin de definir cómo se restituyen las tramas en las
dimensiones definidas por el marco para pegar. Estas FitMode se
definen en la Figura 5. Todas las modalidades, excepto FitAll,
retienen la proporción del aspecto del objeto. Sin embargo, la
imagen en trama efectivamente restituida siempre está limitada por
el tamaño del marco para pegar. Por lo tanto, el tamaño efectivo de
la trama restituida está definido por la intersección del tamaño
del marco para pegar y el tamaño del objeto restituido, según la
FitMode especificada. En la Figura 5, el objeto restituido para la
modalidad FitOutside [Ajustar por Fuera] es significativamente más
grande que el marco para pegar, pero la trama efectivamente
restituida está limitada por el marco para pegar. Para la modalidad
FitInside [Ajustar por Dentro], el objeto se restituye para
ajustarse al marco para pegar, manteniendo la proporción del
aspecto. Por lo tanto, la trama efectivamente restituida puede ser
más pequeña que las dimensiones del marco para pegar si la
proporción del aspecto del objeto no coincide con la del marco para
pegar. El valor de FitMode por omisión es FitInside.
Los objetos SI pueden restituirse utilizando las
FitMode definidas anteriormente; sin embargo, para algunas
aplicaciones, puede ser deseable proporcionar control sobre la
ubicación de la trama restituida, con respecto al tamaño del marco
para pegar. El atributo Justification [Alineación] se emplea para
especificar dónde ha de situarse la trama restituida dentro del
marco para pegar, en una de nueve ubicaciones posibles, como se
muestra en la Figura 6, con ejemplos mostrados en la Figura 7. El
valor por omisión de Justification es Center [Centro]. El atributo
Justification se ignora si el valor de la FitMode es FitAll.
Cada objeto puede tener un atributo Angle
[Ángulo], utilizado para hacer girar el objeto restituido. El
efecto será realizar la renderización del objeto en el marco para
pegar especificado, y luego hacer girar el marco para pegar
alrededor del ControlPoint [Punto de Control] (véase más adelante)
en el Ángulo especificado en grados (véase la Figura 8). Es
responsabilidad del programa restituidor de objetos que se esté
utilizando manipular debidamente la renderización del objeto en el
Ángulo especificado. Algunos programas de renderización pueden ser
capaces de restituir óptimamente objetos en el Ángulo adecuado;
otros restituidores pueden invocar un programa de rotación de trama
después de la renderización inicial del objeto. Esta elección
depende de la implementación. El tamaño efectivo de la trama
restituida será un cuadro delimitador del objeto girado y
restituido, según se muestra en la Figura 8b. El ángulo de rotación
por omisión es de 0,0 grados.
En el caso de un objeto padre compuesto por un
conjunto de objetos hijos, cada hijo se restituye y se fusiona
sobre el marco para pegar del padre, en una ubicación conocida como
el MergePoint [Punto de Fusión]. El MergePoint se especifica con
respecto al marco para pegar del objeto padre. El ControlPoint es
el punto correspondiente con respecto al marco para pegar del hijo.
El ControlPoint del hijo es para alinear con el MergePoint del
padre. Por ejemplo, un ControlPoint de (0.5, 0.5) da como resultado
que el hijo se centre sobre el MergePoint. El valor por omisión de
ControlPoint es (0.5, 0.5).
El ControlPoint (junto con el MergePoint)
controla dónde se fusiona un objeto hijo restituido sobre un marco
para pegar del objeto padre. Dentro de la SID, se especifica el
ControlPoint, y el marco para pegar asociado al objeto hijo, en
coordenadas correspondientes al marco para pegar del hijo. Sin
embargo, un objeto hijo restituido no necesariamente llenará el
marco para pegar especificado, según los atributos FitMode y Angle.
De esta manera, los programas de renderización para cada objeto
deben ajustar automáticamente el ControlPoint para mantener la
misma posición relativa con respecto al hijo restituido.
Considere el ejemplo mostrado en la Figura 9. El
ControlPoint está, inicialmente, en el centro del hijo (0.5, 0.5).
Después de restituir con la modalidad FitAsIs [Ajustar como está],
con el hijo alineado en la posición TopRight [Arriba a la derecha],
el ControlPoint se ajustará automáticamente al valor absoluto (-15,
30). Esto causará que la operación de fusión sitúe la trama
restituida en la posición esperada. Para que se entienda este
ejemplo, se especifica en la SID que el hijo tiene tamaño (0.3,
0.6). La renderización indica que el padre tiene (200 x 100); por
ello, el tamaño de hijo solicitado es de 60 x 60. Sin embargo, la
FitMode indica FitAsIs. El hijo efectivo se almacena con 15 x 45,
por lo que la trama restituida tendrá 15 x 45. La Justification
indica TopRight, por lo que la trama de 15 x 45 se sitúa arriba a
la derecha del espacio solicitado de 60 x 60, de manera tal que el
origen de la trama restituida esté a (45, 0) con respecto a la trama
solicitada. Como el tamaño de la trama que fluye hacia arriba por
el camino es el tamaño del hijo restituido, y no el tamaño de 60 x
60 del hijo solicitado, el ControlPoint debe ajustarse, para
reflejar el desplazamiento con respecto al hijo efectivamente
restituido. El ControlPoint se transforma en (30, 30) con respecto
al tamaño solicitado del hijo. Como el origen del hijo restituido
está en (45, 0) con respecto al origen del espacio solicitado, se ve
fácilmente que el ControlPoint está en (30-45,
30-0) = (-15, 30) con respecto al hijo restituido
(véase la Fig.9).
La información del ControlPoint se almacena en la
cabecera de la imagen en trama restituida. De esta manera, la
información del ControlPoint está disponible para cualquier IPO que
requiere su conocimiento. En particular, la IPO SpatialTransform
[Transformación espacial] debe ajustar debidamente el ControlPoint
según la transformación especificada, como se mostrará en los
ejemplos más adelante.
ReadObject () representa un procedimiento que
convierte un objeto SI en una imagen en trama, apta para el
procesamiento posterior. ReadObject () tiene un marco para pegar,
un objeto SI (ya sea creado o introducido por escaneado) y el tamaño
absoluto del objeto padre como parámetros. En el caso del
RootObject [Objeto raíz], el tamaño especificado son las dimensiones
deseadas de la imagen de salida, y el campo del tamaño relativo del
marco para pegar, típicamente, estará vacío, lo que implica el
valor por omisión de (1.0, 1.0). Puede pasarse otra información a
ReadObject () si tal información puede utilizarse para mejorar la
calidad de la renderización del objeto.
ReadObject () realiza varias operaciones a fin de
realizar la renderización de la imagen en trama adecuada:
- (1)
- determina el tamaño absoluto del marco para pegar;
- (2)
- determina todas las representaciones a las que hace referencia el objeto;
- (3)
- basándose en la información disponible, escoge una representación adecuada para realizar la renderización de la imagen;
- (4)
- restituye datos en la trama según los atributos FitMode, Justification y (posiblemente) Angle, invocando un procedimiento adecuado de renderización;
- (5)
- hace girar la trama restituida en el ángulo especificado por el atributo Angle (si no se ha realizado en la etapa 4); y
- (6)
- ajusta la posición de ControlPoint. La salida del procedimiento ReadObject () es una imagen en trama del objeto restituido.
El ControlPoint se especificará en la cabecera de
la imagen en trama, en el sistema de coordenadas de la imagen en
trama.
ReadObject () determina el tamaño absoluto del
marco para pegar multiplicando las dimensiones del padre por el
tamaño relativo especificado en el marco para pegar. Si no se
especifica ningún marco para pegar, entonces se supone un tamaño
relativo de (1, 1). Por ejemplo, si el tamaño especificado era de
(1000 x 2000) y el tamaño relativo era (1.0, 0.5), entonces el
tamaño absoluto del marco para pegar será de (1000 x 1000). El
objeto efectivamente restituido puede no tener este tamaño, según
los atributos FitMode y Angle, como se ha expuesto
anteriormente.
Un objeto SI actúa como una referencia a un
fichero de datos, o una representación, que puede emplearse para
realizar la renderización de una imagen en trama. La representación
puede ser de varios tipos, tales como trama, texto y/o gráficos
vectoriales. Además, un objeto puede hacer referencia a varias
representaciones, cada una de las cuales representa la misma
imagen, pero puede diferir en el formato de almacenamiento, el
tamaño y/o la resolución. Cuando se invoca a ReadObject (), debe
determinar qué representación es la "mejor" representación a
restituir, invocando el procedimiento Finder () [Hallador]. Finder
() localizará todas las representaciones a las que hace referencia
el objeto, y escogerá qué representación es la más adecuada para
realizar la renderización de la imagen.
Una vez que se ha escogido una representación,
debe emplearse para realizar la renderización de una imagen en
trama. Cada tipo de datos que se soporte debe tener un
procedimiento de renderización asociado a él, para convertir la
representación en una imagen en trama. Estos procedimientos de
renderización deben soportar los atributos FitMode y Angle.
Preferiblemente, se soportan los siguientes tipos de datos:
Tipo de dato | Restituidor | Ejemplo |
trama | render_raster () | TIFF, RES, PCX |
texto simple | render_text () | una línea de texto, |
un tipo de letra | ||
gráficos simples | render_graphics () | CGM |
patrón | render_pattern () | color constante |
IPD | render_ipd () |
El procedimiento Render () puede incorporar el
ángulo de rotación directamente en la renderización del objeto, o
puede aplicar una operación de rotación de la trama al objeto
rasterizado. Por ejemplo, los programas disponibles de renderización
de texto tienen la capacidad de restituir directamente el texto en
un ángulo especificado, lo que da como resultado una mejor calidad
que una renderización horizontal seguida por una rotación de
trama.
Como se ha expuesto anteriormente, el
ControlPoint debe ajustarse para conservar la misma posición
relativa del objeto restituido y el MergePoint, según los atributos
FitMode, Justification y Angle. Es responsabilidad de ReadObject ()
realizar este ajuste, e insertar el ControlPoint ajustado en la
cabecera de la imagen en trama a fin de dejarlo disponible para
cualquier IPO que también pueda ajustarlo (tal como
SpatialTransform).
El procedimiento ReadObject () invoca a la
función Finder () para localizar y devolver datos de objetos, con
el objeto de su renderización en una imagen en trama de salida. El
procedimiento Finder () realiza seis acciones, conforme a la
renderización de una SI:
- 1)
- localiza todas las representaciones del objeto;
- 2)
- identifica el tipo de cada representación (TIFF, texto, gráficos);
- 3)
- determina los atributos de cada representación que son necesarios para escoger la mejor representación;
- 4)
- aplica una función de mérito a cada representación disponible, y selecciona la representación con el valor de mérito más alto;
- 5)
- devuelve un puntero a los datos de representación; y
- 6)
- devuelve el tipo de datos de representación.
El mecanismo de Finder () es necesariamente
dependiente de la implementación específica. Sin embargo, pueden
hacerse algunas afirmaciones en cuanto a la funcionalidad.
En la sintaxis actual del Lenguaje de Definición
de Imágenes Estructuradas [Structured Image Definition Language -
SIDL], un objeto SI puede describirse de una de tres maneras (el
siguiente código fuente está sujeto a protección de derechos de
autor, y puede ejecutarse en el sistema de hardware previamente
descrito):
Un objeto definido como External [Externo] es tal
que los datos a los que hace referencia el objeto no están
almacenados dentro de la SID actual. Típicamente, los datos
efectivos están almacenados en un fichero distinto. El campo System
[Sistema] en una descripción que la función Finder () emplea para
entender cómo localizar los datos. La entrada Name [Nombre] es un
conjunto de palabras clave que Finder () utilizará para localizar
efectivamente los datos deseados. En el ejemplo anterior, Finder ()
está implementado para entender que una entrada del sistema de valor
"UNIX®" indica que los datos efectivos se hallarán buscando,
en un camino adecuado de un sistema de ficheros UNIX®, un fichero
con la entrada de nombre "ave.TIFF". Si la entrada System
hubiese sido "SYBASE ®", entonces Finder () trataría las
palabras clave en el campo Name [Nombre] como palabras clave para
buscar los datos en una base de datos SYBASE®.
Un objeto definido como Internal [Interno]
contiene los datos almacenados directamente dentro de la SID. Esto
es útil para almacenar objetos pequeños, tales como iconos de trama
o ficheros de texto sencillo, directamente dentro de la SID, no
requiriendo, por ello, almacenamiento externo.
IPD es un tipo de datos de objeto SI que permite
que una imagen estructurada esté compuesta por otros objetos SI y
otros IPO. Basándose en la información almacenada dentro del objeto
SI, Finder () debe localizar todas las representaciones disponibles
y determinar el tipo de datos y todo atributo requerido para escoger
la "mejor" representación a fin de realizar la renderización
de la imagen. El mecanismo o los protocolos empleados para
implementar estas funciones no están definidos en la SI, pero se
entiende que existen tales mecanismos y que están disponibles para
su uso aquí.
Una vez que todas las representaciones están
determinadas, Finder () debe escoger la representación más adecuada
para realizar la renderización de la imagen en trama de salida. El
mecanismo se implementa aplicando un cálculo de una función de
mérito a cada representación. La función de mérito exacta depende
de la implementación y no está definida en la SI; sin embargo,
debería basarse en los atributos de las representaciones, los
atributos deseados de la imagen de salida, el dispositivo de salida
final (p. ej., impresora en blanco y negro, visor en color) y en la
complejidad del procesamiento. Una vez que se ha escogido una
representación, Finder () devuelve un puntero a los datos efectivos
y el tipo de datos a ReadObject (), para que comience el
procesamiento.
Como se ha expuesto anteriormente, IPD es un tipo
de objeto SI que permite que una SI esté compuesta de otros objetos
SI y otras IPO. La IPD representa una descripción estructurada de
referencias a objetos componentes y de las IPO aplicadas a esos
objetos componentes. La Figura 10 es una representación gráfica de
una IPD.
Una IPD consiste en referencias a los siguientes
descriptores:
- 1)
- tamaño por omisión;
- 2)
- ReadObject;
- 3)
- path [camino];
- 4)
- IPO;
- 5)
- merge [fusión];
- 6)
- marco para pegar;
- 7)
- initializer [inicializador]; y
- 8)
- marco para pegar de componentes.
En la Figura 10, cada línea vertical, llamada un
camino, es una colección de IPO. ReadObject representa un
procedimiento que convierte un objeto SI en una imagen en trama,
apta para su procesamiento por la IPO en el camino. El objeto
restituido fluye a través del camino y es procesado secuencialmente
por cada IPO. Cada camino tiene almacenado dentro de sí un marco
para pegar utilizado por ReadObject para definir un "cuadro"
en el cual se restituye el objeto SI. A este marco para pegar se lo
menciona como el marco para pegar del componente. La línea
horizontal es el marco para pegar del objeto IPD y representa una
imagen en trama "en blanco" sobre la cual se fusionarán los
marcos para pegar de los componentes. Los triángulos negros
representan operaciones de Merge [Fusión], donde se combinan los
marcos para pegar de los componentes sobre el marco para pegar del
objeto. El orden de fusión de los marcos para pegar de los
componentes es explícito; por ello, se soporta un sentido de
imágenes "superior" e "inferior". La Figura 11 ilustra el
flujo de los datos de la trama durante la renderización de una SI
(es decir, el flujo de control desde ReadObject hasta Merge).
Cada IPD debe incluir información que especifica
un tamaño por omisión para la IPD. Esta información se utiliza como
indicio para los programas de renderización, en cuanto al tamaño en
el cual se pretendía realizar la renderización de la imagen en la
sintaxis actual del SIDL; esta información, preferiblemente, se
almacena como una proporción del aspecto y una cadena de caracteres
para el ancho por omisión. Por ejemplo,
El campo AspectRatio [Proporción del Aspecto]
está definido por la razón entre el alto y el ancho. El campo
Default Width [Ancho por omisión] es una cadena de caracteres que
define un ancho y una unidad. Las unidades posibles son: in
[pulgada], cm, mm, m, pt [punto] y pix [píxel].
Las IPO son descripciones, independientes del
dispositivo, de comandos de procesamiento de imágenes. Sólo una IPO
está actualmente especificada en la SI: la IPO SpatialTransform,
que se expondrá en mayor detalle en los ejemplos siguientes. Se
entiende, sin embargo, que las IPO adicionales serán dependientes de
la implementación. Entre éstas, ciertas funciones fundamentales se
consideran esenciales, y son IPO preferidas, según lo
siguiente:
- 1)
- Transformador: transforma espacialmente el tamaño o forma de una imagen (p.ej., affine [afín], warp [alabeo]);
- 2)
- Formateador: convierte píxeles de un formato a otro (p. ej., convert [convertir], interleave [intercalar], cspace);
- 3)
- Filtro: aplica diversas operaciones de filtrado (p. ej., convolve [entrelazado], median [mediana], morphological [morfológica]);
- 4)
- Coloreador: ajusta el valor cromático de las imágenes (p. ej., relativo, absoluto, contraste, punto blanco);
- 5)
- Máscara: aplica operaciones de máscara (p. ej., añadir, extraer, convertir, aplicar); y
- 6)
- Misceláneas: aplican otras operaciones misceláneas.
Una IPO puede especificar la región de selección
de su operación. Una selección es una descripción de qué píxeles en
una imagen han de ser procesados en una operación específica. Por
ejemplo, una selección puede incluir mapas de bits o descripciones
matemáticas de regiones. Normalmente, las selecciones son de
naturaleza binaria, es decir, un píxel es procesado o bien no lo
es. Sin embargo, un valor de selección "gris" causará que el
valor de píxel de salida esté incluido en una escala entre el valor
del píxel original y el valor del píxel procesado.
Como se muestra en la Figura 12, todos los
objetos hijos en una IPD se fusionan en el marco para pegar del
padre en la ubicación especificada por el MergePoint
(correspondiente al marco para pegar del objeto) y el ControlPoint
(correspondiente al marco para pegar del hijo). El orden de fusión
es explícito en la IPD.
Normalmente, el marco para pegar de un objeto IPD
representa una trama "en blanco", sobre la cual se fusionan los
marcos para pegar de los componentes. Es posible inicializar un
marco para pegar con un color, un patrón o incluso una imagen en
trama, empleando el Initializer [Inicializador] (véase la Figura
13). Un Inicializador es, de hecho, un Camino que contiene un
ReadObject () y una o más IPO. La restricción es que el tamaño
relativo sea (1.0, 1.0) y que no exista ninguna IPO de
transformación espacial en el Camino. El marco para pegar tendrá el
tamaño del Inicializador restituido. Típicamente, el Inicializador
se emplea para colorear el marco para pegar o para inicializar el
marco para pegar con una imagen en trama de fondo.
La invención, además, permite que se definan
imágenes estructuradas que tienen campos dentro de la SID,
identificados como indefinidos. Tales campos son comodines para
datos que se enlazarán dinámicamente con la SI y que son específicos
del tiempo de ejecución (tiempo de renderización). Hay dos
clasificaciones para los campos indefinidos:
- 1)
- SI no enlazada; y
- 2)
- SI incompleta.
En general, los objetos componentes de una SI no
están contenidos dentro de la misma SID, sino que se hace
referencia a ellos en los campos de los objetos SI (tales como los
campos System [Sistema] y Name [Nombre] de un objeto External
[Externo]). En la sintaxis actual del SIDL, estos campos pueden
etiquetarse como indefinidos. Esto permite el enlace dinámico de
los datos con la imagen estructurada.
Considere, por ejemplo, una sesión de edición
interactiva donde un usuario está creando una SI para su impresión.
La SI ha de utilizarse sólo una vez, y descartarse luego. El
usuario crea la SI utilizando un editor interactivo de SI
(nuevamente, esta es sólo una forma, a modo de ejemplo, de crear la
SI, y no es necesariamente más preferible que la creación por
plantilla o la creación automática, utilizando el software de
escaneo adecuado). Todos los componentes de la SI son conocidos y
están definidos. Una vez completada la edición, el usuario imprime
la SI y la tarea está completa. La SID generada para describir esta
SI se denomina completamente enlazada, lo que significa que todos
los componentes fueron definidos antes de la renderización. Esto
es, completamente enlazada significa que todos los objetos en la
IPD apuntan a entidades definidas antes de la renderización de la
trama de la SI de salida.
En muchas aplicaciones, sin embargo, las imágenes
completamente enlazadas no son aptas para la tarea. Considere, por
ejemplo, a un publicista generando un folleto en el cual un
componente de la imagen ha de variar con la ubicación geográfica de
las ventas. Todas las imágenes posibles de este componente se
almacenan en una base de datos. El publicista puede definir la
entrada System [Sistema] de un objeto External [Externo] para
identificar el Sistema de base de datos, p. ej., SYBASE ®, pero el
campo Name [Nombre] estará marcado como indefinido. En tiempo de
ejecución, la palabra clave correcta puede enlazarse dinámicamente
con el objeto para la generación de cada imagen de salida
solicitada. Utilizando este procedimiento, puede emplearse una única
SI para generar muchas imágenes de salida distintas. Las imágenes
no enlazadas son SI válidas, pero requieren información adicional
en tiempo de ejecución para su renderización.
Notablemente, SI no tiene preferencia por
imágenes Enlazadas o No Enlazadas; la elección depende de la
aplicación (véase la Figura 14 para una visualización de usuario
representativa que utiliza la generación de imágenes estructuradas
No Enlazadas).
De manera similar al concepto de las imágenes No
Enlazadas, la invención permite que los parámetros de las IPO estén
indefinidos. Además, la misma IPO puede estar indefinida. Por
ejemplo, considere a un publicista que crea un folleto que contiene
imágenes de automóviles, en las cuales el color de un coche ha de
cambiar de una impresión a otra. El publicista puede tener imágenes
distintas del coche con todos los colores posibles, y emplear el
enlace dinámico de la SID. El publicista también puede escoger
utilizar una única imagen del coche y pasar el color deseado como un
argumento a los procedimientos de renderización, para que sea
dinámicamente enlazado con la IPO. Sin el valor del color
proporcionado en tiempo de ejecución, la renderización de la trama
de salida no podría efectuarse. Esto se conoce como una SI
"incompleta" (véase la Figura 15). Una SI incompleta es una en
la cual alguna parte de la SID no está definida, y debe enlazarse
en tiempo de ejecución. Las SI incompletas son SI válidas, pero no
pueden restituirse sin información adicional.
Hay dos consideraciones importantes, evidentes al
realizar la renderización de una SI no enlazada:
- 1)
- el mecanismo de enlace; y
- 2)
- el modelo de renderización.
El mecanismo por el cual las SI No Enlazadas se
enlazan dinámicamente depende de la implementación. Aquí están
identificados cuatro posibles mecanismos; sin embargo,otros pueden
ser posibles:
- 1)
- Requerir que la SI siempre represente una "imagen completa"; si la SI es no enlazada, o incompleta, realizar una operación de prefiltrado para modificar la SID.
- 2)
- Emplear el mecanismo actual de enlace de referencias. El fichero SID puede incluir referencias e información de enlace sin definir, descritas en otro fichero como definiciones "tag" ["etiqueta"], correspondientes a referencias indefinidas en el SIDL. El enlace se realiza, por ejemplo, concatenando el fichero SID y la información de enlace para crear una SID completa;
- 3)
- Especificar la información de enlace como parámetros del restituidor de la SI; o
- 4)
- Incluir un Procedimiento de Enlace Dinámico en el procedimiento Finder () que se invoque automáticamente para resolver todo campo no enlazado o incompleto en la SID.
Para los fines de la invención, son preferibles
todos los mecanismos de enlace descritos anteriormente; sin
embargo, se entiende que la elección entre los diversos mecanismos
dependerá de la implementación.
Para ciertas aplicaciones, una SI puede tener
campos que no pueden enlazarse completamente en tiempo de
renderización. Por ejemplo, considere un documento donde cada
página es una SI que contiene seis objetos hijo idénticos que han de
enlazarse en tiempo de renderización, p. ej., un catálogo de
inmuebles donde cada objeto hijo corresponde a una casa en venta.
Considere que el documento ha de exhibir un total de nueve casas.
Esto requeriría dos páginas del documento, pero sólo se requerirán
tres de los objetos hijos en la segunda página. El restituidor de SI
puede operar según tres modelos, aunque otros pueden ser
posibles:
- 1)
- abortar, con un error de ausencia de enlace;
- 2)
- ignorar los objetos no enlazados, tratar las IPO incompletas como "no operaciones"; y
- 3)
- restituir sólo el marco para pegar de objetos no enlazados, tratar las IPO incompletas como "no operaciones".
Los tres modelos son preferibles para su
utilización con la invención; sin embargo, se aprecia que la
elección depende de la aplicación.
Aunque la renderización no está específicamente
definida en el SIDL, se proporciona aquí una breve explicación, para
mayor claridad. En los procesos reales de renderización, pueden
seleccionarse algunos procedimientos de renderización según
condiciones tales como el fin, la prioridad, los recursos, etc. La
renderización es una cuestión específica de la implementación; sin
embargo, se entiende que todas las implementaciones de programas de
renderización de las SI deben producir salida equivalente para una
SI y un dispositivo de salida dados. No se espera que los
resultados sean exactamente idénticos, porque diferencias leves en
los programas de procesamiento de imágenes producirán resultados
distintos.
Sin embargo, las salidas deben ser razonables.
Esta afirmación es como decir que los distintos compiladores de C
no tienen que generar código de máquina idéntico, pero todos los
compiladores deben generar código de máquina que funcione.
Se han examinado dos enfoques para la
renderización de las SI:
- 1)
- Renderización orientada a objetos; y
- 2)
- Renderización por árbol de procesamiento.
La renderización orientada a objetos (véase la
Figura 16) es un procedimiento de análisis sintáctico, directamente
de arriba hacia abajo, de un árbol de objetos, y de renderización
de cada objeto (SI) sobre la marcha. Cuando una SI recibe un
mensaje "render" ["restituir"], es restituida según los
atributos dados de tamaño y resolución, o los atributos de
dimensión. Si se necesitan otros componentes para la construcción
de la SI, el objeto envía el mensaje "render" a los objetos
componentes y obtiene las imágenes de salida. La renderización
orientada a objetos es la ejecución directa de un árbol de objetos,
que puede imaginarse mejor como una "interpretación" de un
árbol de objetos. La renderización orientada a objetos es
especialmente adecuada para la renderización en situaciones de
edición interactiva.
Un árbol de procesamiento es un grafo acíclico
dirigido de comandos de procesamiento de imágenes, que depende del
dispositivo y de la resolución (véase la figura 17). Un árbol de
procesamiento se genera expandiendo la SID asociada con todas las
SI anidadas en una única SI, y aplicando luego la información
dependiente del dispositivo para convertir todas las coordenadas y
dimensiones en valores absolutos y dependientes del dispositivo.
Los contenidos de los datos a los que apuntan las entradas de
representación se restituyen como tramas. Como el árbol de
procesamiento depende del dispositivo y de la resolución, las IPO
pueden optimizarse en cuando a la velocidad de procesamiento, por
medio de una gran variedad de técnicas de optimización, entendidas
por aquellos versados en la técnica. Por ejemplo, el usuario puede
combinar dos operaciones de reducción a escala y una de rotación en
una operación afín, combinando de esa manera operaciones conformes
en cascada en operaciones afines. En esencia, no hay por qué
efectuar tres operaciones distintas cuando pueden combinarse en una
para mejorar la velocidad de procesamiento.
La imagen de salida se restituye luego por medio
de un sencillo recorrido del árbol de procesamiento resultante.
Esto puede pensarse como una "compilación" de un árbol de
objetos. La renderización del árbol de procesamiento es
especialmente adecuada para la renderización de imágenes de salida
muy grandes, que son típicas en la impresión de documentos. La
optimización del procesamiento de imágenes puede disminuir
significativamente el tiempo requerido para la renderización.
La SI mostrada en la Figura 18 se describe
brevemente a continuación. Este ejemplo descriptivo está escrito
utilizando el SIDL, como se ha descrito anteriormente.
La SI de nivel superior en este conjunto
comprende cuatro componentes:
- 1)
- imagen de montaña - objeto de imagen en trama (Mont1);
- 2)
- "Muestra..." - objeto de texto (Texto1);
- 3)
- árbol y casa - IPD (Casa1); y
- 4)
- imagen de ave - objeto en trama de mapa de bits (Ave1).
La SI de segundo nivel comprende dos
componentes:
- 1)
- gráfico de árbol - objeto gráfico (Árbol2); y
- 2)
- imagen de casa - objeto en trama (Casa2).
El fichero SID asociado a la SI de nivel superior
se ilustra en las Figuras 19a-c. Las SI se
describen (nuevamente, el código fuente siguiente está sujeto a
protección de derechos de autor y puede ejecutarse en el sistema de
hardware descrito anteriormente) como un conjunto de
"etiquetas" en SIDL, que se especifican por el nombre del tipo
de etiqueta y el cuerpo de etiqueta, encerrado por "{" y
"}". Las etiquetas pueden nombrarse utilizando la sintaxis
":nombre". El nombre de etiqueta puede emplearse como
referencia para otras etiquetas, prefijando "\textdollar".
La etiqueta Object [Objeto] es la etiqueta de máximo nivel de la
SI. En este ejemplo, la etiqueta Object representa un objeto IPD y
su descripción está en la etiqueta "ipd1" referenciada. La
etiqueta "ipd1" define las etiquetas AspectRatio [Proporción
del aspecto] y DefaultWidth [Ancho por omisión], los atributos del
marco para pegar FitMode [Modalidad de Ajuste], Justification
[Alineación] y Angle [Ángulo], y cuatro etiquetas de Fusión
[Merge], cuya secuencia especifica el orden de fusión, desde
"merge1" hasta "merge4". Cada etiqueta Merge especifica un
punto de fusión con respecto al marco para pegar con la etiqueta
MergePoint [Punto de Fusión], y una secuencia de procesamiento de
imágenes, con una etiqueta Path [Camino]. La etiqueta Path designa
el objeto hijo con otra etiqueta Object, el tamaño relativo con una
etiqueta Size [Tamaño], la posición del ControlPoint [Punto de
Control] (con respecto al hijo) con la etiqueta ControlPoint, y las
operaciones de procesamiento de imágenes con una lista de etiquetas
IPO. Observe que path1, path2 y path4 se refieren a ficheros de
trama, de texto o gráficos. Path3 se refiere a otro fichero SID que
crea una imagen en trama combinando un árbol gráfico con una imagen
en trama de una casa.
Para algunas aplicaciones, se prefieren
descripciones explícitas de las representaciones disponibles. Por
esta razón, se define el formato de fichero MR. Este formato de
fichero utiliza actualmente una sintaxis similar a la del SIDL. Las
Figuras 20a-b son ejemplos del formato de fichero
MR: Cada representación se enumera con un campo Format [Formato]
que identifica el tipo de fichero, y un campo Data [Datos] para
definir explícitamente los datos. Para datos basados en ficheros,
tales como un fichero TIFF, el campo Data contiene un camino UNIX ®
hasta el fichero. Para texto simple, el campo Data contiene la
cadena de caracteres del texto. El formato MR permite que cada
representación tenga explícitamente definido un conjunto de
atributos [attribute] que describen los datos. Para datos de trama,
los atributos pueden incluir la dimensión, la fotometría u otros
atributos. Para objetos de texto, los atributos pueden incluir el
tipo de letra, el estilo, etc. El uso del formato de fichero MR,
sin embargo, no es el preferido en esta invención.
La única IPO especificada dentro del formato de
SI es la IPO SpatialTransform [Transformación espacial], que vale
para realizar transformaciones espaciales lineales sobre contenidos
de imagen en trama. Los ejemplos incluyen la rotación, la reducción
a escala y la esquila. En general, la IPO SpatialTransform realiza
todas las transformaciones afines excepto la traslación (que está
controlada a través de los atributos MergePoint [Punto de fusión] y
ControlPoint [Punto de Control]).
Los parámetros de SpatialTransform son los
siguientes:
Parámetro | Valor |
Scale [Escala] | \begin{minipage}[t]{85mm} 1 valor para la escala XY (preservar la proporción de aspecto) o 2 valores para una escala arbitraria (la interpolación depende de la aplicación - Nota: probablemente debería ser un argumento)\end{minipage} |
Rotate [Rotar] | Ángulo (en grados) |
Shear [Esquilar] | Ángulo de Esquila (en grados) |
Mirror [Reflejar] | "X" o "Y" |
TransformPoints [Puntos de transformación] | 3 pares de vértices |
Affine [Afín] | Coeficientes afines |
FixedPoint [Punto fijo] | \begin{minipage}[t]{85mm} (x, y) relativos al hijo que está siendo transformado - el valor por omisión es la ubicación del ControlPoint\end{minipage} |
El parámetro FixedPoint permite la aplicación de
transformaciones espaciales alrededor de un punto de referencia.
Por ejemplo, la especificación de un FixedPoint permite al usuario
hacer girar el objeto alrededor del FixedPoint en lugar de hacerlo
girar alrededor del centro del objeto. En general, puede definirse
cualquier transformación espacial para operar alrededor de
FixedPoint que disponga de soporte. Como el FixedPoint es un
parámetro de SpatialTransform y no es parte del marco para pegar, la
IPO ajusta el ControlPoint automáticamente para garantizar que el
objeto hijo se fusione en el marco para pegar padre en la posición
correcta. Un ejemplo de cómo se ajusta el ControlPoint se describe
más abajo.
Por ejemplo (véanse las Figuras
21a-b), el objeto tiene un ControlPoint C de (0.5,
0.5) y un punto fijo de (2.0, 0.0) con respecto a la esquina
superior izquierda P del hijo. Suponga que la renderización indica
que el hijo es de tamaño 50 x 50. El FixedPoint F es (-100, 0) con
respecto al hijo. El ControlPoint es inicialmente (25, 25) con
respecto a P, y (125, 25) con respecto al FixedPoint. La rotación
del hijo 45 grados alrededor de FixedPoint generará un hijo con un
nuevo tamaño de 71 x 71 (cuadro delimitador) y con un origen en
(71, 107) con respecto al FixedPoint. Recuerde que el punto de
control original era (125, 25) con respecto al FixedPoint. Por lo
tanto, el ControlPoint se ajustará para ser (125, 25) - (71, -107)
= (54, 132) en tamaño de píxeles, es decir, (0.76, 1.86) con
respecto al origen Q del hijo sometido a rotación. De esta manera,
el ControlPoint se ajustará para garantizar que la rotación
alrededor de un FixedPoint tenga como resultado que el hijo sea
fusionado en el marco para pegar en la posición correcta.
Alternativamente, un editor interactivo puede
manipular el centro de rotación, etc., durante la creación de la SI
y, simplemente, ajustar el MergePoint debidamente al grabar la SID.
Es decir, el usuario puede fijar el centro de rotación, por ejemplo,
en una ubicación deseada, y la SID ya no se ocupa de él.
Es importante señalar que SI es mucho más que un
mero editor interactivo. Por ejemplo, un impresor de un calendario
universitario tiene muchas imágenes individuales que preparar
electrónicamente para su impresión como un calendario acabado. En
particular, deben escanearse las fotos para su ingreso en la base de
datos, ya sea individualmente (lo que consume un tiempo
excesivamente largo), o bien con tecnología existente, en la cual
pueden escanearse a la vez hasta doce fotos. Lamentablemente, sin
embargo, no importa cuánto intente el usuario alinear debidamente
las imágenes individuales para su escaneo, siempre habrá leves
desviaciones como resultado del escaneo en sí. Usualmente, cada
imagen tiene un código de barras o alguna otra característica de
identificación para enlazar la imagen con el nombre que se imprimirá
debajo de ella.
Existe software que es capaz de generar una SI
automáticamente en la situación de escaneo descrita anteriormente.
Es decir, se crea una SI que identifica cada objeto hijo individual
(o sea, las imágenes individuales) y que incluye operaciones de
procesamiento de imágenes para corregir toda desalineación, y para
configurar debidamente cada imagen en la página con el texto
adecuado debajo (referencia de código de barras). Tal software es
capaz de escanear muchos objetos a la vez, y cada objeto hijo será
girado en un sentido u otro para la renderización adecuada al
imprimir. Por lo tanto, el impresor del calendario puede, según su
opción, escoger sólo los objetos hijo deseados para su colocación
en esa página en particular, alinearlos como desee, añadir el texto
adecuado e imprimir. Como se ha expuesto anteriormente, se hace
referencia a los objetos hijo por el código de barras para su
invocación.
Además, el impresor del calendario puede desear
crear otra SI, creando una plantilla con agujeros "no
enlazados" para las imágenes y el texto, según se desee. El
impresor del calendario enlaza luego el número adecuado de objetos
hijo a esa plantilla para su impresión. Es importante señalar, sin
embargo, que la plantilla también puede tener empotrado
procesamiento inteligente (es decir, fondos, etc.) que cambiará
automáticamente el color, recortará, generará efectos especiales,
etc.)
El precedente concepto inventivo permite la
representación de imágenes en trama complejas en color, como una
colección de objetos en un formato jerárquico e independiente del
dispositivo. Los objetos que participen en la trama de salida
pueden originarse en texto, gráficos, otras tramas, u otras SI, y
mantener su herencia para la elegibilidad y la modificación. Una SI
incluye no sólo los datos originales, sino también las operaciones
de procesamiento de imágenes requeridas para su renderización. La
tecnología SI soporta la reeditabilidad, la personalización y el
realce, a la composición automática de imágenes y a la generación
de imágenes de altas prestaciones (es decir, en paralelo,
distribuidas, con almacenamiento en memoria caché, etc.) Esto
proporciona un armazón muy potente para describir imágenes, para su
edición y reedición posteriores. SI, entonces, es una tecnología de
base, capaz de abordar la gama completa de adquisición de objetos,
almacenamiento, edición / preparación y entrega / transmisión, hasta
la renderización de salida.
Claims (19)
1. Un generador de imágenes electrónicas, que
comprende:
un módulo de construcción, capaz de construir la
representación de imágenes estructuradas, comprendiendo la
representación al menos un objeto imagen que se puede restituir
como al menos una trama y al menos un marco para pegar con al menos
un atributo de imagen, representando cada marco para pegar un
cuadro sobre el cual puede restituirse al menos uno entre el objeto
u objetos imagen; y
un módulo de renderización, en comunicación con
el módulo de construcción, siendo el módulo de renderización capaz
de realizar la renderización de la representación para dar una
imagen visualizable; en el que el módulo de renderización es capaz
de fusionar el objeto u objetos imagen sobre el marco o marcos para
pegar, a fin de formar la imagen visualizable según el atributo o
atributos de imagen del marco o marcos para pegar y, para cada
atributo o atributos de imagen, dicho atributo, o atributos, de
imagen se asocia a un marco o marcos para pegar, en lugar de a
cualquier objeto u objetos imagen;
en el que al menos uno entre el objeto u objetos
imagen y el atributo o atributos de imagen permanece indefinido
cuando la representación es construida por el módulo de
construcción, y al menos uno entre el objeto u objetos imagen y el
atributo o atributos de imagen es definido durante la renderización
por el módulo de renderización.
2. El generador de imágenes electrónicas de la
reivindicación 1, en el que el módulo de renderización y el módulo
de construcción reaccionan ante instrucciones de programas de
ordenador y a comandos ingresados por un operador, que emplea uno
entre un teclado, un ratón, una pantalla táctil y un lápiz
electrónico.
3. El generador de imágenes electrónicas de la
reivindicación 1 o la reivindicación 2, en el que la representación
comprende, adicionalmente, al menos una operación de procesamiento
de imágenes.
4. El generador de imágenes electrónicas de
cualquiera de las reivindicaciones precedentes, que comprende
además un módulo de impresión acoplado al módulo de renderización y
al módulo de construcción, para imprimir la representación.
5. El generador de imágenes electrónicas de
cualquiera de las reivindicaciones precedentes, en el que el módulo
de construcción es capaz de modificar el marco o marcos para pegar,
incluyendo el atributo o atributos de imagen, en respuesta a
instrucciones de programas de ordenador y a comandos ingresados por
el operador, empleando al menos uno entre un teclado, un ratón, una
pantalla táctil y un lápiz electrónico.
6. El generador de imágenes electrónicas de
cualquiera de las reivindicaciones precedentes, en el que la
representación comprende además al menos un objeto componente,
individualmente manipulable, que comprende al menos un objeto imagen
que puede restituirse como al menos una trama, comprendiendo además
el objeto, u objetos, componente al menos un marco para pegar de
componente que tiene al menos un atributo de imagen de componente
y, para cada marco para pegar de componente, ese marco para pegar
de componente representa un cuadro sobre el cual se restituye un
objeto u objetos del objeto componente.
7. El generador de imágenes electrónicas de
cualquiera de las reivindicaciones precedentes, en el que el módulo
de construcción es capaz de exhibir simultáneamente la
representación y el atributo o atributos de imagen.
8. El generador de imágenes electrónicas de
cualquiera de las reivindicaciones precedentes, en el que el módulo
de construcción y el módulo de representación son capaces de
construir y realizar la renderización de la representación para
mantener su apariencia independiente de la resolución y el tamaño de
la imagen visualizable.
9. El generador de imágenes electrónicas de
cualquiera de las reivindicaciones precedentes, que comprende
además un módulo de memoria, acoplado al módulo de renderización y
al módulo de construcción, para almacenar la representación,
incluyendo el objeto, u objetos, imagen que puede restituirse como
al menos una trama.
10. El generador de imágenes electrónicas de la
reivindicación 9, en el que el objeto, u objetos, imagen se
almacena en dicho módulo de memoria en formato nativo, comprendiendo
el formato nativo al menos uno entre un fichero de texto, un
fichero gráfico, un fichero de trama y un fichero de objeto
componente individualmente manipulable.
11. El generador de imágenes electrónicas de
cualquiera de las reivindicaciones precedentes, en el que la
representación es capaz de representar valores complejos de color y
de transparencia.
12. Un procedimiento para generar
electrónicamente una representación de imagen estructurada,
comprendiendo el procedimiento:
seleccionar un objeto imagen, que puede
restituirse como una trama, en una memoria;
\newpage
definir un marco para pegar que incluye al menos
un atributo de imagen, representando el marco para pegar un cuadro
sobre el cual se restituyen dichos datos;
construir la representación, que comprende el
objeto imagen y el marco para pegar, según el atributo o atributos
de imagen del marco para pegar; y
realizar la renderización de la representación en
un formato capaz de ser exhibido o impreso, en el cual el atributo,
o atributos, de imagen está asociado al marco para pegar y no al
objeto imagen;
en el que al menos uno entre el objeto imagen y
el atributo o atributos de imagen, permanece indefinido cuando se
construye la representación, y al menos uno entre el objeto imagen
y el atributo o atributos de imagen se define durante la
renderización.
13. El procedimiento de la reivindicación 12, que
comprende además al menos uno entre la visualización y la impresión
de la representación, en respuesta a al menos uno entre las
instrucciones de programas de ordenador y los comandos ingresados
por el operador.
14. El procedimiento de la reivindicación 12 o la
reivindicación 13, que comprende además la definición de al menos
una operación de procesamiento de imágenes, a efectuar durante la
etapa de construcción.
15. El procedimiento de la reivindicación 14, que
comprende además la renderización y exhibición sobre una pantalla de
visualización de un diagrama de flujo gráfico que incluye iconos de
visualización, que representan el objeto imagen seleccionado, el
marco para pegar, el atributo o atributos de imagen y la operación u
operaciones de procesamiento de imágenes.
16. El procedimiento de la reivindicación 15, en
el que la selección, definición, construcción, renderización y
visualización se efectúan basándose en instrucciones de programas
de ordenador y comandos ingresados por el operador, por medio de la
manipulación de un cursor sobre dicha pantalla de visualización,
empleando al menos uno entre un teclado, un ratón, una pantalla
táctil y un lápiz electrónico.
17. El procedimiento de la reivindicación 15, que
comprende adicionalmente la visualización de la imagen visualizable
sobre la pantalla de visualización, simultáneamente con el diagrama
de flujo gráfico.
18. El procedimiento de cualquiera de las
reivindicaciones entre la 12 a la 17, en el que el objeto imagen
seleccionado comprende al menos un objeto componente individualmente
manipulable, que comprende al menos un objeto imagen que puede
restituirse como al menos una trama y al menos un marco para pegar
de componente, que tiene al menos un atributo de imagen de
componente y, para cada marco para pegar de componente, ese marco
para pegar de componente representa un cuadro sobre el cual se
restituye un objeto, u objetos, imagen del objeto componente.
19. El procedimiento de la reivindicación 18, que
comprende además:
definir al menos una operación de procesamiento
de imágenes a efectuar durante la construcción; y
restituir y exhibir sobre una pantalla de
visualización un diagrama de flujo gráfico que incluya iconos de
visualización que representan el objeto imagen seleccionado, el
marco, o marcos, para pegar de componente, el atributo o atributos
de imagen de componente, la operación u operaciones de procesamiento
de imágenes, el marco para pegar y el atributo o atributos de
imagen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/133,422 US5485568A (en) | 1993-10-08 | 1993-10-08 | Structured image (Sl) format for describing complex color raster images |
US133422 | 1993-10-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2242349T3 true ES2242349T3 (es) | 2005-11-01 |
Family
ID=22458559
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES99124095T Expired - Lifetime ES2194415T3 (es) | 1993-10-08 | 1994-10-06 | Formato de imagen estructurada para describir imagenes en tramas complejas en color. |
ES94307326T Expired - Lifetime ES2169063T3 (es) | 1993-10-08 | 1994-10-06 | Formato de imagen estructurada para la descripcion de imagenes de exploracion por tramas complejas en color. |
ES99124094T Expired - Lifetime ES2242349T3 (es) | 1993-10-08 | 1994-10-06 | Formato de imagen estructurada (si) para describir imagenes en trama complejas en color. |
ES99124093T Expired - Lifetime ES2242348T3 (es) | 1993-10-08 | 1994-10-06 | Formato de imagen estructurada (si) para describir imagenes en trama complejas en color. |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES99124095T Expired - Lifetime ES2194415T3 (es) | 1993-10-08 | 1994-10-06 | Formato de imagen estructurada para describir imagenes en tramas complejas en color. |
ES94307326T Expired - Lifetime ES2169063T3 (es) | 1993-10-08 | 1994-10-06 | Formato de imagen estructurada para la descripcion de imagenes de exploracion por tramas complejas en color. |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES99124093T Expired - Lifetime ES2242348T3 (es) | 1993-10-08 | 1994-10-06 | Formato de imagen estructurada (si) para describir imagenes en trama complejas en color. |
Country Status (6)
Country | Link |
---|---|
US (2) | US5485568A (es) |
EP (4) | EP0989522B1 (es) |
JP (1) | JP3630726B2 (es) |
CA (1) | CA2131439C (es) |
DE (4) | DE69429488T2 (es) |
ES (4) | ES2194415T3 (es) |
Families Citing this family (114)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336180B1 (en) | 1997-04-30 | 2002-01-01 | Canon Kabushiki Kaisha | Method, apparatus and system for managing virtual memory with virtual-physical mapping |
US5485568A (en) * | 1993-10-08 | 1996-01-16 | Xerox Corporation | Structured image (Sl) format for describing complex color raster images |
EP0686945B1 (en) * | 1994-05-26 | 2001-12-19 | Canon Kabushiki Kaisha | Image processing apparatus and method |
AUPM704494A0 (en) * | 1994-07-25 | 1994-08-18 | Canon Information Systems Research Australia Pty Ltd | Efficient methods for the interpretation of a graphical programming language |
AUPM704294A0 (en) * | 1994-07-25 | 1994-08-18 | Canon Information Systems Research Australia Pty Ltd | Method and apparatus for the creation of images |
AU733038B2 (en) * | 1994-07-25 | 2001-05-03 | Canon Kabushiki Kaisha | Efficient methods for the evaluation of a graphical programming language |
AU694512B2 (en) * | 1994-07-25 | 1998-07-23 | Canon Kabushiki Kaisha | Efficient methods for the interpretation of a graphical programming language |
AU681963B2 (en) * | 1994-07-25 | 1997-09-11 | Canon Kabushiki Kaisha | Optimization method for the efficient production of images |
AUPM704394A0 (en) * | 1994-07-25 | 1994-08-18 | Canon Information Systems Research Australia Pty Ltd | Optimization method for the efficient production of images |
AUPM704194A0 (en) | 1994-07-25 | 1994-08-18 | Canon Information Systems Research Australia Pty Ltd | Efficient methods for the evaluation of a graphical programming language |
AU695002B2 (en) * | 1994-07-25 | 1998-08-06 | Canon Kabushiki Kaisha | Method and apparatus for the creation of images |
US5666503A (en) * | 1994-11-14 | 1997-09-09 | Xerox Corporation | Structured image (SI) image editor and method for editing structured images |
TW367447B (en) * | 1994-12-21 | 1999-08-21 | Canon Kk | Block selection review and editing system |
US6651108B2 (en) * | 1995-08-14 | 2003-11-18 | Next Software, Inc. | Method and apparatus for generating object-oriented world wide web pages |
US6137589A (en) * | 1995-09-20 | 2000-10-24 | Hewlett-Packard Company | Efficient storage of dithered raster image data in a printer or the like |
US5710877A (en) * | 1995-12-29 | 1998-01-20 | Xerox Corporation | User-directed interaction with an image structure map representation of an image |
IT1281696B1 (it) * | 1996-01-19 | 1998-02-26 | Francesco Morelli | Sistema elettronico per la memorizzazione manipolazione moltiplicazione e la stampa di immagini |
US6538764B2 (en) * | 1996-04-12 | 2003-03-25 | Canon Kabushiki Kaisha | Printing apparatus, information processing apparatus, data processing method for use in such an apparatus, and storage medium storing computer-readable program |
US5751852A (en) * | 1996-04-29 | 1998-05-12 | Xerox Corporation | Image structure map data structure for spatially indexing an imgage |
US5884014A (en) * | 1996-05-23 | 1999-03-16 | Xerox Corporation | Fontless structured document image representations for efficient rendering |
JP3061765B2 (ja) * | 1996-05-23 | 2000-07-10 | ゼロックス コーポレイション | コンピュータベースの文書処理方法 |
US5809179A (en) * | 1996-05-31 | 1998-09-15 | Xerox Corporation | Producing a rendered image version of an original image using an image structure map representation of the image |
US5978519A (en) * | 1996-08-06 | 1999-11-02 | Xerox Corporation | Automatic image cropping |
US6122634A (en) * | 1996-11-12 | 2000-09-19 | International Business Machines Corporation | Fractal nested layout for hierarchical system |
US6738154B1 (en) * | 1997-01-21 | 2004-05-18 | Xerox Corporation | Locating the position and orientation of multiple objects with a smart platen |
US5767978A (en) * | 1997-01-21 | 1998-06-16 | Xerox Corporation | Image segmentation system |
US5892854A (en) * | 1997-01-21 | 1999-04-06 | Xerox Corporation | Automatic image registration using binary moments |
AUPO478897A0 (en) * | 1997-01-24 | 1997-02-20 | Canon Information Systems Research Australia Pty Ltd | Scan line rendering of convolutions |
AUPO648397A0 (en) | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Improvements in multiprocessor architecture operation |
US6141012A (en) * | 1997-03-31 | 2000-10-31 | Xerox Corporation | Image processing code generation based on structured image (SI) techniques |
US6272257B1 (en) | 1997-04-30 | 2001-08-07 | Canon Kabushiki Kaisha | Decoder of variable length codes |
US6414687B1 (en) | 1997-04-30 | 2002-07-02 | Canon Kabushiki Kaisha | Register setting-micro programming system |
US6707463B1 (en) | 1997-04-30 | 2004-03-16 | Canon Kabushiki Kaisha | Data normalization technique |
US6289138B1 (en) | 1997-04-30 | 2001-09-11 | Canon Kabushiki Kaisha | General image processor |
US6674536B2 (en) | 1997-04-30 | 2004-01-06 | Canon Kabushiki Kaisha | Multi-instruction stream processor |
AUPO647997A0 (en) | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Memory controller architecture |
JP2002509630A (ja) * | 1997-07-14 | 2002-03-26 | クオーク,インコーポレイテッド | マルチメディアのプロジェクト管理および制御システム |
US6741255B1 (en) * | 1997-08-14 | 2004-05-25 | Sun Microsystems, Inc. | Method, apparatus and computer program product for using deferred execution for a tiling pull model in a tiled image processing architecture |
WO1999019830A1 (en) * | 1997-10-15 | 1999-04-22 | Pixo Arts Corporation | Method, apparatus and computer program product for object-based raster imaging |
US6456779B1 (en) * | 1997-10-31 | 2002-09-24 | Sony Corporation | Method and apparatus for providing a video editor |
JPH11250272A (ja) * | 1998-01-08 | 1999-09-17 | Xerox Corp | 自動イメ―ジレイアウト方法及びシステム |
US6557017B1 (en) * | 1998-02-06 | 2003-04-29 | Xerox Corporation | Image production system theme integration |
WO1999061977A1 (en) * | 1998-05-27 | 1999-12-02 | Visual Applications, Inc. | System for visualizing items in user-provided environment |
EP0975146B1 (en) * | 1998-07-24 | 2006-08-30 | Xerox Corporation | Locating the position and orientation of multiple objects with a smart platen |
GB2340361B (en) * | 1998-07-31 | 2002-11-06 | Sony Uk Ltd | Digital video processing |
GB2340362B (en) * | 1998-07-31 | 2002-11-06 | Sony Uk Ltd | Digital video processing |
GB2340360B (en) * | 1998-07-31 | 2002-11-06 | Sony Uk Ltd | Animation of video special effects |
EP0984396A3 (en) | 1998-09-03 | 2003-08-20 | Canon Kabushiki Kaisha | Optimising image compositing |
ATE540364T1 (de) * | 1998-11-06 | 2012-01-15 | Univ Columbia | System und verfahren zur bildbeschreibung |
US6442507B1 (en) | 1998-12-29 | 2002-08-27 | Wireless Communications, Inc. | System for creating a computer model and measurement database of a wireless communication network |
US6496198B1 (en) * | 1999-05-04 | 2002-12-17 | Canon Kabushiki Kaisha | Color editing system |
US7068382B1 (en) * | 1999-05-25 | 2006-06-27 | Silverbrook Research Pty Ltd | Interactive printer provider |
US6493679B1 (en) * | 1999-05-26 | 2002-12-10 | Wireless Valley Communications, Inc. | Method and system for managing a real time bill of materials |
US6850946B1 (en) * | 1999-05-26 | 2005-02-01 | Wireless Valley Communications, Inc. | Method and system for a building database manipulator |
US6317599B1 (en) * | 1999-05-26 | 2001-11-13 | Wireless Valley Communications, Inc. | Method and system for automated optimization of antenna positioning in 3-D |
US6539420B1 (en) | 1999-06-04 | 2003-03-25 | International Business Machines Corporation | Distribution mechanism for reuse of web based image data |
US6499006B1 (en) * | 1999-07-14 | 2002-12-24 | Wireless Valley Communications, Inc. | System for the three-dimensional display of wireless communication system performance |
US7243054B2 (en) | 1999-07-14 | 2007-07-10 | Wireless Valley Communications, Inc. | Method and system for displaying network performance, cost, maintenance, and infrastructure wiring diagram |
US6647151B1 (en) | 1999-08-18 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Coalescence of device independent bitmaps for artifact avoidance |
AUPQ251999A0 (en) * | 1999-08-27 | 1999-09-23 | Canon Kabushiki Kaisha | Run-based compositing |
US6704456B1 (en) | 1999-09-02 | 2004-03-09 | Xerox Corporation | Automatic image segmentation in the presence of severe background bleeding |
US6839466B2 (en) * | 1999-10-04 | 2005-01-04 | Xerox Corporation | Detecting overlapping images in an automatic image segmentation device with the presence of severe bleeding |
US6704120B1 (en) | 1999-12-01 | 2004-03-09 | Xerox Corporation | Product template for a personalized printed product incorporating image processing operations |
US7146566B1 (en) | 1999-12-14 | 2006-12-05 | International Business Machines Corporation | Method and system for multiformat presentation |
US7062107B1 (en) * | 1999-12-16 | 2006-06-13 | Eastman Kodak Company | Techniques for generating a distributed low-resolution digital image capable of viewing in any resolution |
JP2001346031A (ja) * | 2000-06-05 | 2001-12-14 | Fuji Photo Film Co Ltd | 画像合成方法及び装置 |
MXPA03000418A (es) | 2000-07-13 | 2003-07-14 | Belo Company | Sistema y metodo para asociar informacion historica con datos sensoriales y distribucion de los mismos. |
US6971063B1 (en) * | 2000-07-28 | 2005-11-29 | Wireless Valley Communications Inc. | System, method, and apparatus for portable design, deployment, test, and optimization of a communication network |
US7096173B1 (en) | 2000-08-04 | 2006-08-22 | Motorola, Inc. | Method and system for designing or deploying a communications network which allows simultaneous selection of multiple components |
US6625454B1 (en) | 2000-08-04 | 2003-09-23 | Wireless Valley Communications, Inc. | Method and system for designing or deploying a communications network which considers frequency dependent effects |
US7085697B1 (en) | 2000-08-04 | 2006-08-01 | Motorola, Inc. | Method and system for designing or deploying a communications network which considers component attributes |
US7680644B2 (en) * | 2000-08-04 | 2010-03-16 | Wireless Valley Communications, Inc. | Method and system, with component kits, for designing or deploying a communications network which considers frequency dependent effects |
US7246045B1 (en) | 2000-08-04 | 2007-07-17 | Wireless Valley Communication, Inc. | System and method for efficiently visualizing and comparing communication network system performance |
US7055107B1 (en) | 2000-09-22 | 2006-05-30 | Wireless Valley Communications, Inc. | Method and system for automated selection of optimal communication network equipment model, position, and configuration |
US6973622B1 (en) * | 2000-09-25 | 2005-12-06 | Wireless Valley Communications, Inc. | System and method for design, tracking, measurement, prediction and optimization of data communication networks |
US6665587B2 (en) | 2000-11-29 | 2003-12-16 | Xerox Corporation | Product template for a personalized printed product incorporating workflow sequence information |
EP1344123A4 (en) * | 2000-12-18 | 2007-04-25 | Wireless Valley Comm Inc | GRAPHIC AND TEXTUAL DEMARCATION OF LOCATION AND INTERPRETATION OF MEASUREMENTS |
US7164883B2 (en) * | 2001-02-14 | 2007-01-16 | Motorola. Inc. | Method and system for modeling and managing terrain, buildings, and infrastructure |
US6992789B2 (en) * | 2001-06-15 | 2006-01-31 | International Business Machines Corporation | Method, system, and program for managing a multi-page document |
US7724977B2 (en) * | 2001-07-12 | 2010-05-25 | Do Labs | Method and system for providing formatted data to image processing means in accordance with a standard format |
US7574323B2 (en) * | 2001-12-17 | 2009-08-11 | Wireless Valley Communications, Inc. | Textual and graphical demarcation of location, and interpretation of measurements |
US20030142113A1 (en) * | 2002-01-30 | 2003-07-31 | Xerox Corporation | Hint data editor and method of editing hint data |
US7509577B2 (en) * | 2002-03-08 | 2009-03-24 | Toshiba Corp Oration | Method and system for implementing a clipboard |
US20030226116A1 (en) * | 2002-03-08 | 2003-12-04 | Katie Kuwata | Method and system for implementing a historical buffer |
JP4227468B2 (ja) * | 2002-06-24 | 2009-02-18 | キヤノン株式会社 | 画像形成装置及び方法、並びに制御プログラム |
US6672212B1 (en) * | 2002-09-03 | 2004-01-06 | Sharp Laboratories Of America, Inc. | Single print job emulation of multiple TIFF files |
US7295119B2 (en) | 2003-01-22 | 2007-11-13 | Wireless Valley Communications, Inc. | System and method for indicating the presence or physical location of persons or devices in a site specific representation of a physical environment |
US7295960B2 (en) * | 2003-01-22 | 2007-11-13 | Wireless Valley Communications, Inc. | System and method for automated placement or configuration of equipment for obtaining desired network performance objectives |
US20040259554A1 (en) * | 2003-04-23 | 2004-12-23 | Rappaport Theodore S. | System and method for ray tracing using reception surfaces |
US20040259555A1 (en) * | 2003-04-23 | 2004-12-23 | Rappaport Theodore S. | System and method for predicting network performance and position location using multiple table lookups |
US20050068582A1 (en) * | 2003-09-30 | 2005-03-31 | Ferlitsch Andrew R. | Systems and methods for providing printing with document indicia |
FR2868854B1 (fr) * | 2004-04-08 | 2006-08-04 | Herve Rostan | Procede et systeme pour gerer des objets multimedia a diffuser, au moyen d'une unite de traitement associee a un accelerateur multimedia |
US20060103677A1 (en) * | 2004-11-18 | 2006-05-18 | Lai Jimmy K L | System and method for effectively performing arbitrary angle sprite rotation procedures |
CA2489613A1 (en) * | 2004-12-07 | 2006-06-07 | Ibm Canada Limited - Ibm Canada Limitee | Maximize data visibility using slated viewer |
US7834876B2 (en) * | 2004-12-28 | 2010-11-16 | The Mathworks, Inc. | Providing graphic generating capabilities for a model based development process |
US20060209214A1 (en) * | 2005-03-17 | 2006-09-21 | Xerox Corporation | Digital photo album systems and methods |
US7773995B2 (en) * | 2005-04-18 | 2010-08-10 | Motorola, Inc. | Method and apparatus for utilizing RF signals to create a site specific representation of an environment |
CN1866264A (zh) * | 2005-05-21 | 2006-11-22 | 华为技术有限公司 | 一种移动游戏的场景生成方法及*** |
WO2007011748A2 (en) | 2005-07-14 | 2007-01-25 | Molsoft, Llc | Structured documents for displaying and interaction with three dimensional objects |
RU2309456C2 (ru) * | 2005-12-08 | 2007-10-27 | "Аби Софтвер Лтд." | Способ распознавания текстовой информации из векторно-растрового изображения |
US20100254606A1 (en) * | 2005-12-08 | 2010-10-07 | Abbyy Software Ltd | Method of recognizing text information from a vector/raster image |
US8194074B2 (en) | 2006-05-04 | 2012-06-05 | Brown Battle M | Systems and methods for photogrammetric rendering |
US7711371B2 (en) * | 2006-06-27 | 2010-05-04 | Motorola, Inc. | Method and system for analysis and visualization of a wireless communications network |
US20080144066A1 (en) * | 2006-10-26 | 2008-06-19 | Andrew Rodney Ferlitsch | Composition Print Method Using Translators |
JP4971768B2 (ja) * | 2006-12-07 | 2012-07-11 | キヤノン株式会社 | 編集装置、編集方法、およびプログラム |
US20080150962A1 (en) * | 2006-12-20 | 2008-06-26 | Bezryadin Sergey N | Image display using a computer system, including, but not limited to, display of a reference image for comparison with a current image in image editing |
US8296662B2 (en) * | 2007-02-05 | 2012-10-23 | Brother Kogyo Kabushiki Kaisha | Image display device |
US8884916B2 (en) | 2010-12-09 | 2014-11-11 | Synaptics Incorporated | System and method for determining user input using polygons |
US9411445B2 (en) | 2013-06-27 | 2016-08-09 | Synaptics Incorporated | Input object classification |
US10932103B1 (en) * | 2014-03-21 | 2021-02-23 | Amazon Technologies, Inc. | Determining position of a user relative to a tote |
US9804717B2 (en) | 2015-03-11 | 2017-10-31 | Synaptics Incorporated | Input sensing and exclusion |
JP2019067347A (ja) * | 2017-10-05 | 2019-04-25 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
CN108921911B (zh) * | 2018-08-01 | 2021-03-09 | 中国科学技术大学 | 结构化图片自动转换为源代码的方法 |
CN111047671B (zh) * | 2019-12-24 | 2023-05-16 | 成都来画科技有限公司 | 一种手绘图片的绘画路径的优化方法及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4742558A (en) * | 1984-02-14 | 1988-05-03 | Nippon Telegraph & Telephone Public Corporation | Image information retrieval/display apparatus |
US4813013A (en) * | 1984-03-01 | 1989-03-14 | The Cadware Group, Ltd. | Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons |
JPH063608B2 (ja) * | 1984-06-30 | 1994-01-12 | 株式会社東芝 | 文書画像編集装置 |
US5021976A (en) * | 1988-11-14 | 1991-06-04 | Microelectronics And Computer Technology Corporation | Method and system for generating dynamic, interactive visual representations of information structures within a computer |
US5278950A (en) * | 1989-09-20 | 1994-01-11 | Fuji Photo Film Co., Ltd. | Image composing method |
US5181162A (en) * | 1989-12-06 | 1993-01-19 | Eastman Kodak Company | Document management and production system |
JP3092711B2 (ja) * | 1990-09-11 | 2000-09-25 | キヤノン株式会社 | 出力制御装置及び方法 |
US5416900A (en) * | 1991-04-25 | 1995-05-16 | Lotus Development Corporation | Presentation manager |
EP0528631B1 (en) * | 1991-08-13 | 1998-05-20 | Xerox Corporation | Electronic image generation |
US5353388A (en) * | 1991-10-17 | 1994-10-04 | Ricoh Company, Ltd. | System and method for document processing |
US5437008A (en) * | 1992-06-23 | 1995-07-25 | Adobe Systems Incorporated | Method of establishing constraints and links in a distribution frame between graphical elements and resolving the constaints |
DE69431294T2 (de) | 1993-03-25 | 2003-04-17 | Mgi Software Corp | Bildverarbeitungsverfahren und -system |
US5485568A (en) * | 1993-10-08 | 1996-01-16 | Xerox Corporation | Structured image (Sl) format for describing complex color raster images |
-
1993
- 1993-10-08 US US08/133,422 patent/US5485568A/en not_active Expired - Lifetime
-
1994
- 1994-09-02 CA CA002131439A patent/CA2131439C/en not_active Expired - Fee Related
- 1994-09-29 JP JP23529794A patent/JP3630726B2/ja not_active Expired - Fee Related
- 1994-10-06 DE DE69429488T patent/DE69429488T2/de not_active Expired - Lifetime
- 1994-10-06 ES ES99124095T patent/ES2194415T3/es not_active Expired - Lifetime
- 1994-10-06 EP EP99124093A patent/EP0989522B1/en not_active Expired - Lifetime
- 1994-10-06 EP EP99124094A patent/EP0989523B1/en not_active Expired - Lifetime
- 1994-10-06 DE DE69434371T patent/DE69434371T2/de not_active Expired - Lifetime
- 1994-10-06 EP EP94307326A patent/EP0647921B1/en not_active Expired - Lifetime
- 1994-10-06 ES ES94307326T patent/ES2169063T3/es not_active Expired - Lifetime
- 1994-10-06 DE DE69432235T patent/DE69432235T2/de not_active Expired - Lifetime
- 1994-10-06 EP EP99124095A patent/EP0989519B1/en not_active Expired - Lifetime
- 1994-10-06 DE DE69434370T patent/DE69434370T2/de not_active Expired - Lifetime
- 1994-10-06 ES ES99124094T patent/ES2242349T3/es not_active Expired - Lifetime
- 1994-10-06 ES ES99124093T patent/ES2242348T3/es not_active Expired - Lifetime
-
1995
- 1995-11-07 US US08/553,232 patent/US6326983B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0989522B1 (en) | 2005-05-11 |
EP0989519B1 (en) | 2003-03-05 |
JP3630726B2 (ja) | 2005-03-23 |
EP0989523A2 (en) | 2000-03-29 |
EP0647921A2 (en) | 1995-04-12 |
EP0989523B1 (en) | 2005-05-11 |
DE69434370D1 (de) | 2005-06-16 |
US5485568A (en) | 1996-01-16 |
DE69434370T2 (de) | 2006-02-02 |
ES2242348T3 (es) | 2005-11-01 |
DE69429488T2 (de) | 2002-08-01 |
EP0647921A3 (en) | 1996-01-31 |
ES2194415T3 (es) | 2003-11-16 |
EP0647921B1 (en) | 2001-12-19 |
ES2169063T3 (es) | 2002-07-01 |
EP0989522A2 (en) | 2000-03-29 |
EP0989522A3 (en) | 2000-07-19 |
EP0989523A3 (en) | 2000-07-19 |
CA2131439C (en) | 2001-05-29 |
DE69432235D1 (de) | 2003-04-10 |
EP0989519A1 (en) | 2000-03-29 |
DE69429488D1 (de) | 2002-01-31 |
CA2131439A1 (en) | 1995-04-09 |
US6326983B1 (en) | 2001-12-04 |
DE69432235T2 (de) | 2003-11-20 |
DE69434371T2 (de) | 2005-11-17 |
JPH07282284A (ja) | 1995-10-27 |
DE69434371D1 (de) | 2005-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2242349T3 (es) | Formato de imagen estructurada (si) para describir imagenes en trama complejas en color. | |
JP3836527B2 (ja) | 構造的イメージの画像編集装置および方法 | |
Wernecke | The Inventor mentor: programming object-oriented 3D graphics with Open Inventor, release 2 | |
EP2174295B1 (en) | Data system and method | |
AU2005202722B2 (en) | Common charting using shapes | |
US6195101B1 (en) | Method and system for image templates | |
US6141012A (en) | Image processing code generation based on structured image (SI) techniques | |
Wickham-Jones | Mathematica graphics: techniques & applications | |
HRP20030389A2 (en) | Markup language and object model for vector graphics | |
JP4748980B2 (ja) | 三次元電子ドキュメントに注釈を付けるためのシステム及び方法 | |
JPH10340335A (ja) | 表示画像連接方法 | |
Worth et al. | Xr: Cross-device rendering for vector graphics | |
Gelphman et al. | Programming with Quartz: 2D and PDF graphics in Mac OS X | |
Cagle | You Are Here: Coordinate Systems and Transformations | |
Coşar | Text, image, graphics editor | |
Tsyplakov | TpX—LATEX-oriented graphical editor | |
Yu | Function cross-reference browser | |
Hussain | Essential Dreamweaver® 4.0 Fast: Rapid Web Development | |
Strothotte et al. | Pictures in Computer Systems | |
Mena-Quintero et al. | The {GNOME} Canvas: A Generic Engine for Structured Graphics | |
Hwang | ePiX Tutorial and Reference Manual | |
Gudehus | A Communications Interface for SAOimage | |
Najork | SRC Research Report 129 | |
Van Reeth | Interactive visual and graphical programming environments within the three-dimensional computer animation domain (quod latet, ignotum est) | |
Fuchssteiner et al. | Graphics |