KR20040074623A - 생방송 프로그램에 대한 빠른 메타데이터 서비스 제공방법, 하이라이트 실시간 생성 방법 및 방송 프로그램스트림 임의 접근 방법 - Google Patents

생방송 프로그램에 대한 빠른 메타데이터 서비스 제공방법, 하이라이트 실시간 생성 방법 및 방송 프로그램스트림 임의 접근 방법 Download PDF

Info

Publication number
KR20040074623A
KR20040074623A KR1020040010675A KR20040010675A KR20040074623A KR 20040074623 A KR20040074623 A KR 20040074623A KR 1020040010675 A KR1020040010675 A KR 1020040010675A KR 20040010675 A KR20040010675 A KR 20040010675A KR 20040074623 A KR20040074623 A KR 20040074623A
Authority
KR
South Korea
Prior art keywords
highlight
time
broadcast
metadata
stream
Prior art date
Application number
KR1020040010675A
Other languages
English (en)
Other versions
KR100589823B1 (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
Priority claimed from US10/369,333 external-priority patent/US7548565B2/en
Application filed by 비브콤 인코포레이티드 filed Critical 비브콤 인코포레이티드
Publication of KR20040074623A publication Critical patent/KR20040074623A/ko
Application granted granted Critical
Publication of KR100589823B1 publication Critical patent/KR100589823B1/ko

Links

Classifications

    • 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/68Systems specially adapted for using specific information, e.g. geographical or meteorological information
    • H04H60/73Systems specially adapted for using specific information, e.g. geographical or meteorological information using meta-information
    • H04H60/74Systems specially adapted for using specific information, e.g. geographical or meteorological information using meta-information using programme related information, e.g. title, composer or interpreter
    • 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/38Arrangements 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 broadcast time or space
    • 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/68Systems specially adapted for using specific information, e.g. geographical or meteorological information
    • H04H60/72Systems specially adapted for using specific information, e.g. geographical or meteorological information using electronic programme guides [EPG]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

효율적인 수작업 과정 및 자동 색인 단계를 포함하여 실시간으로 방송 텔레비전 프로그램의 의미 있고 실용적인 하이라이트 계층구조를 생성하는 비디오 방송의 빠른 색인을 위한 기술이 제공된다. 하나의 방법으로서, 하이라이트를 설명하는 소정의 키워드가 제공되고, 수작업 표시 과정은 단지 소정 횟수의 마우스 클릭으로 구현될 수 있다. 또한, 하이라이트를 실시간으로 의미적 계층구조로 군집화하는 기술이 제공된다. 운용자가 생방송 프로그램의 하이라이트 개요를 신속하게 생성하도록 하기 위해 코어스투파인(coarse-to-fine) 색인 방법을 이용하여 생방송 프로그램 중에 하이라이트 메타데이터를 효율적으로 생성하는 기술이 제공된다.

Description

생방송 프로그램에 대한 빠른 메타데이터 서비스 제공 방법, 하이라이트 실시간 생성 방법 및 방송 프로그램 스트림 임의 접근 방법{METHOD AND APPARATUS FOR FAST METADATA GENERATION, DELIVERY AND ACCESS FOR LIVE BROADCAST PROGRAM}
본 발명은 일반적으로는 비디오 신호, 더욱 구체적으로는, 비디오 색인화(indexing) 및 브라우징(browsing) 기술에 관한 것이다.
본원은 설상훈 등이 2001년 7월 23일에 출원한 미국 특허 출원 번호09/911,293의 일부계속출원(continuation-in-part)(2002년 6월 6일에 US2002/0069218 A1번으로 공개됨)으로, 다음 가출원의 비가출원(non-provisional)이다.
2000년 7월 24일에 출원된 가출원 번호 60/221,394
2000년 7월 28일에 출원된 가출원 번호 60/221,843
2000년 7월 31일에 출원된 가출원 번호 60/222,373
2001년 2월 27일에 출원된 가출원 번호 60/271,908
2001년 5월 17일에 출원된 가출원 번호 60/291,728
본원은 2001년 7월 23일에 출원된 PCT 특허 출원 번호 PCT/US01/23631의 일부계속출원(continuation-in-part)이다.
최근 들어 디지털 TV 방송이 본격화되면서, 디지털 비디오 녹화기(digital video recorder; 이하 DVR이라 명명함)라는 내부 저장소(local storage)를 갖는 디지털 셋톱박스(Set-top Box; 이하 STB라 명명함)가 "TV의 한 구성 품"으로 자리잡기 시작했다. 시청자는 이 새로운 가전기기를 이용하여 방송프로그램을 MPEG-2와 같은 디지털 비디오 압축방식으로 DVR의 내부 저장소에 저장할 수 있게 되었고, 이러한 DVR 기능을 통하여 시청자는 원하는 방송 프로그램을 원하는 시간에 시청할 수 있게 되었다. 이제 시청자는 재래의 VCR(video cassette recorder)에서 제공하는 "빨리 감기" 또는 "되감기" 기능을 반복하면서 순차적으로 특정부분을 찾는 것 외에도 방송 프로그램을 디지털로 녹화함으로써 프로그램의 임의 지점을 직접 접근하여 찾을 수 있게 되었다. 따라서 녹화한 프로그램에 대한 세그먼트 정보(메타데이터)가 주어진다면 시청자는 녹화한 프로그램에서 원하는 부분을 임의로 선택하여 시청할 수 있으며, 또한 제공되는 메타데이터에 따라 녹화한 프로그램의 요약이나 하이라이트만을 시청할 수도 있다. 이러한 메타데이터는 사유형식(proprietary format) 또는 MPEG-7이나 TV-Anytime과 같은 공개 국제 표준 규격 등으로 나타낼 수 있으며, TV 방송사 또는 제 3의 서비스 제공자가 제공한다. 시청자는 이렇게 전달된 메타데이터를 DVR의 내부 저장소에 저장하여 나중에 이용하기도 한다.
상술한 바와 같이, 녹화한 TV프로그램을 브라우징하는 것과 같은 진보된 기능을 DVR사용자에게 제공하기 위해서는 효율적이면서 비용을 절감할 수 있는 방법이 필요하다. 즉, TV 방송프로그램을 효율적으로 색인화(indexing)하고, 색인화한 메타데이터를 STB에 전달하며, DVR에 녹화한 프로그램의 임의의 부분을 전달된 메타데이터를 이용하여 임의로 접근하는 일련의 과정을 위한 비용 절감적이면서 효율적인 방법이 필요하다.
TV 프로그램의 실시간 색인
본 발명은 이해를 돕기 위해, 생방송 중에 이루어지는 "빠른 메타데이터 서비스(quick metadata service)", 즉, 시청자가 방송 프로그램을 DVR에 녹화하는 동안 그 방송 프로그램에 대한 상세 정보를 담고 있는 메타데이터(metadata)를 DVR로 전달하는 서비스에 관한 시나리오를 우선적으로 고려한다. 축구와 같은 생방송 스포츠 경기의 경우, 경기가 진행되는 동안 시청자는 그들이 좋아하는 선수의 경기장면 뿐 아니라 하이라이트 이벤트를 선택적으로 보기 원할 수도 있다. 그러나 만약 그 프로그램에 대한 상세 정보를 담고 있는 메타데이터가 제공되지 않는다면, 시청자는 빨리 감기 등과 같은 기존의 제어방법으로 원하는 비디오 세그먼트를 찾아야 하며 이것은 결코 쉬운 일이 아니다.
비디오 또는 방송 프로그램 등에 대한 상세 정보 즉, 하이라이트 이벤트(highlight event)와 하이라이트 객체(highlight object)를 나타내는 메타데이터는 해당 비디오 세그먼트에 대한 위치(바이트 오프셋) 또는 시간 (시작지점과 종료지점 등) 정보와 이벤트 및 객체를 설명하는 문자로 이루어져 있다. 만약 시청자에게 실시간(real-time)으로 만들어진 이러한 메타데이터를 정해진 주기에 맞추어서 점진적으로 전달하거나 또는 새로운 하이라이트 이벤트나 객체가 발생할 때마다 전달하면, 이를 자신의 저장소에 저장한 DVR은 녹화한 방송 프로그램을 메타데이터에 나타낸 하이라이트 이벤트나 객체에 따라 탐색할 수 있게 하는 등 시청자에게 보다 유익하고 상호작용 가능한 TV 시청 서비스를 제공할 수 있다. 물론 메타데이터를 해당 TV 방송 프로그램이 끝났을 때 한번에 즉시 전달하여도 DVR기능을 갖고 있는 시청자로 하여금 제한적이나마 상술한 바와 같은 효과를 누리게 할 수 있다.
"빠른 메타데이터 서비스"를 위한 하나의 주요 핵심요소는 바로 TV 방송 프로그램을 실시간으로 색인화하는 것으로 이를 위한 다양한 방법이 제안되어 왔다.
Liou는 미국 특허 번호 6,278,446에서 상호 대화식 비디오 색인 기술과 손쉽게 사용할 수 있는 인터페이스를 통한 브라우징 방법을 제안하고 있다. 특히, Liou는 오류 정정 및 확인을 위하여 사용자의 상호작용을 혼합한 자동 색인 방법이 비디오 내용에 보다 충실한 색인을 제공함을 설명하고 있다.
Jain은 미국 특허 번호 6,360,234에서 실시간 또는 비실시간으로 비디오를 캡쳐(capture)하고 색인화하며 월드 와이드 웹(World Wide Web; WWW)으로 지능형 비디오를 출판하기 위한 비디오 카탈로그 시스템 및 방법을 제안하고 있다. 이 시스템은 사용자가 색인화 과정을 수행하는 동시에 비디오 스트림(stream)의 모든 부분을 탐색하지 않고 색인을 사용하여 직접 원하는 장면을 접근하는 비디오 탐색(navigation)기능을 사용자에게 제공한다.
한편, 자막 복호화, 비디오 장면전환 검출과 군집화(clustering), 키프레임(key frame) 추출, 음성이나 얼굴인식 등 비디오와 동기되어 자동적으로 수행될 수 있는 일반적인 방법을 통해 낮은 수준의 메타데이터를 실시간으로 생성할 수도 있다. 그러나 현재의 영상처리 및 음성인식 기술의 한계로 인해, 비디오의 하이라이트를 정확하게 검출하고, 이벤트와 객체에 대한 의미 있고 실질적으로 사용 가능한 하이라이트 요약을 실시간으로 생성하는 것은 매우 어려운 일이다. 즉, 종래의 방법으로는 의미 있고 실질적으로 사용 가능한 메타데이터를 실시간으로 제공할 수 없으며, 비실시간인 경우에도 다음과 같은 이유로 제공할 수 없다.
먼저, 상술한 바와 같이, 의미 있는 다양한 주요 장면을 자동적으로 검출한다는 것은 어려운 일이다. 예를 들어, 미식축구 경기에서 자막에 있는 "touchdown" 키워드(keyword)를 인식하여 "touchdown" 하이라이트를 자동적으로 검출하는 것은 가능한 방법이지만 검출오류 또한 많이 나타난다. 따라서, 내용적으로 의미 있고실질적으로 사용 가능한 하이라이트를 얻기 위해서는 아직까지는 사용자의 개입이나 조작이 필요하다.
두 번째로, 종래의 방법은 실시간으로 주요 하이라이트를 수작업으로 표시(marking)하는 효율적인 수단을 제공하지 못하고 있다. 예를 들어, 짧은 시간 동안 하이라이트가 연속적으로 발생할 경우, 새로운 하이라이트의 타이틀을 입력하고 세부적인 내용을 기술하는 데 시간을 많이 소비하여 다음에 곧 이어서 발생하는 이벤트를 놓칠 가능성이 있다.
시간 축 상에 놓인 비디오 스트림에서 미디어의 위치는 해당 미디어 데이터를 가리키는 시점(time point) 즉, 해당 바이트 위치(byte position)나 미디어시간(media time) 정보를 이용하여 표현한다. 다시 말하면, 비디오 스트림 내에서 임의의 특정 장면의 위치를 표시하려면 바이트 오프셋(offset), 즉 비디오 스트림의 시작 위치에서 해당 위치까지의 바이트의 수를 사용하거나, 또 다른 방편으로 비디오 스트림 시작 지점으로부터 상대적인 시점을 나타내는 미디어시간을 사용할 수도 있다.
Jain은 미국 특허 번호 6,360,234에서 명시한 바와 같이 부호화된 비디오 스트림의 특정 위치에 접근하기 위하여, 부호화된 비디오 스트림 파일의 시작 지점에 대한 상대 시간을 사용한다. 대화형 인터넷이나 고속망을 통한 주문형 비디오(Video on Demand; VOD) 서비스의 경우, 각 프로그램은 헤드엔드(head end)의 저장소에 미디어 파일 형태로 저장되어 있고 사용자의 요구에 따라 스트림화되어 전달되기 때문에, 비디오 프로그램의 시작지점과 종료지점은 각각 '영(zero)'과비디오의 프로그램 길이로 표현되는 미디어시간으로 명확하게 정의할 수 있다. 따라서, 클라이언트 사용자는 선택한 비디오 스트림 내에서 메타데이터에 기술된 비디오 스트림의 해당 위치나 비디오 프레임을 찾을 수 있다. 그러나, TV 방송의 경우에는 디지털 스트림이나 아날로그 신호가 연속적으로 뿌려지기 때문에 방송 프로그램의 시작지점과 종료지점을 명확히 구분하기 어렵다. 즉, 미디어시간이나 바이트 오프셋은 일반적으로 미디어 파일의 시작지점을 기준으로 정해지는 것인데, 방송 프로그램은 시작지점이 불명확하기 때문에 이를 기준으로 하는 미디어시간이나 바이트 오프셋 또한 불명확한 것이 된다. 따라서 방송 프로그램 내의 이벤트가 있는 특정 지점을 대화형 애플리케이션에서 사용하거나 접근하도록 하기 위하여 미디어시간이나 바이트 오프셋으로 그 위치를 기술하는 것은 불명확한 것이 된다.
Anand는 미국 특허 번호 6,357,042에서 주비디오 데이터 스트림을 색인화하여 메타데이터를 제공하는 하나 또는 그 이상의 저작 장치와, 색인화된 메타데이터를 주비디오 데이터 스트림과 연계하는 다중화기로 이루어진 대화형 비디오 저작 시스템을 제안하고 있다. 특히, 저작 장치가 주비디오로부터 생성된 메타데이터에 주석을 달 때 비디오프레임의 표현 시간 지정 정보(Presentation Time Stamp; 이하 PTS라 명명함)를 사용하고, 다중화기는 그 메타데이터를 주비디오 스트림과 관련시킨다. 즉, 미디어 스트림의 특정부분을 접근하기 위한 랜덤 접근 방식에서 PTS 값을 사용하고 있다.
PTS는 시스템 목표 복호화기(System Target Decoders; 이하 STD로 명명함)에서 사용하는 화면 재현 단위(presentation unit)의 표현(display) 시간을 가리키는것으로, 패킷화 기본 스트림(Packetized Elementary Stream; 이하 PES로 명명함)의 패킷 헤더에 존재하는 필드이다. 그러나, PTS값을 사용하려면 PES 계층을 분석해야 하므로 계산량이 많이 요구된다. 더구나 스크램블(scramble)된 방송 미디어 스트림에서는 PTS를 포함하고 있는 PES에 접근하기 위하여 스트림을 디스크램블(descramble)해야 하는 부담이 있다. 즉, MPEG-2 시스템 표준은 PES를 포함하고 있는 트랜스포트 스트림 패킷 페이로드(payload)의 스크램블화 모드를 기술하고 있는데, 스크램블 되어야 하는 페이로드와 달리 트랜스포트 스트림 패킷 헤더와 적응(adaptation) 필드는 스크램블화 되지 않도록 규정하고 있다. 따라서, 방송 스트림(broadcast stream)이 스크램블화 된 경우에는, 트랜스포트 스트림(Transport Stream)의 페이로드에 있는 PTS에 접근하기 위해서는 방송 스트림을 디스크램블 하여야 한다. 따라서 PTS 값을 미디어시간 등으로 사용하는 것은 특히 디지털 방송 스트림에 대해서는 적합하지 못한 방법이다.
멀티미디어 홈 플랫폼(Multimedia Home Platform; 이하 MHP라 명명함)에서는 대화형 디지털 응용과 그 응용이 구동되는 터미널 사이의 일반적인 인터페이스를 제공한다. 대화형 TV 웹사이트에 따르면 임의의 TV 쇼와 관련된 대화형 응용에 관한 서비스를 제공할 때 화면의 움직임과 응용의 동작을 동기화하는 것이 필요하다고 지적하고 있다. 그러나 MPEG-2 방송 스트림은 미디어시간이란 개념이 없기 때문에, MHP에서는 이러한 동기화를 위하여 MPEG-2 프라이빗 섹션(private section) 내에 시간 부호(time code)를 나타내는 특정 서술자를 정의하여 이용한다. 이 서술자에는 미디어의 일부분을 참조할 수 있는 DSM-CC의 일반 재생 시간(Normal PlayTime; 이하 NPT라 명명함)을 포함하도록 하고 있다. 이 NPT 값은 미디어의 한 부분에 대해서는 일반적인 경우와 마찬가지로 순차적으로 증가하지만, 그 앞뒤로는 불연속이 생길 수 있다. 따라서 NPT를 갖는 스트림이 편집되어도 (짧아지거나 광고가 삽입되더라도) NPT 값을 변경할 필요가 없다. 그러나, NPT 사용상에서의 문제 중 한가지는 방송 시 NPT도 같이 전송되는가 하는 점이다.
"DVB와 인터넷 환경에서 TV-Anytime의 실질적 구현"(http://www.bbc.co.uk/rd/pubs/whp/whp-pdf-files/WHP020.pdf)이라는 문서에서는 서비스 제공자가 프로그램의 서로 다른 하위 부분(sub-parts)을 참조하도록 하는 세그멘테이션 시나리오(segmentation scenario)에 대해 설명하고 있다. 이러한 TV-Anytime 메타데이터의 세그멘테이션은 프로그램에 대해서 정의된 명확하고 연속된 시간 축(timeline)에 따라 세그먼트가 그 프로그램의 하위 부분을 참조할 수 있도록 한다. 따라서, 이와 같은 시간 축을 위해 MPEG-2 DSM-CC NPT가 사용되어야 한다고 제안하고 있다. 그러나 이것은 헤드엔드와 수신 단말 양쪽 모두에서 NPT를 정확히 다룰 수 있어야 함을 요구한다.
Kang은 미국 특허 출원 공개 공보 번호 US2001/0014210 A1에서 성능이 향상된 개인용 TV를 제안하였다. 특히, 색인 데이터와 해당 프로그램의 부호화를 동기화함으로써 그 비디오를 처음부터 끝까지 받아 보는 대신 그 색인을 통하여 사용자가 원하는 지점을 직접 찾는 지능적 탐색을 제공하였다. 이때 미디어 위치 탐색을 위해 화면 모임(Group Of Picture: MPEG에서 임의 접근을 위한 진입 점으로서 I-frame을 갖는 기본 접근 단위; 이하 GOP라 명명함)의 바이트 오프셋 값을 사용하였다. 그러나, GOP에 해당하는 미디어시간과 그 바이트 오프셋 값을 갖는 오프셋 표를 생성하려면, GOP 오프셋 값을 계산하기 위해서 비디오 PES를 분석해야 하기 때문에 많은 연산이 필요하다. 더욱이, 녹화된 미디어 스트림이 스크램블 되어 있을 때에는 디스크램블 과정도 필요하다. 이와 다른 방편으로, Kang은 GOP 오프셋 값을 전송할 수 있도록 하였다. 그러나 Kang이 제안한 시스템은 프로그램 스트림이 방송 시스템의 MPEG-2 스트림 송신기에 들어가기 전에 그 스트림을 획득하고 분석하여 색인 파일을 생성하므로, Kang의 시스템은 방송 시스템과 밀접하게 연결된 곳에 설치되어야 한다. 따라서, Kang의 방법은 비용이 많이 들뿐만 아니라 제 3자가 방송시스템 내부의 프로그램 스트림을 자유로이 접근하도록 해야 하는 보안상의 민감한 문제가 발생한다.
Logan'692는 미국 특허 번호 5,986,692에서 방송신호의 시간 색인에 쓰이는 시간소인(time stamp)을 일정하게 생성하는 강화된 컴퓨터 방송 모니터링 방법을 제안하였다.
Logan'925는 미국 특허 출원 번호 2002/0,120,925 A1에서 중앙 제어국이나 사용자 위치에서 생성된 메타데이터를 사용하기 위한 시스템을 제안하였는데, 자동화된 메타데이터 생성에 주안을 둔 것이다. Tivo와 ReplayTV와 같은 아날로그 방송에 사용되는 DVR은 아날로그 방송신호를 디지털화 한 후, MPEG-2로 부호화하여 STB에 부호화한 스트림을 저장한다. 미국 텔레비전 체계 위원회(national television standards committee; NTSC)와 같은 아날로그 TV 방송 신호는 PTS 및 방송시간과 같은 시간정보를 포함하고 있지 않기 때문에, 해당하는 시간 축에 따라 효율적으로아날로그 TV 방송 프로그램을 색인화하고 DVR로 전달하며 전달받은 메타데이터에 기술된 해당 위치로 미디어 스트림을 직접 접근하는 이러한 일련의 방법을 효율적으로 명확하게 고안하기가 쉽지 않다. 또한 디지털 방송을 위한 DVR의 경우에서도 색인기와 DVR 클라이언트가 같이 사용할 수 있는 비디오 스트림의 위치 지정 방법이 필요하고 이를 위한 시간 기반의 효율적인 색인 방법을 고안하는 것은 아직 어려운 일이다.
이상과 같이 아날로그 TV 방송 프로그램뿐만 아니라 디지털 TV 방송에 대한 효율적이면서도 비용 절감적인 색인화와 메타데이터의 효율적인 전송 및 클라이언트 DVR에 녹화한 미디어 스트림에 대한 임의 접근을 위한 방법과 시스템 개발이 아직 필요하다.
본 발명의 목적은 TV 방송 프로그램을 효율적으로 색인하고 메타데이터를 STB로 전송하며 DVR에 저장된 프로그램의 일부분(sub-parts)에 효율적으로 임의 접근하는 비용 절감적 방법 및 장치를 제공하는 것이다.
본 발명은 메타데이터 서비스의 제공, 특히 색인기로부터 만들어진 메타데이터를 사용자에게 효율적으로 전송하는 시스템을 제공한다.
본 발명은 특히 생방송(실시간)에 있어서 사람의 개입(수작업)을 최소화시켜 대부분 자동으로 조작하는 비디오 색인을 제공한다.
본 발명은 오디오 프로그램 색인에도 이용할 수 있다. 여기서 사용된 "오디오/비디오(audio/video)" 프로그램은 오디오와 비디오 프로그램 둘 다 또는 둘 중의 하나를 포함한다.
본 발명은 조작자가 의미 있고 실질적으로 유용한 하이라이트 이벤트 또는 객체의 요약을 생성하는 상호작용 작업 기반의 실시간 비디오 색인을 제공한다.
본 발명은 방송 프로그램에 대하여 의미 있고 실질적으로 유용한 하이라이트 계층을 실시간으로 생성하기 위해 효율적인 수작업과 자동 색인 단계를 함께 제공한다.
본 발명은 비디오의 각 하이라이트 세그먼트에 해당하는 시간적 위치를 표시하여 더욱 상세한 색인을 위해 차후 다시 찾아 갈 수 있는 방법을 제공한다. 또한 수작업 시간을 줄이기 위해 미리 정해 놓은 하이라이트를 설명한 키워드 목록을 제공한다. 수동 표시(marking) 작업은 마우스 버튼을 단지 몇 번 누르는 것으로 이루어질 수 있고 자동 색인 작업과 병합된다. 제안된 발명과 대조적으로 재래의 실시간 색인 방법은 이러한 간단한 수동적 방법을 제공하지 못한다.
본 발명은 실시간으로 하이라이트를 의미론적인 계층으로 분류하는 기술을 제공한다. 예를 들어 미식축구 경기의 경우 "touchdown", "field goal", "extra point", "two point conversion", "long run", "long pass", "intercept", "holding", "offside", "unsportsmanlike conduct" 등과 같은 많은 하이라이트 주제(highlight theme)가 있으며, 앞부분 네 개의 하이라이트 주제는 "scoring"으로, 나머지는 "feature plays"로 분류(category)할 수 있다. 또한 "scoring" 분류 목록은 "point after"라는 종속 분류 목록을 가지고, 종속 분류 목록인 "point after"는 "extra point"와 "two point conversion"으로 구성될 수 있다. 저장된 하이라이트는 분류된 하이라이트 주제와 함께 간단한 수작업 즉, 저장된 하이라이트 각각에 첨부된 하이라이트 주제를 간단히 검사하는 과정을 통해 실시간으로 미리 정의된 의미론적인 계층으로 자동 분류될 수 있다. 따라서, DVR로 제공되는 브라우징 인터페이스(browsing interface)를 통하여 TV 시청자는 분류된 하이라이트 주제 목록을 검색하고, 좋아하는 주제를 선택하여 볼 수 있다. 그러나 제안된 발명과 대조적으로 분류되지 않은 단순한 목록 형식의 하이라이트 주제는 의미론적인 계층을 실시간으로 만들어 내기 매우 어렵다.
본 발명의 구현에 있어서 실시간 색인기는 다음을 포함한다.
- 다양한 프로그램 컨텐츠 또는 장르에 따라 분류된 하이라이트 주제 목록을 제공하는 하이라이트 템플릿 데이터베이스(highlight template database)
- 하이라이트를 실시간으로 수동 표시하기 위한 하이라이트 표시기(highlight marker)
- 필요한 경우 최소의 수작업과 함께 비디오를 자동 색인하고 실시간으로 계층적 하이라이트 요약을 자동으로 구성하기 위한 주색인기(main indexer).
본 발명의 특징인 실시간 색인 방법은 하이라이트 템플릿 데이터베이스를 이용하여 주색인기와 하이라이트 표시기가 공동 작업을 하도록 구현한 것이다. 하이라이트 표시기는 주로 시청자가 선호하는 하이라이트의 위치를 빠른 시간에 표시하는 일을 하는 반면 표시된 하이라이트의 상세한 기술은 주색인기에서 생성된다.
본 발명은 생방송 프로그램에서 하이라이트 메타데이터를 효율적으로 생성하는 기술을 제공한다. 특히 조작자가 빠른 시간에 생방송 프로그램의 하이라이트 요약을 생성하도록 하는 "코어스투파인(coarse-to-fine)" 색인 방법을 제시하고 있다.
본 발명에서 실시간 하이라이트 생성 방법은 간략한 색인(coarse indexing) 과정과 정교한 색인(fine indexing) 과정의 두 단계로 진행된다. 간략한 색인에서는 원하는 하이라이트의 한 순간(또는 시각)을 표시한 후, 조작자는 하이라이트 템플릿으로부터 표시된 하이라이트에 해당하는 하이라이트 주제를 선택하여 첨부하고, 이렇게 표시된 하이라이트를 주색인기에 전송한다. 정교한 색인을 위한 주색인기는 표시된 하이라이트를 시간 구간과 연결하고, 상세 기술을 첨부하여 완전한 하이라이트로 만든다. 정교한 색인화 과정 동안, 자동 샷 경계 검출과 군집화를 이용하여 시간 구간을 결정하고, 검출된 샷(shot)의 자막 문자를 복호화하여 문자기반의 서술을 덧붙인다. 주색인기에서 자동으로 처리된 색인 결과는 수작업을 통해 시간 구간을 수정하고, 주석을 추가하여 더욱 정교화된다. 정교화된 새로운 하이라이트 설명이 생성되면 주색인기는 하이라이트 템플릿을 사용하여 구성한 하이라이트 계층의 적절한 위치에 이를 추가한다.
본 발명에서의 그래픽 사용자 인터페이스(Graphical User Interface; 이하 GUI라 명명함)는 TV 화면을 통해 비디오 하이라이트를 브라우징하는 방법을 제공해 준다.
본 발명에서 GUI는 하이라이트 표시기가 실시간으로 원하는 하이라이트를 효과적이고 효율적으로 획득하는 기능을 제공한다. GUI는 다음 다섯 가지의 구성요소를 동시에 화면상으로 보여준다.
- 하이라이트 이벤트 주제 목록(List of Highlight Event Themes)
- 하이라이트 객체 주제 목록(List of Highlight Object Themes)
- 획득된 하이라이트 목록(List of Captured Highlights)
- 제어 버튼 판(Panel of Control Buttons)
- 문자 입력부(Text Input Area)
처음에 조작자는 다양한 운동 경기의 템플릿에 있는 하이라이트 템플릿 데이터베이스로부터 미식축구 템플릿과 같은 적절한 템플릿을 선택한 후, 하이라이트 표시기로 읽어 들인다. 선택된 템플릿 내에 있는 분류된 하이라이트 이벤트 주제와 객체 주제는 각각 하이라이트 이벤트 주제 목록과 객체 주제 목록에 나타난다. 또 표시된 모든 하이라이트는 획득된 하이라이트 목록에 나타난다. 하이라이트의 시간적 위치는 조작자가 TV 방송을 시청하는 동안 흥미 있는 하이라이트를 보고 제어 버튼인 표시시작 버튼을 눌러 지정한다. 새로운 하이라이트를 표시한 후, 조작자는 적절한 하이라이트 주제를 선택한다. 이때, 조작자는 새로운 하이라이트에 대한 상세한 설명을 추가할 수 있다. 하이라이트 표시기는 비디오 부/복호기(비디오 코덱(video codec))나 캡쳐 보드(capture board)와 같은 추가 하드웨어가 필요 없으며, 주색인기가 실행 중인 주컴퓨터나 주컴퓨터와 컴퓨터망을 통해 연결된 다른 컴퓨터에서 실행된다. 따라서, 다수 개의 하이라이트 표시기가 주색인기에 연결될 수 있어 동시에 공동 작업을 할 수 있다. 방송 프로그램을 보여주는 TV와 네트워크에 연결된 컴퓨터를 가진 어떠한 사람도 간단하고 이해하기 쉬운 GUI를 통하여 하이라이트 표시기를 쉽게 조작할 수 있다. 하이라이트 표시기는 의미 있는 하이라이트를 획득하기 위한 실용적이고 경제적으로 구현된 어플리케이션이다.
본 발명의 시스템은 생방송에서 빠른 메타데이터 서비스를 제공하기 위한 것으로, 실시간 색인기와 메타데이터 전송 채널 및 DVR 클라이언트를 포함한다. 실시간 색인기는 하이라이트 표시기와 주색인기 간의 "코어스투파인(coarse-to-fine)" 색인 공동 작업을 통해 새로운 하이라이트를 위한 메타데이터를 생성하고 이를 알맞은 하이라이트 계층구조(highlight hierarchy)로 저장한다. 이후, 메타데이터는 상향채널(back channel)을 통해 또는 메타데이터를 방송 스트림으로 다중화하여 전송하는 방송국을 통해 DVR로 직접 전송된다. 메타데이터는 갱신되거나 해당 방송 프로그램이 끝날 때 정기적으로 전송된다. 또한 전송되는 메타데이터는 새로이 추가된 하이라이트만을 포함할 수도 있고, 또는 모든 사용 가능한 하이라이트를 포함할 수도 있다.
본 발명의 구현부분에 있어서 DVR의 GUI는 단지 원격 제어기를 가진 DVR 사용자를 위해 하이라이트 계층을 간단하고 쉽게 볼 수 있도록 하는 기능을 제공한다. DVR의 GUI는 DVR이 연결된 TV 화면에 나타난다. DVR의 GUI는 다섯 가지로 구분된 주요 상태를 보인다. 즉, 주메뉴, 부메뉴, 하이라이트, 방송 프로그램, 및 키프레임의 처리 현황 또는 상태를 각각의 해당 뷰를 통해 화면에 보인다. 주메뉴에서는 하이라이트 템플릿에 정의된 하이라이트 범주 목록에 해당하는 메뉴 항목(item)의 목록을 제공한다. 만약 DVR 사용자가 메뉴 항목을 선택하면 그것의 부메뉴가 부메뉴 뷰에 나타난다. 부메뉴는 선택된 메뉴의 하이라이트 하위 범주 목록 또는 같은 하이라이트 템플릿에 정의된 범주 목록에 해당하는 부메뉴 항목의 목록을 제공한다. 부메뉴의 항목이 선택되면, 주메뉴의 뷰와 부메뉴의 뷰가 사라지는 동안 선택된 항목에 해당하는 하이라이트 목록이 뷰에 나타난다. 사용자가 하이라이트를 선택하면, GUI는 사라질 것이고 선택된 하이라이트는 TV에서 전체화면으로 재생된다. GUI가 화면에 나타나면, 현재 비디오 방송은 방송 프로그램 뷰에서 계속 재생되고 현재 주/부메뉴의 키프레임 영상이나 하이라이트는 키프레임 뷰에 나타난다. GUI는 DVR 원격 제어기의 여섯 개의 버튼(메타데이터 버튼, 상하좌우 4 개의 방향버튼, 그리고 방향버튼 중간에 위치한 재생 버튼)만으로 조종된다. 메타데이터 버튼을 눌렀을 때, 방송 프로그램 대신 GUI가 TV 화면에 나타난다. 메타데이터 버튼을 다시 한번 누르면, GUI가 사라지고 방송 프로그램이 다시 전체 화면 모드로 나타난다. 메타데이터 버튼은 토글(toggle)처럼 동작한다. 네 개의 방향 버튼은 주/부메뉴 항목과 하이라이트를 탐색하는 데 사용된다. 재생 버튼은 선택된 하이라이트를 재생하는 데 사용된다.
본 발명에 따른 메타데이터 서비스에 관한 방법과 시스템은 방송시간(broadcasting time)을 방송 스트림의 특정 위치를 찾기 위한 시간기반 색인 혹은 참조시간(reference time)으로 사용하는 것이다. 첫째, 본 발명의 방법과 시스템은 방송되고 있는 지역 혹은 나라의 표준시간인 방송시간을 얻는 방법을 제공한다. 디지털 방송의 경우 색인기와 DVR은 방송 스트림에 다중화 되어 주기적으로 전송되는 방송시간을 이용한다. 아날로그 방송 신호의 경우 색인기와 DVR은 네트워크 시간 규약(Network Time Protocol; 이하 NTP라 명명)을 통해 시간 서버와동기화된 시간소인(time stamp)을 이용한다. 둘째, 본 발명의 방법과 시스템은 방송시간과 채널 번호 그리고 다른 정보를 포함하는 패턴을 만드는 인위적인 패턴 생성기(artificial pattern generator)를 이용하여 방송 신호와 방송시간을 연결시킨다.
본 발명의 방법과 시스템은 바이트 오프셋 표(byte-offset table)를 이용하여 DVR에서 저장된 스트림의 위치를 빠르게 접근하기 위한 방법을 제공한다. 바이트 오프셋 표는 방송시간과 관련된 재생된 스트림의 바이트 오프셋 위치에 대한 정보를 포함한다.
본 발명의 방법과 시스템은 메타데이터 내의 시간색인(time-index)이 가리키는 저장된 비디오의 시간적 위치 또는 프레임을 정확하게 접근하는 방법을 제공한다.
본 발명의 다른 목적, 특징, 장점은 이후의 기술에 잘 나타나 있다.
도 1a, 1b, 1c, 1d는 본 발명에 따른 MPEG-2 전송 스트림 및 그 메타데이터와 같은 형태의 미디어 컨텐츠가 DVR 기능이 있는 셋톱-박스 클라이언트(STB)의 사용자에게 실시간으로 전달되는 생방송 중의 빠른 메타데이터 서비스를 위한 전체 방식을 나타내는 블록도,
도 2는 본 발명의 실시간 색인기(real-time indexer)를 구현한 블록도,
도 3은 본 발명에 따라 디지털 비디오 소스를 처리하는 인덱싱 마스터(indexing master)와 다양한 하드웨어 장치를 포함하는 주색인기(main indexer)의 예시적인 구조를 보여주는 블록도,
도 3a는 본 발명에 따라 디지털 비디오 소스를 처리하는 인덱싱 마스터, 부호간 변환기(transcoder) 및 다양한 하드웨어 장치를 포함한 주색인기의 예를 보여주는 블록도,
도 3b는 본 발명에 따라 디지털 비디오 소스를 취급하는 인덱싱 마스터와 다양한 하드웨어 장치를 포함한 주색인기의 다른 예를 보여주고 있는 블록도,
도 3c는 본 발명에 따라 방송시간을 나타내는 색상 코드(color code)의 예시적인 구조를 나타낸 도면,
도 3d는 본 발명에 따라 하이라이트 표시기 시스템 시간과 인덱싱 마스터 시스템 시간 및 저장된 디지털 스트림의 해당 시간 사이의 관계를 설명하는 블록도,
도 3e는 본 발명에 따라 아날로그 비디오 소스를 처리하는 인덱싱 마스터와 다양한 하드웨어 장치를 포함한 주색인기의 예를 나타내는 블록도,
도 4는 본 발명에 따른 실시간 색인기의 간략한 색인기 모듈(coarse indexer module)인 하이라이트 표시기의 구조의 예를 나타내는 블록도,
도 4a는 본 발명에 따라 주색인기로 전송되는 메타데이터의 예시적인 메시지 포맷도,
도 5는 본 발명에 따라 실시간 색인기의 주색인기에 있는 정교한 색인기 모듈(fine indexer module)로서 인덱싱 마스터의 구조 예를 나타내는 블록도,
도 6a, 6b, 6c는 본 발명에 따라 하이라이트 템플릿 데이터베이스(highlight template database)에 있는 미식축구 경기의 하이라이트 템플릿에 관한 세 가지 예를 나타내는 그래픽도,
도 7은 본 발명에 따라 하이라이트 트리 빌더(highlight tree builder)에 의해 자동으로 생성되는 예시적인 하이라이트 계층구조(highlight hierarchy) 및 이 계층구조와 하이라이트 표시기에 의해 캡쳐된 비디오 하이라이트 사이의 관계를 나타내는 도면,
도 8은 본 발명에 따라 간략한 색인기인 하이라이트 표시기를 시각화하는 예시적인 GUI 객체를 나타내는 그래픽도,
도 9는 본 발명에 따른 정교한 색인기인 주색인기의 인덱싱 마스터를 시각화하는 예시적인 GUI 객체의 스크린 샷을 나타낸 도면,
도 10a 내지 10e는 본 발명에 따른 DVR 클라이언트에서 실행되는 미식축구 경기를 위한 전형적인 하이라이트 브라우저(highlight browser)의 스크린 샷을 나타낸 도면,
도 11a 내지 11e는 시각율동 생성을 위해 비디오 프레임을 가로지르는 다양한 표본화 선의 예를 나타내는 도면과, 시각율동 영상의 예시도,
도 12는 본 발명에 따라 하이라이트 표시기에서 실행되는 대략적인 하이라이트 획득 및 처리(하이라이트 표시)를 나타내는 순서도,
도 13은 본 발명에 따라 하이라이트 표시기로부터 받은 대략적인 메타데이터를 정교화하는 주색인기의 인덱싱 마스터에서 수행하는 (실시간 인덱싱) 과정의 순서도,
도 14는 본 발명에 따라 도 13에서 설명한 하이라이트 등록 처리 과정을 나타내는 순서도,
도 15는 본 발명에 따라 도 13에서 설명한 정규 색인 처리 과정을 나타내는 순서도,
도 16은 본 발명에 따라 도 13에서 설명한 시각율동 생성 과정을 나타내는 순서도,
도 17은 본 발명에 따라 비디오 프로그램을 수신하고 저장하고 보여주기 위한 디지털 비디오 재생기에 대한 블록도,
도 18은 본 발명에 따라 흥미 있는 비디오 세그먼트를 빠르게 접근하기 위해 사용자 장치(즉, DVR)에서 사용되는 바이트 오프셋 표,
도 19는 본 발명에 따라 샷 경계(shot boundary) 목록을 바탕으로 저장된 스트림을 프레임 단위로 정확하게 접근하기 위해 사용되는 방법에 대한 상세 설명도,
도 20은 종래 기술에 따른 선화 영상을 나타낸 도면,
도 21은 종래 기술에 따른 시각율동 영상의 일부를 나타내는 도면이다.
도면의 주요 부분에 대한 부호의 설명
102 : 방송국 104 : 메타데이터 서비스 제공자
112, 120 : 양방향 데이터선 114 : 방송망
116 : 상향채널 122 : 클라이언트
124A : 실시간 색인기 128 : 미디어 소스
첨부된 도면에 나타낸 예시는 본 발명의 바람직한 실시예에 대한 상세 설명도이다. 도면은 설명을 위한 것이지 본 발명을 한정시키는 것이 아니고, 또한 본 발명을 도시한 실시예에 한정하지 않는다.
도면의 구성 요소는 통상적으로 다음과 같이 번호(반드시 그러한 것은 아님)가 붙어 있다. 참조 번호의 최상 단위 번호(백 단위 번호)는 도면 번호에 대응한다. 예를 들어, 일반적으로, 도 1은 참조번호(100-199) 사이의 번호가, 도 2의 구성 요소는 참조번호(200-299)의 범위의 번호가 매겨져 있다. 도면에서 유사한 구성 요소는 유사한 참조 번호에 의해 참조될 것이다. 예를 들어, 도 1의 구성 요소(199)는 도 2의 구성 요소(299)와 비슷할 수 있다(일부 경우에는 동일함). 전체 도면에서, 다수의 유사 구성요소(199)는 각각 개별적으로 참조번호(199a, 199b, 199c)로 인용될 수도 있다. 같은 또는 다른 도면에서 유사한 구성 요소 간의 이러한 관계는 이용 가능하다면 청구 범위 및 요약서를 포함하여 명세서를 통해 명백히 이해될 것이다.
엷은 그림자(크로스-해칭(cross-hatching))는 유사한 구성 요소 간의 상이점이나 블록의 다른 부분을 구별하기 위해 사용될 수 있다.
흑백 이미지(grayscale image)는 TV 화면이나 비디오 스트림의 시각율동(visual rhythm) 영상을 위해 사용한다. 흑백 이미지에 대응하는 선화 영상(line drawing image)도 포함되어 있다
본 발명의 구조, 조작 그리고 장점은 첨부한 도면과 함께 다음 설명을 통해 더욱 명백히 이해될 것이다.
상세 설명에서는 마이크로소프트의 운영체제나 GUI 환경과 같이 사용자에게 익숙한 인터페이스(interface)를 기반으로 본 발명의 다양한 구현에 대하여 기술한다. 버튼(button)을 누르고 항목의 묶음을 선택하고 끌어 놓는(drag-and-drop) 동작은 마우스와 같은 그래픽 입력 장치의 사용을 전제로 하여 기술되지만, 본 발명의 범위는 키보드나 타블릿(tablets) 등과 같은 다른 적절한 입력 장치도 다른 방도로서 같은 기능을 수행하기 위하여 사용된다는 것을 포함한다. 또한, 그래픽 인터페이스에서 여러 (일반적으로 비슷한) 항목으로부터 임의의 특별한 항목을 식별하기 위해 표식을 사용하는데, 이때 이를 위한 임의의 적절한 방법이 가능하며 그와 같은 모든 다른 방법도 본 발명이 의도한 바의 범위에 포함된다.
전체 시스템(Overall System)
도 1a, 1b, 1c, 1d는 생방송에 대한 빠른 메타데이터 서비스를 제공하기 위한 전체 기능을 나타낸다. MPEG-2 트랜스포트 스트림 형태와 같은 미디어 소스(128)로 만들어진 미디어 컨텐츠와 그 컨텐츠를 묘사하는 메타데이터는 TV와 DVR 기능을 내장한 STB 클라이언트에 실시간으로 전달된다. 아날로그 방송의 경우에는 디지털 스트림 대신 아날로그 신호가 방송된다.
방송국(102)은 방송망(114)을 통하여 미디어 스트림을 방송한다. 이 때, 하나 또는 그 이상의 메타데이터 서비스 제공자(104)(도 1a, 1b)는 방송 스트림을 분석하고 관련된 메타데이터를 실시간으로 만들기 위해 실시간 색인 장비(124A)("실시간 색인기")를 사용할 수 있다. 메타데이터 서비스 제공자에 의해 생성된 메타데이터는 다음 두 가지의 메타데이터 전달 방법 중 하나로 DVR 클라이언트(122)에 전달된다.
본 발명에 사용된 "방송 스트림"이란 아날로그 방송의 "방송 신호"를 포함한다. 또한 "메타데이터 서비스 제공자"란 방송 수신이 가능한 임의의 지역에도 위치할 수 있다.
첫 번째 전달 방법으로(도 1a), 실시간 색인기(124A)는 메타데이터 서비스 제공자(104)에 위치하고, 메타데이터는 양방향 데이터선(interactive data lines)(112, 120)과 상향채널(back channel)(116)을 통해서 클라이언트(122)에 전달된다. (상향채널은 양방향 데이터 선을 포함한다.) "상향채널"은 일반적으로 STB와 서비스 제공자 사이의 인터넷과 같은 양방향 통신 채널을 뜻한다.
두 번째 전달 방법으로(도 1b), 실시간 색인기(124A)는 메타데이터 서비스 제공자에 위치하며, 메타데이터는 메타데이터 서비스 제공자((104))에 있는 실시간 색인기(124A)에서 피드백 채널(132A)을 통하여 방송국(102)의 다중화기(130)로 전달되다. 전달된 메타데이터는 비디오 스트림에 삽입되어 방송 스트림에 있는 비디오 스트림과 함께 (다중화된 신호로서) 방송된다. 이 두 번째 방법은 디지털 방송의 경우에만 적용된다. 피드백 루프(feedback loop)는 효율적인 메타데이터 전달을 위한 것으로 방송국(102), 방송망(114), 메타데이터 서비스 제공자(104) 및 다시 방송국(102)의 경로로 구성된다. 이 두 번째 방법은 클라이언트가 양 방향 데이터선(112, 116, 120)과 연결될 필요가 없기 때문에, 디지털 방송의 경우에 효율적이다.
또 다른 방법은 도 1c, 1d로서, 방송국(102)은 별도의 외부 메타데이터 서비스 제공자(104) 없이 빠른 메타데이터 서비스를 제공할 수 있다. 이 경우 메타데이터는 방송국(102)에 위치한 실시간 색인기(124B)에 의해 생성된다. 생성된 메타데이터는 피드백 채널(132B)을 통하여 비디오 스트림과 함께 다중화되어 방송망(114)을 통해 방송 되거나(도 1c), 상향채널(116)과 양방향 데이터선(112, 120)을 통하여 분리된 스트림으로 방송되어 전달된다(도 1d).
도 1b는 피드백 루프(방송국->색인기->방송국->STB)를 나타낸다. 도 1c 역시 루프의 일종으로 볼 수 있다. 도 1b와 도 1c의 다른 점은, 도 1b는 방송중인 스트림을 받아서 분석하는데 반하여, 도 1c는 방송중인 스트림을 받아서 분석할 수 있을 뿐만 아니라 비디오가 준비되어 있으면 방송 전에도 비디오 스트림을 색인화할 수 있다는 점이다. 도 1d는 미디어 스트림을 색인화하고 인터넷을 통하여 메타데이터를 전달하는 경우로서 피드백 루프가 구성되지 않는다.
이와 같이 시청자는 방송된 비디오 스트림을 DVR에 녹화하고, 방송망 혹은 상향채널을 통해 전달받은 메타데이터를 녹화된 비디오 스트림과 연계하여, 원하는 하이라이트만을 선택적으로 시청하는 진보된 기능을 사용할 수 있다.
방송망(114)은 일반적으로 지상파, 케이블, 위성 또는 이동통신망 등을 말한다. 상향 데이터 망(116)은 인터넷, 인트라넷, 공중교환전화망(PSTN), 케이블 모뎀, 위성 등을 포함한다. 시청자의 수신 장치(122)는 일반적으로 DVR 기능을 포함한 STB이다.
상술한 각 시나리오에서 실시간 색인기(124A, 124B)는 각각 별도의 메타데이터 서비스 제공자(104) 또는 방송국(102)에 위치한다. 또한, 각 시나리오는 방송될 TV 프로그램에 대한 메타데이터가 방송 전에 이용 가능할 경우도 포함한다. 이러한 경우는 TV 프로그램이 미리 색인화되었거나 재방송될 경우에 발생한다.
요약하면, 도 1a는 방송 비디오 신호를 색인화하고 그 결과를 상향채널을 통하여 STB로 전달한다. 도 1b 역시 방송신호를 색인화하나 도 1a와 달리 그 결과를방송 스트림에 실어서 STB에 전달한다. 도 1c는 방송 전에 방송국 내부에서 신호를 색인화하고 그 결과를 방송 스트림에 실어서 STB에 전달한다. 도 1d 역시 방송 전에 비디오 신호를 색인화하나 그 결과를 상향채널을 통하여 STB로 전달한다. 이 4가지 시나리오는 특히 생방송 스포츠 프로그램과 같이 방송될 비디오를 미리 색인화할 수 없는 경우에 유용하게 활용될 수 있다. 이때 클라이언트는 DVR 기능을 갖는 STB 등과 같은 장치로서, 방송되는 프로그램이 DVR의 내부 저장소에 녹화될 수 있어야 한다. 만약 방송 전에 비디오 스트림 파일이 이용 가능하다면, 방송 전에 이를 미리 색인화할 수 있으며, 이때는 색인화를 위하여 실시간 색인기가 굳이 필요하지 않으나, 실시간 색인기는 이미 색인화된 메타데이터의 시간 정보(time-index)를 방송 시작시간 기준으로 교정하는 데에 사용될 수 있다.
실시간 색인기(Real-Time Indexer)
도 2는 실시간 색인기(202)(도 1a-1d의 참조번호(124A, 124B)에 해당)를 보다 상세히 나타낸다. 미디어 컨텐츠는 미디어 소스(218)(도 1a-1d의 참조번호(128)에 해당)에 의해 제공된다. 실시간 색인기(202)는 하이라이트 표시기(highlight marker)(206), 주색인기(main indexer)(208), 선택적(백업용) 주색인기(210)와 컴퓨터 망(214)을 통해 통신하는 하이라이트 템플릿 데이터베이스(highlight template database)(212)를 포함한다. 선택적 주색인기(210)는 하드디스크의 오류 또는 부호기 보드의 오류 등과 같은 예기치 못한 재앙에 대비하기 위하여 부가적으로 제공된다. 하이라이트 템플릿 데이터베이스(212)는 하이라이트 이벤트 및 객체의 하이라이트 주제(highlight theme)를 분류하거나 계층구조(tree-structured)로 구성해 놓은 다양한 하이라이트 템플릿을 제공한다. 하이라이트 계층구조(highlight hierarchy)는 운용자에 의해 선택된 특정 하이라이트 템플릿 내에서 분류된 하이라이트 주제에 따라 만들어진다. 운용자는 방송 프로그램을 모니터(TV)(204) 상에서 볼 수 있다.
하이라이트 표시기(206)는 주로 관심 있는 하이라이트의 해당 위치를 빠르게 표시(marking)하기 위한 모듈이다. 표시된 하이라이트에 대한 추가적인 자세한 설명은 주색인기(208)(및 참조번호(210))에서 첨가한다.
더 구체적으로 살펴보면, 실시간 하이라이트 생성 방식은 간략한 색인화 작업(coarse indexing)과 정교한 색인화 작업(fine indexing)의 두 단계 작업으로 이루어진다. 간략한 색인기에 해당하는 하이라이트 표시기(206)는 하이라이트의 순간 또는 시각을 표시하고, 운용자가 하이라이트 템플릿에서 특정 하이라이트 주제를 선택하여 표시된 하이라이트를 덧붙이기 위해서 사용한다. 하이라이트 표시기(206)에서 획득한 하이라이트(216)("표시된 하이라이트")는 컴퓨터 망(214)을 통하여 주색인기(208)(및 부가적인 백업용 주색인기(210))에 전달된다. 정교한 색인기에 해당하는 주색인기(208)(또는 참조번호(210))는 정확한 시간 간격과 설명을 부가하여 획득한 하이라이트(216)가 더욱 상세한 설명을 갖도록 하는 데 사용한다.
정교한 색인화 단계 동안 정확한 시간 간격은 자동 샷 경계 검출(shot boundary detection) 및 군집화(shot clustering)에 관련된 임의의 적합한 기술로얻어 질 수 있으며, 검출된 샷의 자막 문자를 추출하여 문자기반의 설명을 부가할 수 있다. 주색인기(208 또는 210)에서 자동으로 얻어진 색인화 결과는 추가적인 설명과 시간 정보의 교정을 통하여 더욱 정교화된다.
예를 들어, 실시간 하이라이트 표시는 다음과 같이 처리될 수 있다. 색인 과정 시작 전에 미식축구 전문가와 같은 운용자는 하이라이트 템플릿 데이터베이스(212)에서 제공하는 스포츠 경기에 대한 다양한 템플릿으로부터 미식축구 하이라이트 템플릿을 선택하여, 하이라이트 표시기(206)에 다운로드한다. 운용자는 생방송되는 미식축구 프로그램을 TV(204)로 시청하면서, 하이라이트를 표시기를 사용하여 실시간으로 원하는 하이라이트(예를 들면, 미식축구의 "touchdown", "field goal", 또는 "interception" 등)를 시간소인으로 표시하고, 해당되는 하이라이트 주제를 템플릿에서 선택한다. 그런 후, 표시된 하이라이트(216)에 대한 시간 정보(시간 시점 또는 간격)와 선택된 하이라이트 주제를 정교한 색인화를 위한 주색인기(208)(및 백업용 주색인기(210))에 즉시 전달한다. 아날로그 또는 디지털 비디오를 수신하는 주색인기(208)(또는 참조번호(210))는 샷 검출, 키프레임 추출 및 자막 문자 복호화 등을 이용한 자동 색인 기법을 이용할 뿐만 아니라 수작업으로 시간 위치를 정확하게 교정하고 설명문을 덧붙여 획득한 하이라이트 정보(216)를 비디오 스트림에 정교하게 연관되도록 한다.
주색인기(208)(및 참조번호(210))는 새로운 하이라이트에 대한 부가적인 설명을 만든 후, 사용된 하이라이트 템플릿의 하이라이트 계층에서 하이라이트 주제에 따라 미리 정해진 적절한 위치에 새로운 하이라이트를 삽입한다. 이렇게 생성된메타데이터는 확장성 생성 언어(eXtensible Markup Language; 이하 XML로 명명함)를 사용하여 표현할 수 있다. 생성된 하이라이트 계층구조, 즉 메타데이터는 XML 방식에 기반한 TV-Anytime 또는 MPEG-7 공개 국제 표준 또는 멀티미디어 서술에 관한 사유형식으로 표현될 수 있다.
실시간 색인기로부터 얻어진 하이라이트에 관한 메타데이터는 다음과 같은 다양한 "전달 모드(delivery mode)"로 DVR에 전달된다.
가) 점진적 전달(Incremental delivery): 가장 최근에 새로이 획득 및 정교화된 하이라이트에 대한 메타데이터를 전달한다.
나) 주기적 점진적 전달(Periodic incremental delivery): 균일한 시간 간격에 맞추어 최종적으로 저장 및 전달 된 하이라이트 이후에 새로이 획득 및 정교화된 하이라이트에 대한 메타데이터를 전달한다.
다) 주기적 전달(Periodic delivery): 균일한 시간 간격에 맞추어 가장 최근의 정보를 포함하는 완전한 전체 메타데이터를 전달한다. 즉, 현재까지의 전체 메타데이터를 반복적으로 전달한다.
라) 일회성 전달(One time delivery): 방송 프로그램이 끝난 후 즉시 완전한 전체 메타데이터를 전달한다.
마) 지연된 1회 전달(Delayed one time delivery): 방송 프로그램의 종료 시점으로부터 일정한 시간 후에 전체 완전한 메타데이터를 전달한다. 이 모드는 실시간 서비스를 지원하지 않는다.
바) 요구 전달(Delivery on request): DVR 사용자로부터 요구가 있을 때 완전한 메타데이터를 전달한다. 이 모드는 색인 측과 DVR 클라이언트 사이에 양방향 선로가 있을 때 적용 가능하다.
메타데이터의 전달 경로는 크게 두 가지로 분류된다. 첫째 디지털 방송의 경우, 방송되는 비디오 스트림을 메타데이터와 함께 전달하기 위하여 메타데이터를 방송국 (예를 들어, 참조번호(102))에 있는 컨텐츠 가이드 서버(Content Guide Server)(도시하지 않음)로 보내는 것이다. 둘째, 상향채널 데이터 망을 통하여 시청자의 DVR로 메타데이터를 전달하는 것이다. 각 전달 경로에 대해서 메타데이터는 상술한 전달 모드에 따라 DVR에 전달될 수 있다.
도 2의 실시간 색인기는 도 3, 3a, 3b, 3e, 4 및 5에 더욱 자세히 설명된다. 또한, 주색인기(208)는 도 3, 3a, 3b 및 3e에 더 자세히 설명되며, 하이라이트 표시기(206)는 도 4에 자세히 설명된다.
디지털 소스 주색인기(Main Indexer for Digital Source)
도 3은 디지털 방송 비디오 소스(320)를 처리하기 위한 다양한 하드웨어 장치와 "인덱싱 마스터(indexing master)"(304)(도 5)를 포함하는 주색인기(302)(도 2의 참조번호(208, 210)에 해당함)의 예시적인 구성을 나타낸다. 획득한 하이라이트의 정교한 색인화를 위해서 방송 디지털 스트림(320)을 인덱싱 마스터(304)의 영구 저장소에 저장한다. 만약 방송 디지털 스트림(320)이 스크램블(scramble)되어 있으면 디스크램블러(descrambler)(307)를 사용한다.
생방송 중에 빠른 메타데이터 서비스를 제공하기 위해서는 방송 프로그램에 동기화된 시간 기준 색인을 갖는 메타데이터를 생성하는 것이 중요하다. 이것은 MPEG-2의 경우 PCR(program clock reference)과 PTS(presentation time stamp) 같은 시간 정보가 방송 비디오 스트림(320) 내에 있기 때문에 가능한 것이다. 또 다른 방법으로는 방송시간(broadcasting time)이 방송 스트림에 포함되어 주기적으로 전송되기 때문에 이를 이용하여 인덱싱 마스터(304)와 도 2의 참조번호(206)에 해당하는 하이라이트 표시기(314)를 동기화할 수 있다.
스트림 파서(stream parser)(305)는 방송시간을 방송 디지털 스트림으로부터 추출하고 그 방송시간으로 인덱싱 마스터(304)의 시스템 시계를 맞춘다. 방송시간은 고도화 텔레비전 시스템 위원회(Advanced Television System Committee; 이하 ATSC라 명명함)에서 정의한 STT(system time table)를 포함하는 트랜스포트 스트림 패킷으로부터 추출되거나 디지털 비디오 방송(Digital Video Broadcasting; 이하 DVB라 명명함)에서 정한 TDT(time date table)를 포함하는 트랜스포트 스트림 패킷으로부터 추출될 수 있다. STT/TDT를 위한 트랜스포트 스트림 패킷은 ATSC나 DVB 표준에 정의된 바와 같이 스크램블되지 않아야 한다. 하이라이트 표시기(314)의 시스템 시계를 인덱싱 마스터(304)의 시스템 시계와 동기화하기 위하여 인덱싱 마스터(304)의 시스템 시계의 시간을 주기적으로 하이라이트 표시기(314)로 전달한다. 따라서, 하이라이트 표시기(314)는 하이라이트 이벤트와 이에 해당하는 방송시간(주색인기(302)와 동기화되어 있음)을 포함하는 메시지를 생성한다.
다른 한편으로 방송시간을 하이라이트 표시기(314)에 전달하는 대신에, 하이라이트 표시기(314)로부터 메시지를 전달받은 인덱싱 마스터(304)가 시간 오프셋을 가감함으로써 메시지에 포함되어 전달된 지역시간(하이라이트 표시기의 시스템 시간)을 방송시간과 동기화하여 인덱싱 마스터(304)의 시스템 시간으로 교정할 수 있다. 시간 차이 값은 메시지에 포함된 하이라이트 표시기(314)의 지역 시간과 인덱싱 마스터(304)의 현재시간으로부터 계산된다.
디지털 소스(320)는 일반적으로 생방송 스트림이거나 디지털 테이프 장치(digital tape deck)의 출력이다. 디지털 소스는 디지털 자막 복호기(closed-caption decoder)(308)로도 입력되어 디지털 자막 복호기(308)가 자막 문자를 디지털소스(320)로부터 추출하고, 획득된 하이라이트와 자막문자가 자동적으로 연계되도록 하는 인덱싱 마스터(304)로 추출된 자막 문자를 전달한다. 만약 특정 설명을 덧붙이고자 할 때 자막문자 기능이 제공되지 않으면, 획득된 하이라이트에 대한 문자기반의 설명을 운영자가 입력할 수 있다.
인덱싱 마스터(304)의 기능 중 하나는 하이라이트 표시기(314)에 의해 제공된 하이라이트에 대한 작업을 하면서 비디오의 임의의 세그먼트를 반복적으로 재생한다는 것이다. 예를 들어, 하이라이트 표시기(314)의 운용자가 하이라이트를 표시하기에 너무 바빠 결정적인 순간(다른 하이라이트)을 획득하지 못할 수도 있다. 분명히 이렇게 놓친 순간은 그 순간을 포함하는 비디오 세그먼트를 다시 재생하지 않고는 찾을 수 없을 것이다. 비디오 스트림의 임의의 부분을 재생하기 위한 이런 임의 접근을 이루는 한 방법은 인덱싱 마스터(304)의 저장소에 저장된 비디오 스트림을 직접 사용하는 것이다. 특정 비디오 세그먼트에 대한 재생 요청을 받은 인덱싱마스터(304)는 저장된 디지털 스트림을 살펴보고 요구된 비디오 세그먼트에 대한 상대 접근 지점을 얻는다.
인덱싱 마스터(304)에 의해 생성된 메타데이터는 도 1a 및 1d에서와 같이 사용자 장치(122)로 전달되거나 도 1b 및 1c에서와 같이 방송국으로 전달된다.
디지털 소스 부호 변환기를 갖는 주색인기(Main Indexer with a Transcoder for Digital Source)
도 3a는 디지털 비디오 소스(320)를 처리하기 위한 다양한 하드웨어 장치 뿐 아니라 인덱싱 마스터(304) 및 부호 변환기(transcoder)(311)를 포함하는 주색인기(302a)의 또 다른 예시적인 구성에 대한 블록도이다.
도 3에서 도시하고 상술한 바와 같이, 디지털 소스(320)는 주색인기(302a)에 직접 적용할 수 있다. 그러나, 실용적인 목적에서 디지털 소스(320)는 부호 변환기(311)를 통하여 저 비트 율(low bit rate)의 스트림으로 변환한다. 예를 들어, 만약 디지털 소스가 고화질 TV(HDTV)와 같은 고 비트 율(high bit rate)의 스트림이면 이 스트림을 처리하기 위하여 인덱싱 마스터(304)는 높은 사양의 성능의 갖고 있어야 한다. 따라서, 일반적으로 개인용 컴퓨터(PC)로 구성될 인덱싱 마스터(304)를 위해서 고 비트 율의 스트림은 부호 변환기(311)를 통하여 저 비트 율의 스트림으로 변환된다.
디지털 소스를 위한 STB와 PC를 이용한 주색인기 구현(Main Indexer Implemented with STB and PC for Digital Source)
도 3b는 인덱싱 마스터(304) 뿐 아니라 디지털 비디오 소스(320)를 다루는 여러 가지 하드웨어 장치를 포함하는 주색인기(302b)의 또 다른 예시적인 구성의 블록도이다. 주색인기(302b)는 3 개의 하위 시스템으로 구성된다. 즉, STB(370), 비디오 부호기(video encoder)(310), 및 PC에서 동작하는 인덱싱 마스터(304)로 구성된다.
도 3에 도시하고 상술한 바와 같이, 주색인기(302b)는 직접 디지털 소스(320)를 이용할 수 있다. 하지만 실질적으로 스크램블된 원본 방송 스트림의 직접적인 접근을 피하기 위해, 디지털 소스(320)는 STB(370) 내의 비디오 복호기(decoder)(327), 디지털-아날로그 변환기(DAC)(379), 비디오 부호기(310)를 사용하여 재부호화된다. 더구나, 재부호화 시에 저 비트 율을 사용하면 인덱싱 마스터에서 적은 계산으로 색인 작업을 할 수 있다.
영상 획득 장치(capture)/디지털화기(digitizer)와 비디오 압축기(encoder)를 포함한 비디오 부호기(310)는 아날로그 소스(309)를 디지털 형식인 ASF, MPEG-1, MPEG-2 등으로 변환하는 과정과 디지털 스트림 결과를 획득된 하이라이트의 정교한 색인화를 위해 인덱싱 마스터(304) 내의 영구 저장소에 저장하는 역할을 담당한다.
방송 스트림을 재부호화하기 위해 디지털 소스(320)를 비디오 복호기(327)와디지털-아날로그 변환기(DAC)(379)에 의해 아날로그 신호로 변환할 때 트랜스포트 스트림 내의 방송시간이 손실된다. 이 경우, 부호기(310)는 스트림 파서(305)를 통해 추출한 방송시간을 재부호화하는 스트림 안에 삽입할 수도 있다.
또 다른 방편으로써, 부호화기는 인덱싱 마스터(304)에 저장된 스트림의 시작점에 해당하는 방송시간을 부호화 시작시간으로 이용할 수 있다. 하지만 이러한 방법은 부호화를 요청하여 부호화기에서 부호화를 시작하는 데 있어서 부호화기의 초기화와 부호화 지연에 따른 시간 지연(일반적으로 수 초 이상 걸림)이 발생하기 때문에 정확하지 않다는 단점이 있다.
따라서 대안으로 본 발명에서는 패턴 발생기(pattern generator)(326)를 활용한다. 패턴 발생기(326)는 STB(370)에 구현된 소프트웨어 모듈이다. PC(인덱싱 마스터(305))와 STB(370)는 제어선(control line)(380)을 통해 통신한다. 인덱싱 마스터(304)는 패턴 발생기가 방송시간과 방송되는 프로그램의 채널 번호 등을 나타내는 색 패턴(color pattern) 또는 문자 패턴을 생성하도록 신호를 보낸다. 이후 패턴 발생기(326)는 스트림 분석기(305)로부터 얻은 방송시간을 포함한 프로그램 정보에 대한 색 패턴 혹은 문자 패턴을 발생시킨다. 생성된 패턴은 출력 버퍼(378) 내에서 비디오 시그널 위에 오버레이(overlay)된다. 외부 비디오 부호기(310)는 DAC(379)의 출력인 패턴이 오버레이된 아날로그 비디오 신호를 부호화하고, 인덱싱 마스터(304) 안의 저장소에 파일로 저장한다. 인덱싱 마스터(304)는 방송시간 기반의 색인화를 목적으로 저장된 비디오 파일을 읽는다.
방송 스트림을 시간소인(time-stamping)하는 특정 목적을 위해, 인덱싱 마스터(304)는 패턴 발생기(326)에게 스트림 분석기(305)로부터 출력되는 방송시간에 해당하는 인위적인 시각 패턴을 발생하도록 요청한다. 그러면, 패턴 발생기(326)는 시간 정보의 숫자를 색 부호화(color-coded)하여 시각적으로 보여주는 색 패턴을 생성한다. 생성된 패턴은 출력 버퍼(378)로 전달되어 복호화된 비디오 프레임에 오버레이되어 표시된다. 스트림 분석기의 출력과 오버레이 사이의 시간 지연은 무시할 수 있을 정도로 작다. 따라서 패턴이 오버레이된 스트림은 DAC(379)에 의해 아날로그로 변환되고, 이 아날로그 신호는 비디오 부호기(310)에 의해 다시 디지털 스트림으로 재부호화 된다. 인덱싱 마스터(304)는 인덱싱 마스터에 저장되어 있는 재부호화된 파일의 특정 프레임에 대한 방송시간을 색 패턴을 분석함으로써 얻어 낼 수 있다. 이러한 방식을 통하여 색인화될 저장된 스트림의 미디어시간을 방송시간과 연계할 수 있다.
패턴 발생기(326)는 부호화의 시작시각과 종료시각 사이에서 패턴(예를 들면 색 패턴)을 발생한다. 인덱싱 마스터의 시스템 시간은 방송시간과 동기화되어 있기 때문에, 패턴은 인덱싱 마스터의 특정 시스템 시간 즉 특정 방송시간에 단 한번만 발생하여 사용할 수도 있다. 이 방송시간을 "인덱싱 마스터의 시스템 시간으로 표현된 참조점(reference_point s )"이라고 한다. 또한, 저장된 파일에서 인덱싱 마스터의 시스템 시간으로 표현된 참조점에 해당하는 미디어시간(media time)은 "미디어시간으로 표현된 참조점(reference_point m )"이라고 한다. 저장된 디지털 스트림의 미디어시간으로 표현된 참조점은 발생된 패턴을 포함하고 있는 프레임에 대한 PTR또는 PCR의 값으로부터 얻을 수 있다. 패턴은 정확성을 높이기 위해서 더욱 자주 발생 될 수 있으며 그 예로써 패턴이 주기적으로 발생 될 수 있다.
도 3c에서는 구조화된 색상 블록(structured color block), 즉 색상 코드(color-code)를 이용하여 발생된 예시적인 패턴을 보인다. 여기서 각 블록은 같은 색상의 화소로 구성되어 있다. 색상 코드는 헤더(360)와 페이로드(362)로 구성되어 있으며, 헤더(360)는 싱크 블록(sync block)과 싱크 종료 블록(sync end block)을 갖고 있다. 싱크 블록과 싱크 종료 블록은 오버레이된 비디오 프레임으로부터 구조화된 색상 코드를 쉽게 찾기 위한 것이다. 구조화된 색상 코드의 페이로드(362)는 오버레이된 프레임이 방송되는 그 시점의 방송시간과 채널 번호를 나타낸다. 또한 페이로드(362)에는 방송시간과 채널 번호 외에 프로그램의 제목과 그 밖의 정보를 포함할 수도 있다. 각 블록에 대한 색상 코드 값은 숫자를 의미하고 다음과 같이 정의된다.
여기서 b는 사용되는 색의 수를 결정하는 비율(scale factor)이고, c[k]는 대응되는 화소의 색상 요소(color component) 값이다. 예를 들면, k 값이 0, 1, 2일 때 c[k]는 각각 적(R) 녹(G), 청(R)의 색상 요소 값이다. 그러나 보통 의도한 색상 코드가 화면에 오버레이되고 부호화된 후 복호화될 때 원래의 값과 달라지는 색상 왜곡이 존재한다. 따라서 이러한 색상 왜곡을 보상하기 위한 색상 교정이 필요하다. 하나의 구현 예로 색상 교정 함수는 다음과 같이 정의 될 수 있다.
R'= f(R, G, B,alpha),
G'= f(R, G, B,beta),
B'= f(R, G, B,gamma),
여기서, R, G, B는 측정된 화소의 색상 값이고, R', G', B'는 해당 화소의 교정된 색상 값이다. 알파(alpha), 베타(beta), 감마(gamma)는 경험적으로 정해지거나 혹은 교정을 위한 색상 패턴 실험을 통해서 자동으로 정해지는 매개 변수 값이다
하이라이트 표시기로 표시된 방송시간과 인덱싱 마스터에 저장된 디지털 스트림의 동기화(Synchronization of a Stored Digital stream to be Indexed with Highlight Marker)
하이라이트 표시기(314)는 자신의 로컬 시스템 시간(즉, 방송시간)에 따라 획득된 하이라이트의 시작시간 정보를 기록한다. 이 시간을 방송 스트림에 대한 "하이라이트 표시기의 시스템 시간으로 표현된 표시시작점(mark_in_point s )"이라고 한다. 획득한 하이라이트의 시간 정보를 인덱싱 마스터(304)에서 수작업으로 조정하여 정교한 색인을 하기 위해서, 인덱싱 마스터에 파일 형태로 저장된 비디오 스트림에 대한 해당 위치의 미디어시간을 얻는 것이 중요하다. 이 시간, 즉 방송 스트림의mark_in_point s 에 대응하는, 저장된 파일 내의 위치를 "미디어시간으로 표현된 표시시작점(mark_in_point m )"이라고 한다. 인덱싱 마스터는 방송 스트림을 직접다루지 않고 자신의 내부 저장소에 저장된 디지털 비디오 스트림을 다루기 때문에,mark_in_point s 값은 대응되는mark_in_point m 값으로 변환되어야 한다. 뿐만 아니라mark_in_point m 값을 정확하게 교정한 후에, 역으로 교정된mark_in_point m 에 해당하는 방송시간(즉, 교정된mark_in_point s 값)을 얻는 것 또한 매우 중요하다. 왜냐하면 본 발명에서 메타데이터 내의 모든 시간 정보는 방송시간에 따라 표현되기 때문이다.
도 3d는 하이라이트 표시기와 인덱싱 마스터의 시스템 시간과 저장된 디지털 스트림에서의 대응되는 미디어시간과의 차이에 대한 관계를 보인다. 여기서 간략히 설명하기 위하여 하이라이트 표시기의 시스템 시간은 인덱싱 마스터의 시스템 시간과 동기화되어 있다고 가정한다.reference_point s 와 이에 해당하는reference_point m 을 이용하면 저장된 비디오 스트림에 대한 미디어시간 또는 프레임 오프셋 값은 하이라이트 표시기의 대응하는 시스템 시간으로부터 얻을 수 있으며, 그 반대의 경우도 마찬가지이다. 예를 들어,mark_in_point s 가 주어지면 그에 해당하는mark_in_point m 은 다음과 같은 수학식에 의해 얻어진다.
mark_in_point m = reference_point m + (mark_in_point s - reference_point s )
마찬가지로,mark_in_point m 이 주어지면 그에 해당하는mark_in_point s 도 역시 다음 식에 의해 얻어진다.
mark_in_point s = reference_point s + (mark_in_point m - reference_point m )
아날로그 소스 분석을 위한 주색인기(Main Indexer for Analog Source)
도 3e는 인덱싱 마스터(304)를 포함하는 주색인기(302e)와 아날로그 비디오 소스를 다루는 여러 가지 하드웨어 의 예시적인 블록 구성도를 나타낸다.
아날로그 소스(신호)(318)를 다루는 경우, 본 발명의 기술은 매우 권장 할 만하며, 한 예로 미국 특허 번호 6,360,234("Jain")의 도 4에서 설명하는 방법 보다 더 권장할 만하다. Jain의 특허에서는 아날로그 소스(318)가 바로 인덱싱 마스터(304)로 직접 입력됨을 알 수 있다. 이러한 직접적인 데이터 경로는 도 3e에서 보여 진 것과는 다르다. Jain의 경우와 같은 기존의 구성에서는 오디오 비디오 캡쳐/디지털화 보드(the audio/video capture/digitizer board)는 인덱싱 마스터(304)내에 존재하고, 디지털화된 비디오 프레임이 색인화를 위해 이용된다. 결론적으로 Jain의 구성에서는 캡쳐 기능을 지원하는 사유 애플리케이션 프로그램 인터페이스(application program interfaces; APIs) 뿐만 아니라 도 4의 목록 편집 워크스테이션(video cataloger workstation)(111)내에 부가적인 캡쳐 보드가 필요하다. 더불어 압축 부호화되지 않은 디지털 프레임이 색인화를 위해 이용될 경우,이들은 저장된 압축 부호화된 비디오와 동기되어야 한다. 그러므로 색인을 위해서는, 인덱싱 마스터(304)의 내부 저장소에 저장된 부호화된 스트림을 이용하는 것이 바람직하다.
본 발명의 생방송에 대한 빠른 메타데이터 서비스의 가장 중요한 특징 중 하나는 방송 프로그램의 방송시간과 동기화되는, 방송시간을 사용하는 색인을 갖는 메타데이터를 생성하는 것이다. 예시적인 구성도인 도 3e에서 주색인기(302e)는 아날로그 자막 복호기(analog closed-caption decoder)(306), 비디오 부호기(310), 인덱싱 마스터(304) 및 패턴 생성기(326)로 구성되며, 패턴 생성기(326)는 아날로그 패턴을 생성하여 비디오 신호와 혼합하기 위해 아날로그 믹서(328)에 전송한다. 상술한 모듈은 도 3b의 대응 모듈과 똑같은 기능을 수행한다. 아날로그 방송의 경우 아날로그 소스(318)는 방송시간을 갖지 않는다. 따라서 아날로그 방송의 경우는 주색인기(302e)와 하이라이트 표시기(314)를 방송시간으로 동기화시키기 위해서 원격 시간 서버를 이용한다. 결국 방송시간을 나타내는 참조시간(322)은 원격 시간 서버로부터 얻을 수 있으며, 이는 보통 NTP(network time protocol)라 불리는 인터넷 표준 프로토콜에 기반한다. 원격 시간 서버는 정확한 타임을 요청하는 하이라이트 표시기(314)(도 2에서 참조번호(206)에 해당)와 인덱싱 마스터(304)사이의 정확한 동기화를 보장한다.
하이라이트 표시기(Highlight Marker)
도 4는 하이라이트 표시기(highlight marker)(402)(도 2, 3, 3a, 3b, 3e의 참조번호(206, 314)에 대응)의 예시적인 구조를 나타낸다. 하이라이트 표시기(402)는 도 2의 실시간 색인기(202)의 간략한 색인화 모듈 기능을 한다.
부가적인 자막 문자 관리자 모듈(404)은 자막 복호기(422)로부터 실시간으로 자막 문자를 받아 화면에 출력함으로써, 운용자가 현재의 하이라이트에 대한 문자 정보를 하이라이트 표시기의 문자 입력 창에 간단한 복사 및 붙여놓기(copy-and-paste)를 수행하여 입력할 수 있게 한다. 또한 자막 문자 관리자(404)는 자막 문자로부터 자동적으로 키워드를 추출해내어 키워드 사전에 저장할 수 있으며, 이는 템플릿 관리자(418)와 공동으로 관리된다. 운용자는 이렇게 생성된 키워드 사전에 접근하여 다양한 키워드를 참조할 수 있다.
시계(406)는 도 3e의 아날로그 방송일 경우 원격 시간 서버에 의해 주기적으로 조정된다. DVB와 ATSC와 같은 디지털 방송의 경우에는 현재 방송시간을 나타내는 시스템 시간이 주기적으로 방송된다. 그리고 이 시스템 시간은 인덱싱 마스터에서 복호화 되어 시계(406)를 조정하기 위해 하이라이트 표시기로 전달될 수 있다.
GUI 입력(410)은 손쉬운 작업을 통해 다양한 입력을 받을 수 있도록 하는 그래픽 환경을 제공하며, GUI 갱신(408)은 다양한 GUI객체를 빨리 갱신할 수 있도록 하는 모듈이다.
하이라이트 표시 출력(414)은 운용자가 표시된 하이라이트를 보내기로 결정할 때 실시간 메타데이터(간략히 색인된 하이라이트)를 도 2에 나와 있는 주색인기(208)로 보내는 모듈이다. 도 2의 주색인기(208)로 보내지는 메타데이터의예시적인 메시지 형식은 도 4a와 같다.
도 4a로 표현되는 예시적인 메시지 형식은 4 개의 층으로 즉, 첫 번째 층(452), 두 번째 층(454), 세 번째 층(456), 및 네 번째 층(458)으로 이루어져 있다. 첫 번째 층은 메시지 헤더 필드(460), 본체 길이 필드(462), 그리고 메시지 본체 필드(464)로 이루어져 있다. 메시지 헤더 필드(460)는 보내지는 메시지의 유형을 나타낸다. 이때 메시지의 유형은 "연결 검사(Check Connection)" 및 "하이라이트 전송(Send Highlights)" 등이 있다. 전자의 메시지 유형은 망을 통하여 도 2의 주색인기(208)의 정상 작동 상태를 검사할 때 사용되며, 후자의 메시지 유형은 메시지가 획득된 하이라이트에 대한 정보를 포함하고 있음을 나타낸다. 본체 길이 필드(462)는 메시지의 본체 필드(464)의 길이를 나타낸다. 메시지 본체 필드(464)는 두 번째 층(454)과 같이 네 부분으로 이루어져 있으며 이는 각각 시작시간 필드(466), 종료시간 필드(468), 하이라이트 필드(470), 및 주석 필드(472)이다. 시작시간 필드(466)와 종료시간 필드(468)는 각각 하이라이트 표시기에서 표시한, 하이라이트가 시작되는 표시시작점(mark_in_point s )과 그 하이라이트가 끝나는 표시종료점(mark_out_point s )을 나타낸다. 이 두 시간은 모두 하이라이트 표시기의 시스템 시간, 즉 방송시간으로 기록된다.
하이라이트 필드(470)는 세 번째 층(456)에서 나타나듯 두 가지 요소를 가지고 있다. 하이라이트 길이 필드(474)는 하이라이트 목록(highlight list) 필드(476)의 길이이다. 하이라이트 목록 필드(476)는 하나 혹은 그 이상의 하이라이트 주제(highlight theme) 필드(478)를 가진다. 각각의 하이라이트 주제 필드(478)는 4 개의 필드로 이루어져 있으며 ID 길이 필드(480), ID 필드(482), 값 길이 필드(484), 및 값 필드(486)이다. ID 길이 필드(480)는 ID 필드(482)의 길이를 나타낸다. ID 필드(482)는 하이라이트(예를 들어, ID_TOUCHDOWN)의 유형을 식별하기 위한 문자열을 포함한다. 값 길이 필드(484)는 값 필드(486)의 길이를 나타낸다. 값 필드(486)는 ID에 해당하는 문자열을 포함한다(예를 들어, "Touchdown"). 주석 필드(472)는 다시 주석 값 필드(490)의 크기를 위한 주석 길이 필드(488)와, 주석 문자열을 담기 위한 주석 값 필드(490)로 나누어진다.
도 4에서, 하이라이트 표시기 관리자(412)는 메시지를 조정하는 중요한 역할을 한다. 즉, 다양한 여러 모듈로부터 메시지를 받고, 메시지를 분석하여 여러 가지 지능적 결정을 하며, 메시지 내의 지시 사항을 수행하는 데 있어서 적합한 모듈로 메시지를 재전송하는 역학을 한다. 또한 하이라이트 표시기 관리자(412)는 도 2의 주색인기(208)의 IP 주소와 포트 번호 설정과 같은 망과 연관된 설정을 관리하는 역할도 한다. 그렇게 함으로써 하이라이트 표시기 출력 모듈(414)은 주색인기와 정확하게 통신을 할 수 있다. 하이라이트 표시 백업(416)은 예상치 못한 처리 오류에 대비해서 로컬 호스트 혹은 원격 서버에서 표시된 하이라이트를 백업하는 역할을 한다. 백업된 데이터는 하이라이트 표시기(402)의 우발적인 문제에 대비한다.
템플릿 관리자 모듈(418)은 색인할 스트림에 대응하는 적절한 하이라이트 템플릿을 읽어 들인다. 각각의 하이라이트 템플릿은 계층구조화 되어 있는 하이라이트 주제를 포함한다. 하이라이트 템플릿은 하이라이트 이벤트 템플릿과 하이라이트객체 템플릿 두 종류로 분류 될 수 있으며, 하이라이트 이벤트 템플릿은 개개의 장르(예를 들면, 미식축구 경기)에 적합한 중요한 하이라이트 이벤트를 정의한다. 반면에 하이라이트 객체 템플릿은 중요 물체(예를 들면, 스포츠 경기의 경우 경기에 참가한 선수 명단)의 목록을 보유한다. 색인화를 시작하기 전에, 템플릿 관리자(418)는 도 2의 하이라이트 템플릿 데이터베이스(212)로부터 선택된 템플릿을 읽어 들인다. 하이라이트 템플릿 데이터베이스(212)는 로컬 호스트 혹은 원격 서버에 상주한다. 또한 템플릿 관리자(418)는 하이라이트 표시기 운용자로 하여금 "하이라이트 주제 구조의 적당한 위치에 새로운 하이라이트 주제를 더하시오", "하이라이트 주제를 삭제하시오", "하이라이트 주제를 갱신하시오"와 같은 명령의 조합을 통해 템플릿을 편집/수정할 수 있도록 해준다. 편집/수정된 템플릿은 미래에 다시 사용하기 위해서 로컬 호스트나 원격 템플릿 서버에 저장해 놓을 수 있다.
EPG(electronic programming guide) 갱신 모듈(420)은 하이라이트 표시기에서 획득한 하이라이트를 외부에 있는 EPG 관리자(도시하지 않음) 또는 주색인기에 보내기 위해 "EPG 갱신"이라는 명령을 내릴 수 있다. "EPG 갱신" 명령에 대한 응답으로 EPG 관리자는 EPG 데이터베이스를 새로운 정보로 갱신할 것이다. 그러나 EPG 관리자에 의해 관리되는 EPG 정보는 종종 쓸모 없게 되거나 새로이 발생하는 상황과 일치하지 않을 수도 있다. 예를 들면, 야구 경기 방송이 연장전으로 넘어 갈 경우이다. 이미 공고된 프로그램 시간표와 일치하지 않는 이러한 예상치 못한 이벤트는 운용자의 색인화 작업 중에 즉각적으로 검출되거나 예측될 수 있으며, 이런 정보는 야구경기에 이어서 방송될 프로그램 시간의 재편성을 위해서 EPG 관리자로 보내질 수 있다.
하이라이트 표시기 내의 저장소(421)는 도 4의 자막 문자 관리자(404), 하이라이트 표시 출력(414), 하이라이트 표시 백업(416), 템플릿 관리자(418), 및 EPG 갱신(420)과 같은 모듈의 데이터를 저장하는 데 이용된다.
인덱싱 마스터(Indexing Master)
도 5는 (도 3, 3a, 3b, 3e의 참조번호(304)에 해당함) 인덱싱 마스터(502)에 대한 구조의 예시이다. 인덱싱 마스터는 도 2에서 실시간 색인기(202)의 주색인기(208 혹은 210)에 속하는 정교한 색인화 모듈이다. 여기서 색인할 디지털 스트림은 저장 시에 스크램블이 필요하다면 스크램블 되어서 저장소(531)에 저장된다.
하이라이트(highlight) 수신기 모듈(504)은 도 2의 하이라이트 표시기(206)에 대한 서버의 기능을 수행한다. 수신기 모듈의 주된 목적은 인덱싱 마스터(502)와 도 2의 하이라이트 표시기(206) 사이의 통신 채널을 감독하고, 하이라이트 표시기에서 획득한 모든 하이라이트를 오류 없이 수신하는 것이다. 하이라이트 수신기 모듈(504)과 도 2의 하이라이트 표시기(206) 사이의 연결 및 데이터 전송은 여러 가지 방법으로 구현될 수 있는데, 예를 들어 일반적으로 널리 알려진 통신 소켓(socket) 프로그래밍이 사용될 수 있다. 이와 같이 정확하게 수신된 하이라이트 정보는 좀 더 상세한 설명을 덧붙여 주는 것과 같은 추가적인 처리를 하기 위해서 주색인기 관리자(516)에게 전달된다.
오프셋 관리자(506)는 미디어시간을 방송시간과 동기시키는 역할을 한다(상술한 도 3d의 설명을 참조). 예를 들어, 아날로그 방송의 경우는 주기적으로 원격 시간 서버를 참조하여 내부 시계(510)를 맞출 수 있으며, DVB와 ATSC와 같은 디지털 방송의 경우는 현재 방송시간을 나타내는 시스템 시간이 방송 스트림 내에 포함되어 주기적으로 뿌려지고 있어 인덱싱 마스터에서 이를 복호화하여 시계(510)를 맞출 수 있다.
실시간 색인화 작업이 끝난 후에도 메타데이터를 수정할 필요가 있다. 이때 사용될 오프라인 메타데이터 파일은 메타데이터 적재 모듈(518)을 통해 인덱싱 마스터의 메모리로 간단하게 읽어 들일 수 있다. 더욱이 이러한 점에서 재방송되는 프로그램의 경우는 메타데이터 적재 모듈(518)이 유용하게 활용될 수 있다. 즉, 메타데이터 적재 모듈(518)이 이전에 생성된 메타데이터를 읽어 들이고 나면, 인덱싱 마스터는 읽어 들인 메타데이터의 시간 정보를 관련된 재방송 프로그램의 방송시간으로 변환한다. 이렇게 조정된 메타데이터는 앞에서 기술한 다양한 "전송 모드"로 DVR에 전달된다.
메타데이터 관리자(520)는 메타데이터의 출력과 클라이언트의 메타데이터 요청을 제어하는 소프트웨어 모듈이다. 일반적으로 메타데이터 관리자는 출력 요청을 받으면 그때 메모리 내의 모든 사용 가능한 메타데이터를 모으고 이렇게 수집된 메타데이터를 파일로 기록하거나 데이터 통신 채널로 내보낸다. 메타데이터는 주기적으로 출력될 수 있는데 그러한 경우 역시 메타데이터 관리자(520)는 명시된 시간간격에 정확히 전송되도록 일정관리를 해야 한다. 또한 메타데이터 관리자는 도 1a 및 1d의 상향채널(116)을 통해 수신된, 메타데이터에 대한 클라이언트의 요청도 처리한다. 다른 방안으로 메타데이터 관리자(520)는 인덱싱 마스터(502)의 외부에 위치할 수 있고, 이 경우 메타데이터에 대한 클라이언트의 요청을 처리하는 데 있어 통신망을 통해 인덱싱 마스터와 통신할 수도 있다.
EPG 갱신 모듈(515)은 운용자의 입력이나 하이라이트 표시기로부터 전송된 "EPG 갱신" 명령에 대하여, 외부에 있는 외부 EPG 관리자(도시하지 않음)에게 가장 최근의 EPG 정보를 포함하는 "EPG 갱신" 명령을 내릴 수 있다. 이러한 명령에 따라 EPG 관리자는 이 새로운 정보로 EPG 데이터베이스를 갱신할 것이다.
점선 안에 보여진 5 개의 핵심 구성요소는 통합된 실시간 비디오 색인화를 위해 제공된다. 5 개의 핵심 구성요소는 시각율동 발생기/관리(visual rhythm generator/management)(522), 미디어 복호기/재생기(media player)(524), 샷 경계 검출기(shot detector)(526), 하이라이트 트리 빌더(highlight tree builder)(528), 및 키프레임 목록 보기 모듈(key frame list view)(530)이다.
시각율동 발생기/관리 모듈(522)은 입력 부호화 비디오 스트림을 복호화하고 그것의 시각율동 표현을 만들기 위한 구성 요소이다. 시각율동은 비디오를 프레임 단위로 부표본화(sub-sampling)하여 비디오의 시각적 내용에 대한 정보를 가지고 있는 하나의 이미지이다. 시각율동은 특히 샷 경계 검출에 유용하다. 시각율동 이미지는 뚜렷이 구별되는 시각적 유형을 가진 길고 좁은 이미지 띠이며, 시각율동의 생성은 도 11a-11d와 관련하여 다음에 자세히 논의한다.
미디어 복호기/재생기 모듈(524)은 비디오 스트림의 분석과 사용자에 의해 명시된 비디오 세그먼트를 재생하는 것 뿐 아니라, 현재 방송되고 있는 스트림을 보여 주는 것을 담당한다. 이러한 재생기는 어떠한 비디오 형식도, 예를 들어 ASF, MPEG-1, MPEG-2, MPEG-4를 처리할 수 있다.
샷 경계 검출기 모듈(526)은 비디오 내용 중에 존재하는 샷 경계를 검출하는 소프트웨어 모듈이다. 이때 샷 경계에 의해 나누어지는 샷(shot)은 최소의 비디오 세그먼트로 간주되며 샷의 집합은 대개 특정 의미를 전달한다. 즉, 샷(샷의 집합)은 더 직관적이고 의미 있는 내용기반의 서술형 트리 구조를 구성하기 위한 기초 블록이다. 이를 검출하기 위해서는 임의의 샷 경계 검출 방법이 사용될 수 있으나, 본 발명에서는 "H. Kim, et al., Visual rhythm and shot verification, Multimedia Tools and Applications, Kluwer Academic Publishers, Vol.15, No.3 (2001)"에 발표된 논문의 방법이 바람직하다. 이 논문에는 시각율동의 정의와 역할 또한 상세히 기술되어 있다.
하이라이트 트리 빌더 모듈(528)은 사용된 하이라이트 템플릿 내의 범주화(categorization)된 하이라이트 주제의 목록에 따라 자동적으로 하이라이트 계층을 구성한다. 이때 범주화된 하이라이트 주제의 목록에서 하이라이트 주제 혹은 하이라이트 주제 범주(category)/부범주(subcategory)는 색인화 과정 전에 미리 준비되거나 혹은 색인화가 진행되는 도중에 동적으로 목록에 추가될 수 있다. 전자의 경우, 즉 미리 준비되는 경우 인덱싱 마스터(502)는 하이라이트 템플릿 데이터베이스에 미리 정의된 하이라이트 주제 범주/부범주에 따라 사전에 모든 하이라이트 주제를 만든다. 반면 동적 생성은 하이라이트 주제를 수행 시간 동안에 필요할 때마다 새로 만들어서 존재하는 템플릿에 추가한다. 일반적으로 하이라이트 주제 범주/부범주 분류는 장르에 따라 혹은 게임에 따라 다르며, 더욱이 스포츠 게임의 경우 참여하는 선수의 명단 역시 항상 변할 수 있어 효율적인 실시간 색인화를 위해서는 이런 종류의 데이터를 사전에 몇 가지의 "하이라이트 템플릿"으로 정의하여야 한다. 템플릿 관리자(508)는 새 템플릿 만들기, 기존 템플릿 지우기, 템플릿을 메모리로 적재하기, 그리고 하이라이트 템플릿 요소의 추가, 삭제 및 변경에 의한 템플릿 갱신하기를 포함하는 템플릿과 연계된 다양한 일을 수행하기 위하여, 하이라이트 수신기(504)를 통하여 도 2의 하이라이트 표시기(206) 혹은 하이라이트 템플릿 데이터베이스(212)와 통신한다.
키프레임 목록 보기 모듈(530)은 현 범주 노드의 하위에 있는 모든 키프레임을 보여주고 관리한다. 각각의 표시된 하이라이트는 키프레임으로 불리는 하나의 대표 이미지와 연관되며, 하이라이트 내의 임의의 프레임이 키프레임으로 선택될 수 있다. 이러한 키프레임을 보면서 사용자는 각각에 대하여 설명을 넣을 수도 있고 혹은 그에 대응되는 비디오 세그먼트를 재생할 수도 있다. 따라서 내용에 대한 목록을 만드는 동시에 하이라이트 세그먼트에 대한 주석이나 특정한 일을 수행시키는 버튼 클릭과 같은 작동을 통하여 인덱싱 마스터(502)에 다양한 데이터를 입력한다. 이러한 사용자의 입력은 GUI 입력(514)을 통해 받아지며, GUI 갱신(512)은 화면 갱신을 요구하는 GUI 객체(object)를 자동적으로 검출하고 가장 최신의 정보를 이용해 이 객체를 화면에 디스플레이 한다.
주색인기 관리자 모듈(516)은 관련된 여러 모듈간의 정보(메시지, 신호, 데이터)를 교환하는 중앙 허브(hub) 기능을 수행하며, 특정 모듈에서 오는 모든 메시지를 수집하고 내부의 의사 결정 논리를 통해 정확한 목표 모듈로 메시지를 보낸다. 예를 들어 주색인기 관리자(516)가 하이라이트 수신기(504)로부터 간략한 하이라이트 정보를 받으면 주색인기 관리자(516)는 정보를 분석하고 시각율동 발생기/관리 모듈(522), 키프레임 목록 보기 모듈(530), 하이라이트 트리 빌더 모듈(528)에 그 정보를 보낸다. 이때 시각율동 발생기/관리 모듈(522)은 시각율동 상에서 하이라이트의 위치를 표시하기 위해서 받은 정보를 사용할 수 있다. 또한 키프레임 목록 보기 모듈(530)은 주어진 하이라이트와 관련된 키프레임을 보여 주고, 하이라이트 트리 빌더(528)는 생성된 하이라이트 계층구조의 적절한 위치에 하이라이트를 자동적으로 배치할 수 있다.
EPG를 이용한 메타데이터 서비스(Metadata Service Using EPG)
본 발명의 목적은 NTP 값을 이용 할 수 없을 때 방송시간 또는 동등한 시간을 기반으로 디지털 TV 방송 프로그램을 색인화하는 데 있다. 상술한 바와 같이 TV 방송 프로그램에서의 미디어시간이라는 개념의 모호성을 극복하기 위해, 방송시간을 색인화에 이용한다. 또한 방송시간은 임의의 참조시간과 참조시간을 토대로 계산된 상대 시간의 합으로 표현될 수도 있다. 그러므로, 만약 각각의 방송 프로그램에 대한 참조 시작시간을 안다면, 참조 시작시간을 토대로 계산된 미디어시간은 미디어 스트림의 위치를 나타내는 데 사용 될 수 있다. 대화식 네트워크 또는 방송망을 통해 전달되는 EPG는 이러한 목적을 위해 활용된다. EPG는 방송 프로그램의 방송 시작점과 종료점을 명시하므로, EPG에 의해 명시된 각 방송 프로그램의 시작시간을 토대로 미디어시간을 계산해낼 수 있다. 이렇게 각 프로그램에 대한 시작시간은 미디어시간을 측정하기 위한 가상의 참조시간 점에 불과하기 때문에, 예기치 않은 방송 스케줄의 변화와 같은 다양한 이유로 EPG의 특정 방송 시작시간과 종료시간이 부정확하여도 문제가 되지 않는다. 단 색인화 시스템과 DVR은 항상 동일한 프로그램에 대해서 같은 참조 시작시간을 이용하여야 한다. 반면에, 이미 방영된 프로그램이 색인화되어 있을 경우 메타데이터의 참조시간은 EPG 갱신 모듈(420 또는 515)을 통해서 수정될 수 있다. 만약 NPT 값 또한 방송된다면, NPT 값은 방송시간 대신 메타데이터를 생성하는 데 직접적으로 이용될 수 있다. 역으로 방송시간은 대응되는 NPT값으로 변환 될 수도 있다.
저작권과 상표권에 관한 코멘트(Copyright and Trademark Notice)
본 발명을 이용하여 색인화될 수 있는 비디오 프로그램 종류의 한 예로 미식축구 게임이 사용되나, 출원자는 북아메리카 프로 미식축구 리그(National Football League, 이하 NFL로 칭함) 혹은 NFL의 선수 중 어느 누구와도 아무런 관련이 없으며, NFL 혹은 선수의 상표권과 저작권 모두를 존중한다. 더욱이 비록 본 발명이 미식축구 게임의 내용으로 설명되어지지만 연극 공연, 뉴스 등 어느 종류의비디오 프로그램에 대해서도 적용 가능하다.
하이라이트 템플릿(Highlight Templates)
도 6a, 6b, 6c는 도 2의 하이라이트 템플릿 데이터베이스(212)에 있는 미식축구 경기를 위한 3 가지의 전형적인 하이라이트 템플릿을 보여준다. 예를 들어, 하이라이트 템플릿은 하이라이트 이벤트 템플릿과 하이라이트 객체 템플릿으로 구분할 수 있다. 하지만, 템플릿의 종류는 여러 방법으로 세분화 될 수 있다. 운동 경기에서, 하이라이트 이벤트는 게임 내의 중요한 움직임 또는 활동(예를 들면, "Touchdown", "Field goal", "Penalty", "Extra point")과 관계가 있는 반면, 하이라이트 객체는 경기에서 눈에 띄는 역할을 한 선수와 직접적으로 관련된다. 하이라이트 이벤트 또는 객체 템플릿은 하이라이트의 내용에 관한 키워드의 목록이며 그 내용은 장르와 경기에 따라 다양하다.
도 6은 미식축구 경기에 대한 하이라이트 이벤트 템플릿(602), San Francisco 49ers와 Minnesota Vikings 미식축구 팀의 출전 선수에 대한 2 개의 하이라이트 객체 템플릿(604, 606)을 각각 보여준다. 하이라이트 이벤트 템플릿(602)에는, "Field goal", "Touchdown", "Extra point", "Two point conversion", "Long run", "Long pass", "Intercept", "Big hit", "Defensive pass interference", "Holding", "Offside", "Penalty", "Unsportsmanlike conduct"와 같은 13 개의 하이라이트 이벤트 주제(혹은 키워드)가 있다. 처음 4 개의 하이라이트 이벤트는"Scoring"으로 분류하고, 나머지 이벤트는 "Feature plays"로 분류된다. 더 분류하면, "Scoring"은 "extra point"와 "two point conversion"을 포함하는 "point after"라는 제목의 하위 범주를 갖는다. "Feature plays" 범주 또한 각각 주요 이벤트 주제를 갖는 "big gains", "interceptions", "big hits", "big penalties"라는 4 개의 하위 범주를 갖는다. 따라서, 하이라이트 이벤트 템플릿(602)은 미식축구 경기에 대해 분류된 하이라이트 이벤트 주제의 목록을 제공한다.
유사하게, San Francisco 49ers와 Minnesota Vikings를 위한 하이라이트 객체 템플릿(604, 605)은 "SF 49ers"라는 범주에 7명, "MN Vikings"라는 범주에 9명의 유명 선수가 존재한다. 이러한 미식축구 경기의 하이라이트 객체 템플릿에서 선수 이름은 하이라이트 객체의 주제가 된다. 하이라이트 객체 템플릿(604, 606)은 미식축구를 위해 2 개의 분류된 하이라이트 객체 주제 목록을 제공한다. 템플릿(604, 606)에 있는 선수는 "offense", "defense", "Special Team"이라는 표제로 분류될 수 있고, 제한된 화면 공간에서 중요 순서도에 따라 표시될 수 있다(이때 목록의 항목을 보기 위해 스크롤바(scroll bar)가 필요할 수 있다).
하이라이트 계층구조(Highlight Hierarchy)
도 7은 도 5의 하이라이트 트리 빌더(528)에 의해 자동으로 생성되는 전형적인 하이라이트 계층구조(highlight hierarchy)이며, 하이라이트 표시자에 의해 획득된 하이라이트와 하이라이트 계층 구조와의 관계를 보여준다. 하이라이트 계층구조(700)의 단말 노드(leaf node)는 획득된 하이라이트 인스턴스(highlight instance)를 나타내며, 내부 노드(non-leaf node)는 단말 노드가 속하는 하이라이트 이벤트 또는 객체를 나타낸다. 이로 인해 하이라이트 계층구조는 중요한 미식축구 이벤트, 그 이벤트에 관련된 선수, 그리고 중요한 순간의 슬로우 모션, 멋진 장면의 리플레이 등과 같은 내용을 빠르고 간결하게 다양한 관점으로 볼 수 있게 해준다. 하이라이트 계층구조의 모양과 깊이는 사용된 하이라이트 템플릿에 의해 결정된다. 미식축구 하이라이트 계층구조(700)는 도 6의 3 개의 하이라이트 이벤트와 객체 템플릿에 의거하여 만들어진다.
하이라이트 계층구조(700)는 루트노드(702)를 가지며 루트 노드의 제목은 생성된 계층구조가 San Francisco 49ers와 Minnesota Vikings 간의 미식축구 경기를 위해 생성됐음을 함축적으로 보여 준다. 일반적으로, 루트 노드(702)는 하이라이트의 상세한 설명을 위해 필요한 만큼의 자식 노드를 가질 수 있다. "하이라이트 집합(highlight collection)"이라 명명된 특별한 노드(704)는 모든 획득된 하이라이트를 획득된 시간 순서에 따라 저장하기 위해 사용된다. 그밖에 "범주 노드"라 불리는 형제 노드(706, 708, 710, 712)는 범주별로 좀 더 명확하게 미식축구와 관련된 하이라이트 이벤트 또는 객체(선수)를 표현하기 위해 생성되었다. 이 범주 노드는 도 6의 3 개의 하이라이트 템플릿(602, 604, 606)에 의거하여 만들어진다. 도 6의 하이라이트 이벤트 템플릿(602)에는 "Scoring"과 "Feature plays"라는 2 개의 이벤트 범주가 있으며 객체 템플릿(604, 606)에는 각각 "SF 49ers"와 "MN Vikings"라는 범주가 있다.
하나의 범주 노드는 각각 하위 범주 및 하이라이트 이벤트/객체의 주제에 해당하는 하이라이트 주제 노드를 가질 수 있다. 예를 들면, 범주노드 "Scoring"(706)은 "point after"(718)라 명명된 하나의 하위 범주 노드를 자식으로 가지며, "field goal"(714)과 "touchdown"(716)이라는 2 개의 하이라이트 주제 노드를 자식으로 가진다. 또한, 하위 범주 노드 "point after"(718)는 2 개의 하이라이트 주제 노드 "extra point"(720)와 "two point conversion"(722)을 가진다. 유사하게, 도 7은 도 6의 하이라이트 객체 템플릿(606)의 9 명의 주요 선수에 해당하는 9 개의 하이라이트 주제 노드를 갖는다(공간의 제약으로 인해 도 7에서는 이들 중 단 두 명의 선수, 즉 "Lucas"(724)와 "Hardy"(726)로 명명된 단 두 개의 하이라이트 주제 노드만 보여지고 있다). 하이라이트 계층구조(700)에서, 속이 채워진 직사각형 노드(706, 708, 710, 712, 718, 760, 762, 764, 766)는 범주 또는 하위범주 노드를 나타내며, 속이 빈 직사각형 노드는 하이라이트 주제 노드를 나타낸다.
획득된 일부 하이라이트는 도 7 아래쪽 시간 축(730)에 표시되어 있다. 시간 축(730)에는 5개의 하이라이트와 도 2의 하이라이트 표시기(206)에 의해 하이라이트에 첨부된 하나 또는 그 이상의 하이라이트 주제가 함께 표기되어 있다. 첨부된 하이라이트 주제는 하이라이트 이벤트의 유형과 그 하이라이트와 관련된 선수 이름을 기술한다. 예를 들면, 획득된 하이라이트(732)는 "Lucas"에 의한 "Touchdown" 순간을 나타낸다. 도 7에서 하이라이트(732, 734, 738)는 하이라이트 이벤트 및 객체 주제를 가지며 나머지 하이라이트(736, 740)는 하이라이트 이벤트 주제만을 가진다. 상술한 바와 같이, 하이라이트 계층의 "하이라이트 집합"(704)은 색인화되는콘텐츠에서 획득된 모든 하이라이트를 시간적 순서에 따라 저장하기 위한 장소이다. 도 7은 5 개의 하이라이트 인스턴스(732, 734, 736, 738, 740)를 하이라이트 집합 노드(704)의 자식(742, 744, 746, 748, 750)으로 나타낸다. 도 7에서 "하이라이트 집합"(704) 밑의 획득된 하이라이트 인스턴스(742, 744, 746, 748, 750)는 검은 원형 노드로 표시된다.
본 발명에 따르면, 하이라이트가 획득되는 순간 도 5의 하이라이트 트리 빌더(528)는 자동적으로 하이라이트에 첨부된 하이라이트 주제에 따라 하이라이트 계층의 적합한 위치에 획득한 하이라이트를 등록한다. 즉, "하이라이트 집합" 노드(704) 아래에 위치한 각각의 하이라이트 인스턴스는 특정 주제(액션 또는 선수)에 대한 내용을 빠르고 쉽고 다양하게 찾을 수 있도록 특정한 하이라이트 주제 노드에 재할당된다. 예를 들어, 하이라이트(732)가 획득되는 순간, 3 개의 인스턴스 노드("하이라이트 집합"(704)에 대한 하나의 인스턴스 노드(742), "Touchdown"(716)에 대한 또 다른 노드(752), "Lucas"(724)에 대한 또 다른 노드(754))는 도면에서처럼 생성되어 계층구조에 첨가된다. 하이라이트(740)의 경우 한 개의 하이라이트 주제만을 가지기 때문에 단 두 개의 인스턴스 노드(하나는 "하이라이트 집합"(704)에 대한 노드(750), 다른 하나는 "Touchdown"(716)에 대한 노드(756))만이 생성되어 계층구조에 첨가된다. 도면에서 재할당된 하이라이트 인스턴스 노드는 하얀 원형의 노드로 나타난다.
하이라이트 표시기와 인덱싱 마스터의 사용자 환경(GUIs of Highlight Marker andIndexing Master)
도 8은 도 2의 하이라이트 표시기, 즉 간략한 색인기 조작을 나타낸 GUI의 예이다. 하이라이트 표시기는 획득된 하이라이트 목록(802), 하이라이트 이벤트 목록(804), 하이라이트 객체 목록(806), 제어 버튼판(808), 및 문자 입력부(810) 등의 다섯 개의 기능으로 구성된다.
획득된 모든 하이라이트 인스턴스는 획득된 하이라이트 목록(802)에 나타낸다. 각각의 하이라이트 인스턴스 항목은 획득된 하이라이트가 도 2의 주색인기(802)에 보내졌는지를 나타내는 지시자(Indicator)(812), 현재 항목에 대한 상태 또는 중요한 정보를 나타내는 플래그 필드(814), 하이라이트를 획득한 시간을 기술하기 위하여 하이라이트 표시기의 시스템 시간으로 표현된 표시시작점을 위한 필드(816)와 표시종료점을 위한 필드(818), 그리고 하이라이트에 포함되는 하이라이트 이벤트와 객체의 형태를 간단히 기술하기 위한 하이라이트 주제 필드(820)로 등의 다섯 개의 데이터 필드로 구성된다. 여기서 표시시작점(816)은 필수 사항이지만, 표시종료점(818)은 선택 사항이다. 또 예를 들어, 현재 항목이 이전 하이라이트의 리플레이인지 또는 다른 지역에서 동시에 진행되고 있는 경기에 대한 보도인지 등을 시각적으로 나타내기 위해 플래그 필드(814)는 몇 개의 작은 아이콘(화살표, 손가락, 아날로그 테이프 등)으로 나타낸다.
플래그 필드(814)에 있는 아이콘은 제어 버튼판(808)에 있는 5개의 제어 버튼 즉, "GU 시작", "GU 종료", "하이라이트 리플레이", "슬로우 모션", "다른 경기장"(하이라이트 주제 필드(820)에서도 기술됨)에 해당하는 5 개의 특수 이벤트를 시각적으로 표현하는 것이다. 이들 특수 이벤트 중 하나가 해당 버튼을 클릭하여 발생하면, 그에 대한 기술이 하이라이트 주제 필드(820)에 보이며, 그에 해당하는 아이콘은 플래그 필드(814)에 보인다. 이러한 기호의 사용은 사용자에게 시각적으로 도움을 준다.
색인화 작업을 시작하기 전에, 도 2의 하이라이트 표시기(206)의 조작자는 도 2의 하이라이트 템플릿 데이터베이스(212)에서 적절한 하이라이트 템플릿을 찾는다. 예를 들어 미식축구 게임의 경우, 조작자는 도 6과 같이 템플릿(602)과 같은 미식축구 이벤트 템플릿과 선수 템플릿(604, 606)과 같은 두 개의 미식축구 객체 템플릿을 선택한다. 선택된 템플릿은 하이라이트 표시기에 적재된다. 적재된 미식축구 이벤트 템플릿에 정의된 모든 가능한 하이라이트 이벤트 주제를 열거하여 이벤트 템플릿을 하이라이트 이벤트 목록(804)에 나타낸다. 유사하게, 선택된 두 개의 미식축구 객체 템플릿을 하이라이트 객체 목록(806)에 나타낸다. 조작자가 특정 하이라이트 인스턴스를 획득하고, 하이라이트 이벤트 목록(804) 또는 하이라이트 객체 목록(806)에서 해당 하이라이트 이벤트나 하이라이트 객체를 더블 클릭하면, 선택된 하이라이트 이벤트 주제 또는 객체 주제는 획득된 하이라이트 목록(802)의 하이라이트 주제 필드(820)에 입력된다. 하이라이트 이벤트와 객체 템플릿은 미리 정의될 수 있으며, 도 2의 실시간 색인기(202)의 전체 시스템에서 유지될 수 있다. 하이라이트 주제 또는 하이라이트 주제 분류를 추가, 삭제 및 수정하여 템플릿을 편집할 수 있다. 또한 편집된 템플릿을 나중에 사용하기 위해 도 2의 하이라이트템플릿 데이터베이스(212)에 저장할 수 있다.
조작자의 입력을 도와주는 몇 개의 유용한 버튼은 제어 버튼판(808)에 배치된다. 표시시작(mark-in) 버튼과 표시종료(mark-out) 버튼은 각각 획득한 하이라이트의 시작시간 및 종료시간을 획득하기 위해 사용된다. "전송" 버튼은 하이라이트 인스턴스(822)와 같이 하이라이트 표시기의 획득된 하이라이트 목록(802)에 있는 특정 하이라이트 인스턴스를 도 2의 주색인기(208)에 보낼 때 사용된다. 또, 여러 종류의 스포츠는 경기 시간 구분을 가리키기 위해 서로 다른 이름을 사용한다. 예를 들어, 축구의 전후반전, 야구의 회, 테니스의 세트 그리고 아이스하키의 피리어드(period) 등이 있다. 여기서 경기 시간의 구분은 게임 유닛(game unit, 이하 GU라고 함)이라고 한다. "GU 시작"과 "GU 종료" 버튼은 게임 유닛의 시작시간 및 종료시간을 기록하기 위해서 사용한다. 뿐만 아니라, 스포츠 게임 생중계에서 몇몇 중요한 순간이나 전환점은 실시간 방송 중에 반복해서 보여준다. "하이라이트 리플레이(replay)" 버튼은 이와 같이 반복적으로 방송되는 순간이나 장면을 획득하기 위해서 사용된다. 또한 "슬로우 모션(slow motion)" 버튼은 느린 화면으로 재생되는 하이라이트를 획득하기 위해서 사용한다. 스포츠 게임을 방송하는 동안, 다른 구장에서 동시에 진행되는 경기에 대한 점수나 상태 등과 같은 정보를 알려주기 위해 리포터가 종종 나타난다. "다른 경기장(other stadium)" 버튼은 이와 같이 다른 경기장에서 동시에 벌어지고 있는 게임에 대한 점수나 상태에 대한 보도를 획득하기 위해서 사용된다.
"표시시작", "표시종료", "전송" 버튼을 제외한 5개의 버튼 즉 "GU 시작","GU 종료", "하이라이트 리플레이", "슬로우 모션", "다른 경기장" 버튼은 많은 스포츠 게임 중에 일반적으로 발생하는 특수 하이라이트 이벤트 주제를 나타낸다. 따라서 하이라이트 인스턴스(824)와 같이, 버튼을 클릭하여 해당 이벤트 주제를 특정 하이라이트에 추가할 수 있다.
조작자는 하이라이트에 대한 간략한 기술이나 추가적인 주석을 문자 입력 필드(810)에 삽입할 수 있다.
도 7의 하이라이트 계층(700)에 이에 대한 도면은 없지만, "특수 이벤트"와 같은 문구가 붙여진 범주 노드가 루트 노드(702)의 자식 노드가 될 수 있다. 특수 이벤트 범주 노드는 각각 자식 노드로써 "GU 시작", "GU 종료", "하이라이트 리플레이", "슬로우 모션", "다른 경기장"으로 표시된 5개의 하이라이트 주제 노드를 가질 수 있다. 특수 이벤트 주제를 가지고 있는 각각의 획득된 하이라이트 인스턴스는 해당 하이라이트 주제 노드 밑에 자식 노드로 위치한다. 따라서, 사용자는 선호하는 특수 이벤트에 따라, 해당 하이라이트의 부분만을 선택적으로 탐색할 수 있다. 5 개의 특수 이벤트는 장르에 따라 확장되거나 편집될 수 있다.
도 8의 하이라이트 표시기의 GUI를 사용하는 간단한 시나리오를 보면 다음과 같다.
1) 색인화 작업을 시작하기 전에, 조작자는 도 2의 하이라이트 템플릿 데이터베이스(212)로부터 적절한 하이라이트 템플릿을 선택하고 적재한다.
2) 도 2의 TV(204)에서 스포츠 경기와 같이 방송되는 프로그램을 보면서, 조작자는 흥미가 있는 중요한 순간에 "표시시작" 버튼을 눌러 입력한다. 새로운 하이라이트 인스턴스 항목이 획득된 하이라이트 목록(802)에 생성되며, 획득된 시간 정보가 "표시시작" 필드(816)에 저장된다. 이때부터 표시종료점이라고 여겨지는 시간에 "표시종료" 버튼을 클릭함으로써 언제든지 하이라이트 표시기의 시스템 시간에서의 표시종료시간을 획득할 수 있다.
3) 분류별로 구분된 하이라이트 이벤트 목록(804)에서 획득된 순간에 대한 하이라이트 이벤트 주제를 결정한다. 선택된 하이라이트 이벤트 주제는 새로 생성된 항목의 하이라이트 테마 필드(820)에 삽입된다.
4) 또한 하이라이트 객체 목록(806)에서 새로 생성된 항목에 해당하는 하이라이트 객체 주제(선수)를 결정한다.
5) 또한 제어 버튼판(808)에 있는 5개의 버튼 중, 몇 개를 눌러 선택된 하이라이트에 해당하는 특수 이벤트 주제를 추가할 수 있다.
6) 만약 필요하다면 하이라이트에 대한 자세한 설명을 문자 입력부(810)에 입력한다.
7) "전송" 버튼을 눌러 도 2의 주색인기(208)에 하이라이트를 전송한다. 성공적으로 전송이 된 후에는, 열(812)에 성공적인 전송을 시각적으로 표시하는 검사 마크(check mark)가 나타난다.
도 9는 정교한 색인기인 도 3, 3a, 3b, 3e의 주색인기(302, 302a, 302b, 302e)(도 2의 참조번호(208, 210)와 동일)의 인덱싱 마스터(304)를 표현한 GUI 객체 예이다. 도 3, 3a, 3b, 3e의 인덱싱 마스터(304)의 GUI(900)는 6개의 상호 작용이 가능한 윈도우, 즉 시각율동(902), 인접 프레임 목록(904), 하이라이트계층(906), 하이라이트 키프레임 목록(908), 비디오 재생기(910), 정보 표시판(912)으로 이루어져 있다.
시각율동 창(902)에는 몇 개의 파란색 삼각형과 함께 시각율동을 나타낸다. 시각율동 위에 있는 파란색 삼각형과 같은 특수 기호는 샷 경계의 위치를 나타낸다. 여기서는 공간의 제약으로 인해 전체 시각율동 영상 중 주어진 시간 구간에 대응하는 부분만 나타난다. 임의의 부표본화된 영상과 함께 적절히 샷 경계를 나타내는 효율적인 방법이 있다면, 이를 시각율동과 파란색 삼각형 대신 사용할 수도 있다. 시각율동은 도 11a-11e에서 상세히 기술된다.
시각율동 창(902)에서 한 프레임(914)이 선택되면, 선택된 프레임(914)에 앞뒤로 인접한 프레임(916)이 인접 프레임 목록 창(904)에 나타난다. 인접 프레임 목록 창(904)은 연속적인 인접 프레임을 보며 샷 경계와 같은 불연속점에 해당하는 프레임을 찾을 수 있도록 하여, 자동적으로 검출된 샷을 삭제하거나 새로운 샷을 사용자가 임의로 추가할 수 있다. 시각율동에서 샷 경계를 나타내는 파란색의 삼각형은 인접 프레임 목록 창에서도 해당 샷의 첫 번째 프레임 위에도 파란색 삼각형(918)과 같이 나타난다. 별 모양의 표시(920)가 표시된 프레임은 그 샷의 키프레임을 나타낸다. 인접 프레임 목록 창(904)은 연속적인 프레임을 나타내는 대신 검출된 샷의 키프레임을 토글하여 보여줄 수 있다.
하이라이트 계층 창(906)은 도 7의 하이라이트 계층구조를 유지하고 보여준다. 계층구조 노드의 하위 노드를 확장하거나 접는 방법은 마이크로소프트 윈도우에서의 탐색기에서의 방법과 유사하다.
하이라이트 키프레임 목록 창(908)은 획득된 하이라이트 인스턴스의 키프레임의 목록을 유지한다. 새로운 하이라이트 인스턴스를 획득하면, 해당 키프레임이 이 목록의 끝에 등록된다.
비디오 재생기 창(910)은 일반적인 비디오 세그먼트나 하이라이트 비디오 세그먼트를 재생하는 데 사용하며, 일반적인 VCR과 같은 기능 예를 들어 재생, 정지, 일시 정지, 빠른 재생 등의 기능을 제공한다.
정보 표시판(912)은 세부 색인화 과정에서 처리된 자세한 정보를 표시하는 데 사용한다. 예를 들어, 도 2의 하이라이트 표시기(206)로부터 받은 하이라이트나 검출된 샷에 대한 정보를 나타난다.
위와 같은 윈도우(902, 904, 906, 908, 910, 912)를 사용하여, 하이라이트 표시기에서 획득하여 전송된 하이라이트 인스턴스를 보정하는 과정(정교한 색인화 과정)은 다음과 같다. 도 2의 하이라이트 표시기(206)로부터 "Touchdown" 및 "Player 1"이라는 하이라이트 주제를 갖는 새로운 하이라이트 인스턴스를 받으면, 도 3, 3a, 3b, 3e의 인덱싱 마스터(304)는 우선 시각율동(902)에서 획득된 하이라이트를 어디에 표현할 것인지 판단하고, 시각율동에서 해당 샷 밑에 시각적으로 구분되도록 (색을 넣은) 막대(922)로 표시하여 하이라이트의 존재여부를 나타낸다. 이와 동시에 새로 받은 하이라이트에 대하여, 식별할 수 있도록 색칠된 하이라이트 인스턴스 노드(924)(막대바(922)와 같은 색을 사용함으로써 동일하다는 것을 나타냄)가 자동적으로 "하이라이트 집합"이라고 표시된 특정 노드 밑에 있는 하이라이트 계층에 생성된다. 이 하이라이트 인스턴스와 대응되는 키프레임(926)이 하이라이트 키프레임 목록 창(908)에 같은 색으로 나타난다. 이와 유사하게, 다른 두 개의 하이라이트 인스턴스 노드가 "Touchdown" 및 "Player 1"이라고 표시되어진 하이라이트 주제 노드에 생성되고, 하이라이트 계층 창(906)에 나타난다. 그러나 도면에서는 공간의 제약 때문에 "Touchdown" 밑에 있는 인스턴스 노드(928)만이 나타나 있다. 노드(928)는 색칠된 세그먼트(922)와 같은 색상으로 표시되어 강조된다. 이것은 4 개의 객체(922, 924, 926, 928)가 다른 형태나 모양을 지니고 있지만, 같은 개념 또는 내부적으로 같은 데이터 구조를 나타내고 있음을 암시한다.
이와 같은 인덱싱 마스터에 의한 자동 조작 후, 많은 다른 수작업이 발생할 수 있다. 예를 들어, 조작자가 현재 하이라이트의 구간을 조정하고자 한다면, 막대 세그먼트(922)의 양끝을 끌어 놓기(drag-and-drop)하여 원하는 만큼 길이를 조정할 수 있다.
하이라이트 브라우저 GUI(GUIs of Highlight Browser)
도 10a-10e는 DVR 클라이언트에서 작동하여 TV 화면에서 보여지는 미식축구 경기에 관한 일반적인 하이라이트 브라우저(highlight browser)의 5 개의 TV 스크린 샷의 예이다. 도 7의 하이라이트 계층(700)과 같은 메타데이터를 실시간으로 전송하면, DVR 클라이언트에서 시청자는 TV 프로그램을 다양한 방법을 이용하여 효과적으로 브라우징할 수 있다.
도 10a의 스크린 샷은 TV 화면에서의 메타데이터 서비스를 위한 하이라이트브라우저의 첫 번째 레벨 페이지(1002)를 나타낸다. 첫 번째 레벨 페이지(1002)는 4 개의 중요한 요소, 즉 주메뉴 뷰(1004), 부메뉴 뷰(1006), 방송 프로그램 뷰(1008), 키프레임 뷰(1010)의 상태를 시각적으로 보여준다. 주메뉴 뷰(1004)는 도 7의 하이라이트 계층(700)의 범주 노드에 해당하는 메뉴 아이템의 목록을 제공한다. 예를 들어, 제공되는 메뉴 아이템은 "Scoring", "Feature plays", "By player", "By quarter" 등과 같다.
"Scoring" 및 "Feature plays" 메뉴 아이템은 각각 도 7의 범주 노드 "Scoring"(706) 및 "Feature plays"(708)에 대응한다. "By player" 메뉴 아이템은 도 7의 "SF 49ers" 노드(710) 및 "MN Vikings" 노드(712)에 대응하는 범주 노드이다. "By quarter" 메뉴 아이템은 시간적 순서로 나열된 하이라이트 인스턴스를 포함하는 "하이라이트 집합" 노드(704)의 인스턴스를 게임 유닛 단위로 나타내기 위한 것이다. "Scoring" 메뉴 아이템의 하위 메뉴 아이템인 "Touchdown"은 도 10b와 함께 설명하고, "Feature plays" 메뉴 아이템은 도 10c에서, "By players" 메뉴 아이템은 도 10d에서, "By quarter" 메뉴 아이템은 도 10e에서 설명한다.
도 10a의 주메뉴 뷰(1004)에서 "Scoring" 메뉴를 선택하면, 하위 메뉴가 도 10a의 부메뉴 뷰(1006)에 나타난다. 시청자가 주메뉴 뷰(1004) 또는 부메뉴 뷰(1006)의 메뉴 아이템을 둘러볼 때, 현재 활성화된 주메뉴 또는 부메뉴의 하이라이트 인스턴스를 나타내는 키프레임이 키프레임 뷰(1010)에 표시된다. 또한, 메뉴를 둘러볼 때, 방송 프로그램 뷰(1008)는 현재 방송되고 있는 프로그램을 보여준다.
도 10a의 부메뉴 아이템 "Touchdown"을 시청자가 선택하면, 도 10b의 스크린 샷(1012)과 같이 하이라이트 인스턴스 목록(1014)이 나타난다. 도 10b의 두 번째 레벨 페이지(1012)는 3 개의 중요한 요소, 즉 하이라이트 인스턴스 뷰(1014), 방송 프로그램 뷰(1008), 키프레임 뷰(1010)의 상태를 시각적으로 나타낸다. 첫 번째 레벨 페이지(1002)와 두 번째 레벨 페이지(1012)의 차이점은 두 번째 레벨 페이지에서 하이라이트 인스턴스 뷰(1014)가 주메뉴 뷰(1004)와 부메뉴 뷰(1006) 대신 나타난다는 것이다. 하이라이트 인스턴스 뷰(1014)는 부메뉴 아이템 "Touchdown"에 해당하는 하이라이트 인스턴스의 목록을 보여준다. 만약 하이라이트 인스턴스가 한 화면에 보여줄 수 있는 것보다 많다면, 두 개의 스크롤 버튼(1016, 1018)이 나타난다. 시청자는 스크롤 버튼을 이용하여 전체 게임에서 발생한 모든 터치다운 하이라이트 인스턴스의 목록을 볼 수 있다. 시청자가 특정 터치다운 하이라이트 인스턴스를 선택하면, 두 번째 레벨 페이지(1012)는 사라지고 선택된 하이라이트가 전체 TV 화면에서 재생된다.
도 10c, 10d, 10e는 각각 도 10a에서 "Feature plays", "By player", "By quarter" 메뉴를 선택했을 때의 첫 번째 레벨 페이지를 나타내는 스크린 샷(1020, 1022, 1026)이다. 일반적인 경우, 시청자는 자기가 보고 싶어하는 것을 선택할 수 있는 하위 메뉴의 목록을 둘러볼 수 있다. 더불어, 화면 구성은 각각의 시청자의 개인적인 취향 또는 시청 경향에 따라 사용자마다 다를 수 있다. 예를 들어, 도 10d에서 San Francisco 49ers가 시청자가 좋아하는 미식축구 팀이라면, San Francisco 49ers의 선수만 두 번째 메뉴(1024)에 나타낼 수 있다. 이와 같은 개인화(personalization)는 시청자가 좋아하는 팀 또는 선수에 대한 개인적 하이라이트를 갖게 할 수 있다.
TV 시청자는 DVR 원격 조종기(remote controller)를 이용하여 하이라이트 브라우저를 제어한다. 본 발명의 브라우저는 DVR 원격 조종기의 여섯 개 이하의 버튼(메타데이터 버튼, 상하좌우 4 방향 버튼, 방향 버튼 중앙의 재생 버튼)으로 제어가 가능하다. 메타데이터 버튼을 누르면, TV화면에는 현재 방송 프로그램 대신 브라우저가 나타난다. 다시 메타데이터 버튼을 누르면, GUI는 사라지고 방송 프로그램이 나타난다. 즉, 메타데이터 버튼은 토글처럼 작동한다. 4 개의 방향 버튼은 주/부메뉴 아이템과 하이라이트 사이를 움직일 때 사용된다. 재생 버튼은 선택된 하이라이트를 재생하기 위해 사용된다.
시각율동의 생성(Generating Visual Rhythm)
위에서 언급한 바와 같이, 시각율동은 비디오를 프레임 단위로 부표본화하여 비디오의 시각적 내용에 관한 정보를 갖고 있는(전달하는) 하나의 이미지를 의미한다. 이것은 특히 자동 샷 경계 검출에 유용하다. 시각율동 영상은 전형적으로 각 프레임의 대각선 방향과 같은 표본화 경로(sampling path)를 따라 화소를 표본화함으로써 얻는다. 즉, 연속된 각 프레임에서 한 줄의 영상을 생성하고, 얻어진 줄 영상을 일반적으로 좌에서 우로 차례로 쌓는다. 각각 한 화소 넓이로 만들어진 시각율동의 세로 조각은 각 프레임으로부터 미리 정해진 경로를 따라 화소를 부분적으로 표본화하여 얻는다. 이러한 방법으로 만들어진 시각율동 영상은 급격한 샷 경계, 와이프(wipe), 디졸브(dissolve), 점이(fade) 카메라 움직임, 물체 움직임, 플래시 불빛, 줌 등과 같은 많은 다른 종류의 비디오 효과(편집 등)를 검사자/조작자가 구별하고 분류할 수 있는 패턴이나 시각적 특징을 갖는다. 즉, 서로 다른 비디오 효과는 시각율동 영상에서 각각 서로 다른 패턴을 나타낸다. 따라서 연속된 샷 사이의 경계와 편집 효과는 비디오로부터 생성된 시각율동 영상을 관찰함으로써 검출될 수 있다. 시각율동은 H. Kim, J. Lee, S. M. Song이 1999년 6월 Proceeding of IEEE International Conference on Multimedia Computing and Systems, pp. 827-834에 발표한 논문 "An efficient graphical shot verifier incorporating visual rhythm"에 기술되어 있다.
도 11a-11d는 비디오 프레임(1100)에 그려진 다양한 표본화 선의 예를 나타낸다. 도 11a는 본 발명의 기술 구현을 위해 청구하는 왼쪽 위에서 오른쪽 아래로 그려지는 대각 표본화 경로(1102)를 나타낸다. 그러나 특정 비디오는 다른 표본화 경로가 더 좋은 결과를 보일 수도 있다. 이것은 전적으로 경험에 의해 결정된다. 왼쪽 아래에서 오른쪽 위로의 대각선 방향(1104), 영상을 가로지르는 수평방향(1106), 수직방향(1108)과 같이 다른 표본화 경로의 예가 도 11b-11d에 각각 나타나 있다. 표본화 경로에서 화소를 표본화할 때, 표본화 경로를 따라 모든 화소를 추출하는 것과 같이 연속적이거나, 표본화 경로를 따라 몇 개의 화소만을 추출하는 것과 같이 이산적/불연속적이거나, 혹은 두 방법을 조합하여 사용할 수 있다.
도 11e는 시각율동 영상의 일부분을 나타내는 도면이다. 앞에서 기술한 바와 같이, 시각율동 영상의 각 수직선은 비디오의 한 프레임에서 생성한다. 비디오의 연속된 프레임을 표본화 경로를 따라 표본화하면, 시각율동 영상이 왼쪽에서 오른쪽으로 한 선씩 생성된다. 시각율동 영상에서 구별되는 패턴은 임의의 특정한 종류의 비디오 효과를 나타낸다. 예를 들어, 도 11e의 시각율동 영상(1110) 내의 불연속 수직선(1120A, 1120B, 1120C, 1120D, 1120E, 1120F, 1120G, 1120H)은 두 샷 사이의 급격한 전환인 컷(cut)을 나타낸다. 쐐기 모양의 불연속(1130A, 1130C, 1130D)과 대각선 방향의 불연속(1130B, 1130E)은 다양한 종류의 와이프(wipe)를 나타낸다.
하이라이트 획득(Capturing Highlights)
도 12는 간략한 색인화 과정인 도 2의 하이라이트 표시기(206)에서 수행되는 하이라이트 인스턴스 획득 과정의 순서도이다. 이 과정은 간략한 하이라이트 인스턴스를 완전한 것으로 만드는 도 13의 정교한 색인화 과정과 함께 공동작업으로 수행된다. 획득된 하이라이트 인스턴스에 대한 정보를 공유하는 두 과정간의 공동작업은 본 발명에 나타나는 중요한 특징 중의 하나다.
도 14는 도 13에서 참조되는 하이라이트 등록 과정을 나타내는 순서도이다.
도 15는 도 13에서 참조되는 색인화 과정을 나타내는 순서도이다.
도 16은 도 13에서 참조되는 시각율동 생성 과정을 나타내는 순서도이다.
간략한 색인화 과정은 도 12의 단계(1202)에서 시작하며, 도 3, 3a, 3b, 3e에서의 인덱싱 마스터와 통신 연결 설정을 조사하는 단계(1204)를 수행한다. 이러한 조사과정은 연결이 성공적으로 설정될 때까지 계속된다. 그 후, 단계(1206)에서는 초기화를 시작하고, 적합한 하이라이트 이벤트/객체 템플릿을 도 2의 하이라이트 템플릿 데이터베이스(212)로부터 메모리로 적재한다. 적재한 템플릿은 도 8에서의 하이라이트 표시기의 GUI에서 마우스만 몇 번 클릭하면 될 정도로 하이라이트 인스턴스 획득 과정을 간소화시킨다. 하이라이트 표시기의 시스템 시간으로 표현되는 하이라이트 시작시간 즉 표시시작점을 단계(1208)에서 획득하고, 단계(1210)에서 부가적인 데이터가 하이라이트에 덧붙는지 결정한다. 만약 부가적인 데이터가 필요 없다면, 획득된 하이라이트 인스턴스를 다음 과정인 단계(1224)를 위해 즉시 도 3, 3a, 3b, 3e의 인덱싱 마스터(304)로 전송한다. 만일 단계(1204)에서 통신 연결이 설정되지 않았을 때, 하이라이트 표시기는 연결단계를 건너 뛰어 자신의 내부 저장소(421)에 저장된 템플릿을 사용하여 하이라이트 인스턴스 획득하고, 획득한 하이라이트를 역시 자신의 내부 저장소(421)에 저장한다. 이후 연결이 다시 가능할 때, 하이라이트 표시기는 내부 저장소(421)에 저장된 하이라이트 인스턴스를 주색인기로 보낸다.
단계(1226)에서 또 다른 하이라이트 인스턴스의 획득 작업이 남아있는지 결정한다. 만약 그렇다면, 다른 하이라이트를 획득하기 위해 단계(1208)로 돌아간다. 그렇지 않다면, 하이라이트 획득작업을 단계(1228)에서 끝낸다.
만약 단계(1210)의 결정이 긍정이면, 부가 데이터의 유형을 단계(1212)에서결정한다. 결정된 유형이 "Event Type"이면, 단계(1214)에서 획득된 하이라이트 인스턴스에 하이라이트 이벤트 주제를 붙인다. 같은 방법으로 하이라이트 객체 주제, 주석, 하이라이트 표시기의 시스템 시간으로 표현되는 표시종료점, 특수 이벤트 주제(도 8에서의 "GU 시작", "GU 종료", "하이라이트 리플레이", "슬로우 모션", "다른 경기장")를 각각 단계(1216, 1218, 1220, 1222)에서 현재 하이라이트 인스턴스에 첨부한다. 이러한 부가 데이터를 붙인 후, 단계(1210)로 되돌아가 부가 데이터가 더 필요한지, 어떤 유형인지 결정하는 과정을 단계(1210)의 결과가 부정으로 나올 때까지 반복 수행한다.
도 13은 도 2에서의 하이라이트 표시기(206)로부터 받은 간략한 하이라이트 인스턴스를 정교하게 만드는, 도 3, 3a, 3b, 3e의 주색인기(302, 302a, 302b, 302e)의 인덱싱 마스터(304)에서 수행하는 세부적인 과정을 나타내는 순서도이다. 정교화 과정은 단계(1302)에서 시작되며, 단계(1304)에서 도 3b, 3e의 비디오 부호기(310)를 동작시켜 부호화 과정을 시작한다. 단계(1306)에서는 인덱싱 마스터(304)가 도 3b, 3e의 패턴 발생기(326)에 하나 또는 몇 프레임에 특정한 인위적인 패턴 생성을 시작하도록 한다. 이 요청 시간이 인덱싱 마스터의 시스템 시간으로 표현된 참조점(reference_point s )이 되며, 이 참조점이 패턴으로 부호화된다.
도 3과 3a에 도시한 디지털 방송의 경우, 인덱싱 마스터는 단계(1304)와 단계(1306)를 처리하는 대신 단지 방송 스트림을 저장하기 시작한다. 인덱싱 마스터의 시스템 시간으로 표현된 참조점은 방송 스트림의 방송시간으로부터 얻는다.
인덱싱 마스터의 시스템 시간으로 표현된 참조점(reference_point s )은, 도 12의 단계(1208)에서 얻은 하이라이트 인스턴스의 하이라이트 표시기의 시스템 시간으로 표현된 표시시작점(mark_in_point s )을 이에 대응하는 미디어시간으로 표현된 표시시작점(mark_in_point m )으로 정확하게 변환 또는 계산하기 위해 사용된다(도 3d 참조). 따라서, 하이라이트 표시기의 시스템 시간으로 표현된 표시시작점을 갖고 있는 획득된 모든 하이라이트 인스턴스를 부호화된 비디오의 미디어시간에 기반한 시각적 시간 축(visual timeline), 예를 들면 시각율동의 해당 위치에 정확히 대응시킬 수 있다.
본 발명의 실시간 하이라이트 표시 처리는 도 2의 하이라이트 표시기(206)와 도 3, 3a, 3b, 3e의 인덱싱 마스터(304)를 포함하며, 일반적으로 TCP/IP 기반의 네트워크를 통해 서로 통신한다. 두 모듈은 연결되어 있고, 단계(1308)에서 실시간 조작을 준비한다. 인덱싱 마스터(304)는 단계(1310)에서 새로운 쓰레드(thread)(1312)를 분기(fork)한다. 새로운 쓰레드(1312)는 시각율동 생성과 샷 경계 검출을 하기 위해 병렬로 수행된다. 이 쓰레드의 자세한 과정은 도 16에 기술된다. 원래의 프로세스는 단계(1314)에서 시스템 메시지 대기 열에서 차례대로 하나의 메시지를 읽어온다. 단계(1318)에서 메시지 유형을 확인한다. 하이라이트 표시기로부터 받은 간략한 하이라이트 인스턴스인 "하이라이트 메타데이터" 메시지에 대해서는, 단계(1316)에서 하이라이트 인스턴스 등록 과정을 수행하고, 다음 메시지를 처리하기 위해 단계(1314)로 돌아간다. 하이라이트 인스턴스 등록 처리는 도 14에 기술한다. "종료" 또는 "중지" 메시지에 대해서는 단계(1322)에서 도 3b, 3e의 비디오 부호화기(310)를 중지시키고, 단계(1324)에서 전체 프로세스를 종료시킨다. 도 3, 3a의 디지털 방송의 경우, 단계(1322)에서 디지털 방송 스트림의 녹화를 중지한다. 끝으로, 단계(1318)에서 앞에 기술된 것 외의 다른 유형의 메시지가 나타나면, 단계(1320)에서 처리되는 (자세한 기술은 도 15 참조) 정규 색인 작업과 관계가 있다. 정규 색인 작업이 끝나면, 다음 메시지 처리를 위해 단계(1314)로 돌아간다.
도 14는 도 13의 단계(1316)에서 언급된 새로운 하이라이트 인스턴스의 등록 처리를 나타내는 순서도이다. 단계(1402)에서 등록 처리가 시작된다. 단계(1404)에서는 도 12의 단계(1208)에서 얻은 새로운 하이라이트 인스턴스의 하이라이트 표시기의 시스템 시간으로 표현된 표시시작점(mark_in_point s ), 도 13의 단계(1306)에서 (부호화되는 프레임에 오버레이되는 패턴에) 저장된 인덱싱 마스터의 시스템 시간으로 표현된 참조점(reference_point s ), 도 16의 단계(1612)에서 얻은 (패턴에 오버레이된 프레임의 프레임 번호 혹은 미디어 타임인) 미디어시간으로 표현된 참조점(reference_point m )을 수학식 1의 입력으로 하여 새로운 하이라이트 인스턴스의 미디어시간으로 표현된 표시시작점(mark_in_point m )을 계산한다.
하이라이트 인스턴스의 위치를 표현하기 위한 도 9의 색칠된 세그먼트(922)와 같은 특수한 기호(그래픽 아이콘)를 단계(1406)에서 시각율동에 표시한다.단계(1408)에서는 새로운 하이라이트 인스턴스에 기록되어 있는 하이라이트 주제에 해당하는 하이라이트 인스턴스 노드가 도 7에 기술한 바와 같이 기존 하이라이트 계층구조에 추가된다. 단계(1410)에서는 시각율동과 하이라이트 계층구조와 같은 인덱싱 마스터의 GUI 객체를 다시 그리거나 칠하는 방법으로 가능한 한 빨리 최신 정보로 갱신한다. 마지막으로 단계(1412)에서 등록 처리를 끝낸다.
도 15는 "하이라이트 메타데이터" 메시지에 대한 등록 처리 조작 이외에, 도 13의 단계(1320)에서의 정규 색인 작업을 위한 자세한 처리의 순서도이다. 단계(1502)에서 시작하고 단계(1504)에서 입력된 메시지가 6개 유형 ("시각율동", "샷 경계", "계층구조", "재생", "출력", "GUI 갱신") 중에 하나인지 결정하기 위해 메시지를 조사한다.
a) "시각율동": 이 메시지는 단계(1506)에서 도 9의 시각율동 GUI 객체(902)에 하이라이트 인스턴스 구간 조정, 새로운 하이라이트 인스턴스 생성, 하이라이트 인스턴스 삭제, 하이라이트 인스턴스에 주석 첨가와 같은 가능한 조작 중 하나를 수행한다.
b) "샷 경계": 이 메시지는 단계(1508)에서 샷 경계 생성, 샷 경계 삭제, 샷 경계 변경, 키프레임 변경과 같은 조작 중 하나를 수행한다.
c) "계층구조": 이 메시지는 단계(1510)에서 하이라이트 계층구조 브라우징, 계층구조에서 하이라이트 항목 삭제, 주석 변경과 같은 조작 중 하나를 수행한다.
d) "재생": 이 메시지는 단계(1514)에서 하이라이트 여부와 관계없이 특정 비디오 세그먼트의 재생, 일시 정지, 정지와 같은 조작 중 하나를 수행한다.
e) "출력": 이 메시지는 단계(1516)에서 도 1a-1d의 방송국(102)이나 DVR 클라이언트(122)로 정해진 전송 모드에 따라 메타데이터를 출력한다.
f) "GUI 갱신": 이 메시지는 단계(1512)에서 최신 데이터를 이용하여 도 9의 GUI 객체를 다시 그려 갱신한다.
"샷 경계" 메시지 유형의 조작에서, 사용자는 하이라이트 인스턴스의 구간을 임의로 조정할 수 있다. 조정된 구간에 관계된 시간 정보는 미디어시간, 즉 내부적으로 미디어시간으로 표현된 표시시작점(표시종료점도 동일)으로 기술된다. 그러나, 시간 정보를 포함한 메타데이터를 "출력" 메시지 유형의 조작으로 DVR로 전송할 때, 조정된 구간에 관계된 미디어시간으로 표현된 모든 표시시작점을 수학식 2를 사용하여 방송시간에 동기화된 인덱싱 마스터의 시스템 시간으로 표현된 표시시작점(표시종료점도 동일)으로 바꾼다. 각 조작을 끝낸 후, 단계(1518)에서 도 13의 호출 처리 단계인 단계(1320)로 돌아간다.
도 16은 본 발명에서 구현한 시각율동 생성 과정을 나타내는 순서도이다. 이 과정은 도 13에서 분기한 쓰레드(1312)에 의해 진행된다. 이 쓰레드는 단계(1602)에서 시작하고, 단계(1604)에서 입력된 비디오 파일을 읽을 수 있는지 여부를 판별하는 정상 작동 여부를 검사한다. 만약 검사가 실패하면, 다시 검사를 반복한다. 그렇지 않으면, 단계(1606)에서 쓰레드는 비디오 파일의 첫 번째 프레임을 내부 버퍼로 읽는 들인다. 단계(1608)에서 미디어시간으로 표현된 참조점(reference_point m )을 이미 얻었는지 여부를 알 수 있는 검사를 수행한다. 미디어시간으로 표현된 참조점은 도 3b와 3e의 패턴 생성기(326)로부터 생성된 패턴의 시작 시간스탬프이다. 미디어시간으로 표현된 참조점을 얻었다면, 쓰레드는 단계(1614)를 수행한다. 그렇지 않으면, 단계(1610)에서 패턴을 검출할 수 있는지 여부를 결정하는 검사를 수행한다. 패턴이 검출되지 않으면, 쓰레드는 단계(1614)를 수행한다. 그렇지 않으면, 단계(1612)에서 쓰레드는 현재 프레임에 오버레이되어 있는 패턴을 분석하여 인덱싱 마스터의 시스템 시간으로 표현된 참조점(reference_point s )을 복구해내고, 이 프레임의 프레임 번호 혹은 시간을 미디어시간으로 표현된 참조점(reference_point m )으로서 내부 저장소에 저장한다. 단계(1614)에서, 비디오 프레임을 가로지르는 미리 정해진 샘플링 경로에 있는 화소를 추출하여 하나의 시각율동 수직선을 생성하고, 시각율동 영상에 추출된 수직선을 추가한다. 단계(1616)에서, 현재 프레임에 샷 경계가 있는지 여부를 검사한다. 경계가 검출된다면 단계(1618)에서 검출된 샷 경계를 샷 경계 목록에 저장하고, 샷 경계 표시를 시각율동 상에 표현한다. 단계(1620)에서 검출된 샷 경계의 키프레임을 선택하여, 단계(1622)에서 시각율동 생성 처리에 의해 변경된 GUI 객체를 빠른 시간 내에 다시 그려 갱신한다. 단계(1616)에서 샷 경계가 검출되지 않으면, 단계(1622)를 수행한다. 단계(1624)에서 입력 파일이 끝났는지 여부를 검사한다. 그렇다면 쓰레드는 단계(1626)에서 종료된다. 그렇지 않으면 다음 프레임을 읽기 위해 단계(1606)로 다시 돌아간다.
내려받기 시나리오(Download Scenario)
앞에서 기술된 생방송에 대한 빠른 메타데이터 서비스는 스포츠, 선거 개표 방송 등의 생방송 컨텐츠에 대해 매우 유용할 것이다. 그러나 즉시 보는 것에 민감하지 않은 컨텐츠에 대해서는 유용하지 않을 수도 있다. 예를 들어 대부분의 홈쇼핑 채널의 프로그램은 반복적인 의미를 담는 내용으로 구성되어 미리 제작된 특정 물품에 대한 광고용 비디오, 판매용 옷을 입은 홈쇼핑 모델, 판매용 건강 기구를 이용하는 쇼핑 호스트와 같이 거의 같거나 비슷한 장면으로 이루어진 비슷한 정보를 제공한다. 홈쇼핑과 같이 성격의 방송 프로그램에 대한 메타데이터 서비스를 제공하기 위해, "내려받기 시나리오(download scenario)"라 불리는 다른 기술을 채택한다.
내려받기 시나리오에서는, 홈쇼핑 채널이 하루의 쇼핑 물품의 요약으로서 방송된 주요 프로그램의 주요 핵심 세그먼트로 편집된 특집 요약 프로그램 방송을 위한 시간 슬롯을 확보해야 한다. 오전 4시에서 5시 사이와 같이 시청률이 가장 낮을 때, 편집된 요약 프로그램은 메타데이터와 함께 방송된다. 방송된 각 프로그램에 대해 메타데이터는 편집된 요약 프로그램 내의 각 세그먼트에 대해 세그먼트 시작시간과 지속시간, 제목, 쇼핑 물품 등을 기술한다. 메타데이터는 방송망을 통해 방송 스트림 내의 비디오 스트림과 함께 방송되거나, 도 1a-1d에 기술된 빠른 메타데이터 서비스 시나리오의 경우와 같이 상향채널을 통해 다른 경로로 전송된다. DVR 사용자는 EPG를 사용하여 메타데이터를 포함한 요약 프로그램을 저장할 수 있다.이 후 DVR 사용자가 저장된 요약 프로그램을 볼 때, 관심 있는 쇼핑 물품만을 포함하는 특정 세그먼트를 선택적으로 고를 수 있다. 즉, 메타데이터가 포함된 요약 프로그램을 가지고 사용자는 선택적으로 하루에 방송된 프로그램의 핵심을 볼 수 있다. 이 기능은 홈쇼핑 채널의 수입을 증가시키는 데 크게 도움을 줄 수 있다.
EPG를 이용한 메타데이터 전달(Metadata Delivery Using EPG Scheme)
사유형식 또는 MPEG-7 및 TV-Anytime 과 같은 공개된 국제 표준에 의거한 메타데이터는 DVR 사용자가 비디오의 하이라이트에 해당하는 비디오 세그먼트를 브라우징하는 것을 가능케 한다. 그러므로 DVR 사용자에게 이러한 세그먼트 메타데이터가 공급되면, DVR 사용자는 관심 있는 비디오 세그먼트를 선택 할 수 있을 뿐 아니라 선택된 세그먼트의 시작 지점부터 선택적으로 재생하여 시청할 수 있다.
대부분의 DVR 기기는 디지털 방송에 다중화된 또는 상향채널 데이터 망을 통해 전송된 EPG데이터를 처리 할 수 있다. 현재의 EPG 데이터 방식은 전체 프로그램에 관한 중요한 정보를 제공하는 데 중점을 두고 있다. EPG 규격의 예로써, ATSC의 PSIP (Program and System Information Protocol) 규격 또는 DVB의 SI(Service Information) 규격에 정의된 EIT(Event Information Table)는 현재 및 앞으로 방송될 프로그램의 시작시간, 제목, 간단한 내용 설명 등에 관한 정보를 제공한다.
본 발명은 현재의 EPG 데이터 처리기술 및 규격을 바탕으로, 브라우징을 위한 세그먼트 데이터 표현 방법을 제안한다. 그러므로 비디오의 세그먼트 브라우징과 같은 부가 기능 등을 현재의 EPG 소프트웨어의 적은 수정을 통하여 DVR 사용자에게 제공할 수 있다.
표 1의 EPG 예에서 볼 수 있듯이, 시청자는 영화 4가 6:30p.m.에 시작하며 8:00p.m.에 끝난다는 것을 알 수 있다. 따라서 원격 제어기와 같은 DVR의 입력 장치 조작을 통하여 "영화 4"를 선택하고, 그 영화를 DVR내에 저장할 수 있다. 여기서 영화 제목 옆의 (c)는 부가적인 표식(아이콘)으로써 해당 프로그램에 대한 세그먼트 메타데이터가 갱신된 EPG를 통하여 곧 제공될 것임을 표시한다. 그러므로 이 표식(아이콘)을 통하여, 가까운 미래에 "영화 4"에 대한 세그먼트 메타데이터가 브라우징 기능을 위해 곧 도착함을 알 수 있다. 표 2는 "영화 4"가 성공적으로 DVR에 저장된 후, DVR 사용자의 조작에 의해 TV 스크린에 나타나는 프로그램 저장 목록을 나타낸다. 메타데이터가 제공되는 프로그램이 방송되면, DVR 사용자에게 해당 프로그램에 대한 갱신된 EPG 데이터를 전달하여, 저장된 프로그램 내의 관심 있는 세그먼트에 그들이 쉽게 접근할 수 있도록 할 수 있다. 방송 프로그램에 대한 EPG 정보를 제공하는 ATSC PSIP 또는 DVB SI의 EIT는 수정을 위해 언제든지 갱신될 수 있다. 그러므로 "영화 4"에 대한 정보를 담고있는 EIT를 통해, 영화 4를 이루는 세 개의 세그먼트에 대한 정보를 EIT가 제공하도록 방송 중에 EIT의 내용이 계속 갱신된다. 따라서 갱신되는 EIT는 어느 순간에서 보면 전체 프로그램이 아닌 프로그램을 이루는 각각의 세그먼트에 대한 정보를 담고 있게 된다. 이러한 방식을 통하여 프로그램의 세그먼트 데이터를 EPG를 통해 제공할 수 있다.
표 3의 경우, 갱신된 EIT를 이용하여 "영화 4"를 이루는 각각의 세그먼트를마치 세 개의 프로그램인 "영화 4-1장", "영화 4-2장", "영화 4-3장"으로 영화 4를 표시한다. 그러므로 DVR이 항상 저장되고 있는 프로그램에 대한 EPG데이터의 갱신 여부를 지속적으로 확인하면, DVR 사용자는 표 3에서와 같이 갱신된 저장 목록을 통하여 저장된 영화 4를 처음부터가 아니라, "영화 4-1장", "영화 4-2장", "영화 4-3장"과 같이 세그먼트 단위로 선택하여 재생할 수 있다.
표 4는 갱신된 EPG를 이용하여 다른 형태의 저장 목록을 표시하는 방법을 제시한다. 표 3은 하나의 프로그램이 여러 개의 세그먼트로 이루어져 있을 경우에 많은 공간을 차지하므로 표 4에서와 같이 여러 개의 세그먼트가 하나의 프로그램으로 묶여 표시될 수 있다. 여러 개의 세그먼트가 하나의 프로그램에 묶여 표시될 때 해당 프로그램 옆에 또 다른 부가적인 표식(아이콘)을 표시한다. 표식이 된 프로그램을 선택하면, 프로그램을 이루는 세그먼트의 정보가 표시된다. 예를 들어 표 4에서 "영화 4" 옆의 표식(E)은 "영화 4"가 여러 개의 세그먼트로 구성되어 있으며, 해당 프로그램의 세그먼트에 대한 정보를 표시할 수 있음을 나타낸다. 그러므로 "영화 4"를 원격 제어기 등과 같은 입력 장치를 동하여 선택하면, 표 3에서와 같이 영화 4를 이루는 세그먼트에 대한 세그먼트 정보가 확장되어 표시된다. 이러한 방식을 통하여 계층적 브라우징을 위한 메타데이터를 EPG를 사용하여 표시할 수 있다.
DVR에서 빠른 접근(Fast Access in DVR)
도 17은 DVR의 구성도이다. DVR은 이중 포트 램(dual-port ram)(1712), CPU(1714), 하드디스크(HDD)(1710) 및 제어기(1716)로 구성된다. 이중 포트 램은스위치(1708)를 통해 두 가지 경로 중에서 선택된 경로로부터 부호화된 오디오/비디오 스트림을 공급받아 저장한다. 첫 번째 경로는 동조기(tuner)(1704) 및 부호화기(1706)로 이루어져 있으며, 이는 아날로그 방송 스트림을 수신할 때 스위치(1708)에 의해 선택된다. 아날로그 방송 스트림은 동조기(1704)에 의하여 수신되며, 부호화기(1706)를 통하여 아날로그로부터 디지털 방식으로 변환된다. 두 번째 경로는 동조기(1702) 및 역다중화기(1718)로 이루어져 있으며, 이는 디지털 방송 스트림이 수신될 때 스위치(1708)에 의하여 선택된다. 동조기(1702)는 디지털 방송 스트림을 수신하여 바로 램(1712)으로 보낸다. 두 번째 경로에서 동조기(1702)는 디지털 방송 신호를 받아 직접 램(1712)으로 전송하는데, 이는 수신된 방송 스트림이 이미 디지털화 되어있기 때문이다(즉, 부호화를 필요로 하지 않는다). 상업적으로 사용 가능한 MPEG-2 복호기와 같은 복호기(1730)는 수신된 디지털 방송 스트림을 복호화하는 역할을 한다. 복호화된 프레임은 화면 버퍼(1742)에 저장되어 화면 장치(1720)에 출력된다.
상술한 바와 같이, DVR은 하드디스크에 저장된 미디어를 재생 할 수 있다. 디지털 방송의 경우, 방송 스트림은 MPEG-2 트랜스포트 스트림 형식으로 전송되며, 트랜스포트 스트림의 형식으로 방송 스트림이 DVR의 하드디스크에 저장된다. 반면에 일부 DVR기기는 트랜스포트 스트림의 페이로드만을 추출하여 하드디스크에 저장하는 방식을 취하기도 한다. 아날로그 방송의 경우, 수신된 아날로그 방송이 일반적으로 MPEG-2 프로그램 스트림 형식으로 부호화되어 저장된다. DVR 클라이언트는 색인 시스템이 작성한 메타데이터를 받아 DVR 사용자가 프로그램에서 원하는 비디오 세그먼트로부터 재생할 수 있도록 한다. 이때 클라이언트 측의 관점에서 가장 중요한 것은, 메타데이터가 가리키는 특정 미디어 위치로부터 빠른 재생이 가능하도록, 저장된 스트림에 대한 효율적인 임의 접근 방법이 제공되어야 한다는 것이다.
임의의 미디어 위치에 빨리 접근하기 위해서는 방송시간 또는 이와 동등한 시간이나 NPT 시간에 해당되는 바이트 위치에 대한 정보를 필요로 한다. 상술한 바와 같이, 임의 접근을 위한 PTS 값의 사용은 많은 양의 계산량을 요구하는 PES 레이어(layer)의 분석 및 디스크램블 과정을 필요로 하므로 적절치 않다. 또한 PTS 값은 동일한 미디어가 방송되어도 틀려질 수 있기 때문에, 미디어 위치의 탐색을 위해서는 PTS 값을 이용하는 것보다 방송시간을 이용하는 것이 더 적절하다. 미디어 위치 탐색을 위해 본 발명은 방송시간을 그 자체를 사용하거나, EPG의 시작시간(방송시간)과 미디어시간을 이용하여 얻어진 방송시간을 사용한다. 디지털 방송의 경우, 방송시간은 ATSC의 STT 또는 DVB의 TDT를 포함하는 트랜스포트 스트림으로부터 직접 얻는다. 즉 미디어 위치 탐색을 위한 STT/TDT 등과 같은 방송시간의 이용은 두 개의 큰 장점이 있다. i) STT/TDT를 포함한 트랜스포트 스트림은 ATSC 또는 DVB 표준 방식에 의해서 스크램블되어 있지 않으며 ii) PES 패킷이 여러 개의 트랜스포트 스트림 패킷으로 이루어져 있을 수 있으므로 STT/TDT를 포함한 트랜스포트 스트림 패킷을 분석하는 것은 PES 패킷을 분석하여 PTS를 얻는 것보다 더욱 효과적이다. 또한 NPT는 MPEG-2의 스크램블 되지 않은 트랜스포트 스트림의 프라이빗 섹션(private section) 내부에 있어, NPT가 방송 스트림에 부가되어 방송된다면 미디어 위치 탐색을 위해 이용될 수도 있다.
또한 방송 스트림이 19.4 Mbps와 같은 고정 비트 율(constant bit rate)로 전송될 경우, PCR 값을 이용하여 메타데이터가 가리키는 미디어 위치에 도달하기 위해 건너뛰어야 할 바이트 수를 예측할 수 있다.
클라이언트 기기가 대부분 원가를 낮추기 위해 매우 낮은 사양의 CPU(1714)를 이용하기 때문에 DVR 클라이언트에서 빠른 임의 접근은 매우 중요하다. 또한 빠른 임의 접근은 고속 재생(fast forward/backward) 등과 같은 트릭 모드(trick mode)를 지원하기 위해 필수적이다. 그러므로 임의 접근은 효과적으로 진행되어야 한다. 본 발명은 미디어 스트림의 임의의 위치에 빨리 접근하기 위해 STT/TDT 또는 NPT와 같은 방송시간을 이용하는 방법을 제안한다. 그렇기 때문에 디지털 방송 스트림이 DVR에 저장될 경우, 방송시간을 가지는 트랜스포트 스트림을 하드에 저장하는 것이 유리하다.
본 발명에서는 저장된 스트림에 대한 빠른 임의 접근을 위해, 바이트 오프셋 표를 이용하는 것을 제안한다. 도 18의 바이트 오프셋 표는 방송시간 또는 미디어시간과 같은 시간적으로 표본화 된 참조시간, 그리고 저장된 스트림에서의 해당 바이트 위치를 가진다. DVR 클라이언트는 바이트 위치 목록(Byte Positionn1810)과 해당 참조시간(TIMEn1820)(방송시간 또는 미디오 시간으로)을 생성하여 저장한다. 바이트 오프셋 표는 비디오 스트림이 저장되는 동안 생성되거나 비디오 스트림이 저장된 후에 생성된다.
도 3e에서와 같이 인덱싱 마스터에 의해 생성된 메타데이터의 시간 정보에 해당하는 위치를 저장된 압축 스트림에서 접근하기 위해, DVR의 시스템 시계와 인덱싱 마스터의 시스템 시계는 원격 시간 서버를 통해 동기화한다. 또한 아날로그 방송은 시간 정보를 가지고 있지 않기 때문에 DVR이 아날로그 방송을 수신하고 부호화하여 저장할 때, 방송 신호와 함께 표본화된 아날로그 DVR의 시스템 시간을 도 18과 같은 오프셋 표 형식으로 저장하면 유리하다. 대안적으로, 시간적으로 표본화 된 시스템 시간을 부호화되는 방송 스트림에 다중화하여 저장할 수 있다.
메타데이터가 가리키는 지점을 DVR에 저장된 스트림에서 프레임단위로 정확하게 접근하기(Frame-Accurate Access to a Recorded Str4eam Pointed by Metadata)
도 19는 실시간 색인기에 의해 생성된 메타데이터의 시각 색인에 해당하는 시간 또는 프레임 위치를 저장된 스트림에서 프레임 단위로 정확히 접근하는 방법을 나타낸 것이다. 비디오 스트림(1920)은 실시간 색인기(202)에 의해 색인화되는 방송 스트림을 나타내며, 비디오 스트림(1930)은 클라이언트 DVR에 저장된 동일한 방송 스트림을 나타낸다. 비디오 스트림(1920)과 비디오 스트림(1930)은 동일한 방송 스트림을 저장한 것임에도 불구하고 서로 다른 지속 시간을 가질 수 있다. 이는 실시간 색인기와 DVR의 녹화 시작점이 서로 일치되기 어렵기 때문이다.
DVR이 실시간 색인기로부터 저장 프로그램에 대한 메타데이터를 얻을 때, DVR은 수신된 메타데이터의 시간 위치를 자신의 내부 저장소에 저장된 비디오 스트림에서 찾을 수 있어야 한다. 비디오 스트림에서 이 위치를 찾기 위해, DVR의 시스템 시간은 실시간 색인기의 시스템 시간과 동기화되어야 한다. DVR의 시스템 시간이 원격 시간 서버에 의해 실시간 색인기와 동기화되어 있지만, 다양한 이유 때문에 DVR이 메타데이터의 시간 위치를 프레임 단위로 정확하게 접근할 수 없다. 그 이유로 첫째 i) 아날로그 방송의 경우, DVR에서의 부호화는 약간의 시간 지연을 동반한다. 둘째, 디지털 방송의 경우, 디지털 방송 스트림에 포함되어 실려오는 방송시간은, 그 정확성이 초 단위로 제한되어 있다(STT와 TDT의 방송시간은 초 단위로 실려온다). 그러므로 메타데이터가 가리키는 저장 스트림을 프레임 단위로 정확하게 접근하기 위해서는 별도의 방법이 필요하다.
본 발명에서는 이를 해결하기 위해 비디오 분석을 통한 기법을 제시한다. 비록 각각의 비디오 프레임을 구별하기 위한 다양한 방법이 존재하지만, 본 발명에서는 DVR에 저장된 비디오 세그먼트의 연속된 샷의 시간 구간을 이용하여, DVR에 저장된 스트림에서 메타데이터 색인에 사용하였던 해당 비디오 세그먼트를 찾는다. 그러므로 DVR에 저장된 비디오 세그먼트의 시작시간, 그리고 그에 대응하는 실시간 색인기의 비디오 세그먼트의 시작시간을 정확히 프레임 단위로 예측할 수 있으면 메타데이터의 시간 위치를 프레임 단위로 정확하게 접근할 수 있다.
도 19에서와 같이 실시간 색인기는 첫 번째 샷의 시작시간 TIMEi와 각각의 검출된 샷으로부터 얻어진 샷 사이의 시간 구간 Di으로 이루어진 목록을 생성한다. 각각의 샷은 검출 오류를 방지하기 위하여 정밀하게 검출해 낸다. 실시간 색인기는임의의 자동 샷 검출 알고리즘을 이용하여 목록을 생성 저장한다. 이 때 샷 검출은 실시간 색인기에 있는 비디오 스트림 전체에 대하여 수행되어야 한다. 이 후에 첫 번째 샷의 시작시간과 임의의 시간 내에 일어나는 일련의 샷에 대한 시간 구간을 가지는 메타데이터를 DVR에 보낸다. 예를 들어 샷의 시작시간 TIME2와 연속된 3 개의 샷에 대한 시간 구간 집합(D2, D3, D4)을 DVR에 보낸다. 이때 메타데이터는 다양한 방식으로 전송될 수 있다. 예를 들어, 아날로그 방송의 경우 VBI(vertical blank interval)를 이용하여 메타데이터를 전송할 수 있다. DVR은 저장된 스트림에 대한 메타데이터를 받으면 저장된 스트림의 TIME2에 해당되는 시점에서 일정한 시점 전부터 샷 검출 알고리즘을 수행하며, 샷 검출 알고리즘은 실시간 색인기에서 이용된 샷 검출 방법과 가능한 한 같아야 한다. 이를 통하여 저장된 스트림에서 연속된 샷의 시간 구간 집합(DR1, DR2, DR3) 과 함께 첫 번째 샷의 시작시간 TIMER1을 얻어 저장한다. 하지만 대부분의 DVR이 낮은 사양의 CPU를 가지고 있으므로 샷 검출은 비디오 스트림(1930)에서 아주 작은 시간에 대하여 수행된다.
(D2,D3,D4)에 해당하는 일련의 값이 (DR1, DR2, DR3)와 일치하면 실시간 색인기와 DVR간의 시간 차이를 TIME2와 TIMER1과의 차이를 통해 얻는다. 프레임 단위로 정확하게 원하는 위치에 접근하기 위해서 TIME2, (D2,D3,D4), TIMER1, (DR1, DR2, DR3) 는 1/30초 단위로 정확해야 한다. 이렇게 정확한 시간을 얻기 위해서 저장된 스트림의 PTS와 PCR을 이용한다. 만일 일치하는 두 개의 시간 구간을 DVR이 찾을 수 없으면 실시간 색인기는 새로운 시간 구간을 DVR에 보내며 상술한 일련의 방법이 다시 수행된다. 이러한 방법을 통하여 메타데이터의 시간 위치를 DVR에 저장된 스트림에서 프레임 단위로 정확하게 찾아낼 수 있다. DVR과 실시간 색인기의 동기화를 위하여, DVR은 검출된 시간 구간 집합(DR1, DR2, and DR3)과 첫 번째 샷의 시작시간 TIMER1을 실시간 색인기로 역으로 보낼 수 있다.
축소영상과 율동영상(Thumbnails and Visual Rhythm Images)
본 발명에서 명시된 다양한 도면에서 작은 그림은 축소 영상(thumbnail image), 키프레임 영상 또는 생방송 화면(live broadcast)일 수 있다. 도 20은 선화 영상(line drawing image)(2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012)으로써 상술한 도면에서 이용되는 작은 영상을 대체할 수 있다. 일반적으로 하나의 선화 영상은 임의의 하나의 작은 이미지를 대체한다. 하지만 두 개의 인접한 영상이 임의의 지점(예를 들어 두 개의 서로 다른 화면에 대한 키프레임)을 나타내야 한다면, 두 개의 서로 다른 작은 선화 영상이 그 두 개의 작은 영상을 대체하여야 한다.
도 21은 시각율동 영상의 일부분(2100)을 도시한 것이다. 시각율동 영상의 세로 줄은 각각의 프레임으로부터 얻어진다. 시각율동 영상은 시각율동 영상을 얻기 위해 각각의 프레임이 표본화되면서 왼쪽에서 오른쪽으로 세로줄이 하나씩 추가되어 생성된다. 시각율동 영상에서 특정한 무늬는 특정한 비디오 효과를 나타낸다. 도 21에서와 같이 갑작스러운 세로줄의 변화(2110A, 2110B, 2110C, 2110D, 2110E, 2110F)는 "컷(cut)"효과를 나타낸다. 쐐기 모양의 무늬(2120A) 및 대각선 모양의 무늬는 다양한 종류의 "와이프(wipe)" 효과를 나타낸다. 또한 여러 가지의 비디오 편집 효과가 시각율동 영상을 통해 검출될 수 있는데, "페이드(fade)"는 단색의 세로 패턴으로부터 다른 패턴으로 점진적으로 변화되어 검출 가능하며, "디졸브(dissolve)"는 하나의 세로 패턴으로부터 다른 패턴으로 점진적으로 변화되어 검출 가능하며, "줌인(zoom-in)"은 바깥쪽으로 휩쓸리는 패턴(2150A, 2150C)으로 나타나 검출가능하며 (세로 줄의 임의의 점 두 개가 점진적으로 서로 떨어진다), "줌 아웃(zoom-out)"은 안쪽으로 휩쓸리는 패턴(2150B, 2150C)으로 나타나 검출 가능하다(세로 줄의 임의의 점 두 개가 점진적으로 서로 붙는다).
본 발명의 메타데이터 서비스 제공 방법, 하이라이트 실시간 생성 방법 및 방송 프로그램 스트림 임의 접근 방법은 빠른 시간에 생방송 프로그램의 하이라이트 요약을 생성할 수 있게 하는 "코어스투파인(coarse-to-fine)" 색인 방법을 제공하여 TV 방송 프로그램을 효율적으로 색인하고 메타데이터를 STB로 전송하고, DVR에 저장된 프로그램의 일부분(sub-parts)에 효율적으로 임의 접근할 수 있으며, 비용을 절약할 수 있다.

Claims (19)

  1. 방송국이 수신 기기를 가진 시청자에게 TV 및 오디오 프로그램을 포함하는 방송 스트림을 방송하는 단계와,
    상기 방송 스트림을 분석하여 하이라이트를 포함한 관련 메타데이터를 생성하고, 상기 생성된 메타데이터를 상기 시청자 수신기기에 전송하는 단계를 포함하는
    메타데이터 서비스 제공 방법.
  2. 제 1 항에 있어서,
    상기 방송 스트림을 분석하고 관련 메타데이터를 생성하는 상기 단계는 상기 방송국으로부터 상기 방송 스트림을 수신하는 메타데이터 서비스 제공자에 의해 수행되는
    메타데이터 서비스 제공 방법.
  3. 제 1 항에 있어서,
    상기 메타데이터를 상기 시청자 수신기기에 전송하는 상기 단계는 인터넷, 인트라넷, PSTN, 케이블 모뎀 및 위성 중 적어도 하나를 포함하는 상향채널(backchannel)을 통해 상기 방송 스트림과는 별개로 수행되는
    메타데이터 서비스 제공 방법.
  4. 제 1 항에 있어서,
    상기 메타데이터를 상기 시청자 수신기기에 전송하는 상기 단계는,
    상기 메타데이터를 피드백 루프(feedback loop)를 통해 상기 방송국의 다중화기에 공급하는 단계와,
    상기 메타데이터를 현재의 방송 스트림에 다중화하여 상기 방송 스트림과 같이 방송함으로써 수행되는 단계를 포함하는
    메타데이터 서비스 제공 방법.
  5. 제 1 항에 있어서,
    상기 방송 스트림을 분석하고 관련 메타데이터를 생성하는 상기 단계는 방송 전에 수행되는
    메타데이터 서비스 제공 방법.
  6. 제 1 항에 있어서,
    상기 메타데이터를 상기 시청자 수신기기에 전송하는 상기 단계는 상기 메타데이터를 상기 비디오 스트림에 다중화하여 수행되는
    메타데이터 서비스 제공 방법.
  7. 제 1 항에 있어서,
    방송 프로그램에 대한 상기 메타데이터는 전자 프로그래밍 가이드(EPG) 데이터 필드에 삽입되어 상기 시청자의 수신기기에 전송되는
    메타데이터 서비스 제공 방법.
  8. 제 1 항에 있어서,
    상기 메타데이터에 포함된 시간 색인(time index)은 상기 시청자 수신 기기가 위치한 지역의 방송시간(broadcasting time)으로 표시되는
    메타데이터 서비스 제공 방법.
  9. 제 1 항에 있어서,
    상기 메타데이터에 포함된 시간 색인은 EPG에 기술된 상기 방송 프로그램의 시작시간으로부터의 상대 시간으로 규정되는 미디어시간(media time)으로 표시되는
    메타데이터 서비스 제공 방법.
  10. 제 1 항에 있어서,
    상기 시청자 수신 기기는 디지털 비디오 레코더(DVR) 기능을 가진 디지털 셋톱 박스(STB)를 포함하는
    메타데이터 서비스 제공 방법.
  11. 비디오 또는 오디오 프로그램에 대한 하이라이트를 실시간으로 생성하는 방법에 있어서,
    색인을 간략하게 하고 난 후에 정교하게 보정하는 것(coarse-to-fine indexing)을 포함하는 색인화 과정을 수행하는 단계와,
    상기 비디오 프로그램을 시청하면서 실시간으로 하이라이트 인스턴스(highlight instance)에 시간소인(time stamp)을 표시하여, 원하는 하이라이트 인스턴스를 획득하는 것을 포함하는 하이라이트 표시기(highlight marker)의 간략한 색인(coarse indexing) 단계와,
    상기 획득된 하이라이트 인스턴스를 주색인기(main indexer)에 전송하는 단계와,
    상기 획득된 하이라이트 인스턴스의 시간 정보를 수정하여 정확한 시간 정보를 갖게 하는 것을 포함하는 상기 주색인기의 정교한 색인(fine indexing) 단계를 포함하는
    하이라이트 실시간 생성 방법.
  12. 제 11 항에 있어서,
    다수의 하이라이트 템플릿(highlight template)을 제공하는 단계를 더 포함하고,
    상기 하이라이트 표시기의 상기 간략한 색인 단계는,
    상기 색인 작업 전에, 하이라이트 템플릿 데이터베이스의 각종 템플릿에서 많은 관련 하이라이트 템플릿을 선택하여, 상기 선택된 하이라이트 템플릿을 상기 하이라이트 표시기에 적재하여 하이라이트 표시기를 초기화하는 단계와,
    비디오 프로그램을 시청하면서 주요 하이라이트 인스턴스가 발견될 때의 시간소인을 수작업으로 표시함으로써 새로운 하이라이트 인스턴스를 획득하는 단계와,
    상기 하이라이트 표시기를 이용하여 상기 적재된 하이라이트 템플릿에서 선택한 관련 하이라이트 주제를 상기 획득된 하이라이트 인스턴스에 첨부하는 단계와,
    상기 하이라이트 표시기를 이용하여 상기 획득된 하이라이트 인스턴스의 짧은 주석을 첨부하는 단계와,
    상기 획득된 하이라이트 인스턴스에 대한 시간소인 정보, 상기 첨부된 하이라이트 주제 및 상기 주석을 정교한 색인을 위해 주색인기에 전송하는 단계를 포함하는
    하이라이트 실시간 생성 방법.
  13. 제 11 항에 있어서,
    상기 주색인기의 상기 정교한 색인 단계는,
    상기 획득된 하이라이트 인스턴스를 수신한 후, 상기 획득된 하이라이트 인스턴스의 정확한 시간 구간을 샷 경계 알고리즘에 의해 자동으로 얻음으로써 상기 비디오 스트림에 상기 획득된 하이라이트 인스턴스를 대응시키는 단계와,
    상기 자동으로 얻어진 시간 구간을 수작업으로 더욱 정교하게 보정하는 단계와,
    상기 획득된 하이라이트 인스턴스에 주석을 첨부하는 단계를 포함하는
    하이라이트 실시간 생성 방법.
  14. 제 13 항에 있어서,
    상기 주색인기의 정교한 색인 단계는,
    상기 획득된 하이라이트 인스턴스의 상기 하이라이트 주제를 이용하여 하이라이트 계층구조의 적절한 위치에 상기 하이라이트 인스턴스를 삽입하되, 상기 하이라이트 계층구조는 상기 하이라이트 템플릿에 대응하는 구조인 단계를 더 포함하는
    하이라이트 실시간 생성 방법.
  15. 수신 장치에서, 방송망으로부터 MPEG 트랜스포트 스트림(transport stream)을 수신하고, 상기 MPEG 트랜스포트 스트림을 동시에 녹화 및 재생하며, 상기 MPEG 트랜스포트 스트림을 분석하여 임의 접근에 필요한 정보를 얻는 단계와,
    방송시간에 따라 녹화된 또는 녹화되고 있는 MPEG 트랜스포트 스트림을 임의로 접근하는 단계를 포함하는
    방송 프로그램 스트림 임의 접근 방법.
  16. 제 15 항에 있어서,
    상기 MPEG 트랜스포트 스트림을 동시에 녹화 및 재생하는 단계는,
    상기 녹화되고 있거나 녹화된 MPEG 트랜스포트 스트림으로부터 방송시간 및 바이트 위치를 추출하는 단계와,
    상기 방송시간과 해당 바이트 위치를 포함하는 바이트 오프셋 테이블(byte-offset table)을 생성하는 단계와,
    상기 바이트 오프셋 테이블을 저장매체에 저장하는 단계를 포함하는
    방송 스트림 임의 접근 방법.
  17. 제 15 항에 있어서,
    상기 방송시간에 따라 상기 저장된 또는 저장되고 있는 MPEG 트랜스포트 스트림을 임의 접근하는 단계는,
    상기 저장된 바이트 오프셋 표를 읽는 단계와,
    상기 바이트-오프셋 테이블에서 주어진 특정 방송 시간에 대응하는 바이트 위치를 읽음으로써, 상기 기록된 MPEG 트랜스포트 스트림에서 상기 특정 방송시간에 해당하는 위치를 탐색하는 단계를 더 포함하는
    방송 스트림 임의 접근 방법.
  18. 제 15 항에 있어서,
    상기 방송시간에 따라 상기 기록된 또는 기록되고 있는 MPEG 트랜스포트 스트림을 임의로 접근하는 단계를 더 포함하며,
    상기 기록되고 있거나 기록된 MPEG 트랜스포트 스트림으로부터 방송시간 및 그 바이트 위치를 추출하는 단계와,
    방송시간에 해당되는 바이트 위치를 상기 MPEG 트랜스포트 스트림으로부터탐색하는 단계를 포함하는
    방송 스트림 임의 접근 방법.
  19. 제 18 항에 있어서,
    방송시간에 따라 바이트 위치를 탐색하는 단계는,
    상기 방송신호가 고정 비트 율(constant bit rate)로 전송될 경우, 상대 시간을 고정 비트 율로 곱하여 그 결과를 상기 기록된 MPEG 트랜스포트 스트림의 시작지점에 더하여 원하는 위치를 추측하는 단계와,
    상기 주어진 방송시간과 그 위치에 있는 상기 트랜스포트 패킷에 포함된 상기 방송시간과의 차이 시간에 따라 더하거나 빼서 상기 바이트 위치를 보정하는 단계를 포함하는
    방송 스트림 임의 접근 방법.
KR1020040010675A 2003-02-19 2004-02-18 생방송 프로그램에 대한 빠른 메타데이터 서비스 제공방법, 하이라이트 실시간 생성 방법 및 방송 프로그램스트림 임의 접근 방법 KR100589823B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/369,333 US7548565B2 (en) 2000-07-24 2003-02-19 Method and apparatus for fast metadata generation, delivery and access for live broadcast program
US10/369,333 2003-02-19

Publications (2)

Publication Number Publication Date
KR20040074623A true KR20040074623A (ko) 2004-08-25
KR100589823B1 KR100589823B1 (ko) 2006-06-14

Family

ID=37361286

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040010675A KR100589823B1 (ko) 2003-02-19 2004-02-18 생방송 프로그램에 대한 빠른 메타데이터 서비스 제공방법, 하이라이트 실시간 생성 방법 및 방송 프로그램스트림 임의 접근 방법

Country Status (1)

Country Link
KR (1) KR100589823B1 (ko)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006078088A1 (en) * 2004-12-06 2006-07-27 Electronics And Telecommunications Research Institute Data for describing contents in multimedia data broadcasting service and apparatus for providing contents using the same
WO2006090982A1 (en) * 2005-02-26 2006-08-31 Samsung Electronics Co., Ltd. Method and apparatus for seeking a part of media contents included in multimedia contents
KR100698153B1 (ko) * 2004-05-31 2007-03-22 엘지전자 주식회사 방송 프로그램을 녹화 및 재생하기 위한 장치 및 방법
WO2007041260A1 (en) * 2005-09-30 2007-04-12 Yahoo! Inc. Identifying portions within media files with location tags
KR100711608B1 (ko) * 2005-10-21 2007-04-27 한국정보통신대학교 산학협력단 홈단말에서 실시간 필터링된 방송 비디오 관리 시스템 및그 방법
KR100785076B1 (ko) * 2006-06-15 2007-12-12 삼성전자주식회사 스포츠 동영상에서의 실시간 이벤트 검출 방법 및 그 장치
US7412534B2 (en) 2005-09-30 2008-08-12 Yahoo! Inc. Subscription control panel
WO2009039055A1 (en) * 2007-09-20 2009-03-26 Microsoft Corporation Pivotable events timeline
WO2009110897A1 (en) * 2008-03-05 2009-09-11 Hewlett-Packard Development Company, L.P. Synchronizing and windowing external content in digital display systems
WO2009151789A3 (en) * 2008-04-17 2010-02-25 Sony Corporation Dual-type of playback for multimedia content
WO2011122914A3 (ko) * 2010-04-02 2011-12-29 삼성전자 주식회사 2차원 컨텐트와 3차원 컨텐트를 제공하기 위한 디지털 방송 컨텐트 전송 방법 및 그 장치, 디지털 방송 컨텐트 수신 방법 및 그 장치
US8108378B2 (en) 2005-09-30 2012-01-31 Yahoo! Inc. Podcast search engine
KR101216083B1 (ko) * 2006-01-12 2012-12-26 엘지전자 주식회사 디지털 방송 양방향서비스 구현방법 및 이를 위한 단말기
KR101294383B1 (ko) * 2006-12-12 2013-08-08 엘지전자 주식회사 영상표시기기의 북마크 설정 장치 및 방법
US8893203B2 (en) 2007-08-17 2014-11-18 Phoenix Myrrh Technology Pty Ltd. Method and system for content delivery
US9396213B2 (en) 2008-01-07 2016-07-19 Samsung Electronics Co., Ltd. Method for providing keywords, and video apparatus applying the same
KR20180088783A (ko) 2018-08-01 2018-08-07 이문성 실시간 방송 화면의 지정 대상에 대한 부가 정보를 제공하기 위한 시스템 및 그 방법
KR102072617B1 (ko) * 2018-12-07 2020-02-03 주식회사 코난테크놀로지 얼굴 인식 기반 등장인물 정보 제공 시스템의 워크플로우 및 메타데이터 처리방법 및 그 시스템
KR102118093B1 (ko) * 2018-12-07 2020-06-02 주식회사 코난테크놀로지 얼굴 인식 기반 등장인물 정보 제공 시스템의 워크플로우 처리방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436887B1 (ko) 2008-02-26 2014-09-02 에스케이플래닛 주식회사 방송 컨텐츠와 부가 정보의 동기화 방법 및 시스템
US10433030B2 (en) 2014-10-09 2019-10-01 Thuuz, Inc. Generating a customized highlight sequence depicting multiple events
US10536758B2 (en) * 2014-10-09 2020-01-14 Thuuz, Inc. Customized generation of highlight show with narrative component
KR102414783B1 (ko) 2017-11-01 2022-06-30 삼성전자주식회사 전자 장치 및 이의 제어방법

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100698153B1 (ko) * 2004-05-31 2007-03-22 엘지전자 주식회사 방송 프로그램을 녹화 및 재생하기 위한 장치 및 방법
WO2006078088A1 (en) * 2004-12-06 2006-07-27 Electronics And Telecommunications Research Institute Data for describing contents in multimedia data broadcasting service and apparatus for providing contents using the same
WO2006090982A1 (en) * 2005-02-26 2006-08-31 Samsung Electronics Co., Ltd. Method and apparatus for seeking a part of media contents included in multimedia contents
US8108378B2 (en) 2005-09-30 2012-01-31 Yahoo! Inc. Podcast search engine
US7412534B2 (en) 2005-09-30 2008-08-12 Yahoo! Inc. Subscription control panel
WO2007041260A1 (en) * 2005-09-30 2007-04-12 Yahoo! Inc. Identifying portions within media files with location tags
KR100711608B1 (ko) * 2005-10-21 2007-04-27 한국정보통신대학교 산학협력단 홈단말에서 실시간 필터링된 방송 비디오 관리 시스템 및그 방법
KR101216083B1 (ko) * 2006-01-12 2012-12-26 엘지전자 주식회사 디지털 방송 양방향서비스 구현방법 및 이를 위한 단말기
KR100785076B1 (ko) * 2006-06-15 2007-12-12 삼성전자주식회사 스포츠 동영상에서의 실시간 이벤트 검출 방법 및 그 장치
KR101294383B1 (ko) * 2006-12-12 2013-08-08 엘지전자 주식회사 영상표시기기의 북마크 설정 장치 및 방법
US9955222B2 (en) 2007-08-17 2018-04-24 Linius (Aust) Pty Ltd. Method and system for content delivery
US9918134B2 (en) 2007-08-17 2018-03-13 Linius (Aust) Pty Ltd. Method and system for content delivery
US9544657B2 (en) 2007-08-17 2017-01-10 Linius (AUST) Pyt Ltd. Method and system for content delivery
US8893203B2 (en) 2007-08-17 2014-11-18 Phoenix Myrrh Technology Pty Ltd. Method and system for content delivery
WO2009039055A1 (en) * 2007-09-20 2009-03-26 Microsoft Corporation Pivotable events timeline
US9396213B2 (en) 2008-01-07 2016-07-19 Samsung Electronics Co., Ltd. Method for providing keywords, and video apparatus applying the same
US8719868B2 (en) 2008-03-05 2014-05-06 Hewlett-Packard Development Company, L.P. Presentation of combined video signals from multiple sources
GB2470333B (en) * 2008-03-05 2012-05-16 Hewlett Packard Development Co Synchronizing and windowing external content in digital display systems
GB2470333A (en) * 2008-03-05 2010-11-17 Hewlett Packard Development Co Synchronizing and windowing external content in digital display systems
WO2009110897A1 (en) * 2008-03-05 2009-09-11 Hewlett-Packard Development Company, L.P. Synchronizing and windowing external content in digital display systems
US9106802B2 (en) 2008-04-17 2015-08-11 Sony Corporation Dual-type of playback for multimedia content
WO2009151789A3 (en) * 2008-04-17 2010-02-25 Sony Corporation Dual-type of playback for multimedia content
WO2011122914A3 (ko) * 2010-04-02 2011-12-29 삼성전자 주식회사 2차원 컨텐트와 3차원 컨텐트를 제공하기 위한 디지털 방송 컨텐트 전송 방법 및 그 장치, 디지털 방송 컨텐트 수신 방법 및 그 장치
KR20180088783A (ko) 2018-08-01 2018-08-07 이문성 실시간 방송 화면의 지정 대상에 대한 부가 정보를 제공하기 위한 시스템 및 그 방법
KR102072617B1 (ko) * 2018-12-07 2020-02-03 주식회사 코난테크놀로지 얼굴 인식 기반 등장인물 정보 제공 시스템의 워크플로우 및 메타데이터 처리방법 및 그 시스템
KR102118093B1 (ko) * 2018-12-07 2020-06-02 주식회사 코난테크놀로지 얼굴 인식 기반 등장인물 정보 제공 시스템의 워크플로우 처리방법

Also Published As

Publication number Publication date
KR100589823B1 (ko) 2006-06-14

Similar Documents

Publication Publication Date Title
KR100589823B1 (ko) 생방송 프로그램에 대한 빠른 메타데이터 서비스 제공방법, 하이라이트 실시간 생성 방법 및 방송 프로그램스트림 임의 접근 방법
US7548565B2 (en) Method and apparatus for fast metadata generation, delivery and access for live broadcast program
US11825144B2 (en) In-band data recognition and synchronization system
US20200243117A1 (en) Providing Enhanced Content
CA2653308C (en) Method and apparatus for creating and viewing customized multimedia segments
US20040128317A1 (en) Methods and apparatuses for viewing, browsing, navigating and bookmarking videos and displaying images
Yeo et al. Media content management on the DTV platform
WO2006015337A2 (en) Dvd authoring system

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: 20130528

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140116

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150710

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee