KR100957987B1 - 미디어 객체 제어 시스템 및 컴퓨터 판독가능 기록매체 - Google Patents

미디어 객체 제어 시스템 및 컴퓨터 판독가능 기록매체 Download PDF

Info

Publication number
KR100957987B1
KR100957987B1 KR1020047020334A KR20047020334A KR100957987B1 KR 100957987 B1 KR100957987 B1 KR 100957987B1 KR 1020047020334 A KR1020047020334 A KR 1020047020334A KR 20047020334 A KR20047020334 A KR 20047020334A KR 100957987 B1 KR100957987 B1 KR 100957987B1
Authority
KR
South Korea
Prior art keywords
media
media stream
objects
stream
repeating
Prior art date
Application number
KR1020047020334A
Other languages
English (en)
Other versions
KR20050014859A (ko
Inventor
코맥 허레이
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Priority claimed from PCT/US2003/020771 external-priority patent/WO2004004351A1/en
Publication of KR20050014859A publication Critical patent/KR20050014859A/ko
Application granted granted Critical
Publication of KR100957987B1 publication Critical patent/KR100957987B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H40/00Arrangements specially adapted for receiving broadcast information
    • H04H40/18Arrangements characterised by circuits or components specially adapted for receiving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/35Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
    • H04H60/37Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying segments of broadcast information, e.g. scenes or extracting programme ID
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/56Arrangements characterised by components specially adapted for monitoring, identification or recognition covered by groups H04H60/29-H04H60/54
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal

Abstract

많은 미디어 스트림(210)은 반복하는 "객체(objects)"를 포함한다. 미디어 스트림 내의 반복하는 객체는 무시할 수 없는 기간의 임의의 섹션, 즉 사람 청취자 또는 시청자에 의해 논리적 단위인 것으로 간주되는 노래, 비디오, 광고, 징글 등으로서 정의된다. "객체 제어기"(300)는 이러한 반복하는 객체가 출현할 때 이들을 식별하고 사용자가 실시간으로 또는 특정의 반복하는 객체의 차후의 출현 시에 개개의 반복하는 객체들이 어떻게 처리되는지를 지정할 수 있게 해주는 대화형 사용자 인터페이스(350)를 제공한다. 일반적으로, 객체 제어기(300)는 반복하는 객체들을 식별하는 메카니즘, 그 객체들의 시간상 종료점을 식별하는 메카니즘, 특정의 객체가 미디어 스트림 내에서 반복할 때 취하게 될 동작을 지정하기 위한 사용자 인터페이스, 및 일 실시예에서, 스트림에서의 명백한 중단없이 미디어 스트림으로부터의 객체들의 실시간 삭제를 가능하게 하기에 충분한 길이를 갖는 버퍼(330)를 포함한다.
객체 제어기, 미디어 스트림, 미디어 객체, 미디어 캡처

Description

미디어 객체 제어 시스템 및 컴퓨터 판독가능 기록매체{A SYSTEM AND METHOD FOR PROVIDING USER CONTROL OVER REPEATING OBJECTS EMBEDDED IN A STREAM}
본 발명은 미디어 스트림 식별 및 분할에 관한 것으로서, 상세하게는 예를 들어 라디오 또는 텔레비전 방송국에 의해 방송되는 미디어 스트림 등의 하나 이상의 미디어 스트림 내에서 식별된 반복하는 오디오 및/또는 비디오 객체에 대한 자동적인 실시간 사용자 제어를 제공하는 시스템 및 방법에 관한 것이다.
특정의 광고, 방송국 징글(station jingle), 또는 오디오 스트림에 내장된 노래들, 또는 비디오 스트림에 내장된 광고나 다른 비디오 등의 오디오 및/또는 비디오 객체를 식별하는 기존의 방식이 많이 있다. 예를 들어, 오디오 식별과 관련하여, 많은 이러한 방식은 "오디오 지문 인식(audio fingerprinting)" 방식이라고 한다. 일반적으로, 오디오 지문 인식 방식은 기지의 객체를 받아서 그 객체를, 예를 들어 주파수 내용, 에너지 레벨 등의 일련의 파라미터로 정리한다. 이어서 이들 파라미터는 기지의 객체들의 데이터베이스에 저장된다. 스트리밍 미디어의 샘플링된 부분은 이어서 식별을 위해 데이터베이스 내의 지문들과 비교된다.
따라서, 일반적으로 이러한 방식들은 일반적으로 미디어 스트림과 이전에 식 별된 미디어 객체들의 대규모 데이터베이스와의 비교에 의존한다. 동작을 설명하면, 이러한 방식들은 종종 어떤 종류의 슬라이딩 윈도우(sliding window) 구성을 사용하여 원하는 기간에 걸쳐 미디어 스트림을 샘플링하고, 일치 가능성을 확인하기 위해 샘플링된 데이터를 데이터베이스와 비교한다. 이와 같이, 미디어 스트림 내의 개개의 객체가 식별될 수 있다. 이러한 식별 정보는 일반적으로 미디어 스트림의 개별적인 객체로의 분할 또는 미디어 스트림을 분류하기 위한 재생 목록의 작성 등을 비롯한 여러가지 목적으로 사용된다.
그렇지만, 앞서 살펴본 바와 같이, 이러한 방식들은 동작하기 위해 기식별된 미디어 객체들로 된 기존의 데이터베이스의 사용을 필요로 한다. 이러한 기존의 데이터베이스가 없는 경우, 상기한 종래의 방식들을 사용할 때 미디어 스트림의 식별 및/또는 분할은 할 수 없다.
게다가, 이러한 미디어 스트림과의 사용자 상호작용은 미디어 스트림 내의 반복하는 객체와 이러한 반복하는 객체의 시작점 및 종료점 둘다를 신속하게 식별할 수 있는 능력에 의해 제한된다.
따라서, 기식별된 미디어 객체들로 된 기존의 데이터베이스를 사용할 필요없이 방송 라디오 또는 텔레비전 신호 등의 미디어 스트림으로부터 반복 미디어 객체를 효율적으로 식별하고 추출 또는 분할하는 시스템 및 방법이 필요하다. 또한, 일단 반복 미디오 객체들이 식별되면 사용자로 하여금 특정 반복 미디어 스트림의 핸들링 또는 처리를 제어할 수 있게 하기 위해, 미디어 스트림과의 사용자 상호작용을 제공하기 위한 인텔리젼트 사용자 인터페이스가 요구된다.
많은 미디어 스트림은 반복하는 "객체"를 포함한다. 미디어 스트림 내의 반복하는 객체는 무시할 수 없는 기간의 임의의 섹션, 즉 사람 청취자 또는 시청자에 의해 논리적 단위인 것으로 식별되는 노래, 비디오, 광고, 징글 등으로서 정의된다. 예를 들어, 일반적인 팝 라디오 방송으로부터 도출된 오디오 스트림은 시간의 경과에 따라 예를 들어 노래, 징글, 광고 및 방송국 식별자를 비롯한 동일한 객체의 많은 반복을 포함할 수 있다. 이와 유사하게, 일반적인 텔레비전 방송으로부터 도출된 오디오/비디오 미디어 스트림도 시간의 경과에 따라 예를 들어, 상업 광고, 광고, 방송국 식별자, 프로그램 "테마 음(signature tune)" 또는 긴급 방송 신호를 비롯한 동일한 객체의 다수 반복을 포함하게 된다. 그렇지만, 이들 객체는 일반적으로 미디어 스트림 내에서 예측할 수 없는 시간에 나타나게 되며, 종종 미디어 스트림을 캡처 또는 레코딩하는 데 사용되는 임의의 획득 프로세스에 의해 야기되는 노이즈에 의해 오염된다.
게다가, 라디오 방송 등의 일반적인 미디어 스트림 내의 객체들은 종종 각각의 객체의 시작점 및/또는 종료점에서 보이스 오버(voice-over)로 오염된다. 게다가, 이러한 객체들은 종종 단축된다, 즉 처음부터 또는 끝까지 계속하여 완전히 재생되지 않는다. 게다가, 이러한 객체들은 종종 일부러 왜곡되어진다. 예를 들어, 라디오 방송국을 통한 오디오 방송은 종종 압축기, 이퀄라이저 또는 다수의 다른 시간/주파수 효과를 사용하여 처리된다. 게다가, 일반적인 라디오 방송국을 통해 방송된 음악이나 노래 등의 오디오 객체는 종종 앞뒤에 오는 음악이나 노래로 크로 스페이딩(cross-fading)됨으로써, 오디오 객체 시작점 및 종료점을 흐릿하게 하고 그 객체에 왜곡이나 노이즈를 부가한다. 미디어 스트림의 이러한 처리는 당업자는 잘 알고 있는 것이다. 마지막으로, 유의할 점은 이러한 오염이나 왜곡 중 임의의 것 또는 그 모두는 개별적으로 또는 조합하여 일어날 수 있으며, 개별적으로 명시하여 언급하는 경우를 제외하고는 본 설명에서는 일반적으로 "노이즈"라고 부른다는 것이다. 결과적으로, 이러한 객체를 식별하는 것 및 이러한 노이즈가 많은 환경에서 이러한 객체의 종료점을 찾아내는 것은 어려운 문제이다.
본 명세서에 기술하는 바와 같이, "반복하는 객체 제어기(repeating object controller, ROC)"는 반복하는 객체 및 그의 종료점이 미디어 스트림 내에서 나타날 때 이들을 식별하는 "객체 추출기" 또는 지문 엔진과 협력하여 동작한다. 미디어 스트림 내의 반복하는 객체가 식별되면, ROC는 사용자가 개개의 반복하는 객체를 실시간으로 처리할지 또는 특정의 반복하는 객체의 차후의 출현 시에 처리할지를 지정할 수 있게 해주는 대화형 사용자 인터페이스를 제공한다. 따라서, 본 명세서에 기술된 시스템 및 방법은 일반적으로 반복하는 객체를 그의 시간상 종료점과 함께 식별하는 메카니즘, 특정의 객체가 미디어 스트림 내에서 반복할 때 취할 동작을 지정하는 사용자 인터페이스, 및 한 실시예에서, 스트림의 명백한 중단없이 미디어 스트림으로부터 특정의 객체를 실시간 삭제 및 대체할 수 있기에 충분한 길이를 갖는 버퍼를 포함하는 것으로 기술될 수 있다.
반복하는 객체 및 이들 객체의 종료점을 식별하는 전술한 "객체 추출기"의 일례에 대해 본 명세서에 기술되어 있다. 그렇지만, ROC가 본 명세서에 기술된 특 정의 객체 추출기에 의해 한정되지 않으며 사실 반복하는 객체 및 미디어 스트림 내에서의 그의 시간상 위치를 식별할 수 있는 임의의 시스템과 함께 똑같이 동작할 수 있음을 당업자라면 잘 알 것이다.
이러한 간단한 개요를 보면, 예시적인 객체 추출기에 대해 먼저 기술되고, 이어서 이 객체 추출기에 의해 제공되는 정보를 사용하는 ROC에 대해 기술한다.
본 명세서에 기술된 객체 추출기는 그를 ROC와 상호작용하기에 아주 적합하게 만드는 많은 이점을 제공한다. 예를 들어, 미디어 스트림 내의 미디어 객체에 관한 통계적 정보를 수집하는 유용한 기술을 제공하는 것 이외에, 미디어 스트림의 자동 식별 및 분할에 의해 사용자는 스트림 내의 특정 콘텐츠에 자동적으로 액세스하거나 그를 제어할 수 있거나, 역으로 미디어 스트림 내의 원하지 않는 콘텐츠를 자동적으로 건너뛰거나 대체할 수 있다. 추가의 이점으로는 미디어 스트림으로부터 원하는 콘텐츠만을 식별하고 저장할 수 있는 것, 특정의 처리를 위한 목표 콘텐츠를 식별할 수 있는 것, 임의의 다중 검출된 객체들을 노이즈 감소(de-noise)시키거나 깨끗하게 할 수 있는 것, 및 다중 검출된 객체들의 단일 복사본만을 저장함으로써 스트림을 보다 효율적으로 보관할 수 있는 것이 있다.
전술한 바와 같이, 전술한 객체 추출기 등의 미디어 스트림 내의 반복 미디어 객체들을 자동적으로 식별하고 분할하는 시스템 및 방법은 이전에 나왔었던 객체가 나왔는지를 결정하기 위해 스트림을 검사함으로써 반복하는 객체들을 식별한다. 예를 들어, 오디오 경우에, 이것은 노래를 이전에 스트림에 나타났던 객체인 것으로 식별하는 것을 의미한다. 이와 마찬가지로, 텔레비전 스트림으로부터 도출 된 비디오의 경우에, 그것은 방송국 "징글" 및 다른 빈번히 반복되는 객체들은 물론 특정의 광고를 식별하는 것을 포함할 수 있다. 게다가, 이러한 객체들은 종종 스트림에 관한 중요한 동기화 정보를 전달한다. 예를 들어, 뉴스 방송국의 테마 음악은 시간 및 뉴스 보도가 곧 시작되거나 막 끝났다는 사실을 전달한다.
예를 들어, 반복하는 객체 및 반복하지 않는 객체를 포함하는 오디오 스트림이 주어진 경우, 본 명세서에 기술된 시스템 및 방법은 미디어 스트램 내의 반복 미디어 객체들을 자동적으로 식별하고 분할하는 반면, 미디어 스트림의 일치하는 부분들, 즉 일치하는 반복 객체들의 비교에 의해 객체 종료점을 식별한다. 예로서, 방송된 오디오, 즉 라디오 또는 인터넷 방송을 사용하는 경우, 반복하는 "객체"는 예를 들어 라디오 음악 방송을 통한 노래, 호출 신호, 징글 및 광고를 포함할 수 있다.
반복하지 않는 객체의 예로는 예를 들어 디스크 자키의 생방송 음성, 뉴스 및 교통 속보, 및 단 한번만 방영되는 프로그램이나 노래가 있을 수 있다. 이들 서로 다른 유형의 객체들은 미디어 스트림으로부터의 식별 및 분할을 가능하게 해주는 서로 다른 특성을 갖는다. 예를 들어, 인기있는 라디오 방송국을 통한 라디오 광고는 일반적으로 길이가 30초 미만이고, 음성이 수반되는 징글로 이루어져 있다. 방송국 징글은 일반적으로 길이가 2 내지 10초이며, 대체로 음악과 음성이고 하루에 걸쳐 아주 자주 반복된다. 예를 들어 클래식, 재즈, 또는 얼터너티브(alternative)와는 반대로 "인기있는" 음악 방송국을 통한 노래는 일반적으로 길이가 2 내지 7분이고 아주 자주 음악은 물론 음성도 포함한다.
일반적으로, 반복 미디어 객체의 자동 식별 및 분할은 미디어 콘텐츠가 반복되고 있는 미디어 스트림 내의 영역이나 부분들을 찾아내기 위해 미디어 스트림의 부분들을 비교함으로써 달성된다. 테스트된 실시예에서, 반복 객체들의 식별 및 분할은 스트림의 일치 부분들을 식별하기 위해 미디어 스트림의 섹션들을 직접 비교한 다음에 객체 종료점을 식별하기 위해 일치 부분들을 정렬함으로써 달성된다. 관련된 실시예에서, 세그먼트들은 탐색되고 있는 유형의 객체가 그 세그먼트에 존재할 가능성이 있는지 여부를 평가하기 위해 먼저 테스트된다. 존재하는 경우, 미디어 스트림의 다른 세그먼트들과의 비교가 시작되지만, 존재하지 않는 경우 문제의 세그먼트에 대한 추가의 처리가 효율성의 향상을 위해 무시될 수 있다.
다른 실시예에서, 반복 미디어 객체의 자동 식별 및 분할은 가능한 객체를 식별하기 위해 오디오 및/또는 비디오 미디어의 서로 다른 측면을 목표로 하기 위한 일단의 객체 의존적인 알고리즘을 이용함으로써 달성된다. 일단 스트림 내에서 가능한 객체가 식별되면, 객체를 반복하는 객체로서 확인하는 것은 자동적으로 인스턴스화된 동적 객체 데이터베이스 내의 일치가능성이 있는 객체들에 대한 자동 검색에 뒤이어서 가능한 객체와 일치가능성이 있는 객체들 중 하나 이상 간의 상세 비교에 의해 달성된다. 이어서, 객체 종료점은 자동 정렬 및 그 객체의 다른 반복 복사본과의 비교에 의해 자동적으로 결정된다.
미디어 스트림 내의 반복하는 객체를 식별하는 다른 절차는 미디어 스트림의 세그먼트로부터 오디오 및/또는 비디오 지문을 간단히 계산하고, 이어서 현재의 세그먼트가 기지의 지, 즉 전술한 바와 같이 그것이 "일치"인지를 결정하기 위해 지 문 데이터베이스를 검색하는 것이다. 지문 데이터베이스가 초기에 비어 있는 경우, 지문이 단순히 계산되고 데이터베이스를 채우기 위해 사용된다. 종국에, 반복하는 객체가 미디어 스트림에 나타날 때, 이들은 반복하는 객체로서 식별될 것이다. 이러한 지문 계산 및 비교 기술은 당업자라면 잘 알고 있으며, 그에 대해 여기에서 상세히 기술하지 않는다. 그렇지만, 유의할 점은 이러한 기술이 기지의 객체가 스트림 내에서 반복하고 있음을 나타내기에 유용하지만 이러한 기술은 일반적으로 실제의 객체 종료점을 식별하는 데는 유용하지 않다는 것이다. 따라서, 일 실시예에서, 미디어 스트림, 또는 다른 대안에서 미디어 스트림의 저차원 버전은 아카이브되는 반면, 관련 지문은 지문 데이터베이스에 저장된다. 이어서, 아카이브된 스트림은 이하에 기술하는 바와 같이 객체 종료점의 식별에 사용된다.
일치가 어떻게 식별되는지, 즉 미디어 스트림의 일부분의 전술한 직접 비교를 통해서 또는 전술한 지문 비교 기법을 통해서 식별되는지에 상관없이, 반복하는 객체의 식별 및 분할은 객체 종료점을 찾아내기 위해 미디어 스트림의 일치 부분을 정렬함으로써 달성된다. 유의할 점은 이하에 기술하는 바와 같이 종료점 식별을 위한 정렬은 원본 미디어 스트림을 사용하거나 미디어 스트림의 저차원 버전을 사용하여 잘 동작한다는 것이다.
대략적인 종료점은 간단한 패턴 정합 등의 많은 종래 기술 중 임의의 것을 사용하여 일치 부분을 정렬함으로써, 일치 부분들 간의 상호 상관(cross-correlation) 피크를 정렬함으로써, 또는 일치하는 신호를 정렬하기 위한 임의의 다른 종래의 기술에 의해 찾아진다. 일단 정렬되면, 종료점은 미디어 스트림의 2 개의 부분이 갈라지는 그 점을 찾아내기 위해 미디어 스트림에서 일치하는 부분의 경계를 넘어서 전방 및 후방으로 추적함으로써 식별된다. 반복 미디어 객체는 방송될 때마다 일반적으로 정확히 동일한 순서로 재생되지 않기 때문에, 미디어 스트림에서 종료점을 찾아내는 이 기술은 미디어 스트림 내의 미디어 객체의 시작 및 종료점을 만족스럽게 찾아내는 것으로 관측되었다.
다른 대안으로서, 전술한 바와 같이, 일 실시예에서, 일단의 알고리즘이 오디오 및/또는 비디오 미디어의 서로 다른 측면을 목표로 삼아 미디어 스트림 내의 객체들을 식별하는 데 유용한 파라미터 정보를 계산하는 데 사용된다. 이 파라미터 정보는 특정의 객체를 식별하는 데 유용한 파라미터를 포함하며, 따라서 계산된 파라미터 정보의 유형은 탐색되는 객체의 클래스에 의존한다. 유의할 점은 분석되는 미디어 스트림의 유형에 따라, 미디어 객체의 유사성을 비교하기 위한 다수의 공지의 전통적인 주파수, 시간, 이미지 또는 에너지 기반 기술 중 임의의 것이 잠재적인 객체 일치를 식별하기 위해 사용될 수 있다는 것이다. 예를 들어, 오디오 스트림 내의 음악 또는 노래와 관련하여, 이들 알고리즘은 예를 들어 짧은 윈도우에서의 분당 박자수(beats per minute), 스테레오 정보, 짧은 구간에 걸친 채널당 에너지 비, 및 특정 주파수 대역의 주파수 내용 등의 미디어 스트림 내의 쉽게 구해지는 파라미터를 계산하는 것, 그의 스펙트럼에서의 실질적인 유사성을 알아보기 위해 더 큰 미디어 세그먼트를 비교하는 것, 가능한 후보 객체의 샘플을 저장하는 것, 및 임의의 반복된 객체를 식별하기 위해 학습하는 것을 포함한다.
이 실시예에서, 일단 미디어 스트림이 획득되었으면, 저장된 미디어 스트림 은 탐색된 클래스의 객체, 즉, 노래, 징글, 비디오, 광고 등이 검사되는 스트림의 부분에 존재할 확률을 결정하기 위해 검사된다. 탐색된 객체가 존재할 확률이 미리 정해진 임계값에 도달하면, 그 있을법한 객체의 스트림 내에서의 위치가 전술한 데이터베이스 내에 자동적으로 기입된다. 유의할 점은 이러한 검출 또는 유사성 임계값이 원하는 바에 따라 스트림 내에서의 객체 검출의 감도를 조절하기 위해 증가되거나 감소될 수 있다는 것이다.
이 실시예의 경우, 있을법한 객체가 스트림에서 식별되었으면, 그 있을법한 객체를 특징지우는 파라미터 정보가 계산되고 이전에 식별된 있을법한 객체로 잠재적인 객체 일치를 식별하기 위해 데이터베이스 질의 또는 검색에서 사용된다. 데이터베이스 질의의 목적은 단순히 스트림의 2개의 부분이 대략적으로 동일한지 여부, 환언하면, 스트림 내에서 2개의 서로 다른 시간 위치에 있는 객체가 대략적으로 동일한지 여부를 결정하는 것이다. 게다가, 데이터베이스가 초기에 비어 있기 때문에, 더 많은 가능한 객체가 식별되고 데이터베이스에 부가됨에 따라, 잠재적인 일치를 식별할 가능성은 자연히 시간에 따라 증가하게 된다.
있을법한 객체에 대한 잠재적인 일치들이 반환된 경우, 있을법한 객체를 보다 확고하게 식별하기 위해 있을법한 객체와 잠재적인 일치들 중 하나 이상 사이의 보다 상세한 비교가 수행된다. 이 시점에서, 있을법한 객체가 잠재적인 일치들 중 하나의 반복임이 밝혀지는 경우, 그것은 반복 객체로서 식별되고, 스트림 내에서의 그의 위치가 데이터베이스에 저장된다. 반대로, 상세 비교에 의해 있을법한 객체가 잠재적인 일치들 중 하나의 반복이 아닌 것으로 밝혀지는 경우, 그것은 데이터 베이스에서 새로운 객체로서 식별되고, 스트림 내에서의 그의 위치 및 파라미터 정보가 전술한 바와 같이 데이터베이스에 저장된다.
게다가, 앞서 기술한 실시예에서와 같이, 반복 객체의 여러가지 인스턴스의 종료점이 자동적으로 결정된다. 예를 들어, 특정 객체의 인스턴스가 N개 있는 경우, 그들 모두가 정확하게 동일한 길이를 가질 수 있는 것은 아니다. 따라서, 종료점의 결정은 여러가지 인스턴스를 하나의 인스턴스에 대해 정렬하는 것과 이어서 인스턴스들 각각이 다른 인스턴스들과 여전히 대략적으로 동일한 최장의 범위를 결정하기 위해 정렬된 객체들 각각에서 전방 및 후방으로 추적하는 것을 포함한다.
유의할 점은 탐색되는 클래스의 객체가 검사되는 스트림의 부분에 존재할 확률을 결정하고 또 스트림의 2 부분이 대략적으로 동일한지 여부를 테스트하는 방법이 탐색되는 객체의 유형(예를 들어, 음악, 음성, 광고, 징글, 방송국 식별자, 비디오 등)에 많이 의존하는 반면, 스트림 내에서의 종료점 위치의 결정 및 데이터베이스는 어떤 종류의 객체가 탐색되고 있는지에 상관없이 아주 유사하다는 것이다.
상기한 실시예들 각각의 또다른 수정예에서, 미디어 스트림에서의 미디어 객체 식별의 속도는 미디어 스트림의 이전에 식별된 부분들의 검색을 제한함으로써 또는 미디어 스트림을 검색하기에 앞서 이전에 식별된 미디어 객체들로 된 데이터베이스에 먼저 질의를 행함으로써 극적으로 향상된다.
게다가, 관련 실시예에서, 미디어 스트림은 스트림 내에 적어도 가장 흔한 반복 객체의 반복을 포함하기에 충분할 정도로 큰 스트림의 부분을 먼저 분석함으로써 분석된다. 스트림의 이러한 첫 부분 상에서 반복하는 객체들의 데이터베이스 가 유지된다. 이어서, 스트림의 나머지 부분은 세그먼트들이 데이터베이스 내의 임의의 객체와 일치하는지를 먼저 결정한 다음에 이어서 스트림의 나머지에 대해 검사함으로써 분석된다.
전술한 바와 같이, 반복하는 객체가 미디어 스트림 내에서 식별된 경우, 상기한 방법 중 어느 것이 사용되든지에 상관없이, ROC는 그 반복하는 객체들과 관련하여 미디어 스트림에 대해 사용자 상호작용 및 제어를 제공한다.
상세하게는, 사용자 인터페이스에 의해 사용자는 사용자는 특정의 반복하는 객체가 미디어 스트림에 나타날 때 취해질 동작을 지정할 수 있다. 이러한 동작의 예로는 반복하는 객체의 고속 감기, 미디어 객체의 저속 재생, 모니터링되고 있는 방송국 또는 채널을 자동적으로 변경하는 등에 의한 미디어 스트림의 변경, 특정의 객체를 즐겨찾기 목록에 부가하기, 반복하는 객체의 등급 매기기, 특정의 반복하는 객체에 대한 볼륨을 자동적으로 높이거나 내리기, 특정의 반복하는 객체가 검출될 때 스크린을 자동적으로 블랭킹하기, 미디어 스트림 내에서 특정의 반복하는 객체의 끝으로 건너뛰기, 특정의 반복하는 객체가 미디어 스트림 재생에 결코 나타나지 않도록 이를 스트림으로부터 삭제하기, 특정의 반복하는 객체의 복사본을 미디어 스트림으로부터 추출하여 저장하기, 반복하는 객체를 미리 정의된 기간 동안 최대 발생 횟수로 제한하기, 다른 객체들에 대한 어떤 객체의 상대 출현 빈도를 제한하기, 미디어 스트림 내의 특정의 반복하는 객체를 다른 이전에 저장된 미디어 객체로 자동적으로 대체하기, 예를 들어 긴급 방송 신호 또는 다른 특정의 반복 미디어 객체 등의 특정의 이벤트의 발생 시에 버퍼링 재생(buffered playback)에서 실시간 재생으로 자동적으로 점프하기, 미디어 스트림의 실시간 재생으로부터 미디어 스트림의 버퍼링 재생으로 복귀하기, 및 예를 들어 미디어 스트림 내에서 특정의 노래의 출현 시에 자동적으로 실내 조명을 어둡게 만드는 것 등의 사용자 정의된 동작이 있지만, 이에 한정되는 것은 아니다.
특정의 반복하는 객체와 관련된 이들 사용자 지정된 동작은 미디어 스트림 내의 반복하는 객체를 식별하는 데 사용되고 있는 실시예에 따라, 객체 데이터베이스에 각각의 객체와 함께 저장되거나 지문 데이터베이스에 각각의 지문과 함께 저장된다. 그 결과, 특정의 반복하는 객체가 미디어 스트림 내에서 검출되자마자, 관련 동작이 자동적으로 데이터베이스로부터 판독되어 그에 따른다. 게다가, 일 실시예에서, 그 동작들을 데이터베이스에 저장하는 것은 사용자가 이전에 지정된 동작들을 편집 또는 삭제할 수 있게 해주는 부가의 이점을 제공한다.
이러한 데이터베이스를 사용하는 것의 또하나의 이점은 특정의 미디어 객체와 관련된 그 특정의 동작들이 다른 사용자에게 전송되거나 컴퓨터 판독가능 매체로부터 로드될 수 있다는 것이다. 예를 들어, 한명의 사용자가 다수의 노래, 상업 광고 등에 대한 일련의 동작들을 식별하는 데 시간이 걸린 경우, 이들 동작은 단순히 제1 사용자의 데이터베이스, 또는 그 데이터베이스의 일부분을 가져오기(import)함으로써 또 한명의 사용자에게 제공될 수 있다. 이 개념의 한가지 간단한 예는 부모가 자식이 특정의 음악가를 듣지 않기를 원하는 경우이다. 그 음악가의 음악을 열거한 기존의 데이터베이스를, 그 음악이 스트림 내에 나타날 때 그것을 건너뛰기(skip), 삭제(delete), 또는 대체(replace)하는 관련 동작과 함께, 단 순히 가져오기하는 것에 의해 부모는 그 음악가의 모든 음악을 수동으로 지정할 필요없이 자식의 그 콘텐츠에 대한 액세스를 즉각적으로 제한할 수 있다.
특정의 반복하는 객체의 출현에 대해 취해야 할 동작을 지정하는 것은 여러가지 방식으로 달성된다. 예를 들어, 일 실시예에서, 종래의 텔레비전 리모콘 또는 다른 무선이나 유선 제어 장치와 유사한 핸드헬드 리모콘이 사용자에게 제공된다. 미디어 스트림이 처리되는 곳인 컴퓨팅 장치에 연결된 수신기는 리모콘으로부터 명령을 수신하고 이어서 그 명령에 따라 동작하거나 특정의 반복하는 객체의 후속 인스턴스에 대한 동작을 위한 명령을 저장한다. 리모콘은 전술한 동작 중 임의의 것 또는 그 모두를 구현하는 버튼이나 콘트롤은 물론 사용자 정의 동작을 가능하게 해주는 커스터마이즈가능하거나 프로그램가능한 버튼 또는 콘트롤을 포함할 수 있다. 일반적으로, 리모콘 장치는 당업자라면 잘 알고 있다. 따라서, 이러한 리모콘의 동작의 기초를 이루는 프로세스에 대해 여기에 자세히 기술하지 않는다.
동작을 설명하면, 특정의 동작에 대응하는 하나 이상의 버튼이 리모콘 상에 포함되어 있다. 임의의 특정의 미디어 객체의 재생 동안 버튼 중 임의의 것의 활성화는 관련 명령을 현재의 미디어 객체에 자동적으로 링크시키며, 그에 따라 그 미디어 객체의 후속 인스턴스가 자동적으로 사용자 지정된 동작을 포함하게 된다. 이어서, 이 동작은 미디어 스트림에서의 미디어 객체의 각각의 차후의 출현 시에 실시된다. 그렇지만, 유의할 점은 일 실시예에서 예를 들어 "건너뛰기" 명령 등의 어떤 동작은 반복하는 객체의 모든 장래의 인스턴스와 영구적으로 관련되어 있는 것이 아니라 명령이 활성화되어 있을 때에만 작동하도록 프로그램될 수 있다.
다른 실시예에서, 리모콘에 의해 제공되는 기능은 컴퓨터 사용자 인터페이스 윈도우에 제공된다. 상세하게는, 이 실시예에서, 다수의 온-스크린 버튼 또는 콘트롤은 리모콘과 관련하여 전술한 동일한 유형의 기능을 제공한다.
또다른 실시예에서, 사용자가 미디어 스트림 내의 반복하는 객체와 관련한 동작을 제어할 수 있도록 하기 위해 음성 작동(voice activation)을 제공한다. 상세하게는, 이 실시예에서 다수의 음성 키워드 또는 구문이 종래의 음성 또는 목소리 인식 기술을 사용하여 컴퓨터에 의해 해석된다. 음성 명령의 인식 시에, 그 명령과 관련된 동작은 현재의 미디어 객체와 링크되고, 따라서 그 미디어 객체의 차후의 인스턴스는 자동적으로 사용자 지정된 동작을 포함하게 된다. 이어서, 이 동작은 미디어 스트림에서의 미디어 객체의 각각의 차후의 출현 시에 실시되어진다. 예를 들어, 일 실시예에서, 사용자가 명령 "저장"을 말하는 경우, 현재의 미디어 객체는 자동적으로 미디어 스트림으로부터 추출되고 사용자에 의한 나중의 사용을 위해 저장되어진다. 이와 마찬가지로, 사용자가 명령 "삭제"를 말하는 경우, 현재의 미디어 객체는 미디어 스트림의 현재 재생되는 부분으로부터 자동적으로 삭제되고, 그 미디어 객체의 모든 차후의 출현도 또한 사용자에 의한 추가의 동작없이 미디어 스트림으로부터 제거되어진다.
또다른 실시예에서, 객체들은 저장되고, 사용자는 데이터베이스 내의 객체들을 연속적으로 지나감으로써 그와 관련될 동작들을 선택할 수 있다. 예를 들어, 어떤 기간 내에 발견된 길이 2분 이상인 객체들 모두가 저장될 수 있으며, 사용자는 이어서 그들을 지나가면서 사용자가 선택한 객체들과 동작들을 관련시킨다. 이 실시예에서, 사용자는 전체 객체를 듣거나 볼 필요가 없으며, 예를 들어 사용자는 10초의 대표적인 세그먼트를 제시받고 이어서 그 세그먼트의 콘텐츠에 기초하여 그 객체를 어떤 동작과 관련시킬지 여부를 결정할 수 있다. 이 실시예는 사용자를 위해 객체들과 동작들을 관련시키는 프로세스의 속도를 크게 높이는 데 도움이 된다는 점에서 이점이 있다.
예를 들어, "건너뛰기", "삭제", 및 "대체" 등의 명령이 제공되는 실시예에서, 미디어 스트림은 양호하게는 미디어 스트림 내에 내장된 특정의 객체의 매끄러운 삭제, 건너뛰기, 또는 대체가 가능하도록 재생 이전에 충분한 기간 동안 버퍼링된다. 예를 들어, 버퍼링 재생을 사용하고 건너뛰기 또는 삭제가 가능할 때, 버퍼에 의해 제공되는 지연의 길이는 건너뛰기 또는 삭제된 모든 객체의 결합 길이보다 더 커야한다. 유의할 점은 특정의 미디어 객체가 단순히 삭제 또는 건너뛰기되기보다는 대체되는 경우 버퍼 길이 요건이 완화된다는 것이다. 예를 들어, 청취자가 오디오의 시간당 4개의 3분 노래를 삭제하려고 하는 경우, 적어도 시간당 12분의 버퍼가 필요하다. 한편, 사용자가 삭제된 노래를 자료로 대체하기로 하는 경우, 명백히 훨씬 더 적은 버퍼링이 요구되게 된다.
전술한 이점 이외에, 미디어 스트림 내의 반복 미디어 객체를 자동적으로 식별하고 분할하는 시스템 및 방법의 다른 이점은 첨부 도면을 참조하여 기술된 이하의 상세한 설명으로부터 명백하게 될 것이다.
도 1은 미디어 스트림 내의 반복 미디어 객체를 자동적으로 식별하고 분할 하는 예시적인 시스템을 구현하는 범용 계산 장치를 나타낸 일반적인 시스템 도면.
도 2는 미디어 스트림 내의 반복 미디어 객체를 자동적으로 식별하고 분할하는 예시적인 프로그램 모듈을 나타낸 예시적인 구조도.
도 3은 사용자에게 미디어 스트림 내에 내장된 반복하는 객체에 대한 제어를 제공하기 위한 예시적인 프로그램 모듈을 나타낸 예시적인 구조도.
도 4a는 미디어 스트림 내의 반복 미디어 객체를 자동적으로 식별하고 분할하는 예시적인 시스템 흐름도.
도 4b는 미디어 스트림 내의 반복 미디어 객체를 자동적으로 식별하고 분할하는 도 4a의 예시적인 시스템 흐름도의 다른 실시예를 나타낸 도면.
도 4c는 미디어 스트림 내의 반복 미디어 객체를 자동적으로 식별하고 분할하는 도 4a의 예시적인 시스템 흐름도의 다른 실시예를 나타낸 도면.
도 5는 미디어 스트림 내의 반복 미디어 객체를 자동적으로 식별하고 분할하는 다른 예시적인 시스템 흐름도.
도 6은 미디어 스트림 내의 반복 미디어 객체를 자동적으로 식별하고 분할하는 다른 예시적인 시스템 흐름도.
도 7은 사용자에게 미디어 스트림에 내장된 반복하는 객체에 대한 제어를 제공하는 다른 예시적인 시스템 흐름도.
도 8은 사용자에게 미디어 스트림에 내장된 반복하는 객체에 대한 제어를 제공하는 다른 예시적인 시스템 흐름도.
도 9는 사용자에게 미디어 스트림에 내장된 반복하는 객체에 대한 제어를 제 공하는 예시적인 동작 제어 옵션을 나타낸 도면.
미디어 객체 추출기의 특정의 특징, 측면, 및 이점은 이하의 설명, 첨부된 청구항, 및 첨부 도면을 참조하면 보다 잘 이해될 것이다.
본 발명의 양호한 실시예들에 대한 이하의 설명에서, 본 명세서의 일부를 이루고 또한 본 발명이 실시될 수 있는 특정 실시예를 예로서 나타내고 있는 첨부 도면을 참조한다. 다른 실시예들이 이용될 수 있고 또 본 발명의 범위를 벗어나지 않고 구조상 변경이 이루어질 수 있음을 잘 알 것이다.
1.0 예시적인 동작 환경
도 1은 본 발명이 실시될 수 있는 적합한 컴퓨팅 시스템 환경(100)의 예를 나타낸 것이다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 사용이나 기능에 관한 어떤 제한을 암시하기 위한 것이 아니다. 컴퓨팅 환경(100)은 예시적인 오퍼레이팅 환경(100)에 예시된 컴포넌트들 중 임의의 하나 또는 그 조합에 관련한 어떤 의존성이나 요건을 가져야 하는 것으로 해석되어서도 안된다.
본 발명은 많은 다른 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작한다. 본 발명과 함께 사용하기에 적합할 수 있는 공지의 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드, 랩톱 또는 모바일 컴퓨터 또는 셀 전화 및 PDA 등의 통신 장치, 멀티프로세서시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템 또는 장치 중 임의의 것, 및 기타 등등을 포함하는 분산 컴퓨팅 환경이 있지만, 이에 한정되는 것은 아니다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈 등의 컴퓨터 실행가능 명령어의 일반적 관점에서 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체에 위치될 수 있다. 도 1을 참조하면, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다.
컴퓨터(110)의 컴포넌트로는 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함한 여러가지 시스템 컴포넌트를 프로세싱 유닛(120)에 결합시키는 시스템 버스(121)를 포함할 수 있지만 이에 한정되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 콘트롤러, 주변 버스, 및 다양한 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 포함한 몇가지 유형의 버스 구조 중 임의의 것일 수 있다. 제한이 아닌 예로서, 이러한 아키텍처로는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메자닌 버스라고도 하는 PCI(Peripheral Component Interconnect) 버스가 있다.
컴퓨터(110)는 일반적으로 각종의 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체 둘다를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등의 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다.
컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 또 컴퓨터(110)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 이에 한정되는 것은 아니다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 구현하며 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 정보를 신호에 인코딩하는 방식으로 그의 특성들 중 하나 이상이 설정되거나 변경된 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 네트워크 등의 유선 매체, 및 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함한다. 상기한 것 중 임의의 것의 조합도 컴퓨터 판독가능 매체의 범위 내에 속한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132) 등의 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에 컴퓨터(110) 내의 구성요소들 간의 정보의 전송을 돕는 기본적인 루틴을 포함하는 기본 입/출력 시스템(133)(BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)이 즉각 액세스가능하고 및/또는 그에 의해 현재 처리되고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 제한이 아닌 예로서, 도 1은 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 예시하고 있다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1은 비분리형 비휘발성 자기 매체로부터 판독하거나 그에 기록하는 하드 디스크 드라이브(141), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 그에 기록하는 자기 디스크 드라이브(151), 및 CD ROM 또는 기타 광학 매체 등의 분리형 비휘발성 광학 디스크(156)로부터 판독하거나 그에 기록하는 광학 디스크 드라이브(155)를 예시하고 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD, 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하지만 이에 한정되는 것은 아니다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140) 등의 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 연결되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150) 등의 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 연결된다.
전술하고 도 1에 예시한 드라이브 및 관련 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 및 컴퓨터(110)의 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 예시되어 있다. 유의할 점은 이들 컴포넌트가 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)와 동일하거나 서로 다를 수 있다는 것이다. 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)는 최소한 이들이 다른 복사본임을 나타내기 위해 여기에서는 서로 다른 번호가 부여되어 있다. 사용자는 키보드(162) 및 통상 마우스, 트랙볼 또는 터치 패드라고 하는 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다.
다른 입력 장치(도시 생략)은 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너, 라디오 수신기, 또는 텔레비전이나 방송 비디오 수상기 등을 포함할 수 있다. 이들 및 다른 입력 장치는 종종 시스템 버스(121)에 연결된 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 연결되어 있지만, 예를 들어 병렬 포트, 게임 포트 또는 유니버설 직렬 버스(USB) 등의 다른 인터페이스 및 버스 구조에 의해 연결될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 또 한 비디오 인터페이스(190) 등의 인터페이스를 거쳐 시스템 버스(121)에 연결된다. 모니터 이외에, 컴퓨터는 또한 출력 주변 인터페이스(195)를 통해 연결될 수 있는 스피커(197) 및 프린터(196) 등의 다른 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 도 1에는 단지 메모리 저장 장치(181)만이 도시되어 있지만, 일반적으로 컴퓨터(110)와 관련하여 전술한 구성요소의 대부분 또는 그 전부를 포함한다. 도 1에 도시한 논리적 연결은 근거리 통신망(LAN)(171) 및 원거리 통신망(WAN)(173)을 포함하지만, 다른 네트워크도 포함할 수 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크, 인트라넷 및 인터넷에서 통상적인 것이다.
LAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 연결된다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 모뎀(171) 또는 인터넷 등의 WAN(173)을 거쳐 통신을 확립하기 위한 다른 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 다른 적절한 메카니즘을 통해 시스템 버스(121)에 연결될 수 있다. 네트워크화된 환경에서, 컴퓨터(110)에 관련하여 도시된 프로그램 모듈 또는 그의 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 제한이 아닌 예로서, 도 1은 원격 애플리케이션 프로그램(185)이 메모리 장치(181) 상에 존재하는 것으로 도시하고 있다. 도시된 네트워크 연결이 예시적인 것이며 컴퓨터들 사이의 통신 링크를 확립하는 다른 수단이 사용될 수 있음을 잘 알 것이다.
지금까지 예시적인 오퍼레이팅 환경에 대해 기술하였으며, 본 설명의 나머지 부분은 미디어 스트림 내의 반복 미디어 객체를 자동적으로 식별하고 분할하는 시스템 및 방법을 구현하는 프로그램 모듈 및 프로세스의 설명에 전념할 것이다.
2.0 서론
본 명세서에 기술하는 바와 같이, "반복하는 객체 제어기(repeating object controller, ROC)"는 반복하는 객체 및 그의 종료점이 미디어 스트림 내에서 나타날 때 이들을 식별하는 "객체 추출기" 또는 지문 엔진과 협력하여 동작한다. 특히, 미디어 스트림 내의 반복하는 객체가 식별되면, ROC는 사용자가 개개의 반복하는 객체를 실시간으로 처리할지 또는 특정의 반복하는 객체의 차후의 출현 시에 처리할지를 지정할 수 있게 해주는 대화형 사용자 인터페이스를 제공한다. 따라서, 본 명세서에 기술된 시스템 및 방법은 일반적으로 반복하는 객체를 그의 시간상 종료점과 함께 식별하는 메카니즘, 특정의 객체가 미디어 스트림 내에서 반복할 때 취할 동작을 지정하는 사용자 인터페이스, 및 한 실시예에서, 스트림의 명백한 중단없이 미디어 스트림으로부터 특정의 객체를 실시간 삭제 및 대체할 수 있기에 충분한 길이를 갖는 버퍼를 포함하는 것으로 기술될 수 있다.
많은 미디어 스트림은 반복하는 "객체"를 포함한다. 미디어 스트림 내의 반복하는 객체는 무시할 수 없는 기간의 임의의 섹션, 즉 사람 청취자 또는 시청자에 의해 논리적 단위인 것으로 식별되는 노래, 비디오, 광고, 징글 등으로서 정의된 다. 예를 들어, 일반적인 팝 라디오 방송으로부터 도출된 오디오 스트림은 시간의 경과에 따라 예를 들어, 노래, 징글, 광고 및 방송국 식별자를 비롯한 동일한 객체의 많은 반복을 포함하게 된다. 이와 마찬가지로, 일반적인 텔레비전 방송으로부터 도출된 오디오 /비디오 미디어 스트림은 시간의 경과에 따라 예를 들어, 상업 광고, 광고, 방송국 식별자, 또는 긴급 방송 신호를 비롯한 동일한 객체의 다수 반복을 포함하게 된다. 그렇지만, 이들 객체는 일반적으로 미디어 스트림 내에서 예측할 수 없는 시간에 일어나게 되고, 미디어 스트림을 캡처 또는 레코딩하는 데 사용되는 임의의 획득 프로세스로 야기되는 노이즈에 의해 빈번하게 오염된다.
게다가, 라디오 방송 등의 일반적인 미디어 스트림 내의 객체들은 종종 각각의 객체의 시작 및/또는 종료점에서의 보이스 오버로 오염된다. 게다가, 이러한 객체들은 종종 단축된다, 즉 처음부터 또는 끝까지 계속하여 완전히 재생되지 않는다. 게다가, 이러한 객체들은 종종 일부러 왜곡되어진다. 예를 들어, 라디오 방송국을 통한 오디오 방송은 종종 압축기, 이퀄라이저 또는 다수의 다른 시간/주파수 효과를 사용하여 처리된다. 게다가, 일반적인 라디오 방송국을 통해 방송된 음악이나 노래 등의 오디오 객체는 종종 앞뒤에 오는 음악이나 노래로 크로스페이딩(cross-fading)됨으로써, 오디오 객체 시작점 및 종료점을 흐릿하게 하고 그 객체에 왜곡이나 노이즈를 부가한다. 미디어 스트림의 이러한 처리는 당업자는 잘 알고 있는 것이다. 마지막으로, 유의할 점은 이러한 오염이나 왜곡 중 임의의 것 또는 그 모두는 개별적으로 또는 조합하여 일어날 수 있으며, 개별적으로 명시하여 언급하는 경우를 제외하고는 본 설명에서는 일반적으로 "노이즈"라고 부른다는 것 이다. 결과적으로, 이러한 객체를 식별하는 것 및 이러한 노이즈가 많은 환경에서 이러한 객체의 종료점을 찾아내는 것은 어려운 문제이다.
본 명세서에 기술된 객체 추출기는 이들 및 다른 문제를 성공적으로 해소하면서 많은 이점을 제공한다. 예를 들어, 미디어 스트림 내의 미디어 객체들에 관한 통계적 정보를 수집하는 유용한 기술을 제공하는 것 이외에, 미디어 스트림의 자동 식별 및 분할은 사용자가 스트림 내의 원하는 콘텐츠에 자동적으로 액세스할 수 있게 해주거나 역으로 미디어 스트림 내의 원하지 않는 콘텐츠를 자동적으로 건너뛰게 해줄 수 있다. 또다른 이점으로는 미디어 스트림으로부터 바람직한 콘텐츠만 식별하고 저장할 수 있는 것, 특별한 처리를 위한 목표 콘텐츠를 식별할 수 있는 것, 임의의 다중 검출된 객체들을 노이즈 감소(de-noise)시키거나 깨끗하게 할 수 있는 것, 및 다중 검출된 객체들의 단일 복사본만을 저장함으로써 스트림을 보다 효율적으로 아카이브할 수 있는 것이 있다.
일반적으로, 반복 미디어 객체의 자동 식별 및 분할은 미디어 콘텐츠가 반복되고 있는 미디어 스트림 내의 영역이나 부분들을 찾아내기 위해 미디어 스트림의 부분들을 비교함으로써 달성된다. 테스트된 실시예에서, 반복 객체들의 식별 및 분할은 스트림의 일치 부분들을 식별하기 위해 미디어 스트림의 섹션들을 직접 비교한 다음에 객체 종료점을 식별하기 위해 일치 부분들을 정렬함으로써 달성된다.
다른 실시예에서, 반복 미디어 객체의 자동 식별 및 분할은 가능한 객체를 식별하기 위해 오디오 및/또는 비디오 미디어의 서로 다른 측면을 목표로 하기 위한 일단의 객체 의존적인 알고리즘을 이용함으로써 달성된다. 일단 스트림 내에서 가능한 객체가 식별되면, 객체를 반복 객체로서 확인하는 것은 자동적으로 인스턴스화된 동적 객체 데이터베이스 내의 일치가능성이 있는 객체들에 대한 자동 검색에 뒤이어서 가능한 객체와 일치가능성이 있는 객체들 중 하나 이상 간의 상세 비교에 의해 달성된다. 이어서, 객체 종료점은 자동 정렬 및 그 객체의 다른 반복 복사본과의 비교에 의해 자동적으로 결정된다.
또다른 실시예에서, 반복하는 미디어 객체의 자동 식별 및 분할은 미디어 스트림의 세그먼트로부터 오디오 및/또는 비디오 지문을 먼저 계산하고, 이어서 현재의 세그먼트가 기지의 지, 즉 전술한 바와 같이 그것이 "일치(match)"인지를 결정하기 위해 지문 데이터베이스를 검색하는 것이다. 지문 데이터베이스가 초기에 비어 있는 경우, 지문이 단순히 계산되고 데이터베이스를 채우기 위해 사용된다. 종국에, 반복하는 객체가 미디어 스트림에 나타날 때, 이들은 반복하는 객체로서 식별될 것이다. 이러한 지문 계산 및 비교 기술은 당업자라면 잘 알고 있으며, 그에 대해 여기에서 상세히 기술하지 않는다. 앞서 기술한 실시예들에서와 같이, 미디어 스트림의 일부가 스트림의 이전에 식별된 세그먼트와 일치하는 것으로 결정되면, 객체 종료점은 다시 그 객체의 다른 반복하는 복사본의 자동 정렬 및 비교에 의해 자동적으로 결정된다.
상세하게는, 일치가 어떻게 식별되는지, 즉 미디어 스트림의 일부분의 전술한 직접 비교를 통해서 또는 전술한 지문 비교 기법을 통해서 식별되는지에 상관없이, 반복하는 객체의 식별 및 분할은 객체 종료점을 찾아내기 위해 미디어 스트림의 일치 부분을 정렬함으로써 달성된다. 유의할 점은 이하에 기술하는 바와 같이 종료점 식별을 위한 정렬은 원본 미디어 스트림을 사용하거나 미디어 스트림의 저차원 버전을 사용하여 잘 동작한다는 것이다.
대략적인 종료점은 간단한 패턴 정합 등의 많은 종래 기술 중 임의의 것을 사용하여 일치 부분을 정렬함으로써, 일치 부분들 간의 상호 상관(cross-correlation) 피크를 정렬함으로써, 또는 일치하는 신호를 정렬하기 위한 임의의 다른 종래의 기술에 의해 찾아진다. 일단 정렬되면, 종료점은 미디어 스트림의 2개의 부분이 갈라지는 그 점을 찾아내기 위해 미디어 스트림에서 일치하는 부분의 경계를 넘어서 전방 및 후방으로 추적함으로써 식별된다. 반복 미디어 객체는 방송될 때마다 일반적으로 정확히 동일한 순서로 재생되지 않기 때문에, 미디어 스트림에서 종료점을 찾아내는 이 기술은 미디어 스트림 내의 미디어 객체의 시작 및 종료점을 만족스럽게 찾아내는 것으로 관측되었다.
반복하는 객체 및 그의 종료점이 미디어 스트림 내에서 식별된 경우, 상기한 방법 중 어느 것이 사용되든지에 상관없이, ROC는 그 반복하는 객체들과 관련하여 미디어 스트림에 대해 사용자 상호작용 및 제어를 제공한다. 상세하게는, 사용자 인터페이스에 의해 사용자는 사용자는 특정의 반복하는 객체가 미디어 스트림에 나타날 때 취해질 동작을 지정할 수 있다. 유의할 점은 ROC가 미디어 스트림의 현재 부분이 아직 반복되거나 식별되지 않은 미디어 객체를 나타내는 경우에도 미디어 객체의 사용자 제어를 제공한다는 것이다. 예를 들어, 사용자가 미디어 스트림의 이러한 새로운 미지의 세그먼트와 관련될 동작을 지정하는 경우, 그 동작은 미디어 스트림의 그 세그먼트와 링크되어지며, 따라서 그 세그먼트의 반복하는 객체가 종 국에 식별될 때 세그먼트 내에 내장된 임의의 객체와 관련된 사용자 지정된 동작은 그 식별이 행해지자마자 적용되어진다.
특정의 반복하는 객체와 관련된 이들 사용자 지정된 동작은 미디어 스트림 내의 반복하는 객체를 식별하는 데 사용되고 있는 실시예에 따라, 객체 데이터베이스에 각각의 객체와 함께 저장되거나 지문 데이터베이스에 각각의 지문과 함께 저장된다. 그 결과, 특정의 반복하는 객체가 미디어 스트림 내에서 검출되자마자, 관련 동작이 자동적으로 데이터베이스로부터 판독되어 그에 따른다. 게다가, 일 실시예에서, 그 동작들을 데이터베이스에 저장하는 것은 사용자가 이전에 지정된 동작들을 편집 또는 삭제할 수 있게 해주는 부가의 이점을 제공한다.
2.1 시스템 개요:
일반적으로, 반복하는 객체의 사용자 제어를 제공하는 것은 먼저 객체들의 반복 인스턴스를 식별하는 것을 포함한다. 일 실시예에서, 이것은 예를 들어 미디어 스트림 내에서의 미디어 객체 위치에 대한 포인터 등의 정보, 그 미디어 객체들을 특징지우는 파라미터 정보, 이러한 객체를 기술하기 위한 메타데이터, 객체 종료점 정보, 객체 자체의 복사본, 및 특정의 미디어 객체와 관련된 사용자 지정된 동작을 저장하기 위한 비어 있는 "객체 데이터베이스"를 먼저 인스턴스화 또는 초기화하는 것에 의해 달성된다. 유의할 점은 이러한 정보 중 임의의 것 또는 그 모두는 단일 객체 데이터베이스 내에 또는 다수의 데이터베이스 또는 컴퓨터 파일에 유지될 수 있다. 그렇지만, 설명의 명확함을 위해, 본 설명 전체에 걸쳐 단일 데이터베이스는 전술한 정보를 말한다.
대체 실시예에서 사전 식별된 객체를 특징지우는 파라미터 정보를 포함하는 기존의 데이터베이스가 비어있는 데이터베이스 대신에 사용된다. 그렇지만, 이러한 기존의 데이터베이스가 초기의 객체 식별 속도를 증가시킬 수 있는 반면, 객체들이 스트림 내에 위치할 때 시간의 경과에 따라 그것은 파라미터 정보를 가지고 있는 초기에 비어있는 데이터베이스에 비해 상당히 더 양호한 성능을 제공하지는 않는다.
어느 경우든지, 비어있는 것이든 기존의 것이든 객체 데이터베이스가 이용가능한 경우, 그 다음 단계는 원하는 기간에 걸쳐 적어도 하나의 미디어 스트림을 캡처하여 저장하는 것을 포함한다. 원하는 기간은 수분 내지 수시간이나, 수일 내지 수주, 또는 더 긴 것 등 어느 것이라도 될 수 있다. 객체들이 스트림 내에 위치하고 있을 때, 스트림 내의 객체들의 반복에 의해 객체들의 종료점이 식별될 수 있게 된다. 여기에 설명하는 바와 같이, 객체들이 스트림 내에 위치하고 있을 때, 객체들의 반복에 의해 객체들의 종료점이 식별될 수 있게 된다. 다른 실시예에서, 저장 장치 요구 사항을 최소화하기 위해, 저장된 또는 버퍼링된 미디어 스트림은 오디오 및/또는 비디오 콘텐츠를 압축하는 임의의 원하는 종래의 압축 방법을 사용하여 압축된다. 이러한 압축 기술은 당업자라면 잘 알고 있는 것이며 여기에서 설명하지 않는다.
전술한 바와 같이, 일 실시예에서, 반복 미디어 객체의 자동 식별 및 분할은 미디어 콘텐츠가 반복되고 있는 미디어 스트림 내의 영역 또는 부분을 찾아내기 위해 미디어 스트림의 부분들을 비교함으로써 달성된다. 구체적으로는, 이 실시예에 서, 미디어 스트림의 부분 또는 윈도우가 미디어 스트림으로부터 선택된다. 윈도우의 길이는 임의의 원하는 길이일 수 있지만, 일반적으로 유용한 정보를 거의 제공하지 않거나 전혀 제공하지 않을 정도로 짧거나 다수의 미디어 객체를 포함할 수 있을 정도로 길어서는 안된다. 테스트된 실시예에서, 탐색되는 유형의 통상적인 반복 객체의 길이의 약 2배 내지 5배 정도의 윈도우 또는 세그먼트가 양호한 결과를 내는 것으로 밝혀졌다. 이 부분 또는 윈도우는 미디어 스트림의 끝으로부터 시작하게 선택될 수 있거나 심지어 미디어 스트림으로부터 랜덤하게 선택될 수 있다.
이어서, 미디어 스트림의 선택된 부분은 미디어 스트림의 일치하는 섹션을 찾기 위해 미디어 스트림의 유사한 크기의 부분에 대해 직접 비교된다. 이들 비교는 어느 것이 먼저 오든지간에, 일치를 찾아내기 위해 전체 미디어 스트림이 검색될 때까지 또는 일치가 실제로 찾아질 때까지 계속된다. 미디어 스트림과의 비교를 위한 부분의 선택에서와 같이, 선택된 세그먼트 또는 윈도우와 비교되는 부분들은 미디어 스트림의 끝에서 시작하여 순차적으로 가져오거나 심지어 미디어 스트림으로부터 랜덤하게 가져올 수 있거나 또는 알고리즘이 탐색되는 클래스의 객체가 현재의 세그먼트에 존재할 확률을 나타낼 때 가져온다.
이 테스트된 실시예에서, 미디어 스트림의 부분들의 직접 비교에 의해 일치가 식별되면, 반복 객체들의 식별 및 분할은 객체 종료점을 찾아내기 위해 일치하는 부분들을 정렬함으로서 달성된다. 유의할 점은 각각의 객체가 노이즈를 포함하고 또 전술한 바와 같이 시작 부분이나 끝부분에서 단축되거나 잘라질 수 있기 때문에, 객체 종료점이 항상 분명하게 구별될 수 있는 것은 아니라는 것이다. 그렇 지만, 심지어 이러한 노이즈가 많은 환경에서도, 간단한 패턴 정합 등의 많은 종래 기술 중 임의의 것을 사용하여 일치 부분을 정렬함으로써, 일치 부분들 간의 상호 상관(cross-correlation) 피크를 정렬함으로써, 또는 일치 신호를 정렬하기 위한 임의의 다른 종래의 기술에 의해 대략적인 종료점이 찾아진다. 일단 정렬되면, 종료점은 미디어 스트림의 2개의 부분이 갈라지는 그 점을 찾아내기 위해 미디어 스트림에서 일치 부분의 경계를 넘어서 전방 및 후방으로 추적함으로써 식별된다. 반복 미디어 객체는 방송될 때마다 일반적으로 정확히 동일한 순서로 재생되지 않기 때문에, 미디어 스트림에서 종료점을 찾아내는 이 기술은 미디어 스트림 내의 미디어 객체의 시작 및 종료점을 만족스럽게 찾아내는 것으로 관측되었다.
다른 대안으로서, 전술한 바와 같이, 일 실시예에서, 일단의 알고리즘이 오디오 및/또는 비디오 미디어의 서로 다른 측면을 목표로 삼아 미디어 스트림 내의 객체들을 식별하는 데 유용한 파라미터 정보를 계산하기 위해 사용된다. 이 파라미터 정보는 특정의 객체를 식별하는 데 유용한 파라미터를 포함하며, 따라서 계산된 파라미터 정보의 유형은 탐색되는 객체의 클래스에 의존한다. 유의할 점은 분석되는 미디어 스트림의 유형에 따라, 미디어 객체의 유사성을 비교하기 위한 다수의 공지의 전통적인 주파수, 시간, 이미지 또는 에너지 기반 기술 중 임의의 것이 잠재적인 객체 일치를 식별하기 위해 사용될 수 있다는 것이다. 예를 들어, 오디오 스트림 내의 음악 또는 노래와 관련하여, 이들 알고리즘은 예를 들어 짧은 윈도우에서의 분당 박자수(beats per minute), 스테레오 정보, 짧은 구간에 걸친 채널당 에너지 비, 및 특정 주파수 대역의 주파수 내용 등의 미디어 스트림 내의 쉽게 구해지는 파라미터를 계산하는 것, 그의 스펙트럼에서의 실질적인 유사성을 알아보기 위해 더 큰 미디어 세그먼트를 비교하는 것, 가능한 후보 객체의 샘플을 저장하는 것, 및 임의의 반복된 객체를 식별하기 위해 학습하는 것을 포함한다.
이 실시예에서, 일단 미디어 스트림이 획득되었으면, 저장된 미디어 스트림은 탐색된 클래스의 객체, 즉, 노래, 징글, 비디오, 광고 등이 검사되는 스트림의 부분에 존재할 확률을 결정하기 위해 검사된다. 그렇지만, 대체 실시예에서 미디어 스트림은 탐색되는 객체가 현재 스트림 내에 존재할 확률을 결정하기 위해 그것이 저장될 때 실시간으로 검사되는 것에 유의해야 한다. 유의할 점은 실시간 또는 저장후 미디어 스트림 검사가 실질적으로 동일한 방식으로 처리된다는 것이다. 탐색된 객체가 존재할 확률이 미리 정해진 임계값에 도달하면, 그 있을법한 객체의 스트림 내에서의 위치가 전술한 데이터베이스 내에 자동적으로 기입된다. 유의할 점은 이러한 검출 또는 유사성 임계값이 원하는 바에 따라 스트림 내에서의 객체 검출의 감도를 조절하기 위해 증가되거나 감소될 수 있다는 것이다.
이 실시예의 경우, 있을법한 객체가 스트림에서 식별되었으면, 그 있을법한 객체를 특징지우는 파라미터 정보가 계산되고 이전에 식별된 있을법한 객체로 잠재적인 객체 일치를 식별하기 위해 데이터베이스 질의 또는 검색에서 사용된다. 데이터베이스 질의의 목적은 단순히 스트림의 2개의 부분이 대략적으로 동일한지 여부, 환언하면, 스트림 내에서 2개의 서로 다른 시간 위치에 있는 객체가 대략적으로 동일한지 여부를 결정하는 것이다. 게다가, 데이터베이스가 초기에 비어 있기 때문에, 더 많은 가능한 객체가 식별되고 데이터베이스에 부가됨에 따라, 잠재적인 일치를 식별할 가능성은 자연히 시간의 경과에 따라 증가하게 된다.
다른 실시예에서, 어떤 원하는 빈도수로 스트림의 세그먼트를 나타내는 오디오 지문이 계산되고 데이터베이스에 저장된다. 지문은 또한 반드시 동일할 필요가 없는 다른 빈도수로 계산되고 일치하는지 알아보기 위해 데이터베이스와 비교된다. 현재의 지문과 이전에 저장된 것 사이의 일치는 오디오의 현재의 세그먼트가 데이터베이스 내의 지문에 대응하는 세그먼트와 일치할 가능성이 있음을 나타낸다.
유의할 점은 대체 실시예들에서 데이터베이스 질의에 의해 반환된 잠재적인 일치들의 수는 시스템 오버헤드를 줄이기 위해 원하는 최대수로 제한되어 있다는 것이다. 게다가, 전술한 바와 같이, 있을법한 객체와 데이터베이스 내의 객체와의 비교를 위한 유사성 임계값은 잠재적인 일치의 확률을 원하는 바대로 증가시키거나 감소시키기 위해 조정가능하다. 또다른 관련 실시예에서, 미디어 스트림 내에서 보다 빈번하게 반복하는 것으로 밝혀진 그 객체들은 덜 빈번하게 반복되는 그 객체들보다 잠재적인 일치로서 식별될 가능성이 더 높도록 더 무겁게 가중된다. 또다른 실시예에서, 너무 많은 잠재적인 일치가 데이터베이스 검색에 의해 반환되는 경우, 유사성 임계값은 증가되어 더 적은 잠재적인 일치가 반환되게 된다.
있을법한 객체에 대한 잠재적인 일치들이 반환된 경우, 있을법한 객체를 보다 확고하게 식별하기 위해 있을법한 객체와 잠재적인 일치들 중 하나 이상 사이의 보다 상세한 비교가 수행된다. 이 시점에서, 있을법한 객체가 잠재적인 일치들 중 하나의 반복임이 밝혀지는 경우, 그것은 반복 객체로서 식별되고, 스트림 내에서의 그의 위치가 데이터베이스에 저장된다. 반대로, 상세 비교에 의해 있을법한 객체 가 잠재적인 일치들 중 하나의 반복이 아닌 것으로 밝혀지는 경우, 그것은 데이터베이스에서 새로운 객체로서 식별되고, 스트림 내에서의 그의 위치 및 파라미터 정보가 전술한 바와 같이 데이터베이스에 저장된다. 그렇지만, 대체 실시예에서, 객체가 반복 객체로서 식별되지 않은 경우, 비교를 위한 부가의 객체를 식별하기 위해 더 낮은 유사성 임계값을 사용하여 새로운 데이터베이스 검색이 행해진다. 다시 말하면, 있을법한 객체가 반복인 것으로 결정되는 경우, 그 객체는 그 자체로서 식별되고, 그렇지 않은 경우 그 객체는 전술한 바와 같이 새로운 객체로서 데이터베이스에 부가된다.
게다가, 앞서 기술한 실시예에서와 같이, 반복 객체의 여러가지 인스턴스의 종료점이 자동적으로 결정된다. 예를 들어, 특정 객체의 인스턴스가 N개 있는 경우, 그들 모두가 정확하게 동일한 길이를 가질 수 있는 것은 아니다. 따라서, 종료점의 결정은 여러가지 인스턴스를 하나의 인스턴스에 대해 정렬하는 것과 이어서 인스턴스들 각각이 다른 인스턴스들과 여전히 대략적으로 동일한 최장의 범위를 결정하기 위해 정렬된 객체들 각각에서 전방 및 후방으로 추적하는 것을 포함한다.
유의할 점은 탐색되는 클래스의 객체가 검사되는 스트림의 부분에 존재할 확률을 결정하고 또 스트림의 2 부분이 대략적으로 동일한지 여부를 테스트하는 방법이 탐색되는 객체의 유형(예를 들어, 음악, 음성, 광고, 징글, 방송국 식별자, 비디오 등)에 많이 의존하는 반면, 스트림 내에서의 종료점 위치의 결정 및 데이터베이스는 어떤 종류의 객체가 탐색되고 있는지에 상관없이 아주 유사하다는 것이다.
상기한 실시예들 각각의 또다른 수정예에서, 미디어 스트림에서의 미디어 객 체 식별의 속도는 미디어 스트림의 이전에 식별된 부분들의 검색을 제한함으로써 또는 미디어 스트림을 검색하기에 앞서 이전에 식별된 미디어 객체들로 된 데이터베이스에 먼저 질의를 행함으로써 극적으로 향상된다. 게다가, 관련 실시예에서, 미디어 스트림은 미디어 객체의 하나 이상의 반복 인스턴스를 허용하기에 충분한 기간에 대응하는 세그먼트들에서 분석되고, 뒤이어서 데이터베이스 질의가 있으며, 그 다음에 필요한 경우 미디어 스트림의 검색이 있게 된다.
마지막으로, 반복하는 객체 및 그의 종료점이 전술한 바와 같이 식별되었으면, 이하에 기술하는 바와 같이 ROC는 그 반복하는 객체와 관련하여 미디어 스트림에 대한 사용자 상호작용 및 제어를 제공한다.
2.2 시스템 아키텍처
이하의 설명은 도 2에 도시한 바와 같은 객체 추출기에 대한 설명으로 시작한다. 이어서, 반복하는 객체 및 그의 종료점을 식별하는 객체 추출기에 대한 몇가지 대체 실시예에 대한 설명에 뒤이어서, ROC에 대한 설명이 도 3을 참조하여 제공된다. 그렇지만, 유의할 점은 여기에 기술되는 ROC는 여기에 기술되는 객체 추출기에 한정되지 않는다는 것이다. 상세하게는, ROC는 미디어 스트림 내의 반복하는 객체의 시간상 종료점을 결정할 수 있는 임의의 시스템과 함께 동작할 수 있다.
2.2.1 객체 추출기 시스템 아키텍처:
도 2의 일반적인 시스템도는 미디어 스트림내의 반복하는 객체의 종료점을 결정하기 위한 상기 요약한 프로세스를 나타낸 것이다. 상세하게는, 도 2의 시스템도는 미디어 스트림 내의 반복 객체를 자동적으로 식별하고 분할하는 "객체 추출 기"를 구현하는 프로그램 모듈들 간의 상호 관계를 나타낸 것이다. 유의할 점은 도 2에서 파선 또는 점선으로 나타내어진 박스 및 박스 사이의 상호 관계는 본 발명의 대체 실시예를 나타내고 이하에 기술하는 바와 같이 이들 대체 실시예 중 임의의 것 또는 그 전부가 본 명세서 전체에 걸쳐 기술되는 다른 대체 실시예와 조합하여 사용될 수 있다는 것이다.
특히, 도 2에 예시한 바와 같이, 미디어 스트림 내의 반복 객체를 자동적으로 식별하고 분할하는 시스템 및 방법은 오디오 및/또는 비디오 정보를 포함하는 미디어 스트림을 캡처하는 미디어 캡처 모듈(200)을 사용하는 것으로 시작한다. 미디어 캡처 모듈(200)은 라디오 또는 텔레비전/비디오 방송 미디어 시스템을 캡처하기 위해 다수의 종래 기술 중 임의의 것을 사용한다. 이러한 미디어 캡처 기술은 당업자라면 잘 알고 있으며, 여기에 설명하지 않는다. 일단 캡처되면, 미디어 스트림(210)은 컴퓨터 파일 또는 데이터베이스에 저장된다. 게다가, 일 실시예에서, 미디어 스트림(210)은 오디오 및/또는 비디오 미디어의 압축을 위한 종래의 기술을 사용하여 압축된다.
일 실시예에서, 객체 검출 모듈(220)은 미디어 스트림으로부터 세그먼트 또는 윈도우를 선택하고, 미디어 스트림의 일치 부분들을 찾아내기 위해 그것을 그 섹션과 미디어 스트림(210)의 다른 섹션들 또는 윈도우들 간의 직접 비교를 수행하는 객체 비교 모듈에 제공한다. 전술한 바와 같이, 객체 비교 모듈(240)에 의해 수행되는 비교는, 어느 것이 먼저 오든지 간에, 전체 미디어 스트림(210)이 일치를 찾기 위해 검색될 때까지 또는 일치가 실제로 찾아질 때까지 계속된다. 게다가, 어떤 경우에 스트림의 검색은 일치가 발견된 후에도 계속된다. 이것은 예를 들어 노이즈 제거 또는 발견된 몇개 중에서 가장 양호한 복사본을 찾아내기 위해 모든 일치를 찾아내는 것이 요망되는 경우일 수 있다.
이 실시예에서, 객체 비교 모듈(240)에 의한 미디어 스트림의 부분들의 직접 비교에 의해 일치가 식별된 경우, 반복 객체의 식별 및 분할은 미디어 스트림의 일치 부분들을 정렬한 다음에 각 객체가 대략적으로 동일한 최장의 범위를 식별하기 위해 미디어 스트림의 부분들 사이의 정렬 중심으로부터 후방 및 전방으로 검색하는 객체 정렬 및 종료점 결정 모듈(250)을 사용하여 달성된다. 이와 같이, 각 객체의 범위를 식별하는 것은 객체 종료점을 식별하는 데 도움이 된다. 일 실시예에서, 이 종료점 정보는 이어서 객체 데이터베이스(230)에 저장된다.
다른 대안으로서, 다른 실시예에서는, 비교를 위해 미디어 스트림의 윈도우 또는 세그먼트를 단순히 선택하는 것이 아니라, 객체 검출 모듈은 미디어 스트림 내에 내장된 잠재적인 미디어 객체를 식별하기 위해 먼저 미디어 스트림(210)을 검사한다. 미디어 스트림(210)에 대한 이러한 검사는 미디어 스트림의 부분을 나타내는 윈도우를 검사함으로써 달성된다. 전술한 바와 같이, 가능한 객체를 검출하기 위한 미디어 스트림(210)의 검사는 검사되는 미디어 콘텐츠의 유형에 적합하게 되어 있는 하나 이상의 검출 알고리즘을 사용한다. 일반적으로, 이들 검출 알고리즘은 분석되는 미디어 스트림의 부분을 특징지우는 파라미터 정보를 계산한다. 가능한 미디어 객체의 검출에 대해서는 이하의 섹션 3.1.1에 보다 상세히 기술된다.
객체 검출 모듈(220)이 가능한 객체를 식별하면, 미디어 스트림(210) 내에서 의 가능한 객체의 위치 또는 장소가 객체 데이터베이스(230)에 기입된다. 게다가, 객체 검출 모듈(220)에 의해 계산되는 가능한 객체를 특징지우는 파라미터 정보도 또한 객체 데이터베이스(230)에 저장된다. 유의할 점은 이 객체 데이터베이스가 초기에 비어 있으며 객체 데이터베이스(230) 내의 최초 엔트리는 객체 검출 모듈(220)에 의해 검출되는 첫번째의 가능한 객체에 대응한다는 것이다. 다른 대안에서, 객체 데이터베이스는 이전에 캡처된 미디어 스트림의 분석 또는 검색으로부터의 결과로 이미 채워져 있다. 객체 데이터베이스에 대해서는 이하의 섹션 3.1.3에서 보다 상세히 기술된다.
미디어 스트림(210) 내의 가능한 객체의 검출에 뒤이어서, 객체 비교 모듈(240)은 가능한 객체에 대한 잠재적인 일치, 즉 반복 인스턴스를 찾아내기 위해 객체 데이터베이스(230)에 질의를 수행한다. 하나 이상의 잠재적인 일치가 식별되었으면, 객체 비교 모듈(240)은 가능한 객체와 일치 가능성이 있는 객체 중 하나 이상 간의 상세 비교를 수행한다. 이 상세 비교는 가능한 객체를 나타내는 미디어 스트림의 부분들의 직접 비교 또는 가능한 객체와 잠재적인 일치를 나타내는 미디어 스트림의 부분들의 하위 차원 버전들 간의 비교를 포함한다. 이 비교 프로세스에 대해서는 이하의 섹션 3.1.2에 보다 상세히 기술되어 있다.
다음에, 객체 비교 모듈(240)이 가능한 객체의 일치 또는 반복 인스턴스를 식별하였으면, 가능한 객체는 객체 데이터베이스(230) 내의 반복 객체로서 플래그가 붙여진다. 객체 정렬 및 종료점 결정 모듈(250)은 이어서 새로 식별된 반복 객체를 그 객체의 각각의 이전에 식별된 반복 인스턴스와 함께 정렬하고, 각각의 객 체가 대략적으로 동일한 최장의 범위를 식별하기 위해 이들 객체 각각을 후방 및 전방으로 검색한다. 이와 같이 각각의 객체의 범위를 식별하는 것은 객체 종료점을 식별하는 데 도움이 된다. 이 종료점 정보는 이어서 객체 데이터베이스(230)에 저장된다. 객체 종료점의 정렬 및 식별에 대해서는 이하의 섹션 3.1.4에 보다 상세히 기술된다.
마지막으로, 또하나의 실시예에서, 객체 종료점이 객체 정렬 및 종료점 결정 모듈(250)에 의해 식별되었으면, 객체 추출 모듈(260)은 종료점 정보를 사용하여 그 종료점에 대응하는 미디어 스트림의 섹션을 개별적인 미디어 객체(270)의 별도의 파일 또는 데이터베이스로 복사한다. 또한 유의할 점은 또하나의 실시예에서 미디어 객체(270)는 가능한 객체의 하위 차원 버전과 잠재적인 일치 사이의 상기한 비교를 위해 가능한 객체들에 대한 잠재적인 일치를 나타내는 미디어 스트림의 부분들 대신에 사용된다는 것이다.
전술한 프로세스는 반복되고, 객체 검출 모듈(220)에 의해 분석되고 있는 미디어 스트림(210)의 부분은 예를 들어 슬라이딩 윈도우를 사용함으로써 또는 윈도우의 시작을 마지막으로 검출된 미디어 객체의 계산된 종료점으로 이동시킴으로써 증분된다. 이들 프로세스는 전체 미디어 스트림이 검사될 때까지 또는 사용자가 검사를 종료할 때까지 계속된다. 스트림에서 반복 객체를 실시간으로 검색하는 경우, 검색 프로세스는 사전 결정된 시간량이 소비될 때 종료될 수 있다.
2.2.2 반복하는 객체 제어기 시스템 아키텍처:
이제 반복하는 객체 제어기, 즉 "ROC"에 대한 설명으로 들어가면, 도 3의 일 반적인 시스템도는 스트림 내에 내장된 반복하는 객체와 관련하여 미디어 스트림에 대한 사용자 제어 및 상호작용을 제공하는 전술한 프로세스를 나타낸 것이다. 상세하게는, 도 3의 시스템도는 사용자가 실시간으로 또는 특정의 반복하는 객체의 차후의 출현 시에 개개의 반복하는 객체가 어떻게 처리되어야하는지를 지정할 수 있게 해주는 대화형 사용자 인터페이스를 제공하는 "반복 객체 제어기"(ROC)를 구현하는 프로그램 모듈들 사이의 상호 관계를 나타낸 것이다. 유의할 점은 도 3에서 파선 또는 점선으로 나타내어져 있는 박스 및 박스들 사이의 상호 연결이 본 발명의 대체 실시예를 나타내며 또 이들 대체 실시예 중 임의의 것 또는 그 모두는 이하에 기술하는 바와 같이 본 명세서 전체에 걸쳐 기술되는 다른 대체 실시예들과 결합하여 사용될 수 있다는 것이다.
특히, 도 3에 나타낸 바와 같이, 스트림 내에 내장된 반복하는 객체와 관련하여 미디어 스트림에 대한 사용자 제어 및 상호작용을 제공하는 시스템 및 방법은 미디어 캡처 모듈(200)을 사용하여 오디오 및/또는 비디오 정보를 포함하는 미디어 스트림을 캡처하는 단계로 시작한다. 전술한 바와 같이, 미디어 캡처 모듈(200)은 라디오 또는 텔레비전/비디오 방송 미디어 스트림을 캡처하기 위해 다수의 종래 기술 중 임의의 것이라도 사용한다. 이러한 미디어 캡처 기술은 당업자라면 잘 알고 있는 것이며, 그에 대해 여기에 기술하지 않는다. 일단 캡처되면, 미디어 스트림(210)은 컴퓨터 파일 또는 데이터베이스에 저장된다. 전술한 바와 같이, 미디어 스트림의 버퍼링은 미디어 스트림 내의 객체들의 매끄러운 삽입, 삭제, 또는 대체 등의 동작을 가능하게 해준다. 게다가, 일 실시예에서, 미디어 스트림(210)은 오 디오 및/또는 비디오 미디어의 압축을 위한 종래의 기술을 사용하여 압축된다.
그 다음에, 반복 객체 모듈(300)은 미디어 스트림 내의 반복하는 객체들 및 그 반복하는 객체들의 종료점을 식별하기 위해 미디어 스트림을 처리한다. 이러한 반복하는 객체들 및 그의 종료점의 식별은 전술한 방법들 중 임의의 것 또는 미디어 스트림의 분석을 통해 반복하는 객체 및 그의 종료점 둘다를 식별할 수 있는 임의의 다른 방법을 사용하여 달성된다. 유의할 점은 이러한 식별은 실시간으로 또는 미디어 스트림의 이전에 저장된 또는 버퍼링된 복사본의 재생 동안에 일어날 수 있다는 것이다.
반복 객체 모듈(300)이 미디어 스트림 내의 반복하는 객체를 식별하였으면, 객체/동작 데이터베이스(310)는 그 특정의 객체에 동작이 할당되었는지 또는 그와 관련되어 있는지를 결정하기 위해 자동적으로 질의된다. 게다가, 반복 객체 모듈(300)에 의한 미디어 스트림(210)의 분석이 미디어 스트림 내의 특정의 객체가 반복하는 객체가 아닌 것으로 나타내는 경우, 그 객체 또는 그 객체를 정의하는 파라미터가 차후의 반복하는 객체를 식별하는 데 사용하기 위해 객체/작용 데이터베이스(310)에 저장된다. 차후의 객체 식별에 사용하기 위해 미지의 또는 새로운 객체 또는 이러한 객체를 나타내는 파라미터를 저장하는 것에 대해서는 반복 객체 추출기와 관련하여 전술하였다.
객체/동작 데이터베이스(310)를 검색해본 바 어떤 동작이 특정의 반복하는 객체와 관련되어 있는 것으로 나타난 경우, 객체 동작 모듈(320)은 지정된 동작을 수행한다. 전술한 바와 같이, 임의의 특정의 반복하는 객체와 관련될 수 있는 다 수의 가능한 동작이 있다. 예를 들어, 이들 동작으로는,
1. 미디어 객체를 고속 감기,
2. 미디어 객체를 저속 재생,
3. 모니터링되고 있는 방송국 또는 채널을 자동적으로 변경하는 것 등에 의해 미디어 스트림을 변경,
4. 특정의 객체를 즐겨찾기 리스트에 부가,
5. 미디어 객체를 등급매김,
6. 특정의 미디어 객체들에 대한 재생 볼륨을 자동적으로 높이거나 낮춤,
7. 특정의 미디어 객체가 검출될 때 스크린을 자동적으로 블랭킹,
8. 미디어 스트림 내에서 특정의 미디어 객체들의 끝으로 건너뜀,
9. 특정의 미디어 객체들이 미디어 스트림 재생에서 결코 나타나지 않도록 그들을 스트림으로부터 삭제,
10. 특정의 미디어 객체들의 복사본을 미디어 스트림으로부터 추출하여 저장,
11. 특정의 미디어 객체를 미리 정의된 기간 동안 최대 발생 횟수로 제한,
12. 객체가 다른 객체 또는 객체들에 대하여 출현하는 빈도를 제한,
13. 미디어 스트림 내의 특정의 미디어 객체들을 다른 이전에 저장된 미디어 객체로 자동적으로 대체,
14. 예를 들어 긴급 방송 신호, 또는 다른 특정의 미디어 객체 등의 특정의 이벤트의 발생 시에 버퍼링 재생(buffered playback)에서 실시간 재생으로 자동적 으로 점프. 이 경우, 사용자가 이 옵션을 선택하는 경우, 이러한 신호가 실시간 미디어 스트림 내에서 검출되는 언제라도, 버퍼링 재생은 즉각적으로 미디어 스트림의 실시간 재생으로 대체되어진다.
15. 미디어 스트림의 실시간 재생으로부터 미디어 스트림의 버퍼링 재생으로 복귀, 및
16. 예를 들어 미디어 스트림 내에 특정의 미디어 객체의 출현 시에 실내 조명을 자동적으로 어둡게 하기 등의 사용자 정의 동작이 있지만, 이에 한정되는 것은 아니다.
이러한 동작을 구현하는 방법은 당업자라면 잘 알고 있는 것이며, 여기에 상세히 기술하지 않는다. 그렇지만, 이러한 방법의 구현이 공지되어 있는 반면, 종래의 시스템들은 이 시스템과 자동적으로 상호작용하고 그 반복하는 미디어 객체를 제어하기 위해 대화형 사용자 인터페이스를 사용하여 미디어 스트림 내의 반복하는 객체 및 그의 종료점을 식별할 수 있는 기능을 제공하지 못하고 있다.
유의할 점은 일 실시예에서 미디어 스트림(210)이 적어도 부분적으로 버퍼링된다는 것이다(330). 예를 들어 "건너뛰기", "삭제", 및 "대체" 등의 명령이 제공되는 실시예들에서, 미디어 스트림은 양호하게는 미디어 스트림에 내장된 특정의 객체들의 매끄러운 삭제, 건너뜀, 또는 대체가 가능하도록 하기 위해 재생에 앞서 충분한 기간 동안 버퍼링된다(330). 예를 들어, 버퍼링(330) 재생을 사용하여 건너뜀 또는 삭제가 가능하게 하는 경우, 버퍼에 의해 제공되는 지연의 길이는 건너뛰거나 삭제되는 모든 객체의 결합 길이보다 더 커야만 한다. 유의할 점은 특정의 미디어 객체들이 단순히 삭제되거나 건너뛰는 것이 아니라 대체되는 경우 버퍼 길이 요건이 완화된다는 것이다. 예를 들어, 청취자가 오디오의 시간당 4개의 3분 노래를 삭제하려고 하는 경우, 적어도 시간당 12분의 버퍼가 필요하다. 한편, 사용자가 삭제된 노래를 자료로 대체하기로 하는 경우, 명백히 훨씬 더 적은 버퍼링이 요구되게 된다.
그렇지만, 일 실시예에서, 버퍼 내의 미디어 스트림의 양이 미리 결정된 최소 시간 이하로 떨어지는 경우, 하나 이상의 이전에 저장된 미디어 객체가 자동적으로 미디어 스트림에 삽입됨으로써 버퍼가 결코 비어 있지 않게 된다. 일 실시예에서, 이러한 삽입된 객체는 랜덤하게 선택되는 반면, 다른 실시예에서 삽입될 객체는 객체에 할당된 등급에 기초하여 선택되고 보다 높은 등급의 객체는 삽입을 위해 객체를 선택할 때 더 높은 가중치를 갖는다. 유의할 점은 이러한 등급이 전술한 등급 매기기 명령을 통해 할당되거나 특정의 객체가 재생되었던 횟수의 함수로서 할당될 수 있다.
그 다음에, 특정의 반복하는 미디어 객체에 대해 지정된 동작이 있는 경우 그 동작을 수행한 후에, 미디어 출력/디스플레이 모듈(340)은 미디어 스트림의 재생을 제공한다. 예를 들어, 오디오 미디어 스트림의 경우, 미디어 출력/디스플레이 모듈(340)은 미디어 스트림의 가청 재생을 제공하기 위해 종래의 스피커 장치를 사용한다. 마찬가지로, 미디어 미디어 스트림의 경우, 미디어 출력/디스플레이 모듈(340)은 미디어 스트림의 시각 디스플레이를 제공하기 위해 컴퓨터 스크린 또는 다른 디스플레이 모니터 등의 종래의 디스플레이 장치를 사용한다. 마지막으로, 결합된 오디오/비디오 미디어 스트림의 경우, 미디어 출력/디스플레이 모듈(340)은 미디어 스트림의 동시적인 오디오 및 비디오 재생을 위해 스피커 장치 및 디스플레이 장치 둘다를 사용한다.
미디어 스트림의 재생 동안에, 사용자 상호작용 모듈(350)은 현재 재생되고 있는 미디어 객체를 제어하거나 앞서 열거한 명령과 같은 제어 명령을 현재 재생중인 미디어 객체의 차후의 인스턴스들과 관련시키기 위해 미디어 스트림과의 실시간 사용자 상호작용을 제공한다. 예를 들어, 현재 재생중인 미디어 객체에 대해 명령이 발행되는 경우, 그 객체가 반복하는 객체이라면, 전술한 바와 같이 종료점이 이미 결정되어 있을 것이다. 그 결과, 명령이 즉각적으로 작용한다. 그렇지만, 현재 재생중인 미디어 객체가 미디어 스트림 내에서의 객체의 첫번째 출현을 나타내는 경우, 그 객체의 종료점은 결정되지 않았을 것이며, 따라서 명령이 그 특정의 미디어 객체의 그 다음 출현 시에 자동적인 동작을 위해 객체/동작 데이터베이스(310)에 저장된다. 유의할 점은 이러한 명령이 예를 들어 포인팅 장치(360), 리모콘 장치(370), 또는 음성 명령의 자동 음성 인식 등의 종래의 방법을 사용하여 발행된다는 것이다.
전술한 바와 같이, 특정의 반복하는 객체의 출현 시에 취해질 동작을 지정하는 것은 여러가지 방법으로 달성된다. 예를 들어, 일 실시예에서, 종래의 텔레비전 리모콘과 유사한 핸드헬드 리모콘(370) 또는 다른 무선이나 유선 제어 장치가 사용자에게 제공된다. 미디어 스트림이 처리되고 있는 컴퓨팅 장치에 연결된 수신기는 리모콘으로부터 명령을 수신한 다음에 객체 동작 모듈(330)을 통해 그 명령에 따라 동작하거나 특정의 반복하는 객체의 차후의 인스턴스에 대해 작용하기 위해 객체/동작 데이터베이스(320)에 명령을 저장한다. 리모콘(370)은 전술한 동작 중 임의의 것 또는 그 모두를 구현하는 버튼 또는 콘트롤은 물론 사용자 정의 동작을 가능하게 해주는 커스터마이즈가능하거나 프로그램가능한 버튼 또는 콘트롤을 포함할 수 있다. 일반적으로, 리모콘 장치는 당업자라면 잘 알고 있는 것이다. 따라서, 이러한 리모콘의 동작의 기초를 이루는 프로세스에 대해 여기에 상세히 기술하지 않는다.
동작을 설명하면, 특정의 동작에 대응하는 하나 이상의 버튼이 리모콘(370)에 포함되어 있다. 임의의 특정의 미디어 객체의 재생 동안에 버튼들 중 임의의 것을 작동시키면 관련된 명령을 현재의 미디어 객체에 자동적으로 링크시키며, 그에 따라 그 미디어 객체의 차후의 인스턴스들이 자동적으로 사용자 지정 동작을 포함하게 된다. 이 동작은 이어서 미디어 스트림 내의 미디어 객체의 각각의 차후의 출현 시에 실시된다. 그렇지만, 일 실시예에서 예를 들어 "건너뛰기" 등의 어떤 동작들은 반복하는 객체의 모든 장래의 인스턴스들과 영구적으로 관련되어 있는 것보다는 오히려 명령이 작동될 때에만 동작하도록 프로그램될 수 있다.
다른 실시예에서, 리모콘에 의해 제공되는 기능은 컴퓨터 사용자 인터페이스 윈도우에 제공된다. 상세하게는, 이 실시예에서, 종래의 포인팅 장치(360)를 통해 선택되는 다수의 온-스크린 버튼 또는 콘트롤은 리모콘과 관련하여 전술한 동일한 유형의 기능을 제공한다.
또다른 실시예에서, 사용자가 미디어 스트림 내의 반복하는 객체와 관련된 동작을 제어할 수 있도록 하기 위해 음성 작동(380)이 제공된다. 특히, 이 실시예에서, 다수의 음성 키워드 또는 구문은 종래의 음성 또는 목소리 인식 기술을 사용하여 컴퓨터에 의해 해석된다. 음성 명령의 인식 시에, 그 명령과 관련된 동작이 현재의 미디어 객체와 링크되며, 그에 따라 그 미디어 객체의 차후의 인스턴스들은 자동적으로 사용자 지정 동자을 포함하게 된다. 이어서, 이 동작은 미디어 스트림에서의 미디어 객체의 각각의 차후의 출현 시에 실시된다. 예를 들어, 일 실시예에서, 사용자가 명령 "저장"을 말하는 경우, 현재의 미디어 객체는 자동적으로 미디어 스트림으로부터 추출되고 사용자에 의한 나중의 사용을 위해 저장된다. 이와 마찬가지로, 사용자가 명령 "삭제"를 말하는 경우, 현재의 미디어 객체는 자동적으로 미디어 스트림의 현재 재생중인 부분으로부터 삭제되고, 그 미디어 객체의 모든 차후의 출현도 또한 사용자에 의한 추가의 동작없이 미디어 스트림으로부터 제거된다. 명백하게도, 이러한 음성 인식 기술은 특정의 명령을 개시하기 위해 임의의 원하는 키워드 또는 구문에 동작하도록 프로그램될 수 있다.
마지막으로, 또다른 실시예에서, 사용자는 발견되었던 일련의 객체 또는 그 객체의 대표적인 서브섹션을 제공받고, 그 객체가 차후에 재출현할 때 어떤 동작을 그 객체와 관련시키는 기회를 제공받는다.
3.0 동작 개요:
전술한 프로그램 모듈은 미디어 스트림 내의 반복하는 객체에 대한 자동적인 실시간 제어를 제공하기 위해 반복 객체 제어기(ROC)에서 사용된다. 이하의 섹션은 도 4a 내지 도 9를 참조하여 전술한 프로그램 모듈을 구현하는 예시적인 방법의 상세한 동작 설명을 제공한다. 특히, 전술한 객체 추출기의 대체 실시예를구현하는 예시적인 방법이 섹션 3.1.1 내지 섹션 3.1.4에 먼저 기술된다. 이어서, 반복하는 객체 및 그의 종료점을 식별하는 예시적인 방법을 고려하여 ROC의 대체 실시예를 구현하는 예시적인 방법에 대해 섹션 3.1.5에 기술된다. 그 다음에, 도 4a 내지 도 6을 참조하여 섹션 3.2에 객체 추출기의 대체 실시예가 기술된다. 마지막으로, ROC의 대체 실시예가 도 7 내지 도 9의 흐름도를 참조하여 섹션 3.2에 기술된다.
3.1 동작 요소:
전술한 바와 같이, ROC는 미디어 스트림 내의 반복하는 객체 및 그의 종료점의 식별을 제공하는 프로세스를 필요로 한다. 이들 반복하는 객체 및 그의 종료점이 주어진 경우, ROC는 이들 반복하는 미디어 객체와의 자동적인 사용자 제어 및 상호작용을 가능하게 해준다. 그 결과, ROC의 동작 요소를 설명함에 있어서, 객체 추출기의 대체 실시예를 구현하는 예시적인 방법에 대해 먼저 기술한다.
객체의 반복 인스턴스를 식별하는 일반적인 방법의 실제 예는 이하의 요소를 포함한다.
1. 미디어 스트림의 2 부분이 거의 동일한지 여부를 결정하기 위한 기술. 환언하면, 미디어 스트림 내에서 각각 대략 시간 위치 ti 및 tj에 위치하는 미디어 객체들이 거의 동일한지 여부를 결정하는 기술. 추가의 상세에 대해서는 섹션 3.1.2를 참조하기 바란다. 유의할 점은 관련 실시예에서, 탐색되는 클래스의 미디 어 객체가 검사되는 미디어 스트림의 부분에 존재할 확률을 결정하는 기술이 미디어 스트림의 2 부분이 거의 동일한지 여부를 결정하는 기술보다 먼저 행해진다. 추가의 상세에 대해서는 섹션 3.1.1을 참조하기 바란다.
2. 특정 반복 객체의 각각의 찾아낸 인스턴스를 기술하기 위한 정보를 저장하는 객체 데이터베이스. 객체 데이터베이스는 예를 들어 미디어 스트림 내의 미디어 객체 위치에 대한 포인터, 그 미디어 객체를 특징 지우는 파라미터 정보, 이러한 객체를 기술하는 메타데이터, 객체 종료점 정보, 또는 객체 자체의 복사본 등의 레코드를 포함한다. 다시 말하면, 전술한 바와 같이, 객체 데이터베이스는 원하는 바에 따라 실제로 하나 이상의 데이터베이스일 수 있다. 추가의 상세에 대해서는 섹션 3.1.3을 참조하기 바란다.
3. 임의의 식별된 반복 객체의 여러가지 인스턴스들의 종료점을 결정하기 위한 기술. 일반적으로, 이 기술은 먼저 각각의 일치하는 세그먼트 또는 미디어 객체를 정렬하고 이어서 인스턴스들 각각이 여전히 다른 인스턴스들과 거의 같은 최장의 범위를 결정하기 위해 시간상 후방 및 전방으로 추적한다. 이들 최장의 범위는 일반적으로 반복 미디어 객체의 종료점에 대응한다. 추가의 상세에 대해서는 섹션 3.1.4를 참조하기 바란다.
유의할 점은 탐색되는 클래스의 미디어 객체가 검사되고 있는 스트림의 부분에 존재할 확률을 결정하는 기술, 및 미디어 스트림의 2 부분이 거의 동일한지 여부를 결정하는 기술 둘다는 탐색되는 객체의 유형(즉, 그것이 음악, 음성, 비디오 등인지)에 크게 의존하는 반면, 객체 데이터베이스 및 임의의 식별된 반복 객체의 여러가지 인스턴스들의 종료점을결정하는 기술은 탐색되는 객체의 유형 또는 클래스에 상관없이 아주 유사할 수 있다는 것이다.
유의할 점은 객체 추출기가 문맥을 벗어나지 않도록 하기 위해 이하의 논의가 오디오 미디어 스트림 내의 음악 또는 노래의 검출을 참조하고 있다는 것이다. 그렇지만, 전술한 바와 같이, 여기에 기술된 동일한 일반적 방법이 예를 들어, 음성, 비디오, 이미지 시퀀스, 방송국 징글, 광고 등과 같은 다른 클래스의 객체들에 똑같이 잘 적용된다.
3.1.1 객체 검출 확률:
전술한 바와 같이, 일 실시예에서 미디어 스트림의 2 부분이 거의 동일한지 여부를 결정하는 기술보다 탐색되는 클래스의 미디어 객체가 검사되는 미디어 스트림의 부분에 존재할 확률을 결정하는 기술이 먼저 행해진다. 이 결정은 미디어 스트림의 섹션들 간의 직접 비교가 행해지는 실시예에서는 불필요하지만(섹션 3.1.2 참조), 그것은 검색의 효율성을 크게 향상시킬 수 있다. 즉, 탐색되는 클래스의 객체들을 포함할 가능성이 없는 것으로 결정된 섹션들은 다른 섹션들과 비교될 필요가 없다. 탐색되는 클래스의 미디어 객체가 미디어 스트림에 존재할 확률을 결정하는 것은 먼저 미디어 스트림을 캡처하고 검사하는 것으로 시작한다. 예를 들어, 한가지 방법은 목표 미디어 스트림을 지나가면서 쉽게 계산된 파라미터, 즉 파라미터 정보의 벡터를 연속적으로 계산하는 것이다. 전술한 바와 같이, 특정의 미디어객체 유형 또는 클래스를 특징지울 필요가 있는 파라미터 정보는 검색이 수행되고 있는 특정의 객체 유형 또는 클래스에 완전히 의존하고 있다.
유의할 점은 탐색되는 클래스의 미디어 객체가 미디어 스트림에 존재할 확률을 결정하는 기술은 일반적으로 신뢰성이 없다는 것이다. 환언하면, 이 기술은 많은 섹션들이 그렇지 않은 데도 이들을 있을법한 또는 가능한 탐색 객체로서 분류하며, 따라서 객체 데이터베이스에 쓸모없는 엔트리를 생성한다. 이와 유사하게, 본질적으로 신뢰할 수 없기 때문에, 이 기술은 또한 많은 실제의 탐색 객체를 있을법한 또는 가능한 객체로서 분류하지 못한다. 그렇지만, 보다 효율적인 비교 기술들이 사용될 수 있는 반면, 초기의 있을법한 또는 가능한 검출과 반복 객체를 식별하기 위한 잠재적인 일치의 나중의 상세한 비교의 조합은 스트림 내의 대부분의 탐색 객체의 위치를 신속하게 식별하는 데 도움을 준다.
명백하게도, 거의 모든 유형의 파라미터 정보가 미디어 스트림 내의 가능한 객체를 찾아내는 데 사용될 수 있다. 예를 들어, 방송 비디오 또는 텔레비전 스트림에서 빈번하게 반복되는 상업 광고 또는 다른 비디오나 오디오 세그먼트에 관련하여, 가능한 또는 있을법한 객체는 스트림의 오디오 부분, 스트림의 비디오 부분 또는 양쪽 모두를 검사함으로써 찾아질 수 있다. 게다가, 이러한 객체의 특성에 관한 기지의 정보는 초기의 검출 알고리즘을 조정하는 데 사용될 수 있다. 예를 들어, 텔레비전 상업 광고는 길이가 15 내지 45초인 경향이 있고 3 내지 5분의 블록들로 그룹화되는 경향이 있다. 이 정보는 비디오 또는 텔레비전 스트림 내에서 상업 광고나 광고 블록을 찾아내는 데 사용될 수 있다.
예를 들어 오디오 미디어 스트림과 관련하여, 노래, 음악 또는 반복 음성을 검색하는 것이 요망되는 경우, 미디어 스트림 내에서 가능한 객체들을 찾아내는 데 사용되는 파라미터 정보는 예를 들어 짧은 윈도우에 걸쳐 계산된 미디어 스트림의 분당 박자수(BPM), 상대 스테레오 정보(예를 들어 합산 채널(sum channel)의 에너지에 대한 차동 채널(difference channel)의 에너지의 비), 및 짧은 구간에 걸쳐 평균된 어떤 주파수 대역의 에너지 점유(energy occupancy) 등의 정보로 이루어져 있다.
게다가, 어떤 파라미터 정보의 연속성에 특히 주의한다. 예를 들어, 오디오 미더어 스트림의 BPM이 30초 또는 그 이상의 구간에 걸쳐 거의 동일하게 유지되는 경우, 이것은 노래 객체가 아마도 스트림 내의 그 위치에 존재한다는 표시로서 간주될 수 있다. 더 작은 기간에 대해 일정한 BPM은 스트림 내의 특정 위치에서의 객체 존재 확률이 더 낮음을 나타낸다. 이와 마찬가지로, 확장된 기간에 걸쳐 상당한 스테레오 정보가 존재하는 것은 노래가 재생되고 있을 가능성을 나타낼 수 있다.
대략적인 BPM을 계산하는 여러가지 방법이 있다. 예를 들어, 객체 추출기의 실제 예에서, 오디오 스트림은 필터링되고 다운샘플링되어 원본 스트림의 저차원 버전을 생성한다. 테스트된 실시예에서, 오디오 스트림을 필터링하여 0 - 220 Hz 범위의 정보만을 포함하는 스트림을 생성하는 것은 양호한 BPM 결과를 나타내는 것으로 밝혀졌다. 그렇지만, 미디어 스트림으로부터 어느 정보가 추출되는지에 따라 임의의 주파수 범위가 검사될 수 있음을 잘 알 것이다. 스트림이 필터링되고 다운샘플링되었으면, 가장 큰 2개의 피크 BPM1 및 BPM2가 포함되어 있는 한번에 대략 10 초의 윈도우들의 자기 상관을 사용하여 저레이트 스트림에서 우세 피크 (dominant peak)의 검색이 수행된다. 테스트된 실시예에서 이 기술을 사용하여, BPM1 또는 BPM2가 1분 또는 그 이상 동안 대략 연속적인 경우 탐색되는 객체(이 경우, 노래)가 존재하는 것으로 결정된다. 의사 BPM 숫자(spurious BPM number)는 메디안 필터링(median filtering)을 사용하여 제거된다.
유의할 점은 이상의 기술에서 있을법한 또는 가능한 탐색 객체의 식별은 특징들의 벡터 또는 정보 파라미터만을 사용하여 달성되었다는 것이다. 그렇지만, 다른 실시예에서, 발견된 객체에 관한 정보는 이 기본적인 검색을 수정하는 데 사용된다. 예를 들어, 오디오 스트림 예로 되돌아가서, 발견된 객체와 방송국 징글 사이의 4분의 간극은 초기 검색이 그렇게 플래그를 붙이지 않았더라도 아마도 탐색된 객체로서 데이터베이스에 부가될 아주 양호한 후보가 될 것이다.
3.1.2 객체 유사성 테스트:
전술한 바와 같이, 미디어 스트림의 2 부분이 거의 동일한지 여부의 결정은 미디어 스트림 내의 2 위치, 즉 각각 ti 및 tj에 있는 미디어 스트림의 2 이상의 부분의 비교를 수반한다. 유의할 점은 테스트된 실시예에서 비교될 윈도우 또는 세그먼트의 크기는 미디어 스트림 내의 예상된 미디어 객체보다 더 크게 선택된다는 것이다. 그 결과, 미디어 객체가 미디어 스트림 내에서 동일한 순서로 일관되게 재생되지 않는 한, 전체 세그먼트 또는 윈도우가 아니라 미디어 스트림의 비교된 섹션의 부분만이 실제로 일치할 것으로 예상될 수 있다.
한 실시예에서, 이 비교는 미디어 스트림 내의 임의의 일치를 식별하기 위해 미디어 스트림의 서로 다른 부분들을 직접 비교하는 것을 포함할 뿐이다. 유의할 점은 미디어 스트림 내의 전술한 소스 중 임의의 것으로부터의 노이즈의 존재로 인해 미디어 스트림의 임의의 2개의 반복 또는 중복 섹션이 정확하게 일치할 가능성이 없다는 것이다. 그렇지만, 이러한 신호가 중복인지 반복 인스턴스인지 여부를 결정하기 위해 노이즈가 많은 신호를 비교하는 종래의 기술은 당업자에게 공지되어 있으며 여기에 보다 상세히 기술하지 않는다. 게다가, 이러한 직접 비교는 신호 또는 미디어 스트림을 특징지우기 위한 파라미터 정보를 먼저 계산할 필요없이 임의의 신호 유형에도 적용가능하다.
다른 실시예에서, 전술한 바와 같이, 이 비교는 미디어 스트림의 현재의 세그먼트 또는 윈도우에 대한 가능한 또는 잠재적인 일치를 식별하기 위해 미디어 스트림의 부분들에 대한 파라미터 정보를 먼저 비교하는 것을 수반한다.
미디어 스트림의 직접 비교이든 파라미터 정보의 비교이든지 간에, 미디어 스트림의 2 부분이 거의 동일한지 여부의 결정은 본질적으로 가능한 객체만의 기본적인 검출보다 더 신뢰성이 있다(섹션 3.1.1 참조). 환언하면, 이 결정은 미디어 스트림의 2개의 서로 다른 범위를 잘못하여 동일한 것으로 분류할 가능성이 상대적으로 더 적다. 따라서, 데이터베이스 내의 2개의 레코드 인스턴스가 유사한 것으로 결정되거나 미디어 스트림의 2개의 세그먼트 또는 윈도우가 충분히 유사한 것으로 결정되는지 간에, 이것은 이들 레코드 또는 미디어 스트림의 부분은 실제로 반복 객체를 나타낸다는 확인으로서 간주된다.
이것이 중요한 이유는 가능한 객체를 찾아내기 위해 미디어 스트림이 먼저 검사되는 실시예들에서 가능한 객체의 간단한 검출은 신뢰성이 없을 수 있기 때문이다, 즉 객체로서 간주되는 엔트리가 데이터베이스에 만들어지지만 실제로는 그렇지 않기 때문이다. 따라서, 데이터베이스의 내용을 검사할 때, 단지 하나의 복사본이 발견된 그 레코드들은 아마도 탐색된 객체 또는 가능한 객체(즉, 노래, 징글, 광고, 비디오, 상업 광고 등)일 뿐이지만, 2개 이상의 복사본이 발견된 레코드들은 보다 높은 정도의 확실성을 갖는 탐색 객체로서 간주된다. 따라서, 객체의 제2 복사본 및 후속 복사본들의 발견은 미디어 스트림 내의 가능한 또는 있을법한 객체를 단순히 검출하는 것의 신뢰성없음으로 인한 불확실성을 제거하는 것에 크게 도움이 된다.
예를 들어, 테스트된 실시예에서, 오디오 미디어 스트림을 사용하여 직접 비교를 수행하기 보다는 파라미터 정보를 비교할 때, 오디오 스트림 내의 2개의 위치가 그의 임계 대역[바크 대역(Bark band)이라고도 함] 중 하나 이상을 비교함으로써 비교된다. 위치 ti와 tj가 거의 동일하다는 추측을 테스트하기 위해, 각각의 위치에 중심을 둔 탐색 클래스의 평균 객체의 길이의 2 내지 5배의 구간에 대해 바크 스펙트럼(Bark spectra)이 계산된다. 이 시간은 단지 편의상 선택된 것이다. 다음에, 그 대역 중 하나 이상의 상호 상관이 계산되고, 피크의 검색이 수행된다. 피크가 이들 바크 스펙트럼이 실질적으로 동일함을 나타내기에 충분히 강한 경우, 그 스펙트럼이 도출된 오디오의 섹션들도 거의 동일한 것으로 추론된다.
게다가, 다른 테스트된 실시예에서, 단 하나의 바크 스펙트럼 대역이 아니라 몇개의 스펙트럼 대역을 가지고서 이러한 상호 상관 테스트를 수행하는 것은 비교의 안정성을 증가시킨다. 구체적으로 말하면, 다중 대역 상호 상관 비교(multi-band cross-correlation comparison)는 객체 추출기가 2개의 위치 ti 및 tj가 거의 동일한 객체를 나타낼 때를 거의 항상 정확하게 식별할 수 있게 해주는 반면 아주 드물게는 잘못하여 그 위치가 동일하다고 나타낸다. 방송 오디오 스트림으로부터 캡처된 오디오 데이터의 테스트는 700Hz 내지 1200Hz 범위의 신호 정보를 포함하는 바크 스펙트럼 대역이 이 목적을 위해 특히 안정되고 신뢰성있음을 보여준다. 그렇지만, 유의할 점은 다른 주파수 대역에 걸친 상호 상관은 또한 오디오 미디어 스트림을 검사할 때 객체 추출기에 의해 성공적으로 사용될 수 있다는 것이다.
위치 ti 및 tj가 동일한 객체를 나타내는 것으로 결정되었으면, 바크 스펙트럼 대역의 상호 상관의 피크 위치들 사이의 차이 및 대역 들 중 하나의 자기 상관은 개별적인 객체의 정렬의 계산을 가능하게 해준다. 따라서, ti처럼 노래 내의 동일한 위치에 대응하는 조정된 위치 tj'가 계산된다. 환언하면, 비교 및 정렬 계산 둘다는 ti 및 tj에 중심을 둔 오디오가 동일한 객체를 나타내지만 ti 및 tj'은 그 객체에서의 거의 동일한 위치를 나타냄을 보여준다. 즉, 예를 들어 ti가 6분짜리 객체의 2분이고 tj가 동일한 객체의 4분인 경우, 객체의 비교 및 정렬은 객체의 제2 인스턴스의 2분인 위치를 나타내는 tj'의 반환 뿐만 아니라 객체가 동일한 객체인지 여부의 결정을 가능하게 해준다.
직접 비교 경우도 마찬가지이다. 예를 들어, 직접 비교 경우에 있어서, 예를 들어 미디어 스트림의 서로 다른 부분들 사이의 상호 상관을 수행하는 것 등의 종래의 비교 기술은 미디어 스트림의 일치 영역을 식별하는 데 사용된다. 이전의 예에서와 같이, 일반적인 생각은 단순히 위치 ti 및 tj에 각각 있는 미디어 스트림의 2 부분이 거의 동일한지 여부를 결정하는 것이다. 게다가, 직접 비교 경우는 이전의 실시예보다 구현하기가 실제로 훨씬 더 쉬운데, 그 이유는 직접 비교가 미디어 의존적이지 않기 때문이다. 예를 들어, 전술한 바와 같이, 특정의 신호 또는 미디어 유형의 분석에 필요한 파라미터 정보는 특징지워지는 신호 또는 미디어 객체의 유형에 의존적이다. 그렇지만, 직접 비교 방법에서는, 이들 미디어 의존적인 특성이 비교를 위해 결정될 필요가 없다.
3.1.3 객체 데이터베이스:
전술한 바와 같이, 대체 실시예들에서, 객체 데이터베이스는 예를 들어 미디어 스트림 내의 미디어 객체 위치에 대한 포인터, 그 미디어 객체를 특성지우는 파라미터 정보, 이러한 객체를 기술하는 메타데이터, 객체 종료점 정보, 미디어 객체의 복사본, 및 개개의 미디어 객체가 저장되어 있는 파일 또는 다른 데이터베이스에 대한 포인터 중 임의의 것 또는 그 모두 등의 정보를 저장하는 데 사용된다. 게다가, 일 실시예에서, 이 객체 데이터베이스는 또한 객체의 반복 인스턴스가 발견되었으면 그에 관한 통계적 정보를 저장한다. 유의할 점은 용어 "데이터베이스"가 여기에서 일반적 의미로 사용되고 있다는 것이다. 구체적으로는, 대체 실시예 들에서, 여기에 기술되는 시스템 및 방법은 그 자신의 데이터베이스를 구축하거나, 오퍼레이팅 시스템의 파일 시스템을 사용하거나 또는 예를 들어 SQL 서버 또는 마이크로소프트
Figure 112004058838662-pct00001
액세스 등의 상용 데이터베이스 패키지를 사용한다. 게다가, 또한 전술한 바와 같이, 하나 이상의 데이터베이스가 대체 실시예들에서 전술한 정보 중 임의의 것 또는 그 모두를 저장하는 데 사용된다.
테스트된 실시예에서, 객체 데이터베이스는 초기에 비어 있다. 탐색 클래스의 미디어 객체가 미디어 스트림에 존재하는 것으로 결정될 때 객체 데이터베이스에 엔트리가 저장된다(예를 들어, 섹션 3.1.1 및 섹션 3.1.2 참조). 유의할 점은 다른 실시예에서 직접 비교를 수행할 때, 미디어 스트림 자체를 검색하기에 앞서 객체 일치를 찾아내기 위해 객체 데이터베이스에 질의가 수행된다. 이 실시예는 특정의 미디어 객체가 미디어 스트림에서 관측되었다면 그 특정의 미디어 객체가 그 미디어 스트림 내에서 반복할 가능성이 더 있다는 가정 하에서 동작한다. 따라서, 일치하는 미디어 객체를 찾아내기 위해 먼저 객체 데이터베이스에 질의를 행하는 것은 일치하는 미디어 객체를 식별하는 데 필요한 전체 시간 및 계산 비용을 감축시키는 데 도움이 된다. 이들 실시예에 대해서는 이하에서 보다 상세히 기술된다.
데이터베이스는 2가지 기본적인 기능을 수행한다. 첫째로, 데이터베이스는 미디어 객체 또는 어떤 일련의 특징이나 파라미터 정보와 일치하거나 부분적으로 일치하는 하나 이상의 객체가 객체 데이터베이스에 존재하는지를 결정하기 위한 질의에 응답한다. 이 질의에 응답하여, 객체 데이터베이스는 전술한 바와 같이 일치 가능성이 있는 객체의 스트림 이름 및 위치의 리스트 또는 단순히 일치하는 미디어 객체의 이름 및 위치를 반환한다. 일 실시예에서, 특징 리스트와 일치하는 현재의 엔트리가 없는 경우, 객체 데이터베이스는 엔트리를 생성하고 스트림 이름과 위치를 새로운 있을법한 또는 가능한 객체로서 부가한다.
유의할 점은 일 실시예에서 객체 데이터베이스가 일치가능성이 있는 레코드를 반환할 때 객체 데이터베이스가 가장 있을법한 일치를 결정하는 순서로 레코드를 제공한다는 것이다. 예를 들어, 이 확률은 가능한 객체와 잠재적인 일치 사이의 이전에 계산된 유사성 등의 파라미터에 기초할 수 있다. 다른 대안에서, 객체 데이터베이스에 이미 몇개의 복사본을 가지고 있는 레코드에 대해 더 높은 일치 확률이 반환될 수 있는데, 그 이유는 이러한 레코드가 객체 데이터베이스에 단지 하나의 복사본을 갖는 그 레코드보다 일치할 가능성이 더 있기 때문이다. 가장 있을법한 객체 일치를 가지고서 전술한 객체 비교를 시작하는 것이 계산 시간을 감소시키면서 전체 시스템 성능을 향상시키는 데 그 이유는 이러한 일치가 일반적으로 더 적은 회수의 상세 비교로 식별되기 때문이다.
데이터베이스의 두번째 기본적인 기능은 객체 종료점의 결정을 포함한다. 구체적으로는, 객체 종료점을 결정하려고 시도할 때, 객체 데이터베이스는 이하의 섹션에서 기술하는 바와 같이 객체들이 정렬되고 비교될 수 있도록 스트림 이름과 그 스트림 내에서의 객체의 반복 복사본 또는 인스턴스 각각의 위치를 반환한다.
3.1.4 객체 종료점 결정:
시간의 경과에 따라 미디어 스트림이 처리될 때, 객체 데이터베이스는 자연 히 객체, 반복 객체 및 스트림 내에서의 대략적인 객체 위치로 점차적으로 채워진다. 전술한 바와 같이, 가능한 객체의 2개 이상의 복사본 또는 인스턴스를 포함하는 데이터베이스 내의 레코드는 탐색 객체인 것으로 가정된다. 데이터베이스 내의 이러한 레코드의 수는 탐색 객체가 타겟 스트림에서 반복되는 빈도수 및 분석되는 스트림의 길이에 의존하는 속도로 증가하게 된다. 데이터베이스 내의 레코드가 탐색 객체 또는 단순히 분류 에러를 나타내는지에 관한 불확실성을 제거하는 것 이외에, 탐색 객체의 제2 복사본을 찾아내는 것은 스트림 내의 객체의 종료점을 결정하는 데 도움이 된다.
구체적으로는, 데이터베이스가 점차적으로 반복 미디어 객체로 채워짐에 따라, 그 미디어 객체의 종료점을 식별하기가 점점 더 쉬워지게 된다. 일반적으로, 미디어 객체의 종료점의 결정은 미디어 스트림 내에서 식별된 미디어 객체의 비교 및 정렬, 그에 뒤이은 특정의 미디어 객체의 여러가지 인스턴스들이 갈라지는 곳의 결정에 의해 달성된다. 섹션 3.1.2에서 전술한 바와 같이, 가능한 객체들의 비교가 동일한 객체가 미디어 스트림 내의 서로 다른 위치에 존재하는 것을 확인시켜주는 반면, 이 비교는 그 자체로 그 객체들의 경계를 정의하지 않는다. 그렇지만, 이들 경계는 미디어 스트림 또는 미디어 스트림의 하위 차원 버전을 비교하고 이어서 미디어 스트림의 그 부분들을 정렬하고 미디어 스트림이 갈라지는 미디어 스트림 내의 점들을 식별하기 위해 미디어 스트림에서 후방 및 전방으로 추적함으로써 결정가능하다.
예를 들어, 오디오 미디어 스트림의 경우, 데이터베이스 레코드에 객체의 N 개의 인스턴스가 있다면, 따라서 오디오 스트림에 객체가 나타나는 위치가 N개 있다. 일반적으로, 방송 오디오 스트림의 직접 비교에서, 파형 데이터가 어떤 경우에 너무 노이즈가 많아서 여러가지 복사본이 대략 일치하는 곳과 그 복사본이 갈라지기 시작하는 곳의 신뢰성있는 표시를 산출하지 못하는 것으로 관찰되었다. 이러한 직접 비교에 있어서 스트림이 너무 노이즈가 많은 경우, 저차원 버전의 비교 또는 특정의 특성 정보의 비교는 만족할만한 결과를 제공하는 것으로 관찰되었다. 예를 들어, 노이즈가 많은 오디오 스트림의 경우, 바크 스펙트럼 표현 등의 특정의 주파수 또는 주파수 대역의 비교는 비교 및 정렬을 위해 잘 작용하는 것으로 관측되었다.
구체적으로는, 미디어 객체의 N개의 복사본 각각에 대해 오디오 스트림으로부터 미디어 객체를 추출하는 테스트된 실시예에서, 하나 이상의 바크 스펙트럼 표현이 객체보다 비교적 긴 오디오 데이터의 윈도우로부터 도출된다. 전술한 바와 같이, 2개 이상의 대표적인 바크 대역의 사용을 통해 보다 신뢰성있는 비교가 달성된다. 유의할 점은 오디오 스트림에 적용되는 객체 추출기의 실제 예에서, 700Hz 내지 1200Hz 범위의 정보를 나타내는 바크 대역이 오디오 객체의 비교에 특히 안정되고 유용한 것으로 밝혀졌다는 것이다. 명백하게도, 비교를 위해 선택된 주파수 대역은 오디오 스트림 내의 음악, 음성 또는 다른 오디오 객체의 유형에 맞춰 조정되어야만 한다. 일 실시예에서, 선택된 대역의 필터링된 버전은 안정성(robustness)을 더욱 향상시키는 데 사용된다.
이 예의 경우, 선택된 바크 스펙트럼이 모든 복사본에 대해 거의 동일한 한, 기초를 이루는 오디오 데이터도 거의 동일한 것으로 가정된다. 역으로, 선택된 바크 스펙트럼이 모든 복사본에 대해 충분히 서로 다른 경우, 기초를 이루는 오디오 데이터가 더 이상 문제의 객체에 속하지 않는 것으로 가정된다. 이와 같이, 선택된 바크 스펙트럼은 객체의 경계를 결정하기 위해 분기가 일어나는 위치를 결정하는 데 스트림 내에서 후방 및 전방으로 추적된다.
구체적으로는, 일 실시예에서, 데이터베이스 내의 객체들의 저차원 버전은 바크 스펙트럼 분해(임계 대역(critical band)이라고도 함)를 사용하여 계산된다. 이 분해는 당업자라면 잘 알고 있는 것이다. 이것은 신호를 다수의 서로 다른 대역으로 분해한다. 그 대역들은 좁은 주파수 범위를 점유하기 때문에, 개개의 대역은 그 대역이 나타내는 신호보다 훨씬 더 낮은 레이트로 샘플링될 수 있다. 따라서, 객체 데이터베이스 내의 객체들에 대해 계산된 특성 정보는 이들 대역 중 하나 이상의 샘플링된 버전으로 이루어질 수 있다. 예를 들어, 일 실시예에서, 특성 정보는 840 Hz에 중심을 둔 바크 대역 7의 샘플링된 버전으로 이루어진다.
다른 실시예에서, 오디오 미디어 스트림의 타겟 부분이 데이터베이스 내의 요소와 일치하는 것으로 결정하는 것은 데이터베이스 객체의 저차원 버전과 오디오 스트림의 타겟 부분의 저차원 버전의 상호 상관을 계산함으로써 행해진다. 상호 상관에서의 피크는 일반적으로 2개의 파형이 그 길이의 적어도 일부분에 대해 거의 같다는 것을 암시한다. 당업자라면 잘 알고 있는 바와 같이, 유사 피크를 채택하는 것을 피하는 몇가지 기술이 있다. 예를 들어, 상호 상관의 특정의 국부 최대값이 후보 피크인 경우, 그 피크에서의 값이 그 피크를 둘러싸는 값들(피크를 꼭 포 함할 필요는 없음)의 윈도우에서의 평균보다 높은 표준 편차의 임계수 이상이어야만 한다.
또다른 실시예에서, 발견된 객체의 범위 또는 종료점은 반복 객체의 2개 이상의 복사본을 정렬함으로써 결정된다. 예를 들어, 일치가 (상호 상관에서 피크를 검출함으로써) 발견되었으면, 오디오 스트림의 타겟 부분의 저차원 버전 및 스트림의 다른 섹션이나 데이터베이스 엔트리의 저차원 버전이 정렬된다. 그들이 오정렬되는 정도는 상호 상관 피크의 위치에 의해 결정된다. 저차원 버전 중 하나는 이어서 정규화됨으로써 그의 값들이 대략 일치하게 된다. 즉, 오디오 스트림의 타겟 부분이 S이고 (스트림의 다른 섹션 또는 데이터베이스로부터의) 일치 부분이 G이며 상호 상관으로부터 G와 S는 o의 옵셋으로 일치하는 것으로 결정된 경우, S(t)(단, t는 오디오 스트림 내의 시간상 위치임)는 G(t+o)와 비교된다. 그렇지만, 정규화는 S(t)가 G(t+o)와 거의 같게 되기 전에 필요할 수 있다. 그 다음에, 객체의 시작점은 t>tb의 경우 S(t)가 G(t+o)와 거의 같도록 가장 작은 tb를 찾아냄으로써 결정된다. 이와 마찬가지로, 객체의 종료점은 t<te의 경우 S(t)가 G(t+o)와 거의 같도록 가장 큰 te를 찾아냄으로써 결정된다. 이것이 일단 행해지면, S(t)는 tb<t<t e의 경우 G(t+o)와 거의 같고 tb와 te가 객체의 대략적인 종료점으로서 간주될 수 있다. 어떤 경우에, 종료점을 결정하기 전에 저차원 버전을 필터링하는 것이 필요할 수 있다.
일 실시예에서, t>tb인 경우 S(t)가 G(t+o)와 거의 같은 것으로 결정하는 것은 이분법(bisection method)에 의해 행해진다. S(t0)와 G(t0+o)가 거의 같은 위치 t0가 발견되고, S(t1)와 G(t1+o)(단, t1 < t0임)가 같지 않은 위치 t1가 발견된다. 이어서, 객체의 시작은 이분법 알고리즘에 의해 결정된 t의 여러가지 값에 대해 S(t)와 G(t+o)의 작은 섹션들을 비교함으로써 결정된다. 객체의 끝은 먼저 S(t0)와 G(t0+o)가 거의 같은 t0를 찾아내고, S(t2)와 G(t2+o)(단, t 2 > t0임)가 같지 않은 t1를 찾아냄으로써 결정된다. 마지막으로, 객체의 종료점은 그 다음에 이분법 알고리즘에 의해 결정된 t의 여러가지 값에 대해 S(t)와 G(t+o)의 섹션들을 비교함으로써 결정된다.
또다른 실시예에서, t>tb인 경우 S(t)가 G(t+o)와 거의 같은 것으로 결정하는 것은 S(t0)와 G(t0+o)가 거의 같은 t0를 발견하고, 이어서 S(t)와 G(t+o)가 더 이상 거의 같지 않게 될 때까지 t0부터 t를 감소시킴으로써 행해진다. S(t)와 G(t+o)의 절대차가 t의 단일 값에서 어떤 임계값을 초과할 때 S(t)와 G(t+o)이 더 이상 거의 같지 않은 것으로 결정하기보다는 오히려, 그 절대차가 어떤 최소 범위의 값들에 대해 어떤 임계값을 초과할 때 또는 누적된 절대차가 어떤 임계값을 초과하는 경우 그러한 결정을 하는 것이 일반적으로 보다 안정하다. 이와 마찬가지로, 종료점은 S(t)와 G(t+o)가 더 이상 거의 같지 않을 때까지 t0로부터 t를 증가시 킴으로써 결정된다.
동작을 설명하면, 라디오 또는 TV 방송국으로부터의 방송 오디오 등의 객체의 몇가지 인스턴스 중에서 그 객체의 모두가 정확하게 동일한 길이를 갖는 것이 통상적이지 않음이 관찰되었다. 예를 들어, 6분 객체의 경우, 그 객체는 때로는 시작에서 끝까지 전부 재생될 수 있고, 때로는 시작 및/또는 끝에서 단축될 수 있으며, 때로는 소개하는 보이스 오버나 이전의 또는 그 다음의 객체의 페이드-아웃 또는 페이드-인에 의해 오염될 수 있다.
반복 객체의 길이에 있어서 이러한 있을법한 불일치의 경우, 각각의 복사본이 그의 상대 복사본(companion copy)으로부터 분기하는 지점을 결정하는 것이 필요하다. 전술한 바와 같이, 일 실시예에서, 오디오 스트림 경우에 이것은 각각의 복사본의 선택된 바크 대역들을 모든 복사본의 선택된 바크 대역의 중앙값(median)에 대해 비교함으로써 달성된다. 시간상 후방으로 이동하면서 한 복사본이 충분히 긴 구간 동안 그 중앙값으로부터 분기하는 경우, 객체의 이 인스턴스가 그곳에서 시작하는 것으로 결정된다. 이어서 그 복사본은 중앙값의 계산으로부터 제외되며, 이 때 분기하는 그 다음 복사본에 대한 검색이 객체 복사본들 내에서 시간상 계속하여 후방으로 이동함으로써 수행된다. 이와 같이, 궁극적으로 단지 2개의 복사본만이 남아 있는 시점에 도달된다. 이와 마찬가지로, 시간상 전방으로 이동하면서, 단지 2개의 복사본만이 남아 있는 시점에 도달하기 위해 각각의 복사본이 중앙값으로부터 분기하는 시점이 결정된다.
객체의 인스턴스의 종료점을 결정하는 한가지 간단한 방법은 인스턴스들 중 에서 우측 종료점 및 좌측 종료점 간의 차이가 가장 큰 것을 단순히 선택하는 것이다. 이것은 객체의 대표적인 복사본으로서 기능할 수 있다. 그렇지만, 객체의 일부인 노래의 2개의 서로 다른 인스턴스 이전에 오는 방송국 징글을 포함하지 않도록 주의하는 것이 필요하다. 명백하게도, N개의 발견된 복사본으로부터 대표적인 복사본을 추출하는 보다 복잡한 알고리즘이 이용될 수 있으며, 전술한 방법들은 단지 예시 및 설명을 위한 것이다. 이어서, 식별된 최상의 인스턴스는 다른 모든 것의 대표로서 사용될 수 있다.
관련 실시예에서, 스트림의 타겟 세그먼트와 스트림의 다른 세그먼트 사이의 일치가 발견되었고 분할이 수행되었으면, 스트림의 나머지에서 객체의 다른 인스턴스에 대한 검색이 계속된다. 테스트된 실시예에서, 스트림의 타겟 세그먼트를 분할된 객체 모두를 포함하고 그 외의 곳에서는 0인 세그먼트로 대체하는 것이 유리한 것으로 판명되었다. 이것은 스트림의 나머지 부분들에서 일치를 탐색할 때 의사 피크의 확률을 감소시킨다. 예를 들어, ti 및 tj에서의 세그먼트가 일치하는 것으로 결정된 경우, 객체의 종료점 중 한쪽 또는 다른쪽이 ti 및 tj에 중심을 둔 세그먼트 외부에 있을 수 있고, 그 세그먼트들은 객체의 일부가 아닌 데이터를 포함할 수 있다. 전체 객체만 포함하는 세그먼트에 대해 비교하는 것은 후속하는 일치 결정의 신뢰성을 향상시킨다.
유의할 점은 노래 등의 오디오 객체 이외의 미디어 객체의 비교 및 정렬이 아주 유사한 방식으로 수행된다는 것이다. 구체적으로는, 미디어 스트림은 노이즈 가 그다지 많지 않은 한 직접 비교되거나 미디어 스트림의 저차원 버전 또는 필터링된 버전이 직접 비교된다. 일치하는 것으로 밝혀진 미디어 스트림의 그 세그먼트들은 이어서 전술한 바와 같이 종료점 결정을 위해 정렬된다.
다른 실시예들에서, 여러가지 계산 효율 문제가 해소된다. 구체적으로는, 오디오 스트림의 경우, 섹션 3.1.1, 3.1.2, 및 3.1.4에 전술한 기술들 모두는 바크 스펙트럼 등의 오디오의 주파수 선택적 표현을 사용한다. 언제든지 이것을 재계산하는 것이 가능한 반면, 섹션 3.1.1에서 기술한 바와 같이 스트림이 먼저 처리될 때 주파수 표현을 계산하고 이어서 나중에 사용하기 위해 선택된 바크 대역의 상대 스트림을 객체 데이터베이스나 그 밖의 곳에 저장하는 것이 보다 효율적이다. 바크 대역이 일반적으로 원본 오디오 레이트보다 훨씬 낮은 레이트로 샘플링되기 때문에, 이것은 일반적으로 효율을 크게 개선하기 위한 아주 적은 양의 저장을 나타낸다. 텔레비전 방송 등의 오디오/비디오 유형 미디어 스트림에 내장된 비디오 또는 이미지 유형 미디어 객체의 경우에 유사한 처리가 행해진다.
또한, 전술한 바와 같이, 일 실시예에서, 미디어 스트림 내의 미디어 객체 식별 속도는 미디어 스트림의 이전에 식별된 부분의 검색을 제한함으로써 극적으로 증가된다. 예를 들어, tj에 중심을 둔 스트림의 세그먼트가 검색의 이전 부분으로부터 이미 하나 이상의 객체를 포함하는 것으로 결정된 경우, 그것은 차후의 검사로부터 배제될 수 있다. 예를 들어, 평균 탐색 객체 길이의 2배의 길이를 갖는 세그먼트에 대해 검색이 행해지고 2개의 객체가 이미 세그먼트에서 tj에 위치하고 있 는 경우, 명백하게도 또하나의 객체가 그곳에 위치하고 있을 가능성이 없으며 이 세그먼트를 그 검색으로부터 배제된다.
다른 실시예에서, 미디어 스트림에서의 미디어 객체 식별 속도는 미디어 스트림을 검색하기에 앞서 이전에 식별된 미디어 객체의 데이터베이스에 먼저 질의를 행함으로써 증가된다. 게다가, 관련 실시예에서, 미디어 객체의 하나 이상의 인스턴스를 고려하기에 충분한 기간에 대응하는 세그먼트에서 미디어 스트림이 분석되고, 이어서 데이터베이스 질의가 있게 되며 그 다음에 필요한 경우 미디어 스트림의 검색이 있게 된다. 이들 대체 실시예의 각각의 동작에 대해서는 이하의 섹션들에서 보다 상세히 기술된다.
게다가, 관련 실시예에서, 미디어 스트림은 먼저 스트림 내의 적어도 가장 흔한 반복 객체들의 반복을 포함하기에 충분히 큰 스트림의 한 부분을 분석함으로써 분석된다. 스트림의 이 제1 부분 상에 반복하는 객체들의 데이터베이스가 유지된다. 이어서, 스트림의 나머지 부분이 세그먼트들이 데이터베이스 내의 임의의 객체와 일치하는지를 먼저 결정하고 이어서 스트림의 나머지에 대해 차후에 검사함으로써 분석된다.
3.1.5 반복하는 미디어 객체의 제어
전술한 바와 같이, 반복하는 미디어 객체의 제어는 "객체 추출기"와 협력하여 동작하는 "반복 객체 제어기"(ROC)를 제공함으로써 달성된다. 객체 추출기는 반복하는 객체가 미디어 스트림 내에서 출현할 때 그 반복하는 객체 및 그의 종료점을 먼저 식별한다. 미디어 스트림 내의 반복하는 객체의 식별이 주어진 경우, ROC는 사용자가 실시간으로 또는 특정의 반복하는 객체의 차후의 출현 시에 개개의 반복하는 객체를 어떻게 처리해야 할지를 지정할 수 있게 해주는 대화형 사용자 인터페이스를 제공한다.
미디어 스트림은 양호하게는 미디어스트림에서의 명백한 중단없이 미디어 스트림 내의 특정의 객체의 실시간 삭제 및/또는 대체를 가능하게 해주기에 충분한 길이를 갖는 버퍼를 사용하여 재생에 앞서 버퍼링된다. 미디어 스트림의 재생 동안에 명령이 입력되고, 이 때 입력된 명령은 현재 재생중인 미디어 객체의 장래의 인스턴스와 관련되어진다. 다른 대안에서, 음악가 및 제목 정보 등의 정보를 포함하는 이전에 식별된 미디어 객체의 데이터베이스가 주어지면, 사용자는 데이터베이스를 브라우징하고 특정의 명령을 데이터베이스 내의 특정의 객체에 할당하는 사용자 인터페이스를 제공받는다. 이어서, 미디어 스트림의 실시간 또는 버퍼링 재생 동안에 관련된 명령을 갖는 그 객체들의 차후의 출현 시에, 임의의 관련된 명령이 자동적으로 실행된다.
3.2 시스템 동작:
전술한 바와 같이, 도 2 및 도 3을 참조하여 섹션 2.0에 기술된 프로그램 모듈은, 섹션 3.1에 제공된 보다 상세한 설명을 고려할 때, 미디어 스트림 내의 반복 객체를 자동적으로 식별하고 분할하는 데 사용된다. 이 프로세스는 객체 추출기의 대체 실시예를 나타내는 도 4a 내지 도 6의 흐름도 및 ROC의 대체 실시예를 나타내는 도 7 내지 도 9의 흐름도에 도시되어 있다. 유의할 점은 도 4a 내지 도 9에서 박스들 및 파선 또는 점선으로 나타내어진 박스들 사이의 상호 연결은 객체 추출기 의 또다른 대체 실시예를 나타내고 이하에 기술되는 바와 같이 이들 대체 실시예 중 임의의 것 또는 그 모두는 조합하여 사용될 수 있다는 것이다.
3.2.1 반복 객체 추출기의 기본적인 동작:
이제부터 도 2와 연계하여 도 4a 내지 도 6을 참조하면, 일 실시예에서 프로세스는 일반적으로 미디어 스트림(210)으로부터 미디어 객체를 찾아내고 식별하며 분할하는 객체 추출기로서 기술될 수 있다. 일반적으로, 미디어 스트림의 제1 부분 또는 세그먼트 ti가 선택된다. 이어서, 이 세그먼트 ti는 스트림의 끝에 도달될 때까지 미디어 스트림 내의 후속하는 세그먼트들 tj와 순차적으로 비교된다. 그 시점에서, 이전의 ti에 후속하는 미디어 스트림의 새로운 ti 세그먼트가 선택되고, 다시 스트림의 끝에 도달될 때까지 미디어 스트램 내의 후속하는 세그먼트 tj와 비교된다. 이들 단계는 미디어 스트림 내에서 반복 미디어 객체를 찾아내고 식별하기 위해 전체 스트림이 분석될 때까지 반복된다. 또한, 도 4a 내지 도 6을 참조하여 이하에 기술하는 바와 같이, 미디어 스트림 내에서 반복 객체의 검색을 구현하고 가속시키기 위한 다수의 대체 실시예가 있다.
구체적으로, 도 4a에 도시한 바와 같이, 오디오 및/또는 비디오 정보를 포함하는 미디어 스트림(210)에서 반복 객체를 자동적으로 식별하고 분할하는 시스템 및 방법은 스트림 내의 위치 ti 및 tj에 있는 미디어 스트림의 세그먼트가 동일한 객체를 나타내는지 여부를 결정하는 단계(410)로 시작한다. 전술한 바와 같이, 비교를 위해 선택된 세그먼트들은 미디어 스트림의 끝에서 시작하여 선택될 수 있거 나 랜덤하게 선택될 수 있다. 그렇지만, 단순히 미디어 스트림의 처음에서 시작하여 시각 ti=t0에 있는 최초 세그먼트를 선택하는 것이 차후에 비교를 위해 tj =t1에서 시작하는 미디어 스트림의 세그먼트들을 선택할 때 효율적인 대안인 것으로 밝혀졌다.
어느 경우든지, 이 결정(단계 410)은 위치 ti 및 tj에 있는 미디어 스트림의 세그먼트들을 단순히 비교함으로써 행해진다. 2개의 세그먼트, ti 및 tj가 동일한 미디어 객체를 나타내는 것으로 결정된 경우(단계 410), 객체의 종료점은 전술한 바와 같이 자동적으로 결정된다(단계 460). 종료점이 발견되었으면(단계 460), 시각 ti 근방에 위치하는 미디어 객체에 대한 종료점 및 시각 tj 근방에 위치하는 일치 객체는 객체 데이터베이스(230)에 저장되거나(단계 470), 미디어 객체 자체 또는 그 미디어 객체에 대한 포인터가 객체 데이터베이스에 저장된다. 다시 말하면, 유의할 점은 전술한 바와 같이 비교될 미디어 스트림의 세그먼트들의 크기가 미디어 스트림 내의 예상된 미디어 객체보다 더 크게 선택된다는 것이다. 따라서, 미디어 객체들이 일관되게 미디어 스트림 내에서 동일한 순서로 재생되지 않는 한, 전체 세그먼트가 아니라 미디어 스트림의 비교된 세그먼트들의 부분만이 실제로 일치할 것으로 예상된다.
위치 ti 및 tj에 있는 미디어 스트림의 2개의 세그먼트가 동일한 미디어 객체를 나타내지 않는 것으로 결정되는 경우(단계 410), 미디어 스트림의 선택되지 않은 세그먼트가 더 있는 경우(단계 420), 위치 tj+1에 있는 미디어 스트림의 새로운 또는 그 다음 세그먼트(430)가 새로운 tj로서 선택된다. 이어서, 2개의 세그먼트가 전술한 바와 같이 동일한 미디어 객체를 나타내는지 여부를 결정(단계 410)하기 위해 미디어 스트림의 이 새로운 tj 세그먼트는 기존의 세그먼트 ti와 비교된다. 다시 말하면, 세그먼트가 동일한 미디어 객체를 나타내는 것으로 결정되는 경우(단계 410), 객체의 종료점은 자동적으로 결정되고(단계 460), 정보는 전술한 바와 같이 객체 데이터베이스(230)에 저장된다(단계 470).
역으로, 위치 ti 및 tj에 있는 미디어 스트림의 2개의 세그먼트가 동일한 미디어 객체를 나타내지 않는 것으로 결정되고(단계 410), 또 (전체 미디어 스트림이 ti로 나타내어진 미디어 스트림의 세그먼트와의 비교를 위해 이미 선택되었기 때문에) 미디어 스트림의 선택되지 않은 세그먼트가 더 있는 것으로 결정된 경우(단계 420), 이어서 미디어 스트림의 끝이 아직 도달되지 않았고 세그먼트 ti가 더 있는 경우(단계 440), 위치 ti+1에 있는 미디어 스트림의 새로운 또는 그 다음 세그먼트(450)가 새로운 ti로서 선택된다. 미디어 스트림의 이 새로운 ti 세그먼트는 이어서 2개의 세그먼트가 전술한 바와 같이 동일한 미디어 객체를 나타내는지 여부를 결정하기 위해 그 다음 세그먼트 tj와 비교된다. 예를 들어, 시각 t0에 있는 세그먼트 ti와 시각 t1에 있는 세그먼트 tj에서 시작하여 첫번째 비교가 행해진 것으로 가정하면, 두번째 비교는 시각 t2에 있는 새로운 ti가 선택되는 시점인 미디어 스트림의 끝에 도달될 때까지 시각 t1에 있는 ti+1과 시각 t2에 있는 tj+1 를 비교하고, 이어서 시각 t3, 이하 마찬가지로 비교함으로써 시작하게 된다. 다시 말하면, 세그먼트가 동일한 미디어 객체를 나타내는 것으로 결정되는 경우(단계 410), 객체의 종료점은 자동적으로 결정되고(단계 460), 정보는 전술한 바와 같이 객체 데이터베이스(230)에 저장된다(단계 470).
관련 실시예에서, 또한 도 4a에 도시한 바와 같이, 세그먼트를 스트림 내의 다른 객체들과 비교하기에 앞서 그 세그먼트가 탐색되는 유형의 객체를 포함할 확률을 결정하기 위해 모든 세그먼트가 먼저 검사된다. 그 확률이 미리 정해진 임계값보다 높은 것으로 간주되는 경우, 비교가 진행된다. 그렇지만, 그 확률이 임계값 이하인 경우, 그 세그먼트는 효율성을 위해 건너뛸 수 있다.
상세하게는, 이 대체 실시예에서, 새로운 tj 또는 ti가 선택될 때마다(각각 단계 430 또는 단계 450), 그 다음 단계는 특정의 tj 또는 ti가 가능한 객체를 나타내는지를 결정하는 것이다(각각 단계 435 또는 단계 455). 전술한 바와 같이, 미디어 스트림의 특정의 세그먼트가 가능한 객체를 나타내는지 여부를 결정하는 절차는 미디어 스트림 내에서 가능한 객체를 식별하기 위해 미디어 스트림의 서로 다른 측면을 목표로 하는 데 일단의 객체 의존적인 알고리즘을 이용하는 것을 포함한다. 특정의 세그먼트, tj 또는 ti가 가능한 객체를 나타내는 것으로 결정되는 경우 (단계 435 또는 단계 455), ti와 tj 간의 전술한 비교(410)가 전술한 바와 같이 진행된다. 그렇지만, 특정의 세그먼트, tj 또는 ti가 가능한 객체를 나타내지 않는 것으로 결정되는 경우(단계 435 또는 단계 455), 새로운 세그먼트가 전술한 바와 같이 선택된다(단계 420/430 또는 단계 440/450). 이 실시예는 미디어 객체가 미디어 스트림의 현재의 세그먼트에 아마도 존재할 확률을 결정하는 것에 비해 비교적 계산 비용이 많이 드는 비교를 피한다는 점에서 유리하다.
어느 실시예든지 간에, 전술한 단계들은 미디어 스트림의 모든 세그먼트가 미디어 스트림 내의 반복하는 미디어 객체를 식별하기 위해 미디어 스트림의 다른 모든 후속 세그먼트에 대해 비교될 때까지 반복된다.
도 4b는 관련 실시예를 나타낸 것이다. 일반적으로, 도 4b에 나타낸 실시예들은 반복 객체의 종료점의 결정이 미디어 스트림을 통한 각각의 패스(pass)가 달성될 때까지 지연된다는 점에서 도 4a에 나타낸 실시예들과 다르다.
구체적으로는, 전술한 바와 같이, 프로세스는 스트림의 끝에 도달될 때까지 미디어 스트림(210)의 세그먼트 ti를 미디어 스트림 내의 후속하는 세그먼트 tj와 순차적으로 비교함으로써 동작한다. 다시 말하면, 그 시점에서, 이전의 ti에 후속하여 미디어 스트림의 새로운 ti 세그먼트가 선택되고 다시 스트림의 끝에 도달될 때까지 미디어 스트림 내에의 후속하는 세그먼트 tj와 비교된다. 이들 단계는 미디어 스트림 내의 반복 미디어 객체를 찾아내고 식별하기 위해 전체 스트림이 분석될 때까지 반복된다.
그렇지만, 도 4a와 관련하여 기술된 실시예들에서, ti와 tj 사이의 비교(단계 410)가 일치를 나타내자마자, 일치하는 객체의 종료점이 결정되고(단계 460) 객체 데이터베이스(230)에 저장된다(단계 470). 이와 반대로, 도 4b에 도시된 실시예들에서, 0으로 초기화된 객체 카운터(415)는 ti와 tj 사이의 비교(단계 410)가 일치를 나타낼 때마다 증분된다. 이 때, 일치하는 객체들의 종료점을 결정하는 대신에, 그 다음 tj가 비교(단계 420/430/435)를 위해 선택되고 다시 현재의 tj와 비교된다. 이것은 전체 스트림이 분석될 때까지 미디어 스트림 내의 모든 tj 세그먼트에 대해 반복되며, 그 시점에서 일치하는 객체의 카운트가 0보다 크면(단계 425), 현재의 세그먼트 ti와 일치하는 객체를 나타내는 모든 세그먼트 tj에 대해 종료점이 결정된다(단계 460). 그 다음에, 객체 종료점 또는 객체 그 자체는 전술한 바와 같이 객체 데이터베이스(230)에 저장된다(단계 470).
이 시점에서, 그 다음 세그먼트 ti가 전술한 바와 같이 후속하는 ti 세그먼트와의 또다른 비교(단계 410)를 위해 선택된다(단계 440/450/455). 이어서, 전술한 단계들은 미디어 스트림 내의 반복하는 미디어 객체를 식별하기 위해 미디어 스트림의 모든 세그먼트가 미디어 스트림의 모든 다른 후속 세그먼트에 대해 비교될 때까지 반복된다.
그렇지만, 이 섹션에 기술된 실시예들이 미디어 스트림 내의 반복하는 객체 를 식별하는 데 도움이 되는 반면, 많은 수의 불필요한 비교가 여전히 행해진다. 예를 들어, 주어진 객체가 이미 미디어 스트림 내에서 식별된 경우에도, 그 객체가 미디어 스트림 내에 반복될 가능성이 있다. 그 결과, 세그먼트 ti와 ti를 비교(단계 410)하기 이전에 현재의 세그먼트 ti를 데이터베이스 내의 객체들 각각과 먼저 비교하는 것은 대체 실시예들에서 특정의 미디어 스트림을 완전히 분석하기 위해 필요한 비교적 계산 비용이 많이 드는 비교들 중 일부를 감소시키거나 제거하기 위해 사용된다. 따라서, 이하의 섹션에서 기술하는 바와 같이, 데이터베이스(230)는 미디어 스트림(210)의 각 세그먼트 ti가 선택될 때 최초 비교를 위해 사용된다.
3.2.2 최초 데이터베이스 비교를 갖는 반복 객체 추출기의 동작:
다른 관련 실시예에서, 도 4c에 도시되어 있는 바와 같이, 미디어 스트림(210) 내의 세그먼트들 가나의 비교(단계 410)의 횟수는 이전에 식별된 미디어 객체(230)의 데이터베이스에 먼저 질의를 행함으로써 감소된다. 구체적으로는, 도 4c에 도시된 실시예들은 미디어 스트림(210)의 각 세그먼트 ti가 선택된 후에 현재의 세그먼트가 데이터베이스 내의 객체와 일치하는지 여부를 결정하기 위해 그 세그먼트가 먼저 객체 데이터베이스(230)와 비교된다는 점에서 도 3a에 도시된 실시예들과 다르다. 현재의 세그먼트와 데이터베이스(230) 내의 객체 사이에 일치가 식별되는 경우(단계 405), 현재의 세그먼트 ti에 의해 나타내어진 객체의 종료점이 결정된다(단계 460). 그 다음에, 전술한 바와 같이, 객체 종료점이나 객체 자체가 객체 데이터베이스(230)에 저장된다(단계 470). 그 결과, 현재의 세그먼트 ti가 일치하는 객체를 찾아내기 위해 객체 데이터베이스(230)에 단순히 질의를 행함으로써 미디어 스트림의 전체적인 검색없이 식별된다.
그 다음에, 일 실시예에서, 객체 데이터베이스(230)에서 일치가 식별되지 않은 경우(단계 405), 현재의 세그먼트 ti를 후속하는 세그먼트 tj와 비교하는 프로세스(단계 420/430/435)는 전술한 바와 같이 스트림의 끝에 도달될 때까지 진행되고, 그 시점에서 그 프로세스를 다시 시작하기 위해 새로운 세그먼트 ti가 선택된다(단계 440/450/455). 역으로, 현재의 세그먼트 ti에 대해 객체 데이터베이스(230) 내에서 일치가 식별되는 경우(단계 405), 전술한 바와 같이 종료점이 결정되고(단계 460) 저장되며(단계 470), 그에 뒤이어서 그 프로세스를 다시 시작하기 위해 새로운 ti의 선택(단계 440/450/455)이 있게 된다. 이어서, 이들 단계는 세그먼트들이 반복하는 객체를 나타내는지 여부를 결정하기 위해 미디어 스트림(210) 내의 모든 세그먼트 ti가 분석될 때까지 반복된다.
다른 관련 실시예들에서, 최초 데이터베이스 질의(405)는 데이터베이스가 식별된 객체들로 적어도 부분적으로 채워지는 때까지 지연된다. 예를 들어, 특정의 미디어 스트림이 레코딩되거나 다른 방식으로 긴 기간에 걸쳐 캡처되는 경우, 미디어 스트림의 일부분의 최초 분석은 도 4a 또는 도 4b를 참조하여 전술한 바와 같이 수행되고, 그에 뒤이어서 최초 데이터베이스 질의를 수반하는 전술한 실시예가 따 라오게 된다. 이 실시예는 객체들이 미디어 스트림 내에서 빈번하게 반복되는 환경에서 잘 동작하는데 그 이유는 데이터베이스의 초기 채움이 반복 객체를 식별하기 위한 비교적 양호한 데이터 세트를 제공하는 역할을 하기 때문이다. 또한 유의할 점은 데이터베이스(230)가 점점 채워져감에 따라, 미디어 스트림 내에 내장된 반복하는 객체가 미디어 스트림 내의 일치들에 대한 전체적인 검색보다는 오히려 데이터베이스 질의만으로 식별될 수 있는 가능성이 더 높아지게 된다.
또다른 관련 실시예에서, 기지의 객체들로 미리 채워져 있는 데이터베이스(230)는 미디어 스트림 내의 반복하는 객체를 식별하는 데 사용된다. 이 데이터베이스(230)는 전술한 실시예들 중 임의의 것을 사용하여 준비될 수 있거나 다른 종래의 소스로부터 가져오거나 그에 의해 제공될 수 있다.
그렇지만, 이 섹션에 기술된 실시예들이 특정의 미디어 스트림을 완전히 분석하기 위해 수행되는 비교의 횟수를 감소시키기 위해 나타내어져 있지만, 많은 수의 불필요한 비교가 여전히 행해진다. 예를 들어, 시각 ti 또는 tj에서의 미디어 스트림의 주어진 세그먼트가 이미 특정의 미디어 객체에 속하는 것으로 식별된 경우, 이미 식별된 세그먼트를 다른 세그먼트들에 재비교하는 것은 아무런 실질적인 유용성이 없다. 그 결과, 이하의 섹션에 기술되는 바와 같이, 미디어 스트림의 어느 부분들이 이미 식별되었는지에 관한 정보는 일치하는 섹션들에 대한 검색을 아직 식별되지 않은 미디어 스트림의 그 섹션들로 제한함으로써 검색 시간을 급격히 떨어뜨리는 데 사용된다.
3.2.3 점진적인 스트림 검색 제한을 갖는 반복 객체 추출기의 동작:
이제 도 2와 연계하여 도 5를 참조하면, 일 실시예에서, 프로세스는 일반적으로 미디어 스트림의 이전에 식별된 부분들이 재차 검색되지 않도록 그들에 플래그를 붙이면서 미디어 스트림으로부터 미디어 객체를 찾아내고 식별하며 분할하는 객체 추출기로서 기술될 수 있다.
상세하게는, 도 5에 도시한 바와 같이, 미디어 스트림에서 반복하는 객체를 자동적으로 식별하고 분할하는 시스템 및 방법은 오디오 및/또는 비디오 정보를 포함하는 미디어 스트림(210)의 제1 윈도우 또는 세그먼트를 선택하는 단계(500)로 시작한다. 그 다음에, 일 실시예에서, 미디어 스트림은 이어서 선택된 세그먼트 또는 윈도우(단계 500)의 부분과 일치하는 부분들을 갖는 미디어 스트림의 모든 윈도우 또는 세그먼트를 식별하기 위해 검색된다(단계 510). 유의할 점은 관련 실시예에서 이하에 보다 상세히 기술되는 바와 같이 미디어 스트림은 일치하는 세그먼트들에 대한 전체 미디어 스트림을 검색(단계 510)하기보다는 오히려 미디어 객체의 하나 이상의 반복 인스턴스를 고려하기에 충분한 기간에 걸쳐 세그먼트들에서 분석된다. 예를 들어, 미디어 스트림이 1주일간 레코딩된 경우, 미디어 스트림의 제1 검색을 위한 기간은 하루일 수 있다. 다시 말하면, 이 실시예에서 미디어 스트림이 검색되는 기간은 단순히 미디어 객체의 하나 이상의 반복 인스턴스를 고려하기에 충분한 기간이다.
어느 경우든지, 미디어 스트림의 모두 또는 그 일부가 선택된 윈도우 또는 세그먼트(500)의 부분에 일치하는(단계 520) 미디어 스트림의 모든 부분을 식별하 기 위해 검색되었으면, 일치하는 부분이 정렬되고(단계 530), 이 정렬은 이어서 전술한 바와 같이 객체 종료점을 결정(단계 540)하는 데 사용된다. 종료점이 결정되었으면(단계 540), 일치하는 미디어 객체에 대한 종료점은 객체 데이터베이스(230)에 저장되거나, 미디어 객체 자체 또는 그 미디어 객체에 대한 포인터가 객체 데이터베이스에 저장된다.
게다가, 일 실시예에서, 이미 식별되었던 미디어 스트림의 그 부분들은 플래그가 붙여지고 다시 검색되지 못하도록 제한된다(단계 560). 이 특정의 실시예는 반복 객체가 식별됨에 따라 미디어 스트림의 이용가능한 검색 영역을 급격히 떨어뜨리는 데 도움이 된다. 다시 말하면, 유의할 점은 전술한 바와 같이 비교될 미디어 스트림의 세그먼트의 크기는 미디어 스트림 내의 예상된 미디어 객체보다 더 크게 선택된다는 것이다. 그 결과, 미디어 객체가 미디어 스트림 내에서 동일한 순서로 일관되게 재생되지 않는 한 전체 세그먼트가 아니라 미디어 스트림의 비교된 세그먼트의 부분만이 실제로 일치할 것으로 예상된다.
따라서, 일 실시예에서, 실제로 식별된 미디어 스트림의 각 세그먼트의 그 부분들만이 플래그가 붙여진다(단계 560). 그렇지만, 미디어 객체가 빈번하게 반복되는 것으로 드러난 미디어 스트림에서, 전체 세그먼트를 추가의 검색을 하지 않도록 단순히 제한하는 것이 여전히 미디어 스트림 내의 반복하는 객체의 대부분을 식별할 수 있는 것으로 관측되었다. 다른 관련 실시예에서, 특정의 세그먼트의 무시할 수 있는 부분만이 식별되지 않은 채로 있는 경우, 그 무시할 수 있는 부분들은 간단히 무시된다. 또다른 관련 실시예에서, 세그먼트의 부분들을 추가의 검색 (560)을 하지 않도록 제한한 후에 남아 있는 부분적 세그먼트는 새로 선택된 세그먼트(500)와의 비교를 위해 이전의 세그먼트나 후속하는 세그먼트와 단순히 결합된다. 이들 실시예 각각은 미디어 스트림 내에서의 일치의 검색이 보다 효율적이 되도록 함으로써 전체적인 시스템 성능을 개선하는 데 도움이 된다.
객체 종료점이 결정되었으면(단계 540), 어떤 일치도 식별되지 않았을 때(단계 520), 또는 미디어 스트림의 부분들이 그 부분들의 추가의 검색을 방지하도록 플래그가 붙여진 후에(단계 560), 미디어 스트림의 현재의 선택된 세그먼트(500)이 미디어 스트림의 끝을 나타내는지를 알아보기 위한 검사가 행해진다(단계 550). 미디어 스트림의 현재 선택된 세그먼트(500)가 미디어 스트림의 끝을 나타내는 경우(단계 550), 프로세스는 완료되고 검색은 종료된다. 그렇지만, 미디어 스트림의 끝에 도달하지 않은 경우(단계 550), 미디어 스트림의 그 다음 세그먼트가 선택되고 일치하는 세그먼트를 찾아내기 위해 미디어 스트림을 검색(단계 510)함으로써 미디어 스트림의 나머지와 비교된다. 이어서, 일치를 식별하는 단계(520), 일치하는 세그먼트를 정렬하는 단계(530), 종료점을 결정하는 단계(540), 및 종료점 또는 객체 정보를 객체 데이터베이스(230)에 저장하는 단계의 전술한 단계들은 전술한 바와 같이 미디어 스트림의 끝에 도달될 때까지 반복된다.
유의할 점은 이전에 선택된 세그먼트가 현재 선택된 세그먼트와 이미 비교되었기 때문에 미디어 스트림에서 후방으로 검색할 필요가 없다는 것이다. 게다가, 미디어 스트림의 특정의 세그먼트 또는 부분들이 식별된 것으로서 플래그가 붙여져 있는(단계 560) 실시예에서, 이들 세그먼트는 검색(단계 510)에서 건너뛰게 된다. 전술한 바와 같이, 더 많은 미디어 객체가 스트림에서 식별됨에 따라, 미디어 스트림의 식별된 부분들을 건너뛰는 것은 이용가능한 검색 공간을 급격히 떨어뜨리는 데 도움이 되며, 그에 따라 섹션 3.2.1에서 기술된 기본적인 순차적 대입 방법(basic brute force approach)에 비해 시스템 효율을 극적으로 향상시킨다.
다른 실시예에서, 미디어 스트림에서 반복 객체를 식별하는 속도 및 효율은 일치하는 객체를 식별하기 위해 객체 데이터베이스(230)를 먼저 검색(단계 570)함으로써 더욱 향상된다. 상세하게는, 이 실시예에서, 미디어 스트림의 세그먼트가 선택되었으면(단계 500), 이 세그먼트는 미디어 객체가 미디어 스트림 내에서 반복되는 것으로 관측되었으면 그 미디어 스트림 내에서 다시 반복될 가능성이 더 있다는 이론에 기초하여 먼저 이전에 식별된 세그먼트와 비교된다. 객체 데이터베이스(230)에서 일치가 식별되는 경우(단계 580), 일치하는 세그먼트를 정렬하는 단계(530), 종료점을 결정하는 단계(540), 및 종료점 또는 객체 정보를 객체 데이터베이스(230)에 저장하는 단계의 전술한 단계들이 미디어 스트림의 끝에 도달될 때까지 전술한 바와 같이 반복된다.
전술한 검색 실시예(예를 들어, 510, 570, 560)의 각각은 전체 미디어 스트림에 대해 일치하는 세그먼트를 검색(단계 510)하기보다는 미디어 스트림이 미디어 객체의 하나 이상의 반복 인스턴스를 고려하기에 충분한 기간에 걸쳐 세그먼트들에서 분석되는 실시예와 결합될 때 추가로 향상된다. 예를 들어, 미디어 스트림이 일주일 동안 레코딩되는 경우, 미디어 스트림의 첫번째 검색에 대한 기간은 하루일 수 있다. 따라서, 이 실시예에서, 미디어 스트림은 제1 기간에 걸쳐, 즉 1주일 길 이의 미디어 레코딩으로부터 첫번째 날에 먼저 검색되고(단계 510), 일치하는 미디어 객체의 종료점 또는 객체 자체가 전술한 바와 같이 객체 데이터베이스(230)에 저장된다. 미디어 스트림의 나머지 또는 미디어 스트림의 후속 범위(즉, 미디어 스트림의 일주일 길이 레코딩의 두번째 또는 다음 날)에 대한 후속 검색은 전술한 바와 같이 일치를 식별하기 위해 먼저 객체 데이터베이스(570, 230)에 관한 것이다.
3.2.4 있을법한 객체의 최초 검출을 갖는 반복 객체 추출기의 동작:
이제 도 2와 연계하여 도 6을 참조하면, 일 실시예에서, 프로세스는 일반적으로 먼저 미디어 스트림에서 있을법한 또는 가능한 객체를 식별함으로써 미디어 스트림으로부터 미디어 객체를 찾아내고 식별하며 분할하는 객체 추출기로서 기술될 수 있다. 상세하게는, 도 6에 예시한 바와 같이, 미디어 스트림에서 반복하는 객체를 자동적으로 식별하고 분할하는 시스템 및 방법은 오디오 및/또는 비디오 정보를 포함하는 미디어 스트림(210)을 캡처하는 단계(600)로 시작한다. 미디어 스트림(210)은 예를 들어 라디오 또는 텔레비전/비디오 방송 미디어 스트림을 캡처하기 위한 컴퓨터에 연결된 오디오 또는 비디오 캡처 장치 등의 다수의 종래의 기술들 중 임의의 것을 사용하여 캡처된다. 이러한 미디어 캡처 기술은 당업자에게는 잘 알려져 있는 것으로서 여기에 기술하지 않는다. 일단 캡처되면, 미디어 스트림(210)은 컴퓨터 파일 또는 데이터베이스에 저장된다. 일 실시예에서, 미디어 스트림(210)은 오디오 및/또는 비디오 미디어의 압축을 위한 종래의 기술을 사용하여 압축된다.
미디어 스트림(210)은 이어서 미디어 스트림 내에 내장된 가능한 또는 있을법한 미디어 객체를 식별하기 위해 검사된다. 미디어 스트림(210)의 이러한 검사는 미디어 스트림의 일부분을 나타내는 윈도우(605)를 검사함으로써 달성된다. 전술한 바와 같이, 가능한 객체를 검출하기 위한 미디어 스트림(210)의 검사는 검사되는 미디어 콘텐츠의 유형에 맞춰 조정된 하나 이상의 검출 알고리즘을 사용한다. 일반적으로, 앞서 자세히 설명한 바와 같이, 이들 검출 알고리즘은 분석되고 있는 미디어 스트림의 부분을 특징지우는 파라미터 정보를 계산한다. 대체 실시예에서, 미디어 스트림은 캡처(단계 600)되고 저장(210)될 때 실시간으로 검사된다(단계 605).
가능한 객체가 분석되고 있는 미디어 스트림(210)의 현재의 윈도우 또는 부분에서 식별되지 않은 경우, 윈도우는 가능한 객체를 식별하려고 미디어 스트림의 그 다음 섹션을 검사하기 위해 증분된다(단계 615). 가능한 또는 있을법한 객체가 식별되는 경우(단계 610), 미디어 스트림(210) 내에서의 가능한 객체의 장소 또는 위치가 객체 데이터베이스(230)에 저장된다(단계 625). 게다가, 가능한 객체를 특징지우는 파라미터 정보도 또한 객체 데이터베이스(230)에 저장된다(단계 625). 유의할 점은 전술한 바와 같이 이 객체 데이터베이스(230)가 처음에 비어 있으며 객체 데이터베이스 내의 첫번째 엔트리가 미디어 스트림(210)에서 검출된 첫번째 가능한 객체에 대응한다는 것이다. 다른 대안에서, 객체 데이터베이스(230)는 이전에 캡처된 미디어 스트림의 분석 또는 검색으로부터의 결과로 미리 채워져 있다. 윈도우 증분(615)과 윈도우 검사(605)는 미디어 스트림의 끝에 도달(단계 620)될 때까지 계속된다.
미디어 스트림(210) 내에서 가능한 객체의 검출에 뒤이어서, 객체 데이터베이스(230)는 가능한 객체에 대한 잠재적인 일치, 즉 반복 인스턴스를 식별하기 위해 검색된다. 일반적으로, 이 데이터베이스 질의는 가능한 객체를 특징지우는 파라미터 정보를 사용하여 행해진다. 유의할 점은 잠재적인 일치를 식별하기 위해 정확한 일치가 필요하지 않거나 심지어 요구되지 않는다는 것이다. 사실, 잠재적인 일치에 대한 이 초기 검색을 수행하기 위한 유사성 임계값이 사용된다. 이 유사성 임계값, 또는 "검출 임계값"은 가능한 객체 및 잠재적인 일치를 특징지우는 파라미터 정보의 하나 이상의 특징 사이의 임의의 원하는 퍼센트 일치로 설정될 수 있다.
잠재적인 일치가 식별되지 않은 경우(단계 635), 가능한 객체는 객체 데이터베이스(230)에서 새로운 객체로서 플래그가 붙여진다(단계 640). 다른 대안으로서, 또하나의 실시예에서, 잠재적인 일치가 식별되지 않거나 너무 적은 잠재적인 일치가 식별된 경우(단계 635), 데이터베이스 검색(단계 630)에 의해 식별된 잠재적인 일치의 개수를 증가시키기 위해 검출 임계값이 낮추어진다(단계 645). 역으로, 또다른 실시예에서, 너무 많은 잠재적인 일치가 식별되는 경우(단계 635), 검출 임계값은 수행되는 비교의 횟수를 제한하기 위해 높여진다.
하나 이상의 잠재적인 일치가 식별되었으면(단계 635), 가능한 객체와 일치가능성이 있는 객체 중 하나 이상 사이의 상세 비교(단계 650)가 수행된다. 이 상세 비교는 가능한 객체와 잠재적인 일치를 나타내는 미디어 스트림(210)의 부분들 의 직접 비교 또는 가능한 객체와 잠재적인 일치를 나타내는 미디어 스트림의 부분들의 저차원 버전의 비교를 포함한다. 유의할 점은 이 비교가 저장된 미디어 스트림을 사용하는 반면, 비교는 또한 이전에 찾아내어 저장된 미디어 객체(270)을 사용하여 행해질 수도 있다는 것이다.
상세 비교(단계 650)가 객체 일치(단계 655)를 찾아내지 못한 경우, 가능한 객체는 객체 데이터베이스(230)에서 새로운 객체로서 플래그가 붙여진다(단계 640). 다른 대안으로서, 또하나의 실시예에서, 객체 일치가 식별되지 않은 경우(단계 655), 검출 임계값은 낮추어지고(단계 645), 새로운 데이터베이스 검색(630)이 부가의 잠재적인 일치를 식별하기 위해 수행된다. 다시 말하면, 가능한 객체가 객체 데이터베이스(230)에 이미 있는 임의의 객체와 일치하는지 여부를 결정하기 위해, 임의의 잠재적인 일치가 가능한 객체와 비교된다(단계 650).
상세 비교가 일치, 즉 가능한 객체의 반복 인스턴스를 식별하였으면, 가능한 객체는 객체 데이터베이스(230)에서 반복하는 객체로서 플래그가 붙여진다. 각각의 반복하는 객체는 이어서 객체의 각각의 이전에 식별된 반복 인스턴스와 함께 정렬된다(단계 660). 앞서 상세히 기술한 바와 같이, 이어서 각각의 객체가 거의 같은 최장의 범위를 식별하기 위해 반복하는 객체 인스턴스들 각각 사이에서 후방 및 전방으로 검색함으로써 객체 종료점이 결정된다(단계 665). 이와 같이 각각의 객체의 범위를 식별하는 것은 객체 종료점을 식별하는 데 도움이 된다. 이 미디어 객체 종료점 정보는 이어서 객체 데이터베이스(230)에 저장된다.
마지막으로, 또다른 실시예에서, 객체 종료점이 식별되었으면(단계 665), 종 료점 정보는 그 종료점에 대응하는 미디어 스트림의 섹션을 개개의 미디어 객체(270)의 별도의 파일 또는 데이터베이스로 복사 또는 저장(단계 670)하는 데 사용된다.
전술한 바와 같이, 전체적인 미디어 스트림이 검사(단계 620)될 때까지 또는 사용자가 검사를 종료할 때까지 검사되고 있는 미디어 스트림(210)의 부분이 계속하여 증분되면서 상기의 프로세스는 반복된다.
3.2.5 ROC의 동작:
이제 도 3과 연계하여 도 7을 참조하면, 일 실시예에서, 프로세스는 일반적으로 미디어 스트림 내의 반복하는 객체에 대한 대화형 사용자 제어를 제공하는 미디어 제어기로서 기술될 수 있다. 상세하게는, 도 7에 도시한 바와 같이, 하나 이상의 미디어 스트림 내에 식별된 반복하는 오디오 및/또는 비디오 객체에 대한 자동적인 실시간 사용자 제어를 제공하는 시스템 및 방법은 오디오 및/또는 비디오 정보를 포함하는 미디어 스트림(700)을 입력하는 것으로 시작한다. 이 미디어 스트림은 양호하게는 미디어 스트림 내의 특정의 객체의 지각적으로 매끄러운 삭제, 삽입 또는 대체가 가능하도록 하기 위해 미디어 스트림의 출력(735) 또는 재생에 앞서 버퍼링된다(730).
버퍼링 재생(735)에 앞서, 미디어 스트림은 미디어 스트림의 현재의 세그먼트 또는 부분이 반복 객체(705)를 나타내는지 여부를 결정하기 위해 분석되고 객체/동작 데이터베이스(310) 내의 하나 이상의 엔트리와 비교된다. 미디어 스트림의 현재 부분이 반복하는 객체를 나타내지 않는 경우, 미디어 스트림의 그 부분을 특 징지우기 위한 정보가 객체/동작 데이터베이스(310)에 입력되고, 시스템은 이어서 미디어 스트림의 그 다음 부분이 반복 미디어 객체(705)를 나타내는지 여부를 또다시 결정하기 위해 그 부분을 기다린다(725). 미디어 스트림의 현재 부분이 반복 객체를 나타내지 않는 경우, 객체의 종료점이 결정된다(710). 그 다음에, 객체의 종료점이 주어지면, 객체/동작 데이터베이스(310)는 어떤 동작이 지정되거나(715) 그 객체와 관련되어 있는지를 결정하기 위해 질의된다.
도 9는 반복하는 미디어 객체와 관련될 수 있는 비배타적인 예시적인 동작 리스트의 예를 제공한다. 구체적으로 말하면, 도 9에 도시한 바와 같이, 사용자에 의해 지정될 수 있는 명령은 고속 감기(905), 저속(910), 사용자 정의 동작(915), 미디어 스트림 변경(920), 즐겨찾기에 객체 부가(925), 객체 등급 매기기(930), 객체 건너뛰기(935), 객체 삭제(940), 객체 저장(945), 객체 제한(950), 객체 대체(955), 실시간 점프(960), 스크린 블랭킹(965), 및 볼륨 변경(970) 중 임의의 것 또는 그 모두를 포함한다.
아무런 동작도 지정되지 않거나(715) 현재의 반복 미디어 객체와 관련되지 않은 경우, 시스템은 미디어 스트림의 그 다음 부분이 반복 미디어 객체를 나타내는지를 또다시 결정(705)하기 위해 그 부분을 기다린다(725). 그렇지만, 어떤 동작이 지정되거나(715) 미디어 스트림의 현재 부분과 관련되어 있는 경우, 그 동작이 전술한 바와 같이 수행된다. 지정된 동작이 수행되면, 시스템은 또다시 미디어 스트림의 그 다음 부분이 반복 미디어 객체를 나타내는지를 또다시 결정(705)하기 위해 그 부분을 기다린다.
유의할 점은 반복하는 객체의 결정(705)이 관련된 동작에 대한 객체/동작 데이터베이스의 검사와 함께 행해지고 있는 동안에, 미디어 스트림도 출력(735)되고 있다는 것이다. 또한, 필요하지는 않지만, 최적의 성능을 위해, 특정의 반복 미디어 객체와 관련된 임의의 동작에 따라 버퍼링된 미디어 스트림에 대해 변경이 행해질 수 있도록 출력(735) 또는 재생에 앞서 미디어 스트림이 버퍼링되는 것(730)이 바람직하다. 예를 들어, 미디어 스트림 내에서 반복하는 미디어 객체 및 그의 시간상 종료점이 식별된 경우, 그 미디어 스트림의 출력(735) 또는 재생에 앞서 버퍼링된 미디어 스트림를 삭제, 대체 또는 심지어 그에 다른 콘텐츠를 삽입하는 것은 간단한 일이다. 게다가, 스트림이 버퍼링되어 있는 경우(730), 미디어 스트림 내의 객체의 이러한 삭제, 대체 또는 삽입은 미디어 스트림의 가시적 및/또는 가청적인 중단없이 종래의 기술을 사용하여 달성될 수 있다.
그 다음에, 미디어 스트림의 출력(735) 또는 재생 동안에, 사용자는 그래픽 사용자 인터페이스, 리모콘, 음성 명령, 또는 이러한입력 유형의 임의의 조합을 통해 현재의 객체에 대한 동작을 지정할 수 있다(740). 이어서, 지정된 명령은 객체/동작 데이터베이스에 입력된다. 게다가, 현재 재생중인 미디어 객체에 대해 입력된 동작 또는 명령이 이전에 식별된 반복하는 객체에 대한 경우, 그 종료점은 전술한 바와 같이 이미 결정되어 있을 것이다. 그 결과, 미디어 스트림 재생이 얼마나 진행되었는지에 상관없이, 명령은 일반적으로 즉각적으로 작용할 것이다. 그렇지만, 현재 재생중인 미디어 객체가 미디어 스트림 내의 객체의 첫번째 출현을 나타내는 경우, 그 객체의 종료점이 결정되지 않았을 것이며, 따라서 그 특정의 미디 어 객체의 그 다음 출현 시에 자동적인 동작을 위해 객체/동작 데이터베이스에 저장될 것이다. 어떤 경우에 여러가지 객체들의 반복하는 인스턴스들은 그들이 재출현할 때마다 길이가 변동될 수 있다는 것에 유의해야 한다. 이 경우에, 출현하는 객체의 각각의 새로운 인스턴스에 대한 종료점을 재계산하는 것이 바람직할 수 있다.
마지막으로, 일 실시예에서, 객체/동작 데이터베이스(310)는 종래의 사용자 인터페이스를 통해 갱신 또는 편집된다(745). 이 실시예에서, 사용자는 데이터베이스를 브라우징하고 특정의 미디어 객체와 관련된 특정의 명령을 볼 수 있는 기능을 제공받는다. 사용자는 이어서 원하는 바에 따라 명령을 편집, 부가 또는 갱신할 수 있다. 게다가, 관련 실시예에서, 사용자는 다른 객체/동작 데이터베이스로부터 데이터를 가져올 수 있는 기능도 제공받는다. 예를 들어, 사용자가 한 컴퓨팅 장치 상에서 객체/동작 데이터베이스(310)를 훈련시킨 경우, 사용자는 간단히 그 데이터베이스를 컴퓨터 판독가능 매체에 저장하고 그 데이터베이스를 다수의 부가의 컴퓨팅 장치 중 임의의 것으로 전송할 수 있다. 이와 같이, 사용자는 객체/동작 데이터베이스(310) 자체를 프로그램할 필요없이 훈련된 데이터베이스를 공유할 수 있는 기능을 제공받는다.
게다가, 이 실시예에서, 가져오기된 데이터는 객체, 및 그 객체와 관련될 동작이 있는 경우 그 동작을 식별하는 데 필요한 지문을 포함한다. 또한, 일 실시예에서, 이 가져오기된 데이터는 지문에 의해 나타내어진 미디어 객체의 저차원 버전도 포함한다. 그 결과, 이들 저차원 버전이 주어진 경우, 객체 종료점의 식별 및 임의의 지정된 동작의 실시는 각각의 객체가 미디어 스트림에 출현하자마자 각각의 특정의 미디어 객체의 첫번째 인스턴스 시에 즉각적으로 달성된다. 그렇지 않은 경우, 저차원 버전이 가져오기된 데이터를 제공받지 않은 경우, 객체 종료점의 식별은 그 객체의 적어도 제2 인스턴스가 사용자의 로컬 미디어 스트림에서 관측될 것을 요구한다.
3.2.6 ROC의 대체 동작:
이제 도 3과 연계하여 도 8을 참조하면, 다른 실시예에서, 프로세스는 다시 미디어 스트림 내의 반복하는 객체들에 대한 대화형 사용자 제어를 제공하는 미디어 제어기로서 기술될 수 있다. 상세하게는, 도 8의 대체 실시예에 예시한 바와 같이, 하나 이상의 미디어 스트림 내에서 식별된 반복하는 오디오 및/또는 비디오 객체에 대한 자동적인 실시간 사용자 제어를 제공하는 시스템 및 방법은 오디오 및/또는 비디오 정보를 포함하는 미디어 스트림(800)을 입력하는 것으로 시작한다. 이 미디어 스트림은 또다시 양호하게는 미디어 스트림 내의 특정의 객체의 지각적으로 매끄러운 삭제, 삽입 또는 대체를 가능하게 해주기 위해 미디어 스트림의 출력(885) 또는 재생에 앞서 버퍼링된다.
일 실시예에서, 버퍼링 재생(885)에 앞서, 미디어 스트림의 저차원 버전이 계산되고(805) 저차원 아카이브(810)에 저장된다. 이 저차원 아카이브(810)는 전술한 바와 같이 반복하는 객체를 식별하고 그의 종료점을 결정할 때 미디어 스트림의 직접 비교를 위해 사용된다. 다른 대안에서, 미디어 스트림은 미디어 스트림의 저차원 버전을 먼저 계산하지 않고 단순히 아카이브된다(815). 다시 말하면, 이 아카이브(815)는 전술한 바와 같이 반복하는 객체를 식별하고 그의 종료점을 결정할 때 미디어 스트림의 직접 비교를 위해 사용된다.
또다른 실시예에서, 지문은 미디어 스트림의 일부분을 판독하고, 지문을 계산하고 저장하며, 이어서 어떤 미리 정해진 기간 동안 기다림으로써 어떤 원하는 빈도로 미디어 스트림으로부터 계산되고(820) 지문 데이터베이스(825)에 저장된다. 테스트된 실시예에서, 대략 10 내지 20 밀리초 간격으로 지문 데이터베이스를 지문으로 채우는 것이 안정된 지문 데이터베이스를 제공하는 것으로 밝혀졌다. 이들 지문은 이어서 미디어 스트림과의 차후의 비교에서 사용되며, 이 경우 객체가 미디어 스트림 내에서 반복되고 있는지를 결정하기 위해 제2의 지문 세트가 더 낮은 레이트 또는 빈도로 계산된 다음에 지문 데이터베이스 내의 엔트리들과 비교될 수 있다. 그렇지만, 다수의 종래의 지문 방식이 안정된 객체 인식을 달성할 수 있음에 유의해야 한다. 얼마나 자주 지문이 데이터베이스에 기록될 필요가 있는지 및 얼마나 자주 데이터베이스가 검사될 필요가 있는지에 대한 상세는 사용되는 실제 지문 기술의 세부에 따라 달라지게 된다.
다른 실시예에서, 지문은 미디어 스트림으로부터 계산되고(835), 이어서 미디어 스트림 내에 반복하는 미디어 객체가 존재함을 나타내는 데이터베이스 일치(845)가 있는지를 결정하기 위해 지문/객체 데이터베이스(860)의 검색(840)이 있다. 이 실시예에서, 일치(845)가 없는 경우, 계산된 지문은 지문/동작 데이터베이스(860)에 부가되고(850), 이어서 미디어 스트림으로부터 새로운 지문을 계산(835)하기 전에 미리 정해진 기간 동안 기다린다(855).
데이터베이스 일치(845)가 데이터베이스 검색(840)에 의해 식별되는 경우, 미디어 스트림 내에 반복하는 미디어 객체가 존재함을 나타낸다. 미디어 스트림의 현재 부분이 반복 객체를 나타내는 경우, 그 객체의 종료점이 결정된다(865). 그 다음에, 객체의 종료점이 주어지면, 지문/동작 데이터베이스(860)는 어떤 동작이 그 객체에 대해 지정되었는지(870)를 결정하기 위해 질의된다(반복하는 미디어 객체와 관련될 수 있는 예시적인 동작의 비배타적인 리스트에 대해서는 도 9를 참조할 것).
현재의 반복 미디어 객체와 아무런 동작이 관련되어 있지 않은 경우, 시스템은 반복하는 미디어 객체가 스트림 내에 존재하는지를 결정하기 위해 다시 지문을 계산하고(835) 다시 데이터베이스를 검색하기(840) 전에 미디어 스트림의 그 다음 부분을 기다린다(855). 그렇지만, 반복하는 미디어 객체에 대해 어떤 동작이 지정되어 있는 경우(870), 그 동작은 전술한 바와 같이 수행된다. 지정된 동작이 실행되면, 시스템은 반복하는 미디어 객체가 스트림 내에 존재하는지를 결정하기 위해 지문을 다시 계산하고(835) 데이터베이스를 다시 검색하기(840) 전에 미디어 스트림의 그 다음 부분을 다시 기다린다.
다시 말하면, 반복하는 객체를 식별하기 위한 데이터베이스 검색(840)이 관련된 동작에 대한 지문/동작 데이터베이스의 검사와 함께 실행되고 있는 동안, 믿디어 스트림도 역시 출력되고 있다(885). 게다가, 전술한 바와 같이, 필요하지 않지만, 최적의 성능을 위해, 미디어 스트림은 특정의 반복 미디어 객체와 관련된 임의의 동작에 따라 버퍼링된 미디어 객체에 변경이 행해질 수 있도록 출력(885) 또 는 재생에 앞서 버퍼링(880)되는 것이 바람직하다.
그 다음에, 미디어 스트림의 출력(885) 또는 재생 동안에, 사용자는 그래픽 사용자 인터페이스, 리모콘, 음성 명령, 또는 이러한 입력 유형의 임의의 조합을 통해 현재의 객체에 대한 동작을 지정할 수 있다(890). 지정된 명령은 이어서 지문/동작 데이터베이스에 입력된다. 게다가, 현재 재생중인 미디어 객체에 대해 입력된 동작 또는 명령이 이전에 식별된 반복하는 객체에 대한 경우, 종료점은 전술한 바와 같이 이미 결정되어 있을 것이다. 그 결과, 미디어 객체 재생이 얼마나 진행되었는지에 상관없이, 명령은 일반적으로 즉각적으로 작용할 것이다. 그렇지만, 현재 재생중인 미디어 객체가 미디어 스트림 내의 객체의 첫번째 출현을 나타내는 경우, 그 객체의 종료점이 결정되지 않았을 것이며, 따라서 명령은 그 특정의 미디어 객체의 그 다음 출현 시에 자동적인 동작을 위해 객체/동작 데이터베이스에 저장될 것이다. 어떤 경우에, 여러가지 객체들의 반복하는 인스턴스들은 그들이 재출현할 때마다 길이가 변동될 수 있다는 것에 유의해야 한다. 따라서, 이 경우에, 출현하는 객체의 각각의 새로운 인스턴스에 대한 종료점을 재계산하는 것이 바람직할 수 있다.
일 실시예에서, 지문/동작 데이터베이스(860)는 종래의 사용자 인터페이스를 통해 갱신 또는 편집된다(895). 이 실시예에서, 사용자는 데이터베이스를 브라우징하고 특정의 미디어 객체와 관련된 특정의 명령을 볼 수 있는 기능을 제공받는다. 사용자는 이어서 도 7과 관련하여 전술한 바와 같이 명령을 편집, 부가 또는 갱신할 수 있다.
마지막으로, 또다른 실시예에서, 사용자는 데이터베이스 내의 객체들을 특성별로, 또는 특성의 그룹별로 그룹화될 수 있고 그 특성 또는 특성들을 공유하는 모든 객체에 동일하거나 유사한 동작을 적용할 수 있다. 예를 들어, 사용자는 길이가 60초 미만이고 최근 4일 동안 적어도 한번 나타났던 모든 객체에 동일한 동작을 적용하고자 할 수 있다. 따라서, 객체를 특성별로 선택하고 그룹화하는 데이터베이스의 전체 기능이 동작들을 유사한 특성을 갖는 객체들과 관련시키는 데 사용될 수 있다. 게다가, 사용자는 또한 임의의 이러한 서브셋으로부터 특정의 객체를 특히 포함하거나 배제시킬 수 있는 기능을 제공받는다.
4.0 부가의 객체 추출기 실시예:
전술한 바와 같이, 미디어 스트림 내의 미디어 객체들을 분할하고 식별하기 위해 캡처된 미디어 스트림은 예를 들어 라디오, 텔레비전, 인터넷 또는 다른 네트워크를 통한 오디오, 비디오, 또는 오디오/비디오 방송 등의 임의의 종래의 방송 소스로부터 도출될 수 있다. 텔레비전 유형 방송에서 일반적인 결합된 오디오/비디오 방송과 관련하여, 유의할 점은 결합된 오디오/비디오 방송의 오디오 부분이 비디오 부분과 동기화되어 있다는 것이다. 환언하면, 공지되어 있는 바와 같이, 오디오/비디오 방송의 오디오 부분은 그 방송의 비디오 부분과 일치되어 있다. 그 결과, 결합된 오디오/비디오 스트림 내의 반복하는 오디오 객체를 식별하는 것은 오디오/비디오 스트림 내의 반복하는 비디오 객체를 식별하기 위한 편리하고 계산 비용이 많이 들지 않는 방법이다.
상세하게는, 일 실시예에서, 먼저 오디오 스트림 내의 반복하는 오디오 객체 를 식별하고, 그 오디오 객체가 시작하고 끝나는 시각 tb 및 te(즉, 오디오 객체의 종료점)을 식별하며 이어서 그 시각에서 오디오/비디오 스트림을 분할시킴으로써, 비디오 객체도 또한 결합된 오디오/비디오 스트림으로부터 오디오 객체와 함께 식별되고 분할된다.
예를 들어, 임의의 주어진 텔레비전 방송을 통해 임의의 주어진 날짜에 일반적인 상업 광고 또는 광고가 빈번하게 반복하는 것을 종종 보게 된다. 그 텔레비전 방송국의 오디오/비디오 스트림을 레코딩하고 이어서 텔레비전 방송의 오디오 부분을 처리하는 것은 그 반복하는 광고들의 오디오 부분을 식별하는 데 도움이 된다. 게다가, 오디오가 스트림의 비디오 부분과 동기화되어 있기 때문에, 텔레비전 방송 내의 반복하는 광고의 위치는 전술한 방식으로 즉시 결정될 수 있다. 위치가 식별되면, 이러한 광고는 임의의 원하는 특수 처리를 위해 플래그가 붙여질 수 있다.
본 발명의 이상의 설명은 예시 및 설명을 위해 제공된 것이다. 이 설명은 전부 기술하거나 본 발명을 개시된 정확한 형태로 제한하고자 한 것이 아니다. 이상의 개시 내용을 고려하여 많은 수정 및 변형이 가능하다. 게다가, 상기한 대체 실시예들 중 임의의 것 또는 그 모두는 여기에 기술된 객체 추출기의 부가의 복합 실시예를 형성하기 위해 임의로 조합하여 사용될 수 있는 것에 유의해야 한다. 본 발명의 범위는 이 상세한 설명에 의해 제한되는 것이 아니라 첨부된 청구항들에 의 해 제한되는 것이다.

Claims (43)

  1. 하나 이상의 미디어 스트림 내의 반복하는 미디어 객체를 제어하기 위한 컴퓨터 구현 방법으로서,
    적어도 하나의 미디어 스트림의 재생을 제공하는 단계,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 적어도 하나의 동작을 지정하는 단계 -상기 동작은 적어도 하나의 동작이 지정될 때 상기 적어도 하나의 미디어 스트림의 상기 재생에 의해 나타내어지는 임의의 미디어 객체와 자동적으로 관련되어짐- ,
    상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 각각의 반복 인스턴스를 식별하는 단계,
    상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 각각의 반복 인스턴스의 시간상 종료점을 식별하는 단계, 및
    상기 적어도 하나의 미디어 스트림 중 임의의 것의 재생 동안에 상기 적어도 하나의 미디어 스트림 중 임의의 것 내의 미디어 객체들의 임의의 반복 인스턴스와 관련된 임의의 지정된 동작을 수행하는 단계
    를 포함하는, 미디어 객체를 제어하는 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 각각의 반복 인스턴스를 식별하는 상기 단계는,
    상기 적어도 하나의 미디어 스트림의 각각의 부분에 대한 파라미터 정보를 계산하는 단계, 및
    일치하는 파라미터 정보를 갖는 적어도 하나의 미디어 객체를 찾아내기 위해 상기 파라미터 정보를 적어도 하나의 파라미터 정보 데이터베이스와 비교하는 단계를 포함하는, 미디어 객체를 제어하는 컴퓨터 구현 방법.
  3. 제1항에 있어서, 상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 각각의 반복 인스턴스의 시간상 종료점을 식별하는 상기 단계는,
    상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 적어도 2개의 반복하는 인스턴스에 중심을 둔 상기 적어도 하나의 미디어 스트림의 부분들을 자동적으로 정렬하고 비교하여, 미디어 객체들의 상기 적어도 2개의 반복하는 인스턴스 상에 중심을 둔 상기 미디어 스트림의 부분들이 갈라지는 상기 적어도 하나의 미디어 스트림 내의 위치들을 결정함으로써 시간상 종료점을 결정하는 단계를 포함하는, 미디어 객체를 제어하는 컴퓨터 구현 방법.
  4. 제1항에 있어서, 적어도 하나의 동작을 지정하는 상기 단계는,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 미디어 객체를 고속 감기,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 상기 미디어 객체를 저속 재생,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 상기 미디어 스트림을 변경,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 미디어 객체를 즐겨찾기 리스트에 부가,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 미디어 객체를 등급매김,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체들에 대한 재생 볼륨을 자동적으로 변경,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체가 검출될 때 디스플레이 스크린을 자동적으로 블랭킹,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 상기 적어도 하나의 미디어 스트림 내에서 특정의 미디어 객체들의 끝으로 건너뜀,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체들을 상기 적어도 하나의 미디어 스트림으로부터 삭제,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체들의 복사본을 상기 적어도 하나의 미디어 스트림으로부터 추출하여 저장,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체를 미리 정의된 기간 동안 최대 발생 횟수로 제한,
    상기 적어도 하나의 미디어 스트림 내의 다른 객체들에 대한 하나 이상의 특정의 미디어 객체의 상대 출현 빈도를 제한,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 상기 적어도 하나의 미디어 스트림 내의 특정의 미디어 객체들을 다른 이전에 저장된 미디어 객체로 자동적으로 대체,
    상기 적어도 하나의 미디어 스트림의 재생 동안 하나 이상의 미리 정해진 이벤트의 발생 시에 상기 적어도 하나의 미디어 스트림의 버퍼링 재생(buffered playback)에서 상기 적어도 하나의 미디어 스트림의 실시간 재생으로 자동적으로 점프,
    하나 이상의 미리 정해진 이벤트의 발생 시에 실시간 재생으로부터 버퍼링 재생으로 자동적으로 점프, 및
    사용자 정의 동작
    중 적어도 하나를 지정함으로써 수행되는, 미디어 객체를 제어하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 상기 적어도 하나의 동작을 지정하는 단계를
    더 포함하는, 미디어 객체를 제어하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 미디어 스트림의 재생 후에 상기 적어도 하나의 동작을 지정하고, 하나 이상의 부가의 미디어 스트림들의 차후의 재생 동안에 사용하기 위해 그 지정된 동작들을 저장하는 단계
    를 더 포함하는 미디어 객체를 제어하는 컴퓨터 구현 방법.
  7. 삭제
  8. 삭제
  9. 제1항에 있어서, 상기 적어도 하나의 미디어 스트림의 상기 재생은 버퍼링되는, 미디어 객체를 제어하는 컴퓨터 구현 방법.
  10. 미디어 스트림 내의 반복하는 미디어 객체들을 제어하는 프로그램 형식의 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 기록매체로서, 상기 컴퓨터 실행가능 명령어들은 컴퓨팅 장치가,
    미디어 스트림을 캡처하는 단계,
    상기 스트림 내의 가능한 미디어 객체들을 찾아내기 위해 상기 미디어 스트림을 검사하는 단계,
    각각의 가능한 객체에 대한 파라미터 정보를 객체 데이터베이스에 저장하는 단계,
    각각의 가능한 미디어 객체와 일치가능성이 있는 미디어 객체들을 식별하기 위해 상기 데이터베이스를 검색하는 단계,
    반복하는 미디어 객체를 식별하기 위해 하나 이상의 일치가능성있는 미디어 객체를 각각의 가능한 미디어 객체와 비교하는 단계,
    각각의 반복하는 미디어 객체의 종료점을 식별하기 위해 각각의 반복하는 미디어 객체의 각각의 반복하는 인스턴스를 정렬하는 단계,
    상기 미디어 스트림의 버퍼링 재생을 제공하는 단계, 및
    적어도 하나의 명령을 적어도 하나의 미디어 객체와 관련지어 지정하는 단계 - 상기 명령은, 적어도 하나의 관련된 명령을 갖는 임의의 미디어 객체와 일치하는 후속하여 식별되는 반복하는 미디어 객체들에 대해 실행될 것임 -
    를 수행하게 하는, 컴퓨터 판독가능 기록매체.
  11. 제10항에 있어서, 각각의 반복하는 미디어 객체의 각각의 반복하는 인스턴스를 정렬하는 상기 단계는,
    각각의 반복하는 미디어 객체의 각각의 반복하는 인스턴스를 정렬하고, 각각의 정렬된 미디어 객체가 나머지 정렬된 미디어 객체들과 여전히 동등한 상기 미디어 스트림 내의 위치들을 결정하기 위해 상기 정렬된 미디어 객체들 각각에서 후방 및 전방으로 추적하는 단계를 포함하는, 컴퓨터 판독가능 기록매체.
  12. 제11항에 있어서, 각각의 정렬된 미디어 객체가 나머지 정렬된 미디어 객체들과 여전히 동등한 상기 미디어 스트림 내의 상기 위치들은 각각의 반복하는 미디어 객체의 종료점에 대응하는, 컴퓨터 판독가능 기록매체.
  13. 제10항에 있어서, 상기 미디어 스트림은 오디오 미디어 스트림인 컴퓨터 판독가능 기록매체.
  14. 제10항에 있어서, 상기 미디어 스트림은 비디오 스트림인 컴퓨터 판독가능 기록매체.
  15. 제10항에 있어서, 상기 미디어 객체들은 노래, 음악, 광고, 비디오 클립, 방송국 식별자, 음성, 이미지, 및 이미지 시퀀스 중 어떤 것인 컴퓨터 판독가능 기록매체.
  16. 제10항에 있어서, 상기 미디어 스트림을 캡처하는 단계는 방송 미디어 스트림을 수신하고 저장하는 단계를 포함하는 컴퓨터 판독가능 기록매체.
  17. 제10항에 있어서, 상기 스트림 내의 가능한 미디어 객체들을 찾아내기 위해 상기 미디어 스트림을 검사하는 상기 단계는,
    상기 미디어 스트림의 적어도 하나의 세그먼트에 대한 파라미터 정보를 계산하고, 상기 파라미터 정보가 가능한 미디어 객체를 나타내는지를 결정하기 위해 상기 파라미터 정보를 분석하는 단계를 포함하는 컴퓨터 판독가능 기록매체.
  18. 제10항에 있어서, 각각의 가능한 미디어 객체와 일치가능성이 있는 미디어 객체들을 식별하기 위해 상기 데이터베이스를 검색하는 상기 단계는,
    유사한 가능한 객체들을 찾아내기 위해 각각의 가능한 객체에 대한 상기 파라미터 정보를 상기 객체 데이터베이스 내의 이전의 엔트리들과 비교하는 단계를 포함하는 컴퓨터 판독가능 기록매체.
  19. 제10항에 있어서, 하나 이상의 일치가능성있는 미디어 객체를 각각의 가능한 미디어 객체와 비교하는 상기 단계는,
    각각의 일치가능성있는 미디어 객체의 위치 상에 중심을 둔 상기 미디어 스트림의 부분을 각각의 가능한 미디어 객체의 위치 상에 중심을 둔 상기 미디어 스트림의 부분과 비교하는 단계를 포함하는 컴퓨터 판독가능 기록매체.
  20. 제10항에 있어서, 하나 이상의 일치가능성있는 미디어 객체를 각각의 가능한 미디어 객체와 비교하는 상기 단계는,
    각각의 일치가능성있는 미디어 객체의 위치 상에 중심을 둔 상기 미디어 스트림의 부분들의 저차원 버전을 각각의 가능한 미디어 객체의 위치 상에 중심을 둔 상기 미디어 스트림의 부분의 저차원 버전과 비교하는 단계를 포함하는 컴퓨터 판독가능 기록매체.
  21. 제10항에 있어서, 하나 이상의 일치가능성있는 미디어 객체를 각각의 가능한 미디어 객체와 비교하는 상기 단계는,
    각각의 일치가능성있는 미디어 객체의 위치 상에 중심을 둔 상기 미디어 스트림의 부분들로부터 특성 정보를 계산하는 단계,
    각각의 가능한 미디어 객체의 위치 상에 중심을 둔 상기 미디어 스트림의 부분으로부터 특성 정보를 계산하는 단계, 및
    각각의 일치가능성있는 미디어 객체에 대한 상기 특성 정보를 각각의 가능한 객체에 대한 상기 특성 정보와 비교하는 단계를 포함하는 컴퓨터 판독가능 기록매체.
  22. 제10항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    각각의 반복하는 미디어 객체의 적어도 하나의 대표적인 복사본을 컴퓨터 판독가능 기록매체 상에 저장하는 단계를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  23. 제10항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    각각의 반복하는 미디어 객체에 대한 상기 종료점 정보를 상기 객체 데이터베이스에 저장하는 단계를 더 수행하게 하는 컴퓨터 판독가능 기록매체.
  24. 제10항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    상기 미디어 스트림의 상기 버퍼링 재생 동안에 상기 적어도 하나의 명령을 지정하는 단계를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  25. 제10항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    현재의 미디어 스트림의 재생 동안 및 재생 후를 포함한 임의의 시간에 상기 객체 데이터베이스를 수동으로 스크롤하고, 컴퓨터 사용자 인터페이스를 통해 적어도 하나의 명령을 적어도 하나의 객체와 수동으로 관련시키는 단계를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  26. 제10항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    현재의 미디어 스트림의 재생 동안 및 재생 후를 포함한 임의의 시간에 특성별로 상기 객체 데이터베이스의 서브셋을 그룹화하고, 적어도 하나의 명령을 상기 데이터베이스의 그 서브셋 내의 객체들 중 적어도 하나와 관련시키는 단계를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  27. 제10항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    상기 미디어 스트림 내의 객체들에 관한 통계적 정보를 자동적으로 계산하고 상기 계산된 통계적 정보에 기초하여 적어도 하나의 명령을 자동적으로 지정하는 단계를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  28. 제10항에 있어서, 적어도 하나의 명령을 지정하는 상기 단계는,
    상기 미디어 스트림의 재생 동안에 미디어 객체를 고속 감기,
    상기 미디어 스트림의 재생 동안에 상기 미디어 객체를 저속 재생,
    상기 미디어 스트림의 재생 동안에 상기 미디어 스트림을 변경,
    상기 미디어 스트림의 재생 동안에 미디어 객체를 즐겨찾기 리스트에 부가,
    상기 미디어 스트림의 재생 동안에 미디어 객체를 등급매김,
    상기 미디어 스트림의 재생 동안에 특정의 미디어 객체들에 대한 재생 볼륨을 자동적으로 변경,
    상기 미디어 스트림의 재생 동안에 특정의 미디어 객체가 검출될 때 디스플레이 스크린을 자동적으로 블랭킹,
    상기 미디어 스트림의 재생 동안에 상기 미디어 스트림 내에서 특정의 반복하는 객체들의 끝으로 건너뜀,
    상기 미디어 스트림의 재생 동안에 특정의 미디어 객체들을 상기 미디어 스트림으로부터 삭제,
    상기 미디어 스트림의 재생 동안에 특정의 미디어 객체들의 복사본을 상기 미디어 스트림으로부터 추출하여 저장,
    상기 미디어 스트림의 재생 동안에 특정의 미디어 객체를 미리 정의된 기간 동안 최대 발생 횟수로 제한,
    다른 미디어 객체들에 대한 하나 이상의 특정의 미디어 객체의 상대 재생 빈도를 제한,
    상기 미디어 스트림의 재생 동안에 상기 미디어 스트림 내의 특정의 미디어 객체들을 다른 이전에 저장된 미디어 객체로 자동적으로 대체,
    상기 미디어 스트림의 재생 동안 하나 이상의 미리 정해진 이벤트의 발생 시에 상기 미디어 스트림의 버퍼링 재생(buffered playback)에서 상기 미디어 스트림의 실시간 재생으로 자동적으로 점프,
    하나 이상의 미리 정해진 이벤트의 발생 시에 실시간 재생으로부터 버퍼링 재생으로 자동적으로 점프, 및
    사용자 정의 동작들
    중 적어도 하나를 지정하는 단계를 포함하는 컴퓨터 판독가능 기록매체.
  29. 제10항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    상기 객체 데이터베이스의 적어도 일부분을 저장하고 내보내기(export)하는 단계 -상기 객체 데이터베이스는 상기 객체 데이터베이스 내의 적어도 하나의 미디어 객체와 관련된 적어도 하나의 명령을 포함함-
    를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  30. 미디어 스트림 내의 반복하는 미디어 객체를 제어하는 프로그램 형식의 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 기록매체로서, 상기 컴퓨터 실행가능 명령어들은 컴퓨팅 장치가,
    미디어 객체 파라미터 정보 및 하나 이상의 미디어 객체와 관련된 하나 이상의 명령을 포함하는 하나 이상의 객체 데이터베이스의 적어도 일부분을 가져오기하는 단계,
    적어도 하나의 미디어 스트림의 재생을 제공하는 단계,
    상기 미디어 스트림과 상기 가져오기한 미디어 객체 파라미터 정보의 비교를 통해 상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 각각의 반복 인스턴스를 식별하는 단계,
    상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 각각의 반복 인스턴스의 시간상 종료점을 식별하는 단계, 및
    상기 적어도 하나의 미디어 스트림의 재생 동안에 미디어 객체들의 상기 식별된 반복 인스턴스의 상기 식별된 시간상 종료점에 대해 실시간으로 미디어 객체들의 임의의 식별된 반복 인스턴스와 관련된 임의의 명령을 자동적으로 수행하는 단계
    를 수행하게 하는, 컴퓨터 판독가능 기록매체.
  31. 제30항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    컴퓨터 사용자 인터페이스를 통해 상기 적어도 하나의 미디어 스트림의 재생 동안에 하나 이상의 미디어 객체들과 관련될 적어도 하나의 부가의 명령을 자동 지정 또는 수동 지정하는 단계
    를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  32. 제30항에 있어서, 상기 하나 이상의 미디어 객체들과 관련된 상기 하나 이상의 명령은,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 미디어 객체를 고속 감기,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 상기 미디어 객체를 저속 재생,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 상기 적어도 하나의 미디어 스트림을 변경,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 미디어 객체를 즐겨찾기 리스트에 부가,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 미디어 객체를 등급매김,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체들에 대한 재생 볼륨을 자동적으로 변경,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체가 검출될 때 디스플레이 스크린을 자동적으로 블랭킹,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 상기 적어도 하나의 미디어 스트림 내에서 특정의 미디어 객체들의 끝으로 건너뜀,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체들을 상기 적어도 하나의 미디어 스트림으로부터 삭제,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체들의 복사본을 상기 적어도 하나의 미디어 스트림으로부터 추출하여 저장,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 특정의 미디어 객체를 미리 정의된 기간 동안 최대 발생 횟수로 제한,
    다른 미디어 객체들에 대한 하나 이상의 특정의 미디어 객체의 상대 재생 빈도를 제한,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 상기 적어도 하나의 미디어 스트림 내의 특정의 미디어 객체들을 다른 이전에 저장된 미디어 객체로 자동적으로 대체,
    상기 적어도 하나의 미디어 스트림의 재생 동안 하나 이상의 미리 정해진 이벤트의 발생 시에 상기 적어도 하나의 미디어 스트림의 버퍼링 재생(buffered playback)에서 미디어 스트림의 실시간 재생으로 자동적으로 점프,
    하나 이상의 미리 정해진 이벤트의 발생 시에 실시간 재생으로부터 버퍼링 재생으로 자동적으로 점프, 및
    사용자 정의 동작
    중 적어도 하나를 포함하는 컴퓨터 판독가능 기록매체.
  33. 제30항에 있어서, 상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 각각의 반복 인스턴스를 식별하는 상기 단계는,
    상기 적어도 하나의 미디어 스트림의 각각의 부분에 대한 파라미터 정보를 계산하는 단계와, 일치하는 파라미터 정보를 갖는 적어도 하나의 미디어 객체를 찾아내기 위해 상기 계산된 파라미터 정보를 상기 가져오기한 파라미터 정보와 비교하는 단계를 포함하는 컴퓨터 판독가능 기록매체.
  34. 제30항에 있어서, 상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 각각의 반복 인스턴스의 시간상 종료점을 식별하는 상기 단계는,
    상기 적어도 하나의 미디어 스트림 내의 미디어 객체들의 적어도 2개의 반복하는 인스턴스에 중심을 둔 상기 적어도 하나의 미디어 스트림의 부분들을 자동적으로 정렬하고 비교하는 단계, 및
    미디어 객체들의 상기 적어도 2개의 반복하는 인스턴스 상에 중심을 둔 상기 미디어 스트림의 상기 정렬된 부분들이 갈라지는 상기 적어도 하나의 미디어 스트림 내의 위치들을 결정함으로써 시간상 종료점을 결정하는 단계를 포함하는 컴퓨터 판독가능 기록매체.
  35. 제31항에 있어서, 상기 컴퓨터 사용자 인터페이스는 텍스트 기반 컴퓨터 사용자 인터페이스인 컴퓨터 판독가능 기록매체.
  36. 제31항에 있어서, 상기 컴퓨터 사용자 인터페이스는 그래픽 컴퓨터 사용자 인터페이스인 컴퓨터 판독가능 기록매체.
  37. 제30항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    상기 적어도 하나의 미디어 스트림의 재생 동안에 하나 이상의 미디어 객체들과 관련될 적어도 하나의 부가의 명령을 지정하는 단계
    를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  38. 제30항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    음성을 상기 적어도 하나의 미디어 스트림의 재생 동안에 하나 이상의 미디어 객체들과 관련될 적어도 하나의 부가의 명령을 지정하는 음성 명령으로 인식하는 단계
    를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  39. 제30항에 있어서, 임의의 가져오기된 객체 데이터베이스의 적어도 일부분은 상기 미디어 객체 파라미터 정보에 의해 나타내어진 상기 미디어 객체들 중 적어도 하나의 저차원 버전을 더 포함하는 컴퓨터 판독가능 기록매체.
  40. 제30항에 있어서, 임의의 가져오기된 객체 데이터베이스는 임의의 기존의 객체 데이터베이스와 자동적으로 결합되는 컴퓨터 판독가능 기록매체.
  41. 제30항에 있어서, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨팅 장치가,
    사용자가 컴퓨터 사용자 인터페이스를 통하여 적어도 하나의 명령을 상기 데이터베이스의 그 서브셋 내의 객체들 중 적어도 하나와 관련시킬 수 있게 하기 위하여 상기 객체 데이터베이스의 적어도 하나의 서브셋을 지정할 수 있게 해주는 단계
    를 더 수행하게 하는, 컴퓨터 판독가능 기록매체.
  42. 제41항에 있어서, 상기 컴퓨터 사용자 인터페이스는 상기 객체 데이터베이스를 자동적으로 검색하고, 상기 객체 데이터베이스의 상기 적어도 하나의 서브셋을 생성하기 위해 미디어 객체들의 하나 이상의 공통된 특성에 기초하여 그 미디어 객체들을 그룹화할 수 있는 기능을 제공하는 컴퓨터 판독가능 기록매체.
  43. 제42항에 있어서, 상기 객체 데이터베이스의 임의의 서브셋으로부터의 특정의 객체를 특히 포함하거나 배제시킬 수 있는 기능을 더 포함하는 컴퓨터 판독가능 기록매체.
KR1020047020334A 2002-07-01 2003-06-30 미디어 객체 제어 시스템 및 컴퓨터 판독가능 기록매체 KR100957987B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10/187,774 US7461392B2 (en) 2002-07-01 2002-07-01 System and method for identifying and segmenting repeating media objects embedded in a stream
US10/187,774 2002-07-01
US10/428,812 US7523474B2 (en) 2002-07-01 2003-05-02 System and method for providing user control over repeating objects embedded in a stream
US10/428,812 2003-05-02
PCT/US2003/020771 WO2004004351A1 (en) 2002-07-01 2003-06-30 A system and method for providing user control over repeating objects embedded in a stream

Publications (2)

Publication Number Publication Date
KR20050014859A KR20050014859A (ko) 2005-02-07
KR100957987B1 true KR100957987B1 (ko) 2010-05-17

Family

ID=29780073

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020047020112A KR100988996B1 (ko) 2002-07-01 2003-06-30 반복 미디어 객체의 범위 결정 방법, 및 컴퓨터 판독가능 기록매체
KR1020047020334A KR100957987B1 (ko) 2002-07-01 2003-06-30 미디어 객체 제어 시스템 및 컴퓨터 판독가능 기록매체

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020047020112A KR100988996B1 (ko) 2002-07-01 2003-06-30 반복 미디어 객체의 범위 결정 방법, 및 컴퓨터 판독가능 기록매체

Country Status (7)

Country Link
US (3) US7461392B2 (ko)
JP (1) JP4418748B2 (ko)
KR (2) KR100988996B1 (ko)
CN (1) CN100531362C (ko)
AU (1) AU2003280514A1 (ko)
TW (2) TWI329455B (ko)
WO (1) WO2004004345A1 (ko)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060280437A1 (en) * 1999-01-27 2006-12-14 Gotuit Media Corp Methods and apparatus for vending and delivering the content of disk recordings
ATE556404T1 (de) * 2002-10-24 2012-05-15 Nat Inst Of Advanced Ind Scien Wiedergabeverfahren für musikalische kompositionen und einrichtung und verfahren zum erkennen eines repräsentativen motivteils in musikkompositionsdaten
US7809154B2 (en) 2003-03-07 2010-10-05 Technology, Patents & Licensing, Inc. Video entity recognition in compressed digital video streams
US20050177847A1 (en) * 2003-03-07 2005-08-11 Richard Konig Determining channel associated with video stream
US20050149968A1 (en) * 2003-03-07 2005-07-07 Richard Konig Ending advertisement insertion
US7738704B2 (en) * 2003-03-07 2010-06-15 Technology, Patents And Licensing, Inc. Detecting known video entities utilizing fingerprints
US7694318B2 (en) * 2003-03-07 2010-04-06 Technology, Patents & Licensing, Inc. Video detection and insertion
US7761795B2 (en) * 2003-05-22 2010-07-20 Davis Robert L Interactive promotional content management system and article of manufacture thereof
CN1820511A (zh) 2003-07-11 2006-08-16 皇家飞利浦电子股份有限公司 用于生成并探测多媒体信号中起到触发标记作用的指纹的方法和设备
EP1652385B1 (en) * 2003-07-25 2007-09-12 Koninklijke Philips Electronics N.V. Method and device for generating and detecting fingerprints for synchronizing audio and video
CA2539442C (en) * 2003-09-17 2013-08-20 Nielsen Media Research, Inc. Methods and apparatus to operate an audience metering device with voice commands
US20050267750A1 (en) * 2004-05-27 2005-12-01 Anonymous Media, Llc Media usage monitoring and measurement system and method
US20150051967A1 (en) 2004-05-27 2015-02-19 Anonymous Media Research, Llc Media usage monitoring and measurment system and method
CA2574998C (en) * 2004-07-23 2011-03-15 Nielsen Media Research, Inc. Methods and apparatus for monitoring the insertion of local media content into a program stream
US7335610B2 (en) * 2004-07-23 2008-02-26 Macronix International Co., Ltd. Ultraviolet blocking layer
US7826708B2 (en) * 2004-11-02 2010-11-02 Microsoft Corporation System and method for automatically customizing a buffered media stream
US8107010B2 (en) 2005-01-05 2012-01-31 Rovi Solutions Corporation Windows management in a television environment
US9082456B2 (en) * 2005-01-31 2015-07-14 The Invention Science Fund I Llc Shared image device designation
US8090579B2 (en) 2005-02-08 2012-01-03 Landmark Digital Services Automatic identification of repeated material in audio signals
US20060195860A1 (en) * 2005-02-25 2006-08-31 Eldering Charles A Acting on known video entities detected utilizing fingerprinting
US20060195859A1 (en) * 2005-02-25 2006-08-31 Richard Konig Detecting known video entities taking into account regions of disinterest
US20070008326A1 (en) * 2005-06-02 2007-01-11 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Dual mode image capture technique
US20070222865A1 (en) * 2006-03-15 2007-09-27 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Enhanced video/still image correlation
US9967424B2 (en) * 2005-06-02 2018-05-08 Invention Science Fund I, Llc Data storage usage protocol
US9621749B2 (en) * 2005-06-02 2017-04-11 Invention Science Fund I, Llc Capturing selected image objects
US20070098348A1 (en) * 2005-10-31 2007-05-03 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Degradation/preservation management of captured data
US10003762B2 (en) 2005-04-26 2018-06-19 Invention Science Fund I, Llc Shared image devices
US9191611B2 (en) * 2005-06-02 2015-11-17 Invention Science Fund I, Llc Conditional alteration of a saved image
US9167195B2 (en) * 2005-10-31 2015-10-20 Invention Science Fund I, Llc Preservation/degradation of video/audio aspects of a data stream
US8964054B2 (en) 2006-08-18 2015-02-24 The Invention Science Fund I, Llc Capturing selected image objects
US9942511B2 (en) 2005-10-31 2018-04-10 Invention Science Fund I, Llc Preservation/degradation of video/audio aspects of a data stream
US9451200B2 (en) * 2005-06-02 2016-09-20 Invention Science Fund I, Llc Storage access technique for captured data
US20070139529A1 (en) * 2005-06-02 2007-06-21 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Dual mode image capture technique
US9076208B2 (en) * 2006-02-28 2015-07-07 The Invention Science Fund I, Llc Imagery processing
US20070109411A1 (en) * 2005-06-02 2007-05-17 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Composite image selectivity
US7690011B2 (en) 2005-05-02 2010-03-30 Technology, Patents & Licensing, Inc. Video stream modification to defeat detection
US20060288036A1 (en) * 2005-06-17 2006-12-21 Microsoft Corporation Device specific content indexing for optimized device operation
US20070120980A1 (en) 2005-10-31 2007-05-31 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Preservation/degradation of video/audio aspects of a data stream
US8763022B2 (en) 2005-12-12 2014-06-24 Nielsen Company (Us), Llc Systems and methods to wirelessly meter audio/visual devices
US9015740B2 (en) 2005-12-12 2015-04-21 The Nielsen Company (Us), Llc Systems and methods to wirelessly meter audio/visual devices
KR100774194B1 (ko) * 2006-02-24 2007-11-08 엘지전자 주식회사 방송 재생 장치 및 방송 재생 방법
US20070250856A1 (en) * 2006-04-02 2007-10-25 Jennifer Leavens Distinguishing National and Local Broadcast Advertising and Other Content
US7921116B2 (en) * 2006-06-16 2011-04-05 Microsoft Corporation Highly meaningful multimedia metadata creation and associations
US20080240227A1 (en) * 2007-03-30 2008-10-02 Wan Wade K Bitstream processing using marker codes with offset values
WO2009100093A1 (en) * 2008-02-05 2009-08-13 Dolby Laboratories Licensing Corporation Associating information with media content
US10216761B2 (en) * 2008-03-04 2019-02-26 Oath Inc. Generating congruous metadata for multimedia
WO2009157402A1 (ja) 2008-06-26 2009-12-30 日本電気株式会社 コンテンツ再生制御システムと、その方法及びプログラム
CN102067228B (zh) 2008-06-26 2013-04-24 日本电气株式会社 内容再现顺序决定系统及其方法和程序
JP5231130B2 (ja) * 2008-08-13 2013-07-10 日本放送協会 キーフレーズ抽出装置、シーン分割装置およびプログラム
US20100057938A1 (en) * 2008-08-26 2010-03-04 John Osborne Method for Sparse Object Streaming in Mobile Devices
US8254678B2 (en) * 2008-08-27 2012-08-28 Hankuk University Of Foreign Studies Research And Industry-University Cooperation Foundation Image segmentation
US7994410B2 (en) * 2008-10-22 2011-08-09 Classical Archives, LLC Music recording comparison engine
US9124769B2 (en) * 2008-10-31 2015-09-01 The Nielsen Company (Us), Llc Methods and apparatus to verify presentation of media content
KR101129974B1 (ko) * 2008-12-22 2012-03-28 (주)오디즌 객체 기반 오디오 컨텐츠 생성/재생 방법 및 그 장치
US8271871B2 (en) * 2009-04-30 2012-09-18 Xerox Corporation Automated method for alignment of document objects
US11113299B2 (en) 2009-12-01 2021-09-07 Apple Inc. System and method for metadata transfer among search entities
US8892541B2 (en) * 2009-12-01 2014-11-18 Topsy Labs, Inc. System and method for query temporality analysis
US8457771B2 (en) * 2009-12-10 2013-06-04 At&T Intellectual Property I, L.P. Automated detection and filtering of audio advertisements
US8606585B2 (en) * 2009-12-10 2013-12-10 At&T Intellectual Property I, L.P. Automatic detection of audio advertisements
US8560583B2 (en) 2010-04-01 2013-10-15 Sony Computer Entertainment Inc. Media fingerprinting for social networking
US9264785B2 (en) 2010-04-01 2016-02-16 Sony Computer Entertainment Inc. Media fingerprinting for content determination and retrieval
CA2798072C (en) 2010-05-04 2017-02-14 Shazam Entertainment Ltd. Methods and systems for synchronizing media
US20110276882A1 (en) 2010-05-04 2011-11-10 Kai Buehler Automatic grouping for users experiencing a specific broadcast media
WO2011140269A1 (en) 2010-05-04 2011-11-10 Shazam Entertainment Ltd. Methods and systems for processing a sample of a media stream
US9832441B2 (en) 2010-07-13 2017-11-28 Sony Interactive Entertainment Inc. Supplemental content on a mobile device
US9814977B2 (en) 2010-07-13 2017-11-14 Sony Interactive Entertainment Inc. Supplemental video content on a mobile device
US8730354B2 (en) 2010-07-13 2014-05-20 Sony Computer Entertainment Inc Overlay video content on a mobile device
US9143699B2 (en) 2010-07-13 2015-09-22 Sony Computer Entertainment Inc. Overlay non-video content on a mobile device
US9159165B2 (en) 2010-07-13 2015-10-13 Sony Computer Entertainment Inc. Position-dependent gaming, 3-D controller, and handheld as a remote
US20120240177A1 (en) * 2011-03-17 2012-09-20 Anthony Rose Content provision
FR2974297B1 (fr) 2011-04-21 2013-10-04 Sederma Sa Nouvelle utilisation cosmetique ou therapeutique du tripeptide ghk
US8732739B2 (en) 2011-07-18 2014-05-20 Viggle Inc. System and method for tracking and rewarding media and entertainment usage including substantially real time rewards
US9093056B2 (en) 2011-09-13 2015-07-28 Northwestern University Audio separation system and method
TWI483613B (zh) * 2011-12-13 2015-05-01 Acer Inc 視訊播放裝置及其操作方法
CN102567528B (zh) * 2011-12-29 2014-01-29 东软集团股份有限公司 一种读取海量数据的方法及装置
JP2013174965A (ja) * 2012-02-23 2013-09-05 Toshiba Corp 電子機器、電子機器の制御システム、及びサーバ
US20140193084A1 (en) * 2013-01-09 2014-07-10 Wireless Ronin Technologies, Inc. Content validation analysis method and apparatus
US9792350B2 (en) * 2013-01-10 2017-10-17 International Business Machines Corporation Real-time classification of data into data compression domains
US9564918B2 (en) 2013-01-10 2017-02-07 International Business Machines Corporation Real-time reduction of CPU overhead for data compression
US9053121B2 (en) 2013-01-10 2015-06-09 International Business Machines Corporation Real-time identification of data candidates for classification based compression
US9942334B2 (en) 2013-01-31 2018-04-10 Microsoft Technology Licensing, Llc Activity graphs
US9451048B2 (en) 2013-03-12 2016-09-20 Shazam Investments Ltd. Methods and systems for identifying information of a broadcast station and information of broadcasted content
US9773058B2 (en) 2013-03-15 2017-09-26 Shazam Investments Ltd. Methods and systems for arranging and searching a database of media content recordings
US9390170B2 (en) 2013-03-15 2016-07-12 Shazam Investments Ltd. Methods and systems for arranging and searching a database of media content recordings
US10007897B2 (en) * 2013-05-20 2018-06-26 Microsoft Technology Licensing, Llc Auto-calendaring
KR101456926B1 (ko) * 2013-06-14 2014-10-31 (주)엔써즈 핑거프린트에 기반한 광고 검출 시스템 및 방법
US9456014B2 (en) * 2014-12-23 2016-09-27 Teradata Us, Inc. Dynamic workload balancing for real-time stream data analytics
US9471272B2 (en) * 2015-01-27 2016-10-18 Lenovo (Singapore) Pte. Ltd. Skip of a portion of audio
US9930406B2 (en) 2016-02-29 2018-03-27 Gracenote, Inc. Media channel identification with video multi-match detection and disambiguation based on audio fingerprint
US10063918B2 (en) 2016-02-29 2018-08-28 Gracenote, Inc. Media channel identification with multi-match detection and disambiguation based on single-match
US9924222B2 (en) 2016-02-29 2018-03-20 Gracenote, Inc. Media channel identification with multi-match detection and disambiguation based on location
TWI626548B (zh) * 2017-03-31 2018-06-11 東森信息科技股份有限公司 資料收集與儲存系統及其方法
US10931968B2 (en) 2017-07-31 2021-02-23 Nokia Technologies Oy Method and apparatus for encoding or decoding video content including regions having looping videos of different loop lengths
CN108153882A (zh) * 2017-12-26 2018-06-12 中兴通讯股份有限公司 一种数据处理方法及装置
CN109547850B (zh) * 2018-11-22 2021-04-06 杭州秋茶网络科技有限公司 视频拍摄纠错方法及相关产品
JP6642755B1 (ja) * 2019-03-29 2020-02-12 株式会社セガゲームス 音声処理装置
KR102305852B1 (ko) * 2019-08-23 2021-09-29 주식회사 예간아이티 3d 컨텐츠에서 객체를 이용하여 광고 컨텐츠를 제공하는 광고 제공 방법 및 광고 제공 장치
US11616797B2 (en) 2020-04-30 2023-03-28 Mcafee, Llc Large scale malware sample identification
CN111901649B (zh) * 2020-08-13 2022-03-25 海信视像科技股份有限公司 视频播放方法和显示设备
US11806577B1 (en) 2023-02-17 2023-11-07 Mad Dogg Athletics, Inc. Programmed exercise bicycle with computer aided guidance

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3919479A (en) 1972-09-21 1975-11-11 First National Bank Of Boston Broadcast signal identification system
US4450531A (en) 1982-09-10 1984-05-22 Ensco, Inc. Broadcast signal recognition system and method
US4697209A (en) 1984-04-26 1987-09-29 A. C. Nielsen Company Methods and apparatus for automatically identifying programs viewed or recorded

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677466A (en) * 1985-07-29 1987-06-30 A. C. Nielsen Company Broadcast program identification method and apparatus
US4739398A (en) * 1986-05-02 1988-04-19 Control Data Corporation Method, apparatus and system for recognizing broadcast segments
US6553178B2 (en) * 1992-02-07 2003-04-22 Max Abecassis Advertisement subsidized video-on-demand system
US5436653A (en) * 1992-04-30 1995-07-25 The Arbitron Company Method and system for recognition of broadcast segments
US5442390A (en) * 1993-07-07 1995-08-15 Digital Equipment Corporation Video on demand with memory accessing and or like functions
KR0132858B1 (ko) * 1993-11-30 1998-04-18 김광호 비디오 반복 재생 방법
US6252965B1 (en) * 1996-09-19 2001-06-26 Terry D. Beard Multichannel spectral mapping audio apparatus and method
AU5197998A (en) 1996-11-01 1998-05-29 Jerry Iggulden Method and apparatus for automatically identifying and selectively altering segments of a television broadcast signal in real-time
US6014706A (en) * 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
CA2196930C (en) * 1997-02-06 2005-06-21 Nael Hirzalla Video sequence recognition
GB2327167A (en) 1997-07-09 1999-01-13 Register Group Limited The Identification of television commercials
US5996015A (en) * 1997-10-31 1999-11-30 International Business Machines Corporation Method of delivering seamless and continuous presentation of multimedia data files to a target device by assembling and concatenating multimedia segments in memory
US6173287B1 (en) * 1998-03-11 2001-01-09 Digital Equipment Corporation Technique for ranking multimedia annotations of interest
US6628824B1 (en) * 1998-03-20 2003-09-30 Ken Belanger Method and apparatus for image identification and comparison
US6452609B1 (en) 1998-11-06 2002-09-17 Supertuner.Com Web application for accessing media streams
GB9916459D0 (en) 1999-07-15 1999-09-15 Pace Micro Tech Plc Improvements relating to television programme viewing system
US7194752B1 (en) * 1999-10-19 2007-03-20 Iceberg Industries, Llc Method and apparatus for automatically recognizing input audio and/or video streams
US6469749B1 (en) 1999-10-13 2002-10-22 Koninklijke Philips Electronics N.V. Automatic signature-based spotting, learning and extracting of commercials and other video content
US6577346B1 (en) * 2000-01-24 2003-06-10 Webtv Networks, Inc. Recognizing a pattern in a video segment to identify the video segment
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
AU2002346116A1 (en) * 2001-07-20 2003-03-03 Gracenote, Inc. Automatic identification of sound recordings

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3919479A (en) 1972-09-21 1975-11-11 First National Bank Of Boston Broadcast signal identification system
US4450531A (en) 1982-09-10 1984-05-22 Ensco, Inc. Broadcast signal recognition system and method
US4697209A (en) 1984-04-26 1987-09-29 A. C. Nielsen Company Methods and apparatus for automatically identifying programs viewed or recorded

Also Published As

Publication number Publication date
TW200402654A (en) 2004-02-16
KR100988996B1 (ko) 2010-10-20
US7461392B2 (en) 2008-12-02
CN100531362C (zh) 2009-08-19
AU2003280514A1 (en) 2004-01-19
US20040001160A1 (en) 2004-01-01
TWI333380B (en) 2010-11-11
TW200405980A (en) 2004-04-16
US20040001161A1 (en) 2004-01-01
JP4418748B2 (ja) 2010-02-24
CN1666520A (zh) 2005-09-07
KR20050027219A (ko) 2005-03-18
WO2004004345A1 (en) 2004-01-08
US20050063667A1 (en) 2005-03-24
KR20050014859A (ko) 2005-02-07
US7523474B2 (en) 2009-04-21
TWI329455B (en) 2010-08-21
JP2006515721A (ja) 2006-06-01

Similar Documents

Publication Publication Date Title
KR100957987B1 (ko) 미디어 객체 제어 시스템 및 컴퓨터 판독가능 기록매체
JP4658598B2 (ja) ストリームに埋め込まれた反復オブジェクトに対するユーザ制御を提供するシステムおよび方法
US6766523B2 (en) System and method for identifying and segmenting repeating media objects embedded in a stream
US7877438B2 (en) Method and apparatus for identifying new media content
US9077581B2 (en) Device and method for monitoring, rating and/or tuning to an audio content channel
EP1485815B1 (en) Method and apparatus for cache promotion
US20050044561A1 (en) Methods and apparatus for identifying program segments by detecting duplicate signal patterns
US20040260682A1 (en) System and method for identifying content and managing information corresponding to objects in a signal
US20050249080A1 (en) Method and system for harvesting a media stream
US20060080356A1 (en) System and method for inferring similarities between media objects
US20030018709A1 (en) Playlist generation method and apparatus
CN1726489A (zh) 个人音频录制系统
JP2007533274A (ja) コンテントのサンプリングおよび識別のための方法およびシステム
KR20040058285A (ko) 개인 정보 검색, 업데이트 및 제공을 위한 방법 및 시스템
JP2005509229A (ja) 情報アラートのための方法及びシステム
JP2004505348A (ja) タイムスライスによりテキストを自動分類するシステム及び方法
EP1947576A1 (en) Method for storing media data from a broadcasted media data stream

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
FPAY Annual fee payment

Payment date: 20130416

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140417

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160419

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 10