Протокол связи для синхронизации анимационных систем

Иллюстрации

Показать все

Изобретение относится к анимационным системам и, в частности, к протоколу связи для поддержания информационной и временной синхронизации между множеством анимационных систем. Техническим результатом изобретения является повышение эффективности обмена требуемыми данными в анимационной системе. Предложен протокол связи, который управляет асинхронным обменом данными между высокоуровневой анимационной системой и низкоуровневой анимационной системой. Высокоуровневая анимационная система имеет переменную среднюю частоту кадров и оптимизирована для интерактивности. Низкоуровневая анимационная система имеет постоянную высокую частоту кадров и оптимизирована для высокой частоты обновления кадров. Протокол связи включает в себя сообщения, которые могут быть отправлены высокоуровневой анимационной системой в низкоуровневую анимационную систему, чтобы описать анимацию и то, каким образом анимация должна изменяться за заданный период времени. Как результат, низкоуровневая система может отображать анимацию при высокой скорости обновления, даже если анимационные данные не принимаются от высокоуровневой системы для каждого кадра. 5 н. и 21 з.п. ф-лы, 7 ил.

Реферат

Область техники, к которой относится изобретение

Системы и способы, описанные в материалах настоящей заявки, в целом относятся к анимационным системам, а более точно к протоколу связи для поддержания информационной и временной синхронизации между множеством анимационных систем.

Предшествующий уровень техники

Пользовательские ожидания относительно качества графики, имеющие отношение к видеоиграм, сетевым веб-сайтам, мультимедийным презентациям или тому подобному, значительно возросли в последние годы. В результате, этот высокий уровень ожиданий ставит постоянно увеличивающиеся задачи разработчикам видео/анимационных систем и приложений.

Интерактивные анимационные приложения представляют специальное рассмотрение, поскольку две анимационные системы (например, приложение, сохраненное в локальной или удаленной памяти, и система устройства отображения) должны взаимодействовать друг с другом, чтобы обеспечивать пользовательское впечатление высокого качества. Здесь существует проблема, так как одна анимационная система (то есть приложение, сохраненное в памяти) по большей части связана с интерактивностью с пользователем, тогда как другая анимационная система (то есть система устройства отображения) преимущественно связана с аспектами визуализации, такими как частота обновления. Эти конкурирующие интересы должны быть согласованы, чтобы обеспечить требуемое пользовательское впечатление.

Сущность изобретения

Описаны системы и способы, которые включают в себя две отдельные анимационные системы. Высокоуровневая анимационная система (например, приложение) преимущественно связана с интерактивностью и сложной структурой тактирования и, следовательно, оптимизирована для высокой интерактивности. Низкоуровневая анимационная система (например, устройство отображения) преимущественно связана с частотой обновления визуализации и, таким образом, оптимизирована для высокой частоты обновления кадра. Обеспечение множества отдельных анимационных систем предоставляет анимации возможность выполняться при предопределенной частоте обновления изображения без ущерба для интерактивности или наоборот.

Две анимационные системы работают асинхронно, так что каждая система может лучше сосредоточиться на своей первичной функции в ее собственной структуре тактирования. Чтобы оптимизировать пользовательское впечатление, две анимационные системы должны быть синхронизированы. В последовательности операций синхронизации, описанной в материалах настоящей заявки, высокоуровневая анимационная система и низкоуровневая анимационная система обмениваются данными (например, данными средства создания тактовых импульсов (тактового генератора), данными анимационной функции и т.д.) с использованием протокола связи, разработанного специально для этой цели.

Протокол связи, введенный в материалах настоящей заявки, обеспечивает эффективный способ для обмена требуемыми данными. Взамен отправки большого объема данных для каждого кадра протокол связи предусматривает отправку только небольшого объема данных, касающихся того, каким образом анимации предполагается изменяться за заданный период времени. В дополнение к экономии издержек за счет системных операций протокол обеспечивает, что низкоуровневая анимационная система имеет в распоряжении информацию, чтобы обрабатывать несколько кадров анимации, что имеет результатом отсутствие кадров визуализации, являющихся удаленными из-за нехватки данных обновления.

Краткое описание чертежей

Более полное понимание примерных способов и устройств настоящего изобретения может быть получено посредством ссылки на последующее подробное описание, рассматриваемое в сочетании с прилагаемыми чертежами, на которых:

Фиг.1 - структурная схема системы сервер-клиент, включающей в себя анимационные подсистемы.

Фиг.2 - структурная схема примерной архитектуры системы визуализации анимации.

Фиг.3 - блок-схема последовательности операций, изображающая методологическую реализацию основного режима работы факторизованной анимационной/визуализирующей системы.

Фиг.4a - изображение сообщений и параметров протокола связи, передаваемых из высокоуровневого средства тактирования в низкоуровневое средство тактирования, чтобы синхронизировать высокоуровневую анимационную систему с низкоуровневой анимационной системой.

Фиг.4b - изображение сообщений и параметров протокола связи, передаваемых из низкоуровневого средства тактирования в высокоуровневое средство тактирования, чтобы синхронизировать высокоуровневую анимационную систему с низкоуровневой анимационной системой.

Фиг.4c - изображение сообщений и параметров протокола связи, передаваемых от высокоуровневых анимационных объектов низкоуровневым анимационным объектам, чтобы синхронизировать высокоуровневую анимационную систему с низкоуровневой анимационной системой.

Фиг.5 - блок-схема последовательности операций, изображающая примерную методологическую реализацию процесса анимации в системе визуализации, содержащей полностью связанные высокоуровневую анимационную систему и низкоуровневую анимационную систему.

Фиг.6 - блок-схема последовательности операций, изображающая примерную методологическую реализацию процесса анимации в системе визуализации, содержащей частично связанные высокоуровневую анимационную систему и низкоуровневую анимационную систему.

Фиг.7 - примерная вычислительная среда в соответствии с системами и способами, описанными в материалах настоящей заявки.

Подробное описание предпочтительного варианта осуществления

Последующее обсуждение по большей части имеет дело с компьютерной системой, формирующей и визуализирующей анимацию, (то есть функцией, которая со временем модифицирует графические объекты) с использованием протокола связи, который определяет передаваемые данные, используемые при формировании и визуализации. Графические объекты могут содержать окно, диалоговое окно или тому подобное. В качестве используемого в материалах настоящей заявки термин «компьютерная система» может означать либо одиночный компьютер, либо множество компьютеров, работающих вместе. Компьютерная система включает в себя множество отдельных анимационных/визуализирующих систем - или подсистем - каждая из которых сосредотачивается на конкретной функции анимации или визуализации.

В обсуждении, приведенном ниже, протокол связи описан в контексте двух анимационных систем или подсистем. Однако отмечено, что они являются только примерами и что протокол связи может быть использован с более чем двумя отдельными анимационными системами или подсистемами.

Термин «визуализация» используется при обсуждении протокола связи, введенного в материалах настоящей заявки. «Визуализация» может быть рассмотрена в качестве этапа процесса анимации, который определяет анимацию для отображения и/или отображает анимацию. «Система визуализации» может быть системой, которая включает в себя функцию визуализации. Таковая может быть узко определена, чтобы описать систему, которая выполняет только функцию визуализации, или она может быть широко определена, чтобы описывать систему, которая выполняет другие функции в дополнение к одной или более функциям визуализации, такую как анимационную систему.

Подобным образом, термин «анимационная система» в качестве используемой в материалах настоящей заявки ссылается на систему, которая включает в себя анимационную функцию. «Анимационная система» может быть системой, которая выполняет только анимационные функции, или может быть системой, которая выполняет одну или более анимационных функций в дополнение к другим функциями, таким как функция визуализации.

Использование либо конкретного термина - «система визуализации» либо «анимационная система» - не предназначено для ограничения объема архитектуры и/или функции, ассоциативно с ней связанной. Надлежащий объем, охватываемый используемым термином, может быть получен из контекста, в котором термин используется.

Анимационная система с полным набором признаков включает в себя сложные структуры тактирования, в которых каждая система может приводиться в действие отдельным средством создания тактовых импульсов (тактовым генератором), а тактовые генераторы связаны произвольным набором правил, заданным разработчиком приложения. Например, одной анимации (А) может быть задано начинаться точно в тот же самый момент времени, в который заканчивается другая анимация (В), или группе анимаций может быть задано выполняться при половине их нормальной скорости. В более общем случае, такая система также может управлять синхронизацией анимаций с другими типами линейных аудиовизуальных данных, таких как аудио и видео, посредством связывания тактового генератора с каждой частью линейных аудиовизуальных данных.

В дополнение тактовые генераторы являются интерактивными по той причине, что они могут быть запущены, приостановлены или остановлены в любой момент времени, и такие интерактивные действия могут послужить причиной изменений, которые передаются через всю иерархию тактирования, как продиктовано правилами синхронизации. Следуя предыдущему примеру, если анимация (В) приостановлена и возобновлена пятью секундами позже, то анимация (А) будет начинаться на пять секунд позже, чем планировалось первоначально. Это, в свою очередь, может вызывать изменения тактирования в других тактовых генераторах, потенциально передающиеся через всю структуру тактирования.

Вычисление изменений для структуры тактирования является дорогостоящей неограниченной операцией, значит, эта операция не является подходящей для системы визуализации в реальном времени, которая имеет задачей соответствовать прогнозируемой частоте кадров. Эти две задачи (обеспечение анимационной системы с полным набором признаков и поддержание прогнозируемой частоты кадров) являются противоречивыми. Одно из решений заключается в том, чтобы разделить систему на две части: одну, которая осведомлена о правилах синхронизации между тактовыми генераторами, и другую, которая рассматривает каждый тактовый генератор как полностью независимый объект.

Протокол связи, заявленный в материалах настоящей заявки, поддерживает две отдельные анимационные системы в синхронизации, так что анимации могут выполняться при высокой частоте обновления изображения, без ущерба для интерактивности, и наоборот.

Анимационная система, описанная в материалах настоящей заявки, включает в себя по меньшей мере два компонента, а именно высокоуровневую анимационную подсистему, которая связана главным образом с интерактивностью и сложными структурами тактирования, и низкоуровневую анимационную подсистему, которая связана главным образом с визуализацией одной или более анимаций на дисплее при высокой постоянной частоте обновления изображения. Термин «высокоуровневая» относится к тому факту, что эта анимационная система находится ближе к пользователю, тогда как «низкоуровневая» анимационная система находится ближе к «железу» (или машине).

Одним из примеров высокоуровневой анимационной подсистемы является приложение, которое управляет анимациями согласно данным, принятым от самого приложения или от пользователя. Примером низкоуровневой анимационной подсистемы является система устройства отображения, которая управляет преобразованием анимационных данных в физически отображаемые анимации. Система устройства отображения включает в себя компоненты аппаратных средств, а также компоненты программного обеспечения, которые могут быть включены в аппаратные средства видеокарты (не показанной явным образом) или в компонент, который физически не находится на видеокарте.

В представленном обсуждении может быть сделана ссылка на устройство отображения в качестве системы отображения или анимационной системы либо подсистемы. Однако отмечено, что все компоненты и обработка системы отображения не обязательно являются физически расположенными в этом устройстве. Термин «устройство отображения», в качестве используемого в материалах настоящей заявки, также охватывает процессорные операции, которые управляют отображением, и любую разновидность видеопамяти.

Обычно, процесс анимации предполагается в качестве исполняемого в процессе на одиночной машине, которая включает в себя как высокоуровневую анимационную подсистему, так и низкоуровневую анимационную подсистему (использующей единственную анимационную систему). Однако протокол связи, описанный в материалах настоящей заявки для двух отдельных анимационных систем, допускает высокоуровневые и низкоуровневые анимационные подсистемы, исполняемые: (1) в виде двух потоков в едином процессе, (2) в виде отдельных процессов на одной машине; или (3) на двух отдельных машинах, разделенных сетью, таких как в архитектуре клиент-сервер.

Примерная система клиент-сервер

Фиг.1 - структурная схема примерной системы 100 клиент-сервер в соответствии с системами и способами, описанными в материалах настоящей заявки. Система 100 клиент-сервер включает в себя сервер 102 и клиент 104, которые осуществляют связь по сети 106, такой как сеть Интернет.

Сервер 102 включает в себя память 108, процессор 110, сетевую интерфейсную карту 112 для управления связью по сети 106 и другие разнообразные аппаратные средства 114, типично требуемые серверу, чтобы выполнять стандартные серверные функции. Память 110 включает в себя операционную систему 116 и разнообразные компоненты 118 программного обеспечения, которые обеспечивают функциональные возможности сервера.

Приложение 120 также хранится в памяти 108 и включает в себя высокоуровневую анимационную подсистему 122, которая содержит в себе компьютерный код, который управляет одной или более анимационными функциями. Анимационная функция может быть окном, диалоговым окном или тому подобным. Высокоуровневая анимационная подсистема 122 сосредоточена главным образом на интерактивности и сложных структурах тактирования. Как будет видно при дальнейшем обсуждении, приложение 120 может включать в себя написанный пользователем компьютерный код и системный компьютерный код, который изолирован от пользовательского кода, к которому пользовательский код осуществляет доступ через один или более прикладных программных интерфейсов (API).

Клиент 104 включает в себя память 130, процессор 132, сетевую интерфейсную карту 134, которая управляет передачей данных в и из сети 106, и дисплей 136. Клиент 104 также включает в себя устройство 138 отображения, а также разнообразные аппаратные средства 140, которые могут потребоваться клиенту 104, чтобы функционировать должным образом.

Память 130 хранит обозреватель 142, сконфигурированный, чтобы обеспечивать доступ к и осуществлять навигацию по сети 106, и операционную систему 144, которая управляет базовыми функциональными возможностями клиента 104. Разнообразные компоненты 146 программного обеспечения также сохранены в памяти 130 и включают в себя программное обеспечение, которое обеспечивает необходимые функциональные возможности клиента 104 и клиентские службы.

Устройство 138 отображения включает в себя низкоуровневую анимационную подсистему 148, которая может быть сохранена в памяти (не показана) устройства отображения, в компоненте (не показан) аппаратных средств устройства отображения или в памяти 130, включенной в состав клиента 104. Фиг.1 показывает, что по меньшей мере часть компонентов устройства 138 отображения может находиться в основной памяти 130 клиента 104. Низкоуровневая анимационная подсистема 148 сосредоточена главным образом на удовлетворении целей визуализации касательно высокой частоты обновления кадра (минимальной частоты обновления в тридцать (30) кадров в секунду). Поддерживание высокой частоты обновления кадров обеспечивает прекрасный результат и является привлекательным для зрителя, что является первичной задачей анимационной системы.

Двумя препятствиями, которые стоят на пути поддерживания высокой частоты обновления кадров анимации, являются (1) задержка и (2) полоса пропускания. При отправке данных по сети данные могут быть предназначены для любых мест в мире, что может создавать значительные задержки. Проблема задержек мешает прибытию надлежащих сообщений и откликов вовремя, а это может негативно сказаться на частоте обновления и ухудшает впечатление пользователя. Это является более значительной проблемой анимационных систем, сконфигурированных в качестве единого объекта, так как огромный объем данных должен регулярно отправляться, чтобы управлять анимацией.

Вопрос полосы пропускания также представляет более значительную проблему для систем в виде единого объекта. Со сложной анимацией гигантские объемы данных должны отправляться через конкретную границу (поток, процесс, сеть) для каждого кадра. Даже с системой, описанной в материалах настоящей заявки, которая включает в себя две отдельные анимационные подсистемы, использование полосы пропускания может быть проблемой при использовании модема, который по своей природе ограничивает полосу пропускания, или сервера, который обслуживает чудовищное количество клиентов. Даже если сервер должен передавать лишь относительно небольшой объем данных для простой анимации, если данными должны быть обеспечены, скажем, четыре сотни клиентов, он может подойти к вопросу о полосе пропускания.

Система и способы, описанные в материалах настоящей заявки, предоставляют эффективный путь для оптимизации использования полосы пропускания наряду с поддержанием высокой частоты обновления.

Примерная архитектура системы визуализации анимации

Фиг.2 - структурная схема примерной архитектуры 200 системы визуализации анимации в соответствии с системами и способами, описанными в материалах настоящей заявки. Некоторые элементы, показанные на фиг.2, являются элементами, которые также включены в фиг.1. В целях ссылки элемент, включенный в оба чертежа, показан на фиг.2 с идентичным номером ссылки, использованным для элемента на фиг.1.

Примерная архитектура 200 включает в себя приложение 120 и устройство 138 отображения. Приложение 120 осуществляет связь с устройством 138 отображения через канал 204 связи по протоколу 216 связи, который ниже будет обсуждаться более подробно. Как обсуждалось ранее, канал 204 связи пересекает границу, которая может быть границей между потоками, процессами или машинами. Для границы между машинами, например, канал 204 связи может быть сетью 106, показанной ранее.

Пользовательский код 202 функционирует вместе с приложением 120 через границу 206 API, которая является набором системных API-интерфейсов, которые обеспечивают доступ к приложению 120 со стороны разработчика, который желает использовать особенности приложения 120 в пользовательском коде 202.

Как обсуждено ранее, приложение 120 охватывает высокоуровневую анимационную подсистему 122. Высокоуровневая анимационная подсистема 122 включает в себя высокоуровневый графический компонент 208, высокоуровневую базу 210 данных анимационных объектов и высокоуровневое средство 212 тактирования. Средство 212 тактирования создает и управляет одним или более высокоуровневыми тактовыми генераторами 214, сохраненными в высокоуровневой базе 210 данных анимационных объектов.

Высокоуровневое средство 212 тактирования отвечает за настройку и синхронизацию высокоуровневых тактовых генераторов 214. Так, например, если есть десять (10) анимаций, которым предлагается выполняться вместе, высокоуровневое средство 212 тактирования синхронизирует десять (10) высокоуровневых тактовых генераторов 214, чтобы отображать анимации синхронно.

Высокоуровневый графический компонент 208 хранит тип графики, используемый в анимации. Высокоуровневая база 210 данных анимационных объектов сохраняет анимационные значения, связанные с одной или более анимациями (и/или аудиовизуальные объекты, связанные с одними или более аудиовизуальными данными). Анимационные значения включают в себя по меньшей мере временную последовательность (т.е. тактовый генератор), связанную с анимацией. (Отмечается, что термины «тактовый генератор» и «временная последовательность» используются в материалах настоящей заявки взаимозаменяемо). Анимационные значения воздействуют на выходные данные визуализации анимации на основании значений высокоуровневых тактовых генераторов 214. Каждая анимация модифицирует один или более аспектов высокоуровневых графических компонентов 208.

Например, для простой анимации создания линии из точки P1 в точку P2 база 210 данных анимационных объектов может сохранять значение для P1 в момент времени =0, и значение для P2 в момент времени =1. (Все точки между P1 и P2 интерполируются).

Устройство 138 отображения примерной архитектуры 200 системы визуализации анимации включает в себя низкоуровневую анимационную подсистему 148, показанную на фиг.1. Низкоуровневая анимационная подсистема 148 является эквивалентной структурой для высокоуровневой анимационной подсистемы 122 и включает в себя низкоуровневый графический компонент 218, низкоуровневую базу 220 данных анимационных объектов и низкоуровневое средство 222 тактирования. Средство 222 тактирования создает один или более низкоуровневых тактовых генераторов 224, которые сохраняются в низкоуровневой базе данных анимационных объектов.

Компоненты (218-224) низкоуровневой анимационной подсистемы 148 подобны компонентам (208-214) высокоуровневой анимационной подсистемы 122, а их функции и способность взаимодействия подобны описанным ранее.

Есть преимущества архитектуры, подобной примерной архитектуре 200 системы визуализации анимации, то есть архитектуры, которая содержит анимационную систему, факторизованную в две подсистемы. Если приложение является затратным и расходует большое количество служебных данных касательно интерактивности, анимация может продолжаться; она не должна ожидать завершения интерактивной части для продолжения анимации. В нефакторизованной системе, если приложение не снабжает дисплей постоянными обновлениями данных, то дисплей скорее может вырисовывать статические изображения, чем движущуюся анимацию.

Общий пример проблемы характеризуется полосковым индикатором состояния, который отображается, в то время как система обрабатывает информацию. Обычно индикатор продвигается, например, в направлении слева направо, что указывает, что продолжает происходить некоторая обработка. Однако есть моменты времени, когда индикатор состояния останавливается, а пользователь не может сказать, заблокировалась ли система или по-прежнему что-то обрабатывает. Это является результатом интерактивной части аниматора, не поставляющей вовремя обновленные данные для части отображения, чтобы удовлетворять частоте обновления кадров.

Такая система является в чрезвычайной степени некачественной для видеоизображений. Что касается видеоизображения, кадр может быть удален, имея результатом подергивание или искажение изображения, только потому, что система занята другой задачей (которая могла бы быть второстепенной, как, например, передвижение курсора мыши).

В факторизованной анимационной системе низкоуровневая анимационная подсистема 148 работает асинхронно с высокоуровневой анимационной подсистемой 122, значит она продолжает работать (т.е. вырисовывать), даже когда высокоуровневая анимационная подсистема 122 становится занятой задачей, которая мешает ей перерисовать кадр до того, как обновлен кадр. Следовательно, факторизованная анимационная система плавно отображает анимационные операции и, поэтому, обеспечивает превосходное пользовательское впечатление.

Примерная методологическая реализация: основной режим работы

Фиг.3 - блок-схема последовательности операций, которая изображает основной режим работы факторизованной системы анимационной/визуализирующей, такой как показанная на фиг.1 и фиг.2. При последующем обсуждении по-прежнему будут делаться ссылки на элементы с помощью ссылочных номеров, показанных на фиг.1 и 2.

В факторизованной анимационной системе (например, анимационной системе, которая факторизована в по меньшей мере две отдельные анимационные подсистемы, которые функционируют асинхронно относительно друг друга) пользователь (приложение) сообщает высокоуровневой системе через системные API-интерфейсы, каким образом графике предполагается появляться на дисплее. Высокоуровневая система использует специализированный протокол связи, чтобы предписывать низкоуровневой системе создавать структуру, подобную установленной в высокоуровневой системе.

Так как высокоуровневая система сконфигурирована, чтобы создавать некоторые элементы в низкоуровневой системе, она обязательно придерживается того, что протокол связи, обсужденный более подробно ниже относительно фиг.4, включает в себя несколько сообщений или команд «создать». Блок-схема последовательности операций, показанная на фиг.3, охватывает некоторые основные этапы, которые возникают, когда высокоуровневая анимационная подсистема 122 осуществляет связь с низкоуровневой анимационной подсистемой 148, чтобы настроить структуры в ней.

На этапе 300 высокоуровневая анимационная подсистема 122 отправляет сообщение, чтобы создать анимационный объект 220 в низкоуровневой подсистеме 148. Высокоуровневая анимационная подсистема 122 в таком случае осуществляет связь с низкоуровневой подсистемой 148, чтобы создать тактовый генератор 224 (т.е. временную последовательность), чтобы включить в состав вместе с анимационным объектом 220, который был только что создан (этап 302).

Отмечено, что нет необходимости в соотношении 1:1 между анимационными объектами и временными последовательностями. Другими словами, одна временная последовательность может управлять более чем одним анимационным объектом. Следовательно, на описанном выше этапе 302 может не потребоваться создать временную последовательность, если она уже существует и если вновь создаваемый анимационный объект может быть связан с существующей временной последовательностью.

В этой точке приложение 120 может создавать другие анимационные объекты или модифицировать существующую анимацию. Если приложение 120 сконфигурировано, чтобы создать другой анимационный объект (ветвь «анимационный объект», этап 304), то высокоуровневая анимационная подсистема 122 отправляет сообщение протокола связи в низкоуровневую анимационную подсистему 138, чтобы создать другой анимационный объект 220 на этапе 300. Высокоуровневая анимационная подсистема 122 затем отправляет сообщение на этапе 302, чтобы связать временную последовательность с вновь созданным анимационным объектом 220. Временная последовательность может быть создана, или она может являться существующей временной последовательностью.

Приложение 120 также сконфигурировано, чтобы поддерживать модификации. Высокоуровневая анимационная подсистема 122 может отправлять сообщение, чтобы модифицировать анимационный объект 220 и/или временную последовательность, связанную с ним (ветвь «модифицирование», этап 304). В дополнение к прямой модификации, которая модифицирует аспект анимации, также являются модификациями операции «приостановить» и «остановить». Операция «приостановить» может быть закодирована на основе типичной модификации, например, «в момент времени 0 тактовый генератор - 10; и в момент времени 10 тактовый генератор - 10». Операция «остановить» инициируется сообщением «удалить анимацию».

Если модификация является сообщением «удалить анимацию» (ветвь «да», этап 306), то анимация прекращается на этапе 308. В ином случае (ветвь «нет», этап 306), высокоуровневая анимационная система 122 отправляет одно или более сообщений, сконфигурированных для модификации существующей анимации (этап 310). Модификация существующей анимации также может означать модификации временной последовательности, связанной с существующей анимацией.

Как упомянуто ранее, вышеприведенная блок-схема последовательности операций изображает основную методологию для конфигурирования низкоуровневой анимационной подсистемы 148 посредством отправки сообщений протокола связи из высокоуровневой анимационной подсистемы 122. По меньшей мере одна специфичная методологическая реализация, использующая протокол связи, будет обсуждена ниже более подробно, после того как будут обсуждены специфические элементы протокола связи.

Протокол связи

Фиг. 4а, 4b и 4c - таблицы, описывающие сообщения/команды протокола связи для использования при управлении передачей между высокоуровневой анимационной подсистемой и низкоуровневой анимационной подсистемой. При последующем обсуждении по-прежнему будут делаться ссылки на элементы и ссылочные номера, показанные и описанные согласно фиг. 1 и 2.

Фиг.4а изображает таблицу 400, которая описывает сообщения, отправляемые из высокоуровневого средства 212 тактирования в низкоуровневое средство 222 тактирования. Сообщение 402 «Создать тактовый генератор» побуждает низкоуровневое средство 222 тактирования создать тактовый генератор для анимации. Сообщение 402 «Создать тактовый генератор» включает в себя «Создать параметры тактового генератора» 404, которые являются начальными свойствами тактового генератора. Свойства тактового генератора могут включать в себя, но не ограничиваются ими, продолжительность (от начального момента времени), родительский тактовый генератор (с которым связаны все моменты времени в этом тактовом генераторе), скорость (относительно своего родителя), ускорение и замедление. Параметры ускорения и замедления задают процент времени «продолжительности», который тратится на «ускорение» или «замедление» анимации.

Сообщение 406 «Обновить свойства» обеспечивает обновление существующих свойств тактового генератора. «Обновить параметры свойств» 408 включает в себя целевой тактовый генератор (например, тактовый генератор, содержащий свойства, которые должны быть обновлены) и обновляемые свойства и значения. Сообщение 410 «добавить интервал» дает инструкции низкоуровневому средству тактирования добавить интервал в существующую анимацию (объект) и включает в себя «Добавить параметры интервала» 412, которые идентифицируют целевой тактовый генератор и свойства интервала, который подлежит добавлению к целевому тактовому генератору.

Протокол включает в себя сообщение 414 «Сбросить сдвиг синхронизации» и связанный «Параметр сброса сдвига синхронизации» 416, которые используются, чтобы поддерживать синхронизацию между высокоуровневой анимационной подсистемой 122 и низкоуровневой анимационной подсистемой 148. Каким образом это реализовано - это предмет конкретного проектирования системы.

В по меньшей мере одной реализации процесс синхронизации описан следующим примером. Если низкоуровневая анимационная подсистема 148 контролирует видеофайл и обнаруживает, что видеоизображение становится хуже (например, из-за сетевого трафика), то низкоуровневая анимационная подсистема 148 отправляет сообщение «Синхронизировать со сдвигом аудиовизуальных данных» и параметры (смотрите фиг.4b) в высокоуровневую анимационную подсистему 122 и сохраняет тот факт, что произошел сдвиг, и величину сдвига.

Когда высокоуровневая анимационная подсистема 122 (более точно, высокоуровневое средство 212 тактирования) завершает обновление интервалов, чтобы учесть сдвиг, она отправляет сообщение 414 «Сбросить сдвиг синхронизации» и связанный «Параметр сброса сдвига синхронизации» 416, чтобы указать низкоуровневой анимационной подсистеме 148 сбросить смещение сдвига в нуль.

Для дополнительной информации об этом конкретном сообщении протокола пожалуйста обратитесь к фиг.4b, приведенной ниже.

Сообщение 418 «Удалить все интервалы» может быть отправлено в низкоуровневое средство 222 тактирования, чтобы удалить любые существующие интервалы, связанные с конкретным тактовым генератором. Целевой тактовый генератор идентифицируется в «Параметре удаления всех интервалов» 420. Сообщение 422 «Удалить тактовый генератор» также включено в протокол связи и отправляется в низкоуровневое средство 222 тактирования, чтобы удалить целевой тактовый генератор - идентифицированный в «Параметре удаления тактового генератора» 424.

Фиг.4b изображает таблицу 430, которая описывает сообщение протокола связи, которое отправляется из низкоуровневого средства 222 тактирования в высокоуровневое средство 212 тактирования. Сообщение 432 «Синхронизировать со сдвигом аудиовизуальных данных» снабжает высокоуровневое средство 212 тактирования величиной, на которую высокоуровневое средство 212 тактирования должно осуществить сдвиг конкретного тактового генератора, чтобы синхронизироваться с аудиовизуальным компонентом. *** ПРИМЕЧАНИЕ: Это также закрыто для корректировки? *** «Параметры синхронизации со сдвигом аудиовизуальных данных» 434 включают в себя целевой тактовый генератор, который является тактовым генератором для сдвига, и величину сдвига, которая идентифицирует значение сдвига.

Сообщение отправляет данные обратно в высокоуровневую анимационную подсистему 122 из низкоуровневой анимационной подсистемы. Это необходимо из-за наличия задержки в канале 204 связи. Один из случаев, когда она может возникать - когда пользователь активирует команду «приостановить». Так как системы осуществляют связь друг с другом асинхронно, низкоуровневая анимацонная подсистема может обработать некоторое количество кадров, до того как высокоуровневая анимационная подсистема сможет прервать низкоуровневую анимационную подсистему. Как результат, низкоуровневая система работает дольше.

Но об этом заботится сообщение 432 «Синхронизироваться со сдвигом аудиовизуальных данных», которое доставляет информацию в высокоуровневую анимационную подсистему 122 о том, что тактовому генератору, связанному с анимацией, необходим «сдвиг» или «синхронизироваться» с низкоуровневым тактовым генератором 224, чтобы снова сделать подсистемы синхронизированными.

Фиг.4с изображает таблицу 440, которая описывает сообщения, отправляемые из высокоуровневых анимационных объектов 210 в низкоуровневые анимационные объекты 220. Таблица 440 включает в себя сообщение 442 «Создать анимацию», которое дает команду низкоуровневой анимационной подсистеме 148 создать новый анимационный объект. «Параметры создания анимации» 444 включают в себя тип выходного значения, который идентифицирует тип свойства, являющегося анимируемым, анимационную функцию и задающий тактовый генератор.

Например, если анимируется преобразованием угла поворота, то выходным типом является «число с плавающей точкой двойной точности». Если анимируется одна из конечных точек линии, то выходным типом является «точка». Если анимируется цвет прямоугольника, то выходным типом является «цвет».

Анимационные функции известны в данной области техники, и здесь может быть обозначена любая такая анимационная функция. Примером простой анимационной функции является «от 5 до 10». Это означает, что в начале интервала анимационная функция выводит значение 5, в конце она выводит 10, а на полпути от начала до конца анимационная функция выводит значение 7,5 и так далее. Более сложной анимационной функцией является «от 5 до 6 до 10». Здесь выходным значением на полпути от начала до конца является 6. Функция может быть сделана более сложной посредством задания не только списка значений, но и списка моментов времени, в которые функция должна выводить такие значения (со всеми промежуточными, являющимися интерполированными).

Отмечается, что анимационные функции, описанные выше, являются только примерными и не имеют намерением ограничивать объем прилагаемой формулы изобретения этими анимационными функциями. Любая компьютерная операция, которая может рассматриваться как «анимационная функция», может быть использована в этом контексте.

В конечном счете, как обсуждено ранее, задающий тактовый генератор для нового анимационного объекта может быть новым тактовым генератором, или он может быть существующим тактовым генератором, который может быть или м