KR20210022134A - 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용 - Google Patents

프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용 Download PDF

Info

Publication number
KR20210022134A
KR20210022134A KR1020217004201A KR20217004201A KR20210022134A KR 20210022134 A KR20210022134 A KR 20210022134A KR 1020217004201 A KR1020217004201 A KR 1020217004201A KR 20217004201 A KR20217004201 A KR 20217004201A KR 20210022134 A KR20210022134 A KR 20210022134A
Authority
KR
South Korea
Prior art keywords
client
media stream
media
time
received
Prior art date
Application number
KR1020217004201A
Other languages
English (en)
Other versions
KR102484054B1 (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 KR20210022134A publication Critical patent/KR20210022134A/ko
Application granted granted Critical
Publication of KR102484054B1 publication Critical patent/KR102484054B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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
    • 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
    • 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/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/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/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Abstract

컴퓨팅 시스템은 (i) 클라이언트에 의해 수신되고 있는 미디어 스트림을 나타내는 쿼리 핑거프린트들과 (ii) 레퍼런스 핑거프린트들 사이의 복수의 매칭 포인트들을 식별하며, 각각의 식별된 매칭 포인트는 클라이언트의 클럭에 따라 정의된 클라이언트 시간으로 타임스탬프된 쿼리 핑거프린트와 기지의(known) 미디어 스트림 내의 타임라인에 따른 실제 시간으로 타임스탬프된 레퍼런스 핑거프린트 사이의 각각의 매칭을 정의한다. 또한, 컴퓨팅 시스템은 매칭 포인트들의 타임스탬프에 기초하여 선형 회귀를 수행함으로써, 실제 시간과 클라이언트 시간 사이의 맵핑을 확립한다. 그 후에 컴퓨팅 시스템은 맵핑을 사용하여 클라이언트에 의해 수신되고 있는 미디어 스트림에 대한 컨텐츠 수정 또는 기타 액션을 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정한다. 또한 컴퓨팅 시스템은 클라이언트로 하여금 결정된 클라이언트 시간 포인트에서 컨텐츠 수정 또는 기타 액션을 수행하게 한다.

Description

프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용
관련 출원에 대한 참조
본 출원은 2018년 10월 22일에 출원된 미국 특허 출원 제16/166,971호 및 2018년 7월 19일에 출원된 미국 가특허 출원 제62/700,660호에 대한 우선권을 주장하며, 이 문헌들 각각은 전체가 본 명세서에 참조로서 포함된다.
본 출원은 또한 2018년 10월 22일에 출원된 다른 미국 특허 출원 제16/166,981호와 관련이 있으며, 이 문헌 전체가 본 명세서에 참조로서 포함된다.
일반적인 미디어 클라이언트는 비디오 및/또는 오디오 컨텐츠와 같은 미디어 컨텐츠를 나타내는 아날로그 또는 디지털 미디어 스트림을 수신하고, 디스플레이 스크린 및/또는 오디오 스피커와 같은 사용자 인터페이스에서 미디어 컨텐츠를 출력하고/하거나 스트림을 전달하도록 동작한다. 이러한 클라이언트들의 예들로는 텔레비전, 컴퓨터 모니터, 프로젝션 시스템, 라우드 스피커, 헤드폰, 셋탑 박스(예를 들면, 케이블 또는 위성 TV 수신기), 디지털 비디오 레코더, 라디오, 개인용 컴퓨터, 모바일 통신 장치, 게임 콘솔, 스트리밍 미디어 플레이어 등을 포함한다.
예를 들어, 미디어 클라이언트는 텔레비전일 수 있으며, 이러한 텔레비전은 미디어 스트림(예를 들어, 공중파 방송 스트림, 셋탑 박스에서 출력되는 미디어 스트림, 디지털 저장 매체에서 재생되는 미디어 스트림, 인터넷 스트림 또는 다른 이러한 스트림을 통해)을 수신할 수 있으며, 해당 스트림의 미디어 컨텐츠를 사용자에게 제공할 수 있다. 다른 예로, 미디어 클라이언트는 셋탑 박스일 수 있으며, 이러한 셋탑 박스는 다중 채널 비디오 프로그램 디스트리뷰터로부터 방송 스트림을 수신할 수 있으며, 재생을 위해 HDMI(High-Definition Multimedia Interface) 케이블 또는 기타 인터페이스를 통해 해당 스트림의 미디어 컨텐츠를 텔레비전 및/또는 오디오/비디오 수신기로 출력할 수 있다. 또 다른 예로서, 미디어 클라이언트는 디지털 비디오 또는 오디오 레코더일 수 있으며, 이러한 디지털 비디오 또는 오디오 레코더도 마찬가지로 방송 스트림을 수신할 수 있지만 나중에 재생하기 위해 스트림을 저장할 수 있다. 또 다른 예로서 미디어 클라이언트는 라우드 스피커 또는 헤드폰일 수 있으며, 이러한 라우드 스피커 또는 헤드폰은 라디오, 컴퓨터 또는 기타 수신기 또는 오디오 저장 장치로부터 오디오 스트림을 수신할 수 있으며, 해당 스트림의 오디오 컨텐츠를 사용자에게 제공할 수 있다. 다른 많은 예도 가능하다.
미디어 클라이언트가 미디어 스트림을 수신할 때, 클라이언트가 스트림의 미디어 컨텐츠 일부를 수정하는 것이 특정 상황에서 유용할 수 있다. 예를 들어, 클라이언트가 광고 또는 미디어 컨텐츠의 다른 세그먼트를 대체 광고 또는 다른 대체 컨텐츠로 동적으로 대체함으로써, 컨텐츠가 사용자에게 재생될 때 원래 포함된 광고 대신에 사용자가 대체 광고를 수신할 수 있도록 하는 것이 유용할 수 있다. 다른 예로서, 클라이언트가 채널 식별, 컨텍스트 정보, 광고 컨텐츠 등과 같은 오버레이 또는 분할 화면 컨텐츠로 미디어 컨텐츠의 일부를 동적 보충함으로써, 컨텐츠가 사용자에게 재생될 때, 원래 포함된 컨텐츠와 함께 사용자가 부가 컨텐츠를 수신할 수 있도록 하는 것이 유용할 수 있다.
또한, 클라이언트가 미디어 스트림 내의 특정 시간 포인트에서 그러한 컨텐츠 수정을 수행하는 것이 바람직할 수 있다. 예를 들어, 클라이언트가 기존 광고를 대체 광고로 동적 대체해야 하는 경우, 클라이언트는 기존 광고가 시작될 미디어 스트림 내의 시점에서 대체 광고를 배치하는 것이 바람직할 수 있다. 마찬가지로, 클라이언트가 해당 부분과 관련된 오버레이로 미디어 컨텐츠의 특정 부분을 보충해야 하는 경우, 클라이언트는 해당 부분이 시작될 때 오버레이를 시작하는 것이 바람직할 수 있다. 다른 예도 가능하다.
특히, 해당 미디어 스트림이 비디오 프레임 및/또는 오디오 프레임과 같은 프레임 시퀀스를 정의할 수 있으며, 클라이언트는 프레임 단위로 컨텐츠 수정을 수행하는 것이 바람직할 수 있다. 예를 들어, 광고 대체의 경우, 클라이언트는 기존 광고의 첫 번째 프레임에서 정확하게 시작하는 기존 광고 대신에 대체 광고를 삽입하는 것이 바람직할 수 있다. 또한 미디어 스트림의 특정 부분에 오버레이를 추가하기 위해, 클라이언트는 미디어 스트림의 해당 부분의 첫 번째 프레임에서 또는 특정 관계로 오버레이를 시작하는 것이 바람직할 수 있다.
클라이언트가 이 컨텐츠 수정을 용이하게 수행하게 하기 위해, 클라이언트는 이 수정이 발생하는 특정 시간 포인트를 알고 있을 필요가 있을 수 있다. 그러나, 실제에 있어서 수정 시간 포인트는 클라이언트가 알 수 없는 타임라인(timeline)에 정의될 수 있다. 예를 들어, 수정 시간 포인트가 미디어 스트림 자체 내의 레퍼런스 타임라인에 정의될 수 있지만, 클라이언트는 해당 타임라인에 대한 컨텍스트를 가지고 있지 않을 수 있다. 따라서, 클라이언트에게 해당 수정 시간 포인트를 제공하면 클라이언트는 미디어 스트림 내의 원하는 시간 포인트에서 수정을 수행할 수 없다.
이에 대한 비제한적인 예로서, 텔레비전 방송 내에 나타날 수 있는 애드 포드(ad pod)를 정의하는 미디어 스트림을 고려한다. 애드 포드는 텔레비전 광고와 같은 일련의 광고로 구성된다. 이 예에서, 클라이언트는 특정 텔레비전 채널의 선형 브로드캐스트 피드를 수신하여 제공하는 텔레비전일 수 있으며, 애드 포드는 해당 피드 내의 임의의 시점에서 나타날 수 있다. 특히 스포츠 이벤트와 같은 라이브 방송의 경우, 이러한 피드에서 애드 포드가 나타나는 시간을 예측할 수 없다. 대안적으로는, 특별히 스케줄링된 시간에 애드 포드가 나타날 수 있다.
이 예에서, 원하는 수정은 애드 포드 내의 특정 광고의 대체일 수 있다(예를 들어, 광고를 다른 광고 또는 다른 대체 컨텐츠로 대체). 예를 들어, 애드 포드가 일련의 광고 A1, A2, A3, A4인 경우, 원하는 수정은 광고 A3의 대체일 수 있다.
이러한 상황에서, 애드 포드는 시간 T=0에서 시작하여 애드 포드의 끝까지 계속되는 내부 타임라인을 정의할 수 있으며, 광고 A3은 해당 타임라인의 시간 TA3에서 시작할 수 있다. 그러나, 클라이언트는 해당 타임라인에 대한 컨텍스트가 부족할 수 있다. 클라이언트에는 "클라이언트 시간(client time)"을 정의하는 타임라인(예를 들면, 시간 또는 기타 내부 타임 레퍼런스)을 가지는 자체 내부 클럭이 있을 수 있다. 그러나 클라이언트 시간 내에 애드 포드 타임라인이 어디에 있는지에 대한 고급 지식 없이, 원하는 컨텐츠 수정 시간 포인트로서 TA3 값만 주어지면 클라이언트는 원하는 광고 대체를 수행할 수가 없다.
이 문제를 해결하기 위한 한 가지 방법은 클라이언트에 의해 수신되고 있는 미디어 스트림의 타임스탬프된(timestamped) 쿼리 핑거프린트들을 기지의(known) 애드 포드 시퀀스와 같은 기지의 미디어 스트림의 타임스탬프된 레퍼런스 핑거프린트들과 비교하여, 핑거프린트 매칭을 수행하는 것이다.
예를 들어, 클라이언트는 클라이언트가 수신하고 있는 미디어 스트림의 프레임들에 대한 쿼리 핑거프린트들을 생성할 수 있고, 클라이언트의 내부 클럭에 기초하여 이러한 쿼리 핑거프린트들을 타임스탬프할 수 있으며, 컴퓨팅 시스템은 분석을 위해 이러한 타임스탬프된 쿼리 핑거프린트들을 수신할 수 있다. 또한, 컴퓨팅 시스템은 기지의(known) 미디어 스트림 내의 타임라인을 따라 정의된 레퍼런스 시간 또는 "실제 시간(true time)"에 기초하여 타임스탬프된 기지의 애드 포드 시퀀스와 같은 기지의 미디어 스트림의 프레임들에 대한 레퍼런스 핑거프린트들로 프로비저닝될 수 있다.
따라서 컴퓨팅 시스템은 쿼리 핑거프린트가 레퍼런스 핑거프린트와 매칭되는 매칭 포인트를 찾기 위해 타임스탬프된 쿼리 핑거프린트들을 타임스탬프된 레퍼런스 핑거프린트들과 비교할 수 있으며, 매칭 포인트를 발견하면, 매칭 쿼리 핑거프린트의 타임스탬프가 매칭 레퍼런스 핑거프린트의 타임스탬프와 일치한다고 결론을 내릴 수 있다.
매칭 쿼리 및 레퍼런스 핑거프린트들의 타임스탬프들 사이에 이러한 상관 관계를 확립하면 클라이언트 시간과 실제 시간 사이에 "동기 락(synchronous lock)" 또는 시간 맵핑의 확립을 구성할 수 있다. 예를 들어, 매칭 쿼리 핑거프린트 및 매칭 레퍼런스 핑거프린트의 타임스탬프들 사이의 차이는 클라이언트가 미디어 스트림을 수신할 때 기지의 미디어 스트림 내 실제 시간과 클라이언트 시간 사이의 시간 오프셋을 정의할 수 있다. 따라서 기지의 미디어 스트림 내 프레임의 실제 시간 포인트에 대한 지식이 주어지면, 컴퓨팅 시스템은 확립된 동기 락을 사용하여, 클라이언트에 의해 수신되고 있는 미디어 스트림에서 동일한 프레임의 관련 클라이언트 시간 포인트를 결정할 수 있다. 예를 들어, 컴퓨팅 시스템은 주어진 실제 시간 포인트에 대응하는 클라이언트 시간 포인트를 결정하기 위해, 실제 시간과 클라이언트 시간 사이의 시간 오프셋을 적용할 수 있다.
상기한 애드 포드 예를 계속하면, 컴퓨팅 시스템은 확립된 동기 락을 사용하여, 실제 시간 값 TA3을, 클라이언트에 의해 수신되고 있는 미디어 스트림에서 클라이언트가 광고 A3를 대체하는 클라이언트 시간 포인트(예를 들면, 클라이언트가 광고 대체를 시작해야 하는 클라이언트 시간 포인트)를 나타내는 클라이언트 시간 값에 맵핑할 수 있다. 또한 클라이언트는 결정된 클라이언트 시간 포인트에서 광고 A3의 대체를 수행할 수 있다.
그러나, 이 과정에서 발생할 수 있는 기술적 문제점은 클라이언트가 쿼리 핑거프린트들과 레퍼런스 핑거프린트들 사이의 신뢰도가 높은 핑거프린트 매칭을 용이하게 할 만큼 충분히 빠르게 쿼리 핑거프린트들을 생성하지 못할 수 있다는 것이다. 특히, 클라이언트에서 제한된 처리 능력, 메모리 및/또는 기타 리소스들을 보존하기 위해, 클라이언트는 상대적으로 낮은 프레임 레이트에서 핑거프린트들을 생성하도록 구성될 수 있으며, 이것은 클라이언트가 수신 중인 미디어 스트림의 프레임 레이트보다 훨씬 낮을 수 있다. 그 결과, 검출된 핑거프린트 매칭이 부정확하게 될 수 있고, 확립된 동기 락이 부정확하게 될 수 있다.
예를 들어, 초당 30 프레임을 갖는 비디오에서, 클라이언트는 초당 2 프레임과 같은 낮은 프레임 레이트에서 쿼리 핑거프린트들을 생성하도록 설정될 수 있다. 그러나 낮은 레이트에서 핑거프린트 매칭을 수행하면, 신뢰도가 낮은 핑거프린트 매칭이 발생할 수 있다.
이러한 어려움에 대한 한 가지 이유는 미디어 스트림이 일정 기간 동안 미디어 컨텐츠가 실질적으로 변경되지 않는 미디어 시퀀스의 부분에 대응하는 동일하거나 거의 동일한 프레임들의 다양한 하위 시퀀스를 포함할 수 있기 때문이다. 이에 대한 일 예는 일정 기간 동안 스틸 이미지를 프레젠테이션하는 비디오일 수 있다. 이 시나리오에서는, 쿼리 핑거프린트가 정의된 매칭 허용 오차 내에서 여러 연속 레퍼런스 핑거프린트들과 매칭될 수 있다.
그 결과, 컴퓨팅 시스템이 주어진 매칭 포인트를 검출하는 것이 상대적으로 신뢰도가 낮게 될 수 있다. 결과적으로, 실제 시간과 클라이언트 시간 사이의 컴퓨팅 시스템의 확립된 맵핑이 잠재적으로 부정확할 수 있으며, 이로 인해 사용자 경험 문제가 발생할 수 있다. 예를 들어, 부정확한 시간 맵핑으로 인해 클라이언트가 지시된 컨텐츠 수정을 너무 일찍 또는 너무 늦게 수행하게 될 수 있다. 컨텐츠 대체(예를 들면, 광고 대체)를 통해, 사용자는 이러한 시간이 맞지 않는 컨텐츠 수정을, 프레젠테이션되는 미디어 컨텐츠에서 불연속 또는 불일치로 인식할 수 있다.
본 개시에 따라, 이 문제는 다수의 검출된 매칭 포인트들을 계산에 넣고 이들 포인트들 사이를 보간하여 실제 시간과 클라이언트 시간 사이의 개선된 맵핑을 확립함으로써 적어도 부분적으로 해결될 수 있다.
대표적인 구현에서, 클라이언트에 의해 생성되는 낮은 레이트 쿼리 핑거프린트들이 주어지면, 컴퓨팅 시스템은 위에서 논의된 바와 같이 핑거프린트 비교를 수행할 수 있고, 컴퓨팅 시스템은 시간이 지남에 따라 다수의 매칭 포인트를 검출할 수 있으며, 각 매칭 포인트는 실제 시간 포인트와 클라이언트 시간 포인트 사이의 결정된 상관 관계를 나타낸다. 컴퓨팅 시스템이 이러한 매칭 포인트들을 검출하면, 컴퓨팅 시스템은 프로그래밍 방식으로 포인트들의 스캐터 플롯(scatter plot)을 확립하여 선형 회귀(linear regression)를 수행함으로써 실제 시간과 클라이언트 시간 사이의 개선된 맵핑을 나타내는 베스트 피트 라인(best-fit line)을 확립할 수 있다.
컴퓨팅 시스템은 이러한 개선된 맵핑을 기초로서 사용하여 클라이언트 시간의 어느 포인트가 실제 시간의 다가오는 포인트와 상호 연관되는지를 예측함으로써, 클라이언트가 그 다가오는 시간 포인트에서 컨텐츠 수정을 수행하거나 다른 관련 액션(예를 들어, 컨텐츠 수정 준비)을 수행하도록 할 수 있다. 예를 들어, 컴퓨팅 시스템은 개선된 맵핑을 기초로서 사용하여 클라이언트 시간의 어느 포인트가, 클라이언트가 컨텐츠 수정을 수행할 다가오는 프레임의 실제 시간 레퍼런스 타임스탬프와 상호 연관되는지 예측할 수 있다. 또한 컴퓨팅 시스템은 클라이언트가, 예측된 클라이언트 시간 포인트에서 컨텐츠 수정을 수행하도록 할 수 있다.
이들 및 다른 양태들, 이점들 및 대안들은 첨부 도면을 적절하게 참조하여 다음의 상세한 설명을 읽음으로써 당업자에게 명백해질 것이다. 또한, 이 요약 및 아래에서 제공되는 설명은 제한이 아닌 예로서 본 발명을 설명하기 위한 것임을 이해해야 한다.
도 1은 개시된 특징들이 구현될 수 있는 시스템의 간략 블록도이다.
도 2는 각각의 실제 시간 값과 각각의 클라이언트 시간 값을 갖는 매칭 포인트들의 예시적인 스캐터 플롯이다.
도 3은 본 개시에 따라 수행될 수 있는 동작들을 나타내는 흐름도이다.
도 4는 본 개시에 따라 수행될 수 있는 동작들을 나타내는 다른 흐름도이다.
도 5는 본 개시에 따라 동작할 수 있는 컴퓨팅 시스템의 구성 요소들을 나타내는 간략 블록도이다.
도면들을 참조하면, 도 1은 다양한 개시된 원리들이 적용될 수 있는 예시적인 시스템의 간략 블록도이다. 그러나, 본 명세서에서 설명되는 이러한 구성과 다른 구성 및 처리들은 다양한 다른 형태를 취할 수 있음을 이해할 것이다. 예를 들어, 요소들 및 동작들은 재정렬, 분산, 복제, 결합, 생략, 추가 또는 수정될 수 있다. 또한, 하나 이상의 엔티티에 의해 수행되는 것으로 여기에서 설명되는 기능들은 하드웨어, 펌웨어, 및/또는 소프트웨어를 통해(예를 들어 프로그램 명령어 등을 실행하는 하나 이상의 처리 유닛들에 의해) 그러한 엔티티들에 의해 및/또는 이들을 대신하여 구현될 수 있음을 이해할 것이다.
도 1에 도시된 바와 같이, 본 예시적인 시스템은 미디어 소스(14)로부터 실시간으로 미디어 스트림을 수신하도록 구성되는 미디어 클라이언트(12)를 포함한다.
실제에 있어서, 미디어 클라이언트(12)는 미디어 소스(14)로부터 비디오 및/또는 오디오 컨텐츠와 같은 미디어 컨텐츠를 나타내는 아날로그 또는 디지털 미디어 스트림을 수신하고, 미디어 컨텐츠를 출력하며, 및/또는 디스플레이 스크린 및/또는 오디오 스피커와 같은 사용자 인터페이스에서 컨텐츠의 프레젠테이션을 위해 스트림을 포워딩하도록 전술한 바와 같이 동작하는 것으로 구성될 수 있다. 미디어 클라이언트는 다른 가능성들 중에서, 위에서 설명한 형태들 중 하나를 취할 수 있다.
미디어 소스(14)는 또한 미디어 클라이언트(12)의 형태에 따라 다양한 형태를 취할 수 있다. 예를 들어, 미디어 클라이언트(12)가 텔레비전인 경우, 미디어 소스(14)는 텔레비전에 의한 프레젠테이션을 위해 선택된 미디어 스트림을 출력하도록 구성된, 로컬 셋탑 박스(예를 들어, 케이블 또는 위성 수신기) 또는 스트리밍 미디어 서버일 수 있거나, 또는 미디어 소스(14)는 다른 가능성들 중에서, 방송 텔레비전국 등일 수 있다. 미디어 클라이언트가 컴퓨터인 경우, 미디어 소스는 인터넷 스트리밍 미디어 서버 또는 기타 미디어 프로바이더를 포함할 수 있다. 대안적으로, 미디어 소스(14)는 미디어 클라이언트(12)와 통합되고/되거나 미디어 클라이언트(12)에 의해 로컬로 액세스 가능한 데이터 스토리지일 수 있으며, 미디어 클라이언트는 재생을 위해 데이터 스토리지로부터 미디어 스트림을 수신(예를 들어, 검색)한다. 다른 예도 가능하다.
도 1에 추가로 도시된 바와 같이, 미디어 클라이언트(12)는 네트워크(예를 들어, 인터넷 또는 사설 네트워크)(16)를 통해, 미디어 소스(14)와 연관되고/되거나 통합될 수 있거나 그렇지 않을 수도 있는 네트워크 서버(18)와 통신할 수 있다.
예시적인 구현에서, 미디어 클라이언트(12) 및 네트워크 서버(18)는 위에서 언급된 바와 같은 동작들을 수행하는 것을 용이하게 하기 위해 데이터 통신에 참여할 수 있다. 예를 들어, 대표적인 컴퓨팅 시스템의 양태들이 클라이언트(12)와 연동하는 서버(18)에 의해 구현됨으로써 동기 락을 확립하고, 동기 락을 적용하여 클라이언트가 컨텐츠 수정을 수행해야 하는 클라이언트 시간 포인트를 결정하고, 결정된 클라이언트 시간 포인트에 클라이언트가 컨텐츠 수정을 수행하게 할 수 있다. 추가적으로 또는 대안적으로, 대표적인 컴퓨팅 시스템의 양태들이 서버(18)와 연동하는 클라이언트(12)에 의해 구현됨으로써 유사한 동작들을 수행할 수 있다.
위에서 언급한 바와 같이, 클라이언트(12)와 같은 미디어 클라이언트가 미디어 스트림을 수신할 경우, 클라이언트가 스트림 컨텐츠의 세그먼트를 대체하거나 보충하는 것과 같이, 스트림 컨텐츠의 일부를 수정하는 것이 유용할 수 있다. 또한, 위에서 언급한 바와 같이, 클라이언트가 미디어 스트림 내의 특정 시간 포인트에서 그렇게 하는 것이 바람직할 수 있다. 예를 들어, 스트림이 비디오 프레임들 및/또는 오디오 프레임들과 같은 프레임 시퀀스를 정의하는 경우, 클라이언트가 시퀀스의 특정 프레임에서 시작하여 수정을 수행하는 것이 바람직할 수 있다.
이러한 컨텐츠 수정을 용이하게 하기 위해, 위에서 언급한 바와 같이, 컴퓨팅 시스템은 먼저 클라이언트에 의해 수신되고 있는 미디어 스트림을 식별할 수 있다. 예를 들어, 컴퓨팅 시스템은 먼저 클라이언트에 의해 수신되는 미디어 스트림이 수정되어야 하는 특정 컨텐츠를 포함하는 스트림인지 결정할 수 있다. 미디어 스트림을 식별하면, 컴퓨팅 시스템은 클라이언트가 컨텐츠 수정을 수행해야 하는 미디어 스트림의 특정 포인트를 결정할 수 있으며, 또한 클라이언트가 결정된 포인트에서 컨텐츠 수정을 수행하게 할 수 있다.
클라이언트(12)에 의해 수신되는 미디어 스트림을 식별하는 한 가지 방법은 클라이언트(또는 가능하게는 부속 장치)가 클라이언트에 의해 수신되고 있는 미디어 컨텐츠를 나타내는 디지털 핑거프린트 데이터를 생성하게 하고, 서버(18)가 해당 핑거프린트 데이터를, 클라이언트가 기지의 미디어 스트림을 수신하고 있음을 나타내는 핑거프린트 매칭들을 갖는, 기지의(known) 미디어 스트림의 미디어 컨텐츠를 나타내는 레퍼런스 핑거프린트 데이터와 비교하게 하는 것이다.
예시적인 구현에서, 서버(18) 또는 다른 그러한 엔티티는 기지의 미디어 스트림을 나타내는 레퍼런스 핑거프린트 데이터를 확립하거나 그렇지 않으면 그것에 액세스할 수 있다. 예를 들어, 서버는 기지의 미디어 스트림의 프레임들을 나타내는 일련의 레퍼런스 디지털 핑거프린트들을 확립하거나 프로비저닝될 수 있다. 서버 또는 다른 엔티티는 기지의 미디어 스트림의 프레임들을 프로그래밍 방식으로 분석하고, 기지의 미디어 스트림의 사본을 입력으로서 수신하고, 레퍼런스 핑거프린트를 생성하기 위한 것으로 현재 알려져 있거나 나중에 개발될 임의의 미디어 핑거프린팅 프로세스 또는 알고리즘을 적용함으로써 이러한 레퍼런스 핑거프린트들을 확립할 수 있다. 이러한 레퍼런스 핑거프린트들은 핑거프린트 매칭을 용이하게 하기 위해 비교적 높은 수준의 그래뉼래러티에서 생성될 수 있다. 예를 들어, 초당 30 프레임의 비디오를 포함하는 미디어 스트림의 경우, 시퀀스는 마찬가지로 초당 30 프레임의 레이트에서 또는 다른 합리적으로 높은 레이트에서, 모든 프레임의 레퍼런스 비디오 핑거프린트를 포함할 수 있다.
또한, 클라이언트(12)가 미디어 스트림을 수신함에 따라 실시간으로, 클라이언트는 수신하고 있는 스트림의 미디어 컨텐츠를 나타내는 쿼리 핑거프린트 데이터를 생성하고, 분석을 위하여 이 쿼리 핑거프린트 데이터를 서버(18)에 전송할 수 있다. 클라이언트는 핑거프린트 비교를 용이하게 하기 위해, 레퍼런스 핑거프린트들을 확립하는데 적용된 것과 동일한 핑거프린팅 처리 또는 알고리즘을 사용하여 이러한 쿼리 핑거프린트들을 확립할 수 있다. 그러나, 위에서 언급한 바와 같이, 클라이언트의 리소스 제한들(예를 들면, 처리 능력, 메모리 및 네트워크 속도에 대한 제한들) 또는 기타 이유로 인해, 이러한 쿼리 핑거프린트 생성이 클라이언트에 대한 지속적인 프로세스가 될 수 있다는 점을 감안할 때, 클라이언트는 상대적으로 낮은 레이트에서 이러한 쿼리 핑거프린트들을 생성하도록 구성될 수 있다. 예를 들어, 비디오를 포함하는 미디어 스트림의 경우, 클라이언트는 초당 2 프레임의 레이트만으로 이러한 쿼리 핑거프린트들을 생성하도록 구성될 수 있으며, 클라이언트는 생성된 쿼리 핑거프린트들을 1.5 초 정도마다 서버에 전송할 수 있다. 다른 예도 가능하다.
서버가 클라이언트로부터 쿼리 핑거프린트 데이터를 수신함에 따라, 서버는 쿼리 핑거프린트 데이터를 기지의 미디어 스트림의 레퍼런스 핑거프린트 데이터와 비교할 수 있다. 쿼리 핑거프린트 데이터가 레퍼런스 핑거프린트 데이터와 매칭된다고 충분한 확신을 가지고 서버가 판정하면, 서버는 클라이언트에 의해 수신되고 있는 미디어 스트림이 기지의 미디어 스트림(즉, 기지의 미디어 스트림의 사본)이라고 결론을 내릴 수 있다.
서버는 프레임 단위로 이 핑거프린트 비교를 수행할 수 있다. 예를 들어, 비디오 컨텐츠를 고려하면, 서버는 프레임의 쿼리 핑거프린트와 프레임의 레퍼런스 핑거프린트를 비교하여, 비디오 프레임 단위로 분석을 수행할 수 있다. 비교 프로세스는 핑거프린트들의 구조에 따라 다양한 형태를 취할 수 있다. 예를 들어, 이 비교는 핑거프린트들 간의 최대 편차를 계산하고, 그 최대 편차가 사전 정의된 허용 오차 내인지를 판정하는 것을 포함할 수 있다. 또한, 핑거프린트가 바이너리인 경우, 이것은 부울(Boolean) 판정일 수 있거나 또는 해밍(Hamming) 거리(핑거프린트에서 각 비트 위치 간의 미스매칭 수)를 계산하는 것을 포함할 수 있다. 핑거프린트가 10 진수 값이나 벡터(예를 들면, 비디오 프레임 영역 당 그레이 값)와 같이 더 복잡한 값인 경우, 이것은 이 값들 또는 벡터들 간의 거리를 판정하는 것을 포함할 수 있다. 다른 많은 예도 가능하다.
또한, 서버는 원하는 수준의 허용 오차로 핑거프린트 비교 프로세스를 수행할 수 있다. 예를 들어, 이 비교는 더 큰 수의 차이에 대한 허용 오차 및/또는 더 큰 크기의 차이에 대한 허용 오차와 같은, 핑거프린트들 간의 차이에 대한 상대적으로 높은 허용 오차를 가지고, 대략적으로 이루어질 수 있다. 예를 들어, 두 개의 32 비트 핑거프린트를 서로 비교할 경우, 대략적 비교는 두 개 또는 다른 지정된 비트 수가 매칭되지 않더라도 일반적으로 핑거프린트가 서로 매칭되는 것으로 간주할 수 있다. 또는 이 비교는 이러한 차이들에 대한 더 낮은 허용 오차 및/또는 기초가 되는 미디어의 특정 부분들을 나타내는 특정 핑거프린트 컴포넌트들에 초점을 맞춘 비교들을 통해 보다 세분화될 수 있다.
또한, 서버는 한 번에 하나의 쿼리 핑거프린트에 대한 핑거프린트 비교를 수행할 수 있다. 예를 들어, 서버는 정의된 매칭 허용 오차 내에서 쿼리 핑거프린트와 매칭되는 레퍼런스 핑거프린트를 찾기 위해, 순차적으로 제공되는 각 쿼리 핑거프린트를 레퍼런스 핑거프린트들과 비교할 수 있다.
대안적으로, 서버는 한 번에 하나의 번들(bundle)의 핑거프린트들에 대한 비교를 수행할 수 있다. 예를 들어, 서버는 정의된 매칭 허용 오차 내에서 4 개 쿼리 핑거프린트들의 그룹과 매칭되는 4개 레퍼런스 핑거프린트들의 번들을 찾기 위해, 4 개의 연속 쿼리 핑거프린트들의 각 순차적 번들(슬라이딩 윈도우 기준으로, 또는 개별, 순차적 그룹들로서)을 레퍼런스 핑거프린트들과 비교할 수 있다. 이것을 용이하게 하기 위해, 쿼리 핑거프린트들과 레퍼런스 핑거프린트들이 서로 다른 프레임 레이트들로 생성되는 경우, 서버는 쿼리 핑거프린트들의 번들과 동일하게 시간적으로 서로 떨어져 있는 매칭되는 레퍼런스 핑거프린트들의 번들에 대한 검색을 구성할 수 있다. 예를 들어, 쿼리 핑거프린트들이 초당 2 프레임(즉, 서로 500 밀리 초 간격)으로 생성되고 레퍼런스 핑거프린트들이 초당 30 프레임으로 생성되는 경우, 서버는 정의된 매칭 허용 오차 내에서, 서로 500 밀리 초 떨어져 있고 4 개의 연속 쿼리 핑거프린트들의 그룹과 매칭되는 4 개의 레퍼런스 핑거프린트들의 번들을 탐색할 수 있다.
서버가 충분한 신뢰성을 가지고 매칭되는 컨텐츠를 검출했을 경우, 서버는 미디어 스트림에서 하나 이상의 매칭 포인트를 식별하게 된다. 서버가 한 번에 하나의 핑거프린트를 사용하여 핑거프린트 비교를 수행한 경우, 각 매칭 포인트는 매칭되는 레퍼런스 핑거프린트가 나타내는 프레임이 된다. 반면에, 서버가 한 번에 한 그룹의 핑거프린트들을 사용하여 핑거프린트 비교를 수행한 경우, 각 매칭 포인트는 매칭되는 그룹의 첫 번째 또는 다른 지정된 레퍼런스 핑거프린트가 나타내는 프레임일 수 있다. 어떤 경우에도, 이 매칭은 클라이언트에 의해 수신되고 있는 미디어 스트림이 기지의 미디어 스트림이라는 결론을 확립하거나 지원할 수 있다.
대안적으로, 서버는 다른 방식으로 해당 미디어 스트림을 식별할 수 있다. 예를 들어, 미디어 스트림에 미디어 스트림의 아이덴티티에 대응하는 워터마크 데이터가 포함된 경우, 클라이언트는 워터마크 데이터를 판독하거나 추출하여 이것을 서버에 보고할 수 있다. 또한 서버는 보고된 워터마크 데이터를 기초로서 사용하여 클라이언트에 의해 수신 및/또는 재생되고 있는 미디어 스트림을 식별할 수 있다.
클라이언트에 의해 수신되고 있는 미디어 스트림을 식별한 후, 서버는 클라이언트가 컨텐츠 수정을 수행해야 하는 미디어 스트림의 포인트를 결정할 수 있다. 예를 들어, 대표적인 구현에서, 서버는 컨텐츠 수정이 발생할 기지의 미디어 스트림의 포인트를 나타내고 해당 포인트에서 어떤 컨텐츠 수정이 발생할 것인지를 나타내는 레퍼런스 데이터에 액세스할 수 있다. 예를 들어, 레퍼런스 데이터는 컨텐츠 수정이 시작될 기지의 미디어 스트림의 특정 프레임을 식별시킬 수 있다. 따라서, 서버는 레퍼런스 데이터를 참조하여 원하는 컨텐츠 수정 포인트를 결정할 수 있다.
그 후에, 서버는 클라이언트가 미디어 스트림의 결정된 포인트에서 컨텐츠 수정을 수행하도록 하는 지시를 클라이언트에 전송할 수 있다. 예를 들어, 서버는 미디어 스트림의 결정된 포인트를 지정하고 클라이언트에게 대체 또는 오버레이 미디어를 제공하거나 미디어 스트림의 해당 포인트에서 클라이언트가 수행할 컨텐츠 수정에 대해 클라이언트에게 지시하는 메시지를 네트워크(16)를 통해 클라이언트에게 전송할 수 있다. 그리고 클라이언트는 이 지시를 수신 및 해석하여, 미디어 스트림의 지시된 포인트에서 컨텐츠 수정을 응답적으로 수행하도록 구성될 수 있다.
이 프로세스에서, 서버는 클라이언트가 미디어 스트림에서 컨텐츠 수정을 수행해야 하는 특정 시간 포인트를 알 수 있다. 예를 들어, 서버에 의해 액세스 가능한 레퍼런스 데이터는 이 시간 포인트를 기지의 미디어 스트림 내의(즉 위에서 설명한 "실제 시간(true time)" 내의) 타임라인에서 측정되는 특정 시간으로서 지정할 수 있다. 위에서 언급한 바와 같이, 예를 들어 이 타임라인은 기지의 미디어 스트림의 시작 지점에서의 출발 시간(예를 들면, T=0)으로 시작될 수 있으며, 기지의 미디어 스트림의 각 프레임은 해당 타임라인의 특정 시간 포인트에서 발생할 수 있다. 따라서, 서버는 클라이언트가 미디어 스트림에서 컨텐츠 수정을 수행해야 하는 실제 시간 포인트를 레퍼런스 데이터로부터 결정할 수 있다.
그러나, 클라이언트의 시간 레퍼런스는 다를 수 있다. 위에서 언급한 바와 같이, 클라이언트의 시간 레퍼런스는 클라이언트의 내부 클럭에 따라 정의되는 "클라이언트 시간"일 수 있다. 클라이언트 시간과 실제 시간은 서로 동일한 레이트에서 최적으로 실행될 수 있지만, 이들의 출발 포인트들이 다를 수 있다. 따라서, 기지의 미디어 스트림의 실제 시간 포인트에 대한 단순한 지식만으로는 클라이언트 시간에 컨텍스트를 제공하지 못하게 된다. 그 결과, 위에서 언급한 것처럼 문제가 되는 것은 클라이언트가 컨텐츠 수정을 수행하기 시작하는 미디어 스트림의 시간 포인트를 클라이언트가 이해할 수 있는 방식으로 서버가 특성화하는 방법이다.
위에서 제안된 바와 같이 이 문제를 해결하는 한 가지 방법은 서버가 미디어 스트림에 대한 클라이언트의 시간 레퍼런스를 결정하는 방식으로 서버가 쿼리 핑거프린트들과 매칭되는 클라이언트 제공 타임스탬프들을 사용하게 한 다음, 서버가 해당 클라이언트 시간 레퍼런스를 기초로 사용하여 클라이언트가 컨텐츠 수정을 시작하는 미디어 스트림의 시간 포인트를 특성화하게 하는 것이다.
이것을 용이하게 하기 위해, 클라이언트가 자신의 쿼리 핑거프린트들을 생성할 때, 클라이언트는 클라이언트의 내부 클럭에 기초하여 각 쿼리 핑거프린트를 타임스탬프할 수 있다. 따라서, 클라이언트가 분석을 위해서 서버로 전송하는 쿼리 핑거프린트들은 타임스탬프된 쿼리 핑거프린트일 수 있다. 또한, 서버는 기지의 미디어 스트림 프레임들의 타임스탬프된 레퍼런스 핑거프린트들로 프로비저닝되거나 또는 이것에 액세스할 수 있다. 예를 들어, 서버는 기지의 미디어 스트림의 각 프레임에 대해 (i) 프레임의 레퍼런스 핑거프린트 및 (ii) 기지의 미디어 스트림 내의 관련 실제 시간 타임스탬프를 지정하는 레퍼런스 데이터로 프로비저닝될 수 있다.
서버가 클라이언트로부터 타임스탬프된 쿼리 핑거프린트를 수신함에 따라, 서버는 매칭 포인트들, 즉 쿼리 핑거프린트가 레퍼런스 핑거프린트와 매칭되는 인스턴스들을 검출하기 위해 쿼리 핑거프린트들을 레퍼런스 핑거프린트들과 비교할 수 있다. 서버가 이러한 매칭 포인트들을 하나 이상 검출한 경우, 서버는 검출된 각 매칭 포인트에 대해 (i) 매칭 포인트의 실제 시간 타임스탬프와 (ii) 매칭 포인트의 클라이언트 시간 타임스탬프를 모두 알게된다.
이와 같이, 서버는 실제 시간과 클라이언트 시간 사이에 동기 락(synchronous lock)을 효과적으로 확립하게 된다. 즉, 서버는 이제 미디어 스트림에서 매칭 프레임의 위치와 미디어 스트림의 해당 시간 포인트에서 클라이언트의 시간은 무엇이었는지를 모두 알고 있으므로, (i) 미디어 스트림 내의 실제 시간 타임스탬프와 (ii) 클라이언트의 내부 클럭에 따른 클라이언트 시간 사이의 맵핑을 효과적으로 확립하게 된다. 위에서 논의된 바와 같이, 이러한 동기 락은 시간 오프셋을 구성할 수 있으며, 이에 따라 서버가 미디어 스트림의 주어진 실제 시간 포인트에 시간 오프셋을 적용함으로써 미디어 스트림의 해당 클라이언트 시간 포인트를 결정할 수 있게 된다.
미디어 스트림에서 이 매칭 포인트를 발견하고 동기 락을 확립한 후, 서버는 클라이언트가 미디어 스트림에서 컨텐츠 수정을 수행할(즉 클라이언트가 미디어 스트림에서 컨텐츠를 시작할) 클라이언트 시간 포인트를 계산할 수 있다. 예를 들어, 컨텐츠 수정이 발생할 실제 시간 포인트에 대한 레퍼런스 데이터 표시가 주어지면, 서버는 동기 락에 의해 정의된 오프셋을 적용하여, 컨텐츠 수정이 발생할 관련 클라이언트 시간 포인트를 결정할 수 있다. 또는 서버는 매칭 포인트의 실제 시간 포인트로부터 컨텐츠 수정이 시작될 프레임의 시간까지의 기지의 미디어 스트림 내의 듀레이션을 계산할 수 있으며, 그 후에 서버는 계산된 듀레이션을 매칭 포인트의 클라이언트 시간 포인트에 추가함으로써, 컨텐츠 수정이 시작될 관련 클라이언트 시간 포인트를 결정할 수 있다. 다른 예도 가능할 수 있다.
그 후에, 서버는 클라이언트가 이 클라이언트 시간 포인트에서 시작하는 컨텐츠 수정을 수행하도록 지시하는, 이 결정된 클라이언트 시간 포인트의 명세를 클라이언트에게 전송할 수 있다. 그리고 해당 시간 포인트에서 시작하여 수행할 컨텐츠 수정에 대한 정보가 클라이언트에 아직 프로비저닝되지 않은 경우, 서버는 해당 컨텐츠 수정 정보를 클라이언트에 전송할 수도 있다. 예를 들어, 서버는 데이터 스토리지에서 검색하여, 클라이언트에 의해 수신되고 있는 미디어 스트림의 컨텐츠 대신에 클라이언트가 대체할 특정 대체 컨텐츠를 클라이언트에 전송할 수 있다. 또는 서버는 클라이언트가 대체 컨텐츠를 얻을 수 있는 네트워크 또는 로컬 스토리지 주소와 같은, 대체 컨텐츠에 대한 포인터를 클라이언트에 전송할 수 있다.
따라서, 클라이언트는 표시된 클라이언트 시간 포인트에서 컨텐츠 수정을 시작하라는 지시를 서버로부터 수신할 수 있다. 해당 클라이언트 시간 포인트에서 수행할 수정을 정의하는 데이터가 아직 클라이언트에 프로비저닝되지 않은 경우, 클라이언트는 예를 들어 서버로부터 또는 서버에 의해 지정되는 주소로부터 데이터를 수신할 수 있다. 클라이언트의 내부 클럭을 참조하여, 클라이언트는 표시된 클라이언트 시간 포인트에서 컨텐츠 수정을 정확하게 시작하도록 작동할 수 있다. 예를 들어, 표시된 클라이언트 시간 포인트에서, 클라이언트는 클라이언트에 의해 수신되고 있는 미디어 스트림의 프레임을 대체 컨텐츠의 프레임들로 대체하거나, 또는 클라이언트에 의해 수신되고 있는 미디어 스트림의 프레임들 상에 추가 컨텐츠를 오버레이하기 시작할 수 있으며, 다른 것도 가능하다.
그러나, 위에서 언급한 바와 같이, 클라이언트가 전술한 바와 같이 초당 2 프레임의 비디오 핑거프린트들과 같이, 비교적 낮은 레이트에서 쿼리 핑거프린트들을 생성하는 경우, 이 프로세스의 또 다른 문제가 발생할 수 있다. 이렇게 낮은 레이트에서 생성된 쿼리 핑거프린트들을 서버에 제공하면 서버가 미디어 스트림에서 매칭 포인트를 확실하게 식별하기 어렵게 될 수 있고 및/또는 신뢰도가 낮은 동기 락이 발생할 수 있다.
위에서 언급한 바와 같은 이러한 어려움에 대한 한 가지 이유는 미디어 스트림이 일정 기간 동안 미디어 컨텐츠가 전혀 변경되지 않는 미디어 시퀀스의 부분들에 대응하는, 동일하거나 거의 동일한 프레임들의 다양한 하위 시퀀스들을 포함할 수 있기 때문이다. 이 시나리오에서, 쿼리 핑거프린트는 정의된 매칭 허용 오차 내에서 여러 연속 레퍼런스 핑거프린트들과 매칭될 수 있다. 또한, 하나의 번들의 쿼리 핑거프린트들이, 정의된 매칭 허용 오차 내에서 여러 번들의 레퍼런스 핑거프린트들과 매칭될 수 있다(예를 들어, 가능하게는 페이딩 또는 기타 변형으로 인해, 번들의 일부 쿼리 핑거프린트들이 더 많거나 적은 대응 레퍼런스 핑거프린트들과 매칭됨). 결과적으로, 서버의 매칭 검출 및 동기 락 확립이 상대적으로 낮은 신뢰도를 가질 수 있다.
본 개시에 따라, 위에서 언급한 바와 같이, 이 문제는 다수의 검출된 매칭 포인트들을 계산에 넣고 이들 포인트들 사이를 보간하여 실제 시간과 클라이언트 시간 사이의 개선된 맵핑을 확립함으로써 적어도 부분적으로 해결될 수 있다.
대표적인 구현에서, 서버가 위에서 논의된 바와 같이 클라이언트로부터 낮은 레이트 쿼리 핑거프린트들을 수신하고 핑거프린트 비교를 수행하는 경우, 서버는 시간이 지남에 따라 다수의 매칭 포인트들을 검출하게 되며(다양한 쿼리 핑거프린트들 각각에 대해 또는 다양한 쿼리 핑거프린트들의 번들 각각에 대해), 각 매칭 포인트는 실제 시간 포인트와 클라이언트 시간 포인트 사이의 결정된 상관 관계를 나타낸다. 서버가 이러한 매칭 포인트들을 검출하면, 서버는 한 축을 따른 실제 시간과 다른 축을 따른 클라이언트 시간을 사용하여, 데카르트 좌표에서 포인트들의 스캐터 플롯을 프로그래밍 방식으로 확립할 수 있으며, 서버는 선형 회귀를 수행함으로써 이 포인트들을 기반으로 하는 베스트 피트 라인(best-fit line)을 확립할 수 있다.
도 2는 예로서 이것을 도시한 것이다. 특히, 도 2는 x 축을 따라 실제 시간 및 y 축을 따라 클라이언트 시간이 있는 스캐터 플롯을 보여준다. 이 스캐터 플롯에는 여러 개의 대표적인 매칭 포인트들이 포함되어 있으며, 이 도면은 매칭 포인트들 사이에 확립된 베스트 피트 라인을 나타낸다. 이 베스트 피트 라인은 실제 시간과 클라이언트 시간 사이의 개선된 맵핑, 가상 타이밍 또는 동기 락을 효과적으로 나타낸다. 충분한 수량의 매칭 포인트들에 대해 선형 회귀를 수행함으로써, 서버는 낮은 레이트의 쿼리 핑거프린트들에 직면했을 때 이 개선된 맵핑을 확립할 수 있다.
여기에 설명된 스캐터 플롯 및 베스트 피트 분석은 기하학적으로 또는 시각적으로 수행될 필요가 없음에 유의한다. 서버는 검출된 매칭 포인트들의 실제 시간, 클라이언트 시간 좌표들을 기반으로, 현재 알려졌거나 나중에 개발될 선형 회귀 알고리즘을 사용하여, 알고리즘 방식으로 프로세스를 수행할 수 있다.
또한, 클라이언트에서의 미디어 스트림 레이트(초당 프레임 수)가 서버에서의 것과 동일하다고 가정할 때, 이 프로세스에서 확립된 베스트 피트 라인은 일반적으로 1의 기울기를 가질 수 있음에 유의한다. 이 점을 감안할 때, 베스트 피트 라인이 플롯에서 수직 또는 수평으로 배치되는 위치 및 이에 따른 실제 시간과 클라이언트 시간 사이의 시간 오프셋이 문제가 될 수 있다. 또한, 클라이언트에서의 미디어 스트림 레이트가 서버에서의 미디어 스트림 레이트와 다소 다른 시나리오가 있을 수 있으며, 이 경우에는 라인의 기울기가 1과 다를 수 있다.
그 후에 서버는 이 개선된 맵핑을 기초로서 사용하여 클라이언트 시간의 어떤 포인트가 컨텐츠 수정 또는 관련 동작이 발생하는 프레임의 레퍼런스 타임스탬프와 같은, 실제 시간의 다가오는 포인트와 상호 연관될 것인지를 예측할 수 있다. 또한 서버는 결정된 클라이언트 시간을 지정하고, 해당 클라이언트 시간이 되면 클라이언트가 원하는 동작을 수행하도록 지시하는 지시를 클라이언트에게 전송할 수 있다.
이 프로세스의 비제한적인 예로서, 텔레비전 방송 내에 나타날 수 있는 애드 포드(ad pod)를 정의하는 미디어 스트림을 고려하도록 한다. 위에서 언급한 바와 같이, 애드 포드는 텔레비전 광고와 같은 일련의 광고로 구성되며, 애드 포드는 클라이언트에 의해 수신되고 있는 선형 브로드캐스트 피드와 같은, 선형 미디어 피드에서 임의의 주어진 시간에 나타날 수 있다.
실제에 있어서, 서버는 애드 포드의 프레임들을 나타내고 이에 대응하는 타임스탬프된 레퍼런스 핑거프린트들로 프로비저닝될 수 있으며, 타임스탬프는 (실제 시간으로서) 애드 포드 내의 정의된 타임라인을 따르는 포인트들이다. 또한, 서버에는 애드 포드 내의 광고들 중 특정 광고를 대체해야 한다는 표시와, 해당 광고 대체를 시작해야 하는 프레임의 타임스탬프가 프로비저닝될 수 있다.
지속적으로, 또는 하나 이상의 다른 트리거에 응답하여, 클라이언트가 미디어 피드를 수신할 때, 클라이언트는 브로드캐스트 피드의 낮은 레이트의 타임스탬프된 쿼리 핑거프린트들(예를 들면, 초당 2 프레임)을 생성할 수 있으며, 분석을 위해 이러한 타임스탬프된 쿼리 핑거프린트들을 서버에 보고할 수 있다. 각각의 이러한 쿼리 핑거프린트를 애드 포드 시퀀스의 프레임들을 나타내는 레퍼런스 핑거프린트들과 비교하여, 서버는 클라이언트가 기지의 애드 포드 시퀀스를 수신하고 있음을 검출할 수 있다.
클라이언트가 애드 포드 시퀀스를 수신하고 있는 것으로 결정한 후, 서버는 클라이언트가 광고 대체를 시작할 때 클라이언트 시간을 결정하기 위해 실제 시간과 클라이언트 시간 사이에 개선된 맵핑을 확립하도록 작동할 수 있다.
예를 들어, 서버는 보고된 쿼리 핑거프린트들의 번들들을 상응하는 간격의 레퍼런스 핑거프린트들의 번들들과 비교할 수 있으며, 그에 따라 시간이 지남에 따라 다수의 매칭 포인트들을 찾아낼 수 있다(가능하게는 클라이언트가 애드 포드 시퀀스를 수신하고 있음을 처음부터 검출하기 위한 기초로서 식별한 하나 이상의 매칭 포인트들로 시작됨). 위에서 논의된 바와 같이, 각 매칭 포인트는 실제 시간 포인트(대표적인 매칭 레퍼런스 핑거프린트의 타임스탬프)를 클라이언트 시간 포인트(대표적인 매칭 쿼리 핑거프린트의 타임스탬프)와 상호 연관시킨다. 또한, 서버는 이러한 매칭 포인트들 간에 선형 회귀를 수행하여 베스트 피트 라인을 찾아냄으로써, 실제 시간과 클라이언트 시간 간의 오프셋 형태로, 실제 시간과 클라이언트 시간 사이의 개선된 맵핑을 효과적으로 나타낼 수 있다.
실제 시간과 클라이언트 시간 사이의 개선된 맵핑을 확립한 후, 서버는 이 맵핑을 기초로서 적용함으로써 광고 대체가 시작될 실제 시간 포인트와 대응하게 될 클라이언트 시간 포인트를 결정할 수 있다. 특히, 광고 대체가 시작될 프레임의 실제 시간 포인트(레퍼런스 시간)를 알고 있는 경우, 서버는 개선된 맵핑에 의해 정의된 오프셋을 적용함으로써, 해당 실제 시간 포인트를 클라이언트 시간 포인트로 변환할 수 있다.
그 다음 서버는 결정된 클라이언트 시간 포인트에서 광고 대체를 시작하기 위한 지시를 클라이언트에 전송할 수 있으며, 해당 정보가 아직 클라이언트에게 제공되지 않은 경우 대체 광고(또는 대체 광고에 대한 포인터)를 클라이언트에 전송할 수 있다. 그 후에 클라이언트는 표시된 클라이언트 시간 포인트에서 그에 따라 광고 대체를 수행할 수 있다.
전술한 프로세스는 다양한 방식으로 변경되거나 향상될 수 있음에 유의한다.
예를 들어, 미디어 스트림의 세그먼트가 정적일(시간에 따라 실질적으로 변경되지 않음) 가능성을 처리하는데 도움을 주기 위해, 서버는 서로 매칭되는 쿼리 핑거프린트들의 번들을 무시하도록 구성될 수 있다(즉, 정의된 매칭 허용 오차 내에서). 특히, 서버가 클라이언트로부터 쿼리 핑거프린트들을 수신하고 연속적인 쿼리 핑거프린트들의 번들들을 비교하려고 할 때, 서버는 이러한 쿼리 핑거프린트들의 번들 각각을 평가함으로써 번들의 쿼리 핑거프린트들이 서로 매칭되는지 여부를 결정할 수 있다. 서버가 번들의 모든 쿼리 핑거프린트들이 서로 매칭된다고 결정하면, 서버는 해당 쿼리 핑거프린트들의 번들을 매칭 포인트 분석에서 제외할 수 있다. 예를 들어, 서버는 쿼리 핑거프린트들의 번들과 매칭되는 레퍼런스 핑거프린트들의 번들을 찾는 것을 그만둘 수 있다. 반면에, 서버가 번들의 쿼리 핑거프린트들 모두가 서로 매칭되지 않는다고 결정하면, 서버는 스캐터 플롯 및 베스트 피트 분석에 포함할 수 있는 매칭 포인트를 찾아내기 위해, 위에서 논의한 바와 같은 매칭 포인트 분석을 진행할 수 있다.
이 예에서는, 번들의 모든 쿼리 핑거프린트들이 서로 매칭되는지 여부가 문제가 될 수 있다. 이러한 낮은 레이트 쿼리 핑거프린트들의 매칭은 미디어 스트림의 충분히 긴 정적 세그먼트와 관련하여 발생할 수 있다. 따라서 매우 낮은 신뢰도의 매칭 포인트를 고려하지 않도록, 매칭 포인트 분석에서 해당 쿼리 핑거프린트들의 번들을 제외하는 것이 유용할 수 있다.
다른 한편으로, 4 개의 낮은 레이트 쿼리 핑거프린트 번들이 하나의 정적 세그먼트에서 다른 것으로 변화하는 것을 아우르는 시나리오를 고려한다. 예를 들어, 비디오 컨텐츠의 경우, 번들의 처음 두 개의 쿼리 핑거프린트는 장면 변경이 발생하기 전의 프레임들을 나타낼 수 있으며, 번들의 마지막 두 개의 쿼리 핑거프린트는 장면 변경이 발생한 이후의 프레임들을 나타낼 수 있다. 이 상황에서는, 번들의 4 개의 쿼리 핑거프린트가 모두 서로 매칭되는 것이 아니므로, 서버는 매칭 포인트 분석에 이 번들을 포함시킨 다음 해당 스캐터 플롯 및 베스트 피트 분석에 포함할 매칭 포인트를 검출할 수 있다. 그러나 이 예에서는, 두 번째 및 세 번째 쿼리 핑거프린트들에 의해 표현되는 프레임들 사이에서 제 시간에 장면 변경이 발생했는지 여부가 불분명하기 때문에, 매칭 포인트가 베스트 피트 라인 상에 올바르게 있는지 여부가 불확실하다. 그러나 다시 말하지만, 충분한 수량의 매칭 포인트들로, 베스트 피트 분석은 위에서 설명한 바와 같이 유용하고 개선된 맵핑을 계속 생성해야 한다.
따라서, 다른 예로서, 서버는 보간으로 진행하는 서버에 대한 조건으로서, 해당 미디어 스트림 내에 적어도 임계 최소 수량의 매칭 포인트가 있을 것을 요구할 수 있다. 예를 들어, 서버는 해당 미디어 스트림(예를 들면, 애드 포드 내)에서 찾은 매칭 포인트 수를 유지할 수 있다. 서버가 미디어 스트림의 매칭 포인트 수가 미리 정의된 임계값을 충족한다고 결정하면, 서버는 식별된 매칭 포인트들을 기반으로 개선된 시간 맵핑을 확립하기 위해 위에서 설명한 스캐터 플롯 및 베스트 피트 분석을 응답적으로 수행할 수 있으며 그 후에 위에서 설명한 바와 같은 해당 시간 맵핑을 사용할 수 있다. 실제에 있어서, 임계 최소 수량의 매칭 포인트들은 3 개의 매칭 포인트이거나 엔지니어 설계에서 이 목적에 충분한 것으로 간주되는 또 다른 수의 매칭 포인트일 수 있다.
또 다른 예로서, 서버가 스캐터 플롯 및 베스트 피트 분석을 시작한 후, 서버는 베스트 피트 맵핑을 사용 가능하다고 간주할 수 있는 스톱 포인트(stopping point)에 도달할 때까지 매칭 포인트들을 계속 찾고 베스트 피트 타임 맵핑을 조정할 수 있다. 스톱 포인트는 다양한 형태를 취할 수 있다. 예를 들어, 스톱 포인트는 서버가 위에서 설명한 임계 최소 수량과 같은 사전 정의된 임계 수량의 매칭 포인트들을 고려했을 경우일 수 있다. 대안적으로 또는 추가적으로, 스톱 포인트는 예를 들어 베스트 피트 라인(또는 실제 시간과 클라이언트 시간 사이의 관련 시간 오프셋)이 분석에 고려된 각 추가 매칭 포인트에 대한 최소 임계 수량(엔지니어링 설계에 의해 미리 정의됨)을 초과하여 변경되지 않은 것을 검출함으로써, 서버가 분석에서 안정성을 검출했을 때일 수 있다. 서버가 스톱 포인트를 검출하면, 서버는 매칭 포인트 수집을 중지하고 최신 베스트 피트 분석을 사용함으로써 액션(예를 들면, 컨텐츠 수정)이 발생하는 실제 시간 포인트를 관련 클라이언트 시간 포인트에 맵핑하는 것으로 진행할 수 있다. 또한 서버는 이에 따라 클라이언트가 결정된 클라이언트 시간 포인트에서 액션을 수행하도록 지시할 수 있다.
또 다른 예로서, 상기 프로세스를 사용하여 컨텐츠 수정 등이 발생하는 클라이언트 시간 포인트를 결정하는 것 이외에, 서버는 또한 이 프로세스를 사용하여 클라이언트가 컨텐츠 수정 준비를 시작하는데 유용한 앞당겨진 클라이언트 시간 포인트를 결정할 수도 있다. 예를 들어, 클라이언트가 인터넷 URL이나 기타 네트워크 주소 또는 소스에서 스트리밍 또는 다운로드를 통해 대체 또는 오버레이 컨텐츠를 얻기 시작해야 할 수 있는 경우, 및 클라이언트가 대체 또는 오버레이 컨텐츠를 실제로 얻거나 수신하기 시작하는데 시간이 걸릴 수 있는 경우, 서버는 컨텐츠 수정 시작 시간보다 충분히 앞서 있는 앞당겨진 클라이언트 시간 포인트를 계산하여, 클라이언트가 대체 또는 오버레이 컨텐츠를 얻거나 수신하기 시작할 수 있는 충분한 시간을 남겨 둘 수 있다. 그 후에 서버는 앞당겨진 클라이언트 시간 포인트를 지정하고 클라이언트가 해당 클라이언트 시간 포인트에서 대체 또는 오버레이 컨텐츠를 얻는 프로세스를 시작하도록 하는 지시를 클라이언트에게 전송할 수 있으며, 클라이언트는 그에 따라 진행할 수 있다. 따라서 클라이언트가 컨텐츠 수정을 수행해야 할 때까지 클라이언트는 대체 또는 오버레이 컨텐츠를 얻거나 수신하기 시작할 수 있다.
또한, 또 다른 예로서, 상기한 설명이 다양한 동작들을 수행하는 서버를 제공하지만, 동작들의 일부 또는 전부는 대안적으로 클라이언트 또는 다른 장치에 의해 수행될 수도 있다. 예를 들어, 상기 논의에서 실제 시간과 클라이언트 시간 사이에 개선된 맵핑을 확립하도록 작동하는 서버와, 컨텐츠 수정 또는 기타 액션이 발생할 클라이언트 시간 포인트를 결정하도록 작동하는 서버에 대해 설명했지만, 클라이언트가 이러한 동작들 중 일부를 자체적으로 수행하도록 구성될 수도 있다.
대표적인 변형에서, 예를 들어, 클라이언트가 기지의 미디어 스트림을 수신하고 있고 실제 시간과 클라이언트 시간을 상호 연관시키는 다수의 매칭 포인트들을 발견한 것으로 서버가 결정한 경우, 또는 서버가 이러한 매칭 포인트들을 찾아낸 경우, 서버는 클라이언트에게 매칭 포인트들을 보고하여, 클라이언트에게 각 매칭 포인트의 실제 시간 및 클라이언트 시간 좌표들을 알릴 수 있다. 그 후에 클라이언트는 제공받은 데이터를 사용하여 위에서 설명한 스캐터 플롯 및 베스트 피트 분석을 수행함으로써, 실제 시간과 클라이언트 시간 사이의 개선된 맵핑을 확립할 수 있다. 또한, 서버는 클라이언트가 특정 액션(예를 들면, 컨텐츠 수정 또는 컨텐츠 수정 준비)에 참여해야 하는 실제 시간 포인트를 지정하는 지시를 클라이언트에게 제공할 수 있으며, 클라이언트는 위에서 설명한 바와 같이 확립된 맵핑을 적용함으로써 실제 시간 포인트를 클라이언트 시간 포인트로 변환할 수 있다. 그 후에 클라이언트는 결정된 클라이언트 시간 포인트에서 표시된 액션을 수행하는 것으로 작동될 수 있다.
또한, 클라이언트 자체가 핑거프린트 매칭 프로세스를 수행할 수도 있다. 예를 들어, 클라이언트가 기지의 미디어 스트림을 수신하고 있는 것으로 서버가 결정하는 경우, 서버는 미디어 스트림의 다가오는 부분에 대한 타임스탬프된 레퍼런스 핑거프린트 세트를 클라이언트에게 제공하고, 원하는 액션이 발생하는 미디어 스트림 내의 프레임에 대한 레퍼런스 타임스탬프를 클라이언트에게 알릴 수 있다.
예를 들어, 클라이언트가 기지의 미디어 스트림을 수신하고 있는 것으로 서버가 결정하면, 클라이언트는 (i) 미디어 스트림의 실제 시간 타임스탬프들과 (ii) 클라이언트의 내부 클럭에 따른 시간 사이에 동기 락을 확립하여, 컨텐츠 수정이 발생할 클라이언트 시간 포인트를 판정하는 프로세스를 수행할 수 있다. 예시적인 구현에서 이것을 용이하게 하기 위해, 클라이언트가 높은 레이트의 핑거프린팅으로 전환하도록 지시하는 것 이외에, 서버는 미디어 스트림의 다가오는 부분에 대한 실제 시간 타임스탬프된 레퍼런스 핑거프린트 세트를 클라이언트에게 제공할 수 있으며, 컨텐츠 수정이 시작될 미디어 스트림 내의 프레임에 대한 실제 시간 타임스탬프를 클라이언트에게 알릴 수 있다.
따라서 클라이언트는 서버로부터 이러한 타임스탬프된 레퍼런스 핑거프린트들을 수신할 수 있다. 또한 클라이언트는 매칭 포인트들을 찾기 위해 낮은 레이트 쿼리 핑거프린트들을, 제공받은 레퍼런스 핑거프린트들과 비교할 수 있다. 클라이언트가 다수의 매칭 포인트들을 찾아낼 시에 또는 그 후에, 클라이언트는 위에서 설명한 스캐터 플롯 및 베스트 피트 분석을 수행함으로써, 실제 시간과 클라이언트 시간 사이의 개선된 맵핑을 확립할 수 있다. 또한, 클라이언트는 표시된 컨텐츠 수정 또는 기타 액션이 발생하는 클라이언트 시간 포인트를 결정하기 위해 위에서 설명한 방식으로 해당 확립된 맵핑을 적용할 수 있다. 그 후에 클라이언트는 결정된 클라이언트 시간 포인트에서 표시된 액션을 수행할 수 있다.
또한 상기한 프로세스들은 (예를 들어, 현재 재생 및/또는 저장을 위해) 클라이언트에 의해 수신되고 있는 선형 브로드캐스트 피드 등의 실시간 분석과 관련하여 적용될 수 있으며, (예를 들어, 현재 재생 또는 전송을 위해) 데이터 스토리지 등으로부터 클라이언트에 의해 검색되고 있는 미디어 스트림의 분석과 관련하여 적용될 수도 있다. 다른 구현도 가능하다.
도 3은 상기 논의에 따라 컴퓨팅 시스템에 의해 수행될 수 있는 방법을 나타내는 흐름도이다. 이 도면에서는 방법의 동작들이 특정 순서로 수행되는 것으로 도시되어 있지만, 일부 동작들은 다른 동작들과 병렬적으로 수행될 수 있으며, 다른 수정도 가능하다.
도 3에 도시된 바와 같이, 블록 30에서, 컴퓨팅 시스템은 클라이언트에 의해 수신되고 있는 미디어 스트림을 나타내는 쿼리 핑거프린트들을 수신하며, 이 쿼리 핑거프린트들은 클라이언트의 클럭에 따른 클라이언트 시간으로 타임스탬프된 것이다. 또한 블록 32에서, 가능하게는 블록 30과 병렬적으로, 컴퓨팅 시스템은 이 수신된 쿼리 핑거프린트들을, 기지의 미디어 스트림을 나타내는 레퍼런스 핑거프린트들과 비교하며, 이 레퍼런스 핑거프린트들은 기지의 미디어 스트림 내의 타임라인에 따른 실제 시간으로 타임스탬프된 것이다. 또한 블록 34에서, 컴퓨팅 시스템은 검출된 매칭 포인트들에 기초하여 선형 회귀를 수행하며, 이 선형 회귀는 실제 시간과 클라이언트 시간 사이의 맵핑을 확립하는 것이다.
블록 36에서, 컴퓨팅 시스템은, 확립된 맵핑을 기초로서 적용함으로써 클라이언트에 의해 수신되고 있는 미디어 스트림에 대해 클라이언트가 액션을 수행해야 하는 클라이언트 시간 포인트를 결정한다. 또한 블록 38에서, 컴퓨팅 시스템은 클라이언트로 하여금, 결정된 클라이언트 시간 포인트에서, 액션을 수행하게 한다.
상기 논의에 따라, 컴퓨팅 시스템이 클라이언트로 하여금 결정된 클라이언트 시간 포인트에서 수행하게 하는 액션은 컨텐츠 수정을 포함할 수 있다. 예를 들어, 클라이언트에 의해 수신되고 있는 미디어 스트림은 광고 시퀀스를 정의하는 애드 포드(ad pod)를 포함할 수 있으며, 컨텐츠 수정은 시퀀스의 광고를 대체 미디어 컨텐츠로 대체하는 것을 포함할 수 있다. 대안적으로, 액션은 컨텐츠 수정을 용이하게 하기 위해 새로운 컨텐츠를 획득하기 위한 프로세스를 개시하는 것과 같은, 이러한 컨텐츠 수정을 위한 준비를 포함할 수 있다. 다른 액션들도 가능하다.
또한, 위에서 논의된 바와 같이, 확립된 맵핑을 기초로서 적용함으로써 클라이언트에 의해 수신되고 있는 미디어 스트림에 대해 클라이언트가 액션을 수행해야 하는 클라이언트 시간 포인트를 결정하는 동작은, 확립된 맵핑을 기초로서 사용하여 기지의 미디어 스트림에 대해 액션이 수행되어야 미리 정의된 실제 시간을, 클라이언트에 의해 수신되고 있는 미디어 스트림에 대한 액션을 클라이언트가 수행해야 하는 대응하는 클라이언트 시간 포인트에 맵핑하는 것을 포함할 수 있다. 예를 들어, 기지의 미디어 스트림에서 컨텐츠 수정이 발생해야 하는 프레임의 실제 시간 포인트가 주어지는 경우, 확립된 맵핑을 적용하는 것은, 실제 시간을, 클라이언트에 의해 수신되고 있는 미디어 스트림에서 클라이언트가 컨텐츠 수정을 수행해야 하는 대응하는 클라이언트 시간 포인트로 변환하는 것을 포함할 수 있다.
또한, 위에서 논의된 바와 같이, 이러한 컴퓨팅 시스템은 클라이언트와 네트워크 통신하는 서버에 의해 구현될 수 있다. 이 경우, 클라이언트로 하여금 결정된 클라이언트 시간 포인트에서 액션을 수행하게 하는 동작은, 결정된 클라이언트 시간 포인트에서 액션을 수행하는 것에 의해 클라이언트가 응답하게 되는 지시를, 서버에서 클라이언트로 전송하는 것을 포함할 수 있다.
또한, 위에서 논의된 바와 같이, 이 프로세스의 각 매칭 포인트는 (i) 각각의 쿼리 핑거프린트들의 번들과 (ii) 레퍼런스 핑거프린트들 간의 비교에 기초하는 것일 수 있다. 또한 이 경우, 본 방법은 프로세스에서 내부적으로 매칭되는 번들을 생략하는 것을 추가로 포함할 수 있다. 예를 들어, 이 방법은 주어진 쿼리 핑거프린트들의 번들의 쿼리 핑거프린트들이 서로 매칭되는 것을 검출하고, 주어진 번들의 쿼리 핑거프린트들이 서로 매칭되는 것을 검출한 것에 응답하여, 주어진 번들을, 선형 회귀를 위해 매칭 포인트를 확립하도록 사용하는 것으로부터 제외하는 것을 포함할 수 있다.
또한, 상기 논의에 따라, 이 방법은 컴퓨팅 시스템이 검출된 매칭 포인트들 중의 하나 이상을 기초로서 사용하여, 클라이언트에 의해 수신되고 있는 미디어 스트림이 기지의 미디어 스트림인 것으로 결정하는 것을 포함할 수 있다. 예를 들어, 컴퓨팅 시스템이 초기에 이 결정을 내린 다음, 적어도 이 결정을 내린 것에 응답하여, 컴퓨팅 시스템은 선형 회귀를 수행하고, 맵핑을 적용하고, 클라이언트로 하여금 결정된 클라이언트 시간 포인트에서 액션을 수행하게 할 수 있다. 달리 말하면, 이러한 상황에서, 선형 회귀 수행, 맵핑 적용 및 클라이언트로 하여금 결정된 클라이언트 시간 포인트에서 액션을 수행하게 하는 것은, 적어도 클라이언트에 의해 수신되고 있는 미디어 스트림이 기지의 미디어 스트림이라는 결정에 대한 일괄적 응답일 수 있다.
도 4는 본 개시에 따라 클라이언트 또는 하나 이상의 다른 엔티티들에 의해 수행될 수 있는 방법을 나타내는 다른 흐름도이다. 여기서, 방법의 동작들이 특정 순서로 수행되는 것으로 도시되어 있지만, 일부 동작들은 다른 동작들과 병렬적으로 수행될 수 있으며 다른 수정도 가능하다.
도 4에 도시된 바와 같이, 블록 40에서, 이 방법은 (i) 클라이언트에 의해 수신되고 있는 미디어 스트림을 나타내는 쿼리 핑거프린트들과 (ii) 레퍼런스 핑거프린트들 사이의 복수의 매칭 포인트들을 확인하는 단계를 포함하며, 각각의 식별된 매칭 포인트는 (i) 클라이언트의 클럭에 따라 정의된 클라이언트 시간으로 타임스탬프된 쿼리 핑거프린트와 (ii) 기지의 미디어 스트림 내의 타임라인에 따라 실제 시간으로 타임스탬프된 레퍼런스 핑거프린트 사이의 각각의 매칭을 정의한 것이다.
또한, 블록 42에서, 이 방법은 확인된 복수의 매칭 포인트들의 타임스탬프들에 기초하여 선형 회귀를 수행하는 단계를 포함하며, 이 선형 회귀는 실제 시간과 클라이언트 시간 사이의 맵핑을 확립하는 것이다. 블록 44에서, 이 방법은 확립된 맵핑을 기초로서 사용하여 클라이언트에 의해 수신되고 있는 미디어 스트림에 대한 액션을 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정하는 단계를 포함한다. 또한 블록 46에서, 이 방법은 결정된 클라이언트 시간 포인트에서, 클라이언트에 의해 수신되고 있는 미디어 스트림에 대한 액션을 수행하는 단계를 포함한다.
상기 논의에 따라, 복수의 매칭 포인트들을 확인하는 동작은 다양한 형태를 취할 수 있다. 예를 들어, 이것은 클라이언트가 복수의 매칭 포인트들을 나타내는 데이터 세트를 수신하는 것을 포함할 수 있다. 위에서 논의된 예시적인 구현에서, 서버는 매칭 포인트들을 결정하기 위해 핑거프린트 비교를 수행할 수 있고, 각 매칭 포인트의 클라이언트 시간 타임스탬프 및 실제 시간 타임스탬프를 포함하는, 매칭 포인트들에 관한 정보를 클라이언트에게 전송함으로써, 클라이언트가 선형 회귀를 수행할 수 있게 할 수 있다.
대안적으로, 위에서 논의된 바와 같이, 복수의 매칭 포인트들을 확인하는 동작은, 클라이언트가 실제 시간 타임스탬프된 레퍼런스 핑거프린트들을 수신하고, 클라이언트가 클라이언트 시간 타임스탬프된 쿼리 핑거프린트들을 생성하고, 클라이언트가 생성된 쿼리 핑거프린트들을 수신된 레퍼런스 핑거프린트들과 비교함으로써 이 비교에 기초하여 매칭 포인트들을 확인하는 것을 포함할 수 있다. 또한, 위에서 논의된 바와 같이, 각각의 매칭 포인트는 (i) 각각의 쿼리 핑거프린트들의 번들과 (ii) 레퍼런스 핑거프린트들 간의 비교에 기초할 수 있다. 또한 이 경우, 본 방법은 주어진 번들의 쿼리 핑거프린트들이 서로 매칭되는 것을 검출하고, 주어진 번들의 쿼리 핑거프린트들이 서로 매칭되는 것을 검출한 것에 응답하여, 주어진 번들을, 선형 회귀를 위해 매칭 포인트를 확립하도록 사용하는 것으로부터 제외하는 것을 추가로 포함할 수 있다.
또한, 위에서 논의된 바와 같이, 클라이언트에 의해 수신되고 있는 미디어 스트림에 대한 액션은 다양한 형태를 취할 수 있다. 예를 들어, 액션은 애드 포드의 광고 대체 등과 같은 컨텐츠 수정을 포함할 수 있다. 또는 액션은 컨텐츠 수정을 용이하게 하기 위해 컨텐츠 획득을 개시하는 것과 같은, 이러한 컨텐츠 수정에 대한 준비를 포함할 수 있다. 다른 예들도 가능하다.
또한, 상기 논의에 따라, 확립된 맵핑을 기초로서 사용하여 클라이언트에 의해 수신되고 있는 미디어 스트림에 대한 액션을 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정하는 동작은, 확립된 맵핑을 기초로서 사용하여 기지의 미디어 스트림에 대해 액션이 수행되어야 하는 미리 정의된 실제 시간을, 클라이언트에 의해 수행되고 있는 미디어 스트림에 대한 액션을 클라이언트가 수행해야 하는 대응하는 클라이언트 시간 포인트에 맵핑하는 것을 포함할 수 있다.
도 5는 전술한 다양한 동작들을 수행하도록 동작할 수 있는 예시적인 컴퓨팅 시스템의 블록도이다. 전술한 바와 같이, 이러한 컴퓨팅 시스템의 양태들은 다른 가능성들 중에서도, 미디어 클라이언트(12) 및/또는 서버(18)에 의해 구현될 수 있다. 따라서, 도 5의 블록도는 하나 이상의 이러한 엔티티들의 컴포넌트들을 나타낼 수 있다.
도 5에 도시된 바와 같이, 예시적인 컴퓨팅 시스템은 네트워크 통신 인터페이스(52), 처리 유닛(54) 및 비일시적 데이터 스토리지(56)를 포함하며, 이들 모두는 네트워크, 메시지 버스, 및/또는 하나 이상의 다른 연결 메커니즘들(58)을 통해 함께 커플링되거나 통신적으로 링크될 수 있다.
네트워크 통신 인터페이스(52)는 컴퓨팅 시스템이 송신 및 수신할 수 있게 한다. 네트워크 통신 인터페이스(52)는 다른 가능성들 중에서도, 연관된 회로 및 소프트웨어와 함께 유선 및/또는 무선 이더넷 인터페이스를 포함할 수 있다. 처리 유닛(54)은 하나 이상의 범용 프로세서들(예를 들어, 마이크로 프로세서들) 및/또는 하나 이상의 특수 프로세서들(예를 들어, 주문형 집적 회로 등)을 포함할 수 있다. 또한 비일시적 데이터 스토리지(56)는 자기, 광학 또는 플래시 스토리지와 같은 하나 이상의 휘발성 및/또는 비휘발성 저장 컴포넌트들을 포함할 수 있다.
또한 도 5에 도시된 바와 같이, 비일시적 데이터 스토리지(56)는 컴퓨팅 시스템으로 하여금 전술한 바와 같은 동작들을 수행하게 하도록 처리 유닛에 의해 실행될 수 있는 프로그램 명령어들(60)을 저장(예를 들어, 보유, 인코딩 또는 구현 또는 포함)한다.
예를 들어, 이러한 동작들은 (i) 미디어 클라이언트에 의해 수신되고 있는 미디어 스트림을 나타내는 쿼리 핑거프린트들과 (ii) 레퍼런스 핑거프린트들 사이의 복수의 매칭 포인트들을 식별하는 것을 포함할 수 있으며, 여기서 각 식별된 매칭 포인트는 (i) 미디어 클라이언트의 클럭에 따라 정의된 클라이언트 시간으로 타임스탬프된 쿼리 핑거프린트와 (ii) 기지의 미디어 스트림 내의 타임라인에 따라 정의된 실제 시간으로 타임스탬프된 레퍼런스 핑거프린트 사이의 각각의 매칭을 정의한 것이다. 또한, 이 동작들은 식별된 복수의 매칭 포인트들의 타임스탬프들에 기초하여 선형 회귀를 수행하는 것을 포함하며, 이 선형 회귀는 실제 시간과 클라이언트 시간 사이의 맵핑을 확립하는 것이다. 또한 이 동작들은 확립된 맵핑을 기초로서 사용함으로써 미디어 클라이언트에 의해 수신되고 있는 미디어 스트림에서 미디어 클라이언트가 컨텐츠 수정을 수행해야 하는 클라이언트 시간 포인트를 결정하는 것을 포함할 수 있다. 또한 이 동작들은 미디어 클라이언트로 하여금, 결정된 클라이언트 시간 포인트에서 컨텐츠 수정을 수행하게 하는 것을 포함할 수 있다.
또한, 위에서 설명된 다양한 특징들이 이러한 컨텍스트에서 통합될 수 있으며, 그 반대의 경우도 가능하다. 예를 들어, 맵핑을 사용하는 것은 컨텐츠 수정의 미리 정의된 실제 시간 포인트를, 대응하는 클라이언트 시간 포인트에 맵핑하는 것을 포함할 수 있다. 또한 컨텐츠 수정은 다른 가능성들 중에서, 애드 포드의 광고 대체와 같은 컨텐츠 대체를 포함할 수 있거나, 또는 컨텐츠 오버레이를 포함할 수 있다.
또한, 컴퓨팅 시스템이 서버에 배치되고/되거나 서버에 의해 구현되는 경우, 미디어 클라이언트로 하여금 결정된 클라이언트 시간 포인트에서 컨텐츠 수정을 수행하게 하는 동작은, 미디어 클라이언트로의 전송을 위해 출력하는 것 및/또는 미디어 클라이언트로 하여금 그렇게 하도록 하는 지시를 미디어 클라이언트에게 전송하는 것을 포함할 수 있다. 또한, 이 동작들은 서로 매칭되는 쿼리 핑거프린트들의 번들을 분석에서 제외하는 것을 포함할 수 있다. 또한 이 동작들은 식별된 매칭 포인트들 중의 하나 이상을 기초로서 사용함으로써 클라이언트에 의해 수신되고 있는 미디어 스트림이 기지의 미디어 스트림인 것으로 결정하는 것을 추가로 포함할 수 있으며, 이 경우 다른 동작은 이 결정에 응답하여 일괄적으로 수행될 수 있다.
대안적으로 또는 추가적으로, 이 동작들은 (i) 클라이언트에 의해 수신되고 있는 미디어 스트림을 나타내는 쿼리 핑거프린트들과 (ii) 레퍼런스 핑거프린트들 사이의 복수의 매칭 포인트들을 확인하는 것을 포함할 수 있으며, 여기서 각각의 식별된 매칭 포인트는 (i) 클라이언트의 클럭에 따라 정의된 클라이언트 시간으로 타임스탬프된 쿼리 핑거프린트와 (ii) 기지의 미디어 스트림 내의 타임라인에 따라 정의된 실제 시간으로 타임스탬프된 레퍼런스 핑거프린트 사이의 각각의 매칭을 정의하는 것이다. 또한, 이 동작은 확인된 복수의 매칭 포인트들의 타임스탬프들에 기초하여 선형 회귀를 수행하는 것을 포함할 수 있으며, 이 선형 회귀는 실제 시간과 클라이언트 시간 사이의 맵핑을 확립하는 것이다. 또한 이 동작들은 확립된 맵핑을 기초로서 사용함으로써 클라이언트에 의해 수신되고 있는 미디어 스트림에 대한 액션을 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정하는 것을 포함할 수 있다. 또한 이 동작들은 결정된 클라이언트 시간 포인트에서, 클라이언트에 의해 수신되고 있는 미디어 스트림에 대한 액션을 수행하는 것을 포함할 수 있다.
여기서도, 위에서 설명된 다양한 특징들이 이러한 컨텍스트에서 통합될 수 있으며, 그 반대의 경우도 가능하다. 예를 들어, 컴퓨팅 시스템이 클라이언트에 배치되고/되거나 클라이언트에 의해 구현되는 경우, 매칭 포인트들을 확인하는 동작은 매칭 포인트들의 일부 또는 전부를 나타내는 데이터를 수신하는 것을 포함할 수 있으며/있거나 (i) 쿼리 핑거프린트들을 생성하고, (ii) 레퍼런스 핑거프린트들을 수신하고, (iii) 쿼리 핑거프린트들을 레퍼런스 핑거프린트들과 비교하여 매칭 포인트들을 확인하는 것을 포함할 수 있다. 또한, 클라이언트에 의해 수신되고 있는 미디어 스트림에 대한 액션은 광고 대체와 같은 컨텐츠 수정을 포함하거나 또는 컨텐츠 수정을 위한 준비를 포함할 수 있다.
또한, 위에서 설명된 다양한 동작들은 비일시적 컴퓨터 판독 가능 매체에 저장된 프로그램 명령어들에 의해 정의될 수 있으며, 이 프로그램 명령어들은 동작들을 수행하기 위해 처리 유닛에 의해 실행될 수 있다(예를 들어, 동작들이 수행되도록 하기 위해). 이러한 비일시적 컴퓨터 판독 가능 매체는 클라이언트, 서버 및/또는 다른 엔티티에서 제공되거나, 통합되거나 또는 구현될 수 있다. 또한, 이러한 동작들은 다른 형태를 취할 수도 있다.
예시적인 실시예들이 위에서 설명되었다. 그러나, 당업자는 본 발명의 진정한 범위 및 사상을 벗어나지 않고 이러한 실시예들에 대한 변경 및 수정이 이루어질 수 있음을 이해할 것이다.

Claims (20)

  1. 방법으로서,
    컴퓨팅 시스템에 의해서, 클라이언트에 의해 수신되고 있는 미디어 스트림을 나타내는 쿼리 핑거프린트(query fingerprint)들을 수신하는 단계 - 상기 쿼리 핑거프린트들은 상기 클라이언트의 클럭에 따라 클라이언트 시간(client time)으로 타임스탬프됨 -;
    상기 컴퓨팅 시스템에 의해서, 상기 수신된 쿼리 핑거프린트들을 기지의(known) 미디어 스트림을 나타내는 레퍼런스 핑거프린트들과 비교하는 단계 - 상기 레퍼런스 핑거프린트들은 상기 기지의 미디어 스트림 내의 타임라인(timeline)에 따라 실제 시간(true time)으로 타임스탬프됨 -;
    상기 컴퓨팅 시스템에 의해서, 상기 비교에 기초하여, 그 각각의 매칭 포인트가 연관된 클라이언트 시간 타임스탬프를 갖는 쿼리 핑거프린트와 연관된 실제 시간 타임스탬프를 갖는 레퍼런스 핑거프린트 사이의 매칭을 정의하는 복수의 매칭 포인트들을 검출하는 단계;
    상기 컴퓨팅 시스템에 의해서, 상기 검출된 매칭 포인트들에 기초하여 선형 회귀를 수행하는 단계 - 상기 선형 회귀는 실제 시간과 클라이언트 시간 사이의 맵핑을 확립함;
    상기 컴퓨팅 시스템에 의해서, 상기 확립된 맵핑을 기초로서 적용하여, 상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에 대한 액션을 상기 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정하는 단계; 및
    상기 클라이언트로 하여금, 상기 결정된 클라이언트 시간 포인트에서, 상기 액션을 수행하게 하는 단계
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에 대한 상기 액션은 컨텐츠 수정(content revision)을 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림은 광고들의 시퀀스를 정의하는 애드 포드(ad pod)를 포함하며, 상기 컨텐츠 수정은 상기 시퀀스의 광고를 대체 미디어 컨텐츠로 대체하는 것을 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에 대한 상기 액션은 컨텐츠 수정을 위한 준비를 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 확립된 맵핑을 기초로서 적용하여, 상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에 대한 상기 액션을 상기 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정하는 단계는, 상기 확립된 맵핑을 기초로서 사용하여, 상기 기지의 미디어 스트림에 대해 상기 액션이 수행되어야 하는 미리 정의된 실제 시간 포인트(true-time point)를, 상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에 대한 상기 액션을 상기 클라이언트가 수행해야 하는 대응하는 클라이언트 시간 포인트에 맵핑하는 단계를 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 컴퓨팅 시스템은 상기 클라이언트와 네트워크 통신하는 서버에 의해 구현되는 방법.
  7. 제 1 항에 있어서,
    각각의 매칭 포인트는 (i) 각각의 상기 쿼리 핑거프린트들의 번들(bundle)과 (ii) 상기 레퍼런스 핑거프린트들 사이의 비교에 기초하는 것이며, 상기 방법은,
    주어진 상기 쿼리 핑거프린트들의 번들의 상기 쿼리 핑거프린트들이 서로 매칭되는 것을 검출하는 단계; 및
    상기 주어진 번들의 상기 쿼리 핑거프린트들이 서로 매칭되는 것을 검출한 것에 대한 응답으로, 상기 선형 회귀에 대한 매칭 포인트를 확립하기 위해 사용하는 것으로부터 상기 주어진 번들을 제외하는 단계를 더 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 컴퓨팅 시스템에 의해서, 상기 검출된 매칭 포인트들 중 하나 이상을 기초로서 사용하여, 상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림이 상기 기지의 미디어 스트림인지 판정하는 단계를 더 포함하고,
    상기 선형 회귀의 수행, 상기 맵핑의 적용, 및 상기 클라이언트로 하여금 상기 결정된 클라이언트 시간 포인트에서 상기 액션을 수행하게 하는 것은, 적어도 상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림이 상기 기지의 미디어 스트림인지 판정한 것에 일괄적으로 응답하는 것인 방법.
  9. 컴퓨팅 시스템으로서,
    송수신을 위한 네트워크 통신 인터페이스;
    처리 유닛;
    비일시적 데이터 스토리지; 및
    상기 비일시적 데이터 스토리지에 저장되며, 상기 컴퓨팅 시스템이 동작들을 수행하도록 상기 처리 유닛에 의해 실행 가능한 프로그램 명령어들을 포함하며, 상기 동작들은,
    (i) 미디어 클라이언트에 의해 수신되고 있는 미디어 스트림을 나타내는 쿼리 핑거프린트들과 (ii) 레퍼런스 핑거프린트들 사이의 복수의 매칭 포인트들을 식별하는 동작 - 각각의 식별된 매칭 포인트는 (i) 상기 미디어 클라이언트의 클럭에 따라 정의된 클라이언트 시간으로 타임스탬프된 쿼리 핑거프린트와 (ii) 기지의 미디어 스트림 내의 타임라인에 따른 실제 시간으로 타임스탬프된 레퍼런스 핑거프린트 사이의 각각의 매칭을 정의함 -,
    상기 식별된 복수의 매칭 포인트들의 상기 타임스탬프들에 기초하여 선형 회귀를 수행하는 동작 - 상기 선형 회귀는 실제 시간과 클라이언트 시간 사이의 맵핑을 확립함 -,
    상기 확립된 맵핑을 기초로서 사용하여, 상기 미디어 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에서 컨텐츠 수정을 상기 미디어 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정하는 동작, 및
    상기 미디어 클라이언트로 하여금, 상기 결정된 클라이언트 시간 포인트에서, 상기 컨텐츠 수정을 수행하게 하는 동작
    을 포함하는 컴퓨팅 시스템.
  10. 제 9 항에 있어서,
    상기 확립된 맵핑을 기초로서 사용하여, 상기 미디어 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에서 상기 컨텐츠 수정을 상기 미디어 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정하는 동작은, 상기 확립된 맵핑을 기초로서 사용하여, 상기 기지의 미디어 스트림에서 상기 컨텐츠 수정이 수행되어야 하는 미리 정의된 실제 시간 포인트를, 상기 미디어 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에서 상기 컨텐츠 수정을 상기 미디어 클라이언트가 수행해야 하는 대응하는 클라이언트 시간 포인트에 맵핑하는 동작을 포함하는 컴퓨팅 시스템.
  11. 제 9 항에 있어서,
    상기 컨텐츠 수정은 컨텐츠 대체를 포함하는 컴퓨팅 시스템.
  12. 제 11 항에 있어서,
    상기 미디어 클라이언트에 의해 수신되고 있는 상기 미디어 스트림은 광고들의 시퀀스를 정의하는 애드 포드를 포함하며, 상기 컨텐츠 수정은 상기 시퀀스의 광고를 대체 미디어 컨텐츠로 대체하는 것을 포함하는 컴퓨팅 시스템.
  13. 제 9 항에 있어서,
    상기 동작들은 상기 미디어 클라이언트로부터 상기 쿼리 핑거프린트들을 수신하는 동작을 더 포함하고, 상기 미디어 클라이언트로 하여금 상기 결정된 클라이언트 시간 포인트에서 상기 컨텐츠 수정을 수행하게 하는 동작은, 상기 미디어 클라이언트로 하여금 상기 결정된 클라이언트 시간 포인트에서 상기 컨텐츠 수정을 수행하게 하는 지시를 상기 미디어 클라이언트에게 전송하는 동작을 포함하는 컴퓨팅 시스템.
  14. 제 9 항에 있어서,
    각각의 매칭 포인트는 (i) 각각의 상기 쿼리 핑거프린트들의 번들과 (ii) 상기 레퍼런스 핑거프린트들 사이의 비교에 기초하는 것이며, 상기 동작들은,
    주어진 상기 쿼리 핑거프린트들의 번들의 상기 쿼리 핑거프린트들이 서로 매칭되는 것을 검출하는 동작; 및
    상기 주어진 번들의 상기 쿼리 핑거프린트들이 서로 매칭되는 것을 검출한 것에 대한 응답으로, 상기 선형 회귀에 대한 매칭 포인트를 식별하기 위해 사용하는 것으로부터 상기 주어진 번들을 제외하는 동작을 더 포함하는 컴퓨팅 시스템.
  15. 제 9 항에 있어서,
    상기 동작들은 상기 식별된 매칭 포인트들 중 하나 이상을 기초로서 사용하여, 상기 미디어 클라이언트에 의해 수신되고 있는 상기 미디어 스트림이 상기 기지의 미디어 스트림인지 판정하는 동작을 더 포함하고,
    상기 선형 회귀의 수행, 상기 맵핑의 적용, 및 상기 미디어 클라이언트로 하여금 상기 결정된 클라이언트 시간 포인트에서 상기 컨텐츠 수정을 수행하게 하는 것은, 적어도 상기 미디어 클라이언트에 의해 수신되고 있는 상기 미디어 스트림이 상기 기지의 미디어 스트림인지 판정한 것에 일괄적으로 응답하는 것인 컴퓨팅 시스템.
  16. 동작들을 수행하도록 처리 유닛에 의해 실행 가능한 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 매체로서, 상기 동작들은,
    (i) 클라이언트에 의해 수신되고 있는 미디어 스트림을 나타내는 쿼리 핑거프린트들과 (ii) 레퍼런스 핑거프린트들 사이의 복수의 매칭 포인트들을 식별하는 동작 - 각각의 식별된 매칭 포인트는 (i) 상기 클라이언트의 클럭에 따라 정의된 클라이언트 시간으로 타임스탬프된 쿼리 핑거프린트와 (ii) 기지의 미디어 스트림 내의 타임라인에 따른 실제 시간으로 타임스탬프된 레퍼런스 핑거프린트 사이의 각각의 매칭을 정의함 -;
    상기 식별된 복수의 매칭 포인트들의 상기 타임스탬프들에 기초하여 선형 회귀를 수행하는 동작 - 상기 선형 회귀는 실제 시간과 클라이언트 시간 사이의 맵핑을 확립함 -;
    상기 확립된 맵핑을 기초로서 사용하여, 상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에서 컨텐츠 수정을 상기 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정하는 동작; 및
    상기 클라이언트로 하여금, 상기 결정된 클라이언트 시간 포인트에서, 상기 컨텐츠 수정을 수행하게 하는 동작
    을 포함하는 비일시적 컴퓨터 판독 가능 매체.
  17. 제 16 항에 있어서,
    상기 확립된 맵핑을 기초로서 사용하여, 상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에서 상기 컨텐츠 수정을 상기 클라이언트가 수행해야 하는 클라이언트 시간 포인트를 결정하는 동작은, 상기 확립된 맵핑을 기초로서 사용하여, 상기 기지의 미디어 스트림에서 상기 컨텐츠 수정이 수행되어야 하는 미리 정의된 실제 시간 포인트를, 상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림에서 상기 컨텐츠 수정을 상기 미디어 클라이언트가 수행해야 하는 대응하는 클라이언트 시간 포인트에 맵핑하는 동작을 포함하는 비일시적 컴퓨터 판독 가능 매체.
  18. 제 16 항에 있어서,
    각각의 매칭 포인트는 (i) 각각의 상기 쿼리 핑거프린트들의 번들과 (ii) 상기 레퍼런스 핑거프린트들 사이의 비교에 기초하는 것이며, 상기 동작들은,
    주어진 상기 쿼리 핑거프린트들의 번들의 상기 쿼리 핑거프린트들이 서로 매칭되는 것을 검출하는 동작; 및
    상기 주어진 번들의 상기 쿼리 핑거프린트들이 서로 매칭되는 것을 검출한 것에 대한 응답으로, 상기 선형 회귀에 대한 매칭 포인트를 식별하기 위해 사용하는 것으로부터 상기 주어진 번들을 제외하는 동작을 더 포함하는 비일시적 컴퓨터 판독 가능 매체.
  19. 제 16 항에 있어서,
    상기 클라이언트로 하여금 상기 결정된 클라이언트 시간 포인트에서 상기 컨텐츠 수정을 수행하게 하는 동작은, 상기 결정된 클라이언트 시간 포인트를 나타내는 컨텐츠 수정 지시를 상기 클라이언트로 전송하기 위해 출력하는 동작을 포함하는 비일시적 컴퓨터 판독 가능 매체.
  20. 제 16 항에 있어서,
    상기 클라이언트에 의해 수신되고 있는 상기 미디어 스트림은 광고들의 시퀀스를 정의하는 애드 포드를 포함하며, 상기 컨텐츠 수정은 상기 시퀀스의 광고를 대체 미디어 컨텐츠로 대체하는 것을 포함하는 비일시적 컴퓨터 판독 가능 매체.
KR1020217004201A 2018-07-19 2019-06-07 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용 KR102484054B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862700660P 2018-07-19 2018-07-19
US62/700,660 2018-07-19
US16/166,971 2018-10-22
US16/166,971 US10904587B2 (en) 2018-07-19 2018-10-22 Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision
PCT/US2019/035973 WO2020018192A1 (en) 2018-07-19 2019-06-07 Establishment and use of time mapping-based on interpolation using low-mate fingerprinting, to help facilitate frame-accurate content revision

Publications (2)

Publication Number Publication Date
KR20210022134A true KR20210022134A (ko) 2021-03-02
KR102484054B1 KR102484054B1 (ko) 2023-01-02

Family

ID=69162188

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217004201A KR102484054B1 (ko) 2018-07-19 2019-06-07 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용
KR1020217004199A KR102486777B1 (ko) 2018-07-19 2019-06-07 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217004199A KR102486777B1 (ko) 2018-07-19 2019-06-07 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용

Country Status (7)

Country Link
US (7) US10904587B2 (ko)
EP (2) EP3824641A4 (ko)
JP (2) JP7170835B2 (ko)
KR (2) KR102484054B1 (ko)
CN (2) CN111213385B (ko)
TW (3) TWI786647B (ko)
WO (2) WO2020018193A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10904587B2 (en) 2018-07-19 2021-01-26 Gracenote, Inc. Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision
US10972799B2 (en) 2018-12-16 2021-04-06 The Nielsen Company (Us), Llc Media presentation device with voice command feature
US11360466B2 (en) 2019-01-04 2022-06-14 Gracenote, Inc. Generation of media station previews using a secondary tuner
US11134305B2 (en) 2019-05-10 2021-09-28 Roku, Inc. Content-modification system with volume level adjustment feature
US11395037B2 (en) 2019-05-10 2022-07-19 Roku, Inc. Content-modification system with determination of input-buffer switching delay feature
WO2020231813A1 (en) 2019-05-10 2020-11-19 The Nielsen Company (Us), Llc Content-modification system with responsive transmission of reference fingerprint data feature
US11386696B2 (en) 2019-05-10 2022-07-12 Roku, Inc. Content-modification system with fingerprint data mismatch and responsive action feature
US11354323B2 (en) 2019-05-10 2022-06-07 Roku, Inc. Content-modification system with geographic area-based feature
US11373440B2 (en) 2019-05-10 2022-06-28 Roku, Inc. Content-modification system with fingerprint data match and mismatch detection feature
US10796159B1 (en) 2019-05-10 2020-10-06 The Nielsen Company (Us), Llc Content-modification system with use of multiple fingerprint data types feature
US11632598B2 (en) 2019-05-10 2023-04-18 Roku, Inc. Content-modification system with responsive transmission of reference fingerprint data feature
US10846506B1 (en) 2019-05-10 2020-11-24 The Nielsen Company (Us), Llc Content-modification system with geographic area-based feature
US10972794B2 (en) 2019-05-10 2021-04-06 The Nielsen Company (Us), Llc Content-modification system with transmission delay-based feature
US10986382B2 (en) 2019-06-07 2021-04-20 The Nielsen Company (Us), Llc Content-modification system with system resource request feature
US11418826B2 (en) 2019-06-07 2022-08-16 Roku, Inc. Content-modification system with supplemental content stitching feature
US11418835B2 (en) 2019-06-07 2022-08-16 Roku, Inc. Content-modification system with technical characteristic-based selection feature
US11134292B2 (en) 2019-06-07 2021-09-28 Roku, Inc. Content-modification system with overlay handling feature
CN113940086B (zh) 2019-06-07 2024-01-05 六科股份有限公司 具有广播调度利用特征的内容修改系统
US11109088B2 (en) 2019-06-07 2021-08-31 Roku, Inc. Content-modification system with unscheduling feature
US11336949B2 (en) 2019-06-07 2022-05-17 Roku, Inc. Content-modification system with testing and reporting feature
US11546647B2 (en) 2019-06-07 2023-01-03 Roku, Inc. Content-modification system with probability-based selection feature
WO2020257424A1 (en) 2019-06-18 2020-12-24 The Nielsen Company (Us), Llc Content-modification system with determination of input-buffer switching delay feature
US11212560B2 (en) 2019-06-24 2021-12-28 The Nielsen Company (Us), Llc Use of steganographically-encoded time information as basis to establish a time offset, to facilitate taking content-related action
US11297367B2 (en) 2019-07-22 2022-04-05 Roku, Inc. Content-modification system with broadcast schedule utilization feature
WO2021016255A1 (en) 2019-07-22 2021-01-28 The Nielsen Company (Us), Llc Content-modification system with broadcast schedule utilization feature
US11095944B2 (en) 2019-08-19 2021-08-17 Roku, Inc. Content-modification system with broadcast schedule utilization feature
KR20210051048A (ko) * 2019-10-29 2021-05-10 삼성전자주식회사 전자 장치 및 그 제어 방법
US11363321B2 (en) * 2019-10-31 2022-06-14 Roku, Inc. Content-modification system with delay buffer feature
US11758220B2 (en) 2020-10-29 2023-09-12 Roku, Inc. Dynamic replacement of objectionable content in linear content streams
US11917231B2 (en) 2020-10-29 2024-02-27 Roku, Inc. Real-time altering of supplemental content duration in view of duration of modifiable content segment, to facilitate dynamic content modification
US11494803B2 (en) 2021-02-11 2022-11-08 Roku, Inc. Content modification system with viewer behavior-based content delivery selection feature
US11962870B2 (en) 2021-02-17 2024-04-16 Roku, Inc. Content-modification system with quiet content detection feature

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237102A1 (en) * 2003-03-07 2004-11-25 Richard Konig Advertisement substitution
KR20120120641A (ko) * 2011-04-25 2012-11-02 (주)엔써즈 클라이언트 단말기측으로 네트워크를 통해 방송에 포함된 광고와 연관된 정보를 제공하는 시스템 및 방법
US20170034549A1 (en) * 2009-04-17 2017-02-02 Gracenote, Inc. Method and system for remotely controlling consumer electronic devices
US20170094349A1 (en) * 2015-09-28 2017-03-30 Rovi Guides, Inc. Systems and methods for identifying a source of media content based on a log of content identifiers
US20180035149A1 (en) * 2016-08-01 2018-02-01 Samsung Electronics Co., Ltd. Electronic apparatus and method of operating the same
KR20180026377A (ko) * 2015-04-23 2018-03-12 소렌슨 미디어, 인크. 자동 콘텐츠 인식 핑거프린트 시퀀스 매칭
US10158907B1 (en) * 2017-10-10 2018-12-18 Shazam Investments Ltd. Systems and methods for performing playout of multiple media recordings based on a matching segment among the recordings

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269330B1 (en) 1996-11-01 2007-09-11 Televentions, Llc Method and apparatus for controlling a video recorder/player to selectively alter a video signal
US6990453B2 (en) 2000-07-31 2006-01-24 Landmark Digital Services Llc System and methods for recognizing sound and music signals in high noise and distortion
US6965683B2 (en) * 2000-12-21 2005-11-15 Digimarc Corporation Routing networks for use with watermark systems
US8611422B1 (en) * 2007-06-19 2013-12-17 Google Inc. Endpoint based video fingerprinting
JP4572928B2 (ja) 2007-11-08 2010-11-04 ソニー株式会社 遠隔制御端末、情報取得装置、情報提供装置、情報提供システム、情報提供方法、およびプログラム
US8676030B2 (en) 2008-04-15 2014-03-18 Shlomo Selim Rakib Methods and systems for interacting with viewers of video content
US8959108B2 (en) 2008-06-18 2015-02-17 Zeitera, Llc Distributed and tiered architecture for content search and content monitoring
US8666528B2 (en) * 2009-05-01 2014-03-04 The Nielsen Company (Us), Llc Methods, apparatus and articles of manufacture to provide secondary content in association with primary broadcast media content
CN102460470B (zh) 2009-06-11 2014-12-03 杜比实验室特许公司 基于指纹的内容识别趋势分析
US8594392B2 (en) * 2009-11-18 2013-11-26 Yahoo! Inc. Media identification system for efficient matching of media items having common content
WO2011140269A1 (en) * 2010-05-04 2011-11-10 Shazam Entertainment Ltd. Methods and systems for processing a sample of a media stream
US9179198B2 (en) * 2010-10-01 2015-11-03 Sony Corporation Receiving apparatus, receiving method, and program
US8863165B2 (en) * 2010-11-01 2014-10-14 Gracenote, Inc. Method and system for presenting additional content at a media system
US9113202B1 (en) 2011-09-21 2015-08-18 Google Inc. Inverted client-side fingerprinting and matching
JP6071184B2 (ja) * 2011-10-26 2017-02-01 サターン ライセンシング エルエルシーSaturn Licensing LLC 受信装置、受信方法、プログラム、及び情報処理システム
US9292894B2 (en) 2012-03-14 2016-03-22 Digimarc Corporation Content recognition and synchronization using local caching
US9703932B2 (en) 2012-04-30 2017-07-11 Excalibur Ip, Llc Continuous content identification of broadcast content
US9146990B2 (en) * 2013-01-07 2015-09-29 Gracenote, Inc. Search and identification of video content
WO2015039888A1 (en) * 2013-09-20 2015-03-26 Koninklijke Kpn N.V. Correlating timeline information between media streams
EP2876890A1 (en) * 2013-11-21 2015-05-27 Thomson Licensing Method and apparatus for frame accurate synchronization of video streams
US9456237B2 (en) 2013-12-31 2016-09-27 Google Inc. Methods, systems, and media for presenting supplemental information corresponding to on-demand media content
US9402111B2 (en) 2014-09-17 2016-07-26 Ispot.Tv, Inc. Television audience measurement method and apparatus
KR102217191B1 (ko) 2014-11-05 2021-02-18 삼성전자주식회사 단말 장치 및 그 정보 제공 방법
US10750236B2 (en) * 2015-04-23 2020-08-18 The Nielsen Company (Us), Llc Automatic content recognition with local matching
US9854326B1 (en) * 2015-09-09 2017-12-26 Sorenson Media, Inc. Creating and fulfilling dynamic advertisement replacement inventory
JP2017111274A (ja) * 2015-12-16 2017-06-22 ヤマハ株式会社 データ処理装置
US9930406B2 (en) * 2016-02-29 2018-03-27 Gracenote, Inc. Media channel identification with video multi-match detection and disambiguation based on audio fingerprint
US20190020913A9 (en) * 2016-06-27 2019-01-17 Facebook, Inc. Systems and methods for identifying matching content
KR102410473B1 (ko) 2016-08-01 2022-06-17 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법
US10659509B2 (en) 2016-12-06 2020-05-19 Google Llc Detecting similar live streams ingested ahead of the reference content
US10853428B2 (en) * 2017-07-14 2020-12-01 Facebook, Inc. Computing a ranked feature list for content distribution in a first categorization stage and second ranking stage via machine learning
US10904587B2 (en) 2018-07-19 2021-01-26 Gracenote, Inc. Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237102A1 (en) * 2003-03-07 2004-11-25 Richard Konig Advertisement substitution
US20170034549A1 (en) * 2009-04-17 2017-02-02 Gracenote, Inc. Method and system for remotely controlling consumer electronic devices
KR20120120641A (ko) * 2011-04-25 2012-11-02 (주)엔써즈 클라이언트 단말기측으로 네트워크를 통해 방송에 포함된 광고와 연관된 정보를 제공하는 시스템 및 방법
KR20180026377A (ko) * 2015-04-23 2018-03-12 소렌슨 미디어, 인크. 자동 콘텐츠 인식 핑거프린트 시퀀스 매칭
US20170094349A1 (en) * 2015-09-28 2017-03-30 Rovi Guides, Inc. Systems and methods for identifying a source of media content based on a log of content identifiers
US20180035149A1 (en) * 2016-08-01 2018-02-01 Samsung Electronics Co., Ltd. Electronic apparatus and method of operating the same
US10158907B1 (en) * 2017-10-10 2018-12-18 Shazam Investments Ltd. Systems and methods for performing playout of multiple media recordings based on a matching segment among the recordings

Also Published As

Publication number Publication date
WO2020018193A1 (en) 2020-01-23
TW202008794A (zh) 2020-02-16
US20200029108A1 (en) 2020-01-23
CN110999311A (zh) 2020-04-10
US11303939B2 (en) 2022-04-12
US20210266616A1 (en) 2021-08-26
KR20210021099A (ko) 2021-02-24
US20210105515A1 (en) 2021-04-08
TW202205870A (zh) 2022-02-01
WO2020018192A8 (en) 2021-02-11
US11284131B2 (en) 2022-03-22
US20200029115A1 (en) 2020-01-23
EP3824640A1 (en) 2021-05-26
CN111213385A (zh) 2020-05-29
US10715840B2 (en) 2020-07-14
US11044499B2 (en) 2021-06-22
US10904587B2 (en) 2021-01-26
US20220191563A1 (en) 2022-06-16
JP7170835B2 (ja) 2022-11-14
KR102486777B1 (ko) 2023-01-11
EP3824641A4 (en) 2022-05-04
JP2021530928A (ja) 2021-11-11
EP3824640A4 (en) 2022-05-04
KR102484054B1 (ko) 2023-01-02
TWI730348B (zh) 2021-06-11
US20220167029A1 (en) 2022-05-26
CN111213385B (zh) 2022-12-06
US11665378B2 (en) 2023-05-30
US11882321B2 (en) 2024-01-23
US20200296436A1 (en) 2020-09-17
JP7170834B2 (ja) 2022-11-14
EP3824641A1 (en) 2021-05-26
TW202008796A (zh) 2020-02-16
JP2021530927A (ja) 2021-11-11
WO2020018192A1 (en) 2020-01-23
TWI733132B (zh) 2021-07-11
TWI786647B (zh) 2022-12-11
CN110999311B (zh) 2022-07-26

Similar Documents

Publication Publication Date Title
KR102486777B1 (ko) 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용
US10992981B2 (en) Dynamic control of fingerprinting rate to facilitate time-accurate revision of media content

Legal Events

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