АДАПТИВНАЯ ВИЗУАЛИЗАЦИЯ ИЗОБРАЖЕНИЯ И ИСПОЛЬЗОВАНИЕ ФИКТИВНОГО ИЗОБРАЖЕНИЯ
ADAPTIVE IMAGE RENDERING AND USE OF IMPOSTOR IMAGE

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Изображения визуализируются из лежащего в основе источника контента. Многие источники контента позволяют визуализировать изображения с широким разнообразием разрешений или с произвольно высокими разрешениями. Однако размещение изображения на экране может занимать длительное время, либо потому что визуализация изображения является интенсивной в вычислительном отношении, либо потому, что вследствие времени реакции на ввод/вывод (I/O) длительное время может занимать загрузка изображения из сети или с более медленного локального устройства хранения. Таким образом, визуализация может занимать значительный интервал времени. Во многих случаях содержимое изображения, которое должно быть отображено, фактически является коллекцией изображений (например, набором из многих изображений, которые являются ответными на поиск изображения). Поскольку каждое изображение в коллекции имеет собственный источник, который должен быть визуализирован отдельно, время, требуемое для визуализации коллекции изображений, умножается многократно по сравнению с визуализацией одного изображения.
С точки зрения обеспечения высококачественного восприятия пользователем существует, в целом, два способа обработки, во время которой выполняется визуализация изображения. Одним способом является предварительный процесс визуализации изображений перед тем, как они запрашиваются. Этот подход подразумевает прогнозирование того, какие изображения будут запрошены и с какими разрешениями. Он также подразумевает хранение большого числа предварительно визуализированных изображений и отведение вычислительных ресурсов для визуализации изображений, которые могут быть или могут не быть запрошены в некоторый момент в будущем. Более того, если предварительно визуализированные изображения имеют высокое разрешение, тогда − хотя задержка в визуализации изображений избегается − задержка все еще может возникать в результате интервала времени, который занимает передача изображения высокого разрешения. Когда обработка выполняется с коллекцией изображений с высоким разрешением, тогда снова эта задержка может увеличиваться многократно.
Другим способом подхода ко времени, за которое выполняется визуализация изображения, является визуализация изображения по запросу и сообщение пользователю, что он должен подождать, пока изображение визуализируется. Когда эта технология используется, пользователю может быть показано сообщение, говорящее ему об ожидании, пока изображение визуализируется, или может быть показан символ или анимация (например, песок, падающий в песочных часах, стрелки, двигающиеся на часах, и т.д.), пока изображение визуализируется. Эта технология, как правило, приводит в результате к негативному восприятию пользователем.
Некоторые системы используют ограниченную форму предварительной визуализации. Например, изображения могут быть сохранены в двух формах: изображение высокого разрешения, которое подразумевает большой объем данных, и небольшое эскизное изображение с очень низким разрешением. Недостаток этого подхода в том, что он заставляет систему отображения делать выбор между показом эскиза низкого разрешения или показом изображения высокого разрешения, которое может занимать длительное время для передачи или отрисовывания на дисплее.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Изображения могут визуализироваться способом, который принимает во внимание доступность существующих предварительно визуализированных изображений и скорость, с которой изображения могут быть переданы и/или отрисованы, и который также улучшает восприятие пользователем даже в случае, когда предварительно визуализированные изображения недоступны.
Когда изображение должно быть отображено, система визуализации изображения пытается определить, доступно ли локально предварительно визуализированное изображение на машине, которая выполняет визуализацию. Если так, то изображение может быть представлено. Если подходящее предварительно визуализированное изображение недоступно, тогда система рисует изображение-заполнитель, называемое "фиктивным изображением". Фиктивное изображение может, например, быть цветным пятном. Появление фиктивного изображения может подсказывать пользователю, что фиктивное изображение является первой итерацией изображения, которое будет становиться четким с постепенно возрастающими высокими разрешениями. Однако фиктивное изображение может не быть основано на какой-либо фактической информации от лежащего в основе изображения. Таким образом, предположение, что фиктивное изображение представляет раннюю стадию рисования изображения более высокого разрешения, является просто иллюзией, но такой, которая улучшает восприятие пользователем. Когда коллекция изображений должна быть визуализирована (например, набор изображений, которые являются ответными на поиск изображения), каждое изображение, которое недоступно в предварительно визуализированной форме, может быть показано как фиктивное изображение.
После того как некоторый образ был нарисован в месте, предназначенном для изображения (элемент, который нарисован, является либо фиктивным изображением, либо версией реального изображения с низким разрешением), процесс получения реального изображения или версии изображения с высоким разрешением может продолжаться. В предположении, что подходящее предварительно визуализированное изображение недоступно локально, источник изображения (т.е. данные, составляющие лежащую в основе модель изображения, которое должно быть визуализировано, такую как JPEG-файл) может быть извлечен. Изображение может затем быть визуализировано с более высоким разрешением. Там, где применимо, несколько изображений могут быть визуализированы для включения в коллекцию, в таком случае процессы извлечения и визуализации отдельных изображений, которые являются частью коллекции, могут выполняться параллельно. Одной вариацией идеи визуализации изображения с более высоким разрешением, чтобы заменять изображение низкого разрешения или фиктивное изображение, является визуализация и рисование изображений последовательно с более высоким разрешением, тем самым анимируя процесс приведения изображения к большему фокусу. Когда используется фиктивное изображение, последовательные изображения могут смешивать увеличивающиеся объемы данных реального изображения с данными фиктивного изображения.
Способ, в котором изображения визуализируются и рисуются, может быть адаптивным в том плане, чтобы принимать во внимание доступность и возможности различных ресурсов. Например, природа некоторых форматов изображений обеспечивает быстрые пути визуализации некоторых разрешений (например, изображения могут быть быстро визуализированы при разрешениях 256 или 512 пикселов из JPEG), таким образом, доступность изображения в конкретном формате может быть использована в качестве основы для выбора конкретного разрешения. Более того, скорость, с которой изображения могут быть нарисованы и/или переданы, может быть использована в качестве основы для выбора того, сколько различных разрешений изображения должно быть отрисовано. Например, кто-то может захотеть анимировать изображение, приходящее в фокус, показывая, например, тридцать последовательно более высоких разрешений в течение одной секунды. Но если физические возможности окружения не позволяют изображениям отрисовываться и/или передаваться со скоростью тридцать кадров в секунду, тогда система может сделать другой выбор относительно разрешений, с которыми она будет визуализировать изображение. Наоборот, окружение может позволять изображениям отрисовываться и/или передаваться с высокой скоростью, но визуализация этих изображений может быть медленной. Другими словами, соображения о медлительности процесса рисования и медлительности процесса визуализации могут быть приняты во внимание отдельно при определении того, какие изображения должны быть визуализированы.
Данное краткое изложение сущности изобретения предусмотрено для того, чтобы в упрощенной форме представить подборку идей, которые дополнительно описываются ниже в подробном описании. Это краткое изложение сущности изобретения не имеет намерением ни то, чтобы идентифицировать ключевые признаки или важнейшие признаки заявленного изобретения, ни то, чтобы использоваться для ограничения объема заявленного изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 и 2 − блок-схемы, показывающие пример того, как изображение может быть визуализировано с последовательно возрастающими разрешениями.
Фиг. 3 - блок-схема примерной коллекции изображений.
Фиг. 4 − блок-схема примерных компонентов, которые могут быть использованы для визуализации контента.
Фиг. 5 - логическая блок-схема примерного процесса предоставления изображения.
Фиг. 6 − блок-схема некоторых примерных адаптаций, которые могут быть выполнены посредством предмета изобретения в данном документе.
Фиг. 7 − блок-схема примерных компонентов, которые могут быть использованы в связи с реализациями предмета изобретения, описанного в данном документе.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Контент изображения становится все более распространенным в последние годы. В ранние годы применения вычислительной техники взаимодействие между людьми и компьютерами, как правило, происходило в форме передачи текста. В настоящее время пользователи ожидают контент в форме изображений, и их ожидания возрастают относительно как качества самих изображений, так и качества восприятия при доставке этих изображений. Электронные письма, результаты поисков, веб-страницы и т.д. обычно содержат изображения, и пользователи ожидают, что эти изображения могут быть доставлены по различным типам проводных или беспроводных соединений и на многие виды устройств, начиная с настольных компьютеров и заканчивая беспроводными телефонами.
Во многих случаях изображения хранятся в некотором виде модели, которая не может быть визуализирована непосредственно. Предпочтительно, изображение должно быть визуализировано в пиксельное представление с некоторым разрешением, так что пикселы могут быть отображены на устройстве отображения. Процесс визуализации изображения, в частности изображения высокого разрешения, является затратным с точки зрения объема вычислений, которое занимает создание изображения, или интервала времени, который занимает выполнение операций ввода/вывода изображения. Интервал времени, который занимает управление таким изображением, ухудшает восприятие пользователем при приеме таких изображений. Во многих случаях, изображения, которые должны быть визуализированы, являются частью коллекции (например, коллекции изображений, которые создают результаты поиска для поиска изображения), таким образом, затраты на визуализацию коллекции могут быть многократно более высокими, чем затраты на визуализацию одного изображения.
Когда доходит до создания высококачественного ощущения у пользователей, существует множество способов, чтобы разрешать проблему предоставления визуализированных изображений. Одним способом является предварительная визуализация изображений, так что изображения будут готовы к отображению в ответ на запрос пользователя. Тем не менее предварительная визуализация изображений имеет издержки, поскольку она подразумевает выделение больших объемов вычислительных ресурсов и хранилищ, чтобы создавать изображения, которые могут быть или могут не быть когда-либо запрошены. Изображения могут запрашиваться с различными разрешениями, что означает, что предварительная визуализация изображений может подразумевать не только предвидение того, какие изображения являются подходящими для того, чтобы их запрашивали, но также прогнозирование того, с каким разрешением эти изображения будут запрошены. Более того, поскольку набор доступных изображений постоянно изменяется, предварительная визуализация изображений является постоянным процессом, который должен выполняться для каждого нового изображения, которое может быть запрошено.
Дополнительно, в то время как предварительная визуализация сокращает (практически до нуля) интервал времени, который необходимо будет ожидать, чтобы визуализировать изображение, после того как изображение запрошено, предварительная визуализация может накладывать другие типы временных затрат. Поскольку может быть возможно визуализировать изображение только с небольшим числом различных разрешений (например, низким, средним и высоким), предварительно визуализированное высококачественное изображение может не быть совместимо с величиной, доступной ширины полосы пропускания, или скоростью рисования устройства, на котором изображение должно быть отображено. Например, если изображения доступны со средним и высоким разрешением, для того, чтобы оптимизировать восприятие пользователем (в понятиях соотношения времени реакции и качества), может быть целесообразным показывать изображение, которое находится где-то между средним и высоким разрешением. Но если такого изображения не существует, тогда система будет должна выбирать между предоставлением изображения среднего разрешения и предоставлением изображения высокого разрешения. Первый вариант может ухудшать восприятие пользователем, давая более низкое визуальное качество, тогда как последний вариант может ухудшать восприятие пользователем в отношении интервала времени, который занимает передача изображения пользовательскому устройству, или интервала времени, который занимает отрисовывание его на дисплее. В то время как изобретение в данном документе применяется и в случае, когда одно изображение должно быть визуализировано, и в случае, когда коллекция изображений должна быть визуализирована, отметим, что проблемы визуализации высококачественных изображений быстро увеличиваются многократно, когда должна быть визуализирована коллекция изображений, по сравнению с одним изображением.
Изобретение, описанное в данном документе, позволяет изображениям визуализироваться способом, который адаптируется к различным ограничениям на предоставление изображений, для того чтобы обеспечивать высококачественное общее восприятие пользователем. Некоторые примеры ограничений, которые могут ограничивать возможности предоставления изображений, включают в себя: доступность (или их отсутствие) предварительно визуализированных изображений; относительную простоту визуализации изображений с определенными разрешениями по сравнению с другими; доступность полосы пропускания для передачи изображения от модуля визуализации к устройству, на котором они будут отображаться; и скорость, с которой устройство визуализации может отрисовывать последовательные изображения. Более того, посредством использования фиктивных изображений изобретение в данном документе может улучшать чувственное восприятие пользователем получения изображений, даже когда предварительно визуализированное изображение (даже не изображение низкого разрешения) легко недоступно.
Когда запрашивается одно или более изображений, система, спроектированная в соответствии с изобретением в данном документе, пытается определять, что она может обеспечить быстро. Запрос изображений может принимать форму прямого пользовательского запроса. Или, в качестве другого примера, поисковая машина может запрашивать изображения как часть процесса реагирования на запрос поиска изображения. Или, в качестве дополнительного примера, изображения могут быть указаны на веб-странице, и веб-браузер может запрашивать изображения как часть обработки веб-страницы. Изобретение, раскрытое в данном документе, не ограничено каким-либо конкретным способом, в котором возникает запрос изображения. Могут быть доступны предварительно визуализированные изображения низкого разрешения, в таком случае эти изображения могут быть предоставлены. Изображения низкого разрешения могут быть переданы и отрисованы быстро, таким образом, использование изображений низкого разрешения может делать ответ на запрос очень быстрым. Однако если изображения низкого разрешения недоступны, система может предоставлять фиктивное изображение. Фиктивное изображение - это изображение, которое может показываться пользователю как очень ранняя стадия в процессе рисования изображения с постоянно увеличивающимися высокими разрешениями. Однако фиктивное изображение может не быть основано на чем-либо, кроме размера и соотношения сторон изображения. Например, фиктивное изображение может быть просто смесью цветов и узоров, показанных в форме и по размеру рисунка, который будет визуализирован позже. Но поскольку фиктивное изображение может быть основано на небольшом количестве информации или без информации о рисунке, оно может быть предоставлено очень быстро, тем самым предоставляя некоторый контент, который может быть использован для ответа на запрос изображения. Этот быстрый ответ может улучшать восприятие пользователем.
Пока пользователю показывается фиктивное изображение или изображение низкого разрешения, система может работать над получением изображений с другими разрешениями. Существуют различные задачи, которые могут быть выполнены при создании этих изображений. Во-первых, лежащее в основе невизуализированное изображение должно быть найдено в локальном или удаленном источнике. После того как изображение найдено, могут быть приняты различные решения относительно того, как визуализировать изображение. Например, система может анимировать процесс рисования изображения с более высоким разрешением, показывая последовательно визуализации изображения с более высоким разрешением. Скорость, с которой эта анимация может быть выполнена, может зависеть от скорости, с которой изображения могут быть переданы, скорости, с которой изображения могут быть нарисованы на экране, числа различных визуальных представлений изображения, которые могут быть выполнены в единицу времени, и − в случае коллекции изображений − числа изображений, которые включены в коллекцию. Таким образом, система может анимировать процесс приведения изображения к фокусу, удваивая разрешение для последовательных изображений. Но если визуализация нового изображения для каждого разрешения для каждой последующей степени двойки будет подразумевать визуализацию большего числа изображений, чем вычислительные ресурсы системы могут обрабатывать в данный отрезок времени, или большую скорость передачи и/или повторного рисования изображения, чем технология связи и/или отображения может обрабатывать в каждую единицу времени, тогда система может изменять выбор на визуализацию последовательных изображений так, что каждое изображение имеет четырехкратное разрешение от предыдущего изображения. Или, в определенных форматах изображения (например, JPEG), некоторые разрешения могут быть визуализированы быстрее, чем другие, таким образом, система может выбирать визуализацию изображения с разрешением, которое может быть визуализировано быстро, даже если − при прочих равных условиях − система выбрала бы другое разрешение.
В целом, изобретение, описанное в данном документе, может быть использовано, чтобы показывать любое число изображений, в том числе и одно изображение. Однако в одном примере система может быть использована, чтобы визуализировать коллекцию изображений, такую как множество изображений, которые предоставляются пользователю в ответ на поисковый запрос изображения.
Обращаясь теперь к чертежам, фиг. 1 и 2 показывают пример того, как изображение может быть визуализировано с последовательно более высокими разрешениями. На фиг. 1 изображение 102 было запрошено. Изображение 102 может быть в некотором формате, таком как файл в формате JPEG (объединенной группы экспертов в области фотографии), файл в формате TIFF (теговом формате файла изображения), в формате, который представляет формы геометрически (например, файл, сформированный посредством программы рисования VISIO), или может быть любым другим типом изображения. Запрос изображения 102 может формироваться любым образом. Например, пользователь может делать явный запрос изображения 102, или изображение 102 может быть указано на веб-странице, которую браузер пытается загрузить, или изображение 102 может быть возвращено поисковой машиной как ответное на поисковый запрос. Вышеописанное является некоторыми примерами того, как запрос изображения может формироваться, но запрос изображения 102 может формироваться любым образом.
В примерах на фиг. 1 и 2 может быть случай, что предварительно визуализированная версия изображения 102 недоступна. Таким образом, может быть показано фиктивное изображение 104. В примере на фиг. 1 как черно-белое пятно из диагональных линий, которые начерчены в различных узорах, хотя фиктивное изображение 104 может иметь цвета. Фиктивное изображение 104 в этом примере является прямоугольником с соотношением сторон как у изображения 102. Даже если визуализированная версия изображения 102 недоступна, может быть возможным устанавливать соотношение сторон изображения 102 (или, в более общем смысле, форму изображения 102), поскольку соотношение сторон или форма могут быть определены из метаданных изображения 102. В действительности, даже если изображение 102 не является легкодоступным, его метаданные могут быть доступны в отдельном местоположении. Таким образом, для того, чтобы инструктировать отображение, как если бы фиктивное изображение 104 фактически являлось ранней стадией рисования изображения 102, фиктивное изображение 104 может быть визуализировано с соотношением сторон изображения 102 и с размером, с которым изображение 102 должно быть нарисовано. В случае, когда изображение 102 не является прямоугольным, метаданные могут выдавать форму изображения, в таком случае фиктивное изображение 104 может быть нарисовано в форме изображения 102. (В целом, соотношение сторон является специфическим типом описания формы, который применяется к прямоугольным формам). В экстремальных случаях может даже быть невозможным получать метаданные изображения 102. В этом случае фиктивное изображение 104 может быть нарисовано с некоторым произвольным соотношением сторон (или в некоторой другой форме). Отметим, что некоторые системы, во время визуализации изображения, предоставляют некоторый тип сообщения, указывающего, что будет задержка в принятии изображения (например, "Пожалуйста, подождите, пока ваше изображение извлекается"), или предоставляют некоторый вид символа, который представляет ожидание или прохождение времени (например, песок, падающий в песочных часах, вращающийся круг, часы и т.д.). Однако фиктивное изображение может не содержать такого сообщения или символа, так что фиктивное изображение может реализовывать другой подход: фиктивное изображение может быть задумано не для того, чтобы объяснять или уведомлять о задержке, а скорее для того, чтобы давать пользователю ощущение как будто он начал принимать изображение.
После того как фиктивное изображение 104 нарисовано, пользователь может быть убежден, что система работает над рисованием запрошенного изображения. Таким образом, процессы получения изображения, определения разрешения(ий), с которыми визуализируется изображение, и визуализации изображения с этим(и) разрешением(ями) могут быть выполнены. Примеры того, как эти процессы выполняются, обсуждаются ниже в связи с фиг. 4-6. Однако в целях фиг. 1 и 2 предположим, что одно или более визуализированных изображений получены некоторым образом.
Первое из этих изображений визуализируется 106. Визуализация 106 является визуализацией изображения 102 с низким разрешением. С целью иллюстрации, природа низкого разрешения изображения представлена на фиг. 1 посредством наличия различных элементов изображения, показанных пунктирными линиями, хотя в реальности изображение низкого разрешения является изображением, в котором изображение представлено посредством только относительно небольшого числа пикселов. На фиг. 2 визуализация 108 представляет изображение 102 с еще большим разрешением (как указано пунктирными линиями, которые показаны с большей плотностью, чем пунктирные линии изображения 106). Могут быть нарисованы последовательные версии с более высоким разрешением изображения 102. В конечном счете, последовательность визуализаций может выглядеть аналогично визуализации 110, которая выглядит как относительно высокое разрешение изображения 102 (например, изображение с разрешением настолько высоким, насколько позволяет устройство отображения, на котором визуализация должна быть отображена). Отметим, что последовательность визуализаций на фиг. 1 и 2 от фиктивного изображения 104 до визуализаций 106, 108 и 110 является примером анимации процесса приведения изображения к более высокому разрешению и/или большей четкости.
В то время как фиг. 1 и 2 показывают единственное изображение, как оно переходит от фиктивного изображения до изображения высокого разрешения, отметим, что изображения, которые должны быть визуализированы, могут быть частью коллекции, такой как коллекция 300, показанная на фиг. 3. Коллекция 300 - это коллекция из нескольких изображений, которые, в примере на фиг. 3, содержат девять визуализаций 302, 304, 306, 308, 310, 312, 314, 316 и 318. Как может быть видно, различные изображения в коллекции 300 находятся на различных стадиях визуализации и/или доступности. Например, визуализация 302 показана со средним разрешением. Визуализация 304 (другого изображения) показана с низким разрешением. Визуализация 306 (которая является визуализацией еще одного изображения) показана с высоким разрешением. Визуализации 308-318 показаны как фиктивные изображения, указывающие, что визуализации соответствующих изображений еще недоступны. Коллекция 300 может быть отображена множеством способов. В одном примере, все изображения в коллекции (или фиктивные изображения, если изображения недоступны) визуализируются в одно растровое изображение, и растровое изображение может быть отображено. Например, веб-сервер может составлять одну страницу, которая содержит коллекцию изображений, и может затем отправлять машине пользователя растровое изображение этой страницы, которое должно быть визуализировано пользовательским браузером. Когда дополнительные изображения (или версии существующих изображений с более высоким разрешением) становятся доступными, растровое изображение может быть обновлено и представлено браузеру для того, чтобы заменять растровое изображение, которое в настоящий момент показывается посредством браузера. Или, в качестве другого примера, каждое изображение в коллекции может быть визуализировано отдельно. Например, веб-страница может содержать ссылки на изображения, таким образом, браузер получает изображения по одному по их соответствующим унифицированным указателям информационных ресурсов (URL) и отображает каждое изображение в соответствующем месте на странице. Когда ссылка на изображения запрашивается, сервер может предоставлять фиктивное изображение, изображение низкого разрешения или изображение высокого разрешения в зависимости от того, какое визуализированное изображение доступно. Отдельные изображения могут быть обновлены с помощью изображений более высокого разрешения, когда такие изображения становятся доступными.
Фиг. 4 показывает компоненты примерной системы 400, которая может быть использована для визуализации контента. Система 400 обрабатывает запрос 402 одного или более изображений и управляет процессом получения и визуализации изображений.
Запрос 402 может быть принят системой сбора данных. Система 404 сбора данных управляет процессом выборки изображений, а также может управлять процессом композиции множества изображений в одно изображение (как в случае, когда коллекция должна быть отображена).
Что касается роли системы 404 сбора данных в управлении процессом выборки изображения, когда система 404 сбора данных определяет, что изображение должно быть предоставлено, система 404 сбора данных может обращаться к модулю 406 выборки изображений, чтобы получать эти изображения. Модуль 406 выборки изображений может получать изображения из различных источников, включающих в себя удаленный источник 408 изображений и/или локальный источник 410 изображений. Удаленный источник 408 изображений является ресурсом, который расположен где-то в месте, отличном от машины, на которой работает модуль 406 выборки изображений. Локальный источник 410 изображений - это источник, который расположен на машине, на которой модуль 406 выборки изображений работает. Отметим, что существуют различные сценарии относительно того, что составляет "машину, на которой модуль 406 выборки изображений работает". В одном примере модуль 406 выборки изображений работает на той же машине, на которой изображения должны быть отображены (например, пользовательский компьютер, смартфон пользователя и т.д.), в таком случае локальный источник 410 изображений может быть областью хранения на этом компьютере, смартфоне и т.д. В другом примере модуль 406 выборки изображений работает на сервере, который визуализирует изображения, которые не будут отображаться на этом сервере, а скорее будут доставляться удаленно браузеру на машине пользователя для того, чтобы отображаться на этой машине пользователя. В последнем случае, локальный источник 410 является источником, который находится на сервере, который визуализирует изображения, а не источником, расположенным на машине, на которой изображения должны отображаться.
В дополнение к извлечению изображений из локальных и удаленных источников система 404 сбора данных может также извлекать предварительно визуализированные изображения из кэша 412 изображений. Различие между локальным и удаленным источниками 408 и 410 изображений и кэшем 412 изображений состоит в том, что кэш 412 изображений хранит визуализированные версии изображений, в то время как локальный и удаленный источники 408 и 410 изображений могут хранить представления изображений, которые еще должны быть визуализированы. Поскольку одно и то же изображение может быть запрошено более чем один раз, кэш 412 изображения хранит изображения, которые могли быть визуализированы как часть обслуживания некоторого предыдущего запроса. Таким образом, кэш 412 изображений позволяет таким изображениям использоваться снова, тем самым избегая работы по визуализации изображения, если эта работа уже была выполнена.
Система 400 может также содержать модуль 414 визуализации, который может выполнять фактическую работу по визуализации изображения. Т.е., когда исходное изображение было извлечено, модуль 414 визуализации может использовать исходное изображение, чтобы создавать фактические пикселы, которые будут отображены. Когда модуль 414 визуализации визуализировал изображение, это изображение может быть передано на дисплей 416. Дополнительно, когда изображение визуализировано, модуль 414 визуализации может откладывать изображение в кэш 412 изображений, так что визуализированное в настоящий момент изображение будет доступно для будущего использования, если это же изображение позднее запрашивается снова.
Отметим, что процесс выборки изображения может выполняться параллельно с помощью множества потоков. Например, если коллекция содержит, скажем, двадцать изображений, тогда система 404 сбора данных может создавать двадцать отдельных потоков, в которых модуль 406 выборки изображений работает, так что изображения могут быть извлечены одновременно.
Фиг. 5 показывает примерный процесс предоставления изображения. Перед обращением к описанию фиг. 5 отметим, что логическая блок-схема, содержащаяся на фиг. 5, описывается, в качестве примера, со ссылкой на компоненты, показанные на фиг. 1-4, хотя этот процесс может выполняться в любой системе и не ограничен сценариями, показанными на фиг. 1-4. Дополнительно, логическая блок-схема на фиг. 5 показывает пример, в котором этапы процесса выполняются в определенном порядке, как указано линиями, соединяющими блоки, но различные этапы, показанные в этой схеме, могут выполняться в любом порядке, или в любой комбинации, или субкомбинации.
На этапе 502 изображение может быть запрошено. Как отмечено выше, запрос может формироваться любым образом: например, при непосредственном запросе пользователя, через поисковую машину, при этом машина запрашивает изображение, поскольку изображение является ответом на поиск, и т.д. На этапе 504 запрос может быть принят компонентом, который будет обрабатывать запрос. На этапе 506 может быть определено, доступна ли предварительно визуализированная версия изображения в кэше изображений. Если изображение доступно (и/или если изображение найдено как доступное в кэше с соответствующим разрешением), тогда визуализированное изображение может быть отображено на этапе 514. Иначе, процесс продолжается без визуализированного изображения.
Для того чтобы продолжать без визуализированного изображения, фиктивное изображение может быть отображено на этапе 508. Как обсуждалось выше, фиктивное изображение может быть изображением, которое содержит цвета и/или узоры, которые не получены из лежащего в основе изображения, а вместо этого может создавать у пользователя ощущение того, что фиктивное изображение является очень ранней стадией визуализации изображения с последующими более высокими разрешениями. В одном примере фиктивное изображение может быть нарисовано с соотношением сторон и/или формой лежащего в основе изображения, и по размеру, с которым фактическое изображение в конечном счете будет визуализировано. Однако предмет изучения в данном документе также включает в себя ситуации, в которых фиктивное изображение вообще не основано на информации относительно лежащего в основе изображения (даже не на его соотношении сторон и/или форме).
Когда фиктивное изображение отображено, процесс может переходить к получению изображения из источника на этапе 510. Например, как описано выше в связи с фиг. 4, модуль 406 выборки изображений может быть использован, чтобы получать изображения из удаленного источника 408 изображений и/или локального источника 410 изображений. Как также упомянуто выше, может быть несколько изображений, которые должны быть визуализированы как часть коллекции, и, таким образом, процесс получения этих изображений может проходить параллельно, например, посредством запуска модуля выборки изображений в нескольких одновременных потоках. Более того, отметим, что некоторые изображения в коллекции могут быть доступны, в то время как другие могут быть недоступны. Таким образом, в процессе на фиг. 5 возможно, что некоторые изображения в коллекции изначально будут отображаться как фиктивные, в то время как другие первоначально отображаются как визуализации лежащего в основе изображения.
После того как изображение было извлечено, на этапе 512 изображение может быть визуализировано с возможным разрешением. Наличие возможности может зависеть от соответствующих условий. Различные способы, которыми система может определять возможность, иллюстрируют адаптивную природу предмета изобретения, описанного в данном документе. Например, как отмечено выше, могут быть проблемы, касающиеся скорости, с которой изображения могут быть визуализированы, скорости, с которой изображения могут быть нарисованы, скорости, с которой изображения могут быть переданы из места их визуализации к месту их отображения, или другие соображения. Некоторые из этих соображений показаны на фиг. 6, которые сейчас описываются.
В целом, одним типом адаптации является адаптация к контексту, в котором отображение изображения выполняется (блок 602). Примеры этого контекста включают в себя число изображений, которые визуализируются (например, одно изображение или коллекция изображений), доступную ширину полосы пропускания, скорость рисования системы отображения. Эти вопросы могут определять то, что составляет возможное разрешение, с которым нужно визуализировать изображение. Например, как отмечено выше, кто-то может пожелать анимировать процесс приведения изображения ко все более высокому разрешению, удваивая разрешение при каждом последующем рисовании изображения. Однако если не существует достаточной ширины полосы пропускания для передачи или скорости рисования, или достаточной ширины полосы пропускания для визуализации, тогда анимация увеличивающегося разрешения изображения может быть слишком длительной, когда последующие изображения просто удваивают разрешение. Таким образом, может быть сделан выбор в пользу четырехкратного увеличения разрешения между последовательными изображениями.
Другим типом адаптации является адаптация к признакам контента (блок 604). Например, как отмечено выше, некоторые виды контента могут упрощать визуализацию с одними разрешениями по сравнению с другими, например природа JPEG может упрощать процесс визуализации с 256 или 512 пикселами по сравнению с другими разрешениями. Таким образом, легкость визуализации контента с конкретными разрешениями (и/или другие признаки контента) может информировать о выборе разрешения, с которым необходимо визуализировать контент. Отметим, что при выборе разрешения(ий), с которым необходимо визуализировать изображение, система может выбирать конкретное разрешение (например, разрешение A), если не было договоренности о том, какие разрешения могут быть нарисованы быстро. Однако существование быстрого пути для конкретного разрешения может инструктировать системе выбирать другое разрешение (например, разрешение B), которое не является разрешением, которое система выбрала бы в ином случае. Другими словами, в таком примере, система выбирает разрешение B не потому, что оно является разрешением, которое система выбрала бы на основе того внешнего вида, которого система пытается достичь; скорее система может выбирать разрешение B как противоположность разрешению A, специально вследствие доступности быстрого пути.
Другой формой адаптации является способность к многопоточности выборки изображений и/или процесса визуализации (блок 606). Как отмечено выше, изображения могут быть частью коллекции, и может быть возможным извлекать различные изображения в коллекции одновременно. Аналогично, что касается изображений, которые были извлечены, может также быть возможным разделять процесс визуализации на множество потоков, тем самым позволяя одновременную визуализацию извлеченных изображений.
Возвращаясь к фиг. 5, после того как изображение было визуализировано (либо вследствие того, что визуализированное изображение уже было доступно, как определено на этапе 506, либо вследствие того, что изображение было извлечено и визуализировано, после того как изображение было запрошено), визуализированное изображение может быть отображено на этапе 514. Действие отображения изображения может включать в себя физическое отображение изображения на экране или другом устройстве. Или действие отображения изображения может включать в себя инструкцию о том, что отображение изображения должно происходить на другом устройстве. (Например, если сервер отправляет клиентские инструкции, чтобы отображать изображение, это действие может быть понято как действие отображения, которое выполняется сервером).
На этапе 516 может быть определено, существуют ли дополнительные разрешения, которые должны быть визуализированы. Как отмечено выше, кто-то может хотеть анимировать процесс отображения изображения со все более увеличивающимися разрешениями, и, таким образом, могут быть выполнены несколько визуализаций одного и того же изображения. Конкретные разрешения, которые могут быть выбраны для этого процесса анимации, могут быть определены на основе соображений выполнимости, обсужденных выше. Однако предположим, что выбор того, какие разрешения визуализировать, был сделан некоторым образом (когда этот выбор сам может изменяться пока выполняются процессы визуализации и выборки), тогда на этапе 516 определяется, существуют ли дополнительные разрешения изображения(ий) для визуализации. Если существуют такие дополнительные разрешения, тогда процесс может возвращаться к этапу 512, чтобы визуализировать изображение с дополнительным разрешением(ями). Иначе, изображение визуализируется с его конечным разрешением, и процесс может заканчиваться.
Фиг. 7 показывает примерное окружение, в котором аспекты предмета изобретения, описанного в данном документе, могут быть размещены.
Компьютер 700 включает в себя один или более процессоров 702 и один или более компонентов 704 памяти данных. Процессор(ы) 702 типично являются микропроцессорами такими, которые находятся в персональном настольном или портативном компьютере, сервере, карманном компьютере или другом виде вычислительного устройства. Компонент(ы) 704 памяти данных являются компонентами, которые способны хранить данные либо в течение короткого, либо длительного срока. Примеры компонента(ов) 704 памяти данных включают в себя жесткие диски, съемные диски (включающие в себя оптические и магнитные диски), энергозависимое и энергонезависимое оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), флэш-память, магнитную ленту и т.д. Компонент(ы) памяти данных являются примерами машиночитаемых носителей хранения. Компьютер 700 может содержать или быть соединен с дисплеем 712, который может быть монитором с катодной лучевой трубкой (CRT), монитором с жидкокристаллическим дисплеем (LCD) или любым другим типом монитора.
Программное обеспечение может быть сохранено в компоненте(ах) 704 памяти данных и может выполняться на одном или более процессоре(ах) 702. Примером такого программного обеспечения является программное обеспечение 706 адаптивной визуализации изображений, которое может реализовывать некоторую или всю функциональность, описанную выше в связи с фиг. 1-6, хотя может быть использован любой тип программного обеспечения. Программное обеспечение 706 может быть реализовано, например, посредством одного или более компонентов, которые могут быть компонентами в распределенной системе, отдельными файлами, отдельными функциями, отдельными объектами, отдельными строками кода и т.д. Компьютер (например, персональный компьютер, серверный компьютер, карманный компьютер, смартфон и т.д.), в котором программа сохранена на жестком диске, загружена в RAM и выполняется в процессоре(ах) компьютера, олицетворяет сценарий, изображенный на фиг. 7, хотя изобретение, описанное в данном документе, не ограничено этим примером.
Изобретение, описанное в данном документе, может быть реализовано как программное обеспечение, которое хранится в одном или более компоненте(ах) 704 памяти данных и которое выполняется на одном или более процессоре(ах) 702. В качестве другого примера, предмет изобретения может быть реализован как инструкции, которые хранятся на одном или более машиночитаемых носителях хранения информации. Материальные носители, такие как оптические диски или магнитные диски, являются примерами носителей хранения информации. Инструкции могут находиться на некратковременных носителях. Такие инструкции, когда исполняются компьютером или другой машиной, могут предписывать компьютеру или другой машине выполнять одно или более действий способа. Инструкции для выполнения действий могут быть сохранены на одном носителе или могут быть распределены на множестве носителей, так что инструкции могут показываться вместе на одном или более машиночитаемых носителях хранения, несмотря на то, все ли инструкции находятся на одном и том же носителе.
Дополнительно, любые действия, описанные в данном документе (показанные или не показанные на схеме), могут быть выполнены процессором (например, одним или более процессорами 702) как часть способа. Таким образом, если действия A, B и C описаны в данном документе, то может выполняться способ, который содержит действия A, B и C. Более того, если действия A, B и C описаны в данном документе, тогда может выполняться способ, который содержит использование процессора, чтобы выполнять действия A, B и C.
В одном примерном окружении компьютер 700 может быть соединен с возможностью связи с одним или более другими устройствами через сеть 708. Компьютер 710, который может быть аналогичен по структуре компьютеру 700, является примером устройства, которое может быть соединено с компьютером 700, хотя другие типы устройств могут также быть соединены таким образом.
Хотя изобретение описано на языке, характерном для структурных признаков и/или технологических этапов, следует понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно ограничен характерными признаками или действиями, описанными выше. Вместо этого характерные признаки и этапы, описанные выше, раскрываются как примерные формы реализации формулы изобретения.