MXPA06003356A - Protocolo de comunicacion para sincronizar sistemas de animacion. - Google Patents

Protocolo de comunicacion para sincronizar sistemas de animacion.

Info

Publication number
MXPA06003356A
MXPA06003356A MXPA06003356A MXPA06003356A MXPA06003356A MX PA06003356 A MXPA06003356 A MX PA06003356A MX PA06003356 A MXPA06003356 A MX PA06003356A MX PA06003356 A MXPA06003356 A MX PA06003356A MX PA06003356 A MXPA06003356 A MX PA06003356A
Authority
MX
Mexico
Prior art keywords
animation
level
message
subsystem
clock
Prior art date
Application number
MXPA06003356A
Other languages
English (en)
Inventor
Matt Calkins
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA06003356A publication Critical patent/MXPA06003356A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Communication Control (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Computer And Data Communications (AREA)

Abstract

Se describe un protocolo de comunicaciones que rige el intercambio asincronico de datos entre un sistema de animacion de nivel superior y un sistema de animacion de nivel inferior. El sistema de animacion de nivel superior tiene una velocidad de marco de frecuencia media variable y es optimizado para interactividad. El sistema de animacion de nivel inferior tiene una velocidad de marco de frecuencia alta constante y esta optimizado para la velocidad de marco de renovacion alta. El protocolo de comunicaciones incluye mensajes que se pueden enviar a traves del sistema de animacion de nivel superior hacia el sistema de animacion de nivel inferior para designar una animacion y como la animacion va a cambiar en un periodo especifico de tiempo. Como un resultado, el sistema de nivel inferior puede presentar la animacion a la velocidad de renovacion alta incluso si los datos de animacion no se reciben desde el sistema de nivel superior para cada marco.

Description

PROTOCOLO DE COMUNICACION PARA SINCRONIZAR SISTEMAS DE ANIMACION CAMPO TECNICO Los sistemas y métodos aquí descritos se refieren generalmente a sistemas de animación y, más específicamente, a un protocolo de comunicación para mantener datos y sincronización de reloj entre múltiples sistemas de animación.
ANTECEDENTES DE LA INVENCION Con todo lo relacionado a juegos de vídeo, sitios web de red, presentaciones multimedia o similares, las esperanzas del usuario con respecto a calidad de gráficos han aumentado significativamente en los años recientes. Consecuentemente, este alto nivel de esperanzas plantea retos siempre en aumento al sistema de vídeo/animación y a los desabolladores de la aplicación. Las aplicaciones de animación interactivas presentan una consideración especial debido a que dos sistemas de animación (por ejemplo, una aplicación almacenada en memoria local o remota y un sistema de dispositivo de presentación) deben tener comunicación uno con otro para proporcionar una experiencia de usuario de calidad. Existe un problema aquí debido a que un sistema de animación (es decir, la aplicación almacenada en la memoria) siempre está enfocada con la interactividad del usuario mientras el otro sistema de animación (es decir, el sistema de dispositivo de presentación) está primordialmente vinculado con aspectos de presentación tal como velocidad de renovación. Estos intereses competitivos deben ser resueltos para proporcionar la experiencia de usuario deseada.
COMPENDIO DE LA INVENCION Se describen sistemas y métodos que incluyen dos sistemas de animación diferentes. Un sistema de animación de nivel superior (por ejemplo, una aplicación) está primordialmente involucrado con la interactividad y estructura de tiempo compleja y, por lo tanto, se optimiza para interactividad superior. Un sistema de animación de nivel inferior (por ejemplo, un dispositivo de presentación) está primordialmente vinculado con una velocidad de renovación de presentación y de esa forma se optimiza para una velocidad de marco de renovación superior. La provisión de múltiples sistemas de animación diferentes permite que la animación corra en una velocidad de renovación de presentación predefinida sin interactividad de penalización, o viceversa. Los dos sistemas de animación corren de forma asincrónica para que cada sistema pueda enfocarse mejor en su función primordial en su propia estructura de tiempo. Para optimizar la experiencia del usuario, los dos sistemas de animación deben estar sincronizados. En el procedimiento de sincronización descrito aquí, el sistema de animación de nivel superior y el sistema de animación de nivel inferior intercambian datos (por ejemplo, datos de reloj, datos de función de animación, etc.) con el uso de un protocolo de comunicación diseñado específicamente para este propósito. El protocolo de comunicación introducido aquí proporciona una forma eficiente para intercambiar los datos requeridos. En vez de enviar una gran cantidad de datos para cada marco, el protocolo de comunicación proporciona solo en envío de una cantidad pequeña de datos sobre cómo se supone que la animación cambia en un periodo específico de tiempo. Además de guardar el sistema general, el protocolo asegura que el sistema de animación de nivel inferior tiene información para procesar varios marcos de una animación, que resulta en no presentar los marcos que se liberan debido a una carencia de datos renovados.
BREVE DESCRIPCION DE LOS DIBUJOS Un entendimiento más completo de los métodos y órdenes ilustrativos de la presente invención se puede tener por referencia a la siguiente descripción detallada cuando se toma en conjunto con los dibujos acompañantes en donde: La Figura 1 es un diagrama de bloque de un sistema de servidor-cliente incluyendo subsistemas de animación. La Figura 2 es un diagrama de bloque de una arquitectura de sistema de presentación de animación ilustrativa. La Figura 3 es un diagrama de flujo que ilustra una implementación metodológica de una operación básica de un sistema de animación/presentación factorizado. La Figura 4a es una ilustración de mensajes y parámetros de protocolo de comunicación transmitidos desde un motor de tiempo de nivel superior a un motor de tiempo de nivel inferior para sincronizar el sistema de animación de nivel superior con el sistema de animación de nivel inferior. La Figura 4b es una ilustración de mensajes y parámetros de protocolo de comunicación transmitidos de un motor de tiempo de nivel inferior a un motor de tiempo de nivel superior para sincronizar un sistema de animación de nivel superior con un sistema de animación de nivel inferior. La Figura 4c es una ilustración de mensajes y parámetros de protocolo de comunicación transmitidos desde objetos de animación de nivel superior hacia objetos de animación de nivel inferior para sincronizar un sistema de animación de nivel superior con un sistema de animación de nivel inferior. La Figura 5 es un diagrama de flujo que ilustra una implementación metodológica ilustrativa de un procedimiento de animación en un sistema de presentación que tiene un sistema de animación de nivel superior completamente conectado y sistema de animación de nivel inferior. La Figura 6 es un diagrama de flujo que ilustra una implementación metodológica ilustrativa de un procedimiento de animación en un sistema de presentación que tiene un sistema de animación de nivel superior parcialmente conectado y sistema de animación de nivel inferior. La Figura 7 es un ambiente de cómputo ilustrativo de acuerdo con los sistemas y métodos aquí descritos.
DESCRIPCION DETALLADA DE LA MODALIDAD PREFERIDA La siguiente discusión generalmente trata con un sistema de computadora que genera y presenta una animación (es decir, una función que modifica objetos gráficos con el tiempo) utilizando un protocolo de comunicación que rige la transmisión utilizada en la generación y la presentación. Los objetos gráficos pueden comprender una ventana, un cuadro de diálogo o similares. Como se utiliza aquí, el término "sistema de computadora" puede significar ya sea una computadora individual o múltiples computadoras que trabajan juntas. El sistema de computadora incluye múltiples sistemas de animación/presentación diferentes, o subsistemas, que cada uno se enfoca en una animación particular o función de presentación. En la discusión más adelante, se describe un protocolo de comunicación en el contexto de dos sistemas o subsistemas de animación. Sin embargo, se nota que estos solo son ejemplos y que el protocolo de comunicación se utilizar, de dos sistemas o subsistemas de animación diferentes. El término "presentación" se utiliza en la discusión de protocolo de comunicación aquí introducido. La "presentación" se puede ver como un paso en el procedimiento de animación que define la animación para presentar y/o presentaciones de la animación. Un "sistema de presentación" puede ser un sistema que incluye una función de presentación. Esto puede ser reducidamente definido para describir un sistema que solo realiza una función de presentación, o puede ser ampliamente definido para describir un sistema que realiza otras funciones además de una o más funciones de presentación, tal como un sistema de animación. Similarmente, el término "sistema de animación" como se utiliza aquí se refiere a un sistema que incluye una función de animación.
Un "sistema de animación" puede ser un sistema que solo realiza funciones de animación, o puede ser un sistema que realiza una o más funciones de animación además de otras funciones, tal como una función de presentación. El' uso de cualquier término particular, "sistema de presentación" o "sistema de animación", no significa que limite el alcance de la arquitectura y/o función asociada con el mismo. El alcance apropiado del término utilizado se puede derivar del contexto en el cual se utiliza el término. Un sistema de animación configurado de forma completa incluye estructuras de tiempo complejas, en donde cada animación puede ser dirigida a través de un reloj separado, y los relojes se relacionan a través de un grupo arbitrario de reglas especificadas por un desarrollador de aplicación. Por ejemplo, una animación (A) puede ser definida para comenzar exactamente al mismo tiempo que termina una animación diferente (B), o un grupo de animaciones se puede especificar para correr a ia mitad de su velocidad normal, en un sentido más general, tal sistema también puede controlar la sincronización de animaciones con otros tipos de medios lineales, tal como audio y vídeo, al asociar un reloj con cada pieza de los medios lineales. Además, los relojes son interactivos, cuando se inician, se les da pausa o se detienen en cualquier momento, y aquellas interacciones pueden causar cambios que se propagan a través de la jerarquía de tiempo completa como se dictaminó por reglas de sincronización. Siguiendo el ejemplo previo, si la animación (B) es pausada y resumida 5 segundos después, entonces la animación (A) comenzará 5 segundos después de lo originalmente planeado. Esto, a su vez, puede causar cambios de tiempo en otros relojes, potencialmente propagándose a través de la estructura de tiempo completa . El cálculo de los cambios a la estructura de tiempo es una operación ilimitada costosa, así que está operación es adecuada para un sistema de presentación en tiempo real que tiene una meta de satisfacer una velocidad de marco predecible. Estas dos metas (proporcionar un sistema de animación configurado de forma completa y mantener una velocidad de marco predecible) son contradictorias. Una solución es dividir el sistema en dos partes: una de las cuales conoce sobre las reglas de sincronización entre relojes y otra que considera cada reloj como una entidad completamente independiente. El protocolo de comunicación aquí reclamado mantiene los dos sistemas de animación diferentes en sincronización así las animación pueden correr en una velocidad de renovación de presentación alta , sin interactividad de penalización y viceversa. Un sistema de animación aquí descrito incluye al menos dos componentes, principalmente, un subsistema de animación de nivel superior que está primordialmente vinculado con la interactividad y estructuras de tiempo complejas, y un subsistema de animación de nivel inferior que está primordialmente vinculado con la presentación de una o más animaciones en una pantalla en una velocidad de renovación de presentación constante y alta. El término "nivel superior" se refiere al hecho de que el sistema de animación está más cerca del usuario, mientras el sistema de animación de "nivel inferior" está más cerca del metal (o máquina). Un ejemplo de un subsistema de animación de nivel superior es una aplicación que controla animaciones de acuerdo con los datos recibidos de la misma aplicación o de un usuario. Un ejemplo de un subsistema de animación de nivel inferior es un sistema de dispositivo de presentación que controla convertir los datos de animación a animaciones físicamente presentadas. El sistema de dispositivo de presentación incluye componentes de hardware así como componentes de software que pueden estar incluidos en hardware de tarjeta de vídeo (no mostrado explícitamente) o en un componente que no reside físicamente en la tarjeta de vídeo. El en la presente discusión, se hace referencia a un dispositivo de presentación como siendo un sistema de presentación o un sistema o subsistema de animación. Sin embargo, se nota que todos los componentes y el procedimiento de un sistema de presentación no necesariamente están físicamente residentes en el dispositivo de presentación, el término "dispositivo de presentación" como se utiliza aquí también abarca operaciones de procesador que controlan una presentación cualquier tipo de memoria de presentación. Normalmente, un procedimiento de animación se piensa como funcionando el procedimiento en una máquina individual que incluye tanto el subsistema de animación de nivel superior como el subsistema de animación de nivel inferior (utilizando un sistema de animación individual). Sin embargo, el protocolo de comunicación aquí descrito para dos sistemas de animación diferentes anticipa los subsistemas de animación de nivel superior y nivel inferior funcionando: (1) como dos argumentos en un procedimiento individual, (2) como dos procedimientos diferentes en una máquina individual; o (3) en dos máquinas diferentes separadas por una red, tal como en una arquitectura de cliente-servidor.
Sistema de Servidor-Cliente Ilustrativo La Figura 1 es un diagrama de bloque de un sistema de servidor-cliente ilustrativo 100 de acuerdo con los sistemas y métodos aquí descritos. El sistema de cliente-servidor 100 incluye un servidor 102 y un cliente 104 que se comunica en una red 106, tal como Internet. El servidor 102 incluye una memoria 108, un procesador 110, una tarjeta de interfase de red 112 para controlar comunicaciones en la red 106, y otro hardware misceláneo 114 típicamente requerido para que un servidor realice funciones de servidor estándares. La memoria 110 incluye un sistema operativo 116 y componentes de software misceláneos 118 que proporcionan funcionalidad de servidor. Una aplicación 120 también está almacenada en la memoria 108 e incluye un subsistema de animación de nivel superior 122 que incorpora el código de computadora que controla una o más funciones de animación. La función de animación podría ser una ventana, un cuadro de diálogo, o similares. El subsistema de animación de nivel superior 122 está primordialmente enfocado en una interactividad y estructuras de tiempo complejas. Como se verá en la otra discusión, la aplicación 120 puede incluir código de computadora escrito por el usuario y código de computadora de sistema que está separado del código de usuario que el código de usuario accesa a través de una o más interfases de programación de aplicación (API). El cliente 104 incluye una memoria 130, un procesador 132, una tarjeta de interfase de red 134 que controla comunicaciones hacia y desde la red 106, y una presentación 136. El cliente 104 también incluye un dispositivo de presentación 138 así como hardware misceláneo 140 que se puede requerir para que el cliente 104 funcione apropiadamente. La memoria 130 almacena un navegador 142 almacenado para proporcionar acceso para y navegar en la red 106 y un sistema operativo 144 que controla la funcionalidad básica del cliente 104. Los componentes de software misceláneo 146 también son almacenados en la memoria 130 e incluyen software que proporciona al cliente necesario 104 la funcionalidad y servicios de cliente. El dispositivo de presentación 138 incluye un subsistema de animación de nivel inferior 148 que puede estar almacenado en la memoria del dispositivo de presentación (no mostrado), en un componente de hardware de dispositivo de presentación (no mostrado) o en la memoria 130 incluida en ei cliente 104. La Figura 1 muestra que al menos una porción de los componentes del dispositivo de presentación 138 pueden residir en la memoria principal 130 del cliente 104. El subsistema de animación de nivel inferior 148 primordialmente está enfocado en satisfacer los objetivos de presentación para una velocidad de marco de renovación alta (una velocidad de renovación mínima de treinta (30) marcos por segundo). Sostener la velocidad de marco de renovación superior proporciona un excelente resultado y es placentera para un observador, que es la meta final de un sistema de animación. Dos obstáculos que se encuentran en la forma de sostener una velocidad de marco de renovación superior para una animación son (1) latencia, y (2) anchura banda. Cuando se envían datos sobre una red, los datos pueden estar destinados a cualquier parte en el mundo, lo que puede crear latencias importantes. Los problemas de latencia previenen que los mensajes y retroalimentación apropiados lleguen en un momento y que esto cause que la velocidad de renovación sufra y degrade la experiencia del usuario. Esto es un problema mayor con los sistemas de animación configurados en una entidad individual, ya que una cantidad mayor de datos se debe de enviar regularmente al control de animación. El asunto de la anchura de banda también presenta un problema mayor para los sistemas de entidad individual. Con una animación compleja, las grandes cantidades de datos deben enviarse a través del límite particular (argumento, procedimiento, red) para cada marco. Incluso con el sistema aquí descrito que incluye dos subsistemas de animación diferentes, utilizar la banda de egreso puede ser un problema con el uso de un módem que inherentemente limite la banda de egreso o con un servidor que está sirviendo a un número enorme de clientes. Incluso si un servidor solo de transmitir una cantidad relativamente pequeña de datos para una simple animación, si esos datos deben ser servidos para, digamos, 400 clientes, puede ser una emisión de banda de egreso. Los sistemas y métodos aquí descritos proporcionan una forma eficiente para minimizar la utilización de la banda de egreso mientras se mantiene una velocidad de renovación superior.
Arquitectura de Sistema de Presentación de Animación Ilustrativa La Figura 2 es un diagrama de bloque de una arquitectura de sistema de presentación de animación ilustrativa 200 de acuerdo con los sistemas y métodos aquí descritos. Algunos de los elementos mostrados en la Figura 2 son elementos que también están incluidos en la Figura 1. Para propósitos de referencia, un elemento incluido en ambas figuras se muestra en la Figura 2 con el mismo número de referencia utilizado para el elemento en la Figura 1. La arquitectura ilustrativa 200 incluye la aplicación 120 y el dispositivo de presentación 138. La aplicación 120 se comunica con el dispositivo de presentación 138 a través del canal de comunicación 204 de acuerdo con un protocolo de comunicaciones 216 que será discutido en mayor detalle más adelante. Como se discutió previamente, el canal de comunicación 204 atraviesa un límite que puede ser un límite entre argumentos, procedimientos o máquinas. Para un límite entre máquinas, por ejemplo, el canal de comunicación 204 puede ser la red 106 previamente mostrada. El. código de usuario 202 funciona junto con la aplicación 120 a través de un límite de API 206 que es un grupo de APIs del sistema que proporciona acceso a la aplicación 120 a través de un desarrollador que desea utilizar las características de la aplicación 128 con el código de usuario 202. Como se discutió previamente, la aplicación 120 abarca el subsistema de animación de nivel superior 122. El subsistema de animación de nivel superior 122 incluye un componente de gráficos de nivel superior 208, una base de datos de objetos de animación de nivel superior 210 y un motor de tiempo de nivel superior 212. El motor de tiempo 212 crea y controla uno o más relojes de nivel superior 214 almacenados en la base de datos de objeto de animación de nivel superior 210. El motor de tiempo de nivel superior 212 es responsable de configurar y sincronizar los relojes de nivel superior 214. Así, por ejemplo, si hay diez (10) animaciones que se suponen que funcionen juntas, el motor de tiempo de nivel superior 212 sincroniza diez (10) relojes de nivel superior 214 para que presenten las animaciones en sincron ía. El componente de gráficos de nivel superior 208 almacena del tipo de gráfico utilizado en una animación. La base de datos de objetos de animación de nivel superior 210 almacena valores de animación asociados con una o más animaciones (y/o objetos de medios asociados con uno o más medios). Los valores de animación incluyen al menos una línea de tiempo (es decir, un reloj) asociado con la animación. (Se nota que los términos "reloj" y "línea de tiempo" como se utiliza aquí son intercambiables). Los valores de animación afectan el resultado de la presentación de animación basándose en los valores de los relojes de nivel superior 214. Cada animación modifica uno o más aspectos del componente de gráficos de nivel superior 208. Por ejemplo, para una animación simple de crear una línea del punto P1 al punto P2, la base de datos de los objetos de animación 210 almacenará un valor para P1 en tiempo = 0 y un valor para P2 en tiempo = 1. (Todos los puntos entre P1 y P2 son interpolados). El dispositivo de presentación 138 de la arquitectura de sistema de presentación de animación ilustrativa 200 incluye el subsistema de animación de nivel inferior 148 mostrado en la Figura 1. El subsistema de animación de nivel inferior 148 es una estructura equivalente al subsistema de animación de nivel superior 122 e incluye un componente de gráfico de nivel inferior 218, una base de datos de objetos de animación de nivel inferior 220 y un motor de tiempo de nivel inferior 222. El motor de tiempo 222 crea uno o más relojes de nivel inferior 224 que son almacenados en la base de datos de objetos de animación de nivel inferior. Los componentes (218-224) del subsistema de animación de nivel inferior 148 son similares a los componentes (208-214) del subsistema de animación de nivel superior 122 y sus funciones o interoperabilidad son similares como se describió previamente. Existen ventajas de una arquitectura como la arquitectura de sistema de presentación de animación ilustrativa 200, es decir una arquitectura que tiene un sistema de animación factorizado en dos subsistemas. Si una aplicación es costosa y gasta muchos gastos generales con la interactividad, la animación puede continuar; no tiene que esperar que la porción interactiva se complete antes de que la animación pueda continuar. En un sistema no factorizado, si la aplicación no proporciona la presentación actualizaciones de datos regulares, entonces la presentación debe dibujar imágenes estáticas más que una animación en movimiento. Un ejemplo común del problema se caracteriza a través de un indicador de banda de estado que se presenta mientras un sistema está procesando información. Usualmente, el indicador progresa, por ejemplo, en una dirección de izquierda a derecha que indica que algún procedimiento está sucediendo. Sin embargo, existen ocasiones cuando el indicador de estado se detiene y el usuario no puede decir si el sistema se ha cerrado o si sigue procesando algo. Este es un resultado de la porción interactiva del animador que no proporciona los datos actualizados a la porción de presentación en el tiempo para satisfacer la renovación de velocidad de marco. Tal sistema es particularmente pobre para los vídeos. Con un vídeo, un marco puede ser liberado, resultando en una falla, o artefacto, simplemente debido a que el sistema estaba ocupado cuidando otra tarea (que podría ser menor como mover el cursor del ratón). En un sistema de animación factorizado, el subsistema de animación de nivel inferior 148 corre asincrónicamente desde el subsistema de animación de nivel superior 122, así continúa corriendo (es decir, dibujo) incluso cuando el subsistema de animación de nivel superior 122 se involucra con una tarea que lo previene de volver a dibujar un marco antes de que el marco se renueve. El sistema de animación factorizado, por lo tanto, presenta uniformemente una operación de animación y, por lo tanto, proporciona una experiencia de usuario superior.
Implementación Metodológica Ilustrativa: Operación Básica La Figura 3 es un diagrama de flujo que ilustra la operación básica de un sistema de animación/presentación factorizado, tal como se muestra en la Figura 1 y Figura 2. En la siguiente discusión, se hará referencia continua a elementos y números de referencia mostrado en la Figura 1 y 2. En un sistema de animación factorizado (es decir, un sistema de animación que está factorizado al menos en dos subsistemas de animación diferentes que funcionan asincrónicamente uno con otro), un usuario (aplicación) le dice a un sistema de nivel superior, a través de las APIs del sistema, como se supone que los gráficos deben aparecer en una presentación. El sistema de nivel superior utiliza un protocolo de comunicación especializado para dirigir a un sistema de nivel inferior para crear una estructura similar para una configuración en el sistema de nivel superior. Ya que el sistema de nivei superior está configurado para crear diferentes elementos en el sistema de nivel inferior, necesariamente sigue ese protocolo de comunicación, discutido en más detalle, más adelante, con respecto a la Figura 1, e incluye varios "crear" mensajes o comandos. El diagrama de flujo mostrado en la Figura 3 cubre algunos pasos básicos que ocurren cuando el sistema de animación de nivel superior 122 se comunica con el subsistema de animación de nivel inferior 148 para configurar con ello la estructura. En el bloque 300, el subsistema de animación de nivel superior 122 envía un mensaje para crear un objeto de animación 220 en el subsistema de animación de nivel inferior 148. El subsistema de animación de nivel superior 122 después continúa con el subsistema de animación de nivel inferior 148 para crear un reloj 224 (es decir, una línea de tiempo) para incluirse con el objeto de animación 220 que ha sido creado recientemente (bloque 302). Se notó que no necesariamente existe una porción de 1:1 entre los objetos de animación y las líneas de tiempo. En otras palabras, una línea de tiempo puede controlar más de un objeto de animación. Por lo tanto, en el paso descrito anteriormente para el bloque 302, la línea de tiempo no necesita ser creada si ya existe una y si el objeto de animación recientemente creado puede estar asociado con la línea de tiempo existente. En este punto, la aplicación 120 puede crear otro objeto de animación al modificar una animación existente. Si la aplicación 120 está configurada para crear otro objeto de animación (rama de "objeto de animación", bloque 304), entonces el subsistema de animación de nivel superior 122 envía un mensaje de protocolo de comunicación al subsistema de animación de nivel inferior 138 para crear otro objeto de animación 220 en el bloque 300. El subsistema de animación de nivel superior 122 después envía un mensaje en el bloque 302 para asociar una línea de tiempo con el objeto de animación recientemente creado 220. La línea de tiempo puede ser creada o puede ser una línea de tiempo existente. La aplicación 120 también está configurada para soportar modificaciones. El subsistema de animación de nivel superior 122 puede enviar un mensaje para modificar un objeto de animación 220 y/o una línea de tiempo asociada con esto (rama de "modificación", bloque 304). Además de una modificación directa que modifica un aspecto de una animación, una operación de "pausa" y una operación de "detener" también son modificaciones. Una operación de "pausa" se puede codificar en términos de una modificación típica, por ejemplo, "el tiempo 0, el reloj es 10; y en tiempo 10, el reloj es 10". Una operación de "detener" se inicia con un mensaje de "remover animación". Si la modificación es un mensaje de "remover animación" (rama Sí", bloque 306, entonces la animación es interrumpida en el bloque 308. De otra forma (rama "No", bloque 306), el sistema de animación de nivel superior 122 envía uno o más mensajes configurados para modificar una animación existente (bloque 310). Modificar una animación existente también puede significar la línea de tiempo asociada con una animación existente. Como se mencionó previamente, el diagrama de flujo anterior ilustra una metodología general para configurar un subsistema de animación de nivel inferior 148 al enviar mensajes de protocolo de comunicación de un subsistema de animación de nivel superior 122. Al menos una implementación metodológica más específica que utiliza el protocolo de comunicación se discutirá en mayor detalle más adelante, después de que se discuten las especificaciones del protocolo de comunicación.
Protocolo de Comunicación Las Figuras 4a, 4b y 4c son tablas que delinean mensajes/comandos de un protocolo de comunicación para utilizarse en controlar transmisiones entre un sistema de animación de nivel superior y un sistema de animación de nivel inferior. En la siguiente discusión, se da referencia continua a los elementos y números de referencia mostrados y descritos en la Figura 1 y la Figura 2. La Figura 4a ¡lustra una tabla 400 que describe mensajes enviados desde el motor de tiempo de nivel superior 212 hacia el motor de tiempo de nivel inferior 222. Un mensaje de "crear reloj" 402 causa que el motor de tiempo de nivel inferior 222 cree un reloj para una animación. El mensaje de "crear reloj" 402 incluye "crear parámetros de reloj" 404, que son las propiedades de reloj iniciales. Las propiedades de reloj pueden incluir, pero no están limitadas a, duración (desde un comienzo de tiempo), reloj padre (al que todos los tiempos en ese reloj son relativos), velocidad (relativo a este padre), aceleración y desaceleración. Los parámetros de aceleración y desaceleración específica en el porcentaje del tiempo de "duración" que gasta la "aceleración" o "desaceleración" de la animación. Un mensaje de "actualizar propiedades" 406 proporciona una actualización para propiedades de un reloj existente. "Actualizar parámetros de propiedades" 408 incluye el reloj objetivo (es decir, el reloj que tiene las propiedades a ser actualizadas), y las propiedades y valores actualizados. Un mensaje de "agregar intervalo" 410 instruye al motor de tiempo de nivel inferior para agregar un intervalo a una animación existente (objeto) e incluye "Agregar Parámetros de Intervalo" 412 que identifica un reloj objetivo y propiedades del intervalo que está siendo agregado al reloj objetivo. El protocolo incluye un mensaje de "Reestablecer el Parámetro de Salto de Sincronización" 414 que se utilizan para mantener la sincronización entre el subsistema de animación de nivel superior 122 y el subsistema de animación de nivel inferior 148. Como se implementa esto es un asunto de un diseño de sistema particular. Al menos en una implementación, el procedimiento de sincronización se describe a través del siguiente ejemplo. Si el subsistema de animación de nivel inferior 148 está controlando un archivo de vídeo y detecta que el vídeo está fallando (debido a, por ejemplo, tráfico de red), entonces el subsistema de animación de nivel inferior 148 envía un mensaje y parámetro(s) de "sincronizar con falta de medios" (ver Figura 4b, más adelante) al subsistema de animación de nivel superior 122 y almacena el hecho que ha ocurrido una falta y la magnitud de la falta. Cuando el sistema de animación de nivel superior 122 (específicamente, el motor de nivel superior 212) termina actualizando los intervalos para tomar la falta en cuenta, envía el mensaje de "restablecer falta de sincronización" 414 y un "Restablecer Parámetro de Falta de de Sincronización" 416 para decir al subsistema de animación de nivel inferior 148 que reinicien el equivalente de falta a cero.
Para otra información en este mensaje de protocolo particular, por favor referirse a la Figura 4b, más adelante. Un mensaje de "Remover Todos los Intervalos" 418 se puede enviar al motor de tiempo del nivel inferior 222 para remover cualquiera de los intervalos existentes asociados con un reloj particular. El reloj objetivo es identificado en un "Remover Todo el Parámetro de Intervalos" 420. Un mensaje de "eliminar reloj" 422 también es incluido en el protocolo de comunicación y se envía al motor de tiempo de nivel inferior 222 para remover un reloj objetivo, identificado en un "Eliminar Parámetro de Reloj" 424. La Figura 4B ilustra una tabla 430 que describe un mensaje en el protocolo de comunicación que se envía desde el motor de tiempo de nivel inferior 222 hacia el motor de tiempo de nivel superior 212. Un mensaje de "Sincronizar con Falta de Medios" 432 proporciona al motor de tiempo del nivel superior 212 una cantidad que el motor de tiempo de nivel superior 212 pondría en falta en un reloj particular para sincronizarse con un componente de medios. ***NOTA: ¿Esto está cerca de lo correcto? *** "Sincronizar con Parámetros de Falta de Medios" 434 incluye un reloj objetivo que es el reloj para la falta, y una cantidad de falta que identifica la magnitud de la falta. El mensaje envía datos de regreso al sistema de animación de nivel superior 122 desde el subsistema de animación de nivel inferior. Esto es necesario debido a la existencia de una latencia en el canal de comunicación 204. Un caso en lo que esto puede suceder es cuando un usuario activa un comando de "pausa". Ya que el sistema se comunica uno con otro asincrónicamente, el subsistema de animación de nivel inferior puede procesar un número de marcos antes de que el subsistema de animación de nivel superior pueda adquirir el subsistema de animación de nivel inferior. Como un resultado, el sistema de nivel inferior corre a lo largo. Pero esto cuidando el mensaje de "Sincronizar con Falta de Medios" 432 que obtiene información para el subsistema de animación de nivel superior 122 que el reloj asociado con la animación necesita para "faltar" o "sincronizarse" con el reloj de nivel inferior 224 para obtener los subsistemas de regreso en la sincronización. La Figura 4c ilustra una tabla 440 que describe mensajes enviados del los objetos de animación de nivel superior 210 a los objetos de animación de nivel inferior 220. La tabla 440 incluye un mensaje de "crear animación" 442 que ordena al subsistema de animación de nivel inferior 148 para crear un nuevo objeto de animación. "Crear Parámetros de Animación" 444 incluye un tipo de valor de resultado que identifica el tipo de la propiedad siendo animada, una función de animación, una función de alineación y un reloj de control. Por ejemplo, si el ángulo de una transformación de rotación está animado, entonces el tipo de resultado es "número de punto de flotación de doble precisión". Si uno de los puntos finales de una línea está animado, entonces el tipo de resultado es "punto". Si el color de un rectángulo está animado, entonces el tipo de resultado es "color". Las funciones de animación son conocidas en la técnica y tal función de animación se puede designar aquí. Un ejemplo de una función de animación simple es "de 5 a 10". Esto significa que el inicio del intervalo, la función de animación genera un valor de 5, al final genera uno de 10, y a la mitad a través de la función de animación genera un valor de 7.5, etc. Una función de animación más compleja es "de 5 a 6 a 10". Aquí, el valor de resultado de la mitad a través de la animación es 6. La función se puede hacer más compleja al especificar no solo una lista de valores, sino una lista de veces en la cual la función debe generar esos valores (con todo estando interpolado). Se nota que las funciones de animación descritas anteriormente son solo ilustrativas y no pretenden limitar el alcance de las reivindicaciones anexas a estas funciones de animación. Cualquier operación de computadora que se puede considerar ser una "función de animación" se puede utilizar en este contexto. Finalmente, como se discutió previamente, el reloj de control para un nuevo objeto de animación puede ser un nuevo reloj o puede ser un reloj existente que puede o no controlar uno o más otros objetos de animación. La tabla 440 también incluye un mensaje de "actualizar animación" 446 que proporciona información para actualizar una animación existente en el subsistema de animación del nivel inferior 148. "Actualizar Parámetros de Animación" 448 incluye una animación objetivo (es decir la animación a ser actualizada), y las propiedades actualizadas (propiedades para ser actualizadas y valores actualizados para las propiedades). Un mensaje de "Crear Colección de Animación" 450 identifica múltiples animaciones en los objetos de animación de nivel inferior [base de datos] 220 que van a ser agrupados como una colección. Un "crear parámetro de colección de animación" 452 identifica una lista inicial de animaciones que van a ser agrupadas como una colección. Las colecciones de animación también son bien conocidas en la técnica.- Las colecciones de animación existen para permitir a un desarrollador crear comportamientos de animación complejos que no pueden ser expresados con una interpolación lineal individual. Por ejemplo, una animación puede mover un punto hacia arriba y hacia abajo repetidamente, mientras una segunda animación puede mover un punto a la derecha. Cuando ambas animaciones están funcionando juntas, el punto parece seguir un patrón de onda hacia la derecha. Las colecciones de animación se pueden evitar, de ahí la existencia de los mensajes en el protocolo descrito más adelante. Un mensaje de "agregar animación a la colección" 454 le dice al sistema de nivel inferior que agregue una animación ideatificada en un "agregar animación al parámetro de colección" 456 para una colección de animación que también es identificada en el "agregar animación al parámetro de colección" 456. Similarmente, un mensaje de "remover animación de la colección" 458 se incluye con un "remover animación del parámetro de colección" 460 que identifica una colección de animación objetivo y una animación en la colección que se va a remover de la colección. La tabla 440 también incluye un mensaje de "Crear Valor Estático" 462. Se utiliza un valor estático en el caso en donde el subsistema de animación de nivel inferior 148 no puede soportar una animación proporcionada por la aplicación 120. Esta situación se describe en más detalla más adelante, con respecto a la Figura 6. Asociado con el mensaje de "crear valor estático" 462 se encuentra un "crear parámetro de valor estático" 464 que identifica un tipo de valor y un valor inicial para el valor estático que se crea. Un mensaje de "actualizar valor estático" 466 proporciona una actualización a un valor estático. Un "actualizar parámetro de valor estático" 468 identifica un objeto de valor estático objetivo y un nuevo valor para el objeto de valor estático así identificado. Los mensajes y parámetros en la Figura 4 (a-c) proporcionan una forma modernizada, eficiente en la cual las animaciones presentadas a través de un subsistema de animación de nivel inferior 148 pueden ser asincrónicamente controladas a través de un subsistema de animación de nivel superior. De ahí uno o más mensajes no tienen que ser enviados en cada marco de renovación de presentación, la presentación puede presentar marcos en una velocidad constante alta. Al mismo tiempo, el sistema de nivel superior puede utilizar tiempo de procesamiento mientras se hace disponible para proporcionar datos al sistema de nivel superior, es decir una velocidad de renovación más lenta y variada.
Implementación Metodológica Ilustrativa: Sistema Completamente Conectado La Figura 5 es un diagrama de flujo que ilustra una implementación metodológica ilustrativa de un procedimiento de animación en un sistema de presentación que tiene un sistema de animación de nivel superior completamente conectado y un sistema de animación de nivel inferior. El escenario ilustrado en la Figura 5 es: un desarrollador de aplicación desea dibujar una línea directa animada que va desde un punto de ancla fijo hacia un segundo punto que se mueve con el tiempo. El desarrollador necesita proporcionar tres cosas: (1) la operación de presentación (por ejemplo dibujar una línea entre el punto estático A y ei punto animado B); (2) la función de animación (por ejemplo, el punto B va desde (0,0) hasta (100,100); y (3) el tiempo de la animación (por ejemplo, inician 5 segundos y carre por 10 segundos, después se repite una vez que va hacia atrás). La Figura 5 muestra la respuesta del subsistema de animación de nivel superior 122 para la aplicación 120 que contiene la información discutida anteriormente. El bloque 500, el subsistema de animación de nivel superior 122 recibe la información de la aplicación 120. El subsistema de animación de nivel superior 122 crea un objeto de presentación en el bloque 502, el objeto de presentación representando una línea. En el bloque 504, el subsistema de animación de nivel superior 122 crea una función de animación que genera un valor desde (0,0) hasta (100,100). En el bloque 506, el subsistema de animación de nivel superior 122 crea un reloj que inicia en 5 segundos, corre por 10 segundos y después corre hacia atrás. El subsistema de animación de nivel inferior 148 puede soportar estos objetos, así el subsistema de animación de nivel superior 120 envía mensajes al subsistema de animación de nivel inferior 148 (bloque 508) que genera tráfico en el canal de comunicación 204 que se ¡lustra en los bloques 510-518. Bloque 510: Crear Reloj 1; Establecer parámetros para el reloj 1 , duración = 10. Bloque 512: Agregar Intervalo para Reloj 1; Desde "ahora + 5" hasta "ahora+ 5", que va desde t=0 hasta t=10. Bloque 514: Agregar Intervalo para Reloj 1; Desde "ahora + 15" hasta "ahora + 25", que va desde t=10 hacia abajo hasta t=1. Bloque 516: Crear Animación 1; Establecer parámetros para la animación 1, desde (0,0) hasta (100,100), reloj = reloj 1. Bloque 518: Crear instrucción de [Dibujar Línea] que hace referencia a la animación 1. En este ejemplo, la función de Dibujar Línea es representativa de cualquier instrucción de dibujo soportada por un protocolo para presentar animaciones. La instrucción de Dibujar Línea solo es ilustrativa. Después de que los mensajes sean transmitidos desde el subsistema de animación de nivel superior 122 hacia el subsistema de animación de nivel inferior 148, el subsistema de animación de nivel inferior 148 corre de forma independiente del subsistema de nivel superior 148, y actualiza la posición de la línea en la velocidad de marco posible más alta. Ningún otro mensaje necesita enviarse entre los dos subsistemas 122, 148. Como se ha mostrado, el protocolo de comunicación introducido aquí_optimiza el canal de comunicación 204 al simplificar la cantidad de datos que se ponen dentro de canal de comunicación 204. Si los mensajes cortos y los parámetros discutidos anteriormente no se utilizaron, un número grande de operaciones debe ser enviado a través de la tubería para sincronizar los sistemas. Pero, en resumen, lo que se introduce en el canal de comunicación 204 es una lista de Intervalos para un número de relojes. Para un reloj, un intervalo se define, digamos, como 'entre tiempo 0 y tiempo 10, el reloj va de 0 a 10' (esto define un reloj en tiempo real). O, puede ser que el reloj se desee que corra en dos veces lentamente. En este caso, después 'entre tiempo 0 y tiempo 10, el reloj va de cero hasta 5'. Al definir una lista de intervalos de tiempo, cada operación en un reloj se puede definir. Por ejemplo, una operación de pausa se puede definir con un intervalo de reloj: 'en tiempo cero, el reloj es 10 y en tiempo 10, el reloj es 10'. Por lo tanto, toda operación se puede expresar como un intervalo lineal.
Implementación Metodológica Ilustrativa: Sistema Conectado en Parte La Figura 6 es un diagrama de flujo que ilustra una implementación metodológica de un procedimiento de animación en un sistema de presentación que tiene un sistema de animación de nivel superior parcialmente conectado y un sistema de animación de nivel inferior. El escenario para este ejemplo es: un desarrollador de aplicación que desea dibujar una línea directa animada que va desde de un punto de ancla fijo a un segundo punto que se mueve con el tiempo en un camino de costumbre. El desarrollador necesita proporcionar lo siguiente: (1) la operación de presentación (por ejemplo dibujar una línea entre el puntos estático A y el punto animado B); (2) la función de animación de costumbre (por ejemplo, llamar a la animación de costumbre 1 para calcular la posición del punto B); y (3) el tiempo de animación (por ejemplo, iniciar en 5 segundos y correr por 10 segundos, después repetir una vez que va hacia atrás). El subsistema de animación de nivel superior 122 recibe la información de aplicación en el bloque 600. En respuesta a la solicitud de aplicación, el subsistema de animación de nivel superior 122 crea un objeto de presentación (bloque 602) que representa la línea, una función de animación (bloque 604) que está configurado para llamar al código de usuario de regreso 202, y un reloj (bloque 606) que inicia en 5 segundos, corre por 10 segundos y después regresa hacia atrás. Los mensajes apropiados se envían al subsistema de animación del nivel inferior 148 en el bloque 608. Ya que la animación de costumbre requiere el código de usuario, no puede ser procesada a través del subsistema de nivel inferior, así que esta genera el siguiente tráfico inicial en el canal de comunicación: Bloque 610: Crear Valor de Punto Estático 1. Bloque 612: Crear Instrucciones de [Dibujar Línea] que hacen referencia al valor de punto 1. (Instrucción de Dibujar Línea solo ilustrativa; ver anteriormente). En el bloque 614, el subsistema de animación de nivel inferior 148 recibe los datos transmitidos desde el subsistema de animación de nivel superior 122. El subsistema de animación de nivel inferior 148 trata la animación como una línea estática. En cada marco después de la transmisión inicial de datos, el subsistema de animación de nivel 'superior 122 llama al código de usuario 202 para calcular la posición del punto B (bloque 620) y recibe el nuevo valor de posición en el bloque 622. El subsistema de animación de nivel superior 122 después envía el siguiente mensaje en el canal de comunicación 204 al subsistema de animación de nivel inferior para actualizar el valor del valor de punto estático 1: Bloque 626: Actualizar Valor de Punto Estático con el Nuevo Valor para el Punto B.
AMBIENTE DE COMPUTO ILUSTRATIVO Los varios componentes y funcionalidad aquí descrita se ¡mplementan con un sistema de cómputo. La Figura 7 muestra componentes de ejemplo típico de tal sistema de cómputo, es decir, una computadora, referida a través del número de referencia 700. Los componentes mostrados en la Figura 7 solo son ejemplos, y no pretenden sugerir ninguna limitación al alcance de funcionalidad de la invención; la invención no necesariamente depende de las características mostradas en la Figura 7. Generalmente, se pueden utilizar varias configuraciones de sistema de cómputo de propósito general o propósito especial. Los ejemplos de los sistemas de cómputo bien conocidos, ambientes, y/o configuraciones que pueden ser adecuados para utilizarse con la invención incluye, pero no se limitan a, computadoras personales, computadoras de servidor, dispositivos portátiles o móviles, sistemas de multiprocesador, sistemas a base de microprocesador, cajas de TV por cable, electrónica de consumidor programable, PCs de red, minlcomputadoras, macrocomputadoras, ambientes de cómputo distribuidos, que incluyen cualquiera de los sistemas o dispositivos anteriores, y similares. La funcionalidad de las computadoras es representada en muchos casos a través de instrucciones ejecutables por computadora, tal como módulos de programa, que se ejecutan a través de las computadoras. Generalmente, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc., que realizan tareas particulares e ¡mplementan tipos de datos abstractos particulares. Las tareas también pueden realizarse a través de dispositivos de procesamiento remoto que están enlazados a través de una red de comunicaciones. En un ambiente de cómputo distribuido, los módulos de programa se pueden localizar tanto en medios de almacenamiento de computadora local y remota.
Las instrucciones y/o módulos de programa se almacenan en diferentes momentos en varios medios legibles por computadora que son parte de la computadora o que pueden leerse a través de la computadora. Los programas típicamente son distribuidos, por ejemplo, en discos flexibles, CD-ROMs, DVD, o alguna de forma de medios de comunicación tal como una señal modulada. De ahí, son instalados o cargados en la memoria secundaria de una computadora. En la ejecución, son cargados al menos en parte en la memoria electrónica primaria de la computadora. La invención aquí descrita incluye estos y varios otros tipos de medios legibles por computadora cuando tal memoria contiene programas de instrucciones, y/o módulos para implementar los pasos de filtros más adelante en conjunto con un microprocesador u otros procesadores de datos. La invención también incluye a la misma computadora cuando está programada de acuerdo con los métodos y técnicas descritas más adelante. Para propósitos de ilustración, los programas y otros componentes de programa ejecutables tal como el sistema operativo se ilustran aquí como bloques separados, aunque se reconoce que tales programas y componentes residen en varios momentos en diferentes componentes de almacenamiento de la computadora, y se ejecutan a través del procesador(es) de datos de la computadora. Con referencia a la Figura 7 los componentes de la computadora 700 pueden incluir, pero no se limitan a, una unidad de procesamiento 702, una memoria de sistema 704, y un conductor común de sistema 706 que acopla varios componentes del sistema, incluyendo la memoria de sistema a la unidad de procesamiento 702. El conductor común de sistema 706 puede ser cualquiera de los varios tipos de estructuras de conductor común incluyendo un conductor común de memoria o controlador de memoria, un conductor común periférico, y un conductor común local utilizando cualquiera de una variedad de arquitecturas de conductor común. A manera de ejemplo, y no de limitación dichas arquitecturas incluyen el conductor común de Arquitectura Estándar de la Industria (ISA), conductor común de Arquitectura de Microcanal (MCA), conductor común de ISA mejorado (EISA), conductor común local de Asociación de Estándares de Video Electrónica (VESA), y conductor común de interconexión de componente periférico (PCI) también conocido como conductor común de Mezanine. La computadora 700 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora pueden ser cualesquiera medios disponibles que puedan ser accedidos por la computadora 700 e incluyen medios tanto volátiles como no volátiles, medios removibles como no removióles. A manera de ejemplo, y no de limitación, los medios legibles por computadora pueden comprenden medios de almacenamiento de computadora y medios de comunicación. "Medios de almacenamiento de computadora" incluyen medios tanto volátiles como no volátiles, removibles como no removibles, implementados en cualquier método o tecnología para almacenar información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento de computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria instantánea u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento de disco óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda ser utilizado para almacenar la información deseada y que pueda ser acceder por la computadora 700. Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda de vehículo u otro mecanismo de transporte e incluyen cualquiera medio de entrega de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características fijadas o cambiadas de tal manera que codifica la información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios mediante cables, tales como una red con cables o una conexión de cable directo, y medios inalámbricos tales como medios acústicos, RF, infrarrojos y otros medios inalámbricos. También se deben incluir dentro del alcance de medios legibles por computadora, combinaciones de cualquiera de los anteriores. La memoria de sistema 704 incluye medios de almacenamiento de computadora en la forma de memoria volátil y/o no volátil tal como memoria de solo lectura (ROM) 708 y memoria de acceso aleatorio (RAM) 710. Un sistema de entrada/salida básico 712 (BIOS), conteniendo las rutinas básicas que ayudan a transferir información entre elementos dentro de la computadora 700, tal como durante el arranque, típicamente está almacenado en la ROM 708. La RAM 710 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles a y/o en realidad son operados a través de la unidad de procesamiento 702. A manera de ejemplo, y no de limitación, la Figura 7 ilustra un sistema operativo 714, programas de aplicación 716, otros módulos de programa 718 y datos de programa 720. La computadora 700 también puede incluir otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles. A manera de ejemplo solamente, la Figura 7 ilustra una unidad de disco duro 722 que lee o escribe a medios magnéticos no removibles, no volátiles, una unidad de disco magnético 724 que lee de o escribe a un disco magnético removible, no volátil 726, y una unidad de disco óptico 728 que lee de o escribe a un disco óptico removible, no volátil 730, tal como un CD-ROM u otros medios ópticos. Otros medios de almacenamiento por computadora removibles/no removibles, volátiles/no volátiles que pueden ser utilizados en el ambiente operativo ilustrativo incluyen, pero no se limitan a, casetes de cinta magnética, tarjetas de memoria instantánea, discos versátiles digitales, vídeo cinta digital, RAM de estado sólido, ROM de estado sólido, y similares. La unidad de disco duro 722 típicamente está conectada al conductor común de sistema 706 a través de una interfase de memoria no removible, tal como la interfase de medios de datos 732, y la unidad de disco magnético 724 y la unidad de disco óptico 728 típicamente están conectadas ai conductor común de sistema 706 a través de una interfase de memoria removible, tal como la interfase 734. Las unidades y sus medios de almacenamiento de computadora asociados discutidos anteriormente e ilustrados en la Figura 7, proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa, y otros datos para la computadora 700. En la Figura 7, por ejemplo, la unidad de disco duro 722 se ilustra almacenando el sistema operativo 715, programas de aplicación 717, otros módulos de programa 719, y datos de programa 721. Observar que estos componentes pueden ser ya sea iguales a o diferentes del sistema operativo 714, programas de aplicación 716, otros módulos de programa 718, y datos de programa 720. El sistema operativo 715, los programas de aplicación 717, otros módulos de programa 719, y los datos de programa 721 se les proporcionan diferentes números aquí para ¡lustrar que, a un mínimo, son copias diferentes. Un usuario puede introducir comandos e información a la computadora 700 a través de dispositivos de entrada, tales como un teclado 736, y un dispositivo de señalamiento 738, comúnmente denominado como un ratón, seguibola, o almohadilla sensible al tacto. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, una palanca de mandos, almohadilla de juegos, antena parabólica, escáner, o similares. Estos y otros dispositivos de entrada por lo regular están conectados a la unidad de procesamiento 702 a través de una interfase de entrada/salida (l/O) 740 que está acoplada al conductor común de sistema, pero pueden ser conectados a través de otra interfase y estructuras de conductor común, tal como un puerto paralelo, puerto de juegos, o un conductor común en serie universal (USB). Un monitor 742 u otro tipo de dispositivo de presentación también está conectado al conductor común de sistema 706 a través de una interfase, tal como un adaptador de vídeo 744. Además del monitor 742, las computadoras también pueden incluir otros dispositivos de salida periféricos 746 (por ejemplo, bocinas) y una o más impresoras 748, que pueden estar conectadas a través de la interfase de l/O 740. La computadora puede operar en un ambiente en red utilizando conexiones lógicas a una o más computadoras, remotas, tal como un dispositivo de cómputo remoto 750. El dispositivo de cómputo remoto 750 puede ser una computadora personal, un servidor, un enrutador, una PC de red, un dispositivo par u otro nodo de red común, y típicamente incluye muchos o todos los elementos descritos anteriormente con relación a la computadora 700. Las conexiones lógicas ilustradas en la Figura 7 incluyen una red de área local (LAN) 752 y una red de área amplia (WAN) 754. Aunque la WAN 754 mostrada en la Figura 7 es el Internet, la WAN 754 también puede incluir otras redes. Tales ambientes en red son lugares comunes en oficinas, redes de computadora entre empresas, intranets, y similares. Cuando se utiliza en un entorno en red de LAN, la computadora 700 está conectada a la LAN 752 a través de una ¡nterfase de red o adaptador 756. Cuando se utiliza en un ambiente en red de WAN, la computadora 700 típicamente incluye un módem 758 u otros medios para establecer comunicaciones en el Internet 754. El módem 758, el cual puede ser interno o externo, puede ser conectado al conductor común de sistema 706 a través de la interfase de l/O 740, u otro mecanismo apropiado. En un ambiente en red, los módulos de programa ilustrados con relación a la computadora 700, o sus porciones, pueden ser almacenados en el dispositivo de cómputo remoto 750. A manera de ejemplo, y no de limitación, la Figura 7 ilustra programas de aplicación remotos 760 que residen en el dispositivo de cómputo remoto 750. Se apreciará que las conexiones de red mostradas son ilustrativas y se pueden utilizar otros medios para establecer un enlace de comunicaciones entre las computadoras.
Conclusión El protocolo de comunicación para los sistemas y métodos como se describió de esa forma proporcionan una forma para sincronizar un sistema de animación de nivel superior con un sistema de animación de nivel inferior para que el sistema de nivel inferior pueda correr en una velocidad de renovación de marco rápida y constante, mientras el sistema de nivel superior puede correr en una velocidad de marco variable que se optimiza para interactividad. Las gráficas superiores se pueden lograr sin sacrificar ninguna capacidad de interacción. El protocolo también minimiza la cantidad de datos transmitidos entre los dos sistemas de animación, de esa forma ahorra los gastos generales y optimiza el desempeño. Aunque se describen anteriormente detalles de implementaciones y modalidades específicas, tales detalles pretenden satisfacer obligaciones de descripción estatutarias más que limitar el alcance de las siguientes reivindicaciones. De esa forma, la invención como se define por las reivindicaciones no está limitada a las características específicas descritas anteriormente. Más que eso, la invención se reclama en cualquiera de sus formas o modificaciones que caen dentro del alcance apropiado de las reivindicaciones anexas apropiadamente interpretadas de acuerdo con la doctrina de equivalentes.

Claims (26)

  1. REIVINDICACIONES 1. - Un sistema de presentación de animación, que comprende: un subsistema de animación de nivel superior que controla funciones de interacción para el sistema; un subsistema de animación de nivel inferior que controla funciones de presentación para el sistema; al menos un reloj de nivel superior que es referenciado por las operaciones de animación del nivel superior; al menos un reloj de nivel inferior que es referenciados a través de las operaciones de animación de nivel inferior; un canal de comunicaciones para enviar mensajes entre el subsistema de animación de nivel superior y el subsistema de animación de nivel inferior de acuerdo con un protocolo de comunicaciones; y en donde el protocolo de comunicaciones incluye información proporcionada al subsistema de animación de nivel inferior a través del subsistema de animación de nivel superior que designa una animación y especifica cómo la animación va a cambiar en un periodo específico de tiempo, con ello asegurando que el sistema de animación de nivel inferior tenga información para procesar varios marcos de la animación. 2. - El sistema de presentación de animación de acuerdo con la reivindicación 1, en donde las comunicaciones entre el subsistema de animación de nivel superior y el subsistema de animación de nivel inferior son asincrónicas. 3. - El sistema de presentación de animación de acuerdo con la reivindicación 1, en donde: el subsistema de animación de nivel inferior presenta animaciones a una velocidad de renovación de marco de presentación constante; y el subsistema de animación de nivel superior controla interacciones a una velocidad variable que es más lenta que la velocidad de renovación de marco de presentación constante. 4. - El sistema de presentación de animación de acuerdo con la reivindicación 1, en donde el protocolo de comunicación además comprende al menos un mensaje enviado desde el subsistema de animación de nivel inferior hacia el subsistema de animación de nivel superior para controlar la sincronización entre el subsistema de animación de nivel superior y el subsistema de animación de nivel inferior. 5. - El sistema de presentación de animación de acuerdo con la reivindicación 4, en donde un mensaje enviado desde el subsistema de animación de nivel inferior hacia el subsistema de animación de nivel superior además comprende un mensaje de "sincronizar con falta de medios" identifica un reloj objetivo deseado con una animación de una cantidad que el reloj objetivo debe faltar para sincronizar el subsistema de animación de nivel superior con la animación siendo corrida a través del subsistema de animación del nivel inferior. 6. - El sistema de presentación de animación de acuerdo con la reivindicación 1, en donde: el subsistema de animación de nivel superior además comprende un motor de tiempo de nivel superior; el subsistema de animación de nivel inferior que además comprende un motor de tiempo de nivel inferior; y el protocolo de comunicación además comprende los siguientes mensajes parametrizados que se envían desde el motor de tiempo de nivel superior hacia el motor de tiempo de nivel inferior: un mensaje de crear reloj con parámetro de propiedades de reloj iniciales; un mensaje de actualizar propiedades con un parámetro de reloj objetivo y un parámetro de propiedades actualizadas; un mensaje de agregar intervalo con un parámetro de reloj objetivo y un parámetro de propiedades de intervalo; un mensaje de reestablecer falta de sincronización con un parámetro de reloj objetivo; un mensaje de remover todos los intervalos con un parámetro de reloj objetivo; y un mensaje de eliminar reloj con un reloj objetivo para eliminar parámetro. 7. - El sistema de presentación de animación de acuerdo con la reivindicación 1, en donde: el subsistema de animación de nivel superior además comprende una base de datos de objetos de animación de nivel superior; el subsistema de animación de nivel inferior además comprende una base de datos de objeto de animación de nivel inferior; y el. protocolo de comunicación además comprende ios siguientes mensajes parametrizados que se envían desde la base de datos de objetos de animación de nivel superior hacia la base de datos de objetos de animación de nivel inferior: un mensaje de crear animación con un parámetro de tipo de valor de resultado, un parámetro de función de animación y un parámetro de reloj de control; un mensaje de actualizar animación con un parámetro de animación objetivo y un parámetro de propiedades actualizadas; un mensaje de crear animación con un parámetro de tipo de de valor resultado, un parámetro de función de animación y un parámetro de reloj de control; un mensaje de actualizar animación con un parámetro de animación objetivo y un parámetro de propiedades actualizadas; un mensaje de crear colección de animación con una lista de parámetro de animaciones; un mensaje de agregar animación a la colección con un parámetro de colección de animación objetivo y una animación para agregar parámetro; un mensaje de remover animación para la colección con un parámetro de colección de animación objetivo y una animación para remover parámetro; un mensaje de crear valor estático con un parámetro de tipo de valor y un parámetro de valor inicial; y un parámetro de actualizar valor estático con un parámetro de objeto de valor estático objetivo con un nuevo parámetro de valor. 8. - Un método para procesar una aplicación de animación, que comprende: recibir datos de animación de la aplicación de animación en un subsistema de animación de nivel superior; transmitir información de animación desde el subsistema de animación de nivel superior hacia un subsistema de animación de nivel inferior de acuerdo con un protocolo de comunicación a través de un canal de comunicaciones para que el subsistema de animación de nivel inferior pueda presentar una animación asociada con los datos de animación; en donde el protocolo de comunicación se proporciona para designar una animación y para instrucciones con respecto a cómo ia animación debe cambiar en un periodo de tiempo particular para que el subsistema de animación de nivel inferior pueda procesar varios marcos de la animación a una velocidad de renovación de marco de presentación constante mientras el subsistema de animación de nivel superior se ejecuta en una velocidad de renovación variable. 9. - El método de acuerdo con la reivindicación 8, que además comprende el subsistema de animación de nivel superior que recibe al menos un mensaje de protocolo desde el subsistema de animación de nivel inferior para ayudar a mantener un elemento de tiempo en el subsistema de animación de nivel superior sincronizado con al menos un elemento de tiempo en el subsistema de animación de nivel inferior. 10. - El método de acuerdo con la reivindicación 8, en donde el protocolo de comunicación incluye los siguientes mensajes que se envían desde un elemento de tiempo del subsistema de animación de nivel superior hacia un elemento de tiempo del subsistema de animación de nivel inferior: un mensaje para crear un reloj; un mensaje para actualizar propiedades de reloj; un mensaje para agregar un intervalo a un reloj; un mensaje para remover todos los intervalos para un reloj; y un mensaje para eliminar un reloj. 11. - El método de acuerdo con la reivindicación 10, en donde el protocolo de comunicación además incluye los siguientes mensajes que se envían desde un elemento de tiempo del subsistema de animación de nivel superior hacia un elemento de tiempo del subsistema de animación de nivel inferior: un mensaje para reestablecer un valor de falta de sincronización en el subsistema de animación de nivel inferior. 12. - El método de acuerdo con la reivindicación 8, en donde el protocolo de comunicación incluye los siguientes mensajes que se envían desde un elemento de objeto de animación del subsistema de animación del nivel superior hacia un elemento de objeto de animación del subsistema de animación de nivel inferior; un mensaje para crear una animación; un mensaje para actualizar una animación; un mensaje para crear una colección de animación; un mensaje para agregar una animación a una colección de animación; y un mensaje para remover una animación de una colección de animación. 13. - El método de acuerdo con la reivindicación 8, en donde el protocolo de comunicación incluye los siguientes mensajes que se envían desde un elemento de objeto de animación del subsistema de animación del nivel superior hacia un elemento de objeto de animación del subsistema de animación de nivel inferior: un mensaje para crear un valor de presentación estático; y un mensaje para actualizar un valor de presentación estático. 14. - Un sistema, que comprende: un subsistema de animación de nivel superior configurado para recibir información de animación desde una aplicación; un subsistema de animación de nivel inferior configurado para presentar una o más animaciones de acuerdo con la información de animación; un motor de tiempo de nivel inferior configurado para monitorear uno o más relojes de nivel inferior en el subsistema de animación de nivel inferior y para sincronizar los relojes de nivel inferior con uno o más relojes de nivel superior; un motor de tiempo de nivel superior configurado para monitorear uno o más relojes de nivel superior en el subsistema de animación de nivel superior de acuerdo con uno o más objetos de animación de nivel superior y para transmitir mensajes de animación al motor de tiempo de nivel inferior, los mensajes de animación conformándose a un protocolo de comunicación; y en donde los mensajes de animación que se transmiten desde el motor de tiempo de nivel superior hacia el motor de tiempo de nivel inferior designan uno o más objetos de animación y cómo los objetos de animación van a cambiar en un periodo específico de tiempo. 15. - El sistema de acuerdo con la reivindicación 14, en donde el motor de tiempo de nivel inferior sincroniza un reloj de nivel inferior con un reloj de nivel superior al enviar un mensaje de "sincronizar con falta de medios" que identifica el reloj de nivel superior y una cantidad a través de la cual el reloj de nivel superior debe faltar para mantener la sincronización con un reloj de nivel inferior que corresponde al reloj de nivel superior. 16. - El sistema de acuerdo con la reivindicación 14, en donde el protocolo de comunicación además comprende los siguientes mensajes: un mensaje de crear reloj que identifica propiedades de reloj; un mensaje de actualizar propiedades que identifica propiedades de reloj actualizadas; un mensaje de agregar intervalo que agrega un intervalo de tiempo a las propiedades de reloj; un mensaje de remover intervalos que remueve los intervalos de tiempo de las propiedades de reloj; y mensaje de eliminar reloj que elimina un reloj. 17.- El sistema de acuerdo con la reivindicación 14, en donde ei protocolo de comunicación además comprende los siguientes mensajes: un mensaje de crear animación que crea una animación; un mensaje de actualizar animación que actualiza una animación existente; una colección de crear animación que identifica múltiples animaciones a ser agrupadas; un mensaje de agregar animación a la colección que identifica una animación para agregarse a una colección de animación identificada; y un mensaje de remover animación para colección que identifica una animación para removerse de una colección de animación identificada. 18.- El sistema de acuerdo con la reivindicación 14, en donde el protocolo de comunicación además comprende los siguientes mensajes: un mensaje de crear valor estático que identifica un tipo de valor y un valor inicial para presentarse; y un mensaje de actualizar valor estático que identifica un valor estático para actualizar y un nuevo valor para el valor estático. 19. - El sistema de acuerdo con la reivindicación 14, en donde el motor de tiempo de nivel inferior está configurado para enviar un mensaje de sincronización al motor de tiempo de nivel superior de acuerdo con el protocolo de comunicación que identifica un reloj de nivel superior y medida de cómo el reloj de nivel superior debe alterarse para sincronizar el reloj de nivel superior con un reloj de nivel inferior. 20. - El sistema de acuerdo con la reivindicación 14, que además comprende: al menos un objeto de animación de nivel inferior; al menos un objeto de animación de nivel superior configurado para comunicarse con los objetos de animación de nivel inferior a través de los mensajes de protocolo de comunicación para crear y actualizar los objetos de animación de nivel inferior para reflejar los objetos de animación de nivel superior. 21. - Un subsistema de animación de nivel superior en un sistema de presentación de animación, que comprende: uno o más relojes de nivel superior; un motor de tiempo de nivel superior configurado para rastrear uno o más relojes de nivel superior; uno o más objetos de animación que identifican al menos una porción de una animación; medios para transmitir datos de animación a un subsistema de animación de nivel inferior de acuerdo con mensajes incluidos en un protocolo de comunicación; y en donde los mensajes de protocolo de comunicación transmitidos al subsistema de animación de nivel inferior identifican al menos uno de los objetos de animación en el subsistema de animación de nivel inferior y proporciona datos con respecto a cómo los objetos de animación identificados van a cambiar en un periodo específico de tiempo. 22.- El subsistema de animación de nivel superior de acuerdo con la reivindicación 21, en donde el protocolo de comunicación además comprende los siguientes mensajes: un mensaje de crear reloj que identifica propiedades de reloj iniciales; un mensaje de actualizar propiedades que identifica propiedades de reloj actualizadas; un mensaje de agregar intervalo que identifica un intervalo para ser agregado a un reloj; un mensaje de remover todos los intervalos que identifica un reloj del cual todos intervalos van a removerse; y un mensaje de eliminar reloj que identifica un reloj a ser eliminado. 23.- El subsistema de animación de nivel superior de acuerdo con la reivindicación 21, en donde el protocolo de comunicación además comprende los siguientes mensajes: un mensaje de crear animación que describe una animación para crear; y un mensaje de actualizar animación que identifica una animación para actualizarse y propiedades actualizadas. 24. - El subsistema de animación de nivel superior de acuerdo con la reivindicación 21, en donde el protocolo de comunicación además comprende los siguientes mensajes: un mensaje de crear colección de animación que identifica múltiples animaciones que van a ser agrupadas en una colección de animación; un mensaje de agregar animación a colección que identifica una animación para agregarse a una colección de animación identificada; y un mensaje de remover animación de la colección que identifica una animación para removerse de una colección de animación identificada . 25. - El subsistema de animación de nivel superior de acuerdo con la reivindicación 21, en donde el protocolo de comunicación además comprende los siguientes mensajes: un mensaje de crear valor estático que identifica un tipo de valor y un valor inicial para presentarse; y un mensaje de actualizar valor estático que identifica un valor estático para actualizar y un nuevo valor para el valor estático. 26. - El subsistema de animación de nivel inferior en un sistema de presentación de animación, que comprende: uno o más relojes de nivel inferior; uno o más objetos de animación de nivel inferior que identifican al menos una porción de una animación; un motor de tiempo de nivel inferior configurado para rastrear uno o más relojes de nivel inferior con respecto a uno o más objetos de animación de nivel inferior; en donde los relojes de nivel inferior y los objetos de animación del nivel inferior se crean y actualizan a través de los mensajes de protocolo de comunicación recibidos a una velocidad variable desde un subsistema de animación de nivel superior en una forma que proporciona el subsistema de animación de nivel inferior con varios marcos de datos de animación que se pueden presentar a una velocidad de renovación de marco de presentación alta, constante.
MXPA06003356A 2003-10-24 2004-07-22 Protocolo de comunicacion para sincronizar sistemas de animacion. MXPA06003356A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/692,673 US7034834B2 (en) 2003-10-24 2003-10-24 Communication protocol for synchronizing animation systems
PCT/US2004/023626 WO2005045567A2 (en) 2003-10-24 2004-07-22 Communication protocol for synchronizing animation systems

Publications (1)

Publication Number Publication Date
MXPA06003356A true MXPA06003356A (es) 2006-06-08

Family

ID=34522189

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA06003356A MXPA06003356A (es) 2003-10-24 2004-07-22 Protocolo de comunicacion para sincronizar sistemas de animacion.

Country Status (11)

Country Link
US (3) US7034834B2 (es)
EP (2) EP2461250A1 (es)
JP (1) JP4638442B2 (es)
KR (1) KR101075378B1 (es)
CN (1) CN101416221B (es)
AU (2) AU2004287128B2 (es)
BR (1) BRPI0414504A (es)
CA (1) CA2537136C (es)
MX (1) MXPA06003356A (es)
RU (1) RU2363050C2 (es)
WO (1) WO2005045567A2 (es)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9722766D0 (en) 1997-10-28 1997-12-24 British Telecomm Portable computers
US7469381B2 (en) 2007-01-07 2008-12-23 Apple Inc. List scrolling and document translation, scaling, and rotation on a touch-screen display
US7250939B2 (en) 2002-03-19 2007-07-31 Aol Llc Display motion multiplier
US7034834B2 (en) * 2003-10-24 2006-04-25 Microsoft Corporation Communication protocol for synchronizing animation systems
US8510662B1 (en) * 2005-06-27 2013-08-13 Oracle America, Inc. Effects framework for GUI components
US7450130B2 (en) * 2005-09-14 2008-11-11 Microsoft Corporation Adaptive scheduling to maintain smooth frame rate
US8130226B2 (en) 2006-08-04 2012-03-06 Apple Inc. Framework for graphics animation and compositing operations
US9019300B2 (en) 2006-08-04 2015-04-28 Apple Inc. Framework for graphics animation and compositing operations
US8234392B2 (en) 2006-11-17 2012-07-31 Apple Inc. Methods and apparatuses for providing a hardware accelerated web engine
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US7872652B2 (en) * 2007-01-07 2011-01-18 Apple Inc. Application programming interfaces for synchronization
US7844915B2 (en) * 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US20080168402A1 (en) * 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US8813100B1 (en) 2007-01-07 2014-08-19 Apple Inc. Memory management
US8656311B1 (en) 2007-01-07 2014-02-18 Apple Inc. Method and apparatus for compositing various types of content
US7903115B2 (en) * 2007-01-07 2011-03-08 Apple Inc. Animations
US8321593B2 (en) * 2007-01-08 2012-11-27 Apple Inc. Time synchronization of media playback in multiple processes
US8643653B2 (en) * 2007-06-08 2014-02-04 Apple Inc. Web-based animation
US8416196B2 (en) 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8174502B2 (en) * 2008-03-04 2012-05-08 Apple Inc. Touch event processing for web pages
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
WO2010085491A1 (en) * 2009-01-20 2010-07-29 Pvt Solar, Inc. Method and device for monitoring operation of a solar thermal system
US20100207950A1 (en) * 2009-02-17 2010-08-19 Microsoft Corporation Defining simple and complex animations
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US9311112B2 (en) * 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8566044B2 (en) * 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
FR2956547B1 (fr) * 2010-02-15 2012-09-14 Sagem Wireless Procede et un systeme de transfert d'une image entre deux appareils de telephonie mobile
US10216408B2 (en) 2010-06-14 2019-02-26 Apple Inc. Devices and methods for identifying user interface objects based on view hierarchy
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US8884970B2 (en) 2011-09-09 2014-11-11 Microsoft Corporation Aligning script animations with display refresh
US9196075B2 (en) 2011-11-14 2015-11-24 Microsoft Technology Licensing, Llc Animation of computer-generated display components of user interfaces and content items
WO2013185111A2 (en) 2012-06-07 2013-12-12 Apple Inc. Methods and apparatus for synchronization among integrated circuits within a wireless network
RU2540786C2 (ru) * 2013-01-11 2015-02-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ и система динамической генерации трехмерных анимационных эффектов
KR101732295B1 (ko) 2013-03-15 2017-05-02 애플 인크. 멀티드롭 디지털 버스를 위한 방법 및 장치
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US9858899B2 (en) * 2013-06-13 2018-01-02 Microsoft Technology Licensing, Llc Managing transitions of adaptive display rates for different video playback scenarios
US10157593B2 (en) 2014-02-24 2018-12-18 Microsoft Technology Licensing, Llc Cross-platform rendering engine
US10085224B2 (en) 2014-11-19 2018-09-25 Apple Inc. Methods and apparatus for synchronization of media playback within a wireless network
CN105468358B (zh) 2015-11-17 2019-11-05 腾讯科技(深圳)有限公司 一种移动游戏的数据处理方法以及装置
CN113012027A (zh) * 2019-12-19 2021-06-22 深圳市万普拉斯科技有限公司 动画刷新请求控制方法、装置、计算机设备和存储介质
CN113778425A (zh) * 2020-05-22 2021-12-10 永中软件股份有限公司 基于canvas实现在浏览器中播放ppt动画的方法
CN115878065B (zh) * 2023-02-16 2023-05-23 青岛意想意创技术发展有限公司 互动显示单元构成的互动系统的控制方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852449A (en) * 1992-01-27 1998-12-22 Scientific And Engineering Software Apparatus for and method of displaying running of modeled system designs
US5867175A (en) * 1996-05-24 1999-02-02 Microsoft Corporation Method and apparatus for scriping animation
US6563503B1 (en) * 1999-05-07 2003-05-13 Nintendo Co., Ltd. Object modeling for computer simulation and animation
US6924807B2 (en) * 2000-03-23 2005-08-02 Sony Computer Entertainment Inc. Image processing apparatus and method
US7038690B2 (en) * 2001-03-23 2006-05-02 Microsoft Corporation Methods and systems for displaying animated graphics on a computing device
US6919900B2 (en) * 2001-03-23 2005-07-19 Microsoft Corporation Methods and systems for preparing graphics for display on a computing device
US7161599B2 (en) * 2001-10-18 2007-01-09 Microsoft Corporation Multiple-level graphics processing system and method
CN1203418C (zh) * 2001-12-30 2005-05-25 利文劲 一种在互联网上实现交互式动画系统的方法
US7034834B2 (en) * 2003-10-24 2006-04-25 Microsoft Corporation Communication protocol for synchronizing animation systems
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム

Also Published As

Publication number Publication date
CN101416221B (zh) 2012-09-05
CA2537136C (en) 2011-05-10
WO2005045567A2 (en) 2005-05-19
AU2010200148A1 (en) 2010-02-04
KR20060126919A (ko) 2006-12-11
CN101416221A (zh) 2009-04-22
US20060061576A1 (en) 2006-03-23
US7436409B2 (en) 2008-10-14
US20050088443A1 (en) 2005-04-28
EP1676183A2 (en) 2006-07-05
BRPI0414504A (pt) 2006-11-07
US7265758B2 (en) 2007-09-04
AU2004287128A1 (en) 2005-05-19
RU2006113603A (ru) 2007-11-27
AU2004287128B2 (en) 2010-02-18
AU2010200148B2 (en) 2011-08-25
EP1676183A4 (en) 2009-11-18
JP4638442B2 (ja) 2011-02-23
KR101075378B1 (ko) 2011-10-24
US20060103656A1 (en) 2006-05-18
US7034834B2 (en) 2006-04-25
EP2461250A1 (en) 2012-06-06
CA2537136A1 (en) 2005-05-19
JP2007519072A (ja) 2007-07-12
WO2005045567A3 (en) 2009-02-19
RU2363050C2 (ru) 2009-07-27

Similar Documents

Publication Publication Date Title
MXPA06003356A (es) Protocolo de comunicacion para sincronizar sistemas de animacion.
JP7446468B2 (ja) ビデオ特殊効果の処理方法、装置、電子機器及びコンピュータプログラム
EP3357253B1 (en) Gapless video looping
US7667704B2 (en) System for efficient remote projection of rich interactive user interfaces
US5748187A (en) Synchronization control of multimedia objects in an MHEG engine
JP2009501388A (ja) アニメーション間の滑らかな遷移
CN111818120A (zh) 端云用户交互方法、系统及相应设备、存储介质
US5608651A (en) Method and apparatus for scheduling and mixing media in a multi-media environment
US9214005B2 (en) Methods and systems for overriding graphics commands
US20140297715A1 (en) Server side video screen capture
US8982137B2 (en) Methods and systems for overriding graphics commands
US9137320B2 (en) Methods and systems for overriding graphics commands
JP2001006001A (ja) 三次元表現制御システムと方法およびその処理プログラムを記録した記録媒体
JP7293370B2 (ja) オーディオデジタルコンポーネントの複数のバージョンの生成
CN118118530A (zh) 音频数据共享方法、装置、设备和介质
Käppner et al. Computational models for distributed multimedia applications
JP2002099929A (ja) 対話型仮想三次元空間動画情報および伝送方法および再生装置および再生方法
KR20020059897A (ko) 인터넷 상에서의 실시간 가상현실모델링(3d) 자동 생성프로그램 시스템 및 비즈니스 모델.

Legal Events

Date Code Title Description
FG Grant or registration