KR20180055925A - 비디오 플레이어의 사용자 인터페이스 컴포넌트들에 대한 동적 컬러 결정 - Google Patents

비디오 플레이어의 사용자 인터페이스 컴포넌트들에 대한 동적 컬러 결정 Download PDF

Info

Publication number
KR20180055925A
KR20180055925A KR1020187013736A KR20187013736A KR20180055925A KR 20180055925 A KR20180055925 A KR 20180055925A KR 1020187013736 A KR1020187013736 A KR 1020187013736A KR 20187013736 A KR20187013736 A KR 20187013736A KR 20180055925 A KR20180055925 A KR 20180055925A
Authority
KR
South Korea
Prior art keywords
color
user interface
video
colors
frame
Prior art date
Application number
KR1020187013736A
Other languages
English (en)
Other versions
KR101955174B1 (ko
Inventor
은주 이
니콜라스 마이클 크루게
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20180055925A publication Critical patent/KR20180055925A/ko
Application granted granted Critical
Publication of KR101955174B1 publication Critical patent/KR101955174B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4854End-user interface for client configuration for modifying image parameters, e.g. image brightness, contrast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/026Control of mixing and/or overlay of colours in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/62Semi-transparency
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0613The adjustment depending on the type of the information to be displayed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0666Adjustment of display parameters for control of colour parameters, e.g. colour temperature
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0686Adjustment of display parameters with two or more screen areas displaying information with different brightness or colours
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/08Arrangements within a display terminal for setting, manually or automatically, display parameters of the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

사용자 인터페이스 적응 모듈이 비디오의 프레임의 우세 컬러를 식별하고, 우세 컬러에 기초하여, 비디오가 디스플레이되는 사용자 인터페이스의 컴포넌트들에 대한 컬러들을 생성한다. 사용자 인터페이스 컴포넌트들의 컬러들은 생성된 컬러들에, 그리고 비디오의 재생 상태와 같은 콘텍스트 정보에 기초하여 설정된다. 이러한 방식에서의 컴포넌트 컬러들의 설정은 사용자 인터페이스가 비디오의 재생되는 콘텐츠 및 비디오의 콘텍스트 둘 다를 보완하도록 조정하는 것을 허용한다. 하나의 실시예에서, 우세 컬러는 그들의 각각의 컬러들에 기초하여 프레임의 개별 화소들을 파티셔닝함으로써 식별된다. 하나의 실시예에서, 기본 컬러 변형체들의 세트가 우세 컬러에 기초하여 생성되고, 상이한 컬러들이 상이한 기본 컬러 변형체들에 기초하여 사용자 인터페이스 컴포넌트의 각각의 유형에 대해 생성된다.

Description

비디오 플레이어의 사용자 인터페이스 컴포넌트들에 대한 동적 컬러 결정
개시된 실시예들은 대체로 소프트웨어 애플리케이션 사용자 인터페이스들을 위한 컴퓨터 구현 방법들에 관한 것이고, 더 상세하게는, 비디오 플레이어에 디스플레이되는 비디오의 콘텐츠에 기초하여 비디오 플레이어 사용자 인터페이스 내의 사용자 인터페이스 컴포넌트들의 컬러들을 결정하는 것에 관한 것이다.
소프트웨어 애플리케이션들의 사용자 인터페이스들이 통상적으로 상대적으로 정적이며, 현재 디스플레이되고 있는 콘텐츠에 응답한 상당한 변경들 없이, 아마도 자신들의 레이아웃들을 윈도우 리사이즈들에 응답하여 변경시킨다. 이는 비디오의 시각적 프레젠테이션 ―비디오 자체에 연관하여 디스플레이되는 임의의 사용자 인터페이스 컴포넌트들을 포함함― 이 사용자의 관람 경험에 상당히 영향을 미칠 수 있는 비디오 플레이어 애플리케이션들에 대해 특히 문제가 있다. 예를 들어, 산만하게 밝은 사용자 인터페이스 컴포넌트들은, 비디오의 콘텐츠와 미적으로 "충돌"하는 컬러들을 갖는 사용자 인터페이스 컴포넌트들이 그럴 수 있는 것처럼, 비디오 자체의 관람을 방해할 수 있다.
하나의 실시예에서, 재생하고 있는 비디오를 보완하도록 비디오 플레이어의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하기 위한 컴퓨터 구현 방법이, 비디오의 복수의 프레임들을 식별하는 단계를 포함한다. 식별된 프레임들 중 각각의 프레임에 대해, 다수의 동작들이 수행된다. 그 동작들은, 프레임의 화소들의 컬러들을 복수의 컬러 파티션들로 파티셔닝하는 것, 프레임의 화소들의 최대 수를 갖는 컬러 파티션을 식별하는 것, 및 식별된 컬러 파티션의 화소들을 평균화하는 것에 의해 프레임의 우세 컬러(dominant color)를 식별하는 동작을 포함한다. 그 동작들은, 우세 컬러의 컬러 성분들에 컬러 파라미터들을 적용함으로써 우세 컬러에 기초하여 복수의 컬러 변형체들을 생성하는 동작과, 컬러 변형체들 중 각각의 컬러 변형체에 대해 그리고 복수의 사용자 인터페이스 컴포넌트 유형들 중 각각의 사용자 인터페이스 컴포넌트 유형에 대해, 사용자 인터페이스 컴포넌트 컬러를 생성하는 동작을 더 포함한다. 그 방법은 비디오의 재생 상태, 식별된 프레임들 중 비디오에서의 현재 재생 지점 전의 현재 식별된 프레임, 및 식별된 프레임들 중 비디오에서의 현재 재생 지점 후의 다음 식별된 프레임을 식별하는 동작을 포함한다. 그 방법은, 재생 상태에, 그리고 현재 식별된 프레임에 대해 생성된 사용자 인터페이스 컴포넌트 컬러들에 기초하여 제1 사용자 인터페이스 컴포넌트 컬러들을, 그리고 재생 상태에, 그리고 다음 식별된 프레임에 대해 생성된 사용자 인터페이스 컴포넌트 컬러들에 기초하여 제2 사용자 인터페이스 컴포넌트 컬러들을 또한 식별한다. 그 방법은 식별된 제1 사용자 인터페이스 컴포넌트 컬러들에, 그리고 식별된 제2 사용자 인터페이스 컴포넌트 컬러들에 기초하여 비디오 플레이어의 사용자 인터페이스 컴포넌트들의 컬러들을 설정한다.
하나의 실시예에서, 컴퓨터 구현 방법이, 비디오의 프레임의 우세 컬러를 식별하는 단계; 우세 컬러에 기초하여 복수의 컬러 변형체들을 생성하는 단계; 비디오의 재생 상태를 식별하는 단계; 재생 상태에 기초하여 컬러 변형체들 중 하나의 컬러 변형체를 선택하는 단계; 및 선택된 컬러 변형체에 기초하여 비디오 사용자 인터페이스의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하는 단계를 포함한다.
하나의 실시예에서, 비일시적 컴퓨터 판독가능 저장 매체가 프로세서에 의해 실행 가능한 명령들을 저장한다. 그 명령들은 비디오의 프레임의 우세 컬러를 식별하기 위한 명령들; 우세 컬러에 기초하여 복수의 컬러 변형체들을 생성하기 위한 명령들; 비디오의 재생 상태를 식별하기 위한 명령들; 재생 상태에 기초하여 컬러 변형체들 중 하나의 컬러 변형체를 선택하기 위한 명령들; 및 선택된 컬러 변형체에 기초하여 비디오 사용자 인터페이스의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하기 위한 명령들을 포함한다.
이 발명의 요약 및 다음의 상세한 설명에서의 특징들 및 장점들은 모두 포함되는 것은 아니다. 많은 추가적인 특징들 및 장점들이 도면들, 명세서, 및 그것의 청구범위에 비추어 본 기술분야의 통상의 기술자에게 명백할 것이다.
도 1은 하나의 실시예에 따른, 비디오 호스팅 및 관람을 위한 환경의 하이 레벨 블록도이다.
도 2는 하나의 실시예에 따른, 모바일 디바이스 상에 비디오를 디스플레이하기에 적절한 하나의 샘플 사용자 인터페이스를 예시한다.
도 3은 하나의 실시예에 따른, 도 1의 사용자 인터페이스 적응 모듈의 상세한 뷰를 예시하는 하이 레벨 블록도이다.
도 4는 하나의 실시예에 따른, 컬러 팔레트 결정 모듈의 액션들을 예시하는 데이터 흐름도이다.
도 5는 일 실시예에 따른, 프레임들의 세트에 대한 컬러 팔레트들의 생성 및 사용자 인터페이스 컴포넌트 컬러 보간을 예시한다.
그 도면들은 본 발명의 다양한 실시예들을 예시만을 목적으로 묘사한다. 본 기술분야의 통상의 기술자는 본 명세서에서 설명되는 구조들 및 방법들의 대체 실시예들이 본 명세서에서 설명되는 본 발명의 원리들로부터 벗어남 없이 채용될 수 있다는 것을 다음의 논의로부터 쉽사리 인식할 것이다.
시스템 아키텍처
도 1은 하나의 실시예에 따른, 비디오 호스팅 및 관람을 위한 환경의 하이 레벨 블록도이다. 도 1은 네트워크(140)에 의해 접속되는 비디오 호스팅 시스템(100) 및 클라이언트 디바이스(120)를 예시한다. 클라이언트 디바이스(120)는 비디오 호스팅 시스템(100) 내에 포함된 비디오들에 액세스할 수 있는 엔티티를 나타낸다. 클라이언트 디바이스(120)의 사용자가, 비디오들의 카탈로그를 브라우징하거나, 키워드들을 사용한 검색들을 수행하거나, 다른 사용자들 또는 시스템 관리자로부터의 재생 리스트들(예컨대, 채널들을 형성하는 비디오들의 컬렉션들)을 검토하거나, 또는 특정 사용자 그룹들(예컨대, 커뮤니티들)에 연관된 비디오들을 관람함으로써 비디오 호스팅 시스템(100)으로부터의 비디오에 액세스할 수 있다. 덧붙여, 일부 실시예들에서, 비디오 호스팅 시스템(100)은 다른 사용자들과의 비디오들의 공유를 가능하게 하기 위하여 저장을 위한 비디오들을 수신하도록 적응된다.
하나의 실시예에서, 클라이언트 디바이스(120)의 사용자가 네트워크(140)를 통해 비디오 호스팅 시스템(100)과 통신하는 클라이언트 디바이스를 사용한다. 하나의 실시예에서, 클라이언트 디바이스(120)는 사용자가 비디오 호스팅 시스템(100)에 의해 제공되는 웹 페이지들 및 비디오들을 보는 것을 허용하는 마이크로소프트 인터넷 익스플로러(MICROSOFT INTERNET EXPLORER) 또는 구글 크롬(GOOGLE CHROME)과 같은 웹 브라우저(122)를 실행하는 퍼스널 컴퓨터이다. 하나의 실시예에서, 웹 브라우저(122)는 비디오 플레이어(예컨대, 어도비 시스템즈, 아이앤씨(Adobe Systems, Inc.)로부터의 Flash™)를 포함한다. 클라이언트 디바이스(120)는 대안적으로 스마트 폰, 태블릿, 텔레비전, 텔레비전 "셋톱 박스" 등과 같은 디바이스일 수 있다. 비록 도 1이 단일 클라이언트 디바이스(120)만을 예시하지만, 많은 (예컨대, 수백만의) 클라이언트 디바이스들이 임의의 시간에 비디오 호스팅 시스템(100)과 통신할 수 있다는 것이 이해되어야 한다. 단일 클라이언트 디바이스(120)는 본 명세서를 단순화하고 명료화하기 위하여 예시된다.
네트워크(140)는 클라이언트 디바이스(120)와 비디오 호스팅 시스템(100) 사이의 통신 경로들을 나타낸다. 하나의 실시예에서, 네트워크(140)는 인터넷이지만, 또한, 비제한적으로 LAN, MAN, WAN, 모바일, 유선 또는 무선 네트워크, 클라우드 컴퓨팅 네트워크, 사설 네트워크, 또는 가상 사설 네트워크, 그리고 그것들의 임의의 조합을 비제한적으로 포함하는 임의의 네트워크일 수 있다. 덧붙여서, 링크들의 전부 또는 일부는 보안 소켓 계층(secure sockets layer)(SSL), 보안 HTTP 및/또는 가상 사설 네트워크들(virtual private networks)(VPN들)과 같은 기존의 암호화 기술들을 사용하여 암호화될 수 있다. 다른 실시예에서, 엔티티들은 위에서 설명된 것들 대신, 또는 그것들에 더하여 주문형 및/또는 전용 데이터 통신 기술들을 사용할 수 있다.
비디오 호스팅 시스템(100)은 사용자들이 검색 및/또는 브라우징 인터페이스들을 통해 비디오 콘텐츠에 액세스하는 것을 허용하는 임의의 시스템을 나타낸다. 비디오들은 비디오들의 사용자 업로드들로부터, 비디오들의 다른 웹사이트들 또는 데이터베이스들의 검색들 또는 크롤들(crawls) 등으로부터, 또는 그것들의 임의의 조합으로부터 획득될 수 있다. 예를 들어, 하나의 실시예에서 비디오 호스팅 시스템(100)이 콘텐츠의 사용자 업로드들을 허용하도록 구성될 수 있으며; 다른 실시예에서 비디오 호스팅 시스템(100)은 이러한 소스들을 크롤링하거나 또는 이러한 소스들을 실시간으로 검색함으로써 다른 소스들로부터의 비디오들만을 획득하도록 구성될 수 있다.
시스템의 구현을 위한 적합한 비디오 호스팅 시스템(100)이 YOUTUBE™ 웹사이트이며; 다른 비디오 호스팅 웹사이트들이 또한 공지되어 있고, 본 명세서에서 개시되는 교시에 따라 동작하도록 적응될 수 있다. "웹사이트"라는 용어는 임의의 인터네트워킹 프로토콜들을 사용하여 콘텐츠를 서빙하도록 적응되는 임의의 컴퓨터 시스템을 나타내지만, 인터넷 또는 HTTP 프로토콜을 통해 업로드되거나 또는 다운로드되는 콘텐츠로 제한되도록 의도되지 않음이 이해될 것이다. 대체로, 서버 측에서 수행되고 있는 것으로서 하나의 실시예에서 설명되는 기능들은 적절하다면 다른 실시예들에서 클라이언트 측에서 또한 수행될 수 있다. 덧붙여서, 특정 컴포넌트에 기인한 기능은 함께 동작하는 상이한 또는 다수의 컴포넌트들에 의해 수행될 수 있다.
비디오 호스팅 시스템(100)은 프런트 엔드 서버(104), 인제스트(ingest) 서버(106), 비디오 검색 서버(108), 비디오 액세스 서버(112), 비디오 사용자 인터페이스 모듈(113), 비디오 데이터 저장소(114), 및 사용자 인터페이스 적응 모듈(118)을 포함한다. 많은 기존의 특징들, 이를테면 방화벽들, 로드 밸런서들, 애플리케이션 서버들, 장애극복(failover) 서버들, 사이트 관리 도구들 등이 시스템의 특징들을 모호하게 하지 않기 위해서 도시되지 않는다.
프런트 엔드 서버(104)는 네트워크(140)를 통한 사용자와의 모든 통신을 핸들링한다. 프런트 엔드 서버(104)는 클라이언트 디바이스들(120)로부터 요청들을 수신하고 그 요청들을 프로세싱하기 위하여 비디오 호스팅 시스템(100)의 다른 서버들과 통신한다. 프런트 엔드 서버(104)는 비디오 호스팅 시스템(100)과의 사용자 상호작용들을 모니터링하도록 추가로 구성된다. 예를 들어, 사용자가 웹 페이지를 클릭하며, 비디오를 관람하며, 구매하며, 문서를 열며, 웹 기반 양식(web-based form)을 채우면, 프런트 엔드 서버(104)는 이들 상호작용들을 모니터링한다. 프런트 엔드 서버(104)는 요청된 비디오 및 관련된 비디오 링크들을 사용자에게 웹페이지 상에서 송신 및 제시하도록 추가로 구성될 수 있다. 요청된 비디오는 프런트 엔드 서버(104)에 의해 사용자에게 스트리밍된다. 하나 이상의 관련된 비디오 링크들은 요청된 비디오가 재생되고 있는 웹페이지 상에 나타나서, 관련된 비디오 링크는 클라이언트 디바이스(120)의 사용자에 의해 관련된 비디오들을 관람하기 위하여 선택될 수 있다.
비디오 호스팅 시스템(100)에 포스팅하기 위해 사용자로부터 네트워크(140)를 통해 수신된 임의의 콘텐츠는 인제스트 서버(106)에 프로세싱을 위해 전달된다. 비디오 파일의 프로세싱은 식별 번호를 새로이 수신되는 비디오 파일에 배정하는 것을 포함한다. 비디오 파일을 프로세싱하는 다른 단계들은 포맷팅(예컨대, 트랜스코딩), 압축, 메타데이터 태깅, 콘텐츠 분석, 및/또는 다른 데이터 프로세싱 방법들을 포함할 수 있다. 사용자는 비디오 호스팅 시스템(100)에 송신되는 비디오 파일과 함께 양식을 송신한다. 사용자는 그 양식에 비디오를 설명하는 정보(예컨대, 타이틀, 디스크립션, 및 태그 정보)를 포함시킬 수 있다. 양식 정보는 업로드된 비디오들에 대해 항상 "비디오" 유형일 미디어 유형의 표시를 또한 포함할 수 있다. 인제스트 서버(106)는 프로세싱된 비디오 파일을 비디오 데이터 저장소(114)에 저장하고 그 양식에 포함된 정보를 비디오 파일의 메타데이터로서 저장한다. 비디오 데이터 저장소(114)는 비디오 호스팅 시스템(100)으로 송신된 비디오 파일들이 저장되는 저장 시스템이다. 비디오에는 아이콘들 또는 섬네일 뷰들, 연관된 메타데이터, 이를테면 타이틀, 저작자, 태그들, 디스크립션, 주석들, 및 등급이 수반될 수 있다.
비디오 검색 서버(108)는 사용자로부터 프런트 엔드 서버(104)에 의해 수신된 임의의 검색 질의를 프로세싱한다. 사용자에 의해 프런트 엔드 서버(104)로 송신된 검색 질의는 사용자가 관람에 관심이 있는 비디오들을 식별할 수 있는 키워드들과 같은 검색 기준들을 포함한다. 예를 들어, 검색 질의는 텍스트 문자열(textual string) "machu picchu"일 수 있다. 비디오 검색 서버(108)는, 예를 들어, 비디오 데이터 저장소(114)에 저장된 모든 비디오 파일들의 메타데이터 및/또는 그러한 비디오 파일들에 연관된 엔티티들에 질의하기 위해 또는 엔티티 데이터 저장소(118)에 질의하기 위해 검색 기준들을 사용할 수 있다. 검색 결과들은 검색 질의에 일치하는 엔티티들을 포함하는 비디오들이다. 예를 들어, 검색 질의 "machu picchu"에 대한 검색 결과들은 검색 질의에 일치하는 엔티티 "machu picchu"가 주석달기된 비디오 아이템들을 포함한다. 질의로부터의 검색 결과들은 프런트 엔드 서버(104)로 송신되어서, 검색 결과들은 사용자에게 제시될 수 있다.
비디오 액세스 서버(112)는, 프런트 엔드 서버(104)로부터, 특정 비디오를 관람(또는 재생)하기 원하는 사용자들로부터의 요청들을 수신한다. 사용자 관점에서, 사용자가 비디오 호스팅 시스템(100)의 상이한 비디오 범주들을 브라우징함으로써 또는 검색 결과들의 웹페이지로부터 비디오에 대한 링크를 클릭함으로써 비디오에 대한 요청을 제시할 수 있다. 사용자에 의해 송신된 요청은 사용자가 관람하기 원하는 비디오의 식별 번호(이는 일단 사용자가 비디오에 대한 링크를 클릭하면 자동으로 포함될 수 있음)를 포함할 수 있다. 비디오 액세스 서버(112)는 비디오 데이터 저장소(114)에서 비디오가 저장되는 곳을 검색 및 로케이팅하기 위해 식별 번호를 사용한다. 비디오 액세스 서버(112)는 요청된 비디오를 프런트 엔드 서버(104)에 제공한다.
비디오 호스팅 시스템(102)은 사용자에게 사용자 인터페이스의 일부로서 비디오를 제시하는 비디오 사용자 인터페이스 모듈(113)을 포함한다. 비디오 사용자 인터페이스 모듈(113)에 의해 제공되는 정확한 사용자 인터페이스는 상이한 실시예들에서 변할 수 있고, 동일한 실시예가 이용 가능한 상이한 유형들의 사용자 인터페이스들을 만들 수 있다. 예를 들어, 도 2는 하나의 실시예에 따른, 모바일 디바이스 상에 비디오를 디스플레이하기에 적절한 하나의 샘플 사용자 인터페이스(200)를 예시한다. 사용자 인터페이스(200)는 비디오가 디스플레이될 때 비디오의 프레임들이 디스플레이되는 비디오 디스플레이 영역(205); 비디오들 사이를 내비게이션하며, 현재 비디오의 재생을 시작 및 중단하는 등을 하기 위한 다양한 비디오 내비게이션 컨트롤들(210); 제목 및 본문 텍스트(215A 및 215B); 배경 지역들(220) 등을 포함한다. 도 2에 예시된 사용자 인터페이스는 사용자 인터페이스의 단지 하나의 예라는 것과, 전통적인 데스크톱 또는 랩톱 컴퓨터 스크린들 상의 웹 브라우저들에 적합한 사용자 인터페이스들과 같은 많은 다른 것들이 동일하게 가능하다는 것이 이해된다.
하나의 실시예에서, 비디오 호스팅 시스템(102)은 현재 재생하고 있는 비디오의 콘텐츠와 그 비디오의 재생 상태에 응답하여 비디오 플레이어에 대한 사용자 인터페이스의 외관을 수정하는 사용자 인터페이스 적응 모듈(118)을 추가적으로 포함한다. 예를 들어, 하나의 실시예(도 3에 관하여 아래에서 더 상세히 설명됨)에서, 사용자 인터페이스 조정 모듈(118)은 비디오 콘텐츠의 다양한 프레임들의 각각으로부터 가장 대표적인 컬러 ―본 명세서에서 "우세" 컬러라고 지칭됨― 를 결정하고, 결정된 우세 컬러에 적어도 부분적으로 기초하여 사용자 인터페이스의 다양한 부분들의 컬러들을 동적으로 조정한다. 다른 실시예들에서, 사용자 인터페이스 조정 모듈(118)은, 예컨대, 비디오들을 획득하고 재생하기 위해 비디오 호스팅 시스템(102)과 상호작용하는 커스텀 비디오 플레이어 애플리케이션의 일부로서 클라이언트 디바이스(120) 상에 대안적으로 그리고/또는 추가적으로 위치된다.
비디오 호스팅 시스템(102)의 데이터 프로세싱 동작들은, 본 명세서에서 설명되는 바와 같이, 그것들의 실제 구현예를 위한 프로그래밍된 컴퓨터 시스템을 본질적으로 요구한다는 것이 이해되어야 한다. 본 명세서를 단순화하고 명확하게 하기 위해, 비디오 호스팅 시스템(100)에 의해 수신되고 공유되는 콘텐츠는, 본 명세서에서 설명되는 비디오 특정 실시예들에 대해 적절한 대로, 비디오들, 비디오 파일들, 또는 비디오 아이템들이라고 일반적으로 지칭되지만, 비디오 호스팅 시스템(100)은 임의의 미디어 유형의 콘텐츠를 수신하고 공유할 수 있음이 이해되어야 한다. 이 콘텐츠는 미디어 콘텐츠 아이템들, 미디어 아이템들, 또는 아이템들이라고 지칭될 수 있다. 따라서, 본 명세서에서 설명되는 비디오 호스팅 시스템(102)의 동작들은 다른 유형들의 미디어 콘텐츠 아이템들에 적용될 수 있지만, 비디오들에는 적용되지 않을 수 있다. 예를 들어, 다른 적합한 유형의 콘텐츠 아이템들은 정적 이미지들(GIF 또는 JPEG 파일들과 같은 네이티브 이미지들, 또는 PDF 파일들, 워드 프로세싱 파일들과 같은 이미지들로 변환 가능한 것들 중 어느 한 쪽), 멀티-슬라이드 프레젠테이션들 등과 같이 컬러가 추출될 수 있는 시각적 문서들을 포함한다.
사용자 인터페이스 컬러 배정
도 3은 하나의 실시예에 따른, 사용자 인터페이스 적응 모듈(118)의 상세한 뷰를 예시하는 하이 레벨 블록도이다. 도 3에 도시된 바와 같이, 사용자 인터페이스 적응 모듈(118)은 여러 모듈들을 포함한다. 본 기술분야의 숙련된 자들은 다른 실시예들이 본 명세서에서 설명되는 것들과는 상이한 모듈들을 가질 수 있다는 것과, 기능들이 모듈들 중에서 상이한 방식으로 배분될 수 있다는 것을 인식할 것이다. 덧붙여서, 사용자 인터페이스 적응 모듈(118)에 속하는 기능들은 다수의 모듈들에 의해 수행될 수 있다.
예시되는 바와 같이, 사용자 인터페이스 적응 모듈(118)은 컬러 팔레트 결정 모듈(305)과 컴포넌트 외관 모듈(310)을 포함한다.
컬러 팔레트 결정 모듈(305)은 비디오의 프레임과 같은 주어진 이미지에 존재하는 컬러들을 보완하는 컬러들의 팔레트를 생성한다. 더 구체적으로, 컬러 팔레트 결정 모듈(305)은 주어진 이미지(예컨대, 비디오의 프레임)의 우세 컬러를 결정하고 그 우세 컬러에 기초하여 컬러들의 팔레트(세트)를 생성한다. 컬러들의 팔레트는 사용자 인터페이스의 상이한 유형들의 컴포넌트들에 적용할 컬러들을 나타내는 하나 이상의 구성 서브-팔레트들을 포함한다.
도 4는 하나의 실시예에 따른, 컬러 팔레트 결정 모듈(305)의 액션들을 예시하는 데이터 흐름도이다. 구체적으로, 도 4는 우세 컬러의 세 개의 변형체들이 생성되는, 그리고 사용자 인터페이스의 다양한 유형들의 컴포넌트들에 적용할 컬러들을 나타내는 하나 이상의 서브-팔레트들이 이들 변형체들 중 각각의 변형체에 대해 각각의 서브-팔레트가 결국 생성되는 실시예를 예시한다.
컬러 팔레트 결정 모듈(305)은 비디오 프레임(405)(또는 다른 이미지)을 수신하고, 비디오 프레임의 화소들을 파티셔닝한다(410). 화소들을 파티셔닝하는 것은 컬러 공간을 파티션들(411)의 세트로 분할하는 것과, 비디오 프레임의 다양한 화소들(예컨대, 각각의 화소)을 파티션들 중 하나의 파티션에 배정하는 것을 수반한다. 예를 들어, 24-비트 컬러들(예컨대, 색조, 채도, 및 값 ― 또는 적색, 녹색, 및 청색 ― 성분들의 각각에 대해 8 개 비트들)을 배정하면, 224 개의 가능한 컬러들 중 각각의 컬러가 N (예컨대, 1000) 개의 개별 파티션들(411) 중 하나의 파티션에 매핑된다. 각각의 파티션에서의 화소들의 수는 그 다음에 카운팅되고, 우세 컬러(416)는 화소들의 최대 수를 갖는 어떤 수의 파티션들로부터 선택된다. 하나의 실시예에서, 우세 컬러(416)는 화소들의 최대 수를 갖는 단일 파티션에 기초하고, 그 파티션 내의 컬러들을 평균화(415)(예컨대, 파티션 내의 화소들의 <R, G, B> 또는 <H, S, V> 성분들의 평균을 컴퓨팅)함으로써 선택된다. 일부 실시예들에서, 컬러 팔레트 결정 모듈(305)은 각각의 파티션 내의 컬러들을 평균화함으로써, 다수의 우세 컬러들을, 예컨대, 화소들의 최대 수를 갖는, N 개 파티션들 중 각각의 파티션에 대해, 하나씩 결정한다.
선택된 비디오 프레임(405)에 대한 우세 컬러(416)로, 컬러 팔레트 결정 모듈(305)은, 비디오가 시청되고 있는 스크린의 유형, 비디오가 시청되고 있는 환경적 상황, 비디오의 재생 스테이터스(비디오가 재생되고 있는지 또는 일시중지되었는지) 등과 같은 요인들에 의해 결정되는 바와 같이, 특정한 콘텍스트들에서 유용할 수 있는 우세 컬러의 컬러 변형체들(421)을 생성한다(420). 도 4에 예시된 실시예에서, 세 개의 변형체들 즉, 메인 컬러(421A), 어두운 컬러(421B), 및 밝은 컬러(421C)가 생성된다.
하나의 실시예에서, 컬러 팔레트 결정 모듈(305)은, 각각의 컬러 변형체에 대해, 가능한 컬러 변형체들의 세트로부터 우세 컬러에 가장 유사한 컬러를 선택함으로써 우세 컬러의 컬러 변형체들(421)을 생성한다(420). 예를 들어, 도 4에 예시된 실시예에서, 메인 컬러(421A), 어두운 컬러(421B), 및 밝은 컬러(421C) 각각은, 각각의 범위가 채도(S) 및 밝기(B) 파라미터 값들의 쌍들의 대응하는 세트를 갖는 색조(H) 성분의 일부 연관된 범위 세트를 가진다. 특정 컬러 변형체(예컨대, 메인 컬러(421A))를 생성하기 위해, 우세 컬러의 색조 성분은 색조 범위들 중 컬러 변형체에 대응하는 하나의 색조 범위를 선택하는데 사용되며, 채도 성분 값은 선택된 범위에 대한 가장 가까운 채도 파라미터 값으로 조정되고, 밝기 성분 값은 선택된 범위에 대한 가장 가까운 밝기 파라미터 값에 비슷하게 조정된다. 이는 컬러 변형체를 생성할 때 색조 성분 값을 사용하여 채도 및 밝기 성분 값들을 조절하는 효과를 가진다. 하나의 특정 예로서, 메인 컬러(421A)는 31°~ 80°의 색조 범위를 가지며, 채도 파라미터 값들(15 및 85)과 밝기 파라미터 값들(50 및 60)을 결국 가진다. 우세 컬러가 HSB 컴포넌트들 <56°, 100, 100>을 가지면, 색조 성분 56°는 색조 범위 31°~ 80°를 선택하며(56°가 31°~ 80°의 범위에 있기 때문임), 채도 성분은 85로 조정되고(채도 성분 값 100이 채도 파라미터 15보다 채도 파라미터 85에 더 가깝기 때문임), 밝기 성분은 60으로 조정된다(밝기 성분 값 100이 밝기 파라미터 50보다 밝기 파라미터 60에 더 가깝기 때문이다). 따라서, 이 예에서 메인 컬러(421A)에 대응하는 파라미터들의 적용은 우세 컬러 <56°, 100, 100>으로부터 메인 컬러 <56°, 85, 60>을 생성하는 것으로 이어진다. 어두운 컬러(421B)와 밝은 컬러(421C)는 자신들 소유의 대응하는 파라미터 값들을 사용하여 유사한 방식들로 계산된다.
생성된 컬러 변형체들(421)로, 컬러 팔레트 결정 모듈(305)은 비디오 UI 모듈(113)에 의해 생성된 비디오 사용자 인터페이스에서의 상이한 컴포넌트 유형들에 대응하는 UI 컴포넌트 컬러들의 세트를 추가적으로 생성한다(425). 예를 들어, 도 4에 예시된 실시예에서, 컬러 변형체들(421)의 각각에 대해 생성된 일곱 개의 UI 컴포넌트 컬러들, 즉 "내비게이션 바" UI 컴포넌트, "섹션 1" UI 컴포넌트, "섹션 2" UI 컴포넌트, "액티브 내비콘(active navicon)" UI 컴포넌트, "유휴 내비콘" UI 컴포넌트, "아이콘 및 타이틀 텍스트" UI 컴포넌트, 및 "본문 텍스트" UI 컴포넌트의 각각마다 하나씩의 컬러들이 있다. 도 2의 실시예의 예시적인 사용자 인터페이스를 다시 참조하면, "내비게이션 바" UI 컴포넌트는 배경(220A)에 대응하며; "섹션 1" UI 컴포넌트는 배경(220B)에 대응하며; "섹션 2" UI 컴포넌트는 배경(220C)에 대응하며; "액티브 내비콘" UI 컴포넌트는 컴포넌트(210D)에 대응하며(그것이 비디오의 현재 스테이터스, 이를테면 "재생"을 반영한 컴포넌트라고 가정함); "유휴 내비콘" UI 컴포넌트는 컴포넌트들(210A~210C)에 대응하며(그것들이 비디오의 현재 스테이터스를 반영하지 않는다고 가정함); "아이콘 및 타이틀 텍스트" UI 컴포넌트는 텍스트(215A)에 대응하고; "본문 텍스트" UI 컴포넌트는 텍스트(215B)에 대응한다.
하나의 실시예에서, 컬러 팔레트 결정 모듈(305)은, 각각의 사용자 인터페이스 컴포넌트 유형에 대해, 그 사용자 인터페이스 컴포넌트 유형에 대한 가능한 사용자 인터페이스 컴포넌트 컬러들의 세트로부터 컬러 변형체에 가장 유사한 컬러를 선택함으로써 주어진 컬러 변형체(421)에 대한 사용자 인터페이스 컴포넌트 컬러들(426)을 생성한다(425). 예를 들어, 도 4에 예시된 실시예에서, 각각의 사용자 인터페이스 컴포넌트(430)(예컨대, 내비게이션 바 컴포넌트)는 밝기(B) 파라미터 값들의 대응하는 세트를 각각의 범위가 가지는 채도(S) 성분의 범위들의 어떤 세트를 가진다. 특정 사용자 인터페이스 컴포넌트 컬러(예컨대, 내비게이션 바에 대한 컬러)를 형성하기 위해, 컬러 변형체의 채도 성분은 채도 범위들 중 컬러 변형체에 대응하는 하나의 채도 범위를 선택하는데 사용되고, 밝기 성분 값은 선택된 채도 범위에 대한 가장 가까운 밝기 파라미터 값으로 조정된다. 이는 사용자 인터페이스 유형 컬러를 생성할 때 채도 성분 값을 사용하여 밝기 성분 값을 조정하는 효과를 가진다. 하나의 특정 예로서, 내비게이션 바 사용자 인터페이스 컴포넌트 유형은 15~85의 채도 범위를 가지며, 이는 대응하는 밝기 파라미터 값들(45, 50, 및 55)을 결국 가진다. HSB 성분들 <56°, 85, 60>을 갖는 메인 컬러 변형체의 위의 예를 참조하면, 채도 성분(85)은 채도 범위 15~85를 선택하고(채도 성분 85가 15~85의 범위에 있기 때문임), 밝기 성분은 55로 조정된다(밝기 성분 값 55는 다른 밝기 파라미터들(45 또는 50)보다 밝기 파라미터 60에 더 가깝기 때문이다). 따라서, 이 예에서 내비게이션 바 사용자 인터페이스 컴포넌트 유형에 대응하는 파라미터들의 적용은 메인 컬러 변형체 <56°, 85, 60>으로부터 컴포넌트 컬러 <56°, 85, 55>를 생성하는 것으로 이어진다. 다른 사용자 인터페이스 컴포넌트 유형들(430)은 자신들 소유의 대응하는 파라미터 값들을 사용하여 유사한 방법들에서 계산된 자신들의 컬러들을 가진다.
도 3을 다시 참조하면, 사용자 인터페이스 적응 모듈(118)은, 컬러 팔레트 결정 모듈(305)을 사용하여 특정 이미지(예컨대, 비디오의 프레임)에 대한 컬러 팔레트를 생성하고 비디오 사용자 인터페이스 모듈(113)의 사용자 인터페이스 컴포넌트들을 생성된 팔레트의 컬러들로 설정하는 컴포넌트 외관 모듈(310)을 포함한다. 예를 들어, 도 2 및 도 4의 예를 참조하면, 컴포넌트 외관 모듈(310)은 배경(220A)의 컬러를 내비게이션 바 사용자 인터페이스 컴포넌트를 위한 컬러로, 텍스트(215B)의 컬러를 몸체 텍스트 사용자 인터페이스 컴포넌트를 위한 컬러로 등으로 설정한다.
비디오의 경우 (정적 이미지와는 대조적으로), 컴포넌트 외관 모듈(310)은 비디오가 재생할 때 사용자 인터페이스 컴포넌트들의 컬러들을 지속적으로 조정하기 위하여 비디오의 상이한 프레임들에 대해 컬러 팔레트 결정 모듈(305)을 반복적으로 사용한다.
예를 들어, 도 5에 예시된 하나의 실시예에서, 컴포넌트 외관 모듈(310)은, 고정된 간격들로 (예컨대, 매 N 개 프레임들마다, 또는 매 t 초마다의 프레임들에서), 컬러 팔레트 결정 모듈(305)을 사용하여, 각각의 프레임에서 그 프레임에 대응하는 컬러를 선택하고 사용자 인터페이스 컴포넌트 컬러들을 그에 따라 설정한다. 이는 사용자 인터페이스 외관이 비디오 프레임들에서 디스플레이되고 있는 콘텐츠와 함께 시간이 지남에 따라 변화하는 것을 허용한다.
하나의 실시예에서, 더 부드러운 컬러 전환들을 성취하기 위하여, 컴포넌트 외관 모듈(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)일 것이다.
하나의 실시예에서, 현재 프레임에서(예컨대, 매 스크린 리프레시에서) 컬러들을 혼합할 때, 컴포넌트 외관 모듈(310)은, 어떤 정수 N (예컨대, N = 5)에 대해, 컬러 팔레트 결정 모듈(305)로부터 상위 N 개의 우세 컬러들을 획득하고, 다음 간격의 (시간 t + k의 프레임에 대한) 우세 컬러로서, 그들 우세 컬러들 중 (시간 t의 프레임에 대한) 현재 우세 컬러와 가장 유사한 우세 컬러를 선택한다. 컴포넌트 외관 모듈(310)은 그 다음에 현재 우세 컬러와 이 가장 유사한 우세 컬러를 혼합한다. 가장 유사한 우세 컬러와 혼합하는 것은 사용자를 당황케 할 것으로 보일 수 있는 갑작스런 컬러 변경들을 방지하는 것을 돕는다.
하나의 실시예에서, 비디오가 사용자에 의해 먼저 액세스될 때, 컴포넌트 외관 모듈(310)은, 이용 가능하다면, 비디오에 대한 캐싱된 섬네일에 기초하여 우세 컬러의 제1 결정(즉, t = 0에 대한 결정)을 한다. 이는, 비디오 스트리밍을 시작하기 위해 요구된 기간(예컨대, 수백 밀리초)을 기다리지 않고 제1 컬러의 결정이 이루어지는 것 ―과 사용자 인터페이스 컴포넌트들이 그에 따라 컬러링되는 것― 을 허용한다. 다수의 간격들에 걸쳐 우세 컬러를 다시 계산하는 것이 실현 가능하지 않은 상황들에서, 캐싱된 섬네일로부터 추출된 단일 우세 컬러는 비디오 전체에 걸쳐 사용될 수 있지만, 이는 사용자 인터페이스 컴포넌트 컬러들 대 비디오 콘텐츠의 일치를 최적으로 제공하지 않을 것이다.
하나의 실시예에서, 컴포넌트 외관 모듈(310)은 컬러 팔레트 결정 모듈(305)을 사용하여 프레임들로부터 생성된 컬러들에, 그리고 또한 비디오의 재생 상태에 기초하여 사용자 인터페이스 컴포넌트들의 컬러들을 설정한다. 예를 들어, 비디오가 재생되고 있다면, 재생 비디오와 시각적으로 경쟁하지 않기 위해서 사용자 인터페이스 컴포넌트들을 강조하지 않는 것이 사용자에게 미적으로 즐거울 수 있다. 반대로, 비디오가 일시 중지되거나 또는 아니면 재생되고 있지 않다면, 사용자 인터페이스 컴포넌트들은 더 강조될 수 있다. 일부 실시예들에서, 다른 요인들 ―이를테면 클라이언트 디바이스(120)의 광 센서 하드웨어에 의해 결정되는 바와 같은 주변 광의 정도, 또는 클라이언트 디바이스의 스크린의 속성들(예컨대, 사이즈, 스크린 반사도)― 이 사용할 컬러들의 선택에 또한 영향을 미칠 수 있다.
예를 들어, 하나의 실시예에서, 비디오의 재생 상태는, 비디오가 재생되고 있지 않을 때 어두운 컬러(421B)를 사용하고 그렇지 않을 때 메인 컬러(421A)를 사용되면서 어떤 컬러 변형체가 사용되는지를 결정한다. 예를 들어, 비디오가 재생되고 있을 때, 배경(220A)은 어두운 컬러(421B)를 위해 생성된 서브-팔레트 내에서 내비게이션 바 사용자 인터페이스 컴포넌트에 대해 생성된 컬러로 설정되며; 사용자가 비디오를 일시 중지시키면, 배경(220A)은 메인 컬러(421A)를 위해 생성된 서브-팔레트 내에서 내비게이션 바 사용자 인터페이스 컴포넌트에 대해 생성된 컬러로 설정될 수 있다.
다른 고려사항들
"하나의 실시예" 또는 "일 실시예"에 대한 본 명세서에서의 언급은 그 실시예들에 관련하여 설명되는 특정 특징, 구조, 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 본 명세서의 여러 위치들에서의 "하나의 실시예에서"라는 어구의 출현들은 반드시 모두가 동일한 실시예를 언급하는 것은 아니다.
프로세스 단계들 및 명령들은 소프트웨어, 펌웨어 또는 하드웨어로 실시되고, 소프트웨어로 실시되는 경우, 다양한 운영 체제들에 의해 사용되는 상이한 플랫폼들에 상주하도록 다운로드되고 그 플랫폼들에서 동작될 수 있다는 것에 주의해야 한다.
본 명세서에서의 동작들은 장치에 의해 또한 수행될 수 있다. 더욱이, 본 명세서에서 언급된 컴퓨터들은 단일 프로세서를 포함할 수 있거나 또는 증가된 컴퓨팅 능력을 위한 다수의 프로세서 설계들을 채용하는 아키텍처들일 수 있다. 다양한 프로그래밍 언어들이 본원에서 설명되는 바와 같은 본 발명의 교시들을 구현하는데 사용될 수 있고 특정 언어들에 대한 아래의 임의의 참조들은 본 발명의 실시가능 개시내용 및 최선의 모드를 위해 제공된다.
본 발명이 바람직한 실시예 및 여러 대체 실시예들을 참조하여 특히 도시되고 설명되었지만, 형태 및 세부사항들에서의 다양한 변경들이 본 발명의 정신 및 범위로부터 벗어남 없이 이루어질 수 있다는 것이 관련 기술분야에서의 통상의 기술자에 의해 이해될 것이다.
마지막으로, 본 명세서에서 사용되는 언어는 가독성 및 교육 목적으로 주로 선택되었고, 본 발명의 주제를 기술하거나 또는 제한하기 위해 선택되지 않았을 수 있다는 것에 주의해야 한다. 따라서, 본 발명의 개시내용은 다음의 청구항들에서 언급되는 본 발명의 범위의 제한이 아닌 예시인 것으로 의도된다.

Claims (13)

  1. 재생하고 있는 비디오를 보완하도록 비디오 플레이어의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하기 위한 컴퓨터 구현 방법으로서,
    상기 비디오의 복수의 프레임들을 식별하는 단계;
    식별된 프레임들 중 각각의 프레임에 대해:
    상기 프레임의 화소들의 컬러들을 복수의 컬러 파티션들로 파티셔닝하는 단계,
    상기 프레임의 화소들의 최대 수를 갖는 컬러 파티션을 식별하는 단계, 및
    식별된 컬러 파티션의 화소들을 평균화하는 단계
    에 의해 상기 프레임의 우세 컬러를 식별하는 단계;
    상기 우세 컬러의 컬러 성분들에 컬러 파라미터들을 적용함으로써 상기 우세 컬러에 기초하여 복수의 컬러 변형체들을 생성하는 단계;
    상기 컬러 변형체들 중 각각의 컬러 변형체에 대해 그리고 복수의 사용자 인터페이스 컴포넌트 유형들 중 각각의 사용자 인터페이스 컴포넌트 유형에 대해, 사용자 인터페이스 컴포넌트 컬러를 생성하는 단계;
    상기 비디오의 재생 상태, 식별된 프레임들 중 상기 비디오에서의 현재 재생 지점 전의 현재 식별된 프레임, 및 상기 식별된 프레임들 중 상기 비디오에서의 상기 현재 재생 지점 후의 다음 식별된 프레임을 식별하는 단계;
    상기 재생 상태에, 그리고 상기 현재 식별된 프레임에 대해 생성된 상기 사용자 인터페이스 컴포넌트 컬러들에 기초하여 제1 사용자 인터페이스 컴포넌트 컬러들을 식별하는 단계;
    상기 재생 상태에, 그리고 상기 다음 식별된 프레임에 대해 생성된 상기 사용자 인터페이스 컴포넌트 컬러들에 기초하여 제2 사용자 인터페이스 컴포넌트 컬러들을 식별하는 단계; 및
    상기 식별된 제1 사용자 인터페이스 컴포넌트 컬러들에, 그리고 상기 식별된 제2 사용자 인터페이스 컴포넌트 컬러들에 기초하여 상기 비디오 플레이어의 상기 사용자 인터페이스 컴포넌트들의 컬러들을 설정하는 단계를 포함하는, 방법.
  2. 컴퓨터 구현 방법으로서,
    비디오의 프레임의 우세 컬러를 식별하는 단계;
    상기 우세 컬러에 기초하여 복수의 컬러 변형체들을 생성하는 단계;
    상기 비디오의 재생 상태를 식별하는 단계;
    상기 재생 상태에 기초하여 상기 컬러 변형체들 중 하나의 컬러 변형체를 선택하는 단계; 및
    선택된 컬러 변형체에 기초하여 상기 비디오 사용자 인터페이스의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하는 단계를 포함하는, 컴퓨터 구현 방법.
  3. 제2항에 있어서, 상기 비디오의 프레임의 우세 컬러를 식별하는 단계는,
    상기 프레임의 화소들의 컬러들을 복수의 컬러 파티션들로 파티셔닝하는 단계;
    상기 프레임의 화소들의 최대 수를 갖는 컬러 파티션을 식별하는 단계, 및
    식별된 컬러 파티션의 화소들을 평균화하는 단계를 포함하는, 컴퓨터 구현 방법.
  4. 제2항에 있어서, 상기 우세 컬러에 기초하여 복수의 컬러 변형체들을 생성하는 단계는,
    상기 컬러 변형체들에 대응하는 컬러 파라미터들을 식별하는 단계; 및
    상기 우세 컬러의 컬러 성분들에 상기 컬러 파라미터들을 적용하는 단계를 포함하는, 컴퓨터 구현 방법.
  5. 제2항에 있어서, 상기 선택된 컬러 변형체에 기초하여 상기 비디오 사용자 인터페이스의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하는 단계는,
    복수의 사용자 인터페이스 컴포넌트 유형들 중 각각의 사용자 인터페이스 컴포넌트 유형에 대해, 상기 컬러 변형체들 중 각각의 컬러 변형체에 대한 사용자 인터페이스 컴포넌트 컬러를 생성하는 단계; 및
    상기 재생 상태에 기초하여 선택된 상기 컬러 변형체에 대한 상기 사용자 인터페이스 컴포넌트 컬러들을 사용하여 상기 비디오 사용자 인터페이스의 컬러들을 설정하는 단계를 포함하는, 컴퓨터 구현 방법.
  6. 제2항에 있어서, 상기 비디오의 제2 프레임에 대해, 제2 우세 컬러를, 그리고 상기 제2 우세 컬러에 기초하여 제2 복수의 컬러 변형체들을 결정하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  7. 제6항에 있어서, 상기 비디오 사용자 인터페이스의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하는 단계는,
    상기 비디오의 재생 내에서 현재 시간을 식별하는 단계;
    제1 프레임에 대응하는 상기 비디오에서의 시간과 상기 현재 시간과의 제1 시간 차이와, 상기 제2 프레임에 대응하는 상기 비디오에서의 시간과 상기 현재 시간과의 제2 시간 차이를 결정하는 단계; 및
    상기 제1 시간 차이, 상기 제2 시간 차이, 상기 우세 컬러, 및 상기 제2 우세 컬러에 기초하여 사용자 인터페이스 컬러들을 보간하는 단계를 포함하는, 컴퓨터 구현 방법.
  8. 프로세서에 의해 실행 가능한 명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은,
    비디오의 프레임의 우세 컬러를 식별하기 위한 명령들;
    상기 우세 컬러에 기초하여 복수의 컬러 변형체들을 생성하기 위한 명령들;
    상기 비디오의 재생 상태를 식별하기 위한 명령들;
    상기 재생 상태에 기초하여 상기 컬러 변형체들 중 하나의 컬러 변형체를 선택하기 위한 명령들; 및
    선택된 컬러 변형체에 기초하여 비디오 사용자 인터페이스의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하기 위한 명령들을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서, 상기 비디오의 프레임의 우세 컬러를 식별하는 것은,
    상기 프레임의 화소들의 컬러들을 복수의 컬러 파티션들로 파티셔닝하는 것;
    상기 프레임의 화소들의 최대 수를 갖는 컬러 파티션을 식별하는 것; 및
    식별된 컬러 파티션의 화소들을 평균화하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  10. 제8항에 있어서, 상기 우세 컬러에 기초하여 복수의 컬러 변형체들을 생성하는 것은,
    상기 컬러 변형체들에 대응하는 컬러 파라미터들을 식별하는 것; 및
    상기 우세 컬러의 컬러 성분들에 상기 컬러 파라미터들을 적용하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  11. 제8항에 있어서, 상기 선택된 컬러 변형체에 기초하여 비디오 사용자 인터페이스의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하는 것은,
    복수의 사용자 인터페이스 컴포넌트 유형들 중 각각의 사용자 인터페이스 컴포넌트 유형에 대해, 상기 컬러 변형체들 중 각각의 컬러 변형체에 대한 사용자 인터페이스 컴포넌트 컬러를 생성하는 것; 및
    상기 재생 상태에 기초하여 선택된 상기 컬러 변형체에 대한 상기 사용자 인터페이스 컴포넌트 컬러들을 사용하여 상기 비디오 사용자 인터페이스의 컬러들을 설정하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  12. 제8항에 있어서, 상기 명령들은 상기 비디오의 제2 프레임에 대해, 제2 우세 컬러를, 그리고 상기 제2 우세 컬러에 기초하여 제2 복수의 컬러 변형체들을 결정하기 위한 명령들을 더 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  13. 제12항에 있어서, 상기 비디오 사용자 인터페이스의 사용자 인터페이스 컴포넌트들의 컬러들을 설정하는 것은,
    상기 비디오의 재생 내에서 현재 시간을 식별하는 것;
    제1 프레임에 대응하는 상기 비디오에서의 시간과 상기 현재 시간과의 제1 시간 차이와, 상기 제2 프레임에 대응하는 상기 비디오에서의 시간과 상기 현재 시간과의 제2 시간 차이를 결정하는 것; 및
    상기 제1 시간 차이, 상기 제2 시간 차이, 상기 우세 컬러, 및 상기 제2 우세 컬러에 기초하여 사용자 인터페이스 컬러들을 보간하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020187013736A 2016-02-10 2016-12-22 비디오 플레이어의 사용자 인터페이스 컴포넌트들에 대한 동적 컬러 결정 KR101955174B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/040,989 US9858686B2 (en) 2016-02-10 2016-02-10 Dynamic color determination for user interface components of a video player
US15/040,989 2016-02-10
PCT/US2016/068404 WO2017139036A1 (en) 2016-02-10 2016-12-22 Dynamic color determination for user interface components of a video player

Publications (2)

Publication Number Publication Date
KR20180055925A true KR20180055925A (ko) 2018-05-25
KR101955174B1 KR101955174B1 (ko) 2019-03-06

Family

ID=59497850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187013736A KR101955174B1 (ko) 2016-02-10 2016-12-22 비디오 플레이어의 사용자 인터페이스 컴포넌트들에 대한 동적 컬러 결정

Country Status (8)

Country Link
US (2) US9858686B2 (ko)
EP (1) EP3363209B1 (ko)
JP (1) JP6719557B2 (ko)
KR (1) KR101955174B1 (ko)
CN (1) CN108353212B (ko)
BR (1) BR112018008827A2 (ko)
RU (1) RU2700178C1 (ko)
WO (1) WO2017139036A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858686B2 (en) * 2016-02-10 2018-01-02 Google Llc Dynamic color determination for user interface components of a video player
CN106201535B (zh) * 2016-07-14 2019-08-23 广州神马移动信息科技有限公司 工具栏背景颜色随着图片的主颜色而变换的方法和装置
JP6805721B2 (ja) * 2016-10-25 2020-12-23 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US20180277056A1 (en) * 2017-03-22 2018-09-27 Mz Ip Holdings, Llc System and method for managing image colors
US10388250B2 (en) 2017-04-18 2019-08-20 Google Llc Methods, systems, and media for modifying user interface colors in connection with the presentation of a video
US10313715B2 (en) * 2017-04-27 2019-06-04 Nanning Fugui Precision Industrial Co., Ltd. Transmission method for video data and device employing same
US10446114B2 (en) * 2017-06-01 2019-10-15 Qualcomm Incorporated Adjusting color palettes used for displaying images on a display device based on ambient light levels
US10552985B2 (en) 2017-06-14 2020-02-04 Behr Process Corporation Systems and methods for determining dominant colors in an image
FR3082649B1 (fr) * 2018-06-19 2020-06-05 Allegorithmic Procede d'application de couleurs sur une texture
CN109151551B (zh) * 2018-09-20 2021-08-27 阿里巴巴(中国)有限公司 视频界面显示方法及装置
CN109597538B (zh) * 2018-09-21 2020-07-28 北京字节跳动网络技术有限公司 可操作控件的显示方法、装置、设备及可读介质
CN111050202A (zh) * 2019-11-22 2020-04-21 北京达佳互联信息技术有限公司 视频处理方法、装置、电子设备及介质
CN111291219A (zh) * 2020-01-21 2020-06-16 海信视像科技股份有限公司 一种改变界面背景颜色的方法及显示设备
CN111414221B (zh) * 2020-03-20 2022-06-28 联想(北京)有限公司 显示方法和装置
CN114968221B (zh) * 2022-07-18 2022-11-01 湖南云畅网络科技有限公司 一种基于前端低代码编排系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090005621A (ko) * 2007-07-09 2009-01-14 삼성전자주식회사 색상 자동 변경 방법 및 그 장치
US20120075330A1 (en) * 2006-05-03 2012-03-29 Gerhard Dietrich Klassen Dynamic theme color palette generation
WO2014130213A1 (en) * 2013-02-21 2014-08-28 Dolby Laboratories Licensing Corporation Systems and methods for appearance mapping for compositing overlay graphics
US20150170380A1 (en) * 2013-12-16 2015-06-18 Adobe Systems Incorporated Adverbial Expression Based Color Image Operations

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7417640B1 (en) 1999-01-29 2008-08-26 Lg Electronics Inc. Method for dominant color setting of video region and data structure and method of confidence measure extraction
JP3550681B2 (ja) * 1999-12-10 2004-08-04 日本電気株式会社 画像検索装置及び方法、並びに類似画像検索プログラムを格納した記憶媒体
US7184057B2 (en) * 2002-06-24 2007-02-27 Microsoft Corpoartion Systems and methods for providing color management
US20050180641A1 (en) * 2004-02-02 2005-08-18 Clark Adam L. System and method for transmitting live audio/video information
JP2007013410A (ja) 2005-06-29 2007-01-18 Matsushita Electric Ind Co Ltd 映像再生装置、映像再生方法及び映像再生プログラム
US20080069475A1 (en) * 2006-09-18 2008-03-20 Simon Ekstrand Video Pattern Thumbnails and Method
US20100092077A1 (en) * 2006-10-19 2010-04-15 Koninklijke Philips Electronics N.V. Dominant color descriptors
US8532374B2 (en) 2007-12-05 2013-09-10 Canon Kabushiki Kaisha Colour document layout analysis with multi-level decomposition
JP2010048871A (ja) 2008-08-19 2010-03-04 Sharp Corp 再生装置
EP2230839A1 (en) * 2009-03-17 2010-09-22 Koninklijke Philips Electronics N.V. Presentation of video content
TR200905493A2 (tr) * 2009-07-15 2011-02-21 Cabot Communications Limited Grafiksel kullanıcı arayüzünde kullanılmak üzere görsel bir öğe üzerinden renk seçimi yöntemi.
CN102262536A (zh) * 2011-07-18 2011-11-30 李建成 窗口界面处理方法及装置
US8890886B2 (en) * 2011-09-02 2014-11-18 Microsoft Corporation User interface with color themes based on input image data
US8957895B2 (en) * 2011-09-08 2015-02-17 Landmark Graphics Corporation Systems and methods for rendering 2D grid data
JP5838791B2 (ja) * 2011-12-22 2016-01-06 富士通株式会社 プログラム、画像処理装置及び画像処理方法
US9462160B2 (en) 2012-11-22 2016-10-04 Nec Corporation Color correction device, method, and program
SG11201704261SA (en) 2014-12-12 2017-06-29 Nagravision Sa Method and graphic processor for managing colors of a user interface
CN104918098A (zh) * 2015-06-10 2015-09-16 福州瑞芯微电子有限公司 一种视频播放界面中自动配色的方法、系统及装置
US9858686B2 (en) * 2016-02-10 2018-01-02 Google Llc Dynamic color determination for user interface components of a video player

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120075330A1 (en) * 2006-05-03 2012-03-29 Gerhard Dietrich Klassen Dynamic theme color palette generation
KR20090005621A (ko) * 2007-07-09 2009-01-14 삼성전자주식회사 색상 자동 변경 방법 및 그 장치
WO2014130213A1 (en) * 2013-02-21 2014-08-28 Dolby Laboratories Licensing Corporation Systems and methods for appearance mapping for compositing overlay graphics
US20150170380A1 (en) * 2013-12-16 2015-06-18 Adobe Systems Incorporated Adverbial Expression Based Color Image Operations

Also Published As

Publication number Publication date
RU2700178C1 (ru) 2019-09-13
US9858686B2 (en) 2018-01-02
US20180108155A1 (en) 2018-04-19
US20170228895A1 (en) 2017-08-10
CN108353212A (zh) 2018-07-31
EP3363209B1 (en) 2019-10-09
JP6719557B2 (ja) 2020-07-08
US10460479B2 (en) 2019-10-29
CN108353212B (zh) 2021-02-26
EP3363209A4 (en) 2018-11-07
EP3363209A1 (en) 2018-08-22
JP2018538736A (ja) 2018-12-27
BR112018008827A2 (pt) 2018-11-06
KR101955174B1 (ko) 2019-03-06
WO2017139036A1 (en) 2017-08-17

Similar Documents

Publication Publication Date Title
KR101955174B1 (ko) 비디오 플레이어의 사용자 인터페이스 컴포넌트들에 대한 동적 컬러 결정
US10853976B2 (en) Selective dynamic color management for user interface components of a media player
US11710508B2 (en) Video manipulation with face replacement
US10275433B2 (en) Remote browsing and searching
US20150319506A1 (en) Displaying data associated with a program based on automatic recognition
US20110060998A1 (en) System and method for managing internet media content
US8959453B1 (en) Autohiding video player controls
US20130329060A1 (en) Overlay image providing system, server and method
US9411839B2 (en) Index configuration for searchable data in network
WO2019171803A1 (ja) 画像検索装置、画像検索方法、電子機器及びその制御方法
US20100228751A1 (en) Method and system for retrieving ucc image based on region of interest
KR20170044659A (ko) 파일을 프로세싱하기 위한 방법 및 장치
US20200380041A1 (en) Styling a query response based on a subject identified in the query
US9342740B1 (en) Identifying a portion of an image without content based on a measure of diversity of pixels in the portion
EP2756453B1 (en) System for enhancing content
US20240028661A1 (en) Augmented ui generated through natural language query and semantic data connections
EP3726381A1 (en) Method and system for shared information browsing

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant