KR20170066415A - 문맥적 데이터를 이용한 비디오 편집 및 클러스터를 이용한 컨텐트 검색 - Google Patents

문맥적 데이터를 이용한 비디오 편집 및 클러스터를 이용한 컨텐트 검색 Download PDF

Info

Publication number
KR20170066415A
KR20170066415A KR1020177009543A KR20177009543A KR20170066415A KR 20170066415 A KR20170066415 A KR 20170066415A KR 1020177009543 A KR1020177009543 A KR 1020177009543A KR 20177009543 A KR20177009543 A KR 20177009543A KR 20170066415 A KR20170066415 A KR 20170066415A
Authority
KR
South Korea
Prior art keywords
video
user
metadata
processor
attributes
Prior art date
Application number
KR1020177009543A
Other languages
English (en)
Other versions
KR102438200B1 (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 KR20170066415A publication Critical patent/KR20170066415A/ko
Application granted granted Critical
Publication of KR102438200B1 publication Critical patent/KR102438200B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/735Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/71Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/75Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7844Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using original textual content or text extracted from visual content or transcript of audio data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/06Cutting and rejoining; Notching, or perforating record carriers otherwise than by recording styli
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/252Processing of multiple end-users' preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25883Management of end-user data being end-user demographical data, e.g. age, family status or address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2668Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • H04N21/2743Video hosting of uploaded data from client
    • 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/4126The peripheral being portable, e.g. PDAs or mobile phones
    • 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/4126The peripheral being portable, e.g. PDAs or mobile phones
    • H04N21/41265The peripheral being portable, e.g. PDAs or mobile phones having a remote control device for bidirectional communication between the remote control device and client device
    • 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/42201Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] biosensors, e.g. heat sensor for presence detection, EEG sensors or any limb activity sensors worn by the user
    • 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/42202Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] environmental sensors, e.g. for detecting temperature, luminosity, pressure, earthquakes
    • 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
    • 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/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/77Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal

Abstract

문맥적 데이터를 이용한 비디오 편집은, 비디오를 기록함과 동시에, 상기 비디오와 시간상 동기화되는 메타데이터를 센서로부터 수집하는 단계, 상기 메타데이터의 속성들 및 상기 비디오의 속성들을 검출하는 단계, 및 상기 속성들을 복수의 편집기들과 상관시키는 단계를 포함할 수 있다. 상관에 따라 복수의 편집기들 중 하나의 편집기를 선택될 수 있고, 비디오 편집 워크플로우가 자동으로 개시될 수 있다. 클러스터를 이용하는 컨텐트의 발견은, 디바이스로부터 비디오 컨텐트에 대한 사용자 요청을 수신하는 단계, 행동 클러스터와 관련된 관심 비디오를 결정하는 단계, 및 프로세서를 이용하여 관심 비디오를 제공하는 단계를 포함할 수 있다.

Description

문맥적 데이터를 이용한 비디오 편집 및 클러스터를 이용한 컨텐트 검색{VIDEO EDITING USING CONTEXTUAL DATA AND CONTENT DISCOVERY USING CLUSTERS}
본 개시는 문맥적 데이터를 이용한 비디오 편집 및 클러스터를 이용한 컨텐트 발견에 관한 것이다.
비디오 기록(record) 기능을 갖춘 이동 통신 디바이스의 이용이 널리 보급되었다. 이전보다 더 많은 사용자가 비디오를 기록하기 위해 이러한 디바이스들을 정기적으로 이용하고 있다. 다만 비디오를 쉽게 기록할 수 있다고 하더라도, 비디오 편집이나 비디오 공유와 같은 다른 작업들은 여전히 많은 사용자들이 접근하기 어려운 측면이 있다.
예를 들어 비디오 편집과 관련하여, 사용자들은 종종 비디오 장비 및/또는 정교한 소프트웨어 도구에 대한 전문 지식이 필요하다. 비디오 편집은 기록된 비디오를 모바일 통신 디바이스에서 보다 강력한 컴퓨터 기반의 비디오 편집 시스템으로 송신하는 것과 관련된다. 발전된 지식 및 도구에도 불구하고, 비디오 편집은 시간이 많이 소요되는 작업이다. 사용 가능한 비디오 편집 도구는, 증가하는 모바일 통신 디바이스의 사용자가 비디오를 기록함으로써 사용하기에 부적합하다.
사용자에게 만족스럽게 비디오가 편집되면, 사용자는 소셜 네트워킹 시스템을 통해 하나 이상의 다른 사용자와 비디오를 공유하고자 할 수 있다. 비디오들은 일반적으로 소셜 네트워킹 시스템에 업로드 되므로, 비디오를 공유하는 데는 많은 시간이 소요된다. 공유의 또 다른 측면은 다른 사용자들이 관심 비디오를 찾을 수 있는 기능이다. 매일 생성되고 업로드 되는 방대한 비디오 컨텐츠를 고려할 때, 관심 비디오를 찾는 것은 어려울 수 있다.
일 실시예에 따른 방법은, 프로세서를 이용하여, 비디오를 기록함과 동시에, 상기 비디오와 시간상 동기화되는 메타데이터를 센서로부터 수집하는 단계 및 프로세서를 이용하여, 메타데이터의 속성들 중 적어도 하나 또는 비디오의 속성들 중 적어도 하나를 검출하는 단계를 포함할 수 있다. 상기 방법은, 상기 프로세서를 이용하여, 상기 속성들을 복수의 편집기들과 상관시키는(correlating) 단계, 상기 프로세서를 이용하여, 상기 상관에 따라 상기 복수의 편집기들 중 하나의 편집기를 선택하는 단계, 및 상기 프로세서를 이용하여, 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계를 포함할 수 있다.
방법은, 프로세서를 이용하여, 비디오를 기록함과 동시에, 상기 비디오와 시간상 동기화되는 메타데이터를 센서로부터 수집하는 단계, 상기 프로세서를 이용하여, 상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계, 상기 프로세서를 이용하여, 상기 속성들을 복수의 편집기들과 상관시키는(correlating) 단계, 상기 프로세서를 이용하여, 상기 상관에 따라 상기 복수의 편집기들 중 하나의 편집기를 선택하는 단계, 및 상기 프로세서를 이용하여, 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계를 포함할 수 있다.
시스템은 실행 가능한 동작을 개시하도록 프로그래밍 된 프로세서를 포함할 수 있다. 상기 실행 가능한 동작들은, 비디오를 기록함과 동시에 상기 비디오와 시간적으로 동기화되는 메타데이터를 센서로부터 수집하는 단계, 상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계, 상기 속성들을 복수의 편집기들과 상관시키는 단계, 상기 상관에 따라 상기 복수의 편집기들 중 하나의 편집기를 선택하는 단계, 및 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계를 포함할 수 있다.
컴퓨터 프로그램 제품은 프로그램 코드가 저장된 컴퓨터로 판독 가능한 저장 매체를 포함할 수 있다. 프로그램 코드는 방법을 수행하기 위해 프로세서에 의해 실행 가능할 수 있다. 상기 방법은, 비디오를 기록하는 것과 동시에, 상기 비디오와 시간상 동기화되는 메타데이터를 센서로부터 수집하는 단계, 상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계 및 상기 속성들을 복수의 편집기들과 상관시키는(correlating) 단계를 포함할 수 있다. 상기 방법은, 상기 상관에 따라 상기 복수의 편집기들로부터 편집기를 선택하는 단계 및 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계 또한 포함할 수 있다.
방법은, 프로세서를 이용하여 디바이스로부터 비디오 컨텐트에 대한 요청을 수신하는 단계, 상기 프로세서를 이용하여, 상기 디바이스와 관련된 인구 통계학적 데이터에 따라 행동 클러스터(behavioral cluster)를 결정하는 단계, 상기 행동 클러스터와 관련된 관심 비디오를 결정하는 단계 및 상기 프로세서를 이용하여, 상기 관심 비디오를 상기 디바이스에 제공하는 단계를 포함할 수 있다.
시스템은 실행 가능한 동작을 개시하도록 프로그래밍 된 프로세서를 포함할 수 있다. 상기 실행 가능한 동작은, 디바이스로부터 비디오 컨텐트에 대한 요청을 수신하는 단계, 상기 디바이스와 관련된 인구 통계학적 데이터에 따라 행동 클러스터를 결정하는 단계, 상기 행동 클러스터와 관련된 관심 비디오를 결정하는 단계 및 상기 관심 비디오를 상기 디바이스에 제공하는 단계를 포함할 수 있다.
컴퓨터 프로그램 제품은 프로그램 코드가 저장된 컴퓨터로 판독 가능한 저장 매체를 포함할 수 있다. 프로그램 코드는 방법을 수행하기 위해 프로세서에 의해 실행 가능할 수 있다. 상기 방법은, 비디오를 기록하는 것과 동시에, 상기 비디오와 시간상 동기화되는 메타데이터를 센서로부터 수집하는 단계, 상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계 및 상기 속성들을 복수의 편집기들과 상관시키는(correlating) 단계를 포함할 수 있다. 상기 방법은, 상기 상관에 따라 상기 복수의 편집기들로부터 편집기를 선택하는 단계 및 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계 또한 포함할 수 있다.
이러한 요약 섹션(section)은 특정 개념을 소개하되 청구된 주제의 핵심 또는 필수 구성을 검출하지 못하도록 하기 위해 단지 제공되었다. 본 발명의 많은 다른 구성들 및 실시예들은 첨부된 도면 및 다음의 상세한 설명을 통해 명확해 질 수 있다.
첨부된 도면은 하나 이상의 실시예를 도시하나, 첨부된 도면이 본 개시의 실시예를 단지 도면에 도시된 실시예로 한정하는 것으로 취급되어서는 안 된다. 다양한 측면 및 이점들은 다음의 상세한 설명을 검토하고 도면을 참조하면서 명확해 질 것이다.
도 1은 예시적인 네트워크 컴퓨팅 시스템을 도시하는 블록도이다.
도 2는 데이터 처리 시스템의 예시적인 아키텍쳐를 도시하는 블록도이다.
도 3은 데이터 처리 시스템의 예시적인 소프트웨어 아키텍쳐를 도시하는 블록도이다.
도 4는 데이터 처리 시스템의 예시적인 디스플레이를 도시하는 블록도이다.
도 5는 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 6은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 7은 비디오 트리밍(trimming)의 예시적인 방법을 도시하는 흐름도이다.
도 8은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 9는 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 10은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 11은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 12는 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 13은 비디오 편집 방법의 예시적인 방법을 도시하는 흐름도이다.
도 14는 예시적인 분산 편집 시스템을 도시하는 블록도이다.
도 15는 분산 편집의 예시적인 방법을 도시하는 흐름도이다.
도 16은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 17은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 18은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다.
도 19는 비디오 처리 동작을 스케줄링(scheduling)하는 방법을 도시하는 흐름도이다.
도 20은 비디오를 처리하는 예시적인 방법을 도시하는 흐름도이다.
도 21은 데이터 처리 시스템의 예시적인 소프트웨어 아키텍쳐를 도시하는 블록도이다.
도 22는 관심 비디오를 사용자에게 제공하는 예시적인 방법을 도시하는 흐름도이다.
본 개시는 신규한 특징을 정의하는 청구 범위에 의해 판단되지만, 여기에 설명된 다양한 특징들은 설명과 함께 도면을 고려함으로써 보다 잘 이해될 수 있을 것으로 생각된다. 처리과정(들), 기계(들), 제조(들) 및 그 변형은 본 개시에서는 설명의 목적으로 제공된다. 설명된 임의의 특정 구조적 및 기능적 세부 사항은 제한 사항으로서 해석되어서는 안 되며, 단지 청구 범위의 기초로서 그리고 사실상 모든 적절한 세부 구조로 기술된 특징을 다양하게 이용하도록 당업자에게 교시하기 위한 대표적인 기초로서만 해석되어야 한다. 또한, 본 개시에서 사용된 용어 및 어구는 한정을 의도한 것이 아니라, 설명된 특징의 이해 가능한 설명을 제공하기 위한 것이다.
본 개시는 문맥적 데이터를 이용한 비디오 편집 및 클러스터를 이용한 컨텐트 발견에 관한 것이다. 본 개시에 설명된 본 발명의 장치의 일 양태에 따르면, 기록 디바이스는 기록 비디오와 동시에 하나 이상의 센서로부터 메타 데이터를 기록하도록 구성 될 수 있다. 메타데이터는 시간을 기준으로 비디오와 동기화 될 수 있다. 기록 디바이스는 기록된 비디오 및/또는 메타데이터의 속성을 평가하여 하나 이상의 편집기를 선택할 수 있다. 선택된 편집기는 기록 디바이스에 의해 수행될 비디오 편집 워크플로우의 일부로서 사용자에게 제공되거나 및/또는 배열될 수 있다. 기록 디바이스의 사용자는 제안된 편집기를 사용하여 편집된 비디오를 생성하기 위해, 비디오 편집 워크플로우를 통해 가이드 받을 수 있다. 제안된 비디오 편집 워크플로우는, 기록 디바이스가 필요를 결정하거나 적합한 것으로 결정되는 편집기 (예를 들어, 한 측면에서의 편집기들만)를 제시하고 이용함으로써 비디오 편집 프로세스의 복잡성을 감소시킬 수 있다.
편집기들은 다양한 비디오 편집 동작들을 수행하거나 다양한 비디오 편집 동작들을 자동으로 제안하기 위해, 기록된 비디오 및/또는 메타데이터의 속성을 이용할 수 있다. 기록 디바이스는 비디오의 시각적 표현의 직접 조작을 제공하기 위한 터치 기반의 사용자 인터페이스를 포함할 수 있다. 터치 기반의 인터페이스의 사용자 조작을 통해, 사용자는 녹화된 비디오에서 영역을 트리밍하고, 재생을 위해 비디오의 프레임 속도를 조정하고, 비디오의 메타데이터에서 파생된 캡션을 오버레이(overlay)하고, 비디오들을 함께 연결하고, 오디오 트랙에 비디오 편집을 동기화시키는 등의 기능들을 수행할 수 있다.
본 개시에 기재된 본 발명의 장치의 다른 측면에 따르면, 클러스터링 기술은 사용자가 관심 비디오의 위치를 찾는데 도움을 줄 수 있다. 클러스터링 기술은 백엔드 시스템의 일부로서 동작하는 하나 이상의 데이터 처리 시스템, 예컨대 서버 내에서 구현될 수 있다. 백엔드 시스템은 비디오 컨텐트를 요구하는 사용자를 식별할 수 있다. 사용자는 사용자에 대한 것으로 알려진 인구 통계학적 데이터에 따라서 하나 이상의 행동 클러스터와 상관 관계가 있을 수 있다. 백엔드 시스템 내의 다양한 행동 클러스터는 각각 하나 이상의 비디오와 관련될 수 있다. 백엔드 시스템은 사용자와 관련된 행동 클러스터(들)과 관련된 하나 이상의 비디오를 비디오 선택 옵션으로서, 요청한 사용자의 디바이스에 제공할 수 있다.
여기에 설명된 본 발명의 장치는 데이터 처리 시스템에 의해 수행되는 방법 또는 프로세스로서 구현될 수 있다. 또 다른 측면에서, 본 발명의 장치는 프로세서를 갖는 데이터 처리 시스템과 같은 장치로서 구현될 수 있다. 프로세서는 프로그램 코드 실행 시 여기에 설명된 하나 이상의 동작을 수행할 수 있다. 또 다른 측면에서, 본 발명의 장치는 실행될 때 프로세서 및/또는 시스템으로 하여금 방법 또는 프로세스를 수행 및/또는 개시하게 하는 프로그램 코드를 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체로서 구현될 수 있다.
설명을 단순화하고 명료하게 하기 위해, 도면들에 도시된 요소들은 필수적으로 규모에 맞게 그려지지는 않았다. 예를 들어, 일부 요소의 차수는 명확성을 위해 다른 요소에 비해 과장될 수 있다. 또한, 적절한 것으로 고려되는 경우, 대응하거나, 유사한 것 등을 지시하기 위해 참조 번호가 도면들에 반복될 수 있다.
도 1은 예시적인 네트워크 컴퓨팅 시스템(100)을 도시하는 블록도이다. 네트워크 컴퓨팅 시스템(100)은 디바이스(105), 백엔드(back-end) 시스템(110), 비디오 저장 시스템(115) 및 하나 이상의 클라이언트 디바이스들(120)을 포함할 수 있다. 디바이스(105), 백엔드 시스템(110), 비디오 저장 시스템(115) 및 클라이언트 디바이스(120)는 예를 들어, 네트워크(125)를 통해 통신 가능하도록 링크(link)될 수 있다.
네트워크(125)는 다양한 디바이스들과 네트워크 컴퓨팅 시스템(100) 내에서 함께 연결된 데이터 처리 시스템간의 통신 링크를 제공하기 위해 사용되는 매체이다. 네트워크(125)는 유무선 통신 링크 또는 광섬유 케이블과 같은 연결을 포함할 수 있다. 네트워크(125)는 WAN, LAN, 무선 네트워크, 모바일 네트워크, 가상 사설망(VPN), 인터넷, 공중 전화망(Public Switched Telephone Network, PSTN) 등과 같은 다양한 서로 다른 통신 기술 중 어느 것에 의해서 동작하거나, 또는 위와 같은 다양한 서로 다른 통신 기술 중 어느 하나를 포함할 수 있다.
디바이스(105)는 임의의 다양한 전자 디바이스로서 구현될 수 있다. 디바이스(105)는 예를 들어 통신 디바이스, 휴대 전화, 태블릿 컴퓨터, 전용 비디오 녹화 디바이스, 휴대용 컴퓨터 등으로 구현될 수 있으며, 이에 한정되지 않는다. 디바이스(105)는 하나 이상의 센서(130) 및 비디오 레코더(135)를 포함하거나, 하나 이상의 센서(130) 및 비디오 레코더(135)와 결합될 수 있다.
센서(130)는 집합적으로 메타데이터로 지칭되는 데이터 아이템(data items)을 기록하도록 구성된다. 예시적인 센서(130)는 가속도계, 자이로스코프, 디지털 컴파스, GPS(Global Positioning System) 수신기, 광 검출기 등을 포함할 수 있으며, 이에 한정되지 않는다. 센서(130)는 또한 임의의 다양한 생물학적 및/또는 의학적 센서를 포함할 수 있다. 생물학적 및/또는 의학적 센서는 예를 들어 심장 박동 모니터, 체온 모니터, 혈압 모니터 등을 포함할 수 있으며, 이에 한정되지 않는다.
또한, 메타 데이터는 하나 이상의 상이한 서비스들로부터 획득되는 데이터를 포함할 수 있다. 예를 들어, 온라인 서비스는 유가 증권의 현재 시세, 통화, 기상 정보, 경도 및 위도를 도시 또는 위치 이름으로 전환하는 기능과 같은 정보를 제공할 수 있다. 이러한 정보는 비디오를 기록하고 메타데이터의 일부로서 저장함과 동시에 수시로, 주기적으로 수집될 수 있다.
비디오 레코더(135)는 비디오를 기록하도록 구성된다. 기록된 비디오는 오디오 컨텐트 및 비주얼 컨텐트 모두를 포함할 수 있다. 비디오 레코더(135)는 기존의 프레임 속도보다 높거나 낮을 수 있는 하나 이상의 서로 다른 프레임 속도로 비디오를 기록할 수 있다. 디바이스(105)는 메타데이터를 수집 및 저장하는 것과 동시에 비디오를 기록할 수 있다. 기록된 메타데이터는 비디오와 동기화되어 저장될 수 있다. 예를 들어, 메타데이터의 각 아이템은, 메타데이터의 아이템들이 기록된 비디오 내에서 특정 시간과 관련되고 특정 시간에 정렬될 수 있도록, 타임 스탬프(time stamped)될 수 있다. 기록된 비디오 및 기록된 메타데이터는 디바이스(105) 내에 저장될 수 있다. 그러나 다른 측면에서, 기록된 비디오 및 메타데이터는 다른 디바이스에 저장될 수 있다.
백엔드 시스템(110)은 하나 이상의 데이터 처리 시스템으로서 구현될 수 있다. 일 측면에서, 백엔드 시스템(110)은 하나 이상의 네트워크 컴퓨터들, 즉 서버들로 구현될 수 있다. 백엔드 시스템(110)은 하나 이상의 물리적인 컴퓨터들 및/또는 하나 이상의 가상의 서버들을 포함할 수 있다. 그러나, 가상의 서버 또는 다른 가상의 데이터 처리 시스템은 여전히 물리적인 데이터 처리 시스템 내에서 실행된다는 것을 고려해야 한다.
일 측면에서, 백엔드 시스템(110)은 요청하는 디바이스들에 비디오 선택 또는 옵션을 제공하는데 이용될 수 있는 분류 기술을 수행할 수 있다. 예를 들어, 백엔드 시스템(110)은 디바이스(105) 및/또는 하나 이상의 클라이언트 디바이스들(120)로부터 비디오 컨텐트에 대한 요청을 수신할 수 있다. 그러한 요청에 응답하여, 백엔드 시스템(110)은 인구 통계학적 데이터 및 기존 행동 클러스터를 활용하는 프로세스를 이용하는 하나 이상의 비디오 옵션을 선택할 수 있다.
비디오 저장 시스템(115)은 백엔드 시스템(110)을 참조하여 설명된 바와 같이, 하나 이상의 데이터 처리 시스템으로 구현될 수 있다. 비디오 저장 시스템(115)은 검색, 스트리밍, 시청 등을 위한 하나 이상의 비디오를 저장할 수 있다. 일 측면에서, 비디오 저장 시스템(115)은 비디오 컨텐트 요청에 응답하여 사용자에게 제공될 비디오 선택 옵션으로서, 백엔드 시스템(110)에서 제공받은 비디오를 저장할 수 있다.
클라이언트 디바이스들(120)은 임의의 다양한 컴퓨팅 디바이스들 또는 이들의 조합으로서 구현될 수 있다. 클라이언트 디바이스들(120)의 구현 예는 이동 전화, 데스크톱 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터 등의 컴퓨터를 포함할 수 있지만, 이에 한정되지 않는다. 일 측면에서, 클라이언트 디바이스들 (120)은 본 개시에 기재된 비디오 액세스 특징 및/또는 비디오 재생 특징을 수행하는데 필요한 하드웨어 및/또는 소프트웨어를 포함할 수 있다.
동작시, 디바이스(105)는 비디오 및 메타데이터를 동시에 기록할 수 있다. 디바이스(105)는 기록된 비디오 및/또는 메타데이터를 분석할 수 있다. 분석에 기초하여, 디바이스(105)는 디바이스(105)의 사용자가 비디오를 편집하는데 사용할 하나 이상의 특정 편집기를 제안할 수 있다. 디바이스(105)에 의해 제안된 편집기는 비디오 편집 워크플로우로 편성될 수 있다. 완료 후, 편집된 비디오는 비디오 저장 시스템(115)에 업로드 될 수 있다.
디바이스(105) 및/또는 클라이언트 디바이스(120)의 사용자는 백엔드 시스템(110)으로부터 비디오 컨텐트를 요청할 수 있다. 백엔드 시스템(110)은 요청하는 특정 사용자를 식별할 수 있고, 요청하는 사용자와 관련된 복수의 행동 클러스터로부터 하나 이상의 행동 클러스터를 결정 또는 선택할 수 있다. 백엔드 시스템(110)은 선택된 행동 클러스터와 관련된 하나 이상의 비디오들을 결정할 수 있다. 백엔드 시스템(110)은 시청 및/또는 공유를 위한 옵션으로서, 결정된 비디오를 요청하는 디바이스, 즉 디바이스(105) 및/또는 클라이언트 디바이스(120)로 제공할 수 있다. 예를 들어, 백엔드 시스템(110)은 하나 이상의 또는 각각의 결정된 비디오로의 링크를, 링크를 요청하는 디바이스에게 제공할 수 있다.
도 1은 설명의 목적을 위해서만 제공될 수 있다. 도 1에서 클라이언트 디바이스(105)는 클라이언트 디바이스들(120)과 구별되는 것으로 도시되어 있다. 그러나, 기록 디바이스(105)는 클라이언트 디바이스들(120)의 하드웨어 및/또는 소프트웨어와 유사하거나 동일한 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 일부 경우에, 상기된 기록 디바이스(105)에 기인한 다양한 특징에 부가하여, 기록 디바이스(105)는 클라이언트 디바이스들(120) 중 하나와 동일 또는 유사하게 기능 및/또는 동작할 수 있다. 유사하게, 하나 이상의 클라이언트 디바이스들(120)은 하나 이상의 센서(130) 및/또는 비디오 레코더(135)를 포함할 수 있다. 따라서, 클라이언트 디바이스들(120)에 기인한 다양한 특징들에 부가하여, 몇몇의 경우엔, 하나 이상의 클라이언트 디바이스들(120)은 기록 디바이스 (105)와 동일 또는 유사하게 기능 및/또는 동작할 수 있다.
도 2는 데이터 처리 시스템의 예시적인 구조를 도시하는 블록도이다. 아키텍쳐(architecture, 200)는 프로세서 및 메모리를 포함하고 본 개시 내용 내에서 설명된 동작을 수행할 수 있는 다양한 시스템들 및/또는 디바이스들 중 임의의 것을 구현하는데 이용될 수 있다. 예를 들어, 아키텍쳐(200)는 디바이스(105), 클라이언트 디바이스(120) 및/또는 백엔드 시스템(110)과 같은 다양하고 상이한 디바이스 중 임의의 디바이스를 구현하는데 사용될 수 있다. 일부 경우에 있어서, 아키텍쳐(200)를 사용하여 구현된 특정 디바이스는 도시된 것보다 적은 수의 구성 요소 또는 많은 수의 구성 요소를 포함할 수 있다. 또한, 포함된 특정 운영 체제 및/또는 애플리케이션(들)은 상이할 수 있다.
도시된 바와 같이, 아키텍쳐(200)는 시스템 버스(215) 또는 다른 적절한 회로를 통해, 메모리 소자(210)에 연결된 중앙 처리 장치(CPU, 205)와 같은 적어도 하나의 프로세서를 포함할 수 있다. 아키텍쳐(200)는 메모리 요소(210) 내에 프로그램 코드를 저장할 수 있다. 프로세서(205)는 시스템 버스(215)를 통해 메모리 요소(210)로부터 액세스 된 프로그램 코드를 실행할 수 있다. 메모리 요소(210)는 예를 들어 로컬 메모리(220), 하나 이상의 대용량 저장 디바이스(225)와 같은, 하나 이상의 물리적 메모리 디바이스들을 포함할 수 있다. 로컬 메모리(220)는 프로그램 코드가 실제로 실행되는 동안 일반적으로 이용되는 랜덤 액세스 메모리 (RAM) 또는 다른 비영구적 메모리 장치를 지칭할 수 있다. 대용량 저장 디바이스(225)는 하드 디스크 드라이브(HDD), SSD(Solid State Drive) 또는 다른 영구 데이터 저장 장치로서 구현될 수 있다. 또한, 아키텍쳐(200)는 프로그램 코드가 실행되는 동안 대용량 저장 디바이스(225)에 의해 검색되는 횟수를 줄이기 위해, 적어도 일부 프로그램 코드의 임시 저장을 제공하는 하나 이상의 캐시 메모리(도시되지 않음)를 포함할 수 있다.
키보드(230), 디스플레이 디바이스(235) 및 포인팅 디바이스(240)와 같은 입력/출력(I/O) 디바이스는 선택적으로 아키텍쳐(200)에 연결될 수 있다. 일부 경우에, 터치 스크린이 디스플레이 디바이스(235)로서 이용되는 경우에서와 같이, 하나 이상의 I/O 디바이스가 결합될 수 있다. 그러한 경우에, 디스플레이 디바이스(235)는 키보드(230) 및 포인팅 장치(240) 또한 구현할 수 있다. 하나 이상의 네트워크 어댑터(245)는 아키텍쳐(200)가 중간의 개인용 또는 공용 네트워크를 통해 다른 시스템, 컴퓨터 시스템, 원격 프린터 및/또는 원격 저장 디바이스와 연결될 수 있도록 아키텍쳐(200)에 연결될 수 있다. 모뎀들, 케이블 모뎀들, 이더넷 카드들 및 무선 송수신기들(예를 들어, 무선 라디오들)은 아키텍쳐(200)와 함께 사용될 수 있는 상이한 유형의 네트워크 어댑터(245)의 예시들이다. 아키텍쳐(200)로 구현되는 특정 장치에 따라, 특정 유형의 네트워크 어댑터, 또는 네트워크 어댑터가 상이할 수 있다.
I/O 장치는 카메라(250), 마이크로폰(255) 및 출력 변환기(260)를 포함할 수 있다. 출력 변환기(260)는 스피커일 수 있다. 일 측면에서, 카메라(250) 및 마이크로폰(255)은 도 1의 디바이스(105) 내의 비디오 레코더(135)와 같은 비디오 기록 시스템의 일부분으로 간주될 수 있다. 아키텍쳐(200)를 이용하여 구현되는 비디오 기록 시스템은 카메라(250) 및/또는 마이크로폰(255)의 동작을 제어하는 하나 이상의 애플리케이션을 포함할 수 있다.
하나 이상의 센서(265)는 아키텍쳐(200)와 결합될 수 있다. 센서(265)는 예를 들어 가속도계, 자이로스코프, 광센서, 생물학적 및/또는 의학적 센서 등을 포함할 수 있으며, 이에 한정되지 않는다. 일부의 경우에서 마이크로폰(255)은 센서, 즉 오디오 센서로서 고려될 수 있지만, 오디오는 기록된 비디오의 일부라는 점에서 비디오 기록 시스템의 일부로 고려될 수 있다. 이러한 측면에서, 마이크로폰(255)에 의해 생성된 컨텐트는, 메타 데이터와 대조적으로, 기록된 비디오의 일부, 즉 기록된 비디오의 오디오 부분으로 간주될 수 있다. 다른 경우들에서, 마이크로폰(255)에 의해 획득된 오디오 내에서 및/또는 오디오로부터 검출된 오디오 및/또는 이벤트는 메타데이터의 일부분으로 고려될 수 있다.
여기에 설명된 다양한 I/O 디바이스들 및/또는 센서는 직접적으로 또는 개입된 I/O 제어부를 통해 아키텍쳐(200)에 결합될 수 있다. 증폭기 또는 다른 드라이버 회로는 출력 변환기(260)를 아키텍쳐(200)에 결합하는데 이용될 수 있다.
도 2에 도시된 바와 같이, 메모리 소자(210)는 운영 체제(270) 및 하나 이상의 애플리케이션(275)을 저장할 수 있다. 일 측면에서, 실행 가능한 프로그램 코드의 형태로 구현되는 운영 체제(270) 및 애플리케이션(들)(275)은 아키텍쳐(200)에 의해 실행될 수 있다. 이와 같이, 운영 체제(270) 및 애플리케이션(들)(275)은 아키텍쳐(200)의 통합된 부분으로 고려될 수 있다. 운영 체제(270), 애플리케이션(들)(275) 및, 아키텍쳐(200)에 의해 이용, 생성 및/또는 동작되는 임의의 데이터 아이템들은, 아키텍쳐(200)를 이용하여 구현된 시스템의 일부로서 적용될 때 기능을 부여하는 기능적 데이터 구조일 수 있다.
하나의 예시적인 구현에서, 아키텍쳐(200)는 도 1의 디바이스(105)를 구현하는데 이용될 수 있다. 그러한 경우, 하나 이상의 애플리케이션(275)이 실행될 때, 비디오 기록, 메타데이터 캡처 및/또는 저장, 기록된 비디오 및/또는 메타데이터 분석, 비디오 편집 동작 수행 등과 같은 비디오 처리 동작이 구현될 수 있다.
다른 예시적인 구현에서, 아키텍쳐(200)는 도 1의 백엔드 시스템(110)을 구현하는데 이용될 수 있다. 이러한 경우, 하나 이상의 애플리케이션(275)이 실행될 때, 행동 클러스터를 이용하는, 여기에 기재된 비디오 제안 및 전달 동작을 구현할 수 있다. 백엔드 시스템(110)을 구현하는데 이용될 때, 아키텍쳐(200)는 언급된 바와 같이 하나 이상의 컴포넌트들을 포함하지 않을 수 있다. 예를 들어, 아키텍쳐(200)는 서버로서 구현될 수 있고, 카메라(250), 마이크로폰(255), 출력 변환기(260) 및/또는 센서(265)를 포함하지 않을 수 있다.
도 3은 데이터 처리 시스템의 예시적인 소프트웨어 아키텍쳐를 도시하는 블록도이다. 소프트웨어 아키텍쳐(300)는 아키텍쳐(200)가 도 1의 디바이스(105)를 구현하는데 이용되는 경우의 도 2의 애플리케이션(275)의 예시적인 구현일 수 있다. 소프트웨어 아키텍쳐(300)는 사용자 인터페이스(302), 편집기(304) 및 미디어 프레임 워크(306)을 포함할 수 있다.
일 측면에서, 사용자 인터페이스(302)는 터치 스크린 사용자 인터페이스로서 구현될 수 있다. 여기에 기재된 본 발명의 장치는, 다른 인터페이스 유형, 예를 들어 터치하지 않는 그래픽 사용자 인터페이스(non-touch graphical user interface) 역시 이용될 수도 있으므로, 터치 스크린 인터페이스에 한정되면 안 된다. 사용자 인터페이스(302)는 터치 등을 포함하는 제스쳐와 같은 사용자 입력을 검출하고, 검출된 제스쳐를 편집기(304) 및/또는 미디어 프레임 워크(306)가 이해할 수 있는 명령으로 번역하도록 구성될 수 있다. 예를 들어, 사용자 인터페이스(302)는 사용자에게 비디오 컨텐트의 직접적인 물리적 조작의 감각을 제공할 수 있다.
사용자 인터페이스(302)는 워크플로우 매니저(workflow manager, 308)를 포함할 수 있다. 워크플로우 매니저(308)는 편집기(304) 중 하나 이상 또는 모두에 의해 수행될 수 있는 다양한 동작들의 일관되고 논리 정연한 제어를 제공하도록 구성될 수 있다. 일 측면에서, 워크플로우 매니저(308)는 처리되는 비디오에 대한 임의의 편집을 추적하도록 구성될 수 있다. 워크플로우 매니저(308)는 또한 미디어 프레임 워크(306) 내의 제어부(326)의 애플리케이션 프로그래밍 인터페이스와 호환 가능한 작업 아이템을 생성할 수 있다. 작업 아이템은 실행될 비디오 편집 동작일 수 있다. 일 측면에서, 2 이상의 작업 아이템은 비디오 편집 워크플로우로 지칭될 수 있다. 비디오 편집 워크플로우는 편집된 비디오를 생성하기 위해 하나 이상의 편집기(304)에 의해 수행될 하나 이상의 작업 아이템을 포함할 수 있다.
편집기(304)는 트리머(trimmer, 314), 드로우 모션 생성기(draw motion creator, 316), 비디오 믹서(318), 필터(320), 동적 캡션 생성기(dynamic caption creator, 322) 및 피니셔(finisher, 324)를 포함할 수 있다. 일 측면에서, 아키텍쳐(300)는 추가 편집기가 추가되거나 통합될 수 있는 플러그 인 아키텍쳐(plug-in architecture)를 구현할 수 있다. 예를 들어, 편집기(304) 각각이 플러그 인 일 수 있다. 편집기(314-324)에 의해 수행될 수 있는 특정 동작은 본 개시에서 보다 상세하게 기술될 것이다. 편집기(304)는 실행 가능한 프로그램 코드로서 구현될 수 있기 때문에, 편집기(304) 중 하나 이상에 기인한 본 개시에 기재된 다양한 동작은, 하나 이상의 각각의 편집기(304)의 프로그램 코드를 실행하는 프로세서 또는 프로세서들에 의해 수행될 수 있다.
워크플로우 매니저(308)는 편집기(304)와 상호 동작할 수 있다. 예를 들어, 트리머(314)가 기록된 비디오에서 컷 되거나 제거되어야 할 부분을 나타내는 경우, 워크플로우 매니저(308)는, 다른 편집기들과의 일관성을 유지하기 위해, 예를 들어 작업 아이템 등의 편집을 추적할 수 있다. 예를 들어, 워크플로우 매니저(308)는 요구되는 동작을 개시하기 위해, 즉 편집된 비디오에서 언급된 부분(들)을 제거하기 위해, 제어부(326)에 접근하기 위한 작업 아이템을 생성할 수 있다.
워크플로우 매니저(308)는 비디오 분석기(310) 및 프로파일러(312)를 더 포함할 수 있다. 비디오 분석기(310)는 기록된 비디오를 분석하고, 트리밍 표시기, 비디오 유형, 모션, 프레임 속도, 비디오의 시작 시간과 종료 시간 등을 포함하며 이에 한정되지 않는 다양한 속성들을 결정할 수 있다. 예를 들어, 비디오 분석기(310)는 본 명세서에 기재된 비디오의 임의의 다양한 속성들을 검출할 수 있다. 프로파일러(312)는 메타데이터를 분석하고, 메타데이터 내의 하나 이상의 속성들을 검출하도록 구성될 수 있다. 예를 들어, 프로파일러(312)는 메타데이터 내의 트리밍 표시기, 모션, 비디오의 시작 시간과 종료 시간 등을 검출하도록 구성될 수 있다. 프로파일러(312)는, 예를 들어 본 명세서에 기재된 메타데이터의 다양한 속성 중 임의의 것을 검출할 수 있다.
미디어 프레임 워크(306)를 참조하면, 제어부(326)는 미디어 프레임 워크(306)의 나머지 블록들에 대한 인터페이스로서 동작할 수 있다. 제어부(326)는, 예를 들어 공지된 애플리케이션 프로그래밍 인터페이스를 통해, 사용자 인터페이스(302)의, 미디어 프레임 워크(306)에 의해 제공되는 다양한 동작들 및/또는 서비스들로의 접근을 제공할 수 있다. 제어부(326)는 또한, 하나 이상의 작업 아이템에 대한 주어진 워크플로우가 마무리 되었는지 여부를 결정하도록 구성될 수 있다. 제어부(326)는 리소스가 미디어 파이프 라인(328)을 이용하여 작업 아이템을 실행할 수 있는지 여부를 결정할 수 있다. 리소스가 작업 아이템을 실행할 수 없는 경우, 제어부(326)는 워크플로우가 마무리 되고 리소스가 워크플로우의 작업 아이템을 구현할 수 있을 때까지 작업 대기열(work queue, 330)에 작업 아이템을 저장할 수 있다.
작업 대기열(330)은 사용자 인터페이스(302)에 의해 생성된 작업 아이템들을 위한 스테이징 대기열(staging queue), 즉 일시적인 저장 영역일 수 있다. 작업 대기열(330)은, 예를 들어 사용자 인터페이스(302)에 의해 요청된 작업 아이템들 각각을 저장할 수 있다. 일단 사용자 인터페이스(302)가 워크플로우를 마무리 짓는 경우, 예를 들어 마무리 하라는 사용자 명령에 응답하여, 작업 대기열(330)에 저장된 작업 아이템들은 제거(sanitized) 및/또는 미디어 파이프 라인(328)에 제출될 수 있다.
미디어 파이프 라인(328)은 비디오 생성 및/또는 비디오 재생의 하이 레벨(highlevel) 매니저로서 동작하도록 구성될 수 있는 서브 시스템(subsystem) 일 수 있다. 비디오 파이프 라인(328)은 작업 대기열(330)로부터 또는 제어부(326)로부터 직접적으로 작업 아이템들을 독출(read) 할 수 있다. 미디어 파이프 라인(328)은 재생 엔진(332), 캡쳐 엔진(334), 변환기 엔진(336) 및/또는 메타-태깅 엔진(meta-tagging engine, 338)을 이용함으로써 작업 아이템들을 생성 및 실행할 수 있다. 도시된 바와 같이 제어부(326)는 메타-태깅 엔진(338)과 직접적으로 결합할 수 있다.
재생 엔진(332)은 편집되었는지 여부에 관계없이 비디오를 재생하도록 구성될 수 있다. 재생 엔진(332)은, 예를 들어 디스플레이 디바이스(235) 및 출력 변환기(260)를 통해 비디오를 재생할 수 있다. 캡쳐 엔진(334)은 비주얼 데이터 및 오디오 데이터를 포함하는 비디오를 캡쳐 또는 기록하도록 구성될 수 있다. 캡쳐 엔진(334)은, 예를 들어 카메라(250) 및 마이크로폰(255)을 이용하여 비디오를 캡쳐할 수 있다.
오디오/비디오 인코더(340)는 캡쳐된 비디오, 즉 그래픽 데이터 및 오디오 데이터를 임의의 다양한 상이한 포맷의 미디어 파일로 인코딩 하도록 구성될 수 있다. 일 측면에서, 소프트웨어 아키텍쳐(300)에 부분적으로 포함되고, 부분적으로는 소프트웨어 아키텍쳐(300)의 외부에 위치한 오디오/비디오 인코더(340)는 전용 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 임의의 조합을 이용하여 구현될 수 있다.
센서 매니저(342)는 메타데이터를 캡쳐하는데 이용 가능한 다양한 센서(265)와 인터페이스하고, 제어하도록 구성될 수 있다. 센서 매니저(342)는, 예를 들어 비디오가 캡쳐 엔진(334)에 의해 기록될 때 시간 경과에 따라 센서(265)로부터 메타데이터 아이템들을 수신할 수 있다. 센서 매니저(342)는 다른 형태의 메타데이터를 도출하기 위해 메타데이터의 하나 이상의 특정 아이템들을 합성하는 엔진을 포함할 수 있다. 예를 들어, 센서 매니저(342)의 엔진은 GPS 좌표를 시간에 따라 이용하여 디바이스의 시간당 마일 속도(speed in miles per hour) 또는 킬로미터 속도(in kilometers per hour)를 계산하고, 좌표를 이용하여 위치에 대한 서비스를 쿼리(query)할 수 있다.
변환기 엔진(336)은 미디어 파이프 라인(328)으로부터 수신된 작업 아이템들에 기초하여 비디오 편집 처리를 수행할 책임이 있는 하이 레벨 시스템으로서 구성될 수 있다. 예시적인 동작은, 복수의 비디오들 또는 비디오 세그먼트들을 함께 병합하는 것, 비디오를 트리밍 하는 것, 캡셔닝(예를 들어, 센서의 메타데이터를 이용하여 비디오에 캡션을 오버레이 하는 것), 재생 속도와 같은 비디오의 타이밍 제어하는 것, 및/또는 선택된 필터를 비디오에 적용하는 것 등을 포함할 수 있다.
메타-태깅 엔진(338)은 비디오 레코더 또는 다른 물리적 시스템, 예를 들어 소위 클라우드 스토리지(cloud storage) 또는 비디오 스토리지 시스템(115)과 같은 원격 스토리지(remote storage) 내의 저장 및 검색을 관리하기 위해 편집을 통해 기록 및/또는 생성된 다양한 비디오(예를 들어, 비디오 파일)에 고유한 URL(Uniform Resource Locator)을 삽입하는 시스템으로서 구성될 수 있다. 비디오와 동시에 수집되는 임의의 메타데이터는 비디오와 함께 저장 및/또는 비디오와 함께 기록된 메타데이터의 리콜(recall)이 비디오의 URL을 이용하는 스토리지로부터 검색될 수 있다는 점이 이해되어야 할 것이다.
도 4는 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 예시적인 디스플레이를 도시하는 블록도이다. 기록된 비디오를 편집하기 위해 트리머(314)를 실행하는 동안 제공할 수 있는 뷰(400)를 도시한다.
도시된 바와 같이, 뷰(400)는 비디오 프리뷰 영역(405)을 포함할 수 있다. 비디오는 비디오의 어느 부분이 트리밍 되어야 하는지를 결정하기 위해 재생될 수 있다. 비디오는 비디오 프리뷰 영역(405) 내에서 재생될 수 있다. 편집 및/또는 프리뷰되는 비디오의 타임 라인(410)이 디스플레이 될 수 있다. 타임 라인(410)은 순차적인 선형 포맷으로 비디오의 썸네일 이미지를 디스플레이 하도록 구성될 수 있다. 플레이 헤드(415)는 타임 라인(410)에서 편집 및/또는 프리뷰 되는 비디오의 어느 부분이 현재 비디오 프리뷰 영역(405) 내에 디스플레이 되고 있는지를 나타낼 수 있다.
영역(420)은 편집되는 비디오의 시간 및 날짜와 같은 비디오 자체에 관한 데이터를 디스플레이 할 수 있다. 영역(420)은 또한 비디오와 동시에 기록된 메타데이터를 디스플레이 할 수 있다. 예를 들어, 메타데이터는 비디오가 기록된 위치 및 비디오가 기록되는 동안의 기상 조건을 포함할 수 있으며, 이에 한정되지 않는다. 논의된 바와 같이, 메타데이터는 편집중인 비디오와 함께 시간 정렬되거나 동기화 될 수 있다. 영역(425)은 트리머(314)를 이용하기 위한 유용한 지시 및/또는 팁을 사용자에게 제공할 수 있다.
제어(430)는 문맥에 따라 복수의 상이한 상태를 취할 수 있는 다용도 제어일 수 있다. 예를 들어, 제어(430)는 문맥에 따라, 서로 다른 시간에, 예를 들어 순차적으로 2개 이상의 서로 다른 상태를 취할 수 있다. 일 측면에서, 제어(430)는 트리밍 프로세스에 대한 단일 포인트 제어를 제공할 수 있다. 도 4에 도시된 상태에서, 제어(430)는 트림 모드에서 비디오가 재생되지 않을 때, 트리밍을 위한 선택된 비디오의 재생을 시작할 수 있다. 트림 모드에서, 디바이스(105)는 사용자로부터 트리밍 입력을 수용할 수 있다.
제어들(435, 440)은 사용자가 트리밍 된 비디오 포스트 트리밍의 포맷을 지정할 수 있도록 허가할 수 있다. 제어(435)의 선택은 디바이스(105)가 트림되지 않은 비디오의 각 부분을 별도의 클립 또는 별도의 비디오 파일로서 저장하게 할 수 있다. 제어(440)의 선택은 사용자로 하여금, 하나 이상의 영역이 트리밍 되어야 함을 지적한 후에 비디오에서 결과적으로 트리밍 되지 않은 부분이 하나의 비디오 또는 하나의 파일로 병합되는 옵션을 선택할 수 있도록 허가할 수 있다.
도 5는 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 5는 기록된 비디오를 편집하기 위해 트리머(314)를 실행하는 동안 존재할 수 있는 뷰(500)를 도시한다. 일 측면에서, 도 4의 사용자 선택 제어(430)에 응답하여, 뷰(500)가 제공될 수 있다. 사용자 선택 제어(430)에 응답하여, 선택된 비디오의 재생은 비디오 프리뷰 영역(405) 내에서 시작될 수 있다. 재생 헤드(415)는 타임 라인(410)을 따라 이동하기 시작할 수 있다.
편집을 위해 선택된 비디오가 재생되기 시작할 때, 제어(430)의 기능은 선택된 비디오에서 트리밍 될 부분을 나타내도록 변경될 수 있다. 여기서 정의된 바와 같이, 용어 "트림"은 편집되는 비디오로부터 비디오의 일부를 제거하는 것을 의미할 수 있다. 포스트 트리밍, 편집된 비디오의 재생은 트리밍 되거나 제거된 비디오의 일부를 스킵하거나 제외할 수 있다. 도 5의 예에서, 제어(430)는 "유지 영역(keep regions)"으로 지칭되는 최종 트리밍 된 비디오 내에 보존되고 유지될, 선택된 비디오의 영역을 마킹(mark)하는데 이용될 수 있다. 제어(430)가 눌려지지 않거나 또는 활성화 되지 않은 비디오의 이들 부분은 트림 영역으로 지정될 수 있으며, 트림 영역은 비디오로부터 제거될 영역일 수 있다. 예를 들어, 사용자 선택 제어(430)에 응답하여, 디바이스(105)는 선택된 비디오 내의 시간 또는 위치를 유지 영역의 시작으로서 저장할 수 있다. 사용자가 제어(430)를 선택 해제하는 것에 응답하여, 예를 들어 제어(430)로부터 손가락을 제거하면, 디바이스(105)는 선택된 비디오 내의 시간 또는 위치를 유지 영역의 끝으로 저장할 수 있다.
도면에서, 클립(505, 515 및 525)은 트리밍 영역인 선택된 비디오의 일부 부분들을 나타낸다. 클립(510, 520)은 비디오의 유지 영역인 부분을 나타낸다. 예를 들어, 선택된 비디오가 재생될 때, 사용자는 플레이 헤드(415)가 클립(505)의 좌측 엣지(edge)에 위치될 때 제어(430)를 활성화 또는 선택하지 않을 수 있다. 사용자는 플레이 헤드(415)가 클립(510)의 좌측 엣지에 위치할 때 제어(430)를 선택할 수 있고, 플레이 헤드(415)가 클립(510)의 우측 엣지에 위치할 때까지 제어(430)의 선택을 계속할 수 있다. 플레이 헤드(415)가 클립(515)을 통해 이동하는 동안 사용자는 제어(430)를 터치하지 않을 수 있다. 플레이 헤드(415)가 클립(520)의 좌측 엣지에 위치할 때 사용자는 다시 제어(430)를 선택할 수 있고, 플레이 헤드(415)가 클립(520)의 우측 엣지에 도달할 때까지 제어(430)의 선택을 계속할 수 있다. 플레이 헤드(415)가 클립(520)의 우측 엣지에 위치해 있을 경우, 사용자는 제어(430)를 선택 해제할 수 있다. 클립(510, 520)은 유지 영역으로서, 사용자가 제어(430)를 이용하여 영역을 마킹한 것에 응답하여 트림 영역으로 지정되며, 그 이전에는 트림 영역으로 지정되지 않는, 클립(505, 515 및 525)과는 구별된다는 점이 이해되어야 할 것이다.
도 5의 예에서, 영역(425)는 선택된 비디오에서 트리밍 될 클립에 관한 정보를 전달하도록 업데이트 될 수 있다. 영역(425)는, 예를 들어 트리밍을 위해 선택된 클립의 총 수에 관한 정보뿐 아니라 트리밍을 위해 선택된 비디오의 가장 최근 클립에 관한 정보를 전달할 수 있다. 예를 들어, 클립(515)은 트리밍을 위해 지정된 가장 최근의 영역이므로, 영역(425)은 클립(515)에 관한 구체적인 정보를 제공할 수 있다. 특히, 영역(425)은 클립(515)이 8초 길이임을 나타낸다. 클립의 총 수와 관련하여, 두 개의 클립, 즉 클립(505, 515)는 지칭하는 영역(425)는 트리밍을 위해 지정되었다. 이 예에서, 트리밍 프로세스는 재생 헤드(415)가 비디오의 끝 부분에 트림 영역으로서 지정된 영역(525)에 도달하지 않도록 진행될 수 있다.
도 6은 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 6은 트리밍을 위한 클립을 선택하는 사용자 입력에 완료된 트림 모드에서 선택된 비디오의 재생을 완료하는 것에 응답하여 제공될 수 있는 뷰(600)를 도시하고 있다. 뷰(600)는 사용자가 지정된 임의의 트림 영역을 지울(clear) 수 있도록 제공될 수 있다. 예를 들어, 영역(605)에 대한 슬라이딩 제어(430)에 응답하여, 클립(505, 515 및 525)를 트림 영역으로 지정하는 모든 표시자들은 타임 라인(410)에서 지울 수 있다. 영역(610)에 대한 슬라이딩 제어(430)에 응답하여, 디바이스는 다음 편집 동작을 위한 인터페이스를 제공하기 위해 트리밍 프로세스를 개시 및/또는 지속할 수 있다. 트리밍 프로세스를 완료하거나 비디오를 마무리하고, 비디오는 클립(505, 515 및 525) 없이 저장될 수 있다. 예를 들어, 클립(510, 520)은 개별의 클립(예를 들어, 파일)로 저장되거나, 클립(510, 520)은 단일 클립 또는 비디오 파일로서 순차적으로 저장될 수 있다.
도 7은 비디오 트리밍(trimming)의 예시적인 방법을 도시하는 흐름도이다. 방법(700)은 도 1의 디바이스(105)와 같은 데이터 처리 시스템에 의해 구현될 수 있다. 방법(700)은 비디오를 트리밍 하기 위한 자동화 된 기술을 도시한다.
방법(700)은 트리밍을 위해 비디오가 선택되는 블록(705)에서 시작할 수 있다. 일 측면에서, 디바이스는 디바이스에 저장된 비디오를 선택하는 사용자 입력을 수신할 수 있다. 비디오는 하나 이상의 서로 다른 편집기를 포함하는 워크 플로우가 적용될 수 있는 일반적인 비디오 편집을 위해 선택되거나, 특히 트리밍을 위해 선택될 수 있다.
블록(710)에서, 디바이스는 하나 이상의 트리밍 표시기에 대한 비디오를 분석할 수 있다. 트리밍 표시기는 예를 들어, 움직임 부족, 프레임 내의 사람과 같은 관심 객체의 부족, 디바이스가 사용자의 주머니에 위치하는 동안 프레임이 캡처되어 발생할 수 있는 어두운 프레임, 급격한 색상 변화, 변화의 부족 등을 포함할 수 있다. 일 측면에서, 블록(710)의 분석은 비디오의 인접한 프레임들을 비교하고, 비교된 프레임들간의 차이를 식별함으로써 수행될 수 있다. 객체 인식, 얼굴 인식 등과 같은 다른 기술들도 수행될 수 있다.
다른 측면에서, 편집되는 비디오와 동시에 디바이스의 다양한 센서들에 의해 기록된 메타데이터가 분석될 수 있다. 메타데이터로부터 결정될 트리밍 표시기는, 연속적인 메타데이터 아이템들간의 변화의 부족, 연속적인 메타데이터의 아이템들의 중요한 변화 등을 포함할 수 있으며, 이에 한정되지 않는다. 메타데이터의 연속적인 아이템들에서의 중요한 변화들의 예시는, 시끄럽다가 조용해지는 것, 조용하다가 시끄러워지는 것, 시간에 따른 위치의 변화, 시간에 따른 위치의 변화의 부족, 속도의 변화 등을 포함할 수 있다.
디바이스는 트리밍 표시기가 검출된 비디오의 클립을 마킹하거나 주석을 달 수 있다. 예를 들어, 디바이스는 검출된 관심 객체가 없는 비디오 영역, 움직임이 부족하거나 최소 이동량 미만인 영역, 어두운 프레임이 존재하는 영역 및 연속적인 메타데이터의 아이템들의 변화가 거의 없는 영역을 트림 영역으로서 마킹할 수 있다.
블록(720)에서, 장치는 트림 클립 및/또는 유지 클립을 디스플레이 할 수 있고, 클립 마킹을 수락할 지 여부를 쿼리할 수 있다. 예를 들어, 디바이스는 타임 라인에 있는 유지 클립과 시각적으로 구분되는 트림 클립이 존재하는 타임 라인을 디스플레이 할 수 있다. 트림 클립 및 유지 클립은 도 5 및 도 6에 기재된 바와 같이 디스플레이 및/또는 가시화 될 수 있다.
블록(725)에서, 디바이스는 사용자가 클립 마킹을 수락했는지 여부를 결정할 수 있다. 사용자가 클립 마킹을 수락했다는 결정에 응답하여, 방법(700)은 블록(730)으로 진행한다. 블록(730)에서, 디바이스는 트림 동작을 수행하고, 트림 클립 없이 트리밍 된 비디오를 생성할 수 있다. 사용자가 클립 마킹을 거부한 것에 응답하여, 방법(700)은 블록(735)으로 진행한다. 블록(735)에서, 디바이스는 클립 마킹을 지울 수 있다.
다른 예에서, 사용자는 자동으로 결정된 클립 마킹을 조정할 수 있다. 예를 들어, 사용자는 트림 클립을 삭제 및/또는 클립 마킹을 유지할 수 있고, 하나 이상의 다른 선택된 클립을 그대로 유지하거나 변경하지 않을 수 있고, 하나 이상의 트림 및/또는 유지 클립의 시작 및/또는 종료 시간을 조정하는 등의 동작을 수행할 수 있다. 이후 사용자는 트리밍 프로세스를 진행하거나 클립 마킹을 지우는 옵션을 선택할 수 있다.
도 8은 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 8은 기록된 비디오를 편집하기 위한 드로우 모션 생성기(316)를 실행하는 동안 제공될 수 있는 뷰(800)를 도시하고 있다.
많은 비디오 기록 가능 디바이스들은 표준 프레임 속도보다 높은 속도로 비디오를 기록할 수 있다. 비디오 기록 가능 디바이스들은 고속 모션 및/또는 슬로우 모션과 같은 상이한 시각 효과를 달성하기 위해, 다양한 프레임 속도, 예를 들어 정상 재생 보다 느리게, 정상 재생 보다 빠르게, 정상 재생 등으로 비디오를 재생할 수 있다. 드로잉 모션 생성기(316)는 실행 시, 격자 레이아웃(grid layout) 상에 곡선을 그림으로써 비디오 재생 속도의 직접적인 물리적 조작의 감각을 사용자에게 제공할 수 있다.
도 8을 참조하면, 사용자는 영역(815) 내에 선 또는 곡선을 그릴 수 있다. 영역(815)의 수직축은 초당 프레임의 재생 속도를 나타낼 수 있다. 영역(815)의 수평축은 수직축의 레벨에 의해 설정된 속도에서 비디오 재생이 지속되는 시간을 나타낼 수 있다. 사용자는 비디오가 기록된 프레임 속도를 나타내는 영역(815)의 중간 위 및/또는 아래로 선을 그림으로써 선택된 비디오의 재생 속도를 증가 또는 감소시킬 수 있다.
영역(805)는, 편집되는 비디오는 1초당 120 프레임에서 지속시간이 25초임을 나타낸다. 영역(810)은, 사용자가 선(820)으로 재생 속도를 그리는 관점에서, 사용자가 지속 시간 동안 약 75퍼센트임을 나타낸다. 사용자가 선(820)을 그릴 때, 비디오 프리뷰 영역(405)은 비디오를 통해 스크럽하여 비디오 프리뷰를 영역(815)의 x-축상의 사용자의 터치 위치와 상관시킬 수 있다.
도 9는 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 9는, 도 8의 선(820)을 완성하는 사용자에 응답하여 드로우 모션 생성기(316)를 실행하는 동안 제공될 수 있는 뷰(900)를 도시한다.
도시된 바와 같이, 영역(815)은 선(820)의 최적화 된(optimized) 버전인 라인(905)를 디스플레이 할 수 있다. 디바이스는 느린 또는 빠른 모션 비디오 효과가 보다 잘 보일 수 있도록 선(820)을 부드럽게 하는 작업(smoothing) 등을 통해 선(905)을 생성할 수 있다. 이러한 예에서, 곡선은 선형 세그먼트로 직선화 될 수 있다. 영역(805)은 편집중인 비디오의 원본(original) 프레임 속도와 비디오의 원본 지속 시간을 계속 디스플레이 할 수 있다. 영역(810)은 라인(905)에 의해 표시된 변화하는 프레임 속도로 재생되는 경우, 비디오의 지속 시간을 표시하도록 업데이트 될 수 있다. 이러한 예에서, 비디오 재생의 전반부의 대부분에서 프레임 속도가 증가하지만, 후반부에서는 프레임 속도가 감소할 수 있다. 선(905)에 표시된 바와 같이, 슬로우 모션을 보다 광범위하게 사용하면 비디오가 원본 비디오보다 7초 더 길어질 수 있다. 도 9는 편집중인 비디오의 메타데이터가 원본 프레임 속도 및 지속 시간을 계속 지정하면서, 또한 변경되는 프레임 속도 및 최종 지속 시간을 지정하도록 업데이트 될 수 있음을 도시하고 있다.
도 8 및 도 9를 집합적으로 고려하면, 선을 그리는 사용자 제스쳐가 검출될 수 있음을 도시하고 있다. 일 측면에서, 사용자 제스쳐는 계속적인 제스쳐 일 수 있다. 사용자 제스쳐는 시간이 지남에 따라 비디오 재생과 동시에 발생할 수 있다. 사용자 제스쳐 및 그에 따라 그려진 선은, 시간이 지남에 따른 재생 속도, 예를 들어 프레임 속도와 상관될 수 있다. 이와 같이, 사용자 제스쳐에 의해 결과적으로 그려진 선은 비디오의 다양한 시간들과 관련하여 저장될 수 있는 재생 속도를 표시할 수 있다. 비디오는 후에 재생 속도에 따라 재생될 수 있다.
다른 측면에서, 디바이스는 비디오에 동반하는 오디오에 대한 추천 사항을 제공할 수 있다. 오디오에 대한 제안은, 사운드 효과 및/또는 기록된 비디오에 대한 배경 음악을 포함할 수 있으며, 비디오 및/또는 비디오의 메타데이터의 분석으로부터 결정될 수 있다. 분석은, 비디오의 인접한 프레임들, 비디오로부터의 오디오 및/또는 비디오를 기록하는 동안 수집된 메타데이터의 아이템들을 비교하는 것일 수 있다. 예를 들어, 디바이스는 모션을 검출하기 위해 비디오의 인접한 프레임들을 비교할 수 있다. 디바이스는 모션을 검출하기 위해 비디오를 기록하는 동안 수집된 메타데이터를 분석할 수 있다. 가속도계, 자이로스코프, 컴파스 등으로부터의 메타데이터는 비디오가 기록되는 동안 발생할 수 있는 모션의 정량화 가능한(quantifiable) 양을 표시할 수 있다.
디바이스는 분석에 기초하여 특정 템포 및/또는 리듬으로 음악을 제안할 수 있다. 예시적으로, 디바이스는 비디오, 오디오 및/또는 메타데이터가 하이 레벨의 모션을 나타내는 것으로 결정한 것에 응답하여, 힙합, 록 음악 등과 같은 빠른 템포 또는 밝은(upbeat) 리듬으로 음악을 제안할 수 있다. 디바이스는 비디오, 오디오 및/또는 메타데이터가 로우 레벨의 움직임을 나타내거나 및/또는 파노라마 모드라고 결정한 것에 응답하여 고전 음악 또는 프렌치 호른(French horn)과 같은 특정 악기를 이용한 음악과 같은 느린 템포 또는 리듬의 음악을 제안할 수 있다. 어떠한 경우든, 비디오에 대한 오디오 제안은 드로우 모션 생성기(316)를 이용하여 사용자에 의해 구현되는 임의의 프레임 속도 재생 변화와 동기화 될 수 있다.
도 10은 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 10은 기록된 비디오를 편집하기 위해 비디오 믹서(318)를 실행하는 동안 제공될 수 있는 뷰(1000)를 도시한다. 디바이스는 비디오 믹서(318)를 이용하여 기록된 별개의 비디오들을 함께 단일의 비디오로 겹치거나(splice) 병합할 수 있다.
일 측면에서, 하나 이상의 추가 비디오가 비디오 편집 프로세스에 포함될 수 있다. 비디오는 하나 이상의 다른 디바이스들에 의해 기록될 수 있다. 예를 들어, 사용자는 모바일 폰 또는 비디오를 사용 가능한 스마트 워치, 비디오를 사용 가능한 안경, 비디오를 사용 가능한 넥웨어(neck-ware) 등과 같은 하나 이상의 다른 웨어러블(wearable) 디바이스들을 이용하여 비디오를 기록할 수 있다. 또한, 비디오는 동시 방식으로 또는 적어도 시간상으로 중첩되어, 편집 프로세스 동안 다수의 상이한 비디오 관점(perspective)이 이용될 수 있으며, 각각의 상이한 기록 디바이스에 의해 기록된 비디오는 상이한 관점으로 고려될 수 있다. 다른 측면에서, 비디오 믹서(318)를 이용하여 편집될 하나 이상의 비디오는, 사용자의 디바이스에 근접한 네트워크 디바이스 및/또는 연결된 사용자의 온라인 소셜 네트워킹 플랫폼으로부터의 비디오일 수 있다.
도 10을 참조하면, 잠재적으로 다양한 비디오 입력 소스들을 이용하여 시간이 지남에 따라 상이한 관점으로 비디오를 컷(cut)하거나 편집할 수 있다. 비디오 기록의 시간 및 물리적 위치의 메타데이터는 다른 장치의 카메라에서 촬영한 비디오를 위한 제안을 자동으로 수집 또는 생성하는데 이용되거나, 시간상으로 오버랩 될 때 또는 근접한 시간에 있는 다른 사람에 의해 이용될 수 있다.
도 10의 예에서, 사용자는 편집을 위해 2개의 상이한 비디오를 선택하였다. 두 개의 상이한 비디오는 단일의, 병합된 비디오를 생성하기 위해 병합된다. 제 1 비디오는 프리뷰 영역(1005)에 표현될 수 있다. 제 2 비디오는 프리뷰 영역(1010)에 표현될 수 있다. 사용자가 시간에 맞추어 전방 또는 후방으로 스크럽(scrub)하면, 제 1 비디오 및 제 2 비디오의 프리뷰는 영역(1005) 및 영역(1010)에 서로 동기화 되어 각각 디스플레이 될 수 있다.
뷰(1000) 내에서, 제 1 비디오 및 제 2 비디오는 또한 타임 라인(1015, 1020)을 따라 그래픽으로 표시될 수 있다. 디바이스는 제 1 비디오 및 제 2 비디오를 분석하여 시작 및 종료 시간을 결정하고, 각각의 개별 비디오의 표현(representation)을 적절한 순서로 배치하고, 타임 라인(1015, 1020)에 동기화 할 수 있다. 참조 번호 1025는 타임 라인(1015) 상의 제 1 비디오의 상대적인 위치를 도시한다. 참조 번호 1030은 타임 라인(1020) 상의 제 2 비디오의 상대적인 위치를 도시한다. 타임 라인(1015, 1020)의 음영 부분은 비디오가 존재하는 타임 라인 상의 시간을 표시할 수 있다. 음영 처리되지 않은 부분은 타인 라인의 해당 시점에 비디오가 존재하지 않음을 나타낼 수 있다. 제 1 비디오 및 제 2 비디오는 수직으로 정렬되는 각각의 개별 비디오에서 동시에 시간 정렬 방식으로 디스플레이 될 수 있다. 따라서, 뷰(1000)를 통해, 제 1 비디오는 제 2 비디오보다 조기에 시작되었음을 확인할 수 있다. 또한, 제 2 비디오는 제 1 비디오보다 늦게까지 계속됨을 확인할 수 있다.
제어(1035)가 선택되면, 사용자는 편집 프로세스 내에 포함될 하나 이상의 추가 비디오를 선택할 수 있다. 제어(1040)가 선택되면, 사용자는 최종 비디오에 대한 배경 음악으로서 사용될 오디오를 선택할 수 있다. 제어(1045)는, 일단 선택되면, 사용자가 비디오 믹싱 프로세스를 완료하였음을 디바이스에게 알릴 수 있다. 예를 들어, 사용자가 제어(1045)를 선택한 것에 응답하여, 디바이스는 사용자에 의해 선택된 제 1 비디오 및 제 2 비디오 부분만을 포함하는 최종 비디오를 렌더링(render) 할 수 있다.
도 11은 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 11은 비디오 믹서(318)가 실행되는 동안 제공될 수 있는 뷰(1100)를 도시하고 있다. 도 11의 예에서, 프리뷰 영역(1050)에 의해 표현되는 추가 비디오, 즉 제 3 비디오가 추가될 수 있다. 또한, 제 3 비디오는 타임 라인(1055) 상에 그래픽으로 표현될 수 있다.
도시된 바와 같이, 사용자는 선(1060)을 그리기 시작하였다. 사용자는 최종적으로 병합된 비디오에 포함될 비디오의 각 부분을 따라 선(1060)의 수평 부분을 그릴 수 있다. 이러한 예에서, 사용자는 타임 라인(1055)의 시작 부분에서 시작하여, 병합된 비디오에 포함시키기 위해 제 3 비디오의 제 1 부분을 선택할 수 있다. 시각 T1에서, 타임 라인(1015, 1020 및 1055)이 시간 정렬되면, 사용자는 타임 라인(1015)까지 이동하고, 타임 라인(1015)을 따라 수평 방향으로 이동하기 시작할 수 있다. 선(1060)은 다양한 선택된 비디오, 예를 들어 제 1 비디오, 제 2 비디오 및/또는 제 3 비디오, 각각의 어느 부분이 최종적으로 병합된 비디오에 포함될 것인지 여부를 표시할 수 있다.
도 11의 예에서, 비디오는 믹싱 시 비디오의 직접적인 물리적 조작의 감각을 사용자에게 제공하여 비디오 편집 프로세서를 간단하고 직관적이게 하는 격자(grid) 레이아웃을 이용하여 디스플레이 될 수 있다. 사용자는 편집된 비디오에 포함될 비디오의 클립을 따라 선(1060)을 생성하기 위해 그리거나 및/또는 가볍게 두드릴 수 있다.
도 12는 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 12는 비디오 믹서(318)를 실행하는 동안 제공될 수 있는 뷰(1200)를 도시하고 있다. 도 12의 예에서, 사용자는 선(1060) 그리기를 완료하였다. 또한, 사용자는 병합된 비디오를 위한 배경음악으로 사용될 제어(1040) 및 선택된 오디오를 선택하였다. 일 측면에서, 디바이스는 선택된 오디오의 비트 및 타이밍을 분석하고, 격자의 수직선(1230)이 선택된 오디오의 비트와 시간적으로 정렬되고 다양한 비디오 위에 오버레이 되는 격자를 중첩할(superimpose) 수 있다. 디바이스는 또한, 선(1060)의 수평 세그먼트가 격자선에서 시작 및 종료하고, 선(1060)의 수직 세그먼트가 격자선 위에 위치하도록 다양한 편집 포인트를 조정할 수 있다. 이 시간은 선택된 배경 오디오의 비트 및/또는 타이밍으로 제 1 비디오, 제 2 비디오 및/또는 제 3 비디오의 선택된 클립들 간의 병합 지점을 정렬할 수 있다.
비디오 파일(1235)로 도시된 최종 비디오는 제 1 비디오, 제 2 비디오 및 제 3 비디오의 일부를 단일 비디오 파일로 결합할 수 있다. 예를 들어, 비디오 파일(1235)은 클립(1205, 1210, 1215, 1220 및 1225)을 포함할 수 있다. 클립(1205-1225)은 각각의 타임 라인(1015, 1020 및 1050)에 시간에 따라 정렬될 수 있다. 설명의 편의를 위해, 제 1 비디오는 타임 라인(1015)과, 제 2 비디오는 타임 라인(1020)과, 제 3 비디오는 타임 라인(1025)과 대응시킨다. 따라서, 클립(1205-1225) 및 선(1060)을 참조하면, 클립(1205)은 제 3 비디오로부터, 클립(1210)은 제 1 비디오로부터, 클립(1215)는 제 2 비디오로부터, 클립(1220)은 제 3 비디오로부터, 클립(1225)는 제 2 비디오로부터 발생될 수 있다. 예를 들어, 제어(1040)를 선택한 것에 응답하여, 클립(1205-1225)으로 형성된 비디오 파일(1235)은 송신(export)되거나 메모리에 저장될 수 있다.
도 13은 비디오 편집 방법의 예시적인 방법을 도시하는 흐름도이다. 방법(1300)은 선택된 비디오에 대한 오버레이와 같은 시각화를 생성하기 위한 자동화 된 또는 반 자동화 된 처리 기술을 도시할 수 있다. 방법(1300)은 예를 들어 동적 캡션 생성기(322)를 실행하는 것에 응답하여 도 1의 디바이스에 의해 수행될 수 있는 다양한 동작들을 도시할 수 있다. 도 13은 본 개시에 기재된 디바이스가 센서로부터 수집된 메타데이터를, 재생 중에 비디오에 중첩된 캡션으로서 재생할 수 있는 예시적인 방법을 도시할 수 있다.
방법(1300)은 하나 이상의 비디오가 기록된 상태에서 시작할 수 있다. 또한, 메타데이터는 비디오 기록 중 수집 및 저장되었다. 블록(1305)에서, 디바이스는 편집을 위해 비디오를 선택할 수 있다. 선택된 비디오는 디바이스로부터 수신된 사용자 입력에 의해 특정된 것일 수 있다.
블록(1310)에서, 디바이스는 선택된 비디오를 기록하는 동안 수집된 메타데이터를 분석할 수 있다. 논의된 바와 같이, 메타데이터는 디바이스의 다양한 센서, 디바이스에 결합된 주변 장치 및/또는 디바이스가 액세스 가능한 서비스들로부터 수집될 수 있다. 메타데이터의 예시적인 아이템들은 위치, 가속도계 데이터, 자이로스코프 정보, 디지털 컴파스 정보, 만보계(pedometer) 정보, 고도 정보, 내부 시간, 심장 박동수, 혈압, 호흡, 수화, 온도 등을 포함할 수 있으며, 이에 한정되지 않는다.
블록(1315)에서, 디바이스는 하나 이상의 유형의 메타데이터를 선택할 수 있다. 메타데이터의 유형은 특정 센서에 의해 생성되거나 특정 서비스로부터 획득된 데이터 아이템들과 같은 메타데이터의 특정 클래스 또는 카테고리를 참조할 수 있다. 일 측면에서, 디바이스는 가장 많이 변화하는 메타데이터 유형 또는 비디오의 지속 시간의 최소량보다는 적어도 많은 메타데이터 유형을 선택할 수 있다. 예를 들어, 비디오 동안의 사용자의 고도는 최대 또는 최소량 이상으로 다양할 수 있고, 선택될 수 있다. 디바이스는 생성될 시각화에 이용될 메타데이터의 유형으로서 고도를 선택할 수 있다. 다른 예에서, 사용자의 속도는 최소량 이상으로 변화하거나 특정 속도 임계값보다 크도록 결정될 수 있으며, 결과적으로 시각화에 사용될 메타데이터의 유형으로 선택될 수 있다.
블록(1320)에서, 디바이스는 선택된 유형의 메타데이터의 시각화 스타일을 임의로 선택할 수 있다. 일 측면에서, 시각화 또는 시각화를 위한 그래픽 테마는 선택된 메타데이터의 특정 유형에 기초하여 선택될 수 있다. 다른 측면에서 디바이스는 사용자가 선택할 수 있는 2 이상의 상이한 스타일을 선택할 수 있다. 예를 들어, 디바이스는 선택된 유형의 메타데이터를 이용하여, 다른 시각화 옵션들로 선택된 비디오의 프리뷰 또는 썸네일뷰(thumbnail view)를 디스플레이 할 수 있다. 사용자는 원하는 시각화 스타일을 선택할 수 있다.
블록(1325)에서, 디바이스는 선택된 시각화를 선택된 스타일과 오버레이하거나 중첩할 수 있다. 선택된 시각화는 선택된 유형의 메타데이터를 포함할 수 있다. 예를 들어, 고도(altitude)는 선택된 시각화 스타일을 이용하여 비디오 위에 오버레이 될 수 있다. 비디오가 재생되면서, 오버레이는 업데이트 된 고도 정보를 포함할 수 있다. 예를 들어, 고도 데이터 아이템은 비디오 재생과 함께 오버레이 된 시각화의 일부로서 적시에 재생될 수 있다. 편집된 비디오는, 오버레이가 편집된 비디오의 일부로서 렌더링 되는 경우 생성될 수 있다.
디바이스는 각각의 선택된 유형의 메타데이터에 대해 하나 이상의 상이한 유형의 메타데이터 및 시각화 스타일을 선택할 수 있다는 것을 이해할 필요가 있다. 또한, 메타데이터는 보다 풍부하게 될 수 있고, 오버레이로서 제공될 수 있다. 예를 들어, 디바이스는 위도 및 경도의 관점에서 위치를 가질 수 있다. 디바이스는 위치의 이름(예를 들어, 도시) 및/또는 위치의 날씨를 결정하기 위해, 위치를 이용할 수 있다. 디바이스는 또한 위치에 대한 지도(map)상의 사용자 경로를 보여줄 수 있다. 오버레이는 비디오와 동기화하여, 메타데이터의 특정 아이템들, 예를 들어 심장 박동수, 위치 등이 시간에 따라 변경되도록 업데이트 할 수 있다. 따라서, 예를 들어 자신의 심장 박동수, 위치 및/또는 고도를 나타내는 오버레이가 비디오가 재생될 때 디스플레이 될 수 있고, 메타데이터는 적시에 비디오와 함께 업데이트 될 수 있다.
다른 예에서, 디바이스는 일정 기간 동안 메타데이터를 기록하고, 기록된 메타데이터와 시간적으로 겹치는 기록된 비디오를 가져올(import) 수 있다. 디바이스는 가져온 비디오에 대해 기재된 바와 같이, 메타데이터 시각화를 생성 및/또는 제안하는데 이용될 수 있다.
도 14는 예시적인 분산 편집 시스템을 도시하는 블록도이다. 도시된 바와 같이, 분산 편집 시스템(1400)은 통신 링크(1410)를 통해 장치(1405)에 결합된 장치(105)를 포함할 수 있다. 일 예시에서, 디바이스(1405)는 텔레비전, 태블릿 컴퓨터 등과 같은 컴퓨터일 수 있다. 통신 링크(1410)는 유선 또는 무선 연결일 수 있다. 일 측면에서, 통신 링크(1410)는 무선 액세스 포인트 및/또는 라우터(router)와 같은 다른 중개 네트워크 노트(intermediary network node)를 통해 생성될 수 있다. 또 다른 측면에서, 통신 링크(1410)는 예를 들어 디바이스(105)와 디바이스(1405)를 직접적으로 결합하는 케이블과 같은 직접 연결로서 생성되거나, 디바이스(105)와 디바이스(1405) 간의 직접 무선 통신 링크로서 생성될 수 있다.
어떠한 경우든, 편집 모드에 있는 동안 디바이스(105)가 디바이스(1405)에 결합된 상태에서, 프리뷰 될 임의의 비디오 세그먼트, 타임 라인 등은 통신 링크(1410)를 통해 장치(1405)에 제공될 수 있는 동안, 디바이스(105)는 편집 동작에 대한 제어가 디스플레이 되는 편집 상태에 진입할 수 있다. 도 14의 예에서, 디바이스(105)는 트리머(314)를 사용하고 있다. 트리머(314) 또는 본 개시에 기재된 임의의 편집기를 이용하면서 디바이스(1405)에 결합하는 것에 응답하여, 디바이스(105)는 디바이스(105)는 디스플레이를 위해 비디오 프리뷰(1415)를 디바이스(1405)에 제공하면서 제어(430) 또는 다른 제어들을 디스플레이 할 수 있다. 또한 디바이스(1405)는 타임 라인(410)을 디스플레이 할 수 있다. 도시된 바와 같이, 트리밍 및/또는 유지를 위해 마킹된 다양한 클립들은 디바이스(105) 대신 디바이스(1405)에 디스플레이 될 수 있다.
도 14에 도시된 분산 편집 특징을 이용하여 더 큰 디스플레이에 비디오 프리뷰 및 다른 정보를 제공함으로써, 사용자는 더 작은 디스플레이상에서 구별하기 어려운 미세한 시각적 세부 사항에 주의를 기울일 수 있다. 또한, 사용자는 더 큰 디스플레이의 장점을 이용하면서 디바이스(105)의 물리적 터치 인터페이스를 계속 사용할 수 있다.
도 14는 또한 비디오에 자동적으로 선택되고 중첩된 메타데이터의 예시를 도시한다. 이 예에서, 시각화(1420)는 비디오 프리뷰(1415)에서 비디오에 중첩될 수 있다. 시각화(1420)는 텍스트 스타일을 갖는 것으로 도시되지만, 다른 스타일이 이용될 수도 있다. 예를 들어, 속도는 선택한 유형의 메타데이터에 대한 시각화 스타일로 아날로그 속도계를 이용하여 표시될 수 있다. 임의의 다양하고 상이한 색상, 글꼴(font) 및/또는 반투명성과 같은 시각화 기술 또한 이용될 수 있다.
도 15는 분산 편집의 예시적인 방법(1500)을 도시하는 흐름도이다. 방법(1500)은 도 14를 참조하여 기재된 시스템에 의해 수행될 수 있다. 설명의 목적상, 디바이스(105)는 방법(1500)을 설명하는 동안 주(primary) 디바이스로 지칭되며, 디바이스(1405)는 호환 가능한(compatible) 디바이스로 설명된다.
방법(1500)은 주 디바이스가 비디오 편집 모드에 진입하는 블록(1505)에서 시작될 수 있다. 일 측면에서, 비디오 편집 모드에 진입하는 것은 임의의 하나 이상의 편집기(304)를 실행 및/또는 일반적인 소프트웨어 아키텍쳐(300)를 실행하는 것을 포함할 수 있다. 비디오 편집 모드는 사용자가 비디오 편집을 요청한 것에 응답하여 호출(invoked)될 수 있다.
블록(1510)에서, 주 디바이스는 주 디바이스에 근접한 호환 가능한 디바이스를 검출할 수 있다. 일 측면에서, "근접한"이라는 용어는 주 디바이스가 호환 가능한 디바이스와 직접 연결을 생성 하는 것이 가능함을 의미할 수 있다. 직접 연결의 예시는, 블루투스 통신 링크와 같은 직접 무선 통신 링크, 직접 유선 통신 링크 등을 포함할 수 있으며, 이에 한정되지 않는다. 또 다른 측면에서, "근접한"이라는 용어는 주 디바이스가 유선 또는 무선 연결 어느 것으로든, 로컬 영역 네트워크를 통해 호환 가능한 디바이스와의 연결을 생성할 수 있음을 의미할 수 있다.
블록(1515)에서, 호환 가능한 디바이스를 검출한 것에 응답하여, 주 디바이스는 호환 가능한 디바이스와의 연결을 개시하는 제어를 디스플레이 할 수 있다. 블록(1520)에서, 블록(1515)에 디스플레이 된 제어의 사용자 선택에 응답하여, 주 디바이스는 호환 가능한 디바이스와의 연결을 개시할 수 있다.
블록(1525)에서, 호환 가능한 디바이스와의 연결을 생성한 후, 주 디바이스는 비디오 편집 작업 공간(workplace)을 호환 가능한 디바이스로 확장할 수 있다. 일 측면에서, 주 디바이스의 비디오 편집 작업 공간을 호환 가능한 디바이스로 확장하는 것은, 비디오 프리뷰 등을 호환 가능한 디바이스에서 디스플레이 하기 위해 호환 가능한 디바이스에 송신하는 동안 주 디바이스 상에 하나 이상의 제어를 디스플레이 하는 것을 포함할 수 있다. 예를 들어, 호환 디바이스의 더 큰 디스플레이가 비디오 프리뷰 및/또는 타임 라인만을 디스플레이 하는데 이용되는 동안, 주 디바이스는 비디오 편집 제어만을 디스플레이 하는데 이용될 수 있다.
도 16은 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 16은 비디오를 렌더링하는 동안 제공될 수 있는 뷰(1600)를 도시한다. 예를 들어, 비디오 렌더링은 피니셔(324)를 실행함으로써 수행될 수 있다. 도 16의 예에서, 사용자는 하나 이상의 편집기(304)를 이용하여 하나 이상의 비디오를 편집하는 것을 마쳤고, 비디오를 곧 렌더링 할 수 있다. 본 개시에 기재된 바와 같이, 비디오 편집에 사용되는 "렌더링한다"는 용어는 사용자에 의해 구체화 되거나 및/또는 자동으로 디바이스에 의해 제안된 다양한 비디오 편집들이 최종화 된 또는 편집된 비디오 결과에 구현되는, 최종화되고 편집된 버전의 비디오를 생성하는 것을 의미할 수 있다.
사용자는 제어들(1605)을 이용하여 복수의 상이한 비디오 출력 포멧 중 하나를 선택할 수 있다. 이 예에서, 사용자는 고해상도 비디오를 나타내는 "HD"의 출력 포맷을 선택하였다. 디바이스는 렌더링 프로세스에서 최종 비디오 파일의 크기를 52MB로 추정할 수 있다. 다른 비디오 출력 포맷은, 10MB만을 요구하는 표준 정의를 위한 "SD" 및 124MB를 요구하는 초고해상도 정의를 위한 "4K"를 포함할 수 있다. 각각의 상이한 출력 포맷은 상이한 수의 수평선 또는 상이한 해상도를 가질 수 있다. 영역(1610)에서, 디바이스는 사용자에 의해 선택된 렌더링 프로세스에 관한 정보를 제공할 수 있다. 이 예에서, 디바이스는 디바이스만을 이용하여 렌더링하는데 필요한 예측 시간을 표시할 수 있고, 배터리의 수명 또는 충전에 대한 예상되는 효과를 표시할 수 있다. 이 예에서, HD 비디오를 출력으로서 생성하는데 6분이 소요될 것으로 예측되며, 사용 가능한 배터리 수명의 약 10%가 소비될 것으로 예측된다.
영역(1615)에서, 디바이스는 렌더링을 위해 2개의 다른 디바이스가 이용 가능할 수 있음을 표시할 수 있다. 예를 들어, 각각의 표시기(1620, 1625)는 이용 가능한 디바이스를 나타낼 수 있다. 표시기(1620 및/또는 1625)는 아이콘, 사진 또는 다른 이미지일 수 있다. 디스플레이 되는 표시기의 수는 검출된 디바이스들의 수에 따라 달라질 것임을 이해할 필요가 있다. 따라서, 2개 미만의 표시기 또는 2개 이상의 표시기가 디스플레이 될 수 있다. 일 측면에서, 이용 가능한 디바이스는 하나 이상의 서버들 및/또는 렌더링 동작들을 수행하기 위해 이용 가능한 하나 이상의 서버들일 수 있다. 일 측면에서, 표시기(1620 및/또는 1625)는 디바이스(105)의 사용자에게 알려진 사용자의 디바이스, 예를 들어 컨택(contact)을 나타낼 수 있다. 또 다른 측면에서, 표시기(1620 및/또는 1625)는 앞서 기재된 바와 같이 디바이스(105)의 사용자의 다른 장치 또는 디바이스(105)에 근접하도록 결정된 다른 디바이스를 나타낼 수 있다. 도 16의 예에서, 표시기(1620)는 사용자 A를 나타낼 수 있고, 표시기(1625)는 사용자 B를 나타낼 수 있다.
디바이스(105)의 사용자는 표시기(1620 및/또는 1625)에 나타나는 디바이스들을 비디오 렌더링에 참여하도록 초대할 수 있다. 예를 들어, 표시기(1620)의 사용자 선택에 응답하여, 디바이스(105)는 비디오 렌더링에 참여하기 위해 표시기(1620)에 의해 나타난 디바이스를 초대할 수 있다. 초대된 디바이스의 사용자는 초대를 수락 또는 거절할 수 있다. 수락되는 경우, 디바이스(105)는 비디오 렌더링 작업의 일부, 예를 들어 하나 이상의 비디오 렌더링 동작을 초대된 디바이스에 송신할 수 있다. 초대된 디바이스는 비디오 렌더링 동작을 구현하고, 결과를 디바이스(105)로 되돌려 보내서 최종 비디오에 포함시키거나 사용할 수 있다.
스케줄 제어(1630) 및 시작 제어(1635) 또한 제공될 수 있다. 스케줄 제어(1630)는 사용자가 다양한 비디오 편집 및/또는 업로드 동작을 계획할 수 있는 스케줄링 동작을 개시할 수 있다. 시작 제어(1635)는 사용자 선택에 응답하여 비디오 렌더링을 개시할 수 있다.
도 17은 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 17은 표시기(1620)의 사용자 선택에 응답하여 제공될 수 있는 뷰(1700)를 도시한다. 사용자가 표시기(1620)를 선택한 것에 응답하여, 디바이스(105)는 표시기(1620)에 나타나는 디바이스가 비디오 렌더링에 참여하도록 초대장을 송신할 수 있다. 도 17의 예에서, 초대된 디바이스의 사용자는 초대장을 수락하였다. 따라서 디바이스(105)는 프로세스를 위해, 하나 이상의 비디오 렌더링 동작, 예를 들어 작업 아이템들을 초대된 디바이스로 송신할 수 있다. 결과적으로, 영역(1610)에 디스플레이 되는 예측 렌더링 시간은 6분에서 4분으로 감소된다. 또한, 렌더링을 수행하기 위해 요구되는 디바이스(105)의 베터리의 양은 감소된다. 렌더링 동작을 공유하기 위해 이전에 10%의 배터리가 남아있을 것이 요구되었던 것과 달리, 지금은 배터리 수명이 8%가 남아있을 것만이 요구된다.
영역(1615) 내에서, 선택되면 디바이스(105)가 렌더링 된 비디오를 공유하도록 하는 추가 제어가 제공될 수 있다. 예를 들어, "사본 공유" 체크 박스가 선택된 상황에서, 렌더링 된 비디오는 하나 이상의 선택된 소셜 네트워킹 플랫폼으로 업로드 되거나, 하나 이상의 다른 사용자가 이용 가능하도록 될 수 있다. 공유 또는 업로드는, 본 개시에 상세히 설명된 바와 같이, 사용자가 계획한 대로 발생할 수 있다.
일 측면에서, "사본 공유" 체크 박스가 선택되면, 디바이스(105)가 표시기(1620)와 관련된 사용자 A와 최종 비디오의 사본을 공유하도록 할 수 있다. 최종 비디오의 사본을 빠르고 쉽게 공유하는 기술은 사용자 A 및 다른 사용자들이 렌더링 프로세스에 참여하도록 촉진하는(incentive) 요소가 될 수 있다. 일 예시에서, "사본 공유" 체크 박스가 선택되는지 여부는 디바이스(105)로부터 다른 디바이스들로 송신된 임의의 초대장에 포함될 수 있다. 예를 들어, 초대된 디바이스의 수신자는, 최종 비디오의 사본이 공유될 것인지 여부에, 적어도 부분적으로 기초하여, 초대장을 수락할지 여부 및 렌더링 프로세스에 참여할 것인지 여부를 결정할 수 있다.
도 18은 도 1의 디바이스(105)와 같은 데이터 처리 시스템의 다른 예시적인 디스플레이를 도시하는 블록도이다. 도 18은 시작 제어(1635)의 사용자 선택에 응답하여 제공될 수 있는 뷰(1800)를 도시한다. 뷰(1800)는 발생하는 비디오 렌더링의 진행 과정을 도시할 수 있다. 영역(1805)은, 예를 들어, 비디오 렌더링 동작을 완성하는 진행 과정의 개략적인 뷰를 나타낼 수 있다. 영역(1805)의 블록들은 수행될 비디오 렌더링 동작을 나타낼 수 있다. 비디오 렌더링 동작들이 완성되면, 보다 많은 블록들이 음영 처리될 수 있다. 도 18의 예에서, 디바이스(105)에 의해 완성된 렌더링 동작들을 나타내는 블록들은 진하게 음영 처리되고 디바이스(105)에 대한 표시기를 포함할 수 있다. 초대된 디바이스에 의해 완성된 렌더링 동작들을 나타내는 블록들은 그물 모양으로 음영 처리되고 표시기(1620)를 포함할 수 있다. 초대되어 초대장을 수락했던 임의의 다른 디바이스들에 의해 완성된 동작들은 동일 또는 유사한 방법으로 시각적으로 구별될 수 있다.
렌더링 동작 중 임의의 순간에, 디바이스(105)의 사용자는 렌더링 프로세스에 참여하도록 사람을 추가적으로 초대할 수 있다. 예를 들어, 렌더링이 발생하는 임의의 시점에, 디바이스(105)의 사용자는 사용자 B의 디바이스가 렌더링 프로세스에 참여하도록 초대하기 위해 표시기(1625)를 선택할 수 있다. 또한, 렌더링 프로세스의 임의의 시점에서, 디바이스(105)의 사용자는 렌더링 옵션들을 일시 정지하기 위해 일시 정지 제어(1810)를 선택할 수 있다. 마찬가지로, 일단 렌더링이 시작되면 초대된 디바이스는 선택에 응답하여, 초대된 디바이스가 비디오 렌더링 동작을 일시 정지 및/또는 종료하게 하는 제어를 디스플레이 할 수 있다. 사용자의 제어하에서 초대된 디바이스는 언제든지 비디오 렌더링 동작을 일시 중지하거나 종료할 수 있으므로, 사용자는 비디오 렌더링에 대한 참여를 철회 또는 종료할 수 있다.
도 19는 비디오 처리 동작을 스케줄링(scheduling)하는 방법을 도시하는 흐름도이다. 방법(1900)은 본 개시에 기재된 바와 같이 디바이스(105)에 의해 구현될 수 있다. 일 측면에서, 방법(1900)은 스케줄 제어(1630)의 사용자 선택에 응답하여 구현될 수 있다. 방법(1900)과 함께 이용될 수 있는 비디오 처리 동작의 예시는, 비디오 렌더링 및/또는 렌더링 된 비디오를 공유, 예를 들어 업로드하는 것을 포함할 수 있으며, 이에 한정되지 않는다.
블록(1905)에서, 디바이스는 디바이스가 가동 되지 않고 있으며, 충전기, 예를 들어 내부 배터리가 아닌 전력원에 연결되어 있는지 여부를 결정할 수 있다. 만약 그러한 경우, 방법(1900)은 블록(1910)으로 진행할 수 있다. 만약 그렇지 않은 경우, 방법(1900)은 블록(1925)으로 진행할 수 있다. 블록(1925)에서, 디바이스는 비디오 처리 동작을 수행하지 않거나, 이미 개시되었을 수 있는 비디오 처리 동작을 중단할 수 있다. 도 19의 예에서, 비디오 처리 동작은 렌더링에 의해 최종적으로 생성된 비디오의 렌더링 및/또는 공유를 포함할 수 있다.
블록(1910)으로 진행하면서, 디바이스는 안정적인 네트워크 연결이 존재하는지 여부를 결정할 수 있다. 만약 안정적인 네트워크 연결이 존재하는 경우, 방법(1900)은 블록(1915)으로 진행할 수 있다. 만약 그렇지 않은 경우, 방법(1900)은 블록(1925)으로 진행할 수 있다.
일 측면에서, 네트워크 연결은 디바이스의 와이파이(Wi-Fi) 연결일 수 있다. 와이파이 연결은 무선 LAN 통신을 구현하는 하나 이상의 802.11x 사양을 준수하는, 디바이스가 함께할 수 있는 무선 네트워크일 수 있다. 안정적인 네트워크 연결은 연결 손실, 간헐성 및/또는 데이터 손실이 최소량 이하로 유지되는 와이파이 연결일 수 있다. 일 예에서, 디바이스에 의해 수행될 동작들이 공유를 포함하지 않는 경우, 블록(1910)은 생략되거나 스킵될 수 있다.
블록(1915)에서, 디바이스는 비디오 처리 동작을 수행할 수 있다. 비디오 처리 동작이 중단된 경우, 예를 들어 블록(1925)이 이전에 수행된 경우, 디바이스는 비디오 처리 동작을 재개할 수 있다. 블록(1920)에서, 디바이스는 비디오 처리 동작이 완료되었는지 여부를 결정할 수 있다. 만약 그렇지 않은 경우, 방법(1900)은 프로세스를 계속하기 위해 블록(1905)으로 되돌아갈 수 있다. 만약 비디오 처리 동작이 완료되면, 방법(1900)이 수행될 수 있다.
도 20은 비디오를 처리하는 예시적인 방법을 도시하는 흐름도이다. 방법(2000)은 본 개시에 기재된 바와 같이 디바이스(105)에 의해 수행될 수 있다. 일 실시예에서, 방법(2000)은 아키텍쳐(300)의 실행에 의해 수행될 수 있다. 예를 들어, 비디오 분석기(310)를 포함하는 워크플로우 매니저(308)는 실행되는 경우 도 20의 하나 이상의 동작들을 구현할 수 있다.
방법(2000)은 디바이스가 비디오를 기록하는 블록(2005)에서 시작할 수 있다. 블록(2010)에서, 디바이스는 비디오를 기록하는 동시에 메타데이터를 수집할 수 있다. 메타데이터는 디바이스 내에 저장될 수 있다. 또한, 메타데이터는 기록된 비디오와 함께 시간상으로 동기화 될 수 있다. 예를 들어, 메타데이터의 아이템들은 비디오와 시간상으로 정렬될 수 있다.
블록(2015)에서, 디바이스는 메타데이터에서 하나 이상의 속성들을 검출할 수 있다. 예를 들어, 디바이스는 메타데이터가 하이 레벨의 활동성을 표시하는지 여부를 결정할 수 있다. 하이 레벨의 활동성은, 디바이스의 위치가 급격하게 변하거나, 디바이스의 고도가 급격하게 변하거나, 빠른 모션, 회전, 가속 또는 감속이 검출되었는지 여부 등에 의해 표시될 수 있다. 또 다른 예에서, 디바이스는 디바이스의 센서에 의해 수집된 메타데이터의 하나 이상의 유형들이 시간에 따라 최소량 또는 최소 속도로 변하는지 여부를 결정할 수 있다. 전술된 바와 같이, 디바이스는 트리밍 표시기, 모션, 비디오의 시작 및 종료 시간, 메타데이터의 아이템들의 변화 또는 변화의 부족 등을 포함하는 속성들을 검출할 수 있으며, 이에 한정되지 않는다.
블록(2020)에서, 디바이스는 비디오 내의 하나 이상의 속성들을 검출할 수 있다. 디바이스는 트리밍 표시기, 비디오 유형, 모션, 프레임 속도, 비디오의 시작 및/또는 종료 시간 등의 속성들을 검출할 수 있으며, 이에 한정되지 않는다. 일 예에서, 디바이스는 사람을 포함하는 비디오 내의 관심 객체들을 검출하기 위해 비디오를 분석할 수 있다. 예를 들어, 디바이스는 얼굴 인식 기술을 이용할 수 있다. 또 다른 예에서, 디바이스는 비디오가 최소량의 모션 이상을 포함하는지 여부를 결정할 수 있다. 예를 들어, 디바이스는 모션을 나타내는 변화의 증거를 위해 연속 프레임들을 비교할 수 있다. 또 다른 예에서, 디바이스는 파노라마 설정을 이용하여 비디오가 촬영되었는지 여부, 증가된 프레임 속도로 비디오가 촬영되었는지 여부 등을 결정할 수 있다.
블록(2025)에서, 디바이스는 블록(2015) 및/또는 블록(2020)에서 결정된 속성들을, 복수의 상이한 편집기들 중 하나 이상과 상관시킬 수 있다. 예를 들어, 시간 경과에 따른 최소량 이상 또는 최소 속도보다 빠른 속도로 변화하는 하나 이상의 유형의 메타데이터는 동적 캡션 생성기(322)가 이용될 수 있음을 나타낼 수 있다. 관심 아이템들을 포함하지 않도록 결정된 기록된 비디오의 일부, 예를 들어 클립들은 트리머(314)를 이용하는 것과 관련될 수 있다. 비디오가 정상 속도보다 높은 프레임 속도로 기록되는지를 결정하는 것은 드로우 모션 생성기(316)를 이용하는 것과 관련될 수 있다.
블록(2030)에서, 디바이스는 블록(2025)에서 수행된 상관 관계에 따라 복수의 편집기로부터 하나 이상의 편집기를 선택할 수 있다. 비디오 및/또는 메타데이터 내에서 발견된 속성과 관련된 임의의 편집기가 선택될 수 있다. 블록(2035)에서, 디바이스는 블록(2030)에서 선택된 하나 이상의 편집기를 이용하여 제안할 수 있다. 예를 들어, 디바이스는 블록(2030)에서 선택된 편집기의 목록을 사용자에게 제공할 수 있다.
다른 예에서, 디바이스는 비디오 편집 워크플로우를 개시할 수 있다. 비디오 편집 워크플로우는 선택된 편집기를 포함할 수 있다. 디바이스에 의해 구현된 비디오 편집 워크플로우는 기 결정된 순서로 하나 이상의 편집기를 실행할 수 있다. 사용자는 워크플로우의 일부로서 선택된 편집기를 이용하거나 하나 이상의 편집기의 이용을 스킵할 수 있다. 이러한 관점에서, 사용자에 의한 하나 이상의 또는 모든 편집기의 이용은 선택적 사항이며 제안 사항으로 간주될 수 있다. 다만 여전히, 사용자는 처리를 위해 사전에 로드 된(pre-loaded) 블록(2005)의 기록된 비디오와 함께 각각의 편집기를 제공받을 수 있다.
또 다른 측면에서, 본 개시에 기재된 자동으로 제안된 임의의 편집은, 사용자가 대응되는 편집기를 워크플로우에 이용하거나 편집기가 디바이스에 의해 제안되면서 사용자에게 제안될 수 있다. 예를 들어, 트리머(314)가 실행됨에 따라, 트리밍을 위해 디바이스에 의해 자동으로 식별된 임의의 클립이 사용자에게 제공될 수 있다. 사용자가 동적 캡션 생성기(332)를 이용하기 시작할 때, 임의의 자동으로 결정된 오버레이가 사용자에게 제안될 수 있다.
전술된 바와 같이, 일단 비디오가 렌더링되면, 비디오는 하나 이상의 소셜 네트워킹 시스템, 비디오 저장 시스템 등과 공유될 수 있다. 많은 양의 비디오를 사용자가 이용할 수 있게 되면서, 관심 비디오를 찾는 것이 어려울 수 있다. 비디오 및/또는 컨텐트 전달 서비스를 사용자가 처음 이용할 때 특히 그러할 수 있다. 이러한 경우, 사용자는 컨텐트 전달 서비스 관련하여 생성한 히스토리가 거의 없거나 전혀 없다. 그럼에도 불구하고, 컨텐트 전달 서비스는 사용자가 관심있는 비디오를 결정하고, 그러한 비디오가 이용 가능하도록 할 임무를 갖는다.
도 21은 데이터 처리 시스템의 예시적인 소프트웨어 아키텍쳐를 도시하는 블록도이다. 일 예에서, 소프트웨어 아키텍쳐(2100)는 백엔드 시스템(110)에 의해 이용될 수 있다. 일반적으로, 소프트웨어 아키텍쳐(2100)는 데이터 처리 시스템 내에서 실행될 때 런타임 비디오 컨텐트 발견 및/또는 전달 시스템을 구현할 수 있다.
도시된 바와 같이, 아키텍쳐(2100)는 응답 모듈(2110)을 포함할 수 있다. 아키텍쳐(2100)는 행동 클러스터들(2120), 사용자 그룹들(2130), 분할 모델(2135) 및 비디오 컨텐트(2140)를 포함할 수 있다. 일반적으로, 응답 모듈(2110)은 프로세서에 의해 실행 가능한 모듈일 수 있다. 행동 클러스터들(2120), 사용자 그룹들(2130), 분할 모델(2135) 및 비디오 컨텐트(2140)는 응답 모듈(2110)에 의해 이용되는 데이터의 다양한 형태들을 나타낼 수 있다. 행동 클러스터들(2120), 사용자 그룹들(2130), 분할 모델(2135) 및 비디오 컨텐트(2140)는 데이터를 나타낼 수 있으며, 언급된 상이한 데이터 유형들은, 백엔드 시스템(110)의 물리적 메모리 요소 및/또는 백엔드 시스템(110)에 연결된 다른 시스템에 저장될 수 있다는 것을 이해할 필요가 있다.
트레이닝 프로세스의 일부로서, 런타임 프로세스와 구별되도록, 추적(trace)이 행동 클러스터들(2120)를 결정하는데 이용될 수 있다. 추적은 메모리 요소에 저장된 데이터를 참조할 수 있다. 추적은 사용자가 디바이스에서 접근한 아이템들 목록, 사용자가 재게시(re-posting)하거나 디바이스를 이용하여 온라인상 공유하거나, 디바이스를 이용하여 즐겨찾기로 표시하거나, 디바이스를 이용하여 "좋아요"라고 마킹하는 아이템들의 목록 등을 포함할 수 있다. 도 21의 경우, 아이템은 비디오일 수 있다. 설명의 목적상, "비디오"라는 용어는 비디오 파일 및/또는 URI(Universal Resource Identifier) 등과 같은 비디오 파일의 레퍼런스를 의미할 수 있다. 일 측면에서, 추적 데이터의 각각의 아이템은 특정 비디오에 액세스, 재게시, 공유 등을 하는 사용자의 식별 정보와 관련하여 저장될 수 있다.
트레이닝의 일부로서, 행동 클러스터들(2120)는 추적을 이용하여 생성될 수 있다. 행동 클러스터들(2120) 내의 각각의 행동 클러스터는 사용자 행동의 하나 이상의 유사한 속성을 공통으로 갖는 하나 이상의 사용자 그룹을 특정할 수 있다. 보다 구체적으로, 각각의 행동 클러스터는 비디오와 관련된 사용자 행동의 하나 이상의 속성을 공유하는 하나 이상의 사용자로 구성된 그룹일 수 있다. 속성들은, 어떠한 비디오가 액세스 하였는지, 비디오가 액세스하였을 시점이 언제인지, 어느 비디오가 공유 되었는지, 어느 비디오가 재게시 되었는지, 어느 비디오가 "최고"라고 마킹 되었는지, 어느 비디오가 "좋아요"라고 마킹 되었는지 등을 포함할 수 있으며, 이에 한정되지 않는다. 예를 들어, 동일한 행동 클러스터를 갖는 사용자 각각은 비디오의 하나 이상의 동일한 분류를 좋아할 수 있다. 이러한 관점에서, 비디어 컨텐트(2140)는 각각의 비디오가 행동 클러스터들(2120)의 하나 이상의 행동 클러스터와 관련되는 하나 이상의 비디오를 포함할 수 있다.
클러스터링 기술은 당해 기술 분야에서 공지된 기술이다. 일반적으로, 시스템은 사용자의 행동 패턴을 그룹의 사용자 행동 패턴과 매칭시킴으로써 특정 사용자를 행동 클러스터와 같은 사용자 그룹으로 분류하고자 시도할 수 있다. 사용자가 일단 분류되면, 동일한 그룹 내의 다른 사용자의 선호도 및/또는 선택에 기초하여 사용자에 관한 하나 이상의 예측이 생성될 수 있다.
사용자 그룹들(2130)은 또한 하나 이상의 사용자 그룹을 지정할 수 있다. 예를 들어, 그룹은 사용자 클러스터일 수 있다. 일 측면에서, 사용자 그룹들(2130) 내의 사용자는 어떠한 행동 클러스터들(2120) 내에도 포함되지 않을 수 있다. 예를 들어, 사용자 그룹들(2130)에 지정된 사용자는 행동 클러스터에 아직 배정되지 않은, 및/또는 행동 클러스터들(2120)의 행동 클러스터로 프로세스하기 위한 충분한 사용자 추적을 보유하지 않은 새로운 사용자 일 수 있다. 다른 측면에서, 사용자 그룹들(2130) 내의 사용자는 하나 이상의 행동 클러스터들(2120)에 포함될 수 있다. 사용자 그룹들(2130)은 트레이닝 프로세스를 통해 결정될 수 있고, 따라서 도 21에 도시된 바와 같이 런타임 시스템에서 이용 가능해 질 수 있다.
사용자 그룹들(2130)의 사용자는 사용자의 인구 통계학적 데이터에 따라 그룹으로 조직될 수 있다. 인구 통계학적 데이터는 또한 사용자 그룹들(2130)의 일부로서 저장될 수 있다. 일 측면에서, 사용자 그룹들(2130)의 각각의 사용자 그룹은 인구 통계학적 데이터의 아이템에 의해 정의될 수 있다. 또 다른 측면에서, 사용자 그룹들(2130)의 각각의 사용자 그룹은 인구 통계학적 데이터의 하나 이상의 아이템들에 의해 정의될 수 있다. 인구 통계학적 데이터는 사용자 그룹을 형성하기 위해 이용될 수 있는 다양하고 상이한 데이터 아이템들을 포함할 수 있다. 예를 들어, 인구 통계학적 데이터는 사용자의 주소 및/또는 우편 번호, 소득 수준, 성별, 민족, 인종, 나이, 생년월일 또는 사용자의 기타 데이터를 특정할 수 있다. 또한 인구 통계학적 데이터는 사용하는 디바이스의 특정 제조사 및 모델, 휴대 전화 또는 디바이스에서 실행되는 운영 체제의 버전 및 전화 또는 디바이스의 센서에 의해 수집될 수 있는 데이터, 예를 들어 메타데이터를 포함할 수 있다. 인구 통계학적 데이터는 사용자가 백엔드 시스템(110)과 공유하기로 선택한 임의의 임의의 정보 아이템들도 포함할 수 있다는 점을 이해할 필요가 있다. 예를 들어, 사용자는 비디오 공유 시스템 또는 사용자가 비디오 선호도를 포함하는 프로파일을 확립한 다른 소셜 네트워킹 플랫폼에 로그인 할 수 있다. 사용자 프로필로부터의 정보는 사용자 그룹을 형성하기 위해 이용된 인구 통계학적 데이터 내에 포함될 수 있다. 인구 통계학적 데이터의 추가 예시는, 외부 데이터베이스 조회로부터 결정된 정보 또한 포함할 수 있다. 사용자 그룹들(2130) 각각은 인구 통계학적 데이터의 하나 이상의 상이한 아이템들에 의해 정의될 수 있다.
분할 모델(2135)은 사용자 그룹들(2130)과 행동 클러스터들(2120)와의 관련성을 특정할 수 있다. 분할 모델(2135)은 트레이닝 프로세스를 이용하여 생성될 수 있고, 시스템(2100)의 일부로서 런타임에 이용 가능할 수 있다. 일 측면에서, 분할 모델(2135)은 행동 클러스터들(2120)의 각 행동 클러스터를 일정하게 유지하고, 핵심적인 인구 통계학적 데이터 아이템들 또는 사용자 그룹들을 결정함으로써 생성될 수 있다. 예를 들어, 인구 통계학적 데이터 아이템들의 비교는, 행동 클러스터들(2120)의 상이한 것들에 걸쳐서 어떤 인구 통계학적 데이터 아이템이 변화하는지 또는 가장 많이 변화하는지 결정하기 위해 수행될 수 있고, 어떤 인구 통계학적 데이터 아이템이 동일한 행동 클러스터의 사용자들 사이에 일정하게 유지되는지를 결정하기 위해 수행될 수 있다. 동일한 행동 클러스터 내의 사용자들에 대해 일정하기 유지되는 동안 행동 클러스터들 사이에서 변화하는 인구 통계학적 데이터의 아이템들은 행동 클러스터들과 인구 통계학적 데이터 또는 인구 통계학적 데이터의 중요한 아이템(들)에 따라 적어도 부분적으로 형성된 사용자 그룹(들) 간의 관련성을 나타내는 중요한 것으로 고려된다.
일 예에서, 분류 모델(2135)에서 특정된 바와 같이, 행동 클러스터들(2120)과 사용자 그룹들(2130) 사이의 관련성은 설정된 유사성의 측정치를 이용하여 결정될 수 있다. 또 다른 실시예에서, 분류 모델(2135)에 특정된 관련성은 클러스터링(예를 들어 Kmeans)을 사용하는 인구 통계학적 데이터 아이템들(또는 사용자 그룹들) 및 행동 클러스터들(2120)의 상관 관계에 따라 결정될 수 있다.
일 예시에서, 사용자의 비디오 선호도가 알려지지 않고, 사용자가 어떠한 비디오 쿼리도 생성하지 않았거나 매우 적게 생성한 경우를 고려해 볼 수 있다. 디바이스의 사용자는 비디오에 대한 요청을 제출할 수 있다. 응답 모듈(2110)은 사용자의 연령, 성별 및 주소와 같은 인구 통계학적 데이터가 알려지면, 사용자가 사용자 그룹들(2130)에서 선택된 사용자 그룹에 속하는 것으로 결정할 수 있다. 응답 모듈(2110)은 선택된 사용자 그룹과 관련된 하나 이상의 선택된 행동 클러스터들(2120)을 결정할 수 있다. 예를 들어, 응답 모듈(2110)은 사용자의 비디오 선호도가 요청을 발생시킨 사용자를 포함하는 선택된 사용자 그룹들(2130)과 관련된 선택된 행동 클러스터(2120)의 사용자들의 비디오 선호도와 동일 또는 유사하다고 결정할 수 있다.
예를 들어, 선택된 사용자 그룹(2130)에 속하는 사용자가, 선택된 행동 클러스터(2120)의 사용자들과 동일한 연령, 성별을 갖고 유사한 곳에 위치한 경우, 응답 모듈(2110)은 요청을 발행한 사용자 및/또는 디바이스가 트레이닝 프로세스 동안 행동 클러스터에 공식적으로 배치되지 않은 점에도 불구하고 선택된 행동 클러스터(2120)에서 사용자는 다른 사용자들과 동일 또는 유사한 비디오 선호도를 가지고 있다고 결정할 수 있다. 응답 모듈(2110)은 비디오 컨텐트(2140)로부터 하나 이상의 비디오 제안(2150)을 결정할 수 있고, 요청에 대한 응답으로서 요청하는 사용자의 디바이스에 비디오 제안(2150)을 송신할 수 있다.
도 22는 관심 비디오를 사용자에게 제공하는 예시적인 방법을 도시하는 흐름도이다. 방법(2200)은 도 1의 백엔드 시스템(110)에 의해 수행될 수 있다. 방법(2200)은 행동 클러스터에 배치되기 위한 추적 데이터를 아직 충분히 축적하지 않은 사용자에게 관심 비디오를 제공하도록 구현될 수 있다.
블록(2205)에서, 백엔드 시스템은 사용자로부터 비디오 컨텐트에 대한 요청을 수신할 수 있다. 쿼리는 예를 들어 사용자의 디바이스로부터 수신될 수 있다. 블록(2210)에서, 백엔드 시스템은 요청을 개시한 사용자를 식별할 수 있다. 사용자는 요청이 수신된 디바이스 등에 따라서, 사용자가 제공한 데이터에 의해 식별될 수 있다. 일 측면에서, 사용자의 신원은 디바이스 정보와 관련될 수 있어서 사용자의 신원이 요청을 송신하는데 사용된 디바이스에 따라 결정될 수도 있다는 것을 이해할 필요가 있다. 일 예에서, 응답 모듈은 요청으로부터 사용자 식별자(identifier)를 결정할 수 있다. 식별자는 사용자를 위한 것이든 디바이스를 위한 것이든 관계없이 저장된 사용자 데이터와 매칭되거나 상관될 수 있다. 블록(2215)에서, 백엔드 시스템은 사용자에 대한 인구 통계학적 데이터를 찾을 수 있다.
블록(2220)에서, 백엔드 시스템은 사용자가 속하는 하나 이상의 사용자 그룹을 결정할 수 있다. 예를 들어, 백엔드 시스템은 사용자의 인구 통계학적 데이터를 사용자 그룹과 비교할 수 있다. 전술된 바와 같이, 사용자 그룹은 인구 통계학적 데이터에 따라 정의 또는 결정될 수 있다.
블록(2225)에서, 백엔드 시스템은 블록(2220)에서 결정된 사용자 그룹과 관련된 하나 이상의 행동 클러스터들을 결정할 수 있다. 백엔드 시스템은, 예를 들어 분류 모델을 이용하여 행동 클러스터(들)을 결정할 수 있다. 시스템은 블록(2225)에서 분류 모델로부터 결정된 행동 클러스터(들)의 멤버로서, 요청을 제출한 사용자 및/또는 사용자 디바이스가 서로 유사한 비디오에 관심을 가질 가능성이 높다고 결정할 수 있다.
상기 예에서, 시스템은 요청하는 사용자 및/또는 디바이스를 사용자 그룹에 위치시키고, 사용자 그룹 또는 그룹들을 이용하여 분류 모델로부터 사용자에 대한 하나 이상의 행동 클러스터들을 검색(lookup)할 수 있다. 다른 측면에서, 분류 모델은 하나 이상의 상이한 인구 통계학적 데이터와 하나 이상의 상이한 행동 클러스터들을 상관시킬 수 있다. 또한, 분류 모델은 가중치 적용 결과가 분류 모델을 사용하는 하나 이상의 상이한 행동 클러스터에 매핑될 수 있는, 사용자의 상이한 인구 통계학적 아이템들의 조합에 상이한 가중치들, 예컨대 곱셈 인자들을 적용할 수 있다. 어떠한 경우든, 시스템은 사용자 및/또는 사용자 및/또는 디바이스의 인구 통계학적 데이터에 따라 비디오 컨텐트에 대한 요청을 개시한 디바이스에 대한 하나 이상의 행동 클러스터들을 결정할 수 있다.
블록(2230)에서, 백엔드 시스템은 블록(2225)에서 선택된 행동 클러스터(들)과 관련된 하나 이상의 상이한 비디오를 결정할 수 있다. 행동 클러스터들 각각은 하나 이상의 상이한 비디오들과 관련될 수 있다. 예를 들어, 각각의 행동 클러스터는 특정한 클래스 및/또는 장르의 비디오와 관련될 수 있다. 행동 클러스터들은 비디오의 전체 클래스 및/또는 장르와 관련될 수 있으며, 비디오는 현재의 추세, 좋아하는 것 등 다양하고 상이한 기준에 따라 각 클래스 및/또는 장르 내에서 순위가 매겨질 수 있다.
블록(2235)에서, 백엔드 시스템은 블록(2230)에서 결정된 하나 이상의 비디오(들)을 요청이 수신된 사용자 디바이스에 제공할 수 있다. 일 측면에서, 비디오를 제공하는 것은 사용자가 비디오(들)을 검색, 시청 및/또는 공유할 수 있도록 비디오(들)에 대한 레퍼런스들 또는 링크들을 제공하는 것을 포함할 수 있다. 예를 들어, 백엔드 시스템은 블록(2230)에서 결정된 비디오를 특정하는 웹페이지 또는 다른 마크업(markup) 언어를 생성할 수 있다. 백엔드 시스템은 웹페이지를 요청하는 디바이스로 송신할 수 있다.
본 명세서에서 사용된 용어는 특정 실시예들을 설명하기 위한 것일 뿐, 한정하고자 하는 것이 아니다. 그럼에도 불구하고, 본 개시 전반에 걸쳐 몇 가지 정의가 제공될 것이다.
본 개시에서 정의된 바와 같이, 단수 형태는 문맥상 다르게 지시하지 않는 한 복수 형태를 포함하고자 한다.
본 개시에서 정의된 바와 같이, "또 다른"이라는 용어는 적어도 제 2의 또는 그 이상을 의미할 수 있다.
본 개시에서 정의된 바와 같이, "적어도 하나의", "하나 이상의" 및 "및/또는"과 같은 용어들은 명시적으로 다르게 언급되지 않는 한, 결합적(conjunctive) 동작 및 분리적(disjunctive) 동작 모두를 포함하는 개방형(openended) 표현일 수 있다. 예를 들어, "A, B 및 C 중 적어도 하나", "A, B 또는 C 중 적어도 하나", "A, B 및 C중 하나 이상", "하나 이상의 A, B 또는 C" 및 "A, B 및/또는 C"는, A 단독, B 단독, C 단독, A 및 B 함께, A 및 C 함께, B 및 C 함께, 또는 A, B 및 C 함께를 의미할 수 있다.
본 개시에서 정의된 바와 같이, "자동으로"라는 용어는 사용자 간섭이 없는 것을 의미할 수 있다.
본 개시에서 정의된 바와 같이, "컴퓨터 프로그램 제품"은 컴퓨터로 판독 가능한 저장 매체를 포함하는 시스템, 디바이스, 장치, 및/또는 제조품을 의미할 수 있다.
본 개시에서 정의된 바와 같이, "컴퓨터로 판독 가능한 저장 매체"라는 용어는 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 그와 관련하여 이용하기 위한 프로그램 코드를 포함하거나 저장하는 저장 매체를 의미할 수 있다. 본 개시에서 정의된 바와 같이, "컴퓨터로 판독 가능한 저장 매체"는 일시적인 전파 신호 그 자체가 아니다. 컴퓨터로 판독 가능한 저장 매체는 전자 저장 디바이스, 자기 저장 장치, 광학 저장 장치, 전자기 저장 장치, 반도체 저장 장치 또는 이들의 임의의 적절한 조합일 수 있지만, 이에 한정되는 것은 아니다. 본 개시에 기재된 바와 같은 메모리 소자는 컴퓨터로 판독 가능한 저장 매체의 예이다. 컴퓨터로 판독 가능한 저장 매체의 보다 구체적인 예의 비 한정적인 목록은, 휴대용 컴퓨터 디스켓, 하드디스크, RAM, ROM, 지울 수 있는 프로그램 가능한 읽기 전용 메모리(EPROM 또는 플래시 메모리), SRAM(Static Random Access Memory), CD-ROM, DVD, 메모리 스틱, 플로피 디스크, 펀치 카드(punch-card)와 같은 기계적으로 인코딩 된 디바이스 또는, 명령이 기록된 그루브(groove) 내의 상승 구조, 및 이들의 임의의 적절한 조합을 포함할 수 있다.
본 개시에서 정의된 바와 같이, "결합된"이라는 용어는 달리 지시되지 않는 한, 임의의 개재 요소 없이 직접적으로 또는 하나 이상의 개재 요소와 함께 간접적으로 연결되는 것을 의미할 수 있다. 2개의 요소가 통신 채널, 경로, 네트워크 또는 시스템을 통해 기계적으로, 전기적으로 또는 통신적으로 연결될 수 있다.
본 개시에서 정의된 바와 같이, "실행 가능한 동작" 또는 "동작"이라는 용어는, 문맥상 달리 지시되지 않는 한, 데이터 처리 시스템 또는 데이터 처리 시스템 내의 프로세서에 의해 수행되는 동작일 수 있다. 실행 가능한 동작의 예는 "처리", "컴퓨팅", "계산", "결정", "디스플레이", "비교" 등을 포함할 수 있으며, 이에 한정되지 않는다. 이러한 측면에서, 동작들은, 데이터 처리 시스템, 예를 들어, 컴퓨터 시스템의 레지스터 및/또는 메모리 내의 물리적 양으로 표현된 데이터를 컴퓨터 시스템 메모리 및/또는 레지스터, 또는 다른 정보 스토리지, 송신 또는 디스플레이 디바이스 내의 물리적 양으로 유사하게 표현된 다른 데이터로 조작하고 변환하는 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 작업 및/또는 프로세스를 참조할 수 있다.
본 개시에서 정의된 바와 같이, "포함하다" 및/또는 "포함하는"이라는 용어들은 명시된 특징, 숫자, 단계, 동작, 요소 및/또는 구성의 존재를 나타내지만, 하나 이상의 다른 특징, 숫자, 단계, 동작, 요소, 구성 및/또는 그들의 그룹의 존재 또는 추가를 배제하지 않는다.
본 개시에 정의된 바와 같이, "~한 경우"는 문맥에 따라 "~한 때" 또는 "~에 응답하여" 또는 "~에 응답하는"을 의미할 수 있다. 따라서, "만약 이것이 결정된 경우" 또는 "만약 [명시된 조건 또는 사건]이 검출된 경우"는, 문맥에 따라 "결정할 때" 또는 "결정된 것에 응답하여" 또는 "[명시된 조건 또는 사건]을 검출할 때" 또는 "[명시된 조건 또는 사건]을 검출한 것에 응답하여" 또는 "[명시된 조건 또는 사건]을 검출한 것에 응답하는"으로 해석될 수 있다.
본 개시에 정의된 바와 같이, "일 실시예", "실시예" 또는 유사한 언어라는 용어는 본 개시에 기재된 적어도 하나의 실시예에 포함된 실시예와 관련하여 기재된 특정 특징, 구조 또는 특성을 의미할 수 있다. 따라서, 본 개시 전반에 걸친 "일 실시예에서", "실시예에서"와 같은 문구 및 유사한 언어의 출현은 모두 동일한 실시예를 지칭할 수도 있지만, 반드시 그러한 것은 아니다.
본 개시에 정의된 바와 같이, "출력"이라는 용어는 예를 들어 디바이스와 같은 물리적 메모리 요소에 저장하기, 디스플레이 또는 다른 주변 출력 디바이스에 기록하기, 다른 시스템으로 송신하기, 송출하기 등을 의미할 수 있다.
본 개시에 정의된 바와 같이, "복수의"라는 용어는 2개 또는 2개 이상을 의미할 수 있다.
본 개시에 정의된 바와 같이, "프로세서"라는 용어는 프로그램 코드에 포함된 명령을 수행하도록 구성된 적어도 하나의 하드웨어 회로를 의미할 수 있다. 하드웨어 회로는 집적 회로일 수 있다. 프로세서는 예를 들어 중앙 처리 장치(CPU), 어레이 프로세서, 벡터 프로세서, 디지털 신호 프로세서(DSP), FPGA(Field Programmable Gate Array), PLA(Programmable Logic Array), ASIC(Application Specific Integrated Circuit), 프로그램 가능한 논리 회로 및 제어기 등을 포함할 수 있으며, 이에 한정되지 않는다.
본 개시에 정의된 바와 같이, "프로그램 코드", "소프트웨어", "애플리케이션" 및 "실행 가능한 코드"라는 용어는 데이터 처리를 유발하도록 의도된 일련의 명령의 임의의 언어, 코드 또는 표기법 시스템에서 직접 또는 다음 중 하나 또는 둘 모두를 수행한 후 특정 기능을 수행할 수 있다: a) 다른 언어, 코드 또는 표기법으로 변환; b) 다른 자료 형태로 재생산. 프로그램 코드는 예를 들어 서브 루틴, 함수, 절차, 객체 방법, 객체 구현, 실행 가능한 응용 프로그램, 애플릿(applet), 서블릿(servlet), 소스 코드, 객체 코드, 공유 라이브러리/동적 로드 라이브러리 및/또는 컴퓨터 시스템 상에서 실행하도록 설계된 다른 명령 시퀀스를 포함할 수 있으며, 이에 한정되지 않는다.
본 개시에 정의된 바와 같이, "실시간"이라는 용어는 사용자 또는 시스템이 특정 프로세스 또는 내릴 결정을 위해 충분히 즉각적으로 감지하는 처리 응답 레벨, 또는 프로세서가 몇몇 외부 프로세스를 따라갈 수 있게 하는 처리 응답 레벨을 의미할 수 있다.
본 개시에 정의된 바와 같이, "~에 응답하여"라는 용어는 동작 또는 사건에 즉각적으로 응답 또는 반응하는 것을 의미할 수 있다. 따라서, 제 2 동작이 제 1 동작에 "응답하여" 수행되면, 제 1 동작의 발생과 제 2 동작의 발생간에 인과 관계가 발생할 수 있다. "~에 응답하여"라는 용어는 인과 관계를 나타낼 수 있다.
본 개시에 정의된 바와 같이, "사용자"는 사람을 의미할 수 있다.
제 1, 제 2 등의 용어는 다양한 요소를 설명하기 위해 본 개시에 사용되었을 수 있다. 이러한 요소들은, 달리 언급되지 않거나 문맥에서 명백하게 달리 지시하지 않는 한, 이러한 용어들은 하나의 성분을 다른 성분과 구별하기 위해서만 사용되므로, 이러한 용어들에 의해 한정되어서는 안 된다.
컴퓨터 프로그램 제품은 프로세서로 하여금 본 개시의 여러 측면들을 수행하게 하는 컴퓨터로 판독 가능한 프로그램 명령어들을 갖는 컴퓨터로 판독 가능한 저장 매체(또는 매체)를 포함할 수 있다. 본 개시에 설명된 컴퓨터로 판독 가능한 프로그램 명령어는, 컴퓨터로 판독 가능한 저장 매체로부터의 각각의 컴퓨팅/처리 디바이스로 다운로드 되거나, 네트워크, 예를 들어 인터넷, LAN, WAN 및/또는 무선 네트워크를 통해 외부 컴퓨터 또는 외부 저장 디바이스로 다운로드 될 수 있다. 네트워크는 구리 송신 케이블, 광 송신 섬유, 무선 송신, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 엣지 서버를 포함하는 엣지 디바이스를 포함할 수 있다. 각각의 컴퓨팅/처리 디바이스에 있는 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터로 판독 가능한 프로그램 명령을 수신할 수 있고, 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터로 판독 가능한 저장 매체에 저장하기 위해 컴퓨터로 판독 가능한 프로그램 명령을 송신할 수 있다.
본 개시에 기재된 발명의 장치에 대한 동작을 수행하기 위한 컴퓨터로 판독 가능한 프로그램 명령어는, 어셈블러 명령어, ISA(Instruction Set-Architecture) 명령어, 기계 명령어, 기계 의존 명령어, 마이크로 코드, 펌웨어 명령어, 상태 설정 데이터 또는 소스 객체 지향 프로그래밍 언어 및/또는 절차적 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성된 코드 또는 객체 코드를 포함할 수 있다. 컴퓨터로 판독 가능한 프로그램 명령어는 완전히 컴퓨터 상에서, 독립형 소프트웨어 패키지로서 부분적으로 사용자의 컴퓨터 상에서, 부분적으로는 원격 컴퓨터 상에서, 또는 완전히 원격 컴퓨터 또는 서버상에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 LAN 또는 WAN을 포함하는 임의의 유형의 네트워크를 통해 사용자의 컴퓨터 또는 외부 컴퓨터(예를 들어, 인터넷 서비스 제공자를 이용하는 인터넷을 통해) 연결될 수 있다. 일부의 경우에, 예를 들어 프로그램 가능한 논리 회로, FPGA 또는 PLA를 포함하는 전자 회로는, 컴퓨터 회로의 개인 정보를 개인화하기 위한 컴퓨터로 판독 가능한 프로그램 명령의 상태 정보를 이용함으로써, 본 개시에 기재된 본 발명의 장치의 여러 측면들을 수행하기 위해, 컴퓨터로 판독 가능한 프로그램 명령을 실행할 수 있다.
본 발명의 장치의 특정 측면은, 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 본 개시에 기재된다. 흐름도 및/또는 블록도들의 각 블록 및, 흐름도 및/또는 블록도들의 블록들의 조합은, 프로그램 코드와 같은 컴퓨터로 판독 가능한 프로그램 명령어들에 의해 구현될 수 있음을 이해할 수 있을 것이다.
이러한 컴퓨터로 판독 가능한 프로그램 명령들은 범용 컴퓨터, 특수 목적 컴퓨터 또는 기계를 생산하기 위한 다른 프로그램 가능한 데이터 처리 장치의 프로세서에 제공되어, 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 장치를 통해 실행되는 명령들이 흐름도 또는 블록도에 특정된 기능/동작들을 구현하는 수단을 생성하도록 할 수 있다. 이러한 컴퓨터로 판독 가능한 프로그램 명령어는 또한 컴퓨터로 판독 가능한 기록 매체에 저장되어 컴퓨터, 프로그램 가능한 데이터 처리 장치 및/또는 다른 디바이스가 특정한 방식으로 기능하도록 하여, 명령어가 저장되어 있는 컴퓨터로 판독 가능한 기록 매체가 흐름도 및/또는 블록도에 특정된 동작들의 측면들을 수행하는 명령들을 포함하는 제품을 포함하도록 할 수 있다.
또한, 컴퓨터로 판독 가능한 프로그램 명령어는 컴퓨터, 다른 프로그램 가능한 장치 또는 다른 디바이스에서 일련의 동작들이 수행되도록 컴퓨터, 다른 프로그램 가능한 데이터 처리 장치 또는 다른 디바이스로 로드될 수 있고, 컴퓨터, 다른 프로그램 가능한 장치 또는 다른 디바이스에서 실행되는 명령어들은 흐름도 및/또는 블록도에서 특정된 기능/동작들을 구현할 수 있다.
도면의 흐름도 및 블록도는 본 발명의 장치의 다양한 측면에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현의 구조, 기능 및 동작을 나타낼 수 있다. 이러한 측면에서, 흐름도 또는 블록도의 각 블록은 지정된 동작을 구현하기 위한 하나 이상의 실행 가능한 명령을 포함하는 모듈, 세그먼트 또는 명령이 일부를 나타낼 수 있다. 일부 다른 구현 예에서, 블록에서 기술된 동작들은 도면에서 언급된 순서와 다르게 발생할 수 있다. 예를 들어, 연속적으로 도시된 두 개의 블록은 실질적으로 동시에 수행되거나, 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 또한, 블록도 및/또는 흐름도의 각각의 블록 또는 그 조합은 특정 기능 또는 동작을 수행하거나, 특수 목적의 하드웨어 및 컴퓨터 명령어의 조합을 수행하는 특수 목적의 하드웨어 기반 시스템에 의해 구현될 수 있다는 점을 이해할 필요가 있다.
이하의 청구 범위에서 발견될 수 있는 기능식 청구항의 모든 요소들과 상응하는 구조, 물질, 동작 및 균등물은 구체적으로 청구된 다른 청구 요소와 함께 기능을 수행하기 위한 임의의 구조, 물질 또는 동작을 포함하는 것으로 의도되었을 수 있다.
일 실시예에 따른 방법은, 프로세서를 이용하여, 비디오를 기록함과 동시에, 상기 비디오와 시간상 동기화되는 메타데이터를 센서로부터 수집하는 단계, 상기 프로세서를 이용하여, 상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계, 상기 프로세서를 이용하여, 상기 속성들을 복수의 편집기들과 상관시키는(correlating) 단계, 상기 프로세서를 이용하여, 상기 상관에 따라 상기 복수의 편집기들 중 하나의 편집기를 선택하는 단계, 및 상기 프로세서를 이용하여, 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 상기 비디오의 재생 중 트림 제어의 사용자 활성화에 따른 트리밍을 위해 상기 비디오에 클립을 마킹하는 단계를 포함할 수 있다. 또한, 일 실시예에 따른 방법은, 상기 마킹된 클립에 따라 상기 비디오를 트리밍하는 단계를 더 포함할 수 있다.
일 실시예에 따른 방법은, 시간 경과에 따른 상기 비디오의 프레임 속도를 지정하는 사용자 제스처를 수신하는 단계 및 상기 비디오 내의 시간들과 관련하여 상기 프레임 속도들을 저장하는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 복수의 서로 다른 비디오들의 시각적 표현들을 시간에 맞게 정렬하는 단계, 서로 다른 시간에 가시화 되도록 상기 복수의 서로 다른 비디오들의 클립들을 선택하는 상기 시각적 표현들 중 상이한 시각적 표현들 상에 선을 그리는 사용자 입력을 수신하는 단계, 및 상기 복수의 비디오들 각각의 상기 선택된 클립들을 시간순으로 포함하는 믹스 된 비디오를 생성하는 단계를 더 포함할 수 있다. 일 측면에서, 일 실시예에 따른 방법은, 상기 선택된 클립들 중 적어도 하나의 시작 시간 또는 종료 시간을 시간 동기화 된 오디오 파일에서 검출된 비트와 일치하도록 조정하는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 상기 메타데이터를 상기 비디오 상에 중첩시키는 단계를 포함할 수 있다.
일 측면에서, 상기 메타데이터는 복수의 서로 다른 센서로부터 수집될 수 있다. 일 실시예에 따른 방법은, 상기 복수의 센서 중 상기 비디오를 기록하는 도중에 적어도 최소한의 활동 레벨을 나타내는 센서를 결정하는 단계, 상기 결정된 센서로부터 생성된 메타데이터 아이템들을 선택하는 단계, 및 상기 비디오와 동기화하여 상기 메타데이터 아이템들을 상기 비디오 상에 중첩시키는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 분산(distributed) 비디오 처리를 수행하도록 제 1 디바이스에서 제 2 디바이스를 초대하는 단계, 상기 제 2 디바이스가 초대를 수락한 것으로 결정한 것에 응답하여, 복수의 비디오 처리 동작 중 선택된 비디오 처리 동작을 상기 제 2 디바이스에 송신하는 단계, 상기 제 2 디바이스로부터 상기 선택된 비디오 처리 동작의 결과를 수신하는 단계를 포함할 수 있다. 상기 결과는 상기 비디오 처리 동작 중 적어도 다른 비디오 처리 동작의 결과와 결합될 수 있다.
일 실시예에 따른 방법은, 디바이스 내에서, 상기 프로세서가, 상기 디바이스가 유휴 상태(idle)이고 전원 공급 장치와 결합되어 있다고 결정할 때까지 비디오 처리 동작의 구현을 지연하는 단계를 더 포함할 수 있다.
일 실시예에 따른 시스템은 실행 가능한 동작들을 개시하도록 프로그램 된 프로세서를 포함할 수 있다. 상기 동작들은, 비디오를 기록함과 동시에 상기 비디오와 시간적으로 동기화되는 메타데이터를 센서로부터 수집하는 단계, 상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계, 및 상기 속성들을 복수의 편집기들과 상관시키는 단계를 포함할 수 있다. 상기 실행 가능한 동작들은 또한, 상기 상관에 따라 상기 복수의 편집기들 중 하나의 편집기를 선택하는 단계 및 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 실행 가능한 동작들은, 상기 비디오의 재생 중 트림 제어의 사용자 활성화에 따른 트리밍을 위해 상기 비디오에 클립을 마킹하는 단계를 포함할 수 있다. 상기 실행 가능한 동작들은 상기 마킹된 클립에 따라 상기 비디오를 트리밍하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 실행 가능한 동작들은, 시간 경과에 따른 상기 비디오의 프레임 속도를 지정하는 사용자 제스처를 수신하는 단계 및 상기 비디오 내의 시간들과 관련하여 상기 프레임 속도들을 저장하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 실행 가능한 동작들은, 복수의 서로 다른 비디오들의 시각적 표현들을 시간에 맞게 정렬하는 단계 및 서로 다른 시간에 가시화 되도록 상기 복수의 서로 다른 비디오들의 클립들을 선택하는 상기 시각적 표현들 중 상이한 시각적 표현들 상에 선을 그리는 사용자 입력을 수신하는 단계를 포함할 수 있다. 또한, 일 실시예에 따른 상기 실행 가능한 동작들은, 상기 복수의 비디오들 각각의 상기 선택된 클립들을 시간순으로 포함하는 믹스 된 비디오를 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 실행 가능한 동작들은, 상기 메타데이터를 상기 비디오 상에 중첩시키는 단계를 포함할 수 있다.
메타데이터는 복수의 상이한 센서들로부터 수집될 수 있다. 그러한 경우에, 상기 실행 가능한 동작들은, 상기 복수의 센서 중 상기 비디오를 기록하는 도중에 적어도 최소한의 활동 레벨을 나타내는 센서를 결정하는 단계, 상기 결정된 센서로부터 생성된 메타데이터 아이템들을 선택하는 단계 및 상기 비디오와 동기화하여 상기 메타데이터 아이템들을 상기 비디오 상에 중첩시키는 단계를 포함할 수 있다.
일 실시예에 따른 상기 실행 가능한 동작들은, 분산(distributed) 비디오 처리를 수행하도록 제 1 디바이스에서 제 2 디바이스를 초대하는 단계, 상기 제 2 디바이스가 초대를 수락한 것으로 결정한 것에 응답하여, 복수의 비디오 처리 동작 중 선택된 비디오 처리 동작을 상기 제 2 디바이스에 송신하는 단계, 상기 제 2 디바이스로부터 상기 선택된 비디오 처리 동작의 결과를 수신하는 단계, 및 상기 결과를 상기 비디오 처리 동작 중 적어도 다른 비디오 처리 동작의 결과와 결합하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 실행 가능한 동작들은, 디바이스 내에서, 상기 프로세서가, 상기 디바이스가 유휴 상태(idle)이고 전원 공급 장치와 결합되어 있다고 결정할 때까지 비디오 처리 동작의 구현을 지연하는 단계를 포함할 수 있다.
일 실시예에 따른 컴퓨터 프로그램 제품은, 프로그램 코드가 저장된 컴퓨터로 판단 가능한 저장 매체를 포함할 수 있다. 상기 프로그램 코드는 방법을 수행하기 위해 프로세서에 의해 실행 가능할 수 있다. 상기 방법은, 프로세서를 이용하여, 비디오를 기록함과 동시에, 상기 비디오와 시간상 동기화되는 메타데이터를 센서로부터 수집하는 단계, 상기 프로세서를 이용하여, 상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계, 및 상기 프로세서를 이용하여, 상기 속성들을 복수의 편집기들과 상관시키는(correlating) 단계를 포함할 수 있다. 또한, 상기 방법은 상기 프로세서를 이용하여, 상기 상관에 따라 상기 복수의 편집기들 중 하나의 편집기를 선택하는 단계 및 상기 프로세서를 이용하여, 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 상기 비디오의 재생 중 트림 제어의 사용자 활성화에 따른 트리밍을 위해 상기 비디오에 클립을 마킹하는 단계를 포함할 수 있다. 그러한 경우에, 일 실시예에 따른 방법은, 상기 마킹된 클립에 따라 상기 비디오를 트리밍하는 단계를 더 포함할 수 있다.
일 실시예에 따른 방법은, 시간 경과에 따른 상기 비디오의 프레임 속도를 지정하는 사용자 제스처를 수신하는 단계 및 상기 비디오 내의 시간들과 관련하여 상기 프레임 속도들을 저장하는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 복수의 서로 다른 비디오들의 시각적 표현들을 시간에 맞게 정렬하는 단계, 서로 다른 시간에 가시화 되도록 상기 복수의 서로 다른 비디오들의 클립들을 선택하는 상기 시각적 표현들 중 상이한 시각적 표현들 상에 선을 그리는 사용자 입력을 수신하는 단계, 및 상기 복수의 비디오들 각각의 상기 선택된 클립들을 시간순으로 포함하는 믹스 된 비디오를 생성하는 단계를 더 포함할 수 있다. 그러한 경우에, 일 실시예에 따른 방법은, 상기 선택된 클립들 중 적어도 하나의 시작 시간 또는 종료 시간을 시간 동기화 된 오디오 파일에서 검출된 비트와 일치하도록 조정하는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 상기 메타데이터를 상기 비디오 상에 중첩시키는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 상기 복수의 센서 중 상기 비디오를 기록하는 도중에 적어도 최소한의 활동 레벨을 나타내는 센서를 결정하는 단계, 상기 결정된 센서로부터 생성된 메타데이터 아이템들을 선택하는 단계 및 상기 비디오와 동기화하여 상기 메타데이터 아이템들을 상기 비디오 상에 중첩시키는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 분산(distributed) 비디오 처리를 수행하도록 제 1 디바이스에서 제 2 디바이스를 초대하는 단계, 상기 제 2 디바이스가 초대를 수락한 것으로 결정한 것에 응답하여, 복수의 비디오 처리 동작 중 선택된 비디오 처리 동작을 상기 제 2 디바이스에 송신하는 단계, 상기 제 2 디바이스로부터 상기 선택된 비디오 처리 동작의 결과를 수신하는 단계, 및 상기 결과를 상기 비디오 처리 동작 중 적어도 다른 비디오 처리 동작의 결과와 결합하는 단계를 포함할 수 있다.
일 실시예에 따른 방법은, 디바이스 내에서, 상기 프로세서가, 상기 디바이스가 유휴 상태(idle)이고 전원 공급 장치와 결합되어 있다고 결정할 때까지 비디오 처리 동작의 구현을 지연하는 단계를 포함할 수 있다.
또한, 일 실시예에 따른 방법은, 프로세서를 이용하여 디바이스로부터 비디오 컨텐트에 대한 요청을 수신하는 단계, 상기 프로세서를 이용하여 상기 디바이스와 관련된 인구 통계학적 데이터에 따라 행동 클러스터를 결정하는 단계, 상기 행동 클러스터와 관련된 관심 비디오를 결정하는 단계, 및 프로세서를 이용하여 상기 관심 비디오를 상기 디바이스에 제공하는 단계를 포함할 수 있다.
행동 클러스터를 결정하는 단계는, 인구 통계학적 데이터의 아이템들과 복수의 행동 클러스터를 상관시키는 분리 모델을 인구 통계학적 데이터와 비교하는 단계를 포함할 수 있다.
일 실시예에 따른 시스템은 실행 가능한 동작들을 개시하기 위해 프로그램 된 프로세서를 포함할 수 있다. 상기 실행 가능한 동작들은, 디바이스로부터 비디오 컨텐트에 대한 요청을 수신하는 단계, 상기 디바이스와 관련된 인구 통계학적 데이터에 따라 행동 클러스터를 결정하는 단계, 상기 행동 클러스터와 관련된 관심 비디오를 결정하는 단계, 및 상기 관심 비디오를 상기 디바이스에 제공하는 단계를 포함할 수 있다.
행동 클러스터를 결정하는 단계는, 인구 통계학적 데이터의 아이템들과 복수의 행동 클러스터를 상관시키는 분리 모델을 인구 통계학적 데이터와 비교하는 단계를 포함할 수 있다.
일 실시예에 따른 컴퓨터 프로그램 제품은, 프로그램 코드가 저장된 컴퓨터로 판단 가능한 저장 매체를 포함할 수 있다. 상기 프로그램 코드는 방법을 수행하기 위해 프로세서에 의해 실행 가능할 수 있다. 일 실시예에 따른 방법은, 디바이스로부터 비디오 컨텐트에 대한 요청을 수신하는 단계, 상기 디바이스와 관련된 인구 통계학적 데이터에 따라 행동 클러스터를 결정하는 단계, 상기 행동 클러스터와 관련된 관심 비디오를 결정하는 단계, 및 상기 관심 비디오를 상기 디바이스에 제공하는 단계를 포함할 수 있다.
행동 클러스터를 결정하는 단계는, 인구 통계학적 데이터의 아이템들과 복수의 행동 클러스터를 상관시키는 분리 모델을 인구 통계학적 데이터와 비교하는 단계를 포함할 수 있다.
발명의 장치에 대한 본 개시의 기재는 설명의 목적을 위한 것이며, 개시된 형태나 예제들을 포괄하거나 제한하려는 의도가 아니다. 본 개시에 사용된 용어는 발명의 장치의 원리를 설명하고, 시장에서 발견된 기술에 대한 실제적인 적용 또는 기술적 향상 및/또는 당해 기술 분야에서 통상의 기술을 가진 자가 본 개시에 기재된 실시예들을 이해하는 것이 가능하도록 하기 위해 선택되었다. 본 발명의 장치의 범위 및 사상을 벗어나지 않고 당해 기술 분야에서 통상의 기술을 가진 자는 수정 및 변형이 명백할 수 있다. 따라서, 전술한 개시 내용보다는 이러한 특징 및 구현의 범위를 나타내는 이하의 청구 범위가 참조되어야 한다.

Claims (15)

  1. 편집기를 디스플레이 하는 방법에 있어서,
    프로세서를 이용하여, 비디오를 기록함과 동시에, 상기 비디오와 시간상 동기화되는 메타데이터를 센서로부터 수집하는 단계;
    상기 프로세서를 이용하여, 상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계;
    상기 프로세서를 이용하여, 상기 속성들을 복수의 편집기들과 상관시키는(correlating) 단계;
    상기 프로세서를 이용하여, 상기 상관에 따라 상기 복수의 편집기들 중 하나의 편집기를 선택하는 단계; 및
    상기 프로세서를 이용하여, 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 비디오의 재생 중 트림 제어의 사용자 활성화에 따른 트리밍을 위해 상기 비디오에 클립을 마킹하는 단계를 더 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 마킹된 클립에 따라 상기 비디오를 트리밍하는 단계를 더 포함하는, 방법.
  4. 제 1 항에 있어서,
    시간 경과에 따른 상기 비디오의 프레임 속도를 지정하는 사용자 제스처를 수신하는 단계; 및
    상기 비디오 내의 시간들과 관련하여 상기 프레임 속도들을 저장하는 단계를 더 포함하는, 방법.
  5. 제 1 항에 있어서,
    복수의 서로 다른 비디오들의 시각적 표현들을 시간에 맞게 정렬하는 단계;
    서로 다른 시간에 가시화 되도록 상기 복수의 서로 다른 비디오들의 클립들을 선택하는 상기 시각적 표현들 중 상이한 시각적 표현들 상에 선을 그리는 사용자 입력을 수신하는 단계; 및
    상기 복수의 비디오들 각각의 상기 선택된 클립들을 시간순으로 포함하는 믹스 된 비디오를 생성하는 단계를 더 포함하는, 방법.
  6. 제 5 항에 있어서,
    상기 선택된 클립들 중 적어도 하나의 시작 시간 또는 종료 시간을 시간 동기화 된 오디오 파일 에서 검출된 비트와 일치하도록 조정하는 단계를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 메타데이터를 상기 비디오 상에 중첩시키는 단계를 더 포함하는, 방법.
  8. 제 1 항에 있어서,
    상기 메타데이터는 복수의 서로 다른 센서로부터 수집되고,
    상기 방법은,
    상기 복수의 센서 중 상기 비디오를 기록하는 도중에 적어도 최소한의 활동 레벨을 나타내는 센서를 결정하는 단계;
    상기 결정된 센서로부터 생성된 메타데이터 아이템들을 선택하는 단계; 및
    상기 비디오와 동기화하여 상기 메타데이터 아이템들을 상기 비디오 상에 중첩시키는 단계를 더 포함하는, 방법.
  9. 제 1 항에 있어서,
    분산(distributed) 비디오 처리를 수행하도록 제 1 디바이스에서 제 2 디바이스를 초대하는 단계;
    상기 제 2 디바이스가 초대를 수락한 것으로 결정한 것에 응답하여, 복수의 비디오 처리 동작 중 선택된 비디오 처리 동작을 상기 제 2 디바이스에 송신하는 단계;
    상기 제 2 디바이스로부터 상기 선택된 비디오 처리 동작의 결과를 수신하는 단계; 및
    상기 결과를 상기 비디오 처리 동작 중 적어도 다른 비디오 처리 동작의 결과와 결합하는 단계를 더 포함하는, 방법.
  10. 제 1 항에 있어서,
    디바이스 내에서, 상기 프로세서가, 상기 디바이스가 유휴 상태(idle)이고 전원 공급 장치와 결합되어 있다고 결정할 때까지 비디오 처리 동작의 구현을 지연하는 단계를 더 포함하는, 방법.
  11. 제 1 항에 있어서,
    상기 프로세서를 이용하여 디바이스로부터 비디오 컨텐트에 대한 요청을 수신하는 단계;
    상기 프로세서를 이용하여, 상기 디바이스와 관련된 인구 통계학적 데이터에 따라 행동 클러스터(behavioral cluster)를 결정하는 단계;
    상기 행동 클러스터와 관련된 관심 비디오를 결정하는 단계; 및
    상기 프로세서를 이용하여, 상기 관심 비디오를 상기 디바이스에 제공하는 단계를 더 포함하는, 방법.
  12. 제 11 항에 있어서,
    행동 클러스터를 결정하는 단계는:
    인구 통계학적 데이터의 아이템들을 복수의 행동 클러스터와 상관시키는 세분화 모델(segmentation model)과 상기 인구 통계학적 데이터를 비교하는 단계를 포함하는, 방법.
  13. 편집기를 디스플레이 하는 시스템에 있어서,
    실행 가능한 동작들을 개시하도록 프로그램 된 프로세서를 포함하고,
    상기 실행 가능한 동작들은,
    비디오를 기록함과 동시에 상기 비디오와 시간적으로 동기화되는 메타데이터를 센서로부터 수집하는 단계;
    상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계;
    상기 속성들을 복수의 편집기들과 상관시키는 단계;
    상기 상관에 따라 상기 복수의 편집기들 중 하나의 편집기를 선택하는 단계; 및
    상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계를 포함하는, 시스템.
  14. 제 13 항에 있어서,
    상기 프로세서는:
    디바이스로부터 비디오 컨텐트에 대한 요청을 수신하는 단계;
    상기 디바이스와 관련된 인구 통계학적 데이터에 따라 행동 클러스터를 결정하는 단계;
    상기 행동 클러스터와 관련된 관심 비디오를 결정하는 단계; 및
    상기 관심 비디오를 상기 디바이스에 제공하는 단계를 포함하는, 실행 가능한 동작들을 개시하도록 더 프로그램 된 것을 특징으로 하는, 시스템.
  15. 프로그램 코드가 저장된 컴퓨터로 판단 가능한 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서:
    프로세서를 이용하여, 비디오를 기록함과 동시에, 상기 비디오와 시간상 동기화되는 메타데이터를 센서로부터 수집하는 단계;
    상기 프로세서를 이용하여, 상기 메타데이터의 속성들 중 적어도 하나 또는 상기 비디오의 속성들 중 적어도 하나를 검출하는 단계;
    상기 프로세서를 이용하여, 상기 속성들을 복수의 편집기들과 상관시키는(correlating) 단계;
    상기 프로세서를 이용하여, 상기 상관에 따라 상기 복수의 편집기들 중 하나의 편집기를 선택하는 단계; 및
    상기 프로세서를 이용하여, 상기 비디오에 대해 상기 선택된 편집기를 디스플레이 하는 단계를 포함하는 방법을 프로세서를 이용하여 실행 가능한, 컴퓨터 프로그램 제품.
KR1020177009543A 2014-10-10 2015-10-08 문맥적 데이터를 이용한 비디오 편집 및 클러스터를 이용한 컨텐트 검색 KR102438200B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462062769P 2014-10-10 2014-10-10
US62/062,769 2014-10-10
US14/811,465 US10192583B2 (en) 2014-10-10 2015-07-28 Video editing using contextual data and content discovery using clusters
US14/811,465 2015-07-28
PCT/KR2015/010693 WO2016056871A1 (en) 2014-10-10 2015-10-08 Video editing using contextual data and content discovery using clusters

Publications (2)

Publication Number Publication Date
KR20170066415A true KR20170066415A (ko) 2017-06-14
KR102438200B1 KR102438200B1 (ko) 2022-08-31

Family

ID=55653407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177009543A KR102438200B1 (ko) 2014-10-10 2015-10-08 문맥적 데이터를 이용한 비디오 편집 및 클러스터를 이용한 컨텐트 검색

Country Status (5)

Country Link
US (1) US10192583B2 (ko)
EP (1) EP3205111A4 (ko)
KR (1) KR102438200B1 (ko)
CN (1) CN107111620A (ko)
WO (1) WO2016056871A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190101706A (ko) * 2018-02-23 2019-09-02 삼성전자주식회사 카메라를 이용하여 복수의 프레임 레이트에 따라 영상을 촬영하는 전자 장치 및 그 작동 방법
WO2020166883A1 (ko) * 2019-02-14 2020-08-20 네이버 주식회사 인공지능을 이용한 문맥 파악 기반의 동영상 편집 방법 및 시스템
KR20210057428A (ko) * 2019-11-12 2021-05-21 라인플러스 주식회사 영상 분석 방법, 사용자 디바이스 및 컴퓨터 프로그램
KR20210109244A (ko) * 2020-02-27 2021-09-06 에스케이텔레콤 주식회사 이미지 변환 장치 및 방법
WO2022245173A1 (ko) * 2021-05-20 2022-11-24 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 방법

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8520069B2 (en) 2005-09-16 2013-08-27 Digital Ally, Inc. Vehicle-mounted video system with distributed processing
US8503972B2 (en) 2008-10-30 2013-08-06 Digital Ally, Inc. Multi-functional remote monitoring system
US10272848B2 (en) 2012-09-28 2019-04-30 Digital Ally, Inc. Mobile video and imaging system
US9019431B2 (en) 2012-09-28 2015-04-28 Digital Ally, Inc. Portable video and imaging system
US10390732B2 (en) * 2013-08-14 2019-08-27 Digital Ally, Inc. Breath analyzer, system, and computer program for authenticating, preserving, and presenting breath analysis data
US9159371B2 (en) 2013-08-14 2015-10-13 Digital Ally, Inc. Forensic video recording with presence detection
US9253452B2 (en) 2013-08-14 2016-02-02 Digital Ally, Inc. Computer program, method, and system for managing multiple data recording devices
US9841259B2 (en) 2015-05-26 2017-12-12 Digital Ally, Inc. Wirelessly conducted electronic weapon
US10013883B2 (en) 2015-06-22 2018-07-03 Digital Ally, Inc. Tracking and analysis of drivers within a fleet of vehicles
US10904474B2 (en) 2016-02-05 2021-01-26 Digital Ally, Inc. Comprehensive video collection and storage
US10521675B2 (en) 2016-09-19 2019-12-31 Digital Ally, Inc. Systems and methods of legibly capturing vehicle markings
CN106855919A (zh) * 2016-12-22 2017-06-16 广东清立方科技有限公司 一种手术影像采集管理方法及一种手术影像采集装置
US10911725B2 (en) 2017-03-09 2021-02-02 Digital Ally, Inc. System for automatically triggering a recording
WO2018234622A1 (en) * 2017-06-21 2018-12-27 Nokia Technologies Oy METHOD OF DETECTING EVENTS OF INTEREST
WO2019140651A1 (zh) * 2018-01-19 2019-07-25 深圳市大疆创新科技有限公司 视频处理方法及设备
KR102512298B1 (ko) * 2018-02-23 2023-03-22 삼성전자주식회사 영상 데이터의 편집을 위한 인터페이스를 표시하는 전자 장치 및 그 동작 방법
CN108495155B (zh) * 2018-03-16 2021-07-13 中国传媒大学 收视习惯分析方法及系统
CN108600843B (zh) * 2018-03-19 2019-08-16 北京达佳互联信息技术有限公司 视频编辑方法和系统
US11024137B2 (en) 2018-08-08 2021-06-01 Digital Ally, Inc. Remote video triggering and tagging
CN109361956B (zh) * 2018-11-22 2021-04-30 广西巴多传媒科技有限公司 基于时间的视频剪切方法及相关产品
CN113811948B (zh) * 2019-04-01 2023-12-15 黑魔法设计私人有限公司 用于视频编辑系统的用户界面
US11594255B2 (en) 2019-04-18 2023-02-28 Kristin Fahy Systems and methods for automated generation of video
US11645344B2 (en) * 2019-08-26 2023-05-09 Experian Health, Inc. Entity mapping based on incongruent entity data
CN110719440B (zh) * 2019-09-26 2021-08-06 恒大智慧科技有限公司 一种视频回放方法、装置及存储介质
CN111787415B (zh) * 2020-07-23 2021-08-17 北京字节跳动网络技术有限公司 视频互动方法、装置、电子设备和存储介质
CN112261314B (zh) * 2020-09-24 2023-09-15 北京美摄网络科技有限公司 一种视频描述数据生成系统、方法、存储介质及设备
US20230011547A1 (en) * 2021-07-12 2023-01-12 Getac Technology Corporation Optimizing continuous media collection
US11741995B1 (en) * 2021-09-29 2023-08-29 Gopro, Inc. Systems and methods for switching between video views
US11950017B2 (en) 2022-05-17 2024-04-02 Digital Ally, Inc. Redundant mobile video recording
CN115460448A (zh) * 2022-08-19 2022-12-09 北京达佳互联信息技术有限公司 一种媒体资源编辑方法、装置、电子设备以及存储介质
CN115515008B (zh) * 2022-09-19 2024-02-27 深圳市天和荣科技有限公司 一种视频处理方法、终端和视频处理系统
CN117278802B (zh) * 2023-11-23 2024-02-13 湖南快乐阳光互动娱乐传媒有限公司 一种视频剪辑痕迹的比对方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130259446A1 (en) * 2012-03-28 2013-10-03 Nokia Corporation Method and apparatus for user directed video editing
US20130330054A1 (en) * 2012-06-11 2013-12-12 Alpinereplay, Inc. Automatic digital curation and tagging of action videos

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292516B2 (en) 2005-02-16 2016-03-22 Sonic Solutions Llc Generation, organization and/or playing back of content based on incorporated parameter identifiers
WO2004090900A1 (en) 2003-04-07 2004-10-21 Internet Pro Video Limited Method of enabling an application program running on an electronic device to provide media manipulation capabilities
US7500176B2 (en) * 2004-04-01 2009-03-03 Pinnacle Systems, Inc. Method and apparatus for automatically creating a movie
TWI384321B (zh) * 2005-01-31 2013-02-01 Hoya Corp 光學影像穩定器及控制該光學影像穩定器之方法
US7734569B2 (en) 2005-02-03 2010-06-08 Strands, Inc. Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics
KR100735556B1 (ko) 2005-10-17 2007-07-04 삼성전자주식회사 이벤트 인덱스를 이용한 멀티미디어 제공 방법 및 장치
WO2007082166A2 (en) 2006-01-05 2007-07-19 Eyespot Corporation System and methods for distributed edit processing in an online video editing system
JP2007242215A (ja) * 2006-02-13 2007-09-20 Sony Corp コンテンツ再生リスト生成装置、コンテンツ再生リスト生成方法およびプログラムが記録された記録媒体
KR100763236B1 (ko) 2006-05-09 2007-10-04 삼성전자주식회사 생체 신호를 이용하는 동영상 편집 장치 및 방법
US9477666B2 (en) 2007-01-29 2016-10-25 Home Box Office, Inc. Method and system for providing “what's next” data
WO2009026159A1 (en) * 2007-08-17 2009-02-26 Avi Oron A system and method for automatically creating a media compilation
US20090163183A1 (en) 2007-10-04 2009-06-25 O'donoghue Hugh Recommendation generation systems, apparatus and methods
US8161052B2 (en) 2008-01-30 2012-04-17 Hewlett-Packard Development Company, L.P. Information module recommendation
CA2722273A1 (en) * 2008-04-30 2009-11-05 Intertrust Technologies Corporation Data collection and targeted advertising systems and methods
WO2011014772A1 (en) 2009-07-31 2011-02-03 Citizenglobal Inc. Systems and methods for content aggregation, editing and delivery
EP2519920A4 (en) 2009-12-31 2013-08-21 Nokia Corp METHOD AND DEVICES FOR MODELING USER INTERESTS
US20110206351A1 (en) 2010-02-25 2011-08-25 Tal Givoli Video processing system and a method for editing a video asset
US8477425B2 (en) * 2010-02-28 2013-07-02 Osterhout Group, Inc. See-through near-eye display glasses including a partially reflective, partially transmitting optical element
US9554111B2 (en) 2010-03-08 2017-01-24 Magisto Ltd. System and method for semi-automatic video editing
US20120017153A1 (en) * 2010-07-15 2012-01-19 Ken Matsuda Dynamic video editing
US8751435B2 (en) 2010-12-23 2014-06-10 Intel Corporation System and method for determining client-based user behavioral analytics
US8639719B2 (en) 2011-02-02 2014-01-28 Paul Tepper Fisher System and method for metadata capture, extraction and analysis
JP2012165313A (ja) 2011-02-09 2012-08-30 Sony Corp 編集装置及び方法、並びにプログラム
US8694442B2 (en) 2011-03-29 2014-04-08 Manyworlds, Inc. Contextually integrated learning layer
US8635220B2 (en) 2011-04-22 2014-01-21 Iris.Tv, Inc. Digital content curation and distribution system and method
US8751472B2 (en) 2011-05-19 2014-06-10 Microsoft Corporation User behavior model for contextual personalized recommendation
US8341525B1 (en) 2011-06-03 2012-12-25 Starsvu Corporation System and methods for collaborative online multimedia production
US9117483B2 (en) 2011-06-03 2015-08-25 Michael Edward Zaletel Method and apparatus for dynamically recording, editing and combining multiple live video clips and still photographs into a finished composition
US8532469B2 (en) 2011-06-10 2013-09-10 Morgan Fiumi Distributed digital video processing system
US20120324491A1 (en) 2011-06-17 2012-12-20 Microsoft Corporation Video highlight identification based on environmental sensing
WO2012175783A1 (en) 2011-06-21 2012-12-27 Nokia Corporation Video remixing system
US20130110992A1 (en) * 2011-10-28 2013-05-02 Research In Motion Limited Electronic device management using interdomain profile-based inferences
US20130132843A1 (en) * 2011-11-23 2013-05-23 BenchFly Inc. Methods of editing personal videograpghic media
US9003289B2 (en) 2012-02-23 2015-04-07 Google Inc. Automatic detection of suggested video edits
US20130262210A1 (en) * 2012-03-27 2013-10-03 Brandon Savage Cloud service or storage use promotion via partnership driven automatic account upgrades
US20130259447A1 (en) 2012-03-28 2013-10-03 Nokia Corporation Method and apparatus for user directed video editing
US9081491B2 (en) 2012-03-30 2015-07-14 Corel Corporation Controlling and editing media files with touch gestures over a media viewing area using a touch sensitive device
US20140019443A1 (en) 2012-07-10 2014-01-16 Venor, Inc. Systems and methods for discovering content of predicted interest to a user
US20140031060A1 (en) 2012-07-25 2014-01-30 Aro, Inc. Creating Context Slices of a Storyline from Mobile Device Data
US20140074866A1 (en) 2012-09-10 2014-03-13 Cisco Technology, Inc. System and method for enhancing metadata in a video processing environment
US9113125B2 (en) 2012-09-12 2015-08-18 Intel Corporation Techniques for indexing video files
US20140078343A1 (en) * 2012-09-20 2014-03-20 Htc Corporation Methods for generating video and multiple still images simultaneously and apparatuses using the same
US8745500B1 (en) 2012-12-10 2014-06-03 VMIX Media, Inc. Video editing, enhancement and distribution platform for touch screen computing devices
US10546010B2 (en) * 2012-12-19 2020-01-28 Oath Inc. Method and system for storytelling on a computing device
US20150318020A1 (en) * 2014-05-02 2015-11-05 FreshTake Media, Inc. Interactive real-time video editor and recorder
US20150095882A1 (en) * 2013-09-06 2015-04-02 Blackspace Inc. Method for the utilization of environment media in a computing system
CN103686411A (zh) * 2013-12-11 2014-03-26 深圳Tcl新技术有限公司 视频的播放方法及多媒体设备
US9792026B2 (en) * 2014-04-10 2017-10-17 JBF Interlude 2009 LTD Dynamic timeline for branched video

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130259446A1 (en) * 2012-03-28 2013-10-03 Nokia Corporation Method and apparatus for user directed video editing
US20130330054A1 (en) * 2012-06-11 2013-12-12 Alpinereplay, Inc. Automatic digital curation and tagging of action videos

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190101706A (ko) * 2018-02-23 2019-09-02 삼성전자주식회사 카메라를 이용하여 복수의 프레임 레이트에 따라 영상을 촬영하는 전자 장치 및 그 작동 방법
WO2020166883A1 (ko) * 2019-02-14 2020-08-20 네이버 주식회사 인공지능을 이용한 문맥 파악 기반의 동영상 편집 방법 및 시스템
US11768597B2 (en) 2019-02-14 2023-09-26 Naver Corporation Method and system for editing video on basis of context obtained using artificial intelligence
KR20210057428A (ko) * 2019-11-12 2021-05-21 라인플러스 주식회사 영상 분석 방법, 사용자 디바이스 및 컴퓨터 프로그램
KR20220034754A (ko) * 2019-11-12 2022-03-18 라인플러스 주식회사 영상 출력 방법, 사용자 디바이스 및 컴퓨터 프로그램
KR20210109244A (ko) * 2020-02-27 2021-09-06 에스케이텔레콤 주식회사 이미지 변환 장치 및 방법
WO2022245173A1 (ko) * 2021-05-20 2022-11-24 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 방법

Also Published As

Publication number Publication date
US20160104508A1 (en) 2016-04-14
CN107111620A (zh) 2017-08-29
EP3205111A4 (en) 2018-02-21
WO2016056871A1 (en) 2016-04-14
US10192583B2 (en) 2019-01-29
KR102438200B1 (ko) 2022-08-31
EP3205111A1 (en) 2017-08-16

Similar Documents

Publication Publication Date Title
KR102438200B1 (ko) 문맥적 데이터를 이용한 비디오 편집 및 클러스터를 이용한 컨텐트 검색
US10846752B2 (en) Systems and methods for managing interactive features associated with multimedia
US10031649B2 (en) Automated content detection, analysis, visual synthesis and repurposing
US9332319B2 (en) Amalgamating multimedia transcripts for closed captioning from a plurality of text to speech conversions
US11082377B2 (en) Scripted digital media message generation
US11749241B2 (en) Systems and methods for transforming digitial audio content into visual topic-based segments
US10671245B2 (en) Collection and control of user activity set data and activity set user interface
US20120078899A1 (en) Systems and methods for defining objects of interest in multimedia content
US20120078712A1 (en) Systems and methods for processing and delivery of multimedia content
US20120075490A1 (en) Systems and methods for determining positioning of objects within a scene in video content
CN110914872A (zh) 用认知洞察力导航视频场景
US20150142800A1 (en) Generating electronic summaries of online meetings
US11343595B2 (en) User interface elements for content selection in media narrative presentation
US20120177345A1 (en) Automated Video Creation Techniques
US20150120816A1 (en) Tracking use of content of an online library
WO2017079241A1 (en) Improved highlight-based movie navigation, editing and sharing
US10430015B2 (en) Image analysis
CN110476162B (zh) 使用导航助记符控制显示的活动信息
CN114625699A (zh) 对先前呈现的材料的识别和重构
KR20090025929A (ko) 기행 정보 콘텐츠 제작 장치 및 방법과 콘텐츠 재생 장치
CA3208553A1 (en) Systems and methods for transforming digital audio content
CN117915157A (zh) 转录和基于文本的视频编辑的面部感知说话人日志化
Akiyama Supporting Novice Multimedia Authoring with An Interactive Task-Viewer

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)