KR102004637B1 - 비디오 프로그램의 세그먼트 검출 - Google Patents

비디오 프로그램의 세그먼트 검출 Download PDF

Info

Publication number
KR102004637B1
KR102004637B1 KR1020177029505A KR20177029505A KR102004637B1 KR 102004637 B1 KR102004637 B1 KR 102004637B1 KR 1020177029505 A KR1020177029505 A KR 1020177029505A KR 20177029505 A KR20177029505 A KR 20177029505A KR 102004637 B1 KR102004637 B1 KR 102004637B1
Authority
KR
South Korea
Prior art keywords
video
model
frame
segment
test
Prior art date
Application number
KR1020177029505A
Other languages
English (en)
Other versions
KR20170128501A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=55629094&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR102004637(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 넷플릭스, 인크. filed Critical 넷플릭스, 인크.
Publication of KR20170128501A publication Critical patent/KR20170128501A/ko
Application granted granted Critical
Publication of KR102004637B1 publication Critical patent/KR102004637B1/ko

Links

Images

Classifications

    • G06K9/00744
    • 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/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • G06K9/00758
    • G06K9/4652
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/48Matching video sequences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • 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/005Reproducing at a different information rate from the information rate of recording
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6547Transmission by server directed to the client comprising parameters, e.g. for client setup

Abstract

한 실시예에서, 데이터 스토어는 제1 비디오 및 제1 비디오와 연관된 제2 비디오를 저장하고; 데이터 스토어에 결합된 컴퓨터 프로세서는, 데이터 스토어에 저장된 제1 비디오의 제1 모델 세그먼트 내의 제1 모델 프레임의 픽셀들에 기초하여 제1 비디오의 제1 모델 지문을 생성하고; 데이터 스토어에 저장된 제2 비디오 내의 제1 테스트 프레임의 픽셀들에 기초하여 제2 비디오의 제1 테스트 지문을 생성하며; 제1 모델 지문과 제1 테스트 지문 사이의 제1 근접성 값을 결정하고; 제1 근접성 값에 기초하여, 제1 테스트 프레임이 제2 비디오 내의 제1 세그먼트 ―이 제2 비디오 내의 제1 세그먼트는 제1 비디오 내의 제1 모델 세그먼트와 유사함― 의 제1 경계인지를 결정하도록 프로그램된다.

Description

비디오 프로그램의 세그먼트 검출
본 개시내용은 대체로 컴퓨터-구현된 디지털 이미지 및 비디오 처리 기술에 관한 것으로서, 더 구체적으로는, 제2 관련된 디지털 비디오 내의 하나 이상의 세그먼트와 유사하지만 동일하지는 않은 제1 디지털 비디오 내의 하나 이상의 세그먼트를 검출하는 정확도를 향상시키기 위한 컴퓨터-구현된 기술에 관한 것이다.
본 절에서 설명된 접근법은 추구될 수 있는 접근법이지만, 반드시 이전에 생각되거나 추구된 접근법은 아니다.
따라서 달리 나타내지 않는 한, 본 절에서 설명된 접근법들 중 어느 것도 단순히 본 절에 포함되어 있다는 이유로 선행 기술로서 여겨져서는 안 된다.
콘텐츠 제공자는 다운로드할 텔레비전 또는 영화 시리즈의 에피소드들을 저장할 수 있다. 사용자는, 클라이언트 컴퓨터를 통해, 콘텐츠 제공자로부터 다운로드하고 시청할 시리즈의 에피소드를 선택할 수 있다. 사용자가 클라이언트 컴퓨터에서 제1 에피소드를 다운로드하여 시청하고 나면, 사용자는, 클라이언트 컴퓨터를 통해, 시청할 시리즈의 제2 에피소드를 선택할 수 있다. 시리즈의 수 개의 에피소드를 연속적으로 시청하는 것을 흔히 "몰아보기(binge watching)"라고 한다.
몰아보기를 장려하기 위해, 클라이언트 컴퓨터가 시리즈의 선택된 에피소드를 재생하는 것을 끝낸 후에, 클라이언트 컴퓨터는 콘텐츠 제공자로부터 시리즈의 다음 에피소드를 자동으로 요청하여 재생할 수 있다. 그러나, 시리즈의 각각의 에피소드는, 에피소드 제작에 참여한 사람들을 나타내는 크레딧 이미지(크레딧)를 표시하기 위한 비디오 세그먼트를 포함할 수 있고, 크레딧은 완전히 재생하는데 수 분이 걸릴 수 있다; 이 비디오 세그먼트는 여기서는 클로징 크레딧 세그먼트(closing credits segment)라고 지칭된다. 시리즈를 몰아보는 사용자는 시리즈의 각각의 에피소드의 클로징 크레딧 세그먼트를 보지 않고 다음 에피소드로 스킵하는 것을 원할 수 있다.
사용자는 에피소드 내의 다른 세그먼트를 자동으로 스킵하는 것을 원할 수도 있다. 예를 들어, 시리즈의 각각의 에피소드는, 종종 주연 배역(featured cast) 및 제작 멤버(crew member)의 이름을 열거하는, 에피소드를 소개하기 위한 비디오 세그먼트를 포함할 수 있다; 이 비디오 세그먼트는 여기서는 오프닝 크레딧 세그먼트(opening credits segment) 또는 타이틀 세그먼트(title segment)라고 지칭된다. 시리즈를 몰아보는 사용자는 시리즈 내의 각각의 에피소드의 오프닝 크레딧 세그먼트를 스킵하는 것을 원할 수도 있다.
오프닝 크레딧 세그먼트 또는 클로징 크레딧 세그먼트 등의 비디오 세그먼트가 에피소드에서 시작하고 끝나는 때를 검출하도록 컴퓨터를 구성하는 것은 어려울 수 있다. 예를 들어, 동일한 비디오 세그먼트들이 에피소드들간에 상이할 수 있으므로, 에피소드들간에 동일한 프레임을 체크하는 것은 효과적이지 않을 수 있다.
비디오 세그먼트가 시작하고 끝나는 때를 검출하도록 컴퓨터를 구성하는 것은 다른 이유로 어려울 수 있다. 예를 들어, 오프닝 크레딧 세그먼트 또는 클로징 크레딧 세그먼트는 시리즈의 각각의 에피소드마다 상이할 수 있다. 시리즈 내의 하나 이상의 에피소드는, 오프닝 크레딧 세그먼트 전에, 길이가 다른 후크 세그먼트(hook segment)의 재생을 시작할 수 있다. 시리즈 내의 하나 이상의 에피소드는 최종 개그(final gag)가 있는 클로징 크레딧 세그먼트 이후에 세그먼트를 포함할 수 있다. 하나 이상의 에피소드는 클로징 크레딧 세그먼트 동안 재생되는 아웃테이크(outtake)를 포함할 수 있고, 이 경우, 사용자는 클라이언트 컴퓨터가 클로징 크레딧 세그먼트를 재생하기를 원할 수 있다.
비디오 세그먼트의 시작과 끝을 정확히 결정하는 것은 사용자의 경험을 향상시키고 멀티미디어 콘텐츠를 하나 이상의 클라이언트 컴퓨터에 스트리밍하기 위해 요구되는 전체 대역폭을 감소시킬 수 있다. 예를 들어, 에피소드 내의 오프닝 및 클로징 크레딧 세그먼트가 정확하게 결정된다면, 클라이언트 컴퓨터는, 비디오에서 전방으로 또는 후방으로 스킵하라는 사용자 입력을 요구하지 않고 이들 세그먼트들을 스킵하여 에피소드에서 고유한 콘텐츠를 찾을 수 있다. 또한 예를 들어, 클라이언트 컴퓨터가, 오프닝 또는 클로징 크레딧 세그먼트 등의, 시리즈 내의 하나 이상의 공통 세그먼트의 일부인 오디오 또는 비주얼 세그먼트를 다운로드할 필요가 없다.
첨부된 청구항들은 본 발명의 요약으로서 역할할 수 있다.
도면들에서:
도 1a는 예시적인 실시예에서 시리즈 내의 에피소드의 제1 프레임이다.
도 1b는 예시적인 실시예에서 시리즈 내의 에피소드의 한 프레임이다.
도 1c는 예시적인 실시예에서 시리즈 내의 에피소드의 한 프레임이다.
도 1d는 예시적인 실시예에서 도 1a의 프레임의 색상 분포를 나타내는 히스토그램이다.
도 1e는 예시적인 실시예에서 도 1b의 프레임의 색상 분포를 나타내는 히스토그램이다.
도 1f는 예시적인 실시예에서 도 1c의 프레임의 색상 분포를 나타내는 히스토그램이다.
도 2는, 예시적인 실시예에서, 비디오 처리 컴퓨터, 비디오 데이터 스토어, 비디오 서버 컴퓨터, 비디오 카탈로그 서버 컴퓨터, 및 복수의 상호접속된 네트워크에 걸친 분산된 클라이언트 컴퓨터들을 포함하는 시스템을 나타낸다.
도 3은, 예시적인 실시예에서, 제1 모델 에피소드의 일련의 비디오 청크들 내의 일련의 프레임들 및 동일한 텔레비전 또는 영화 시리즈의 상이한 에피소드 내의 시리즈 내의 일련의 비디오 청크들 내의 일련의 프레임들을 나타낸다.
도 4는, 예시적인 실시예에서, 제1 비디오 내의 한 세그먼트에 대응하는 제2 비디오 내의 세그먼트를 검출하는 프로세스를 나타낸다.
도 5는, 예시적인 실시예에서, 하나 이상의 공통 비디오 또는 오디오 세그먼트를 요청 및/또는 재생하지 않고 클라이언트 컴퓨터에서 비디오를 재생하기 위한 프로세스를 나타낸다.
도 6은 실시예가 구현될 수 있는 컴퓨터 시스템을 나타낸다.
도면들 각각은 명확한 예를 설명하기 목적으로 특정한 실시예를 나타내고 있지만, 다른 실시예들은 도면에 도시된 요소들 중 임의의 요소를 생략, 추가, 재정렬 및/또는 수정할 수 있다. 명확한 예를 설명하기 위해, 하나 이상의 도면은 하나 이상의 다른 도면을 참조하여 설명될 수 있지만, 하나 이상의 다른 도면에 도시된 특정한 배열을 이용하는 것은 다른 실시예에서는 요구되지 않는다.
이하의 설명에서, 설명의 목적을 위해, 많은 구체적인 상세사항이 본 발명의 철저한 이해를 제공하기 위하여 개시된다. 그러나, 본 발명은 이와 같은 구체적인 상세사항 없이도 실시될 수 있다는 것이 명백할 것이다. 다른 사례들에서, 공지된 구조 및 디바이스들은 본 발명을 불필요하게 흐리게 하지 않기 위하여 블록도 형태로 도시된다.
실시예들이 이하의 개요에 따라 여기서 설명된다.
1.0 전반적 개요
2.0 프로세스 개요
3.0 시리즈의 에피소드 내의 세그먼트를 검출하고 에피소드를 하나 이상의 클라이언트 장치에 배포하기 위한 예시적인 네트워크 토폴로지
3.1 비디오 전달 네트워크
3.1.1 비디오 데이터 스토어
3.1.1.1 에피소드의 해부
3.1.2 비디오 서버 컴퓨터
3.2 메타데이터 스토어
3.3 비디오 처리 로직
3.4 비디오 카탈로그 서버 컴퓨터
3.5 클라이언트 비디오 재생기 컴퓨터
4.0 에피소드들간의 공통 비디오 세그먼트를 식별하기 위한 예시적인 프로세스
4.1 모델 지문 생성
4.1.1 색상 분포 생성
4.1.2 수퍼 색상 분포 생성
4.1.3 색상 및 색상 분포의 표현
4.2 테스트 지문 생성
4.3 테스트 지문과 모델 지문이 일치하는지를 결정
4.3.1 색상 분포에 기초한 근접성 값의 결정
4.3.2 얼굴 검출에 기초한 근접성 값의 결정
4.3.3 피쳐 인식에 기초한 근접성 값의 결정
4.3.4 복수의 근접성 값에 기초한 근접성 벡터 또는 총 근접성 값의 결정
4.4 모델 프레임과 테스트 프레임이 일치하는지를 결정
4.5 세그먼트 경계 결정
4.5.1 순방향 또는 역방향 검색에 의한 세그먼트 경계 찾기
4.5.2 시간에 기초하여 세그먼트 경계 찾기
4.5.3 에피소드 내의 하나보다 많은 프레임에 기초한 시작 경계 결정
4.5.4 에피소드 내의 하나보다 많은 프레임에 기초한 종료 경계 결정
4.5.5 묵시적 경계 결정
4.6 에피소드에서 복수의 세그먼트 찾기
4.7 선택사항적인 세그먼트 결정 및 그에 대한 응답
4.8 메타데이터 저장
4.8.1 동일한 에피소드의 상이한 버전들에 대한 메타데이터
5.0 하나 이상의 검출된 세그먼트를 가진 비디오를 클라이언트 컴퓨터에 배포하기 위한 예시적인 프로세스
5.1 사용자 입력에 기초한 세그먼트 스킵 및/또는 다운로드 안하기
5.2 하나 이상의 효과 적용
6.0 구현 메커니즘-하드웨어 개요
7.0 개시내용의 다른 양태들
* * *
1.0 전반적 개요
한 실시예에서, 비디오 처리 시스템은 : 제1 비디오 및 제1 비디오와 연관된 제2 비디오를 저장하는 데이터 스토어; 데이터 스토어에 결합된 컴퓨터 프로세서로서, 데이터 스토어에 저장된 제1 비디오의 제1 모델 세그먼트 내의 제1 모델 프레임의 픽셀들에 기초하여 제1 비디오의 제1 모델 지문을 생성하고; 데이터 스토어에 저장된 제2 비디오 내의 제1 테스트 프레임의 픽셀들에 기초하여 제2 비디오의 제1 테스트 지문을 생성하며; 제1 모델 지문과 제1 테스트 지문 사이의 제1 근접성 값을 결정하고; 제1 근접성 값에 기초하여, 제1 테스트 프레임이 제2 비디오 내의 제1 세그먼트 ―이 제2 비디오 내의 제1 세그먼트는 제1 비디오 내의 제1 모델 세그먼트와 유사함― 의 제1 경계인지를 결정하도록 구성된 상기 컴퓨터 프로세서를 포함한다.
한 실시예에서, 컴퓨터 프로세서는 : 데이터 스토어에 저장된 제1 비디오의 제1 모델 세그먼트 내의 제2 모델 프레임의 픽셀들에 기초하여 제2 모델 지문을 생성하고; 데이터 스토어에 저장된 제2 비디오 내의 제2 테스트 프레임의 픽셀들에 기초하여 제2 테스트 지문을 생성하며; 제2 모델 지문과 제2 테스트 지문 사이의 제2 근접성 값을 결정하고; 제2 근접성 값에 기초하여, 제2 테스트 프레임이 제2 비디오 내의 제1 세그먼트의 제2 경계 ―제1 경계는 제2 비디오 내의 제1 세그먼트의 시작 경계이고 제2 경계는 제2 비디오 내의 제1 세그먼트의 종료 경계임― 인지를 결정하며; 제1 테스트 프레임이 제1 경계이고 제2 테스트 프레임이 제2 경계라는 결정에 응답하여, 시작 경계를 나타내는 제1 값과 종료 경계를 나타내는 제2 값을 클라이언트 컴퓨터 상의 비디오 재생기에 전송하여, 비디오 재생기가 시작 경계에 도달할 때 비디오 재생기가 제2 비디오 내의 종료 경계로 스킵하도록 프로그램된다.
한 실시예에서, 컴퓨터 프로세서는 : 제1 모델 프레임의 제1 세트의 모델 픽셀들에 기초하여 제1 모델 색상 분포를 결정함으로써 제1 모델 지문 ―제1 모델 색상 분포 내의 각각의 특정한 색상은 제1 세트의 모델 픽셀들 내의 얼마나 많은 픽셀들이 그 특정한 색상을 할당받아 있는지를 나타내는 값과 연관됨― 을 생성하고; 제1 테스트 프레임 내의 제1 세트의 테스트 픽셀들에 기초하여 제1 테스트 색상 분포를 결정함으로써 제1 테스트 지문 ―제1 테스트 색상 분포 내의 각각의 특정한 색상은 제1 세트의 테스트 픽셀들 내의 얼마나 많은 픽셀들이 그 특정한 색상을 할당받아 있는지를 나타내는 값과 연관됨― 을 생성하도록 프로그램된다.
한 실시예에서, 컴퓨터 프로세서는 : 차이 값 세트 ―차이 값 세트 내의 각각의 차이 값은 색상에 대응하고, 얼마나 많은 픽셀들이 제1 테스트 색상 분포 내의 그 색상을 할당받아 있는지와 비교하여 얼마나 많은 픽셀들이 제1 모델 색상 분포 내의 그 색상을 할당받아 있는지를 나타냄― 를 결정하고; 차이 값 세트 내의 각각의 차이 값을 가산함으로써 합을 결정하고; 그 합을 제1 세트의 모델 픽셀들에 있는 픽셀 수로 나누어 제1 근접성 값을 결정하도록 프로그램된다.
한 실시예에서, 클라이언트 컴퓨터에서 재생할 비디오를 서버 컴퓨터에게 요청하기 위한 방법으로서 : 사용자로부터 제1 비디오 타이틀을 선택하는 입력 ―제1 비디오 타이틀은 제2 비디오 타이틀과 연관되고, 제1 비디오 타이틀은 제2 비디오 타이틀을 갖는 하나 이상의 공통 비디오 세그먼트를 포함함― 을 수신하는 단계; 스킵될 수 있는 하나 이상의 공통 세그먼트를 나타내는 제1 비디오 타이틀과 연관된 메타데이터 세트를 서버 컴퓨터에게 요청하는 단계; 및 메타데이터를 수신하고, 이에 응답하여, 하나 이상의 공통 비디오 세그먼트를 요청하지 않고 제1 비디오 타이틀 내의 하나 이상의 비디오 세그먼트를 요청하는 단계를 포함한다.
한 실시예에서, 디지털 비디오 배포 시스템은 : 메모리; 메모리에 결합된 하나 이상의 프로세서; 하나 이상의 프로세서와 메모리에 결합되고, 제1 비디오의 모델 세그먼트 내의 제1 모델 프레임의 픽셀들에 기초하여 제1 비디오의 제1 모델 지문을 생성하고; 제1 테스트 프레임의 픽셀들에 기초하여 제2 비디오의 제1 테스트 지문을 생성하도록 구성된 지문 생성 로직; 메모리 및 하나 이상의 프로세서에 결합되고, 제1 모델 지문과 제1 테스트 지문 사이의 제1 근접성 값을 결정하도록 구성된 지문 비교 로직; 메모리 및 하나 이상의 프로세서에 결합되고, 제1 근접성 값에 기초하여, 제1 테스트 프레임이 제2 비디오 내의 한 세그먼트의 제1 경계라고 결정하도록 구성된 세그먼트 검출 로직을 포함한다.
여기서 논의된 실시예들은 비디오의 일부분을 스킵하는 일반적인 사상보다 많은 이점 및 개선점을 제공한다. 예를 들어, 여기서 논의된 실시예들 중 하나 이상은, 다양한 디지털 이미지 및 비디오 처리 기술을 이용하여 텔레비전 또는 영화 시리즈 내의 복수의 에피소드들 사이의 유사하거나 및/또는 공통되지만 동일하지는 않은 세그먼트들의 시작 및 종료 경계를 자동으로 검출하는 컴퓨터-기반의 이미지 분석 기술을 이용할 수 있다. 또한, 여기서 논의된 방법을 이용하는 것은 디스플레이할 필요가 없는 시리즈의 비디오의 공통 부분을 스킵하거나 및/또는 다운로드하지 않음으로써 클라이언트 비디오 재생기 컴퓨터에서 디지털 비디오를 재생하는 머신 효율을 향상시킴으로써, 전송 시간을 감소시키고 스트리밍 비디오 전송의 경우 대역폭 소비를 감소시킬 수 있다.
2.0 프로세스 개요
여기서 논의되는 바와 같이, 오프닝 크레딧 세그먼트 또는 클로징 크레딧 세그먼트 등의 비디오 세그먼트가 에피소드에서 시작하고 끝나는 때를 검출하도록 컴퓨터를 구성하는 것은 어려울 수 있다. 예를 들어, 도 1a는 특정한 시리즈의 제1 에피소드의 오프닝 크레딧 세그먼트로부터의 제1 프레임이고, 도 1b는 동일한 특정한 시리즈의 제2 에피소드의 오프닝 크레딧 세그먼트로부터의 제1 프레임이라고 가정한다. 도 1a 및 도 1b에 나타낸 바와 같이, 제1 에피소드는 제2 에피소드와는 상이한 사람에 의해 관한 것이다. 따라서, 도 1a에 대응하는 프레임이 오프닝 크레딧 세그먼트의 제1 프레임으로서 지정되면, 컴퓨터는, 도 1a의 프레임과 도 1b의 프레임을 비교함으로써, 도 1b에 대응하는 프레임이 제2 에피소드의 오프닝 크레딧 세그먼트의 시작이 아니라고 잘못 결정할 수 있다.
비디오 처리 컴퓨터는, 특정한 시리즈의 복수의 에피소드에서 공통 세그먼트를, 각각의 에피소드 내의 공통 세그먼트들 내의 프레임들이 동일하지 않더라도 검출할 수 있다. 예를 들어, 비디오 처리 컴퓨터는 시리즈 내의 제1 에피소드의 특정한 세그먼트가 오프닝 크레딧 세그먼트임을 나타내는 입력을 수신할 수 있다. 제1 에피소드 내의 특정한 세그먼트는 모델 세그먼트(model segment)라 부를 수 있다. 비디오 처리 컴퓨터는 모델 세그먼트 내의 하나 이상의 프레임에 각각 대응하는 하나 이상의 프레임 지문(frame fingerprint)을 생성하고 저장할 수 있다. 지문 또는 프레임 지문은 대응하는 프레임의 하나 이상의 피쳐(feature)를 나타내는 데이터일 수 있다. 모델 세그먼트 내의 프레임에 대응하는 프레임 지문은 모델 지문 또는 모델 프레임 지문이라고 부를 수 있다. 따라서, 모델 세그먼트의 하나 이상의 프레임 지문은 하나 이상의 모델 프레임 지문 또는 하나 이상의 모델 프레임 지문이라고 부를 수 있다. 명확한 예를 설명하기 위한 목적으로, 도 1d는 시리즈의 모델 에피소드의 모델 오프닝 크레딧 세그먼트 내의 프레임일 수 있는 도 1a에 나타낸 이미지에 기초하여 생성된 프레임 지문의 시각화이다. 도 1d는 예시적인 실시예에서 도 1a의 프레임의 색상 분포를 나타내는 히스토그램이다.
비디오 처리 컴퓨터는 시리즈 내의 제2 에피소드 또는 테스트 에피소드의 하나 이상의 프레임에 대응하는 하나 이상의 테스트 프레임 지문을 생성할 수 있다. 테스트 에피소드는 시리즈의 모델 에피소드가 아닌 시리즈의 에피소드일 수 있다. 테스트 프레임은 테스트 에피소드 내의 프레임일 수 있다. 명확한 예를 설명하기 위한 목적으로, 도 1e 및 도 1f는, 시리즈의 테스트 에피소드로부터의 테스트 프레임일 수 있는, 도 1b 및 도 1c에 나타낸 이미지에 기초하여 생성된 프레임 지문의 시각화이다. 도 1e 및 도 1f는 예시적인 실시예에서 각각 도 1b 및 도 1c의 프레임의 색상 분포를 나타내는 히스토그램이다.
비디오 처리 컴퓨터는 하나 이상의 모델 프레임 지문을 하나 이상의 테스트 프레임 지문과 비교할 수 있다. 하나 이상의 모델 프레임 지문이 하나 이상의 테스트 프레임 지문에 근접하거나 및/또는 "일치"한다고 결정한 것에 응답하여, 비디오 처리 컴퓨터는, 하나 이상의 테스트 프레임 지문에 대응하는 제2 에피소드 내의 하나 이상의 프레임이, 이 예에서는 오프닝 크레딧 세그먼트인, 제1 에피소드의 세그먼트 내의 세그먼트와 공통인 제2 에피소드 내의 세그먼트의 적어도 일부라고 결정할 수 있다.
클라이언트 컴퓨터로부터 제2 에피소드에 대한 요청을 수신한 것에 응답하여, 서버 컴퓨터는, 클라이언트 컴퓨터가, 이 예에서는 제2 에피소드의 오프닝 크레딧 세그먼트인 공통 세그먼트 내의 하나 이상의 프레임을 스킵하거나 및/또는 다운로드할 필요가 없음을 나타내는 데이터를 클라이언트 컴퓨터에 전송할 수 있다.
3.0 시리즈의 에피소드 내의 세그먼트를 검출하고 에피소드를 하나 이상의 클라이언트 장치에 배포하기 위한 예시적인 네트워크 토폴로지
도 2는, 예시적인 실시예에서, 비디오 처리 컴퓨터, 비디오 데이터 스토어, 비디오 서버 컴퓨터, 비디오 카탈로그 서버 컴퓨터, 및 복수의 상호접속된 네트워크에 걸친 분산된 클라이언트 컴퓨터들을 포함하는 시스템을 나타낸다. 도 2에서, 디지털 비디오 배포 시스템(200)은, 비디오 처리 컴퓨터(210), 비디오 데이터 스토어(230) 및 비디오 서버 컴퓨터(240)를 포함하는 콘텐츠 전달 네트워크(220), 메타데이터 스토어(255), 비디오 카탈로그 서버 컴퓨터(250), 및 복수의 상호접속된 네트워크들에 걸쳐 분산 클라이언트 비디오 재생기 컴퓨터(260)를 포함한다.
"컴퓨터"는, 하나 이상의 물리적 컴퓨터, 가상 컴퓨터, 및/또는 컴퓨팅 디바이스일 수 있다. 예로서, 컴퓨터는, 하나 이상의 서버 컴퓨터, 클라우드-기반의 컴퓨터, 클라우드-기반의 컴퓨터 클러스터, 가상 프로세서, 스토어 및 메모리, 데이터 센터, 저장 디바이스 등의 가상 머신 인스턴스 또는 가상 머신 컴퓨팅 요소, 데스크탑 컴퓨터, 랩탑 컴퓨터, 모바일 디바이스, 및/또는 기타 임의의 특별 목적 컴퓨팅 디바이스일 수 있다. 여기서 "컴퓨터"에 대한 임의의 언급은, 명시적으로 달리 언급되지 않는 한, 하나 이상의 컴퓨터를 의미할 수 있다.
서버 컴퓨터는 데이터 요청을 수신하고 데이터로 응답하는 컴퓨터일 수 있다. 예를 들어, 웹 서버 컴퓨터는, HTTP 요청을 수신하고 HTML, CSS, JavaScript, 비디오 및/또는 오디오 데이터를 포함하는 데이터로 응답하는 HTTP-기반의 컴퓨터일 수 있다. 추가적으로 또는 대안으로서, 서버 컴퓨터는, 콘텐츠 전달 네트워크(220) 내부 및/또는 외부의 다른 서버 컴퓨터 상의 비디오 또는 오디오 데이터 등의 데이터를 참조하는 데이터로 응답할 수 있다.
컴포넌트들은 서로로부터 원격지의 컴퓨터 상에서 실행되는 것처럼 도시될 수 있지만, 상기 열거된 컴포넌트들 중 하나 이상은 동일한 컴퓨터의 일부이거나 및/또는 그 상에서 실행될 수 있다. 예를 들어, 비디오 처리 컴퓨터(210), 메타데이터 스토어(355), 및 비디오 카탈로그 서버 컴퓨터(250)는 동일한 컴퓨터, 근거리 통신망, 및/또는 광역 네트워크 상에서 실행될 수 있다.
3.1 비디오 전달 네트워크("CDN")
CDN(220)은, 클라이언트 비디오 재생기 컴퓨터(260) 비디오 처리 컴퓨터(410) 등의 하나 이상의 컴퓨터를 통해 사용자로부터 비디오 및/또는 오디오 데이터에 대한 요청을 수신하는 비디오 데이터 스토어(230) 및 비디오 서버 컴퓨터(240) 등의 하나 이상의 서버 컴퓨터를 포함할 수 있다. CDN(220)은 요청을 보낸 클라이언트 컴퓨터에 비디오 및/또는 오디오 데이터를 전송함으로써 응답할 수 있다. CDN(220) 내의 하나 이상의 컴퓨터는 하나 이상의 독립적인 엔티티에 의해 소유 및/또는 관리될 수도 있지만, 요구되는 것은 아니며, 하나 이상의 컴퓨터 네트워크 및/또는 지리적 영역에 걸쳐 있을 수 있다.
3.1.1 비디오 데이터 스토어
비디오 데이터 스토어(230)는 하나 이상의 시리즈의 복수의 에피소드를 저장할 수 있다.
예를 들어, 비디오 데이터 스토어(230)는 비디오 및 오디오 데이터를 포함할 수 있는 모델 에피소드(301) 및 에피소드(302)의 사본을 포함할 수 있으며, 여기서 더 상세히 논의된다. 비디오 데이터 스토어(230)는 하나 이상의 에피소드의 하나 이상의 버전을 포함할 수 있다. 하나의 버전은 다양한 클라이언트 컴퓨터 및 처리량을 지원하기 위해 더 낮은 해상도 및/또는 상이한 포멧일 수 있다. 비디오 데이터 스토어(230)는 비디오 데이터 스토어(230)에 저장된 각각의 비디오 청크에 대응하는 오디오 청크를 저장할 수 있다. 추가적으로 또는 대안으로서, 비디오 청크는 오디오 데이터를 포함할 수 있다. 비디오 데이터 스토어(230)가 도 2에서는 단일 데이터 저장 시스템으로 도시되어 있지만, 비디오 데이터 스토어(230)는 복수의 컴퓨터 네트워크 및/또는 지리적 영역에 걸쳐 분산된 하나 이상의 저장 디바이스를 포함할 수 있다.
3.1.1.1 에피소드의 해부
도 3은, 예시적인 실시예에서, 제1 모델 에피소드의 일련의 비디오 청크들 내의 일련의 프레임들 및 동일한 텔레비전 또는 영화 시리즈의 상이한 에피소드 내의 시리즈 내의 일련의 비디오 청크들 내의 일련의 프레임들을 나타낸다. 도 3에서, 모델 에피소드(301)는 일련의 프레임들: 모델 프레임(312) 내지 모델 프레임(336)을 포함한다. 에피소드(302)는 일련의 프레임들: 프레임(352) 내지 프레임(376)을 포함한다. 모델 에피소드(301) 및 에피소드(302)는 오디오 데이터를 포함하거나 및/또는 참조할 수 있다. 프레임은, 프레임 내의 각각의 픽셀에 대한 색상을 나타내는, 이미지 등의 픽셀 데이터의 집합을 포함할 수 있다.
에피소드는 하나 이상의 비디오 청크를 포함할 수 있다. 하나 이상의 프레임은 비디오 청크에 의해 참조되거나, 이와 연관되거나, 및/또는 이에 포함될 수 있다. 예를 들어, 모델 에피소드(301)는, 비디오 청크(310), 비디오 청크(320) 및 비디오 청크(330)를 포함한다. 에피소드(302)는, 비디오 청크(340), 비디오 청크(350) 및 비디오 청크(360)를 포함한다. 비디오 청크(310)는 모델 프레임(312-316)을 포함하고; 비디오 청크(320)는 모델 프레임(322-326)을 포함하며; 비디오 청크(330)는 모델 프레임(332-336)을 포함하고; 비디오 청크(350)는 모델 프레임(352-356)을 포함하며; 비디오 청크(360)는 모델 프레임(362-366)을 포함하고; 비디오 청크(370)는 모델 프레임(372-376)을 포함한다.
명백한 예를 설명하기 위해, 도 3의 각각의 에피소드는 3개의 비디오 청크를 갖는 것으로 도시되어 있고, 각각의 비디오 청크는 3 개의 프레임을 갖는 것으로 도시된다; 그러나, 에피소드는 임의의 수의 비디오 청크를 포함할 수 있고, 비디오 청크는 임의의 수의 프레임을 포함할 수 있다. 또한, 각각의 에피소드는 동일한 수의 비디오 청크와 함께 도시되어 있다; 그러나, 시리즈의 각각의 에피소드는 동일한 수의 비디오 청크를 포함될 필요는 없다. 각각의 비디오 청크는 비디오 청크당 동일한 수의 프레임과 함께 도시되어 있다; 그러나, 각각의 비디오 청크는 동일한 수의 프레임을 포함할 필요는 없다. 각각의 비디오 청크는 비디오 청크 내의 프레임들에 대응하는 오디오 데이터를 포함하거나 및/또는 참조할 수 있다.
클라이언트 비디오 컴퓨터는 별도로 및/또는 비동기적으로 에피소드 내의 비디오 청크들을 다운로드할 수 있다. 명확한 예를 설명하기 위해, 에피소드 내의 각각의 비디오 청크는 에피소드의 2초의 프레임을 포함하고, 특정한 타임스탬프 또는 고유 인덱스 값과 연관되어 있다고 가정한다. 에피소드를 재생하기 위한 사전-프로세스로서, 비디오 재생기 컴퓨터는, 각각 3개의 타임스탬프들 : 00 : 00 : 00.00, 00 : 00 : 02.00 및 00 : 00 : 04.00와 연관된 처음 3개의 2초 비디오 청크를 비디오 서버 컴퓨터에게 비동기적으로 요청하여 다운로드할 수 있다. 클라이언트 비디오 재생기 컴퓨터는 각각의 비디오 청크가 얼마나 일찍 디스플레이되어야 하는지에 기초하는 순서로 에피소드의 각각의 비디오 청크를 요청 및/또는 다운로드할 수 있다. 예를 들어, 비디오 재생기는 비디오 청크(330)를 요청하기 전에 비디오 청크(310)를 요청할 수 있다; 그러나, 비디오 재생기는, 비디오 청크(310) 이전에, 및/또는 비디오 청크(310)와는 비동기적으로, 비디오 청크(330)를 수신할 수 있다.
클라이언트 비디오 컴퓨터는, 에피소드가 단일 파일에 저장되어 있는 것처럼 그들의 연관된 타임스탬프 또는 인덱스 값에 기초하여 다운로드된 비디오 청크를 직렬로 재생할 수 있다. 앞의 예제를 계속 진행하면, 클라이언트 비디오 재생기가 00 : 00 : 00.00 타임스탬프와 연관된 제1 비디오 청크를 다운로드한 후, 클라이언트 비디오 재생기는 제1 비디오 청크를 재생할 수 있다. 비디오 청크 또는 세그먼트를 재생하는 것은, 제1 비디오 청크 또는 세그먼트 내의 프레임들이 특정한 기간 동안, 현 재의 예에서는 2초 동안, 신속하게 연속적으로 디스플레이되게 하는 것을 의미할 수 있다. 클라이언트 비디오 재생기가 00 : 00 : 02.00 타임스탬프와 연관된 제2 비디오 청크를 다운로드한 후, 및 제1 비디오 청크가 재생된 후, 클라이언트 비디오 재생기는 제2 비디오 청크를 재생할 수 있다. 클라이언트 비디오 재생기가 00 : 00 : 04.00 타임스탬프와 연관된 제3 비디오 청크를 다운로드한 후, 및 제2 비디오 청크가 재생된 후, 클라이언트 비디오 재생기는 제3 비디오 청크를 재생할 수 있다.
3.1.2 비디오 서버 컴퓨터
도 2로 돌아가서, 비디오 서버 컴퓨터(240)는, 클라이언트 비디오 재생기 컴퓨터(260) 등의 하나 이상의 클라이언트 컴퓨터로부터, 하나 이상의 비디오, 오디오, 비디오 청크, 및/또는 오디오 청크에 대한 요청을 수신할 수 있다. 비디오 서버 컴퓨터(240)는 요청된 비디오 및/또는 비디오 청크를 비디오 데이터 스토어(230)로부터 리트리브하고(retrieve) 비디오 및/또는 비디오 청크를 클라이언트 비디오 재생기에 반환할 수 있다. 비디오 서버 컴퓨터(240)가 도 2에서는 단일 컴퓨터로서 도시되어 있지만, 비디오 서버 컴퓨터(240)는 복수의 컴퓨터 네트워크 및/또는 지리적 영역에 걸쳐 분산된 하나 이상의 컴퓨터를 포함할 수 있다. 비디오 서버 컴퓨터(240) 및 비디오 데이터 스토어(230)는 도 2에 도시된 바와 같이 상이한 세트들의 하나 이상의 컴퓨터들일 수 있다. 그러나, 한 실시예에서, 비디오 서버 컴퓨터(240)는 비디오 데이터 스토어(230)와 동일한 하나 이상의 컴퓨터 상에서 실행될 수 있다.
3.2 메타데이터 스토어
메타데이터 스토어(255)는 하나 이상의 시리즈 내의 하나 이상의 에피소드와 연관된 메타데이터를 저장할 수 있다. 예를 들어, 메타데이터 스토어(255)는 오프닝 크레딧 세그먼트 및/또는 클로징 크레딧 세그먼트의 일부인 모델 에피소드(301) 내의 프레임을 식별하는 메타데이터를 포함할 수 있다. 모델 에피소드(301) 등의, 모델 에피소드와 연관된 메타데이터는 사용자에 의해 생성될 수 있다. 예를 들어, 사용자는, 도 2에 도시되지 않은 클라이언트 컴퓨터를 통해, 모델 에피소드(301)를 시청하고, 하나 이상의 프레임이 하나 이상의 세그먼트에 속한다는 것을 나타내는 메타데이터를 메타데이터 스토어(255)에 저장할 수 있다.
메타데이터 스토어(255)는 또한, 비디오 처리 로직(212) 및/또는 비디오 처리 컴퓨터(210)로부터 메타데이터를 수신 및 저장할 수 있다. 예를 들어, 메타데이터 스토어(255)는, 모델 에피소드(301) 내의 오프닝 크레딧 세그먼트 및 클로징 크레딧 세그먼트에 대응하는, 에피소드(302) 내의 오프닝 크레딧 세그먼트 및/또는 클로징 크레딧 세그먼트에 속하는 하나 이상의 프레임을 식별하는 메타데이터를 비디오 처리 로직(212)으로부터 수신할 수 있다. 메타데이터는, 특정한 세그먼트가 에피소드(302)의 특정한 버전에서 검출되었는지 등의, 버전 특유의 데이터를 포함할 수 있다. 메타데이터 스토어(255)는 영구적 저장장치일 수 있다. 메타데이터 스토어(255)가 도 4에서는 단일 데이터 저장 시스템으로 도시되어 있지만, 메타데이터 스토어(255)는 복수의 컴퓨터 네트워크 및/또는 지리적 영역에 걸쳐 분산된 하나 이상의 저장 디바이스를 포함할 수 있다.
3.3 비디오 처리 로직
비디오 처리 컴퓨터(210)는 비디오 처리 로직(212)을 포함한다. 비디오 처리 컴퓨터(210) 및/또는 비디오 처리 로직(212)은, 여기서 상세히 논의되는 바와 같이, 비디오 데이터 스토어(230)에 저장된 모델 및/또는 테스트 에피소드를 처리하고, 메타데이터 스토어(255)로부터 모델 에피소드를 위한 메타데이터를 리트리브 및/또는 처리하며, 하나 이상의 에피소드 내의 대응하는 세그먼트를 검출하고, 및/또는 어느 세그먼트가 어느 에피소드에서 검출되었는지 및/또는 어느 프레임이 각각의 에피소드에서 검출된 각각의 세그먼트의 일부인지를 나타내는 메타데이터를 메타데이터 스토어(255)에 저장한다. 따라서, 비디오 처리 컴퓨터(210)는 비디오 데이터 스토어(230) 및/또는 메타데이터 스토어(255)에 결합될 수 있다.
비디오 처리 로직(212)은 비디오 처리 컴퓨터(210)에 결합된, 및/또는 비디오 처리 컴퓨터(210)에 의해 실행되는 소프트웨어 및/또는 하드웨어일 수 있다. 비디오 처리 로직(212)은 단일 컴퓨터(비디오 처리 컴퓨터(210))에 의해 실행되거나 및/또는 이에 결합된 소프트웨어 애플리케이션 및/또는 컴퓨팅 디바이스로서 도시되지만, 비디오 처리 로직(212)은 복수의 컴퓨터에 의해 실행되거나 및/또는 이에 결합될 수 있다. 예를 들어, 비디오 처리 컴퓨터(210)는 하나 이상의 컴퓨터 네트워크 및/또는 지리적 영역들에 걸쳐 분포된 복수의 컴퓨터를 포함할 수 있고, 비디오 처리 로직(212)은 협력하여 동작하는 복수의 컴퓨터들 각각에서 실행되어 비디오 데이터 스토어(230)에 저장된 하나 이상의 에피소드를 처리할 수 있다.
비디오 처리 로직(212)은 여기서 논의된 하나 이상의 동작을 수행하도록 구성된 하나 이상의 컴포넌트를 포함할 수 있다. 예를 들어, 도 2에서, 비디오 처리 로직(212)은, 지문 생성 로직(213), 지문 비교 로직(214), 및 세그먼트 검출 로직(215)을 포함한다. 비디오 처리 로직(212) 및/또는 컴포넌트들 각각은 동작적으로 결합될 수 있다. 지문 생성 로직(213), 지문 비교 로직(214), 및/또는 세그먼트 검출 로직(215)은 비디오 처리 컴퓨터(210)에 결합된 및/또는 이에 의해 실행되는 소프트웨어 및/또는 하드웨어일 수 있다. 지문 생성 로직(213), 지문 비교 로직(214) 및/또는 세그먼트 검출 로직(215)은 동일한 컴퓨터상에서 실행되는 것처럼 도시되어 있다; 그러나, 비디오 처리 로직(212)의 하나 이상의 컴포넌트는 하나 이상의 컴퓨터에 걸쳐 실행 및/또는 분산될 수 있다. 여기서 명확한 예를 설명하기 위해, 비디오 처리 로직(212) 및/또는 비디오 처리 로직(212)의 하나 이상의 컴포넌트는 여기서 논의된 하나 이상의 동작을 수행할 수 있다; 그러나, 각각의 동작은 비디오 처리 로직(212) 및/또는 비디오 처리 로직(212)의 하나 이상의 컴포넌트에 의해 수행될 수 있다.
비디오 처리 로직(212) 및/또는 비디오 처리 로직(212)의 하나 이상의 컴포넌트는 전문화된 회로를 포함할 수 있다. 예를 들어, 지문 생성 로직(213)은, 특별한 디지털 이미지 및/또는 신호 프로세서를 이용하여 색상 분포를 생성하고, 텍스트 인식 동작을 수행하며, 및/또는 얼굴 인식 동작을 수행할 수 있다. 디지털 이미지 및/또는 신호 프로세서는, 이미지를 변환하고, 이미지의 특정한 색상 공간의 픽셀을 상이한 색상 공간으로 변환하고, 이미지의 색상 분포를 생성하며, 이미지 내의 피쳐 및/또는 문자를 검출하고, 이미지에 관해 얼굴 인식 동작을 수행하며, 복수의 이미지를 비교하고, 및/또는 복수의 이미지의 피쳐들을 비교하기 위한, 및/또는 이러한 동작에 유용한 명령어 세트를 지원하도록 하드와이어되거나 및/또는 영구적으로 프로그램될 수 있다. 디지털 이미지 프로세서는, 하나 이상의 명령어를 실행하여 동일한 동작들을 수행하는 축소된 명령어 세트 컴퓨팅 프로세서 등의 범용 중앙 처리 유닛("CPU")보다 더 신속하게 및/또는 더 효율적으로 이들 동작들을 수행할 수 있다. 추가적으로 또는 대안으로서, 비디오 처리 컴퓨터(210)는 하나 이상의 범용 CPU 및 하나 이상의 디지털 이미지 및/또는 신호 프로세서를 포함할 수 있다.
도 4에 도시된 실시예에서, 비디오 데이터 스토어(230)에 저장된 비디오 데이터는 비디오 처리 컴퓨터(210) 및/또는 비디오 처리 로직(212)에 의해 처리된다. 그러나, 비디오 처리 컴퓨터(210) 및/또는 비디오 처리 로직(212)은 하나 이상의 다른 저장 시스템에 저장된 에피소드를 처리할 수 있다. 예를 들어, 에피소드는 비디오 데이터 스토어(230)로부터 비디오 처리 컴퓨터(210)로 복사될 수 있다. 비디오 처리 로직(212)은 비디오 처리 컴퓨터(210) 상에서 비디오 데이터 스토어를 처리하고 결과 메타데이터를 메타데이터 스토어(255)에 저장할 수 있다.
한 실시예에서, 비디오 처리 컴퓨터(210)는 도 6과 관련하여 여기에 더 설명된 기술들 중 임의의 것을 이용하여 구현될 수 있다; 예를 들어, 비디오 처리 컴퓨터는 실행될 때 중개 컴퓨터에 대해 여기서 설명된 기능들을 수행하게 하는 하나 이상의 저장된 프로그램으로 구성된 범용 컴퓨터, 또는 기능을 실행하도록 구성된 디지털 로직이나 다른 컴퓨팅 디바이스들에서 이용되는 디지털 로직을 갖는 특별 목적 컴퓨터를 포함할 수 있다. 도면들은 다양한 디바이스 및/또는 모듈이 통신가능하게 결합된 것을 나타내는 라인들을 포함하지만, 컴퓨터들, 디바이스들, 모듈들, 저장장치, 구성들 각각은 서로 통신가능하게 결합될 수 있다.
한 실시예에서, 복수의 에피소드는 비디오 처리 컴퓨터에 동작적으로 결합된 비디오 데이터 스토어에 저장될 수 있다.
3.4 비디오 카탈로그 서버 컴퓨터
비디오 카탈로그 서버 컴퓨터(250)는, 어떤 서버(들)에서 특정한 에피소드 및/또는 에피소드의 일부가 콘텐츠 전달 네트워크(220)에 저장되어 있는지를 나타내는 데이터를 포함하거나 메타데이터 스토어(255)로부터 데이터를 리트리브할 수 있다. 예를 들어, 클라이언트 비디오 재생기 컴퓨터(260)로부터 에피소드(302)에 대한 메타데이터 요청에 응답하여, 비디오 카탈로그 서버 컴퓨터(250)는 클라이언트 비디오 재생기 컴퓨터(260)에 메타데이터를 전송할 수 있다. 메타데이터는 클라이언트 비디오 재생기 컴퓨터(260)가 콘텐츠 전달 네트워크(220) 내의 비디오 서버 컴퓨터(240)로부터 에피소드(302)를 다운로드할 수 있다는 것을 나타낼 수 있다. 추가적으로 또는 대안으로서, 메타데이터는 에피소드(302) 내의 하나 이상의 세그먼트를 식별할 수 있다.
3.5 클라이언트 비디오 재생기 컴퓨터
클라이언트 비디오 재생기 컴퓨터(260)는, 개인용 컴퓨터, 태블릿, 비디오 게임 콘솔, 및/또는 하나 이상의 비디오 서버 컴퓨터로부터 수신된 비디오를 요청 및/또는 다운로드하고, 비디오를 사용자에게 디스플레이 및/또는 재생할 수 있는 여기서 논의된 기타 임의의 컴퓨터일 수 있다. 예를 들어, 클라이언트 비디오 재생기 컴퓨터(260)는, 실행될 때 사용자가 시청할 시리즈의 에피소드를 선택하는 것을 허용하는 애플리케이션을 갖춘 태블릿일 수 있다. 에피소드(302) 등의 특정한 에피소드를 선택하는 사용자 입력을 수신하는 것에 응답하여, 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 카탈로그 서버 컴퓨터(250)에게 메타데이터를 요청할 수 있다. 메타데이터에 기초하여, 클라이언트 비디오 재생기 컴퓨터(260)는, 메타데이터, 하나 이상의 구성 설정, 및/또는 클라이언트 비디오 재생기 컴퓨터(260)에 저장된, 및/또는 이에 의해 수신된 사용자 입력에 따라 스킵되어야하는 세그먼트에 속하지 않는 적어도 하나의 프레임을 포함하는 에피소드(302) 내의 각각의 비디오 청크를 요청함으로써 에피소드(302)를 다운로드할 수 있다.
4.0 에피소드들간의 공통 비디오 세그먼트를 식별하기 위한 예시적인 프로세스
도 4는, 예시적인 실시예에서, 제1 비디오의 한 세그먼트에 대응하는 제2 비디오의 세그먼트를 검출하는 프로세스를 나타낸다. 명확한 예를 설명하기 위해, 단계들은 하나 이상의 다른 도면 내의 하나 이상의 요소를 참조하여 설명될 수 있지만, 하나 이상의 다른 도면에 도시된 특정한 배열을 이용하는 것은 다른 실시예에서는 요구되지 않는다.
4.1 모델 지문 생성
단계 410에서, 비디오 처리 컴퓨터는 데이터 스토어에 저장된 제1 비디오의 제1 모델 세그먼트 내의 제1 모델 프레임의 픽셀들에 기초하여 제1 모델 지문을 생성한다. 예를 들어, 비디오 처리 로직(212)은, 오프닝 크레딧 세그먼트가 모델 프레임 312에서 시작하여 모델 에피소드(301)의 모델 프레임 336에서 종료됨을 나타내는 메타데이터를 메타데이터 스토어(255)로부터 수신할 수 있다. 지문 생성 로직(213)은 모델 프레임(312)에 대한 모델 프레임 지문을 생성할 수 있다.
여기서 논의된 바와 같이, 프레임 지문은 대응하는 프레임 내의 하나 이상의 피쳐를 나타내는 데이터일 수 있다. 프레임 지문은 다양한 방식으로 생성될 수 있다. 예를 들어, 지문 생성 로직(213)은 프레임의 색상 분포를 생성할 수 있다. 프레임 지문은 색상 분포를 포함할 수 있다. 추가적으로 또는 대안으로서, 지문 생성 로직(213)은 얼굴 인식 프로그램 및/또는 모듈을 실행하여 프레임에서 얼굴이 있는지를 검출할 수 있다. 프레임 지문은 프레임에서 검출된 임의의 얼굴을 기술하는 데이터를 포함할 수 있다. 이 데이터는 프레임에서 검출된 하나 이상의 얼굴의 크기, 위치 및/또는 색상을 나타낼 수 있다. 추가적으로 또는 대안으로서, 지문 생성 로직(213)은, 피쳐 및/또는 문자 인식 프로그램을 실행하여 하나 이상의 라인, 코너, 문자, 숫자, 단어, 및/또는 기타 임의의 피쳐 및/또는 문자가 프레임 내에 기술되어 있는지를 검출할 수 있다. 프레임 지문은 프레임에서 검출된 임의의 피쳐 및/또는 문자를 기술하는 데이터를 포함할 수 있다.
프레임 지문은 프레임에서 하나보다 많은 세트의 피쳐를 기술할 수 있다. 예를 들어, 프레임 지문은, 프레임에 대한 색상 분포, 하나 이상의 얼굴이 프레임에서 검출되었거나, 및/또는 프레임에서 하나 이상의 텍스트 문자가 검출되었다는 것을 나타내는 데이터를 포함할 수 있다.
4.1.1 색상 분포 생성
색상 분포는 색상 세트에 대응하고, 색상 세트 내의 각각의 색상에 대해, 프레임 내의 얼마나 많은 픽셀들이 그 색상과 동일한지 및/또는 그 색상에 가까운지를 나타낸다. 명확한 예를 설명하기 위해 이미지가 그레이 스케일 이미지라고 가정하자; 각각의 픽셀은 그레이의 256 색조들 중 하나일 수 있고, 여기서, 그레이의 가장 어두운 색조(검정)는 숫자 0으로 표현되고 그레이의 가장 밝은 색조(백색)는 숫자 255로 표현된다. 그레이스케일 이미지에 대한 색상 분포는 얼마나 많은 픽셀들이 그레이의 각각의 색조에 할당되어 있는지를 나타낼 수 있다; 0, 1, 2, 3, 등등, 최대 255까지.
색상 분포에 대한 컬러 이미지에 대해 생성될 수 있다. 색상 공간은 도메인에 걸쳐 정의된 색상 집합이다. 예를 들어, RGB 색상 공간은 3-성분 도메인 : 적색 성분, 녹색 성분, 및 청색 성분에 의해 정의된 색상 세트이다. HSV 색상 공간은 3-성분 도메인 : 색조(hue) 성분, 채도(saturation) 성분, 및 값(value) 성분에 의해 정의된 색상 집합이다. CMYK 색상 공간은 4-성분 도메인 : 시안(cyan) 성분, 마젠타(magenta) 성분, 옐로우(yellow) 성분, 및 키(검정) 성분에 의해 정의된 색상 집합이다.
색상은 색상 공간 내에서 정의될 수 있다. 예를 들어, 색상 공간은 <A, B, C> 등의 색상 성분들을 둘러싼 꺾쇠 괄호가 있는 벡터로 표기될 수 있고, 여기서, A는 색상의 제1 성분이고, B는 색상의 제2 성분이며, C는 색상의 제3 성분이다.
채색된 픽셀을 갖는 프레임에 대한 색상 분포는, 얼마나 많은 픽셀들이 색상 공간 내의 특정한 색상을 갖는지를 나타낼 수 있다. 예를 들어, 색상 분포는, 프레임에 RGB 색상 공간의 <10, 20, 25> 색상을 갖는 5개의 픽셀이 프레임 내에 있고, RGB 색상 공간의 색상 <0, 20, 10>을 갖는 7개의 픽셀이 프레임 내에 있고, RGB 색상 공간에서 <0, 0, 0> 색상을 갖는 300개의 픽셀이 프레임 내에 있다고 나타낼 수 있다.
지문 생성 로직(213)는 제1 색상 공간의 픽셀을 제2 색상 공간으로 변환하고, 제2 색상 공간에 기초하여 색상 분포를 생성할 수 있다. 예를 들어, 지문 생성 로직(213)은 RGB 공간의 픽셀들을 갖는 프레임을 HSV 공간으로 변환하고, HSV 성분들에 기초하여 색상 분포를 생성할 수 있다.
4.1.2 수퍼 색상 분포 생성
슈퍼 색상 분포는, 프레임에서 하나 이상의 색상 성분의 하나 이상의 색상 분포로 구성되거나 및/또는 이를 참조할 수 있고, 따라서 간결성을 위해, 수퍼 색상 분포는 색상 분포라고 지칭될 수 있다. 명확한 예를 설명하기 위해, 프레임이 HSV 공간의 픽셀들을 포함한다고 가정하자. 지문 생성 로직(213)은, 다른 성분들의 값에 관계없이, 이 예에서는 색조 성분인, 제1 성분에 기초하여 제1 색상 분포를 생성할 수 있다. 따라서, HSV 공간의 제1 픽셀이 <10, 0, 0>이고 HSV의 제2 픽셀이 <10, 455, 255>이면, 양쪽 픽셀들 모두는 제1 색상 분포에서 동일한 색상으로서 간주될 것이다. 지문 생성 로직(213)은 또한, 다른 성분들의 값에 관계없이, 이 예에서 채도 성분인, 제2 성분에 기초하여 제2 색상 분포를 생성할 수 있다. 따라서, HSV 공간의 제3 픽셀이 <0, 90, 0>이고 HSV의 제4 픽셀이 <10, 90, 255>이면, 양쪽 픽셀들 모두는 제2 색상 분포에서 동일한 색상으로서 간주될 것이다. 지문 생성 로직(213)은 제2 색상 분포로부터의 데이터를 제1 색상 분포에 연결(concatenate)함으로써 수퍼 색상 분포를 생성할 수 있다.
4.1.3 색상 및 색상 분포의 표현
상기 나타낸 예에서, 색상 및 색상 성분은 0 내지 255(양쪽 끝값 포함)의 하나 이상의 정수 값으로 표현된다. 그러나, 색상 및/또는 색상 성분은 다른 방식으로 표현될 수 있다. 예를 들어, 색상 및/또는 색상 성분은 0 내지 1(양쪽 끝값 포함)의 부동 소수점 값들 중 하나 이상으로 표현될 수 있다. 한 실시예에서, 색상 또는 색상 성분은, 0.0-1.0(양쪽 끝값 포함)로부터 0-255(양쪽 끝값 포함)의 정수 값으로 또는 그 반대로 변환될 수 있다. 추가적으로 또는 대안으로서, 색상 또는 색상 성분은 상이한 범위 또는 세트의 값들로 변환될 수 있다.
상기 나타낸 예에서, 색상 분포의 각각의 색상 및/또는 색상 성분은 0 내지 255(양쪽 끝값 포함)의 이산 값이었다. 그러나, 색상 분포 내의 각각의 색상 및/또는 색상 성분은 값 범위일 수 있다. 예를 들어, 색상 분포 내의 색상은, 한 성분의 값이 [0.0-0.01) 등의 범위인 모든 색상일 수 있고, 여기서, 대괄호는 포함성을 나타내고 괄호는 배제성을 나타낸다. 또한, 하나 이상의 성분은, <0.0-0.01, [0.5-0.6), [0.2-0.3) > 등의 범위를 가질 수 있다. 범위에 속하는 색상 성분들을 갖는 픽셀에 할당된 각각의 색상은 동일한 색상으로서 간주된다.
색상 분포는 히스토그램으로서 가시화될 수 있다. 예를 들어, 도 1d는 예시적인 실시예에 따른 도 1a에 도시된 프레임의 색상 분포를 나타내는 히스토그램이다. 도 1d에서, 하단 축은 0 내지 255(양쪽 끝값 포함)까지의 이산 색상들의 범위를 나타낸다. 명확한 예를 설명하기 위해, 도 1a의 각각의 픽셀은 RGB 공간에서 정의된 색상이라고 가정한다. 지문 생성 로직(213)은 도 1a의 각각의 픽셀을 RGB 공간으로부터 HSV 공간으로 변환할 수 있다. 지문 생성 로직(213)은, 얼마나 많은 변환된 픽셀들이 0, 1, 2, 3 등등, 최대 255에 할당된 색조 값을 갖는지를 결정함으로써 제1 성분(이 예에서, 이 예에서는 0 내지 255(양쪽 끝값 포함) 범위의 "색조 성분")에 기초하여 (도 1d에서 히스토그램으로서 나타낸) 색상 분포를 생성할 수 있다. 따라서, 도 1d의 히스토그램에서 각각의 수직선의 높이는 얼마나 많은 변환된 픽셀들이 특정한 색조 값을 갖는지를 나타낸다. 예를 들어, 도 1d에 도시된 바와 같이, 도 1a에 도시된 프레임은 색조 값 51을 할당받은 497개의 픽셀들을 갖는다. 또한, 예를 들어, 도 1c에 도시된 프레임에 기초한 히스토그램인 도 1f는, 색조 값 40에 할당된 27개의 픽셀들을 갖는다.
4.2 테스트 지문 생성
이제 도 4를 참조하면, 단계 420에서, 비디오 처리 컴퓨터는 데이터 스토어에 저장된 제2 비디오 내의 제1 테스트 프레임의 픽셀들에 기초하여 제1 테스트 지문을 생성한다. 예를 들어, 지문 생성 로직(213)은 여기서 논의된 방법들 중 하나 이상에 따라 프레임(352)에 대한 테스트 프레임 지문을 생성할 수 있다.
4.3 테스트 지문과 모델 지문이 일치하는지를 결정
단계 430에서, 비디오 처리 컴퓨터는 제1 모델 지문과 제1 테스트 지문 사이의 제1 근접성 값을 결정한다. 예를 들어, 지문 비교 로직(214)은, 모델 프레임(312)에 대해 생성된 모델 프레임 지문과 프레임(352)에 대해 생성된 테스트 프레임 지문을 비교함으로써 근접성 값을 생성할 수 있다.
4.3.1 색상 분포에 기초한 근접성 값의 결정
근접성 값은 비교중인 지문의 타입에 기초하여 결정될 수 있다. 명확한 예를 설명하기 위해, 모델 프레임 지문 및 테스트 프레임 지문이 각각 모델 프레임(312) 및 프레임(352)의 색상 분포라고 가정한다. 모델 프레임 지문(색상 분포) 및/또는 테스트 프레임 지문(색상 분포)에 대응하는 색상 세트 내의 각각의 색상에 대해, 지문 비교 로직(214)은 그 색상의 모델 색상 분포 지문에서 발견된 픽셀 수와 그 색상에 대한 테스트 색상 분포 지문에서 발견된 픽셀 수 사이의 차이를 계산할 수 있다. 지문 비교 로직(214)은 차이들의 각각에 대한 절대 값을 계산할 수 있고, 절대 값들 각각을 함께 가산하여 델타 값을 생성할 수 있다. 지문 비교 로직(214)은, 델타 값을, 모델 프레임 지문을 생성하는데 이용된 모델 프레임(312)의 픽셀 수 및/또는 테스트 색상 분포 지문을 생성하는 프레임(352)내의 픽셀 수로 나눔으로써 근접성 값을 계산할 수 있다. 한 실시예에서, 모델 프레임 지문을 생성하는데 이용되는 모델 프레임(312)의 픽셀 수는 모델 프레임(312) 내의 총 픽셀 수이고, 및/또는 테스트 색상 분포 지문을 생성하기 위한 프레임(352)의 픽셀 수는 프레임(352) 내의 총 픽셀 수이다.
다음 식은 전술된 공식을 나타낸다 :
Figure 112017100901025-pct00001
상기 수학 식에서, pixels m,c 는 모델 프레임 및/또는 모델 색상 분포 m에서 특정한 색상 c에 대한 화소 수이고, pixels t,c 는 테스트 프레임 및/또는 테스트 색상 분포 t에서 특정한 색상 c에 대한 픽셀 수이다. 여기서 델타 값이라고도 지칭되는 분자(numerator)는, 모델 프레임 색상 분포 및 테스트 프레임 색상 분포에서의 각각의 색상에 대한 pixels m,c pixels t,c 사이의 절대 차이의 합이다. 값 total_pixels는 모델 프레임 색상 분포 및/또는 테스트 프레임 색상 분포로 표현된 총 픽셀 수이다. 근접성 값, closeness는 총 픽셀 수 total_pixels에 대한 델타 값의 비율이다.
명백한 예를 설명하기 위해, 도 1a의 프레임은 모델 프레임(312)의 예시이고, 도 1b의 프레임은 프레임(362)의 예시이며, 도 1c의 프레임은 프레임(352)의 예시인 것으로 가정한다. 따라서, 도 1d에 도시된 히스토그램은 모델 프레임(312)의 색상 분포의 시각화이고, 도 1e에 도시된 히스토그램은 프레임(362)의 색상 분포의 시각화이며, 도 1f에 도시된 히스토그램은 프레임(352)의 색상 분포의 시각화이다. 도 1d의 히스토그램은 도 1e의 히스토그램과 유사하다; 따라서, 지문 비교 로직(214)은 모델 프레임(312)과 프레임(362) 사이의 제로에 근접한 및/또는 특정한 임계값과 동일하거나 그 아래의 제1 근접성 값을 계산할 수 있고, 이에 응답하여 모델 프레임(312)과 프레임(362)이 일치한다고 결정할 수 있다. 대조적으로, 도 1d의 히스토그램은 도 1e의 히스토그램만큼 도 1f의 히스토그램과 유사하지는 않다; 따라서, 지문 비교 로직(214)은, 모델 프레임(312)과 프레임(352) 사이의, 제로는 아닌, 제1 근접성 값보다 큰, 및/또는 특정한 임계값과 같거나 그 보다 큰 제2 근접성 값을 계산할 수 있고, 이에 응답하여 모델 프레임(312)과 프레임(352)은 일치하지 않는다고 결정할 수 있다.
4.3.2 얼굴 검출에 기초한 근접성 값의 결정
모델 프레임 지문 및 테스트 프레임 지문이, 각각, 모델 프레임 및 테스트 프레임에서, 있다면, 발견된 하나 이상의 얼굴을 기술하는 데이터를 포함한다면, 근접성 값은, 있다면, 모델 프레임 및/또는 테스트 프레임에서 검출된, 하나 이상의 얼굴에 기초할 수 있다. 예를 들어, 모델 프레임 지문 및 테스트 프레임 지문에 기초하여, 지문 비교 로직(214)은 모델 프레임 및 테스트 프레임 양쪽 모두에서 동일한 위치 및/또는 크기를 갖는 얼굴의 수를 나타내는 분자를 결정할 수 있다. 또한 모델 프레임 지문 및 테스트 프레임 지문에 기초하여, 지문 비교 로직(214)은 모델 프레임 및/또는 테스트 프레임에서 검출된 얼굴의 총 수를 나타내는 분모를 결정할 수 있다. 지문 비교 로직(214)은 분자를 분모로 나눔으로써 근접성 값을 결정할 수 있다.
4.3.3 피쳐 인식에 기초한 근접성 값의 결정
모델 프레임 지문 및 테스트 프레임 지문이 각각 모델 프레임 및 테스트 프레임에서 발견된 다른 피쳐를 기술한다면, 근접성 값은 모델 프레임 및/또는 테스트 프레임에서 검출된 피쳐들에 기초할 수 있다. 명확한 예를 설명하기 위해, 모델 프레임 지문이, 있다면, 모델 프레임에서 검출된 문자를 식별하고, 테스트 프레임 지문이, 있다면, 테스트 프레임 지문에서 검출된 문자를 식별한다고 가정한다. 지문 비교 로직(214)은 모델 프레임 지문 및 테스트 프레임 지문 양쪽 모두에서 식별된 문자를 비교할 수 있다. 지문 비교 로직(214)은, 모델 프레임 지문 및 테스트 프레임 지문 양쪽 모두에서 발견된 문자의 수를 카운팅함으로써 분자를 결정할 수 있다. 지문 비교 로직(214)은 모델 프레임 지문 및/또는 테스트 프레임 지문 내의 총 문자 수를 나타내는 분모를 계산할 수 있다. 지문 비교 로직(214)은 분자를 분모로 나눔으로써 근접성 값을 결정할 수 있다. 이 예는 문자 인식을 논의하고 있지만, 비디오 처리 로직(212)은, 라인, 코너, 및/또는 이미지 인식 등의 다른 피쳐 인식 모델을 이용할 수도 있다.
4.3.4 복수의 근접성 값에 기초한 근접성 벡터 또는 총 근접성 값의 결정
모델 프레임 지문 및/또는 테스트 프레임 지문이 하나보다 많은 타입의 지문으로 구성된다면, 근접성 값은 근접성 값들의 벡터 및/또는 총 근접성 값일 수 있다. 명확한 예를 설명하기 위해, 모델 프레임 지문은 색상 분포 및 대응하는 모델 프레임 내에 임의의 얼굴이 있는지를 나타내는 데이터를 포함하고, 테스트 프레임 지문은 색상 분포 및 대응하는 테스트 프레임 내에 임의의 얼굴이 있는지를 나타내는 데이터를 포함한다고 가정한다. 지문 비교 로직(214)은, 앞서 논의된 바와 같이, 모델 프레임 지문 및 테스트 프레임 지문의 색상 분포에 기초하여 제1 근접성 값을 계산할 수 있다. 지문 비교 로직(214)은 얼마나 많은 얼굴이 모델 프레임에는 없고 테스트 프레임에는 존재하는지를 또는 그 반대의 경우를 나타내는 제2 근접성 값을 계산할 수 있다. 지문 비교 로직(214)은, 2개의 근접성 값을, 제1 근접성 값과 제2 근접성 값의 합 등의, 총 근접성 값으로 집합시킬 수 있다. 추가적으로 또는 대안으로서, 지문 비교 로직(214)은 제1 근접성 값 및 제2 근접성 값을 근접성 값 벡터로 그룹화할 수 있고, 여기서, 각각의 근접성 값은 모델 프레임 및/또는 테스트 프레임과 연관된 프레임 지문의 타입에 대응한다.
4.4 모델 프레임과 테스트 프레임이 일치하는지를 결정
도 4로 돌아와서, 단계 440에서, 비디오 처리 컴퓨터는 근접성 값이 특정한 임계값 이하인지를 결정한다. 근접성 값이 임계값과 동일하거나 및/또는 그 아래이면, 제어는 단계 450으로 진행하고; 그렇지 않으면, 제어는 단계 420으로 진행한다. 예를 들어, 모델 색상 분포 및 테스트 색상 분포로부터 결정된 근접성 값이 0.0001 아래이면, 지문 비교 로직(214)은 모델 프레임 및 테스트 프레임이 일치한다고 결정하고 단계 450으로 진행할 수 있다. 그렇지 않으면, 지문 비교 로직(214)은, 이 예에서는 프레임(354)인, 에피소드 내의 다음 테스트 프레임을 얻고, 단계 420으로 복귀한다.
근접성 값이 하나 이상의 다른 근접성 값들의 벡터이면, 각각의 근접성 값은 임계 벡터와 비교될 수 있다. 근접성 값들의 벡터 내의 하나 이상의 값이 각각 임계값 벡터 내의 하나 이상의 값보다 작거나 같다면, 지문 비교 로직(214)은 모델 프레임 및 테스트 프레임이 일치한다고 결정할 수 있다.
명백한 예를 설명하기 위해, 근접성 벡터가 3개의 근접성 값을 포함한다고 가정한다 : 제1 근접성 값은 모델 프레임 지문 및 테스트 프레임 지문에 저장된 색상 분포에 대응하고; 제2 근접성 값은 테스트 프레임에서 검출된 얼굴에 대응하지 않는 모델 프레임에서 검출된 얼굴의 총 수에 대응하고; 제3 근접성 값은 모델 프레임과 테스트 프레임 양쪽 모두에서 텍스트가 발견되면 1이고, 그 외에는 0이다. 또한 임계값 벡터가 0.0025, 0, 및 0이라고 가정한다. 제1 근접성 값이 0.0025보다 미만이거나 및/또는 제2 마이너 근접성 값이 제로와 같거나, 및/또는 제3 마이너 근접성 값이 0이면, 지문 비교 로직(214)은 모델 프레임 및 테스트 프레임 일치한다고 결정할 수 있고; 그렇지 않으면, 지문 비교 로직(214)은 모델 프레임과 테스트 프레임이 일치하지 않는다고 결정할 수 있다.
표현의 편의상, 지문 비교 로직(214)이 여기서 논의된 방법들 중 하나 이상을 이용하여 대응하는 프레임 지문들이 근접하다고 결정하면, 2개의 프레임은 "일치한다". 2개의 프레임 지문에 기초한 하나 이상의 근접성 값이 특정한 임계값과 같거나 그보다 아래이면, 2개의 프레임 지문은 근접한 것일 수 있다. 추가적으로 또는 대안으로서, 하나 이상의 근접성 값이 특정한 임계 값보다 크거나 같다면 2개의 프레임 지문은 근접한 것일 수 있다. 예를 들어, 지문 비교 로직(214)은, 대응하는 모델 프레임 지문 및 테스트 프레임 지문의 값들에 기초하여, 모델 프레임 및 테스트 프레임 양쪽 모두에 있는 문자의 수를 계산할 수 있다. 문자 수가 5 등의 특정한 임계값 이상이라면, 지문 비교 로직(214)은 모델 프레임 지문 및 테스트 프레임 지문이 근접하다고 결정할 수 있고; 그에 따라, 지문 비교 로직(214)은 모델 프레임이 테스트 프레임과 일치한다고 결정할 수 있다.
4.5 세그먼트 경계 결정
도 4로 돌아가서, 단계 450에서, 비디오 처리 컴퓨터는 제1 테스트 프레임이 제1 세그먼트의 경계라고 결정한다. 예를 들어, 프레임(352), 프레임(354), 프레임(356), 및 프레임(362)에 대한 테스트 프레임 지문을 생성하고, 각각의 테스트 프레임에 대해 단계 420 내지 단계 440을 반복한 후에, 지문 비교 로직(214)은 프레임(362)이 모델 프레임(312)과 일치한다고 결정할 수 있다. 모델 프레임(312) 및 프레임(362)이 일치한다고 결정하는 것에 응답하여, 세그먼트 검출 로직(215)은 프레임(362)이 세그먼트의 경계라고 결정할 수 있다. 모델 메타데이터가 모델 프레임(312)이 세그먼트의 시작 경계임을 나타낸다면, 세그먼트 검출 로직(215)은 프레임(362)이 에피소드(302) 내의 동일한 세그먼트의 시작 경계라고 결정할 수 있다. 모델 메타데이터가 모델 프레임(312)이 세그먼트의 종료 경계임을 나타낸다면, 세그먼트 검출 로직(215)은 프레임(362)이 에피소드(302) 내의 동일한 세그먼트의 종료 경계라고 결정할 수 있다.
4.5.1 순방향 또는 역방향 검색에 의한 세그먼트 경계 찾기
한 실시예에서, 세그먼트의 시작 경계를 찾은 후, 비디오 처리 컴퓨터는 도 2의 단계들을 반복하여 동일한 세그먼트의 종료 경계를 찾을 수 있다. 명확한 예를 설명하기 위해, 모델 메타데이터는 현재의 세그먼트에 대한 종료 경계가 모델 프레임(336)임을 나타낸다고 가정한다. 세그먼트 검출 로직(215)은, 지문 생성 로직(213) 및/또는 지문 비교 로직(214)을 통해, 세그먼트 검출 로직(215)이 이 예에서는 프레임(374)인 모델 프레임(336)과 일치하는 테스트 프레임을 찾을 때까지 세그먼트의 시작 경계인 것으로 결정된 테스트 프레임(에피소드(302) 내의 프레임(362)) 이후의 각각의 테스트 프레임을 반복적으로 테스트할 수 있다.
추가적으로 또는 대안으로서, 세그먼트의 종료 경계를 찾은 후, 비디오 처리 컴퓨터는 도 2의 단계들을 반복하여 동일한 세그먼트의 시작 경계를 찾을 수 있다. 명확한 예를 설명하기 위해, 모델 메타데이터는 현재의 세그먼트에 대한 종료 경계가 모델 프레임(336)임을 나타내고 지문 비교 로직(214)은 프레임(374)이 모델 프레임(336)과 일치한다고 결정하는 것으로 가정한다. 세그먼트 검출 로직(215)은, 지문 생성 로직(213) 및/또는 지문 비교 로직(214)을 통해, 세그먼트 검출 로직(215)이 이 예에서는 프레임(362)인 모델 프레임(312)과 일치하는 테스트 프레임을 찾을 때까지 세그먼트의 종료 경계인 것으로 결정된 테스트 프레임(에피소드(302) 내의 프레임(374)) 이전의 각각의 테스트 프레임을 반복적으로 테스트할 수 있다.
4.5.2 시간에 기초하여 세그먼트 경계 찾기
한 실시예에서, 세그먼트는 시리즈 내의 각각의 에피소드에 대해 동일한 양의 시간일 수 있다. 예를 들어, 세그먼트의 시작이 00 : 00 : 40.00 등의 제1 타임스탬프에 대응하는 테스트 에피소드의 테스트 프레임인 것으로 결정되고, 모델 에피소드와 연관된 메타데이터가 세그먼트가 10초 길이임을 나타낸다면, 세그먼트 검출 로직(215)은 타임스탬프 00 : 00 : 50.00에 대응하는 프레임 이 세그먼트의 마지막 프레임 또는 종료 경계라고 결정할 수 있다. 마찬가지로, 세그먼트의 종료가 01 : 20 : 30.00 등의 특정한 타임스탬프에 대응하는 테스트 에피소드 내의 특정한 테스트 프레임인 것으로 결정되고, 모델 에피소드와 연관된 메타데이터가 세그먼트가 10초 길이임을 나타낸다면, 세그먼트 검출 로직(215)은 타임스탬프 01 : 20 : 20.00에 대응하는 프레임이 이 세그먼트의 첫 번째 프레임 또는 시작 경계라고 결정할 수 있다.
모델 에피소드 내의 세그먼트는 테스트 에피소드에서 발견된 세그먼트와 동일한 시간 길이일 필요는 없다. 모델 에피소드 내의 세그먼트는 테스트 에피소드에서 발견된 세그먼트와 동일한 수의 프레임을 포함할 필요는 없다. 예를 들어, 모델 에피소드(301)에 정의된 세그먼트는 에피소드(302)에서 발견된 대응하는 세그먼트보다 많은 프레임을 포함할 수 있고; 모델 에피소드(301) 내의 세그먼트는 에피소드(302) 내의 세그먼트보다 긴 시간 동안 재생될 수 있다.
4.5.3 에피소드 내의 하나보다 많은 프레임에 기초한 시작 경계 결정
비디오 처리 컴퓨터는 하나보다 많은 모델 프레임을 하나보다 많은 테스트 프레임과 각각 비교함으로써 세그먼트 경계를 결정할 수 있다. 하나보다 많은 모델 프레임 및 하나보다 많은 테스트 프레임은 순차적 프레임들일 수 있다. 명확한 예를 설명하기 위해, 모델 프레임(312)이 세그먼트의 시작 경계라고 가정한다. 모델 프레임(312)이 프레임(356)과 일치한다는 결정에 응답하여, 세그먼트 검출 로직(215)은, 지문 생성 로직(213) 및/또는 지문 비교 로직(214)을 통해, 모델 프레임(314)이 프레임(362)과 일치하는지를 결정할 수 있다. 모델 프레임(314)이 프레임(362)과 일치하지 않는다는 결정에 응답하여, 세그먼트 검출 로직(215)은 프레임(356)이 에피소드(302) 내의 세그먼트의 시작 경계가 아니라고 결정할 수 있다.
후속 프레임이 모델 에피소드 내의 제2 모델 프레임과 일치하지 않아서 제1 테스트 프레임이 테스트 에피소드 내의 세그먼트의 시작 경계가 아니라는 결정에 응답하여, 비디오 처리 컴퓨터는 제1 테스트 프레임 이후의 제2 테스트 프레임으로 복귀하여 모델 에피소드 내의 세그먼트의 시작 경계에서 제2 테스트 프레임과 모델 프레임 사이의 일치를 찾는다. 이전의 예를 계속하면, 모델 프레임(314)이 프레임(362)과 일치하지 않거나 및/또는 프레임(356)이 에피소드(302) 내의 세그먼트의 시작 경계가 아니라는 결정에 응답하여, 세그먼트 검출 로직(215)은 모델 프레임(312)이 프레임(362)과 일치하는지를 결정할 수 있다.
비디오 처리 컴퓨터가 제1 모델 프레임 및 제2 테스트 프레임이 일치한다고 결정한다면, 비디오 처리 컴퓨터는 제2 모델 프레임이 제3 테스트 프레임과 일치하는지를 결정할 수 있다. 하나 이상의 후속 모델 프레임이 하나 이상의 후속 테스트 프레임과 각각 일치한다고 결정한 후, 비디오 처리 컴퓨터는, 이 예에서는 프레임(362)인 제1 모델 프레임과 일치하는 마지막 테스트 프레임이 에피소드(302) 내의 세그먼트의 첫 번째 프레임 또는 시작 경계라고 결정할 수 있다. 예를 들어, 모델 프레임(312)이 프레임(362)과 일치하고, 하나 이상의 후속 및/또는 순차 모델 프레임이 모델 프레임(316) 및 프레임(364) 등의 하나 이상의 후속 및/또는 순차 테스트 프레임과 일치한다는 결정에 응답하여, 세그먼트 검출 로직(215)은 프레임(362)이 에피소드(302) 내의 세그먼트의 시작 경계라고 결정할 수 있다.
명확한 예를 설명하기 위해, 모델 에피소드 및 테스트 에피소드 내의 하나의 추가 프레임이 시작 경계를 확인하는데 이용되었다. 그러나, 모델 에피소드 및/또는 테스트 에피소드 내의 5, 10 또는 임의의 다른 수의 프레임들이 시작 경계를 확인하는데 이용될 수 있다.
4.5.4 에피소드 내의 하나보다 많은 프레임에 기초한 종료 경계 결정
종료 경계는 유사한 방식으로 발견될 수 있지만, 하나 이상의 후속 프레임을 비교하는 것 대신에, 비디오 처리 컴퓨터는 하나 이상의 선행 모델 프레임 및 테스트 프레임을 각각 비교하여 세그먼트의 종료 경계를 찾을 수 있다. 명확한 예를 설명하기 위해, 모델 프레임(336)이 세그먼트의 종료 경계라고 가정한다. 모델 프레임(336)이 프레임(376)과 일치한다는 결정에 응답하여, 세그먼트 검출 로직(215)은, 지문 생성 로직(213) 및/또는 지문 비교 로직(214)을 통해, 모델 프레임(334)이 프레임(374)과 일치하는지를 결정할 수 있다. 모델 프레임(334)이 프레임(374)과 일치하지 않는다는 결정에 응답하여, 세그먼트 검출 로직(215)은 프레임(376)이 에피소드(302) 내의 세그먼트의 종료 경계가 아니라고 결정할 수 있다.
선행 프레임이 모델 에피소드 내의 제2 모델 프레임과 일치하지 않아서 제1 테스트 프레임이 테스트 에피소드 내의 세그먼트의 종료 경계가 아니라는 결정에 응답하여, 비디오 처리 컴퓨터는 제1 테스트 프레임 이전의 제2 테스트 프레임으로 복귀하여 모델 에피소드 내의 세그먼트의 종료 경계에서 제2 테스트 프레임과 모델 프레임 사이의 일치를 찾을 수 있다.
이전 예를 계속하면, 모델 프레임(334)이 프레임(374)과 일치하지 않거나 및/또는 프레임(374)이 에피소드(302) 내의 세그먼트의 종료 경계가 아니라는 결정에 응답하여, 세그먼트 검출 로직(215)은, 지문 생성 로직(213) 및/또는 지문 비교 로직(214)을 통해, 모델 프레임(336)이 프레임(374)과 일치하는지를 결정할 수 있다.
비디오 처리 컴퓨터가 제1 모델 프레임 및 제2 테스트 프레임이 일치한다고 결정한다면, 비디오 처리 컴퓨터는 제2 모델 프레임이 제3 테스트 프레임과 일치하는지를 결정할 수 있다. 하나 이상의 선행 모델 프레임이 하나 이상의 선행 테스트 프레임과 각각 일치한다고 결정한 후, 비디오 처리 컴퓨터는, 이 예에서는 모델 프레임(336)인 종료 경계 모델 프레임과 일치하는 마지막 테스트 프레임이 에피소드(302) 내의 세그먼트의 마지막 프레임 또는 종료 경계라고 결정할 수 있다. 예를 들어, 모델 프레임(336)이 프레임(374)과 일치하고, 하나 이상의 선행 및/또는 순차 모델 프레임이 모델 프레임(334) 및 프레임(372) 등의 하나 이상의 선행 및/또는 순차 테스트 프레임과 일치한다는 결정에 응답하여, 세그먼트 검출 로직(215)은 프레임(372)이 에피소드(302) 내의 세그먼트의 종료 경계라고 결정할 수 있다.
명확한 예를 설명하기 위해, 모델 에피소드 및 테스트 에피소드 내의 하나의 추가 프레임이 종료 경계를 확인하는데 이용되었다. 그러나, 모델 에피소드 및/또는 테스트 에피소드 내의 5, 10 또는 임의의 다른 수의 프레임들이 종료 경계를 확인하는데 이용될 수 있다.
4.5.5 묵시적 경계 결정
세그먼트는 묵시적 경계를 가질 수 있다. 예를 들어, 모델 에피소드와 연관된 메타데이터는, 모델 에피소드의 시작이, 제1 모델 프레임의 지문과 관계없이, 오프닝 크레딧 세그먼트의 시작 경계임을 나타낼 수 있다. 따라서, 비디오 처리 컴퓨터는 시작 세그먼트의 시작 경계를 순차적으로 검색할 필요는 없지만, 여전히 오프닝 크레딧 세그먼트의 종료 경계를 찾기 위해 테스트 에피소드를 검색하여 여기서 논의된 방법들 중 하나 이상에 따라 테스트 에피소드에서 오프닝 크레딧 세그먼트를 찾을 수 있다.
한 실시예에서, 시리즈 내의 하나 이상의 에피소드는, 이전 에피소드들을 요약하고, 오프닝 크레딧 세그먼트를 후속동반하며, 새로운 콘텐츠를 후속동반하는, 요약 세그먼트를 포함할 수 있다. 시리즈의 에피소드들을 몰아보는 사용자는 클라이언트 비디오 재생기 컴퓨터(260)가 요약 세그먼트 및 오프닝 크레딧 세그먼트 양쪽 모두를 자동으로 스킵하기를 원할 수 있다. 그러나, 요약 세그먼트는 시리즈 내의 각각의 에피소드마다 상이할 수 있다. 시리즈 및/또는 모델 에피소드와 연관된 메타데이터가 각각의 에피소드의 시작이 오프닝 크레딧 세그먼트의 시작임을 나타낸다면, 세그먼트 검출 로직(215)은 시리즈 내의 각각의 에피소드에 대한 오프닝 크레딧 세그먼트를 갖는 요약 세그먼트를 포함할 수 있다. 따라서, 클라이언트 비디오 재생기 컴퓨터(260)가 오프닝 크레딧 세그먼트를 스킵하도록 구성된다면, 클라이언트 비디오 재생기 컴퓨터(260)는 시리즈 내의 각각의 에피소드의 요약 세그먼트와 오프닝 크레딧 세그먼트 양쪽 모두를 스킵할 수 있다.
추가적으로 또는 대안으로서, 모델 에피소드와 연관된 메타데이터는, 모델 에피소드의 엔딩이, 마지막 모델 프레임의 지문과 관계없이, 클로징 크레딧 세그먼트의 종료 경계임을 나타낼 수 있다. 따라서, 세그먼트 검출 로직(215)은 클로징 크레딧 세그먼트의 시작 경계를 찾기 위해 시리즈 내의 테스트 에피소드를 검색하여 테스트 에피소드에서 클로징 크레딧 세그먼트를 찾을 수 있다. 그러나, 세그먼트 검출 로직(215)은 클로징 크레딧 세그먼트의 종료 경계를 찾기 위해 테스트 에피소드를 순차적으로 검색할 필요는 없다; 세그먼트 검출 로직(215)은 종료 경계가 테스트 에피소드의 마지막 프레임이라고 가정할 수 있다.
4.6 에피소드에서 복수의 세그먼트 찾기
모델 에피소드는 복수의 세그먼트를 포함할 수 있다. 예를 들어, 모델 에피소드(301)와 연관된 메타데이터는 모델 에피소드(301)가 오프닝 크레딧 세그먼트 및 클로징 크레딧 세그먼트를 갖는다는 것을 나타낼 수 있다. 따라서, 비디오 처리 로직(212)은 여기서 논의된 방법들 중 하나 이상을 이용하여 에피소드(302) 내의 오프닝 크레딧 세그먼트의 시작 경계 및 종료 경계와 에피소드(302) 내의 클로징 크레딧 세그먼트의 시작 경계 및 종료 경계를 찾을 수 있다.
제2 세그먼트가 아니라 제1 세그먼트의 경계들을 결정하기 위해 상이한 기준이 이용될 수 있다. 예를 들어, 비디오 처리 로직(212)은 오프닝 크레딧 세그먼트의 경계들은 색상 분포를 갖는 프레임 지문에 기초할 수 있다고 결정할 수 있다. 그러나, 비디오 처리 로직(212)은, 색상 분포, 얼굴 검출, 및 텍스트 검출과 함께 프레임 지문에 기초하여 엔딩 크레딧 세그먼트의 경계들을 결정할 수 있다.
4.7 선택사항적인 세그먼트 결정 및 그에 대한 응답
모델 에피소드와 연관된 메타데이터는 세그먼트가 선택사항이라는 것을 나타낼 수 있다. 선택사항적 세그먼트는 시리즈 내의 각각의 에피소드에 포함될 수 있지만, 포함될 필요가 있는 것은 아닌, 세그먼트일 수 있다. 예를 들어, 시리즈 내의 모델 에피소드는 클로징 크레딧 세그먼트를 가질 수 있다. 그러나, 시리즈 내의 하나 이상의 에피소드는, 개그 릴(gag reel) 등의, 사용자가 시청하기를 원하고 클라이언트 비디오 재생기 컴퓨터가 디폴트로 스킵하지 않아야 하는 새로운 콘텐츠를 포함하는 클로징 크레딧 세그먼트를 포함할 수 있다. 비디오 처리 로직(212)은, 모델 프레임 지문 및 테스트 프레임 지문의 색상 분포에 기초하여 시리즈 내의 특정한 에피소드에서 클로징 크레딧 세그먼트의 경계들을 결정할 수 있다; 그러나, 클로징 크레딧 세그먼트가 선택사항적인 것이라는 결정에 응답하여, 비디오 처리 컴퓨터는 여기서 논의된 방법들 중 하나 이상을 이용하여 클로징 크레딧 세그먼트 내의 프레임들 중 하나 이상에서 임의의 얼굴이 검출되었는지를 결정할 수 있다. 비디오 처리 로직(212)이 하나 이상의 얼굴을 검출하면, 비디오 처리 로직(212)은, 테스트 에피소드가 클로징 크레딧 세그먼트를 포함하지 않거나 및/또는 클라이언트 비디오 재생기가 테스트 에피소드에 대한 클로징 크레딧 세그먼트를 스킵하지 않아야 함을 나타내는, 테스트 에피소드와 연관된 메타데이터를 결정하고 저장할 수 있다. 한 실시예에서, 비디오 처리 로직(212)은 테스트 에피소드가 클로징 크레딧 세그먼트를 포함하지 않는다는 것을 나타내는 메타데이터를 보류 및/또는 포함하지 않을 수 있다. 따라서, 클라이언트 비디오 재생기 컴퓨터(260)는 테스트 에피소드 내의 클로징 비디오 세그먼트를 다운로드 및/또는 재생할 수 있다.
추가적으로 또는 대안으로서, 모델 에피소드와 연관된 메타데이터가 클로징 크레딧 세그먼트 등의 특정한 세그먼트가 선택사항적인 것을 나타낸다면, 비디오 처리 컴퓨터는, 대응하는 세그먼트가 선택사항이라는 것을 나타내는 시리즈 내의 테스트 에피소드와 연관된 메타데이터를 저장할 수 있다. 따라서, 클라이언트 비디오 재생기 컴퓨터(260) 등의 클라이언트 비디오 재생기 컴퓨터는 선택사항적인 클로징 크레딧 세그먼트의 재생을 시작하도록 구성될 수 있다; 그러나, 사용자가 특정한 시간량 내에서 특정한 버턴을 선택하지 않으면, 클라이언트 비디오 재생기 컴퓨터(260)는 선택사항적인 클로징 크레딧 세그먼트의 나머지를 스킵하거나 및/또는 시리즈 내의 다음 에피소드의 재생을 시작할 수 있다. 한 실시예에서, 클라이언트 비디오 재생기 컴퓨터(260)는 클로징 크레딧 세그먼트를 재생하고 또한 선택된다면 클라이언트 비디오 재생기 컴퓨터(260)가 클로징 크레딧 세그먼트를 스킵하거나 및/또는 시리즈 내의 다음 에피소드의 재생을 시작하게 하고; 그렇지 않으면, 클라이언트 비디오 재생기 컴퓨터(260)가 선택사항적인 클로징 크레딧 세그먼트를 재생할 수 있는, 버턴을 사용자에게 제공하도록 구성될 수 있다.
4.8 메타데이터 저장
비디오 처리 컴퓨터는 각각의 테스트 에피소드와 연관된 메타데이터를 생성하여, 테스트 에피소드에서 발견된 하나 이상의 세그먼트, 각각의 세그먼트의 경계들, 및/또는 여기서 논의된 비디오 처리 컴퓨터에 의해 결정되는 하나 이상의 다른 속성을 식별할 수 있다. 예를 들어, 에피소드(302) 등의 테스트 에피소드에서 오프닝 크레딧 세그먼트에 대한 경계를 결정하는 것에 응답하여, 비디오 처리 로직(212)은 에피소드(302) 내의 어떤 프레임이 오프닝 크레딧 세그먼트를 포함 하는지를 나타내는 에피소드(302)와 연관된 메타데이터를 생성 및 저장할 수 있다.
4.8.1 동일한 에피소드의 상이한 버전들에 대한 메타데이터
비디오 처리 컴퓨터는 모델 에피소드에 기초하여 테스트 에피소드에서 하나 이상의 세그먼트를 검색할 수 있고, 여기서, 양쪽 에피소드 내의 프레임들은, 해상도, 폭, 및/또는 높이 등의 동일한 속성들을 갖는다. 동일한 테스트 에피소드의 복수의 버전이 비디오 데이터 스토어에 저장되는 경우, 비디오 처리 서버 컴퓨터는 하나 이상의 세그먼트에 대한 테스트 에피소드의 각각의 버전을 검색할 필요가 없는데, 그 이유는 동일한 에피소드의 상이한 버전들의 대응하는 프레임들은 동일한 타임스탬프 및/또는 기타의 인덱스 값을 가질 수 있기 때문이다. 비디오 처리 시스템은 특정한 에피소드의 버전에 대해 생성된 메타데이터를 동일한 에피소드의 하나 이상의 버전에 연관시킬 수 있다.
예를 들어, 시리즈 내의 특정한 에피소드의 제1 버전에 기초하여, 비디오 처리 로직(212)은 특정한 에피소드를 식별하는 특정한 세트의 메타데이터를 메타데이터 스토어(255)에 저장할 수 있다. 특정한 세트의 메타데이터는, 특정한 에피소드가 제1 타임스탬프 내지 제2 타임스탬프(양쪽 끝값을 포함하거나 제외함)에 대응하는 프레임들을 갖는 오프닝 크레딧 세그먼트를 갖는다는 것을 나타낼 수 있다. 클라이언트 비디오 재생기 컴퓨터(260)가 특정한 에피소드의 제2 상이한 버전을 다운로드 및/또는 재생하면, 클라이언트 비디오 재생기 컴퓨터(260)는 메타데이터 스토어(255)에게 특정한 세트의 메타데이터를 요청할 수 있다. 따라서, 클라이언트 비디오 재생기 컴퓨터(260)는, 특정한 세트의 메타데이터에 기초하여, 상기 제1 타임스탬프 및 상기 제2 타임스탬프와 동일한 타임스탬프에 대응하거나 및/또는 제1 타임스탬프와 제2 타임스탬프 사이의 특정한 에피소드의 제2의 상이한 버전의 프레임들을 스킵하거나 및/또는 다운로드하지 않을 수 있다.
5.0 하나 이상의 검출된 세그먼트를 가진 비디오를 클라이언트 컴퓨터에 배포하기 위한 예시적인 프로세스
도 5는, 예시적인 실시예에서, 하나 이상의 공통 비디오 또는 오디오 세그먼트를 요청 및/또는 재생하지 않고 클라이언트 컴퓨터에서 비디오를 재생하기 위한 프로세스를 나타낸다. 단계 510에서, 클라이언트 컴퓨터는 제1 비디오 타이틀을 선택하는 입력을 사용자로부터 수신할 수 있다. 예를 들어, 클라이언트 비디오 재생기 컴퓨터(260)는 에피소드(302)를 선택하는 입력을 사용자로부터 수신할 수 있다.
단계 520에서, 클라이언트 컴퓨터는 제1 비디오 타이틀과 연관된 메타데이터 세트를 요청한다. 예를 들어, 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 카탈로그 서버 컴퓨터(250)로부터 에피소드(302)와 연관된 메타데이터를 요청할 수 있다. 메타데이터는, 클라이언트 비디오 재생기 컴퓨터(260)가 에피소드(302)를 다운로드할 수 있는 하나 이상의 서버 컴퓨터, 및/또는 에피소드(302) 내의 하나 이상의 세그먼트를 식별할 수 있다.
단계 530에서, 클라이언트 컴퓨터는 메타데이터를 수신한다. 예를 들어, 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 카탈로그 서버 컴퓨터(250)를 통해 메타데이터 스토어(255)에 저장된 메타데이터를 수신할 수 있다. 메타데이터는 클라이언트 비디오 재생기 컴퓨터(260)가 비디오 서버 컴퓨터(240) 및/또는 콘텐츠 전달 네트워크(220)로부터 에피소드(302)를 다운로드할 수 있다는 것을 나타낼 수 있다. 메타데이터는 타임스탬프 01 : 50 : 00.00에서 시작하여 타임스탬프 01 : 59 : 32.00(양쪽 끝값 포함)에서 끝나는 클로징 크레딧 세그먼트를 식별할 수 있다. 명확한 예를 설명하기 위해, 타임스탬프 01 : 50 : 00.00과 01 : 59 : 32.00이 각각 프레임(362) 및 프레임(374)에 대응한다고 가정한다.
단계 540에서, 클라이언트 컴퓨터는 하나 이상의 특정한 비디오 세그먼트를 요청하지 않고 제1 비디오 타이틀의 비디오 데이터를 요청한다. 예를 들어, 클라이언트 비디오 재생기 컴퓨터(260)는, 타임스탬프들과 연관되거나, 및/또는 클로징 크레딧 세그먼트를 정의하는 타임스탬프들의 바깥에 있는 타임스탬프들과 연관된 프레임들을 포함하는 에피소드(302)의 하나 이상의 청크를 비디오 서버 컴퓨터(240)로부터 요청 및 다운로드할 수 있다.
클라이언트 비디오 재생기 컴퓨터(260)는 클로징 크레딧 세그먼트 내에 속하는 프레임들만을 포함하는 에피소드(302)의 비디오 청크들을 다운로드할 필요가 없다고 결정할 수 있다. 명확한 예를 설명하기 위해, 클라이언트 비디오 재생기 컴퓨터(260)가 에피소드(302)의 또 다른 비디오 청크 : 비디오 청크(360)를 다운로드할지를 결정하고 있다고 가정한다. 비디오 청크(360) 내의 첫 번째 프레임 및 마지막 프레임이 클로징 크레딧 세그먼트와 연관된 타임스탬프들 내에 속하는 타임스탬프들과 대응한다고 결정하는 것에 응답하여, 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 청크(360)를 비디오 서버 컴퓨터(240)로부터 요청 및/또는 다운로드하지 않을 수 있다.
클라이언트 컴퓨터가 비디오 청크 내의 하나 이상의 프레임이 특정한 세그먼트 외부에 있다고 결정하면, 클라이언트 컴퓨터는 그 비디오 청크를 다운로드하거나, 및/또는 세그먼트 외부에 있는, 비디오 청크 내의 프레임들을 재생할 수 있다. 예를 들어, 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 청크(370)가 클로징 크레딧 세그먼트 내에 있는 01 : 59 : 32.00에 대응하는 제1 프레임(프레임(372))을 갖는다고 결정할 수 있다; 그러나, 비디오 청크(370)의 길이는 3초이므로, 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 청크(370)가 클로징 크레딧 세그먼트 외부에 있는 하나 이상의 프레임을 포함한다고 결정할 수 있다. 따라서, 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 청크(370)를 다운로드하고, 이 예에서는 프레임(376)을 포함하는, 클로징 크레딧 세그먼트 경계(01:59:32.00) 이후의 타임스탬프들에 대응하는 비디오 청크(370) 내의 프레임들 재생할 수 있다.
5.1 사용자 입력에 기초한 세그먼트 스킵 및/또는 다운로드 안하기
클라이언트 컴퓨터는 재생기가 오프닝 크레딧 세그먼트 및/또는 클로징 크레딧 세그먼트 등의 특정한 세그먼트를 자동으로 스킵하여야 함을 나타내는 입력을 사용자로부터 수신할 수 있다. 응답으로, 클라이언트 컴퓨터는 사용자가 스킵되어야 한다고 나타낸 에피소드의 하나 이상의 세그먼트에 대응하는 프레임들을 다운로드 및/또는 재생할 필요가 없다.
5.2 하나 이상의 효과 적용
클라이언트 컴퓨터는 세그먼트의 경계들에서 하나 이상의 시각 효과 및/또는 오디오 효과를 적용할 수 있다. 예를 들어, 클라이언트 컴퓨터가 특정한 세그먼트를 스킵하기 전에 클라이언트 컴퓨터가 비디오 세그먼트의 시작 경계 또는 그 부근의 프레임을 재생할 때 클라이언트 컴퓨터는 하나 이상의 프레임들을 검정색으로 페이딩하거나 및/또는 음소거시켜 페이딩할 수 있다. 클라이언트 컴퓨터가 세그먼트의 종료 경계의 또는 그 부근의 프레임들을 재생할 때 클라이언트 컴퓨터는 하나 이상의 프레임들을 검정색으로 페이딩하거나, 및/또는 음소거시켜 페이딩할 수 있다. 한 실시예에서, 클라이언트 컴퓨터는 효과를 수행하는 동안 스킵되어야 하는 세그먼트 내의 하나 이상의 프레임을 재생할 수 있다.
클라이언트 컴퓨터는 스킵되어야 하는 세그먼트와 연관된 다른 데이터를 다운로드 및/또는 처리할 필요가 없다. 예를 들어, 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 청크(350)와 연관된 오디오 데이터를 요청, 다운로드 및/또는 재생할 수 있다. 그러나, 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 청크(360)와 연관된 오디오 데이터를 요청, 다운로드 및/또는 재생할 필요는 없다. 클라이언트 비디오 재생기 컴퓨터(260)는 비디오 청크(370) 또는 클로징 크레딧 세그먼트 외부에 해당하는 비디오 청크(370) 내의 적어도 하나 이상의 프레임과 연관된 오디오 데이터를 요청, 다운로드 및/또는 재생할 수 있다.
6.0 구현 메커니즘-하드웨어 개요
한 실시예에 따르면, 여기서 설명된 기술들은 하나 이상의 특별 목적 컴퓨팅 디바이스에 의해 구현된다. 특별 목적 컴퓨팅 디바이스는 기술을 수행하기 위해 하드 와이어(hard-wired)될 수 있거나, 또는 기술들을 수행하도록 영구적으로 프로그램된 하나 이상의 주문형 집적 회로(ASIC) 또는 필드 프로그래머블 게이트 어레이(FPGA) 등의 디지털 전자 디바이스를 포함하거나, 펌웨어, 메모리, 기타의 저장 디바이스 또는 이들의 조합 내의 프로그램 명령어에 따라 기술들을 수행하도록 프로그램된 하나 이상의 범용 하드웨어 프로세서를 포함할 수 있다. 이러한 특별 목적 컴퓨팅 디바이스는 또한, 맞춤형 하드 와이어드 로직, ASIC 또는 맞춤형 프로그래밍된 FPGA를 결합하여 기술을 수행할 수도 있다. 특별 목적 컴퓨팅 디바이스는, 데스크탑 컴퓨터 시스템, 휴대형 컴퓨터 시스템, 핸드헬드 디바이스, 네트워킹 디바이스, 또는 기술을 구현하기 위한 하드-와이어 및/또는 프로그램 로직을 통합한 기타 임의의 디바이스일 수 있다.
예를 들어, 도 6은 본 발명의 일부 실시예가 구현될 수 있는 컴퓨터 시스템(600)을 나타내는 블록도이다. 컴퓨터 시스템(600)은, 정보를 전달하기 위한 버스(602) 또는 기타의 통신 메커니즘, 및 버스(602)와 결합되어 정보를 처리하기 위한 하드웨어 프로세서(604)를 포함한다. 하드웨어 프로세서(604)는 예를 들어 범용 마이크로프로세서일 수 있다.
컴퓨터 시스템(600)은 또한, 버스(602)에 결합되어 프로세서(604)에 의해 실행될 명령어와 정보를 저장하기 위한, 랜덤 액세스 메모리(RAM) 또는 기타의 동적 저장 디바이스 등의 메인 메모리(606)를 포함한다. 메인 메모리(606)는 또한, 프로세서(604)에 의해 실행되는 명령어의 실행 동안의 임시 변수들 또는 기타의 중간 정보를 저장하는데 이용될 수도 있다. 이러한 명령어들은, 프로세서(604)에 액세스가능한 비일시적인 저장 매체에 저장될 때, 컴퓨터 시스템(600)를 명령어들에 명시된 동작들을 수행하도록 맞춤화된 특별 목적 머신화한다.
컴퓨터 시스템(600)은, 버스(602)에 결합되어 프로세서(604)를 위한 정적 정보 및 명령어를 저장하기 위한 판독 전용 메모리(ROM)(608) 또는 기타의 정적 저장 디바이스를 더 포함한다. 자기 디스크 또는 광 디스크 등의 저장 디바이스(610)가 제공되고 정보와 명령어를 저장하기 위해 버스(602)에 결합된다.
컴퓨터 시스템(600)은, 컴퓨터 사용자에게 정보를 디스플레이하기 위한 음극선관(CRT) 등의 디스플레이(612)에 버스(602)를 통해 결합될 수 있다. 영숫자 및 기타의 키들을 포함하는 입력 디바이스(614)는 버스(602)에 결합되어 정보와 명령 선택을 프로세서(604)에 전달한다. 또 다른 타입의 사용자 입력 디바이스는, 방향 정보와 명령 선택을 프로세서(604)에 전달하고 디스플레이(612) 상에서의 커서의 움직임을 제어하기 위한, 마우스, 트랙볼, 또는 커서 방향키 등의 커서 제어(616)이다. 이 입력 디바이스는, 통상적으로, 디바이스가 평면에서의 위치를 명시하는 것을 허용하는, 2개의 축, 제1 축(예를 들어, x) 및 제2 축(예를 들어, y)에서의 2개의 자유도를 갖는다.
컴퓨터 시스템(600)은, 컴퓨터 시스템과 조합하여 컴퓨터 시스템(600)이 특별 목적 머신이 되게 하는 맞춤형 하드 와이어드 로직, 하나 이상의 ASIC 또는 FPGA, 펌웨어 및/또는 프로그램 로직을 이용하여 여기서 설명된 기술들을 구현할 수 있다. 한 실시예에 따르면, 여기서의 기술들은, 메인 메모리(606)에 포함된 하나 이상의 명령어의 하나 이상의 시퀀스를 프로세서(604)가 실행하는 것에 응답하여 컴퓨터 시스템(600)에 의해 수행된다. 이러한 명령어는, 저장 디바이스(610) 등의, 또 다른 저장 매체로부터 메인 메모리(606) 내로 판독될 수 있다. 메인 메모리(606)에 포함된 명령어들의 시퀀스의 실행은 프로세서(604)로 하여금 여기서 설명된 프로세스 단계들을 수행하게 한다. 대안적 실시예에서, 소프트웨어 명령어를 대신하여 또는 이와 조합하여 하드 와이어드 회로가 이용될 수 있다.
여기서 사용된 용어 "저장 매체"는 머신으로 하여금 특정한 방식으로 동작하게 하는 데이터 및/또는 명령어를 저장하는 임의의 비일시적인 매체를 지칭한다. 이러한 저장 매체는 비휘발성 매체 및/또는 휘발성 매체를 포함할 수 있다. 비휘발성 매체는, 예를 들어, 저장 디바이스(610) 등의, 광 또는 자기 디스크를 포함한다. 휘발성 매체는, 메인 메모리(606) 등의, 동적 메모리를 포함한다. 일반적인 형태의 저장 매체로서는, 예를 들어, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 솔리드 스테이트 드라이브, 자기 테이프, 또는 기타 임의의 자기 데이터 저장 매체, CD-ROM, 기타 임의의 광학적 데이터 저장 매체, 구멍 패턴을 갖는 임의의 물리적 매체, RAM, PROM, 및 EPROM, FLASH-EPROM, NVRAM, 기타 임의의 메모리 칩 또는 카트리지가 포함된다.
저장 매체는 전송 매체와는 구별되지만 전송 매체와 연계하여 이용될 수 있다. 전송 매체는 저장 매체 사이에서 정보를 전송하는데 참여한다. 예를 들어, 전송 매체는, 버스(602)를 포함하는 와이어를 포함한, 동축 케이블, 구리선, 및 광섬유를 포함한다. 전송 매체는 또한, 라디오파 및 적외선 데이터 통신 동안에 발생되는 것들과 같은, 음향 또는 광파의 형태를 취할 수도 있다.
다양한 형태의 매체가, 하나 이상의 명령어의 하나 이상의 시퀀스를, 실행을 위해 프로세서(604)에 운반하는데 관여된다. 예를 들어, 명령어는 초기에 원격 컴퓨터의 자기 디스크 또는 솔리드 스테이트 드라이브 상에서 운반될 수 있다. 원격 컴퓨터는 동적 메모리 내에 명령어를 로딩하고 명령어를 모뎀을 이용하여 전화선을 통해 전송할 수 있다. 컴퓨터 시스템(600)의 로컬 모뎀은 전화선 상에서 데이터를 수신하고 적외선 전송기를 이용하여 데이터를 적외선 신호로 변환할 수 있다. 적외선 검출기는 적외선 신호로 운반된 데이터를 수신할 수 있고 적절한 회로가 데이터를 버스(602) 상에 둘 수 있다. 버스(602)는 데이터를 메인 메모리(606)에 운반하고, 메인 메모리(606)로부터 프로세서(604)는 명령어를 리트리브하여 실행한다. 메인 메모리(606)에 의해 수신된 명령어는, 선택사항으로서, 프로세서(604)에 의한 실행 이전에 또는 이후에 저장 디바이스(610) 상에 저장될 수 있다.
컴퓨터 시스템(600)은 또한 버스(602)에 결합된 통신 인터페이스(618)를 포함한다. 통신 인터페이스(618)는, 로컬 네트워크(622)에 접속되어 있는 네트워크 링크(620)에 결합하는 양방향 데이터 통신을 제공한다. 예를 들어, 통신 인터페이스(618)는, 종합 정보 통신망(ISDN) 카드, 케이블 모뎀, 위성 모뎀, 또는 대응하는 타입의 전화선으로의 데이터 통신 접속을 제공하는 모뎀일 수 있다. 또 다른 예로서, 통신 인터페이스(618)는 호환되는 LAN으로의 데이터 통신 접속을 제공하는 근거리 통신망(LAN)일 수도 있다. 무선 링크도 역시 구현될 수 있다. 임의의 이러한 구현에서, 통신 인터페이스(618)는, 다양한 타입의 정보를 나타내는 디지털 데이터 스트림을 운반하는, 전기적, 전자기적, 또는 광학적 신호를 송수신한다.
네트워크 링크(620)는 통상적으로 하나 이상의 네트워크를 통해 다른 데이터 디바이스로의 데이터 통신을 제공한다. 예를 들어, 네트워크 링크(620)는 로컬 네트워크(622)를 통해 호스트 컴퓨터(624)로의 또는 인터넷 서비스 제공자(ISP, 626)에 의해 운영되는 데이터 장비로의 접속을 제공할 수 있다. ISP(626)는, 차례로, 이제는 흔히 인터넷(628)이라 부르는 월드와이드 패킷 데이터 통신 네트워크를 통해 데이터 통신 서비스를 제공한다. 로컬 네트워크(622) 및 인터넷(628) 양쪽 모두는, 디지털 데이터 스트림을 운반하는 전기적, 전자기적, 또는 광학적 신호를 이용한다. 디지털 데이터를 컴퓨터 시스템(600)에 및 컴퓨터 시스템(600)으로부터 운반하는, 다양한 네트워크를 통한 신호 및 네트워크 링크(620) 상의 및 통신 인터페이스(618)를 통한 신호들은 전송 매체의 예시적인 형태이다.
컴퓨터 시스템(600)은, 네트워크(들), 네트워크 링크(620) 및 통신 인터페이스(618)를 통해, 프로그램 코드를 포함한 데이터를 수신하고 메시지를 전송할 수 있다. 인터넷 예에서, 서버(630)는, 인터넷(628), ISP(626), 로컬 네트워크(622), 및 통신 인터페이스(618)를 통해 애플리케이션 프로그램을 위한 요청된 코드를 전송할 수 있다.
수신된 코드는 수신시에 프로세서(604)에 의해 실행되거나, 및/또는 이후의 실행을 위해 저장 디바이스(610) 또는 기타의 비휘발성 저장장치 저장될 수도 있다.
상기 명세서에서, 본 발명의 실시예들이, 구현마다 다를 수 있는 많은 특정한 상세사항을 참조하여 설명되었다. 따라서, 본 명세서 및 도면은 제한적 의미라기보다는 예시적인 의미로 간주되어야 한다. 본 발명의 범위의 유일하고 배타적인 표시자, 및 출원인이 의도하는 본 발명의 범위는, 임의의 후속된 보정을 포함한, 이러한 청구항들이 허여되는 구체적인 형태로 된, 본 출원으로부터 허여되는 청구항 세트의 문언적이고 균등한 범위이다.
7.0 개시내용의 다른 양태들
상기 명세서에서, 본 발명의 실시예들이, 구현마다 다를 수 있는 많은 특정한 상세사항을 참조하여 설명되었다. 따라서, 본 발명의 범위의 유일하고 배타적인 표시자, 및 출원인이 의도하는 본 발명의 범위는, 임의의 후속된 보정을 포함한, 이러한 청구항들이 허여되는 구체적인 형태로 된, 본 출원으로부터 허여되는 청구항 세트이다. 이러한 청구항들에 포함된 용어에 대해 본 명세서에서 명시적으로 개시된 모든 정의는 청구항들에서 사용되는 이러한 용어들의 의미를 지배한다. 따라서, 청구항에서 명시적으로 기재되지 않은 어떠한 제한, 요소, 속성, 피쳐, 이점 또는 특성도 어떤 식으로든 이러한 청구항의 범위를 제한하지 않아야 한다. 따라서, 본 명세서 및 도면은 제한적 의미라기보다는 예시적인 의미로 간주되어야 한다.
여기서 설명된 주제의 양태들은 다음과 같은 넘버링된 조항들에서 개시된다.
1. 비디오 처리 시스템으로서 : 제1 비디오 및 상기 제1 비디오와 연관된 제2 비디오를 저장하는 데이터 스토어; 및 상기 데이터 스토어에 결합된 컴퓨터 프로세서를 포함하고, 상기 컴퓨터 프로세서는 : 상기 데이터 스토어에 저장된 상기 제1 비디오의 제1 모델 세그먼트 내의 제1 모델 프레임의 픽셀들에 기초하여 상기 제1 비디오의 제1 모델 지문을 생성하고; 상기 데이터 스토어에 저장된 상기 제2 비디오 내의 제1 테스트 프레임의 픽셀들에 기초하여 상기 제2 비디오의 제1 테스트 지문을 생성하며; 상기 제1 모델 지문과 상기 제1 테스트 지문 사이의 제1 근접성 값을 결정하고; 상기 제1 근접성 값에 기초하여, 상기 제1 테스트 프레임이 상기 제2 비디오 내의 제1 세그먼트 ―상기 제2 비디오 내의 상기 제1 세그먼트는 상기 제1 비디오 내의 상기 제1 모델 세그먼트와 유사함― 의 제1 경계인지를 결정하도록 프로그램된, 비디오 처리 시스템.
2. 제1조항에 있어서, 상기 컴퓨터 프로세서는 상기 제1 테스트 프레임이 제1 경계라는 결정에 응답하여, 상기 제1 경계가 상기 제2 비디오 내의 상기 제1 세그먼트의 종료 경계인지를 결정하고, 종료 경계라면, 상기 제2 비디오를 재생하도록 구성된 클라이언트 컴퓨터 상의 비디오 재생기에게 상기 종료 경계를 표시하는 값을 전송하도록 프로그램되고, 상기 값은 상기 비디오 재생기로 하여금 상기 종료 경계로 스킵하게 하는, 비디오 처리 시스템.
3. 제1조항 내지 제2 조항에 있어서, 상기 컴퓨터 프로세서는, 상기 제1 테스트 프레임이 제1 경계라는 결정에 응답하여, 상기 제1 경계가 상기 제2 비디오 내의 상기 제1 세그먼트의 시작 경계인지를 결정하고, 시작 경계라면, 상기 제2 비디오를 재생하도록 구성된 클라이언트 컴퓨터 상의 비디오 재생기에게 상기 시작 경계를 표시하는 값을 전송하도록 프로그램되고, 상기 값은 상기 비디오 재생기로 하여금 상기 제2 비디오의 재생을 중단하고 상기 제1 비디오와 연관된 제3 비디오를 요청하며 사용자를 위해 상기 제3 비디오의 재생을 시작하게 하는, 비디오 처리 시스템.
4. 제1조항 내지 제3조항 중 어느 한 조항에 있어서, 상기 컴퓨터 프로세서는 : 상기 데이터 스토어에 저장된 상기 제1 비디오의 상기 제1 모델 세그먼트 내의 제2 모델 프레임의 픽셀들에 기초하여 제2 모델 지문을 생성하고; 상기 데이터 스토어에 저장된 상기 제2 비디오 내의 제2 테스트 프레임의 픽셀들에 기초하여 제2 테스트 지문을 생성하며; 상기 제2 모델 지문과 상기 제2 테스트 지문 사이의 제2 근접성 값을 결정하고; 상기 제2 근접성 값에 기초하여, 상기 제2 테스트 프레임이 상기 제2 비디오 내의 상기 제1 세그먼트의 제2 경계 ―상기 제1 경계는 상기 제2 비디오 내의 상기 제1 세그먼트의 시작 경계이고 상기 제2 경계는 상기 제2 비디오 내의 상기 제1 세그먼트의 종료 경계임― 인지를 결정하며; 상기 제1 테스트 프레임이 상기 제1 경계이고 상기 제2 테스트 프레임이 상기 제2 경계라는 결정에 응답하여, 상기 시작 경계를 나타내는 제1 값과 상기 종료 경계를 나타내는 제2 값을 클라이언트 컴퓨터 상의 비디오 재생기에 전송하여, 상기 비디오 재생기가 상기 시작 경계에 도달할 때 상기 비디오 재생기가 상기 제2 비디오 내의 상기 종료 경계로 스킵하게 하도록 프로그램된, 비디오 처리 시스템.
5. 제1조항 내지 제4조항 중 어느 한 조항에 있어서, 상기 컴퓨터 프로세서는 : 상기 제1 모델 프레임의 제1 세트의 모델 픽셀들에 기초하여 제1 모델 색상 분포를 결정함으로써 상기 제1 모델 지문 ―상기 제1 모델 색상 분포 내의 각각의 특정한 색상은 상기 제1 세트의 모델 픽셀들 내의 얼마나 많은 픽셀들이 상기 특정한 색상을 할당받아 있는지를 나타내는 값과 연관됨― 을 생성하고; 상기 제1 테스트 프레임 내의 제1 세트의 테스트 픽셀들에 기초하여 제1 테스트 색상 분포를 결정함으로써 상기 제1 테스트 지문 ―상기 제1 테스트 색상 분포 내의 각각의 특정한 색상은 상기 제1 세트의 테스트 픽셀들 내의 얼마나 많은 픽셀들이 상기 특정한 색상을 할당받아 있는지를 나타내는 값과 연관됨― 을 생성하도록 프로그램된, 비디오 처리 시스템.
6. 제1조항 내지 제5조항 중 어느 한 조항에 있어서, 상기 컴퓨터 프로세서는 : 차이 값 세트 ―상기 차이 값 세트 내의 각각의 차이 값은 색상에 대응하고, 얼마나 많은 픽셀들이 상기 제1 테스트 색상 분포 내의 그 색상을 할당받아 있는지와 비교하여 얼마나 많은 픽셀들이 상기 제1 모델 색상 분포 내의 그 색상을 할당받아 있는지를 나타냄― 를 결정하고; 상기 차이 값 세트 내의 각각의 차이 값을 가산함으로써 합을 결정하고; 상기 합을 상기 제1 세트의 모델 픽셀들에 있는 픽셀 수로 나누어 상기 제1 근접성 값을 결정하도록 프로그램된, 비디오 처리 시스템.
7. 제1조항 내지 제6조항에 있어서, 상기 컴퓨터 프로세서는 상기 제1 모델 색상 분포를 상기 데이터 스토어에 상기 제1 모델 지문으로서 저장하도록 프로그램된, 비디오 처리 시스템.
8. 제1조항 내지 제7조항 중 어느 한 조항에 있어서, 상기 컴퓨터 프로세서는 : 상기 제1 세트의 모델 픽셀들 및 상기 제1 세트의 테스트 픽셀들로부터의 제1 색상 공간 내의 각각의 픽셀의 하나 이상의 제1 색상 성분을 제2 색상 공간 ―상기 제1 색상 공간과 상기 제2 색상 공간은 상이함― 에 정의된 하나 이상의 제2 색상 성분으로 변환하고; 상기 제1 세트의 모델 픽셀들 내의 각각의 픽셀의 하나 이상의 제2 색상 성분에 기초하여 상기 제1 모델 색상 분포를 결정하며; 상기 제1 세트의 테스트 픽셀들 내의 각각의 픽셀의 하나 이상의 제2 색상 성분에 기초하여 상기 제1 테스트 색상 분포를 결정하도록 프로그램된, 비디오 처리 시스템.
9. 제1조항 내지 제8조항 중 어느 한 조항에 있어서, 상기 컴퓨터 프로세서는 : 상기 데이터 스토어에 저장된 상기 제1 비디오의 상기 제1 모델 세그먼트 내의 제2 모델 프레임 ―상기 제2 모델 프레임은 상기 제1 모델 프레임과는 상이함― 의 픽셀들에 기초하여 제2 모델 지문을 생성하고; 상기 제2 비디오 내의 제2 테스트 프레임 내의 화소들에 기초하여 제2 테스트 지문을 생성하고; 상기 제2 모델 지문과 상기 제2 테스트 지문 사이의 제2 근접성 값을 결정하며; 상기 제2 근접성 값에 기초하여, 상기 제1 테스트 프레임이 상기 제2 비디오 내의 제1 세그먼트 ―상기 제2 비디오 내의 상기 제1 세그먼트는 상기 제1 비디오 내의 상기 제1 모델 세그먼트와 유사함― 의 제1 경계인지를 결정하도록 프로그램된, 비디오 처리 시스템.
10. 제1조항 내지 제9조항 중 어느 한 조항에 있어서, 상기 컴퓨터 프로세서는, 상기 제1 근접성 값과 상기 제2 근접성 값 양쪽 모두가 특정한 임계값 아래이면 상기 제1 프레임이 상기 제2 비디오 내의 상기 제1 세그먼트의 상기 제1 경계라고 결정하도록 프로그램된, 비디오 처리 시스템.
11. 제1조항 내지 제10조항 중 어느 한 조항에 있어서, 상기 컴퓨터 프로세서는 : 상기 제1 프레임 내에 얼굴이 있는지를 검출하고; 상기 제1 테스트 프레임 내에 얼굴이 검출된다는 결정에 응답하여, 클라이언트 컴퓨터 상의 비디오 재생기로부터의 데이터 ―상기 데이터는 상기 비디오 재생기가 상기 제1 테스트 프레임에서 시작하는 상기 제1 세그먼트를 스킵할 수 있다는 것을 나타냄― 를 보류하도록 프로그램된, 비디오 처리 시스템.
12. 제1조항 내지 제11조항 중 어느 한 조항에 있어서, 상기 제1 모델 프레임은 상기 제1 테스트 프레임과 같은 수의 픽셀을 갖는, 비디오 처리 시스템.
13. 실행될 때 하나 이상의 프로세서로 하여금 제1조항 내지 제12조항 중 어느 한 조항에 기재된 피쳐들 중 임의의 것을 수행하게 하는 명령어들의 하나 이상의 시퀀스를 저장한 비일시적 컴퓨터 판독가능한 데이터 저장 매체.
14. 하나 이상의 프로세서에서 구현될 때, 제1조항 내지 제12조항 중 어느 한 조항에 기재된 피쳐들 중 임의의 것을 실행하는 명령어들을 포함한 컴퓨터 프로그램 제품.
15. 하나 이상의 프로세서에서 구현될 때, 제1조항 내지 제12조항 중 어느 한 조항에 기재된 피쳐들 중 임의의 것을 실행하는 방법.
16. 클라이언트 컴퓨터에서 재생할 비디오를 서버 컴퓨터에게 요청하기 위한 방법으로서 : 사용자로부터 제1 비디오 타이틀을 선택하는 입력 ―상기 제1 비디오 타이틀은 제2 비디오 타이틀과 연관되고, 상기 제1 비디오 타이틀은 상기 제2 비디오 타이틀을 갖는 하나 이상의 공통 비디오 세그먼트를 포함함― 을 수신하는 단계; 스킵될 수 있는 하나 이상의 공통 세그먼트를 나타내는 상기 제1 비디오 타이틀과 연관된 메타데이터 세트를 상기 서버 컴퓨터에게 요청하는 단계; 및 상기 제1 비디오 타이틀과 연관된 상기 메타데이터를 수신하고, 이에 응답하여, 상기 하나 이상의 공통 비디오 세그먼트에 포함된 프레임들을 포함하는 하나 이상의 제2 비디오 청크를 요청하지 않고 상기 제1 비디오 타이틀과 연관된 하나 이상의 제1 비디오 청크를 요청하는 단계를 포함하고, 상기 방법은 하나 이상의 컴퓨팅 디바이스에 의해 수행되는, 방법.
17. 제16조항에 있어서, 상기 하나 이상의 제2 비디오 청크와 연관된 제2 세트의 오디오 데이터를 요청하지 않고서, 상기 하나 이상의 제1 비디오 청크와 연관된 제1 세트의 오디오 데이터를 요청하는 단계를 포함하는 방법.
18. 제16조항 또는 제17조항에 있어서, 상기 제1 비디오 타이틀과 연관된 비디오 및 오디오를 재생하는 단계; 스킵될 수 있는 상기 하나 이상의 공통 세그먼트의 각각의 경계에서 하나 이상의 시각적 효과 및 하나 이상의 오디오 효과를 적용하는 단계를 포함하는 방법.
19. 실행될 때 하나 이상의 프로세서로 하여금 제16조항 내지 제18조항 중 어느 한 조항에 기재된 방법들 중 임의의 것을 수행하게 하는 명령어들의 하나 이상의 시퀀스를 저장한 비일시적 컴퓨터 판독가능한 데이터 저장 매체.
20. 실행될 때 하나 이상의 프로세서로 하여금 제16조항 내지 제18조항 중 어느 한 조항에 기재된 방법들 중 임의의 것을 실행하는 명령어들을 포함하는 컴퓨터 프로그램 제품.
21. 제16조항 내지 제18조항 중 어느 한 조항에 기재된 방법들 중 임의의 것을 수행하도록 구성된 프로세서를 갖는 컴퓨팅 디바이스.
22. 디지털 비디오 배포 시스템으로서 : 메모리; 상기 메모리에 결합된 하나 이상의 프로세서; 상기 하나 이상의 프로세서 및 상기 메모리에 결합되고, 제1 비디오의 모델 세그먼트 내의 제1 모델 프레임의 픽셀들에 기초하여 상기 제1 비디오의 제1 모델 지문을 생성하고; 제1 테스트 프레임의 픽셀들에 기초하여 제2 비디오의 제1 테스트 지문을 생성하도록 구성된 지문 생성 로직; 상기 메모리 및 상기 하나 이상의 프로세서에 결합되고, 상기 제1 모델 지문과 제1 테스트 지문 사이의 제1 근접성 값을 결정하도록 구성된 지문 비교 로직; 상기 메모리 및 상기 하나 이상의 프로세서에 결합되고, 상기 제1 근접성 값에 기초하여, 상기 제1 테스트 프레임이 상기 제2 비디오 내의 한 세그먼트의 제1 경계라고 결정하도록 구성된 세그먼트 검출 로직을 포함하는, 디지털 비디오 배포 시스템.
23. 제22조항에 있어서, 상기 지문 생성 로직은, 상기 제1 비디오의 상기 모델 세그먼트 내의 제2 모델 프레임의 픽셀들에 기초하여, 상기 제1 비디오의 제2 모델 지문을 생성하고; 상기 제2 비디오 내의 제2 테스트 프레임의 픽셀들에 기초하여, 상기 제2 비디오의 제2 테스트 지문을 생성하도록 구성되고; 상기 지문 비교 로직은 상기 제2 모델 지문과 상기 제2 테스트 지문 사이의 제2 근접성 값을 결정하도록 구성되며; 상기 세그먼트 검출 로직은, 상기 제2 근접성 값에 기초하여, 상기 제2 테스트 프레임이 상기 제2 비디오 내의 상기 세그먼트의 제2 경계라고 결정하도록 구성된, 디지털 비디오 배포 시스템.
24. 제22조항 또는 제23조항에 있어서, 상기 세그먼트 검출 로직에 결합된 저장장치를 포함하고, 상기 세그먼트 검출 로직은, 상기 제1 테스트 프레임이 상기 제2 비디오 내의 상기 세그먼트의 상기 제1 경계이고 상기 제2 테스트 프레임이 상기 제2 비디오 내의 상기 세그먼트의 상기 제2 경계임을 나타내는 상기 제2 비디오와 연관된 메타데이터 세트를 상기 저장장치에 저장하도록 구성된, 디지털 비디오 배포 시스템.
25. 제22조항 내지 제24조항에 있어서, 상기 저장장치에 결합된 비디오 카탈로그 서버 컴퓨터를 포함하고, 상기 비디오 카탈로그 서버 컴퓨터는 클라이언트 비디오 재생기 컴퓨터로부터 상기 제2 비디오와 연관된 메타데이터에 대한 요청을 수신하고, 이에 응답하여, 상기 제2 비디오와 연관된 메타데이터 세트를 리트리브하며, 상기 메타데이터 세트를 상기 클라이언트 비디오 재생기 컴퓨터에 전송하도록 구성된, 디지털 비디오 배포 시스템.
26. 제22조항 내지 제25조항 중 어느 한 조항에 있어서, 상기 클라이언트 비디오 재생기 컴퓨터는 하나 이상의 컴퓨터 네트워크를 통해 상기 비디오 카탈로그 서버 컴퓨터에 결합되고, 상기 메타데이터 세트에서 식별된 상기 제2 비디오 내의 상기 세그먼트의 적어도 일부를 요청, 다운로딩 또는 재생하지 않고서, 상기 제2 비디오를 재생하도록 구성된, 디지털 비디오 배포 시스템.
27. 실행될 때 하나 이상의 프로세서로 하여금 제22조항 내지 제25조항 중 어느 한 조항에 기재된 피쳐들 중 임의의 것을 수행하게 하는 명령어들의 하나 이상의 시퀀스를 저장한 비일시적 컴퓨터 판독가능한 데이터 저장 매체.
28. 하나 이상의 프로세서에서 구현될 때, 제22조항 내지 제25조항 중 어느 한 조항에 기재된 피쳐들 중 임의의 것을 실행하는 명령어들을 포함하는 컴퓨터 프로그램 제품.
29. 하나 이상의 프로세서에서 구현될 때, 제22조항 내지 제25조항 중 어느 한 조항에 기재된 피쳐들 중 임의의 것을 실행하는 방법.

Claims (20)

  1. 비디오 처리 시스템으로서,
    제1 비디오 및 상기 제1 비디오와 연관된 제2 비디오를 저장하는 데이터 스토어;
    상기 데이터 스토어에 결합된 컴퓨터 프로세서
    를 포함하고, 상기 컴퓨터 프로세서는 :
    상기 데이터 스토어에 저장된 상기 제1 비디오의 제1 모델 세그먼트 내의 제1 모델 프레임의 픽셀들에 기초하여 상기 제1 비디오의 제1 모델 지문을 생성하고;
    상기 데이터 스토어에 저장된 상기 제2 비디오 내의 제1 테스트 프레임의 픽셀들에 기초하여 상기 제2 비디오의 제1 테스트 지문을 생성하며;
    상기 제1 모델 지문과 상기 제1 테스트 지문 사이의 제1 근접성 값을 결정하고;
    상기 제1 근접성 값에 기초하여, 상기 제1 테스트 프레임이 상기 제2 비디오 내의 제1 세그먼트 ―상기 제2 비디오 내의 상기 제1 세그먼트는 상기 제1 비디오 내의 상기 제1 모델 세그먼트와 유사함― 의 제1 경계인지를 결정하도록 프로그램된, 비디오 처리 시스템.
  2. 제1항에 있어서, 상기 컴퓨터 프로세서는, 상기 제1 테스트 프레임이 제1 경계라는 결정에 응답하여, 상기 제1 경계가 상기 제2 비디오 내의 상기 제1 세그먼트의 종료 경계인지를 결정하고, 종료 경계라면, 상기 제2 비디오를 재생하도록 구성된 클라이언트 컴퓨터 상의 비디오 재생기에게 상기 종료 경계를 표시하는 값을 전송하도록 프로그램되고, 상기 종료 경계를 표시하는 값은 상기 비디오 재생기로 하여금 상기 종료 경계로 스킵하게 하는, 비디오 처리 시스템.
  3. 제1항에 있어서, 상기 컴퓨터 프로세서는, 상기 제1 테스트 프레임이 제1 경계라는 결정에 응답하여, 상기 제1 경계가 상기 제2 비디오 내의 상기 제1 세그먼트의 시작 경계인지를 결정하고, 시작 경계라면, 상기 제2 비디오를 재생하도록 구성된 클라이언트 컴퓨터 상의 비디오 재생기에게 상기 시작 경계를 표시하는 값을 전송하도록 프로그램되고, 상기 시작 경계를 표시하는 값은 상기 비디오 재생기로 하여금 상기 제2 비디오의 재생을 중단하고 상기 제1 비디오와 연관된 제3 비디오를 요청하며 사용자를 위해 상기 제3 비디오의 재생을 시작하게 하는, 비디오 처리 시스템.
  4. 제1항에 있어서, 상기 컴퓨터 프로세서는 :
    상기 데이터 스토어에 저장된 상기 제1 비디오의 상기 제1 모델 세그먼트 내의 제2 모델 프레임의 픽셀들에 기초하여 제2 모델 지문을 생성하고;
    상기 데이터 스토어에 저장된 상기 제2 비디오 내의 제2 테스트 프레임의 픽셀들에 기초하여 제2 테스트 지문을 생성하며;
    상기 제2 모델 지문과 상기 제2 테스트 지문 사이의 제2 근접성 값을 결정하고;
    상기 제2 근접성 값에 기초하여, 상기 제2 테스트 프레임이 상기 제2 비디오 내의 상기 제1 세그먼트의 제2 경계 ―상기 제1 경계는 상기 제2 비디오 내의 상기 제1 세그먼트의 시작 경계이고 상기 제2 경계는 상기 제2 비디오 내의 상기 제1 세그먼트의 종료 경계임― 인지를 결정하며;
    상기 제1 테스트 프레임이 상기 제1 경계이고 상기 제2 테스트 프레임이 상기 제2 경계라는 결정에 응답하여, 상기 시작 경계를 나타내는 제1 값과 상기 종료 경계를 나타내는 제2 값을 클라이언트 컴퓨터 상의 비디오 재생기에 전송하여, 상기 비디오 재생기가 상기 시작 경계에 도달할 때 상기 비디오 재생기로 하여금 상기 제2 비디오 내의 상기 종료 경계로 스킵하게 하도록 프로그램된, 비디오 처리 시스템.
  5. 제1항에 있어서, 상기 컴퓨터 프로세서는 :
    상기 제1 모델 프레임의 제1 세트의 모델 픽셀들에 기초하여 제1 모델 색상 분포를 결정함으로써 상기 제1 모델 지문 ―상기 제1 모델 색상 분포 내의 각각의 특정한 색상은 상기 제1 세트의 모델 픽셀들 내의 얼마나 많은 픽셀들이 상기 특정한 색상을 할당받아 있는지를 나타내는 값과 연관됨― 을 생성하고;
    상기 제1 테스트 프레임 내의 제1 세트의 테스트 픽셀들에 기초하여 제1 테스트 색상 분포를 결정함으로써 상기 제1 테스트 지문 ―상기 제1 테스트 색상 분포 내의 각각의 특정한 색상은 상기 제1 세트의 테스트 픽셀들 내의 얼마나 많은 픽셀들이 상기 특정한 색상을 할당받아 있는지를 나타내는 값과 연관됨― 을 생성하도록 프로그램된, 비디오 처리 시스템.
  6. 제5항에 있어서, 상기 컴퓨터 프로세서는 :
    차이 값 세트 ―상기 차이 값 세트 내의 각각의 차이 값은 색상에 대응하고, 얼마나 많은 픽셀들이 상기 제1 테스트 색상 분포 내의 그 색상을 할당받아 있는지와 비교하여 얼마나 많은 픽셀들이 상기 제1 모델 색상 분포 내의 그 색상을 할당받아 있는지를 나타냄― 를 결정하고;
    상기 차이 값 세트 내의 각각의 차이 값을 가산함으로써 합을 결정하며;
    상기 합을 상기 제1 세트의 모델 픽셀들에 있는 픽셀 수로 나누어 상기 제1 근접성 값을 결정하도록 프로그램된, 비디오 처리 시스템.
  7. 제5항에 있어서, 상기 컴퓨터 프로세서는 상기 제1 모델 색상 분포를 상기 데이터 스토어에 상기 제1 모델 지문으로서 저장하도록 프로그램된, 비디오 처리 시스템.
  8. 제5항에 있어서, 상기 컴퓨터 프로세서는 :
    상기 제1 세트의 모델 픽셀들 및 상기 제1 세트의 테스트 픽셀들로부터의 제1 색상 공간 내의 각각의 픽셀의 하나 이상의 제1 색상 성분을 제2 색상 공간 ―상기 제1 색상 공간과 상기 제2 색상 공간은 상이함― 에 정의된 하나 이상의 제2 색상 성분으로 변환하고;
    상기 제1 세트의 모델 픽셀들 내의 각각의 픽셀의 하나 이상의 제2 색상 성분에 기초하여 상기 제1 모델 색상 분포를 결정하며;
    상기 제1 세트의 테스트 픽셀들 내의 각각의 픽셀의 하나 이상의 제2 색상 성분에 기초하여 상기 제1 테스트 색상 분포를 결정하도록 프로그램된, 비디오 처리 시스템.
  9. 제1항에 있어서, 상기 컴퓨터 프로세서는 :
    상기 데이터 스토어에 저장된 상기 제1 비디오의 상기 제1 모델 세그먼트 내의 제2 모델 프레임 ―상기 제2 모델 프레임은 상기 제1 모델 프레임과는 상이함― 의 픽셀들에 기초하여 제2 모델 지문을 생성하고;
    상기 제2 비디오 내의 제2 테스트 프레임의 픽셀들에 기초하여 제2 테스트 지문을 생성하며;
    상기 제2 모델 지문과 상기 제2 테스트 지문 사이의 제2 근접성 값을 결정하고;
    상기 제2 근접성 값에 기초하여, 상기 제1 테스트 프레임이 상기 제2 비디오 내의 제1 세그먼트 ―상기 제2 비디오 내의 상기 제1 세그먼트는 상기 제1 비디오 내의 상기 제1 모델 세그먼트와 유사함― 의 제1 경계인지를 결정하도록 프로그램된, 비디오 처리 시스템.
  10. 제9항에 있어서, 상기 컴퓨터 프로세서는, 상기 제1 근접성 값과 상기 제2 근접성 값 양쪽 모두가 특정한 임계값 아래이면 상기 제1 테스트 프레임이 상기 제2 비디오 내의 상기 제1 세그먼트의 상기 제1 경계라고 결정하도록 프로그램된, 비디오 처리 시스템.
  11. 제1항에 있어서, 상기 컴퓨터 프로세서는 :
    상기 제1 테스트 프레임 내에 얼굴이 있는지를 검출하고;
    상기 제1 테스트 프레임 내에 얼굴이 검출된다는 결정에 응답하여, 클라이언트 컴퓨터 상의 비디오 재생기로부터의 데이터 ―상기 데이터는 상기 비디오 재생기가 상기 제1 테스트 프레임에서 시작하는 상기 제1 세그먼트를 스킵할 수 있다는 것을 나타냄― 를 보류하도록 프로그램된, 비디오 처리 시스템.
  12. 제1항에 있어서, 상기 제1 모델 프레임은 상기 제1 테스트 프레임과 같은 수의 픽셀을 갖는, 비디오 처리 시스템.
  13. 클라이언트 컴퓨터에서 재생할 비디오를 서버 컴퓨터에게 요청하기 위한 방법으로서,
    사용자로부터 제1 비디오 타이틀을 선택하는 입력 ―상기 제1 비디오 타이틀은 제2 비디오 타이틀과 연관되고, 상기 제1 비디오 타이틀은 상기 제2 비디오 타이틀을 갖는 하나 이상의 공통 비디오 세그먼트를 포함함― 을 수신하는 단계;
    스킵될 수 있는 하나 이상의 공통 세그먼트를 나타내는 상기 제1 비디오 타이틀과 연관된 메타데이터 세트를 상기 서버 컴퓨터에게 요청하는 단계; 및
    상기 제1 비디오 타이틀과 연관된 상기 메타데이터를 수신하고, 이에 응답하여, 상기 하나 이상의 공통 비디오 세그먼트에 포함된 프레임들을 포함하는 하나 이상의 제2 비디오 청크를 요청하지 않고 상기 제1 비디오 타이틀과 연관된 하나 이상의 제1 비디오 청크를 요청하는 단계
    를 포함하고,
    상기 방법은 하나 이상의 컴퓨팅 디바이스에 의해 수행되는, 방법.
  14. 제13항에 있어서, 상기 하나 이상의 제2 비디오 청크와 연관된 제2 세트의 오디오 데이터를 요청하지 않고서, 상기 하나 이상의 제1 비디오 청크와 연관된 제1 세트의 오디오 데이터를 요청하는 단계를 포함하는 방법.
  15. 제13항에 있어서,
    상기 제1 비디오 타이틀과 연관된 비디오 및 오디오를 재생하는 단계;
    스킵될 수 있는 상기 하나 이상의 공통 세그먼트의 각각의 경계에서 하나 이상의 시각적 효과 및 하나 이상의 오디오 효과를 적용하는 단계를 포함하는 방법.
  16. 디지털 비디오 배포 시스템으로서,
    메모리;
    상기 메모리에 결합된 하나 이상의 프로세서;
    상기 하나 이상의 프로세서 및 상기 메모리에 결합된 지문 생성 로직 ―상기 지문 생성 로직은
    제1 비디오의 모델 세그먼트 내의 제1 모델 프레임의 픽셀들에 기초하여, 상기 제1 비디오의 제1 모델 지문을 생성하고;
    제1 테스트 프레임의 픽셀들에 기초하여 제2 비디오의 제1 테스트 지문을 생성하도록 구성됨―;
    상기 메모리 및 상기 하나 이상의 프로세서에 결합되고, 상기 제1 모델 지문과 상기 제1 테스트 지문 사이의 제1 근접성 값을 결정하도록 구성된 지문 비교 로직; 및
    상기 메모리 및 상기 하나 이상의 프로세서에 결합되고, 상기 제1 근접성 값에 기초하여, 상기 제1 테스트 프레임이 상기 제2 비디오 내의 한 세그먼트의 제1 경계라고 결정하도록 구성된 세그먼트 검출 로직
    을 포함하는 디지털 비디오 배포 시스템.
  17. 제16항에 있어서, 상기 지문 생성 로직은,
    상기 제1 비디오의 상기 모델 세그먼트 내의 제2 모델 프레임의 픽셀들에 기초하여, 상기 제1 비디오의 제2 모델 지문을 생성하고;
    상기 제2 비디오 내의 제2 테스트 프레임의 픽셀들에 기초하여, 상기 제2 비디오의 제2 테스트 지문을 생성하도록 구성되고;
    상기 지문 비교 로직은 상기 제2 모델 지문과 상기 제2 테스트 지문 사이의 제2 근접성 값을 결정하도록 구성되며;
    상기 세그먼트 검출 로직은, 상기 제2 근접성 값에 기초하여, 상기 제2 테스트 프레임이 상기 제2 비디오 내의 상기 세그먼트의 제2 경계라고 결정하도록 구성된, 디지털 비디오 배포 시스템.
  18. 제17항에 있어서, 상기 세그먼트 검출 로직에 결합된 저장장치를 포함하고, 상기 세그먼트 검출 로직은, 상기 제1 테스트 프레임이 상기 제2 비디오 내의 상기 세그먼트의 상기 제1 경계이고 상기 제2 테스트 프레임이 상기 제2 비디오 내의 상기 세그먼트의 상기 제2 경계임을 나타내는 상기 제2 비디오와 연관된 메타데이터 세트를 상기 저장장치에 저장하도록 구성된, 디지털 비디오 배포 시스템.
  19. 제18항에 있어서, 상기 저장장치에 결합된 비디오 카탈로그 서버 컴퓨터를 포함하고, 상기 비디오 카탈로그 서버 컴퓨터는 클라이언트 비디오 재생기 컴퓨터로부터 상기 제2 비디오와 연관된 메타데이터에 대한 요청을 수신하고, 이에 응답하여, 상기 제2 비디오와 연관된 상기 메타데이터 세트를 리트리브하며(retrieve), 상기 메타데이터 세트를 상기 클라이언트 비디오 재생기 컴퓨터에 전송하도록 구성된, 디지털 비디오 배포 시스템.
  20. 제19항에 있어서, 상기 클라이언트 비디오 재생기 컴퓨터는 하나 이상의 컴퓨터 네트워크를 통해 상기 비디오 카탈로그 서버 컴퓨터에 결합되고, 상기 메타데이터 세트에서 식별된 상기 제2 비디오 내의 상기 세그먼트의 적어도 일부를 요청, 다운로딩 또는 재생하지 않고서, 상기 제2 비디오를 재생하도록 구성된, 디지털 비디오 배포 시스템.
KR1020177029505A 2015-03-17 2016-02-11 비디오 프로그램의 세그먼트 검출 KR102004637B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/660,894 US9418296B1 (en) 2015-03-17 2015-03-17 Detecting segments of a video program
US14/660,894 2015-03-17
PCT/US2016/017528 WO2016148807A1 (en) 2015-03-17 2016-02-11 Detecting segments of a video program

Publications (2)

Publication Number Publication Date
KR20170128501A KR20170128501A (ko) 2017-11-22
KR102004637B1 true KR102004637B1 (ko) 2019-07-26

Family

ID=55629094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177029505A KR102004637B1 (ko) 2015-03-17 2016-02-11 비디오 프로그램의 세그먼트 검출

Country Status (10)

Country Link
US (3) US9418296B1 (ko)
EP (1) EP3271865B1 (ko)
JP (1) JP6564464B2 (ko)
KR (1) KR102004637B1 (ko)
CN (1) CN107534796B (ko)
AU (3) AU2016233893B2 (ko)
CA (1) CA2979177C (ko)
MX (1) MX2017011793A (ko)
PL (1) PL3271865T3 (ko)
WO (1) WO2016148807A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9146990B2 (en) * 2013-01-07 2015-09-29 Gracenote, Inc. Search and identification of video content
US9418296B1 (en) 2015-03-17 2016-08-16 Netflix, Inc. Detecting segments of a video program
CN107810638A (zh) * 2015-06-24 2018-03-16 汤姆逊许可公司 通过跳过冗余片段优化顺序内容的传递
US9734409B2 (en) * 2015-06-24 2017-08-15 Netflix, Inc. Determining native resolutions of video sequences
US10375443B2 (en) * 2015-07-31 2019-08-06 Rovi Guides, Inc. Method for enhancing a user viewing experience when consuming a sequence of media
US10938871B2 (en) 2016-11-29 2021-03-02 Roku, Inc. Skipping content of lesser interest when streaming media
US10291964B2 (en) * 2016-12-06 2019-05-14 At&T Intellectual Property I, L.P. Multimedia broadcast system
US10560506B2 (en) * 2017-07-19 2020-02-11 Netflix, Inc. Identifying previously streamed portions of a media title to avoid repetitive playback
US10601686B2 (en) * 2017-10-17 2020-03-24 Rovi Guides, Inc. Systems and methods for improving quality of service while streaming code-agnostic content
US11416546B2 (en) * 2018-03-20 2022-08-16 Hulu, LLC Content type detection in videos using multiple classifiers
CN108769731B (zh) * 2018-05-25 2021-09-24 北京奇艺世纪科技有限公司 一种检测视频中目标视频片段的方法、装置及电子设备
CN110691281B (zh) * 2018-07-04 2022-04-01 北京字节跳动网络技术有限公司 视频播放处理方法、终端设备、服务器及存储介质
CN109101964B (zh) * 2018-08-15 2023-04-07 腾讯科技(深圳)有限公司 确定多媒体文件中首尾区域的方法、设备及存储介质
US10694244B2 (en) 2018-08-23 2020-06-23 Dish Network L.L.C. Automated transition classification for binge watching of content
US11611803B2 (en) 2018-12-31 2023-03-21 Dish Network L.L.C. Automated content identification for binge watching of digital media
US10917674B2 (en) * 2019-03-08 2021-02-09 Rovi Guides, Inc. Systems and methods for providing media content for continuous watching
EP3794835A1 (en) * 2019-03-08 2021-03-24 Rovi Guides, Inc. Systems and methods for providing media content for continuous watching
US10887652B2 (en) * 2019-03-08 2021-01-05 Rovi Guides, Inc. Systems and methods for providing media content for continuous watching
US11328014B2 (en) * 2019-10-25 2022-05-10 Google Llc Frame-accurate automated cutting of media content by using multiple airings
CN111479130B (zh) * 2020-04-02 2023-09-26 腾讯科技(深圳)有限公司 一种视频定位方法、装置、电子设备和存储介质
US20210319230A1 (en) 2020-04-10 2021-10-14 Gracenote, Inc. Keyframe Extractor
US11240561B2 (en) 2020-06-29 2022-02-01 Rovi Guides, Inc. Systems and methods for providing improved skip and delay functionality in media assets
US11647253B2 (en) 2020-06-29 2023-05-09 Rovi Guides, Inc. Systems and methods for providing improved skip and delay functionality in media assets
CN113766311B (zh) * 2021-04-29 2023-06-02 腾讯科技(深圳)有限公司 用于确定视频中的视频段数的方法及装置
CN113537082B (zh) * 2021-07-20 2023-04-07 郑州轻工业大学 一种基于信息不全的故障辨识方法
CN113627363B (zh) * 2021-08-13 2023-08-15 百度在线网络技术(北京)有限公司 视频文件的处理方法、装置、设备以及存储介质
US11930189B2 (en) * 2021-09-30 2024-03-12 Samsung Electronics Co., Ltd. Parallel metadata generation based on a window of overlapped frames

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080154908A1 (en) 2006-12-22 2008-06-26 Google Inc. Annotation Framework for Video
US20100290667A1 (en) 2003-03-07 2010-11-18 Technology Patents & Licensing, Inc. Video entity recognition in compressed digital video streams

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0636026A (ja) * 1992-07-13 1994-02-10 Toshiba Corp 動画像処理装置
JP2000004423A (ja) * 1998-06-17 2000-01-07 Sony Corp 情報再生装置及び方法
JP2000250944A (ja) * 1998-12-28 2000-09-14 Toshiba Corp 情報提供方法、情報提供装置、情報受信装置、並びに情報記述方法
JP3971614B2 (ja) * 2001-01-22 2007-09-05 松下電器産業株式会社 画像データ送信方法及び画像データ送信装置
CN1595970A (zh) * 2004-06-22 2005-03-16 威盛电子股份有限公司 根据开始/结束片段特定画面检测广告片段的方法及系统
US8406607B2 (en) * 2004-08-12 2013-03-26 Gracenote, Inc. Selection of content from a stream of video or audio data
WO2006109515A1 (ja) * 2005-03-31 2006-10-19 Pioneer Corporation 操作者認識装置、操作者認識方法、および、操作者認識プログラム
US20060271947A1 (en) 2005-05-23 2006-11-30 Lienhart Rainer W Creating fingerprints
US20090103886A1 (en) * 2005-06-27 2009-04-23 Matsushita Electric Industrial Co., Ltd. Same scene detection method, device, and storage medium containing program
JP2007048379A (ja) * 2005-08-10 2007-02-22 Canon Inc プログラムの再生方法
WO2008062145A1 (en) 2006-11-22 2008-05-29 Half Minute Media Limited Creating fingerprints
US7631557B2 (en) * 2007-01-24 2009-12-15 Debeliso Mark Grip force transducer and grip force assessment system and method
JP2008193585A (ja) * 2007-02-07 2008-08-21 Victor Co Of Japan Ltd 放送番組記録再生装置および放送番組記録再生方法
KR101330637B1 (ko) * 2007-05-15 2013-11-18 삼성전자주식회사 영상 및 영상 정보 검색 장치 및 방법, 그리고 그 시스템
CN101715650B (zh) * 2007-06-28 2012-03-21 纽约市哥伦比亚大学信托人 机顶盒对等端辅助的视频点播
US8417037B2 (en) 2007-07-16 2013-04-09 Alexander Bronstein Methods and systems for representation and matching of video content
JP5074864B2 (ja) * 2007-09-03 2012-11-14 シャープ株式会社 データ送信装置、データ送信方法、視聴環境制御装置、視聴環境制御システム、及び視聴環境制御方法
JP5354664B2 (ja) * 2009-05-28 2013-11-27 Necカシオモバイルコミュニケーションズ株式会社 デジタルデータ受信機、及び、プログラム
WO2011021289A1 (ja) * 2009-08-20 2011-02-24 富士通株式会社 動画像処理装置、サムネイル画像生成プログラムおよびサムネイル画像生成方法
JP2012080354A (ja) * 2010-10-01 2012-04-19 Video Research:Kk 検出装置及び検出方法
US20120106854A1 (en) * 2010-10-28 2012-05-03 Feng Tang Event classification of images from fusion of classifier classifications
JP2012175478A (ja) * 2011-02-23 2012-09-10 Hitachi Consumer Electronics Co Ltd デジタルコンテンツ再生装置、および、メタデータ生成方法
JP2012244446A (ja) * 2011-05-20 2012-12-10 Hitachi Consumer Electronics Co Ltd コンテンツ受信機およびコンテンツ受信方法
JP5372068B2 (ja) * 2011-05-20 2013-12-18 キヤノン株式会社 撮像システム、画像処理装置
CN102323948A (zh) * 2011-09-07 2012-01-18 上海大学 一种电视剧视频片头片尾自动检测方法
CN102799605B (zh) * 2012-05-02 2016-03-23 天脉聚源(北京)传媒科技有限公司 一种广告监播方法和系统
CN102737689B (zh) * 2012-06-08 2016-01-20 Tcl集团股份有限公司 一种片头/片尾位置的定位方法、装置及电视
CN102779184B (zh) * 2012-06-29 2014-05-14 中国科学院自动化研究所 一种近似重复视频片段自动定位方法
US9773228B2 (en) * 2012-11-02 2017-09-26 Facebook, Inc. Systems and methods for sharing images in a social network
US20140255004A1 (en) * 2013-03-07 2014-09-11 International Business Machines Corporation Automatically determining and tagging intent of skipped streaming and media content for collaborative reuse
CN103686340B (zh) * 2013-12-05 2017-12-12 深圳Tcl新技术有限公司 电子播放设备的节目播放方法及电子播放设备
CN103747327A (zh) * 2013-12-20 2014-04-23 Tcl集团股份有限公司 过滤广告的频道切换方法及装置
CN103716676B (zh) * 2013-12-30 2017-07-28 深圳Tcl新技术有限公司 智能电视的视频节目播放方法及装置
CN104113780A (zh) * 2014-06-25 2014-10-22 小米科技有限责任公司 广告处理方法及装置
CN104166685B (zh) * 2014-07-24 2017-07-11 北京捷成世纪科技股份有限公司 一种检测视频片段的方法和装置
US9418296B1 (en) * 2015-03-17 2016-08-16 Netflix, Inc. Detecting segments of a video program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100290667A1 (en) 2003-03-07 2010-11-18 Technology Patents & Licensing, Inc. Video entity recognition in compressed digital video streams
US20080154908A1 (en) 2006-12-22 2008-06-26 Google Inc. Annotation Framework for Video

Also Published As

Publication number Publication date
WO2016148807A1 (en) 2016-09-22
JP2018514118A (ja) 2018-05-31
US9727788B2 (en) 2017-08-08
AU2018271355A1 (en) 2018-12-20
CA2979177C (en) 2021-01-26
US10452919B2 (en) 2019-10-22
US9418296B1 (en) 2016-08-16
KR20170128501A (ko) 2017-11-22
AU2020217352A1 (en) 2020-09-03
PL3271865T3 (pl) 2024-01-29
EP3271865A1 (en) 2018-01-24
CN107534796A (zh) 2018-01-02
US20160342844A1 (en) 2016-11-24
AU2016233893A1 (en) 2017-09-28
AU2018271355B2 (en) 2020-05-28
EP3271865B1 (en) 2023-07-05
US20170337427A1 (en) 2017-11-23
JP6564464B2 (ja) 2019-08-21
CN107534796B (zh) 2020-11-20
CA2979177A1 (en) 2016-09-22
MX2017011793A (es) 2018-04-20
AU2016233893B2 (en) 2018-08-30

Similar Documents

Publication Publication Date Title
KR102004637B1 (ko) 비디오 프로그램의 세그먼트 검출
US11381739B2 (en) Panoramic virtual reality framework providing a dynamic user experience
US9118886B2 (en) Annotating general objects in video
JP6624958B2 (ja) 通信装置、通信システム、通信制御方法およびコンピュータプログラム
US20150156557A1 (en) Display apparatus, method of displaying image thereof, and computer-readable recording medium
WO2019119854A1 (zh) 一种调整视频播放清晰度的方法和系统
WO2020056903A1 (zh) 用于生成信息的方法和装置
KR101964126B1 (ko) 고화질 동영상의 스트리밍 전송 장치 및 방법
US20240056549A1 (en) Method, computer device, and computer program for providing high-quality image of region of interest by using single stream
US20160127679A1 (en) Computed information for metadata extraction applied to transcoding
CN105611430B (zh) 用于处理视频内容的方法和系统
KR102232899B1 (ko) 클라우드 스트리밍 서비스 시스템, 이미지 타입에 따른 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US20220264170A1 (en) Systems and methods for dynamically adjusting quality levels for transmitting content based on context
WO2022103397A1 (en) Automatic non-linear editing style transfer
US20230276111A1 (en) Video processing
JP6623905B2 (ja) サーバ装置、情報処理方法およびプログラム
KR20240037556A (ko) 인공지능을 기반으로 비디오 품질을 강화시키는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
KR20150041382A (ko) 자막파일의 언어정보를 표시하는 웹하드서버

Legal Events

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