KR20190039617A - 렌더링 동안 하나 이상의 효과로 클라이언트 장치에 의해 획득한 비디오 데이터를 증강하기 위한 아키텍처 - Google Patents

렌더링 동안 하나 이상의 효과로 클라이언트 장치에 의해 획득한 비디오 데이터를 증강하기 위한 아키텍처 Download PDF

Info

Publication number
KR20190039617A
KR20190039617A KR1020197009682A KR20197009682A KR20190039617A KR 20190039617 A KR20190039617 A KR 20190039617A KR 1020197009682 A KR1020197009682 A KR 1020197009682A KR 20197009682 A KR20197009682 A KR 20197009682A KR 20190039617 A KR20190039617 A KR 20190039617A
Authority
KR
South Korea
Prior art keywords
video data
client device
metadata associated
information
user
Prior art date
Application number
KR1020197009682A
Other languages
English (en)
Other versions
KR102155490B1 (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 KR20190039617A publication Critical patent/KR20190039617A/ko
Application granted granted Critical
Publication of KR102155490B1 publication Critical patent/KR102155490B1/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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • 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/47205End-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 manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • 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/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • 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/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • 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/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
    • 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/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • 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/816Monomedia components thereof involving special video data, e.g 3D video
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Processing Or Creating Images (AREA)

Abstract

비디오 효과 애플리케이션은 이미지 캡처 장치를 가지는 클라이언트 장치 상에서 실행되고 이미지 캡처 장치에 의해 캡처된 비디오 데이터를 수신한다. 비디오 효과 애플리케이션은 캡처된 비디오 효과로부터 정보를 추출하고 캡처된 비디오 데이터와 연관된 메타데이터로 추출된 정보를 저장한다. 예를 들어, 비디오 효과 애플리케이션은 캡처된 비디오 데이터의 객체를 식별하거나 캡처된 비디오 데이터의 광학 흐름을 식별하고 식별된 객체 또는 식별된 광학 흐름을 캡처된 비디오 데이터와 연관된 메타데이터로 저장한다. 비디오 효과 애플리케이션은 캡처된 비디오 데이터와 연관하여 캡처된 비디오 데이터에 대한 수정을 서술하는 정보를 저장한다. 캡처된 비디오 데이터가 표시될 때, 캡처된 비디오 데이터, 연관된 메타데이터 및 수정을 서술하는 정보가 렌더러에게 통신되는데, 캡처된 비디오 데이터를 표시할 때 메타데이터를 사용하여 캡처된 비디오 데이터에 대한 식별된 수정을 수행한다.

Description

렌더링 동안 하나 이상의 효과로 클라이언트 장치에 의해 획득한 비디오 데이터를 증강하기 위한 아키텍처
본 명세서는 일반적으로 클라이언트 장치에 의해 비디오 데이터를 획득하는 것에 관한 것이고, 더 구체적으로 획득한 비디오 데이터가 렌더링될 때 추가 컨텐츠로 클라이언트 장치가 획득한 비디오 데이터를 증강하기 위한 아키텍처에 관한 것이다.
클라이언트 장치의 사용자는 점점 더 다양한 클라이언트 장치에 포함된 이미지 캡처 장치를 통해 비디오 데이터를 캡처하고 캡처된 비디오를 다른 사용자와 공유한다. 예를 들어, 클라이언트 장치 상에서 실행되는 온라인 시스템과 연관된 애플리케이션을 통하여, 클라이언트 장치의 사용자는 클라이언트 장치를 통해 캡처되거나 또는 클라이언트 장치를 통해 다르게 획득한 비디오 데이터를 온라인 시스템의 다른 사용자에게 배포한다. 사용자 참여를 장려하기 위하여, 많은 애플리케이션은 클라이언트 장치의 사용자가 클라이언트 장치에 의해 획득한 비디오 데이터를 수정하고 이어서 수정된 비디오 데이터를 표시할 수 있게 한다.
예를 들어, 다양한 애플리케이션은 사용자가 클라이언트 장치에 의해 획득한 비디오 데이터에 필터를 적용하거나 클라이언트 장치에 의해 획득한 비디오 데이터의 일부 상에 텍스트나 이미지를 오버레이할 수 있게 한다. 하지만, 종래의 비디오 데이터 수정 애플리케이션은 비디오 데이터에 대한 수정을 수신하고 비디오 데이터로부터 정보를 추출하여 비디오 데이터가 렌더링될 때 수정을 수행한다. 예를 들어, 비디오 데이터에서 검출된 얼굴 위에 이미지를 오버레이하기 위하여, 종래의 애플리케이션은 비디오 데이터가 렌더링되는 동안 비디오 데이터에 하나 이상의 검출 방법을 적용하고 얼굴이 검출된 비디오 데이터의 영역 상에 이미지를 오버레이함으로써 비디오 데이터를 수정한다. 비디오 데이터로부터 정보를 추출하는 방법이 계산 집약적이기 때문에, 비디오 데이터 렌더링 동안 정보를 추출하고 수정을 수행하는 것은 클라이언트 장치의 배터리나 다른 전원 공급원에 저장된 전력과 같은 클라이언트 장치의 자원을 더 빠르게 소모시킬 수 있다.
스마트폰이나 태블릿 컴퓨터와 같은 클라이언트 장치는 비디오 데이터를 캡처하도록 구성되는 이미지 캡처 장치를 포함한다. 클라이언트 장치 상에서 실행되는 비디오 효과 애플리케이션은 캡처된 비디오 데이터를 수신하고 캡처된 비디오 데이터가 클라이언트 장치의 디스플레이 장치에 의해 표시될 때 캡처된 데이터를 증강하거나 비디오 데이터를 수정한다. 예를 들어, 비디오 효과 애플리케이션은 캡처된 비디오 데이터를 표시할 때 캡처된 비디오 데이터 상에 추가 이미지나 텍스트를 오버레이한다. 비디오 효과 애플리케이션은 비디오 데이터가 캡처될 때 비디오 데이터를 증강하거나 다르게 수정하거나, 또는 비디오 데이터가 캡처된 때에 이후에 비디오 데이터를 수정할 수 있다.
비디오 데이터에 다양한 수정을 수행하기 위하여, 비디오 효과 애플리케이션은 종종 캡처된 비디오 데이터로부터 정보를 추출하고 추출된 정보를 사용하여 캡처된 비디오 데이터를 수정한다. 예를 들어, 비디오 효과 애플리케이션은 캡처된 비디오 데이터에서 하나 이상의 얼굴을 검출하고 캡처된 비디오 데이터의 다양한 프레임에서 검출된 얼굴의 위치에 기반하여 비디오 데이터에 텍스트나 이미지를 적용한다. 클라이언트 장치의 배터리를 더 효율적으로 사용하기 위하여, 비디오 효과 애플리케이션은 캡처된 비디오 데이터로부터 정보를 추출하고 추출된 정보를 캡처된 비디오 데이터와 연관된 메타데이터로 저장한다. 다양한 실시예에서, 비디오 효과 애플리케이션은 캡처된 비디오 데이터 및 캡처된 비디오 데이터와 연관된 메타데이터를 온라인 시스템에 제공하여, 온라인 시스템이 렌더링을 위해 이후에 캡처된 비디오 데이터 및 연관된 메타데이터를 다른 클라이언트 장치로 제공할 수 있게 한다. 예를 들어, 클라이언트 장치의 사용자는 클라이언트 장치를 통해 비디오를 캡처하고 비디오 효과 애플리케이션에 캡처된 비디오 및 연관된 메타데이터를 온라인 시스템과 통신하도록 명령을 제공하고; 사용자는 또한 캡처된 비디오 데이터 및 연관된 메타데이터를 수신할 온라인 시스템의 하나 이상의 다른 사용자를 온라인 시스템에게 명시할 수 있고, 온라인 시스템은 캡처된 비디오 데이터 및 연관된 메타데이터를 다른 사용자와 연관된 클라이언트 장치와 통신한다. 비디오 효과 애플리케이션은 또한 캡처된 비디오 데이터가 렌더링될 때 수행될 캡처된 비디오 데이터에 대한 수정을 식별하는 정보를 저장한다. 예를 들어, 캡처된 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보는 수정이 수행될 캡처된 비디오 데이터의 시간과 연관하여 저장된다. 하나 이상의 수정을 서술하는 정보도 온라인 시스템에 제공될 수 있는데, 이후에 캡처된 비디오 데이터 및 캡처된 비디오 데이터와 연관된 메타데이터와 함께 다른 사용자와 연관된 클라이언트 장치로 하나 이상의 수정을 서술하는 정보를 제공할 수 있다.
캡처된 비디오 데이터가 이후에 표시를 위해 렌더링될 때, 비디오 효과 애플리케이션은 캡처된 비디오 데이터, 캡처된 비디오 데이터와 연관된 메타데이터 및 캡처된 비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보를 렌더러에게 제공한다. 캡처된 비디오 데이터와 연관된 메타데이터 및 캡처된 비디오 데이터에 대해 식별된 하나 이상의 수정에 기반하여, 렌더러는 캡처된 비디오 데이터가 디스플레이를 위해 렌더링될 때 캡처된 비디오 데이터에 대한 하나 이상의 수정을 수행한다. 예를 들어, 렌더러는 캡처된 비디오 데이터와 연관된 메타데이터에 포함된 검출된 얼굴이나 다른 객체의 하나 이상의 프레임 내의 위치에 기반하여 비디오 데이터의 하나 이상의 식별된 시간에 대응하는 캡처된 비디오 데이터의 하나 이상의 프레임 상에 텍스트나 그래픽을 오버레이한다.
만약 캡처된 비디오 데이터 및 연관된 메타데이터가 온라인 시스템과 통신된다면, 온라인 시스템은 캡처된 비디오 데이터 및 연관된 메타데이터를 온라인 시스템의 다른 사용자와 연관된 추가 클라이언트 장치와 통신할 수 있다. 온라인 시스템의 다른 사용자는 추가 클라이언트 장치의 비디오 효과 애플리케이션 또는 렌더러에게 하나 이상의 수정을 서술하는 정보를 제공하여, 추가 클라이언트 장치의 렌더러나 비디오 효과 애플리케이션으로 하여금 캡처된 비디오 데이터와 연관된 메타데이터를 사용하여 캡처된 비디오 데이터에 대한 서술된 수정을 수행하고 수정된 캡처된 비디오 데이터를 클라이언트 장치의 다른 사용자에게 표시하도록 야기할 수 있다. 추가 클라이언트 장치의 렌더러나 비디오 효과 애플리케이션도 캡처된 비디오 데이터로부터 정보를 추출하지 않고 캡처된 비디오 데이터에 대한 수정을 수행하기 위하여 캡처된 비디오 데이터와 연관된 메타데이터를 사용하여, 추가 클라이언트 장치의 컴퓨팅 및 전력 자원을 보존한다.
캡처된 비디오 데이터로부터 별도로 정보를 추출하고 비디오 데이터에 대한 수정을 수행하는 것은 클라이언트 장치가 더 효율적으로 그 배터리를 사용할 수 있게 한다. 캡처된 비디오 데이터로부터 정보를 추출하는 방법이 계산 집약적이기 때문에, 캡처된 비디오 데이터로부터 정보를 추출하고 추출된 정보를 캡처된 비디오 데이터와 연관된 메타데이터로 저장하는 것은 캡처된 비디오 데이터와 연관된 메타데이터가 캡처된 비디오 데이터와 함께 다른 클라이언트 장치로 제공될 수 있게 하여, 다른 클라이언트 장치가 표시 동안 캡처된 비디오 데이터를 수정하기 위하여 캡처된 비디오 데이터로부터 정보를 다시 추출하지 않고 표시 동안 비디오 데이터를 수정할 때 캡처된 비디오 데이터와 연관된 메타데이터를 활용할 수 있게 한다. 추가로, 캡처된 비디오 데이터로부터 추출된 정보를 저장하고 저장된 정보를 사용하여 표시 동안 캡처된 비디오 데이터를 수정하는 것은 더 고품질의 수정된 캡처된 비디오 데이터의 표시를 가능하게 한다. 예를 들어, 캡처된 비디오 데이터로부터 추출된 저장된 정보를 사용하여 캡처된 비디오 데이터를 수정하는 것은 캡처된 비디오에 대한 수정이 캡처된 비디오 데이터를 압축함으로 인한 압축 아티팩트가 없도록 할 수 있다. 나아가, 캡처된 비디오 데이터로부터 추출된 저장된 정보에 기반하여 캡처된 비디오 데이터를 수정하는 것은 캡처된 비디오 데이터가 수정되는 동안 캡처된 비디오 데이터로부터 정보가 추출될 때보다 비디오 효과 애플리케이션이 캡처된 비디오 데이터에 대한 더 복잡한 수정을 수행할 수 있게 할 수 있다.
본 발명에 따른 실시예들은 특히 방법 및 컴퓨터 프로그램 제품에 관한 첨부된 청구항들에 개시되며, 가령 방법과 같은 하나의 청구항 카테고리에 언급되는 임의의 특징은 또한 가령 컴퓨터 프로그램 제품, 시스템, 저장 매체와 같은 다른 청구항 카테고리로 청구될 수 있다. 첨부된 청구항의 인용 또는 참조는 형식상의 이유를 위해 선택되었을 뿐이다. 하지만 임의의 선행 청구항으로의 의도적인 참조(특히 다중 인용)에서 야기되는 임의의 주제 또한 청구될 수 있어, 청구항 및 그 특징의 임의의 조합이 첨부된 청구항에서 선택된 인용에 관계 없이 개시되고 청구될 수 있다. 청구될 수 있는 주제는 첨부된 청구항에 나타난 바와 같은 특징의 조합뿐만 아니라 청구항의 특징의 다른 임의의 조합을 포함하는데, 청구항에 언급된 각 특징은 청구항의 임의의 다른 특징 또는 다른 특징의 조합과 조합될 수 있다. 나아가, 임의의 실시예와 본 명세서에 서술되거나 도시된 특징은 별개의 청구항 및/또는 임의의 실시예나 본 명세서에 서술되거나 도시된 특징과의 또는 첨부된 청구항의 임의의 특징과의 조합에 청구될 수 있다.
본 발명에 따른 일실시예에서, 방법, 특히 컴퓨터 구현 방법은:
클라이언트 장치에서 비디오 데이터를 획득하는 단계;
클라이언트 장치에서 비디오 데이터가 획득될 때 비디오 데이터에 하나 이상의 프로세스를 적용하는 클라이언트 장치에 의하여 비디오 데이터로부터 정보를 추출하는 단계;
비디오 데이터와 연관된 메타데이터로 추출된 정보를 저장하는 단계;
비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신하는 단계;
비디오 데이터와 연관하여 비디오 데이터에 대한 수정을 식별하는 수신된 정보를 저장하는 단계;
클라이언트 장치에 의하여 비디오 데이터가 렌더링될 때 수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하는 단계; 및
클라이언트 장치의 디스플레이 장치를 통하여 수정된 비디오 데이터를 표시하는 단계를 포함할 수 있고,
수정 중 하나 이상은 비디오 데이터와 연관된 메타데이터를 사용하여 수행된다.
본 발명에 따른 일실시예에서, 방법은:
온라인 시스템으로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계를 포함할 수 있다.
온라인 시스템으로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계는:
비디오 데이터 및 비디오 데이터와 연관된 메타데이터와 연관하여 온라인 시스템으로 온라인 시스템의 사용자의 식별자를 통신하는 단계를 포함할 수 있다.
본 발명에 따른 일실시예에서, 방법은:
비디오 데이터 및 비디오 데이터와 연관된 메타데이터와 연관하여 온라인 시스템으로 비디오 데이터에 대한 수정을 식별하는 수신된 정보를 제공하는 단계를 포함할 수 있다.
비디오 데이터와 연관된 메타데이터는 하나 이상의 객체를 포함하는 비디오 데이터의 하나 이상의 부분을 식별할 수 있다.
비디오 데이터를 수정하는 단계는:
비디오 데이터의 하나 이상의 부분에 포함된 객체에 기반하여 비디오 데이터의 하나 이상의 부분을 수정하는 단계를 포함할 수 있다.
비디오 데이터에 대한 수정은 비디오 데이터의 부분을 식별할 수 있고, 비디오 데이터를 수정하는 단계는:
클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 사용자로부터 수신된 하나 이상의 입력에 기반하여 비디오 데이터의 부분을 수정하는 단계를 포함할 수 있다.
비디오 데이터에 대한 수정은 비디오 데이터의 부분을 식별할 수 있고, 비디오 데이터를 수정하는 단계는:
클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 하나 이상의 컴포넌트에 의하여 캡처된 정보에 기반하여 비디오 데이터의 부분을 수정하는 단계를 포함할 수 있다.
클라이언트 장치의 컴포넌트는 가속도계, 위치 센서 및 그 임의의 조합으로 구성되는 그룹으로부터 선택될 수 있다.
수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하는 단계는:
비디오 데이터와 연관된 메타데이터에 의하여 객체를 포함하는 것으로 식별된 비디오 데이터의 부분 상에 하나 이상의 이미지를 오버레이하고 비디오 데이터의 부분 동안 비디오 데이터의 오디오 데이터를 수정하는 단계를 포함할 수 있다.
수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하는 단계는:
비디오 데이터와 연관된 메타데이터에 의하여 식별된 비디오 데이터의 부분의 하나 이상의 특성에 기반하여 비디오 데이터의 부분에 대한 복수의 수정을 수행하는 단계를 포함할 수 있다.
클라이언트 장치에서 비디오 데이터를 획득하는 단계는:
클라이언트 장치에 포함된 이미지 캡처 장치를 통하여 비디오 데이터를 캡처하는 단계를 포함할 수 있다.
클라이언트 장치에서 비디오 데이터를 획득하는 단계는:
다른 클라이언트 장치로부터 비디오 데이터를 수신하는 단계를 포함할 수 있다.
클라이언트 장치에서 비디오 데이터가 획득될 때 비디오 데이터에 적용되는 프로세스는 비디오 데이터에 포함된 하나 이상의 객체를 식별할 수 있다.
비디오 데이터에 포함된 객체는 얼굴을 포함할 수 있다.
본 발명에 따른 일실시예에서, 방법은:
온라인 시스템에서, 온라인 시스템의 사용자와 연관된 클라이언트 장치로부터 비디오 데이터를 수신하는 단계;
온라인 시스템에서, 클라이언트 장치에 의하여 비디오 데이터와 연관된 메타데이터를 수신하는 단계;
온라인 시스템에 메타데이터와 연관하여 비디오 데이터를 저장하는 단계; 및
온라인 시스템의 추가 사용자와 연관된 추가 클라이언트 장치로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계를 포함할 수 있고,
메타데이터는 클라이언트 장치가 비디오 데이터를 획득할 때 클라이언트 장치에 의하여 비디오 데이터로부터 추출된 정보를 포함한다.
온라인 시스템에서, 클라이언트 장치에 의하여 비디오 데이터와 연관된 메타데이터를 수신하는 단계는:
클라이언트 장치에 의하여 비디오 데이터와 연관된 메타데이터 및 클라이언트 장치에 의하여 수신된 비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보를 수신하는 단계를 포함할 수 있다.
추가 클라이언트 장치로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계는:
추가 클라이언트 장치로 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보를 제공하는 단계를 포함할 수 있고,
추가 클라이언트 장치는 비디오 데이터를 렌더링할 때 비디오 데이터에 대한 하나 이상의 수정을 수행하도록 구성된다.
비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보는 비디오 데이터와 연관된 메타데이터에 의하여 식별된 비디오 데이터의 부분의 하나 이상의 특성에 기반하여 비디오 데이터의 부분에 대한 복수의 수정을 식별할 수 있다.
비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보는 비디오 데이터의 부분에 대응하는 시간 동안 추가 클라이언트 장치에 의해 수신된 하나 이상의 입력에 기반하여 비디오 데이터의 부분에 대한 수정을 식별할 수 있다.
본 발명에 따른 일실시예에서, 바람직하게는 인코딩된 명령어를 가지는 비일시적 컴퓨터 판독가능한 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 명령어는 프로세서에 의하여 실행될 때, 프로세서로 하여금:
클라이언트 장치에서 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 획득하고;
클라이언트 장치에서 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신하고;
클라이언트 장치에 의하여 비디오 데이터가 렌더링될 때 수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하고; 및
클라이언트 장치의 디스플레이 장치를 통하여 수정된 비디오 데이터를 표시하도록 야기하고,
메타데이터는 추가 클라이언트 장치에 의해 비디오 데이터와 연관되고,
수정 중 하나 이상은 비디오 데이터와 연관된 메타데이터를 사용하여 수행된다.
비디오 데이터에 대한 수정은 비디오 데이터의 부분을 식별할 수 있고, 비디오 데이터를 수정하는 것은:
클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치에 의하여 획득된 정보에 기반하여 비디오 데이터의 부분을 수정하는 것을 포함할 수 있다.
클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치에 의하여 획득된 정보는 클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 사용자로부터 수신된 하나 이상의 입력을 포함할 수 있다.
클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치에 의하여 획득된 정보는 클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 하나 이상의 컴포넌트에 의하여 캡처된 정보를 포함할 수 있다.
클라이언트 장치에서 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 획득하는 것은:
온라인 시스템으로부터 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 수신하는 것을 포함할 수 있다.
본 발명에 따른 실시예로, 하나 이상의 컴퓨터-판독가능한 비-일시적 저장매체는 본 발명 또는 상술한 실시예들 중 임의의 것에 따른 방법을 수행하도록 실행시 동작가능한 소프트웨어를 포함할 수 있다.
본 발명에 따른 실시예로, 시스템은 하나 이상의 프로세서; 및 프로세서에 결합되며 프로세서에 의해 실행가능한 명령어들을 포함하는 적어도 하나의 메모리를 포함할 수 있으며, 상기 프로세서는 명령어들을 실행시 본 발명 또는 상술한 실시예들 중 임의의 것에 따른 방법을 수행하도록 동작가능하다.
본 발명에 따른 실시예로, 바람직하게는 컴퓨터-판독가능한 비-일시적 저장 매체를 포함하는 컴퓨터 프로그램 제품이 데이터 처리 시스템에서 실행시 본 발명 또는 상술한 실시예들 중 임의의 것에 따른 방법을 수행하도록 동작가능할 수 있다.
본 발명의 내용 중에 포함되어 있다.
도 1은 일실시예에 따라 온라인 시스템이 구동되는 시스템 환경의 블록도이다.
도 2는 일실시예에 따른 온라인 시스템의 블록도이다.
도 3은 일실시예에 따른 클라이언트 장치의 블록도이다.
도 4는 일실시예에 따른 클라이언트 장치에 의해 획득된 비디오 데이터를 수정하는 방법의 흐름도이다.
도 5는 일실시예에 따른 클라이언트 장치에 의해 획득된 비디오 데이터를 수정하는 아키텍처의 프로세스 흐름도이다.
도 6은 일실시예에 따른 클라이언트 장치에 의해 획득된 비디오 데이터 및 비디오 데이터에 대한 수정을 수정을 수행하고 수정된 비디오 데이터를 표시하는 다른 클라이언트 장치로 제공하는 방법의 상호작용도이다.
도면들은 오로지 예시의 목적을 위해 다양한 실시예들을 도시한다. 당업자는 하기의 설명을 통해 본 명세서에 나타난 구성 및 방법의 대안적인 실시예들이 본 명세서에 기술된 본 발명의 원리에서 벗어남이 없이 이용될 수 있음을 용이하게 인식할 것이다.
시스템 구조
도 1은 온라인 시스템(140)에 대한 시스템 환경(100)의 블록 다이어그램이다. 도 1에 도시된 시스템 환경(100)은 하나 이상의 클라이언트 장치(110), 네트워크(120), 하나 이상의 제3자 시스템(130) 및 온라인 시스템(140)을 포함한다. 대안적 구성으로, 다른 구성요소 및/또는 추가 구성요소가 시스템 환경(100)에 포함될 수 있다. 예를 들어, 온라인 시스템(140)은 소셜 네트워킹 시스템, 컨텐츠 공유 네트워크, 메시징 서버 또는 사용자에게 컨텐츠를 제공하는 다른 시스템이다.
클라이언트 장치(110)는 사용자 입력을 수신할 수 있고 네트워크(120)를 통해 데이터를 전송 및/또는 수신할 수 있는 하나 이상의 컴퓨팅 장치이다. 일실시예로, 클라이언트 장치(110)는 가령 데스크톱이나 랩톱 컴퓨터와 같은 종래의 컴퓨터 시스템이다. 대안으로, 클라이언트 장치(110)는 PDA(personal digital assistant), 휴대 전화, 스마트폰, 스마트워치 또는 다른 적절한 장치와 같은, 컴퓨터 기능을 가지는 장치일 수 있다. 클라이언트 장치(110)는 네트워크(120)를 통해 통신하도록 구성된다. 일실시예로, 클라이언트 장치(110)는 클라이언트 장치(110)의 사용자가 온라인 시스템(140)과 상호작용할 수 있게 하는 애플리케이션을 실행한다. 예컨대, 클라이언트 장치(110)는 네트워크(120)를 통해 클라이언트 장치(110)와 온라인 시스템(140) 사이의 상호작용을 가능하게 하는 브라우저 애플리케이션을 실행한다. 또 다른 실시예로, 클라이언트 장치(110)는, 가령 iOS® 및 ANDROID™와 같이, 클라이언트 장치(110)의 네이티브 운영 시스템에서 실행하는 응용 프로그래밍 인터페이스(API)를 통해 온라인 시스템(140)과 상호작용한다.
도 3과 관련하여 더 후술되는 바와 같이, 다양한 실시예에서, 클라이언트 장치(110)는 비디오 데이터를 캡처할 수 있는 이미지 캡처 장치 및 캡처된 비디오 데이터를 수정하기 위한 애플리케이션을 포함한다. 예를 들어, 클라이언트 장치(110) 상에서 실행되는 애플리케이션은 클라이언트 장치(110)의 사용자가 이미지 캡처 장치에 의해 캡처되거나 클라이언트 장치(110)에 의해 다르게 획득한 비디오 데이터의 일부 상에 이미지나 텍스트를 오버레이할 수 있게 한다. 일부 실시예에서, 비디오 데이터를 수정하기 위한 애플리케이션은 추가 기능을 제공한다. 예를 들어, 애플리케이션은 또한 사용자가 온라인 시스템(140)의 다른 사용자와 컨텐츠(예컨대, 메시지)를 교환할 수 있게 한다. 대안적으로, 추가 애플리케이션은 사용자가 온라인 시스템(140)의 다른 사용자와 통신하고 추가 애플리케이션이 비디오 데이터를 수정한 애플리케이션으로부터 수정된 비디오 데이터를 획득할 수 있게 한다. 자원(예컨대, 전력 공급 자원)을 보존하며 획득한 비디오 데이터를 수정하기 위하여, 애플리케이션은 비디오 데이터가 획득될 때 비디오 데이터로부터 정보를 추출하고 추출된 정보를 서술하는 메타데이터를 비디오 데이터와 연관하여 저장한다. 비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보를 수신한 후, 애플리케이션(또는 다른 애플리케이션)은 비디오 데이터와 연관된 메타데이터를 사용하여 서술된 하나 이상의 수정을 수행한다. 이것은 비디오 데이터가 수신될 때 및 비디오 데이터가 수정될 때 다시 비디오 데이터로부터 정보를 추출하지 않고 비디오 데이터가 수정될 수 있게 한다. 클라이언트 장치(110)의 예시는 도 3과 관련하여 더 후술되는 한편, 비디오 데이터로부터의 정보의 추출 및 비디오 데이터의 수정은 도 4 및 5와 관련하여 더 후술된다.
클라이언트 장치(110)는 유선 및/또는 무선 통신 시스템 모두를 사용하여 근거리 네트워크 및/또는 광역 네트워크의 임의의 조합을 포함할 수 있는 네트워크(120)를 통해 통신하도록 구성된다. 일실시예로, 네트워크(120)는 표준 통신 기술 및/또는 프로토콜을 사용한다. 예를 들어, 네트워크(120)는 가령 이더넷, 802. 11, WiMAX(worldwide interoperability for microwave access), 3G, 4G, CDMA, DSL(digital subscriber line) 등과 같은 기술을 사용하는 통신 링크를 포함한다. 네트워크(120)를 통한 통신을 위해 사용되는 네트워킹 프로토콜의 예시는 MPLS(multiprotocol label switching), TCP/IP(transmission control protocol/Internet protocol), HTTP(hypertext transport protocol), SMTP(simple mail transfer protocol) 및 FTP(file transfer protocol)를 포함한다. 네트워크(120)에서 교환되는 데이터는 임의의 적절한 포맷, 예컨대 하이퍼텍스트 마크업 언어(HTML)와 확장형 마크업 언어(XML)를 사용하여 표현될 수 있다. 일부 실시예로, 네트워크(120)의 통신 링크의 전부 또는 일부는 임의의 적절한 기술 또는 기법을 사용하여 암호화될 수 있다.
하나 이상의 제3자 시스템(130)은 온라인 시스템(140)과 통신하기 위한 네트워크(120)와 연결될 수 있는데, 이는 도 2와 함께 더 후술된다. 일실시예에서, 제3자 시스템(130)은 클라이언트 장치에서 실행되는 애플리케이션에서 사용되기 위하여 클라이언트 장치(110)에서 실행되기 위한 애플리케이션을 설명하는 정보를 통신하거나 데이터를 클라이언트 장치(110)로 통신하는 애플리케이션 제공자이다. 다른 실시예에서, 제3자 시스템(130)은 클라이언트 장치(110)를 통해 표시되기 위한 컨텐츠 또는 다른 정보를 제공한다. 또한, 제3자 시스템(130)은 가령 제3자 시스템(130)에서 제공하는 애플리케이션에 대한 광고, 컨텐츠 또는 정보와 같은 정보를 온라인 시스템(140)으로 정보를 전달할 수 있다.
다양한 제3자 시스템(130)은 온라인 시스템(140)의 사용자에게 컨텐츠를 제공한다. 예를 들어, 제3자 시스템(130)은 온라인 시스템(140)의 사용자가 클라이언트 장치(110) 상에서 실행되는 하나 이상의 애플리케이션을 통해 접속할 수 있는 컨텐츠의 페이지를 유지한다. 제3자 시스템(130)은 제3자 시스템(130)에 의해 제공되는 컨텐츠를 식별하는 온라인 시스템(140)에 컨텐츠 아이템을 제공하여 제3자 시스템(130)에 의해 제공되는 컨텐츠를 온라인 시스템(140)의 사용자에게 통지할 수 있다. 예를 들어, 제3자 시스템(130)에 의해 온라인 시스템(140)으로 제공되는 컨텐츠 아이템은 컨텐츠의 페이지를 획득하기 위한 네트워크 주소를 명시하는 온라인 시스템(140)에 의해 제공되는 컨텐츠의 페이지를 식별한다.
도 2는 온라인 시스템(140)의 구조의 블록도이다. 도 2에 도시 된 온라인 시스템(140)은 사용자 프로필 스토어(205), 컨텐츠 스토어(210), 행위 로거(215), 행위 로그(220), 에지 스토어(225), 컨텐츠 선택 모듈(230) 및 웹 서버 (235)를 포함한다. 다른 실시예로, 온라인 시스템(140)은 다양한 애플리케이션용 추가 구성요소, 더 적은 구성요소 또는 다른 구성요소를 포함할 수 있다. 가령 네트워크 인터페이스, 보안 기능, 부하 균형기, 장애복구 서버, 관리와 네트워크 동작 콘솔 등과 같은 종래의 구성요소들은 시스템 구조의 세부사항을 모호하게 하지 않도록 도시되지 않는다.
온라인 시스템(140)의 각각의 사용자는 사용자 프로필 스토어(205)에 저장되는 사용자 프로필과 관련된다. 사용자 프로필은 사용자에 의해 명시적으로 공유되었던 사용자에 대한 선언형 정보를 포함하며, 온라인 시스템(140)에 의해 추론된 프로필 정보를 또한 포함할 수 있다. 일실시예로, 사용자 프로필은 해당 소셜 네트워킹 시스템 사용자의 하나 이상의 속성을 각각 설명하는 다수의 데이터 필드를 포함한다. 사용자 프로필에 저장된 정보의 예는 가령 경력, 학력, 성별, 취미나 기호, 위치 등과 같은 인명정보, 인구학적 정보 및 다른 타입의 설명적 정보를 포함한다. 또한, 사용자 프로필은 예컨대 이미지나 비디오와 같이 사용자에 의해 제공되는 다른 정보를 저장할 수 있다. 특정 실시예에서, 사용자의 이미지는 이미지에 디스플레이되는 소셜 네트워킹 시스템 사용자를 식별하는 정보로 태그될 수 있고, 사용자가 태그된 이미지를 식별하는 정보는 사용자의 사용자 프로필에 저장된다. 또한, 사용자 프로필 스토어(205) 내 사용자 프로필은 행위 로그(220)에 저장되고 컨텐츠 스토어(210) 내 컨텐츠 아이템에 대해 수행되었던 해당 사용자에 의한 행위에 대한 언급을 관리할 수 있다.
각 사용자 프로필은 온라인 시스템(140)이 상이한 사용자 프로필에 대응하는 사용자를 고유하게 식별할 수 있게 하는 사용자 식별 정보를 포함한다. 예를 들어, 각 사용자 프로필은 전자 메일(“이메일”) 주소를 포함하여, 온라인 시스템(140)이 그 이메일 주소에 기반하여 상이한 사용자를 식별할 수 있게 한다. 하지만, 사용자 프로필은 온라인 시스템(140)이 상이한 사용자를 식별할 수 있게 하는 온라인 시스템(140)에 의해 사용자와 연관된 임의의 적절한 사용자 식별 정보를 포함할 수 있다.
사용자 프로필 스토어(205) 내 사용자 프로필이 개인들과 빈번히 관련되어 개인들이 온라인 시스템(140)을 통해 서로 상호작용을 할 수 있게 해주지만, 사용자 프로필은 또한 가령 사업체 또는 기관과 같은 엔티티에 대하여 저장될 수 있다. 이것은 엔티티가 다른 소셜 네트워킹 시스템 사용자와 연결되고 컨텐츠를 교환하기 위한 온라인 시스템(140) 상의 존재를 확립할 수 있게 한다. 엔티티는 그 자체, 그 제품에 대한 정보를 게시할 수 있거나, 엔티티의 사용자 프로필과 관련된 브랜드 페이지를 사용하여 온라인 시스템(140)의 사용자들에게 다른 정보를 제공할 수 있다. 온라인 시스템(140)의 다른 사용자들은 브랜드 페이지에 게시된 정보를 수신하거나 브랜드 페이지로부터 정보를 수신하도록 브랜드 페이지와 연결할 수 있다. 브랜드 페이지와 관련된 사용자 프로필은 사용자에게 배경이나 엔티티에 대한 정보형 데이터를 제공하는 엔티티 그 자체에 대한 정보를 포함할 수 있다.
컨텐츠 스토어(210)는 다양한 타입의 컨텐츠를 각각 표현하는 객체들을 저장한다. 객체로 표현되는 컨텐츠의 예는 페이지 게시물, 상태 업데이트, 사진, 비디오, 링크, 공유된 컨텐츠 아이템, 게임 애플리케이션 성취, 로컬 비즈니스에서의 체크인 이벤트, 브랜드 페이지 또는 임의의 다른 타입의 컨텐츠를 포함한다. 온라인 시스템 사용자는 컨텐츠 스토어(210)에 의해 저장되는 객체, 가령 상태 업데이트, 온라인 시스템(140)에서 다른 객체와 관련되는 사용자가 태그한 사진, 이벤트, 그룹 또는 애플리케이션을 생성할 수 있다. 일부의 실시예로, 객체는 제3자 애플리케이션 또는 온라인 시스템(140)에서 분리된 제3자 애플리케이션으로부터 수신된다. 일실시예로, 컨텐츠 스토어(210)에서 객체는 컨텐츠의 단일 부분들(pieces) 또는 컨텐츠 "아이템들"을 표현한다. 따라서, 온라인 시스템 사용자들은, 다양한 통신 채널을 통해 다양한 타입의 미디어의 텍스트 및 컨텐츠 아이템을 온라인 시스템(140)에 게시함으로써 서로와 통신하도록 장려된다. 이것은 사용자들 서로 간의 상호작용의 양을 증가시키고 사용자가 온라인 시스템(140)과 상호작용하는 빈도를 증가시킨다.
다양한 실시예에서, 컨텐츠 스토어(210)는 클라이언트 장치(110)가 캡처한 비디오 데이터 및 클라이언트 장치(110)에 의해 비디오 데이터와 연관된 메타데이터를 포함한다. 도 3-5와 관련되어 더 후술되는 바와 같이, 클라이언트 장치(110)는 캡처된 비디오 데이터로부터 정보를 추출하고 메타데이터를 캡처된 비디오 데이터와 연관하여 저장한다. 클라이언트 장치(110)는 비디오 데이터 및 연관된 메타데이터를 온라인 시스템(140)과 통신할 수 있는데, 비디오 데이터 및 연관된 메타데이터를 컨텐츠 스토어(210)에 저장한다. 다양한 실시예에서, 온라인 시스템(140)은 온라인 시스템(140)의 사용자를 식별하는 정보를 비디오 데이터 및 연관된 메타데이터와 함께 수신하고 사용자를 식별하는 정보를 비디오 데이터와 연관하여 및 비디오 데이터와 연관된 메타데이터와 연관하여 저장한다. 도 4와 관련하여 더 후술되는 바와 같이, 온라인 시스템(140)은 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 컨텐츠 스토어(210)로부터 검색하고 온라인 시스템(140)으로 비디오 데이터를 제공한 사용자로부터 비디오 데이터를 다른 사용자에게 제공하는 요청을 수신하는데 응답하여 비디오 데이터 및 연관된 메타데이터를 온라인 시스템(140)의 다른 사용자와 연관된 클라이언트 장치(110)로 제공할 수 있다.
컨텐츠 스토어(210)에 포함된 하나 이상의 컨텐츠 아이템은 사용자에게 표시하기 위한 컨텐츠 및 입찰 금액을 포함한다. 컨텐츠는 사용자에게 제시되는 텍스트, 이미지, 오디오, 비디오, 또는 임의의 다른 적절한 데이터이다. 다양한 실시예에서, 컨텐츠는 컨텐츠의 페이지도 명시한다. 예를 들어, 컨텐츠 아이템은 컨텐츠 아이템이 접근될 때 사용자가 향하게 되는 컨텐츠의 페이지의 네트워크 주소를 명시하는 랜딩 페이지를 포함한다. 입찰 금액은 사용자에 의해 컨텐츠 아이템에 포함되고 만약 컨텐츠 아이템의 컨텐츠가 사용자에게 표시되거나, 컨텐츠 아이템의 컨텐츠가 표시될 때 사용자 상호작용을 수신하거나, 컨텐츠 아이템의 컨텐츠가 사용자에게 표시될 때 임의의 적절한 조건이 충족되면 광고주에 의해 온라인 시스템(140)으로 제공되는 금전적 보상과 같은 기대값을 결정하는데 사용된다. 예를 들어, 컨텐츠 아이템에 포함된 입찰 금액은 만약 컨텐츠 아이템의 컨텐츠가 디스플레이되면 온라인 시스템(140)이 컨텐츠 아이템을 온라인 시스템(140)에 제공한 사용자로부터 받는 금전적 액수를 명시한다. 일부 실시예에서, 온라인 시스템(140)으로의 컨텐츠 아이템 중 컨텐츠를 표시하는 기대값은 입찰 금액을 사용자가 접근하는 컨텐츠 아이템의 컨텐츠의 확률로 곱함으로써 결정될 수 있다.
다양한 컨텐츠 아이템은 컨텐츠 아이템과 연관된 사용자가 컨텐츠 아이템에 포함된 컨텐츠가 표시될 때 다른 사용자가 수행하기 바라는 상호작용을 식별하는 목적을 포함할 수 있다. 목적의 예시는 컨텐츠 아이템과 연관된 애플리케이션 설치, 컨텐츠 아이템에 대한 선호 표시, 컨텐츠 아이템을 다른 사용자와 공유, 컨텐츠 아이템과 연관된 객체와 상호작용 또는 임의의 다른 적절한 상호작용 수행을 포함한다. 컨텐츠 아이템 중 컨텐츠가 온라인 시스템 사용자에게 표시됨에 따라, 온라인 시스템(140)은 표시된 사용자와 컨텐츠 아이템 또는 컨텐츠 아이템과 연관된 객체 간의 상호작용을 기록한다. 나아가, 온라인 시스템 사용자가 컨텐츠 아이템에 포함된 목적을 충족하는 컨텐츠 아이템과의 상호작용을 수행함에 따라 온라인 시스템(140)은 컨텐츠 아이템과 연관된 사용자로부터 보상을 받는다.
나아가, 컨텐츠 아이템은 온라인 시스템(140)에 컨텐츠 아이템을 제공한 사용자가 명시한 하나 이상의 타게팅 기준을 포함할 수 있다. 컨텐츠 아이템 요청에 포함된 타게팅 기준은 컨텐츠 아이템이 표시될 자격이 있는 사용자의 하나 이상의 특성을 명시한다. 예컨대, 타겟팅 기준은 타겟팅 기준 중 적어도 하나를 충족하는 사용자 프로필 정보, 에지, 또는 행위를 갖는 사용자들을 식별하는데 사용된다. 따라서, 타겟팅 기준은 사용자가 특정 특징을 갖는 사용자들을 식별할 수 있도록 하여, 상이한 사용자들에게 후속된 컨텐츠의 분배를 단순화시킨다.
일실시예로, 타겟팅 기준은 행위 또는 사용자와 온라인 시스템(140)의 다른 사용자 또는 객체 간의 연결의 타입을 특정할 수 있다. 타겟팅 기준은 또한 온라인 시스템(140)의 외부, 예컨대 제3자 시스템(130) 상에서 수행된 사용자와 객체 간의 상호작용을 명시할 수 있다. 예를 들어, 타겟팅 기준은 다른 사용자에게 메시지를 보내거나, 애플리케이션을 사용하거나, 그룹에 가입하거나, 그룹을 떠나거나, 이벤트에 참여하거나, 이벤트 설명을 생성하거나, 온라인 상점을 사용하여 제품이나 서비스를 구매 또는 리뷰했거나, 제3자 시스템(130)으로부터 정보를 요청했거나, 애플리케이션을 설치했거나, 임의의 다른 적절한 행위를 수행하는 등의 특정 행위를 취한 사용자를 식별한다. 타겟팅 기준에 행위를 포함시키는 것은 사용자가 컨텐츠 아이템이 표시될 자격이 있는 사용자들을 더 한정(refine)하도록 한다. 다른 예로, 타겟팅 기준은 다른 사용자 또는 객체로의 연결을 갖거나 다른 사용자 또는 객체로의 특정 타입의 연결을 갖는 사용자들을 식별한다.
행위 로거(215)는 온라인 시스템(140)의 내부 및/또는 외부에서 사용자 행위에 대한 통신을 수신하며, 사용자 행위에 대한 정보로 행위 로그(220)를 채운다. 행위의 예시는 다른 사용자와의 연결관계를 추가하기, 메시지를 다른 사용자에게 송신하기, 이미지를 업로드하기, 다른 사용자로부터의 메시지를 읽기, 다른 사용자와 관련된 컨텐츠를 열람하기 및 다른 사용자가 게시한 이벤트에 참여하기를 포함한다. 추가로, 다수의 행위는 객체 및 하나 이상의 특정 사용자를 수반할 수 있고, 따라서 이들 행위는 특정 사용자와 또한, 연관되며 행위 로그(220)에 저장된다.
행위 로그(220)는 온라인 시스템(140)뿐 아니라 온라인 시스템(140)과 정보를 통신하는 제3자 시스템(130)에서의 사용자 행위를 추적하는데 온라인 시스템(140)에 의해 사용될 수 있다. 사용자는 온라인 시스템(140)에서 다양한 객체와 상호작용할 수 있고, 이들 상호작용을 설명하는 정보는 행위 로그(220)에 저장된다. 객체와의 상호작용의 예시는 다음을 포함한다: 게시물에 대해 코멘트하기, 링크를 공유하기, 클라이언트 장치(110)를 통해 물리적 위치로 체크인하기, 컨텐츠 아이템에 액세스하기 및 임의의 다른 적절한 상호작용. 행위 로그(220)에 포함되는 온라인 시스템(140) 상의 객체와의 상호작용의 추가적인 예는 다음을 포함한다: 사진 앨범에 대해 코멘트하기, 사용자와 통신하기, 객체와 연결을 확립하기, 이벤트에 참가하기, 그룹에 가입하기, 이벤트를 생성하기, 애플리케이션을 승인하기, 애플리케이션을 사용하기, 객체에 호감을 표현하기(객체를 "좋아요"하기) 및 거래를 체결하기. 추가로, 행위 로그(220)는 온라인 시스템(140)뿐 아니라 온라인 시스템(140)에서 동작하는 다른 애플리케이션에서 광고와 사용자의 상호작용을 기록할 수 있다. 일부의 실시예로, 행위 로그(220)로부터의 데이터는 사용자의 관심사나 기호를 추론하는데 사용되며, 사용자의 사용자 프로필에 포함된 관심사를 증가시키고 사용자 기호의 더 완전한 이해를 가능하게 한다.
또한, 행위 로그(220)는 제3자 시스템(130), 예컨대 외부 웹사이트에서 행해진 사용자 행위를 저장하고, 온라인 시스템(140)과 통신할 수 있다. 예컨대, 전자상거래 웹사이트는 전자상거래 웹사이트가 온라인 시스템(140)의 사용자를 식별할 수 있게 하는 소셜 플러그-인을 통해 온라인 시스템(140)의 사용자를 인식할 수 있다. 온라인 시스템(140)의 사용자는 고유하게 식별가능하기 때문에, 상기 예시에서와 같이, 전자상거래 웹사이트는 온라인 시스템(140)의 외부의 사용자의 행위에 대한 정보를 사용자와의 연관을 위하여 온라인 시스템(140)과 통신할 수 있다. 따라서, 행위 로그(220)는 웹페이지 열람 이력, 참여하였던 광고, 이루어진 구매 및 쇼핑과 구입의 다른 패턴을 포함하는 사용자가 제3자 시스템(130)에서 수행한 행위에 대한 정보를 기록할 수 있다. 나아가, 사용자가 제3자 시스템(130)과 연관되고 클라이언트 장치(110) 상에서 실행되는 애플리케이션을 통해 수행하는 행위는 기록 및 행위 로그(220)에서 사용자와 연관을 위해 애플리케이션에 의해 행위 로거(215)로 통신될 수 있다.
일실시예로, 에지 스토어(225)는 사용자와 온라인 시스템(140) 상의 다른 객체 사이의 연결을 설명하는 정보를 에지로 저장한다. 일부 에지는 사용자에 의해 정의될 수 있고, 사용자가 다른 사용자들과의 관계를 명시할 수 있게 해준다. 예컨대, 사용자는 가령 친구, 직장동료, 파트너 등과 같은 사용자의 실생활 관계에 상응하는 다른 사용자들과의 에지를 생성할 수 있다. 다른 에지는 사용자가 가령 온라인 시스템(140) 상의 페이지에 대한 관심을 표현하고, 온라인 시스템(140)의 다른 사용자들과 링크를 공유하며, 온라인 시스템(140)의 다른 사용자들에 의해 행해진 게시물에 코멘트하는 것과 같이 온라인 시스템(140)에서 객체와 상호작용할 때 생성된다.
에지는 각각이 사용자간 상호작용, 사용자와 객체간 상호작용 또는 객체간 상호작용의 특징을 나타내는 다양한 특성을 포함할 수 있다. 예를 들어, 에지에 포함된 특성은 두 사용자간 상호작용의 비율, 두 사용자가 서로와 얼마나 최근에 상호작용했는지, 한 사용자에 의해 객체에 대해 검색된 정보의 비율 또는 양 또는 한 사용자에 의해 객체에 대해 게시된 코멘트의 수 및 타입을 설명한다. 또한, 특성은 특정 객체 또는 사용자를 설명하는 정보를 나타낼 수 있다. 예를 들어, 특성은 사용자가 특정 주제에 대해 가지는 흥미의 정도, 사용자가 온라인 시스템(140)에 로그인하는 비율 또는 사용자에 대한 인구통계학적 정보를 설명하는 정보를 나타낼 수 있다. 각 특성은 원 객체 또는 사용자, 대상 객체 또는 사용자 및 특성값과 연관될 수 있다. 특성은 원 객체 또는 사용자, 대상 객체 또는 사용자 또는 소스 객체 또는 사용자와 대상 객체 또는 사용자간의 상호작용을 설명하는 값에 기반한 표현으로 명시될 수 있다; 따라서, 에지는 하나 이상의 특성 표현으로 표현될 수 있다.
에지 스토어(225)는 또한 가령 객체, 관심사 및 다른 사용자들에 대한 친밀성 점수와 같이 에지에 관한 정보를 저장한다. 친밀성 점수 또는 "친밀도"는 사용자에 의해 수행된 행위에 기초하여 온라인 시스템(140)의 객체 또는 다른 사용자에 대한 사용자의 관심사를 근사화하여 시간에 따라 온라인 시스템(140)에 의해 계산될 수 있다. 사용자의 친밀도는 사용자에 의해 수행된 행위에 기초하여 온라인 시스템(140)의 객체, 주제, 또는 다른 사용자에 대한 사용자의 관심을 근사화하여 시간에 따라 온라인 시스템(140)에 의해 계산될 수 있다. 친밀성의 계산은 본 명세서에 전체로서 참조로 각각 통합되고 2010년 12월 23일자로 출원된 미국특허출원 제12/978,265호, 2012년 11월 30일에 출원된 미국특허출원 제13/690,254호, 2012년 11월30일에 출원된 미국특허출원 제13/689,969호 및 2012년 11월 30일에 출원된 미국특허출원 제13/690,088호에 더 기술된다. 일실시예로, 사용자와 특정 객체 사이의 다수의 상호작용은 에지 스토어(225) 내 하나의 에지로 저장될 수 있다. 대안적으로, 사용자와 특정 객체간 각 상호작용은 분리된 에지로 저장될 수 있다. 일부의 실시예로, 사용자 사이의 연결은 사용자 프로필 스토어(205)에 저장될 수 있거나, 사용자 프로필 스토어(205)는 사용자 사이의 연결을 결정하도록 에지 스토어(225)에 접근할 수 있다.
컨텐츠 선택 모듈(230)은 사용자에게 표시되는 클라이언트 장치(110)와 통신하기 위해 하나 이상의 컨텐츠 아이템을 선택한다. 사용자에게 표시될 자격이 있는 컨텐츠 아이템은 컨텐츠 스토어(210)로부터 또는 다른 소스로부터 컨텐츠 선택 모듈(230)에 의해 검색되는데, 열람 사용자에게 표시하기 위해 컨텐츠 아이템 중 하나 이상을 선택한다. 사용자에게 표시될 자격이 있는 컨텐츠 아이템은 사용자의 특성에 의해 충족되는 적어도 임계수의 타게팅 기준과 연관된 컨텐츠 아이템 또는 타게팅 기준과 연관되지 않는 컨텐츠 아이템이다. 다양한 실시예에서, 컨텐츠 선택 모듈(230)은 하나 이상의 선택 프로세스에서 사용자에게 표시될 자격이 있는 컨텐츠 아이템을 포함하는데, 사용자에게 표시하기 위해 컨텐츠 아이템의 세트를 식별한다. 예를 들어, 컨텐츠 선택 모듈(230)은 온라인 시스템(140)에 의해 사용자와 연관된 특성에 기반하여 및 상이한 컨텐츠 아이템에 대한 사용자의 친밀도에 기반하여 사용자에 대한 다양한 컨텐츠 아이템의 관련성 척도를 결정한다. 관련성 척도에 기반하여, 컨텐츠 선택 모듈(230)은 사용자에게 표시하기 위한 컨텐츠 아이템을 선택한다. 추가 예시로, 컨텐츠 선택 모듈(230)은 사용자에게 표시하기 위해 가장 높은 관련성 척도를 가지거나 적어도 임계 관련성 척도를 가지는 컨텐츠 아이템을 선택한다. 대안적으로, 컨텐츠 선택 모듈(230)은 그 관련성 척도에 기반하여 컨텐츠 아이템을 순위 매기고 사용자에게 표시하기 위하여 순위에서 가장 높은 위치를 가지거나 순위에서 적어도 임계 위치를 가지는 컨텐츠 아이템을 선택한다.
사용자에게 표시될 자격이 있는 컨텐츠 아이템은 입찰 금액과 연관된 컨텐츠 아이템을 포함할 수 있다. 컨텐츠 선택 모듈(230)은 사용자에게 표시하기 위해 컨텐츠를 선택할 때 광고 요청과 연관된 입찰 금액을 사용한다. 다양한 실시예에서, 컨텐츠 선택 모듈(230)은 그 입찰 금액에 기반하여 다양한 컨텐츠 아이템과 연관된 기대값을 결정하고 최대 기대값과 연관되거나 적어도 표시를 위한 임계 기대값과 연관된 컨텐츠 아이템을 선택한다. 컨텐츠 아이템과 연관된 기대값은 컨텐츠 아이템 표시에 대한 온라인 시스템(140)으로의 보상의 기대값을 나타낸다. 예를 들어, 컨텐츠 아이템과 연관된 기대값은 광고 요청의 입찰 금액과 사용자가 컨텐츠 아이템과 상호작용할 확률의 곱이다. 컨텐츠 선택 모듈(230)은 그 연관된 입찰 금액에 기반하여 컨텐츠 아이템을 순위화하고 사용자에게 표시를 위해 순위에서 적어도 임계 위치를 가지는 컨텐츠 아이템을 선택한다. 일부 실시예에서, 컨텐츠 선택 모듈(230)은 입찰 금액과 연관되지 않은 컨텐츠 아이템과 입찰 금액과 연관된 컨텐츠 아이템 모두를 컨텐츠 아이템과 연관된 입찰 금액 및 관련성 척도에 기반하여 통합 순위에서 순위화한다. 통합 순위에 기반하여, 컨텐츠 선택 모듈(230)은 사용자에게 표시하기 위해 컨텐츠를 선택한다. 통합 순위를 통해 입찰 금액과 연관된 컨텐츠 아이템 및 입찰 금액과 연관되지 않은 컨텐츠 아이템을 선택하는 것은 본 명세서에 전체가 참조로 통합되는 2012년 7월 10일자 출원된 미국 특허출원 번호 제13/545,266호에 추가로 기술된다.
예를 들어, 컨텐츠 선택 모듈(230)은 온라인 시스템(140)의 사용자에게 컨텐츠의 피드를 표시하는 요청을 수신한다. 피드는 입찰 금액과 연관된 하나 이상의 컨텐츠 아이템 및 사용자와 연결된 다른 온라인 시스템 사용자와 연관된 행위를 서술하는 소식과 같은, 입찰 금액과 연관되지 않는 다른 컨텐츠 아이템을 포함한다. 컨텐츠 선택 모듈(230)은 사용자 프로필 스토어(205), 컨텐츠 스토어(210), 행위 로그(220) 및 에지 스토어(225) 중 하나 이상에 접근하여 사용자에 대한 정보를 검색한다. 예를 들어, 사용자와 연결된 다른 사용자와 연관된 행위를 서술하는 정보 또는 사용자와 연결된 사용자와 연관된 다른 데이터가 검색된다. 컨텐츠 스토어(210)로부터의 컨텐츠 아이템은 컨텐츠 선택 모듈(230)에 의해 검색 및 분석되어 사용자에게 표시될 자격이 있는 후보 컨텐츠 아이템을 식별한다. 예를 들어, 사용자와 연결되지 않은 사용자와 연관된 컨텐츠 아이템 또는 사용자가 임계 친밀도보다 낮은 친밀도를 가지는 사용자와 연관된 소식은 후보 컨텐츠 아이템으로 버려진다. 다양한 기준에 기반하여, 컨텐츠 선택 모듈(230)은 식별된 사용자에게 표시하기 위해 후보 컨텐츠 아이템으로 식별된 컨텐츠 아이템 중 하나 이상을 선택한다. 선택된 컨텐츠 아이템은 사용자에게 표시되는 컨텐츠의 피드에 포함된다. 예를 들어, 컨텐츠의 피드는 온라인 시스템(140)을 통해 사용자와 연결된 사용자와 연관된 행위를 서술하는 컨텐츠 아이템을 적어도 임계 수 포함한다.
다양한 실시예에서, 컨텐츠 선택 모듈(230)은 사용자에게 표시하기 위해 선택된 복수의 컨텐츠 아이템을 포함하는 뉴스피드를 통해 사용자에게 컨텐츠를 표시한다. 하나 이상의 컨텐츠 아이템도 피드에 포함될 수 있다. 컨텐츠 선택 모듈(230)은 선택된 컨텐츠 아이템이 피드를 통해 표시되는 순서도 결정할 수 있다. 예를 들어, 컨텐츠 선택 모듈(230)은 사용자가 다양한 컨텐츠 아이템과 상호작용할 확률에 기반하여 피드 내에 컨텐츠 아이템을 순서화한다.
웹 서버(235)는 네트워크(120)를 통해 온라인 시스템(140)을 하나 이상의 클라이언트 장치(110)뿐 아니라 하나 이상의 제3자 시스템(130)으로 링크한다. 웹 서버(240)는 웹 페이지뿐만 아니라 가령 JAVA®, FLASH®, XML 등과 같은 다른 컨텐츠를 제공한다. 웹 서버(240)는, 예컨대 인스턴트 메시지, 큐잉된 메시지(예컨대, 이메일), 텍스트 메시지, SMS(단문 메시지 서비스) 메시지 또는 임의의 다른 적절한 메시징 기술을 사용하여 송신되는 메시지와 같은, 온라인 시스템(140)과 클라이언트 장치(110) 사이의 메시지를 수신하고 라우팅할 수 있다. 사용자는 웹 서버(240)로의 요청을 송신하여, 예컨대 컨텐츠 스토어(210)에 저장된 (이미지나 비디오)와 같은 정보를 업로드할 수 있다. 추가로, 웹 서버(240)는 가령 IOS®, ANDROIDTM, WEBOS® 또는 Blackberry OS와 같은 네이티브 클라이언트 장치 운영 시스템으로 직접 데이터를 송신하는 API 기능을 제공할 수 있다.
클라이언트 장치 아키텍처
도 3은 클라이언트 장치(110)의 아키텍처의 일실시예의 블록도이다. 도 3에 도시된 클라이언트 장치(110)는 이미지 캡처 장치(305), 비디오 효과 애플리케이션(310), 렌더러(315) 및 디스플레이 장치(320)를 포함한다. 다른 실시예로, 클라이언트 장치(110)은 다양한 애플리케이션용 추가 구성요소, 더 적은 구성요소 또는 다른 구성요소를 포함할 수 있다. 나아가, 클라이언트 장치(110)의 다양한 컴포넌트는 일부 실시예에서 더 후술되는 기능의 다양한 조합을 제공할 수 있다.
이미지 캡처 장치(305)는 이미지나 비디오 데이터를 캡처할 수 있는 임의의 장치이다. 이미지 캡처 장치(305)의 예시는 하나 이상의 카메라, 하나 이상의 비디오 카메라 또는 이미지 데이터를 캡처할 수 있는 임의의 다른 장치를 포함한다. 일부 실시예에서, 이미지 캡처 장치(305)는 하나 이상의 필터를 포함한다. 유사하게, 이미지 캡처 장치(305)는 다양한 실시예에서 이미지나 비디오 데이터를 생성하는데 사용되는 광을 변경하기 위한 광학을 포함할 수 있다. 상이한 클라이언트 장치(110)는 상이한 특성(예컨대, 캡처된 이미지 데이터의 해상도, 셔터 제어, 프레임 속도, 초점 거리, 비디오나 이미지 데이터를 생성하기 위한 광을 캡처하는 입사 동공의 직경)을 가지는 이미지 캡처 장치(305)를 가질 수 있다. 도 3이 단일 이미지 캡처 장치(305)를 가지는 클라이언트 장치(110)를 도시하지만, 다양한 실시예에서, 클라이언트 장치(110)는 다수의 이미지 캡처 장치(305)를 포함할 수 있다.
비디오 효과 애플리케이션(310)은 클라이언트 장치(110)의 프로세서에 의해 실행될 때, 이미지 캡처 장치(305)로부터 또는 임의의 다른 적절한 소스로부터 수신한 비디오 데이터로부터 정보를 추출하는 명령어를 포함한다. 비디오 데이터로부터 정보를 추출하기 위하여, 비디오 효과 애플리케이션(310)은 비디오 데이터로부터 상이한 정보를 추출하는 다양한 방법으로 비디오 데이터에 하나 이상의 방법을 적용할 수 있다. 예를 들어, 비디오 효과 애플리케이션(310)에 의해 적용되는 하나 이상의 방법은 비디오 데이터의 다양한 프레임으로부터 얼굴과 같은 객체를 검출한다. 다른 예시로, 비디오 효과 애플리케이션(310)에 의해 적용되는 하나 이상의 방법은 비디오 데이터의 다양한 프레임에 기반하여 객체의 움직임을 서술하는 광학 흐름 벡터 또는 비디오 데이터의 다른 컴포넌트를 결정한다. 다양한 실시예에서, 비디오 효과 애플리케이션(310)은 임의의 적절한 정보를 비디오 데이터로부터 추출할 수 있다. 다른 예시로, 비디오 데이터로부터 추출된 정보는 비디오 데이터의 다양한 프레임에 걸쳐 하나 이상의 객체를 추적하거나(예컨대, 비디오 데이터에 하나 이상의 입자 필터의 적용을 통해) 비디오 데이터에서 검출된 하나 이상의 객체의 변화(예컨대, 비디오 데이터에서 검출된 얼굴의 표현의 변화)를 식별한다. 나아가, 비디오 효과 애플리케이션(310)에 의해 비디오 데이터로부터 추출된 정보는 클라이언트 장치(110)의 사용자에 의해 지정된 설정에 기반하여, 비디오 효과 애플리케이션(310)에 의해 지정된 정보에 기반하여, 클라이언트 장치(110) 상에서 실행되는 다른 애플리케이션에 의해 지정된 정보에 기반하여 또는 임의의 다른 적절한 소스로부터의 정보에 기반하여 결정될 수 있다. 이것은 다양한 구현에서 비디오 효과 애플리케이션에 의해 비디오 데이터로부터 추출된 정보의 사용자화를 가능하게 한다. 도 4와 관련되어 더 후술되는 바와 같이, 비디오 효과 애플리케이션(310)은 비디오 데이터와 연관된 메타데이터로서 비디오 데이터로부터 추출된 정보를 저장한다.
나아가, 비디오 효과 애플리케이션(310)은 비디오 데이터에 대한 수정을 식별하는 정보를 수신한다. 비디오 데이터에 대한 수정을 식별하는 정보는 사용자로부터 수신되거나, 다른 애플리케이션으로부터 수신되거나, 온라인 시스템(140)으로부터 수신되거나, 제3자 시스템(130)으로부터 수신된다. 비디오 효과 애플리케이션(310)에 식별된 비디오 데이터에 대한 수정의 예시는 비디오 데이터로의 하나 이상의 필터의 적용, 비디오 데이터의 하나 이상의 부분 상에 텍스트 오버레이, 비디오 데이터의 하나 이상의 부분 상에 이미지 오버레이, 비디오 데이터의 재생 속도 변경, 비디오 데이터의 하나 이상의 부분에 포함된 오디오 수정, 비디오 데이터의 객체의 움직임 식별, 비디오 데이터의 하나 이상의 프레임의 명암이나 색상 수정, 비디오 데이터 내의 객체 추적(예컨대, 입자 필터의 적용), 비디오 데이터의 하나 이상의 객체의 변경 식별(예컨대, 변경 식별) 및 임의의 다른 적절한 수정을 포함한다. 비디오 데이터에 대한 하나 이상의 수정은 비디오 데이터가 표시될 때 비디오 데이터가 어떻게 수정될지에 영향을 주는 클라이언트 장치(110)에 의해 획득한 데이터를 식별할 수 있는데, 예컨대 비디오 데이터에 대한 수정은 비디오 데이터가 표시될 때 클라이언트 장치(110)에 의해 수신되는 하나 이상의 입력 및 하나 이상의 수신된 입력에 기반하여 비디오 데이터 상에 오버레이되는 이미지나 텍스트 데이터를 변경하기 위한 명령어를 식별한다. 다른 예시로, 클라이언트 장치(110)의 가속도계, 클라이언트 장치(110)의 위치 센서, 클라이언트 장치(110)의 마이크 또는 클라이언트 장치(110)의 임의의 다른 적절한 컴포넌트로부터의 데이터는 식별되고 클라이언트 장치(110)에 의해 표시될 때 비디오 데이터가 어떻게 수정되는지를 결정하는데 사용될 수 있다. 나아가, 비디오 데이터에 대한 수정을 식별하는 정보는 수정을 수행하기 위해 비디오 데이터와 연관된 메타데이터의 하나 이상의 특성을 명시할 수 있는데, 예컨대 비디오 데이터에 대한 수정을 서술하는 정보는 특정한 객체와의 임계 유사 척도를 명시하여 만약 메타데이터에 의해 식별된 객체가 특정한 객체와 적어도 임계 유사 척도를 가진다면 식별된 수정이 수행되지만, 만약 메타데이터에 의해 식별된 객체가 특정한 객체와 임계 유사 척도보다 낮은 척도를 가진다면 식별된 수정이 수행되지 않을 수 있다. 비디오 데이터에 대한 상이한 수정이 다양한 실시예에서 비디오 효과 애플리케이션(310)에 식별될 수 있어, 비디오 효과 애플리케이션(310)의 상이한 구현은 비디오 데이터에 대한 상이한 수정을 식별할 수 있다. 도 4와 관련되어 더 후술하는 바와 같이, 비디오 효과 애플리케이션(310)은 비디오 데이터와 연관되어 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 저장한다.
렌더러(315)는 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 수정을 서술하는 정보를 클라이언트 장치(110)로부터 수신한다. 설명의 목적상, 도 3은 렌더러(315)를 비디오 효과 애플리케이션(310)과 별개로 도시하지만, 다양한 실시예에서 렌더러(315)와 비디오 효과 애플리케이션(310)은 단일 컴포넌트로 조합될 수 있다. 도 4와 관련되어 더 후술하는 바와 같이, 비디오 데이터를 렌더링할 때, 렌더러(315)는 정보에 의해 서술된 수정을 수행함으로써 비디오 데이터를 수정하고 수정된 비디오 데이터를 렌더링한다. 비디오 데이터에 하나 이상의 수정을 수행하기 위하여, 렌더러(315)는 메타데이터에 접근하고 비디오 데이터로부터 추출되고 메타데이터에 의해 서술된 정보를 사용한다. 예를 들어, 만약 비디오 데이터에 대한 수정이 비디오 데이터의 객체(비디오 데이터의 얼굴) 상에 오버레이할 이미지를 식별한다면, 렌더러(315)는 메타데이터로부터 객체를 포함하는 비디오 데이터의 프레임 및 객체를 가지는 식별된 프레임 내의 위치를 식별하고 객체를 가지는 식별된 프레임 내의 위치 상에 이미지를 오버레이한다. 따라서, 렌더러(315)는 비디오 데이터로부터 추출된 정보를 서술하는 메타데이터를 활용하여 추후에 비디오 데이터로부터 다시 정보를 추출하지 않고 비디오 데이터를 수정한다.
클라이언트 장치(110)에 포함된 디스플레이 장치(320)는 클라이언트 장치(110)의 사용자에게 이미지 데이터나 비디오 데이터를 표시한다. 디스플레이 장치(320)의 예시는 LCD(liquid crystal display), OLED(organic light emitting diode) 디스플레이, AMLCD(active matrix liquid crystal display) 또는 임의의 다른 적절한 장치를 포함한다. 상이한 클라이언트 장치(110)는 상이한 특성을 가지는 디스플레이 장치(320)를 가질 수 있다. 예를 들어, 상이한 디스플레이 장치(320)는 상이한 디스플레이 영역, 상이한 해상도 또는 상이한 다른 특성을 가지는 디스플레이 장치(320)를 가진다.
비디오 데이터로부터 추출된 정보에 기반하여 클라이언트 장치에 의해 획득한 비디오 데이터 수정
도 4는 클라이언트 장치(110)에 의해 획득한 비디오 데이터를 수정하는 방법의 일실시예의 흐름도이다. 다른 실시예에서, 방법은 도 4에 도시된 것과 상이하거나 및/또는 추가적인 단계를 포함할 수 있다. 또한, 다양한 실시예에서 방법의 단계들은 도 4와 관련하여 서술되는 순서와는 상이한 순서로 수행될 수 있다.
클라이언트 장치(110)에 포함된 이미지 캡처 장치(305)는 비디오 데이터를 캡처한다(405). 예를 들어, 클라이언트 장치(110)에 포함된 카메라는 비디오 데이터를 캡처한다(405). 다양한 실시예에서, 이미지 캡처 장치(305)에 의해 캡처된(405) 비디오 데이터는 임의의 적절한 해상도 또는 임의의 다른 적절한 특성을 가진다. 다른 실시예에서, 클라이언트 장치(110)는 임의의 적절한 소스로부터 비디오 데이터를 캡처한다(405). 예를 들어, 클라이언트 장치(110)에 의해 캡처된 비디오 데이터는 클라이언트 장치(110)가 온라인 시스템(140), 제3자 시스템(130), 클라이언트 장치(110) 또는 임의의 다른 적절한 소스로부터 수신한 비디오 데이터이다.
클라이언트 장치(110) 상에서 실행되는 비디오 효과 애플리케이션(310)은 클라이언트 장치(110)의 이미지 캡처 장치(305)에 의해 캡처된(405) 비디오 데이터를 수신하고 캡처된 비디오 데이터로부터 정보를 추출한다(410). 비디오 효과 애플리케이션(310)은 다양한 실시예에서 캡처된 비디오 데이터로부터 임의의 적절한 정보를 추출한다(410). 캡처된 비디오 데이터로부터 정보를 추출하고(410) 추출된 정보를 이용하여 캡처된 비디오 데이터를 수정한다. 예를 들어, 비디오 효과 애플리케이션(310)은 캡처된 비디오 데이터에 포함된 얼굴과 갈은 객체를 검출하기 위해 캡처된 비디오 데이터에 하나 이상의 프로세스를 적용하고, 비디오 효과 애플리케이션(310)은 검출된 객체의 비디오 데이터의 하나 이상의 프레임 내에서의 위치를 식별할 수 있다. 다른 예시로, 비디오 효과 애플리케이션(310)은 캡처된 비디오 데이터에 하나 이상의 프로세스를 적용하여 캡처된 비디오 데이터에서 객체의 움직임을 서술하는 광학 흐름 벡터 또는 임의의 다른 적절한 컴포넌트를 결정한다. 다양한 실시예에서, 비디오 효과 애플리케이션(310)은 캡처된 비디오 데이터에 대한 임의의 적절한 특성 또는 정보를 추출할 수 있다(410).
비디오 효과 애플리케이션(310)은 캡처된 비디오 데이터와 연관된 메타데이터로 캡처된 비디오 데이터로부터 추출된(410) 정보를 저장한다(415). 다양한 실시예에서, 추출된 정보는 캡처된 비디오와 연관하여 임의의 적절한 포맷으로 저장될 수 있다(415). 예를 들어, 만약 추출된 정보가 캡처된 비디오에서 검출된 객체를 포함한다면, 캡처된 비디오 데이터와 연관하여 저장된(415) 메타데이터는 검출된 객체의 식별자와 함께 다양한 객체가 검출된 비디오 데이터 내의 시간 또는 다양한 객체가 검출된 비디오 데이터의 프레임의 식별자를 포함하고, 객체가 검출된 다양한 프레임 내에서의 위치도 저장된 메타데이터에 포함될 수 있다. 다른 예시로, 다양한 프레임으로부터 결정된 광학 흐름 벡터가 광학 흐름 벡터가 결정된 캡처된 비디오 데이터의 프레임의 식별자와 연관하여 저장된다(415).
비디오 효과 애플리케이션(310)은 일부 실시예에서 온라인 시스템(140)으로 캡처된 비디오 데이터 및 캡처된 비디오 데이터와 연관된 메타데이터를 통신한다. 온라인 시스템(140)은 일부 실시예에서 클라이언트 장치(110)로부터 캡처된 비디오 데이터 및 캡처된 비디오 데이터와 연관된 메타데이터를 저장한다. 예를 들어, 클라이언트 장치(110) 상에서 실행되는 비디오 효과 애플리케이션(310)은 캡처된 비디오 데이터와 연관하여 클라이언트 장치(110)와 연관된 온라인 시스템(140)의 사용자를 식별하는 정보 및 캡처된 비디오 데이터와 연관된 메타데이터를 온라인 시스템(140)과 통신하는데, 캡처된 비디오 데이터 및 연관된 메타데이터를 사용자와 연관하여 저장한다. 다른 예시로, 클라이언트 장치(110)는 온라인 시스템(140)의 추가 사용자의 식별자, 캡처된 비디오 데이터 및 캡처된 비디오 데이터와 연관된 메타데이터를 온라인 시스템(140)과 통신하는데, 캡처된 비디오 데이터 및 캡처된 비디오 데이터와 연관된 메타데이터를 식별자에 대응하는 추가 사용자와 연관된 추가 클라이언트 장치(110)와 통신한다.
나아가, 비디오 효과 애플리케이션(310)은 캡처된 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신하고(420) 캡처된 비디오 데이터와 연관하여 캡처된 비디오 데이터에 대한 수정을 식별하는 수신된 정보를 저장한다(425). 예를 들어, 비디오 효과 애플리케이션(310)은 필터가 적용되는 캡처된 비디오 데이터의 하나 이상의 부분(예컨대, 프레임의 식별자, 시간 간격)의 식별자와 함께 사용자로부터 캡처된 비디오 데이터에 적용하기 위하여 필터의 식별자를 수신하고(420) 캡처된 비디오 데이터와 연관하여 필터의 식별자 및 필터가 적용되는 캡처된 비디오 데이터의 하나 이상의 부분의 식별자를 저장한다(425). 다른 예시로, 비디오 효과 애플리케이션(310)은 캡처된 데이터의 하나 이상의 부분 상에 오버레이하기 위하여 텍스트나 이미지 데이터를 수신하고(420) 텍스트나 이미지 데이터가 오버레이되는 캡처된 비디오 데이터의 하나 이상의 부분의 식별자(예컨대, 프레임의 식별자, 시간 간격)와 연관하여 텍스트나 이미지 데이터를 저장한다(425). 수신된(420) 정보는 일부 실시예에서 텍스트나 이미지 데이터가 오버레이되는 캡처된 비디오 데이터로부터 검출된 객체를 식별할 수 있다. 일부 실시예에서, 캡처된 비디오에 대한 수정을 식별하는 정보는 클라이언트 장치(110)로부터 온라인 시스템(140)으로 통신된다. 예를 들어, 온라인 시스템(140)은 온라인 시스템(140)의 사용자를 식별하는 정보를 캡처된 비디오 데이터에 대한 수정을 식별하는 정보와 함께 수신하고, 온라인 시스템(140)은 사용자 및 캡처된 비디오 데이터와 연관하여 수정을 식별하는 정보 및 캡처된 비디오 데이터와 연관된 메타데이터를 저장한다. 다른 예시로, 온라인 시스템(140)은 클라이언트 장치(110)로부터 추가 사용자의 식별자를 캡처된 비디오에 대한 수정을 식별하는 정보와 함께 수신하고, 온라인 시스템(140)은 캡처된 비디오 데이터, 캡처된 비디오 데이터와 연관된 메타데이터 및 캡처된 비디오 데이터에 대한 수정을 식별하는 정보를 추가 사용자와 연관된 추가 클라이언트 장치(110)와 통신한다.
하나 이상의 수정을 식별하는 저장된(425) 정보에 기반하여 캡처된 데이터를 수정하기 위하여, 캡처된 비디오 데이터가 추후 표시될 때, 이미지 캡처 장치(305)는 캡처된 비디오 데이터, 캡처된 비디오 데이터와 연관된 메타데이터 및 캡처된 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 렌더러(315)에게 제공한다. 일부 실시예에서, 렌더러(315)는 비디오 효과 애플리케이션(310)의 컴포넌트이다. 대안적으로, 렌더러(315)는 클라이언트 장치(110)의 개별 컴포넌트인데, 예컨대 렌더러(315)는 클라이언트 장치(110) 상에서 실행되는 개별 애플리케이션 또는 클라이언트 장치(110)의 하드웨어나 펌웨어 컴포넌트이다. 캡처된 비디오 데이터가 표시 또는 저장될 때, 렌더러(315)는 식별된 하나 이상의 수정 및 캡처된 비디오 데이터와 연관된 메타데이터에 기반하여 캡처된 비디오 데이터를 수정한다(430). 예를 들어, 캡처된 비디오 데이터와 연관된 정보는 텍스트나 이미지가 오버레이되는 캡처된 비디오 데이터의 부분을 식별하여, 캡처된 비디오 데이터의 식별된 부분이 클라이언트 장치(110)의 디스플레이 장치(320)에 의해 표시되기 위해 렌더링되거나 클라이언트 장치(110), 온라인 시스템(140) 또는 제3자 시스템(130)에 의해 저장되기 위해 렌더링될 때 렌더러(315)는 텍스트나 이미지를 캡처된 비디오 데이터의 식별된 부분 상에 오버레이한다. 만약 캡처된 비디오 데이터에 대해 식별된 수정이 수정되는 비디오 데이터 내의 객체를 식별한다면, 렌더러(315)는 캡처된 비디오 데이터와 연관된 메타데이터로부터 식별된 객체를 포함하는 비디오 데이터의 부분을 식별하고 식별된 객체를 포함하는 비디오 데이터의 부분이 표시될 때 정보에 의해 명시된 대로 객체를 수정한다. 따라서, 렌더러(315)는 캡처된 비디오 데이터와 연관된 메타데이터를 사용하여 저장된 정보에 기반하여 수정되는 캡처된 비디오의 부분을 식별하고 표시를 위해 캡처된 비디오 데이터를 렌더링할 때 캡처된 비디오 데이터의 식별된 부분을 수정한다.
캡처된 비디오 데이터와 연관하여 캡처된 비디오 데이터로부터 추출된(410) 정보를 서술하는 메타데이터를 저장하고 이어서 캡처된 비디오 데이터와 연관된 메타데이터를 활용하여 표시 또는 저장될 때 캡처된 비디오 데이터를 수정하는(430) 것은 클라이언트 장치(110)가 더 효율적으로 전력을 소비할 수 있게 하여, 캡처된 비디오 데이터를 수정할 때 클라이언트 장치(110)가 배터리나 다른 전력 공급 소모를 줄일 수 있게 한다. 캡처된 비디오 데이터로부터 정보를 추출하는(410) 방법이 계산 집약적이기 때문에, 캡처된 비디오로부터 정보를 추출하고(410) 추출된 정보를 캡처된 비디오와 연관된 메타데이터로 저장하는 것(415)은 클라이언트 장치(110)나 온라인 시스템(140)로부터 캡처된 비디오 데이터를 수신한 후 캡처된 비디오 데이터로부터 정보를 다시 추출하지 않고 수정된 캡처된 비디오 데이터를 렌더링할 때 캡처된 비디오 데이터를 수정하기 위하여 캡처된 비디오 데이터와 연관된 메타데이터를 활용하여 캡처된 비디오 데이터를 수신하는 다른 클라이언트 장치(110)에 의한 캡처된 비디오 데이터의 추후 수정을 가능하게 한다. 추가로, 캡처된 비디오 데이터로부터 추출된 정보를 저장하고(415) 저장된 정보를 사용하여 표시나 저장 동안 캡처된 비디오 데이터를 수정하는 것(430)은 캡처된 비디오 데이터에 대한 수정의 품질을 증가시킨다. 예를 들어, 캡처된 비디오 데이터와 연관된 저장된 메타데이터를 사용하여 캡처된 비디오 데이터를 수정하는 것(430)은 캡처된 비디오 데이터에 대한 수정이 캡처된 비디오 데이터의 압축으로 인한 아티팩트가 없게 할 수 있다.
나아가, 캡처된 비디오 데이터로부터 추출된 저장된 정보를 서술하는 메타데이터에 기반하여 캡처된 비디오 데이터를 수정하는 것(430)은 캡처된 비디오 데이터가 수정되는 동안 캡처된 비디오 데이터로부터 정보가 추출될 때보다 캡처된 비디오 데이터에 대한 더 복잡한 수정을 가능하게 할 수 있다. 예를 들어, 캡처된 비디오 데이터와 연관된 메타데이터에 기반하여 캡처된 비디오 데이터를 수정하는 것(430)은 수정된 캡처된 비디오 데이터가 표시될 때 캡처된 비디오 데이터에 대한 하나 이상의 수정이 클라이언트 장치(110)에 의해 획득한 데이터를 고려할 수 있게 한다. 일례로, 캡처된 비디오 데이터를 수정하는(430) 클라이언트 장치(110)는 클라이언트 장치(110)가 캡처된 비디오 데이터를 표시하는 동안 클라이언트 장치(110)의 사용자로부터의 상이한 입력(예컨대, 캡처된 비디오 데이터가 표시될 때 클라이언트 장치(110)의 입력 장치와의 상호작용)에 기반하여 또는 클라이언트 장치(110)의 하나 이상의 컴포넌트에 의해 캡처된 상이한 정보(예컨대, 가속도계, 위치 센서 등)에 기반하여 캡처된 비디오 데이터를 상이하게 수정한다. 따라서, 만약 캡처된 비디오 데이터, 캡처된 비디오 데이터와 연관된 메타데이터 및 캡처된 비디오 데이터에 대한 수정을 식별하는 정보가 추가 클라이언트 장치(110)에 제공된다면, 상이한 추가 클라이언트 장치(110)는 캡처된 비디오 데이터를 표시하는 동안 상이한 클라이언트 장치(110)에 의해 획득한 데이터의 차이에 기반하여 표시 동안 캡처된 비디오 데이터에 대한 하나 이상의 수정을 상이하게 수행할 수 있다. 나아가, 캡처된 비디오 데이터와 연관된 메타데이터를 사용하여 캡처된 비디오 데이터를 수정하는 것(430)은 캡처된 비디오 데이터의 부분과 연관된 메타데이터에 기반하여 캡처된 비디오의 부분에 대한 다수의 수정을 가능하게 한다. 예를 들어, 만약 캡처된 비디오 데이터와 연관된 메타데이터가 특정 객체 또는 특정 객체에 대한 변화를 포함하는 비디오 데이터의 부분을 식별한다면, 하나 이상의 이미지가 캡처된 비디오 데이터의 식별된 부분 상에 오버레이되고 캡처된 비디오 데이터의 오디오가 식별된 부분 동안 수정된다. 캡처된 비디오 데이터와 연관된 메타데이터를 사용하는 것은 캡처된 비디오 데이터의 다양한 부분의 특성이나 컨텐츠에 기반하여 캡처된 비디오 데이터의 다양한 부분에 대한 다수의 수정의 수행을 단순화한다.
도 4가 클라이언트 장치의 이미지 캡처 장치(305)에 의해 캡처된(405) 비디오 데이터로부터 정보의 추출을 서술하지만, 도 4와 관련하여 상술한 방법은 임의의 적절한 소스로부터 클라이언트 장치(110)에 의해 획득한 비디오 데이터에 적용될 수 있다. 예를 들어, 더 자세히 상술한 바와 같이 클라이언트 장치(110)는 다른 클라이언트 장치(110), 온라인 시스템(140) 또는 제3자 시스템(130)로부터 비디오 데이터를 수신하고, 비디오 효과 애플리케이션(310)은 비디오 데이터로부터 정보를 추출하고(410) 추출된 정보를 비디오 데이터와 연관된 메타데이터로 저장한다(415). 비디오 효과 애플리케이션(310)은 비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보를 수신하고(420) 수신된 정보를 비디오 데이터와 연관하여 저장한다(425). 비디오 데이터가 추후 표시 또는 저장될 때, 렌더러는 더 자세히 상술한 바와 같이 비디오 데이터와 연관된 메타데이터에 기반하여 비디오 데이터를 수신된 정보에 의해 명시된 대로 수정한다. 따라서, 클라이언트 장치(110)에 의해 이미지 캡처 장치(305)로부터 획득하거나 임의의 적절한 소스로부터 획득한 비디오 데이터는 도 4와 관련하여 상술한 바와 같이 수정될 수 있다.
도 5는 클라이언트 장치(110)에 의해 획득한 비디오 데이터를 수정하는 아키텍처의 일실시예의 프로세스 흐름도이다. 도 5의 예시에서, 클라이언트 장치(110)의 이미지 캡처 장치(305)는 비디오 데이터를 캡처하고 클라이언트 장치(110) 상에서 실행되는 비디오 효과 애플리케이션(310)으로 캡처된 비디오 데이터를 제공한다(505). 도 4와 관련되어 더 자세히 상술한 바와 같이, 비디오 효과 애플리케이션(310)은 캡처된 비디오 데이터로부터 정보를 추출하고 캡처된 비디오 데이터와 연관된 메타데이터로 추출된 정보를 저장한다. 나아가, 도 4와 관련되어 더 자세히 상술한 바와 같이 비디오 효과 애플리케이션(310)은 캡처된 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신하고 캡처된 비디오 데이터와 연관하여 캡처된 비디오 데이터에 대한 수정을 식별하는 수신된 정보를 저장한다. 비디오 효과 애플리케이션(310)은 캡처된 비디오 데이터, 캡처된 비디오 데이터와 연관된 메타데이터 및 캡처된 비디오 데이터에 대한 수정을 식별하는 정보를 렌더러(315)로 제공한다.
렌더러(315)는 수신된 정보에 의해 식별되는 캡처된 비디오 데이터의 부분에 대한 수신된 정보에 의해 명시된 수정을 수행함으로써 캡처된 비디오 데이터를 수정한다. 캡처된 비디오 데이터를 수정할 때, 렌더러(315)는 캡처된 비디오 데이터와 연관된 메타데이터에 접근하고 캡처된 비디오 데이터로부터 추출되고 메타데이터에 의해 서술되는 정보를 사용하여 수정 중 하나 이상을 수행한다. 렌더러(315)는 표시를 위해 클라이언트 장치(110)의 디스플레이 장치(320)로 또는 저장을 위해 클라이언트 장치(110)에 포함된 저장 장치로 수정된 캡처된 비디오 데이터를 제공한다. 따라서, 도 5와 관련되어 서술된 아키텍처는 캡처된 비디오 데이터로부터의 정보의 추출과 추출된 정보에 기반한 캡처된 비디오 데이터의 수정을 분리하여 캡처된 비디오 데이터의 수정이 클라이언트 장치(110)에 의한 전력 소비를 줄일 수 있게 한다.
도 6은 클라이언트 장치(110)에 의해 획득된 비디오 데이터 및 비디오 데이터에 대한 수정을 수정을 수행하고 수정된 비디오 데이터를 표시하는 다른 클라이언트 장치(110)로 제공하는 방법의 일실시예의 상호작용도이다. 다른 실시예에서, 방법은 도 6에 도시된 것과 상이하거나 및/또는 추가적인 단계를 포함할 수 있다. 또한, 다양한 실시예에서 방법의 단계들은 도 6과 관련하여 서술되는 순서와는 상이한 순서로 수행될 수 있다.
클라이언트 장치(110A)는 비디오 데이터를 획득하고(605) 비디오 데이터가 획득될 때(605) 비디오 데이터로부터 정보를 추출한다(610). 도 4와 관련하여 더 자세히 상술한 바와 같이, 비디오 데이터는 클라이언트 장치(110A)에 포함된 이미지 캡처 장치(305)에 의해 캡처되거나, 다른 클라이언트 장치(110)로부터 수신되거나, 제3자 시스템(130)으로보터 수신되거나, 온라인 시스템(140)으로부터 수신되거나, 클라이언트 장치(110A)에 포함된 저장 장치로부터 검색되거나, 임의의 다른 적절한 소스로부터 획득(605)될 수 있다. 클라이언트 장치(110A)가 비디오 데이터를 획득하는(605) 동안, 클라이언트 장치(110A)는 비디오 데이터로부터 정보를 추출한다(610). 도 4와 관련되어 더 자세히 상술한 바와 같이, 클라이언트 장치(110A)는 하나 이상의 프로세스를 비디오 데이터에 적용하여 비디오 데이터로부터 임의의 적절한 정보를 추출한다(예컨대, 객체, 광학 흐름 벡터, 하나 이상의 객체에 대한 변화, 객체의 비디오 데이터의 하나 이상의 프레임 내에서의 위치 등). 클라이언트 장치(110A)는 추출한 정보를 비디오 데이터와 연관된 메타데이터로 저장한다(615). 예를 들어, 만약 추출된 정보가 캡처된 비디오에서 검출된 객체를 포함한다면, 비디오 데이터와 연관하여 저장된(615) 메타데이터는 검출된 객체의 식별자와 함께 다양한 객체가 검출된 비디오 데이터 내의 시간 또는 다양한 객체가 검출된 비디오 데이터의 프레임의 식별자를 포함하고, 객체가 검출된 다양한 프레임 내에서의 위치도 저장된 메타데이터에 포함될 수 있다.
나아가, 클라이언트 장치(110A)는 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신하고(620) 저장한다. 예를 들어, 클라이언트 장치(110A)는 사용자로부터 캡처된 비디오 데이터에 적용할 필터의 식별자를 필터가 적용되는 캡처된 비디오 데이터의 하나 이상의 부분의 식별자(예컨대, 프레임의 식별자, 시간 간격)와 함께 수신한다(620). 다른 예로, 클라이언트 장치(110A)는 텍스트나 이미지 데이터가 오버레이되는 캡처된 비디오 데이터의 캡처된 데이터의 하나 이상의 부분(예컨대, 프레임의 식별자, 시간 간격) 상에 오버레이할 텍스트나 이미지 데이터를 수신한다(620). 수신된 정보는 일부 실시예에서 텍스트나 이미지 데이터가 오버레이되는 캡처된 비디오 데이터로부터 검출된 객체를 식별할 수 있다. 도 4와 관련하여 상술한 바와 같이, 수신된 정보는 비디오 데이터의 하나 이상의 부분의 하나 이상의 객체 또는 특성 및 하나 이상의 객체를 포함하거나 하나 이상의 특성을 가지는 비디오 데이터의 부분에 수행할 하나 이상의 수정을 식별할 수 있다.
클라이언트 장치(110A)는 비디오 데이터, 캡처된 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 온라인 시스템(140)으로 제공하는데(625), 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 저장한다(630). 예를 들어, 클라이언트 장치(110A)는 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보와 연관하여 클라이언트 장치(110A)의 사용자를 식별하는 정보를 온라인 시스템(140)에 제공하는데(625), 비디오 데이터, 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 사용자와 연관하여 저장한다(630).
온라인 시스템(140)은 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 추가 클라이언트 장치(110B)로 제공한다(635). 다양한 실시예에서, 추가 클라이언트 장치(110B)는 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보와 함께 온라인 시스템(140)에 제공된(625) 온라인 시스템(140)의 사용자와 연관된다. 대안적으로, 온라인 시스템(140)은 클라이언트 장치(110A)와 연관된 사용자로부터 온라인 시스템(140)의 추가 사용자를 식별하는 정보를 수신하고, 추가 사용자를 위해 온라인 시스템(140)이 유지하는 정보로부터 추가 사용자와 연관된 추가 클라이언트 장치(110B)를 식별하고, 추가 클라이언트 장치(110B)로 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 제공한다(635).
클라이언트 장치(110A)가 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신할 때, 추가 클라이언트 데이터는 비디오 데이터를 렌더링하는 동안 메타데이터를 사용하여 비디오 데이터에 대한 식별된 수정 중 하나 이상의 수행하고(640) 디스플레이 장치(325)를 통해 수정된 비디오 데이터를 표시한다(645). 비디오 데이터를 렌더링하는 동안 식별된 수정 중 하나 이상을 수행하기(640) 위하여 비디오 데이터와 연관된 메타데이터를 사용하는 것은 비디오 데이터를 수정할 때 추가 클라이언트 장치(110B)가 배터리나 다른 전력 공급 소모를 줄일 수 있게 한다. 도 4와 관련되어 상술한 바와 같이, 비디오 데이터로부터 정보를 추출하는 것은 계산 집약적이고, 비디오 데이터에 대한 수정 중 하나 이상을 수행하기(640) 위하여 메타데이터를 사용하는 것은 추가 클라이언트 장치(110B)가 캡처된 비디오 데이터를 수신한 후 비디오 데이터로부터 수정을 수행하기 위한 정보를 다시 추출하지 않고 렌더링 동안 비디오 데이터를 수정하기 위하여 비디오 데이터와 연관된 메타데이터를 활용할 수 있게 한다.
결론
실시예의 상기 서술은 설명의 목적으로 제공되고, 배타적이거나 개시된 정확한 형태들로 특허권을 제한하고자 하는 것이 아니다. 당업자는 상술한 명세서의 관점에서 많은 변경 및 변형이 가능함을 이해할 수 있다.
본 명세서의 일부는 실시예들을 정보에 대한 동작의 알고리즘 및 기호적 표현으로 설명한다. 이러한 알고리즘적 설명이나 표현은 본 기술분야에서 통상의 지식을 가진 자들에게 효과적으로 그들의 작업의 실체를 전달하기 위하여 데이터 프로세싱 기술분야에서 통상의 지식을 가진 자에 의하여 공통적으로 사용되는 것이다. 기능적으로, 계산적으로 또는 논리적으로 설명되고 있는 이들 동작은 컴퓨터 프로그램 또는 등가의 전기 회로, 마이크로 코드 등에 의해 구현되는 것으로 이해된다. 또한, 종종 이러한 동작의 배열은 일반성의 손실 없이 모듈로 언급될 수 있는 것으로 확인된다. 기술된 동작 및 그와 관련된 모듈들은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의의 결합으로 구현될 수 있을 것이다.
본 명세서에 설명된 임의의 단계들, 동작들 또는 프로세스들은 하나 이상의 하드웨어 또는 소프트웨어 모듈들에 의해 또는 이들과 다른 장치들의 결합에 의해 수행되거나 구현될 수 있다. 일실시예에서, 소프트웨어 모듈은 기술된 단계들, 동작들 또는 프로세스들 일부 또는 전부를 수행하기 위하여 컴퓨터 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능한 매체를 포함하는 컴퓨터 프로그램 제품으로 구현된다.
또한, 본 발명의 실시예들은 본 명세서의 동작들을 수행하기 위한 장치와 관련될 수 있다. 이 장치는 요청된 목적을 위하여 구체적으로 구성될 수 있고/있거나 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨팅 장치를 포함할 수 있다. 이런 컴퓨터 프로그램은 비-일시적 유형(tangible)의 컴퓨터 판독가능한 저장 매체나 컴퓨터 시스템 버스에 결합될 수 있는 전자 명령어를 저장하기에 적절한 임의의 타입의 매체에 저장될 수 있다. 게다가, 본 명세서에서 언급된 임의의 컴퓨팅 시스템들은 단일 프로세서를 포함할 수 있거나, 증가한 컴퓨팅 능력을 위해 다중 프로세서 설계를 채용한 구조일 수 있다.
실시예들은 또한, 본 명세서에 기술된 컴퓨팅 프로세스에 의해 생성된 상품에 관한 것일 수 있다. 이런 제품은 컴퓨팅 프로세스의 처리 결과인 정보를 포함할 수 있으며, 여기서 정보는 비-일시적, 유형의 컴퓨터 판독가능한 저장 매체에 저장되고 본 명세서에 개시된 컴퓨터 프로그램 제품 또는 다른 데이터 조합의 임의의 실시예를 포함할 수 있다.
마지막으로, 본 명세서에서 사용되는 언어는 원칙적으로 가독성 및 훈시적 목적으로 선택되었으며, 특허권을 상세히 설명하거나 제한하려고 선택된 것은 아닐 수 있다. 따라서, 특허권의 범위는 본 상세한 설명에 의해서가 아니라, 본 출원이 기반을 두어 제출되는 임의의 청구범위에 의해 한정되는 것으로 의도된다. 따라서, 실시예들에 관한 개시는 하기의 청구범위에서 제시되는 특허권의 범위의 예시가 되지만 이에 국한되지 않는 것으로 의도된다.

Claims (40)

  1. 클라이언트 장치에서 비디오 데이터를 획득하는 단계;
    클라이언트 장치에서 비디오 데이터가 획득될 때 비디오 데이터에 하나 이상의 프로세스를 적용하는 클라이언트 장치에 의하여 비디오 데이터로부터 정보를 추출하는 단계;
    비디오 데이터와 연관된 메타데이터로 추출된 정보를 저장하는 단계;
    비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신하는 단계;
    비디오 데이터와 연관하여 비디오 데이터에 대한 수정을 식별하는 수신된 정보를 저장하는 단계;
    클라이언트 장치에 의하여 비디오 데이터가 렌더링될 때 수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하는 단계; 및
    클라이언트 장치의 디스플레이 장치를 통하여 수정된 비디오 데이터를 표시하는 단계를 포함하고,
    수정 중 하나 이상은 비디오 데이터와 연관된 메타데이터를 사용하여 수행되는 방법.
  2. 청구항 1에 있어서,
    온라인 시스템으로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계를 더 포함하는 방법.
  3. 청구항 2에 있어서,
    온라인 시스템으로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계는:
    비디오 데이터 및 비디오 데이터와 연관된 메타데이터와 연관하여 온라인 시스템으로 온라인 시스템의 사용자의 식별자를 통신하는 단계를 포함하는 방법.
  4. 청구항 2에 있어서,
    비디오 데이터 및 비디오 데이터와 연관된 메타데이터와 연관하여 온라인 시스템으로 비디오 데이터에 대한 수정을 식별하는 수신된 정보를 제공하는 단계를 더 포함하는 방법.
  5. 청구항 1에 있어서,
    비디오 데이터와 연관된 메타데이터는 하나 이상의 객체를 포함하는 비디오 데이터의 하나 이상의 부분을 식별하는 방법.
  6. 청구항 5에 있어서,
    비디오 데이터를 수정하는 단계는:
    비디오 데이터의 하나 이상의 부분에 포함된 객체에 기반하여 비디오 데이터의 하나 이상의 부분을 수정하는 단계를 포함하는 방법.
  7. 청구항 1에 있어서,
    비디오 데이터에 대한 수정은 비디오 데이터의 부분을 식별하고, 비디오 데이터를 수정하는 단계는:
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 사용자로부터 수신된 하나 이상의 입력에 기반하여 비디오 데이터의 부분을 수정하는 단계를 포함하는 방법.
  8. 청구항 1에 있어서,
    비디오 데이터에 대한 수정은 비디오 데이터의 부분을 식별하고, 비디오 데이터를 수정하는 단계는:
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 하나 이상의 컴포넌트에 의하여 캡처된 정보에 기반하여 비디오 데이터의 부분을 수정하는 단계를 포함하는 방법.
  9. 청구항 8에 있어서,
    클라이언트 장치의 컴포넌트는 가속도계, 위치 센서 및 그 임의의 조합으로 구성되는 그룹으로부터 선택되는 방법.
  10. 청구항 1에 있어서,
    수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하는 단계는:
    비디오 데이터와 연관된 메타데이터에 의하여 객체를 포함하는 것으로 식별된 비디오 데이터의 부분 상에 하나 이상의 이미지를 오버레이하고 비디오 데이터의 부분 동안 비디오 데이터의 오디오 데이터를 수정하는 단계를 포함하는 방법.
  11. 청구항 1에 있어서,
    수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하는 단계는:
    비디오 데이터와 연관된 메타데이터에 의하여 식별된 비디오 데이터의 부분의 하나 이상의 특성에 기반하여 비디오 데이터의 부분에 대한 복수의 수정을 수행하는 단계를 포함하는 방법.
  12. 청구항 1에 있어서,
    클라이언트 장치에서 비디오 데이터를 획득하는 단계는:
    클라이언트 장치에 포함된 이미지 캡처 장치를 통하여 비디오 데이터를 캡처하는 단계를 포함하는 방법.
  13. 청구항 1에 있어서,
    클라이언트 장치에서 비디오 데이터를 획득하는 단계는:
    다른 클라이언트 장치로부터 비디오 데이터를 수신하는 단계를 포함하는 방법.
  14. 청구항 1에 있어서,
    클라이언트 장치에서 비디오 데이터가 획득될 때 비디오 데이터에 적용되는 프로세스는 비디오 데이터에 포함된 하나 이상의 객체를 식별하는 방법.
  15. 청구항 14에 있어서,
    비디오 데이터에 포함된 객체는 얼굴을 포함하는 방법.
  16. 온라인 시스템에서, 온라인 시스템의 사용자와 연관된 클라이언트 장치로부터 비디오 데이터를 수신하는 단계;
    온라인 시스템에서, 클라이언트 장치에 의하여 비디오 데이터와 연관된 메타데이터를 수신하는 단계;
    온라인 시스템에 메타데이터와 연관하여 비디오 데이터를 저장하는 단계; 및
    온라인 시스템의 추가 사용자와 연관된 추가 클라이언트 장치로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계를 포함하고,
    메타데이터는 클라이언트 장치가 비디오 데이터를 획득할 때 클라이언트 장치에 의하여 비디오 데이터로부터 추출된 정보를 포함하는 방법.
  17. 청구항 16에 있어서,
    온라인 시스템에서, 클라이언트 장치에 의하여 비디오 데이터와 연관된 메타데이터를 수신하는 단계는:
    클라이언트 장치에 의하여 비디오 데이터와 연관된 메타데이터 및 클라이언트 장치에 의하여 수신된 비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보를 수신하는 단계를 포함하는 방법.
  18. 청구항 17에 있어서,
    추가 클라이언트 장치로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계는:
    추가 클라이언트 장치로 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보를 제공하는 단계를 포함하고,
    추가 클라이언트 장치는 비디오 데이터를 렌더링할 때 비디오 데이터에 대한 하나 이상의 수정을 수행하도록 구성되는 방법.
  19. 청구항 17에 있어서,
    비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보는 비디오 데이터와 연관된 메타데이터에 의하여 식별된 비디오 데이터의 부분의 하나 이상의 특성에 기반하여 비디오 데이터의 부분에 대한 복수의 수정을 식별하는 방법.
  20. 청구항 17에 있어서,
    비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보는 비디오 데이터의 부분에 대응하는 시간 동안 추가 클라이언트 장치에 의해 수신된 하나 이상의 입력에 기반하여 비디오 데이터의 부분에 대한 수정을 식별하는 방법.
  21. 인코딩된 명령어를 가지는 비일시적 컴퓨터 판독가능한 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 명령어는 프로세서에 의하여 실행될 때, 프로세서로 하여금:
    클라이언트 장치에서 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 획득하고;
    클라이언트 장치에서 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신하고;
    클라이언트 장치에 의하여 비디오 데이터가 렌더링될 때 수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하고; 및
    클라이언트 장치의 디스플레이 장치를 통하여 수정된 비디오 데이터를 표시하도록 야기하고,
    메타데이터는 추가 클라이언트 장치에 의해 비디오 데이터와 연관되고,
    수정 중 하나 이상은 비디오 데이터와 연관된 메타데이터를 사용하여 수행되는 컴퓨터 프로그램 제품.
  22. 청구항 21에 있어서,
    비디오 데이터에 대한 수정은 비디오 데이터의 부분을 식별하고, 비디오 데이터를 수정하는 것은:
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치에 의하여 획득된 정보에 기반하여 비디오 데이터의 부분을 수정하는 것을 포함하는 컴퓨터 프로그램 제품.
  23. 청구항 22에 있어서,
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치에 의하여 획득된 정보는 클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 사용자로부터 수신된 하나 이상의 입력을 포함하는 컴퓨터 프로그램 제품.
  24. 청구항 22에 있어서,
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치에 의하여 획득된 정보는 클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 하나 이상의 컴포넌트에 의하여 캡처된 정보를 포함하는 컴퓨터 프로그램 제품.
  25. 청구항 21에 있어서,
    클라이언트 장치에서 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 획득하는 것은:
    온라인 시스템으로부터 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 수신하는 것을 포함하는 컴퓨터 프로그램 제품.
  26. 클라이언트 장치에서 비디오 데이터를 획득하는 단계;
    클라이언트 장치에서 비디오 데이터가 획득될 때 비디오 데이터에 하나 이상의 프로세스를 적용하는 클라이언트 장치에 의하여 비디오 데이터로부터 정보를 추출하는 단계;
    비디오 데이터와 연관된 메타데이터로 추출된 정보를 저장하는 단계;
    비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신하는 단계;
    비디오 데이터와 연관하여 비디오 데이터에 대한 수정을 식별하는 수신된 정보를 저장하는 단계;
    클라이언트 장치에 의하여 비디오 데이터가 렌더링될 때 수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하는 단계; 및
    클라이언트 장치의 디스플레이 장치를 통하여 수정된 비디오 데이터를 표시하는 단계를 포함하고,
    수정 중 하나 이상은 비디오 데이터와 연관된 메타데이터를 사용하여 수행되는 방법.
  27. 청구항 26에 있어서,
    온라인 시스템으로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계를 더 포함하고;
    선택적으로, 온라인 시스템으로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계는:
    비디오 데이터 및 비디오 데이터와 연관된 메타데이터와 연관하여 온라인 시스템으로 온라인 시스템의 사용자의 식별자를 통신하는 단계를 포함하고;
    선택적으로, 비디오 데이터 및 비디오 데이터와 연관된 메타데이터와 연관하여 온라인 시스템으로 비디오 데이터에 대한 수정을 식별하는 수신된 정보를 제공하는 단계를 더 포함하는 방법.
  28. 청구항 26 또는 청구항 27에 있어서,
    비디오 데이터와 연관된 메타데이터는 하나 이상의 객체를 포함하는 비디오 데이터의 하나 이상의 부분을 식별하고;
    선택적으로, 비디오 데이터를 수정하는 단계는:
    비디오 데이터의 하나 이상의 부분에 포함된 객체에 기반하여 비디오 데이터의 하나 이상의 부분을 수정하는 단계를 포함하는 방법.
  29. 청구항 26 내지 청구항 28 중 어느 하나의 항에 있어서,
    비디오 데이터에 대한 수정은 비디오 데이터의 부분을 식별하고, 비디오 데이터를 수정하는 단계는:
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 사용자로부터 수신된 하나 이상의 입력에 기반하여 비디오 데이터의 부분을 수정하는 단계; 및/또는
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 하나 이상의 컴포넌트에 의하여 캡처된 정보에 기반하여 비디오 데이터의 부분을 수정하는 단계를 포함하고;
    선택적으로, 클라이언트 장치의 컴포넌트는 가속도계, 위치 센서 및 그 임의의 조합으로 구성되는 그룹으로부터 선택되는 방법.
  30. 청구항 26 내지 청구항 29 중 어느 하나의 항에 있어서,
    수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하는 단계는:
    비디오 데이터와 연관된 메타데이터에 의하여 객체를 포함하는 것으로 식별된 비디오 데이터의 부분 상에 하나 이상의 이미지를 오버레이하고 비디오 데이터의 부분 동안 비디오 데이터의 오디오 데이터를 수정하는 단계를 포함하는 방법.
  31. 청구항 26 내지 청구항 30 중 어느 하나의 항에 있어서,
    수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하는 단계는:
    비디오 데이터와 연관된 메타데이터에 의하여 식별된 비디오 데이터의 부분의 하나 이상의 특성에 기반하여 비디오 데이터의 부분에 대한 복수의 수정을 수행하는 단계를 포함하는 방법.
  32. 청구항 26 내지 청구항 31 중 어느 하나의 항에 있어서,
    클라이언트 장치에서 비디오 데이터를 획득하는 단계는:
    클라이언트 장치에 포함된 이미지 캡처 장치를 통하여 비디오 데이터를 캡처하는 단계; 및/또는
    다른 클라이언트 장치로부터 비디오 데이터를 수신하는 단계를 포함하는 방법.
  33. 청구항 26 내지 청구항 32 중 어느 하나의 항에 있어서,
    클라이언트 장치에서 비디오 데이터가 획득될 때 비디오 데이터에 적용되는 프로세스는 비디오 데이터에 포함된 하나 이상의 객체를 식별하고;
    선택적으로, 비디오 데이터에 포함된 객체는 얼굴을 포함하는 방법.
  34. 온라인 시스템에서, 온라인 시스템의 사용자와 연관된 클라이언트 장치로부터 비디오 데이터를 수신하는 단계;
    온라인 시스템에서, 클라이언트 장치에 의하여 비디오 데이터와 연관된 메타데이터를 수신하는 단계;
    온라인 시스템에 메타데이터와 연관하여 비디오 데이터를 저장하는 단계; 및
    온라인 시스템의 추가 사용자와 연관된 추가 클라이언트 장치로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계를 포함하고,
    메타데이터는 클라이언트 장치가 비디오 데이터를 획득할 때 클라이언트 장치에 의하여 비디오 데이터로부터 추출된 정보를 포함하는 방법.
  35. 청구항 34에 있어서,
    온라인 시스템에서, 클라이언트 장치에 의하여 비디오 데이터와 연관된 메타데이터를 수신하는 단계는:
    클라이언트 장치에 의하여 비디오 데이터와 연관된 메타데이터 및 클라이언트 장치에 의하여 수신된 비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보를 수신하는 단계를 포함하고; 및/또는
    추가 클라이언트 장치로 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 제공하는 단계는:
    추가 클라이언트 장치로 비디오 데이터, 비디오 데이터와 연관된 메타데이터 및 비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보를 제공하는 단계를 포함하고,
    추가 클라이언트 장치는 비디오 데이터를 렌더링할 때 비디오 데이터에 대한 하나 이상의 수정을 수행하도록 구성되는 방법.
  36. 청구항 35에 있어서,
    비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보는 비디오 데이터와 연관된 메타데이터에 의하여 식별된 비디오 데이터의 부분의 하나 이상의 특성에 기반하여 비디오 데이터의 부분에 대한 복수의 수정을 식별하고; 및/또는
    비디오 데이터에 대한 하나 이상의 수정을 서술하는 정보는 비디오 데이터의 부분에 대응하는 시간 동안 추가 클라이언트 장치에 의해 수신된 하나 이상의 입력에 기반하여 비디오 데이터의 부분에 대한 수정을 식별하는 방법.
  37. 인코딩된 명령어를 가지는 비일시적 컴퓨터 판독가능한 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 명령어는 프로세서에 의하여 실행될 때, 프로세서로 하여금:
    클라이언트 장치에서 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 획득하고;
    클라이언트 장치에서 비디오 데이터에 대한 하나 이상의 수정을 식별하는 정보를 수신하고;
    클라이언트 장치에 의하여 비디오 데이터가 렌더링될 때 수신된 정보에 의하여 식별된 수정을 수행함으로써 비디오 데이터를 수정하고; 및
    클라이언트 장치의 디스플레이 장치를 통하여 수정된 비디오 데이터를 표시하도록 야기하고,
    메타데이터는 추가 클라이언트 장치에 의해 비디오 데이터와 연관되고,
    수정 중 하나 이상은 비디오 데이터와 연관된 메타데이터를 사용하여 수행되는 컴퓨터 프로그램 제품.
  38. 청구항 37에 있어서,
    비디오 데이터에 대한 수정은 비디오 데이터의 부분을 식별하고, 비디오 데이터를 수정하는 것은:
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치에 의하여 획득된 정보에 기반하여 비디오 데이터의 부분을 수정하는 것을 포함하는 컴퓨터 프로그램 제품.
  39. 청구항 38에 있어서,
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치에 의하여 획득된 정보는 클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 사용자로부터 수신된 하나 이상의 입력을 포함하고; 및/또는
    클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치에 의하여 획득된 정보는 클라이언트 장치에 의하여 비디오 데이터의 부분이 렌더링되는 동안 클라이언트 장치의 하나 이상의 컴포넌트에 의하여 캡처된 정보를 포함하는 컴퓨터 프로그램 제품.
  40. 청구항 38 또는 청구항 39에 있어서,
    클라이언트 장치에서 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 획득하는 것은:
    온라인 시스템으로부터 비디오 데이터 및 비디오 데이터와 연관된 메타데이터를 수신하는 것을 포함하는 컴퓨터 프로그램 제품.
KR1020197009682A 2016-10-01 2017-09-28 렌더링 동안 하나 이상의 효과로 클라이언트 장치에 의해 획득한 비디오 데이터를 증강하기 위한 아키텍처 KR102155490B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/283,292 2016-10-01
US15/283,292 US10291678B2 (en) 2016-10-01 2016-10-01 Architecture for augmenting video data obtained by a client device with one or more effects during rendering
PCT/US2017/054197 WO2018064429A1 (en) 2016-10-01 2017-09-28 Architecture for augmenting video data obtained by a client device with one or more effects during rendering

Publications (2)

Publication Number Publication Date
KR20190039617A true KR20190039617A (ko) 2019-04-12
KR102155490B1 KR102155490B1 (ko) 2020-09-14

Family

ID=61759171

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197009682A KR102155490B1 (ko) 2016-10-01 2017-09-28 렌더링 동안 하나 이상의 효과로 클라이언트 장치에 의해 획득한 비디오 데이터를 증강하기 위한 아키텍처

Country Status (11)

Country Link
US (2) US10291678B2 (ko)
EP (1) EP3360338A4 (ko)
JP (1) JP6630463B2 (ko)
KR (1) KR102155490B1 (ko)
CN (1) CN109792557B (ko)
AU (1) AU2017335976B2 (ko)
BR (1) BR112019005452A2 (ko)
CA (1) CA3037585C (ko)
IL (1) IL265184B (ko)
MX (1) MX2019003746A (ko)
WO (1) WO2018064429A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018194273A1 (en) * 2017-04-21 2018-10-25 Samsung Electronics Co., Ltd. Image display apparatus and method
US10848687B2 (en) * 2018-10-05 2020-11-24 Facebook, Inc. Modifying presentation of video data by a receiving client device based on analysis of the video data by another client device capturing the video data
US11347381B2 (en) * 2019-06-13 2022-05-31 International Business Machines Corporation Dynamic synchronized image text localization
US11481941B2 (en) * 2020-08-03 2022-10-25 Google Llc Display responsive communication system and method
US11763496B2 (en) * 2021-09-30 2023-09-19 Lemon Inc. Social networking based on asset items

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080060235A (ko) * 2005-10-31 2008-07-01 마이크로소프트 코포레이션 웹 상에서의 매체 공유 및 저작
KR20120080410A (ko) * 2011-01-07 2012-07-17 삼성전자주식회사 디바이스간 동기화된 인터랙션을 제공하는 콘텐츠 동기화 장치 및 방법
KR20140114235A (ko) * 2013-03-18 2014-09-26 그림소프트 주식회사 멀티미디어 콘텐츠 시공간 정보 획득 시스템 및 방법
US20150213625A1 (en) * 2008-08-12 2015-07-30 Ralf Berger Optimizing the Performance of an Image Editing System in a Client-Server Environment
US20150302894A1 (en) * 2010-03-08 2015-10-22 Sightera Technologies Ltd. System and method for semi-automatic video editing

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016380A (en) * 1992-09-24 2000-01-18 Avid Technology, Inc. Template-based edit decision list management system
US20040133924A1 (en) * 2000-12-15 2004-07-08 Wilkins David C. Techniques for syncronizing any of a plurality of associated multimedia assets in a distributed system
KR100486709B1 (ko) * 2002-04-17 2005-05-03 삼성전자주식회사 객체기반 대화형 동영상 서비스 시스템 및 그 방법
US7212730B2 (en) * 2002-06-27 2007-05-01 International Business Machines Corporation System and method for enhanced edit list for recording options
JP2005130356A (ja) * 2003-10-27 2005-05-19 Matsushita Electric Ind Co Ltd テレビ電話システム及びその通信方法、並びに通信端末
ES2674897T3 (es) * 2005-07-18 2018-07-04 Thomson Licensing Método y dispositivo para manejar múltiples flujos de vídeo usando metadatos
US8214516B2 (en) * 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
EP1994742A4 (en) * 2006-03-07 2010-05-05 Sony Comp Entertainment Us DYNAMIC REPLACEMENT AND INSERTING FILM REQUIREMENTS IN PRINCIPLE CONTENT
US7873982B2 (en) * 2006-06-22 2011-01-18 Tivo Inc. Method and apparatus for creating and viewing customized multimedia segments
JP2010066844A (ja) * 2008-09-09 2010-03-25 Fujifilm Corp 動画コンテンツの加工方法及び装置、並びに動画コンテンツの加工プログラム
US8520088B2 (en) 2010-05-25 2013-08-27 Intellectual Ventures Fund 83 Llc Storing a video summary as metadata
US9003289B2 (en) 2012-02-23 2015-04-07 Google Inc. Automatic detection of suggested video edits
KR101909030B1 (ko) * 2012-06-08 2018-10-17 엘지전자 주식회사 비디오 편집 방법 및 이를 위한 디지털 디바이스
US9467750B2 (en) 2013-05-31 2016-10-11 Adobe Systems Incorporated Placing unobtrusive overlays in video content
US20180011627A1 (en) * 2014-06-16 2018-01-11 Siracusano Meeting collaboration systems, devices, and methods
US9811933B2 (en) * 2014-06-20 2017-11-07 Google Inc. Image editing using selective editing tools
CN105100869B (zh) * 2015-07-13 2018-09-04 腾讯科技(深圳)有限公司 弹幕显示方法及装置
JP6777089B2 (ja) * 2015-11-04 2020-10-28 ソニー株式会社 情報処理装置、情報処理方法およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080060235A (ko) * 2005-10-31 2008-07-01 마이크로소프트 코포레이션 웹 상에서의 매체 공유 및 저작
US20150213625A1 (en) * 2008-08-12 2015-07-30 Ralf Berger Optimizing the Performance of an Image Editing System in a Client-Server Environment
US20150302894A1 (en) * 2010-03-08 2015-10-22 Sightera Technologies Ltd. System and method for semi-automatic video editing
KR20120080410A (ko) * 2011-01-07 2012-07-17 삼성전자주식회사 디바이스간 동기화된 인터랙션을 제공하는 콘텐츠 동기화 장치 및 방법
KR20140114235A (ko) * 2013-03-18 2014-09-26 그림소프트 주식회사 멀티미디어 콘텐츠 시공간 정보 획득 시스템 및 방법

Also Published As

Publication number Publication date
CN109792557A (zh) 2019-05-21
JP2019537298A (ja) 2019-12-19
KR102155490B1 (ko) 2020-09-14
EP3360338A4 (en) 2019-03-27
EP3360338A1 (en) 2018-08-15
WO2018064429A1 (en) 2018-04-05
CN109792557B (zh) 2020-06-16
AU2017335976B2 (en) 2019-05-02
AU2017335976A1 (en) 2019-04-11
US10977847B2 (en) 2021-04-13
MX2019003746A (es) 2019-08-12
JP6630463B2 (ja) 2020-01-15
IL265184A (en) 2019-05-30
IL265184B (en) 2019-10-31
US10291678B2 (en) 2019-05-14
US20180097866A1 (en) 2018-04-05
CA3037585A1 (en) 2018-04-05
CA3037585C (en) 2019-11-12
US20190238610A1 (en) 2019-08-01
BR112019005452A2 (pt) 2019-06-18

Similar Documents

Publication Publication Date Title
US10977847B2 (en) Architecture for augmenting video data obtained by a client device with one or more effects during rendering
US20170109796A1 (en) Presenting content selected by an online system via content presented by an application along with additional content presented by the application
US11606441B2 (en) Identifying interactions performed by users of an online system with third party content based on information received by the online system from a tracking mechanism
US10027765B2 (en) Recommending objects to a social networking system user based in part on topics associated with the objects
US20160292729A1 (en) Identifying products related to interactions performed by an online system user with content from a third party system
US20160103922A1 (en) Presenting contacts to a social networking system user based on user interactions with additional users and with groups
US10956525B1 (en) Personalizing content associated with a third party system for presentation to an online system user based on interactions performed by the user with content from the third party system
US10986384B2 (en) Modifying video data captured by a client device based on a request received by a different client device receiving the captured video data
US10805653B2 (en) Accounting for locations of a gaze of a user within content to select content for presentation to the user
US20170093650A1 (en) Accounting for bias of user characteristics when determining consumption of content by online system users
US11379908B2 (en) Three-dimensional reconstruction of a product from content including the product provided to an online system by users
US20160125455A1 (en) Sharing revenue generated from presenting content to a group of online system users specified by a third-party system with the third party system
EP3901885A1 (en) Providing an entity with an option to select an online system user to create content on behalf of the entity based on content associated with the entity previously created by the user
US11276103B2 (en) Evaluating presentation of products offered by a publishing user based on content items provided to an online system by other users
US20220091810A1 (en) Modifying an interface displaying video content received from users participating in a video exchange session based on input from a participating user
EP3933742A1 (en) Identifying cooccuring products in content provided to an online system by users
US20160300268A1 (en) Determining access to information describing a group of online system users specified by a third-party system
US10057362B2 (en) Maintaining information describing interactions performed by users of an online system on third party systems on the online system
EP2887279A1 (en) Combining user profile information maintained by various social networking systems

Legal Events

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