Способ и электронное устройство для обработки изображения

Изобретение относится к способам обработки изображения. Технический результат заключается в повышении скорости формирования изображения. Способ включает в себя получение изображения, которое необходимо отрисовать для отображения на электронном устройстве, разделение изображения по меньшей мере на два фрагмента, каждый из которых является пригодным для отрисовки с использованием графических элементов, получение соответствующим дочерним потоком обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов, причем каждый дочерний поток обработки получает единственный экземпляр соответствующего фрагмента для обработки в данный момент, выделение новой области в памяти электронного устройства для каждого соответствующего дочернего потока обработки, отрисовку соответствующим дочерним потоком обработки соответствующих изображений каждого соответствующего фрагмента в соответствующей выделенной области, сохранение каждого отрисованного изображения в виде байтового массива, передачу байтового массива соответствующим дочерним потоком обработки главному потоку обработки, отрисовку финального изображения главным потоком обработки на экране электронного устройства с использованием набора байтовых массивов. 2 н. и 18 з.п. ф-лы, 6 ил.

 

Область техники, к которой относится изобретение

Настоящая технология относится к способам обработки изображения и, более конкретно, к способу и электронному устройству для обработки изображения.

Уровень техники

Типичный пользователь электронного устройства может получить доступ к огромному количеству информации (например, к информации, доступной на различных ресурсах в Интернете и так далее). Иногда такая информация содержит мультимедиа - например, изображения, видео, аудиофайлы и так далее. Некоторые изображения, доступные на этих веб-сайтах, могут быть довольно объемными и могут требовать значительных вычислительных ресурсов электронного устройства для отрисовки изображения на экране электронного устройства. Один пример такого изображения, которое требует значительных вычислительных ресурсов, - географическая карта для отображения на электронном устройстве.

Множество веб-сайтов и приложений для электронных устройств отображают географические карты. Некоторые приложения посвящены исключительно отображению географических карт. Кроме отображения географических карт, эти веб-сайты и приложения часто отображают объекты с перекрытием карты, чтобы отобразить такие объекты, как достопримечательности, указатели, обозначения, значки, графики движения по маршруту и тому подобные. Во многих случаях эти карты интерактивны. Например, для карты, отображенной в веб-браузере, движение курсора мыши по объекту на карте может вызвать отображение описания объекта, такого как адрес или название пункта. В этом же примере, щелчок мышью по объекту может отобразить облачко, содержащее дополнительную информацию, связанную с пунктом, который представлен объектом, например, название пункта, адрес, номер телефона, ссылка на веб-сайт и в случае бизнес сервисов, таких как рестораны и отели, рейтинги, ссылки для бронирования или на отзывы клиентов.

Для отображения таких географических карт в пользовательском интерфейсе (таком как веб-браузер), пользовательский запрос на конкретную карту отправляется серверам, связанным с конкретным веб-сайтом или используется приложение. Например, человек может искать карту центра конкретного города. Картографический сервер извлекает фрагмент или фрагменты карты, соответствующие запрошенной области карты. Сервер приложения также может извлекать дополнительную информацию, относящуюся к запрошенному пункту, включая объекты и данные для создания интерактивных элементов карты.

Затем сервер отправляет запрошенную область карты (обычно фрагментами) на электронное устройство пользователя для отображения в пользовательском интерфейсе для просмотра пользователем и, опционально, для взаимодействия с ним. Электронное устройство пользователя затем формирует картографическое изображение для просмотра, используя полученные фрагменты. Очевидно, что на электронном устройстве пользователя затрачивается большая вычислительная мощность, при учете высокого разрешения картографических изображений, а также возможной необходимости заново отрисовывать картографическое изображение, когда пользователь увеличивает, уменьшает его или передвигает по нему курсор.

В патенте США №7734412, опубл 08.06.2010 описано устройство и способ для отрисовки картографических изображений. В одном из примеров устройство (например, картографический сервер) включает в себя алгоритм для инициации передачи данных о фрагментированном векторном изображении в ответ на запрос карты, в котором векторные данные связаны с сохраненными картографическими данными, подразделенными на множество фрагментов. Данные о фрагментированном векторном изображении передаются на удаленное устройство (например, клиентское устройство) для формирования картографического изображения. Кроме того, данные о векторном изображении могут содержать один или несколько связанных с ними атрибутов, настраиваемых принимающим устройством. Например, картографическое изображение может быть сформировано (например, настроено) на основе одного или нескольких локальных атрибутов с разнообразием языков, цветов, типа отображения элементов карты и других характеристик изображения на картографическом изображении.

Раскрытие изобретения

Задачей предлагаемой технологии является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.

Авторы разработали несколько вариантов осуществления настоящей технологии, принимая во внимание по меньшей мере один недостаток известного уровня техники. Большинство современных веб-ресурсов, доступных в Интернете, созданы с полным или частичным использованием JavaScript. Как известно специалистам в данной области, JavaScript позволяет создавать относительно сложные веб-ресурсы, а также исполнять часть кода на электронном устройстве, которое используется для доступа к веб-ресурсу. Браузер, исполняющий код JavaScript (или более конкретно, ядро операционной системы, на которой исполняется браузер) создает главный поток обработки для обработки кода JavaScript. Главный поток обработки исполняет блоки JavaScript последовательно. Рабочие потоки (также называемые "потоки-исполнители" или "дочерние потоки обработки") позволяют исполнять параллельные процессы JavaScript с ограничением: рабочие потоки могут исполнять только процессы, которые не требуют взаимодействия с пользовательским интерфейсом электронного устройства, исполняющего браузер, который, в свою очередь, исполняет JavaScript.

Главный поток обработки и рабочие потоки обмениваются данными. Данные, которыми обмениваются главный поток обработки и рабочие потоки, включают в себя: задачи, которые должны быть исполнены рабочими потоками и результаты исполнения задач рабочими потоками. Главный поток обработки затем использует результаты исполнения задач рабочими потоками, чтобы вывести их (или их часть) в пользовательский интерфейс электронного устройства.

Авторы обнаружили, что ограничения того, как JavaScript взаимодействует с главным потоком обработки и рабочими потоками, приводят к следующему недостатку: отрисовка больших изображений не может быть выполнена с помощью параллельных процессов. Другими словами, отрисовка изображения на экране может быть выполнена только главным потоком обработки. Это создает все увеличивающуюся перегрузку главного потока обработки и увеличивает время, которое требуется главному потоку обработки, чтобы сформировать изображение, например, картографическое изображение, которое показано как 100 на Фиг. 1. На Фиг. 1 представлено типичное картографическое изображение.

Первым объектом настоящей технологии является способ обработки изображения, выполняемый на электронном устройстве, имеющем приложение, исполняемое электронным устройством с помощью главного потока обработки и по меньшей мере одного дочернего потока обработки, который зависит от главного потока обработки, способ содержит: получение изображения, которое необходимо отрисовать для отображения на электронном устройстве; разделение изображения по меньшей мере на два фрагмента, каждый из которых является пригодным для отрисовки с использованием графических элементов; получение соответствующим дочерним потоком обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов, причем каждый дочерний поток обработки получает единственный экземпляр соответствующего фрагмента для обработки в данный момент; выделение новой области в памяти электронного устройства для каждого соответствующего дочернего потока обработки; отрисовку соответствующим дочерним потоком обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти; сохранение каждого отрисованного изображения в виде байтового массива; передачу байтового массива соответствующим дочерним потоком обработки главному потоку обработки; отрисовку финального изображения главным потоком обработки на экране электронного устройства с использованием набора байтовых массивов.

Возможен вариант осуществления способа, в котором при получении соответствующим дочерним потоком обработки набора требуемых графических элементов выполняют: для каждого фрагмента из по меньшей мере двух фрагментов инициирование вычисления главным потоком обработки набора требуемых графических элементов, требуемых для отрисовки соответствующего фрагмента; передачу указания на соответствующий фрагмент и набор требуемых графических элементов соответствующим дочерним потокам обработки.

Возможен вариант осуществления способа, в котором набор требуемых графических элементов - это подгруппа всех возможных графических элементов; а в способе дополнительно выполняют выбор главным потоком обработки набора требуемых графических элементов для каждого из по меньшей мере двух фрагментов.

Возможен вариант осуществления способа, в котором при получении соответствующим дочерним потоком обработки набора требуемых графических элементов выполняют: получение из главного потока обработки всех возможных графических элементов; выбор соответствующими дочерними потоками обработки из всех возможных графических элементов подгруппы графических элементов, которая является требуемой для обработки связанного одного из не менее двух фрагментов. Возможен вариант осуществления способа, в котором главный поток обработки и по меньшей мере один дочерний поток обработки являются компонентами архитектуры JavaScript.

Возможен вариант осуществления способа, в котором дополнительно выбирают по меньшей мере один дочерний поток обработки.

Возможен вариант осуществления способа, в котором упомянутый выбор по меньшей мере одного дочернего потока обработки выполняют как функцию вычислительной мощности процессора электронного устройства.

Возможен вариант осуществления способа, в котором приложение является браузерным приложением.

Возможен вариант осуществления способа, в котором изображение содержит часть карты.

Возможен вариант осуществления способа, в котором дополнительно получают запрос на просмотр картографического изображения, причем картографическое изображение включает в себя часть карты.

Возможен вариант осуществления способа, в котором по меньшей мере два фрагмента содержат в себе множество фрагментов; а каждый соответствующий дочерний поток обработки получает следующее множество фрагментов после завершения обработки предыдущего множества фрагментов.

Еще одним объектом настоящей технологии является электронное устройство, содержащее: интерфейс пользовательского ввода и интерфейс пользовательского вывода; процессор, выполненный с возможностью выполнения приложения с использованием главного потока обработки и по меньшей мере одного дочернего потока обработки, который зависит от главного потока обработки, также процессор выполнен с возможностью: получения изображения, которое необходимо сформировать для отображения на электронном устройстве; разделения изображения по меньшей мере на два фрагмента, каждый из которых является пригодным для отрисовки с использованием графических элементов; инициирования получения соответствующими дочерними потоками обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов; выделения новой области в памяти электронного устройства для каждого соответствующего дочернего потока обработки; инициирования отрисовки соответствующими дочерними потоками обработки соответствующих изображений каждого соответствующего фрагмента в соответствующей выделенной области; сохранения каждого отрисованного изображение в виде байтового массива; инициирования передачи байтового массива соответствующими дочерними потоками обработки главному потоку обработки; инициирования отрисовки главным потоком обработки финального изображения на экране электронного устройства с использованием набора байтовых массивов.

Возможен вариант осуществления электронного устройства, в котором для инициации получения соответствующим дочерним потоком обработки набора требуемых графических элементов процессор выполнен с возможностью: для каждого фрагмента из по меньшей мере двух фрагментов инициирования вычисления главным потоком обработки набора требуемых графических элементов, требуемых для отрисовки соответствующего фрагмента; передачи указания на соответствующий фрагмент и набор требуемых графических элементов соответствующим дочерним потокам обработки.

Возможен вариант осуществления электронного устройства, в котором процессор выполнен с возможностью инициирования выбора главным потоком обработки набора требуемых графических элементов, являющихся подгруппой всех возможных графических элементов, для каждого из по меньшей мере двух фрагментов.

Возможен вариант осуществления электронного устройства, в котором для инициации получения соответствующим дочерним потоком обработки набора требуемых графических элементов процессор выполнен с возможностью инициирования: получения соответствующим дочерним потоком обработки из главного потока обработки всех возможных графических элементов; выбора соответствующими дочерними потоками обработки из всех возможных графических элементов подгруппы графических элементов, которая является требуемой для обработки связанного одного из по меньшей мере двух фрагментов.

Возможен вариант осуществления электронного устройства, в котором главный поток обработки и по меньшей мере один дочерний поток обработки являются компонентами архитектуры JavaScript.

Возможен вариант осуществления электронного устройства, в котором процессор дополнительно выполнен с возможностью выбора по меньшей мере одного дочернего потока обработки.

Возможен вариант осуществления электронного устройства, в котором процессор дополнительно выполнен с возможностью выбора по меньшей мере одного дочернего потока обработки как функцию вычислительной мощности процессора.

Возможен вариант осуществления электронного устройства, в котором приложение является браузерным приложением.

Возможен вариант осуществления электронного устройства, в котором процессор дополнительно выполнен с возможностью получения, через интерфейс пользовательского ввода запроса на просмотр картографического изображения, включающего в себя часть карты.

В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».

В контексте настоящего описания, если конкретно не указано иное, "клиентское устройство" подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим для решения соответствующей задачи. Примерами клиентских устройств, среди прочего, являются персональные компьютеры (настольные компьютеры, ноутбуки и т.д.), смартфоны и планшеты. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного способа.

В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.

В контексте настоящего описания, если конкретно не указано иное, термин «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).

В контексте настоящего описания, если конкретно не указано иное, термин «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д. В контексте настоящего описания, если конкретно не указано иное, термин «интерктивный» подразумевает под собой, что нечто (или не менее чем его часть) может реагировать на пользовательский ввод.

Каждый вариант осуществления настоящей технологии преследует по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять и другим целям, отдельно не указанным здесь.

Дополнительные и/или альтернативные характеристики и преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.

Краткое описание чертежей

Для лучшего понимания настоящей технологии, а также других ее вариантов осуществления и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами.

На Фиг. 1 представлен снимок экрана, изображающий типичное картографическое изображение; это изображение является примером изображения, которое может быть обработано с применением вариантов осуществления настоящей технологии.

На Фиг. 2 представлена принципиальная схема системы, которую можно реализовать как не ограничивающий вариант осуществления настоящей технологии.

На Фиг. 3 представлена блок-схема клиентского устройства системы, изображенной на Фиг. 2.

На Фиг. 4 представлена блок-схема способа, выполненного в соответствии с не ограничивающими вариантами осуществления настоящей технологии, способ выполняется с помощью клиентского устройства, изображенного на Фиг. 2.

На Фиг. 5 представлен фрагмент карты, обрабатываемый в соответствии с вариантами осуществления настоящей технологии.

На Фиг. 6 представлена схема главного потока обработки, первого дочернего потока обработки, второго дочернего потока обработки и N-го дочернего потока обработки, созданных в соответствии с не ограниченными вариантами осуществления настоящей технологии.

Осуществление изобретения

На Фиг. 2 представлена принципиальная схема системы 200, которую можно реализовать как не ограничивающий вариант осуществления настоящей технологии. Важно иметь в виду, что нижеследующее описание системы 200 представляет собой иллюстративный вариант осуществления настоящей технологии. Таким образом, все последующее описание представлено только как описание примера осуществления настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы 200 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 200 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобных случаях он представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.

Система 200 включает в себя электронное устройство 202. Электронное устройство 202 обычно связано с пользователем 204 и, таким образом, иногда может упоминаться как клиентское устройство 202. Следует отметить, что тот факт, что клиентское устройство 202 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации, или чего-либо подобного.

Варианты клиентского устройства 202 конкретно не ограничены, но, например, в качестве клиентского устройства 202 могут использоваться персональные компьютеры (настольные компьютеры (изображен), ноутбуки, нетбуки и т.п.), устройства беспроводной связи (мобильные телефоны, смартфоны, планшеты и т.п.). Клиентское устройство 202 включает в себя аппаратное обеспечение, программное обеспечение и/или встроенные программы (или сочетание перечисленного) для выполнения приложения (например, браузерного приложения, картографического приложения и т.п.), причем приложение среди прочего отображает пользовательский интерфейс, например, интерфейс браузерного приложения, который может быть использован для доступа к изображению карты с помощью картографического приложения или браузерного приложения. Картографическое приложение, среди прочего, может быть специализированным картографическим приложением, например, приложением Яндекс.Карты для мобильных устройств, веб-браузером или любым другим приложением, при условии, что они включают в себя область отображения карты. В конкретном варианте осуществления настоящей технологии пользовательский интерфейс может быть реализован на веб-странице, которая не является картографически специализированной (например, на веб-сайте общего характера, таком как веб-сайт банка, ресторана и т.п.).

В конкретных вариантах осуществления с краткой ссылкой на Фиг. 3 будет описана принципиальная схема клиентского устройства 202. Клиентское устройство 202 может содержать процессор 303. В конкретных вариантах осуществления настоящей технологии процессор 303 может состоять из одного или нескольких процессоров и/или одного или нескольких микроконтроллеров, реализованных с возможностью выполнять команды и операции, связанные с операциями клиентского устройства 202. В разнообразных вариантах осуществления настоящей технологии процессор 303 может быть реализован как однокристальный, многокристальный и/или содержащий другие электротехнические детали, включая одну или несколько интегральных схем и печатных плат. Процессор 303 может опционально содержать кэш-память (не изображена) для временного локального хранения команд, данных или электронных адресов. В качестве примера, процессор 303 состоять из одного или нескольких процессоров и/или одного или нескольких контроллеров, предназначенных для определенных задач обработки клиентского устройства 202 или одного многофункционального процессора или контроллера.

Процессор 303 функционально связан с модулем 304 памяти. Модуль 304 памяти может включать один или несколько носителей и в общем случае предоставлять место для хранения машинного кода (например, программного обеспечения и/или встроенных программ). В качестве примера модуль 304 памяти может включать разнообразные материальные машиночитаемые носители, включая постоянное запоминающее устройство ПЗУ (ROM) и/или оперативное запоминающее устройство ОЗУ (RAM). Как широко известно в данной области техники, ПЗУ передает данные и команды однонаправленно процессору 303, а ОЗУ обычно используется для передачи данных и команд двунаправленно. Модуль 304 памяти может также включать одно или несколько стационарных запоминающих устройств, в виде, среди прочих подходящих форм памяти, например, жестких дисков (HDD), твердотельных накопителей (SSD), карт флэш-памяти (например, безопасные цифровые карты или SD-карты, встроенные мультимедийные карты или еММС карты), соединенных двунаправленно с процессором 303. Информация может также находиться на одном или нескольких съемных носителях, поставленных или установленных в клиентское устройство 202. В качестве примера любое количество подходящих карт памяти (например, SD-карт) может быть установлено в клиентское устройство 202 на временной или постоянной основе.

Модуль 304 памяти может хранить в числе прочего серии машиночитаемых команд, выполнение которых позволяет процессору 303 (а также другим компонентам клиентского устройства 202) выполнять различные описанные здесь операции. Клиентское устройство 202 также содержит модуль 306 ввода-вывода. Модуль 306 ввода-вывода может содержать одно или несколько устройств ввода-вывода, функционально связанных с процессором 303. Например, модуль 306 ввода-вывода может содержать клавиатуру, мышь, одну или несколько кнопок, колесико и/или дисплей (например, жидкокристаллический дисплей (LCD), светодиодный дисплей (LED), дисплей на основе интерферометрической модуляции (IMOD) или дисплей на основе любой другой подходящей технологии). В общем случае, устройства ввода выполнены с возможностью передавать данные, команды и ответы из внешнего мира в клиентское устройство 202. Дисплей в общем случае выполнен с возможностью отображать графический интерфейс пользователя (GUI), который предоставляет простой в использовании графический интерфейс между пользователем клиентского устройства 202 и операционной системой или приложением(и), установленными на клиентском устройстве 202. В общем случае графический интерфейс пользователя (GUI) представляет программы, файлы и операционные опции с помощью графических изображений. Во время проведения операции пользователь может выбрать и активировать разнообразные графические изображения, отображенные на дисплее, для инициации функций и задач, связанных с ними. Модуль 306 ввода-вывода может также включать сенсорные устройства, такие как сенсорная панель и сенсорный экран. Сенсорная панель является устройством ввода, включающим поверхность, которая определяет ввод на основе касаний пользователя. Аналогично, сенсорный экран является экраном, который определяет наличие и местоположение касаний пользователя. Модуль 306 ввода-вывода может также включать экран или панель мультисенсорной или дуальной сенсорной модели, которые могут определять наличие, местоположение и движение более чем одного сенсорного ввода, как, например, касания двумя или тремя пальцами.

В конкретном варианте осуществления настоящей технологии клиентское устройство 202 является смартфоном, а модуль 306 ввода-вывода может являться сенсорным экраном.

В конкретном варианте осуществления настоящей технологии клиентское устройство 202 может дополнительно содержать аудиомодуль 308, видеомодуль 310, модуль 312 беспроводной передачи данных, сенсорный модуль 314, и/или модуль 316 проводной передачи данных, при этом все они функционально соединены с процессором 303 для обеспечения разнообразных функций клиентского устройства 202.

Например, видеомодуль 310, включая оптический сенсор (например, прибор с зарядовой связью (CCD) или комплементарный метал-оксидный полупроводниковый (CMOS) видеосенсор), может быть использован для обеспечения фото- и видеофункций, таких как фото- и видеосъемка. Например, модуль 316 проводной передачи данных, может включать в себя порт USB (универсальной последовательной шины) для передачи файлов, или порт Ethernet для связи с LAN (локальной вычислительной сетью). Дополнительно, клиентское устройство 202 может питаться от модуля 318 источника питания, который может быть реализован как аккумулятор и т.п.

В некоторых вариантах осуществления настоящей технологии модуль 312 беспроводной передачи данных может быть выполнен для управления одной или несколькими беспроводными сетями, например, персональной беспроводной сетью (WPAN) (такой как, например, BLUETOOTH WPAN или инфракрасная персональная сеть (PAN)), сетью WI-FI (такой как, например, сеть 802.11a/b/g/n WI-FI, многосвязная сеть 802.11s), сетью с широкополосным доступом в микроволновом диапазоне WI-MAX, сотовой сетью (такой как, например, сеть глобальной системы мобильной передачи данных (GSM), сеть с развитием стандарта GSM с увеличенной скоростью передачи данных (EDGE), сеть универсальной мобильной телекоммуникационной системы (UMTS) и/или сеть стандарта долговременного развития (LTE)). Дополнительно, модуль 312 беспроводной передачи данных может включать протоколы хранения, вследствие чего клиентское устройство 202 может быть выполнено с возможностью быть центральной станцией для других устройств беспроводной передачи данных.

Сенсорный модуль 314 может включать одно или несколько сенсорных устройств для обеспечения дополнительного ввода и многофункциональности клиентского устройства 202.

В конкретных вариантах осуществления настоящей технологии, разнообразные компоненты клиентского устройства 202 могут быть функционально соединены с одной или несколькими шинами (включая программное и/или аппаратное обеспечение). В качестве неограничивающего примера, одна или несколько шин могут включать в себя: ускоренный графический порт (AGP) или другую шину передачи графических данных, шину усовершенствованной стандартной промышленной архитектуры (EISA), внешнюю шину (FSB), высокопроизводительную шину типа HyperTransport (HYPERTRANSPORT (HT)), шину стандартной промышленной архитектуры (ISA), высокоскоростную коммутируемую последовательную шину INFINIBAND, шину малого числа контактов (LPC), шину запоминающего устройства, шину стандарта микроканальной архитектуры (МСА), локальную шину соединения периферийных устройств (PCI), локальную шину соединения периферийных устройств Express (PCI-X), шину для организации доступа к жестким дискам в портативных компьютерах (SATA), локальную шину стандарта VESA (VLB), универсальный асинхронный интерфейс (UART), шину межсоединений интегральных схем (I2C), шину последовательного периферийного интерфейса (SPI), интерфейс SD-памяти, интерфейс ММС-памяти, интерфейс флеш-карты памяти, интерфейс защищенного цифрового ввода-вывода (SDIO), шину многоканального буферизированного последовательного порта (McBSP), универсальную последовательную шину (USB), шину стандартного запоминающего устройства (GPMC), шину контроллера SDRAM (SDRC), шину стандартного ввода-вывода (GPIO), шину двухкомпонентного видео-сигнала (S-Video), шину последовательного интерфейса дисплея (DSI), шину расширенной шинной архитектуры для микроконтроллеров (АМВА), или иную подходящую шину или сочетание двух или нескольких шин.

Возвращаясь к описанию Фиг. 2, клиентское устройство 202 соединено с сетью 206 передачи данных через линию 208 связи. В некоторых вариантах осуществления настоящей технологии, не ограничивающих ее объем, сеть 206 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящей технологии сеть 206 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.

Реализация линии 208 передачи данных не ограничена и будет зависеть от того, какое клиентское устройство 202 используется. В качестве примера, но не ограничения, в данных вариантах осуществления настоящей технологии в случаях, когда клиентское устройство 202 представляет собой беспроводное устройство связи (например, смартфон), линия 208 передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.). В тех примерах, где клиентское устройство 202 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет WiFi®, Bluetooth® и т.п) так и проводной (соединение на основе сети Ethernet).

Важно иметь в виду, что варианты реализации клиентского устройства 202, линии 208 передачи данных и сети 206 передачи данных даны исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления клиентского устройства 202, линии 208 передачи данных и сети 206 передачи данных. То есть, представленные здесь примеры не ограничивают объем настоящей технологии.

К сети передачи данных также присоединены картографический сервер 210 и сервер 212 приложения. Серверы 210, 212 могут представлять собой обычные компьютерные серверы. В примере варианта осуществления настоящей технологии каждый из серверов 210, 212 контента может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Предполагается, что серверы 210, 212 могут быть реализованы на любом подходящем аппаратном и/или прикладном программном, и/или системном программном обеспечении или их комбинации. Разумеется, картографический сервер 210 может быть реализован иначе, чем сервер 212 приложения.

В представленном варианте осуществления настоящей технологии, не ограничивающем ее объем, каждый из серверов 210, 212 является одиночным сервером. В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, функциональность каждого из серверов 210, 212 может быть разделена, и может выполняться с помощью нескольких серверов. В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, функциональность серверов 210, 212 может быть представлена на одном сервере. Варианты осуществления серверов 210, 212 широко известны среди специалистов в данной области техники. Тем не менее, для краткой справки: серверы 210, 212 содержат интерфейс передачи данных (не показан), который настроен и выполнен с возможностью обмениваться данными с различными элементам (например, клиентским устройством 208, или друг с другом) через сеть 206 передачи данных. Каждый из серверов 210, 212 дополнительно включает в себя один или несколько пунктов из следующего: компьютерный процессор (не показан), функционально соединенный с интерфейсом связи, настроенный и выполненный с возможностью выполнять различные процессы, описанные здесь.

Картографический сервер 210 соединен с сетью 206 передачи данных через линию 214 передачи данных. Сервер 212 приложения соединен с сетью 206 передачи данных через линию 216 передачи данных. Реализация линий 214, 216 передачи данных не ограничена и будет зависеть от того, как реализованы серверы 210, 212. Предполагается, что примеры вариантов осуществления линии 208 передачи данных, предоставленные выше, могут быть применены к линиям 214, 216 передачи данных. Как будет описано ниже, картографический сервер 210 настроен на получение от клиентского устройства 202 запроса на фрагмент карты через сеть 206 передачи данных и линии 214, 216 передачи данных, извлекать запрошенный фрагмент карты из одной или нескольких баз данных (не показаны), обмениваясь данными с картографическим сервером 210, и отправлять запрошенный участок карты на клиентское устройство 202 через сеть 206 передачи данных и линии 214, 216 передачи данных.

В других вариантах осуществления настоящей технологии клиентское устройство 202 может быть выполнено с возможностью связываться с сервером 212 приложения для доступа к приложению, предоставляемому сервером 212 приложения. В некоторых вариантах осуществления технологии приложение может быть картографическим приложением. В других вариантах осуществления настоящей технологии приложение может быть веб-ресурсом (доступным пользователю 204, который пользуется браузерным приложением, реализуемым на электронном устройстве 202). В рамках этих вариантов осуществления настоящей технологии, клиентское устройство 202 может запрашивать карту посредством приложения, предоставляемого сервером 212 приложения, и этот запрос может передаваться картографическому серверу 210 с помощью сервера 212 приложения.

В рамках этих вариантов осуществления картографический сервер 210 настроен на получение от сервера 212 приложения запроса на фрагмент карты через сеть 206 передачи данных и линии 214, 216 передачи данных, извлечение запрошенных фрагментов карты из одной или нескольких баз данных (не показаны), обмениваясь данными с картографическим сервером 210, и отправку запрошенных участков карты на сервер 212 приложения через сеть 206 передачи данных и линии 216, передачи данных. Сервер 212 приложения затем передает запрошенный фрагмент карты клиентскому устройству 202.

Следует отметить, что сервер 212 приложения и картографический сервер 210 могут обмениваться данными друг с другом не только через сеть 206 (например, через частную сеть, прямое соединение и т.п.). В других вариантах осуществления настоящей технологии сервер 212 приложения и картографический сервер 210 могут быть реализованы как единый сервер. В этих вариантах осуществления единый сервер может исполнять раздельные процессы - один для функционала, описанного в связи с сервером 212 приложения и один для функционала, описанного в связи с картографическим сервером 210.

В соответствии с вариантами осуществления настоящей технологии, как только клиентское устройство 202 получает фрагмент карты, оно может обработать полученные данные для отрисовки на модуле 306 ввода-вывода следующим образом. Способы и процедуры, описанные ниже, могут быть выполнены процессором 303. Процессор 303 может получать доступ к модулю 304 памяти, где хранятся компьютерные инструкции, при выполнении которых процессор 303 выполняет способы и процедуры, описанные выше. То, как процессор 303 выполняет способы и процедуры, никак конкретно не ограничено; они могут исполняться операционной системой, реализуемой процессором 303, с помощью специализированных процессов, выполняемых процессором 303, посредством специализированного или многоцелевого приложения, реализуемого процессором 303 и т.п.

Чтобы облегчить понимание способа и процедур, описанных ниже, принимается, что фрагмент карты, полученный клиентским устройством 202, является изображением карты 500, показанной на Фиг. 5; это изображение карты является тем же самым изображением карты 100, приведенным на Фиг. 1, но обработанным в соответствии с не ограничивающими вариантами осуществления настоящей технологии. В некоторых не ограничивающих вариантах осуществления настоящей технологии, картографическое изображение 100 получено в формате SVG (масштабируемый векторный рисунок), который является форматом векторного изображения на основе XML для двухмерной графики с поддержкой интерактивности и анимации. Стандарт SVG - открытый стандарт, разработанный консорциумом всемирной паутины (W3C).

Клиентское устройство 202 выполнено с возможностью получать изображение, чтобы отрисовать его для отображения на клиентском устройство 202 (отображение реализуется с помощью модуля 306 ввода-вывода). Как было упомянуто выше, получение изображения может быть выполнено посредством получения картографического изображения 100 либо с картографического сервера 210, либо с сервера 212 приложения. Получение может быть реализовано модулем 312 беспроводной передачи данных или модулем 316 проводной передачи данных, в зависимости от обстоятельств.

Следует, однако, отметить, что варианты осуществления настоящей технологии можно с равным успехом применить к изображениям, полученным от модуля 304 памяти (т.е. тем, которые хранятся на клиентском устройстве 202), захваченных видеомодулем 310 или посредством снимка экрана, на котором представлена информация в модуле 306 ввода-вывода. Варианты осуществления настоящей технологии могут быть применены к любому другому типу изображения для отрисовки на клиентском устройстве 202.

Только с целью иллюстрации следует предположить, что пользователь 204 вводит запрос на получение фрагмента карты в пользовательский интерфейс браузерного приложения, запущенного на клиентском устройстве 202. Например, пользователь 204 вводит в модуль 306 ввода-вывода (например, используя клавиатуру и мышь) запрос на искомый фрагмент карты (например, печатая адрес в поисковом интерфейсе карты, вертикально отображенной в браузерном приложении).

Когда ввод завершен, после нажатия на клавишу "Ввод" или щелканья по кнопке "поиск" запрос отправляется либо на картографический сервер 210, либо на сервер 212 приложения в зависимости от обстоятельств. В примере, проиллюстрированном на Фиг. 1, пользователь 204 ввел "Рестораны в Вестеросе" в поле поиска, для получения в результате поиска в модуле 306 ввода-вывода клиентского устройства 202 интеративного фрагмента карты, показывающего расположение ресторанов в Вестеросе.

В этом примере запрошенный фрагмент карты является изображением 500, показывающем карту "Вестероса" и сопутствующую информацию, соответствующую расположению ресторанов в Вестеросе (а также потенциально иную информацию, относящуюся к этим ресторанам, например, адрес, номер телефона, веб-сайт, отзывы).

В некоторых других вариантах осуществления настоящей технологии, фрагмент карты для обработки может быть выбран автоматически на основе IP-адреса или координат GPS, связанных с клиентским устройством 202, предоставляющим текущее расположение клиентского устройства 202 или конкретное расположение, сохранившееся в приложении с прошлого раза. В таком примере считается, что пользователь 204 может конкретизировать расстояние от текущего или ранее конкретизированного расположения для определения того, какой фрагмент карты должен быть представлен. Или же пользователь 204 может выбрать конкретное расположение с помощью выпадающего меню или ввода вручную, чтобы указать, какой интерактивный фрагмент карты ему необходим.

В другом примере в приложении, созданном для предоставления расположения местных достопримечательностей на клиентское устройство 202, информация о том, какой фрагмент карты необходимо запросить, создается на основе текущего местоположения клиентского устройства 202 с использованием, например, IP-адреса или координат GPS. Границы фрагмента карты, который будет запрошен, могут быть определены с помощью предварительно определенного радиуса с использованием текущего расположения клиентского устройства 202 или с помощью расстояния, выбранного пользователем 204 на клиентском устройстве 202.

Клиентское устройство 202 выполнено с возможностью делить изображение по меньшей мере на два фрагмента, каждый из которых является изображением, пригодным к отрисовке с использованием графических элементов. На Фиг. 5 картографическое изображение 500 поделено на первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты. Каждый из первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты может сам по себе быть отрисован с использованием графических элементов. Следует отметить, что, хотя в изображенном варианте осуществления настоящей технологии картографическое изображение разделено на четыре фрагмента (первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты), конкретное число фрагментов не ограничено, и разнообразных вариантах осуществления настоящей технологии может быть использовано разное число фрагментов.

Кроме того, хотя первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты на изображении одинакового размера, это не является необходимым в каждом варианте осуществления настоящей технологии.

В некоторых вариантах осуществления настоящей технологии картографическое изображение 500, полученное клиентским устройством 202 содержит фрагменты карты, каждый из которых предоставляет карту в конкретном диапазоне географических координат. В одном варианте осуществления настоящей технологии каждый фрагмент содержит фотографию со спутника (или группу фотографий со спутника) области, соответствующей своему диапазону географических координат. В другом варианте осуществления настоящей технологии каждый фрагмент содержит иллюстрированную карту, соответствующую своему диапазону географических координат. В другом варианте осуществления настоящей технологии каждый фрагмент является группой из одной или нескольких фотографий со спутника и иллюстрированной картой, соответствующей своему диапазону географических координат.

В рамках некоторых их этих вариантов осуществления настоящей технологии клиентское устройство 202 делит картографическое изображение 500 на соответствующие фрагменты, образуя первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты. В других вариантах осуществления настоящей технологии, особенно хорошо подходящих для обработки разных типов изображения, разделение на соответствующие фрагменты (т.е. первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты) может быть осуществлено на электронном устройстве 202 на основе предварительно определенного алгоритма.

Клиентское устройство 202 в таком случае выполнено с возможностью создавать главный поток обработки и не менее одного дочернего потока обработки, которые зависят от главного потока обработки. На Фиг. 6 клиентское устройство 202 выполнено с возможностью инициировать главный поток 602 обработки, а также первый дочерний поток 604 обработки, второй дочерний поток 606 обработки и N-й дочерний поток 608 обработки. N-й дочерний поток 608 обработки является одним или несколькими дополнительными дочерними потоками обработки, потенциально определенными клиентским устройством (электронным устройством) 202. Следует отметить, что инициация главного потока 602 обработки, первого дочернего потока 604 обработки, второго дочернего потока 606 обработки и N-го дочернего потока 608 обработки может быть выполнена операционной системой электронного устройства 202.

Электронное устройство 202 затем инициирует получение главным потоком 602 обработки, первым дочерним потоком 604 обработки, вторым дочерним потоком 606 обработки и N-м дочерним потоком 608 обработки указания на соответствующий сегмент из не менее двух сегментов (т.е. первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты) и набор требуемых графических элементов. Следует заметить, что процесс выполняется таким образом, что каждый дочерний поток 604, 606, 608 обработки получает единственный экземпляр соответствующего фрагмента (т.е. один из первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты) для обработки в данный момент.

В некоторых вариантах осуществления настоящей технологии главный поток 602 обработки выбирает требуемые элементы для каждого соответствующего фрагмента из по меньшей мере двух фрагментов (т.е. первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты) из множества возможных элементов и передает указание соответствующим дочерним потокам 604, 606, 608 обработки. В других вариантах осуществления настоящей технологии главный поток 602 обработки передает все возможные элементы соответствующим дочерним потокам 604, 606, 608 обработки; и соответствующие дочерние потоки 604, 606, 608 обработки выбирают требуемые элементы для каждого из соответствующих фрагментов из не менее двух фрагментов (т.е. первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты).

В некоторых вариантах осуществления настоящей технологии выбор требуемых элементов выполняется следующим образом. При получении картографического изображения 500 оно содержит набор требуемых графических элементов, а также координаты для каждого элемента. Когда картографическое изображения 500 делится на фрагменты (т.е. первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмента 506 карты и четвертый фрагмент 508 карты), главный поток 602 обработки или соответствующие дочерние потоки 604, 606, 608 обработки могут определять координаты, которые ограничивают эти данные фрагменты (т.е. первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмента 506 карты и четвертый фрагмент 508 карты). На основе ранжира координат для каждого из фрагментов (т.е. первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты) главный поток 602 обработки или соответствующие дочерние потоки 604, 606, 608 обработки могут определять требуемые элементы для отрисовки конкретных фрагментов.

Таким образом, можно сказать, что все возможные графические элементы являются элементами, требуемыми для отрисовки картографического изображения 500 полностью и требуемые элементы являются элементами, требуемыми для отрисовки одного данного фрагмента из фрагментов картографического изображения 500, а именно, одного из следующих фрагментов: первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты.

Электронное устройство 202 также выполнено с возможностью выделять новое место в памяти (т.е. в модуле 304 памяти электронного устройства 202 для каждого из соответствующих дочерних потоков 604, 606, 608 обработки. В некоторых вариантах осуществления настоящей технологии, когда главный поток 602 обработки передает указание на соответствующие фрагменты для обработки соответствующими дочерними потоками 604, 606, 608 обработки и либо набор требуемых графических элементов, либо все возможные элементы для того, чтобы соответствующий дочерний поток 604, 606, 608 обработки выбрал из них требуемые элементы. Главный поток 602 обработки может выполнять следующую команду: worker.postMessage(ulnt8View.buffer, [ulnt8View.buffer]), где ulnt8View.buffer указывает на объем памяти, которую необходимо выделить для обработки одного из следующих фрагментов: первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты.

Соответствующий дочерний поток 604, 606, 608 обработки затем использует указание на объем памяти, содержащееся в ulnt8View.buffer для выделения необходимого объема.

Электронное устройство 202 может затем инициировать отрисовку соответствующим дочерним потоком 604, 606, 608 обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти. Другими словами, соответствующий дочерний поток 604, 606, 608 обработки отрисовывает свой выделенный фрагмент из следующих фрагментов: первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты в выделенной требуемой области памяти. В результате первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмента 506 карты и четвертый фрагмент 508 карты используют выделенную область памяти как "холст" для отрисовки выделенного изображения (т.е. одного выделенного изображения из первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты).

Электронное устройство 202 затем инициирует сохранение соответствующим дочерним потоком 604, 606, 608 обработки каждого обработанного изображения в виде байтового массива. В некоторых вариантах осуществления настоящей технологии, соответствующий дочерний поток 604, 606, 608 обработки может сохранить обработанное изображение в формате PNG с использованием вызова функции: canvas.toDataURL"image/png"). Однако, в других вариантах осуществления настоящей технологии соответствующий дочерний поток 604, 606, 608 обработки может использовать любой другой формат, даже если эти форматы не являются форматами без потери информации (например, JPEG и т.п.).

Электронное устройство 202 затем инициирует передачу соответствующим дочерним потоком 604, 606, 608 обработки байтового массива главному потоку 602 обработки.

Следует отметить, что когда сегментов для обработки больше (т.е. первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмента 506 карты и четвертый фрагмент 508 карты), когда главный поток 602 обработки получает обработанное изображение от соответствующего дочернего потока 604, 606, 608 обработки, он передает один следующий фрагмент (т.е. один следующий фрагмент из первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмент 508 карты) одному из "освободившихся" дочерних потоков 604, 606, 608 обработки.

Когда главный поток 602 обработки получает все полностью обработанные фрагменты (т.е. все полностью обработанные фрагменты из фрагментов 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты), он отрисовывает финальное изображение на экране (т.е. в модуле 306 ввода-вывода) электронного устройства 202 с использованием полученного набора байтовых массивов. В некоторых вариантах осуществления настоящей технологии главный поток 602 обработки использует вызов функции canvas.drawimage.

С учетом архитектуры, описанной выше, процессор 303 выполнен с возможностью выполнять способ обработки изображения. На Фиг. 4 представлена блок-схема способа 400, реализованного в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем. Выполнение способа 400 может быть осуществлено на электронном устройстве 202. С этой целью у процессора 303 есть доступ к выполняемым на компьютере инструкциям, хранящимся в модуле 304 памяти. Процессор 303 может осуществлять приложение (например, браузерное приложение, картографическое изображение и т.д.), которое выполняется с использованием главного потока 602 обработки и по меньшей мере одного дочернего потока 604, 606, 608 обработки, зависимых от главного потока 602 обработки.

Следует отметить, что в некоторых вариантах осуществления способа 400 главный поток обработки и не менее одного дочернего потока 604, 606, 608 обработки являются компонентами архитектуры JavaScript.

Этап 402 - получение изображения, которое необходимо отрисовать для отображения на электронном устройстве.

Способ 400 начинается на этапе 402, когда процессор 303 получает изображение которое необходимо отрисовать для отображения на электронном устройстве 202. В примерах, приведенных выше, процессор 303 получает картографическое изображение 500. Варианты осуществления способа 400 будут проиллюстрированы с использованием примера картографического изображения 500, указанного выше.

Этап 404 - разделение изображения по меньшей мере на два фрагмента, каждый из которых является пригодным для отрисовки с использованием графических элементов.

Процессор 303 затем делит картографическое изображение 500 по меньшей мере на два фрагмента, каждый из которых является изображением, пригодным к отрисовке с использованием графических элементов (т.е. на первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты).

Этап 406 - получение соответствующим дочерним потоком обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов, причем каждый дочерний поток обработки получает единственный экземпляр соответствующего фрагмента для обработки в данный момент.

Затем, на этапе 406 процессор 303 инициирует получение соответствующим дочерним потоком 604, 606, 608 обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов, причем каждый дочерний поток 605, 606, 608 обработки получает единственный экземпляр соответствующего фрагмента для обработки в данный момент.

В некоторых вариантах осуществления способа 400, получение соответствующими дочерними потоками обработки набора требуемых графических элементов содержит: для каждого фрагмента из не менее двух фрагментов вычисление главным потоком обработки набора требуемых графических элементов, требуемых для отрисовки соответствующего фрагмента; передачу указания на соответствующий фрагмент и набор требуемых графических элементов соответствующим дочерним потокам обработки. Следует отметить, что набор требуемых графических элементов - это подгруппа всех возможных графических элементов; и способ 400 также содержит выбор главным потоком 602 обработки набора требуемых графических элементов для каждого из не менее двух фрагментов.

В других вариантах осуществления способа 400 этап получения соответствующими дочерними потоками 604, 606, 608 обработки набора требуемых графических элементов содержит: получение из главного потока обработки всех возможных графических элементов; выбор соответствующими дочерними потоками 604, 606, 608 обработки из всех возможных графических элементов подгруппы графических элементов, которая является требуемой для обработки связанного одного из не менее двух фрагментов.

Этап 408 - выделение новой области в памяти электронного устройства для каждого соответствующего дочернего потока обработки.

Далее, на этапе 408 процессор 303 инициирует отрисовку соответствующим дочерним потоком 604, 606, 608 обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти.

Этап 410 - отрисовка соответствующим дочерним потоком обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти.

Далее, на этапе 410 процессор 303 инициирует отрисовку соответствующим дочерним потоком 604, 606, 608 обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти.

Этап 412 - сохранение каждого отрисованного изображения в виде байтового массива.

Далее, на этапе 412 процессор 303 инициирует сохранение соответствующим дочерним потоком 604, 606, 608 обработки каждого обработанного изображения в виде байтового массива.

Этап 414 - передача байтового массива соответствующим дочерним потоком обработки главному потоку обработки.

Далее, на этапе 414 процессор 303 инициирует передачу байтового массива соответствующим дочерним потоком 604, 606, 608 обработки главному потоку 602 обработки.

Этап 416 - отрисовка финального изображения главным потоком обработки на экране электронного устройства с использованием набора байтовых массивов.

Далее, на этапе 416 процессор 303 инициирует отрисовку финального изображения главным потоком обработки на экране электронного устройства с использованием набора байтовых массивов. Затем способ 400 завершается.

В некоторых вариантах осуществления способа 400, способ 400 также содержит выбор количества дочерних потоков 604, 606, 608 обработки (не менее одного) для обработки картографического изображения 500. В некоторых вариантах осуществления способа 400 выбор выполняется как функция вычислительной мощности процессора 303 электронного устройства. Дополнительно или альтернативно выбор может быть осуществлен как функция количества фрагментов картографического изображения 500 и/или размера картографического изображения 500.

В некоторых вариантах осуществления способа 400, в которых изображение содержит часть карты, способ 400 может быть выполнен в ответ на запрос пользователя на получение картографического изображения (с использованием приложения браузера или картографического приложения на электронном устройстве 202, как пример). В таком случае способ 400 также содержит получение запроса на просмотр картографического изображения, причем картографическое изображение включает в себя часть карты.

Важно иметь в виду, что некоторые варианты осуществления настоящей технологии могут быть реализованы с проявлением дополнительных технических результатов отдельно не указанных в настоящем описании.

Специалисты в данной области техники поймут, что в настоящем описании выражение "получение данных" от пользователя подразумевает получение электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран электронного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.

Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптоволоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).

Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.

1. Способ обработки изображения, выполняемый на электронном устройстве, имеющем приложение, исполняемое электронным устройством с помощью главного потока обработки и по меньшей мере одного дочернего потока обработки, который зависит от главного потока обработки, способ содержит:

получение изображения, которое необходимо отрисовать для отображения на электронном устройстве;

разделение изображения по меньшей мере на два фрагмента, каждый из которых является пригодным для отрисовки с использованием графических элементов;

получение соответствующим дочерним потоком обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов, причем каждый дочерний поток обработки получает единственный экземпляр соответствующего фрагмента для обработки в данный момент;

выделение новой области в памяти электронного устройства для каждого соответствующего дочернего потока обработки;

отрисовку соответствующим дочерним потоком обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти;

сохранение каждого отрисованного изображения в виде байтового массива;

передачу байтового массива соответствующим дочерним потоком обработки главному потоку обработки;

отрисовку финального изображения главным потоком обработки на экране электронного устройства с использованием набора байтовых массивов.

2. Способ по п. 1, в котором при получении соответствующим дочерним потоком обработки набора требуемых графических элементов выполняют:

для каждого фрагмента из по меньшей мере двух фрагментов инициирование вычисления главным потоком обработки набора требуемых графических элементов, требуемых для отрисовки соответствующего фрагмента;

передачу указания на соответствующий фрагмент и набор требуемых графических элементов соответствующим дочерним потокам обработки.

3. Способ по п. 1, в котором набор требуемых графических элементов - это подгруппа всех возможных графических элементов; а в способе дополнительно выполняют выбор главным потоком обработки набора требуемых графических элементов для каждого из по меньшей мере двух фрагментов.

4. Способ по п. 1, в котором при получении соответствующим дочерним потоком обработки набора требуемых графических элементов выполняют:

получение из главного потока обработки всех возможных графических элементов;

выбор соответствующими дочерними потоками обработки из всех возможных графических элементов подгруппы графических элементов, которая является требуемой для обработки связанного одного из не менее двух фрагментов.

5. Способ по п. 1, в котором главный поток обработки и по меньшей мере один дочерний поток обработки являются компонентами архитектуры JavaScript.

6. Способ по п. 1, в котором дополнительно выбирают по меньшей мере один дочерний поток обработки.

7. Способ по п. 6, в котором упомянутый выбор по меньшей мере одного дочернего потока обработки выполняют как функцию вычислительной мощности процессора электронного устройства.

8. Способ по п. 1, в котором приложение является браузерным приложением.

9. Способ по п. 1, в котором изображение содержит часть карты.

10. Способ по п. 9, в котором дополнительно получают запрос на просмотр картографического изображения, причем картографическое изображение включает в себя часть карты.

11. Способ по п. 1, в котором по меньшей мере два фрагмента содержат в себе множество фрагментов; а каждый соответствующий дочерний поток обработки получает следующее множество фрагментов после завершения обработки предыдущего множества фрагментов.

12. Электронное устройство для обработки изображения, содержащее:

интерфейс пользовательского ввода и интерфейс пользовательского вывода;

процессор, выполненный с возможностью выполнения приложения с использованием главного потока обработки и по меньшей мере одного дочернего потока обработки, который зависит от главного потока обработки, также процессор выполнен с возможностью:

получения изображения, которое необходимо сформировать для отображения на электронном устройстве;

разделения изображения по меньшей мере на два фрагмента, каждый из которых является пригодным для отрисовки с использованием графических элементов;

инициирования получения соответствующими дочерними потоками обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов;

выделения новой области в памяти электронного устройства для каждого соответствующего дочернего потока обработки;

инициирования отрисовки соответствующими дочерними потоками обработки соответствующих изображений каждого соответствующего фрагмента в соответствующей выделенной области;

сохранения каждого отрисованного изображение в виде байтового массива;

инициирования передачи байтового массива соответствующими дочерними потоками обработки главному потоку обработки;

инициирования отрисовки главным потоком обработки финального изображения на экране электронного устройства с использованием набора байтовых массивов.

13. Электронное устройство по п. 12, в котором для инициации получения соответствующим дочерним потоком обработки набора требуемых графических элементов процессор выполнен с возможностью:

для каждого фрагмента из по меньшей мере двух фрагментов инициирования вычисления главным потоком обработки набора требуемых графических элементов, требуемых для отрисовки соответствующего фрагмента; передачи указания на соответствующий фрагмент и набор требуемых графических элементов соответствующим дочерним потокам обработки.

14. Электронное устройство по п. 13, в котором процессор выполнен с возможностью инициирования выбора главным потоком обработки набора требуемых графических элементов, являющихся подгруппой всех возможных графических элементов, для каждого из по меньшей мере двух фрагментов.

15. Электронное устройство по п. 12, в котором для инициации получения соответствующим дочерним потоком обработки набора требуемых графических элементов процессор выполнен с возможностью инициирования:

получения соответствующим дочерним потоком обработки из главного потока обработки всех возможных графических элементов;

выбора соответствующими дочерними потоками обработки из всех возможных графических элементов подгруппы графических элементов, которая является требуемой для обработки связанного одного из по меньшей мере двух фрагментов.

16. Электронное устройство по п. 12, в котором главный поток обработки и по меньшей мере один дочерний поток обработки являются компонентами архитектуры JavaScript.

17. Электронное устройство по п. 12, в котором процессор дополнительно выполнен с возможностью выбора по меньшей мере одного дочернего потока обработки.

18. Электронное устройство по п. 17, в котором процессор дополнительно выполнен с возможностью выбора по меньшей мере одного дочернего потока обработки как функцию вычислительной мощности процессора.

19. Электронное устройство по п. 12, в котором приложение является браузерным приложением.

20. Электронное устройство по п. 12, в котором процессор дополнительно выполнен с возможностью получения через интерфейс пользовательского ввода запроса на просмотр картографического изображения, включающего в себя часть карты.



 

Похожие патенты:

Группа изобретений относится к компьютерным системам, направленным на определение расположения точки относительно многоугольника в многомерном пространстве. Техническим результатом является расширение арсенала технических средств для определения расположения точки относительно многоугольника в многомерном пространстве.

Группа изобретений относится к медицинской технике, а именно к классификации опухолей с использованием наложения изображения. Система (SYS) и способ для классификации исследуемой опухоли с использованием правил определения стадии по принципу опухоль-узел-метастаз (TNM), основываясь на данных трехмерного изображения для визуализации исследуемой опухоли, содержит: структуру (OL) данных наложения для определения TNM наложения для отображения на изображении опухоли, обрабатываемом компьютером по данным изображения.

Изобретение относится к средствам формирования потокового точечного изображения. Технический результат заключается в повышении качества указанного изображения, формируемого на поверхностях изогнутых объектов.

Изобретение относится к формированию обработанного набора данных изображения. Техническим результатом является повышение точности обработки набора данных изображения пациента.

Изобретение относится к области автоматического получения данных клинических МРТ-изображений. Техническим результатом является обеспечение быстрого и точного планирования диагностических сканирований.

Изобретение относится к способам представления коллекции изображений. Техническим результатом является улучшение визуального качества коллекции изображений за счет автоматизированной модификации отображения декоративных элементов в зависимости от цветов изображений.

Изобретение относится к средствам автоматизированного построения чертежей. Техническим результатом является повышение скорости создания чертежа за счет обеспечения динамической адаптации шага линий сетки к начерчиваемому в текущий момент времени объекту.

Изобретение относится к технологиям обработки цифровых изображений, а более конкретно - к способам преобразования растровых изображений в электронный формат. .

Изобретение относится к вычислительной технике, в частности к системам и способам воспроизведения диаграмм. .

Изобретение относится к способам обработки электромагнитных сигналов от инструмента для моделирования и визуализации слоистых подземных формаций, окружающих инструмент.

Изобретение относится к способам и системам создания метаданных в отношении изображений, видео- и аудиофайлов. Техническим результатом является снижение необходимой вычислительной мощности при создании и изменении метаданных.

Изобретение относится к устройству, способу, устройству хранения данных и телекоммуникационной сети для обнаружения структур данных в потоке данных. Технический результат заключается в возможности обнаружения структур данных в потоке данных.

Изобретение относится к области визуализации данных в виде диаграммы. Технический результат – обеспечение автоматического создания и временного отображения диаграммы.

Изобретение относится к компьютерно-реализуемому способу и системе создания модели объекта. Технический результат заключается в обеспечении автоматизированного создания модели объекта.

Изобретение относится к области навигации. Техническим результатом является эффективный расчет навигационного маршрута.

Изобретение относится к нефтегазовой промышленности и может быть использовано при разработке газовых и газоконденсатных месторождений. Способ включает проведение стандартных газодинамических исследований скважин на стандартных режимах фильтрации с построением зависимости устьевых параметров (давления и температуры) и давления на забое скважины от расхода газа, контроль соответствия величины фиксируемых в процессе эксплуатации устьевых параметров величине параметров, определяемой зависимостью, построенной по результатам газодинамических исследований (ГДИ) при текущем расходе газа.

Изобретение относится к области инициации выполнения приложения. Техническим результатом является эффективный вызов приложения для выполнения.

Изобретение относится к области распространения контента в сетях передачи данных. Технический результат заключается в снижении серверной нагрузки при передаче контента за счет пирингового процесса передачи данных между пользователями.

Изобретение относится к области анализа и отображения измерительной информации в вычислительных системах. Технический результат заключается в увеличении полноты графического представления измерительной информации за счет увеличения числа отсчетов для отображения измерительной информации и дополнительного графического представления математических характеристик измерительной информации.

Изобретение относится к способам и системам ранжирования элементов сетевого ресурса для пользователя, причем сетевой ресурс расположен на сервере, соединенном с другим сервером.

Изобретение относится к области поисковых систем, а именно к средствам управления индексацией партнерских объявлений. Техническим результатом является повышение быстродействия, за счет увеличения скорости обновления индекса партнерских объявлений. Способ включает в себя получение обновленного партнерского объявления; определение раздела, связанного с обновленным партнерским объявлением, раздел включает в себя первое ранее известное партнерское объявление и второе ранее известное партнерское объявление, первое ранее известное партнерское объявление и второе ранее известное партнерское объявление сгруппированы в раздел на основе общей характеристики; проверку того, что обновленное партнерское объявление отличается от первого ранее известного партнерского объявления и второго ранее известного партнерского объявления, обновление поискового индекса на основе обновленного раздела, которое включает определение части поискового индекса, связанной с обновленной частью раздела, и переиндексацию только упомянутой части. Система реализует указанный способ. 2 н. и 40 з.п. ф-лы, 4 ил.
Наверх