User interface systems and methods for manipulating and viewing digital documents
Abstract
Method for redrawing a visual presentation of graphical data, according to which a current visualization is replaced by an updated visualization, comprising, in response to a request (100, 112) for redrawing, immediately replace (102, 114) the current visualization with a first approximate representation of the updated display, generate (104, 116) a final updated display and replace (106, 118) the approximate representation with the final updated display; characterized in that: at least said first approximate representation includes at least one representation of a bitmap (120) having a resolution lower than that required in the final updated display and adjusted (124) to scale to approximate the required content of said display updated.

Term
Term ended
Projected expiry passed 17 April 2021, 5.4 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
41 claims: 2 independent, 39 dependent
- 1ES 2 240 451 T3 REIVINDICACIONES 1. Método para redibujar una presentación visual de datos gráficos, según lo cual una visualización actual es sustituida por una visualización actualizada, que comprende, en respuesta a una solicitud (100, 112) de redibujo, sustituir (102, 114) inmediatamente la visualización actual con una primera representación aproximada de la visualización actualizada, generar (104, 116) una visualización actualizada final y sustituir (106, 118) la representación aproximada con la visualización actualizada final; caracterizado porque:al menos dicha primera representación aproximada incluye al menos una representación de un mapa (120) de bits que tiene una resolución menor que la requerida en la visualización actualizada final y ajustada (124) a escala para aproximar el contenido requerido de dicha visualización actualizada.
- 2Método según la reivindicación 1, que incluye sustituir (108) dicha primera representación aproximada con una o más representaciones aproximadas mejoradas, sucesivas, de la visualización actualizada antes de sustituir la última representación aproximada visualizada con la visualización actualizada final.
- 3Método según la reivindicación 1 o la reivindicación 2, en el que la sustitución (102, 108) de la visualización actual por dicha primera y cualquier representación subsiguiente se realiza en paralelo con la generación (104) de dicha visualización actualizada final.
- 4Método según cualquier reivindicación anterior, en el que una representación aproximada mejorada, subsiguiente, comprende dicha versión ajustada a escala de una representación de mapa de bits de resolución reducida de dicha visualización actualizada con contornos vectoriales superpuestos a la misma.
- 5Método según cualquiera de las reivindicaciones 1 a 4, para generar representaciones visuales variables de dichos datos gráficos, en el que dichas presentaciones visuales se ensamblan dividiendo dichos datos gráficos en una pluralidad de baldosas (136) de mapa de bits de tamaño fijo, predeterminado, almacenando dichas baldosas en una matriz indexada en una memoria intermedia fuera de pantalla y ensamblando una representación visual requerida de dichos datos gráficos a partir de un conjunto seleccionado de dichas baldosas almacenado en dicha memoria intermedia fuera de pantalla.
- 6Método según la reivindicación 5, en el que una representación visual actual de dichos datos gráficos se actualiza:a) descartando archivos redundantes de dicho conjunto seleccionado almacenado en dicha memoria intermedia fuera de pantalla;b) construyendo nuevas baldosas para cubrir un área de la visualización actualizada no representada por las baldosas existentes;c) añadiendo las nuevas baldosas a dicho conjunto (138) seleccionado, sustituyendo los archivos redundantes en dicha memoria intermedia fuera de pantalla y actualizando el indexado de dicha matriz indexada;y d) ensamblando la representación visual actualizada a partir de la matriz actualizada.
- 7Método según la reivindicación 5 o la reivindicación 6, en el que dicha matriz de baldosas representa datos gráficos procedentes de múltiples fuentes.
- 8Método según la reivindicación 7, en el que múltiples fuentes incluyen aplicaciones que se ejecutan en un sistema de procesamiento de datos y un sistema operativo de dicho sistema de procesamiento de datos.
- 9Método según cualquiera de las reivindicaciones 5 a 8, que incluye procesar subconjuntos de dichas baldosas en paralelo.
- 10Método según cualquier reivindicación anterior, para procesar un documento digital a fin de generar dichas representaciones visuales, comprendiendo dicho documento una pluralidad de objetos (1-8) gráficos dispuesto en al menos una página, comprendiendo el método dividir dicho documento en una pluralidad de zonas (A-D) y, para cada zona, generar una lista de objetos contenidos en dicha zona y solapándola.
- 11Método según la reivindicación 10, en el que se genera una representación visual de parte (142) de dicho documento determinando cuál de dichas zonas (A-D) interseca a dicha parte de dicho documento, determinando un conjunto de dichos objetos (1-8) asociado con dichas zonas que interseca dicha parte de dicho documento y procesando dicho conjunto de objetos para generar dicha representación visual.
- 12Método según la reivindicación 10 o la reivindicación 11, cuando depende de cualquiera de las reivindicaciones 5 a 9, en el que cada una de dichas zonas (A-D) corresponde a al menos uno de dichos archivos (136).
- 13Método según cualquier reivindicación anterior, en el que el paso de sustituir la visualización actual con una ES 2 240 451 T3 primera representación aproximada de la visualización actualizada comprende sustituir al menos parte de la visualización actual con una representación aproximada de la actualización de esa parte de la visualización.
- 14Método según cualquier reivindicación anterior, en el que se actualiza una vista de un mapa de bits ajustando a escala el mapa de bits de una primera resolución (120) a una segunda resolución (124) utilizando interpolación.
- 15Sistema de procesamiento de documentos digitales que comprende medios de procesamiento de datos adaptados para implementar el método de cualquiera de las reivindicaciones 1 a 14.
- 16Sistema según la reivindicación 15, que comprende:un mecanismo (11) de entrada para recibir un flujo de bytes de entrada que representa datos (10, 10a, 10b) fuente en uno de una pluralidad de formatos de datos predeterminados;un mecanismo (12) de interpretación para interpretar dicho flujo de bytes;un mecanismo (12) de conversión para convertir un contenido interpretado de dicho flujo de bytes en un formato (14) de datos de representación interna;y un mecanismo (18, 22) de procesamiento para procesar dichos datos de representación interna para generar datos (24) de representación de salida adaptados para accionar un dispositivo (26) de salida.
- 17Sistema según la reivindicación 16, en el que dichos datos (10, 10a, 10b) fuente definen el contenido y la estructura de un documento digital y en el que dichos datos (14) de representación interna describen dicha estructura en términos de objetos genéricos que definen una pluralidad de tipos y parámetros de datos que definen propiedades de ejemplos específicos de objetos genéricos por separado a dicho contenido.
- 18Sistema según la reivindicación 17, que incluye además una biblioteca (16) de tipos de objeto genérico, basándose dichos datos (14) de representación interna en el contenido de dicha biblioteca.
- 19Sistema según la reivindicación 17 o la reivindicación 18, que incluye un módulo (18) de análisis sintético y presentación adaptado para generar una representación (20) basada en objetos y parámetros de una vista específica de al menos parte de dichos datos (14) de representación interna basándose en una primera entrada (40) de control a dicho módulo de análisis sintético y presentación.
- 20Sistema según la reivindicación 19, que incluye además un módulo (22) de procesamiento de formas adaptado para recibir dicha representación (20) basada en objetos y parámetros de dicha vista específica de dicho módulo (18) de análisis sintético y presentación y convertir dicha representación (20) basada en objetos y parámetros en un formato (24) de datos de salida adecuado para accionar un dispositivo (26) de salida concreto.
- 21Sistema según la reivindicación 20, en el que dicho módulo (22) de procesamiento de formas procesa dichos objetos basándose en un recuadro de frontera que define la frontera de un objeto, definiendo una forma la forma real del objeto delimitado por el recuadro de frontera, el contenido de datos del objeto y la transparencia del objeto.
- 22Sistema según la reivindicación 21, en el que dicho módulo (22) de procesamiento de formas está adaptado para aplicar un suavizado en escala de grises a los bordes de dichos objetos.
- 23Sistema según la reivindicación 20, la reivindicación 21 o la reivindicación 22, en el que dicho módulo (22) de procesamiento de formas tiene una arquitectura pipeline.
- 24Sistema según cualquiera de las reivindicaciones 17 a 23, en el que dichos parámetros de objeto incluyen parámetros dimensionales, físicos y temporales.
- 25Sistema según cualquiera de las reivindicaciones 16 a 24, en el que el sistema emplea un modelo de color basado en la crominancia/luminancia para describir datos de color.
- 26Sistema según cualquiera de las reivindicaciones 16 a 25, en el que el sistema está adaptado para una implementación múltiple en paralelo en todo o en parte para procesar uno o más conjuntos de datos fuente de una o más fuentes de datos y para generar uno o más conjuntos de datos de representación de salida.
- 27Interfaz gráfica de usuario con presentaciones visuales interactivas para un sistema de procesamiento de datos, en el que dichas presentaciones visuales interactivas se generan por medio de un sistema de procesamiento de documentos digitales según cualquiera de las reivindicaciones 15 a 26.
- 28Dispositivo de procesamiento de datos que incorpora una interfaz gráfica de usuario según la reivindicación 27. ES 2 240 451 T3
- 29Dispositivo de hardware para procesar y/o almacenar datos, incluyendo dicho dispositivo de hardware un sistema de procesamiento de documentos digitales según cualquiera de las reivindicaciones 15 a 26.
- 30Dispositivo de hardware según la reivindicación 29, que incluye además un sistema procesador central.
- 31Dispositivo de hardware según la reivindicación 20, en el que dicho procesador central es un procesador RISC.
- 32Sistema de procesamiento de datos que incluye un sistema de procesamiento de documentos digitales según cualquiera de las reivindicaciones 15 a 26.
- 33Sistema de procesamiento de datos según la reivindicación 32, en el que dicho sistema de procesamiento de datos comprende un dispositivo portátil de procesamiento de datos.
- 34Sistema de procesamiento de datos según la reivindicación 33, en el que dicho dispositivo portátil de procesamiento de datos comprende un dispositivo inalámbrico de telecomunicación.
- 35Sistema de procesamiento de datos según la reivindicación 32, en el que dicho sistema de procesamiento de datos comprende una terminal de usuario de red.
- 36Dispositivo periférico para el uso con un sistema de procesamiento de datos, incluyendo dicho dispositivo periférico un sistema de procesamiento de documentos digitales según cualquiera de las reivindicaciones 15 a 26.
- 37Dispositivo periférico según la reivindicación 36, en el que dicho dispositivo periférico es un dispositivo de presentación visual.
- 38Dispositivo periférico según la reivindicación 26, en el que dicho dispositivo periférico es un dispositivo de salida de impresión.
- 39Dispositivo periférico según la reivindicación 36, en el que dicho dispositivo periférico es un dispositivo de entrada.
- 40Dispositivo periférico según la reivindicación 36, en el que dicho dispositivo periférico es un dispositivo de red.
- 41Dispositivo periférico según la reivindicación 36, en el que dicho dispositivo periférico es un dispositivo periférico multifuncional.
Independent claims41
99 paragraphs in 6 sections, as filed
ES 2 240 451 T3
DESCRIPTION
Systems and methods for generating visual representations of graphical data.
Field of the invention
The invention relates to data processing methods and systems. More particularly, the invention relates to methods and systems for processing "graphic data" and "digital documents" (as defined herein) and to devices incorporating such methods and systems. Generally speaking, the invention is concerned with generating output representations of source data and documents, eg, as a visual presentation or as a hard copy.
Background of the invention
As used herein, the terms "graphic data", "graphic object" and "digital document" are used to describe a digital representation of any type of data processed by a data processing system that is intended ultimately output in some form, in whole or in part, to a human user, typically by being displayed or reproduced visually (for example, by means of a display unit or printer), or by converting text to speech, etc. Such data, objects, and documents may include any feature capable of being rendered, including but not limited to the following: text; graphic images; animated graphic images; moving video images; interactive icons, buttons, menus or hyperlinks. A digital document can also include non-visual elements such as audio (sound) elements. Generally, a digital document includes or consists of graphic data and / or at least one graphic object.
Document EP0513584 discloses a computer graphics system that reproduces a 3D model comprising facets or primitives in, for example, a CAD environment. Upon receipt of a drawing request, the model is reproduced using a number of primitives that represent the model. If the model does not move (for example, it is rotated by mouse input) within a certain period of time from the drawing request, the model is reproduced once more using a greater number of primitives. Otherwise, the number of primitives is left unchanged.
Chua Lye Heng "Image Compression: JPEG", published May 19, 1997, http: /pascalzone.amirmelamed.co. it / Graphics / JPEG / JPEG.htm, discloses the successively enhanced display of compressed JPEG images, ie progressive JPEG. This concept is also known with PNG and GIF images. This method is based on compressed images that have to be decompressed before they (or at least a part of them) can be displayed.
Typically, data processing systems, such as personal computer systems, are required to process "digital documents" that can come from any one of a number of local or remote sources and that can exist in one of a wide variety of sources. data formats ("file formats"). To generate an output version of the document, either as a visual presentation or as a hard copy, for example, it is necessary for the computer system to interpret the original data file and generate an output compatible with the relevant output device (for example , a monitor or other display device, or a printer). In general, this process will involve an application program adapted to interpret the data file, the operating system of the computer, a specific software "driver" of the desired output device and, in some cases (particularly, for monitors or other units display), additional hardware in the form of an expansion card.
This conventional approach to processing digital documents in order to generate output is inefficient in terms of hardware resources, ancillary software operations, and processing time, and is totally unsuitable for low-power portable data processing systems, including portable data processing systems. for wireless telecommunications, or for low-cost data processing systems, such as network terminals, etc. Other problems exist in conventional digital document processing systems, including the need to configure multiple system components (including both hardware and software components) to interact in the desired way, and inconsistencies in the processing of identical source material. by different systems (eg different formatting, color rendering, etc.). Furthermore, the conventional approach to digital document processing is unable to exploit the community and / or the manageability of the components of the file format.
Summary of the invention
It is an object of the invention to provide methods and systems for processing graphic data, graphic objects and digital documents and devices incorporating such methods and systems that circumvent or mitigate the aforementioned disadvantages of conventional methods and systems.
The invention, in its various aspects, is defined in the claims appended hereto. Additional aspects and features of the invention will become apparent from the present description.
ES 2 240 451 T3
In a first aspect, the invention relates to a method for redrawing a graphic data display, according to which a current display is replaced by an updated display, comprising, in response to a redrawing request, immediately replacing the current display with a rough first representation of the updated display, generating a final updated display and replacing the approximate representation with the final updated display; characterized in that: at least said first approximate representation includes at least one bytemap representation having a resolution less than that required in the final updated display and scaled to approximate the required content of said updated display.
In a second aspect, the invention relates to a method for generating variable visual representations of graphic data, which comprises dividing said graphic data into a plurality of bytemap files of fixed, predetermined size, storing said files in an indexed array in an off-screen buffer and assembling a required visual representation of said graphic data from a selected set of said files stored in said off-screen buffer.
The methods of said second aspect can be used in methods of the first aspect.
A third aspect of the invention refers to a method for processing a digital document, said document comprising a plurality of graphic objects arranged on at least one page, comprising dividing said document into a plurality of zones and generating, for each zone, a list of objects contained within and that overlap that area.
The methods of the second aspect can be used in the methods of the third aspect.
According to a fourth aspect of the invention, a digital document processing system is provided for implementing the methods of any of the first to third aspects.
A preferred system according to the fourth aspect of the invention comprises:
an input mechanism for receiving an input byte stream representing source data in one of a plurality of predetermined data formats;
an interpretation mechanism for interpreting said stream of bytes;
a conversion mechanism for converting an interpreted content of said byte stream into an internal representation data format; and a processing mechanism for processing said internal representation data to generate output representation data adapted to drive an output device.
In a further aspect, the invention relates to a graphical user interface with interactive displays for a data processing system, wherein said interactive displays are generated by means of a document processing system according to the fourth aspect of the invention, and to data processing systems incorporating such a graphical user interface.
In still other aspects, the invention relates to various types of device incorporating a digital document processing system in accordance with the fourth aspect of the invention, including hardware devices, data processing systems, and peripheral devices.
Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings.
Brief description of the drawings
Figure 1 is a block diagram illustrating one embodiment of a preferred digital document processing system that may be employed in the implementation of various aspects of the present invention;
Figure 2A is a flow chart illustrating a first embodiment of a first aspect of the present invention;
Figure 2B is a flow chart illustrating a second embodiment of a first aspect of the invention;
Figure 3 is a diagram illustrating a method of scaling a bitmap in a preferred embodiment of the first aspect of the invention;
FIG. 4A is a diagram illustrating a conventional method of using an off-screen buffer to parserize a display of a digital document;
FIG. 4B is a diagram illustrating a method of using an off-screen buffer to parser a digital document display in accordance with a second aspect of the present invention;
Figure 5A is a diagram illustrating memory allocation and fragmentation associated with the conventional method of Figure 4A;
Figure 5B is a diagram illustrating a memory allocation and fragmentation associated with the method of Figure 4B;
Figure 5C is a diagram illustrating a preferred method for implementing the method of Figure 4B;
Figure 6 is a diagram illustrating the use of multiple parallel processor models to implement the method of Figure 4B; and Figures 7 and 8 are diagrams illustrating a method for processing a digital document in accordance with a third aspect of the invention.
Detailed description of the preferred embodiments
Referring now to the drawings, Figure 1 illustrates a preferred digital document processing system 8 in which the methods of the various aspects of the present invention may be implemented. Before describing the methods of the invention in detail, the system 8 will first be described by way of background. It will be understood that the methods of the present invention may be implemented in processing systems other than system 8 as described herein.
Generally speaking, the system 8 will process one or more source documents 10 comprising data files in known formats. The input to system 8 is a byte stream comprising the content of the source document. An input module 11 identifies the file format of the source document based on any one of a variety of criteria, such as an explicit identification of the type of file in the document, of the file name (particularly the file name extension) or of known characteristics of the content of specific file types. The byte stream is entered into a "document agent 12", specific to the type of file format of the source document. The document agent 12 is adapted to interpret the incoming byte stream and to convert it into a standard format employed by the system 8, resulting in an internal representation 14 of the source data in a "native" format suitable for processing. by system 8. Generally, system 8 will include a plurality of different document agents 12, each adapted to process one of a corresponding plurality of predetermined file formats.
System 8 can also be applied to inputs received from an input device such as a digital camera or scanner. In this case, the input byte stream may come directly from the input device rather than from a "source document" as such. However, the input byte stream will still be in a predictable data format, suitable for processing by the system, and for system purposes, the input received from such an input device can be considered as a "source document".
Document agent 12 employs a standard object library 16 to generate the internal representation 14, which describes the content of the source document in terms of a collection of generic objects whose types are as defined in library 16, along with parameters that define the properties of specific examples of the various generic objects in the document. It will be understood that the internal representation may be saved / stored in a native file format of the system and that the range of possible source documents 10 input into the system 8 may include documents in the native file format of the system. It is also possible for the internal representation 14 to be converted to any of a range of other file formats if necessary, using suitable conversion agents (not shown).
Typically, the generic objects used in internal representation 14 will include: text, bitmap graphics, and vector graphics (which may or may not be animated and may be two or three dimensional), video, audio, and a variety of interactive object types such as buttons and icons. Parameters that define specific examples of generic objects will generally include dimensional coordinates that define the physical shape, size and location of the object and any relevant temporal data to define objects whose properties vary with time (allowing the system to treat structures of documents and / or dynamic display functions). For text objects, the parameters will also normally include a font type and size to apply to a character string. Object parameters can also define other properties, such as transparency.
The internal representation format 14 separates the "structure" (or "layout") of documents, as described by object types and their parameters, from the "content" of the various objects; for example, the character string (content) of a text object is separated from the dimensional parameters of the object; the image data (content) of a graphic object is separated from its dimensional parameters. This allows document structures to be defined in a very compact way and provides the option for the system to remotely store content data and fetch it only when it is needed.
ES 2 240 451 T3
The internal representation 14 describes the document and its constituent objects in terms of "high-level" descriptions.
The data from the internal representation 14 is input into a parsing and presentation module 18 that generates a context-specific representation 20 or "view" of the document represented by the internal representation 14. The required view can be of the entire document or part (s) (subset (s)) of it. The parser / presenter 18 receives view control inputs 40 defining the viewing context and any related time parameters of the specific document view to be generated. For example, the system may be required to generate an enlarged view of part of a document and then pan or slide the enlarged view to display adjacent parts of the document. The parser / presenter 18 interprets the view control inputs 40 to determine which parts of the internal representation are required for a particular view and how, when and for how long the view is to be displayed.
The context-specific representation / view is expressed in terms of primitive forms and parameters.
The parser / presenter 18 may also perform additional preprocessing functions on the relevant parts of the internal representation 14 when generating the view 20 of the source document 10. The representation 20 of the view is input into a shape processor module 22 for final processing to generate final output 24 in a format suitable for driving an output device 26 (or multiple output devices), such as a display device. or a printer.
The preprocessing functions of the parser / presenter 18 may include color correction, resolution adjustment / enhancement, and smoothing. The resolution enhancement may comprise scaling functions that preserve the readability of the content of the objects when viewed or reproduced by the target output device. The resolution setting can be context sensitive; for example, the display resolution of particular objects may be reduced while panning or scrolling the displayed document or increased when the view of the document is static (as described below in connection with the first aspect of the invention).
A feedback path 42 may exist between the parser / presenter 18 and the internal representation 14; for example, in order to cause an update of the content of the internal representation 14, such as in the case where the document 10 represented by the internal representation comprises a multiframe animation.
The output representation 20 of the parser / presenter 18 expresses the document in terms of "primitive" objects. For each object in the document, the representation 20 preferably defines the object at least in terms of a physical, rectangular boundary box, the actual shape of the object delimited by the boundary box, the data content of the object, and its transparency.
The shape processor 22 interprets the representation 20 and converts it to an appropriate output raster format 24 for the target output device 26, for example, a dot map for a printer, a vector instruction set for a plotter, or a bitmap for a display device. An output control input 44 to the shape processor 22 defines the parameters necessary for the shape processor 22 to generate the output 24, suitable for a particular output device 26.
The shape processor 22 preferably processes the objects defined by the view representation 20 in terms of "shape" (ie, the shape of the object's outline), "fill" (the data content of the object) and "alpha" (the transparency of the object), performs appropriate scaling and cropping for the required view and output device and expresses the object in terms appropriate for the output device (typically in terms of pixels per discretization or the like for most types of output device). display or printer).
The shape processor 22 preferably includes an edge buffer that defines the shape of an object in terms of discretized pixels and preferably applies an anti-aliasing to the outline shape. The smoothing is preferably performed in a manner determined by the characteristics of the output device 26 (ie, based on the control input 44) by applying a grayscale slope across the boundary of the object. This approach enables shape clipping and shape intersection processes with good memory performance.
A look-up table can be used to define multiple tonal response curves, allowing for non-linear display control (gamma correction).
The individual objects processed by the shape processor 22 are combined into the composite output frame 24. The quality of the final output can also be controlled by the user through the output control input 44.
The shape processor 22 has a pipeline architecture that lends itself to the parallel processing of multiple objects or multiple documents or multiple subsets of one or more documents using multiple examples of the shape processor pipeline. The pipeline architecture is also easily modified to include
ES 2 240 451 T3 additional processing functions (eg filtering functions) if required. The outputs of multiple shape processors 22 may generate multiple output frames 24 or they may be combined into a single output frame 24.
The architecture of the system is modular in nature. This allows, for example, additional document agents to be added as and when required to handle additional source file formats. The modular architecture also allows individual modules, such as library 16, parser / presenter 18, or shape processor 22 to be modified or modernized, without requiring changes to other modules.
The overall system architecture also lends itself to parallelism in whole or in part for the simultaneous processing of multiple documents 10a, 10b, etc. input or subsets of documents, in one or more file formats, through one or more document agents 12, 12a. The integrated modular nature of the system allows the generation of multiple examples of system modules in a data processing system or device as and when required, limited only by available memory and processing resources.
The potential for flexible parallelism provided by the system as a whole and the shape processor 22 in particular shows the display path for a certain device to be optimized for available memory and bandwidth. Display updates and animations can be improved, which is faster and requires less memory. The object / parameter document model used is deterministic and consistent. The system is fully scalable and allows multiple system examples across multiple CPUs.
The parser / presenter 18 and the shape processor 22 interact dynamically in response to the view control inputs 40 in a manner that optimizes the use of available memory and bandwidth. This especially applies to redrawing functions when triggering a visual presentation, for example when a user is swiping or panning the visualization.
First, the system can implement a scalable delayed redrawing model, according to a first aspect of the invention, so that the display resolution of a document view, or of one or more objects in a view, varies dynamically. depending on how the display is to be modified. Typically, this can result in an object being displayed at a reduced resolution while moving on the screen and displaying at full resolution when idle. The system can employ multiple levels of display quality for this purpose. Typically this will involve low resolution pre-built bitmap representations of dynamically constructed and scaled document objects and / or bitmaps, with or without interpolation. This approach provides a highly responsive display that makes the best use of available memory / bandwidth.
Methods embodying this first aspect of the present invention are illustrated in Figures 2A and 2B.
When a redrawing request is initiated in the system, it is necessary for all or part of the current frame to be re-presented and displayed. The process of re-presenting the frame can take a significant amount of time.
Referring to Figure 2A, when a redrawing request 100 is initiated, the output frame is immediately updated (102) using one or more reduced resolution bitmap ("thumbnail") representations of the document or parts thereof. that are scaled to approximate the required content of the redrawn display. In system 8 of Figure 1, the bitmap representation (s) employed for this purpose may be reconstructed by the parser / presenter 18 and stored for use in response to requests. of redrawing. This approximation of the redrawn display can be generated much faster than the full rendering of the display, providing a temporary display while rendering is complete. In the embodiment of FIG. 2A, the full display of the display (104) is performed in parallel with the approximate redraw 102 and replaces the temporary display once completed (106). The method may include one or more additional intermediate updates 108 of the approximate temporal display while the entire rendering 104 is completed. These intermediate updates can progressively "beautify" the temporal display (ie, provide successively better approximations of the final display); for example, when using higher quality scaled bitmaps and / or superimposing vector outlines of objects on the bitmap (s).
The method of Figure 2A also shows the redrawing process to be interrupted by a new redrawing request (110). The entire rendering process 104 can simply be stopped, and the system processes the new redraw request as before.
Figure 2B illustrates an alternative embodiment in which a redraw request 112 is followed, as before, by a rough redraw 114 based on a thumbnail, and the full frame redraw 116 comes back in series after the rough redraw (instead in parallel, such as in FIG. 2A) to generate the final display 118 at full resolution. This process can also be interrupted at any stage by a new redraw request.
ES 2 240 451 T3
The methods of Figures 2A and 2B can be applied to all types of redrawing requests, including screen reconstructions, sliding, panning, and scaling (enlargement).
Figure 3 illustrates a preferred method of enlarging / scaling a miniature bitmap. As described above, the system creates and stores a basic bitmap 120 at some earlier stage. Assuming the bitmap is required to be scaled by some arbitrary factor (for example, a factor of 4.4), the basic thumbnail 120 is scaled in two stages: First, the thumbnail is scaled by fractional quantity (122) corresponding to the final scaling factor divided by the whole number part of the thumbnail (4.4 divided by 4 equals 1.1 in this example), and then multiplied by an integer quantity (124) corresponding to the integer part of the final scaling factor (ie, x4 in this example). This is faster than a 4.4 single-stage upgrade, at the expense of a small increase in memory requirement.
The scaling operations described above can be performed with or without interpolation. Figure 3 shows the final expanded bitmap 124 interpolated to provide 16x16 resolution compared to the original 8x8 bitmap 120. Interpolation can be performed using any of a variety of known interpolation methods. .
The ability to process transparent objects is a critical feature of the system of Figure 1. However, this requires the use of off-screen buffering in shape processor 22 in order to assemble a final output frame. Typically, as shown in Figure 4A, a conventional off-screen buffer 130 will cover an area larger than the immediate viewing area, allowing a limited degree of panning / scrolling in the temporary storage area, but you have to re-center and rebuild the entire buffer when the required display moves outside of these limits. This requires a block copy operation into the buffer and redraw the remainder of the "dirty rectangle" (132) before block copying the updated contents of the buffer to screen 134.
In accordance with a second aspect of the present invention, as illustrated in FIG. 4B, the performance of such buffering processes is improved by defining the contents of the buffer as an array 136 of tiles indexed in an ordered list. Each tile comprises a fixed size bitmap (eg 32x32 or 64x64) and can be thought of as a "mini buffer". When the view of the required display moves outside these limits, it is then only necessary to discard those tiles that are no longer required, build new tiles to cover the new display area, and update the list of tiles (138). This is faster and more efficient than conventional buffering processes, since no block copying is required in the buffer and no physical memory need to be moved or copied.
The described tiling scheme can be used globally to provide a reserve of tiles for all document and screen redrawing operations. Tiles are used to temporarily store off-screen document (s) at high speed and allow for fast and efficient panning and re-centering of views.
The use of a tile reservation such as that described also provides for more efficient use of memory and processor resources. Figure 5A shows how conventional off-screen buffering methods, involving data blocks having arbitrary and unpredictable sizes, result in memory fragmentation due to unpredictable contiguous block allocation requirements. The memory blocks required by temporary storage operations do not correspond to the memory management unit (MMU) blocks of the processor, so memory reallocation becomes inefficient, requiring large amounts of copy operations in physical memory, and cache consistency suffers. By using tiles of a fixed and predetermined size, memory requirements become much more predictable, so that memory and processor resources can be used and managed much more efficiently, fragmentation can be unlimited without affecting performance. Manageability and the need for in-memory copy operations can be substantially eliminated for many types of temporary storage operations. Ideally, the file size should be selected to correspond to the block size of the processor MMU.
Figure 5C illustrates a preferred scheme for managing files in the tile pool. Tile number zero is always reserved for building each new tile. Once a new tile has been built, it is renumbered using the next available free number (i.e. when the tile pool can hold a maximum of n tiles, the number of assigned tile addresses is restricted to n-1 ). In case of a tile renumber failure when the tile pool is full and there are no more free tiles, the new tile 0 is written directly to the screen and a background process (thread) for garbage collection is started (for example , identifying and removing “old” tiles) and / or assigning additional tile addresses. This provides an adaptive mechanism for dealing with resource allocation failures.
The described tiling scheme lends itself to parallel processing, as illustrated in Figure 6. The processing of a set of tiles can be divided among multiple parallel processes (for example, among multiple examples of the shape processor 22 of Figure 1 ). For example, a set of tiles 1-20 can be divided based on the screen positions of the tiles so that one WASP-A processor handles the processing of tiles 1-10 and a second WASP-B processor handles the processing. of tiles 11-20. Therefore, if a redraw order requires tiles 1-3, 7-9, and 12-14 to be redrawn,
ES 2 240 451 T3
WASP-A handles tiles 3-4 and 7-9 and WASP-B handles tiles 12-14. Alternatively, the set of tiles can be divided based on the location of the files on a tile memory map by dividing the tile memory into a memory A for WASP A processing and a B memory for WASP-B processing.
The described tiling scheme facilitates the use of multi-buffer and off-screen high-speed buffering. It also provides interruptible redraw functions (for example, so that a current redraw can be interrupted and a redraw started in response to user input), efficient color / display conversion and random noise application, fast 90 degree rotation (portrait / landscape) of the entire display in the software, and reduces the redrawing memory required for individual objects. It will also be appreciated that a system such as that of Figure 1 may employ a common pool of tiles for all application display and operating system / GUI functions of a data processing system.
It will be understood that the tiling methods of the second aspect of the invention can be advantageously combined with the redrawing methods of the first aspect of the invention.
According to a third aspect of the present invention, the processing of a document involves dividing each page of the document to be displayed into zones (this would involve the interaction of the parser / presenter 18 and the shape processor 22 in the system 8 of the figure 1), as illustrated in Figure 7. Each zone A, B, C, D has associated with it a list of all objects 1-8 contained within or overlapping that zone. The redraws can then be processed based on the zones, so the system only needs to process objects associated with the relevant zones affected by the redraw. This approach facilitates parallel processing and improves performance and reduces redundancy. The use of zones also makes it easier to use the system to generate different outputs for different displays (for example, to generate a composite / mosaic output to be viewed by a set of different display screens).
As illustrated in Figure 8, without the use of zoning, any screen update relative to shaded area 142 would require checking each of the eight objects 1 through 8 to see if the bounding box for each object intersects to area 142 to determine if it is necessary to trace that object. With zoning, it becomes possible to determine, firstly, which zones intersect area 142 (in this example, only zone D), secondly, which objects intersect the relevant zone (s) ( in this case, only object 2), and then it is only necessary to check whether the bounding boxes of those objects that intersect the relevant area (s) also intersect area 142. In many cases, this will greatly reduce the ancillary operations involved in extracting and comparing objects in the area 142 of interest.
It will be appreciated that, in some cases (eg, the extreme case where all objects on a page intersect all areas of the page), zoning of this type may bring little or no benefit; the relationship between area size and typical object size can be significant in this regard. In order to determine the nature of any zoning applied to a particular page, an algorithm can be used to analyze the content of the page and determine a zoning scheme (the number, size, and shape of the zones) that can be usefully used to that page. However, for typical page content, which will typically include many small, locally crowded objects, arbitrary zoning of the page is likely to yield significant benefits.
In principle, the zoning and tiling schemes described above are independent, but can be advantageously combined; that is, the zones can be mapped to one or more tiles. Again, this facilitates parallelism and optimizes the use of system resources.
Referring again to Figure 1, the system preferably employs a device independent color model, suitably a luminance / chrominance model such as the 1976 CIE L * a * b * model. This reduces redundancy in graphic objects. , improves data compressibility and improves consistency of color output between different output devices. Device-dependent color correction may be applied to shape processor 22 based on device-dependent control input 44.
Figure 1 shows the system with an input end where the source byte stream is received and an exit end where the final output frame 24 is output from the system. However, it will be understood that the system may include intermediate inputs and outputs in other intermediate stages, such as to extract data content or to save / convert data generated in the course of the process.
Digital document processing systems in accordance with the fourth aspect of the present invention may be incorporated in a variety of types of data processing systems and devices and peripheral devices in a number of different ways.
In a general purpose data processing system (the "main system"), the system of the present invention may be incorporated alongside the main system operating system and applications or it may be fully or partially incorporated into the main operating system.
For example, the system of the present invention allows rapid display of a variety of file types.
ES 2 240 451 T3 data on portable data processing devices with LCD screens without requiring the use of browsers or application programs. This class of data-processing devices requires small-size, low-power processors for portability. Typically this requires the use of RISC-type advanced core processors designated in ASICs (Application Specific Integrated Circuits) in order to make the electronics package as small and highly integrated as possible. This type of device also has limited random access memory and typically does not have non-volatile data memory (for example, a hard drive). Conventional operating system models, such as those used in desktop computing (PC) systems, require high-powered core processors and large amounts of memory in order to process digital documents and generate useful output and are totally unsuitable for this type of data processing device. In particular, conventional systems do not provide for the processing of multiple file formats in an integrated manner. In comparison, the present invention can use common processes and pipelines for all file formats, thus providing a highly integrated document processing system that is extremely efficient in terms of power consumption and use of system resources.
The system of the present invention can be integrated at the BIOS level of portable data processing devices to allow the processing and production of documents with much smaller auxiliary operations than conventional system models. Alternatively, the invention can be implemented at a lower level of the system, just above the transport protocol stack. For example, the system can be incorporated into a network device (card) or system to provide online processing of network traffic (eg, working at the packet level in a TCP / IP system).
In a specific device, the system of the invention is configured to operate with a predetermined set of specific data file formats and output devices; for example, the display unit of the device and / or at least one type of printer.
Examples of portable data processing devices that can employ the present system include "palmtop" computers, portable digital assistants (PDAs, including table-type PDAs in which the main user interface comprises a graphical screen with which the user interacts with directly by means of a style device), Internet-enabled mobile phones and other communication devices, etc.
The system can also be incorporated into low-cost data processing terminals such as extended telephones and network client "thin" terminals (eg, network terminals with limited local processing and storage resources) and even "embedded set-top boxes". use in interactive / internet-enabled cable TV systems.
When integrated with the operating system of a data processing system, the system of the present invention can also form the basis for a novel graphical user interface (GUI) for the operating system (OS). The documents processed and displayed by the system may include interactive features such as menus, buttons, icons, etc., that provide the user interface to the underlying functions of the operating system. By extension, an entire OS / GUI can be expressed, processed, and viewed in terms of system “documents”. The OS / GUI could comprise a single document with multiple “chapters”.
The system of the present invention can also be incorporated into peripheral devices such as printing devices (printers and plotters), display devices (such as digital projectors), network devices, input devices (cameras, scanners, etc.) and also multifunctional peripherals (MFPs).
When attached to a printer, the system can allow the printer to receive raw data files from the main data processing system and reproduce the contents of the original data file correctly without requiring specific applications or drivers provided by the main system. This avoids the need to configure a computer system to drive a particular type of printer. The present system can directly generate a point-correlated image of the source document suitable for output by the printer (this is true regardless of whether the system is incorporated into the printer itself or into the host system). Co similar nsideraciones apply to other printing devices such as plotters.
When incorporated into a display device, such as a projector, the system can again allow the device to display the contents of the original data file correctly without the use of applications or drivers on the main system and without the need for configuration. specific to the main system and / or display device. Peripheral systems of these types, when equipped with the present system, can receive and output data files from any source through any type of data communication network.
From the foregoing, it will be understood that the system of the present invention may be "integrated"; for example, implemented in a ROM and / or integrated in ASICs or other single-chip systems, or it can be implemented as firmware (a programmable ROM such as a flash ePROM) or as software, stored locally or remotely and extracted and executed as required by a specific device .
Improvements and modifications may be incorporated without departing from the scope of the present invention as defined by the appended claims.
Contents6
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
145 members in 12 offices
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 20000009129 | United Kingdom | – | |
| 0009129 | United Kingdom | A | |
| 20000703502 | United States of America | – | |
| 70350200 | United States of America | A | |
| 2001GB01742 | World Intellectual Property Organization (WIPO) | – | |
| 0101742 | United Kingdom | W |
Members145
| Document | Office | Kind | |
|---|---|---|---|
| GB0009129D0 | United Kingdom | D0 | |
| US2001030655A1 | United States of America | A1 | |
| US2001032221A1 | United States of America | A1 | |
| WO0179980A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO0179984A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO0180044A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO0180069A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO0180178A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO0180183A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU4855101A | Australia | A | |
| AU5049401A | Australia | A | |
| AU5049701A | Australia | A | |
| AU5491501A | Australia | A | |
| AU5645801A | Australia | A | |
| AU5645901A | Australia | A | |
| US2001042078A1 | United States of America | A1 | |
| US2001044797A1 | United States of America | A1 | |
| US2002011990A1 | United States of America | A1 | |
| WO0180178A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO0180044A3 | World Intellectual Property Organization (WIPO) | A3 | |
| KR20020087974A | Republic of Korea | A | |
| KR20030001415A | Republic of Korea | A | |
| EP1272920A1 | European Patent Office (EPO) | A1 | |
| EP1272922A1 | European Patent Office (EPO) | A1 | |
| EP1272938A2 | European Patent Office (EPO) | A2 | |
| EP1272940A1 | European Patent Office (EPO) | A1 | |
| EP1272975A2 | European Patent Office (EPO) | A2 | |
| EP1272977A1 | European Patent Office (EPO) | A1 | |
| KR20030005277A | Republic of Korea | A | |
| KR20030026927A | Republic of Korea | A | |
| KR20030039328A | Republic of Korea | A | |
| CN1422408A | China | A | |
| KR20030044907A | Republic of Korea | A | |
| CN1423771A | China | A | |
| CN1426551A | China | A | |
| CN1426574A | China | A | |
| CN1430766A | China | A | |
| CN1434960A | China | A | |
| JP2003531428A | Japan | A | |
| JP2003531429A | Japan | A | |
| JP2003531438A | Japan | A | |
| JP2003531441A | Japan | A | |
| JP2003531445A | Japan | A | |
| JP2003531446A | Japan | A | |
| HK1056636A1 | Hong Kong, China | A1 | |
| HK1057111A1 | Hong Kong, China | A1 | |
| HK1057117A1 | Hong Kong, China | A1 | |
| HK1057121A1 | Hong Kong, China | A1 | |
| HK1057278A1 | Hong Kong, China | A1 | |
| HK1057936A1 | Hong Kong, China | A1 | |
| US6781600B2 | United States of America | B2 | |
| EP1457872A1 | European Patent Office (EPO) | A1 | |
| US2004194014A1 | United States of America | A1 | |
| US2004236790A1 | United States of America | A1 | |
| CN1180362C | China | C | |
| WO0180183A8 | World Intellectual Property Organization (WIPO) | A8 | |
| EP1272977B1 | European Patent Office (EPO) | B1 | |
| AT286285T | Austria | T | |
| ATE286285T1 | Austria | T1 | |
| DE60108093D1 | Germany | D1 | |
| US2005030321A1 | United States of America | A1 | |
| EP1272975B1 | European Patent Office (EPO) | B1 | |
| AT291261T | Austria | T | |
| ATE291261T1 | Austria | T1 | |
| DE60109434D1 | Germany | D1 | |
| EP1528510A2 | European Patent Office (EPO) | A2 | |
| ES2236219T3 | Spain | T3 | |
| US6925597B2 | United States of America | B2 | |
| EP1272977B8 | European Patent Office (EPO) | B8 | |
| ES2240451T3This record | Spain | T3 | |
| CN1227621C | China | C | |
| DE60108093T2 | Germany | T2 | |
| DE60109434T2 | Germany | T2 | |
| CN1241150C | China | C | |
| US7009624B2 | United States of America | B2 | |
| US7009626B2 | United States of America | B2 | |
| CN1251056C | China | C | |
| US7036076B2 | United States of America | B2 | |
| CN1253831C | China | C | |
| US7055095B1 | United States of America | B1 | |
| EP1272922B1 | European Patent Office (EPO) | B1 | |
| AT330276T | Austria | T | |
| ATE330276T1 | Austria | T1 | |
| CN1808499A | China | A | |
| DE60120670D1 | Germany | D1 | |
| CN1279430C | China | C | |
| CN1848081A | China | A | |
| HK1089539A1 | Hong Kong, China | A1 | |
| KR20070005028A | Republic of Korea | A | |
| KR20070007213A | Republic of Korea | A | |
| ES2266185T3 | Spain | T3 | |
| CN1924794A | China | A | |
| HK1093795A1 | Hong Kong, China | A1 | |
| KR20070035105A | Republic of Korea | A | |
| KR100707579B1 | Republic of Korea | B1 | |
| KR100707645B1 | Republic of Korea | B1 | |
| KR100707651B1 | Republic of Korea | B1 | |
| KR100721634B1 | Republic of Korea | B1 | |
| KR100727195B1 | Republic of Korea | B1 | |
| DE60120670T2 | Germany | T2 |
Numbers
- Publication
- 2240451
- Application
- 1929774
Titles2
- Spanish
- SISTEMAS Y METODOS PARA GENERAR REPRESENTACIONES VISUALES DE DATOS GRAFICOS.
- English
- SYSTEMS AND METHODS TO GENERATE VISUAL REPRESENTATIONS OF GRAPHIC DATA.
Classification
- CPC, 19
- G06F3/1208
- G06F3/0481
- G06F3/1203
- G06F3/1245
- G06F3/1256
- G06F3/1292
- G06F2203/04805
- G06T11/60
- G06T15/00
- G06T15/005
- G09G2340/10
- G06F2203/04804
- G06F3/04847
- G06F3/0482
- G06F3/0483
- G06F3/04883
- G06F3/1206
- G06F3/1228
- G06F40/103
- IPC, 20
- G06F3 041
- G06F
- G06F3 00
- G06F3 0481
- G06F3 0482
- G06F3 0483
- G06F3 0484
- G06F3 0488
- G06F3 12
- G06F7 00
- G06F9 44
- G06F17 00
- G06F17 21
- G06F17 27
- G06T
- G06T1 00
- G06T11 00
- G06T11 40
- G06T11 60
- G06T15 00