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
Application number
ES99124094T
Other languages
English (en)
Inventor
Dennis L. Venable
Michael R. Campanelli
James E. Bollman
Takashi c/o Fuji Xerox Co. Ltd. Nagao
William A. Fuss
Toshiya Yamada
Kazuya Yamada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Application granted granted Critical
Publication of ES2242349T3 publication Critical patent/ES2242349T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text

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.
A. Panorama del Sistema
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.
A1. Definición de la Formación de Imágenes Estructuradas
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.
A2. Objeto de Imagen Estructurada
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.
A3. Marco para pegar
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.
A4. ReadObject [Leer objeto]
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).
A5. Finder [Hallador]
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):
1
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.
A6. Definición de Procesamiento de Imágenes [Image Processing Definition - IPD]
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,
2
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.
B. Imágenes Estructuradas No Enlazadas / Incompletas
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.
B1. Imagen Estructurada No Enlazada
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).
B2. La Imagen Estructurada Incompleta
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.
B3. Renderización de Imágenes Estructuradas No Enlazadas / Incompletas
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.
C. Renderizació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.
C1. Renderización Orientada a Objetos
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.
C2. Renderización por Árbol de Procesamiento
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.
D. Ejemplo de Generación de Imágenes Estructuradas
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.
D1. Formato de Fichero de Representaciones Múltiples (MR)
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.
D2. Operación de Procesamiento de Imagen (IPO) SpatialTransform
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.
E. Un Segundo Ejemplo de Generación de Imagen Estructurada
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.)
F. Conclusión
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.
ES99124094T 1993-10-08 1994-10-06 Formato de imagen estructurada (si) para describir imagenes en trama complejas en color. Expired - Lifetime ES2242349T3 (es)

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
ES99124094T Expired - Lifetime ES2242349T3 (es) 1993-10-08 1994-10-06 Formato de imagen estructurada (si) para describir imagenes en trama 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.
ES99124093T Expired - Lifetime ES2242348T3 (es) 1993-10-08 1994-10-06 Formato de imagen estructurada (si) para describir imagenes en trama complejas en color.
ES99124095T Expired - Lifetime ES2194415T3 (es) 1993-10-08 1994-10-06 Formato de imagen estructurada para describir imagenes en tramas complejas en color.

Family Applications After (3)

Application Number Title Priority Date Filing Date
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.
ES99124093T Expired - Lifetime ES2242348T3 (es) 1993-10-08 1994-10-06 Formato de imagen estructurada (si) para describir imagenes en trama complejas en color.
ES99124095T Expired - Lifetime ES2194415T3 (es) 1993-10-08 1994-10-06 Formato de imagen estructurada para describir imagenes en tramas 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) DE69434370T2 (es)
ES (4) ES2242349T3 (es)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
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
AU695002B2 (en) * 1994-07-25 1998-08-06 Canon Kabushiki Kaisha Method and apparatus for the creation 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
AU733038B2 (en) * 1994-07-25 2001-05-03 Canon Kabushiki Kaisha Efficient methods for the evaluation of a graphical programming language
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
AU681963B2 (en) * 1994-07-25 1997-09-11 Canon Kabushiki Kaisha Optimization method for the efficient production of images
AUPM704294A0 (en) * 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Method and apparatus for the creation of images
AU694512B2 (en) * 1994-07-25 1998-07-23 Canon Kabushiki Kaisha Efficient methods for the interpretation of a graphical programming language
AUPM704394A0 (en) * 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Optimization method for the efficient production 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
US5892854A (en) * 1997-01-21 1999-04-06 Xerox Corporation Automatic image registration using binary moments
US5767978A (en) * 1997-01-21 1998-06-16 Xerox Corporation Image segmentation system
US6738154B1 (en) * 1997-01-21 2004-05-18 Xerox Corporation Locating the position and orientation of multiple objects with a smart platen
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
US6414687B1 (en) 1997-04-30 2002-07-02 Canon Kabushiki Kaisha Register setting-micro programming system
US6061749A (en) 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
AUPO647997A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6272257B1 (en) 1997-04-30 2001-08-07 Canon Kabushiki Kaisha Decoder of variable length codes
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
EP0995171A1 (en) * 1997-07-14 2000-04-26 Quark, Inc., Multi-media project management and control system
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
AU4207199A (en) * 1998-05-27 1999-12-13 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
GB2340360B (en) * 1998-07-31 2002-11-06 Sony Uk Ltd Animation of video special effects
GB2340362B (en) * 1998-07-31 2002-11-06 Sony Uk Ltd Digital video processing
EP0984396A3 (en) * 1998-09-03 2003-08-20 Canon Kabushiki Kaisha Optimising image compositing
KR100734964B1 (ko) * 1998-11-06 2007-07-03 더 트러스티스 오브 콜롬비아 유니버시티 인 더 시티 오브 뉴욕 비디오 디스크립션 시스템 및 방법
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
US6850946B1 (en) * 1999-05-26 2005-02-01 Wireless Valley Communications, Inc. Method and system for a building database manipulator
US6493679B1 (en) * 1999-05-26 2002-12-10 Wireless Valley Communications, Inc. Method and system for managing a real time bill of materials
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
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
US6499006B1 (en) * 1999-07-14 2002-12-24 Wireless Valley Communications, Inc. System for the three-dimensional display of wireless communication system performance
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
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
US7085697B1 (en) 2000-08-04 2006-08-01 Motorola, Inc. Method and system for designing or deploying a communications network which considers component attributes
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
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
AU3072902A (en) * 2000-12-18 2002-07-01 Wireless Valley Comm Inc Textual and graphical 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
WO2003007236A2 (fr) * 2001-07-12 2003-01-23 Do Labs Procede et systeme pour produire la frequence des mises a jour de moyens
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
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
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
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
US20040259554A1 (en) * 2003-04-23 2004-12-23 Rappaport Theodore S. System and method for ray tracing using reception surfaces
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
US20100254606A1 (en) * 2005-12-08 2010-10-07 Abbyy Software Ltd Method of recognizing text information from a vector/raster image
RU2309456C2 (ru) * 2005-12-08 2007-10-27 "Аби Софтвер Лтд." Способ распознавания текстовой информации из векторно-растрового изображения
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)

* Cited by examiner, † Cited by third party
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
DE69225544T2 (de) * 1991-08-13 1998-12-03 Xerox Corp Elektronische Bilderzeugung
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
JPH08510851A (ja) 1993-03-25 1996-11-12 ライブ ピクチャー,インコーポレイテッド 画像処理方法及び装置
US5485568A (en) * 1993-10-08 1996-01-16 Xerox Corporation Structured image (Sl) format for describing complex color raster images

Also Published As

Publication number Publication date
DE69434370D1 (de) 2005-06-16
CA2131439C (en) 2001-05-29
DE69429488D1 (de) 2002-01-31
ES2242348T3 (es) 2005-11-01
EP0989519B1 (en) 2003-03-05
EP0989522A3 (en) 2000-07-19
JP3630726B2 (ja) 2005-03-23
DE69429488T2 (de) 2002-08-01
US6326983B1 (en) 2001-12-04
EP0989523A2 (en) 2000-03-29
ES2194415T3 (es) 2003-11-16
EP0989519A1 (en) 2000-03-29
DE69432235D1 (de) 2003-04-10
EP0647921A3 (en) 1996-01-31
EP0989523B1 (en) 2005-05-11
EP0647921B1 (en) 2001-12-19
EP0989522B1 (en) 2005-05-11
EP0989522A2 (en) 2000-03-29
US5485568A (en) 1996-01-16
EP0647921A2 (en) 1995-04-12
ES2169063T3 (es) 2002-07-01
DE69432235T2 (de) 2003-11-20
DE69434371T2 (de) 2005-11-17
CA2131439A1 (en) 1995-04-09
EP0989523A3 (en) 2000-07-19
DE69434371D1 (de) 2005-06-16
DE69434370T2 (de) 2006-02-02
JPH07282284A (ja) 1995-10-27

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
JP5209051B2 (ja) データシステム及び方法
US6195101B1 (en) Method and system for image templates
US6141012A (en) Image processing code generation based on structured image (SI) techniques
MXPA05007072A (es) Elaboracion de graficas utilizando formas.
HRP20030389A2 (en) Markup language and object model for vector graphics
JP4748980B2 (ja) 三次元電子ドキュメントに注釈を付けるためのシステム及び方法
JPH10340335A (ja) 表示画像連接方法
Worth et al. Xr: Cross-device rendering for vector graphics
Smith et al. Adobe Creative Cloud all-in-one for dummies
Huddleston Teach yourself visually web design
Cagle You Are Here: Coordinate Systems and Transformations
Fogarty et al. Specifying behavior and semantic meaning in an unmodified layered drawing package
Cartier It's All in the Presentation
Yu Function cross-reference browser
Patel Using SAS/GRAPH® Software to Create Graphs on the Web
Mena-Quintero et al. The {GNOME} Canvas: A Generic Engine for Structured Graphics
Ha et al. Component Modeling for SVG animation
Gudehus A Communications Interface for SAOimage
Wideman Visio 2000 Developer's Survival Guide
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