RU2608883C2 - Image processing method and electronic device - Google Patents
Image processing method and electronic device Download PDFInfo
- Publication number
- RU2608883C2 RU2608883C2 RU2014152947A RU2014152947A RU2608883C2 RU 2608883 C2 RU2608883 C2 RU 2608883C2 RU 2014152947 A RU2014152947 A RU 2014152947A RU 2014152947 A RU2014152947 A RU 2014152947A RU 2608883 C2 RU2608883 C2 RU 2608883C2
- Authority
- RU
- Russia
- Prior art keywords
- electronic device
- image
- graphic elements
- fragment
- processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
Description
Область техники, к которой относится изобретениеFIELD OF THE INVENTION
Настоящая технология относится к способам обработки изображения и, более конкретно, к способу и электронному устройству для обработки изображения.The present technology relates to image processing methods and, more particularly, to a method and an electronic device for image processing.
Уровень техникиState of the art
Типичный пользователь электронного устройства может получить доступ к огромному количеству информации (например, к информации, доступной на различных ресурсах в Интернете и так далее). Иногда такая информация содержит мультимедиа - например, изображения, видео, аудиофайлы и так далее. Некоторые изображения, доступные на этих веб-сайтах, могут быть довольно объемными и могут требовать значительных вычислительных ресурсов электронного устройства для отрисовки изображения на экране электронного устройства. Один пример такого изображения, которое требует значительных вычислительных ресурсов, - географическая карта для отображения на электронном устройстве.A typical user of an electronic device can access a huge amount of information (for example, information available on various resources on the Internet and so on). Sometimes this information contains multimedia - for example, images, videos, audio files and so on. Some of the images available on these websites can be quite voluminous and may require significant computing resources of the electronic device to render the image on the screen of the electronic device. One example of such an image, which requires significant computational resources, is a geographical map for display on an electronic device.
Множество веб-сайтов и приложений для электронных устройств отображают географические карты. Некоторые приложения посвящены исключительно отображению географических карт. Кроме отображения географических карт, эти веб-сайты и приложения часто отображают объекты с перекрытием карты, чтобы отобразить такие объекты, как достопримечательности, указатели, обозначения, значки, графики движения по маршруту и тому подобные. Во многих случаях эти карты интерактивны. Например, для карты, отображенной в веб-браузере, движение курсора мыши по объекту на карте может вызвать отображение описания объекта, такого как адрес или название пункта. В этом же примере, щелчок мышью по объекту может отобразить облачко, содержащее дополнительную информацию, связанную с пунктом, который представлен объектом, например, название пункта, адрес, номер телефона, ссылка на веб-сайт и в случае бизнес сервисов, таких как рестораны и отели, рейтинги, ссылки для бронирования или на отзывы клиентов.Many websites and applications for electronic devices display geographical maps. Some applications focus exclusively on displaying geographic maps. In addition to displaying geographic maps, these websites and applications often display objects with map overlap to display objects such as points of interest, signs, signs, icons, route schedules, and the like. In many cases, these cards are interactive. For example, for a map displayed in a web browser, moving the mouse cursor over an object on the map may cause a description of the object to be displayed, such as the address or name of the item. In the same example, clicking on an object can display a cloud containing additional information related to the item that is represented by the object, for example, the name of the item, address, phone number, a link to a website and in the case of business services such as restaurants and Hotels, ratings, booking links or customer reviews.
Для отображения таких географических карт в пользовательском интерфейсе (таком как веб-браузер), пользовательский запрос на конкретную карту отправляется серверам, связанным с конкретным веб-сайтом или используется приложение. Например, человек может искать карту центра конкретного города. Картографический сервер извлекает фрагмент или фрагменты карты, соответствующие запрошенной области карты. Сервер приложения также может извлекать дополнительную информацию, относящуюся к запрошенному пункту, включая объекты и данные для создания интерактивных элементов карты.To display such maps in a user interface (such as a web browser), a user request for a specific map is sent to the servers associated with a particular website or an application is used. For example, a person may look for a map of the center of a specific city. The map server retrieves the map fragment or fragments corresponding to the requested map area. The application server can also retrieve additional information related to the requested item, including objects and data for creating interactive map elements.
Затем сервер отправляет запрошенную область карты (обычно фрагментами) на электронное устройство пользователя для отображения в пользовательском интерфейсе для просмотра пользователем и, опционально, для взаимодействия с ним. Электронное устройство пользователя затем формирует картографическое изображение для просмотра, используя полученные фрагменты. Очевидно, что на электронном устройстве пользователя затрачивается большая вычислительная мощность, при учете высокого разрешения картографических изображений, а также возможной необходимости заново отрисовывать картографическое изображение, когда пользователь увеличивает, уменьшает его или передвигает по нему курсор.The server then sends the requested area of the map (usually in fragments) to the user's electronic device for display in the user interface for viewing by the user and, optionally, for interacting with him. The user's electronic device then forms a cartographic image for viewing using the fragments obtained. Obviously, a large amount of computing power is expended on the user's electronic device, taking into account the high resolution of the cartographic images, as well as the possible need to redraw the cartographic image when the user enlarges, reduces or moves the cursor over it.
В патенте США №7734412, опубл 08.06.2010 описано устройство и способ для отрисовки картографических изображений. В одном из примеров устройство (например, картографический сервер) включает в себя алгоритм для инициации передачи данных о фрагментированном векторном изображении в ответ на запрос карты, в котором векторные данные связаны с сохраненными картографическими данными, подразделенными на множество фрагментов. Данные о фрагментированном векторном изображении передаются на удаленное устройство (например, клиентское устройство) для формирования картографического изображения. Кроме того, данные о векторном изображении могут содержать один или несколько связанных с ними атрибутов, настраиваемых принимающим устройством. Например, картографическое изображение может быть сформировано (например, настроено) на основе одного или нескольких локальных атрибутов с разнообразием языков, цветов, типа отображения элементов карты и других характеристик изображения на картографическом изображении.US Pat. No. 7,734,412, published June 8, 2010, describes a device and method for rendering cartographic images. In one example, a device (eg, a map server) includes an algorithm for initiating the transmission of fragmented vector image data in response to a map request in which vector data is associated with stored map data divided into multiple fragments. The fragmented vector image data is transmitted to a remote device (eg, a client device) to form a cartographic image. In addition, the vector image data may contain one or more related attributes, customizable by the receiving device. For example, a cartographic image may be generated (for example, customized) based on one or more local attributes with a variety of languages, colors, type of display of map elements and other image characteristics on the cartographic image.
Раскрытие изобретенияDisclosure of invention
Задачей предлагаемой технологии является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.The objective of the proposed technology is to eliminate at least some of the disadvantages inherent in the prior art.
Авторы разработали несколько вариантов осуществления настоящей технологии, принимая во внимание по меньшей мере один недостаток известного уровня техники. Большинство современных веб-ресурсов, доступных в Интернете, созданы с полным или частичным использованием JavaScript. Как известно специалистам в данной области, JavaScript позволяет создавать относительно сложные веб-ресурсы, а также исполнять часть кода на электронном устройстве, которое используется для доступа к веб-ресурсу. Браузер, исполняющий код JavaScript (или более конкретно, ядро операционной системы, на которой исполняется браузер) создает главный поток обработки для обработки кода JavaScript. Главный поток обработки исполняет блоки JavaScript последовательно. Рабочие потоки (также называемые "потоки-исполнители" или "дочерние потоки обработки") позволяют исполнять параллельные процессы JavaScript с ограничением: рабочие потоки могут исполнять только процессы, которые не требуют взаимодействия с пользовательским интерфейсом электронного устройства, исполняющего браузер, который, в свою очередь, исполняет JavaScript.The authors have developed several embodiments of the present technology, taking into account at least one disadvantage of the prior art. Most of the modern web resources available on the Internet are created with full or partial use of JavaScript. As experts in this field know, JavaScript allows you to create relatively complex web resources, as well as execute part of the code on an electronic device, which is used to access the web resource. A browser executing JavaScript code (or more specifically, the kernel of the operating system on which the browser is running) creates a main processing thread for processing JavaScript code. The main processing thread executes JavaScript blocks sequentially. Workflows (also called "execution threads" or "child processing threads") allow you to execute parallel JavaScript processes with a restriction: workflows can execute only processes that do not require interaction with the user interface of an electronic device that executes a browser, which, in turn, , executes JavaScript.
Главный поток обработки и рабочие потоки обмениваются данными. Данные, которыми обмениваются главный поток обработки и рабочие потоки, включают в себя: задачи, которые должны быть исполнены рабочими потоками и результаты исполнения задач рабочими потоками. Главный поток обработки затем использует результаты исполнения задач рабочими потоками, чтобы вывести их (или их часть) в пользовательский интерфейс электронного устройства.The main processing flow and workflows exchange data. The data exchanged between the main processing flow and workflows includes: tasks that must be executed by workflows and the results of task execution by workflows. The main processing flow then uses the results of the execution of tasks by the work flows to display them (or part of them) in the user interface of the electronic device.
Авторы обнаружили, что ограничения того, как JavaScript взаимодействует с главным потоком обработки и рабочими потоками, приводят к следующему недостатку: отрисовка больших изображений не может быть выполнена с помощью параллельных процессов. Другими словами, отрисовка изображения на экране может быть выполнена только главным потоком обработки. Это создает все увеличивающуюся перегрузку главного потока обработки и увеличивает время, которое требуется главному потоку обработки, чтобы сформировать изображение, например, картографическое изображение, которое показано как 100 на Фиг. 1. На Фиг. 1 представлено типичное картографическое изображение.The authors found that the limitations of how JavaScript interacts with the main processing flow and workflows lead to the following drawback: large images cannot be drawn using parallel processes. In other words, rendering the image on the screen can only be done by the main processing flow. This creates an ever-increasing congestion of the main processing stream and increases the time it takes the main processing stream to form an image, for example, a cartographic image, which is shown as 100 in FIG. 1. In FIG. 1 shows a typical cartographic image.
Первым объектом настоящей технологии является способ обработки изображения, выполняемый на электронном устройстве, имеющем приложение, исполняемое электронным устройством с помощью главного потока обработки и по меньшей мере одного дочернего потока обработки, который зависит от главного потока обработки, способ содержит: получение изображения, которое необходимо отрисовать для отображения на электронном устройстве; разделение изображения по меньшей мере на два фрагмента, каждый из которых является пригодным для отрисовки с использованием графических элементов; получение соответствующим дочерним потоком обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов, причем каждый дочерний поток обработки получает единственный экземпляр соответствующего фрагмента для обработки в данный момент; выделение новой области в памяти электронного устройства для каждого соответствующего дочернего потока обработки; отрисовку соответствующим дочерним потоком обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти; сохранение каждого отрисованного изображения в виде байтового массива; передачу байтового массива соответствующим дочерним потоком обработки главному потоку обработки; отрисовку финального изображения главным потоком обработки на экране электронного устройства с использованием набора байтовых массивов.The first object of the present technology is an image processing method executed on an electronic device having an application executed by an electronic device using a main processing stream and at least one daughter processing stream, which depends on the main processing stream, the method comprising: obtaining an image to be drawn for display on an electronic device; dividing the image into at least two fragments, each of which is suitable for rendering using graphic elements; receiving, by the corresponding child processing flow, an indication of the corresponding fragment from these at least two fragments and a set of required graphic elements, each child processing flow receiving a single instance of the corresponding fragment for processing at the moment; allocation of a new area in the memory of the electronic device for each corresponding child processing stream; drawing by the corresponding child processing stream of the corresponding image of each corresponding fragment in the corresponding allocated memory area; saving each rendered image as a byte array; transmitting the byte array with the corresponding child processing thread to the main processing thread; drawing the final image by the main processing stream on the screen of the electronic device using a set of byte arrays.
Возможен вариант осуществления способа, в котором при получении соответствующим дочерним потоком обработки набора требуемых графических элементов выполняют: для каждого фрагмента из по меньшей мере двух фрагментов инициирование вычисления главным потоком обработки набора требуемых графических элементов, требуемых для отрисовки соответствующего фрагмента; передачу указания на соответствующий фрагмент и набор требуемых графических элементов соответствующим дочерним потокам обработки.An embodiment of a method is possible in which, upon receipt of a set of required graphic elements by an appropriate child processing flow: for each fragment of at least two fragments, the main processing thread calculates the set of required graphic elements required to draw the corresponding fragment; transmitting an indication of the corresponding fragment and the set of required graphic elements to the corresponding child processing threads.
Возможен вариант осуществления способа, в котором набор требуемых графических элементов - это подгруппа всех возможных графических элементов; а в способе дополнительно выполняют выбор главным потоком обработки набора требуемых графических элементов для каждого из по меньшей мере двух фрагментов.An embodiment of the method is possible in which the set of required graphic elements is a subgroup of all possible graphic elements; and in the method, a main processing stream further selects a set of desired graphic elements for each of at least two fragments.
Возможен вариант осуществления способа, в котором при получении соответствующим дочерним потоком обработки набора требуемых графических элементов выполняют: получение из главного потока обработки всех возможных графических элементов; выбор соответствующими дочерними потоками обработки из всех возможных графических элементов подгруппы графических элементов, которая является требуемой для обработки связанного одного из не менее двух фрагментов. Возможен вариант осуществления способа, в котором главный поток обработки и по меньшей мере один дочерний поток обработки являются компонентами архитектуры JavaScript.An embodiment of the method is possible, in which, upon receipt by the corresponding child processing stream, the set of required graphic elements is performed: obtaining from the main processing stream all possible graphic elements; selection by appropriate child processing flows from all possible graphic elements of a subgroup of graphic elements that is required to process the associated one of at least two fragments. An embodiment of the method is possible in which the main processing flow and at least one child processing flow are components of the JavaScript architecture.
Возможен вариант осуществления способа, в котором дополнительно выбирают по меньшей мере один дочерний поток обработки.An embodiment of the method is possible in which at least one child processing stream is further selected.
Возможен вариант осуществления способа, в котором упомянутый выбор по меньшей мере одного дочернего потока обработки выполняют как функцию вычислительной мощности процессора электронного устройства.An embodiment of the method is possible in which said selection of at least one daughter processing stream is performed as a function of the processing power of the processor of the electronic device.
Возможен вариант осуществления способа, в котором приложение является браузерным приложением.An embodiment of a method is possible in which the application is a browser application.
Возможен вариант осуществления способа, в котором изображение содержит часть карты.A possible embodiment of the method in which the image contains part of the map.
Возможен вариант осуществления способа, в котором дополнительно получают запрос на просмотр картографического изображения, причем картографическое изображение включает в себя часть карты.An embodiment of the method is possible in which a request is further received for viewing a cartographic image, wherein the cartographic image includes a part of the map.
Возможен вариант осуществления способа, в котором по меньшей мере два фрагмента содержат в себе множество фрагментов; а каждый соответствующий дочерний поток обработки получает следующее множество фрагментов после завершения обработки предыдущего множества фрагментов.An embodiment of the method is possible in which at least two fragments contain a plurality of fragments; and each corresponding child processing thread receives the next set of fragments after completion of the processing of the previous set of fragments.
Еще одним объектом настоящей технологии является электронное устройство, содержащее: интерфейс пользовательского ввода и интерфейс пользовательского вывода; процессор, выполненный с возможностью выполнения приложения с использованием главного потока обработки и по меньшей мере одного дочернего потока обработки, который зависит от главного потока обработки, также процессор выполнен с возможностью: получения изображения, которое необходимо сформировать для отображения на электронном устройстве; разделения изображения по меньшей мере на два фрагмента, каждый из которых является пригодным для отрисовки с использованием графических элементов; инициирования получения соответствующими дочерними потоками обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов; выделения новой области в памяти электронного устройства для каждого соответствующего дочернего потока обработки; инициирования отрисовки соответствующими дочерними потоками обработки соответствующих изображений каждого соответствующего фрагмента в соответствующей выделенной области; сохранения каждого отрисованного изображение в виде байтового массива; инициирования передачи байтового массива соответствующими дочерними потоками обработки главному потоку обработки; инициирования отрисовки главным потоком обработки финального изображения на экране электронного устройства с использованием набора байтовых массивов.Another object of this technology is an electronic device comprising: a user input interface and a user output interface; a processor configured to execute the application using the main processing stream and at least one daughter processing stream, which depends on the main processing stream, also the processor is configured to: obtain an image that needs to be formed for display on an electronic device; dividing the image into at least two fragments, each of which is suitable for rendering using graphic elements; initiating the receipt by the respective child processing threads of an indication of the corresponding fragment from these at least two fragments and the set of required graphic elements; allocating a new area in the memory of the electronic device for each corresponding child processing stream; initiating rendering by the respective child processing threads of the corresponding images of each corresponding fragment in the corresponding selected area; saving each rendered image as a byte array; initiating the transfer of the byte array by the corresponding child processing threads to the main processing thread; initiating drawing by the main processing stream of the final image on the screen of the electronic device using a set of byte arrays.
Возможен вариант осуществления электронного устройства, в котором для инициации получения соответствующим дочерним потоком обработки набора требуемых графических элементов процессор выполнен с возможностью: для каждого фрагмента из по меньшей мере двух фрагментов инициирования вычисления главным потоком обработки набора требуемых графических элементов, требуемых для отрисовки соответствующего фрагмента; передачи указания на соответствующий фрагмент и набор требуемых графических элементов соответствующим дочерним потокам обработки.An embodiment of an electronic device is possible in which, to initiate the receipt by the corresponding child processing stream of a set of required graphic elements, the processor is configured to: for each fragment of at least two fragments initiate calculation by the main processing stream of a set of required graphic elements required to draw the corresponding fragment; transmitting an indication of the corresponding fragment and the set of required graphic elements to the corresponding child processing threads.
Возможен вариант осуществления электронного устройства, в котором процессор выполнен с возможностью инициирования выбора главным потоком обработки набора требуемых графических элементов, являющихся подгруппой всех возможных графических элементов, для каждого из по меньшей мере двух фрагментов.An embodiment of an electronic device is possible in which the processor is configured to initiate a selection by the main processing stream of a set of required graphic elements, which are a subgroup of all possible graphic elements, for each of at least two fragments.
Возможен вариант осуществления электронного устройства, в котором для инициации получения соответствующим дочерним потоком обработки набора требуемых графических элементов процессор выполнен с возможностью инициирования: получения соответствующим дочерним потоком обработки из главного потока обработки всех возможных графических элементов; выбора соответствующими дочерними потоками обработки из всех возможных графических элементов подгруппы графических элементов, которая является требуемой для обработки связанного одного из по меньшей мере двух фрагментов.An embodiment of an electronic device is possible in which to initiate the receipt by the corresponding child processing stream of a set of required graphic elements, the processor is configured to initiate: receiving the corresponding child processing stream from the main processing stream of all possible graphic elements; selecting the appropriate child processing threads from all possible graphic elements of the subgroup of graphic elements that is required to process the associated one of the at least two fragments.
Возможен вариант осуществления электронного устройства, в котором главный поток обработки и по меньшей мере один дочерний поток обработки являются компонентами архитектуры JavaScript.An embodiment of an electronic device is possible in which the main processing stream and at least one child processing stream are components of the JavaScript architecture.
Возможен вариант осуществления электронного устройства, в котором процессор дополнительно выполнен с возможностью выбора по меньшей мере одного дочернего потока обработки.An embodiment of an electronic device is possible in which the processor is further configured to select at least one daughter processing stream.
Возможен вариант осуществления электронного устройства, в котором процессор дополнительно выполнен с возможностью выбора по меньшей мере одного дочернего потока обработки как функцию вычислительной мощности процессора.An embodiment of an electronic device is possible in which the processor is further configured to select at least one daughter processing stream as a function of the processing power of the processor.
Возможен вариант осуществления электронного устройства, в котором приложение является браузерным приложением.An embodiment of an electronic device is possible in which the application is a browser application.
Возможен вариант осуществления электронного устройства, в котором процессор дополнительно выполнен с возможностью получения, через интерфейс пользовательского ввода запроса на просмотр картографического изображения, включающего в себя часть карты.An embodiment of an electronic device is possible in which the processor is further configured to receive, through a user input interface, a request to view a cartographic image including a part of the card.
В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».In the context of the present description, unless specifically indicated otherwise, “server” means a computer program running on appropriate equipment that is able to receive requests (for example, from client devices) over the network and execute these requests or initiate the execution of these requests. The equipment may be one physical computer or one physical computer system, but neither one nor the other is mandatory for this technology. In the context of this technology, the use of the expression “server” does not mean that every task (for example, received commands or requests) or any specific task will be received, executed or initiated to be executed by the same server (that is, by the same software software and / or hardware); this means that any number of software elements or hardware devices can be involved in receiving / transmitting, executing or initiating the execution of any request or the consequences of any request associated with the client device, and all this software and hardware can be one server or several servers , both options are included in the expression “at least one server”.
В контексте настоящего описания, если конкретно не указано иное, "клиентское устройство" подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим для решения соответствующей задачи. Примерами клиентских устройств, среди прочего, являются персональные компьютеры (настольные компьютеры, ноутбуки и т.д.), смартфоны и планшеты. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного способа.In the context of the present description, unless specifically indicated otherwise, "client device" means a hardware device capable of working with software suitable for solving the corresponding task. Examples of client devices, among others, are personal computers (desktop computers, laptops, etc.), smartphones and tablets. It should be borne in mind that a device behaving as a client device in the present context may behave like a server in relation to other client devices. The use of the expression “client device” does not exclude the possibility of using multiple client devices to receive / send, execute, or initiate the execution of any task or request, or the consequences of any task or request, or the steps of any of the above methods.
В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.In the context of the present description, unless specifically indicated otherwise, the term "database" means any structured data set that is independent of the specific structure, database management software, hardware of the computer on which data is stored, used, or otherwise are available for use. The database may reside on the same hardware that runs the process that stores or uses the information stored in the database, or it may reside on separate hardware, such as a dedicated server or multiple servers.
В контексте настоящего описания, если конкретно не указано иное, термин «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).In the context of the present description, unless specifically indicated otherwise, the term “component” means software (corresponding to a particular hardware context) that is necessary and sufficient to perform the specific specified (s) function (s).
В контексте настоящего описания, если конкретно не указано иное, термин «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д. В контексте настоящего описания, если конкретно не указано иное, термин «интерктивный» подразумевает под собой, что нечто (или не менее чем его часть) может реагировать на пользовательский ввод.In the context of the present description, unless specifically indicated otherwise, the term “computer-supported computer information medium” means a medium of absolutely any type and nature, including RAM, ROM, disks (CDs, DVDs, diskettes, hard drives, etc.). e.), USB flash drives, solid state drives, tape drives, etc. In the context of the present description, unless specifically indicated otherwise, the term "interactive" means that something (or at least part of it) can respond to user input.
Каждый вариант осуществления настоящей технологии преследует по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять и другим целям, отдельно не указанным здесь.Each embodiment of the present technology pursues at least one of the aforementioned objectives and / or objects. It should be borne in mind that some objects of this technology, obtained as a result of attempts to achieve the aforementioned goal, can also satisfy other goals not specifically indicated here.
Дополнительные и/или альтернативные характеристики и преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.Additional and / or alternative characteristics and advantages of embodiments of the present technology will become apparent from the following description, the attached drawings and the attached claims.
Краткое описание чертежейBrief Description of the Drawings
Для лучшего понимания настоящей технологии, а также других ее вариантов осуществления и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами.For a better understanding of the present technology, as well as its other embodiments and characteristics, reference is made to the following description, which should be used in combination with the accompanying drawings.
На Фиг. 1 представлен снимок экрана, изображающий типичное картографическое изображение; это изображение является примером изображения, которое может быть обработано с применением вариантов осуществления настоящей технологии.In FIG. 1 is a screen shot showing a typical cartographic image; this image is an example of an image that can be processed using embodiments of the present technology.
На Фиг. 2 представлена принципиальная схема системы, которую можно реализовать как не ограничивающий вариант осуществления настоящей технологии.In FIG. 2 is a schematic diagram of a system that can be implemented as a non-limiting embodiment of the present technology.
На Фиг. 3 представлена блок-схема клиентского устройства системы, изображенной на Фиг. 2.In FIG. 3 is a block diagram of a client device of the system of FIG. 2.
На Фиг. 4 представлена блок-схема способа, выполненного в соответствии с не ограничивающими вариантами осуществления настоящей технологии, способ выполняется с помощью клиентского устройства, изображенного на Фиг. 2.In FIG. 4 is a flowchart of a method implemented in accordance with non-limiting embodiments of the present technology; the method is performed using the client device of FIG. 2.
На Фиг. 5 представлен фрагмент карты, обрабатываемый в соответствии с вариантами осуществления настоящей технологии.In FIG. 5 is a fragment of a map processed in accordance with embodiments of the present technology.
На Фиг. 6 представлена схема главного потока обработки, первого дочернего потока обработки, второго дочернего потока обработки и N-го дочернего потока обработки, созданных в соответствии с не ограниченными вариантами осуществления настоящей технологии.In FIG. 6 is a diagram of a main processing stream, a first child processing stream, a second child processing stream, and an Nth child processing stream created in accordance with unlimited embodiments of the present technology.
Осуществление изобретенияThe implementation of the invention
На Фиг. 2 представлена принципиальная схема системы 200, которую можно реализовать как не ограничивающий вариант осуществления настоящей технологии. Важно иметь в виду, что нижеследующее описание системы 200 представляет собой иллюстративный вариант осуществления настоящей технологии. Таким образом, все последующее описание представлено только как описание примера осуществления настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы 200 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 200 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобных случаях он представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.In FIG. 2 is a schematic diagram of a
Система 200 включает в себя электронное устройство 202. Электронное устройство 202 обычно связано с пользователем 204 и, таким образом, иногда может упоминаться как клиентское устройство 202. Следует отметить, что тот факт, что клиентское устройство 202 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации, или чего-либо подобного.
Варианты клиентского устройства 202 конкретно не ограничены, но, например, в качестве клиентского устройства 202 могут использоваться персональные компьютеры (настольные компьютеры (изображен), ноутбуки, нетбуки и т.п.), устройства беспроводной связи (мобильные телефоны, смартфоны, планшеты и т.п.). Клиентское устройство 202 включает в себя аппаратное обеспечение, программное обеспечение и/или встроенные программы (или сочетание перечисленного) для выполнения приложения (например, браузерного приложения, картографического приложения и т.п.), причем приложение среди прочего отображает пользовательский интерфейс, например, интерфейс браузерного приложения, который может быть использован для доступа к изображению карты с помощью картографического приложения или браузерного приложения. Картографическое приложение, среди прочего, может быть специализированным картографическим приложением, например, приложением Яндекс.Карты для мобильных устройств, веб-браузером или любым другим приложением, при условии, что они включают в себя область отображения карты. В конкретном варианте осуществления настоящей технологии пользовательский интерфейс может быть реализован на веб-странице, которая не является картографически специализированной (например, на веб-сайте общего характера, таком как веб-сайт банка, ресторана и т.п.).The options for
В конкретных вариантах осуществления с краткой ссылкой на Фиг. 3 будет описана принципиальная схема клиентского устройства 202. Клиентское устройство 202 может содержать процессор 303. В конкретных вариантах осуществления настоящей технологии процессор 303 может состоять из одного или нескольких процессоров и/или одного или нескольких микроконтроллеров, реализованных с возможностью выполнять команды и операции, связанные с операциями клиентского устройства 202. В разнообразных вариантах осуществления настоящей технологии процессор 303 может быть реализован как однокристальный, многокристальный и/или содержащий другие электротехнические детали, включая одну или несколько интегральных схем и печатных плат. Процессор 303 может опционально содержать кэш-память (не изображена) для временного локального хранения команд, данных или электронных адресов. В качестве примера, процессор 303 состоять из одного или нескольких процессоров и/или одного или нескольких контроллеров, предназначенных для определенных задач обработки клиентского устройства 202 или одного многофункционального процессора или контроллера.In specific embodiments, with a brief reference to FIG. 3, a schematic diagram of a
Процессор 303 функционально связан с модулем 304 памяти. Модуль 304 памяти может включать один или несколько носителей и в общем случае предоставлять место для хранения машинного кода (например, программного обеспечения и/или встроенных программ). В качестве примера модуль 304 памяти может включать разнообразные материальные машиночитаемые носители, включая постоянное запоминающее устройство ПЗУ (ROM) и/или оперативное запоминающее устройство ОЗУ (RAM). Как широко известно в данной области техники, ПЗУ передает данные и команды однонаправленно процессору 303, а ОЗУ обычно используется для передачи данных и команд двунаправленно. Модуль 304 памяти может также включать одно или несколько стационарных запоминающих устройств, в виде, среди прочих подходящих форм памяти, например, жестких дисков (HDD), твердотельных накопителей (SSD), карт флэш-памяти (например, безопасные цифровые карты или SD-карты, встроенные мультимедийные карты или еММС карты), соединенных двунаправленно с процессором 303. Информация может также находиться на одном или нескольких съемных носителях, поставленных или установленных в клиентское устройство 202. В качестве примера любое количество подходящих карт памяти (например, SD-карт) может быть установлено в клиентское устройство 202 на временной или постоянной основе.A
Модуль 304 памяти может хранить в числе прочего серии машиночитаемых команд, выполнение которых позволяет процессору 303 (а также другим компонентам клиентского устройства 202) выполнять различные описанные здесь операции. Клиентское устройство 202 также содержит модуль 306 ввода-вывода. Модуль 306 ввода-вывода может содержать одно или несколько устройств ввода-вывода, функционально связанных с процессором 303. Например, модуль 306 ввода-вывода может содержать клавиатуру, мышь, одну или несколько кнопок, колесико и/или дисплей (например, жидкокристаллический дисплей (LCD), светодиодный дисплей (LED), дисплей на основе интерферометрической модуляции (IMOD) или дисплей на основе любой другой подходящей технологии). В общем случае, устройства ввода выполнены с возможностью передавать данные, команды и ответы из внешнего мира в клиентское устройство 202. Дисплей в общем случае выполнен с возможностью отображать графический интерфейс пользователя (GUI), который предоставляет простой в использовании графический интерфейс между пользователем клиентского устройства 202 и операционной системой или приложением(и), установленными на клиентском устройстве 202. В общем случае графический интерфейс пользователя (GUI) представляет программы, файлы и операционные опции с помощью графических изображений. Во время проведения операции пользователь может выбрать и активировать разнообразные графические изображения, отображенные на дисплее, для инициации функций и задач, связанных с ними. Модуль 306 ввода-вывода может также включать сенсорные устройства, такие как сенсорная панель и сенсорный экран. Сенсорная панель является устройством ввода, включающим поверхность, которая определяет ввод на основе касаний пользователя. Аналогично, сенсорный экран является экраном, который определяет наличие и местоположение касаний пользователя. Модуль 306 ввода-вывода может также включать экран или панель мультисенсорной или дуальной сенсорной модели, которые могут определять наличие, местоположение и движение более чем одного сенсорного ввода, как, например, касания двумя или тремя пальцами.The
В конкретном варианте осуществления настоящей технологии клиентское устройство 202 является смартфоном, а модуль 306 ввода-вывода может являться сенсорным экраном.In a specific embodiment of the present technology, the
В конкретном варианте осуществления настоящей технологии клиентское устройство 202 может дополнительно содержать аудиомодуль 308, видеомодуль 310, модуль 312 беспроводной передачи данных, сенсорный модуль 314, и/или модуль 316 проводной передачи данных, при этом все они функционально соединены с процессором 303 для обеспечения разнообразных функций клиентского устройства 202.In a specific embodiment of the present technology, the
Например, видеомодуль 310, включая оптический сенсор (например, прибор с зарядовой связью (CCD) или комплементарный метал-оксидный полупроводниковый (CMOS) видеосенсор), может быть использован для обеспечения фото- и видеофункций, таких как фото- и видеосъемка. Например, модуль 316 проводной передачи данных, может включать в себя порт USB (универсальной последовательной шины) для передачи файлов, или порт Ethernet для связи с LAN (локальной вычислительной сетью). Дополнительно, клиентское устройство 202 может питаться от модуля 318 источника питания, который может быть реализован как аккумулятор и т.п.For example, a
В некоторых вариантах осуществления настоящей технологии модуль 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 может быть выполнено с возможностью быть центральной станцией для других устройств беспроводной передачи данных.In some embodiments of the present technology, the
Сенсорный модуль 314 может включать одно или несколько сенсорных устройств для обеспечения дополнительного ввода и многофункциональности клиентского устройства 202.The
В конкретных вариантах осуществления настоящей технологии, разнообразные компоненты клиентского устройства 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), шину расширенной шинной архитектуры для микроконтроллеров (АМВА), или иную подходящую шину или сочетание двух или нескольких шин.In specific embodiments of the present technology, a variety of components of the
Возвращаясь к описанию Фиг. 2, клиентское устройство 202 соединено с сетью 206 передачи данных через линию 208 связи. В некоторых вариантах осуществления настоящей технологии, не ограничивающих ее объем, сеть 206 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящей технологии сеть 206 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.Returning to the description of FIG. 2, the
Реализация линии 208 передачи данных не ограничена и будет зависеть от того, какое клиентское устройство 202 используется. В качестве примера, но не ограничения, в данных вариантах осуществления настоящей технологии в случаях, когда клиентское устройство 202 представляет собой беспроводное устройство связи (например, смартфон), линия 208 передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.). В тех примерах, где клиентское устройство 202 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет WiFi®, Bluetooth® и т.п) так и проводной (соединение на основе сети Ethernet).The implementation of the data link 208 is not limited and will depend on which
Важно иметь в виду, что варианты реализации клиентского устройства 202, линии 208 передачи данных и сети 206 передачи данных даны исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления клиентского устройства 202, линии 208 передачи данных и сети 206 передачи данных. То есть, представленные здесь примеры не ограничивают объем настоящей технологии.It is important to keep in mind that the options for implementing
К сети передачи данных также присоединены картографический сервер 210 и сервер 212 приложения. Серверы 210, 212 могут представлять собой обычные компьютерные серверы. В примере варианта осуществления настоящей технологии каждый из серверов 210, 212 контента может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Предполагается, что серверы 210, 212 могут быть реализованы на любом подходящем аппаратном и/или прикладном программном, и/или системном программном обеспечении или их комбинации. Разумеется, картографический сервер 210 может быть реализован иначе, чем сервер 212 приложения.A
В представленном варианте осуществления настоящей технологии, не ограничивающем ее объем, каждый из серверов 210, 212 является одиночным сервером. В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, функциональность каждого из серверов 210, 212 может быть разделена, и может выполняться с помощью нескольких серверов. В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, функциональность серверов 210, 212 может быть представлена на одном сервере. Варианты осуществления серверов 210, 212 широко известны среди специалистов в данной области техники. Тем не менее, для краткой справки: серверы 210, 212 содержат интерфейс передачи данных (не показан), который настроен и выполнен с возможностью обмениваться данными с различными элементам (например, клиентским устройством 208, или друг с другом) через сеть 206 передачи данных. Каждый из серверов 210, 212 дополнительно включает в себя один или несколько пунктов из следующего: компьютерный процессор (не показан), функционально соединенный с интерфейсом связи, настроенный и выполненный с возможностью выполнять различные процессы, описанные здесь.In the present embodiment of the present technology, not limiting its scope, each of the
Картографический сервер 210 соединен с сетью 206 передачи данных через линию 214 передачи данных. Сервер 212 приложения соединен с сетью 206 передачи данных через линию 216 передачи данных. Реализация линий 214, 216 передачи данных не ограничена и будет зависеть от того, как реализованы серверы 210, 212. Предполагается, что примеры вариантов осуществления линии 208 передачи данных, предоставленные выше, могут быть применены к линиям 214, 216 передачи данных. Как будет описано ниже, картографический сервер 210 настроен на получение от клиентского устройства 202 запроса на фрагмент карты через сеть 206 передачи данных и линии 214, 216 передачи данных, извлекать запрошенный фрагмент карты из одной или нескольких баз данных (не показаны), обмениваясь данными с картографическим сервером 210, и отправлять запрошенный участок карты на клиентское устройство 202 через сеть 206 передачи данных и линии 214, 216 передачи данных.The
В других вариантах осуществления настоящей технологии клиентское устройство 202 может быть выполнено с возможностью связываться с сервером 212 приложения для доступа к приложению, предоставляемому сервером 212 приложения. В некоторых вариантах осуществления технологии приложение может быть картографическим приложением. В других вариантах осуществления настоящей технологии приложение может быть веб-ресурсом (доступным пользователю 204, который пользуется браузерным приложением, реализуемым на электронном устройстве 202). В рамках этих вариантов осуществления настоящей технологии, клиентское устройство 202 может запрашивать карту посредством приложения, предоставляемого сервером 212 приложения, и этот запрос может передаваться картографическому серверу 210 с помощью сервера 212 приложения.In other embodiments of the present technology, the
В рамках этих вариантов осуществления картографический сервер 210 настроен на получение от сервера 212 приложения запроса на фрагмент карты через сеть 206 передачи данных и линии 214, 216 передачи данных, извлечение запрошенных фрагментов карты из одной или нескольких баз данных (не показаны), обмениваясь данными с картографическим сервером 210, и отправку запрошенных участков карты на сервер 212 приложения через сеть 206 передачи данных и линии 216, передачи данных. Сервер 212 приложения затем передает запрошенный фрагмент карты клиентскому устройству 202.Within the framework of these embodiments, the
Следует отметить, что сервер 212 приложения и картографический сервер 210 могут обмениваться данными друг с другом не только через сеть 206 (например, через частную сеть, прямое соединение и т.п.). В других вариантах осуществления настоящей технологии сервер 212 приложения и картографический сервер 210 могут быть реализованы как единый сервер. В этих вариантах осуществления единый сервер может исполнять раздельные процессы - один для функционала, описанного в связи с сервером 212 приложения и один для функционала, описанного в связи с картографическим сервером 210.It should be noted that the
В соответствии с вариантами осуществления настоящей технологии, как только клиентское устройство 202 получает фрагмент карты, оно может обработать полученные данные для отрисовки на модуле 306 ввода-вывода следующим образом. Способы и процедуры, описанные ниже, могут быть выполнены процессором 303. Процессор 303 может получать доступ к модулю 304 памяти, где хранятся компьютерные инструкции, при выполнении которых процессор 303 выполняет способы и процедуры, описанные выше. То, как процессор 303 выполняет способы и процедуры, никак конкретно не ограничено; они могут исполняться операционной системой, реализуемой процессором 303, с помощью специализированных процессов, выполняемых процессором 303, посредством специализированного или многоцелевого приложения, реализуемого процессором 303 и т.п.According to embodiments of the present technology, as soon as the
Чтобы облегчить понимание способа и процедур, описанных ниже, принимается, что фрагмент карты, полученный клиентским устройством 202, является изображением карты 500, показанной на Фиг. 5; это изображение карты является тем же самым изображением карты 100, приведенным на Фиг. 1, но обработанным в соответствии с не ограничивающими вариантами осуществления настоящей технологии. В некоторых не ограничивающих вариантах осуществления настоящей технологии, картографическое изображение 100 получено в формате SVG (масштабируемый векторный рисунок), который является форматом векторного изображения на основе XML для двухмерной графики с поддержкой интерактивности и анимации. Стандарт SVG - открытый стандарт, разработанный консорциумом всемирной паутины (W3C).In order to facilitate understanding of the method and procedures described below, it is assumed that the map fragment received by the
Клиентское устройство 202 выполнено с возможностью получать изображение, чтобы отрисовать его для отображения на клиентском устройство 202 (отображение реализуется с помощью модуля 306 ввода-вывода). Как было упомянуто выше, получение изображения может быть выполнено посредством получения картографического изображения 100 либо с картографического сервера 210, либо с сервера 212 приложения. Получение может быть реализовано модулем 312 беспроводной передачи данных или модулем 316 проводной передачи данных, в зависимости от обстоятельств.The
Следует, однако, отметить, что варианты осуществления настоящей технологии можно с равным успехом применить к изображениям, полученным от модуля 304 памяти (т.е. тем, которые хранятся на клиентском устройстве 202), захваченных видеомодулем 310 или посредством снимка экрана, на котором представлена информация в модуле 306 ввода-вывода. Варианты осуществления настоящей технологии могут быть применены к любому другому типу изображения для отрисовки на клиентском устройстве 202.It should be noted, however, that the embodiments of the present technology can equally well be applied to images received from the memory module 304 (i.e., those stored on the client device 202) captured by the
Только с целью иллюстрации следует предположить, что пользователь 204 вводит запрос на получение фрагмента карты в пользовательский интерфейс браузерного приложения, запущенного на клиентском устройстве 202. Например, пользователь 204 вводит в модуль 306 ввода-вывода (например, используя клавиатуру и мышь) запрос на искомый фрагмент карты (например, печатая адрес в поисковом интерфейсе карты, вертикально отображенной в браузерном приложении).For the purpose of illustration only, it should be assumed that
Когда ввод завершен, после нажатия на клавишу "Ввод" или щелканья по кнопке "поиск" запрос отправляется либо на картографический сервер 210, либо на сервер 212 приложения в зависимости от обстоятельств. В примере, проиллюстрированном на Фиг. 1, пользователь 204 ввел "Рестораны в Вестеросе" в поле поиска, для получения в результате поиска в модуле 306 ввода-вывода клиентского устройства 202 интеративного фрагмента карты, показывающего расположение ресторанов в Вестеросе.When the input is completed, after pressing the "Enter" key or clicking on the "search" button, the request is sent either to the
В этом примере запрошенный фрагмент карты является изображением 500, показывающем карту "Вестероса" и сопутствующую информацию, соответствующую расположению ресторанов в Вестеросе (а также потенциально иную информацию, относящуюся к этим ресторанам, например, адрес, номер телефона, веб-сайт, отзывы).In this example, the requested map fragment is a 500 image showing the Vasteras map and related information corresponding to the location of the restaurants in Vasteras (as well as potentially other information related to these restaurants, such as address, phone number, website, reviews).
В некоторых других вариантах осуществления настоящей технологии, фрагмент карты для обработки может быть выбран автоматически на основе IP-адреса или координат GPS, связанных с клиентским устройством 202, предоставляющим текущее расположение клиентского устройства 202 или конкретное расположение, сохранившееся в приложении с прошлого раза. В таком примере считается, что пользователь 204 может конкретизировать расстояние от текущего или ранее конкретизированного расположения для определения того, какой фрагмент карты должен быть представлен. Или же пользователь 204 может выбрать конкретное расположение с помощью выпадающего меню или ввода вручную, чтобы указать, какой интерактивный фрагмент карты ему необходим.In some other embodiments of the present technology, a map fragment for processing may be automatically selected based on the IP address or GPS coordinates associated with the
В другом примере в приложении, созданном для предоставления расположения местных достопримечательностей на клиентское устройство 202, информация о том, какой фрагмент карты необходимо запросить, создается на основе текущего местоположения клиентского устройства 202 с использованием, например, IP-адреса или координат GPS. Границы фрагмента карты, который будет запрошен, могут быть определены с помощью предварительно определенного радиуса с использованием текущего расположения клиентского устройства 202 или с помощью расстояния, выбранного пользователем 204 на клиентском устройстве 202.In another example, in an application created to provide location of local attractions to a
Клиентское устройство 202 выполнено с возможностью делить изображение по меньшей мере на два фрагмента, каждый из которых является изображением, пригодным к отрисовке с использованием графических элементов. На Фиг. 5 картографическое изображение 500 поделено на первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты. Каждый из первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты может сам по себе быть отрисован с использованием графических элементов. Следует отметить, что, хотя в изображенном варианте осуществления настоящей технологии картографическое изображение разделено на четыре фрагмента (первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты), конкретное число фрагментов не ограничено, и разнообразных вариантах осуществления настоящей технологии может быть использовано разное число фрагментов.
Кроме того, хотя первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты на изображении одинакового размера, это не является необходимым в каждом варианте осуществления настоящей технологии.In addition, although the
В некоторых вариантах осуществления настоящей технологии картографическое изображение 500, полученное клиентским устройством 202 содержит фрагменты карты, каждый из которых предоставляет карту в конкретном диапазоне географических координат. В одном варианте осуществления настоящей технологии каждый фрагмент содержит фотографию со спутника (или группу фотографий со спутника) области, соответствующей своему диапазону географических координат. В другом варианте осуществления настоящей технологии каждый фрагмент содержит иллюстрированную карту, соответствующую своему диапазону географических координат. В другом варианте осуществления настоящей технологии каждый фрагмент является группой из одной или нескольких фотографий со спутника и иллюстрированной картой, соответствующей своему диапазону географических координат.In some embodiments of the present technology, the
В рамках некоторых их этих вариантов осуществления настоящей технологии клиентское устройство 202 делит картографическое изображение 500 на соответствующие фрагменты, образуя первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты. В других вариантах осуществления настоящей технологии, особенно хорошо подходящих для обработки разных типов изображения, разделение на соответствующие фрагменты (т.е. первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты) может быть осуществлено на электронном устройстве 202 на основе предварительно определенного алгоритма.Within some of these embodiments of the present technology, the
Клиентское устройство 202 в таком случае выполнено с возможностью создавать главный поток обработки и не менее одного дочернего потока обработки, которые зависят от главного потока обработки. На Фиг. 6 клиентское устройство 202 выполнено с возможностью инициировать главный поток 602 обработки, а также первый дочерний поток 604 обработки, второй дочерний поток 606 обработки и N-й дочерний поток 608 обработки. N-й дочерний поток 608 обработки является одним или несколькими дополнительными дочерними потоками обработки, потенциально определенными клиентским устройством (электронным устройством) 202. Следует отметить, что инициация главного потока 602 обработки, первого дочернего потока 604 обработки, второго дочернего потока 606 обработки и N-го дочернего потока 608 обработки может быть выполнена операционной системой электронного устройства 202.The
Электронное устройство 202 затем инициирует получение главным потоком 602 обработки, первым дочерним потоком 604 обработки, вторым дочерним потоком 606 обработки и N-м дочерним потоком 608 обработки указания на соответствующий сегмент из не менее двух сегментов (т.е. первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты) и набор требуемых графических элементов. Следует заметить, что процесс выполняется таким образом, что каждый дочерний поток 604, 606, 608 обработки получает единственный экземпляр соответствующего фрагмента (т.е. один из первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты) для обработки в данный момент.The
В некоторых вариантах осуществления настоящей технологии главный поток 602 обработки выбирает требуемые элементы для каждого соответствующего фрагмента из по меньшей мере двух фрагментов (т.е. первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты) из множества возможных элементов и передает указание соответствующим дочерним потокам 604, 606, 608 обработки. В других вариантах осуществления настоящей технологии главный поток 602 обработки передает все возможные элементы соответствующим дочерним потокам 604, 606, 608 обработки; и соответствующие дочерние потоки 604, 606, 608 обработки выбирают требуемые элементы для каждого из соответствующих фрагментов из не менее двух фрагментов (т.е. первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты).In some embodiments of the present technology, the
В некоторых вариантах осуществления настоящей технологии выбор требуемых элементов выполняется следующим образом. При получении картографического изображения 500 оно содержит набор требуемых графических элементов, а также координаты для каждого элемента. Когда картографическое изображения 500 делится на фрагменты (т.е. первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмента 506 карты и четвертый фрагмент 508 карты), главный поток 602 обработки или соответствующие дочерние потоки 604, 606, 608 обработки могут определять координаты, которые ограничивают эти данные фрагменты (т.е. первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмента 506 карты и четвертый фрагмент 508 карты). На основе ранжира координат для каждого из фрагментов (т.е. первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты) главный поток 602 обработки или соответствующие дочерние потоки 604, 606, 608 обработки могут определять требуемые элементы для отрисовки конкретных фрагментов.In some embodiments of the present technology, the selection of the required elements is as follows. Upon receipt of the
Таким образом, можно сказать, что все возможные графические элементы являются элементами, требуемыми для отрисовки картографического изображения 500 полностью и требуемые элементы являются элементами, требуемыми для отрисовки одного данного фрагмента из фрагментов картографического изображения 500, а именно, одного из следующих фрагментов: первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты.Thus, we can say that all possible graphic elements are the elements required to render the
Электронное устройство 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 карты.The
Соответствующий дочерний поток 604, 606, 608 обработки затем использует указание на объем памяти, содержащееся в ulnt8View.buffer для выделения необходимого объема.The corresponding
Электронное устройство 202 может затем инициировать отрисовку соответствующим дочерним потоком 604, 606, 608 обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти. Другими словами, соответствующий дочерний поток 604, 606, 608 обработки отрисовывает свой выделенный фрагмент из следующих фрагментов: первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты в выделенной требуемой области памяти. В результате первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмента 506 карты и четвертый фрагмент 508 карты используют выделенную область памяти как "холст" для отрисовки выделенного изображения (т.е. одного выделенного изображения из первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты).The
Электронное устройство 202 затем инициирует сохранение соответствующим дочерним потоком 604, 606, 608 обработки каждого обработанного изображения в виде байтового массива. В некоторых вариантах осуществления настоящей технологии, соответствующий дочерний поток 604, 606, 608 обработки может сохранить обработанное изображение в формате PNG с использованием вызова функции: canvas.toDataURL"image/png"). Однако, в других вариантах осуществления настоящей технологии соответствующий дочерний поток 604, 606, 608 обработки может использовать любой другой формат, даже если эти форматы не являются форматами без потери информации (например, JPEG и т.п.).The
Электронное устройство 202 затем инициирует передачу соответствующим дочерним потоком 604, 606, 608 обработки байтового массива главному потоку 602 обработки.The
Следует отметить, что когда сегментов для обработки больше (т.е. первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмента 506 карты и четвертый фрагмент 508 карты), когда главный поток 602 обработки получает обработанное изображение от соответствующего дочернего потока 604, 606, 608 обработки, он передает один следующий фрагмент (т.е. один следующий фрагмент из первого фрагмента 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмент 508 карты) одному из "освободившихся" дочерних потоков 604, 606, 608 обработки.It should be noted that when there are more segments for processing (i.e., the
Когда главный поток 602 обработки получает все полностью обработанные фрагменты (т.е. все полностью обработанные фрагменты из фрагментов 502 карты, второго фрагмента 504 карты, третьего фрагмента 506 карты и четвертого фрагмента 508 карты), он отрисовывает финальное изображение на экране (т.е. в модуле 306 ввода-вывода) электронного устройства 202 с использованием полученного набора байтовых массивов. В некоторых вариантах осуществления настоящей технологии главный поток 602 обработки использует вызов функции canvas.drawimage.When the
С учетом архитектуры, описанной выше, процессор 303 выполнен с возможностью выполнять способ обработки изображения. На Фиг. 4 представлена блок-схема способа 400, реализованного в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем. Выполнение способа 400 может быть осуществлено на электронном устройстве 202. С этой целью у процессора 303 есть доступ к выполняемым на компьютере инструкциям, хранящимся в модуле 304 памяти. Процессор 303 может осуществлять приложение (например, браузерное приложение, картографическое изображение и т.д.), которое выполняется с использованием главного потока 602 обработки и по меньшей мере одного дочернего потока 604, 606, 608 обработки, зависимых от главного потока 602 обработки.Given the architecture described above, the
Следует отметить, что в некоторых вариантах осуществления способа 400 главный поток обработки и не менее одного дочернего потока 604, 606, 608 обработки являются компонентами архитектуры JavaScript.It should be noted that in some embodiments of
Этап 402 - получение изображения, которое необходимо отрисовать для отображения на электронном устройстве.Step 402 — obtaining an image that needs to be drawn for display on an electronic device.
Способ 400 начинается на этапе 402, когда процессор 303 получает изображение которое необходимо отрисовать для отображения на электронном устройстве 202. В примерах, приведенных выше, процессор 303 получает картографическое изображение 500. Варианты осуществления способа 400 будут проиллюстрированы с использованием примера картографического изображения 500, указанного выше.The
Этап 404 - разделение изображения по меньшей мере на два фрагмента, каждый из которых является пригодным для отрисовки с использованием графических элементов.Step 404 - splitting the image into at least two fragments, each of which is suitable for rendering using graphic elements.
Процессор 303 затем делит картографическое изображение 500 по меньшей мере на два фрагмента, каждый из которых является изображением, пригодным к отрисовке с использованием графических элементов (т.е. на первый фрагмент 502 карты, второй фрагмент 504 карты, третий фрагмент 506 карты и четвертый фрагмент 508 карты).The
Этап 406 - получение соответствующим дочерним потоком обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов, причем каждый дочерний поток обработки получает единственный экземпляр соответствующего фрагмента для обработки в данный момент.Step 406 — obtaining, by the corresponding child processing flow, an indication of the corresponding fragment from these at least two fragments and a set of required graphic elements, each child processing flow receiving a single instance of the corresponding fragment for processing at the moment.
Затем, на этапе 406 процессор 303 инициирует получение соответствующим дочерним потоком 604, 606, 608 обработки указания на соответствующий фрагмент из этих по меньшей мере двух фрагментов и набор требуемых графических элементов, причем каждый дочерний поток 605, 606, 608 обработки получает единственный экземпляр соответствующего фрагмента для обработки в данный момент.Then, at
В некоторых вариантах осуществления способа 400, получение соответствующими дочерними потоками обработки набора требуемых графических элементов содержит: для каждого фрагмента из не менее двух фрагментов вычисление главным потоком обработки набора требуемых графических элементов, требуемых для отрисовки соответствующего фрагмента; передачу указания на соответствующий фрагмент и набор требуемых графических элементов соответствующим дочерним потокам обработки. Следует отметить, что набор требуемых графических элементов - это подгруппа всех возможных графических элементов; и способ 400 также содержит выбор главным потоком 602 обработки набора требуемых графических элементов для каждого из не менее двух фрагментов.In some embodiments of
В других вариантах осуществления способа 400 этап получения соответствующими дочерними потоками 604, 606, 608 обработки набора требуемых графических элементов содержит: получение из главного потока обработки всех возможных графических элементов; выбор соответствующими дочерними потоками 604, 606, 608 обработки из всех возможных графических элементов подгруппы графических элементов, которая является требуемой для обработки связанного одного из не менее двух фрагментов.In other embodiments of
Этап 408 - выделение новой области в памяти электронного устройства для каждого соответствующего дочернего потока обработки.Step 408 - allocating a new area in the memory of the electronic device for each respective child processing stream.
Далее, на этапе 408 процессор 303 инициирует отрисовку соответствующим дочерним потоком 604, 606, 608 обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти.Next, at
Этап 410 - отрисовка соответствующим дочерним потоком обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти.Step 410 — rendering by the corresponding child processing stream the corresponding image of each corresponding fragment in the corresponding allocated memory area.
Далее, на этапе 410 процессор 303 инициирует отрисовку соответствующим дочерним потоком 604, 606, 608 обработки соответствующего изображения каждого соответствующего фрагмента в соответствующей выделенной области памяти.Next, at
Этап 412 - сохранение каждого отрисованного изображения в виде байтового массива.Step 412 - saving each rendered image as a byte array.
Далее, на этапе 412 процессор 303 инициирует сохранение соответствующим дочерним потоком 604, 606, 608 обработки каждого обработанного изображения в виде байтового массива.Next, at
Этап 414 - передача байтового массива соответствующим дочерним потоком обработки главному потоку обработки.Step 414 — transmitting the byte array with the corresponding child processing stream to the main processing stream.
Далее, на этапе 414 процессор 303 инициирует передачу байтового массива соответствующим дочерним потоком 604, 606, 608 обработки главному потоку 602 обработки.Next, at
Этап 416 - отрисовка финального изображения главным потоком обработки на экране электронного устройства с использованием набора байтовых массивов.Step 416 - rendering the final image by the main processing flow on the screen of the electronic device using a set of byte arrays.
Далее, на этапе 416 процессор 303 инициирует отрисовку финального изображения главным потоком обработки на экране электронного устройства с использованием набора байтовых массивов. Затем способ 400 завершается.Next, at
В некоторых вариантах осуществления способа 400, способ 400 также содержит выбор количества дочерних потоков 604, 606, 608 обработки (не менее одного) для обработки картографического изображения 500. В некоторых вариантах осуществления способа 400 выбор выполняется как функция вычислительной мощности процессора 303 электронного устройства. Дополнительно или альтернативно выбор может быть осуществлен как функция количества фрагментов картографического изображения 500 и/или размера картографического изображения 500.In some embodiments of
В некоторых вариантах осуществления способа 400, в которых изображение содержит часть карты, способ 400 может быть выполнен в ответ на запрос пользователя на получение картографического изображения (с использованием приложения браузера или картографического приложения на электронном устройстве 202, как пример). В таком случае способ 400 также содержит получение запроса на просмотр картографического изображения, причем картографическое изображение включает в себя часть карты.In some embodiments of a
Важно иметь в виду, что некоторые варианты осуществления настоящей технологии могут быть реализованы с проявлением дополнительных технических результатов отдельно не указанных в настоящем описании.It is important to keep in mind that some embodiments of the present technology can be implemented with the manifestation of additional technical results not specifically indicated in the present description.
Специалисты в данной области техники поймут, что в настоящем описании выражение "получение данных" от пользователя подразумевает получение электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран электронного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.Those skilled in the art will understand that in the present description, the expression “receiving data” from a user means receiving by the electronic device data from the user in the form of an electronic (or other) signal. In addition, those skilled in the art will understand that displaying data to a user via a graphical user interface (e.g., an electronic device screen and the like) may include transmitting a signal to the graphical user interface, this signal contains data that can be processed, and at least a portion of this data may be displayed to the user via a graphical user interface.
Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптоволоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).Some of these steps, as well as signal transmission-reception, are well known in the art and, therefore, have been omitted in specific parts of this description for simplicity. Signals can be transmitted-received using optical means (for example, fiber optic connection), electronic means (for example, wired or wireless connection) and mechanical means (for example, based on pressure, temperature or other suitable parameter).
Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.Modifications and improvements to the above-described embodiments of the present technology will be apparent to those skilled in the art. The preceding description is provided as an example only and is not subject to any restrictions. Thus, the scope of the present technology is limited only by the scope of the attached claims.
Claims (45)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RU2014152947A RU2608883C2 (en) | 2014-12-26 | 2014-12-26 | Image processing method and electronic device |
| PCT/IB2015/052554 WO2016103057A1 (en) | 2014-12-26 | 2015-04-08 | Method and apparatus for processing an image on an electronic device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RU2014152947A RU2608883C2 (en) | 2014-12-26 | 2014-12-26 | Image processing method and electronic device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| RU2014152947A RU2014152947A (en) | 2016-07-20 |
| RU2608883C2 true RU2608883C2 (en) | 2017-01-25 |
Family
ID=56149341
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RU2014152947A RU2608883C2 (en) | 2014-12-26 | 2014-12-26 | Image processing method and electronic device |
Country Status (2)
| Country | Link |
|---|---|
| RU (1) | RU2608883C2 (en) |
| WO (1) | WO2016103057A1 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2564075B (en) * | 2017-03-23 | 2020-04-01 | Pridefield Ltd | Multi-Threaded rendering system |
| CN107818023B (en) * | 2017-11-06 | 2021-06-15 | 深圳市雷鸟网络传媒有限公司 | Thread-based message processing method, intelligent device and storage medium |
| JP7120694B1 (en) * | 2022-02-03 | 2022-08-17 | アイデアマンズ株式会社 | Page display speed improvement processing system |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050243097A1 (en) * | 2002-07-05 | 2005-11-03 | Andrew Cohen | System and method for caching and rendering images |
| US20080109159A1 (en) * | 2006-11-02 | 2008-05-08 | Yahoo! Inc. | Method of client side map rendering with tiled vector data |
| US20080189640A1 (en) * | 2006-06-30 | 2008-08-07 | Tele Atlas North America, Inc. | Method and system for collecting user update requests regarding geographic data to support automated analysis, processing and geographic data updates |
| US20100153842A1 (en) * | 2008-12-12 | 2010-06-17 | Microsoft Corporation | Rendering source content for display |
| RU2436160C2 (en) * | 2008-10-31 | 2011-12-10 | Сони Корпорейшн | Image processing device, image display method and image display program |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5262965A (en) * | 1988-10-31 | 1993-11-16 | Bts-Broadcast Television Systems, Inc. | System and method for high speed computer graphics image computation using a parallel connected, asynchronous multiprocessor ring coupled to a synchronous special purpose video processing ring |
| AU2012297524B2 (en) * | 2011-08-16 | 2017-07-20 | Destiny Software Productions Inc. | Script-based video rendering |
| US20140181484A1 (en) * | 2012-12-21 | 2014-06-26 | James Callister | Mechanism to provide high performance and fairness in a multi-threading computer system |
-
2014
- 2014-12-26 RU RU2014152947A patent/RU2608883C2/en active
-
2015
- 2015-04-08 WO PCT/IB2015/052554 patent/WO2016103057A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050243097A1 (en) * | 2002-07-05 | 2005-11-03 | Andrew Cohen | System and method for caching and rendering images |
| US20080189640A1 (en) * | 2006-06-30 | 2008-08-07 | Tele Atlas North America, Inc. | Method and system for collecting user update requests regarding geographic data to support automated analysis, processing and geographic data updates |
| US20080109159A1 (en) * | 2006-11-02 | 2008-05-08 | Yahoo! Inc. | Method of client side map rendering with tiled vector data |
| RU2436160C2 (en) * | 2008-10-31 | 2011-12-10 | Сони Корпорейшн | Image processing device, image display method and image display program |
| US20100153842A1 (en) * | 2008-12-12 | 2010-06-17 | Microsoft Corporation | Rendering source content for display |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2016103057A1 (en) | 2016-06-30 |
| RU2014152947A (en) | 2016-07-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20230205399A1 (en) | Network resource location linking and visual content sharing | |
| US20240118781A1 (en) | Method of processing content and electronic device thereof | |
| US10366519B2 (en) | Operating method for image and electronic device supporting the same | |
| US9922260B2 (en) | Scrapped information providing method and apparatus | |
| JP7463434B2 (en) | Terminal, terminal control method, and program | |
| US10884616B2 (en) | Application control using a gesture based trigger | |
| RU2632128C1 (en) | Method and system of downloading image fragments to client device | |
| EP4632563A1 (en) | Association information display method and apparatus, device, storage medium, and program product | |
| US20160004425A1 (en) | Method of displaying graphic user interface and electronic device implementing same | |
| CN106354401B (en) | Handling touch gestures in hybrid applications | |
| US20160330266A1 (en) | Remotely controlling a device via a web browser | |
| CN111406411A (en) | Media Collection Generation and Privacy Mechanisms | |
| US20240292052A1 (en) | Page display method and apparatus, electronic device and storage medium | |
| CN111263176B (en) | Loading method, device, terminal, server and storage medium of live room page | |
| CN116980371A (en) | Interactive information interface | |
| JP2017520034A (en) | Automated selective upload of images | |
| KR20210062095A (en) | Media item attachment system | |
| US20170139554A1 (en) | Electronic apparatus and display control method | |
| US20150074596A1 (en) | Techniques to display location-based information | |
| US20170337648A1 (en) | Hierarchical panel presentation responsive to incremental search interface | |
| US20170205980A1 (en) | Method and an apparatus for providing a multitasking view | |
| US20160124582A1 (en) | Terminal apparatus and method for controlling the same | |
| CN114296611B (en) | Live broadcast room control methods, devices, electronic equipment, media and program products | |
| US20180210621A1 (en) | Electronic device and method for displaying screen by the same | |
| RU2608671C2 (en) | Method (versions), system and data medium for displaying fragment of interactive map using user interface of client device |