Уровень техники
Настоящее изобретение относится к обработке изображений.
В мобильных устройствах обычно используют архитектуру построения изображений с сортировкой примитивов на промежуточном этапе. Как и в любых графических приложениях, очень важно уменьшить потребление энергии.
Геометрическая обработка может быть сделана параллельной путем назначения каждому процессору подмножества примитивов в составе сцены. Формирование растрового изображения (растеризация) может быть выполнено параллельно путем назначения каждому процессору некоторой части необходимого объема вычислений пикселей. Процедура построения (отображения) изображения содержит вычисление влияния каждого примитива на каждый пиксель. Примитив может попасть куда-либо в пределах реально видимого экрана или за пределами этого экрана. В процессе построения изображения сортируют примитивы для экрана. Сортировка может быть произведена в процессе геометрической обработки, что называется режимом сортировки в начале (sort-first) построения изображения, между геометрической обработкой и растеризацией, что называется режимом сортировки на промежуточном этапе (sort-middle), или во время растеризации, что называется режимом сортировки в конце (sort-last). Сортировка в начале означает перераспределение первичных, необработанных примитивов еще до того, как станут известны экранно-пространственные параметры примитивов, сортировка на промежуточном этапе означает перераспределение экранно-пространственных примитивов и сортировка в конце означает перераспределение пикселей, отсчетов или фрагментов пикселей.
Краткое описание чертежей
Некоторые варианты описаны со ссылками на следующие чертежи:
фиг. 1 представляет схематичное изображение одного из вариантов;
фиг. 2 представляет логическую схему способа для одного из вариантов;
фиг. 3 представляет изображение системы для одного из вариантов; и
фиг. 4 представляет вид одного из вариантов спереди.
Подробное описание
Величины пикселей, которые были вычислены в предшествующем кадре, могут быть вновь использованы для текущего кадра при работе в рамках архитектуры с сортировкой на промежуточном этапе. Хешированное или какое-либо иное компактное представление всех данных, используемых в «плитке» мозаики, включая все треугольники, однородные профили, текстуры, закрашивание (тени) вычисляют и сохраняют для каждой плитки. При построении изображения следующего кадра снова вычисляют компактное представление для каждой плитки мозаики. В архитектуре с сортировкой на промежуточном этапе имеется естественная переломная точка непосредственно перед растеризацией. В этой переломной точке найденное компактное представление сравнивают с компактным представлением, вычисленным в предыдущем кадре для этой же самой плитки. Если эти компактные представления совпали, нет необходимости выполнять какое-то отображение для этой плитки. Вместо этого, содержимое цветного буфера или других буферов, соответствующее этой же плитке в предшествующем кадре, может быть перенесено или повторно использовано другим способом в том же самом буфере для плитки в текущем кадре.
Этот способ работает прежде растеризации и закрашивания пикселей и может быть применен к другим буферам в дополнение к цветному буферу.
В архитектуре с сортировкой на промежуточном этапе, также именуемой мозаичной архитектурой, экран разбит на плитки мозаики, представляющие собой не накладывающиеся одна на другую прямоугольные области, которые все вместе покрывают весь экран. В первой фазе все примитивы, такие как треугольники, которые должны быть отображены, сортируют по плиткам, так что ссылки на эти примитивы сохраняют в списках примитивов для каждой плитки, где каждый примитив будет записан в списках для всех плиток, на которые накладывается этот примитив. После завершения всей сортировки каждую плитку можно растрировать последовательно или параллельно.
Этот способ использует тот факт, что часто большие участки изображения являются одинаковыми при переходе от одного изображения к следующему. Это явление часто называют когерентностью от кадра к кадру или межкадровой когерентностью. Здесь эту межкадровую когерентность используют для того, чтобы сделать графический процессор более эффективным, как с точки зрения потребляемой мощности, так и с точки зрения производительности.
В одном из вариантов для каждой плитки накапливают компактные представления, такие как хешированные версии, когда создается список примитивов для каждой плитки. Это компактное представление может быть основано на всей геометрии, входных данных и всех относящихся к делу состояний, включая все примитивы, однородные профили, текстуры, закрашивание (тени), режимы наложения и т.п. Компактные представления из предшествующего кадра сохраняют в памяти во время отображения текущего кадра. Затем, непосредственно перед тем, как начнется растеризация каждой плитки, определяют, является ли компактное представление текущей плитки в текущем кадре таким же, как компактное представление этой же плитки в предшествующем кадре. Если компактное представление является таким же, тогда отображенный контент тоже считается таким же и, следовательно, повторное отображение не требуется. Вместо этого, цвета всех пикселей в плитке повторно используются из предшествующего кадра. Если компактные представления не совпадает, тогда растеризация, тестирование глубины, закрашивание (затенение) пикселей и наложение производятся, как обычно.
Этот способ может быть использован для всех целей отображения, а также для глубины и трафарета, в дополнение к цветному буферу. Однако для текущих целей отображения, таких как цветной буфер, который будет представлен на экране, возможна некоторая оптимизация. При использовании, например, встроенного дисплейного порта (embedded display port (eDP)), версии технических условий 1.4/1.5 (и выше), эти способы могут быть использованы с частичными обновлениями кадров в режиме обновления панельного программного обеспечения (panel soft refresh (PSR)). В принципе, алгоритм определяет, что некая плитка в текущем кадре является такой же, как соответствующая плитка в предшествующем кадре, и все последующие этапы не нужны. Поэтому, когда нужно передать данные дисплею, можно избежать передачи данных для тех плиток, которые являются такими же, как соответствующие плитки в предшествующем кадре. Наконец, когда кадр завершается, компактные представления для текущего кадра следует переместить в таблицу компактных представлений для предшествующего кадра и сбросить данные для текущего кадра для использования в будущем. В качестве альтернативы, можно только осуществить свопинг указателя на текущий кадр и на предшествующий кадр. Во избежание перегрузки обращений к памяти можно рассмотреть возможность «ленивой» замены путем добавления одного бита для идентификации текущего кадра.
Выбранное компактное представление может удовлетворять одному или нескольким из следующих критериев: (1) позволять обрабатывать блоки последовательно с целью аккумулирования общей величины хэш-функции для соответствующей плитки; (2) минимизировать ложные распознавания, поскольку они могут порождать видимые артефакты; и (3) генерировать значения хэш-функции умеренного размера с целью уменьшения издержек, связанных с хранением этих значений в хэш-таблице.
С учетом того факта, что выходные значения хэш-функции для каждой плитки генерируют только для целей сравнения, в некоторых вариантах может оказаться достаточно простой проверки циклически избыточным кодом или проверки по контрольным суммам. Если нужно уменьшить вероятность конфликтов хеширования, можно применить даже криптографическую функцию хеширования, использующую структуру Меркля-Дамгарда (Merkle-Damguard), такую как MD5, но ценой ужесточения требований к вычислениям.
В дополнение к этому, вместо сохранения значения функции хеширования идентификатор может быть единственным параметром, который нужно сохранить для вызова отрисовки, полностью покрывающего плитку в конце кадра. Если этот вызов отрисовки является статическим, то поскольку все однородные профили, текстуры и тени, и т.п. остаются такими же до следующего кадра, и обнаружено, что этот же самый вызов отрисовки будет снова покрывать всю плитку целиком, тогда всей обработки этой плитки можно избежать, а вместо этого использовать повторно контент предшествующего кадра. Чтобы это работало, можно, например, проверить, имеется ли один единственный треугольник, который накладывается на плитку целиком, и проверить, закрывает ли этот треугольник все остальные треугольники, присутствующие в списке примитивов для рассматриваемой плитки. Другой способ состоит в том, чтобы определить, не покрывается ли плитка полностью подмножеством треугольников из состава вызова отрисовки в текущем кадре и в следующем кадре, является ли такой же вызов отрисовки точно таким же, и вся ли прочая геометрия в этой плитке закрыта, тогда ничего не нужно отрисовывать для этой плитки.
Еще в одном варианте вместо хеширования может быть использован фильтр Блума. В этом варианте можно использовать минимум два фильтра Блума, даже хотя можно использовать две группы по N фильтров Блума меньшего размера. Каждая пара фильтров Блума содержит элементы для разных видов информации. Одна пара фильтров может быть предназначена для геометрии, другая пара может быть предназначена для адресов текстуры и третья пара может быть предназначена для закрашивания (теней), например. В каждой из этих пар один фильтр содержит элементы для предшествующего кадра, а второй фильтр содержит соответствующие элементы для текущего кадра.
В одном из вариантов алгоритм фильтра Блума работает так же, как алгоритм с хешированием. Когда создан список треугольников, к информации для сравнения могут быть применены несколько функций хеширования. Результаты этих функций хеширования используют для индексации в обоих фильтрах Блума. Для одного фильтра, относящегося к текущему кадру, задают все индексные биты. С другой стороны, для фильтра Блума, относящегося к предшествующему кадру, считывают индексные биты и проверяют для определения, все ли они равны единице. Если оказалось так, отображенный контент признают таким же, и повторно используют цвета из предшествующего кадра. Если это не так, последовательность продолжается обычным путем. После завершения обработки кадра, фильтры Блума меняются ролями. Фильтр, указывавший на текущий кадр, становится фильтром для предшествующего кадра, а фильтр, ранее указывавший на предшествующий кадр, очищают.
Одно из преимуществ использования фильтров Блума по сравнению с хешированием состоит в том, что обычно фильтры Блума требуют меньше пространства для хранения всей информации, хотя они могут потребовать использования дополнительных логических схем для реализации нескольких функций хеширования. Традиционно, число битов, необходимое для достижения доли ложных распознаваний примерно 0.5%, составляет от одиннадцати до двенадцати битов на элемент фильтра Блума, и оптимальное число функций хеширования для достижения такой доли ложных распознаваний составляет от шести до восьми функций.
Как показано на фиг. 1, автомат 10 для разбиения на плитки может быть соединен с конвейером 12 растеризации. Автомат 10 для разбиения принимает информацию о геометрии, информацию состояния, информацию о закрашивания (тенях) и адреса текстур в модуле 13 вычисления функции хеширования и фильтра Блума. Любую информацию состояния передают в модуль 14 построения списка плиток. Этот модуль комбинирует результаты работы конвейера с какой-либо информацией состояния. Эти комбинированные данные сохраняют в кэше 22 плиток.
Содержание запоминающего устройства 16 для хеширования и фильтра Блума для предшествующего кадра перегружают в запоминающее устройство 18 для хеширования и фильтра Блума для текущего кадра при смене кадра. Модуль 20 выборки плиток осуществляет выборку плиток из конвейера 12 растеризации и передает эти плитки в кэш 22 плиток. Кэш 22 плиток передает данные в объединенный кэш 24.
Конвейер 12 растеризации содержит модуль 26 растеризации, соединенный с модулем 20 выборки и с модулем 28 тестирования глубины. С модулем 28 тестирования глубины могут быть соединены несколько модулей 30 закрашивания (теней). Эти модули 30 закрашивания (теней) соединены с цветным буфером 32, модуле 34 отсчетов текстуры и буфером 36 глубины, которые в свою очередь соединены с объединенным кэшем 24.
Последовательность 40, показанная на фиг. 2, может быть реализована посредством загружаемого программного обеспечения, встроенного программного обеспечения и/или аппаратных средств. В вариантах программного обеспечения (загружаемого и встроенного) эта последовательность может быть реализована посредством исполняемых компьютерных команд, сохраняемых на одном или нескольких энергонезависимых компьютерных носителях информации, таких как магнитные, оптические или полупроводниковые запоминающие устройства.
Последовательность начинается в модуле 14 построения списка плиток, который осуществляет «раскладывание» и также определяет идентификаторы затрагиваемых плиток, для входных данных, как показано в блоке 42. Затем в блоке 44 вычисляют функцию хеширования или фильтр Блума для входных данных. Для всех затронутых плиток считывают текущие значения функций хеширования или фильтра Блума и затем аккумулируют вычисленные значения функции хеширования или фильтров, как показано в блоке 46. Далее проверка в ромбе 48 определяет, завершен ли процесс раскладывания плиток. Если нет, поток итеративно возвращается к блоку 42. Если да, поток переходит к модулю 20 выборки плиток.
В блоке 50 получают идентификатор следующей плитки для выборки. Для этой плитки получают текущие значения хэш-функции или фильтра, а также получают эти же параметры для предшествующего кадра в блоке 52. Проверка в блоке 54 определяет, совпадают ли текущие и предшествующие значения хэш-функции или фильтров. Если да, в блоке 56 пропускают операцию выборки, а также можно избежать растеризации для текущей плитки. Если нет, в блоке 58 переходят к выборке плитки и направляют данные в конвейер растеризации для обработки. Затем, в блоке 60 определяют, есть ли еще какой-либо другой идентификатор плитки для выборки. Если да, поток итеративно возвращается назад в блок 50. В противном случае, в блоке 62, текущие значения функции хеширования или фильтров становятся предшествующими значениями функции хеширования или фильтров.
Фиг. 3 иллюстрирует вариант системы 700. В различных вариантах система 700 может представлять медийную систему, хотя система 700 этим контекстом не ограничивается. Например, система 700 может быть встроена в персональный компьютер (PC), переносной компьютер, ультра-переносной компьютер, планшетный компьютер, тачпад, портативный компьютер, ручной компьютер, карманный компьютер, персональный цифровой помощник (personal digital assistant (PDA)), сотовый телефон, сочетание сотового телефона/PDA, телевизор, смарт-устройство (например, смартфон, смарт-планшет или смарт-телевизор), мобильное интернет-устройство (mobile internet device (MID)), устройство для обмена сообщениями, устройство передачи данных и т.д.
В различных вариантах система 700 содержит платформу 702, соединенную с дисплеем 720. Платформа 702 может принимать контент из контентного устройства, такого как устройства 730 контентных сервисов или устройства 740 доставки контента или другие источники контента. Навигационный контроллер 750, содержащий одну или несколько навигационных функций, может быть использован для взаимодействия, например, с платформой 702 и/или дисплеем 720. Каждый из этих компонентов более подробно рассмотрен ниже.
В некоторых вариантах платформа 702 может содержать какое-либо сочетание чипсета 705, процессора 710, оперативной памяти 712, запоминающего устройства 714, графических подсистем 715, приложений 716 и/или радио модуля 718. Например, чипсет 705 может содержать адаптер памяти (не показан), способный осуществлять связь с запоминающим устройством 714.
Процессор 710 может быть реализован в виде процессора с полным набором команд (Complex Instruction Set Computer (CISC)) или процессора с сокращенным набора команд (Reduced Instruction Set Computer (RISC)), процессора, совместимого с набором команд х86, многоядерного или какого-либо другого микропроцессора или центрального процессора (central processing unit (CPU)). В некоторых вариантах процессоры 710 могут содержать собой двухядерные процессоры, двухядерные мобильные процессоры и т.д. Процессор может осуществлять последовательность, показанную на фиг. 2, вместе с оперативной памятью 712.
Оперативная память 712 может быть реализована в виде энергонезависимого запоминающего устройства, такого как, не ограничиваясь этим, запоминающее устройство с произвольной выборкой (ЗУПВ (Random Access Memory (RAM)), динамическое ЗУПВ ((DRAM)) или статическое ЗУПВ ((SRAM)).
Запоминающее устройство 714 может представлять собой энергонезависимое запоминающее устройство, такое как, не ограничиваясь этим, накопитель на магнитном диске, накопитель на оптическом диске, накопитель на магнитной ленте, внутреннее запоминающее устройство, устройство флэш-памяти, синхронное динамическое ЗУПВ (SDRAM) с резервным аккумулятором, и/или запоминающее устройство, доступное через сеть. В некоторых вариантах запоминающее устройство 714 может использовать технологию для улучшения характеристик хранения информации и усиления защиты ценных цифровых носителей, когда в состав устройства входят несколько цифровых носителей, например.
Графическая подсистема 715 может осуществлять обработку изображений, таких как неподвижные изображения или видео для представления на дисплее. Графическая подсистема 715 может представлять собой графический процессор (graphics processing unit (GPU)) или видео процессор (visual processing unit (VPU)), например. Для связи между графической подсистемой 715 и дисплеем 720 можно использовать аналоговый или цифровой интерфейс. Например, интерфейс может представлять собой мультимедийный интерфейс высокой четкости (High-Definition Multimedia Interface), интерфейс DisplayPort, беспроводный HDMI-интерфейс или беспроводные технологии, совместимые с высокой четкостью (HD). Графическая подсистема 715 может быть интегрирована в процессор 710 или чипсет 705. Графическая подсистема 715 может быть выполнена в виде автономной платы, поддерживающей связь с чипсетом 705.
Способы обработки графики и/или видео могут быть реализованы в различных аппаратных архитектурах. Например, графические и/или видео функции могут быть интегрированы в чипсете. В качестве альтернативы, может быть использован дискретный и/или видео процессор. Еще в одном варианте графические и/или видео функции могут быть реализованы в процессоре общего назначения, включая многоядерные процессоры. Еще в одном варианте функции могут быть реализованы в устройстве потребительской электроники.
Радио модуль 718 может содержать один или несколько радио блоков, способных передавать и принимать сигналы с использованием разнообразных подходящих способов радиосвязи. Такие способы могут содержать связь через одну или несколько сетей радиосвязи. К примерам таких сетей радиосвязи относятся (не ограничиваясь) локальные сети радиосвязи (wireless local area network (WLAN)), персональные сети радиосвязи (wireless personal area network (WPAN)), городские сети радиосвязи (wireless metropolitan area network (WMAN)), сети сотовой связи и сети спутниковой связи. В процессе связи по таким сетям радио модуль 718 может работать в соответствии с одним или несколькими применимыми стандартами в какой-либо версии.
В различных вариантах дисплей 720 может содержать какой-либо монитор или дисплей телевизионного типа. Дисплей 720 может представлять собой, например, экран компьютерного дисплея, дисплей с сенсорным экраном, видеомонитор, устройство типа телевизора и/или телевизор. Дисплей 720 может быть цифровым и/или аналоговым. В различных вариантах дисплей 720 может представлять собой голографический дисплей. Кроме того, дисплей 720 может представлять собой прозрачную поверхность, на которую может падать видео проекция. Такие проекции могут нести разного рода информацию, изображения и/или объекты. Например, такие проекции могут выглядеть как наложенное видео для приложения мобильной дополненной реальности (mobile augmented reality (MAR)). Под управлением одного или нескольких программных приложений 716 платформа 702 может представлять изображение интерфейса 722 пользователя на дисплее 720.
В различных вариантах устройство 730 контентных сервисов может располагаться в каком-либо национальном, международном и/или независимом сервисе и, таким образом, быть доступным для платформы 702 через Интернет, например. Устройства 730 контентных сервисов могут быть связаны с платформой 702 и/или дисплеем 720. Платформа 702 и/или устройства 730 контентных сервисов могут быть соединены с сетью 760 связи для осуществления связи (например, передачи и/или приема) и обмена медийной информацией с этой сетью 760 связи. Устройства 740 доставки контента также может быть связано с платформой 702 и/или с дисплеем 720.
В различных вариантах устройства 730 контентных сервисов могут представлять собой приставку для кабельного телевидения, персональный компьютер, сеть связи, телефон, имеющие функции Интернет устройства или аппаратуру, способную доставлять цифровую информацию и/или контент, или какие-либо другие подобные устройства, способные в одном направлении или в двух направлениях передавать контент между провайдерами контента и платформой 702 и/или дисплеем 720 через сеть 760 связи или напрямую. Следует понимать, что контент может быть передан в одном направлении и/или в двух направлениях между каким-либо из компонентов в системе 700 и провайдером контента 760. Среди примеров контента может быть какая-либо медийная информация, включая, например, видео, музыку, медицинскую и цифровую информацию и т.д.
Устройства 730 контентных сервисов принимает контент, такой как программы кабельного телевидения, содержащие медийную информацию, цифровую информацию и/или другой контент. Среди примеров провайдеров контента можно указать каких-либо провайдеров контента для кабельного или спутникового телевидения. Приведенные примеры не имеют целью как-то ограничить применимые варианты.
В различных вариантах платформа 702 может принимать сигналы управления от навигационного контроллера 750, имеющего одну или несколько навигационных функций. Навигационные функции контроллера 750 могут быть использованы для взаимодействия с интерфейсом 722 пользователя, например. В различных вариантах навигационный контроллер 750 может представлять собой указательное устройство, которое может быть компонентом аппаратуры компьютера (в частности, компонент человеко-машинного интерфейса), позволяющим пользователю вводить пространственные (например, непрерывные и многомерные) данные в компьютер. Многие системы, такие как графический интерфейс пользователя (graphical user interface (GUI)), телевизоры и мониторы позволяют пользователю управлять и вводить данные в компьютер или в телевизор с использованием физических жестов.
Движения навигационных элементов контроллера 750 могут быть отражены на дисплее (например, на дисплее 720) посредством перемещения указателя, курсора, фокусного кольца или других визуальных индикаторов, представленных на дисплее. Например, под управлением программных приложений 716 навигационные элементы, расположенные на навигационном контроллере 750, могут быть отображены в виртуальные навигационные элементы, представленные на экране интерфейса 722 пользователя, например. В некоторых вариантах контроллер 750 может не быть отдельным компонентом, а может быть интегрирован в платформу 702 и/или в дисплей 720. Варианты, однако, не ограничиваются элементами или контекстом, показанным или описываемым здесь.
В различных вариантах драйверы (не показаны) могут содержать технологии, позволяющие пользователям быстро (мгновенно) включать и выключать платформу 702, такую как телевизор, простым прикосновением к кнопке после первоначальной загрузки, когда эта функция включена, например. Программируемые логические схемы могут позволить платформе 702 передавать поток контента медиа-адаптерам или другим устройствам 730 контентных сервисов или устройствам 740 доставки контента, когда платформа выключена ("off"). Кроме того, чипсет 705 может содержать аппаратную и/или программную поддержку для системы 5.1 звукового окружения и/или системы 7.1 звукового окружения высокой четкости, например. В совокупность драйверов может входить графический драйвер для интегральных графических платформ. В различных вариантах графический драйвер может представлять собой графическую плату интерфейса периферийных устройств (peripheral component interconnect (PCI) Express).
В различных вариантах любые один или несколько компонентов, показанных в системе 700, могут быть интегрированы. Например, могут быть интегрированы платформа 702 и устройства 730 контентных сервисов, либо могут быть интегрированы платформы 702 и устройства 740 доставки контента, либо могут быть интегрированы платформа 702, устройства 730 контентных сервисов и устройства 740 доставки контента. В различных вариантах платформа 702 и дисплей 720 могут быть интегрированы в одном модуле. Могут быть интегрированы дисплей 720 и устройства 730 контентных сервисов, либо могут быть интегрированы дисплей 720 и устройства 740 доставки контента, например. Эти примеры не имеют целью как-то ограничить объем настоящего изобретения.
В различных вариантах система 700 может быть реализована в виде системы радиосвязи, системы кабельной связи или сочетания таких систем. При реализации в качестве системы радиосвязи такая система 700 может содержать компоненты и интерфейсы, подходящие для связи в совместно используемой радио среде, такие как одна или несколько антенн, передатчиков, приемников, приемопередатчиков, усилителей, фильтров, логических схем управления и т.д. Пример такой совместно используемой радио среды может содержать участки радио спектра, такого как ВЧ-спектр и т.д. При реализации в качестве кабельной системы связи, система 700 может содержать компоненты и интерфейсы, подходящие для связи по проводным линиям связи, такие как адаптеры ввода/вывода (I/O), физические соединители (разъемы) для осуществления соединения адаптера ввода/вывода с соответствующей проводной линией связи, плата сетевого интерфейса (network interface card (NIC)), контроллер дисководов, видео контроллер, аудио контроллер и т.д. Среди примеров проводных линий связи можно указать провод, кабель, металлические выводы, печатную плату (printed circuit board (РСВ)), объединительную панель, коммутационную схему, полупроводниковый материал, витую пару проводов, коаксиальный кабель, оптоволоконную линию связи и т.д.
Платформа 702 может устанавливать один или несколько логических или физических каналов для передачи информации. Эта информация может содержать медийную информацию и управляющую информацию. Под медийной информации можно понимать какие-либо данные, представляющие контент для пользователя. Среди примеров таких контентов можно указать, например, данные голосового разговора, видео конференции, потокового видео, сообщений электронной почты ("email"), сообщений голосовой почты, алфавитно-цифровых символов, графики, изображения, видео, текста и т.д. Данные голосового разговора могут представлять собой, например, речевую информацию, периоды молчания, фоновый шум, комфортный шум, тональные сигналы и т.д. Управляющая информация может представлять какие-либо данные, несущие команды, инструкции или управляющие слова для управляющей системы. Например, управляющая информация может быть использована для маршрутизации медийной информации через систему или для передачи узлу инструкции для обработки медийной информации заданным образом. Варианты изобретения не ограничиваются элементами или в контексте, показанном или описанном на фиг. 3.
Как описано выше, система 700 может быть реализована в различных физических стилях или с различными форм-факторами. Фиг.4 иллюстрирует варианты устройства 800 с небольшим форм-фактором, в котором может быть воплощена система 700. В различных вариантах, например, устройство 800 может быть реализовано в виде мобильного компьютерного устройства с функцией радиосвязи. Под мобильным компьютерным устройством можно понимать какое-либо устройство, имеющее процессорную систему и мобильный источник питания, такой как одна или несколько батареек или аккумуляторов, например.
Как описано выше, к примерам мобильного компьютерного устройства могут относиться персональный компьютер (PC), переносной компьютер, ультра-переносной компьютер, планшетный компьютер, тачпад, портативный компьютер, ручной компьютер, карманный компьютер, персональный цифровой помощник (personal digital assistant (PDA)), сотовый телефон, сочетание сотового телефона/PDA, телевизор, смарт-устройство (например, смартфон, смарт-планшет или смарт-телевизор), мобильное интернет-устройство (mobile internet device (MID)), устройство для обмена сообщениями, устройство передачи данных и т.д.
К примерам мобильного компьютерного устройства могут также относиться компьютеры, адаптированные для ношения человеком, такие как наручный компьютер, компьютер на пальце, компьютер в кольце, компьютер в очках, компьютер в пряжке ремня, компьютер в нарукавной повязке, компьютер в ботинке, компьютеры в предметах одежды и другие носимые компьютеры. В различных вариантах, например, мобильное компьютерное устройство может быть реализовано в виде смартфона, способного исполнять компьютерные приложения, равно как осуществлять голосовую связь и/или передачу данных. Хотя некоторые варианты могут быть описаны применительно к смартфону, например, можно понимать, что некоторые варианты могут быть реализованы также с использованием других мобильных компьютерных устройств с функцией радиосвязи. Возможные варианты этим контекстом не ограничиваются.
Следующие положения и/или примеры относятся к другим вариантам:
Один из примеров вариантов может представлять собой способ, содержащий аккумулирование редуцированного представления геометрии, входных данных и состояний для плитки, когда создается список треугольников, прежде растеризации плитки, определение, является ли представление текущей плитки в текущем кадре таким же, как представление для предшествующего кадра и соответствующей плитки, и если представления для плитки в предшествующем и текущем кадрах являются одинаковыми, тогда пиксели предшествующей плитки используют в качестве пикселей текущей плитки при отображении текущей плитки. Способ может также содержать использование функции хеширования для получения редуцированного представления. Способ может содержать использование фильтра Блума для получения редуцированного представления. Способ может содержать использование двух фильтров Блума - одного для текущей плитки и одного для предшествующей плитке. Способ может содержать использование одной пары фильтров Блума для каждой из характеристик - геометрии, адресов текстуры и устройств закрашивания (теней). Способ может содержать аккумулирование в архитектуре с сортировкой на промежуточном этапе. Согласно этому способу повторное использование может содержать повторное использование цветовых величин. Согласно этому способу повторное использование может содержать повторное использование величин из буферов глубины и трафаретов. Способ может содержать замену текущего компактного представления на предшествующее контактное представление. Способ может содержать определение, используется ли тот же самый вызов отрисовки для одной и той же плитки в последовательных кадрах, чтобы выяснить, является ли представление таким же самым.
Другой пример варианта может содержать один или несколько энергонезависимых компьютерных носителей информации, сохраняющих команды для реализации последовательности, содержащей аккумулирование редуцированного представления геометрии, входных данных и состояний для плитки, когда создается список треугольников, прежде растеризации плитки, определение, является ли представление текущей плитки в текущем кадре таким же, как представление для предшествующего кадра и соответствующей плитки, и если представления для плитки в предшествующем и текущем кадрах являются одинаковыми, тогда пиксели предшествующей плитки используют в качестве пикселей текущей плитки при отображении текущей плитки. На носителях может быть записана указанная последовательность, содержащая использование функции хеширования для получения редуцированного представления. На носителях может быть записана указанная последовательность, содержащая использование фильтра Блума для получения редуцированного представления. На носителях может быть записана указанная последовательность, содержащая использование двух фильтров Блума - одного для текущей плитки и одного для предшествующей плитки. На носителях может быть записана указанная последовательность, содержащая использование одной пары фильтров Блума для каждой из характеристик - геометрии, адресов текстуры и устройств закрашивания (теней). На носителях может быть записана указанная последовательность, содержащая аккумулирование в архитектуре с сортировкой на промежуточном этапе. На носителях может быть записана указанная последовательность, содержащая повторное использование цветовых величин. На носителях может быть записана указанная последовательность, содержащая повторное использование величины из буферов глубины и трафаретов. На носителях может быть записана указанная последовательность, содержащая определение, используется ли тот же самый вызов отрисовки для одной и той же плитки в последовательных кадрах, чтобы выяснить, является ли представление таким же самым.
Другой пример варианта может представлять собой устройство, содержащее процессор для аккумулирования редуцированного представления геометрии, входных данных и состояний для плитки, когда создается список треугольников, прежде растеризации плитки, определения, является ли представление текущей плитки в текущем кадре таким же, как представление для предшествующего кадра и соответствующей плитки, и если представления для плитки в предшествующем и текущем кадрах являются одинаковыми, тогда пиксели предшествующей плитки используют в качестве пикселей текущей плитки при отображении текущей плитки, и запоминающее устройство, соединенное с этим процессором. Указанное устройство может также содержать указанный процессор для использования функции хеширования с целью получения редуцированного представления. Указанное устройство может содержать фильтр Блума для получения редуцированного представления. Указанное устройство может содержать два фильтра Блума - один для текущей плитки и один для предшествующей плитки. Указанное устройство может содержать одну пару фильтров Блума для каждой из характеристик - геометрии, адресов текстуры и устройств закрашивания (теней). Указанное устройство может содержать процессор для аккумулирования в архитектуре с сортировкой на промежуточном этапе. Указанное устройство может содержать процессор, чтобы воздерживаться от передачи данных для представления на дисплее, если компактные представления являются такими же самыми. Указанное устройство может содержать процессор для определения, используется ли тот же самый вызов отрисовки для одной и той же плитки в последовательных кадрах, чтобы выяснить, является ли представление таким же самым. Устройство может содержать аккумулятор. Устройство может также содержать встроенное программное обеспечение и модуль для обновления этого встроенного программного обеспечения.
Способы обработки графики, описываемые здесь, могут быть реализованы в различных аппаратных архитектурах. Например, графические функции могут быть интегрированы в чипсет. В качестве альтернативы может быть использован дискретный графический процессор. Еще в одном варианте графические функции могут быть реализованы в процессоре общего назначения, включая многоядерный процессор.
Ссылки в настоящем описании на «один вариант» или «один из вариантов» означает, что конкретный признак, структура или характеристика, описываемый в связи с этим вариантом, входит по меньшей мере в один из вариантов реализации, охватываемых настоящим изобретением. Таким образом, появления фразы «один вариант» или «в одном из вариантов» не обязательно относятся к одному и тому же варианту. Более того, конкретные признаки, структуры или характеристики могут быть воплощены в других подходящих формах, отличных от конкретного иллюстрируемого варианта, и все такие формы могут быть охвачены Формулой изобретения для настоящей заявки.
Хотя здесь были описаны ограниченное число вариантов, специалисты в рассматриваемой области смогут представить себе многочисленные модификации и их вариации. Прилагаемая Формула изобретения должна охватывать все такие модификации и вариации в пределах истинного смысла и объема настоящего изобретения.
название | год | авторы | номер документа |
---|---|---|---|
ИСПОЛЬЗОВАНИЕ МЕЖКАДРОВОЙ КОГЕРЕНТНОСТИ В АРХИТЕКТУРЕ ПОСТРОЕНИЯ ИЗОБРАЖЕНИЙ С СОРТИРОВКОЙ ПРИМИТИВОВ НА ПРОМЕЖУТОЧНОМ ЭТАПЕ | 2015 |
|
RU2677584C1 |
СПОСОБ И СИСТЕМА УДАЛЕНИЯ НЕВИДИМЫХ ПОВЕРХНОСТЕЙ ТРЁХМЕРНОЙ СЦЕНЫ | 2017 |
|
RU2680355C1 |
ТЕХНОЛОГИИ УМЕНЬШЕНИЯ ПИКСЕЛЬНОГО ШЕЙДИНГА | 2015 |
|
RU2666300C2 |
СПОСОБ ОПРЕДЕЛЕНИЯ ПАРАМЕТРОВ ВЗВЕШЕННЫХ ЧАСТИЦ ПРОИЗВОЛЬНОЙ ФОРМЫ | 2013 |
|
RU2534723C1 |
СИСТЕМНЫЙ КОГЕРЕНТНЫЙ КЭШ С ВОЗМОЖНОСТЬЮ ФРАГМЕНТАЦИИ/ДЕФРАГМЕНТАЦИИ | 2013 |
|
RU2635255C2 |
ВИЗУАЛИЗАЦИЯ ИЗОБРАЖЕНИЯ ДАННЫХ ЛАЗЕРНОГО СКАНИРОВАНИЯ | 2015 |
|
RU2695528C2 |
СХЕМЫ МНОГОПЛАНОВОГО ВИДЕОКОДИРОВАНИЯ | 2011 |
|
RU2573213C2 |
Способ использования аппаратных средств графического процессора для расчета обобщённых угловых коэффициентов излучения для вакуумных печных агрегатов | 2015 |
|
RU2664001C2 |
СПОСОБ АНАЛИЗА ГРАФИКИ | 2010 |
|
RU2470367C2 |
СПОСОБ И ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО ДЛЯ ФОРМИРОВАНИЯ ПРАВДОПОДОБНОГО ОТОБРАЖЕНИЯ ТЕЧЕНИЯ ВРЕМЕНИ СУТОЧНОГО МАСШТАБА | 2020 |
|
RU2745209C1 |
Группа изобретений относится к технологиям обработки изображений. Техническим результатом является снижение вычислительных мощностей при обработке изображения за счет выявления случаев, когда можно использовать плитку из предыдущего кадра и не требуется обработка плитки из текущего кадра. Предложен способ отображения изображения. Способ содержит этап, на котором аккумулируют компактное представление геометрии, входных данных и состояния для плитки изображения при создании списка примитивов изображения для плитки. При этом перед растеризацией плитки определяют, совпадает ли компактное представление для плитки в текущем кадре изображения с компактным представлением для соответствующей плитки в предшествующем кадре изображения посредством проверки, имеется ли один примитив из списка примитивов, полностью накладывающийся на плитку, и закрывает ли указанный примитив все остальные примитивы в списке примитивов. 3 н. и 27 з.п. ф-лы, 4 ил.
1. Способ отображения изображения, содержащий этапы, на которых:
аккумулируют компактное представление геометрии, входных данных и состояния для плитки изображения при создании списка примитивов изображения для плитки;
перед растеризацией плитки определяют, совпадает ли компактное представление для плитки в текущем кадре изображения с компактным представлением для соответствующей плитки в предшествующем кадре изображения посредством проверки, имеется ли один примитив из списка примитивов, полностью накладывающийся на плитку, и закрывает ли указанный примитив все остальные примитивы в списке примитивов; и
если компактные представления для плитки в предшествующем и текущем кадрах совпадают, повторно используют пиксели плитки в предшествующем кадре в качестве пикселей плитки в текущем кадре при отображении плитки в текущем кадре.
2. Способ по п. 1, содержащий этап, на котором используют функцию хеширования для получения компактного представления.
3. Способ по п. 1, содержащий этап, на котором используют фильтр Блума для получения компактного представления.
4. Способ по п. 3, содержащий этап, на котором используют два фильтра Блума, один для плитки в текущем кадре и один для плитки в предшествующем кадре.
5. Способ по п. 4, содержащий этап, на котором используют одну пару фильтров Блума для каждой из характеристик: геометрии, адресов текстуры и ретушеров.
6. Способ по п. 1, содержащий этап, на котором этап аккумулирования выполняют в архитектуре с сортировкой на промежуточном этапе.
7. Способ по п. 1, в котором на этапе повторного использования повторно используют цветовые значения.
8. Способ по п. 1, в котором на этапе повторного использования повторно используют буферы глубины или трафаретов.
9. Способ по п. 1, содержащий этап, на котором воздерживаются от передачи данных для отображения, если компактные представления совпадают.
10. Способ по п. 1, содержащий этап, на котором заменяют текущее компактное представление предшествующим контактным представлением.
11. Способ по п. 1, содержащий этап, на котором определяют, используется ли один и тот же самый вызов отрисовки для одной и той же плитки в последовательных кадрах, для определения, совпадают ли компактные представления.
12. Один или более энергонезависимых считываемых компьютером носителей информации, хранящих команды для реализации последовательности, содержащей:
аккумулирование компактного представления геометрии, входных данных и состояния для плитки изображения при создании списка примитивов изображения для плитки;
определения перед растеризацией плитки, совпадает ли компактное представление для плитки в текущем кадре изображения с компактным представлением для соответствующей плитки в предшествующем кадре изображения посредством проверки, имеется ли один примитив из списка примитивов, полностью накладывающийся на плитку, и закрывает ли указанный примитив все остальные примитивы в списке примитивов; и
если компактные представления для плитки в предшествующем и текущем кадрах совпадают, повторное использование пикселей плитки в предшествующем кадре в качестве пикселей плитки в текущем кадре при отображении плитки в текущем кадре.
13. Носитель информации по п. 12, в котором указанная последовательность содержит использование функции хеширования для получения компактного представления.
14. Носитель информации по п. 12, в котором указанная последовательность содержит использование фильтра Блума для получения компактного представления.
15. Носитель информации по п. 14, в котором указанная последовательность содержит использование двух фильтров Блума, одного для плитки в текущем кадре и одного для плитки в предшествующем кадре.
16. Носитель информации по п. 15, в котором указанная последовательность содержит использование одной пары фильтров Блума для каждой из характеристик: геометрии, адресов текстуры и ретушеров.
17. Носитель информации по п. 12, в котором указанная последовательность содержит аккумулирование в архитектуре с сортировкой на промежуточном этапе.
18. Носитель информации по п. 12, в котором повторное использование содержит повторное использование цветовых значений.
19. Носитель информации по п. 12, в котором повторное использование содержит повторное использование буферов глубины или трафаретов.
20. Носитель информации по п. 12, в котором указанная последовательность содержит определение, используется ли один и тот же самый вызов отрисовки для одной и той же плитки в последовательных кадрах, для определения, совпадают ли компактные представления.
21. Устройство отображения изображения, содержащее:
процессор для аккумулирования компактного представления геометрии, входных данных и состояния для плитки изображения при создании списка примитивов изображения для плитки, определения, перед растеризацией плитки, совпадает ли компактное представление для плитки в текущем кадре изображения с компактным представлением для соответствующей плитки в предшествующем кадре изображения посредством проверки, имеется ли один примитив из списка примитивов, полностью накладывающийся на плитку, и закрывает ли указанный примитив все остальные примитивы в списке примитивов, и, если компактные представления для плитки в предшествующем и текущем кадрах совпадают, используют пиксели плитки в предшествующем кадре в качестве пикселей плитки в текущем кадре при отображении плитки в текущем кадре; и
запоминающее устройство, соединенное с процессором.
22. Устройство по п. 21, в котором указанный процессор выполнен с возможностью использования функции хеширования для получения компактного представления.
23. Устройство по п. 21, содержащее фильтр Блума для получения компактного представления.
24. Устройство по п. 23, содержащее два фильтра Блума, один для плитки в текущем кадре и один для плитки в предшествующем кадре.
25. Устройство по п. 24, содержащее одну пару фильтров Блума для каждой из характеристик: геометрии, адресов текстуры и ретушеров.
26. Устройство по п. 21, в котором процессор выполнен с возможностью выполнения аккумулирования в архитектуре с сортировкой на промежуточном этапе.
27. Устройство по п. 21, в котором процессор выполнен с возможностью воздерживаться от передачи данных для отображения, если компактные представления совпадают.
28. Устройство по п. 21, в котором процессор выполнен с возможностью определения, используется ли один и тот же вызов отрисовки для одной и той же плитки в последовательных кадрах, для определения, совпадают ли компактные представления.
29. Устройство по п. 21, содержащее батарею.
30. Устройство по п. 21, содержащее встроенное программное обеспечение и модуль для обновления указанного встроенного программного обеспечения.
Способ приготовления лака | 1924 |
|
SU2011A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
US 8108931 B1, 31.01.2012 | |||
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
US 7804499 B1, 28.09.2010 | |||
СЖАТИЕ И СНЯТИЕ СЖАТИЯ ИЗОБРАЖЕНИЯ | 2007 |
|
RU2461977C2 |
Авторы
Даты
2018-07-19—Публикация
2015-04-30—Подача