ТЕХНОЛОГИИ УПРАВЛЕНИЯ ДАННЫМИ ОТОБРАЖЕНИЯ
DISPLAY DATA MANAGEMENT TECHNOLOGY

Уровень техники
В компьютерных приложениях обычно используют выходные сигналы графических устройств для предоставления информации пользователям. Такая информация может быть представлена в форме текста, схем, изображений (движущихся или неподвижных) и т.д. Такую информацию типично выводят в устройство дисплея, подключенное к платформе обработки (например, персональному компьютеру) через интерфейс передачи данных.
Обычно генерирование графических данных включает в себя конвейер графической обработки, который получает отображаемое содержание в форме данных кадров (или данных изображения) на основе директив, принятых из приложений. После генерирования данные такого кадра типично сохраняют в запоминающем устройстве буфера кадра в платформе обработки.
После того как произойдет такое сохранение, данные кадра могут быть переданы в устройство дисплея через обычный интерфейс дисплея. Примеры таких обычных интерфейсов включают в себя видеографический адаптер (VGA), цифровой визуальный интерфейс (DVI), мультимедийный интерфейс высокой четкости (HDMI), порт дисплея (DP) и аналоговые телевизионные форматы. В свою очередь, устройство дисплея затем управляет отображением принятых данных кадра. Это основано на моментах времени синхронизации, которыми можно управлять с помощью логических устройств, находящихся в платформе обработки или в устройстве дисплея.
По мере того как системы становятся все более и более сложными, требуется разработать технологии для эффективного и гибкого управления данными дисплея.
Краткое описание чертежей
На чертежах одинаковыми номерами ссылочных позиций, в общем, обозначены идентичные, функционально аналогичные и/или структурно аналогичные элементы. Чертеж, на котором элемент появился первым, обозначен самой левой цифрой (цифрами) в номере ссылочной позиции. Настоящее изобретение будет описано со ссылкой на приложенные чертежи, на которых:
на фиг.1 показана схема примерной операционной среды;
на фиг.2 показана схема примерного варианта воплощения конвейера графической обработки;
на фиг.3 показана блок-схема последовательности обработки;
на фиг.4 показана схема, представляющая отображение между конвейерами графической обработки и буферами кадра;
на фиг.5 и 6 показаны блок-схемы последовательности обработки;
на фиг.7 показана схема воплощения запоминающего устройства отображения кадра;
на фиг.8 показана блок-схема последовательности обработки.
Сущность изобретения
Варианты осуществления обеспечивают технологии для генерирования и вывода данных отображения. Например, в вариантах осуществления представлены элементы, включающие в себя хранилище данных кадра в устройствах дисплея. Кроме того, в вариантах осуществления представлены элементы, включающие в себя изолированность разных контекстов пользователя для разных буферов кадра. Кроме того, в вариантах осуществления предусмотрены эффективные технологии для сохранения данных кадра после перехода между состояниями питания. Кроме того, в вариантах осуществления предоставлены технологии для гибкого и динамического распределения множества содержаний отображения для физического отображения.
Например, устройство может включать в себя механизм получения графических данных, предназначенный для генерирования данных кадра из входных графических данных, и модуль управления буфером кадра, предназначенный для определения, включает ли в себя подключенное устройство дисплея буфер кадра. Когда подключенное устройство дисплея включает в себя буфер кадра, модуль управления буфером кадра должен обойти операцию сохранения данных кадра в локальном буфере кадра и должен передать данные кадра в подключенное устройство дисплея.
Данные кадра могут включать в себя данные разности между текущим кадром и предыдущим кадром. Кроме того, модуль управления буфером кадра может выбирать между сжатым форматом передачи и несжатым форматом передачи на основе одной или больше характеристик интерфейса передачи данных (например, без ограничений, интерфейс USB и/или интерфейс LAN) с подключенным устройством дисплея. Эти одна или больше характеристик могут включать в себя пропускную способность интерфейса передачи данных. Кроме того, модуль управления буфером кадра может шифровать данные кадра, предназначенные для передачи в устройство дисплея. Модуль интерфейса передачи данных предназначен для передачи данных кадра через интерфейс передачи данных в подключенное устройство дисплея.
Способ может включать в себя: генерируют данные кадра из входных графических данных; определяют, что устройство дисплея включает в себя буфер кадра; и передают данные кадра в устройство дисплея для сохранения в буфере кадра. Такая передача может включать в себя обход операции сохранения данных кадра в локальном буфере кадра. Данные кадра могут включать в себя данные разности между текущим кадром и предыдущим кадром. Передача данных кадра может включать в себя передачу данных кадра в устройство дисплея через интерфейс передачи данных.
Кроме того, способ может шифровать данные кадра, предназначенные для передачи через интерфейс передачи данных. Кроме того, способ может выбирать между сжатым форматом передачи и несжатым форматом передачи на основе одной или больше характеристик интерфейса передачи данных. Одна или больше характеристик интерфейса передачи данных может включать в себя пропускную способность интерфейса передачи данных.
Изделие может содержать считываемый устройством носитель информации, в котором содержатся инструкции, которые при их выполнении в устройстве обеспечивают в устройстве: генерирование данных кадра из входных графических данных; определение, что устройство дисплея включает в себя буфер кадра; и передачу данных кадра в устройство дисплея для сохранения в буфере кадра. Такая передача может содержать обход операции сохранения данных кадра в локальном буфере кадра.
Система может включать в себя платформу обработки и устройство дисплея. Платформа обработки включает в себя механизм получения графических данных, предназначенный для генерирования данных кадра из входных графических данных, и модуль управления буфером кадра, предназначенный для определения, включает ли в себя устройство дисплея буфер кадра. Когда устройство дисплея включает в себя буфер кадра, модуль управления буфером кадра должен обойти операцию сохранения данных кадра в локальном буфере кадра и должен передать данные кадра в устройство дисплея.
Кроме того, система может включать в себя платформу обработки и устройство дисплея. Платформа обработки имеет первый конвейер графической обработки, предназначенный для генерирования данных первого кадра для первого набора одного или больше приложений; и второй конвейер графической обработки, предназначенный для генерирования данных второго кадра для второго набора одного или больше приложений. Устройство дисплея включает в себя буфер первого кадра и буфер второго кадра. Первый конвейер графической обработки должен передавать данные первого кадра в буфер первого кадра. Кроме того, второй конвейер графической обработки должен передавать данные второго кадра в буфер второго кадра.
Устройство дисплея может содержать физический дисплей и интерфейс пользователя. Интерфейс пользователя может принимать выбор пользователя одного из первого и второго буферов кадра. Физический дисплей должен выводить данные кадра в выбранный буфер кадра.
Первый набор одного или больше приложений может соответствовать первой операционной системе, и второй набор одного или больше приложений может соответствовать второй операционной системе.
Система может дополнительно включать в себя интерфейс передачи данных между платформой обработки и устройством дисплея. Платформа обработки может передавать данные первого кадра через интерфейс передачи данных, используя первое соединение; и может передавать данные второго кадра через интерфейс передачи данных через второе соединение. Эти первое и второе соединения могут быть изолированными. Интерфейс передачи данных может представлять собой интерфейс USB или LAN.
Кроме того, способ может включать в себя: генерируют данные первого кадра для первого набора из одного или больше приложений; генерируют данные второго кадра для второго набора из одного или больше приложений; передают данные первого кадра в буфер первого кадра в устройстве дисплея; передают данные второго кадра в буфер второго кадра в устройстве дисплея; и на основе выбора пользователя выводят одни из данных первого кадра и данных второго кадра для физического отображения. Первый набор одного или больше приложений может соответствовать первой операционной системе, и второй набор одного или больше приложений может соответствовать второй операционной системе. Передача данных первого кадра может содержать передачу данных первого кадра через первое соединение интерфейса передачи данных, и передача данных второго кадра может содержать передачу данных второго кадра через второе соединение интерфейса передачи данных. Первое и второе соединения могут быть изолированы друг от друга.
Устройство дисплея может включать в себя энергозависимый носитель информации, предназначенный для сохранения данных кадра (например, в одном или больше буферах кадра); энергонезависимый носитель информации; и модуль управления, предназначенный для сохранения данных кадра в энергонезависимом носителе информации на основе перехода к более низкому состоянию питания. Такое более низкое состояние питания может представлять собой неактивное состояние. Переход в более низкое состояние питания может быть основан на директиве, принятой из подключенной платформы обработки. Модуль управления может восстанавливать данные кадра в энергозависимом носителе информации на основе перехода из более низкого состояния питания к более высокому состоянию питания. Энергозависимый носитель информации может содержать динамическое оперативное запоминающее устройство (RAM), и энергонезависимый носитель информации может содержать запоминающее устройство трипа флэш.
Еще один дополнительный способ может включать в себя: сохраняют данные кадра в буфере кадра, буфер кадра включен в устройство дисплея и содержит энергозависимый носитель информации; на основе перехода к более низкому состоянию питания (например, к неактивному состоянию) сохраняют данные кадра в энергонезависимом носителе информации, включенном в устройство дисплея. Кроме того, способ может включать в себя, принимают из платформы обработки директиву на переход к более низкому состоянию питания. Способ также может включать в себя переход из более низкого состояния питания к более высокому состоянию питания, и на основе этого перехода, восстановление данных кадра в буфере кадра.
Также еще один дополнительный способ включает в себя: принимают выбор пользователя для вывода одного или больше потоков данных кадра для физического отображения; на основе выбора пользователя, выделяют один или больше участков сохранения в буфере кадра локального носителя информации, причем один или больше участков сохранения в буфере кадра соответствует одному или больше потокам данных кадра; принимают один или больше потоков данных кадра из платформы обработки;
сохраняют один или больше принятых потоков данных кадра на носителе информации, сохранение выполняют в соответствии с выделением; и выводят один или больше принятых потоков данных кадра для физического отображения в соответствии с выбором пользователя.
Выделение одного или больше участков сохранения в буфере кадра локального носителя информации содержит, генерируют таблицу отображения кадра (FMT). Кроме того, способ может содержать, сохраняют FMT на локальном носителе информации. Способ может дополнительно содержать: определяют разрешающую способность для каждого одного или больше потоков данных кадра; и обозначают для платформы обработки разрешающую способность для каждого одного или больше потоков данных кадра.
Прием одного или больше потоков данных кадра из платформы обработки может содержать, принимают каждый из одного или больше потоков данных кадра в соответствии с соответствующей определенной разрешающей способностью. Кроме того, прием одного или больше потоков данных кадра из платформы обработки содержит, принимают один или больше потоков данных кадра через интерфейс передачи данных. Кроме того, каждый из одного или больше потоков данных может быть принят через соответствующее соединение в интерфейсе передачи данных.
Описанные выше свойства представляют собой иллюстрацию. Таким образом, варианты осуществления не ограничиваются этими свойствами. Другие свойства вариантов осуществления будут понятны из следующего описания и приложенных чертежей.
Ссылка в данном описании на "один вариант осуществления" или на "вариант осуществления" означает, что определенное свойство структура или характеристика, описанная в связи с вариантом осуществления, включена, по меньшей мере, в один вариант осуществления. Таким образом, появление фразы "в одном варианте осуществления" или "в варианте осуществления" в различных местах данного описания не обязательно во всех случаях обозначает один и тот же вариант осуществления. Кроме того, различные свойства, структуры или характеристики могут быть скомбинированы любым соответствующим способом в одном или больше вариантах осуществления.
На фиг.1 показана схема примерной операционной среды 100, в которой могут использоваться технологии, описанные здесь. Среда 100 может включать в себя различные элементы. Например, на фиг.1 показана среда 100, включающая в себя платформу 101 обработки, устройство 103 дисплея и интерфейс 105. Эти элементы могут быть воплощены в любой комбинации аппаратных средств и/или программных средств.
Платформа 101 обработки может включать в себя одну или больше операционных систем (OS). Например, на фиг.1 показана платформа 101 обработки, в которой работают операционные системы 108а и 108b. Однако любое количество операционных систем можно использовать. В этих операционных системах могут быть выполнены различные компьютерные приложения. Например, на фиг.1 показана платформа 101 обработки, выполняющая приложение 102a-d. Каждое из этих приложений может выполняться в соответствующей одной из OS 108a-b.
В приложениях 102a-d используется графические данные, которые выводят в один или больше дисплеев (таких как устройство 103 дисплея). Примеры приложения включают в себя различные относящиеся к бизнесу приложения (например, текстовые процессоры, приложения электронных таблиц, приложения презентаций, электронной почты, приложения отправки сообщений и т.д.), деловые приложения, видеоприложения и/или другие приложения.
Платформа 101 обработки может дополнительно включать в себя один или больше конвейеров графической обработки. Например, на фиг.1 показана платформа 101 обработки, включающая в себя конвейеры 106а и 106b графической обработки. Однако можно использовать любое количество конвейеров графической обработки. Такие конвейеры графической обработки обеспечивают графические операции для приложений 102a-d. В вариантах осуществления их обрабатывают через один или больше графических интерфейсов прикладной программы (API) (не показана). Такие API могут обеспечивать различные процедуры, структуры данных, классы объектов и/или протоколы, которые составляют интерфейс с конвейерами 106а-Ь графической обработки. Примеры API включают в себя (но не ограничиваются этим), коммерчески доступные API, такие как OpenGL, DirectX и другие.
В частности, конвейеры 106а-b графической обработки выполняют графические операции в ответ на директивы, принятые и обработанные через графический API. Примерные операции включают в себя предоставление и выход изображений (кадров) в устройство 103 дисплея. Как описано выше, конвейеры 106а-Ь графической обработки могут быть воплощены в любой комбинации аппаратных и/или программных средств. Таким образом, в вариантах осуществления конвейеры 106а-Ь графической обработки могут быть воплощены с использованием одного или больше модулей графической обработки (GPU).
На фиг.1 показано, что устройство 103 дисплея включает в себя физический дисплей 109, носитель 110 информации, модуль 112 управления, интерфейс 113 пользователя и энергонезависимый носитель 114 информации.
Физический дисплей 109 предоставляет визуальный выход для пользователя. В вариантах осуществления этот выход представлен в форме последовательных изображений (или кадров). В соответствии с этим примерные физические дисплеи включают в себя дисплеи на светодиодах (LED), жидкокристаллические дисплеи (LCD), плазменные дисплеи и электронно-лучевую трубку (CRT). Варианты осуществления, однако, не ограничены этими примерами.
Каждый из кадров, выводимых физическим дисплеем 109, может содержать множество пикселей. Данные, представляющие эти пиксели (например, значения цвета и/или интенсивности), сохраняют в буфере кадра в пределах носителя 110 информации. Такие данные можно назвать "данными кадра". Таким образом, путем сохранения данных кадра, буфер кадра "управляет" физическим дисплеем 109.
В вариантах осуществления устройство 103 дисплея может предоставлять множество буферов кадра. Например, на фиг.1 показано устройство 103 дисплея, включающее в себя буферы 111a и 111b кадра. Однако можно использовать любое количество буферов кадра. Такие буфера кадра могут быть включены в носитель 110 информации. Носитель 110 информации может содержать энергозависимое оперативное запоминающее устройство (RAM) (например, динамическое ОЗУ). Однако можно использовать другие типы носителей информации, такие как энергонезависимое запоминающее устройство.
В вариантах осуществления устройство 103 дисплея принимает данные кадра из платформы 101 обработки. Более конкретно, конвейеры 106а-b графической обработки (через интерфейс 105) могут предоставлять данные 120 кадра в устройство 103 дисплея. После приема устройство 103 дисплея сохраняет данные кадра в буферах 111a и/или 111b кадра. В свою очередь, такие сохраненные данные кадра могут быть открыты физическим дисплеем 109 в соответствии с описанными здесь технологиями.
Как описано выше, устройство 103 дисплея включает в себя модуль 112 управления, который направляет различные операции устройства 103 дисплея. Такие операции включают в себя прием, сохранение и вывод данных кадра, принятых из платформы 101 обработки. В соответствии с этим модуль 112 управления может обрабатывать передаваемые данные через интерфейс 105, в моменты времени отображения, с процедурами управления питанием и т.д. Кроме того, модуль 112 управления может управлять взаимодействиями пользователя через интерфейс 113 пользователя или через канал 122 управления для виртуализации стека программного обеспечения.
Интерфейс 113 пользователя позволяет пользователю взаимодействовать с устройством 103 дисплея. Такое взаимодействие может включать себя выполнение пользователем различных описанных здесь операций. Такие операции включают в себя (но не ограничиваются этим) выбор буфера кадра в устройстве 103 дисплея для выхода, выбор режима вывода буфером одного кадра или режима вывода буфером множества кадров, и подачу, и отключение рабочего питания для устройства 103 дисплея. Интерфейс 113 пользователя может быть воплощен различными способами. Например, интерфейс 113 пользователя может включать в себя различные кнопки, ключи, дисковые набиратели номеров и/или другие устройства ввода. Кроме того, или в качестве альтернативы, интерфейс 113 пользователя может включать в себя различные меню и/или элементы сенсорного экрана, предусмотренные через физический дисплей 109.
В вариантах осуществления устройство 103 дисплея может включать в себя энергонезависимый носитель 114 информации (например, запоминающее устройство типа флэш). Как более подробно описано ниже, энергонезависимый носитель 114 информации может обеспечивать сохранение элементов содержания буферов 111a-b кадра, когда устройство 103 дисплея выполняет переход между состояниями питания (например, из более высокого состояния питания в более низкое состояние питания). В качестве альтернативы, варианты осуществления могут обеспечивать такие свойства в результате воплощения буферов 111a-b кадров в виде энергонезависимого запоминающего устройства таким образом, что они всегда доступны и содержат свое содержание.
Интерфейс 105 соединен между платформой 101 обработки и устройством 103 дисплея. В частности, интерфейс 105 позволяет для платформы 101 обработки предоставлять в устройство 103 дисплея данные 120 кадра. Интерфейс 105 также позволяет для платформы 101 обработки и устройства 103 дисплея выполнять обмен друг с другом информацией 122 управления.
Интерфейс 105 может быть осуществлен различными способами. Например, в вариантах осуществления интерфейс 105 может включать в себя интерфейс типа "включай и работай", такой как интерфейс универсальной последовательной шины (USB) (например, USB 1.0, USB 2.0, USB 3.0 и т.д.). Однако можно использовать различные другие последовательные и/или параллельные интерфейсы. Кроме того, интерфейс 105 может быть осуществлен с локальной кабельной вычислительной сетью (LAN) (такой как сеть Ethernet). Кроме того, интерфейс 105 может быть осуществлен с беспроводной сетью. Примеры беспроводных сетей включают в себя сети, такие как беспроводные сети LAN IEEE 802.11 (WiFi), сети IEEE 802.16 WiMAX, и беспроводные персональные вычислительные сети (WPAN) (например, WPAN 60 ГГц). Однако варианты осуществления не ограничиваются этими примерами.
В вариантах осуществления буферы 111а-b кадров устройства 103 дисплея выглядят как "дисплей" для процессов и/или операционных систем в платформе 101 обработки. Таким образом, в вариантах осуществления процессы и/или операционные системы не содержат данные о физическом дисплее 109 устройства 103 дисплея. Кроме того, в вариантах осуществления пользователь или независимый программный стек управляет тем, как буферы кадров в устройстве 103 дисплея фактически просматривают на физическом дисплее 109. Например, варианты осуществления обеспечивают для пользователя или программного обеспечения функции "пролистывания" или "переворачивания" через различные буферы кадра. В качестве альтернативы или в дополнение варианты осуществления позволяют пользователям или программному обеспечению отображать различные буферы кадра в различные независимые области на физическом дисплее 109 таким образом, чтоб множество кадров можно просматривать одновременно.
В вариантах осуществления, элементы по фиг.1 могут быть воплощены как компьютерная система. Например, платформа 101 обработки может представлять собой персональный компьютер, и устройство 103 дисплея может представлять ее соответствующий монитор. Варианты осуществления, однако, не ограничиваются такими компоновками.
Кроме того, элементы по фиг.1 могут включать в себя один или больше процессоров (например, микропроцессоров). Например, платформа обработки может содержать любую комбинацию микропроцессоров. В качестве примера, операции, описанные здесь (такие как операции OS 108a-b, приложения 102a-d и конвейеры графической обработки, могут быть предоставлены центральным процессорным устройством (устройствами) ЦПУ и/или модулем (модулями) графической обработки ГПУ. Такие ЦПУ и/или ГПУ могут работать в соответствии с инструкциями (например, программным обеспечением), сохраненным на носителе информации. Такой носитель информации (который может быть включен в платформу 101 обработки) может включать в себя запоминающее устройство (энергозависимое или энергонезависимое), дисковый накопитель и т.д. В соответствии с этим устройство 103 дисплея может также включать в себя один или больше процессоров для обеспечения свойств, описанных здесь. Такие процессоры могут выполнять инструкции (например, программное обеспечение), сохраненные на носителе информации. Такой носитель информации (который может быть включен в устройство 103 дисплея) может включать в себя запоминающее устройство (энергозависимое или энергонезависимое), дисковый носитель информации и т.д. Дополнительные детали в отношении таких вариантов осуществления предоставлены ниже.
Операции для различных вариантов осуществления могут быть дополнительно описаны со ссылкой на следующие чертежи и на сопровождающие примеры. Некоторые из чертежей могут включать в себя логический поток. Хотя такие чертежи, представленные здесь, могут включать в себя определенный логический поток, можно понять, что логический поток просто предоставляет пример того, как общие функции, описанные здесь, могут быть воплощены. Кроме того, заданный логический поток не обязательно должен быть выполнен в представленном порядке, если только другое не будет обозначено. Кроме того, заданный логический поток может быть воплощен с помощью аппаратного элемента (элементов), программного элемента (элементов), выполняемых одним или больше процессорами, или любой их комбинацией. Варианты осуществления не ограничиваются этим контекстом.
Традиционный конвейер графической видеообработки включает в себя отображаемое содержание, которое передают в запоминающее устройство буфера кадра системы в платформе обработки, и затем предоставляет данные (данные о кадрах), передаваемые в устройство дисплея, через обычный интерфейс дисплея. Примеры таких обычных интерфейсов включают в себя видеографический адаптер (VGA), цифровой визуальный интерфейс (DVI), мультимедийный интерфейс высокой четкости (HDMI), порт дисплея (DP) и аналоговые телевизионные форматы. В свою очередь, устройство дисплея затем осуществляет управление отображением, используя принятые данные кадра. Это основано на моментах времени, которыми можно управлять с помощью логических средств, которые находятся в платформе обработки или в устройстве дисплея.
В последнее время был разработан подход, который выводит текущий кадр из буфера кадра платформы обработки. Выведенный кадр считывают и сравнивают с предыдущим кадром. На основе такого сравнения определяют разность ("дельта"). Такую дельта (которая обеспечивает сжатие без потерь) затем передают в устройство дисплея через общий интерфейс, такой как интерфейс USB или Ethernet.
После приема устройство дисплея использует свое внутреннее логическое средство для разворачивания дельта и сохранения несжатых данных в своем собственном буфере кадра. Кроме того, устройство дисплея может обрабатывать различные операции, такие как локальное обновление экрана дисплея, масштабирование, поворот и включение/выключение отображения. Поскольку в этих технологиях используются общие интерфейсы, несколько устройств дисплея могут поддерживаться (ограничено размером буфера кадра платформы обработки и полосой пропускания ее обработки).
К сожалению, такие операции вывода, считывания и сравнения (которые выполняются платформой обработки) требуют значительного объема обработки платформы обработки. Например, для видеоизображения с высокой интенсивностью применяющихся действий может потребоваться, по существу, вся способность обработки типичной платформы обработки (например, персонального компьютера).
Таким образом, такой подход проявляет различные недостатки. Один недостаток состоит в том, что платформа обработки не имеет данные о выводе данных из буфера кадра и не использует преимущества удаленного буфер кадра. В результате, платформы обработки не использует полосу пропускания обработки и мощность путем построения и поддержания своего собственного буфера кадра в своем локальном глобальном запоминающем устройстве.
Другой недостаток такого подхода состоит в том, что перевод и считывание буфера кадра платформы обработки (например, с помощью программного обеспечения отбраковки кадра третьей стороны) представляет собой незащищенное место в системе безопасности. По этой причине, программное обеспечение третьей стороны может захватывать любое содержание кадра (такое как содержание, содержащее персональные данные) и передавать их в любое место. Таким образом, такая отбраковка кадра, вероятно, будет запрещена в будущем.
В вариантах осуществления такие недостатки преодолевают благодаря использованию преимуществ дисплеев, которые имеют интегрированные буферы кадра. Например, в вариантах осуществления, платформы обработки могут иметь конвейер (конвейеры) графической обработки, которые подразумевают дистанционно расположенный буфер кадра и включают этот дистанционный буфер кадра как часть общего процесса конвейерной графической обработки и обеспечивают надежное сохранение содержания от момента его формирования до отображения. Дистанционный буфер кадра может быть соединен через любой цифровой интерфейс и, если требуется шифрование содержания, может быть принят соответствующий способ шифрования интерфейса.
Благодаря включению концепции дистанционно расположенного буфера кадра платформы обработки могут предлагать только данные дельты от кадра к кадру, устраняя, таким образом, необходимость упомянутой выше операции сравнения кадра с кадром. Дополнительные варианты осуществления могут определять, следует ли сжимать или не следует сжимать такие данные перед отправкой их через интерфейс. Такое определение может быть основано на доступной полосе пропускания интерфейса. Например, сжатие можно использовать для интерфейсов USB 1.0 и USB 2.0, но не для интерфейса USB 3.0.
На фиг.2 показана схема примерного варианта 200 осуществления, которая может быть включена в конвейер графической обработки, такой как любой из конвейеров графической обработки по фиг.1. Такое осуществление может включать в себя различные элементы. С целью иллюстрации (а не для ограничения) на фиг.2 показан механизм 201 получения графических данных, модуль 214 управления буфером кадра, буфер 216 кадра и модуль 218 интерфейса передачи данных. Эти элементы могут быть воплощены в любой комбинации аппаратных и/или программных средств.
Механизм 201 получения графических данных генерирует данные кадра из входных графических данных 220. Механизм 201 получения графических данных может быть воплощен различными способами. На фиг.2 показан механизма 201 получения графических данных, включающий в себя модуль 202 преобразования, модуль 204 освещения, модуль 206 установки, модуль 208 растеризации, модуль 210 текстуры, модуль 212 обработки пикселя.
Как показано на фиг.2, механизм 201 получения графических данных принимает входные графические данные 220 в модуле 202 преобразования. Входные графические данные 220 содержат представления сцены в пространстве модели (например, трехмерном пространстве). В вариантах осуществления входные графические данные 220 могут быть приняты из одного или больше приложений (например, через графический API ()).
Модуль 202 преобразования преобразует координаты во входных графических данных 220 из пространства модели в пространство экрана. Кроме того, модуль 202 преобразования выполняет такие операции, как тестирование клипа и любые операции формирования клипа.
Модуль 204 освещения рассчитывает цвета вершин, основываясь на предварительно установленных цветах материала и нормалях вершины. В случае необходимости он может включать в себя один цвет на вершину. Модуль 206 установки рассчитывает наклоны кромок основных цветов, а также градиенты (изменения в направлениях Х и Y) по параметрам глубины, цвета и текстуры.
Модуль 208 растеризации находит все действительные выборки пикселя для основных цветов и рассчитывает правильное значение глубины, цвета и текстуры в каждой точке выборки. Модуль 210 текстуры выполняет поиск одного или больше значений элементов текстуры из запоминающего устройства текстуры и выполняет операции смещения, специфичные для текстуры цвета входящего пикселя.
Модуль 212 обработки пикселя выполняет операции, которые возникают один раз на пиксель, такие как сравнение глубины, смещение пикселя и другие аналогичные операции. В результате, модуль 212 обработки пикселя предоставляет в 214 модуль управления буфером кадра данные пикселя, которые представляют содержание изображения одного экрана.
Модуль 214 управления буфером кадра выполняет операции, относящиеся к сохранению данных пикселя. Например, модуль 214 управления буфером кадра определяет, следует ли сохранять данные пикселя локально в буфере 216 кадра или следует ли передать данные пикселя в буфер кадра в устройстве дисплея (таком как устройство 103 дисплея).
Модуль 218 интерфейса передачи данных обеспечивает доступ к интерфейсу, который соединяется с устройством дисплея (таким как интерфейс 105 на фиг.1). Например, модуль 218 интерфейса передачи данных может предоставлять интерфейс с данными пикселя (принятыми либо из буфера 216 кадра, или непосредственно из модуля 214 управления буфером кадра). Кроме того, модуль 218 интерфейса передачи данных может принимать (через интерфейс) информацию управления, предоставляемую устройством дисплея. Такие данные управления могут обозначать, имеет ли устройство дисплея буфер (буферы) кадра. В вариантах осуществления данные управления могут находиться в структуре данных, которая описывает возможности устройства дисплея, такие как структура расширенных данных идентификации дисплея (EDID). Однако можно использовать другие форматы данных.
Как показано в фиг.2, модуль 218 интерфейса передачи данных предоставляет в модуль 214 управления буфером кадра такую информацию управления. Например, на фиг.2 показан модуль 218 интерфейса передачи данных, который предоставляет в модуль 214 управления буфером кадра индикатор 222 буфера кадра и индикатор 224 пропускной способности интерфейса. Индикатор 222 буфера кадра обозначает, включает ли в себя устройство дисплея буфер кадра. Индикатор 224 пропускной способности интерфейса обозначает пропускную способность (полосу пропускания) интерфейса платформы обработки, который работает с устройством дисплея. В вариантах осуществления такой индикатор может устанавливать тип интерфейса (например, USB 1.0, USB 2.0, USB 3.0 и т.д.). Однако можно использовать другие показатели пропускной способности.
На основе таких индикаторов модуль 214 управления буфером кадра определяет, как обрабатывать генерируемые данные кадра. Например, если подключенное устройство дисплея не имеет интегрированный буфер кадра, оно сохраняет генерируемые данные кадра в локальном буфере 216 кадра. В соответствии с этим такие локальные сохраненные данные кадра будут переданы в устройство дисплея в соответствии с обычной технологией интерфейса дисплея (например, VGA, DVI, HDMI, DP, телевизионный и т.д.).
В отличие от этого, если подключенное устройство дисплея имеет интегрированный буфер кадра, тогда модуль 214 управления буфером кадра передает данные кадра (например, "дельта" или отличие от предыдущего кадра) в устройство дисплея (через модуль 214 интерфейса и подключенный интерфейс) для сохранения в его интегрированном буфере кадра. Такие данные кадра передают на основе пропускной способности интерфейса. Например, для интерфейсов более высокой пропускной способности данные кадра (например, дельта) могут быть переданы в несжатом формате. Однако для интерфейсов с низкой пропускной способностью, данные кадра (например, дельта) могут быть переданы в сжатом формате. Варианты осуществления, однако, не ограничиваются этим примером.
Кроме того, модуль 214 управления буфером кадра может шифровать данные кадра, предназначенные для передачи через интерфейс (через модуль 218 интерфейса передачи данных). Различные технологии шифрования можно использовать, такие как стандартный механизм (механизмы) шифрования, используемый интерфейсом между платформой обработки и устройством дисплея. В соответствии с этим, устройство дисплея (например, его модуль управления), может дешифровать такие данные после приема.
На фиг.3 показана схема логического потока 300, которая может представлять операции, выполняемые в одном или больше вариантах осуществления. Такой поток включает в себя платформу обработки, имеющую один или больше конвейеров графической обработки, и устройство дисплея, имеющее один или больше буферов кадра. Таким образом, такой поток может быть выполнен с использованием элементов, показанных на фиг.1. Однако варианты осуществления не ограничены этим контекстом. Хотя на фиг.3 показана конкретная последовательность, другие последовательности можно использовать. Кроме того, представленные операции могут быть выполнены в различных параллельных и/или последовательных комбинациях.
В блоке 302 платформа обработки (например, платформа 101 обработки) определяет, имеет или нет устройство дисплея интегрированный буфер кадра. В вариантах осуществления это может содержать прием информации управления (например, EDID) из устройства дисплея. Если это так, тогда обработка переходит к блоку 304. В противном случае, операция переходит к блоку 308.
В блоке 304 платформа обработки определяет пропускную способность (полосу пропускания) интерфейса. На основе этого платформа обработки определяет формат передачи для данных кадра в блоке 306. Например, для низкой пропускной способности платформа обработки может определять, что следует использовать сжатый формат передачи для данных кадра. Однако для более высокой пропускной способности платформа обработки может определять, что следует использовать несжатый формат передачи для данных кадра.
В вариантах осуществления пропускная способность может быть определена по типу используемого интерфейса. Например, интерфейсы USB 1.0 и USB, 2.0 могут рассматриваться как интерфейсы с более низкой пропускной способностью (что приводит к формату передачи со сжатием). В отличие от этого интерфейсы USB 3.0 и LAN (например, Ethernet) можно рассматривать как интерфейсы с более высокой пропускной способностью, что приводит к формату передачи без сжатия. Однако варианты осуществления не ограничены этими примерами.
Таким образом, в блоке 307 платформа обработки генерирует данные кадра и передает их через интерфейс для отображения в соответствии с выбранным форматом передачи.
Как описано выше, блок 308 выполняется, если устройство дисплея не имеет интегрированный буфер кадра. В соответствии с этим, в блоке 308 платформа обработки генерирует данные кадра и сохраняет их в своем собственном буфере кадра. В контексте фиг.2, это может содержать модуль 214 управления буфером кадра, который содержит данные кадра, генерируемые вариантом 200 осуществления, в буфере 216 кадра.
После этого выполняется блок 310, в котором платформа обработки передает локально сохраненные данные кадра в устройство дисплея в соответствии с обычной технологией интерфейса дисплея (например, VGA, DVI, HDMI, DP, телевидение и т.д.).
Как описано выше, варианты осуществления могут предоставлять множество буферов кадра в пределах устройства дисплея (такого как устройство 103 дисплея). Например, на фиг.1 показано устройство 103 дисплея, имеющее буферы 111a и 111b кадра. Между таким множеством буферов кадра может поддерживаться полная изоляция. Таким образом, каждому буферу кадра в устройстве дисплея может быть назначена различная обработка (варианты обработки) или операция (операции). Например, каждому буферу кадра может быть назначена определенная OS или на одно или больше конкретных приложений. Кроме того, как описано выше, платформы обработки (такие как платформа 101 обработки) могут включать в себя множество конвейеров графической обработки. В вариантах осуществления каждый из множества конвейеров может быть направлен на соответствующий буфер кадра устройства дисплея.
На фиг.4 показана схема, представляющая примерное распределение данных кадра в контексте фиг.1. В частности, на фиг.4 показан конвейер 106а графической обработки, обеспечивающий поток 420а данных кадра в буфер 111a кадра, и конвейер 106b графической обработки, который обеспечивает поток 420b данных кадра в буфер 111b кадра. Со ссылкой на фиг.1, такие потоки данных кадра могут составлять часть данных 120 кадра и информацию 122 управления. В вариантах осуществления потоки 420а и 420b данных кадра могут быть переданы через разные соединения (например, изолированные соединения), предусмотренные интерфейсом 105. В качестве альтернативы, одно и то же соединение можно использовать для всех данных кадра. Однако в пределах такого соединения передачу данных кадра помечают для их соответствующих буферов кадра в источнике (например, в платформе обработки). Используемая схема нанесения меток может быть определена при выборе пользователя в устройстве дисплея. Таким образом, в вариантах осуществления может быть достигнута изоляция с помощью устройства дисплея (например, модуля управления в устройстве дисплея).
Потоки 420а и 420b данных кадра могут соответствовать различным контекстам пользователя (например, различным процессам или операциям платформы 101 обработки). Например, поток 420 данных кадра может соответствовать процессам (например, приложениям) первой операционной системы, работающей на платформе 101 обработки, в то время как поток 422 данных кадра может соответствовать процессам (например, приложениям) второй операционной системы, работающей на платформе 101 обработки. Кроме того, поток 420 данных кадра может соответствовать первой группе одного или больше приложений, в то время как поток 422 данных кадра может соответствовать второй группе одного или больше приложений. Эти группы приложений могут быть распределены любым способом среди одной или больше операционных систем. В вариантах осуществления только приложения или операционные системы могут иметь данные об их соответствующем буфере кадра.
Варианты осуществления могут обеспечивать изолированность между потоками данных кадра. Такая изолированность может быть предусмотрена через множество соединений, предусмотренных интерфейсом. Например, в контексте интерфейсов USB может осуществляться обмен каждым потоком данных кадра (и его соответствующая информация управления) через один или больше каналов USB. Однако могут использоваться другие технологии формирования интерфейса и/или изоляции. Кроме того, каждый буфер кадра в устройстве 103 дисплея может быть "фиксированным" для определенного потока данных кадра, так что его нельзя повторно назначить без соответствующего разрешения пользователя.
Такой подход может предпочтительно обеспечивать для пользователя удобный способ для переключения назад и вперед между разным содержанием, отображаемым на устройстве дисплея. Кроме того, такой подход обеспечивает надежный путь для персонального содержания. Например, такой подход обеспечивает возможность для защищенной OS и пользователя S совместно использовать монитор (устройство дисплея). Кроме того, такой подход может обеспечить возможность быстрого переключения между средами без сложного переключения или отображения памяти.
На фиг.5 показана схема логического потока 500, которая может представлять операции, выполняемые в одном или больше вариантах осуществления. Такой поток включает в себя платформу обработки и устройство дисплея. Таким образом, такой поток может быть выполнен элементами, показанными на фиг.1. Однако варианты осуществления не ограничены таким контекстом. Хотя на фиг.5 показана определенная последовательность, могут использоваться другие последовательности. Кроме того, представленные операции могут выполняться в различных параллельных и/или последовательных комбинациях.
В блоке 502 пользователь определяет выделение операций платформы обработки для множества буферов кадра в устройстве дисплея. Например, пользователь может выделять процессы первой операционной системы для первого буфера кадра и процессы второй операционной системы для второго буфер кадра.
В блоке 504, изолированные соединения в буферах кадра установлены для каждого выделения. Например, один или больше каналов USB может быть установлен для каждого выделения. В качестве альтернативы, один или больше туннелей протокола Интернет (IP), может быть установлен для каждого выделения.
Таким образом, в блоке 506 данные кадра для выделенных операций передают через их соответствующее соединение (соединения) в устройство дисплея. Такие данные принимают и сохраняют в их соответствующих буферах кадра в устройстве дисплея в блоке 508.
В блоке 510 пользователь выбирает буфер кадра для вывода с помощью дисплея. В вариантах осуществления это может подразумевать взаимодействие пользователя с интерфейсом пользователя устройства дисплея. Однако варианты осуществления не ограничены этим примером. На основе этого выбора устройство дисплея выводит элементы содержания выбранного буфера кадра в блоке 512. Как обозначено на фиг.5, операция может возвращаться в блок 510, где пользователь меняет выбор буфера кадра для вывода в блоке 512.
Как описано выше, варианты выполнения могут предоставить устройство дисплея, имеющее буфер (буферы) кадра и энергонезависимый носитель информации. Например, на фиг.1 показано устройство 103 дисплея, включающее в себя буферы 111a-b кадра и энергонезависимый носитель 114 информации. Такое свойство обеспечивает эффективную обработку состояний питания. Например, при переходе в состояние более низкого питания (например, приостановление подачи питания), устройство дисплея может сохранять элементы содержания своего буфера (буферов) кадра в энергонезависимом носителе информации. Наоборот, при возврате в состояние более высокого питания, устройство дисплея может записывать сохраненные элементы содержания обратно в свои буферы кадра.
Такие свойства предпочтительно позволяют преодолеть недостатки обычных подходов. Например, обычные подходы не обеспечивают такое энергонезависимое сохранение в устройствах дисплея. Кроме того, для устройств дисплея, имеющих буферы кадра, обычные подходы не содержат буфер кадра в соответствующей платформе обработки. Таким образом, для того чтобы устройство дисплея могло войти в такое состояние низкого питания (например, состояние приостановки подачи питания), платформа обработки должна считать содержание буфера кадра обратно из устройства дисплея и сохранить это содержание в своем собственном энергонезависимом носителе информации. К сожалению, это может потребовать чрезмерного количества энергии и времени.
На фиг.6 показана схема потока 600 логической обработки, которая может представлять операции, выполняемые в одном или больше вариантах осуществления. Такой поток обработки включает в себя платформу обработки, устройство дисплея, имеющее один или больше буферов кадра и энергонезависимый носитель информации. Таким образом, такой поток обработки может быть выполнен элементами, показанными на фиг.1. Однако варианты осуществления не ограничены этим контекстом. Хотя на фиг.6 показана определенная последовательность, могут использоваться другие последовательности. Кроме того, представленные операции могут быть выполнены в различных параллельных и/или последовательных комбинациях.
В блоке 602 платформа обработки определяет, что должно произойти изменение состояния питания (например, событие перехода системы в режим ожидания). В частности, платформа обработки определяет переход из первого (более высокого) состояния питания ко второму (более низкому) состоянию питания. Это определение может быть основано на возникновении одного или больше из инициирующих условий (например, неактивность пользователя, низкий уровень батареи и т.д.). В вариантах выполнения событие перехода системы в режим ожидания может представлять собой состояние перехода в состояние ожидания С3 или С4 в соответствии со спецификацией Усовершенствованного интерфейса управления конфигурированием и энергопотреблением (ACPI). Варианты осуществления, однако, не ограничены этими примерными состояниями.
На основе такого определения платформа обработки (в блоке 604) передает директиву на изменение состояния питания устройства дисплея. В контексте фиг.1, обмен такой директивой может осуществляться через интерфейс 105 как информацией 122 управления.
Устройство дисплея принимает эту директиву в блоке 606. В свою очередь, устройство дисплея определяет, что подача рабочего питания в его буфер (буферы) кадра должна быть приостановлена. В соответствии с этим в блоке 608 устройство дисплея сохраняет содержание этого буфера (буферов) (например, данные кадра) в своем энергонезависимом носителе информации. После этого устройство дисплея может войти в направляемое состояние питания в блоке 610. В контексте фиг.1, рабочими характеристиками блоков 606-610 можно управлять с помощью модуля 112 управления.
В блоке 612 платформа обработки определяет, что должно произойти дополнительное изменение состояния питания. В частности, платформа обработки определяет, что должен произойти переход из второго (низкого) состояния питания в более высокое состояние питания. В вариантах осуществления это может означать возврат к первому состоянию питания. В качестве альтернативы, это может представлять собой переход к другому более высокому состоянию питания.
В соответствии с этим в блоке 614 платформа обработки передает директиву в устройство дисплея. Со ссылкой на фиг.1 такая директива может быть передана через интерфейс 105 как информация 122 управления.
Устройство дисплея принимает такую директиву в блоке 616. После приема устройство дисплея предоставляет питание для работы в свой буфер (буферы) кадра в блоке 618. В свою очередь, в блоке 620 устройство дисплея копирует сохраненное содержание из энергонезависимого запоминающего устройства обратно в свой буфер (буферы) кадра. Таким образом, данные кадра записывают в его буфер (буферы) кадра. В контексте фиг.1 рабочими характеристиками блоков 616-620 можно управлять с помощью модуля 112 управления.
Как описано здесь, варианты осуществления могут предоставлять устройства отображения, имеющие интегрированные буферы кадра. Это может быть выполнено в локальном запоминающем устройстве отображаемого кадра. Кроме того, в вариантах осуществления устройство дисплея (например, устройство 103 дисплея) может иметь таблицу карты кадра (FMT) в своем локальном отображении памяти кадра. FMT может управлять своей памятью таким образом, что она может не быть разделена на множество независимых буферов кадра, которые отображают на один физический дисплей.
Такое свойство предпочтительно позволяет избирательно использовать крупный дисплей, обеспечивающий единое ощущение при просмотре, или "разделенный экран", предоставляя ощущение множества независимых отображений. Например, пользователь может разделить экран пополам (например, либо горизонтально, или вертикально), для получения восприятия независимых отображений. Кроме того, пользователь может динамически переключаться между восприятием одного отображения и восприятием множества независимых отображений.
Указано, что каждый монитор, добавленный в системе бизнеса, повышает производительность на 50%. Таким образом, такое свойство предпочтительно обеспечивает для пользователя возможность получить ощущение множества мониторов, используя один монитор. Таким образом, такое свойство, предпочтительно, оставляет свободное пространство на столе.
Кроме того, FMT может включать в себя поля меток, ассоциированные с блоками запоминающего устройства отображаемого дисплея, которые защищают блоки друг от друга, и обеспечивает возможность выделения памяти для разных операционных систем, приложений и/или пользователей.
В вариантах осуществления FMT управляют, используя интерфейс пользователя на устройстве дисплея. Это отличается от среды окна, поскольку управление FMT не зависит от интерфейсов пользователя, предусматриваемых соответствующими платформами обработки (например, платформой 101 обработки).
Такой выбор пользователя (например, множество мониторов и один монитор), приводит к разной выходной разрешающей способности. Таким образом, для предоставления такого свойства устройство дисплея предоставляет в платформу обработки информацию о разрешении (на основе выбора пользователя) через интерфейс, соединяющий эти элементы (например, интерфейс 105). Такая информация о разрешающей способности может быть предусмотрена в разных форматах, таких как структура (структуры) данных EDID.
После приема этой информации платформа обработки (то есть, ее графической конвейер (конвейеры) обработки) определяет соответствующее разрешение (разрешения) и генерирует данные кадра в соответствии с таким разрешением (разрешениями).
Как описано выше, со ссылкой на фиг.1, устройство 103 дисплея включает в себя носитель 110 информации, который обеспечивает первый буфер 111a кадра и второй буфер 111b кадра. На фиг.7 показана схема альтернативной компоновки, в которой используется FMT. В частности, на фиг.7 показан носитель 110' информации, который можно использовать в устройстве дисплея, таком как устройство 103 дисплея.
Как показано на фиг.7, носитель 110' информации включает в себя пространство 702 буфера кадра, которое может быть гибко выделено для обеспечения одного или больше буферов кадра. Такое гибкое выделение определяется FMT 704. Например, на фиг.7 показано, что FMT 704 выделяет пространство 702 буфера кадра в первый участок 706 буфера кадра и второй участок 708 буфера кадра. Однако в вариантах осуществления FMT 704 может выделять пространство 702 буфера кадра в отдельный участок буфера кадра или в любое множество участков буфера кадра.
На фиг.8 показана схема потока 800 логической обработки, который может представлять операции, выполняемые в одном или больше вариантах осуществления. Такой поток обеспечивает платформу обработки, устройство дисплея, имеющее один или больше буферов кадра и энергонезависимый носитель информации. Таким образом, такой поток может быть выполнен с помощью элементов на фиг.1. Однако варианты осуществления не ограничены этим контекстом. Хотя на фиг.8 показана конкретная последовательность, другие последовательности могут использоваться. Кроме того, представленные операции могут быть выполнены в виде различных параллельных и/или последовательных комбинаций.
В блоке 802 устройство дисплея принимает выбор пользователя для вывода одного или больше потоков данных дисплея в его физический дисплей. Например, выбор пользователя может представлять собой вывод одного потока данных кадра (ощущение одного монитора). В качестве альтернативы, выбор пользователя может представлять вывод множества потоков данных кадра (ощущение множества мониторов). Кроме того, выбор пользователя может обозначать выходные форматы (например, рядом друг с другом, мозаичное представление сверху, снизу и т.д.). Такой выбор пользователя может быть принят через интерфейс пользователя устройства дисплея (например, через интерфейс 113 пользователя по фиг.1).
На основе выбора пользователя устройство дисплея выделяет (в блоке 804) участки сохранения буфера кадра в его носителе информации. Например, в контексте фиг.7 такие участки могут находиться в пределах пространства 702 буфера кадра. Кроме того, такое выделение может включать в себя генерирование FMT.
В блоке 806, устройство дисплея обозначает информацию, передаваемую в устройство обработки в отношении выбора пользователя. Эта информация может обозначать выбранные потоки данных кадров. Кроме того, такая информация может обозначать информацию разрешения (на основе выбора пользователя). В вариантах осуществления такая информация может быть передана через интерфейс между платформой обработки и устройством дисплея (например, интерфейс 105).
В блоке 807 платформа обработки принимает информацию, переданную в блоке 806. На основе такой информации, платформа обработки генерирует выбранный поток (потоки) данных кадра в соответствии с принятыми обозначениями (например, в соответствии со значением (значениями) разрешения). Кроме того, платформа обработки передает выбранные потоки данных кадра через интерфейс. Как описано здесь, каждый поток данных кадра может быть передан через соответствующее соединение (например, изолированное соединение), в котором предусмотрен интерфейс.
Устройство дисплея принимает выбранные потоки данных кадра в блоке 808. В свою очередь, устройство дисплея сохраняет данные кадра на соответствующем выделенном участке (участках) своего носителя информации в блоке 810.
Исходя из этого, устройство дисплея выводит выбранный поток (потоки) данных кадра в соответствии с выбором пользователя в блоке 812.
Как описано здесь, различные варианты осуществления могут быть воплощены, используя элементы аппаратных средств, программные элементы или любую их комбинацию. Примеры аппаратных элементов могут включать в себя процессоры, микропроцессоры, схемы, элементы цепей (например, транзисторы, резисторы, конденсаторы, катушки индуктивности и т.д.), интегральные схемы, специализированные интегральные схемы (ASIC), программируемые логические устройства (PLD), цифровые процессоры сигналов (DSP), логические матрицы, программируемые пользователем (FPGA), логические вентили, регистры, полупроводниковое устройство, микросхемы, кристаллы, наборы микросхем и т.д.
Примеры программного средства могут включать в себя программные компоненты, программы, приложения, компьютерные программы, прикладные программы, системные программы, машинные программы, программное обеспечение операционной системы, межплатформенное программное обеспечение, встроенное программное обеспечение, программные модули, процедуры, подпроцедуры, функции, способы, подпрограммы, программные интерфейсы, интерфейсы программ приложения (API), наборы инструкций, код вычислений, компьютерный код, сегменты кода, сегменты компьютерного кода, слова, значения, символы или любую их комбинацию
Некоторые варианты осуществления могут быть воплощены, например, используя вещественный считываемый устройством носитель информации (носитель информации) или изделие, которое может содержать инструкцию или набор инструкций, которые, при выполнении их в устройстве, могут обеспечить выполнение устройством способа и/или операций в соответствии с вариантами осуществления. Такое устройство может включать в себя, например, любую соответствующую платформу обработки, вычислительную платформу, вычислительное устройство, устройство обработки, вычислительную систему, систему обработки, компьютер, процессор или тому подобное и может быть воплощено с использованием любой соответствующей комбинации аппаратных средств и/или программных средств.
Считываемый устройством носитель информации (носитель информации) или устройство может включать в себя, например, любой соответствующий тип модуля памяти, запоминающее устройство, носитель памяти, устройство-накопитель, устройство сохранения, среду сохранения и/или модуль сохранения, например, запоминающее устройство, съемный или несъемный носитель, стираемый или нестираемый носитель, носитель с возможностью записи или с возможностью повторной записи, цифровой или аналоговый носитель, жесткий диск, гибкий диск, постоянное запоминающее устройство на компакт-диске (CD-ROM), компакт-диск с возможностью записи (CD-R), компакт-диск с возможностью перезаписи (CD-RW), оптический диск, магнитные среды, магнитооптический носитель, съемные карты или диски памяти, различные типы цифрового универсального диска (DVD), магнитную ленту, кассету или тому подобное. Инструкции могут включать в себя любой соответствующий тип кода, такой как код источника, компилированный код, интерпретированный код, исполнительный код, статический код, динамический код, зашифрованный код и т.п., воплощенные с использованием любого соответствующего языка программирования высокого уровня, низкого уровня, объектно-ориентированного, визуального, компилируемого и/или интерпретируемого языка.
Некоторые варианты осуществления могут быть описаны с использованием выражения "соединенный" и "подключенный" вместе с их производными. Такие термины не предназначены для использования в качестве синонимов друг друга. Например, некоторые варианты осуществления могут быть описаны с использованием терминов "подключенный" и/или "соединенный", для обозначения, что два или больше элемента находятся в непосредственном физическом или электрическом контакте друг с другом. Термин "соединенный", однако, может также означать, что два или больше элемента не находятся в непосредственном контакте друг с другом, но все еще взаимодействуют или влияют друг на друга.
В то время как различные варианты осуществления настоящего изобретения были описаны выше, следует понимать, что они должны были представлены только в качестве примера, а не для ограничения. В соответствии с этим для специалистов в данной области техники будет понятно, что различные изменения по форме и деталям могут быть выполнены в нем без выхода за пределы сущности и объема изобретения. Таким образом, ширина охвата и объем настоящего изобретения не должны быть ограничены ни одним из описанных выше примерных вариантов осуществления, но должны быть определены только в соответствии со следующей формулой изобретения и ее эквивалентами.