Система и способы для применения анимаций или движений к персонажу
Иллюстрации
Показать всеИзобретение относится к области применения анимаций или движений к персонажу. Техническим результатом является обеспечение анимации виртуального персонажа посредством комбинации живых и предварительно записанных движений. Способ содержит этапы, на которых: принимают предварительно записанное движение и живое движение пользователя; преобразуют одну или более частей тела виртуального персонажа в один или более суставов в первой модели пользователя, ассоциированной с живым движением; преобразуют одну или более частей тела виртуального персонажа в один или более суставов во второй модели, ассоциированной с предварительно записанным движением; и анимируют виртуальный персонаж с помощью предварительно записанного движения и живого движения посредством по меньшей мере следующего: деактивируют один или более суставов в первой модели пользователя, которые соответствуют одной или более частям тела во второй части виртуального персонажа; деактивируют один или более суставов во второй модели, ассоциированной с предварительно записанным движением, которые соответствуют одной или более частям тела в первой части виртуального персонажа; и смешивают живое движение, ассоциированное с первой моделью пользователя, с предварительно записанным движением, ассоциированным со второй моделью, в ответ на деактивацию одного или более суставов в первой модели пользователя и деактивацию одного или более суставов во второй модели; и анимируют первую часть и вторую часть виртуального персонажа с помощью смешанных живых и предварительно записанных движений. 3 н. и 9 з.п. ф-лы, 22 ил.
Реферат
УРОВЕНЬ ТЕХНИКИ
Множество вычислительных приложений, таких как компьютерные игры, мультимедийные приложения и т.п., включают в себя аватары или персонажей, которые анимируются с использованием типичных способов захвата движения. Например, при разработке игры в гольф профессиональный гольфист может быть приглашен в студию, имеющую оборудование для захвата движения, включающее в себя, например, множество камер, направленных в конкретную точку в студии. Профессиональный гольфист затем может быть одет в костюм для захвата движения, имеющий множество точечных индикаторов, которые могут конфигурироваться и отслеживаться посредством камер, так что камеры могут захватывать, например, движения при игре в гольф профессионального гольфиста. Движения затем могут применяться к аватару или персонажу во время разработки игры в гольф. При проведении игры в гольф аватар или персонаж затем могут быть анимированы с помощью движений профессионального гольфиста во время проведения игры в гольф. К сожалению, типичные способы захвата движения являются затратными, привязаны к разработке конкретного приложения и не включают в себя движения, ассоциированные с фактическим игроком или пользователем приложения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В данном документе раскрыты системы и способы для смешивания анимаций. Например, в одном варианте осуществления живое движение пользователя может захватываться, и предварительно записанное движение, к примеру предварительно записанное сгенерированное актером движение, предварительно записанное движение пользователя и/или программно-управляемое преобразование может быть принято. Живое движение затем может применяться к первой части виртуального персонажа, и предварительно записанное движение может применяться ко второй части виртуального персонажа, так что виртуальный персонаж может быть анимирован с помощью комбинации живых и предварительно записанных движений. Согласно одному варианту осуществления, живое движение и/или предварительно записанное движение может применяться к виртуальному персонажу в ответ на прием телодвижения от пользователя, которое может быть ассоциировано с командой анимации. Дополнительно, виртуальный персонаж может быть анимирован с помощью комбинации предварительно записанных движений, к примеру предварительно записанного движения пользователя и предварительно записанной сгенерированной актером анимации, например, посредством применения предварительно записанного движения пользователя к первой части виртуального персонажа и применения предварительно записанной сгенерированной актером анимации ко второй части виртуального персонажа.
Данная сущность изобретения предоставлена для того, чтобы представлять в упрощенной форме выбор концепций, которые дополнительно описаны ниже в подробном описании. Эта сущность не имеет намерением ни то, чтобы идентифицировать ключевые признаки или важнейшие признаки заявленного предмета изобретения, ни то, чтобы использоваться так, что она ограничивает объем заявленного предмета изобретения. Кроме того, заявленный предмет изобретения не ограничен реализациями, которые разрешают какие-либо или все недостатки, отмеченные в любой части данного раскрытия сущности.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1A и 1B иллюстрируют примерный вариант осуществления системы распознавания, анализа и отслеживания целей при проведении игры пользователем.
Фиг.2 иллюстрирует примерный вариант осуществления устройства захвата, которое может быть использовано в системе распознавания, анализа и отслеживания целей.
Фиг.3 иллюстрирует примерный вариант осуществления вычислительного окружения, которое может быть использовано для того, чтобы интерпретировать одно или более телодвижений в системе распознавания, анализа и отслеживания целей и/или анимировать виртуального персонажа, отображаемого посредством системы распознавания, анализа и отслеживания целей.
Фиг.4 иллюстрирует другой примерный вариант осуществления вычислительного окружения, которое может быть использовано для того, чтобы интерпретировать одно или более телодвижений в системе распознавания, анализа и отслеживания целей и/или анимировать виртуального персонажа, отображаемого посредством системы распознавания, анализа и отслеживания целей.
Фиг.5 описывает блок-схему последовательности операций примерного способа для генерирования и применения файла захвата движения пользователя.
Фиг.6 иллюстрирует примерный вариант осуществления изображения, которое может включать в себя человеческую цель, ассоциированную с пользователем.
Фиг.7 иллюстрирует примерный вариант осуществления модели, которая может быть сгенерирована для человеческой цели, ассоциированной с пользователем.
Фиг.8A-8B иллюстрируют примерный вариант осуществления модели, ассоциированной с пользователем, который может захватываться в различные моменты времени в файле захвата движения.
Фиг.9A-9B иллюстрируют примерный вариант осуществления модели для виртуального персонажа, который может быть анимирован на основе модели в различные моменты времени.
Фиг.10A-10B иллюстрируют примерный вариант осуществления виртуального персонажа, который может быть анимирован.
Фиг.11A-11F иллюстрируют другой примерный вариант осуществления виртуального персонажа, который может быть анимирован.
Фиг.12A-12B иллюстрируют другой примерный вариант осуществления виртуального персонажа игры, который может быть анимирован.
ПОДРОБНОЕ ОПИСАНИЕ ИЛЛЮСТРАТИВНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Как описано в данном документе, пользователь может управлять приложением, запущенным в вычислительном окружении, таком как игровая приставка, компьютер и т.п., и/или может анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., посредством выполнения одного или более телодвижений и/или перемещений. Согласно одному варианту осуществления, телодвижения и/или перемещения могут быть приняты, например, посредством устройства захвата. Например, устройство захвата может захватывать изображение глубины сцены. В одном варианте осуществления, устройство захвата может определять то, соответствует или нет одна или более целей либо объектов в сцене человеческой цели, к примеру, пользователю. Каждая цель или объект, который совпадает (соответствует) с человеческой целью, затем может сканироваться, чтобы сгенерировать модель, такую как скелетная модель, ячеистая модель человека и т.п., ассоциированную с ним. В примерном варианте осуществления, модель может отслеживаться, файл захвата движения отслеживаемой модели может генерироваться, виртуальный персонаж или объект, ассоциированный с моделью пользователя, может подготавливаться посредством рендеринга, виртуальный персонаж или объект может быть анимирован с помощью живых движений, ассоциированных с моделью пользователя, и/или предварительно записанных движений, и/или может определяться то, какие управляющие воздействия выполнять в приложении, запущенном в компьютерном окружении, на основе, например, отслеживаемой модели.
Фиг. 1A и 1B иллюстрируют примерный вариант осуществления конфигурации системы 10 распознавания, анализа и отслеживания целей при проведении пользователем 18 боксерской игры. В примерном варианте осуществления, система 10 распознавания, анализа и отслеживания целей может быть использована для того, чтобы распознавать, анализировать и/или отслеживать человеческую цель, к примеру, пользователя 18.
Как показано на фиг. 1A, система 10 распознавания, анализа и отслеживания целей может включать в себя вычислительное окружение 12. Вычислительное окружение 12 может быть компьютером, игровой приставкой или устройством и т.п. Согласно примерному варианту осуществления, вычислительное окружение 12 может включать в себя аппаратные компоненты и/или программные компоненты, так что вычислительное окружение 12 может быть использовано для того, чтобы запускать приложения, к примеру игровые приложения, неигровые приложения и т.п. В одном варианте осуществления, вычислительное окружение 12 может включать в себя процессор, к примеру стандартизированный процессор, специализированный процессор, микропроцессор и т.п., который может выполнять инструкции, включающие в себя, например, инструкции для захвата живого движения пользователя, приема предварительно записанного движения, применения живого движения к первой части виртуального объекта и предварительно записанного движения ко второй части виртуального объекта, либо любые другие подходящие инструкции, что подробнее описано ниже.
Как показано на фиг. 1A, система 10 распознавания, анализа и отслеживания целей дополнительно может включать в себя устройство 20 захвата. Устройство 20 захвата может быть, например, камерой, которая может быть использована для того, чтобы визуально отслеживать одного или более пользователей, к примеру пользователя 18, так что телодвижения и/или перемещения, выполняемые одним или более пользователями, могут захватываться, анализироваться и отслеживаться, чтобы выполнять одно или более управляющих воздействий или действий в приложении и/или анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., как подробнее описано ниже.
Согласно одному варианту осуществления, система 10 распознавания, анализа и отслеживания целей может подключаться к аудиовизуальному устройству 16, такому как телевизионный приемник, монитор, телевизионный приемник высокой четкости (HDTV) и т.п., который может предоставлять видео и/или аудиоигры либо приложения пользователю, к примеру пользователю 18. Например, вычислительное окружение 12 может включать в себя видеоадаптер, к примеру видеокарту, и/или аудиоадаптер, к примеру звуковую карту, которая может предоставлять аудиовизуальные сигналы, ассоциированные с игровым приложением, неигровым приложением и т.п. Аудиовизуальное устройство 16 может принимать аудиовизуальные сигналы из вычислительного окружения 12 и затем может выводить видео и/или аудиоигры либо приложения, ассоциированного с аудиовизуальными сигналами, пользователю 18. Согласно одному варианту осуществления, аудиовизуальное устройство 16 может подключаться к вычислительному окружению 12, например, через S-Video-кабель, коаксиальный кабель, HDMI-кабель, DVI-кабель, VGA-кабель и т.п.
Как показано на фиг. 1A и 1B, система 10 распознавания, анализа и отслеживания целей может быть использована для того, чтобы распознавать, анализировать и/или отслеживать человеческую цель, к примеру, пользователя 18. Например, пользователь 18 может отслеживаться с использованием устройства 20 захвата, так что телодвижения и/или перемещения пользователя 18 могут захватываться, чтобы анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., и/или могут быть интерпретированы в качестве управляющих воздействий, которые могут быть использованы для того, чтобы влиять на приложение, запущенное посредством компьютерного окружения 12. Таким образом, согласно одному варианту осуществления, пользователь 18 может двигать своим телом, чтобы управлять приложением и/или анимировать виртуальный объект.
Как показано на фиг. 1A и 1B, в примерном варианте осуществления, приложением, запущенным в вычислительном окружении 12, может быть боксерская игра, которую может проводить пользователь 18. Например, вычислительное окружение 12 может использовать аудиовизуальное устройство 16, чтобы предоставлять визуальное представление оппонента 38 по боксерскому поединку пользователю 18. Вычислительное окружение 12 также может использовать аудиовизуальное устройство 16, чтобы предоставлять визуальное представление аватара игрока 40, которым пользователь 18 может управлять с помощью своих перемещений. Например, как показано на фиг. 1B, пользователь 18 может наносить удар в физическом пространстве, чтобы заставлять аватар игрока 40 наносить удар в игровом пространстве. Таким образом, согласно примерному варианту осуществления, компьютерное окружение 12 и устройство 20 захвата системы 10 распознавания, анализа и отслеживания целей могут быть использованы для того, чтобы распознавать и анализировать удар пользователя 18 в физическом пространстве так, что удар может быть интерпретирован в качестве игрового управляющего воздействия аватара игрока 40 в игровом пространстве, и/или движение при ударе может быть использовано для того, чтобы анимировать аватар игрока 40 в игровом пространстве.
Другие перемещения пользователем 18 также могут быть интерпретированы в качестве других управляющих воздействий или действий и/или использованы для того, чтобы анимировать аватар игрока, к примеру управляющих воздействий, чтобы отскакивать, уклоняться, уворачиваться, блокировать, наносить резкий удар рукой или множество ударов различной силы. Кроме того, некоторые перемещения могут быть интерпретированы в качестве управляющих воздействий, которые могут соответствовать действиям, отличным от управления аватаром игрока 40. Например, игрок может использовать перемещения для того, чтобы завершать, приостанавливать или сохранять игру, выбирать уровень, просматривать рекордное количество очков, общаться с другом и т.д. Дополнительно, полный спектр движения пользователя 18 может быть доступен, использован и проанализирован любым подходящим способом, чтобы взаимодействовать с приложением.
В примерных вариантах осуществления, человеческая цель, к примеру, пользователь 18 может иметь объект. В таких вариантах осуществления, пользователь электронной игры может держать объект так, что движения игрока и объекта могут быть использованы для того, чтобы регулировать и/или управлять параметрами игры. Например, движение игрока, держащего ракетку, может отслеживаться и использоваться для управления экранной ракеткой в электронной спортивной игре. В другом примерном варианте осуществления, движение игрока, держащего объект, может отслеживаться и использоваться для управления экранным оружием в электронной боевой игре.
Согласно другим примерным вариантам осуществления, система 10 распознавания, анализа и отслеживания целей дополнительно может быть использована для того, чтобы интерпретировать целевые перемещения в качестве управляющих воздействий операционной системы и/или приложения, которые находятся вне области игр. Например, фактически любой управляемый аспект операционной системы и/или приложения может управляться посредством перемещений цели, к примеру пользователя 18.
Фиг. 2 иллюстрирует примерный вариант осуществления устройства 20 захвата, которое может быть использовано в системе 10 распознавания, анализа и отслеживания целей. Согласно примерному варианту осуществления, устройство 20 захвата может быть выполнено с возможностью захватывать видео с информацией глубины, включающей в себя изображение глубины, которое может включать в себя значения глубины, через любую подходящую технологию, включающую в себя, например, время пролета, структурированный свет, стереоизображение и т.п. Согласно одному варианту осуществления, устройство 20 захвата может организовать информацию глубины в "Z-уровни", или уровни, которые могут быть перпендикулярными оси Z, идущей от камеры глубины вдоль ее линии видимости.
Как показано на фиг. 2, устройство 20 захвата может включать в себя компонент 22 камеры для съемки изображений. Согласно примерному варианту осуществления, компонент 22 камеры для съемки изображений может быть камерой для съемки глубины, которая может захватывать изображение глубины сцены. Изображение глубины может включать в себя двумерную пикселную область захватываемой сцены, причем каждый пиксел в двумерной пикселной области может представлять значение глубины, к примеру длину или расстояние, например, в сантиметрах, миллиметрах и т.п. объекта в захватываемой сцене от камеры.
Как показано на фиг. 2, согласно примерному варианту осуществления, компонент 22 камеры для съемки изображений может включать в себя компонент 24 инфракрасного света, трехмерную камеру 26 и RGB-камеру 28, которые могут быть использованы для того, чтобы захватывать изображение глубины сцены. Например, при анализе на основе времени пролета компонент 24 инфракрасного света устройства 20 захвата может испускать инфракрасный свет на сцену и затем может использовать датчики (не показаны), чтобы обнаруживать свет обратного рассеяния от поверхности одной или более целей и объектов в сцене с использованием, например, трехмерной камеры 26 и/или RGB-камеры 28. В некоторых вариантах осуществления, импульсный инфракрасный свет может быть использован, так что время между исходящим световым импульсом и соответствующим входящим световым импульсом может измеряться и использоваться для того, чтобы определять физическое расстояние от устройства 20 захвата до конкретного местоположения на целях или объектах в сцене. Дополнительно, в других примерных вариантах осуществления фаза исходящей световой волны может сравниваться с фазой входящей световой волны, чтобы определять сдвиг фаз. Сдвиг фаз затем может быть использован для того, чтобы определять физическое расстояние от устройства захвата до конкретного местоположения на целях или объектах.
Согласно другому примерному варианту осуществления, анализ времени прохождения может быть использован для того, чтобы косвенно определять физическое расстояние от устройства 20 захвата до конкретного местоположения на целях или объектах посредством анализа интенсивности отраженного луча света во времени через различные способы, включающие в себя, например, формирование изображений на основе световых импульсов.
В другом примерном варианте осуществления, устройство 20 захвата может использовать структурированный свет, чтобы захватывать информацию глубины. При таком анализе шаблонный свет (т.е. свет, отображаемый в качестве известного шаблона, к примеру сетчатого шаблона или полоскового шаблона) может проецироваться на сцену, например, через компонент 24 инфракрасного света. После удара о поверхность одной или более целей или объектов в сцене шаблон может становиться деформированным в ответ. Такое искажение шаблона может захватываться, например, посредством трехмерной камеры 26 и/или RGB-камеры 28 и затем может анализироваться, чтобы определять физическое расстояние от устройства захвата до конкретного местоположения на целях или объектах.
Согласно другому варианту осуществления, устройство 20 захвата может включать в себя две или более физически разделенных камеры, которые могут просматривать сцену с различных углов, чтобы получать визуальные стереоданные, которые могут разрешаться, чтобы генерировать информацию глубины.
Устройство 20 захвата дополнительно может включать в себя микрофон 30. Микрофон 30 может включать в себя преобразователь или датчик, который может принимать и преобразовывать звук в электрический сигнал. Согласно одному варианту осуществления, микрофон 30 может быть использован для того, чтобы уменьшать обратную связь между устройством 20 захвата и вычислительным окружением 12 в системе 10 распознавания, анализа и отслеживания целей. Дополнительно, микрофон 30 может быть использован для того, чтобы принимать аудиосигналы, которые также могут предоставляться пользователем, чтобы управлять приложениями, такими как игровые приложения, неигровые приложения и т.п., которые могут быть запущены посредством вычислительного окружения 12.
В примерном варианте осуществления, устройство 20 захвата дополнительно может включать в себя процессор 32, который может поддерживать функциональную связь с компонентом 22 камеры для съемки изображений. Процессор 32 может включать в себя стандартизированный процессор, специализированный процессор, микропроцессор и т.п., который может выполнять инструкции, включающие в себя, например, инструкции для захвата живого движения пользователя, приема предварительно записанного движения, применения живого движения к первой части виртуального объекта и предварительно записанного движения ко второй части виртуального объекта, либо любые другие подходящие инструкции, что подробнее описано ниже.
Устройство 20 захвата дополнительно может включать в себя компонент 34 памяти, который может сохранять инструкции, которые могут быть выполнены посредством процессора 32, изображения или кадры изображений, захватываемых посредством трехмерной камеры или RGB-камеры, или любую другую подходящую информацию, изображения и т.п. Согласно примерному варианту осуществления, компонент 34 запоминающего устройства может включать в себя оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), кэш, флэш-память, жесткий диск или любой другой подходящий компонент хранения данных. Как показано на фиг. 2, в одном варианте осуществления, компонент 34 памяти может быть отдельным компонентом, поддерживающим связь с компонентом 22 захвата изображений и процессором 32. Согласно другому варианту осуществления, компонент 34 памяти может быть интегрирован в процессор 32 и/или компонент 22 захвата изображений.
Как показано на фиг. 2, устройство 20 захвата может поддерживать связь с вычислительным окружением 12 через линию 36 связи. Линия 36 связи может быть проводным подключением, в том числе, например, USB-подключением, Firewire-подключением, подключением по Ethernet-кабелю и т.п., и/или беспроводным подключением, таким как беспроводное подключение по стандарту 802.11b, g, a или n. Согласно одному варианту осуществления, вычислительное окружение 12 может предоставлять синхросигнал в устройство 20 захвата, который может быть использован для того, чтобы определять, когда захватывать, например, сцену через линию 36 связи.
Дополнительно, устройство 20 захвата может предоставлять информацию глубины и изображения, захватываемые, например, посредством трехмерной камеры 26 и/или RGB-камеры 28, и/или скелетную модель, которая может генерироваться посредством устройства 20 захвата, в вычислительное окружение 12 через линию 36 связи. Вычислительное окружение 12 затем может использовать модель, информацию глубины и захватываемые изображения, например, для того, чтобы управлять приложением, таким как игра или текстовый процессор, и/или анимировать виртуального персонажа, такого как экранный персонаж, аватар, экранный объект и т.п. Например, как показано на фиг. 2, вычислительное окружение 12 может включать в себя библиотеку 190 телодвижений. Библиотека 190 телодвижений может включать в себя набор фильтров телодвижений, каждый из которых содержит информацию относительно телодвижения, которое может выполняться посредством скелетной модели (по мере того, как пользователь перемещается). Данные, захватываемые посредством камер 26, 28 и устройства 20 захвата в форме скелетной модели, и перемещения, ассоциированные с ним, могут сравниваться с фильтрами телодвижений в библиотеке 190 телодвижений, чтобы идентифицировать, когда пользователь (как представлено посредством скелетной модели) выполняет одно или более телодвижений. Эти телодвижения могут быть ассоциированы с различными управляющими воздействиями приложения. Таким образом, вычислительное окружение 12 может использовать библиотеку 190 телодвижений для того, чтобы интерпретировать перемещения скелетной модели и управлять приложением на основе перемещений.
Фиг.3 иллюстрирует примерный вариант осуществления вычислительного окружения, которое может быть использовано для того, чтобы интерпретировать одно или более телодвижений в системе распознавания, анализа и отслеживания целей и/или анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., отображаемый посредством системы распознавания, анализа и отслеживания целей. Вычислительное окружение, к примеру вычислительное окружение 12, описанное выше относительно фиг. 1A-2, может быть мультимедийной приставкой 100, к примеру игровой приставкой. Как показано на фиг. 3, мультимедийная приставка 100 имеет центральный процессор (CPU) 101, имеющий кэш 102 первого уровня, кэш 104 второго уровня и флэш-ROM (постоянное запоминающее устройство) 106. Кэш 102 первого уровня и кэш 104 второго уровня временно сохраняют данные и, следовательно, сокращают число циклов доступа к памяти, тем самым повышая скорость обработки и пропускную способность. CPU 101 может быть предоставлен с несколькими ядрами, и, таким образом, с дополнительными кэшами 102 и 104 первого и второго уровней. Флэш-ROM 106 может сохранять исполняемый код, который загружается во время первоначальной фазы процесса загрузки, когда мультимедийная приставка 100 включается.
Блок 108 графической обработки (GPU) и видеокодер/видеокодек (кодер/декодер) 104 формируют конвейер видеообработки для высокоскоростной графической обработки с высоким разрешением. Данные передаются из блока 108 графической обработки в видеокодер/видеокодек 114 через шину. Конвейер видеообработки выводит данные в A/V-(аудио/видео) порт 140 для передачи на телевизионный приемник или другой дисплей. Контроллер 110 памяти соединен с GPU 108, чтобы упрощать доступ процессора к различным типам памяти 112, таким как, но не только, RAM (оперативное запоминающее устройство).
Мультимедийная приставка 100 включает в себя контроллер 120 ввода-вывода, контроллер 122 управления системой, блок 123 аудиообработки, контроллер 124 сетевого интерфейса, первый USB-хост-контроллер 126, второй USB-контроллер 128 и подсистему 130 ввода-вывода на передней панели, которые предпочтительно реализованы в модуле 118. USB-контроллеры 126 и 128 служат в качестве хостов для периферийных контроллеров 142(1)-142(2), беспроводного адаптера 148 и внешнего запоминающего устройства 146 (к примеру, флэш-памяти, внешнего накопителя на CD/DVD ROM, съемных носителей и т.д.). Сетевой интерфейс 124 и/или беспроводной адаптер 148 предоставляют доступ к сети (например, к Интернету, домашней сети и т.д.) и может быть любым из широкого множества различных компонентов проводных или беспроводных адаптеров, включающих в себя Ethernet-карту, модем, Bluetooth-модуль, кабельный модем и т.п.
Системная память 143 предусмотрена для того, чтобы сохранять данные приложений, которые загружаются во время процесса загрузки. Предусмотрен накопитель 144 на носителях, и он может содержать накопитель на DVD/CD, жесткий диск или другой накопитель на съемных носителях и т.д. Накопитель 144 на носителях может быть внутренним или внешним для мультимедийной приставки 100. Данные приложений могут быть доступными через накопитель 144 на носителях для выполнения, воспроизведения и т.д. посредством мультимедийной приставки 100. Накопитель 144 на носителях подключается к контроллеру 120 ввода-вывода посредством шины, такой как шина Serial ATA или другое высокоскоростное подключение (к примеру, IEEE 1394).
Контроллер 122 управления системой предоставляет множество служебных функций, связанных с обеспечением работоспособности мультимедийной приставки 100. Блок 123 аудиообработки и аудиокодек 132 формируют соответствующий конвейер аудиообработки с высокой точностью и стереообработкой. Аудиоданные передаются между блоком 123 аудиообработки и аудиокодеком 132 через линию связи. Конвейер аудиообработки выводит данные в A/V-порт 140 для воспроизведения посредством внешнего аудиопроигрывателя или устройства, имеющего аудиовозможности.
Подсистема 130 ввода-вывода на передней панели поддерживает функциональность кнопки 150 включения питания и кнопки 152 выброса, а также множества светодиодов (светоизлучающих диодов) или других индикаторов, размещенных на внешней поверхности мультимедийной приставки 100. Модуль 136 системного источника питания предоставляет питание в компоненты мультимедийной приставки 100. Вентилятор 138 охлаждает схему внутри мультимедийной приставки 100.
CPU 101, GPU 108, контроллер 110 памяти и различные другие компоненты в мультимедийной приставке 100 взаимосвязаны через одну или более шин, включающих в себя последовательные и параллельные шины, шину запоминающего устройства, периферийную шину и процессорную или локальную шину, с использованием любой из множества шинных архитектур. В качестве примера, такие архитектуры могут включать в себя шину по стандарту взаимодействия периферийных компонентов (PCI), PCI-Express-шину и т.д.
Когда мультимедийная приставка 100 включается, данные приложений могут быть загружены из системной памяти 143 в память 112 и/или кэши 102, 104 и выполнены в CPU 101. Приложение может представлять графический пользовательский интерфейс, который предоставляет согласованные возможности работы пользователей при переходе к различным типам носителей, доступных на мультимедийной приставке 100. При работе приложения и/или другие носители, содержащиеся в накопителе 144 на носителях, могут быть запущены или воспроизведены с накопителя 144 на носителях, чтобы предоставлять дополнительные функциональные возможности для мультимедийной приставки 100.
Мультимедийная приставка 100 может управляться как автономная система посредством простого подсоединения системы к телевизионному приемнику или другому дисплею. В этом автономном режиме мультимедийная приставка 100 позволяет одному или более пользователям взаимодействовать с системой, смотреть фильмы или слушать музыку. Тем не менее, при интеграции широкополосных возможностей подключения, доступных посредством сетевого интерфейса 124 или беспроводного адаптера 148, мультимедийная приставка 100 дополнительно может управляться как участник более крупного сетевого сообщества.
Когда мультимедийная приставка 100 включается, заданный объем аппаратных ресурсов резервируется для системного использования посредством операционной системы мультимедийной приставки. Эти ресурсы могут включать в себя резервирование памяти (например, 16 МБ), CPU- и GPU-циклов (например, 5%), полосы пропускания сети (например, 8 килобайт/с) и т.д. Поскольку эти ресурсы резервируются во время загрузки системы, зарезервированные ресурсы не существуют с точки зрения приложения.
В частности, резервирование памяти предпочтительно является достаточно большим, чтобы содержать ядро запуска, параллельные системные приложения и драйверы. Резервирование CPU предпочтительно является постоянным, так что если зарезервированное использование CPU не используется посредством системных приложений, то бездействующий подпроцесс использует все неиспользуемые циклы.
Относительно резервирования GPU, небольшие сообщения, сгенерированные посредством системных приложений (например, всплывающие меню), отображаются посредством использования GPU-прерывания, чтобы диспетчеризовать код, чтобы подготавливать посредством рендеринга всплывающее меню в наложение. Объем памяти, требуемый для наложения, зависит от размера области наложения, и наложение предпочтительно масштабируется с разрешением экрана. Если весь пользовательский интерфейс используется посредством параллельного системного приложения, предпочтительно использовать разрешение, независимое от разрешения приложения. Пересчетный модуль может быть использован для того, чтобы задавать это разрешение, так что необходимость изменять частоту и вызывать повторную синхронизацию телевизионного сигнала исключается.
После того как мультимедийная приставка 100 загружена, и системные ресурсы зарезервированы, параллельные системные приложения запускаются, чтобы предоставлять системные функциональности. Системные функциональности инкапсулируются в наборе системных приложений, которые запускаются в рамках зарезервированных системных ресурсов, описанных выше. Ядро операционной системы идентифицирует подпроцессы, которые являются подпроцессами системных приложений, отличными от подпроцессов игровых приложений. Системные приложения предпочтительно диспетчеризуются так, что они выполняются на CPU 101 в предварительно определенные моменты и интервалы времени, чтобы предоставлять согласованное представление системных ресурсов для приложения. Диспетчеризация заключается в том, чтобы минимизировать рассинхронизацию кэша для игрового приложения, выполняющегося на приставке.
Когда параллельное системное приложение требует аудио, аудиообработка диспетчеризуется асинхронно с игровым приложением вследствие зависимости от времени. Диспетчер приложений мультимедийной приставки (описан ниже) управляет уровнем громкости игрового приложения (например, отключением, приглушением звука), когда системные приложения являются активными.
Устройства ввода (например, контроллеры 142 (1) и 142 (2)) совместно используются посредством игровых приложений и системных приложений. Устройства ввода не являются зарезервированными ресурсами, а должны переключаться между системными приложениями и игровыми приложениями, так что каждое из них должно фокусировать устройство. Диспетчер приложений предпочтительно управляет переключением входного потока без сведений по игровому приложению, и драйвер поддерживает информацию состояния, касающуюся переключений фокуса. Камеры 26, 28 и устройство 20 захвата могут задавать дополнительные устройства ввода для приставки 100.
Фиг. 4 иллюстрирует другой примерный вариант осуществления вычислительного окружения 220, которое может быть вычислительным окружением 12, показанным на фиг. 1A-2, используемым для того, чтобы интерпретировать одно или более телодвижений в системе распознавания, анализа и отслеживания целей и/или анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., отображаемый посредством системы распознавания, анализа и отслеживания целей. Окружение 220 вычислительной системы является только одним примером подходящего вычислительного окружения и не имеет намерением налагать какое-либо ограничение на объем использования или функциональность раскрытого в настоящее время предмета изобретения. Вычислительное окружение 220 не должно интерпретироваться как имеющее какую-либо зависимость или требование в отношении какого-либо или комбинации компонентов, проиллюстрированных в примерном операционном окружении 220. В некоторых вариантах осуществления, различные проиллюстрированные вычислительные элементы могут включать в себя схему, выполненную с возможностью конкретизировать конкретные аспекты настоящего раскрытия сущности. Например, термин "схема", используемый в раскрытии сущности, может включать в себя специализированные аппаратные компоненты, выполненные с возможностью осуществлять функцию(и) посредством микропрограммного обеспечения или коммутаторов. В других примерных вариантах осуществления, термин "схема" может включать в себя процессор общего назначения, запоминающее устройство и т.д., конфигурируемое посредством программных инструкций, которые осуществляют логику, выполненную с возможностью осуществлять функцию(и). В примерных вариантах осуществления, в которых схема включает в себя комбинацию аппаратных средств и программного обеспечения, разработчик может писать исходный код, осуществляющий логику, и исходный код может быть компилирован в машиночитаемый код, который может обрабатываться посредством процессора общего назначения. Поскольку специалисты в данной области техники могут принимать во внимание, что уровень техники дошел до такой точки развития, в которой практически отсутствует разница между аппаратными средствами, программным обеспечением или комбинацией аппаратных средств/программного обеспечения, выбор аппаратных средств относительно программного обеспечения, чтобы осуществлять конкретные функции, зависит от выбранной разработчиком структуры. Более конкретно, специалисты в данной области техники могут принимать во внимание, что программный процесс может быть преобразован в эквивалентную аппаратную структуру, и аппаратная структура может быть преобразована в эквивалентный программный процесс. Таким образом, выбор аппаратной реализации относительно программной реализации зависит от выбранной разработчиком структуры.
На фиг.4 вычислительное окружение 220 содержит компьютер 241, который типично включает в себя множество машиночитаемых носителей. Машиночитаемыми носителями могут быть любые носители, которые могут быть дос