KR102420513B1 - 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용 - Google Patents

디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용 Download PDF

Info

Publication number
KR102420513B1
KR102420513B1 KR1020207003333A KR20207003333A KR102420513B1 KR 102420513 B1 KR102420513 B1 KR 102420513B1 KR 1020207003333 A KR1020207003333 A KR 1020207003333A KR 20207003333 A KR20207003333 A KR 20207003333A KR 102420513 B1 KR102420513 B1 KR 102420513B1
Authority
KR
South Korea
Prior art keywords
information
implementations
instructions
content
user
Prior art date
Application number
KR1020207003333A
Other languages
English (en)
Other versions
KR20200015836A (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 구글 엘엘씨
Priority to KR1020207022347A priority Critical patent/KR102465231B1/ko
Publication of KR20200015836A publication Critical patent/KR20200015836A/ko
Application granted granted Critical
Publication of KR102420513B1 publication Critical patent/KR102420513B1/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/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
    • H04N21/4316Generation 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 for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 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
    • 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/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/47815Electronic shopping
    • 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/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • 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/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8126Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts
    • H04N21/8133Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts specifically related to the content, e.g. biography of the actors in a movie, detailed information about an article seen in a video program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0882Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital for the transmission of character code signals, e.g. for teletext
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • 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/488Data services, e.g. news ticker
    • H04N21/4886Data services, e.g. news ticker for displaying a ticker, e.g. scrolling banner for news, stock exchange, weather data

Abstract

폐쇄 자막들을 포함하는 비디오 스트림이 수신된다. 정보의 세트는 폐쇄 자막들로부터 결정된다. 정보의 세트를 포함하는 요청은, 추가의 프로세싱을 위해 클라이언트로부터 원격에 위치된 서버로 전송된다. 명령들의 세트는 서버로부터 수신된다. 명령들의 세트는 정보의 세트의 추가 프로세싱에 기초하여 결정된다. 하나 이상의 애플리케이션들은 명령들의 세트를 수신하는 것에 응답하여 명령들의 세트에 따라 실행된다.

Description

디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용{USING A CLOSED CAPTION STREAM FOR DEVICE METADATA}
본 기술은 일반적으로 사용자에게 정보를 제공하는 것에 관한 것이다.
비디오 콘텐츠는 때때로 비디오의 콘텐츠 관련 몇몇 동작을 뷰어(viewer)들이 취하도록 촉구하는 청각 또는 시각 메시지들을 포함한다. 예를 들어, 텔레비전 광고 방송은 생산품(product)에 관한 쿠폰들 또는 정보를 얻기 위하여 광고된 생산품과 연관된 생산품의 웹사이트를 사용자가 방문하게 촉구할 수 있다. 다른 예에서, 텔레비전 프로그램 또는 영화의 방송 동안, 메시지는 텔레비전 프로그램 또는 영화에 묘사되거나 연관된 사람, 장소들 또는 물건들에 관한 보다 많은 정보를 보기 위해 뷰어가 웹사이트를 방문하도록 촉구하는 것을 나타낼 수 있다. 심지어 촉구되지 않고도, 많은 사용자들은 그들이 시청하고 있는 비디오 콘텐츠에 관련된 사람, 장소 또는 물건에 관심을 갖는다. 통상적으로, 비디오 스트림에 관련된 정보를 얻기 위하여, 사용자는 인터넷-인에이블된 디바이스를 사용하여 웹사이트를 방문할 필요가 있을 것이다. 기존 방법들은 비효율적인데, 그 이유는 그들은 뷰잉 경험 외에 있는 일부 동작을 사용자들이 취하도록 요구하기 때문이다. 또한 많은 뷰어들은 비디오 콘텐츠에 관한 부가적인 정보를 제공하는 청각 메시지들 및 시각 메시지들을 놓치거나 무시할 수 있고, 그리고 많은 뷰어들이 비디오 콘텐츠를 뷰잉하는 동안 컴퓨팅 디바이스를 동작하는 것은 불편할 수 있다.
본 명세서에 기술된 방법들 및 시스템들은 사용자가 비디오 콘텐츠를 뷰잉하는 동안 비디오 콘텐츠에 관련된 정보를 디스플레이하기 위한 효과적인 방식을 제공한다. 예를 들어, 티(tea)에 관한 광고 방송은 디스플레이 디바이스 상에 디스플레이될 수 있고 사용자가 광고 방송을 뷰잉하는 동안, 디스플레이 디바이스에 연결된 클라이언트 디바이스는 정보의 세트를 얻기 위해 폐쇄 자막 콘텐츠를 분석하고, 상기 정보 세트를 서버에 전송하고, 서버로부터 명령들의 세트를 얻고 그리고 수신된 명령들의 세트에 따라 하나 이상의 기능들을 수행한다. 하나 이상의 기능들은 폐쇄 자막 콘텐츠에 관련된 정보를 디스플레이한다. 이 예에서, 명령들의 세트는 특정 타입 또는 브랜드의 티에 관한 정보를 갖는 웹 페이지를 디스플레이할 브라우저, 티를 준비하는 것에 대한 교육 비디오를 보여줄 미디어 플레이어, 티에 관한 물품들을 디스플레이할 피드 판독기 애플리케이션, 또는 광고 방송의 주제였던 티에 관한 쿠폰들을 제시하기 위한 쿠폰 책 애플리케이션 같은 하나 이상의 애플리케이션들을 실행하기 위한 명령들을 포함한다. 하나 이상의 애플리케이션들은 광고 방송이 플레이되고 있는 동안 실행되고 그리고 하나 이상의 애플리케이션들은 디스플레이 디바이스 상에서 광고 방송과 함께 동시에 디스플레이된다.
몇몇 구현들에 따라, 정보를 디스플레이할 시스템들 및 방법들이 제공된다. 폐쇄 자막들을 포함하는 비디오 스트림은 클라이언트 디바이스에서 수신된다. 정보의 세트는 폐쇄 자막들의 콘텐츠로부터 결정된다. 정보 세트를 포함하는 요청은 프로세싱을 위해 클라이언트 디바이스로부터 원격으로 위치된 서버로 전송된다. 명령들의 세트는 서버로부터 수신된다. 명령들의 세트는 정보의 세트에 관련된 정보를 디스플레이하기 위한 명령들을 포함한다. 하나 이상의 애플리케이션들은 명령들의 세트를 수신한 것에 응답하여 명령들의 세트에 따라 실행된다.
몇몇 구현들에 따라, 비디오 스트림에서 폐쇄 자막 콘텐츠로부터 추출된 정보의 세트를 포함하는 클라이언트 요청은 서버에서 수신된다. 하나 이상의 관련 아이덴티티들은 정보의 세트로부터 식별된다. 정보의 세트와 연관된 명령들의 세트는 결정된다. 명령들의 세트는 클라이언트에게 전송된다.
도 1은 몇몇 구현들에 따른 분산된 클라이언트-서버 시스템을 도시하는 블록도이다.
도 2a는 몇몇 구현들에 따른 예시적 서버 시스템의 구조를 도시하는 블록도이다.
도 2b는 몇몇 구현들에 따른 예시적 방송 시스템의 구조를 도시하는 블록도이다.
도 3은 몇몇 구현들에 따른 예시적 클라이언트 디바이스의 구조를 도시하는 블록도이다.
도 4는 디스플레이 중인 정보의 프로세스의 개략을 도시하는 흐름도이다.
도 5a, 도 5b, 도 5c, 도 5d 및 도 5e는 몇몇 구현들에 따른 예시적인 스크린샷이다.
도 6은 디스플레이중인 정보의 프로세스를 도시하는 흐름도이다.
도 7은 폐쇄 자막들로부터 추출된 정보의 세트에 기초하여 명령들의 세트를 결정하는 프로세스를 도시하는 흐름도이다.
유사한 참조 번호들은 도면들을 통틀어 대응하는 부분들을 지칭한다.
도 1은 구현들 중 일부를 위해 구현되는 분산형 시스템(100)을 예시하는 블록도이다. 클라이언트-서버 시스템(100)은 하나 이상의 클라이언트 디바이스들(102), 통신 네트워크(104), 서버 시스템(106), 디스플레이 디바이스(108) 및 브로드캐스트 시스템(128)을 포함한다. 서버 시스템(106)은 통신 네트워크(104)에 의해서 하나 이상의 클라이언트 디바이스들(102) 및 브로드캐스트 시스템(128)에 연결된다.
브로드캐스트 시스템(128)은 하나 이상의 클라이언트 디바이스(102)에 비디오 스트림들을 브로드캐스팅한다. 서버 시스템(106)은 폐쇄 자막 콘텐츠로부터 유도되는 정보의 세트를 포함하는 요청을 수신하고, 그 정보의 세트에 기초하여 명령들의 세트를 결정하며, 실행을 위해서 클라이어트 디바이스(102)에 그 명령들의 세트를 송신한다. 클라이언트 디바이스(102)에 의해 실행될 때, 그 명령들의 세트는 클라이언트 디바이스(102)로 하여금 비디오 스트림의 폐쇄 자막들로부터 추출되는 정보의 세트에 관한 정보를 디스플레이하게 한다.
일부 구현들에 따르면, 비디오 또는 비디오 스트림은 이동 중인 객체들을 갖는 장면들을 나타내는 이미지들 또는 프레임들의 시퀀스이다. 비디오는 초당 임의의 수의 이미지들 또는 프레임들을 디스플레이한다. 예를 들어, 비디오는 일반적으로 초당 30개의 프레임들을 디스플레이한다. 대조적으로, 여기서 사용되는 정지 이미지는 단독을 의미하고, 정적이거나 정지적이며, 비디오가 통상적으로 포함하는 것과 같은 이동 또는 변화를 포함하지 않는다. 여기서의 이미지는 더 큰 이미지 또는 비디오 내에 포함되거나 삽입될 수 있다.
폐쇄 캡셔닝은 청취자들의 멤버들을 선택하기 위해서 자막 텍스트를 디스플레이하기 위한 능력을 지칭한다. 폐쇄 자막들은 통상적으로 프로그램의 오디오 부분의 트랜스크립션을, 그것이 발생할 때 또는 종종 비-음성 엘리먼트들을 포함하는 약간의 지연(축어 또는 편집된 형태로)을 통해 디스플레이한다. 폐쇄 자막들의 "폐쇄"란 용어는 모든 뷰어들이 자막을 볼 수 있는 것은 아님을 나타낸다. 단지 폐쇄 자막들을 디코딩하거나 활성시키기로 선택하는 사용자들만이 그것들을 볼 수 있다. 폐쇄 자막들은 모든 사용자들에게 보여질 수 있는 개방 자막들로부터 구별된다. 폐쇄 자막들은 또한 서브타이틀들로부터 구별된다. 서브타이트들은 뷰어가 언어 또는 액센트를 들을 수는 있지만 이해할 수는 없다고 가정하고, 그럼으로써 서브타이틀들은 단지 대화 및 임의의 온-스크린 텍스트만을 기술한다. 폐쇄 자막들은 말해진 대화, 음악, 사운드 효과들, 및 화자들의 말하는 방식 및 화자들의 아이덴티티와 같은 비-음성 정보를 포함하는 모든 중요한 오디오 콘텐츠를 못듣거나 청취하기 어려운 것을 설명하는 것을 목적으로 한다. 폐쇄 자막들은 종종 콘텐츠 생성자 또는 콘텐츠의 브로드캐스터에 의해 생성된다.
일부 구현들에 있어서, 서버 시스템(106)은 단일 서버 시스템으로서 구현되는데 반해, 다른 구현들에 있어서, 그것은 다수 서버들의 분산형 시스템으로서 구현된다. 단지 설명의 편의를 위해서, 서버 시스템(106)은 단일 서버 시스템 상에 구현되는 것으로서 아래에서 설명된다. 일부 구현들에 있어서, 브로드캐스트 시스템(128)은 단일 서버 시스템으로서 구현되는데 반해, 다른 구현들에 있어서, 그것은 다수 서버들의 분산형 시스템으로서 구현된다. 단지 설명의 편의를 위해, 브로드캐스트 시스템(128)은 단일 서버 시스템 상에 구현되는 것으로서 아래에서 설명된다.
통신 네트워크(들)(104)는 인트라넷, 익스트라넷, 또는 인터넷과 같은 임의의 유선 또는 무선 로컬 영역 네트워크(LAN) 및/또는 광역 네트워크(WAN)일 수 있다. 통신 네트워크(104)가 하나 이상의 클라이언트 디바이스(102)와 서버 시스템(106) 간의 통신 성능을 제공하는 것으로도 충분한다. 일부 구현들에 있어서, 통신 네트워크(104)는 TCP/IP(Transmission Control Protocol/Internet Protocol)을 사용하여 정보를 전송하기 위해 HTTP(HyperText Transport Protocol)를 사용한다. HTTP는 클라이언트 디바이스(102)가 통신 네트워크(104)를 통해 이용가능한 다양한 자원들을 액세스하도록 허용한다. 그러나, 다양한 구현들이 임의의 특정한 프로토콜의 사용으로 제한되지 않는다.
일부 구현들에 있어서, 서버 시스템(106)은 서버 시스템(106)과 네트워크(104) 간의 통신을 용이하게 하는 프론트 엔드 서버(112)를 포함한다. 일부 구현들에 있어서, 프론트 엔드 서버(112)는 명령들의 세트에 대한 요청을 수신하도록 구성된다. 일부 구현들에 있어서, 프론트 엔드 서버(112)는 요청하는 클라인트 서버(102)에 명령들의 세트를 송신하도록 구성된다. 일부 구현들에 있어서, 프론트 엔드 서버(112)는 콘텐츠 파일들을 송신하도록 구성되고, 콘텐츠 파일들에 링크한다. 이러한 상황에서, "콘텐츠 파일"이란 용어는 비디오 파일, 이미지 파일, 음악 파일, 웹페이지, 이메일 메시지, SMS 메시지, 콘텐츠 피드, 광고, 쿠폰, 플레이리스트 및 XML 콘텐츠 파일을 포함하는(그러나, 이들로 제한되지는 않음) 임의의 포맷의 임의의 전자 파일을 의미한다. 일부 구현들에 있어서, 프론트 엔드 서버(112)는 또한 비디오 스트림을 클라이언트(112)에 송신하도록 구성된다.
콘텐츠 피드(또는 채널)는 존재하는, 최근에 부가된, 또는 피드 소스에서 최근에 업데이트된 콘텐츠 아이템들의 리스트를 제공하는 리소스 또는 서비스이다. 콘텐츠 피드 내의 콘텐츠 아이템은 아이템 그 자체(콘텐츠 아이템이 특정하는 실제 콘텐츠), 타이틀(때때로 헤드라인으로 불림), 및/또는 콘텐츠의 설명, 콘텐츠의 네트워크 위치 또는 로케이터(예를 들어, URL) 또는 이들의 임의의 조합과 관련된 콘텐츠를 포함할 수 있다. 예를 들어, 콘텐츠 아이템이 텍스트 아티클을 식별하는 경우, 콘텐츠 아이템은, 로케이터 및 타이틀(또는 헤드라인)과 함께 아티클 그 자체의 인라인을 포함할 수 있다. 대안적으로, 콘텐츠 아이템은 아티클 콘텐츠가 아니라, 타이틀, 설명 및 로케이터를 포함할 수 있다. 따라서, 일부 콘텐츠 아이템들은 이러한 아이템들과 관련된 콘텐츠를 포함할 수 있는 반면, 다른 것들은 아이템들의 전체 콘텐츠가 아니라 관련된 콘텐츠에 대한 링크들을 포함한다. 콘텐츠 아이템은 콘텐츠에 대한 추가의 정보를 제공하는 추가의 메타데이터를 또한 포함할 수 있다. 콘텐츠의 전체 버젼은 웹 페이지들, 이미지들, 디지털 오디오, 디지털 비디오, 휴대용 콘텐츠 파일 포맷(PDF) 콘텐츠 파일들 등을 포함하는 임의의 기계 판독 가능 데이터를 포함할 수 있지만, 이들에 제한되는 것은 아니다.
일부 구현들에서, 콘텐츠 피드는 RSS와 같은 콘텐츠 신디케이션 포맷을 이용하여 특정화된다. RSS는 "rich site summary," "RDF site summary," 또는 "Really Simple Syndication"을 의미하는 약자이다. "RSS"는 피드에 포함된 콘텐츠 아이템들 및 콘텐츠 피드를 특정하기 위한 XML(Extensible Markup Language)에 기초하여 임의의 포맷군들을 지칭할 수 있다. 일부 다른 구현들에서, 다른 콘텐츠 신디케이션 포맷들, 이를테면, Atom 신디케이션 포맷 또는 VCALENDAR 카렌다 포맷은 콘텐츠 피드들을 특정하기 위해 사용될 수 있다.
일부 구현들에서, 서버 시스템(106)은 하나 이상의 관련 아이덴티티들 및 관련 메트릭들을 저장하는 아이덴티티 데이터베이스(116)를 포함한다. 아이덴티티는 사람, 장소 또는 사물을 나타낼 수 있으며, 관련된 메트릭들은 각각의 아이덴티티의 중요성을 측정한다. 일부 구현들에서, 아이덴티티 데이터베이스(116)는 분산된 데이터베이스이다.
일부 구현들에서, 서버 시스템(106)은 아이덴티티 데이터베이스(116)에 저장된 정보를 관리 및 리트리브하는 식별 모듈(114)을 포함한다. 식별 모듈(114)은 요청들을 수신하고 요청에 부합하는, 아이덴티티 데이터베이스(116)에 저장된 아이덴티티들을 리턴한다.
일부 구현들에서, 서버 시스템(106)은 사용자 데이터를 자장하는 사용자 데이터베이스(124)를 포함한다. 각각의 사용자에 대한 사용자 데이터베이스는 사용자 식별자, 관련된 콘텐츠 파일들 및 선호도들을 포함한다. 일부 구현들에서, 사용자 데이터베이스(124)는 분산된 데이터베이스이다.
일부 구현들에서, 서버 시스템(106)은 콘텐츠 데이터베이스(122)를 포함한다. 일부 구현들에서, 콘텐츠 데이터베이스(122)는 비디오들, 이미지들, 음악, 웹 페이지들, 이메일 메시지들, SMS 메시지들, 콘텐츠 피드들, 광고들, 쿠폰들, 플레이리스트 XML 콘텐츠 파일들을 저장한다. 일부 구현들에서, 콘텐츠 데이터베이스(122)는 비디오들, 이미지들, 음악, 웹 페이지들, 이메일 메시지들, SMS 메시지들, 콘텐츠 피드들, 광고들, 쿠폰들, 플레이리스트 XML 콘텐츠 파일들에 대한 링크들을 저장한다. 일부 구현들에서, 콘텐츠 데이터베이스(122)는 분산된 데이터베이스이다.
일부 구현들에서, 서버 시스템(106)은 클라이언트 디바이스(102)에 의해 실행될 명령들의 세트를 생성하는 명령 모듈(118)을 포함한다. 명령 모듈(118)은 요청(220)에 포함된 정보 및/또는 사용자 데이터베이스(124)에 포함된 정보를 기초로 명령들의 세트를 생성한다. 일부 구현들에서, 명령 모듈(118)은 요청에 포함된 정보의 세트에 기초하여 콘텐츠 파일들에 대한 하나 이상의 링크들 및/또는 하나 이상의 콘텐츠 파일들을 선택한다. 명령 모듈(118)은 요청 클라이언트 디바이스(102)에 대한 전송을 위해 하나 이상의 콘텐츠 파일들 및/또는 콘텐츠 파일들에 대한 하나 이상의 링크들을 프론트 엔드 서버(112)로 전송한다.
일부 구현들에서, 사용자는 클라이언트 디바이스(102)를 통해 서버 시스템(106)과 상호작용한다. 클라이언트 디바이스들(102)은 통신 네트워크(104)에 접속할 수 있는 임의의 적절한 컴퓨터 디바이스, 이를테면, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 디바이스, 네트워크, 인터넷 키오스크, 개인 디지털 보조기, 모바일 폰, 게임 디바이스, 또는 서버 시스템(106)과 통신할 수 있는 임의의 다른 디바이스일 수 있다. 클라이언트 디바이스들(102)은 전형적으로, 하나 이상의 프로세서들, 비휘발성 메모리, 이를테면 하드디스크 드라이브 또는 플래시 드라이브 및 디스플레이를 포함한다. 일부 구현들에서, 클라이언트 디바이스들(102)은 (도 3에 도시된 바와 같이) 키보드 및 마우스와 같은 입력 디바이스들을 갖는다. 일부 구현들에서, 클라이언트 디바이스(102)는 입력을 위한 터치스크린 디스플레이들 및/또는 마이크로폰을 갖는다. 일부 구현들에서, 클라이언트 디바이스는 프로젝터에 연결된다. 일부 구현들에서, 클라이언트 디바이스(102)는 디스플레이 디바이스(108)에 연결된다. 일부 구현들에서, 클라이언트 디바이스(102)는 디스플레이 디바이스(108)를 포함한다. 환언하면, 일부 구현들에서, 클라이언트 디바이스 및 디스플레이 디바이스는 단일 다비이스에 포함된다. 일부 구현들에서, 디스플레이 디바이스(108)는 텔레비젼 또는 스크린, 이를테면, LCD 또는 LED 디스플레이이다.
일부 구현들에서, 클라이언트 디바이스들(102)은 하나 이상의 브로드캐스트 시스템들(128)로부터 비디오 스트림들(126)을 수신한다. 일부 구현들에서, 클라이언트 디바이스(102)는 케이블 텔레비젼 입력들, 위성 수신기들로부터, 네트워크 연결로부터, 또는 방송중(over-the-air) 안테나로부터 비디오 스트림들을 수신한다.
도 2a는 본 구현의 하나의 구현에 따른 서버 시스템(106)을 도시하는 블록도이다. 전형적으로, 서버 시스템(106)은 하나 이상의 프로세싱 유닛들(CPU들)(202), 하나 이상의 네트워크 또는 다른 통신 인터페이스들(208), 메모리(206), 및 이러한 컴포넌트들을 서로 연결하는 하나 이상의 통신 버스들(204)을 포함한다. 메모리(206)는 고속의 랜덤 액세스 메모리, 예를 들어 DRAM, SRAM, DDR RAM, 또는 다른 랜덤 액세스 고상 메모리 디바이스들을 포함하며, 그리고 비휘발성 메모리, 예를 들어 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 고상 저장 디바이스들을 포함할 수 있다. 메모리(206)는 CPU(들)(202)로부터 원격에 위치되는 하나 이상의 저장 디바이스들을 선택적으로 포함할 수 있다. 메모리(206) 내의 비휘발성 및 휘발성 메모리 디바이스(들)를 포함하는 메모리(206)는 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 구현들에서, 메모리(206) 또는 메모리(206)의 비일시적인(non-transitory) 컴퓨터 판독가능한 저장 매체는, 운영 체제(216), 네트워크 통신 모듈(218), 식별 모듈(114), 아이덴티티 데이터베이스(116), 명령 모듈(118), 콘텐츠 데이터베이스(122) 및 사용자 데이터베이스(124)를 포함하는, 하기의 프로그램들, 모듈들 및 데이터 구조들, 또는 그 서브세트를 포함한다.
운영 체제(216)는 다양한 기본 시스템 서비스들을 핸들링하기 위한 그리고 하드웨어 종속 태스크(hardware dependent task)들을 수행하기 위한 프로시저(procedure)들을 포함한다.
네트워크 통신 모듈(218)은, 하나 이상의 통신 네트워크 인터페이스들(208)(유선 또는 무선), 및 인터넷, 다른 광역(wide area) 네트워크들, 근거리(local area) 네트워크들, 거대 도시(metropolitan area) 네트워크 등과 같은 하나 이상의 통신 네트워크들을 통해, 다른 디바이스들과의 통신을 용이하게 한다.
아이덴티티 데이터베이스(116)는 하나 이상의 아이덴티티들(234)을 저장한다. 각각의 아이덴티티(234-2)는 이름(240), 중요성 메트릭(importance metric)(242) 및 관련 액션들(244)을 포함한다. 이름(240)은 아이덴티티를 식별한다. 예를 들어, 이름(240)은 사람, 장소 또는 물건(thing)의 이름일 수 있다. 중요성 메트릭(242)은 아이덴티티의 중요성을 측정하고, 아이덴티티들의 세트 중에서 어떤 아이덴티티가 가장 중요한지를 결정하는 데에 이용된다. 관련된 액션들(244)은 메시지 전송, 메시지 디스플레이 및 어플리케이션 실행과 같은 하나 이상의 액션들을 특정한다. 일부 구현들에서, 관련된 액션(244)은 콘텐츠 데이터베이스(122) 내의 하나 이상의 콘텐츠 파일들을 특정한다.
콘텐츠 데이터베이스(122)는 콘텐츠 파일들 및/또는 콘텐츠 파일들에 대한 링크들을 저장한다. 일부 구현들에서, 콘텐츠 데이터베이스(122)는 비디오들, 이미지들 및 뮤직과 같은 미디어(232)를 저장한다. 일부 구현들에서, 콘텐츠 데이터베이스(122)는 광고들(226), 쿠폰들(226), 플레이리스트(playlist)들(228), 콘텐츠 피드(feed)들(230) 및 XML 콘텐츠 파일들을 저장한다. 일부 구현들에서, 콘텐츠 데이터베이스(122)는 웹 페이지들(233), 이메일 메시지들 및 SMS 메시지들을 저장한다. 일부 구현들에서, 콘텐츠 데이터베이스(122)는, 비디오들, 이미지들, 뮤직, 웹 페이지들, 이메일 메시지들, SMS 메시지들, 콘텐츠 피드들, 광고들, 쿠폰들, 플레이리스트들 및 XML 콘텐츠 파일들에 대한 링크들을 포함한다. 일부 구현들에서, 콘텐츠 데이터베이스(122) 내의 콘테츠 파일들은 각각의 콘텐츠 파일의 인기(popularity)를 측정하는 메트릭을 포함한다.
사용자 데이터베이스(124)는 하나 이상의 사용자들에 대한 사용자 데이터(236)를 저장한다. 일부 구현들에서, 각각의 사용자에 대한 사용자 데이터(236-2)는 사용자 식별자(246) 및 관련된 파일들(248)을 포함한다. 일부 구현들에서, 각각의 사용자에 대한 사용자 데이터(236-2)는 선호도(preference)들(250)을 포함한다. 사용자 식별자(230)는 사용자를 식별한다. 일부 구현들에서, 관련된 파일들(248)은, 사용자와 관련된, 콘테츠 데이터베이스(122) 내에 저장된 콘텐츠 파일들의 식별자들의 리스트를 포함한다. 사용자와 관련된 파일들(248)은 콘텐츠 데이터베이스(122) 내에 저장된 임의의 파일을 포함할 수 있다. 일부 구현들에서, 선호도들(250)은 사용자가 관심이 있거나 또는 관심이 없는 정보의 카테고리들을 포함한다. 예를 들어, 사용자는 스포츠에는 전혀 관심이 없고 공상 과학 소설에는 관심이 있을 수 있다. 일부 구현들에서, 선호도들(250)은 관심 카테고리들에 대한 카운트들을 포함한다. 예를 들어, 각 카테고리는 사용자가 그 카테고리와 관련된 아이템을 본(view) 횟수들(number of times)을 나타내는 넘버 또는 스코어를 포함할 수 있다. 일부 구현들에서, 선호도들(250)은 사용자가 선호하거나 또는 선호하지 않는 하나 이상의 어플리케이션들을 나타낸다. 예를 들어, 선호도들(250)은 사용자가 사용자의 플레이리스트에 추가된 노래들을 갖기를 선호한다는 것을 나타낼 수 있다. 다른 예에서, 선호도들(250)은 사용자가 쿠폰 제공(offer)들을 수신하지 않기를 선호한다는 것을 나타낼 수 있다.
명령 모듈(118)은 요청에 포함된 정보를 기초로 명령들(358)의 세트를 생성하며, 이러한 명령들의 세트를 클라이언트(102)에게 전송한다.
일부 구현들에서, 명령 모듈(116)은 클라이언트(102)로부터의 요청(220)의 수신에 응답하여 한 세트의 명령들(358)을 생성한다. 일부 구현들에서, 요청(220)은 사용자 식별자(262) 및 한 세트의 정보(350)를 포함한다. 사용자 식별자(262)는 요청과 연관된 사용자를 식별한다. 예를 들어, 사용자 식별자(262)는 클라이언트 디바이스(102)와 연관된 IP 어드레스 또는 사용자에 의해 선택되거나 사용자를 고유하게 식별하는 서버에 의해 할당된 영숫자 값일 수 있다. 일부 구현들에서, 한 세트의 정보(350)는 폐쇄 자막 스트림(265)의 콘텐츠로부터 파싱된 정보를 포함한다.
일부 구현들에서, 한 세트의 정보(350)는 알파벳 문자들, 숫자들, 심벌들 또는 이들의 임의의 조합으로 구성된 문자열들을 포함한다. 일부 구현들에서, 한 세트의 정보(350)는 사람, 장소 또는 물건의 이름, 그리고 애플리케이션의 명칭과 같은 추가 정보를 포함한다. 예를 들어, 한 세트의 정보(350)는 음악가의 이름을 포함할 수 있고 미디어 애플리케이션을 표시할 수 있다. 일부 구현들에서, 한 세트의 정보(350)는 비디오 스트림의 제목 및/또는 비디오 스트림의 카테고리를 포함한다. 예를 들어, 한 세트의 정보(350)는 영화 제목 및 영화의 카테고리나 장르(예를 들어, 드라마, 공상 과학 등)를 포함할 수 있다. 일부 구현들에서, 한 세트의 정보(350)는 한 세트의 명령들을 포함한다. 일부 구현들에서, 한 세트의 명령들은 하나 이상의 애플리케이션들을 호출하기 위한 명령들을 포함한다. 일부 구현들에서, 한 세트의 명령들은 하나 이상의 메시지들을 디스플레이 및/또는 전송하기 위한 명령들을 포함한다. 일부 구현들에서, 메시지들은 이메일 메시지들과 SMS 메시지들을 포함한다.
일부 구현들에서, 명령 모듈(118)은 요청(220)으로 수신된 한 세트의 정보(350)를 사용자 데이터베이스(124)에 저장하며, 요청(220)에 의해 식별된 사용자에 한 세트의 정보(350)를 연관시킨다. 일부 구현들에서, 각각의 사용자로부터의 요청(220)에 포함된 한 세트의 정보(350)는 각각의 사용자에 대한 선호도들을 결정하는데 사용된다. 예를 들어, 한 세트의 정보(350)는 각각의 사용자가 본 콘텐츠의 카테고리 정보(예를 들어, 공상 과학)를 포함할 수 있다. 이 예에서, 명령 모듈(118)은 각각의 사용자에 대한 사용자 선호도들(250)에 저장된 각각의 카테고리 카운트들을 증분한다.
일부 구현들에서, 명령 모듈(118)은 요청(220)에 포함된 정보를 기초로 한 세트의 명령들(358)을 생성한다. 일부 구현들에서, 명령 모듈(118)은 사용자 선호도들(250) 및/또는 요청(220)에 포함된 한 세트의 정보(350)를 기초로 한 세트의 명령들(358)을 생성한다.
일부 구현들에서, 명령 모듈(116)은 한 세트의 정보(350)의 적어도 일부를 식별 모듈(114)에 전송하여 하나 이상의 관련 아이덴티티들(234)을 얻는다. 식별 모듈(114)은 한 세트의 정보(350)에 포함된 정보를 아이덴티티 데이터베이스(116) 내 하나 이상의 아이덴티티들(234)에 매칭시킨다. 일부 구현들에서, 식별 모듈(114)은 한 세트의 정보(350)를 파싱하여 파싱된 정보를 얻고 파싱된 정보로 검색 질의들을 생성한다. 예를 들어, 한 세트의 정보(350)는 고유 명사들의 리스트를 포함할 수 있고, 식별 모듈(114)은 각각의 고유 명사로 질의를 구성할 수 있다. 일부 구현들에서, 한 세트의 정보(350)는 하나 이상의 문장들, 특수 문자들 및/또는 심벌들을 포함한다. 일부 구현들에서, 하나 이상의 문장들은 아이덴티티 데이터베이스(116)에 대한 질의들로서 사용된다. 일부 구현들에서, 한 세트의 정보(350) 내의 특수 문자에 이어지는 미리 정해진 양의 텍스트가 아이덴티티 데이터베이스(116)에 대한 질의로서 사용된다. 예를 들어, 한 세트의 정보(350)가 "#배우 사람 x"라는 텍스트를 포함한다면, "사람 x"라는 텍스트가 질의로서 사용될 것이다.
생성된 질의들은 아이덴티티 데이터베이스(116)로 전송되어 잠재적 매칭들을 찾는다. 일부 구현들에서, 식별 모듈(114)은 각각의 아이덴티티들과 연관된 중요성 메트릭(242)을 기초로 검색 결과들을 필터링한다. 예를 들어, 식별 모듈(114)은 미리 정해진 임계치보다 높은 중요성 메트릭(242)을 갖는 아이덴티티들을 선택할 수도 있고 또는 한 세트의 아이덴티티들 중에서 상위 몇 개의 아이덴티티들을 선택할 수도 있다. 식별 모듈(114)은 하나 이상의 결정된 아이덴티티들을 명령 모듈(118)에 전송한다.
일부 구현들에서, 명령 모듈(118)은 명령 모듈(118)로부터 하나 이상의 결정된 아이덴티티들을 수신하고, 하나 이상의 결정된 아이덴티티들을 기초로 한 세트의 명령들(358)을 결정한다. 명령 모듈(118)은 하나 이상의 결정된 아이덴티티들 중에서 하나의 아이덴티티를 선택한다. 예를 들어, 명령 모듈(118)은 최상위 연관된 중요성 메트릭(242)을 갖는 아이덴티티를 선택할 수도 있다. 일부 구현들에서, 선택된 아이덴티티는 사용자 아이덴티티(262)에 의해 식별된 사용자와 연관된 선호도들(250)을 기초로 결정된다. 예를 들어, 사용자의 선호도가 사용자가 스포츠에 대한 호감을 갖는다고 나타낼 때, 명령 모듈(118)은 하나 이상의 스포츠 관련 아이덴티티들을 선택할 수도 있다.
아이덴티티가 선택된 후, 명령 모듈(118)은 명령들의 세트(358)를 생성한다. 몇몇 구현들에서, 명령 모듈(118)은 정보의 세트(350)로부터 결정된 각각의 아이덴티티에 대해 명령들의 세트를 결정한다. 몇몇 구현들에서, 명령들의 세트(358)는 선택된 아이덴티티에 대한 연관된 동작(244)에 기초한다. 예를 들어, 선택된 아이덴티티가 역사적 인물의 이름이면, 연관된 동작(244)은 그 역사적 인물에 대한 정보를 갖는 웹페이지를 나타내는 것을 특정할 수 있다. 몇몇 구현들에서, 명령들의 세트(358)는, 사용자 식별자(262)에 의해 식별되는 사용자에 대한 사용자 선호도들(250) 및 하나 이상의 결정된 아이덴티티들에 기초한다. 예를 들어, 사용자의 선호도들(250)은, 사용자가 선호하거나 선호하지 않는 애플리케이션들 또는 동작들을 표시할 수 있다. 예를 들어, 사용자는, 특정한 애플리케이션들이 사용자의 디바이스 상에서 실행되지 않는 것을 선호할 수 있다. 다른 예에서, 사용자는 콘텐츠 피드에서 정보를 수신하는 것을 선호할 수 있다.
몇몇 구현들에서, 명령 모듈(118)은, 콘텐츠 데이터베이스(122)의 관련 콘텐츠 파일들을 식별하기 위한 탐색 문의들을 생성하기 위해, 식별 모듈(118)에 의해 리턴되는 하나 이상의 결정된 아이덴티티들을 이용한다. 예를 들어, 하나 이상의 결정된 아이덴티티들이 배우의 이름을 포함하면, 명령 모듈(118)은, 그 배우가 연관된 웹 페이지들, 비디오들, 사진들 및 뉴스 스토리들과 같은 콘텐츠 파일들을 결정할 수 있고, 콘텐츠 파일들과 연관된 메트릭들에 기초하여 어느 것이 사용자에게 가장 흥미있을지를 결정한다. 예를 들어, 메트릭들은 대중성 또는 관련성을 측정(measure)할 수 있다.
몇몇 구현들에서, 명령들의 세트(358)는 하나 이상의 기능들 또는 애플리케이션들을 클라이언트 디바이스(102) 상에 발동시키는 명령들을 포함한다. 몇몇 구현들에서, 하나 이상의 애플리케이션들은, 미디어 애플리케이션, 피드 판독기 애플리케이션, 브라우저 애플리케이션 및 쿠폰 북 애플리케이션으로 이루어진 그룹으로부터 선택된다. 몇몇 구현들에서, 하나 이상의 애플리케이션들은, 관련 아이덴티티들을 이용하여 식별된 하나 이상의 콘텐츠 파일들에 기초하여 선택된다. 몇몇 구현들에서, 명령들의 세트(358)는, 애플리케이션을 발동시키는 명령들, 및 발동된 애플리케이션이 콘텐츠 데이터베이스(118)에 포함된 하나 이상의 콘텐츠 파일들을 다운로드하도록 지시하는 명령들을 포함한다. 예를 들어, 명령 모듈(118)은, 피더 판독기 디바이스를 발동시키는 명령들, 및 피드 판독기 디바이스가 배우와 관련된 콘텐츠 아이템들을 다운로드하게 하는 명령들을 생성할 수 있다. 다른 예에서, 명령 모듈(118)은, 웹 브라우저를 발동시키는 명령들, 및 브라우저가 특정한 웹사이트(예를 들어, 상품 웹사이트)로 내비게이션되게 하는 명령들을 생성할 수 있다. 애플리케이션 실행의 추가적인 예들은 도 5b, 5c, 5d 및 5e의 논의에서 논의된다.
몇몇 구현들에서, 명령들의 세트(358)는, 클라이언트 디바이스(102)의 디스플레이(313) 상에 메시지를 디스플레이하는 명령들을 포함한다. 몇몇 구현들에서, 명령들의 세트(358)는, 이메일 메시지 또는 SMS 메시지를 사용자에게 전송하는 명령들을 포함한다. 이메일 메시지 또는 SMS의 콘텐츠는 명령의 세트(350)와 관련된다. 예를 들어, 메시지는 명령의 세트(350)에 포함된 대명사와 관련된 홍보용 제공을 포함할 수 있다.
명령 모듈(118)은 클라이언트 디바이스(102)로부터의 요청에 대한 응답으로 명령들의 세트(358)를 생성하고 클라이언트 디바이스(102)에 전송한다. 몇몇 구현들에서, 명령 모듈(118)에 의해 생성된 명령들(358)은 콘텐츠 피드에 포함된다. 몇몇 구현들에서, 명령 모듈(118)은, 명령들의 세트(358)와의 (콘텐츠 데이터베이스(122)에 저장되는) 콘텐츠 파일 링크들 및/또는 하나 이상의 콘텐츠 파일들을 리트리브 및 전송한다.
앞서 식별된 엘리먼트들 각각은, 이전에 언급된 메모리 디바이스들 중 하나이상의 것에 저장될 수 있고, 모듈들 또는 프로그램들 각각은, 앞서 설명된 기능을 수행하기 위한 명령들의 세트에 대응한다. 명령들의 세트는 하나 이상의 프로세서들(예를 들어, CPU들(202))에 의해 실행될 수 있다. 앞서 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트)은 별개의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요가 없고, 따라서 이 모듈들의 다양한 서브세트들은 다양한 구현들에서 결합되거나 그렇지 않으면 재배열될 수 있다. 몇몇 구현들에서, 메모리(206)는 앞서 식별된 모듈들 및 데이터 구조들의 서브세트를 저장할 수 있다. 게다가, 메모리(206)는 앞서 설명되지 않은 추가적인 모듈들 및 데이터 구조들을 저장할 수 있다.
도 2a는 서버 시스템을 도시하지만, 도 2a는, 본 명세서에서 설명되는 구현들의 구조적 개략으로서 보다는, 서버들의 세트에 존재할 수 있는 다양한 특징들의 보다 기능적 설명들로서 의도된다. 실제로, 그리고 이 분야의 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 결합될 수 있고, 몇몇 아이템들은 분리될 수 있다. 예를 들어, 도 2a에 별개로 도시된 몇몇 아이템들(예를 들어, 운영 체계(216) 및 네트워크 통신 모듈(218))은 단일 서버들 상에서 구현될 수 있고, 단일 아이템들은 하나 이상의 서버들에 의해 구현될 수 있다. 서버 시스템(106)을 구현하는데 이용되는 서버들의 개수, 및 서버들 사이에 특징들이 어떻게 할당되는지는, 구현마다 상이할 것이고, 평균 이용 기간들 동안 뿐만 아니라 피크 이용 기간들 동안 시스템이 핸들링해야 하는 데이터 트래픽의 양에 부분적으로 의존할 수 있다.
도 2b는 본 발명의 구현예의 일 구현예에 따른 브로드캐스트 시스템(128)을 예시한 블록도이다. 브로드캐스트 시스템(128)은 통상적으로 하나 이상의 프로세싱 유닛들(CPU들)(368), 하나 이상의 네트워크 또는 다른 통신 인터페이스들(262), 메모리(268), 전송 인터페이스(226) 및 이러한 컴포넌트들을 상호 접속하기 위한 하나 이상의 통신 버스들(262)을 포함한다. 메모리(268)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하고, 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 고체 상태 저장 디바이스들과 같은 비휘발성 메모리를 포함할 수 있다. 메모리(268)는 선택적으로 CPU(들)(358)로부터 원격에 위치된 하나 이상의 저장 디바이스들을 포함할 수 있다. 메모리(268) 내의 비휘발성 및 휘발성 메모리 디바이스(들)를 포함하는 메모리(268)는 컴퓨터 판독 가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(268) 또는 메모리(268)의 비일시적인 컴퓨터 판독 가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 운영 체계(270), 네트워크 통신 모듈(272), 비디오 모듈(273) 및 비디오 스트림 데이터베이스(276)를 포함하는 이들의 서브세트를 저장한다.
전송 인터페이스(266)는 라디오 전송들, 위성 전송들을 통해 또는 케이블 라인들을 통해 비디오 스트림들을 전송한다.
운영 체계(270)는 다양한 기본적인 시스템 서비스들을 처리하고 하드웨어 종속 작업들을 수행하기 위한 절차들을 포함한다.
네트워크 통신 인터페이스 모듈(272)은 인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 도시권 네트워크들 등과 같은 하나 이상의 통신 네트워크들 및 하나 이상의 통신 네트워크 인터페이스들(350)(유선 또는 무선)을 통해 다른 디바이스들과의 통신을 용이하게 한다. 일부 구현예들에서, 네트워크 통신 모듈(272)은 비디오 스트림 데이터베이스(268)에 저장된 비디오 스트림들을 네트워크 인터페이스(350)를 통해 전송한다.
비디오 스트림 데이터베이스(274)는 비디오 스트림들(276)을 저장한다 일부 구현예들에서, 비디오 스트림 데이터베이스(274) 내의 비디오 스트림들(276)은 비디오 콘텐츠(254) 및 폐쇄 자막들(256)을 포함한다.
비디오 모듈(273)은 비디오 스트림 데이터베이스(274)에 저장된 하나 이상의 비디오 스트림들(276)을 하나 이상의 클라이언트 디바이스들(102)로 전송한다.
일부 구현예들에서, 브로드캐스트 시스템(108) 및 서버 시스템(106)의 기능은 단일 서버 시스템으로 결합될 수 있다.
위에서 식별된 엘리먼트들 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있고, 모듈들 또는 프로그램들 각각은 상술된 기능을 수행하기 위한 명령들의 세트에 대응한다. 명령들의 세트는 하나 이상의 프로세서들(예를 들면, CPU들(358))에 의해 실행될 수 있다. 위에서 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트)은 개별적인 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요는 없고, 따라서 이러한 모듈들의 다양한 서브세트들은 다양한 구현예들에서 결합 또는 그렇지 않다면 재배열될 수 있다. 일부 구현예들에서, 메모리(268)는 위에서 식별된 모듈들 및 데이터 구조들의 서브세트를 저장할 수 있다. 또한, 메모리(268)는 위에 기재되지 않은 부가적인 모듈들 및 데이터 구조들을 저장할 수 있다.
도 2b가 브로드캐스트 시스템을 도시하지만, 도 2b는 본원에 기재된 구현예들의 구조적 도식으로서 보다는 서버들의 세트에 존재할 수 있는 다양한 특징들의 보다 기능적 설명으로서 의도된다. 실제로, 및 당분야의 숙련자들에 의해 인지되는 바와 같이, 개별적으로 도시된 물품들이 결합될 수 있고, 일부 물품들이 분리될 수 있다. 예를 들면, 도 2b에 개별적으로 도시된 일부 물품들(예를 들면, 운영 체계(270) 및 네트워크 통신 모듈(272))은 단일 서버들 상에서 구현될 수 있고, 단일 물품들은 하나 이상의 서버들에 의해 구현될 수 있다. 브로드캐스트 시스템(128)을 구현하는데 사용되는 서버들의 실제 수 및 특징들이 그들 사이에서 할당되는 방법은 구현예마다 변동할 것이고, 피크 사용 기간들 동안에 및 평균 사용 기간들 동안에 시스템이 처리해야 하는 데이터 트래픽의 양에 부분적으로 의존할 수 있다.
도 3은 일부 구현예들에 따른 클라이언트 디바이스(102)를 예시한 블록도이다. 클라이언트 디바이스(102)는 통상적으로 하나 이상의 프로세싱 유닛들(CPU들)(302), 하나 이상의 네트워크 또는 다른 통신 인터페이스들(308), 메모리(306), 및 이러한 컴포넌트들을 상호 접속하기 위한 하나 이상의 통신 버스들(304)을 포함한다. 클라이언트 디바이스(102)는 또한 디스플레이 디바이스(313) 및 키보드 및/또는 마우스(또는 다른 포인팅 디바이스)(314)를 포함하는 사용자 인터페이스를 포함할 수 있다. 메모리(306)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하고, 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 고체 상태 저장 디바이스들과 같은 비휘발성 메모리를 포함할 수 있다. 메모리(306)는 선택적으로 CPU(들)(302)로부터 원격에 위치된 하나 이상의 저장 디바이스들을 포함할 수 있다. 메모리(306) 또는 대안적으로 메모리(306) 내의 비휘발성 메모리 디바이스(들)는 컴퓨터 판독 가능 저장 매체를 포함한다. 일부 구현예들에서, 클라이언트 디바이스(102)는 터치 스크린 디스플레이를 갖는 휴대용 전자 디바이스이다. 일부 구현예들에서, 메모리(306) 또는 메모리(306)의 컴퓨터 판독 가능 저장 매체는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 운영 체계(316), 네트워크 통신 모듈(318), 사용자 인터페이스 모듈(322), 파싱 모듈(126), 애플리케이션들(328) 및 데이터(342)를 포함하는 이들의 서브세트를 저장한다.
클라이언트 디바이스(102)는 비디오를 입력 및 출력하기 위한 비디오 입력/출력(350)을 포함한다. 몇몇 구현들에서, 비디오 입력/출력(350)은 라디오 전송들, 위성 전송들 및 케이블 라인들로부터 비디오 스트림들을 수신하도록 구성된다. 몇몇 구현들에서, 비디오 입력/출력(350)은 케이블 박스에 접속된다. 몇몇 구현들에서, 비디오 입력/출력(350)은 위성 접시 안테나(satellite dish)에 접속된다. 몇몇 구현들에서, 비디오 입력/출력(350)은 안테나에 접속된다.
몇몇 구현들에서, 클라이언트 디바이스(102)는 텔레비전 비디오 스트림들을 수신하고 레코딩하기 위한 텔레비전 튜너(352)를 포함한다.
운영 체제(316)는 다양한 기본적인 시스템 서비스들을 핸들링하고 하드웨어 의존 작업들을 수행하기 위한 프로시저들을 포함한다.
네트워크 통신 모듈(318)은 하나 이상의 통신 네트워크 인터페이스들(304)(유선 또는 무선) 및 인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 도시 영역 네트워크들 등과 같은 하나 이상의 통신 네트워크들을 통해 서로 통신하는 것을 용이하게 한다.
사용자 인터페이스 모듈(322)은 클라이언트 디바이스(102)에 대한 사용자 입력 및 선택들을 트래킹한다.
그래픽 모듈(320)은 애플리케이션(328)과 연관된 사용자 인터페이스들을 디스플레이한다.
데이터(342)는 비디오 스트림들(344)을 포함한다. 비디오 스트림들(344)은 비디오 콘텐츠(348) 및 폐쇄 자막들(350)을 포함한다.
몇몇 구현들에서, 애플리케이션들(328)은 브라우저(330), 미디어 애플리케이션(332), 쿠폰 북 애플리케이션(336) 및 피드 리더 애플리케이션(340)을 포함한다. 브라우저(330)는 사용자가 웹 페이지들을 관람하도록 허용한다. 미디어 애플리케이션(332)은 비디오, 음악을 재생하고, 이미지들을 디스플레이하고 플레이리스트들(334)을 관리한다. 피드 리더 애플리케이션(340)은 콘텐츠 피드들(341)을 디스플레이한다. 쿠폰 북 애플리케이션(336)은 쿠폰들/광고들(338)을 디스플레이 및 저장한다.
파싱 모듈(126)은 정보의 세트를 생성하도록 비디오 스트림 내의 폐쇄 자막들을 파싱하고, 정보의 세트를 서버(106)에 송신하고, 정보의 세트의 송신에 응답하여 서버(106)로부터 명령들의 세트를 수신하고 명령들의 세트를 실행한다.
몇몇 구현들에서, 파싱 모듈(126)은 정보의 세트(350)를 결정하기 위해 비디오 스트림 내의 폐쇄 자막들을 파싱한다. 파싱 모듈(126)은 폐쇄 자막들의 콘텐츠를 파싱한다. 예를 들어, 폐쇄 자막들이 텍스트 "헬로우 월드(hello world)"를 포함하는 경우, 파싱 모듈은 텍스트 "헬로우 월드"를 파싱할 것이다. 몇몇 구현들에서, 폐쇄 자막들은 텍스트, 숫자들, 심볼들 또는 이들의 임의의 조합을 포함한다.
몇몇 구현들에서, 파싱 모듈(126)은 폐쇄 자막들에서 하나 이상의 특수 문자들을 식별한다. 특수 문자들은 파싱 모듈(126)에 저장된 리스트에서 정의될 수 있다. 특수 문자들은 비디오 스트림의 제공자 또는 브로드캐스터에 의해 정의될 수 있다. 몇몇 구현들에서, 파싱 모듈(126)은 하나 이상의 특수 문자들 및 하나 이상의 특수 문자들에 후속하는 미리 정의된 양의 텍스트를 식별한다. 파싱 모듈(126)은 정보의 세트(350)에 특수 문자들 및/또는 미리 정의된 양의 텍스트를 포함한다. 몇몇 구현들에서, 특수 문자들은 심볼들, 숫자들, 텍스트 또는 이들의 임의의 조합을 포함한다. 예를 들어, 브로드캐스터 또는 콘텐츠제공자는 심볼에 후속하는 텍스트가 명령들의 세트를 생성하는데 관련되었음을 강조하기 위해 심볼 "#"을 폐쇄 자막에 삽입할 수 있다. 심볼에 후속하는 텍스트는 명령들을 포함할 수 있거나, 또는 명령들을 유도할 수 있는 정보를 포함할 수 있다. 예를 들어, 폐쇄 자막은 사람 x가 배우임을 표시하기 위해 "#배우 사람 x"를 포함할 수 있다. 특수 문자들을 비디오 프로그램의 폐쇄 자막에 삽입함으로써, 콘텐츠제공자는 비디오 프로그램이 재생되는 동안 비디오 프로그램의 관람자들에게 관련 정보를 제공할 수 있다.
몇몇 구현들에서, 파싱 모듈(126)은 폐쇄 자막들에서 문장을 식별하고 정보의 세트(350)에 식별된 문장을 포함한다. 예를 들어, 파싱 모듈(126)은 폐쇄 자막들에서 기간들 또는 다른 구두점들을 검출함으로써 문자들을 식별할 수 있다. 파싱 모듈(126)은 정보의 세트(350)에서 식별된 문자들 중 하나 이상을 포함한다.
몇몇의 구현들에서, 파싱 모듈(126)은 폐쇄 자막들에서 하나 이상의 고유 명사들을 식별하고, 그리고 정보의 세트(350) 내에 상기 고유 명사들을 포함시킨다. 예컨대, 파싱 모듈(126)은 폐쇄 자막들에서 대문자 단어들을 선택할 수 있다. 몇몇의 구현들에서, 상기 하나 이상의 고유 명사들이 파싱 모듈(126) 내에 저장된 하나 이상의 고유 명사들과 매칭된다면 상기 하나 이상의 고유 명사들이 선택된다. 고유 명사들은 사람, 장소 또는 사물에 대응할 수 있다. 예컨대, 파싱 모듈(126)은, 하나 이상의 사람들의 이름들, 물건 또는 회사의 이름 또는 국가의 이름을 결정하기 위해, 폐쇄 자막들을 파싱할 수 있다. 명령 모듈(118)은, 서버(106)에 특정 요청들을 이슈하고 고유 명사에 의해 식별된 사람 또는 장소에 관한 웹 페이지로의 링크를 리턴하거나 또는 고유 명사에 의해 식별된 사람에 의한 또는 상기 사람에 관한 미디어 아이템들(예컨대, 노래들 또는 영화들)의 미디어 재생목록을 리턴하기 위해, 이러한 정보를 사용할 수 있다.
몇몇의 구현들에서, 정보의 세트(350)는 요청 모듈(352)에 의해 생성된 요청(220) 내에서 서버(106)에 송신된다. 몇몇의 구현들에서, 요청(356)은 클라이언트(102)의 사용자의 사용자 식별자를 포함한다.
요청(220)을 송신하는 것에 응답하여, 파싱 모듈(126)은 클라이언트(102)로부터 원격으로 위치된 서버로부터 명령들(358)의 세트를 수신한다. 몇몇의 구현들에서, 명령들(358)의 세트는 콘텐츠 피드 내에 포함된다. 몇몇의 구현들에서, 파싱 모듈(126)은 상기 요청에 응답하여 하나 이상의 콘텐츠 파일들을 수신한다.
파싱 모듈(126)은 명령들(358)의 세트를 수신하는 것에 응답하여 명령들(358)의 세트를 실행한다. 몇몇의 구현들에서, 명령들(358)의 세트는, 디스플레이(예컨대, 313 및 110) 상에 메시지를 디스플레이하기 위한 명령들을 포함한다. 메시지의 콘텐츠는 정보의 세트에 관련된다. 예컨대, 메시지는 사용자에게 비디오 세그먼트에 관련된 물건 또는 서비스를 오퍼할 수 있다. 몇몇의 구현들에서, 메시지는 메시지 모듈(356)에 의해 디스플레이된다. 몇몇의 구현들에서, 명령들(358)의 세트는, e-메일 메시지 또는 SMS 메시지를 클라이언트 디바이스(103)와 연관된 사용자에게 송신하기 위한 명령들을 포함한다. 예컨대, e-메일 메시지 또는 SMS 메시지는 쿠폰 또는 판촉 오퍼를 포함할 수 있다. 몇몇의 구현들에서, e-메일 메시지 또는 SMS 메시지는 메시지 모듈(356)에 의해 송신된다.
몇몇의 구현들에서, 명령들(350)의 세트는, 하나 이상의 애플리케이션들(328)을 실행하기 위한 명령들을 포함한다. 애플리케이션들의 예들은 도 5b, 도 5c, 도 5d 및 도 5e의 논의에서 논의된다. 파싱 검출 모듈(126)은 서버로부터 수신된 명령들의 세트(350)를 실행한다.
위에서 식별된 엘리먼트들 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상 내에 저장될 수 있고, 그리고 모듈들 또는 프로그램들 각각은 위에서 설명된 기능을 수행하기 위한 명령들의 세트에 대응한다. 명령들의 세트는 하나 이상의 프로세서들(예컨대, CPU들(302))에 의해 실행될 수 있다. 위에서 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 별도의 소프트웨어 프로그램들, 프로시저들 또는 모듈들로서 구현될 필요가 없고, 그리고 따라서 이러한 모듈들의 다양한 서브세트들이 다양한 구현들에서 결합될 수 있거나 또는 다른 방식으로 재-배열될 수 있다. 몇몇의 구현들에서, 메모리(306)는 위에서 식별된 데이터 구조들 및 모듈들의 서브세트를 저장할 수 있다. 또한, 메모리(306)는 위에서 설명되지 않은 데이터 구조들 및 부가의 모듈들을 저장할 수 있다.
도 3이 클라이언트 디바이스를 도시하지만, 도 3은, 본 명세서에서 설명되는 구현들의 구조적 개략으로서가 아니라, 클라이언트 디바이스 내에 존재할 수 있는 다양한 특징들의 기능적 설명으로서 더욱 의도된다. 실제, 그리고 기술분야의 당업자에 의해 인지되는 바와 같이, 별도로 도시된 아이템들은 결합할 수 있고 그리고 몇몇의 아이템들은 분리될 수 있다.
이제 관심은 도 4로 향해지고, 도 4는 몇몇의 구현들에 따라 정보를 디스플레이하는 프로세스(400)를 예시하는 흐름도이다. 도 4는 도 6 및 도 7의 논의에서 더욱 상세히 설명되는 방법들의 개요를 제공한다. 브로드캐스트 시스템(128)이 폐쇄 자막들을 포함하는 비디오 스트림을 클라이언트(102)에 송신한다(401). 폐쇄 자막들을 포함하는 비디오 스트림은 클라이언트(102)에서 수신된다(402). 정보의 세트가 폐쇄 자막들로부터 결정된다(404). 정보의 세트는 프로세싱을 위해 클라이언트(102)로부터 원격으로 위치된 서버(106)에 송신된다(406). 서버(106)는 정보의 세트를 수신한다(408). 서버(106)는, 정보의 세트로부터 하나 이상의 관련 아이덴티티들을 식별하고, 하나 이상의 관련 아이덴티티들과 연관된 명령들의 세트를 결정하고, 그리고 명령들의 세트를 클라이언트(102)에 송신한다(410). 클라이언트(102)는 서버(106)로부터 명령들의 세트를 수신한다(412). 클라이언트(102)는 명령들의 세트에 따라 하나 이상의 애플리케이션들을 실행한다(414).
이제 관심은, 몇몇의 구현들에 따라 예시적 스크린 슛들을 예시하는 도 5a, 도 5b, 도 5c, 도 5d 및 도 5e로 향해진다. 도 5b, 도 5c, 도 5d 및 도 5e는 클라이언트 디바이스(102)에 의해 실행되는 애플리케이션들을 예시한다. 도 5b, 도 5c, 도 5d 및 도 5e의 애플리케이션들은, 텔레비전 프로그램(502) 내에 포함된 폐쇄 자막들(504)의 콘텐츠에 기초하여 결정된 명령들의 세트에 의해 호출 및 제어된다. 도 6의 논의에서 더욱 상세히 논의되는 바와 같이, 클라이언트 디바이스(102) 상의 모듈(예컨대, 파싱 모듈(126))은: 텔레비전 프로그램(502)과 같은 비디오들 스트림을 수신하고, 텔레비전 프로그램(502)의 폐쇄 자막들(504)로부터 정보의 세트를 결정하고, 명령들의 세트를 획득하기 위해 정보의 세트를 서버(예컨대, 서버(106))에 송신하고, 서버로부터 명령들의 세트를 수신하고, 그리고 명령들의 세트에 따라 클라이언트 디바이스(102) 상에 하나 이상의 애플리케이션들을 호출한다. 텔레비전들 프로그램(502) 및 애플리케이션들은 클라이언트 디바이스(102)의 디스플레이 상에서 동시에 디스플레이된다. 도 5a, 도 5b, 도 5c, 도 5d 및 도 5e의 예시들은 그 성질상 예시적으로서 보여야 하고, 제약적으로서 보여서는 안된다.
도 5a는 폐쇄 자막들(504)을 포함하는 텔레비전 프로그램(502)을 디스플레이하는 스크린 샷을 예시한다. 도 5a에 도시된 바와 같이, 폐쇄 자막들(504)의 콘텐츠는 텔레비전 프로그램(502)에서의 언급된 대화에 대응할 수 있는 "Hello World!"이다.
도 5b는 텔레비전 프로그램(502) 근처에 디스플레이되는 피드 리더 애플리케이션(506)을 예시한다. 도 5b의 컨텍스트에서, 클라이언트 디바이스(102) 상의 파싱 모듈(126)은 텔레비전 프로그램(502)을 수신하고, 텔레비전 프로그램(502)의 폐쇄 자막들(504)로부터 정보의 세트를 결정하고, 명령들의 세트를 획득하기 위해 서버(106)에 정보의 세트를 전송하고, 서버(106)로부터 명령들의 세트를 수신하며, 서버(106)로부터 수신된 명령들의 세트에 따라 클라이언트 디바이스(102) 상에서 피드 리더 애플리케이션(506)을 인보크한다. 피드 리더 애플리케이션(506)은 콘텐츠 피드(508)를 디스플레이한다. 콘텐츠 피드(508)에서의 하나 이상의 콘텐츠 아이템들(510)은, 텔레비전 프로그램(502)에 포함된 폐쇄 자막들(504)로부터 도출된 정보에 기초하여 서버(106)에 의해 선택된다. 예를 들어, 사용자는 스포츠 관련된 텔레비전 프로그램(502)을 시청하고 있을 수 있고, 대응하는 폐쇄 자막들(504)이 스포츠 팀들(예를 들어, 팀 X)을 언급하는 경우에, 피드 리더 애플리케이션(506)이 인보크되고, 콘텐츠 아이템 Sports Headline 1(510)이 디스플레이된다. 도 5b의 컨텍스트에서, 폐쇄 자막들(504)로부터 도출된 명령들 또는 정보에 기초하여 서버(106) 상의 명령 모듈(118)에 의해 콘텐츠 아이템(510)이 선택된다.
도 5c는 텔레비전 프로그램(502)과 동시에 디스플레이되는 미디어 플레이어(512)를 예시한다. 도 5c의 컨텍스트에서, 클라이언트 디바이스(102) 상의 파싱 모듈(126)은 텔레비전 프로그램(502)을 수신하고, 텔레비전 프로그램(502)의 폐쇄 자막들(504)로부터 정보의 세트를 결정하고, 명령들의 세트를 획득하기 위해 서버(106)에 정보의 세트를 전송하고, 서버(106)로부터 명령들의 세트를 수신하며, 서버(106)로부터 수신된 명령들의 세트에 따라 클라이언트 디바이스(102) 상에서 미디어 플레이어(512)를 인보크한다. 미디어 플레이어(512)는 텔레비전 프로그램(502)에 포함된 폐쇄 자막들(504)로부터 도출된 정보에 기초하여 하나 이상의 동작들을 수행한다. 예를 들어, 텔레비전 프로그램(502)의 폐쇄 자막들(504)은 아티스트를 언급할 수 있고, 사용자가 아티스트에 관한 폐쇄 자막들(504)을 포함하는 텔레비전 프로그램(502)의 부분을 보는 경우에, 미디어 애플리케이션(512)이 인보크되고, 사용자의 플레이리스트에 아티스트로부터의 노래를 추가하도록 사용자가 프롬프트된다(prompted).
도 5d는 텔레비전 프로그램(502) 근처에 디스플레이되는 웹 브라우저(516)를 예시한다. 도 5d의 컨텍스트에서, 클라이언트 디바이스(102) 상의 파싱 모듈(126)은 텔레비전 프로그램(502)을 수신하고, 텔레비전 프로그램(502)의 폐쇄 자막들(504)로부터 정보의 세트를 결정하고, 명령들의 세트를 획득하기 위해 서버(예를 들어, 서버(106))에 정보의 세트를 전송하고, 서버로부터 명령들의 세트를 수신하며, 서버로부터 수신된 명령들의 세트에 따라 클라이언트 디바이스(102) 상에서 웹 브라우저(516)를 인보크한다. 일부 구현들에서, 브라우저(516)는 텔레비전 프로그램(502)에 포함된 폐쇄 자막들(504)로부터 도출된 정보에 기초하여 선택된 웹 페이지(508)를 디스플레이한다. 폐쇄 자막들(504)은 사람, 장소, 또는 사물에 관한 정보를 포함할 수 있다. 예를 들어, 폐쇄 자막들(504)은 역사적인 인물(historical figure)의 이름을 참조할 수 있고, 사용자가 역사적인 인물에 대한 참조를 포함하는 폐쇄 자막들(504)의 부분을 보는 경우에, 웹 브라우저(516)는 역사적인 인물에 관한 정보를 제공하는 웹 페이지(508)(예를 들어, 위키피디아 페이지)를 인보크한다. 다른 예에서, 폐쇄 자막들(504)은 광고(commercial) 동안의 제품을 언급할 수 있고, 사용자가 제품에 대한 참조를 포함하는 폐쇄 자막들(504)의 부분을 보는 경우에, 브라우저(516)는 제품에 관한 웹 페이지(508)(예를 들어, 제품 페이지)를 디스플레이한다. 사용자가 폐쇄 자막들(504)을 포함하는 비디오 스트림의 부분을 보는 경우에, 브라우저 애플리케이션(516)이 인보크되고, 506 브라우저는 폐쇄 자막들(504)의 콘텐츠에 기초하여 결정된 웹사이트로 네비게이트된다.
도 5e는 쿠폰 북 애플리케이션(518)을 예시한다. 일부 구현들에서, 쿠폰 북 애플리케이션(518)은 폐쇄 자막들(504)로부터 도출된 정보에 기초하여 하나 이상의 동작들을 수행한다. 도 5e의 컨텍스트에서, 클라이언트 디바이스(102) 상의 파싱 모듈(126)은 텔레비전 프로그램(502)을 수신하고, 텔레비전 프로그램(502)의 폐쇄 자막들(504)로부터 정보의 세트를 결정하고, 명령들의 세트를 획득하기 위해 서버(106)에 정보의 세트를 전송하고, 서버(106)로부터 명령들의 세트를 수신하며, 서버로부터 수신된 명령들의 세트에 따라 클라이언트 디바이스(102) 상에서 쿠폰 북 애플리케이션(518)을 인보크한다. 예를 들어, 사용자는 펄 밀크 티에 관한 광고를 볼 수 있고, 폐쇄 자막들(504)은 제품을 언급할 수 있다. 쿠폰 애플리케이션(518)이 인보크되고, 사용자가 광고를 보고 있는 경우에 사용자의 쿠폰 북에 쿠폰을 세이브하도록 사용자가 프롬프트된다.
도 6은 정보를 디스플레이하기 위한 방법(600)을 예시한다. 이러한 방법은, 콘텐츠가 플레이되는 동안 콘텐츠와 관련되는 정보 및 서비스들을 제공하기를 원하는 방송사들 및 콘텐츠 제공자들에게 유용하다. 이러한 방법은, 자신들이 시청하고 있는 콘텐츠에 관한 관련 정보를 원하는 콘텐츠 시청자들에게 유용하다.
이제, 비디오 스트림 내에 포함된 폐쇄 자막들에 기초하여 결정된 정보를 디스플레이하는 방법(600)을 예시하는 흐름도인 도 6에 대한 주목이 이루어진다. 방법(600)은 하나 이상의 프로세서들 및 메모리를 갖는 클라이언트 디바이스(102)에서 수행된다. 폐쇄 자막들을 포함하는 비디오 스트림이 수신된다(602). 예를 들어, 비디오 스트림은, 비디오 콘텐츠와 관련되고 그리고 상기 비디오 콘텐츠와 조정되는 폐쇄 자막들을 갖는 텔레비전 프로그램, 영화, 또는 광고에 대응할 수 있다. 몇몇 구현들에서, 비디오 스트림은 클라이언트 디바이스(102)의 비디오 입력부(350), TV 튜너(352), 또는 네트워크 인터페이스(308)에 의해 수신된다. 몇몇 구현들에서, 비디오 스트림은 방송 시스템(128)으로부터 수신된다. 예를 들어, 비디오 스트림은 네트워크 접속, 위성 수신기, 케이블 박스를 통해 또는 OTA(over-the-air) 안테나에 의해 수신될 수 있다.
정보의 세트(350)는 폐쇄 자막으로부터 결정된다(604). 몇몇 구현들에서, 정보의 세트(350)는 폐쇄 자막들의 콘텐츠로부터의 정보를 포함한다. 예를 들어, 정보의 세트(350)는 폐쇄 자막들의 콘텐츠로부터의 텍스트를 포함할 수 있다. 몇몇 구현들에서, 정보의 세트(350)는 알파벳 문자들, 숫자들, 심볼들, 또는 이들의 임의의 조합으로 이루어진다. 정보의 세트(350)는 파싱 모듈(126)에 의해 결정된다.
몇몇 구현들에서, 결정하는 것은 하나 이상의 심볼들을 결정하는 것을 포함하고, 그리고 정보의 세트(350)는 상기 결정된 하나 이상의 심볼들을 포함한다(606). 달리 말하면, 몇몇 구현들에서, 파싱 모듈(126)은, 하나 이상의 심볼들을 결정하기 위해 폐쇄 자막들의 콘텐츠를 파싱하고, 그리고 상기 결정된 하나 이상의 심볼들을 정보의 세트(350) 내에 포함시킨다. 몇몇 구현들에서, 결정하는 것은 하나 이상의 심볼들 및 상기 심볼을 뒤따르는 미리 규정된 양의 텍스트를 결정하는 것을 포함한다. 하나 이상의 심볼들 및 상기 심볼을 뒤따르는 미리 규정된 양의 텍스트는 정보의 세트(350) 내에 포함된다. 예를 들어, 방송사들 또는 콘텐츠 제공자는, 심볼을 뒤따르는 텍스트가 정보이고, 상기 정보로부터 명령들이 유도되어야 한다는 것을 시그널링하기 위해, "#" 심볼을 비디오 스트림의 폐쇄 자막들 내로 삽입(insert)할 수 있다. 예를 들어, 폐쇄 자막은, 사람 x가 배우라는 것을 표시하기 위해 "#배우 사람 x(# actor person x)"를 포함할 수 있다. 몇몇 구현들에서, 심볼을 뒤따르는 텍스트는 명령들 또는 정보를 포함할 수 있고, 상기 정보로부터 명령들이 유도되어야 한다. 예를 들어, 파싱 모듈(126)은 폐쇄 자막으로부터 스트링 "#브라우저 URL(#browser URL)"을 검출 및 파싱하고, 그리고 파싱된 스트링을 정보의 세트(350) 내로 포함시킨다. 파싱 모듈(126)은 파싱된 스트링을 포함하는 정보의 세트(350)를 서버(106)에 전송하고, 그리고 응답하여 명령들의 세트(358)를 수신한다. 파싱된 스트링에 대응하는 명령들의 세트(358)는, 클라이언트 디바이스(106) 상에서 웹 브라우저를 호출하고 그리고 파싱된 스트링 내 URL에 대응하는 웹페이지를 개방한다. 콘텐츠 제공자는, 비디오 스트림과 관련된 정보를 제공하기 위해, 비디오 스트림의 폐쇄 자막들 내에 특수 문자들 또는 심볼들을 삽입할 수 있다. 관련 정보는 비디오 스트림과 동시에 디스플레이된다.
몇몇 구현들에서, 결정하는 것은, 폐쇄 자막들 내 하나 이상의 문장들을 결정하는 것을 포함하고, 그리고 정보의 세트(350)는 상기 결정된 하나 이상의 문장들을 포함한다(608). 파싱 모듈(126)은 하나 이상의 문장들을 결정하기 위해 폐쇄 자막들의 콘텐츠를 파싱하고, 그리고 상기 결정된 문장들을 정보의 세트(350) 내에 포함시킨다. 예를 들어, 파싱 모듈(126)은, 폐쇄 자막들의 콘텐츠 내에서 마침표(period)들 또는 다른 구두점(punctuation) 마크들을 검출함으로써 문장들을 검출할 수 있다.
몇몇 구현들에서, 결정하는 것은 폐쇄 자막들 내 하나 이상의 고유 명사(proper noun)들을 결정하는 것을 포함하고, 그리고 정보의 세트(350)는 하나 이상의 대명사(pronoun)들을 포함한다(610). 파싱 모듈(126)은, 하나 이상의 고유 명사들을 결정하기 위해 폐쇄 자막들의 콘텐츠를 파싱하고, 그리고 상기 결정된 하나 이상의 고유 명사들을 정보의 세트(350) 내에 포함시킨다. 몇몇 구현들에서, 하나 이상의 고유 명사들은, 상기 하나 이상의 고유 명사들이, 파싱 모듈(126) 내에 저장된 하나 이상의 고유 명사들과 매칭하는 경우에 선택된다. 고유 명사들은 사람, 위치, 또는 사물에 대응할 수 있다. 예를 들어, 파싱 모듈(126)은 하나 이상의 사람들의 이름들, 제품 또는 회사의 이름, 또는 나라의 이름을 결정하기 위해 폐쇄 자막들의 콘텐츠를 파싱할 수 있다. 몇몇 구현들에서, 파싱 모듈(126)은 폐쇄 자막들 내 대문자로 써진(capitalized) 단어들을 선택하고, 그리고 상기 대문자로 써진 단어들을 정보의 세트(350) 내에 포함시킨다.
몇몇 구현들에서, 비디오 스트림이 디스플레이되고, 그 비디오 스트림이 디스플레이되는 동안 정보의 세트(350)가 결정된다(612). 비디오 스트림이 클라이언트 디바이스(102)의 디스플레이(313) 상에 디스플레이된다. 정보의 세트(350)를 포함하는 요청(220)은 프로세싱을 위해 클라이언트(102)로부터 원격으로 위치된 서버(106)로 전송된다(614). 프로세싱은 정보의 세트(350)에 기초하여 명령들(358)의 세트를 결정한다. 명령들(358)의 세트는 디스플레이될 비디오 스트림의 폐쇄 자막들에 관한 정보를 디스플레이하기 위한 명령들을 포함한다. 요청(358)은 요청 모듈(352)에 의해 생성 및 전송된다.
명령들(358)의 세트는 서버로부터 수신된다(616). 명령들(358)의 세트는 정보의 세트(350)에 관한 정보를 디스플레이하기 위한 명령들을 포함한다(616). 몇몇 구현들에서, 명령들(358)의 세트는 콘텐츠 피드(content feed)에 포함된다. 명령들(258)의 세트는 파싱 모듈(126)에 의해 수신된다.
하나 이상의 기능들 및/또는 애플리케이션들은 명령들(350)의 세트를 수신하는 것에 응답하여 명령들(358)의 세트에 따라서 실행된다(616). 몇몇 구현들에서, 하나 이상의 애플리케이션들은 미디어 애플리케이션, 피드 리더 애플리케이션, 브라우저 애플리케이션 및 쿠폰 북 애플리케이션으로 구성되는 그룹으로부터 선택된다(620). 예를 들어, 도 5c에 도시된 바와 같이, 명령들(358)의 세트는 미디어 플레이어 애플리케이션(512)을 인보크할 수 있고, 사용자로 하여금 사용자의 플레이리스트에 노래를 부가하도록 촉진할 수 있다. 몇몇 구현들에서, 비디오 스트림이 디스플레이되고, 하나 이상의 애플리케이션들이 비디오 스트림에 인접하게 디스플레이된다(622). 예를 들어, 도 5b에 도시된 바와 같이, 피드 리더 애플리케이션(508)이 텔레비전 프로그램(502)과 동시에 디스플레이된다. 하나 이상의 애플리케이션들이 도 5b, 도 5c, 도 5d 및 도 5e의 논의에서 더욱 상세하게 논의된다. 하나 이상의 애플리케이션들이 파싱 모듈(126)에 의해 실행된다.
몇몇 구현들에서, 하나 이상의 콘텐츠 파일들이 서버로부터 수신된다(621). 명령들(358)의 세트는 하나 이상의 콘텐츠 파일들을 디스플레이하기 위한 명령들을 포함하고, 하나 이상의 애플리케이션들을 실행하는 것은 하나 이상의 수신된 콘텐츠 파일을 디스플레이하는 것을 포함한다(621). 예를 들어, 웹 페이지가 수신될 수 있고, 명령들(358)의 세트는 웹페이지를 디스플레이하도록 웹 브라우저를 인보크하기 위한 명령을 포함한다.
몇몇 구현들에서, 명령들(358)의 세트는 메시지를 디스플레이하기 위한 명령들을 포함한다. 메시지의 콘텐츠는 정보의 세트(350)와 관련된다. 예를 들어, 제품의 웹사이트에 대한 URL이 디스플레이될 수 있거나, 또는 텔레비전 프로그램에 관한 정보의 일부(snippet)가 디스플레이될 수 있다. 몇몇 구현들에서, 명령들(358)의 세트는 클라이언트(102)와 관련된 사용자에게 메시지(예컨대, 이메일 또는 SMS)를 전송하기 위한 명령들을 포함한다. 예를 들어, 메시지는 쿠폰, 쿠폰으로의 링크, 노래, 노래로의 링크, 텔레비전 프로그램 또는 영화에 관한 정보 및 정보로의 링크들을 포함할 수 있다. 메시지 모듈(356)은 메시지들을 디스플레이하고 전송한다.
도 7은 폐쇄 자막들로부터 도출된 정보에 기초하여 명령들의 세트를 생성하는 방법(700)을 예시하는 흐름도이다. 방법(700)은 하나 이상의 프로세서들 및 메모리를 갖는 서버 시스템(106)에서 수행된다. 몇몇 구현들에서, 정보의 세트(350)를 포함하는 요청(220)이 클라이언트(102)로부터 수신된다(702). 몇몇 구현들에서, 요청(220)은 사용자 식별자를 포함한다. 정보의 세트(350)는 비디오 스트림 내의 폐쇄 자막들로부터 추출되었다(704). 하나 이상의 관련 아이덴티티들(234)이 정보의 세트(350)로부터 식별된다(704). 몇몇 구현들에서, 복수의 관련 아이덴티티들은 정보의 세트(350)를 이용하여 식별되고, 복수의 관련 아이덴티티들의 서브세트는 관련 아이덴티티들과 관련된 중요 메트릭(242)에 기초하여 선택된다. 예를 들어, 식별 모듈(114)은 가장 중요한 메트릭(242)을 이용하여 관련 아이덴티티를 선택할 수 있다. 몇몇 구현들에서, 하나 이상의 아이덴티티들(234)이 요청(220)을 수신하는 것에 응답하여 결정된다. 식별 모듈(114)은 아이덴티티 데이터베이스(130) 내의 하나 이상의 아이덴티티들(234)에 정보의 세트(350) 내의 정보를 매칭한다. 하나 이상의 관련 아이덴티티들(234)은 사람, 장소 또는 물건에 해당할 수 있다.
정보의 세트와 관련된 명령들(358)의 세트가 결정된다(708). 몇몇 구현들에서, 명령들(358)의 세트는 요청(220)을 수신하는 것에 응답하여 결정된다. 몇몇 구현들에서, 명령들(358)의 세트는 식별된 하나 이상의 관련 아이덴티티들(234)에 기초하여 결정된다(710). 몇몇 구현들에서, 관련 아이덴티티(234)는 복수의 관련 액션들을 포함한다. 예를 들어, 관련 아이덴티티(234)는 농구 선수의 이름일 수 있고, 관련 액션들은 운동 선수의 가장 최근 게임의 비디오 하이라이트를 디스플레이하는 것 또는 농구 선수에 관한 웹페이지를 디스플레이하는 것을 포함한다. 명령 모듈(118)은 사용자 식별자(246)에 대응하는 사용자에 대한 사용자 선호사항들(250)에 기초하여 복수의 관련 액션들 중 하나 이상의 것을 선택한다. 예를 들어, 사용자의 정보는 사용자가 관심이 있거나 또는 관심이 있지 않은 정보의 카테고리들을 나타내는 선호사항들을 포함할 수 있다. 예를 들어, 관련 아이덴티티(234)는 영화배우, 운동선수 및 음악가의 이름일 수 있고, 사용자의 선호사항은 스포츠 및 음악에 대한 친밀도(affinity)를 나타낼 수 있다. 이 예시에서, 결과로 도출되는 명령들의 세트(358)는 일 구현에서 음악가 또는 운동선수로서 사람의 액티비티에 관련될 수 있다. 몇몇 구현들에서, 사용자의 선호사항들은 사용자가 좋아하는 또는 좋아하지 않는 애플리케이션들을 나타낸다. 예를 들어, 사용자는 쿠폰 애플리케이션을 통해서 수신 쿠폰들을 그리고 피드 리더 애플리케이션을 통해서 콘텐츠 아이템들을 향한 친밀도를 가질 수 있다.
일부 구현들에서, 명령들의 세트(358)는 식별된 하나 이상의 관련 아이엔티티들(234)과 연관된 하나 이상의 콘텐츠 파일들에 기초하여 결정된다. 일부 구현들에서, 관련 아이덴티티들과 연관된 하나 이상의 콘텐츠 파일들은 식별 모듈(114)에 의해 결정된다(714). 명령들(358)의 세트는 하나 이상의 콘텐츠 파일들을 디스플레이하기 위한 명령을 포함한다(714). 일부 구현들에서, 식별 모듈(114)은 질의로서 아이덴티티의 명칭을 사용하여 콘텐츠 데이터베이스(122)를 탐색함으로써 하나 이상의 콘텐츠 파일들을 식별한다. 예를 들어, 관련 아이덴티티들(234) 중 하나는 물건의 명칭일 수 있고, 하나 이상의 쿠폰들은 물건과 연관될 수 있다. 다른 예에서, 관련 아이덴티티들(234) 중 하나는 음악가일 수 있고, 식별 모듈(114)은 콘텐츠 데이터베이스(122)로부터 음악가에 의해 노래를 식별한다. 일부 구현들에서, 각각의 아이덴티티에 대한 연관된 동작들(244)은 하나 이상의 콘텐츠 파일들을 특정한다. 명령 모듈(118)은 콘텐츠 데이터베이스(122) 내의 특정된 콘텐츠 파일들을 탐색하고, 콘텐츠 파일들과 연관된 메트릭에 따라 콘텐츠 파일을 선택한다. 예를 들어, 명령 모듈(118)은 파일들의 인기도(popularity)에 기초하여 파일링된 콘텐츠를 선택할 수 있다. 명령 모듈(118)이 콘텐츠 파일을 식별한 후에, 명령 모듈은 콘텐츠 파일을 디스플레이 또는 재생하기 위한 애플리케이션을 결정하고, 결정된 애플리케이션으로 하여금 콘텐츠 파일을 디스플레이하게 하는 명령들(358)의 세트를 생성한다.
일부 구현들에서, 명령들(358)의 세트는 미디어 애플리케이션, 피드 리더 애플리케이션(feed reader application), 브라우저 애플리케이션 및 쿠폰 북 애플리케이션으로 구성된 그룹으로부터 선택된 애플리케이션을 실행하기 위한 명령들을 포함한다(712).
일부 구현들에서, 명령들(358)의 세트는 클라이언트 디바이스(102) 상에 메시지를 디스플레이하기 위한 명령들을 포함한다. 메시지의 콘텐츠는 정보(350)의 세트에 관련된다. 예를 들어, 물건의 웹사이트에 대한 URL이 디스플레이될 수 있거나, 텔레비전 프로그램에 관한 정보의 스니핏(snippet)이 디스플레이될 수 있다. 일부 구현들에서, 명령들(358)의 세트는 메시지(예를 들어, 이메일 또는 SMS)를 클라이언트와 연관된 사용자에게 전송하기 위한 명령들을 포함한다. 메시지는 쿠폰, 쿠폰으로의 링크, 노래, 노래로의 링크, 텔레비전 프로그램 또는 영화에 대한 정보 및 정보로의 링크들을 포함할 수 있다. 명령들(358)의 세트는 명령 모듈(118)에 의해 생성된다.
명령들(358)의 세트가 클라이언트(102)에 전송된다(716). 일부 구현들에서, 명령들(358)의 세트가 콘텐츠 피드에서 전송된다. 일부 구현들에서, 하나 이상의 콘텐츠 파일들이 하나 이상의 명령들과 함께 전송된다(718). 예를 들어, 플레이리스트, 미디어 파일, 광고 또는 콘텐츠 데이터베이스(122) 내에 저장된 피드는 명령들(358)의 세트와 함께 전송될 수 있다. 명령들(358)의 세트 및 선택적으로 하나 이상의 콘텐츠 파일들이 명령 모듈(118)에 의해 전송된다.
본 명세서에 설명된 방법들 각각은, 비-일시적 컴퓨터 판독가능한 저장 매체 내에 저장되고 하나 이상의 서버들(예를 들어, 서버 시스템(106))의 하나 이상의 프로세서들에 의해 실행되는 명령들에 의해 관리될 수 있다. 도 6 및 도 7에 도시된 동작들 각각은 컴퓨터 메모리 또는 컴퓨터 판독가능한 저장 매체 내에 저장된 명령들에 대응할 수 있다.
예시를 위해서, 위의 설명은 특정 구현들을 참조하여 설명하였다. 그러나, 위의 예시적인 논의들은 완전한 것으로 또는 개시되는 정확한 형태들로 방법들 및 시스템들을 한정하는 것으로 의도되는 것이 아니다. 위의 교시들을 고려하여 많은 변경들 및 변화들이 가능하다. 구현들은, 방법들 및 시스템들의 원리들 및 이들의 실제 응용들을 설명하고 당업자들이 참작되는 특정 사용에 적합한 다양한 변경들에 본 명세서에 설명된 기법들 및 디바이스들 및 다양한 구현들을 최대로 이용할 수 있게 하기 위해서 선택되고 설명되었다.
더욱이, 위의 설명에서, 본 구현의 완전한 이해를 제공하기 위해서 다수의 특정 세부사항들이 설명되었다. 그러나, 본 명세서에 설명된 방법들이 이러한 특정한 세부사항들 없이 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우들에서, 당업자들에 잘 알려져 있는 방법들, 프로시저들, 컴포넌트들 및 네트워크들은 본 구현의 양상들을 모호하게 하지 않도록 상세하게 설명되지 않았다.

Claims (9)

  1. 방법으로서,
    하나 이상의 프로세서들 및 상기 하나 이상의 프로세서들에 의해 실행될 하나 이상의 프로그램들을 저장하는 메모리를 갖는 클라이언트에서,
    폐쇄 자막들(closed captions)을 포함하는 비디오 스트림을 획득하는 단계;
    상기 비디오 스트림의 폐쇄 자막들 내의 하나 이상의 강조된 단어들을 식별하는 단계 ― 상기 하나 이상의 강조된 단어들은 상기 하나 이상의 강조된 단어들과 연관된 하나 이상의 콘텐츠 파일들의 정보를 식별하는 것과 관련됨 ―;
    상기 하나 이상의 강조된 단어들을 식별하는 것에 응답하여, 프로세싱을 위해 상기 클라이언트로부터 원격에 위치된 서버로, 상기 하나 이상의 강조된 단어들을 포함하는 정보의 세트를 포함하는 요청을 전송하는 단계;
    상기 서버로부터 상기 하나 이상의 강조된 단어들과 연관된 하나 이상의 콘텐츠 파일들의 정보를 수신하는 단계 ― 상기 서버는 상기 비디오 스트림의 소스와는 구별되고, 상기 서버는 상기 하나 이상의 강조된 단어들로부터 검색 쿼리를 생성하고, 상기 하나 이상의 콘텐츠의 정보를 획득하기 위해 상기 검색 쿼리에 기초하여 검색을 수행함 ―; 및
    상기 하나 이상의 콘텐츠 파일들의 정보를 수신하는 것에 응답하여, 상기 하나 이상의 콘텐츠 파일들을 상기 클라이언트의 사용자에게 보여 주기 위한 하나 이상의 애플리케이션들이 실행되도록 하는 단계
    를 포함하는,
    방법.
  2. 제1항에 있어서,
    상기 하나 이상의 강조된 단어들은 하나 이상의 시각적으로 강조된 단어들을 포함하는,
    방법.
  3. 제2항에 있어서,
    상기 하나 이상의 시각적으로 강조된 단어들은 하나 이상의 대문자 단어들을 포함하는,
    방법.
  4. 제2항에 있어서,
    상기 하나 이상의 시각적으로 강조된 단어들은 사람, 장소, 또는 사물과 연관된 하나 이상의 명사(noun)들을 포함하는,
    방법.
  5. 제2항에 있어서,
    상기 하나 이상의 시각적으로 강조된 단어들은 하나 이상의 특수 문자들을 포함하는,
    방법.
  6. 제1항에 있어서,
    상기 하나 이상의 콘텐츠 파일들의 정보는 상기 하나 이상의 콘텐츠 파일들에 대한 하나 이상의 링크(link)들을 포함하는,
    방법.
  7. 제1항에 있어서,
    상기 하나 이상의 애플리케이션들로부터의 출력을, 상기 비디오 스트림에 인접하게 디스플레이하는 단계를 더 포함하는,
    방법.
  8. 제1항에 있어서,
    상기 하나 이상의 애플리케이션들로부터의 출력을, 상기 비디오 스트림이 디스플레이되는 디스플레이 디바이스와는 다른 전자 디바이스 상에 디스플레이하는 단계를 더 포함하는,
    방법.
  9. 제1항에 있어서,
    상기 하나 이상의 애플리케이션들은, 웹 브라우저 애플리케이션, 음악 애플리케이션, 피드 리더(feed reader) 애플리케이션 및 쿠폰 애플리케이션 중 적어도 하나를 포함하는,
    방법.
KR1020207003333A 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용 KR102420513B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020207022347A KR102465231B1 (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201161490005P 2011-05-25 2011-05-25
US61/490,005 2011-05-25
US13/171,326 2011-06-28
US13/171,326 US8484313B2 (en) 2011-05-25 2011-06-28 Using a closed caption stream for device metadata
KR1020187032368A KR102075672B1 (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용
PCT/US2012/039194 WO2012162425A2 (en) 2011-05-25 2012-05-23 Using a closed caption stream for device metadata

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187032368A Division KR102075672B1 (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207022347A Division KR102465231B1 (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용

Publications (2)

Publication Number Publication Date
KR20200015836A KR20200015836A (ko) 2020-02-12
KR102420513B1 true KR102420513B1 (ko) 2022-07-13

Family

ID=47218056

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020187032368A KR102075672B1 (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용
KR1020217034594A KR20210132234A (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용
KR1020207003333A KR102420513B1 (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용
KR1020207022347A KR102465231B1 (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용
KR1020137034614A KR20140039004A (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 캡션 스트림 사용

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020187032368A KR102075672B1 (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용
KR1020217034594A KR20210132234A (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020207022347A KR102465231B1 (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 자막 스트림 사용
KR1020137034614A KR20140039004A (ko) 2011-05-25 2012-05-23 디바이스 메타데이터를 위한 폐쇄 캡션 스트림 사용

Country Status (5)

Country Link
US (5) US8484313B2 (ko)
EP (2) EP3627841B1 (ko)
KR (5) KR102075672B1 (ko)
CN (2) CN107087225B (ko)
WO (1) WO2012162425A2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043444B2 (en) * 2011-05-25 2015-05-26 Google Inc. Using an audio stream to identify metadata associated with a currently playing television program
US8484313B2 (en) 2011-05-25 2013-07-09 Google Inc. Using a closed caption stream for device metadata
WO2013136715A1 (ja) * 2012-03-14 2013-09-19 パナソニック株式会社 受信装置、放送通信連携システムおよび放送通信連携方法
US8695048B1 (en) * 2012-10-15 2014-04-08 Wowza Media Systems, LLC Systems and methods of processing closed captioning for video on demand content
CN102917265A (zh) * 2012-10-25 2013-02-06 深圳创维-Rgb电子有限公司 基于网络电视的资讯浏览方法和系统
US9870128B1 (en) * 2013-02-19 2018-01-16 Audible, Inc. Rule-based presentation of related content items
US8959562B2 (en) * 2013-02-26 2015-02-17 Roku, Inc. Method and apparatus for automatic second screen engagement
US8782722B1 (en) * 2013-04-05 2014-07-15 Wowza Media Systems, LLC Decoding of closed captions at a media server
KR102091602B1 (ko) 2013-06-10 2020-03-20 엘지전자 주식회사 플렉시블 디스플레이를 포함하는 멀티미디어 디바이스 및 그 제어 방법
US9615122B2 (en) * 2014-01-30 2017-04-04 Echostar Technologies L.L.C. Methods and apparatus to synchronize second screen content with audio/video programming using closed captioning data
US9854202B2 (en) 2014-12-11 2017-12-26 Arris Enterprises Llc Processing segments of closed-caption text using external sources
US10142699B2 (en) * 2016-03-18 2018-11-27 Google Llc Systems and methods for providing interactive content
CA2980206A1 (en) * 2017-03-03 2018-09-03 Nanoptix Inc. Thermal printer for a video terminal
CN110401855B (zh) * 2018-04-25 2022-03-04 腾讯科技(深圳)有限公司 信息展示方法、装置、处理平台、计算设备及存储介质
CN110445992A (zh) * 2019-08-16 2019-11-12 深圳特蓝图科技有限公司 一种基于xml的视频剪辑合成方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110113438A1 (en) 2009-11-06 2011-05-12 Sony Corporation Method and system of displaying information of specific interest to a user on a television

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6388714B1 (en) * 1995-10-02 2002-05-14 Starsight Telecast Inc Interactive computer system for providing television schedule information
US6018768A (en) 1996-03-08 2000-01-25 Actv, Inc. Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US6130720A (en) * 1997-02-10 2000-10-10 Matsushita Electric Industrial Co., Ltd. Method and apparatus for providing a variety of information from an information server
US7861275B1 (en) * 1999-04-23 2010-12-28 The Directv Group, Inc. Multicast data services and broadcast signal markup stream for interactive broadcast systems
US8261306B2 (en) * 2001-12-11 2012-09-04 Koninklijke Philips Electronics N.V. System for and method of shopping through television
CN1322755C (zh) * 2001-12-18 2007-06-20 汤姆森许可公司 为联网设备的设置菜单生成图文显示的方法和设备
US20030163816A1 (en) 2002-02-28 2003-08-28 Koninklijke Philips Electronics N.V. Use of transcript information to find key audio/video segments
CN1695137A (zh) 2002-10-11 2005-11-09 松下电器产业株式会社 用于传送与节目相关联的数据来为音频内容生成相应视觉显示的方法和装置
US20040268419A1 (en) 2003-06-24 2004-12-30 Microsoft Corporation Interactive content without embedded triggers
WO2005017899A1 (en) * 2003-08-18 2005-02-24 Koninklijke Philips Electronics N.V. Video abstracting
WO2005046237A1 (en) * 2003-11-10 2005-05-19 Koninklijke Philips Electronics, N.V. Providing additional information
US20050188404A1 (en) * 2004-02-19 2005-08-25 Sony Corporation System and method for providing content list in response to selected content provider-defined word
KR100767676B1 (ko) 2005-08-22 2007-10-17 엘지전자 주식회사 영상기기 및 영상기기의 영상 스캔 방법
US7592912B2 (en) * 2005-12-09 2009-09-22 Time Warner Cable Inc. Emergency alert data delivery apparatus and methods
US8566887B2 (en) * 2005-12-09 2013-10-22 Time Warner Cable Enterprises Llc Caption data delivery apparatus and methods
US8115869B2 (en) * 2007-02-28 2012-02-14 Samsung Electronics Co., Ltd. Method and system for extracting relevant information from content metadata
US8209724B2 (en) * 2007-04-25 2012-06-26 Samsung Electronics Co., Ltd. Method and system for providing access to information of potential interest to a user
US9100723B2 (en) 2006-03-07 2015-08-04 Samsung Electronics Co., Ltd. Method and system for managing information on a video recording
US8312497B2 (en) 2006-03-29 2012-11-13 At&T Intellectual Property I, L.P. Closed-captioning universal resource locator (URL) capture system and method
US8736761B2 (en) * 2006-06-09 2014-05-27 Thomson Licensing System and method for closed captioning
US20080065602A1 (en) * 2006-09-12 2008-03-13 Brian John Cragun Selecting advertisements for search results
US20080111822A1 (en) * 2006-09-22 2008-05-15 Yahoo, Inc.! Method and system for presenting video
JP5104762B2 (ja) * 2006-10-23 2012-12-19 日本電気株式会社 コンテンツ要約システムと方法とプログラム
JP4482829B2 (ja) * 2006-11-08 2010-06-16 ソニー株式会社 嗜好抽出装置、嗜好抽出方法及び嗜好抽出プログラム
US20080112690A1 (en) * 2006-11-09 2008-05-15 Sbc Knowledge Venturses, L.P. Personalized local recorded content
CN101682729B (zh) * 2007-03-22 2013-04-10 尼尔森(美国)有限公司 用于识别有意布置的产品的系统和方法
US20080276266A1 (en) 2007-04-18 2008-11-06 Google Inc. Characterizing content for identification of advertising
KR101265960B1 (ko) * 2007-08-21 2013-05-22 삼성전자주식회사 하이라이트 추출 장치 및 그 방법
US8097668B2 (en) 2007-08-27 2012-01-17 Sabic Innovative Plastics Ip B.V. Colorimetric indicator of radiation exposure
US20090064247A1 (en) 2007-08-31 2009-03-05 Jacked, Inc. User generated content
US20090235312A1 (en) * 2008-03-11 2009-09-17 Amir Morad Targeted content with broadcast material
US8095610B2 (en) * 2008-03-28 2012-01-10 Time Warner Cable Inc. Methods and apparatus for centralized and decentralized emergency alert messaging
US8621505B2 (en) * 2008-03-31 2013-12-31 At&T Intellectual Property I, L.P. Method and system for closed caption processing
US8249423B2 (en) 2008-05-08 2012-08-21 Sony Ericsson Mobile Communications Ab Electronic devices and methods that insert addressable chapter marks relative to advertising content in video streams
KR20100039717A (ko) 2008-10-08 2010-04-16 삼성전자주식회사 개인용 녹화장치 및 그 제어방법
US8359399B2 (en) * 2008-10-16 2013-01-22 Echostar Technologies L.L.C. Method and device for delivering supplemental content associated with audio/visual content to a user
US9049477B2 (en) * 2008-11-13 2015-06-02 At&T Intellectual Property I, Lp Apparatus and method for managing media content
US9641884B2 (en) * 2008-11-15 2017-05-02 Adobe Systems Incorporated Method and device for establishing a content mirroring session
KR20100071314A (ko) 2008-12-19 2010-06-29 삼성전자주식회사 영상처리장치 및 영상처리장치의 제어 방법
TW201039149A (en) * 2009-04-17 2010-11-01 Yu-Chieh Wu Robust algorithms for video text information extraction and question-answer retrieval
US8918803B2 (en) * 2010-06-25 2014-12-23 At&T Intellectual Property I, Lp System and method for automatic identification of key phrases during a multimedia broadcast
US20120233646A1 (en) * 2011-03-11 2012-09-13 Coniglio Straker J Synchronous multi-platform content consumption
US8484313B2 (en) 2011-05-25 2013-07-09 Google Inc. Using a closed caption stream for device metadata
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US20140098715A1 (en) 2012-10-09 2014-04-10 Tv Ears, Inc. System for streaming audio to a mobile device using voice over internet protocol

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110113438A1 (en) 2009-11-06 2011-05-12 Sony Corporation Method and system of displaying information of specific interest to a user on a television

Also Published As

Publication number Publication date
US9357271B2 (en) 2016-05-31
EP2716060B1 (en) 2019-12-25
US20180227641A1 (en) 2018-08-09
KR20200094806A (ko) 2020-08-07
WO2012162425A3 (en) 2013-01-17
EP2716060A4 (en) 2014-11-26
US20160269798A1 (en) 2016-09-15
US8849959B2 (en) 2014-09-30
US10631063B2 (en) 2020-04-21
US20130300929A1 (en) 2013-11-14
CN103688553A (zh) 2014-03-26
KR20180123591A (ko) 2018-11-16
KR102465231B1 (ko) 2022-11-09
CN107087225A (zh) 2017-08-22
EP3627841A1 (en) 2020-03-25
KR102075672B1 (ko) 2020-02-10
EP3627841B1 (en) 2023-09-20
KR20210132234A (ko) 2021-11-03
CN103688553B (zh) 2017-02-15
US8484313B2 (en) 2013-07-09
WO2012162425A2 (en) 2012-11-29
US20120303742A1 (en) 2012-11-29
EP2716060A2 (en) 2014-04-09
US20150020104A1 (en) 2015-01-15
US9942617B2 (en) 2018-04-10
KR20140039004A (ko) 2014-03-31
CN107087225B (zh) 2020-04-03
KR20200015836A (ko) 2020-02-12

Similar Documents

Publication Publication Date Title
US10631063B2 (en) Systems and method for using closed captions to initiate display of related content on a second display device
US10567834B2 (en) Using an audio stream to identify metadata associated with a currently playing television program
KR102119885B1 (ko) 소셜 미디어를 통해 가장 흥미있는 순간들에의 딥링크들을 제공함에 의해 프로그램 콘텐츠의 발견을 돕기
US20120304224A1 (en) Mechanism for Embedding Metadata in Video and Broadcast Television

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2020101001945; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20200731

Effective date: 20210430

E902 Notification of reason for refusal
S601 Decision to reject again after remand of revocation
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2021101002639; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20211014

Effective date: 20220321

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)