ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[01] Настоящее решение относится к электронным устройствам и способам отрисовки панорамного изображения. В частности, задачей электронных устройств и способов является создание промежуточных результатов отрисовки, которые используются для отображения панорамного изображения пользователю.
УРОВЕНЬ ТЕХНИКИ
[02] В общем случае на панорамных изображениях представлен широкоугольный обзор или физическое пространство - обычно обширной области; панорамное изображение может быть фотографией, видео или трехмерной моделью. Панорамные изображения используются в многочисленных мультимедийных приложениях для предоставления пользователю электронного устройства, например, небольшого снимка обширной области, позволяя пользователю изменять его/ее виртуальное положение относительно обширной области и, соответственно, динамически приспосабливать визуальное представление обширной области. Примеры мультимедийных приложений, использующих панорамные изображения включают Яндекс. Карты от Яндекс™ и Google Maps от Google™. И Яндекс. Карты, и Google Maps позволяют пользователю визуализировать панорамное изображение улицы на электронном устройстве с помощью передачи данных, представляющих панорамное изображение или часть панорамного изображения, с сервера на электронное устройство.
[03] В некоторых решениях, относящихся к мультимедийным приложениям, панорамное изображение моделируется структурированным набором треугольных фрагментов, определяющих представление панорамного изображения в виде сферы. Каждый треугольный фрагмент представляет подраздел панорамного изображения и связан с конкретным расположением относительно других треугольных фрагментов, которые являются частью структурированного набора треугольных фрагментов. В некоторых примерах каждый треугольный фрагмент может быть связан с одним или несколькими текстурами, представляющими панорамное изображение. Данные, связанные с каждым треугольным фрагментом, позволяют хранить в памяти компьютерной системы, такой как сервер, полный структурированный набор треугольных фрагментов, образующих сферу, которая представляет панорамное изображение. С учетом числа треугольных фрагментов, требуемых для представления панорамного изображения, объем данных, которые будут сохранены в памяти компьютерной системы для моделирования полного панорамного изображения, может быть значительным. Потому в некоторых решениях, данные, моделирующие полное панорамное изображение, хранятся на сервере и редко передаются полностью на электронное устройство, удаленно соединенное с сервером. В известных подходах программное приложение, установленное на электронном устройстве пользователя и позволяющее визуализировать панорамное изображение, запрашивает у сервера передачу данных, моделирующих часть панорамного изображения, а не полное панорамное изображение. Данные, моделирующие часть панорамного изображения, ограничены частью панорамного изображения, которое должно быть отображено на экране электронного устройства и/или данными, моделирующими область панорамного изображения, которая окружает часть панорамного изображения, которую необходимо отобразить. Поэтому после запроса у сервера данных, моделирующих часть панорамного изображения, электронное устройство получает данные, связанные со структурированным набором треугольных фрагментов, представляющих соответствующую часть панорамного изображения. Затем данные сохраняются в памяти электронного устройства для дальнейшего использования с помощью графического движка, функционирующего на электронном устройстве. В некоторых решениях для того, чтобы позволить электронному устройству корректно отобразить часть панорамного изображения, графический движок извлекает каждый треугольный фрагмент, требуемый для отображения соответствующей части панорамного изображения и обрабатывает каждый треугольный фрагмент, располагая его и изменяя на основе ракурса, выбранного пользователем электронного устройства. Процесс повторяется для каждого треугольника, требуемого для представления соответствующей части панорамного изображения. После того, как все итерации завершатся, обработанные треугольные фрагменты собираются в набор прямоугольников, образующий финальное представление части панорамного изображения для отображения на экране электронного устройства. Как будет понятно специалистам в данной области техники, сборка треугольных фрагментов для образования набора прямоугольников - необходимый этап создания визуального контента для отображения на электронном устройстве, который сводится к отображению прямоугольных пикселей.
[04] Хотя стандартный подход к доступу и обработке данных, представляющих часть панорамного изображения, хранящегося на удаленном сервере, дает некоторые преимущества - например, то, что загрузка данных ограничивается только данными, которые имеют отношение к части панорамного изображения, которое необходимо отобразить - специалисты в данной области техники понимают, что нагрузка на устройство обработки требует запуска графического движка для обработки каждого треугольного фрагмента и сборки обработанных треугольных фрагментов в набор прямоугольников, что является трудоемкой процедурой. Запуск графического движка может негативно отразиться на опыте пользователя, поскольку требует избыточной нагрузки на устройство обработки электронного устройства.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[05] Задачей решения является устранение недостатков, присущих известному уровню техники: в частности, устранение недостатков использования устройства обработки электронного устройства для формирования панорамного изображения.
[06] В некоторых приложениях предпочтительным является формирование на электронном устройстве панорамного изображения, смоделированного данными, хранящимися на удаленном сервере, во взаимодействии с удаленным сервером. Как было описано выше, обработка данных, моделирующих панорамное изображение, полученное от удаленного сервера, на электронном устройстве может потребовать интенсивного использования одного или нескольких устройств обработки электронного устройства. Интенсивное и/или чрезмерное использование одного или нескольких устройств обработки электронного устройства, например, графического процессора (GPU) может выражаться в торможении отображения и/или в ускоренной разрядке аккумулятора. Торможение отображения обычно выражается в снижении реакции отображаемого панорамного изображения на действия пользователя, что может негативно сказаться на опыте пользователя. Ускоренная разрядка аккумулятора может также негативно сказаться на опыте пользователя, поскольку электронное устройство может являться мобильным, что означает, что оно, не менее чем на некоторый срок, использует аккумулятор как единственный источник питания.
[07] Настоящее решение основана на том, что после получения на электронном устройстве фрагмента изображения от удаленного сервера, может создаваться и сохраняться в памяти электронного устройства промежуточный результат отрисовки, связывающий фрагмент изображения с прозрачным слоем. После получения команды отрисовать не менее части панорамного изображения, промежуточный результат отрисовки может быть доступен в памяти электронного устройства и соединен с другим промежуточным результатом отрисовки части панорамного изображения. Поэтому настоящее решение позволяет электронному устройству уменьшать нагрузку на один или несколько устройств обработки после отрисовки части панорамного изображения, поскольку не менее нескольких промежуточных результатов отрисовки уже были предварительно обработаны. В итоге решение позволяет, среди прочего, создавать на электронном устройстве промежуточные результаты отрисовки, которые могут быть использованы для отрисовки панорамного изображения на электронном устройстве, требуя меньшей нагрузки на устройство обработки, чем способ без создания промежуточных результатов отрисовки.
[08] Таким образом, в одном аспекте разнообразные варианты осуществления предоставляют компьютерный способ отрисовки панорамного изображения, содержащего первый и второй фрагменты изображения; способ содержит:
получение первого фрагмента изображения;
создание (формирование) процессором первого промежуточного результата отрисовки с помощью связывания (объединения) первого фрагмента изображения с первым прозрачным слоем;
сохранение на постоянном носителе компьютерной информации первого промежуточного результата отрисовки;
после получения команды отрисовать не менее части панорамного изображения, выполнение:
доступа к сохраненному на постоянном носителе компьютерной информации первому промежуточному результату отрисовки;
доступа к сохраненному на постоянном носителе компьютерной информации второму промежуточному результату отрисовки; второй промежуточный результат отрисовки содержит второй фрагмент изображения, связанный со вторым прозрачным слоем;
соединение первого промежуточного результата отрисовки и второго промежуточного результата отрисовки для отрисовки части панорамного изображения; и
отображение на экране части панорамного изображения.
[09] В некоторых вариантах первый фрагмент изображения является первым треугольным фрагментом, а второй фрагмент - вторым треугольным фрагментом.
[10] В некоторых вариантах осуществления, первый прозрачный слой имеет такую ширину и высоту, чтобы полностью вместить первый фрагмент изображения, а второй прозрачный слой имеет такую ширину и высоту, чтобы полностью вместить второй фрагмент изображения.
[11] В некоторых вариантах осуществления первый прозрачный слой и второй прозрачный слой имеют прямоугольную форму.
[12] В некоторых вариантах осуществления соединение (объединение) первого промежуточного результата отрисовки и второго промежуточного результата отрисовки сводится к отрисовке части панорамного изображения, которое будет отображено на экране.
[13] В некоторых вариантах осуществления соединение (объединение) первого промежуточного результата отрисовки и второго промежуточного результата отрисовки содержит соединение первого фрагмента изображения и второго фрагмента изображения только тогда, когда первый фрагмент изображения и второй фрагмент изображения должны быть отображены на экране.
[14] В некоторых вариантах осуществления способ также содержит определение того, необходимо ли отображать часть панорамного изображения на экране и, если первого промежуточного результата отрисовки и второго промежуточного результата отрисовки, хранящихся в постоянном носителе компьютерной информации, не достаточно для отрисовки части панорамного изображения, которое должно быть отображено на экране, выполнение:
запроса третьего информационного фрагмента, связанного с панорамным изображением;
получения третьего фрагмента изображения;
создания третьего промежуточного результата отрисовки с помощью связывания третьего информационного фрагмента с третьим прозрачным слоем; третий промежуточный результат отрисовки при этом содержит третий фрагмент изображения, связанный с третьим прозрачным слоем;
сохранения на постоянном носителе компьютерной информации третьего промежуточного результата отрисовки;
доступа к сохраненному на постоянном носителе компьютерной информации третьему промежуточному результату отрисовки; и
соединения первого промежуточного результата отрисовки, второго промежуточного результата отрисовки и третьего промежуточного результата отрисовки для отрисовки части панорамного изображения, которое должно быть отображено на экране.
[15] В некоторых вариантах осуществления получение команды отрисовать панорамное изображение происходит в ответ на получение команды отображения от удаленного сервера и взаимодействия пользователя с электронным устройством.
[16] В некоторых вариантах соединение первого промежуточного результата отрисовки и второго промежуточного результата отрисовки содержит по меньшей мере частичное преобразование первого промежуточного результата отрисовки второго промежуточного результата отрисовки в двухмерную или в трехмерную поверхность.
[17] В некоторых вариантах соединение первого результата промежуточной отрисовки и второго промежуточного результата отрисовки включает не менее чем частичное сопоставление первого промежуточного результата отрисовки и второго промежуточного результата отрисовки либо на двухмерной поверхности, либо на трехмерной поверхности.
[18] В некоторых вариантах осуществления соединение (объединение) первого промежуточного результата отрисовки и второго промежуточного результата отрисовки содержит не менее чем частичное наложение первого промежуточного результата отрисовки и второго промежуточного результата отрисовки.
[19] В некоторых вариантах осуществления первый фрагмент изображения и второй фрагмент изображения отвечают соответствующим частям сферы, связанной с панорамным изображением.
[20] В некоторых вариантах осуществления, связь первого фрагмента изображения с первым прозрачным слоем включает в себя расположение первого фрагмента изображения на первом прозрачном слое.
[21] В некоторых вариантах осуществления, связь первого фрагмента изображения с первым прозрачным слоем включает в себя соединение первого фрагмента изображения с контуром-сеткой, связанным с панорамным изображением.
[22] В некоторых вариантах панорамное изображение является двухмерным или объемным.
[23] В некоторых вариантах осуществления первый прозрачный слой и второй прозрачный слой являются одним и тем же прозрачным слоем.
[24] В некоторых вариантах осуществления первый прозрачный слой и второй прозрачный слой являются двумя различными прозрачными слоями.
[25] Другим объектом решения является постоянный машиночитаемый носитель, хранящий программные команды (машиночитаемые коды) для обработки панорамного изображения; при этом программные команды (машиночитаемые коды) выполняются процессором компьютерной системы для осуществления одного или нескольких упомянутых выше способов.
[26] Другим объектом настоящего решения является компьютерная система, например (без введения ограничений), электронное устройство, включающее в себя по меньшей мере один процессор и память, хранящую программные команды (машиночитаемые коды) для обработки панорамного изображения; при этом программные команды (машиночитаемые коды) выполняются одним или несколькими процессорами системы для осуществления одного или нескольких упомянутых способов.
[27] В контексте настоящего описания, если четко не указано иное, "электронное устройство", "пользовательское устройство", "сервер", "удаленный сервер" и "компьютерная система" подразумевают под собой аппаратное и/или системное обеспечение, подходящее к решению соответствующей задачи. Таким образом, некоторые неограничивающие примеры аппаратного и/или программного обеспечения включают в себя компьютеры (серверы, настольные компьютеры, ноутбуки, нетбуки и так далее), смартфоны, планшеты, сетевое оборудование (маршрутизаторы, коммутаторы, шлюзы и так далее) и/или их комбинацию.
[28] В контексте настоящего описания, если четко не указано иное, "машиночитаемый носитель" и "память" подразумевает под собой носитель абсолютно любого типа и характера, не ограничивающие примеры включают в себя ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB-ключи, флеш-карты, твердотельные накопители и накопители на магнитной ленте.
[29] В контексте настоящего описания, если четко не указано иное, "указание" информационного элемента может представлять собой сам информационный элемент или указатель, отсылку, ссылку или другой косвенный способ, позволяющий получателю указания найти сеть, память, базу данных или другой машиночитаемый носитель, из которого может быть извлечен информационный элемент. Например, указание на файл может включать в себя сам файл (т.е. его содержимое), или же оно может являться уникальным дескриптором файла, идентифицирующим файл по отношению к конкретной файловой системе, или каким-то другими средствами передавать получателю указание на сетевую папку, адрес памяти, таблицу в базе данных или другое место, в котором можно получить доступ к файлу. Как будет понятно специалистам в данной области техники, степень точности, необходимая для такого указания, зависит от степени первичного понимания того, как должна быть интерпретирована информация, которой обмениваются получатель и отправитель указателя. Например, если до установления связи между отправителем и получателем понятно, что указание информационного элемента принимает вид ключа базы данных для записи в конкретной таблице заранее установленной базы данных, содержащей информационный элемент, то передача ключа базы данных - это все, что необходимо для эффективной передачи информационного элемента получателю, несмотря на то, что сам по себе информационный элемент не передавался между отправителем и получателем указания.
[30] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер" не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[31] Каждый вариант осуществления преследует по меньшей мере одну из вышеупомянутых целей. Следует иметь в виду, что некоторые объекты, полученные в результате попыток достичь вышеупомянутой цели могут удовлетворять другим целям, отдельно не указанным здесь.
[32] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[33] Для лучшего понимания решения, а также других его аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами.
[34] На Фиг. 1 представлена диаграмма компьютерной системы, которая подходит для осуществления решения, и/или которая используется в сочетании с вариантами осуществления настоящего решения.
[35] На Фиг. 2 представлена схема сетевой вычислительной среды, выполненной в соответствии с вариантом осуществления решения.
[36] На Фиг. 3 представлена схема сферы, связанной с панорамным изображением, которое содержит множество фрагментов изображения в соответствии с решением.
[37] На Фиг. 4 представлена схема, иллюстрирующая способ создания промежуточных результатов отрисовки и соединения (объединения) результатов промежуточных результатов для отрисовки части панорамного изображения в соответствии с вариантом осуществления.
[38] На Фиг. 5 представлен пример панорамного изображения, разделенного на множество фрагментов изображения в соответствии с вариантом осуществления.
[39] На Фиг. 6-7 представлены примеры панорамных изображений, отрисованных в соответствии с вариантами осуществления.
[40] На Фиг. 8 представлена блок-схема, отображающая способ, являющийся вариантом осуществления.
[41] Также следует отметить, что чертежи выполнены не в масштабе, если специально не указано иное.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[42] Все примеры и используемые здесь условные конструкции предназначены, главным образом, для того, чтобы помочь читателю понять принципы, а не для установления границ объема решения. Следует также отметить, что специалисты в данной области техники могут разработать различные схемы, отдельно не описанные и не показанные здесь, но которые, тем не менее, воплощают собой принципы решения и находятся в границах объема решения.
[43] Кроме того, для ясности в понимании, следующее описание касается достаточно упрощенных вариантов осуществления. Как это понятно специалисту в данной области техники, многие варианты осуществления могут обладать большей сложностью.
[44] Некоторые полезные примеры модификаций также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ решения. Эти модификации не представляют собой исчерпывающего списка, и специалисты в данной области техники могут создавать другие модификации, остающиеся в границах объема решения. Кроме того, те случаи, где не были представлены примеры модификаций, не должны интерпретироваться как то, что никакие модификации невозможны, и/или что то, что было описано, является единственным вариантом осуществления этого элемента.
[45] Более того, все заявленные здесь принципы, аспекты и варианты осуществления, равно как и конкретные их примеры, предназначены для обозначения их структурных и функциональных основ. Таким образом, например, специалистами в данной области техники будет очевидно, что представленные здесь блок-схемы представляют собой концептуальные иллюстративные схемы, отражающие принципы решения. Аналогично, любые блок-схемы, диаграммы переходного состояния, псевдокоды и т.п. представляют собой различные процессы, которые могут быть представлены на машиночитаемом носителе и, таким образом, использоваться компьютером или процессором, вне зависимости от того, показан явно подобный компьютер или процессор или нет.
[46] Функции различных элементов, показанных на фигурах, включая функциональный блок, обозначенный как "процессор" или "графический процессор", могут быть обеспечены с помощью специализированного аппаратного обеспечения или же аппаратного обеспечения, способного использовать подходящее программное обеспечение. Когда речь идет о процессоре, функции могут обеспечиваться одним специализированным процессором, одним общим процессором или множеством индивидуальных процессоров, причем некоторые из них могут являться общими. В некоторых вариантах осуществления процессор может являться универсальным процессором, например, центральным процессором (CPU) или специализированным для конкретной цели процессором, например, графическим процессором (GPU). Более того, использование термина "процессор" или "контроллер" не должно подразумевать исключительно аппаратное обеспечение, способное поддерживать работу программного обеспечения, и может включать в себя, без установления ограничений, цифровой сигнальный процессор (DSP), сетевой процессор, интегральная схема специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ПЗУ) для хранения программного обеспечения, оперативное запоминающее устройство (ОЗУ) и энергонезависимое запоминающее устройство. Также может быть включено другое аппаратное обеспечение, обычное и/или специальное.
[47] Программные модули или простые модули, представляющие собой программное обеспечение, которое может быть использовано здесь в комбинации с элементами блок-схемы или другими элементами, которые указывают на выполнение этапов процесса и/или текстовое описание. Подобные модели могут быть выполнены на аппаратном обеспечении, показанном напрямую или косвенно.
[48] С учетом этих примечаний, далее будут рассмотрены некоторые не ограничивающие варианты осуществления.
[49] На Фиг. 1 представлена диаграмма компьютерной система 100, которая подходит для некоторых вариантов осуществления, причем компьютерная система 100 включает различные аппаратные компоненты, включая один или несколько одно- или многоядерных процессоров, которые представлены процессором 110, графическим профессором (GPU) 111, твердотельный накопитель 120, ОЗУ 130, интерфейс 140 монитора, и интерфейс 150 ввода/вывода.
[50] Связь между различными компонентами компьютерной системы 100 может осуществляться с помощью одной или несколько внутренних и/или внешних шин 160 (например, шины PCI, универсальной последовательной шины, высокоскоростной шины IEEE 1394, шины SCSI, шины Serial ATA и так далее), с которыми электронно соединены различные аппаратные компоненты. Интерфейс 140 монитора может быть соединен с монитором 142 (например, через HDMI-кабель 144), видимом пользователю 170, интерфейс 150 ввода/вывода может быть соединен с сенсорным экраном (не изображен), клавиатурой 151 (например, через USB-кабель 153) и мышью 152 (например, через USB-кабель 154), как клавиатура 151, так и мышь 152 используются пользователем 170.
[51] В соответствии с вариантами осуществления твердотельный накопитель 120 хранит программные команды (машиночитаемые коды), подходящие для загрузки в ОЗУ 130, и использующиеся процессором 110 и/или графическим процессором GPU 111 для отрисовки панорамного изображения. Например, программные команды (машиночитаемые коды) могут представлять собой часть библиотеки или приложение.
[52] На Фиг. 2 показана сетевая компьютерная среда 200, подходящая для использования с некоторыми вариантами осуществления, которая содержит электронное устройство 208 (также упоминается как "клиентское устройство", "электронное устройство" или "электронное устройство, связанное с пользователем"), сервер 222 (также упоминается как "удаленный сервер"), связанный с электронным устройством 208 через сеть 220 (например, Интернет), позволяющую этим системам обмениваться данными, и спутник GPS 230, передающий сигнал GPS электронному устройству 208.
[53] Варианты осуществления электронного устройства 208 никак конкретно не ограничены, но, в качестве примера, электронное устройство 208 может взаимодействовать с сервером 222, получая ввод пользователя 170 и получая и передавая данные через сеть 220. Электронное устройство 208 может представлять собой настольный компьютер, ноутбук, смартфон (например, Apple iPhone or a Samsung Galaxy S5), персональный цифровой органайзер (PDA) или другое устройство, включающее в себя функциональность вычисления и возможности передачи данных. Электронное устройство 208 может включать в себя внутренние аппаратные компоненты, такие как один или несколько многоядерных процессоров, которые представлены на чертеже в виде процессора 110, графического процессора GPU 111, ОЗУ 130, каждый компонент является аналогом к соответственно пронумерованным компонентам компьютерной системы 100, показанным на Фиг. 1, также как и сетевого интерфейса (не показан) для связи с сервером 222. Электронное устройство 208 может также включать в себя GPS-приемник (не изображен) для получения сигнала GPS от одного или нескольких спутников GPS, таких как спутник 230.
[54] В одном варианте осуществления электронное устройство 280 отображает контент сервера 222 с помощью обработки данных, моделирующих одно или несколько панорамных изображений и/или одну или несколько частей панорамного изображения, полученного от сервера 222. В разнообразных вариантах осуществления электронное устройство 208 осуществляет интерфейс визуализации для отображения панорамного изображения или части панорамного изображения пользователю 170 через браузерное приложение (не показано) и/или через специализированное приложение визуализации (не показано), предварительно установленное на электронном устройстве 208. В общем случае, целью интерфейса визуализации является предоставление пользователю 170 возможности (i) выбрать панорамное изображение (или его часть) для отображения на электронном устройство 208; (ii) получать и/или обрабатывать данные, моделирующие выбранное панорамное изображение; и (ш) отображать и взаимодействовать с выбранным панорамным изображением.
[55] В примере осуществления, выбор панорамного изображения (или его части) для отображения на электронном устройстве 208 может быть осуществлен с помощью формулирования поискового запроса и выполнения поиска с использованием поисковой системы, которая, например, расположена на сервере 222. С этой целью поисковое приложение может содержать поисковый интерфейс (не показан), в котором пользователь 170 может формулировать поисковый запрос с помощью, например, взаимодействия с сенсорным экраном на электронном устройстве 208. Поисковый интерфейс может содержать интерфейс поисковых результатов (не показан) для отображения результирующего набора, созданного для обработки поискового запроса.
[56] В одном варианте осуществления получение и обработка данных, моделирующих выбранное панорамное изображение, может быть осуществлена с помощью открытия канала обмена данными с сервером 222, с которого могут быть доступны данные, моделирующие выбранное панорамное изображение. В некоторых вариантах осуществления канал передачи данных может быть создан в дополнение к тому, что электронное устройство 208 посылает серверу 222 запрос на получение данных, относящихся к конкретному панорамному изображению или конкретной части панорамного изображения. В других вариантах осуществления электронное устройство 208 может также включать в себя файл cookie (не показан), содержащие данные, которые указывают на то, зарегистрировался ли пользователь 170 электронного устройства 208 на сервере 222. Файл 212 cookie может указывать на то, участвует ли пользователь 170 в активном сеансе, в котором электронное устройство 208 обменивается данными с сервером 222, тем самым указывая на то, что пользователь 170 обладает учетной записью, связанной сервером 222. Как только установлен канал между электронным устройством 208 и сервером 222, данные, моделирующие панорамное изображение могут быть получены электронным устройством 208. В некоторых примерах электронное устройство 208 получает полный набор данных, моделирующих все панорамное изображение. В других примерах электронное устройство 208 получает конкретный набор данных, моделирующих часть панорамного изображения. Определение необходимости получения полного набора данных, моделирующих все панорамное изображение, или конкретного набора данных, моделирующих часть панорамного изображения, может быть осуществлено интерфейсом визуализации, функционирующем на электронном устройстве 208, сервером 222 и/или пользователем 170, взаимодействующим с электронным устройством 208.
[57] В другом варианте осуществления данные, моделирующие панорамное изображение, могут предварительно храниться в памяти электронного устройства 208, например, на твердотельном накопителе 120. В таком варианте осуществления нет необходимости в установке канала передачи данных между электронным устройством 208 и сервером 222, поскольку данные были предварительно сохранены в памяти электронного устройства 208, например, после загрузки и установки приложения визуализации на электронное устройство 208.
[58] Полученные электронным устройством 208 данные, моделирующие панорамное изображение (или его часть) могут быть обработаны, например, процессором 110 и/или графическим процессором GPU 111 электронного устройства 208. Команды на проведение обработки данных могут быть выполнены с помощью графического движка, управляемого интерфейсом визуализации. Альтернативно графический движок может управляться программным модулем, не зависящим от интерфейса визуализации (т.е. операционной системой электронного устройства 208). В других вариантах осуществления команда произвести обработку может быть осуществлена с помощью специализированного модуля (программного и/или аппаратного обеспечения) или неспециализированным модулем (программного и/или аппаратного обеспечения) в пределах объема решения.
[59] Как будет описано подробнее ниже, обработка данных, моделирующих панорамное изображение направлена на создание промежуточных результатов отрисовки, которые сохраняются в памяти электронного устройства 208 для немедленной или более поздней отрисовки на экране электронного устройства 208. Созданные результаты промежуточной отрисовки сохраняются в памяти электронного устройства 208, например, на твердотельном накопителе 120 и/или на оперативном запоминающем устройстве (ОЗУ) 130. В некоторых других вариантах осуществления обработка данных, моделирующих панорамное изображение, для создания промежуточных результатов обработки может происходить на другом устройстве, не на электронном устройстве 208. Например, в альтернативном варианте осуществления обработка данных, моделирующих панорамное изображение, может происходить на сервере 222. В этом примере электронное устройство 208 может получить от сервера 222 промежуточные результаты отрисовки, обработанные процессором сервера 222 вместо получения необработанных данных, моделирующих панорамное изображение. В этом примере после получения промежуточных результатов отрисовки электронное устройство 208 сохраняет промежуточные результаты отрисовки в памяти электронного устройства 208.
[60] В примере варианта осуществления интерфейс визуализации позволяет пользователю 170 отображать и взаимодействовать с выбранным панорамным изображением. В примере варианта осуществления интерфейс визуализации может содержать команду на доступ к памяти электронного устройства 208, в которой хранятся промежуточные результаты отрисовки, например на твердотельном накопителе 120 и/или на оперативном запоминающем устройстве (ОЗУ) 130. Интерфейс визуализации может также содержать команды соединить (объеденить) промежуточные результаты отрисовки, чтобы отрисовать панорамное изображение (или его часть) для отображения на электронном устройстве 208. Интерфейс визуализации может также содержать команды отрисовать панорамное изображение (или его часть) для отображения на экране электронного устройства 208. В некоторых вариантах осуществления после отображения панорамного изображения интерфейс визуализации может позволить пользователю взаимодействовать с отрисованным панорамным изображением, например, позволяя пользователю 170 изменять ее/его виртуальное расположение в отношении панорамного изображения, увеличивать часть отображенного панорамного изображения и/или уменьшать часть отображенного панорамного изображения. В некоторых вариантах осуществления электронное устройство 208 и/или сервер 222 может определять, что, в результате взаимодействия пользователя 170 с отображенным панорамным изображением, могут понадобиться дополнительные данные, моделирующие панорамное изображение и/или промежуточные результаты отрисовки, полученные из данных, моделирующих панорамное изображение. В этом конкретном примере, если промежуточные результаты отрисовки недоступны в памяти электронного устройства 208, интерфейс визуализации может запросить у сервера 222 требуемые данные, моделирующие панорамное изображение, и обработать данные для создания дополнительных промежуточных результатов отрисовки. В свою очередь, дополнительные промежуточные результаты отрисовки могут быть соединены, чтобы отрисовать новое панорамное изображение, отражающее взаимодействие пользователя 170 с той версией панорамного изображения, которая была отображена раньше.
[61] Что касается команд на создание промежуточных результатов отрисовки, команды отрисовать панорамное изображение (или его часть) могут быть осуществлены через графический движок, управляемый интерфейсом визуализации. Графический движок может быть тем же, что использовался для создания промежуточных результатов отрисовки, но это не является обязательным. Альтернативно графический движок может управляться программным модулем, не зависящим от интерфейса визуализации (т.е. операционной системой электронного устройства 208). В других вариантах команда произвести отрисовку изображения может быть осуществлена с помощью специализированного модуля (программного и/или аппаратного обеспечения) или неспециализированным модулем (программного и/или аппаратного обеспечения) в пределах объема решения.
[62] Реализация интерфейса визуализации никак конкретно не ограничена. Одним из примеров интерфейса визуализации может быть доступ пользователем на веб-сайт, связанный с сервером 222. Например, интерфейс визуализации может быть доступен путем ввода URL, связанного с веб-сервисом Яндекс. Карты, доступном на https://maps.yandex.com. В другом примере интерфейс визуализации может быть осуществлен как программное приложение (также указывается как "приложение") для установки на электронное устройство 208. Например, приложение, осуществляющее интерфейс визуализации может быть загружено путем ввода URL, связанного магазином приложений, откуда приложения могут быть загружены. Например, приложение Яндекс. Карты доступно для загрузки в Яндекс. Store, компания Яндекс, Россия, 119021, Москва, ул. Льва Толстого, 16 или в магазине приложений Apple, компания Apple Inc., 1 Infinite Loop, Cupertino, CA 95014, США. Важно иметь в виду, что интерфейс визуализации может быть доступен с использованием других коммерчески доступных или собственных веб-сервисов.
[63] Электронное устройство 208 соединено с сетью 220 через линию передачи данных (не пронумерована). В некоторых вариантах осуществления, сеть может представлять собой Интернет. В других вариантах осуществления сеть 220 может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.
[64] Реализация линии передачи данных не ограничена и будет зависеть от того, какое электронное устройство 208 используется. В качестве примера (но не ограничения) в данных вариантах осуществления в случаях, когда электронное устройство 208 представляет собой беспроводное устройство связи (например, смартфон), линия передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или WiFi®, Bluetooth® и т.п.). В тех примерах, где электронное устройство 208 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или WiFi®, Bluetooth® и т.п), так и проводной (соединение на основе сети Ethernet).
[65] Важно иметь в виду, что варианты реализации электронного устройства 208, линия передачи данных и сеть 220 даны исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления электронного устройства 208, линии передачи данных и сети 220. Представленные здесь примеры не ограничивают объем решения.
[66] Сервер 222 (так же указанный как "удаленный сервер 222"), на котором может быть расположен веб-сервис предоставления доступа к данным, моделирующим одно или несколько панорамных изображений и/или одну или несколько частей панорамного изображения, также соединен с сетью 220 передачи данных. Сервер 222 может представлять собой обычный компьютерный сервер. В примере варианта осуществления сервер 222 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 222 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления, сервер 222 является одиночным сервером. В других вариантах осуществления, функциональность сервера 222 может быть разделена, и может выполняться с помощью нескольких серверов.
[67] Варианты осуществления сервера 222 широко известны среди специалистов в данной области техники. Тем не менее, для краткой справки: сервер 222 содержит интерфейс связи (не показан), который настроен и выполнен с возможностью устанавливать соединение с различными элементами (например, электронным устройством 208 и другими устройствами, потенциально соединенные с сетью 220) через сеть 220. Сервер 222 дополнительно включает один или несколько пунктов из следующего: компьютерный процессор (не показан), функционально соединенный с интерфейсом связи и настроенный и выполненный с возможностью выполнять различные процессы, описанные здесь.
[68] Сервер 222 может быть функционально соединен (или может иным образом иметь доступ) с сервером, осуществляющим поисковую систему и/или сервером базы данных, на котором хранятся данные, моделирующие одно или несколько панорамных изображения и/или одну или несколько частей панорамного изображения в соответствии с некоторыми вариантами осуществления настоящей технологии. Таким образом, сервер 222 может иногда называться "поисковым сервером" или "поисковым входным сервером", "сервером данных" или "сервером данных, моделирующих панорамные изображения". Хотя сервер 222 изображен как одиночный блок, в некоторых вариантах осуществления, функциональность сервера 222 может быть разделена и реализована как множество серверов в пределах объема решения.
[69] Основной задачей сервера 222 является предоставление данных, моделирующих одно или несколько панорамных изображений и/или одну или несколько частей панорамного изображения, другим системам, например, электронному устройству 208. Далее следует описание варианта осуществления сервера 222. Тем не менее, следует иметь в виду, что существуют другие варианты осуществления сервера 222. Важно иметь в виду, что для упрощения нижеследующего описания конфигурация сервера 222 была сильно упрощена. Считается, что специалисты в данной области техники смогут понять подробности реализации сервера 222 и его компонентов, которые могли быть опущены в описании с целью упрощения.
[70] В общем случае задачей сервера 222 является (i) получать запрос от электронного устройства 208; (ii) извлекать данные, моделирующие панорамные изображения из базы данных, в которой хранятся данные, моделирующие панорамные изображения; и (ш) передавать извлеченные данные электронному устройству 208. То, как именно сервер 222 получает запрос, извлекает данные и передает их, никак не ограничено. Специалистам в данной области техники будут понятны некоторые способы и средства для выполнения получения запроса, извлечения данных и их передачи и, соответственно, некоторые структурные компоненты сервера 222 будут описаны только на поверхностном уровне.
[71] В одном варианте осуществления сервер 222 может быть выполнен с возможностью получать запрос от электронного устройства 208, конкретно идентифицируя набор данных, моделирующих панорамное изображение или часть панорамного изображения. В альтернативных вариантах осуществления запрос, полученный от электронного устройства 208, может быть поисковым запросом, который интерпретируется и обрабатывается поисковой системой, находящейся, например, на сервера 222. После обработки может быть проведена идентификация конкретного набора данных, моделирующих панорамное изображение, связанное с поисковым запросом. То, как именно идентифицируется конкретный набор данных, моделирующих панорамное изображение, ничем конкретно не ограничено. После идентификации конкретного набора данных сервер 222 извлекает данные из хранилища данных, например, из сервера баз данных (не изображен), соединенного с сервером 222. В некоторых вариантах осуществления извлеченные данные могут быть обработаны сервером 222 перед передачей электронному устройству 208. В таких вариантах осуществления обработка данных может включать создание промежуточных результатов отрисовки, которые могут храниться на сервера 222 или на сервере данных, соединенном с сервером 222. В некоторых вариантах осуществления промежуточные результаты отрисовки могут быть напрямую переданы электронному устройству 222 без сохранения. В других вариантах осуществления извлеченные данные могут быть переданы электронному устройству 208 без обработки сервером 222. В некоторых вариантах промежуточные результаты отрисовки могут быть предварительно созданы и сохранены на сервере баз данных. В некоторых вариантах сервер 222 может также инициировать отрисовку и/или отображение панорамного изображения на электронном устройстве 208. В некоторых вариантах инициирование отрисовки и/или отображения панорамного изображения может быть осуществлено электронным устройством 208 или в ответ на взаимодействие пользователя 170 с электронным устройством 208.
[72] На Фиг. 3 и 4 изображен вариант осуществления способа создания промежуточных результатов отрисовки из данных, моделирующих панорамное изображение. В частности, на Фиг. 3 изображен пример сферы, образующей панорамное изображение 302. Данные, связанные со сферой, моделируют панорамное изображение 302, которое будет обработано и/или сохранено компьютерной системой, например, электронным устройством 208 и/или сервером 222. В этом варианте осуществления сфера определяется структурированным набором фрагментов изображения. Каждый из фрагментов изображения может быть связан с одной или несколькими текстурами, представляющими детали панорамного изображения 302, например, фрагменты 506, 508 и 510 изображения, изображенные на Фиг. 5. Фрагменты изображения могут иметь разные формы, например, треугольную или прямоугольную. Также могут быть использованы другие формы фрагментов изображения, это не выходит за границы решения. Хотя изображенная сфера представляет панорамное изображение 302, следует понимать, что возможны другие представления, в трехмерном или двухмерном пространстве. Например, как на изображенном на Фиг. 5 панорамном изображении 502, панорамное изображение 302 может являться двухмерным изображением поверхности или частью поверхности сферы. Также могут быть использованы другие варианты представления панорамных изображений, что не выходит за границы решения.
[73] Панорамное изображение 302 содержит множество частей панорамного изображения, которые могут образовать полное панорамное изображение, если собрать их вместе. Как изображено на Фиг. 3 часть 304 панорамного изображение 302 содержит три фрагмента 306, 308 и 310 изображения (также упоминаются как "треугольный фрагмент 306 изображения", "треугольный фрагмент 308 изображения" и "треугольный фрагмент 310 изображения"). Каждый из фрагментов 306, 308 и 310 изображения имеет треугольную форму, и поэтому определяется как треугольный фрагмент изображения. Каждый из фрагментов изображения связан с областью панорамного изображения 302 и моделируется данными, позволяющими компьютерной системе обрабатывать, сохранять и/или отображать пользователю каждый информационный фрагмент.
[74] На Фиг. 4 показан способ создания промежуточных результатов обработки фрагментов 310 и 308 изображения, а также показан способ отрисовки части панорамного изображения, с использованием созданных промежуточных результатов отрисовки. Первое исполнение 402, приведенное в качестве примера, иллюстрирует создание промежуточного результата 404 отрисовки с помощью связывания фрагмента 310 изображения с прозрачным слоем 410. Прозрачный слой 410 может иметь разные формы, например, треугольную или прямоугольную. Также могут быть использованы другие формы прозрачного слоя. Прозрачный слой 410 может быть смоделирован двухмерной поверхностью, характеризующей область, и может быть связан с данными, позволяющими обработку, сохранение и отображение пользователю такой двухмерной поверхности с помощью компьютерной системы, например, электронного устройства 208 и сервера 222. Прозрачный слой 410 может быть не связан с текстурой и/или цветом, чтобы дать прозрачную поверхность, которая может быть наложена на текстуру, например, на текстуру фрагмента изображения, без взаимодействия с текстурой фрагмента изображения. Другими словами, прозрачный слой 410 может покрывать фрагмент изображения без влияния на текстуру, связанную с фрагментом изображения, оставаясь невидимым пользователю после отображения на экране. В вариантах прозрачный слой 410 имеет ширину и высоту, которая выбрана так, чтобы полностью вместить область, определяемую фрагментом 310 изображения, когда фрагмент 310 изображения и прозрачный слой 410 связываются, чтобы создать промежуточный результат 404 отрисовки. В вариантах осуществления связывание фрагмента 310 изображения с прозрачным слоем 410 включает в себя накладывание фрагмента 310 изображения на прозрачный слой 410. В вариантах осуществления, поскольку прозрачный слой 410 может быть прозрачным, одинаково возможно также наложение прозрачного слоя 410 на фрагмент 310 изображения. В некоторых вариантах осуществления связывание фрагмента изображения 310 с прозрачным слоем 410 включает в себя соединение фрагмента 310 изображения с контуром-сеткой.
[75] Второе исполнение 412, приведенное в качестве примера, иллюстрирует создание промежуточного результата 414 отрисовки с помощью связывания фрагмента 308 изображения с прозрачным слоем 420. В некоторых вариантах осуществления фрагмент 308 изображения и/или прозрачный слой 420 могут иметь такие же характеристики, что и фрагмент 310 изображения и/или прозрачный слой 410. В других вариантах фрагмент 308 изображения и/или прозрачный слой 420 могут иметь характеристики, отличные от характеристик фрагмента 310 изображения и/или прозрачного слоя 410. Как описано выше, фрагмент 308 изображения может представлять часть панорамного изображения 302, которая отличается от части панорамного изображения 302, представляемой фрагментом 310 изображения. В некоторых вариантах прозрачный слой 410 и прозрачный слой 420 являются двумя отдельными прозрачными слоями. В некоторых вариантах осуществления прозрачный слой 410 и прозрачный слой 420 являются одним и тем же прозрачным слоем.
[76] На Фиг. 4 также изображено соединение промежуточного результата 404 отрисовки с промежуточным результатом 414 отрисовки для отрисовки части 430 панорамного изображения 302. В некоторых вариантах осуществления соединение промежуточного результата 404 отрисовки с промежуточным результатом 414 отрисовки содержит не менее чем частичный перевод фрагмента 310 изображения и фрагмента 308 изображения на двухмерную поверхность или на трехмерную поверхность, чтобы "реконструировать" часть панорамного изображения, изначально сформированного фрагментом 310 изображения и фрагментом 308 изображения. В некоторых вариантах соединение промежуточного результата 404 отрисовки с промежуточным результатом 414 отрисовки содержит не менее чем частичное наложение фрагмента 310 изображения и фрагмента 308 изображения на двухмерную поверхность или на трехмерную поверхность, чтобы "реконструировать" часть панорамного изображения, изначально сформированного фрагментом 310 изображения и фрагментом 308 изображения. В некоторых вариантах осуществления соединение промежуточного результата 404 отрисовки с промежуточным результатом 414 отрисовки содержит не менее чем частичное сопоставление фрагмента 310 изображения и фрагмента 308 изображения на двухмерной поверхности или на трехмерной поверхности, чтобы "реконструировать" часть панорамного изображения, изначально сформированного фрагментом 310 изображения и фрагментом 308 изображения. Как будет понятно специалистам, поскольку каждый промежуточный результат отрисовки содержит фрагмент изображения, связанный с прозрачным слоем, соединение двух промежуточных результатов отрисовки, чтобы "реконструировать" часть панорамного изображения, осуществляется без какого-либо визуального влияния со стороны прозрачных слоев, поскольку прозрачные слои остаются невидимыми после отображения реконструированной части панорамного изображения.
[77] На Фиг. 5 изображен способ 500 разбиения панорамного изображения. Способ 500 нацелен на предоставление примерного варианта осуществления разделения панорамного изображения на множество фрагментов изображения, которые затем могут быть использованы в соответствии с решением для отрисовки панорамного изображения. На изображении с панорамным изображением связана сетка, выделяющая набор треугольников, и образующая панорамное изображение 504 с сеткой. С помощью сетки способ 500 позволяет разделить панорамное изображение 502 на множество фрагментов изображения, например, фрагмент 506 изображения, фрагмент 508 изображения, фрагмент 510 изображения. В соответствии с некоторыми вариантами осуществления фрагменты 506, 508 и 510 изображения могут сохраняться с памяти сервера 222 и передаваться через сеть 220 электронному устройству 208. После получения электронным устройством 208 процессор 110 и/или графический процессор GPU 111 могут создать первый промежуточный результат отрисовки с помощью связывания фрагмента 506 изображения с первым прозрачным слоем, второй промежуточный результат отрисовки с помощью связывания фрагмента 508 изображения со вторым прозрачным слоем и третий промежуточный результат отрисовки с помощью связывания фрагмента 510 изображения с третьим прозрачным слоем. Первый, второй и третий промежуточные результаты отрисовки могут затем быть сохранены в памяти 120, 130 электронного устройства 208. После получения команды отрисовать не менее части панорамного изображения 502, электронное устройство 208 может осуществить доступ к первому, второму и третьему промежуточным результатам отрисовки, сохраненным в памяти 120, 130. После осуществления доступа первый, второй и третий промежуточные результаты отрисовки могут быть соединены для отрисовки части панорамного изображения 502, образованного комбинацией фрагментов 506, 508 и 510 изображения. Часть панорамного изображения 502 может затем быть отображена пользователю 170 на экране 142 электронного устройства 208. В некоторых вариантах осуществления после получения команды отрисовать часть панорамного изображения 502, электронное устройство 208 может определять, что первого, второго и третьего промежуточных результатов отрисовки, сохраненных в памяти 120, 130, не достаточно для "реконструкции" требуемой части панорамного изображения 502. В этом случае электронное устройство 208 может посылать запрос серверу 222 на получение дополнительных фрагментов изображения, которые могут потребоваться для отрисовки части панорамного изображения 502. После получения дополнительных фрагментов электронное устройство 208 может создавать дополнительные промежуточные результаты отрисовки, которые, в свою очередь, могут быть использованы для отрисовки части панорамного изображения 502.
[78] На Фиг. 6 и 7 изображены примерные варианты исполнения первого экрана 600 и второго экрана 700. Первый экран 600 состоит из первой части 602, отображающей часть панорамного изображения, отрисованную в соответствии с настоящим решением, и вторую часть 604, отображающую карту. Вторая часть 604 может предоставлять пользователю 170 информацию, относящуюся к местоположению отображаемого панорамного изображения. Вторая часть 604 может предоставлять пользователю 170 информацию, относящуюся к его/его виртуальному местоположению, связанному с панорамным изображением. Как описано выше относительно первого экрана 600, второй экран 700 содержит первую 702 и вторую часть 704, которые аналогичны первой 602 и второй части 604 первого экрана 600.
[79] Описав, используя Фиг. 1-7 некоторые не ограничивающие примеры систем и способов, используемые в связи с проблемой отрисовки панорамных изображений, теперь следует описать общее решение этой проблемы, изображенное на Фиг. 8.
[80] Конкретнее, на Фиг. 8 изображена блок-схема компьютерного способа 800 отрисовки панорамного изображения, содержащего первый фрагмент изображения и второй фрагмент изображения в соответствии с вариантом осуществления. Выполняемый на компьютере способ, изображенный на Фиг. 8, может включать в себя выполняемый на компьютере способ, реализуемый процессором сервера 222 и/или процессором электронного устройства 208, способ включает в себя серии этапов, выполняемых сервером 222 и/или электронным устройством 208.
[81] Способ, изображенный на Фиг. 8, может быть осуществлен, например, в случае электронного устройства 208, процессором 110 и/или графическим процессором GPU 111, выполняющими программные коды, загруженные в ОЗУ 130 из твердотельного накопителя 120 электронного устройства 208. В варианте осуществления способ, показанный на Фиг. 8, может быть осуществлен, например, в случае сервера 222, процессором 110 и/или графическим процессором GPU 111, выполняющими коды, загруженные в ОЗУ 130 из твердотельного накопителя 120 сервера 222.
[82] На этапе 802 электронное устройство 208 может получать от сервера 222 через сеть 220 первый информационный фрагмент, связанный с панорамным изображением. Панорамное изображение может быть двумерным изображением, трехмерным изображением и/или объемным изображением. Первый фрагмент изображения может быть, например, (не вводя ограничений) треугольным фрагментом. Первый информационный фрагмент может соотноситься с частью сферы, связанной с панорамным изображением, при этом сфера представляет панорамное изображение на трехмерной поверхности.
[83] На этапе 804 создается первый промежуточный результат отрисовки с помощью связывания первого фрагмента изображения с первым прозрачным слоем; первый прозрачный слой может иметь прямоугольную форму. В некоторых вариантах осуществления первый прозрачный слой может иметь ширину и высоту, выбранную так, чтобы вмещать первый фрагмент изображения. В соответствии с некоторыми вариантами осуществления, связь первого фрагмента изображения с первым прозрачным слоем может включать расположение первого фрагмента изображения на первом прозрачном слое. В других вариантах осуществления, связь первого фрагмента изображения с первым прозрачным слоем может включать соединение первого фрагмента изображения с контуром-сеткой, связанным с панорамным изображением.
[84] После создания первого промежуточного результата он сохраняется, на этапе 806 на постоянном носителе компьютерной информации, например на ОЗУ 130 и/или твердотельном накопителе 120 электронного устройства 208.
[85] На этапе 808 могут быть получены команды отрисовать не менее части панорамного изображения. Команда отрисовать панорамное изображение могут поступить в ответ на получение команд на отображение от сервера 222 и/или на взаимодействие пользователя 170 с электронным устройством 208. После получения команды отрисовать часть панорамного изображения способ 800 может перейти к выполнению этапов 810, 812 и 814, которые изложены ниже.
[86] На этапе 810 первый промежуточный результат отрисовки становится доступен постоянному носителю компьютерной информации. На этапе 812 становится доступен второй промежуточный результат отрисовки. Второй промежуточный результат отрисовки содержит второй фрагмент изображения, связанный с панорамным изображением и вторым прозрачным слоем. В некоторых вариантах осуществления второй прозрачный слой аналогичен первому прозрачному слою. В некоторых вариантах осуществления второй прозрачный слой не является аналогичным первому прозрачному слою. В других вариантах осуществления первый прозрачный слой и второй прозрачный слой являются одним и тем же прозрачным слоем. В некоторых вариантах осуществления первый прозрачный слой и второй прозрачный слой являются двумя различными прозрачными слоями.
[87] На этапе 814 происходит соединение первого промежуточного результата отрисовки и второго промежуточного результата отрисовки для отрисовки части панорамного изображения. В некоторых вариантах осуществления соединение первого промежуточного результата отрисовки и второго промежуточного результата отрисовки сводится к отрисовке части панорамного изображения, которое будет отображено на экране 142 электронного устройства 208. В некоторых вариантах осуществления соединение первого промежуточного результата отрисовки и второго промежуточного результата отрисовки содержит соединение первого фрагмента изображения и второго фрагмента изображения только тогда, когда первый фрагмент изображения и второй фрагмент изображения должны быть отображены на экране 142 электронного устройства 208. В некоторых вариантах осуществления соединение первого промежуточного результата отрисовки и второго промежуточного результата отрисовки содержит не менее чем частичное преобразование первого результата промежуточной отрисовки и второго промежуточного результата отрисовки в двухмерную поверхность или в трехмерную поверхность. В некоторых вариантах осуществления соединение первого результата промежуточной отрисовки и второго промежуточного результата отрисовки включает не менее чем частичное сопоставление первого промежуточного результата отрисовки и второго промежуточного результата отрисовки на двухмерной поверхности или на трехмерной поверхности. В некоторых вариантах осуществления соединение первого промежуточного результата отрисовки и второго промежуточного результата отрисовки содержит не менее чем частичное накладывание первого промежуточного результата отрисовки и второго промежуточного результата отрисовки.
[88] В некоторых вариантах осуществления способ 800 также может также содержать этап определения того, необходимо ли отображать часть панорамного изображения на экране 142 электронного устройства 208 и, если первого промежуточного результата отрисовки и второго промежуточного результата отрисовки, хранящихся в постоянном носителе компьютерной информации, не достаточно для отрисовки части панорамного изображения, которое должно быть отображено на экране 142 электронного устройства 208, могут быть выполнены дополнительные этапы. Дополнительные этапы могут включать запрос электронным устройством 208 третьего фрагмента изображения, связанного с панорамным изображением; и получение третьего фрагмента изображения от сервера 222. Затем создается третий промежуточный результат отрисовки с помощью связывания третьего информационного фрагмента с третьим прозрачным слоем; третий промежуточный результат отрисовки при этом содержит третий фрагмент изображения, связанный с третьим прозрачным слоем. Третий промежуточный результат отрисовки может быть сохранен на постоянном носителе компьютерной информации электронного устройства 208 и доступен для соединения с первым промежуточным результатом отрисовки и вторым промежуточным результатом отрисовки, чтобы отрисовать часть панорамного изображения для отображения.
[89] На этапе 816 отрисованная часть панорамного изображения может быть отображена, например, на экране 142 электронного устройства 208. В некоторых вариантах осуществления отрисованная часть панорамного изображения может быть отрисована на электронном устройства 208, а отображена на другом электронном устройстве, например (без введения ограничений), на экране, соединенном с электронным устройством 208.
[90] С учетом вышеописанных вариантов осуществления, которые были описаны и показаны со ссылкой на конкретные этапы, выполненные в определенном порядке, следует иметь в виду, что эти этапы могут быть совмещены, разделены, обладать другим порядком выполнения - все это не выходит за границы решения. Соответственно, порядок и группировка этапов не является ограничением для решения.
[91] Специалисты в данной области техники поймут, что в настоящем описании выражение "получение данных" от пользователя подразумевает получение электронным устройством 208 или другим электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран электронного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.
[92] Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, опто-волоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).
[93] Модификации и улучшения вышеописанных вариантов осуществления будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего решения ограничен только объемом прилагаемой формулы изобретения.
Изобретение относится к электронным устройствам и способам отрисовки панорамного изображения. Техническим результатом является уменьшение вычислительной нагрузки на устройства обработки электронного устройства при отрисовке части панорамного изображения. В способе для отрисовки панорамного изображения, содержащего первый фрагмент изображения и второй фрагмент изображения, получают первый фрагмент изображения. Создают первый промежуточный результат отрисовки с помощью связывания первого фрагмента изображения с первым прозрачным слоем и сохраняют первый промежуточный результат отрисовки. После получения команды отрисовать не менее части панорамного изображения выполняют доступ к первому промежуточному результату отрисовки и доступ ко второму промежуточному результату отрисовки. Соединяют первый промежуточный результат отрисовки и второй промежуточный результат отрисовки для отрисовки части панорамного изображения. Отображают на экране часть панорамного изображения. 2 н. и 32 з.п. ф-лы, 8 ил.
1. Электронное устройство (208) для отрисовки панорамного изображения, содержащего первый фрагмент (310) изображения и второй фрагмент (308) изображения, содержащее:
постоянный носитель (120, 130) компьютерной информации,
экран (142),
сетевой интерфейс (150), позволяющий обмен данными с удаленным сервером (222), и
процессор (110, 111), выполненный с возможностью:
получения от удаленного сервера первого (310) фрагмента изображения; создания первого промежуточного результата (404) отрисовки с помощью связывания первого фрагмента (310) изображения с первым прозрачным слоем (410);
сохранения на постоянном носителе (120, 130) первого промежуточного результата (404) отрисовки;
после получения команды отрисовать не менее части панорамного изображения:
доступа к сохраненному на постоянном носителе (120, 130) первому промежуточному результату (404) отрисовки; доступа к сохраненному на постоянном носителе (120, 130) второму промежуточному результату (414) отрисовки, содержащему второй фрагмент (308) изображения, связанный со вторым прозрачным слоем (420);
объединения первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки для отрисовки части панорамного изображения; и отображения на экране (142) части панорамного изображения.
2. Устройство (208) по п. 1, в котором первый фрагмент (310) изображения является первым треугольным фрагментом, а второй фрагмент (308) изображения является вторым треугольным фрагментом.
3. Устройство (208) по п. 1, в котором первый прозрачный слой (410) имеет ширину и высоту, полностью вмещающие первый фрагмент (310) изображения, а второй прозрачный слой (420) имеет ширину и высоту, полностью вмещающие второй фрагмент (308) изображения.
4. Устройство (208) по п. 1, в котором первый прозрачный слой (410) и второй прозрачный слой (420) имеют прямоугольную форму.
5. Устройство (208) по п. 1, в котором процессор выполнен с возможностью соединения первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки посредством отрисовки части панорамного изображения, отображаемого на экране (142).
6. Устройство (208) по п. 1, в котором процессор выполнен с возможностью объединения первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки посредством объединения первого фрагмента (310) изображения и второго фрагмента (308) изображения только при необходимости отображения первого фрагмента (310) изображения и второго фрагмента (308) изображения на экране (142).
7. Устройство (208) по п. 1, в котором процессор (110, 111) выполнен с возможностью определения необходимости отображения части панорамного изображения на экране (142) и при недостаточности первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки, хранящихся в постоянном носителе (120, 130) компьютерной информации, для отрисовки части панорамного изображения, которое должно быть отображено на экране (142), осуществления:
запроса третьего информационного фрагмента, связанного с панорамным изображением у удаленного сервера (222);
получения от удаленного сервера (222) третьего фрагмента изображения;
создания третьего промежуточного результата отрисовки посредством объединения третьего информационного фрагмента с третьим прозрачным слоем; при этом третий промежуточный результат отрисовки содержит третий фрагмент изображения, связанный с третьим прозрачным слоем;
сохранения на постоянном носителе (120, 130) третьего промежуточного результата отрисовки;
доступа к сохраненному на постоянном носителе (120, 130) компьютерной информации третьему промежуточному результату отрисовки; и
объединения первого, второго и третьего промежуточных результатов отрисовки для отрисовки части панорамного изображения, которое должно быть отображено.
8. Устройство (208) по п. 1, в котором получение команды отрисовать панорамное изображение происходит в ответ на получение команды отображения от удаленного сервера (222) и взаимодействия пользователя (170) с электронным устройством (208).
9. Устройство (208) по п. 1, в котором объединение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки содержит по меньшей мере частичное преобразование первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки в двухмерную поверхность или в трехмерную поверхность.
10. Устройство (208) по п. 1, в котором объединение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки содержит по меньшей мере частичное сопоставление первого фрагмента (310) изображения и второго фрагмента (308) изображения на двухмерной поверхности или на трехмерной поверхности.
11. Устройство (208) по п. 1, в котором объединение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки содержит по меньшей мере частичное наложение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414).
12. Устройство (208) по п. 1, в котором первый фрагмент (310) изображения и второй фрагмент (308) изображения отвечают соответствующей части сферы, связанной с панорамным изображением.
13. Устройство (208) по п. 1, в котором процессор выполнен с возможностью при объединении первого фрагмента (310) изображения с первым прозрачным слоем (410) выполнения наложения первого фрагмента (310) изображения на первый прозрачный слой (410).
14. Устройство (208) по п. 1, в котором процессор выполнен с возможностью объединения первого фрагмента (310) изображения с первым прозрачным слоем (410) выполнением объединения первого фрагмента (310) с контуром-сеткой, связанным с панорамным изображением.
15. Устройство (208) по п. 1, в котором панорамное изображение представляет собой двухмерное изображение или объемное изображение.
16. Устройство (208) по п. 1, в котором первый прозрачный слой (410) и второй прозрачный слой (420) представляют собой один и тот же прозрачный слой.
17. Устройство (208) по п. 1, в котором первый прозрачный слой (410) и второй прозрачный слой (420) являются двумя разными прозрачными слоями.
18. Способ (800) для отрисовки панорамного изображения, содержащего первый фрагмент (310) изображения и второй фрагмент (308) изображения, включающий:
получение первого фрагмента (802) изображения;
создание (804) процессором (110, 111) первого промежуточного результата (404) отрисовки с помощью объединения первого фрагмента (310) изображения с первым прозрачным слоем (410);
сохранение (806) на постоянном носителе (120, 130) компьютерной информации первого промежуточного результата (404) отрисовки;
после получения (808) команды отрисовать не менее части панорамного изображения выполнение:
доступа (810) к сохраненному на постоянном носителе (120, 130) первому промежуточному результату (404) отрисовки;
доступа (812) к сохраненному на постоянном носителе (120, 130) второму промежуточному результату (414) отрисовки, содержащему второй фрагмент (308) изображения, связанный со вторым прозрачным слоем (420);
объединение (814) первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки для отрисовки части панорамного изображения; и
отображение (816) на экране (142) части панорамного изображения.
19. Способ по п. 18, в котором первый фрагмент (310) изображения является первым треугольным фрагментом, а второй фрагмент (308) изображения является вторым треугольным фрагментом.
20. Способ по пп. 18 и 19, в котором используют первый прозрачный слой (410) с шириной и высотой, полностью вмещающей первый фрагмент (310) изображения, и используют второй прозрачный слой (420) с шириной и высотой, полностью вмещающей второй фрагмент изображения.
21. Способ по п. 18, в котором используют первый прозрачный слой (410) и второй прозрачный слой (420) прямоугольной формы.
22. Способ по п. 18, в котором объединение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки сводится к отрисовке части панорамного изображения, которое будет отображено на экране (142).
23. Способ по п. 18, в котором объединение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки содержит объединение первого фрагмента (310) изображения и второго фрагмента (308) изображения только при необходимости отображения первого и второго фрагментов изображения на экране (142).
24. Способ по п. 18, в котором определяют необходимость отображения части панорамного изображения на экране (142) и при недостатке первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки, хранящихся в постоянном носителе (120, 130), для отрисовки части панорамного изображения, и выполняют:
запрос третьего информационного фрагмента, связанного с панорамным изображением;
получение третьего фрагмента изображения;
создание третьего промежуточного результата отрисовки с помощью объединения третьего информационного фрагмента с третьим прозрачным слоем; при этом третий промежуточный результат отрисовки содержит третий фрагмент изображения, связанный с третьим прозрачным слоем;
сохранение на постоянном носителе (120, 130) первого промежуточного результата (404) отрисовки;
доступ к сохраненному на постоянном носителе (120, 130) третьему промежуточному результату отрисовки и
объединение первого промежуточного результата (404) отрисовки, второго промежуточного результата (414) отрисовки и третьего промежуточного результата отрисовки для отрисовки части панорамного изображения, которое должно быть отображено.
25. Способ по п. 18, в котором получают команду отрисовать панорамное изображение при получении команды отображения от удаленного сервера (222) и взаимодействия пользователя с электронным устройством (208).
26. Способ по п. 18, в котором объединение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки содержит по меньшей мере частичное преобразование первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки в двухмерную поверхность или в трехмерную поверхность.
27. Способ по п. 18, в котором объединение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки содержит по меньшей мере частичное сопоставление первого фрагмента (310) изображения и второго фрагмента (308) изображения на двухмерной поверхности или на трехмерной поверхности.
28. Способ по п. 18, в котором объединение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414) отрисовки содержит по меньшей мере частичное наложение первого промежуточного результата (404) отрисовки и второго промежуточного результата (414).
29. Способ по п. 18, в котором используют первый фрагмент (310) изображения и второй фрагмент (308) изображения, отвечающие соответствующей части сферы, связанной с панорамным изображением.
30. Способ по п. 18, в котором объединение первого фрагмента (310) изображения с первым прозрачным слоем (410) включает наложение первого фрагмента (310) изображения на первый прозрачный слой (410).
31. Способ по п. 18, в котором объединение первого фрагмента (310) изображения с первым прозрачным слоем (410) включает объединение первого фрагмента (310) с контуром-сеткой, связанным с панорамным изображением.
32. Способ по п. 18, в котором используют в качестве панорамного изображения двухмерное изображение или объемное изображение.
33. Способ по п. 18, в котором в качестве первого прозрачного слоя (410) и второго прозрачного слоя (420) используют один и тот же прозрачный слой.
34. Способ по п. 18, в котором в качестве первого прозрачного слоя (410) и второго прозрачного слоя (420) используют два различных прозрачных слоя.
СПОСОБ ДЛЯ ОБРАБОТКИ ЦИФРОВОГО ИЗОБРАЖЕНИЯ (ВАРИАНТЫ) | 2004 |
|
RU2368005C2 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
US 8217956 B1, 10.07.2012 | |||
US 8810626 B2, 19.08.2014. |
Авторы
Даты
2017-01-10—Публикация
2015-01-23—Подача