Технологии управления данными отображения
Иллюстрации
Показать всеИзобретение относится к дисплейным устройствам. Техническим результатом является повышение производительности устройства обработки графических данных за счет использования удаленного буфера кадра. Устройство содержит механизм получения графических данных, генерирующий данные кадра из входных графических данных, модуль управления буфером кадра, определяющий, включает ли в себя подключенное устройство дисплея буфер кадра. Когда подключенное устройство дисплея включает в себя буфер кадра, указанный модуль управления обходит операцию сохранения данных кадра в локальном буфере кадра и передает данные кадра в подключенное устройство дисплея. 4 н. и 16 з.п. ф-лы, 8 ил.
Реферат
Уровень техники
В компьютерных приложениях обычно используют выходные сигналы графических устройств для предоставления информации пользователям. Такая информация может быть представлена в форме текста, схем, изображений (движущихся или неподвижных) и т.д. Такую информацию типично выводят в устройство дисплея, подключенное к платформе обработки (например, персональному компьютеру) через интерфейс передачи данных.
Обычно генерирование графических данных включает в себя конвейер графической обработки, который получает отображаемое содержание в форме данных кадров (или данных изображения) на основе директив, принятых из приложений. После генерирования данные такого кадра типично сохраняют в запоминающем устройстве буфера кадра в платформе обработки.
После того как произойдет такое сохранение, данные кадра могут быть переданы в устройство дисплея через обычный интерфейс дисплея. Примеры таких обычных интерфейсов включают в себя видеографический адаптер (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, которая может представлять операции, выполняемые в одном или больше вариантах осуществления. Такой поток включает в себя платформу обработки, имеющую один или больше конвейеров графической обработки, и устройство дисплея, имеющее один или больше буферов кадра. Таким образом, такой по