ДИНАМИЧЕСКОЕ ОПРЕДЕЛЕНИЕ ЦВЕТОВ ДЛЯ КОМПОНЕНТОВ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ВИДЕОПРОИГРЫВАТЕЛЯ
DYNAMIC COLOR DETERMINATION FOR VIDEO PLAYER USER INTERFACE COMPONENTS

ОБЛАСТЬ ТЕХНИКИ
[0001] Раскрытые варианты осуществления в целом относятся к реализуемым на компьютере способам для пользовательских интерфейсов приложений программного обеспечения и, в частности, к определению цветов компонентов пользовательского интерфейса внутри пользовательского интерфейса видеопроигрывателя на основе содержимого видеоролика, отображаемого в видеопроигрывателе.
УРОВЕНЬ ТЕХНИКИ
[0001] Пользовательские интерфейсы приложений программного обеспечения как правило относительно статичны с возможным изменением своих расположений в ответ на изменение размеров окна, но без существенных изменений в ответ на содержимое, которое в настоящее время отображается. В частности, это проблематично для приложений видеопроигрывателя, когда визуальное представление видеоролика - включая любые компоненты пользовательского интерфейса, непосредственно отображаемые совместно с видеороликом может значительно влиять на восприятие при просмотре пользователем. Например, как таковые мешающие яркие компоненты пользовательского интерфейса могут отвлекать от просмотра видеоролика, как это могут делать компоненты пользовательского интерфейса с цветами, которые эстетически «противоречат» содержимому видеоролика.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0002] В одном варианте осуществления реализуемый на компьютере способ установки цветов компонентов пользовательского интерфейса видеопроигрывателя для дополнения воспроизводимого видеоролика включает этап определения множества кадров видеоролика. Для каждого кадра из определенных кадров выполняется некоторое количество этапов. Этапы включают в себя определение преобладающего цвета кадра посредством разбиения цветов пикселей кадра на множество цветовых разбиений, определение цветового разбиения, имеющего наибольшее количество пикселей кадра, и усреднение пикселей определенного цветового разбиения. Этапы дополнительно включают в себя формирование множества разновидностей цвета на основе преобладающего цвета посредством применения параметров цвета к цветовым компонентам преобладающего цвета и формирование, для каждой из разновидностей цвета и для каждого из множества типов компонентов пользовательского интерфейса, цвета компонента пользовательского интерфейса. Согласно способу определяют состояние воспроизведения видеоролика, один текущий из определенных кадров перед текущей точкой воспроизведения в видеоролике и один следующий из определенных кадров после текущей точки воспроизведения в видеоролике. Согласно способу также определяют первые цвета компонентов пользовательского интерфейса на основе состояния воспроизведения и цветов компонентов пользовательского интерфейса, сформированных для текущего определенного кадра, и вторые цвета компонентов пользовательского интерфейса на основе состояния воспроизведения и цветов компонентов пользовательского интерфейса, сформированных для следующего определенного кадра. Согласно способу устанавливают цвета компонентов пользовательского интерфейса видеопроигрывателя на основе определенных первых цветов компонентов пользовательского интерфейса и определенных вторых цветов компонентов пользовательского интерфейса.
[0003] В одном варианте осуществления реализуемый на компьютере способ включает этапы определения преобладающего цвета кадра видеоролика; формирования множества разновидностей цвета на основе преобладающего цвета; определения состояния воспроизведения видеоролика; выбора одной из разновидностей цвета на основе состояния воспроизведения; и установки цветов компонентов пользовательского интерфейса у пользовательского интерфейса для видеоролика на основе выбранной разновидности цвета.
[0004] В одном варианте осуществления некратковременный компьютерочитаемый носитель хранения информации хранит инструкции, исполняемые процессором. Инструкции содержат инструкции для определения преобладающего цвета кадра видеоролика; инструкции для формирования множества разновидностей цвета на основе преобладающего цвета; инструкции для определения состояния воспроизведения видеоролика; инструкции для выбора одной из разновидностей цвета на основе состояния воспроизведения; и инструкции для установки цветов компонентов пользовательского интерфейса у пользовательского интерфейса для видеоролика на основе выбранной разновидности цвета.
[0005] Признаки и преимущества, описанные в данном раскрытии сущности изобретения и последующем подробном описании, не являются полностью исчерпывающими. Из чертежей, описания и формулы изобретения среднему специалисту в уровне техники будут очевидны многие дополнительные признаки и преимущества.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] На Фиг. 1 показана высокоуровневая блок-схема окружения для размещения и просмотра видеороликов, согласно одному варианту осуществления.
[0007] На Фиг. 2 показан один типовой пользовательский интерфейс, подходящий для отображения видеоролика на мобильном устройстве, согласно одному варианту осуществления.
[0008] На Фиг. 3 показана высокоуровневая блок-схема, изображающая подробный вид модуля адаптации пользовательского интерфейса с Фиг. 1, согласно одному варианту осуществления.
[0009] На Фиг. 4 показана диаграмма потоков данных, изображающая действия модуля определения цветовой палитры, согласно одному варианту осуществления.
[0010] На Фиг. 5 показано формирование цветовых палитр и интерполяция цветов компонентов пользовательского интерфейса для набора кадров, согласно одному варианту осуществления.
[0011] На фигурах изображены различные варианты осуществления настоящего изобретения только в иллюстративных целях. Специалисту в данной области техники должно быть легко понятно из последующего обсуждения, что альтернативные варианты осуществления структур и способов, изображенных в данном документе, могут использоваться без отступления от принципов действия настоящего изобретения, описанного в данном документе.
ОУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
АРХИТЕКТУРА СИСТЕМЫ
[0012] На Фиг. 1 показана высокоуровневая блок-схема окружения для размещения и просмотра видеороликов, согласно одному варианту осуществления. На Фиг. 1 показана система 100 размещения видеороликов и клиентское устройство 120, соединенное с сетью 140. Клиентское устройство 120 представляет собой объект, который может осуществлять доступ к видеороликам, содержащимся внутри системы 100 размещения видеороликов. Пользователь клиентского устройства 120 может осуществлять доступ к видеоролику из системы 100 размещения видеороликов посредством просмотра каталога видеороликов, проведения поисков с использованием ключевых слов, просматривания списков воспроизведения у других пользователей или системного администратора (например, коллекции видеороликов, образующих каналы), или просмотра видеороликов, относящихся к конкретным группам пользователей (например, сообществам). Дополнительно, в некоторых вариантах осуществления, система 100 размещения видеороликов выполнена с возможностью приема видеороликов для хранения с целью предоставления возможности предоставление в совместное пользование видеороликов с другими пользователями.
[0013] В одном варианте осуществления, пользователь клиентского устройства 120 использует клиентское устройство для осуществления связи с системой 100 размещения видеороликов по сети 140. В одном варианте осуществления клиентское устройство 120 является персональным компьютером, на котором запущен веб-браузер 122, такой как MICROSOFT INTERNET EXPLORER или GOOGLE CHROME, который предоставляет пользователю возможность просматривать веб-страницы и видеоролики, предоставляемые системой 100 размещения видеороликов. В одном варианте осуществления веб-браузер 122 включает в себя видеопроигрыватель (например, Flash™ от Adobe Systems, Inc.). Клиентское устройство 120 может альтернативно быть устройством, таким как смартфон, планшет, телевизор, «телевизионная абонентская приставка» или чем-либо им подобным. Несмотря на то, что на Фиг. 1 показано только одно клиентское устройство 120, следует понимать, что, много клиентских устройств (например, миллион) могут осуществлять связь с системой 100 размещения видеороликов в любое время. Одно клиентское устройство 120 изображено для упрощения и ясности настоящего описания.
[0014] Сеть 140 представляет собой тракты связи между клиентским устройством 120 и системой 100 размещения видеороликов.
В одном варианте осуществления сеть 140 является Интернетом, но может также быть любой сетью, включающей в себя, но не ограничиваясь этим, LAN, MAN, WAN, мобильной, проводной или беспроводной сетью, сетью облачных вычислений, частной сетью или виртуальной частной сетью, и любым их сочетанием. Кроме того, все или некоторые из линий связи могут быть зашифрованы с использованием традиционных технологий шифрования, таких как уровень защищенных сокетов (SSL), Защищенный HTTP и/или виртуальные частные сети (VPN). В другом варианте осуществления объекты могут использовать подстроенные под пользователей и/или специализированные технологии передачи данных вместо, или в дополнение к, описанным выше.
[0015] Система 100 размещения видеороликов представляет собой любую систему, которая предоставляет пользователям возможность осуществления доступа к содержимому видеороликов через интерфейсы поиска и/или просмотра. Видеоролики могут быть получены из пользовательских выгрузок видеороликов, из поисков или обходов других веб-страничек или баз данных видеороликов, или чего-либо им подобного, или любого их сочетания. Например, в одном варианте осуществления система 100 размещения видеороликов может быть выполнена для предоставления возможности пользовательских выгрузок содержимого; в другом варианте осуществления система 100 размещения видеороликов может быть выполнена с возможностью только получения видеороликов из других источников посредством обхода таких источников или осуществления поиска по таким источникам в реальном времени.
[0016] Подходящей системой 100 размещения видеороликов для варианта реализации системы является веб-страничка YOUTUBE™; также известны и другие веб-странички размещения видеороликов и могут быть выполнены с возможностью функционирования согласно замыслам, раскрытым в данном документе. Следует понимать, что термин «веб-страничка» представляет собой любую вычислительную систему, выполненную с возможностью обслуживания содержимого с использованием любых протоколов межсетевого взаимодействия, и не предназначенную ограничиваться загрузкой или выгрузкой содержимого через Интернет или протокол HTTP. В целом, функции, описанные в одном варианте осуществления, выполняемые на стороне сервера, могут также быть выполнены на стороне клиента в других вариантах осуществления по необходимости. Кроме того, функциональность, присущая конкретному компоненту, может быть выполнена другим или множеством компонентов, функционирующим совместно.
[0017] Система 100 размещения видеороликов содержит фронтальный сервер 104, сервер 106 приемки, сервер 108 поиска видеороликов, сервер 112 доступа к видеороликам, модуль 113 пользовательского интерфейса для видеоролика, хранилище 114 видеоданных и модуль 118 адаптации пользовательского интерфейса. Многие традиционные функциональные средства, такие как межсетевые экраны, выравниватели нагрузки, серверы приложений, отказоустойчивые серверы, инструменты управления страничкой и т.д., не изображены, чтобы не загромождать функциональные средства системы.
[0018] Фронтальный сервер 104 обрабатывает всю связь с пользователем через сеть 140. Фронтальный сервер 104 принимает запросы от клиентских устройств 120 и осуществляет связь с другими серверами системы 100 размещения видеороликов для обработки запросов. Фронтальный сервер 104 дополнительно выполнен с возможностью слежения за взаимодействиями пользователя с системой 100 размещения видеороликов. Например, если пользователь нажимает на веб-страницу, просматривает видеоролик, совершает покупку, открывает документ, заполняет сетевую форму, то фронтальный сервер 104 отслеживает эти взаимодействия. Фронтальный сервер 104 может быть дополнительно выполнен с возможностью передачи и представления запрашиваемого видеоролика и ссылок на связанные видеоролики пользователю на веб-странице. Запрашиваемый видеоролик передается потоком фронтальным сервером 104 пользователю. Одна или более ссылок на связанные видеоролики появляются на веб-странице, где происходит воспроизведение запрашиваемого видеоролика, так что ссылка на связанный видеоролик может быть выбрана пользователем клиентского устройства 120 для просмотра связанного видеоролика.
[0019] Любое содержимое, принятое через сеть 140 от пользователя для публикации в системе 100 размещения видеороликов, передается серверу 106 приемки для обработки. Обработка видеофайла включает в себя назначение идентификационного номера недавно принятому видеофайлу. Другие этапы обработки видеофайла могут включать в себя форматирование (например, перекодирование), сжатие, разметку метаданных, анализ содержимого и/или другие способы обработки данных. Пользователь передает некоторую форму наряду с видеофайлом, переданным в систему 100 размещения видеороликов. Пользователь может включать в такой форме информацию, которая описывает видеоролик (например, заголовок, описание и разметочная информация). Информация формы может также включать в себя указание типа медиасодержимого, который для выгружаемых видеороликов всегда будет типом «видео». Сервер 106 приемки сохраняет обработанный видеофайл в хранилище 114 видеоданных и сохраняет информацию, включенную в форме в качестве метаданных видеофайла. Хранилище 114 видеоданных является системой хранения, где хранятся видеофайлы, переданные в систему 100 размещения видеороликов. Видеоролик может снабжаться пиктограммами или миниатюрными просмотрами, связанными метаданными, такими как заголовок, автор, метки, описание, комментарии и оценка.
[0020] Сервер 108 поиска видеороликов обрабатывает любой поисковый запрос, принятый фронтальным сервером 104 от пользователя. Поисковый запрос, переданный пользователем на фронтальный сервер 104, включает в себя условия поиска, такие как ключевые слова, которые могут идентифицировать видеоролики, которыми пользователь интересуется при просмотре. Например, поисковый запрос может быть текстовой строкой «Мачу-Пикчу». Сервер 108 поиска видеороликов может использовать условия поиска, например, чтобы запросить метаданные и/или объекты, относящиеся ко всем видеофайлам, хранящимся в хранилище 114 видеоданных, или запросить хранилище 118 данных объектов. Результатами поиска являются видеоролики, включающая в себя объекты, которые соответствует поисковому запросу. Например, результаты поиска для поискового запроса «Мачу-Пикчу» включают в себя видеоролики, снабженные примечаниями объект «Мачу-Пикчу», которые соответствуют поисковому запросу. Результаты поиска от запросов передаются на фронтальный сервер 104 так, чтобы результаты поиска могли быть представлены пользователю.
[0021] Сервер 112 доступа к видеороликам принимает, от фронтального сервера 104, запросы от пользователей, которые желают просмотреть (или воспроизвести) конкретный видеоролик. С точки зрения пользователя пользователь может предоставить запрос на видеоролик через просмотр (перебирание) различных категории видеороликов системы 100 размещения видеороликов или через нажатие на ссылку к видеоролику с веб-страницы результатов поиска. Запрос, переданный пользователем, может включать в себя идентификационный номер видеоролика, который пользователь желает посмотреть (который может включаться автоматически, как только пользователь нажимает на ссылку к видеоролику). Сервер 112 доступа к видеороликам использует идентификационный номер для поиска и определения местоположения, в котором хранится видеоролик в хранилище 114 видеоданных. Сервер 112 доступа к видеороликам предоставляет видеоролик, который запрошен у фронтального сервера 104.
[0022] Система 102 размещения видеороликов включает в себя модуль 113 пользовательского интерфейса для видеоролика, который представляет видеоролик пользователю в качестве части пользовательского интерфейса. Точный пользовательский интерфейс, предоставляемый модулем 113 пользовательского интерфейса для видеоролика, может изменяться в различных вариантах осуществления, и в одном и том же варианте осуществления могут быть доступными различные типы пользовательских интерфейсов. Например, на Фиг. 2 показан один типовой пользовательский интерфейс 200, подходящий для отображения видеоролика на мобильном устройстве, согласно одному варианту осуществления. Пользовательский Интерфейс 200 включает в себя область 205 отображения видеоролика, в которой кадры видеоролика отображаются, пока воспроизводится видеоролик; различные средства 210 управления перемещением по видеороликам для перемещения между видеороликами, запуска и остановки воспроизведения текущего видеоролика и т.п.; заголовочный и основной текст 215А и 215В; фоновые участки 220 и т.п. Должно быть понятно, что пользовательский интерфейс, изображенный на Фиг. 2 является всего лишь одним примером пользовательского интерфейса, и что много других, таких как пользовательские интерфейсы, подходящие для веб-браузеров на традиционных экранах настольных и портативных компьютеров, одинаково возможны.
[0023] В одном варианте осуществления система 102 размещения видеороликов дополнительно включает в себя модуль 118 адаптации пользовательского интерфейса, который изменяет появление пользовательского интерфейса для видеопроигрывателя в ответ на содержимое в настоящее время воспроизводимого видеоролика и состояние воспроизведения этого видеоролика. Например, в одном варианте осуществления (описанном более подробно ниже по отношению к Фиг. 3) модуль 118 регулировки пользовательского интерфейса определяет самый представительный цвет - в данном документе называемый «преобладающим» цветом - у каждого из различных кадров содержимого видеоролика и динамически регулирует цвета различных частей пользовательского интерфейса по меньшей мере частично на основе определенного преобладающего цвета. В других вариантах осуществления модуль 118 регулировки пользовательского интерфейса альтернативно и/или дополнительно располагается на клиентском устройстве 120, например, в качестве части подстраиваемого под пользователя приложения видеопроигрывателя, которое взаимодействует с системой 102 размещения видеороликов для получения и воспроизведения видеороликов.
[0024] Следует понимать, что действиям по обработке данных системы 102 размещения видеороликов, как описано в данном документе, по сути требуется запрограммированная вычислительная система для их практической реализации. Для упрощения и прояснения настоящего описания, содержимое, принятое и предоставляемое в совместное пользование системой 100 размещения видеороликов, в целом упоминается в качестве видеороликов, видеофайлов или видео объектов, в качестве подходящих для предназначенных для видеороликов вариантов осуществления, описанных в данном документе, но следует понимать, что система 100 размещения видеороликов может принимать и предоставлять в совместное пользование содержимое любого типа медиасодержимого. Это содержимое может упоминаться в качестве объектов медиасодержимого, мультимедийных объектов или объектов. Таким образом, действия системы 102 размещения видеороликов, описанной в данном документе, могут быть применены к другим типам объектов медиасодержимого, а не только к видеороликам. Например, другой подходящий тип объектов с содержимым включает в себя визуальные документы, из которых может быть извлечен цвет, в частности неподвижные изображения (либо непосредственные изображения, такие как файлы GIF или JPEG, либо преобразованные в изображения, такие как файлы PDF, файлы обработки текста или что-либо им подобное), презентации с множеством слайдов и т.д.
НАЗНАЧЕНИЕ ЦВЕТА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
[0025] На Фиг. 3 показана высокоуровневая блок-схема, изображающая подробный вид модуля 118 адаптации пользовательского интерфейса, согласно одному варианту осуществления. Как показано на Фиг. 3, модуль 118 адаптации пользовательского интерфейса включает в себя несколько модулей. Специалисту в уровне техники должно быть понятно, что в других вариантах осуществления могут быть другие модули в отличие от описанных здесь, и что функциональность может быть распределена среди модулей по-разному. Кроме того, функции, приписанные модулю 118 адаптации пользовательского интерфейса, могут быть выполнены множеством модулей.
[0026] Как изображено, модуль 118 адаптации пользовательского интерфейса включает в себя модуль 305 определения цветовой палитры и модуль 310 появления компонента.
[0027] Модуль 305 определения цветовой палитры формирует палитру цветов, которые дополняют цвета, присутствующие в заданном изображении, таком как кадр видеоролика. В частности, модуль 305 определения цветовой палитры определяет преобладающий цвет заданного изображения (например, кадра видеоролика) и формирует палитру (набор) цветов на основе этого преобладающего цвета. Палитра цветов включает в себя одну или более составляющих подпалитр, которые указывают цвета, подлежащие применению к различным типам компонентов пользовательского интерфейса.
[0028] На Фиг. 4 показана диаграмма потоков данных, изображающая действия модуля 305 определения цветовой палитры, согласно одному варианту осуществления. В частности, на Фиг. 4 изображен вариант осуществления, в котором формируются три разновидности преобладающего цвета, и одна или более подпалитр в свою очередь формируются для каждой из этих разновидностей, причем каждая подпалитра указывает цвета, подлежащие применению к различным типам компонентов пользовательского интерфейса.
[0029] Модуль 305 определения цветовой палитры принимает видеокадр 405 (или другое изображение) и разбивает 410 пиксели видеокадра. Разбиение пикселей вовлекает разделение цветового пространства на набор разбиений 411, назначение различных пикселей (например, каждого пикселя) видеокадра одному из разбиений. Например, рассматривая 24-битные цвета (например, 8 битов для каждого из тона, насыщенности и значения - либо красной, зеленой, или синей - компоненты), каждый из 224 возможных цветов соотносится с одним из N (например, 1000) отдельных разбиений 411. Затем подсчитывается количество пикселей в каждом разбиении, и преобладающий цвет 416 выбирается из некоторого количества разбиений с большинством пикселей. В одном варианте осуществления преобладающий цвет 416 основан на одном разбиении с большинством пикселей и выбирается посредством усреднения 415 цветов внутри этого разбиения (например, посредством вычисления среднего значения из <R, G, В> или <Н, S, V> компонент пикселей внутри разбиения). В некоторых вариантах осуществления модуль 305 определения цветовой палитры определяет множество преобладающих цветов, например, один для каждого из N разбиений с большинством пикселей посредством усреднения цветов внутри каждого разбиения.
[0030] С помощью преобладающего цвета 416 для выбранного видеокадра 405 модуль 305 определения цветовой палитры формирует 420 разновидности 421 цвета преобладающего цвета, которые могут быть полезными в некоторых контекстах, как это определяется некоторыми факторами, такими как тип экрана, на котором просматривается видеоролик, окружающие условия, в которых смотрится видеоролик, статус воспроизведения видеоролика (воспроизводится ли видеоролик или приостановлен) или что-либо им подобное. В варианте осуществления, изображенном Фиг. 4, формируются три разновидности: главный цвет 421А, темный цвет 421В, и светлый цвет 421С.
[0031] В одном варианте осуществления, модуль 305 определения цветовой палитры формирует 420 разновидности 421 цвета из преобладающего цвета посредством выбора, для каждой разновидности цвета, цвета, который является наиболее схожим с преобладающим цветом из набора возможных разновидностей цвета. Например, в варианте осуществления, изображенном на Фиг. 4, каждый из главного цвета 421А, темного цвета 421В и светлого цвета 421С имеет некоторый связанный набор диапазонов тоновой (Н) компоненты, причем каждый диапазон имеет соответствующий набор пар значений параметров насыщенности (S) и яркости (В). Для формирования разновидности конкретного цвета (например, главный цвет 421А), тоновая компонента преобладающего цвета используется для выбора одного из тоновых диапазонов, соответствующих разновидности цвета, значение компоненты насыщенности регулируется до самого близкого значения параметра насыщенности для выбранного диапазона, и значение яркостной компоненты аналогично регулируется до самого близкого значения параметра яркости для выбранного диапазона. При формировании разновидности цвета эффект состоит в использовании значения тоновой компоненты для регулировки значений компоненты насыщенности и яркостной компоненты. В качестве одного частного примера, главный цвет 421А имеет тоновый диапазон от 31° до 80°, который в свою очередь имеет значения параметра насыщенности равные 15 и 85, и значения параметра яркости равные 50 и 60. Если преобладающий цвет имеет компоненты HSB <56°, 100, 100>, то тоновая компонента 56° выбирает тоновый диапазон 31°-80° (поскольку 56° находятся в диапазоне от 31° до 80°), компонента насыщенности регулируется до 85 (поскольку значение компоненты насыщенности равное 100 ближе к параметру насыщенности равному 85 в отличие от параметра насыщенности равного 15), и яркостная компонента регулируется до 60 (так как значение яркостной компоненты равное 100 ближе к параметру яркости равному 60 в отличие от параметра яркости равного 50). Таким образом, в данном примере применение параметров, соответствующих главному цвету 421А приводит к формированию главного цвета <56°, 85, 60> из преобладающего цвета <56°, 100, 100>. Темный цвет 421В и светлый цвет 421С вычисляются похожими способами с использованием их собственных значений соответствующих параметров.
[0032] С помощью сформированных разновидностей 421 цвета модуль 305 определения цветовой палитры дополнительно формирует 425 набор цветов компонентов UI, соответствующих различным типам компонентов в пользовательском интерфейсе для видеоролика, созданном модулем 113 UI для видеоролика. Например, в варианте осуществления, изображенном на Фиг. 4, присутствует семь цветов компонентов UI, сформированных для каждой из разновидностей 421 цвета: один для каждого из компонента UI «панель навигации», компонента UI «раздел 1», компонента UI «раздел 2», компонента UI «активный навикон», компонента UI «неактивный навикон», компонента UI «пиктограмма и текст заголовка» и компонента UI «основной текст». Обратимся снова к примерному пользовательскому интерфейсу варианта осуществления с Фиг. 2, компонент UI «панель навигации» соответствует фону 220А; компонент UI «раздел 1» соответствует фону 220В; компонент UI «раздел 2» соответствует фону 220С; компонент UI «активный навикон» соответствует компоненту 210D (исходя из предположения, что он является компонентом, отражающим текущий статус видеоролика, в частности «Воспроизведение»); компонент UI «неактивный навикон» соответствует компонентам 210А-210С (исходя из предположения, что, они не отражают текущий статус видеоролика); компонент UI «пиктограмма и текст заголовка» соответствует тексту 215А; и компонент UI «основной текст» соответствует тексту 215В.
[0033] В одном варианте осуществления, модуль 305 определения цветовой палитры формирует 425 цвета 426 компонентов пользовательского интерфейса для заданной разновидности 421 цвета посредством выбора, для каждого типа компонента пользовательского интерфейса, цвета, который является наиболее схожим с разновидностью цвета из набора возможных цветов компонентов пользовательского интерфейса для такого типа компонента пользовательского интерфейса. Например, в варианте осуществления, изображенном на Фиг. 4, каждый компонент 430 пользовательского интерфейса (например, компонент панели навигации) имеет некоторый набор диапазонов компоненты насыщенности (S), причем каждый диапазон имеет соответствующий набор значений параметра яркости (В). Для образования цвета конкретного компонента пользовательского интерфейса (например, цвета для панели навигации), компонента насыщенности разновидности цвета используется для выбора одного из диапазонов насыщенности, соответствующих разновидности цвета, и значение яркостной компоненты регулируется до самого близкого значения параметра яркости для выбранного диапазона насыщенности. При формировании цвета типа пользовательского интерфейса эффект состоит в использовании значения компоненты насыщенности для регулировки значения яркостной компоненты. В качестве одного частного примера тип компонента пользовательского интерфейса «панель навигации» имеет диапазон насыщенности от 15 до 85, который в свою очередь имеет соответствующие значения параметра яркости равные 45, 50 и 55. Как приведено в примере выше разновидности главного цвета с компонентами HSB <56°, 85, 60>, компонента насыщенности равная 85 выбирает диапазон насыщенности в 15-85 (так как компонента насыщенности 85 находятся в диапазоне от 15 до 85), и яркостная компонента регулируется до 55 (так как значение яркостной компоненты равное 55 ближе к параметру яркости равному 60 в отличие от других параметров яркости равных 45 или 50). Таким образом, в данном примере применение параметров, соответствующих типу компонента пользовательского интерфейса «панель навигации», приводит к формированию цвета компонентов <56°, 85, 55>из разновидности главного цвета <56°, 85, 60>. У других типы 430 компонентов пользовательского интерфейса их цвета вычислены похожими способами с использованием их собственных значений соответствующих параметров.
[0034] Как показано на Фиг. 3, модуль 118 адаптации пользовательского интерфейса включает в себя модуль 310 появления компонента, который использует модуль 305 определения цветовой палитры для формирования цветовой палитры для конкретного изображения (например, кадра видеоролика) и устанавливает компонентам пользовательского интерфейса модуля 113 пользовательского интерфейса для видеоролика цвета сформированной палитры. Например, как приведено в примере с Фиг. 2 и 4, модуль 310 появления компонента устанавливает цвет фона 220А в цвет для компонента пользовательского интерфейса «панель навигации», цвет текста 215В в цвет для компонента пользовательского интерфейса «основной текст», и т.д.
[0035] В случае видеоролика (в противоположность неподвижному изображению) модуль 310 появления компонента многократно использует модуль 305 определения цветовой палитры на различных кадрах видеоролика для того, чтобы постоянно регулировать цвета компонентов пользовательского интерфейса, пока воспроизводится видеоролик.
[0036] Например, в одном варианте осуществления, изображенном на Фиг. 5, модуль 310 появления компонента использует модуль 305 определения цветовой палитры в фиксированных интервалах (например, каждые N кадров, или кадры для каждых t секунд), в каждом кадре выбирая цвет, соответствующий этому кадру и устанавливая цвета компонентов пользовательского интерфейса соответственно. Это предоставляет возможность появлению пользовательского интерфейса изменяться в течение времени наряду с содержимым, отображаемым в видеокадрах.
[0037] В одном варианте осуществления, для достижения более гладких цветовых переходов модуль 310 появления компонента смешивает преобладающие цветов на протяжении времени, в частности посредством линейной интерполяции. То есть ко времени t модуль 310 появления компонента вычислил не только цвета для кадров, соответствующих t, но также и цвета для кадров, соответствующих следующему интервалу (во время t+k). В каждом из некоторых более малых интервалов (например, каждое обновление изображения) модуль 310 появления компонента определяет то, где соответствующий кадр находится по сравнению с «текущим» кадром (кадром, соответствующим времени t) и кадром в следующем интервале (кадром, соответствующим времени t+k). То есть, если один из цветов, вычисленных для времени ti, является ci, и соответствующий один из цветов для следующего времени (ti+k) является ci+1, и время, в которое вычисляется интерполированный цвет, является tr, то соответствующий интерполированный цвет cr определяется уравнением cr=((tr-ti)/k*ci)+((ti+1-tr)/k*ci). (Произведение скаляра и цвета является массивом компонент цвета, отмасштабированным на скаляр.) Например, как изображено на Фиг. 5, если бы конкретное обновление изображения возникало во время tr=0,7k, то соответствующий интерполированный цвет cr был бы cr=(0,7/k*ci)+(0,3/k*ci+1).
[0038] В одном варианте осуществления при смешивании цветов в текущем кадре (например, при каждом обновлении изображения) модуль 310 появления компонента получает главные N преобладающих цветов от модуля 305 определения цветовой палитры, для некоторого целого числа N (например, N=5), и выбирает, в качестве преобладающего цвета следующего интервала (для кадра во время t+k), один из этих преобладающих цветов, который является наиболее схожим с текущим преобладающим цветом (для кадра во время t). Модуль 310 появления компонента затем смешивает текущий преобладающий цвет с этим наиболее схожим преобладающим цветом. Смешивание с наиболее схожим преобладающим цветом помогает предотвратить резкие цветовые изменения, которые могут казаться мешающими пользователю.
[0039] В одном варианте осуществления, когда к видеоролику впервые осуществляет доступ пользователь, модуль 310 появления компонента выполняет первое определение преобладающего цвета (то есть определение для t=0) на основе кэшированной миниатюры для видеоролика, при ее наличии. Это предоставляет возможность осуществления определения первого цвета - и компонентов пользовательского интерфейса, подлежащих окраске соответственно - по существу сразу, а не ожидая периода, необходимого для начала потоковой передачи видеоролика (например, несколько сотен миллисекунд). В ситуациях, при которых не возможно пересчитывать преобладающий цвет по множеству интервалам, одиночный преобладающий цвет, извлеченный из кэшированной миниатюры, может использоваться по всему видеоролику, несмотря на то, что это не будет обеспечивать оптимального согласования цветов компонентов пользовательского интерфейса с содержимым видеоролика.
[0040] В одном варианте осуществления модуль 310 появления компонента устанавливает цвета компонентов пользовательского интерфейса на основе цветов, сформированных из кадров с использованием модуля 305 определения цветовой палитры, а также на основе состояния воспроизведения видеоролика. Например, если происходит воспроизведение видеоролика, то может быть эстетически приятно пользователю преуменьшить компоненты пользовательского интерфейса, чтобы они не конкурировали визуально с воспроизводимым видеороликом. Наоборот, если видеоролик приостановлен или иным образом не воспроизводится, то компоненты пользовательского интерфейса могут быть более выделены. В некоторых вариантах осуществления другие факторы - такие как степень рассеянного света, определенного аппаратным обеспечением светочувствительного датчика клиентского устройства 120, или свойства экрана клиентского устройства (например, размер, степень отражательной способности экрана) - могут также влиять на выбор цветов для использования.
[0041] Например, в одном варианте осуществления состояние воспроизведения видеоролика определяет то, какая разновидность цвета используется с использованием темного цвета 421В, когда видеоролик не воспроизводится, и с использованием главного цвета 421А, в противном случае. Например, когда видеоролик воспроизводится, то фону 220А устанавливается цвет, сформированный для компонента пользовательского интерфейса «панель навигации» внутри подпалитры, сформированной для темного цвета 421В; если пользователь приостанавливает видеоролик, то фону 220А может быть установлен цвет, сформированный для компонента пользовательского интерфейса «панель навигации» внутри подпалитры, сформированной для главного цвета 421А.
ДРУГИЕ ФАКТОРЫ, КОТОРЫЕ НЕОБХОДИМО УЧИТЫВАТЬ
[0002] Ссылка в описании на «один вариант осуществления» или на «вариант осуществления» означает, что конкретный признак, структура или характеристика, описанные совместно с этими вариантами осуществления, включены по меньшей мере в один вариант осуществления. Появления фразы «в одном варианте осуществления» в различных местах в описании не обязательно всегда ссылаются на один и тот же вариант осуществления.
[0003] Следует отметить, что этапы и инструкции процесса воплощаются в программном обеспечении, встроенном микропрограммном обеспечении или аппаратном обеспечении, и при воплощении в программном обеспечении, могут быть загружены для нахождения на различных используемых множеством операционных систем платформах и могут быть задействованы с них.
[0004] Этапы в данном документе могут также быть выполнены устройством. Кроме того, компьютеры, упоминаемые в описании, могут включать в себя одиночный процессор или могут быть архитектурами, использующими многопроцессорные решения для увеличения вычислительных возможностей. Следует понимать, что множество языков программирования может использоваться для реализации замыслов настоящего изобретения, описанных в данном документе, и любые ссылки ниже на конкретные языки приводятся для раскрытия реализации возможностей и лучшего варианта воплощения настоящего изобретения.
[0005] Несмотря на то, что изобретение было в частности изображено и описано со ссылкой на предпочтительный вариант осуществления и несколько альтернативных вариантов осуществления, специалистами в связанном уровне техники следует понимать, что различные изменения в форме и подробностях могут быть произведены без отступления от сущности и объема изобретения.
[0006] Наконец, следует отметить, что язык, используемый в описании, был преимущественно выбран в целях читаемости и пояснения, а, возможно, не выбирался для очерчивания или ограничения объекта изобретения. Соответственно, раскрытие настоящего изобретения подразумевается иллюстративным, а не ограничивающим, для объема настоящего изобретения, которое изложено в последующей формуле изобретения.