KR20110030640A - 관리형 네트워크를 통한 텔레비전 방송 및 비관리형 네트워크를 통한 상호작용 콘텐츠의 클라이언트 장치로의 제공 - Google Patents

관리형 네트워크를 통한 텔레비전 방송 및 비관리형 네트워크를 통한 상호작용 콘텐츠의 클라이언트 장치로의 제공 Download PDF

Info

Publication number
KR20110030640A
KR20110030640A KR1020117001881A KR20117001881A KR20110030640A KR 20110030640 A KR20110030640 A KR 20110030640A KR 1020117001881 A KR1020117001881 A KR 1020117001881A KR 20117001881 A KR20117001881 A KR 20117001881A KR 20110030640 A KR20110030640 A KR 20110030640A
Authority
KR
South Korea
Prior art keywords
content
client device
network
video
interactive content
Prior art date
Application number
KR1020117001881A
Other languages
English (en)
Inventor
레나 와이. 파블로브스카이아
안드레아스 레나르트슨
챨스 로렌스
조슈아 달비
안드레이 마르사빈
그레고리 이. 브라운
제레미 에드몬즈
수에민 리
블래드 샴긴
Original Assignee
액티브비디오 네트웍스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 액티브비디오 네트웍스, 인코포레이티드 filed Critical 액티브비디오 네트웍스, 인코포레이티드
Publication of KR20110030640A publication Critical patent/KR20110030640A/ko

Links

Images

Classifications

    • 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
    • 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
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • 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
    • H04N21/4316Generation 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 for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

클라이언트 장치는 클라이언트 장치에서 관리형 네트워크를 통해 상호작용 식별자를 포함하는 방송 콘텐츠 신호를 수신한다. 상호작용 식별자는 헤더 내에 포함되거나 디지털 비디오 데이터 내에 삽입되는 트리거일 수 있다. 트리거는 시간 성분을 가질 수 있으며, 트리거는 소정 기간 후에 만료될 수 있다. 트리거의 식별에 응답하여, 클라이언트 장치는 비관리형 네트워크를 통해 상호작용 콘텐츠에 대한 요청을 전송한다. 예를 들어, 관리형 네트워크는 단방향 위성 텔레비전 네트워크, IP 텔레비전 네트워크 또는 방송 케이블 텔레비전 네트워크일 수 있으며, 비관리형 네트워크는 인터넷일 수 있다. 클라이언트 장치는 관리형 네트워크로부터 데이터를 수신하는 것과 비관리형 네트워크로부터 데이터를 수신하는 것 사이에서 전환한다.

Description

관리형 네트워크를 통한 텔레비전 방송 및 비관리형 네트워크를 통한 상호작용 콘텐츠의 클라이언트 장치로의 제공{PROVIDING TELEVISION BROADCASTS OVER A MANAGED NETWORK AND INTERACTIVE CONTENT OVER AN UNMANAGED NETWORK TO A CLIENT DEVICE}
우선권
본 국제 특허 출원은 본 명세서에 그 전체가 참고 문헌으로 포함되는, "PROVIDING TELEVISION BROADCASTS OVER A MANAGED NETWORK AND INTERACTIVE CONTENT OVER AN UNMANAGED NETWORK TO A CLIENT DEVICE"라는 제목을 갖는 2008년 6월 25일자로 출원된 미국 특허 가출원 제61/133,102호로부터 우선권을 주장한다.
본 발명은 원격 장치에 상호작용 콘텐츠를 제공하기 위한 시스템들 및 방법들에 관한 것으로서, 구체적으로는 관리형 및 비관리형 네트워크 양자를 이용하는 시스템들 및 방법들에 관한 것이다.
케이블 텔레비전 시스템들에서, 케이블 헤드 엔드(cable head-end)는 콘텐츠를 인코딩된 형태로 하나 이상의 가입자들에게 전송한다. 일반적으로, 콘텐츠는 디지털 MPEG 비디오로서 인코딩되며, 각각의 가입자는 MPEG 비디오 스트림을 디코딩할 수 있는 셋톱 박스 또는 케이블 카드를 구비한다. 현재, 케이블 제공자들은 선형 콘텐츠를 제공하는 것 외에 웹페이지들 또는 월드 가든 콘텐츠(walled-garden content)와 같은 상호작용 콘텐츠를 제공할 수 있다. 인터넷이 더 동적화되어, 웹페이지들 상에 비디오 콘텐츠를 포함하고, 비디오 콘텐츠를 디코딩하기 위한 애플리케이션들 또는 스크립트들을 필요로 함에 따라, 케이블 제공자들은 가입자들에게 이러한 동적 웹페이지들을 볼 수 있는 능력을 제공하도록 적응하여 왔다. 동적 웹페이지를 인코딩된 형태로 요청 가입자에게 전송하기 위해, 케이블 헤드 엔드는 요청된 웹페이지를 검색하고, 웹페이지를 렌더링(rendering)한다. 따라서, 케이블 헤드 엔드는 먼저 동적 웹페이지 내에 나타나는 임의의 인코딩된 콘텐츠를 디코딩해야 한다. 예를 들어, 비디오가 웹페이지 상에서 재생되어야 하는 경우, 헤드 엔드는 인코딩된 비디오를 검색하고, 비디오의 각각의 프레임을 디코딩해야 한다. 이어서, 케이블 헤드 엔드는 각각의 프레임을 렌더링하여, 인터넷 웹페이지의 비트맵 이미지들의 시퀀스를 형성한다. 따라서, 웹페이지는 웹페이지를 형성하는 콘텐츠 모두가 먼저 디코딩된 경우에만 함께 합성될 수 있다. 합성 프레임들이 완성되면, 합성된 비디오가 MPEG 인코더와 같은 인코더로 전송되어 다시 인코딩된다. 이어서, 압축된 MPEG 비디오 프레임들이 MPEG 비디오 스트림으로서 사용자의 셋톱 박스로 전송된다.
케이블 텔레비전 네트워크에서 그러한 인코딩된 합성 비디오 프레임들을 생성하는 것은 집중적인 CPU 및 메모리 처리를 필요로 하는데, 그 이유는 모든 인코딩된 콘텐츠가 먼저 디코딩된 후에 합성되고, 렌더링되고, 다시 인코딩되어야 하기 때문이다. 특히, 케이블 헤드 엔드는 모든 콘텐츠를 실시간으로 디코딩하고 다시 인코딩해야 한다. 따라서, 사용자들이 동적 웹페이지들을 갖는 상호작용 환경에서 작업하는 것을 허가하는 것은 필요한 처리로 인해 케이블 운영자들에게 매우 많은 비용이 들게 한다. 게다가, 그러한 시스템들은 인코딩된 비디오의 재인코딩으로 인해 화질이 저하되는 추가적인 단점을 갖는다.
위성 텔레비전 시스템들은 단방향 송신들로 제한되는 문제를 겪는다. 따라서, 위성 텔레비전 제공자들은 "주문형" 또는 상호작용 서비스들을 제공할 수 없다. 결과적으로, 위성 텔레비전 네트워크들은 가입자들에게 관리형 네트워크를 제공하는 것으로 제한되며, 상호작용 정보에 대한 사용자 요청 액세스를 제공할 수 없다. 다른 통신 시스템들은 예를 들어 단방향 케이블 카드들을 갖는 케이블 가입자들 또는 양방향 통신들을 지원하지 않는 케이블 시스템들에 상호작용 콘텐츠를 제공할 수 없다.
본 발명의 제1 실시예에서는, 비관리형 네트워크를 통해 사용자의 디스플레이 장치에 상호작용 콘텐츠가 제공된다. 클라이언트 장치는 클라이언트 장치에서 관리형 네트워크를 통해 상호작용 식별자를 포함하는 방송 콘텐츠 신호를 수신한다. 상호작용 식별자는 헤더 내에 포함되거나 디지털 비디오 데이터 내에 삽입되는 트리거일 수 있다. 트리거는 데이터 스트림 내의 트리거의 시간적 위치 또는 활성화를 위한 지정된 프레임 또는 시간에 의존하는 시간 성분을 가질 수 있다. 게다가, 트리거들은 만기를 가질 수 있으며, 트리거는 소정 기간 후에 만료될 수 있다. 트리거의 식별에 응답하여, 클라이언트 장치는 비관리형 네트워크를 통해 상호작용 콘텐츠에 대한 요청을 전송한다. 예를 들어, 관리형 네트워크는 단방향 위성 텔레비전 네트워크, IP 텔레비전 네트워크 또는 방송 케이블 텔레비전 네트워크일 수 있으며, 비관리형 네트워크는 인터넷일 수 있다. 클라이언트 장치는 관리형 네트워크로부터 데이터를 수신하는 것과 비관리형 네트워크로부터 데이터를 수신하는 것 사이에서 전환한다. 비관리형 네트워크를 통해 수신되는 상호작용 콘텐츠는 사용자의 클라이언트 장치와 관련된 디스플레이 장치에 제공된다. 방송 콘텐츠 신호는 복수의 방송 프로그램을 포함할 수 있으며, 클라이언트 장치는 방송 프로그램들 중 하나를 관련 디스플레이 장치로 선택적으로 출력한다. 상호작용 콘텐츠는 하나 이상의 소스로부터 생성될 수 있다. 예를 들어, 상호작용 콘텐츠는 처리 오피스(processing office)에서 생성되는 템플릿 및 원격 서버로부터 오는 비디오 콘텐츠로 구성될 수 있다. 처리 오피스는 상호작용 콘텐츠를 수집하고, 상호작용 콘텐츠를 함께 스티칭(stitching)하고, 상호작용 콘텐츠를 클라이언트 장치에 의해 디코딩 가능한 포맷으로 인코딩하고, 상호작용 콘텐츠를 비관리형 네트워크를 통해 클라이언트 장치로 전송할 수 있다.
소정 실시예들에서, 관리형 및 비관리형 네트워크들 양자는 단일 통신 링크를 통해 동작할 수 있다. 예를 들어, 비관리형 네트워크는 케이블 또는 DSL 링크를 통해 IP 프로토콜을 이용하는 인터넷일 수 있으며, 관리형 네트워크는 텔레비전 프로그램들을 방송하는 IP 프로토콜 텔레비전 네트워크일 수 있다. 본 발명의 실시예들에서, 클라이언트 장치는 비관리형 및 관리형 네트워크들 양자에 대한 포트들을 포함하고, 트리거의 존재와 같은 이벤트가 발생할 때 스위치가 2개의 네트워크 사이에서 전환하게 하기 위한 프로세서를 포함한다. 클라이언트 장치는 하나 이상의 디코더도 포함한다. 각각의 디코더는 상이한 네트워크로부터의 데이터 상에 작용할 수 있다. 클라이언트 장치는 사용자 입력 장치로부터 지시를 수신하기 위한 적외선 포트도 포함할 수 있다.
일부 실시예들에서, 트리거는 방송 콘텐츠 신호 내에서 발생하지 않을 수도 있다. 오히려, 트리거는 클라이언트 장치와 통신하고 클라이언트 장치가 네트워크들 사이에서 전환하게 하는 입력 장치와의 사용자에 의한 상호작용의 결과로서 발생할 수 있다. 예를 들어, 사용자는 클라이언트 장치를 통해 사용자의 텔레비전에 제공되는 위성 방송을 시청할 수 있다. 사용자가 원격 제어 장치 상의 버튼을 누름으로써 이루어지는 상호작용 세션에 대한 요청의 수신시에, 클라이언트 장치는 위성 방송을 제공하는 것과 비관리형 네트워크를 통해 콘텐츠를 제공하는 것 사이에서 전환한다. 클라이언트 장치는 처리 오피스와의 상호작용 세션을 요청하고, 상호작용 콘텐츠가 처리 오피스를 통해 제공될 것이다. 클라이언트 장치는 처리 오피스로부터 송신들을 수신하고, 상호작용 콘텐츠를 디코딩하여 이를 사용자의 텔레비전에 제공할 것이다.
다른 실시예에서, QAM 튜너와 같은 튜너가 텔레비전에 결합된 개별 박스 내에 또는 텔레비전의 일부로서 제공된다. QAM 튜너는 방송 케이블 콘텐츠를 수신한다. 인터넷 프로토콜(IP) 통신들을 이용하여 인터넷에 대한 접속을 제공하는 IP 장치가 텔레비전에 결합된다. IP 장치는 텔레비전의 외부 또는 내부에 있을 수 있다. 방송 콘텐츠는 텔레비전 내의 프로세서로 하여금 IP 접속을 통해 상호작용 세션을 위한 요청을 처리 오피스로 전송하는 IP 장치로 신호를 지향시키게 하는 트리거 신호를 포함한다. 처리 오피스는 프로세서를 지정하며, 이어서 프로세서는 상호작용 콘텐츠를 검색하고, 함께 스티칭하여, 상호작용 콘텐츠를 IP 장치에 제공한다. 이어서, IP 장치는 상호작용 콘텐츠를 텔레비전에 제공한다. 텔레비전이 디코더를 포함하거나, IP 장치가 디코더를 포함할 수 있다.
본 발명의 상기 특징들은 첨부 도면들과 관련하여 이루어지는 아래의 상세한 설명을 참조하여 더 쉽게 이해될 것이다.
도 1은 본 발명의 일 버전을 구현하기 위한 통신 환경을 나타내는 블록도이다.
도 1a는 영역 처리 오피스들 및 비디오 콘텐츠 배포 네트워크를 나타내는 도면이다.
도 1b는 합성 스트림 프레젠테이션 및 상호작용 레이아웃 파일의 샘플을 나타내는 도면이다.
도 1c는 저작 환경 내의 프레임의 구조를 나타내는 도면이다.
도 1d는 매크로블록들에 의한 프레임의 요소들로의 분할을 나타내는 도면이다.
도 2는 디스플레이 상에 합성된 다수의 소스를 나타내는 도면이다.
도 3은 그루밍(grooming)을 포함하는 시스템의 도면이다.
도 4는 그루밍 전의, 그루밍 후의, 그리고 그루밍된 섹션 내에 비디오 오버레이를 갖는 비디오 프레임을 나타내는 도면이다.
도 5는 그루밍이 어떻게 행해지는지, 예를 들어 B 프레임들의 제거를 나타내는 도면이다.
도 6은 MPEG 프레임 구조를 나타내는 도면이다.
도 7은 I, B 및 P 프레임들에 대한 그루밍 프로세스를 나타내는 흐름도이다.
도 8은 영역 경계 모션 벡터들의 제거를 나타내는 도면이다.
도 9는 DCT 계수들의 재배열을 나타내는 도면이다.
도 10은 대안적인 그루머(groomer)를 나타내는 도면이다.
도 11은 비디오 프레임의 일례를 나타내는 도면이다.
도 12는 서로에 대해 무작위 위치들에서 시작하는 비디오 프레임들을 나타내는 도면이다.
도 13은 픽처 내에 합성된 다수의 MPEG 요소를 갖는 디스플레이의 도면이다.
도 14는 다수의 요소로 구성된 픽처의 슬라이스 분할을 나타내는 도면이다.
도 15는 스티칭을 준비하기 위한 슬라이스 기반 인코딩을 나타내는 도면이다.
도 16은 비디오 요소의 픽처 내로의 합성을 상술하는 도면이다.
도 17은 16x16 크기의 매크로블록 요소의 24x24 크기의 매크로블록들을 포함하는 배경 내로의 합성을 상술하는 도면이다.
도 18은 합성된 픽처의 인코딩 및 형성에 수반되는 단계들을 나타내는 흐름도이다.
도 19는 그루밍의 간단한 예를 제공하는 도면이다.
도 20은 합성된 요소가 직사각형이거나 연속적일 필요가 없음을 나타내는 도면이다.
도 21은 단일 요소가 연속이 아닌 스크린 상의 요소들의 도면이다.
도 22는 복수의 처리 오피스 및/또는 세션 프로세서로 멀티캐스트할 선형 방송 콘텐츠를 그루밍하기 위한 그루머를 나타내는 도면이다.
도 23은 디스플레이 장치 상에 표시될 때의 맞춤화된 모자이크의 일례를 나타내는 도면이다.
도 24는 상호작용 MPEG 콘텐츠를 제공하기 위한 IP 기반 네트워크의 도면이다.
도 25는 상호작용 MPEG 콘텐츠를 제공하기 위한 케이블 기반 네트워크의 도면이다.
도 26은 케이블 기반 네트워크에서 사용할 로드 밸런서의 자원 할당 프로세스의 흐름도이다.
도 27은 로드 밸런싱을 위한 케이블 네트워크 요소들 간의 통신을 나타내는 데 사용되는 시스템 도면이다.
도 28은 비관리형 IP 네트워크를 통해 상호작용 콘텐츠를 가입자들에게 제공할 수 있는 관리형 방송 콘텐츠 위성 네트워크의 도면이다.
도 29는 클라이언트 장치가 관리형 네트워크를 통해 방송 콘텐츠를 수신하고, 상호작용 콘텐츠가 비관리형 네트워크를 통해 요청될 수 있고 제공되는 다른 환경을 나타내는 도면이다.
아래의 상세한 설명에서 그리고 첨부된 청구항들에서 사용될 때, "영역(region)"이라는 용어는 연속적이거나 비연속적인 MPEG(Motion Picture Expert Group) 슬라이스들의 논리적 그룹을 의미할 것이다. MPEG이라는 용어가 사용될 때, 이 용어는 MPEG-2 및 MPEG-4를 포함하는 MPEG 표준의 모든 변형들을 지칭할 것이다. 아래의 실시예들에서 설명되는 바와 같은 본 발명은 처리 오피스와 텔레비전 등의 관련 디스플레이를 갖는 클라이언트 장치 사이의 상호작용 MPEG 콘텐츠 및 통신들을 위한 환경을 제공한다. 본 발명은 특히 MPEG 사양 및 인코딩을 참조하지만, 본 발명의 원리들은 블록 기반 변환들에 기초하는 다른 인코딩 기술들과 더불어 이용될 수 있다. 아래의 명세서 및 첨부된 청구항들에서 사용될 때, 인코드, 인코딩된 및 인코딩이라는 용어들은 디지털 데이터 신호를 압축하고, 압축된 디지털 데이터 신호를 프로토콜 또는 표준으로 포맷팅하는 프로세스를 지칭할 것이다. 인코딩된 비디오 데이터는 공간 표현이 아닌 임의의 상태에 있을 수 있다. 예를 들어, 인코딩된 비디오 데이터는 변환 코딩, 양자화 및 엔트로피 인코딩되거나, 또는 이들의 임의 조합일 수 있다. 따라서, 변환 코딩된 데이터는 인코딩된 것으로 간주될 것이다.
본 출원은 디스플레이 장치를 텔레비전으로서 지칭하지만, 디스플레이 장치는 디스플레이를 포함하는 셀폰, 개인용 휴대 단말기(PDA) 또는 기타 장치일 수 있다. MPEG 콘텐츠를 디코딩할 수 있는 셋톱 박스 등의 디코딩 장치를 포함하는 클라이언트 장치가 사용자의 디스플레이 장치와 연관된다. 소정 실시예들에서, 디코더는 디스플레이 장치의 일부일 수 있다. 상호작용 MPEG 콘텐츠는 애플리케이션 설계자가 콘텐츠 제공자들 및 선형 방송국들로부터의 비디오 콘텐츠를 포함하는 다양한 요소들로부터의 하나 이상의 장면들을 갖는 애플리케이션을 생성하는 상호작용 MPEG 콘텐츠를 설계하는 것을 가능하게 하는 저작 환경에서 생성된다. 애플리케이션 파일은 액티브 비디오 마크업 언어(AVML)로 형성된다. 저작 환경에 의해 생성된 AVML 파일은 단일 프레임/페이지 내의 비디오 그래픽 요소들(즉, MPEG 슬라이스들), 비디오 그래픽 요소들의 크기들, 각각의 장면에 대한 페이지/프레임 내의 비디오 그래픽 요소들의 레이아웃, 비디오 그래픽 요소들에 대한 링크들 및 장면에 대한 임의의 스크립트들을 정의하는 XML 기반 파일이다. 소정 실시예들에서, AVML 파일은 텍스트 편집기에서 작성되거나 저작 환경에 의해 생성되는 것이 아니라 직접 작성될 수 있다. 비디오 그래픽 요소들은 정적 그래픽, 동적 그래픽 또는 비디오 콘텐츠일 수 있다. 장면 내의 각각의 요소는 사실상 이미지들의 시퀀스이며, 정적 그래픽은 반복 표시되고 시간에 따라 변하지 않는 이미지라는 것을 인식해야 한다. 요소들의 각각은 그래픽에 대한 MPEG 데이터 및 그래픽과 관련된 동작들 모두를 포함할 수 있는 MPEG 객체일 수 있다. 상호작용 MPEG 콘텐츠는 사용자가 상호작용할 수 있는 장면 내의 다수의 상호작용 MPEG 객체를 포함할 수 있다. 예를 들어, 장면은 객체에 대한 비디오 그래픽을 형성하는 인코딩된 MPEG 데이터를 제공하고, 또한 버튼 상태의 추적을 유지하기 위한 절차를 포함하는 버튼 MPEG 객체를 포함할 수 있다. MPEG 객체들은 스크립트들과 연계하여 동작할 수 있다. 예를 들어, MPEG 버튼 객체가 그의 상태(온/오프)의 추적을 유지할 수 있지만, 장면 내의 스크립트가 해당 버튼이 눌렸을 때 무슨 일이 일어났는지를 결정할 것이다. 스크립트는 버튼 상태를 비디오 프로그램과 연관시킬 수 있으며, 따라서 버튼은 비디오 콘텐츠가 재생되고 있는지 중지되었는지를 지시할 것이다. MPEG 객체들은 관련 액션을 객체의 일부로서 항상 갖는다. 소정 실시예들에서, 버튼 MPEG 객체와 같은 MPEG 객체들은 버튼의 상태의 추적을 유지하는 것 외의 액션들을 수행할 수 있다. 이러한 실시예들에서, MPEG 객체는 외부 프로그램에 대한 호출도 포함할 수 있으며, 이 경우에 MPEG 객체는 버튼 그래픽이 연계될 때 프로그램에 액세스할 것이다. 따라서, 재생/중지 MPEG 객체 버튼에 대해, MPEG 버튼은 버튼의 상태의 추적을 유지하고, 상태 변화에 기초하여 그래픽 오버레이를 제공하고, 그리고/또는 비디오 플레이어 객체가 버튼의 상태에 따라 비디오 콘텐츠를 재생 또는 중지하게 하는 코드를 포함할 수 있다.
저작 환경 내에서 애플리케이션이 생성되고, 요청 클라이언트 장치에 의해 상호작용 세션이 요청되면, 처리 오피스는 상호작용 세션을 위한 프로세스를 지정한다.
처리 오피스에서 동작하는 지정된 프로세서는 가상 머신을 실행하고, 요청된 애플리케이션에 액세스하고 이를 실행한다. 프로세서는 MPEG 포맷으로 전송할 장면의 그래픽 부분을 준비한다. 클라이언트 장치에 의한 MPEG 전송의 수신 및 사용자의 디스플레이 상의 표시 시에, 사용자는 클라이언트 장치와 통신하는 입력 장치를 이용하여, 표시된 콘텐츠와 상호작용할 수 있다. 클라이언트 장치는 통신 네트워크를 통해 사용자로부터의 입력 요청들을 처소에서 지정된 프로세서 또는 다른 원격 장치에서 실행되는 애플리케이션으로 전송한다. 이에 응답하여, 지정된 프로세서는 요청 및 이하 종합적으로 애플리케이션 상태로서 지칭되는 MPEG 객체들의 상태에 기초하여 그래픽 레이아웃을 갱신한다. 새로운 요소들이 장면에 추가되거나 장면 내에 대치될 수 있거나, 완전히 새로운 장면이 생성될 수 있다. 지정된 프로세서는 장면에 대한 요소들 및 객체들을 수집하며, 지정된 프로세서 또는 다른 프로세서는 객체(들)에 따라 데이터 및 동작들을 처리하고, 사용자의 텔레비전에 표시하기 위해 송수신기로 전송되는 MPEG 포맷의 교정된 그래픽 표현을 생성한다. 위의 설명은 지정된 프로세서가 처리 오피스에 위치하는 것으로 지시하지만, 지정된 프로세서는 원격 위치에 위치할 수도 있으며, 다만 네트워크 접속을 통해 처리 오피스와 통신하면 된다. 마찬가지로, 지정된 프로세서는 클라이언트 장치와의 모든 트랜잭션을 처리하는 것으로 설명되지만, 다른 프로세서들도 애플리케이션에 대한 그래픽 레이아웃의 콘텐츠(MPEG 객체들)의 요청들 및 어셈블리와 연관될 수 있다.
도 1은 본 발명의 일 버전을 구현하기 위한 통신 환경(100)의 블록도이다. 통신 환경(100)은 애플리케이션 프로그래머가 최종 사용자와 양방향 상호작용하기 위한 애플리케이션을 생성하는 것을 가능하게 한다. 최종 사용자는 텔레비전 등의 클라이언트 장치(110) 상에서 애플리케이션을 보고, 업스트림 네트워크(120)를 통해 명령들을 상류로 전송함으로써 콘텐츠와 상호작용할 수 있으며, 여기서 업스트림 및 다운스트림은 처리 오피스에 대한 반환 경로 링크를 제공하는 동일 네트워크 또는 개별 네트워크의 일부일 수 있다. 애플리케이션 프로그래머는 하나 이상의 장면을 포함하는 애플리케이션을 생성한다. 각각의 장면은 장면 내의 각각의 요소가 비디오 시퀀스인 점 외에는 HTML 웹페이지의 등가물이다. 애플리케이션 프로그래머는 장면의 그래픽 표현을 설계하고, 오디오 및 비디오 파일들과 같은 요소들 및 장면에 대한 버튼들 및 제어들과 같은 객체들에 대한 링크들을 포함시킨다. 애플리케이션 프로그래머는 그래픽 저작 도구(130)를 이용하여 객체들 및 요소들을 그래픽 방식으로 선택한다. 저작 환경(130)은 애플리케이션 프로그래머가 메소드들과, 비디오 객체들을 생성하는 요소들을 연관시키는 것을 가능하게 하는 그래픽 인터페이스를 포함할 수 있다. 그래픽은 MPEG 인코딩된 비디오, 그루밍된 MPEG 비디오, 정지 이미지 또는 다른 포맷의 비디오일 수 있다. 애플리케이션 프로그래머는 콘텐츠 제공자들(160)(뉴스 소스, 영화 스튜디오, RSS 피드 등) 및 선형 방송 소스들(방송 미디어 및 케이블, 주문형 비디오 소스 및 웹 기반 비디오 소스)(170)을 포함하는 다수의 소스로부터의 콘텐츠를 애플리케이션 내에 포함시킬 수 있다. 애플리케이션 프로그래머는 애플리케이션을 AVML 파일로서 생성하고, 애플리케이션 파일을 비디오 콘텐츠 배포 네트워크(150) 내의 프록시/캐시(140)로 전송한다. AVML 파일 포맷은 XML 포맷이다. 예를 들어, AVML 파일의 샘플을 보여주는 도 1b를 참고한다.
콘텐츠 제공자(160)는 비디오 콘텐츠를 MPEG 비디오/오디오로서 인코딩하거나, 콘텐츠는 다른 그래픽 포맷(예를 들어, JPEG, BITMAP, H263, H264, VC-1 등)을 가질 수 있다. 이어서, 콘텐츠는 그루머/스케일러(190)에서 그루밍 및/또는 스케일링되어, 스티칭을 허락하는 바람직한 인코딩된 MPEG 포맷으로 될 수 있다. 콘텐츠가 바람직한 MPEG 포맷으로 되지 않은 경우, 처리 오피스는 콘텐츠를 필요로 하는 애플리케이션이 클라이언트 장치에 의해 요청될 때 포맷을 그루밍할 것이다. 콘텐츠 제공자들로부터의 콘텐츠와 같은 방송 미디어 서비스들로부터의 선형 방송 콘텐츠(170)가 그루밍될 것이다. 선형 방송 콘텐츠는 콘텐츠를 처리 오피스로 전송하기 전에 콘텐츠를 스티칭에 바람직한 MPEG 포맷으로 인코딩하는 그루머/스케일러(180)에서 바람직하게 그루밍 및/또는 스케일링된다.
콘텐츠 제공자들(160)로부터의 비디오 콘텐츠는 애플리케이션 프로그래머들에 의해 생성된 애플리케이션들과 더불어 비디오 콘텐츠 배포 네트워크(150)를 통해 배포되고, 배포 포인트들(140)에 저장된다. 이러한 배포 포인트들은 도 1에서 프록시/캐시로서 표시된다. 콘텐츠 제공자들은 비디오 콘텐츠 배포 네트워크에서 상호작용 처리 오피스와 더불어 사용할 그들의 콘텐츠를 프록시/캐시(140) 위치에 배치한다. 따라서, 콘텐츠 제공자들(160)은 비디오 콘텐츠 배포 네트워크(150)의 캐시(140)에 그들의 콘텐츠를 제공할 수 있으며, 본 아키텍처를 구현하는 하나 이상의 처리 오피스는 애플리케이션에 대해 필요할 때 비디오 콘텐츠 배포 네트워크(150)를 통해 콘텐츠에 액세스할 수 있다. 비디오 콘텐츠 배포 네트워크(150)는 로컬 네트워크, 영역 네트워크 또는 글로벌 네트워크일 수 있다. 따라서, 처리 오피스에서 가상 머신이 애플리케이션을 요청할 때, 애플리케이션이 배포 포인트들 중 하나로부터 검색될 수 있으며, 애플리케이션의 AVML 파일 내에 정의된 바와 같은 콘텐츠가 동일하거나 다른 배포 포인트로부터 검색될 수 있다.
시스템의 최종 사용자는 셋톱 박스 등의 클라이언트 장치(110)를 통해 명령을 처리 오피스(105)로 전송하여 상호작용 세션을 요청할 수 있다. 도 1에는 단일 처리 오피스만이 도시되어 있다. 그러나, 실제 세계의 응용들에서는, 상이한 영역들에 위치하는 복수의 처리 오피스가 존재할 수 있으며, 처리 오피스들 각각은 도 1b에 도시된 바와 같이 비디오 콘텐츠 배포 네트워크와 통신한다. 처리 오피스(105)는 상호작용 세션을 위해 최종 사용자에 대한 프로세서를 지정한다. 프로세서는 모든 어드레싱 및 자원 할당을 포함하는 세션을 유지한다. 본 명세서 및 첨부된 청구항들에서 사용될 때, "가상 머신"(106)이라는 용어는 지정된 프로세서는 물론, 처리 오피스와 클라이언트 장치 사이의 세션 관리는 물론, 자원 할당(즉, 상호작용 세션을 위한 프로세서의 지정)과 같은 기능들을 수행하는 처리 오피스의 다른 프로세서들을 지칭할 것이다.
가상 머신(106)은 그의 어드레스를 클라이언트 장치(110)로 전송하고, 상호작용 세션이 설정된다. 이어서, 사용자는 클라이언트 장치(110)를 통해 상호작용 애플리케이션(AVML)의 제공을 요청할 수 있다. 요청은 가상 머신(106)에 의해 수신되고, 이에 응답하여 가상 머신(106)은 AVML 파일이 프록시/캐시(140)로부터 검색되고, 가상 머신(106)에 의해 액세스될 수 있는 메모리 캐시(107) 내에 설치되게 한다. 가상 머신(106)은 복수의 클라이언트 장치(110)와 동시에 통신할 수 있으며, 클라이언트 장치들은 상이한 장치 타입들일 수 있다는 것을 인식해야 한다. 예를 들어, 제1 장치는 셀룰러 전화이고, 제2 장치는 셋톱 박스이고, 제3 장치는 개인용 휴대 단말기일 수 있으며, 각각의 장치는 동일한 또는 상이한 애플리케이션에 액세스할 수 있다.
애플리케이션에 대한 요청에 응답하여, 가상 머신(106)은 애플리케이션을 처리하고, 프록시/캐시로부터 가상 머신(106)과 관련된 메모리(107)로 이동될 장면의 일부인 요소들 및 MPEG 객체들을 요청한다. MPEG 객체는 비주얼 컴포넌트 및 액션 가능 컴포넌트 모두를 포함한다. 비주얼 컴포넌트는 하나 이상의 MPEG 슬라이스로서 인코딩되거나, 다른 그래픽 포맷으로 제공될 수 있다. 액션 가능 컴포넌트는 객체의 상태를 저장하고 있거나, 계산을 수행하거나, 관련 프로그램에 액세스하거나, 오버레이 그래픽을 표시하여 그래픽 컴포넌트를 활성인 것으로서 식별하는 것을 포함할 수 있다. 오버레이 그래픽은 클라이언트 장치로 전송되는 신호에 의해 생성될 수 있으며, 클라이언트 장치는 디스플레이 장치 상의 오버레이 평면에 그래픽을 생성한다. 장면은 정적 그래픽이 아니라, 복수의 비디오 프레임을 포함하며, 프레임들의 콘텐츠는 시간에 따라 변할 수 있다는 것을 인식해야 한다.
가상 머신(106)은 애플리케이션 상태를 포함하는 장면 정보에 기초하여 장면에 대한 다양한 요소들 및 객체들의 크기 및 위치를 결정한다. 각각의 그래픽 요소는 연속 또는 비연속 MPEG 슬라이스들로부터 형성될 수 있다. 가상 머신은 각각의 그래픽 요소에 대한 모든 슬라이스들의 위치의 추적을 유지한다. 그래픽 요소를 정의하는 모든 슬라이스들은 영역을 형성한다. 가상 머신(106)은 각각의 영역의 추적을 유지한다. AVML 파일 내의 표시 위치 정보에 기초하여, 비디오 프레임 내의 요소들 및 배경에 대한 슬라이스 위치들이 설정된다. 그래픽 요소들이 아직 그루밍된 포맷을 갖지 않은 경우, 가상 머신은 해당 요소를 요소 렌더러로 전송한다. 렌더러는 그래픽 요소를 비트맵으로서 렌더링하며, 렌더러는 비트맵을 MPEG 요소 인코더(109)로 전송한다. MPEG 요소 인코더는 비트맵을 MPEG 비디오 시퀀스로서 인코딩한다. MPEG 인코더는 비트맵을 처리하여 일련의 P 프레임들을 출력한다. 아직 사전 인코딩 및 사전 그루밍되지 않은 콘텐츠의 일례는 개인화된 콘텐츠이다. 예를 들어, 사용자가 처리 오피스에 음악 파일들을 저장하였고, 제공될 그래픽 요소가 사용자의 음악 파일들의 리스트인 경우, 이러한 그래픽은 가상 머신에 의해 비트맵으로서 실시간으로 생성될 것이다. 가상 머신은 비트맵을 요소 렌더러(108)로 전송하고, 이 렌더러는 비트맵을 렌더링하고, 비트맵을 그루밍을 위해 MPEG 요소 인코더(109)로 전송할 것이다.
그래픽 요소들이 MPEG 요소 인코더에 의해 그루밍된 후에, MPEG 요소 인코더(109)는 다른 사용자들에 의한 다른 상호작용 세션들을 위해 가상 머신(106)에 의한 나중 검색을 위해 그래픽 요소들을 메모리(107)로 전송한다. MPEG 인코더(109)는 또한 MPEG 인코딩된 그래픽 요소들을 스티처(115)로 전송한다. 요소의 렌더링 및 요소의 MPEG 인코딩은 가상 머신(106)으로부터의 동일 또는 개별 프로세서에서 달성될 수 있다. 가상 머신(106)은 또한 해석될 필요가 있는 애플리케이션 내의 임의의 스크립트들이 존재하는지를 결정한다. 스크립트들이 존재하는 경우, 스크립트들은 가상 머신(106)에 의해 해석된다.
애플리케이션 내의 각각의 장면은 정적 그래픽, 사용자 상호작용에 기초하여 변하는 객체 그래픽, 및 비디오 콘텐츠를 포함하는 복수의 요소를 포함할 수 있다. 예를 들어, 장면은 복수의 버튼을 갖는 오디오, 비디오 및 멀티미디어 콘텐츠(객체 그래픽)의 재생을 위한 미디어 플레이어, 및 스트리밍 비디오 콘텐츠를 표시하기 위한 비디오 콘텐츠 윈도(비디오 콘텐츠)와 더불어, 배경(정적 그래픽)을 포함할 수 있다. 미디어 플레이어의 각각의 버튼 자체는 그 자신의 관련 메소드들을 포함하는 개별 객체 그래픽일 수 있다.
가상 머신(106)은 프레임에 대한 그래픽 요소들(배경, 미디어 플레이어 그래픽 및 비디오 프레임)의 각각을 취득하고, 각각의 요소의 위치를 결정한다. 모든 객체들 및 요소들(배경, 비디오 콘텐츠)이 취득되면, 요소들 및 그래픽 객체들은 요소들 및 MPEG 객체들에 대한 배치 정보와 함께 스티처/합성기(115)로 전송된다. 스티처(115)는 가상 머신(106)에 의해 제공되는 맵핑에 따라 요소들(비디오 콘텐츠, 버튼, 그래픽, 배경)의 각각을 함께 스티칭한다. 요소들의 각각은 매크로블록 경계 상에 배치되며, 요소들은 함께 스티칭될 때 MPEG 비디오 프레임을 형성한다. 주기적으로, 장면 프레임의 모든 요소들을 인코딩하여 참조 P 프레임을 형성함으로써 시퀀스를 리프레시하고 매크로블록들의 누락을 방지한다. 이어서, MPEG 비디오 스트림은 다운스트림 네트워크를 통해 클라이언트 장치의 어드레스로 전송된다. 프로세스는 비디오 프레임들의 각각에 대해 계속된다. 본 명세서는 MPEG을 인코딩 프로세스로서 참조하지만, 다른 인코딩 프로세스들도 이 시스템에서 이용될 수 있다.
처리 오피스(105)의 가상 머신(106) 또는 다른 프로세서 또는 프로세스는 요소들 각각에 대한 정보 및 스크린 상의 요소들의 위치를 유지한다. 가상 머신(106)은 또한 요소들 각각과 관련된 객체들에 대한 메소드들에 대한 액세스를 갖는다. 예컨대, 미디어 플레이어는 복수의 루틴을 포함하는 미디어 플레이어 객체를 가질 수 있다. 루틴들은 재생, 정지, 고속 전진, 되감기 및 중지를 포함할 수 있다. 루틴들의 각각은 코드를 포함하며, 사용자가 루틴들 중 하나의 활성화를 위한 요청을 처리 오피스(105)로 전송할 때, 객체가 액세스되고, 루틴이 실행된다. 루틴은 JAVA 기반 애플릿, 해석될 스크립트, 또는 가상 머신과 관련된 운영 체제 내에서 실행될 수 있는 개별 컴퓨터 프로그램일 수 있다.
처리 오피스(105)는 또한 텔레비전과 관련된 클라이언트 장치로부터 프로세서에 의해 수신된 신호에 기초하여 실행 또는 해석할 루틴을 결정하기 위한 링크된 데이터 구조를 생성할 수 있다. 링크된 데이터 구조는 포함된 맵핑 모듈에 의해 형성될 수 있다. 데이터 구조는 각각의 자원 및 관련 객체를 모든 다른 자원 및 객체에 대해 연관시킨다. 예컨대, 사용자가 이미 재생 제어를 사용하고 있는 경우, 미디어 플레이어 객체가 활성화되고, 비디오 콘텐츠가 표시된다. 비디오 콘텐츠가 미디어 플레이어 윈도 내에 재생되고 있을 때, 사용자는 사용자의 원격 제어 상의 방향 키를 누를 수 있다. 이 예에서, 방향 키의 누름은 정지 버튼의 누름을 지시한다. 송수신기는 방향 신호를 생성하며, 지정된 프로세서는 방향 신호를 수신한다. 가상 머신(106) 또는 처리 오피스(105)의 다른 프로세서는 링크된 데이터 구조에 액세스하여, 방향 키 누름의 방향에서 요소를 찾는다. 데이터베이스는 요소가 미디어 플레이어 객체의 일부인 정지 버튼임을 지시하고, 프로세서는 비디오 콘텐츠를 정지하기 위한 루틴을 이행한다. 루틴은 요청된 콘텐츠가 정지되게 할 것이다. 최종 비디오 콘텐츠 프레임이 프리즈(freeze)될 것이며, 눌러진 정지 버튼 그래픽이 스티처 모듈에 의해 프레임 내로 인터위브(interweave)될 것이다. 루틴은 정지 버튼 주위에 포커스를 제공하기 위한 포커스 그래픽도 포함할 수 있다. 예를 들어, 가상 머신은 스티처가 1 매크로블록 폭의 보더(boarder)로 포커스를 갖는 그래픽을 둘러싸게 할 수 있다. 따라서, 비디오 프레임이 디코딩되고 표시될 때, 사용자는 사용자가 상호작용할 수 있는 그래픽/객체를 식별할 수 있을 것이다. 이어서, 프레임이 멀티플렉서로 전송되고, 다운스트림 네트워크를 통해 클라이언트 장치로 전송될 것이다. MPEG 인코딩된 비디오 프레임은 클라이언트 장치에 의해 디코딩되어, 클라이언트 장치(셀폰, PDA) 상에 또는 개별 디스플레이 장치(모니터, 텔레비전) 상에 표시된다. 이러한 프로세스는 최소로 지연되어 발생한다. 따라서, 애플리케이션으로부터의 각각의 장면은 미디어 플레이어 애플리케이션 상태의 스냅샷을 각각 표현하는 복수의 비디오 프레임이 된다.
가상 머신(106)은 클라이언트 장치로부터 명령들을 반복 수신하고, 명령들에 응답하여 객체들에 직접 또는 간접으로 액세스하고, 사용자 상호작용 및 애플리케이션 상호작용 모델에 응답하여 객체들의 루틴들을 실행 또는 해석할 것이다. 이러한 시스템에서, 사용자의 텔레비전 상에 표시되는 비디오 콘텐츠 재료는 단지 디코딩된 MPEG 콘텐츠이며, 상호작용을 위한 모든 처리는 처리 오피스에서 발생하고, 지정된 가상 머신에 의해 조직화된다. 따라서, 클라이언트 장치는 디코더만을 필요로 하며, 어떠한 콘텐츠도 캐시 또는 처리할 필요가 없다.
클라이언트 장치로부터의 사용자 요청들을 통해, 처리 오피스는 비디오 요소를 다른 비디오 요소로 대체할 수 있다는 것을 인식해야 한다. 예컨대, 사용자는 표시할 영화들의 리스트로부터 선택할 수 있으며, 따라서 사용자가 두 개의 영화 사이에서 전환하기로 선택하는 경우, 제1 비디오 콘텐츠 요소가 제2 비디오 콘텐츠 요소로 대체될 것이다. 각각의 요소의 위치 및 요소를 형성하는 영역의 리스트를 유지하는 가상 머신은 장면 내의 요소들을 쉽게 교체하여 새로운 MPEG 비디오 프레임을 생성할 수 있으며, 스티처(115)에서 새로운 요소를 포함하는 프레임이 함께 스티칭된다.
도 1a는 디지털 콘텐츠 배포 네트워크(100A), 콘텐츠 제공자들(110A) 및 처리 오피스들(120A) 사이의 연동을 나타낸다. 이 예에서, 콘텐츠 제공자들(130A)은 콘텐츠를 비디오 콘텐츠 배포 네트워크(100A) 내에 배포한다. 비디오 콘텐츠 배포 네트워크와 관련된 콘텐츠 제공자들(130A) 또는 프로세서들은 콘텐츠를, 처리 오피스(120A)의 상호작용 MPEG 콘텐츠의 생성에 적합한 MPEG 포맷으로 변환한다. 디지털 콘텐츠 배포 네트워크(100A)의 콘텐츠 관리 서버(140A)는 콘텐츠가 글로벌/전국적 범위인 경우에 상이한 영역들에 배치된 프록시/캐시들(150A-154A) 사이에 MPEG 인코딩된 콘텐츠를 배포한다. 콘텐츠가 영역/로컬 범위인 경우, 콘텐츠는 영역/로컬 프록시/캐시 내에 존재할 것이다. 콘텐츠는 액세스 시간들을 증가시키기 위하여 국가 또는 세계 도처의 상이한 위치들에 미러링(mirroring)될 수 있다. 최종 사용자가 그의 클라이언트 장치(160A)를 통해 영역 처리 오피스로부터 애플리케이션을 요청하는 경우, 영역 처리 오피스는 요청된 애플리케이션에 액세스할 것이다. 요청된 애플리케이션은 비디오 콘텐츠 배포 네트워크 내에 위치하거나, 애플리케이션은 영역 처리 오피스에 국지적으로 또는 상호접속된 처리 오피스들의 네트워크 내에 존재할 수 있다. 애플리케이션이 검색되면, 영역 처리 오피스에서 지정된 가상 머신은 검색될 필요가 있는 비디오 콘텐츠를 결정할 것이다. 콘텐츠 관리 서버(140A)는 가상 머신이 비디오 콘텐츠 배포 네트워크 내에서 콘텐츠를 찾는 것을 돕는다. 콘텐츠 관리 서버(140A)는 콘텐츠가 영역 또는 로컬 프록시/캐시 상에 위치하는지를 결정하고, 또한 가장 가까운 프록시/캐시를 찾을 수 있다. 예를 들어, 애플리케이션은 광고를 포함할 수 있으며, 콘텐츠 관리 서버는 가상 머신에게 로컬 프록시/캐시로부터 광고를 검색하도록 지시할 것이다. 도 1a에 도시된 바와 같이, 중서부 및 남동부 영역 처리 오피스들(120A) 모두도 로컬 프록시/캐시들(153A, 154A)을 갖는다. 이러한 프록시/캐시들은 로컬 뉴스 및 로컬 광고를 포함할 수 있다. 따라서, 남동부의 최종 사용자에게 제공되는 장면들은 중서부의 최종 사용자에게 다르게 나타날 수 있다. 각각의 최종 사용자는 상이한 로컬 뉴스 기사들 또는 상이한 광고를 제공받을 수 있다. 콘텐츠 및 애플리케이션이 검색되면, 가상 머신은 콘텐츠를 처리하여 MPEG 비디오 스트림을 생성한다. 이어서, MPEG 비디오 스트림은 요청 클라이언트 장치로 지향된다. 이어서, 최종 사용자는 콘텐츠와 상호작용하여 새로운 콘텐츠를 갖는 갱신된 장면을 요청할 수 있으며, 처리 오피스의 가상 머신은 비디오 콘텐츠 배포 네트워크의 프록시/캐시로부터 새로운 비디오 콘텐츠를 요청함으로써 장면을 갱신할 것이다.
저작 환경
저작 환경은 도 1c에 도시된 바와 같이 상호작용 애플리케이션들을 개발하기 위한 그래픽 편집기를 포함한다. 애플리케이션은 하나 이상의 장면을 포함한다. 도 1b에 도시된 바와 같이, 애플리케이션 윈도는 애플리케이션이 3개의 장면(장면 1, 장면 2, 장면 3)으로 구성됨을 보여준다. 그래픽 편집기는 개발자가 장면 내에 배치될 요소들을 선택하여 사용자와 관련된 디스플레이 장치 상에 최종 표시될 표시를 형성할 수 있게 한다. 일부 실시예들에서, 요소들은 애플리케이션 윈도 내에 드래그 앤 드롭된다. 예를 들어, 개발자는 미디어 플레이어 객체 및 미디어 플레이어 버튼 객체들을 포함시키기를 원할 수 있으며, 툴바로부터 이러한 요소들을 선택하고, 요소들을 윈도 내에 드래그 앤 드롭할 것이다. 그래픽 요소가 윈도 내에 있으면, 개발자는 요소를 선택할 수 있으며, 요소에 대한 특성 윈도가 제공된다. 특성 윈도는 적어도 그래픽 요소의 위치(어드레스) 및 그래픽 요소의 크기를 포함한다. 그래픽 요소가 객체와 연관되는 경우, 특성 윈도는 개발자가 비트맵 이벤트 스크린으로 전환하여 관련 객체 파라미터들을 변경하는 것을 가능하게 하는 탭을 포함할 것이다. 예를 들어, 사용자는 버튼과 관련된 기능을 변경하거나, 버튼과 관련된 프로그램을 정의할 수 있다.
도 1d에 도시된 바와 같이, 시스템의 스티처는 저작 환경의 출력인 AVML 파일에 기초하여 장면을 위한 일련의 MPEG 프레임들을 생성한다. 장면 내의 각각의 요소/그래픽 객체는 영역을 정의하는 상이한 슬라이스들로 구성된다. 요소/객체를 정의하는 영역은 연속적이거나 비연속적일 수 있다. 시스템은 매크로블록 경계 상에 그래픽들을 형성하는 슬라이스들을 스냅(snap)한다. 각각의 요소는 연속 슬라이스들을 가질 필요가 없다. 예를 들어, 배경은 복수의 매크로블록으로 각각 구성되는 다수의 비연속 슬라이스를 갖는다. 배경은 정적인 경우에 인트라코딩된 매크로블록들에 의해 정의될 수 있다. 유사하게, 버튼들 각각에 대한 그래픽들은 인트라코딩될 수 있지만, 버튼들은 상태와 관련되고, 다수의 가능한 그래픽을 갖는다. 예를 들어, 버튼은 제1 상태 "오프" 및 제2 상태 "온"을 가질 수 있으며, 제1 그래픽은 눌리지 않은 상태에서의 버튼의 이미지를 나타내고, 제2 그래픽은 눌린 상태에서의 버튼을 나타낸다. 도 1c는 영화를 위한 윈도인 제3 그래픽 요소도 도시한다. 영화 슬라이스들은 인트라코딩된 매크로블록 및 인터코딩된 매크로블록의 혼합물로 인코딩되며, 콘텐츠에 기초하여 동적으로 변경된다. 유사하게, 배경이 동적인 경우, 배경은 그루밍과 관련된 아래의 요구들에 따라 인트라코딩된 매크로블록 및 인터코딩된 매크로블록 모두로 인코딩될 수 있다.
사용자가 클라이언트 장치를 통해 애플리케이션을 선택할 때, 처리 오피스는 저작 환경의 그래픽 편집기로부터의 레이아웃에 따라 요소들을 함께 스티칭할 것이다. 저작 환경의 출력은 AVML 파일을 포함한다. AVML 파일은 버튼과 같은 다중 상태 요소들에 대한 상태 정보, 관련 그래픽의 어드레스 및 그래픽의 크기를 제공한다. AVML 파일은 각각의 요소에 대한 MPEG 프레임 내의 위치들을 지시하고, 각각의 요소와 관련된 객체들을 지시하고, 사용자의 액션들에 기초하여 MPEG 프레임에 대한 변경들을 정의하는 스크립트들을 포함한다. 예를 들어, 사용자는 지시 신호를 처리 오피스로 전송할 수 있고, 처리 오피스는 AVML 파일을 이용하여, 수신된 지시 신호에 기초하여 한 세트의 새로운 MPEG 프레임들을 구성할 것이다. 사용자는 다양한 비디오 요소들 사이에서 전환하기를 원할 수 있으며, 지시 신호를 처리 오피스에 전송할 수 있다. 처리 오피스는 프레임에 대한 레이아웃 내에서 비디오 요소를 제거할 것이며, 제2 비디오 요소를 선택하여, 제2 비디오 요소가 MPEG 프레임 내에 제1 비디오 요소의 위치에 스티칭되게 할 것이다. 이러한 프로세스는 아래에 설명된다.
AVML 파일
애플리케이션 프로그래밍 환경은 AVML 파일을 출력한다. AVML 파일은 XML 기반 구문(syntax)을 갖는다. AVML 파일 구문은 루트 객체 <AVML>을 포함한다. 다른 상위 레벨 태그들은 애플리케이션이 시작될 때 로딩될 제1 장면을 지정하는 <initialscene>을 포함한다. <script> 태그는 스크립트를 식별하고, <scene> 태그는 장면을 식별한다. 상위 레벨 태그들의 각각에 대한 하위 레벨 태그들도 존재할 수 있으며, 따라서 태그 내의 데이터를 적용하기 위한 계층 구조가 존재한다. 예를 들어, 상위 레벨 스트림 태그는 비디오 스트림에 대한 <aspect ratio>, <video format>, <bit rate>, <audio format> 및 <audio bit rate>를 포함할 수 있다. 유사하게, 장면 태그는 장면 내의 요소들 각각을 포함할 수 있다. 예를 들어, 배경에 대한 <background>, 버튼 객체에 대한 <button>, 및 정지 그래픽에 대한 <static image>를 포함할 수 있다. 다른 태그들은 요소의 크기 및 위치에 대한 <size> 및 <pos>를 포함하며, 장면 내의 각각의 요소에 대한 하위 레벨 태그들일 수 있다. AVML 파일의 일례가 도 1b에 제공된다.
그루머
도 2는 요청 클라이언트 장치의 텔레비전에 제공될 수 있는 전형적인 디스플레이의 도면이다. 디스플레이(200)는 스크린 상에 나타내는 3개의 개별 비디오 콘텐츠 요소를 보여준다. 요소 #1(211)은 배경이며, 그 안에는 요소 #2(215) 및 요소 #3(217)가 삽입되어 있다.
도 3은 도 2의 표시를 생성할 수 있는 시스템의 제1 실시예를 나타낸다. 이 도면에서, 3개의 비디오 콘텐츠 요소, 즉 요소 #1(303), 요소 #2(305) 및 요소 #3(307)은 인코딩된 비디오로서 들어온다. 그루머들(310) 각각은 인코딩된 비디오 콘텐츠 요소를 수신하고, 그루머들은 스티처(340)가 그루밍된 비디오 콘텐츠 요소들을 단일 합성 비디오(380)로 결합하기 전에 각각의 요소를 처리한다. 이 분야의 통상의 기술자는 그루머들(310)이 단일 프로세서 또는 병렬로 동작하는 다수의 프로세서일 수 있다는 것을 이해해야 한다. 그루머들은 처리 오피스 내에, 콘텐츠 제공자의 설비에 또는 선형 방송 제공자의 설비에 위치할 수 있다. 그루머들은 그루머들(190, 180)이 스티처(115)에 직접 결합되지 않은 도 1에 도시된 바와 같이 스티처에 직접 접속되지 않을 수도 있다.
스티칭 프로세스는 아래에 설명되며, 요소들이 먼저 그루밍된 경우에는 훨씬 더 효율적인 방식으로 수행될 수 있다.
그루밍은 압축된 비디오에 존재하는 상호 의존성들의 일부를 제거한다. 그루머는 I 및 B 프레임들을 P 프레임들로 변환할 것이며, 절단 또는 제거된 비디오의 다른 프레임의 섹션을 참조하는 임의의 스트레이(stray) 모션 벡터들을 수리할 것이다. 따라서, 그루밍된 비디오 스트림은 다른 그루밍된 비디오 스트림들 및 인코딩된 정지 이미지들과 함께 사용되어, 합성 MPEG 비디오 스트림을 형성할 수 있다. 각각의 그루밍된 비디오 스트림은 복수의 프레임을 포함하며, 프레임들은 다른 그루밍된 프레임 내에 쉽게 삽입될 수 있고, 합성 프레임들은 함께 그룹화되어 MPEG 비디오 스트림을 형성한다. 그루밍된 프레임들은 하나 이상의 MPEG 슬라이스들로부터 형성될 수 있으며, MPEG 비디오 스트림 내의 MPEG 비디오 프레임보다 크기가 작을 수 있다는 점에 유의해야 한다.
도 4는 복수의 요소(410, 420)를 포함하는 합성 비디오 프레임의 일례이다. 이 합성 비디오 프레임은 설명의 목적으로 제공된다. 도 1에 도시된 바와 같은 그루머들은 단지 단일 요소를 수신하고, 요소(비디오 시퀀스)를 그루밍하며, 따라서 비디오 시퀀스는 스티처에서 함께 스티칭될 수 있다. 그루머들은 복수의 요소를 동시에 수신하지 못한다. 이 예에서, 배경 비디오 프레임(410)은 슬라이스당 하나의 행을 포함한다(이것은 일례일 뿐이며, 행은 임의 수의 슬라이스들로 구성될 수 있다). 도 1에 도시된 바와 같이, 장면 내의 모든 요소들의 위치를 포함하는 비디오 프레임의 레이아웃은 애플리케이션 프로그래머에 의해 AVML 파일 내에 정의된다. 예를 들어, 애플리케이션 프로그래머는 장면에 대한 배경 요소를 설계할 수 있다. 따라서, 애플리케이션 프로그래머는 배경을 MPEG 비디오로서 인코딩할 수 있으며, 배경을 프록시/캐시(140) 내에 넣기 전에 배경을 그루밍할 수 있다. 따라서, 애플리케이션이 요청될 때, 애플리케이션의 장면 내의 요소들의 각각은 그루밍된 비디오일 수 있으며, 그루밍된 비디오는 쉽게 함께 스티칭될 수 있다. 도 1에는 콘텐츠 제공자에 대해 그리고 선형 방송국들에 대해 2개의 그루머가 도시되어 있지만, 그루머들은 시스템의 다른 부분들 내에 존재할 수도 있다는 점에 유의해야 한다.
도시된 바와 같이, 비디오 요소(420)는 배경 비디오 프레임(410) 내에 삽입된다(이 또한 예시적일 뿐, 이 요소도 행당 다수의 슬라이스로 구성될 수 있다). 오리지널 비디오 프레임(410) 내의 매크로블록이 그의 값을 결정할 때 다른 매크로블록을 참조하고, 비디오 이미지(420)가 참조 매크로블록의 자리에 삽입되므로 인해 프레임으로부터 참조 매크로블록이 제거되는 경우, 매크로블록 값은 다시 계산되는 것이 필요하다. 유사하게, 매크로블록이 후속 프레임 내의 다른 매크로블록을 참조하고, 그 매크로블록이 제거되고, 다른 소스 재료가 그의 자리에 삽입되는 경우에, 매크로블록 값들이 다시 계산되는 것이 필요하다. 이것은 비디오(430)를 그루밍함으로써 어드레스된다. 비디오 프레임은 행들이 다수의 슬라이스를 포함하도록 처리되며, 슬라이스들 중 일부는 특히 교체 비디오 콘텐츠와 매칭되도록 크기가 조절되고 배치된다. 이러한 프로세스가 완료된 후, 현재의 슬라이스들 중 일부를 오버레이 비디오로 교체하여 오버레이를 갖는 그루밍된 비디오(440)를 생성하는 것은 간단한 작업이다. 그루밍된 비디오 스트림은 특히 해당 특정 오버레이를 어드레스하도록 정의되었다. 상이한 오버레이는 상이한 그루밍 파라미터들을 지시할 것이다. 따라서, 이러한 타입의 그루밍은 스티칭 준비를 위해 비디오 프레임을 슬라이스들로 분할하는 프로세스를 어드레스한다. 오버레이 요소에 슬라이스들을 추가할 필요가 전혀 없다는 점에 유의해야 한다. 슬라이스들은 단지 수신 요소, 즉 오버레이가 배치될 요소에만 추가된다. 그루밍된 비디오 스트림은 스트림의 그루밍된 특성들에 대한 정보를 포함할 수 있다. 제공될 수 있는 특성들은 1. 그루밍된 윈도의 좌상 및 우하 코너들에 대한 위치들, 2. 좌상 코너만의 위치 및 그 밖에 윈도의 크기, 픽셀 레벨에 올바른 슬라이스의 크기를 포함한다.
또한, 비디오 스트림 내에 특성 정보를 제공하는 두 가지 방법이 존재한다. 첫 번째는 슬라이스 헤더 내에 그러한 정보를 제공하는 것이다. 두 번째는 확장된 데이터 슬라이스 구조 내에 정보를 제공하는 것이다. 이러한 옵션들 중 어느 하나를 이용하여, 필요한 정보를 가상 머신 및 스티처와 같은 후속 처리 스테이지들로 성공적으로 전달할 수 있다.
도 5는 그루밍 전후의 비디오 그래픽 요소에 대한 비디오 시퀀스를 나타낸다. 인코딩된 오리지널 수신 스트림(500)은 이 분야의 통상의 기술자들에게 공지된 바와 같은 MPEG I 프레임들(510), B 프레임들(530, 550) 및 P 프레임들(570)의 시퀀스를 갖는다. 이러한 오리지널 스트림에서, I 프레임은 모든 다른 프레임들, 즉 B 및 P 프레임들 모두에 대한 참조(512)로서 사용된다. 이것은 I 프레임에서 모든 다른 프레임들로의 화살표들을 통해 도시된다. 또한, P 프레임은 양 B 프레임들에 대한 참조 프레임(572)으로서 사용된다. 그루머는 스트림을 처리하고, 모든 프레임들을 P 프레임들로 교체한다. 먼저, 오리지널 I 프레임(510)이 인트라코딩된 P 프레임(520)으로 변환된다. 이어서, B 프레임들(530, 550)이 P 프레임들(540, 560)로 변환되고(535), 바로 이전 프레임만을 참조하도록 변경된다. 또한, P 프레임들(570)은 그들의 참조(574)를 오리지널 I 프레임(510)에서 그들 자신의 바로 앞의 새로 생성된 P 프레임(560)으로 이동하도록 변경된다. 결과적인 P 프레임(580)은 그루밍된 인코딩된 프레임들(590)의 출력 스트림 내에 나타난다.
도 6은 표준 MPEG-2 비트스트림 구문의 도면이다. MPEG-2는 일례로서 사용되며, 본 발명은 이러한 예로 한정되는 것으로 간주되지 않아야 한다. 비트스트림의 계층 구조는 시퀀스 레벨에서 시작된다. 이것은 픽처 그룹(GOP) 데이터(605)가 뒤따르는 시퀀스 헤더(600)를 포함한다. GOP 데이터는 픽처 데이터(625)가 뒤따르는 GOP 헤더(620)를 포함한다. 픽처 데이터(625)는 슬라이스 데이터(645)가 뒤따르는 픽처 헤더(640)를 포함한다. 슬라이스 데이터(645)는 매크로블록 데이터(665)가 뒤따르는 소정의 슬라이스 오버헤드(660)로 구성된다. 마지막으로, 매크로블록 데이터(665)는 블록 데이터(685)가 뒤따르는 소정의 매크로블록 오버헤드(680)로 구성된다(블록 데이터는 더 분할되지만, 이 참조의 목적에는 필요하지 않다). 시퀀스 헤더들은 그루머에서 표준으로서 작용한다. 그러나, 모든 프레임들은 P 프레임들이므로, 그루머의 GOP 헤더 출력은 존재하지 않는다. 헤더들의 나머지는 필요한 출력 파라미터들을 충족시키도록 변경될 수 있다.
도 7은 비디오 시퀀스를 그루밍하기 위한 흐름을 제공한다. 먼저, 프레임 타입, 즉 I 프레임(703), B 프레임(705) 또는 P 프레임(707)이 결정된다(700). I 프레임들(703)은 B 프레임들(705)과 같이 P 프레임들로 변환되는 것이 필요하다. 게다가, I 프레임들은 스티처가 필요로 하는 픽처 정보와 매칭되는 것이 필요하다. 예를 들어, 이러한 정보는 픽처 헤더 내에 설정된 인코딩 파라미터들을 지시할 수 있다. 따라서, 제1 단계는 픽처 헤더 정보(730)를 변경하여, 픽처 헤더 내의 정보가 모든 그루밍된 비디오 시퀀스들에 대해 일치하게 하는 것이다. 스티처 설정들은 애플리케이션 내에 포함될 수 있는 시스템 레벨 설정들이다. 이들은 모든 레벨의 비트 스트림에 대해 사용될 파라미터들이다. 변경을 필요로 하는 아이템들은 아래의 표에 제공된다.
픽처 헤더 정보
# 이름
A 픽처 코딩 타입 P 프레임
B 인트라 DC 정밀도 스티처 설정과 매칭
C 픽처 구조 프레임
D 프레임 예측 프레임 DCT 스티처 설정과 매칭
E 양자화기 스케일 타입 스티처 설정과 매칭
F 인트라 VLC 포맷 스티처 설정과 매칭
G 교대 스캔 정상 스캔
H 진행 프레임 진행 스캔
이어서, 슬라이스 오버헤드 정보(740)가 변경되어야 한다. 변경할 파라미터들이 아래의 표에 제공된다.
슬라이스 오버헤드 정보
# 이름
A 양자화기 스케일 코드 픽처 헤더 내에 "스케일 타입" 변경이 존재하는 경우에 변경될 것이다.
이어서, 매크로블록 오버헤드(750) 정보가 변경을 필요로 할 수 있다. 변경될 값들이 아래 표에 제공된다.
매크로블록 정보
# 이름
A 매크로블록 타입 가변 길이 코드를 I 프레임에 대한 것에서 P 프레임에 대한 것으로 변경한다
B DCT 타입 아직 설정되지 않은 경우에 프레임으로 설정된다
C 은닉 모션 벡터들 제거됨
마지막으로, 블록 정보(760)가 변경을 필요로 할 수 있다. 변경할 아이템들이 아래의 표에 제공된다.
블록 정보
# 이름
A DCT 계수 값들 픽처 또는 슬라이스 레벨에서 임의의 양자화기 변경들이 존재하는 경우에 갱신을 필요로 한다.
B DCT 계수 배열 "교대 스캔"이 전에 있었던 것으로부터 변경된 경우에 재배열이 필요하다.
블록 변경들이 완료되면, 프로세스는 비디오의 다음 프레임에 대해 시작될 수 있다.
프레임 타입이 B 프레임(705)인 경우, I 프레임에 대해 필요한 것과 동일한 단계들이 B 프레임에 대해서도 필요하다. 그러나, 추가로 모션 벡터들(770)이 변경되는 것이 필요하다. 두 가지 시나리오, 즉 B 프레임이 I 프레임 또는 P 프레임을 바로 뒤따르거나, B 프레임이 다른 B 프레임을 뒤따르는 시나리오가 존재한다. B 프레임이 I 또는 P 프레임을 뒤따르는 경우, 모션 벡터는 I 또는 P 프레임을 참조로서 이용하여 동일하게 유지될 수 있으며, 나머지만이 변경되는 것이 필요하다. 이것은 포워드 룩킹(forward looking) 모션 벡터를 나머지가 되도록 변환하는 것만큼 간단할 수 있다.
다른 B 프레임을 뒤따르는 B 프레임들의 경우, 모션 벡터 및 그의 나머지 모두가 변경되는 것이 필요하다. 이제, 제2 B 프레임은 그의 바로 앞의 B에서 P로 새로 변환된 프레임을 참조한다. 먼저, B 프레임 및 그의 참조가 디코딩되고, 모션 벡터 및 나머지가 재계산된다. 모션 벡터들을 갱신하기 위해 프레임이 디코딩되지만, DCT 계수들을 다시 인코딩할 필요는 없다는 점에 유의해야 한다. 이들은 동일하게 유지된다. 모션 벡터 및 나머지만이 계산되고 변경된다.
마지막 프레임 타입은 P 프레임이다. 이 프레임 타입은 또한 I 프레임과 동일한 경로를 뒤따른다. 도 8은 영역 경계에 인접한 매크로블록들에 대한 모션 벡터 변경을 도시한다. 영역 경계 상의 모션 벡터들은 다른 비디오 요소들이 삽입되는 배경 요소들과 가장 관련된다는 것을 인식해야 한다. 따라서, 배경 요소들의 그루밍은 애플리케이션 생성자에 의해 달성될 수 있다. 유사하게, 비디오 요소가 절단되고, 배경 요소 내의 "구멍" 내에 삽입되는 경우, 절단된 요소는 "구멍" 밖의 위치들을 지시하는 모션 벡터들을 포함할 수 있다. 절단된 이미지에 대한 모션 벡터들의 그루밍은, 콘텐츠 생성자가 비디오 요소가 절단되어야 하는 크기를 아는 경우에는 콘텐츠 생성자에 의해 수행되거나, 삽입될 비디오 요소가 배경 내의 "구멍"의 크기보다 큰 경우에는 요소 렌더러 및 MPEG 인코더와 연계하여 가상 머신에 의해 달성될 수 있다.
도 8은 배경 요소로부터 제거되는 영역을 둘러싸는 모션 벡터들에 대해 발생하는 문제들을 그래픽으로 도시한다. 도 8의 예에서, 장면은 2개의 영역 #1(800) 및 #2(820)를 포함한다. 부적절한 모션 벡터 참조들의 두 가지 예가 존재한다. 제1 예에서, 영역 #1(800)(배경) 내에 삽입되는 영역 #2(820)는 영역 #1(800)(배경)을 모션에 대한 참조(840)로서 사용한다. 따라서, 영역 #2 내의 모션 벡터들은 정정되는 것이 필요하다. 부적절한 모션 벡터 참조들의 제2 예는 영역 #1(800)이 영역 #2(820)를 모션에 대한 참조(860)로서 사용하는 경우에 발생한다. 그루머는 동일 영역 내의 프레임을 이용하여 이러한 부적절한 모션 벡터 참조들을 다시 인코딩하거나 매크로블록들을 인트라코딩된 블록들이 되도록 변환함으로써 부적절한 모션 벡터 참조들을 제거한다.
모션 벡터들을 갱신하고 프레임 타입들을 변경하는 것에 더하여, 그루머는 필드 기반 인코딩된 매크로블록들을 프레임 기반 인코딩된 매크로블록들로 변환할 수도 있다. 도 9는 필드 기반 인코딩된 매크로블록들에서 프레임 기반 인코딩된 매크로블록들로의 변환을 도시한다. 참조를 위해, 블록들의 프레임 기반 세트(900)가 압축된다. 압축된 블록 세트(910)는 동일 블록들 내에 동일 정보를 포함하지만, 이제 정보는 압축된 형태로 포함된다. 한편, 필드 기반 매크로블록(940)도 압축된다. 이것이 수행될 때, 모든 짝수 행들(0, 2, 4, 6)은 상위 블록들(0과 1) 내에 배치되는 반면, 홀수 행들(1, 3, 5, 7)은 하위 블록들(2와 3) 내에 배치된다. 압축된 필드 기반 매크로블록(950)이 프레임 기반 매크로블록(970)으로 변환될 때, 계수들이 하나의 블록에서 다른 블록(980)으로 이동되는 것이 필요하다. 즉, 행들은 짝수 홀수가 아니라 번호 순으로 재구성되어야 한다. 필드 기반 인코딩에서 블록들(2와 3) 내에 있었던 행들(1과 3)은 이제 각각 블록들(0 또는 1)로 다시 이동된다. 따라서, 행들(4와 6)은 블록들(0과 1)로부터 이동되어, 블록들(2와 3) 내에 배치된다.
도 10은 그루밍 플랫폼의 제2 실시예를 나타낸다. 모든 컴포넌트들, 즉 그루머들(1110A) 및 스티처(1130A)는 제1 실시예와 동일하다. 입력들, 즉 입력 #1(1103A), 입력 #2(1105A) 및 입력 #3(1107A)은 물론, 합성 출력(1280)도 동일하다. 이 시스템에서의 차이는 스티처(1140A)가 피드백, 즉 동기화 및 프레임 타입 정보 모두를 그루머들(1110A)의 각각에 제공한다는 점이다. 동기화 및 프레임 타입 정보를 이용하여, 스티처(1240)는 그루머들(1110A)이 따르는 GOP 구조를 정의할 수 있다. 이러한 피드백 및 GOP 구조에 대해, 그루머의 출력은 더 이상 P 프레임들만이 아니라, I 프레임들 및 B 프레임들도 포함할 수 있다. 피드백이 없는 실시예의 한계는 그루머가 스티처가 어떠한 타입의 프레임을 형성하고 있는지를 알지 못한다는 것이다. 스티처(1140A)로부터의 피드백을 갖는 이 제2 실시예에서, 그루머들(1110A)은 스티처가 어떤 픽처 타입을 형성하고 있는지를 알며, 따라서 그루머들은 매칭되는 프레임 타입을 제공할 것이다. 이것은 동일 데이터 레이트를 가정할 때 픽처 품질을 향상시키며, 품질 레벨이 일정하게 유지되는 것으로 가정할 때 더 많은 참조 프레임들 및 기존 프레임들의 더 적은 변경으로 인해 데이터 레이트를 감소시키는 동시에, B 프레임들이 허용되므로 비트 레이트를 줄일 수 있다.
스티처
도 11은 도 1에 도시된 스티처와 같은 스티처 모듈을 구현하기 위한 환경을 나타낸다. 스티처(1200)는 상이한 소스들로부터 비디오 요소들을 수신한다. 압축되지 않은 콘텐츠(1210)는 스티처(1200)에 도달하기 전에 도 1에 도시된 MPEG 요소 인코더와 같은 인코더(1215)에서 인코딩된다. 압축된 또는 인코딩된 비디오(1220)는 인코딩될 필요가 없다. 그러나, 양 예들에서 오디오(1217, 1227)와 비디오(1219, 1229)를 분리하는 것이 필요하다. 오디오는 오디오 선택기(1230) 내로 공급되어 스트림 내에 포함된다. 비디오는 버퍼(1250) 내에 넣어지기 전에 프레임 동기화 블록(1240) 내로 공급된다. 프레임 형성기(1270)는 제어기(1275)로부터의 입력에 기초하여 버퍼들(1250)로부터 데이터를 인출한다. 프레임 형성기(1270)의 비디오 출력은 오디오가 비디오와 정렬되도록 지연(1260)된 후에 오디오와 함께 멀티플렉서(1280) 내로 공급된다. 멀티플렉서(1280)는 오디오 및 비디오 스트림들을 결합하여, 임의의 표준 디코더 상에서 재생될 수 있는 합성된, 인코딩된 출력 스트림들(1290)을 출력한다. 데이터 스트림을 프로그램 또는 전송 스트림으로 멀티플렉싱하는 것은 이 분야의 기술자들에게 공지되어 있다. 인코딩된 비디오 소스들은 실시간이거나, 저장된 위치로부터 오거나, 이들의 조합일 수 있다. 모든 소스들이 실시간으로 도달해야 하는 요구는 존재하지 않는다.
도 12는 시간적으로 동기화되지 않은 3개의 비디오 콘텐츠 요소의 일례를 도시한다. 3개의 요소를 동기화하기 위하여, 요소 #1(1300)이 "앵커" 또는 "참조" 프레임으로서 사용된다. 즉, 이 요소는 마스터 프레임으로서 사용되며, 모든 다른 프레임들은 마스터 프레임에 정렬될 것이다(이것은 일례일 뿐이며, 시스템은 임의의 수신 비디오 소스들과 별개인 그 자신의 마스터 프레임 참조를 가질 수 있다). 출력 프레임 타이밍(1370, 1380)은 요소 #1(1300)의 프레임 타이밍과 매칭되도록 설정된다. 요소들 #2 및 #3(1320, 1340)은 요소 #1(1300)과 정렬되지 않는다. 따라서, 이들의 프레임 시작이 찾아져 버퍼 내에 저장된다. 예를 들어, 요소 #2(1320)는 1 프레임 지연되며, 따라서 참조 프레임과 함께 합성되기 전에 전체 프레임이 이용 가능하다. 요소 #3은 참조 프레임보다 훨씬 느리다. 요소 #3은 2개의 프레임에 걸쳐 수집되며, 2개의 프레임에 걸쳐 제공된다. 즉, 요소 #3(1340)의 각각의 프레임은 참조 프레임의 프레임 레이트와 매칭되기 위하여 2개의 연속 프레임에 대해 표시된다. 이와 달리, 프레임(도시되지 않음)이 참조 프레임의 레이트의 2배의 레이트로 실행되고 있는 경우, 하나 거른 프레임이 누락될 것이다(도시되지 않음). 아마도, 모든 요소들은 거의 동일한 속도로 실행될 것이며, 따라서 동기화를 유지하기 위하여 프레임은 종종 반복 또는 누락되는 것이 필요할 것이다.
도 13은 예시적인 합성 비디오 프레임(1400)을 나타낸다. 이 예에서, 프레임은 픽처(1420)당 30개의 행 및 행(1410)당 40개의 매크로블록으로 구성된다. 이 크기는 일례로서 사용될 뿐, 본 발명의 범위를 제한하는 것을 의도하지 않는다. 프레임은 다양한 위치들에 합성된 요소들(1440)을 갖는 배경(1430)을 포함한다. 이러한 요소들(1440)은 비디오 요소들, 정적 요소들, 기타 등등일 수 있다. 즉, 프레임은 충만한 배경으로 구성되며, 이어서 이 배경은 특정 영역들이 상이한 요소들로 교체된다. 이 특정 예는 배경 상에 합성된 4개의 요소를 도시한다.
도 14는 픽처 내의 슬라이스들을 나타내는 스크린의 더 상세한 버전을 도시한다. 이 도면은 행당 40개의 매크로블록 및 픽처당 30개의 행으로 구성되는 픽처를 도시한다(제한적이 아니라, 단지 설명을 위한 것이다). 그러나, 이 도면은 슬라이스들로 분할된 픽처도 도시한다. 슬라이스의 크기는 전체 행(1590)(음영으로 도시됨) 또는 행 내의 소수의 매크로블록들(1580)(요소 #4(1528) 내에 대각선들을 갖는 직사각형으로 도시됨)일 수 있다. 배경(1530)은 각각의 영역의 폭과 매칭되는 슬라이스 크기를 갖는 다수의 영역으로 분할되었다. 이것은 요소 #1(1522)을 봄으로써 더 잘 알 수 있다. 요소 #1(1522)은 12개 매크로블록의 폭을 갖도록 정의되었다. 또한, 배경(1530) 및 요소 #1(1522) 양자에 대해 이 영역의 슬라이스 크기는 그 정확한 수의 매크로블록들이 존재하도록 정의된다. 또한, 요소 #1(1522)은 6개의 슬라이스로 구성되며, 각각의 슬라이스는 12개의 매크로블록을 포함한다. 유사하게, 요소 #2(1524)는 슬라이스당 8개의 매크로블록을 갖는 4개의 슬라이스로 구성되고, 요소 #3(1526)은 슬라이스당 23개의 매크로블록을 갖는 18개의 슬라이스로 구성되며, 요소 #4(1528)는 슬라이스당 5개의 매크로블록을 갖는 17개의 슬라이스로 구성된다. 배경(1530) 및 요소들은 임의 수의 매크로블록들일 수 있는 임의 수의 슬라이스들로 구성되도록 정의될 수 있음이 명백하다. 이것은 픽처 및 요소들을 원하는 임의의 방식으로 배열하기 위한 충분한 유연성을 제공한다. 비디오 프레임 내의 요소들의 위치 결정과 더불어 각각의 요소에 대한 슬라이스 콘텐츠를 결정하는 프로세스는 AVML 파일을 이용하여 도 1의 가상 머신에 의해 결정된다.
도 15는 스티처에서 스티칭이 이루어지게 하기 위한 가상 머신에 의한 배경(1600)의 준비를 나타낸다. 가상 머신은 AVML 파일에 기초하여 비압축 배경을 수집하고, 배경을 요소 인코더로 전송한다. 가상 머신은 요소들이 프레임 내에 배치될 배경 내의 위치들을 전송한다. 도시된 바와 같이, 배경(1620)은 배경을 요소 인코더로 전송하기 전에 요소(들)가 배치될 곳과 정확히 정렬되는 "구멍(들)"을 갖도록 가상 머신에 의해 특정 슬라이스 구조로 분할되었다. 인코더는 배경을 압축하여, 요소(들)가 배치될 "구멍" 또는 "구멍들"을 남긴다. 인코더는 압축된 배경을 메모리로 전송한다. 이어서, 가상 머신은 메모리에 액세스하여 장면에 대한 각각의 요소를 검색하고, 인코딩된 요소들을 요소들 각각에 대한 각각의 슬라이스의 위치들의 리스트와 함께 스티처로 전송한다. 스티처는 슬라이스들 각각을 취하고, 슬라이스들을 적절한 위치에 배치한다.
이러한 특정 타입의 인코딩을 "슬라이스 기반 인코딩"이라 한다. 슬라이스 기반 인코더/가상 머신은 출력 프레임의 원하는 슬라이스 구조를 알고 그의 인코딩을 적절히 수행하는 인코더/가상 머신이다. 즉, 인코더는 슬라이스들의 크기 및 이들이 어디에 속하는지를 안다. 인코더는 구멍이 필요한 경우에 구멍들을 어디에 남길지를 안다. 원하는 출력 슬라이스 구조를 앎으로써, 가상 머신은 쉽게 스티칭되는 출력을 제공한다.
도 16은 배경 요소가 압축된 후의 합성 프로세스를 나타낸다. 배경 요소(1700)는 요소(1740)가 배치될 구멍을 갖는 7개의 슬라이스로 압축되었다. 합성 이미지(1780)는 배경 요소(1700)와 요소(1740)의 결합의 결과를 나타낸다. 합성 비디오 프레임(1780)은 회색 내에 삽입된 슬라이스들을 나타낸다. 이 도면은 배경 상에 합성된 단일 요소를 도시하지만, 사용자의 디스플레이 상에 맞는 임의 수의 요소들을 합성하는 것이 가능하다. 더욱이, 배경 또는 요소에 대해 행당 슬라이스들의 수는 도시된 것보다 많을 수 있다. 배경 및 요소들의 슬라이스 시작 및 슬라이스 종료 포인트들은 정렬되어야 한다.
도 17은 배경 요소(1800)(24 픽셀 x 24 픽셀)와 추가된 비디오 콘텐츠 요소(1840)(16 픽셀 x 16 픽셀) 사이의 상이한 매크로블록 크기들을 나타내는 도면이다. 합성된 비디오 프레임(1880)은 두 가지 사례를 보여준다. 수평으로 픽셀들이 정렬되는데, 그 이유는 배경(800) 내에 24 픽셀/블록 x 4 블록 = 96 픽셀 폭 및 비디오 콘텐츠 요소(1840)에 대해 16 픽셀/블록 x 6 블록 = 96 픽셀 폭이 존재하기 때문이다. 그러나, 수직으로는 차이가 존재한다. 배경(1800)은 24 픽셀/블록 x 3 블록 = 72 픽셀 높이이다. 요소(1840)는 16 픽셀/블록 x 4 블록 = 64 픽셀 높이이다. 이것은 8 픽셀의 수직 갭(1860)을 남긴다. 스티처는 그러한 차이들을 알며, 요소 또는 배경을 외삽하여 갭을 채울 수 있다. 어둡거나 밝은 경계 영역이 존재하도록 갭을 남기는 것도 가능하다. 이 예는 24 x 24 및 16 x 16의 매크로블록 크기들을 이용하지만, 매크로블록 크기들의 임의 조합이 허용 가능하다. 본 발명의 의도된 범위로부터 벗어나지 않고, DCT 기반 압축 포맷들은 16 x 16이 아닌 크기들의 매크로블록들에 의존할 수 있다. 유사하게, 본 발명의 의도된 범위로부터 벗어나지 않고, DCT 기반 압축 포맷은 시간 예측을 위해 가변 크기의 매크로블록들에 의존할 수도 있다. 마지막으로, 본 발명의 의도된 범위로부터 벗어나지 않고, 콘텐츠의 주파수 도메인 표현들은 다른 푸리에 관련 변환들을 이용하여 달성될 수도 있다.
합성된 비디오 프레임 내에 오버랩이 존재하는 것도 가능하다. 도 17을 다시 참조하면, 요소(1840)는 4개의 슬라이스로 구성된다. 이 요소가 실제로는 5개의 슬라이스인 경우, 이 요소는 합성 비디오 프레임(1880) 내의 배경 요소(1800)와 오버랩될 것이다. 이러한 충돌을 해결하기 위한 다양한 방법들이 존재하며, 가장 쉬운 방법은 요소들의 4개의 슬라이스만을 합성하고 다섯 번째 슬라이스를 폐기하는 것이다. 다섯 번째 슬라이스를 배경 행 내에 합성하고, 충돌 배경 행을 슬라이스들로 분할하고, 다섯 번째 요소 슬라이스와 충돌하는 배경 슬라이스를 제거하는 것도 가능하다(이어서, 아마도 여섯 번째 요소 슬라이스를 추가하여 임의의 갭을 채운다).
상이한 슬라이스 크기들의 가능성은 수신되는 배경 및 비디오 요소들의 검사를 수행하여 이들이 적절한지를 확인하기 위한 합성 기능을 필요로 한다. 즉, 각각의 슬라이스가 완전한지(예를 들어, 전체 프레임), 크기 충돌이 존재하지 않는지 등을 확인하는 기능을 필요로 한다.
도 18은 프레임의 요소들을 나타내는 도면이다. 간단한 합성 픽처(1900)가 요소(1910) 및 배경 요소(1920)로 구성된다. 요청된 장면에 대한 비디오 프레임의 형성을 제어하기 위하여, 스티처는 가상 머신에 의해 제공되는 바와 같은 각각의 요소에 대한 위치 정보에 기초하여 데이터 구조(1940)를 형성한다. 데이터 구조(1940)는 얼마나 많은 매크로블록이 존재하는지 그리고 매크로블록들이 어디에 위치하는지를 설명하는 링크된 리스트를 포함한다. 예를 들어, 데이터 행 1(1943)은 스티처가 배경에 대한 버퍼인 버퍼 B로부터 40개의 매크로블록을 취해야 함을 보여준다. 데이터 행 2(1945)는 버퍼 B로부터 12개의 매크로블록을 취하고, 이어서 버퍼 E(요소(1910)에 대한 버퍼)로부터 8개의 매크로블록을 취하고, 이어서 버퍼 B로부터 다른 20개의 매크로블록을 취해야 한다. 이것은 스티처가 데이터 구조를 이용하여 버퍼 B로부터 40개의 매크로블록을 취하는 마지막 행(1947)까지 계속된다. 버퍼 구조(1970)는 각각의 배경 또는 요소에 대한 개별 영역들을 갖는다. B 버퍼(1973)는 B 매크로블록들에서의 스티칭을 위한 모든 정보를 포함한다. E 버퍼(1975)는 E 매크로블록들에서의 스티칭을 위한 정보를 갖는다.
도 19는 다수의 인코딩된 요소로부터 픽처를 형성하기 위한 프로세스를 나타내는 흐름도이다. 시퀀스(2000)는 비디오 프레임 합성(2010)을 개시함으로써 시작된다. 먼저, 프레임들을 동기화하고(2015), 이어서 적절한 슬라이스를 획득(2030)함으로써 각각의 행을 형성한다(2020). 이어서, 슬라이스를 삽입하고(2040), 시스템은 그 슬라이스가 행의 끝인지를 확인하기 위해 검사한다(2050). 끝이 아닌 경우, 프로세스는 행의 끝에 도달(2050)할 때까지 "다음 슬라이스 취득" 블록(2030)으로 복귀한다. 행이 완성되면, 시스템은 그 행이 프레임의 끝인지를 확인하기 위해 검사한다(2080). 끝이 아닌 경우, 프로세스는 "각각의 행에 대해" 블록(2020)으로 복귀한다. 프레임이 완성되면, 시스템은 그 프레임이 장면에 대한 시퀀스의 끝인지를 검사한다(2090). 끝이 아닌 경우, 프로세스는 "프레임 형성" 단계(2010)로 복귀한다. 끝인 경우, 장면에 대한 프레임 또는 비디오 프레임들의 시퀀스가 완성된다(2090). 끝이 아닌 경우, 시스템은 프레임 형성 프로세스를 반복한다. 시퀀스의 끝(2090)에 도달한 경우, 장면이 완성되고, 프로세서가 종료되거나 다른 프레임의 형성을 개시할 수 있다.
스티처에 프레임 포맷에 대한 사전 정보를 제공함으로써 스티처의 성능이 향상될 수 있다(더 적은 프로세서 능력으로 프레임들을 더 빠르게 형성할 수 있다). 예를 들어, 가상 머신은 삽입될 프레임 내의 영역들의 시작 위치 및 크기를 스티처에 제공할 수 있다. 대안으로, 정보는 각각의 슬라이스에 대한 시작 위치일 수 있으며, 이어서 스티처는 크기(2개의 시작 위치 사이의 차이)를 산출할 수 있다. 이러한 정보는 가상 머신에 의해 외부에서 제공될 수 있거나, 가상 머신은 정보를 각각의 요소 내에 포함시킬 수 있다. 예를 들어, 슬라이스 헤더의 일부가 이러한 정보를 운반하는 데 사용될 수 있다. 스티처는 이러한 프레임 구조에 대한 사전 지식을 이용하여, 요소들이 요구되기 전에 요소들을 함께 양호하게 합성하는 것을 시작할 수 있다.
도 20은 시스템에 대한 추가 개량을 도시한다. 그루머 섹션에서 전술한 바와 같이, 그래픽 비디오 요소들은 그루밍될 수 있으며, 따라서 이미 압축되어, 함께 스티칭되기 위해 디코딩될 필요가 없는 스티칭 가능한 요소들을 제공할 수 있다. 도 20에서, 프레임은 다수의 인코딩된 슬라이스(2100)를 갖는다. 각각의 슬라이스는 전체 행이다(이것은 일례로서 사용될 뿐, 행들은 그루밍되기 전에 다수의 슬라이스로 구성될 수 있다). 가상 머신은 AVML 파일과 연계하여 특정 크기의 요소(2140)가 합성된 비디오 프레임 내의 특정 위치에 배치되어야 한다는 것을 결정한다. 그루머는 수신된 배경(2100)을 처리하고, 전체 행 인코딩된 슬라이스들을 원하는 요소(2140)의 위치 주위 및 그 안의 영역들과 매칭되는 더 작은 슬라이스들로 변환한다. 결과적인 그루밍된 비디오 프레임(2180)은 원하는 요소(2140)와 매칭되는 슬라이스 구성을 갖는다. 이어서, 스티처는 그루밍된 프레임(2180)으로부터 #3 및 #6을 제외한 모든 슬라이스를 선택함으로써 스트림을 형성한다. 이러한 슬라이스들 대신에, 스티처는 요소(2140)의 슬라이스들을 획득하고, 이들을 그의 장소에서 사용한다. 이러한 방식으로, 배경은 압축된 영역을 남기지 않으며, 시스템은 요소(2140)를 프레임으로 계속 합성할 수 있다.
도 21은 합성될 요소를 정의하는 데 이용 가능한 유연성을 나타낸다. 요소들은 상이한 형상들 및 크기들을 가질 수 있다. 요소들은 연속적으로 존재할 필요가 없고, 실제로는 배경에 의해 분리된 다수의 이미지로부터 단일 요소가 형성될 수 있다. 이 도면은 그 위에 합성된 단일 요소(2210)(백색 영역들)를 가진 배경 요소(2230)(회색 영역들)를 도시한다. 이 도면에서, 합성된 요소(2210)는, 시프트되고, 상이한 크기들을 갖고, 심지어 단일 행 상에 요소의 다수의 부분이 존재하는 영역들을 갖는다. 스티처는 표시를 생성하는 데 사용되는 다수의 요소가 존재하는 것처럼 이러한 스티칭을 수행할 수 있다. 프레임에 대한 슬라이스들은 연속적으로 S1-S45로 표시된다. 이들은 요소가 배치될 슬라이스 위치들을 포함한다. 요소는 ES1-ES14의 번호를 갖는 그의 슬라이스도 구비한다. 요소 슬라이스들은 이들이 단일 요소 파일로부터 인출되는 경우에도 원할 경우에는 배경 내에 배치될 수 있다.
요소 슬라이스들에 대한 소스는 다수의 옵션 중 어느 하나일 수 있다. 이것은 실시간 인코딩된 소스로부터 올 수 있다. 이것은 하나는 배경을 갖고 다른 하나는 텍스트를 갖는 개별 슬라이스들로부터 형성되는 복합 슬라이스일 수 있다. 이것은 캐시로부터 인출되는 사전 인코딩된 요소일 수 있다. 이러한 예들은 단지 설명의 목적이며, 요소 소스들에 대한 옵션들을 제한하는 것을 의도하지 않는다.
도 22는 선형 방송 콘텐츠를 그루밍하기 위한 그루머(2340)를 사용하는 실시예를 도시한다. 콘텐츠는 그루머(2340)에 의해 실시간으로 수신된다. 각각의 채널이 그루머(2340)에 의해 그루밍되며, 따라서 콘텐츠는 쉽게 함께 스티칭될 수 있다. 도 22의 그루머(2340)는 모든 선형 방송 채널들을 그루밍하기 위한 복수의 그루머 모듈을 포함할 수 있다. 이어서, 그루밍된 채널들은 애플리케이션들에서 사용하기 위해 하나 이상의 처리 오피스들(2310, 2320, 2330) 및 처리 오피스들 각각 내의 하나 이상의 가상 머신들로 멀티캐스트될 수 있다. 도시된 바와 같이, 클라이언트 장치들은 클라이언트에 의해 선택되는 선형 방송 소스들 및/또는 다른 그루밍된 콘텐츠의 모자이크(2350)의 수신을 위해 애플리케이션에 요청한다. 모자이크(2350)는 도 23에 도시된 바와 같이 복수의 소스(2371-2376)를 동시에 보는 것을 가능하게 하는 배경 프레임(2360)을 포함하는 장면이다. 예를 들어, 사용자가 시청하기를 원하는 다수의 스포팅 이벤트가 존재하는 경우, 사용자는 모자이크 내의 동시 시청을 위해 스포팅 이벤트들을 운반하는 채널들의 각각을 요청할 수 있다. 사용자는 MPEG 객체(편집)(2380)를 선택한 후에, 표시될 원하는 콘텐츠 소스들을 편집할 수도 있다. 예를 들어, 그루밍된 콘텐츠는 선형/라이브 방송들로부터 그리고 다른 비디오 콘텐츠(즉, 영화, 사전 녹화된 콘텐츠 등)로부터도 선택될 수 있다. 모자이크는 사용자 선택 재료 및 광고들과 같은, 처리 오피스/세션 프로세서에 의해 제공되는 재료 모두를 포함할 수도 있다. 도 22에 도시된 바와 같이, 클라이언트 장치들(2301-2305) 각각은 채널 1을 포함하는 모자이크를 요청한다. 따라서, 채널 1에 대한 멀티캐스팅된 그루밍된 콘텐츠는 개인화된 모자이크들의 형성시에 상이한 가상 머신들 및 상이한 처리 오피스들에 의해 사용된다.
클라이언트 장치가 모자이크 애플리케이션에 대한 요청을 전송할 때, 클라이언트 장치와 관련된 처리 오피스는 요청된 모자이크 애플리케이션을 위해 클라이언트 장치에 대한 프로세서/가상 머신을 지정한다. 지정된 가상 머신은 스티처를 이용하여 원하는 채널들로부터 그루밍된 콘텐츠를 합성함으로써 개인화된 모자이크를 형성한다. 가상 머신은 클라이언트가 요청한 채널들의 모자이크를 갖는 MPEG 스트림을 클라이언트 장치로 전송한다. 따라서, 콘텐츠가 함께 스티칭될 수 있도록 콘텐츠를 먼저 그루밍함으로써, 모자이크들을 생성하는 가상 머신들은 원하는 채널들을 먼저 디코딩하고, 배경 내의 채널들을 비트맵으로서 렌더링하고, 이어서 비트맵을 인코딩할 필요가 없게 된다.
모자이크와 같은 애플리케이션은 클라이언트 장치와 관련된 디스플레이 상의 애플리케이션의 표시를 위해 클라이언트 장치를 통해 직접 또는 PC와 같은 다른 장치를 통해 간접적으로 요청될 수 있다. 사용자는 사용자 계정에 대한 정보를 제공함으로써 처리 오피스와 관련된 웹사이트에 로그인할 수 있다. 처리 오피스와 관련된 서버는 사용자에게 애플리케이션을 선택하기 위한 선택 스크린을 제공할 것이다. 사용자가 모자이크 애플리케이션을 선택하는 경우, 서버는 사용자가 모자이크 내에서 보기를 원하는 콘텐츠를 선택하는 것을 허가할 것이다. 모자이크에 대한 선택된 콘텐츠에 응답하여 그리고 사용자의 계정 정보를 이용하여, 처리 오피스 서버는 요청을 세션 프로세서로 지향시키고, 사용자의 클라이언트 장치와의 상호작용 세션을 설정할 것이다. 이어서, 세션 프로세서는 처리 오피스 서버에 의해 원하는 애플리케이션을 통지받을 것이다. 세션 프로세서는 원하는 애플리케이션, 이 예에서는 모자이크 애플리케이션을 검색하고, 요청된 MPEG 객체들을 취득할 것이다. 이어서, 처리 오피스 서버는 요청된 비디오 콘텐츠를 세션 프로세서에 통지하며, 세션 프로세서는 스티처와 연계하여 모자이크를 형성하고, 모자이크를 MPEG 비디오 스트림으로서 클라이언트 장치에 제공할 것이다. 따라서, 처리 오피스 서버는 상호작용 세션을 셋업하고, 애플리케이션을 요청하고, 표시할 콘텐츠를 선택함에 있어서 클라이언트 장치의 기능들을 수행하기 위한 스크립트들 또는 애플리케이션을 포함할 수 있다. 모자이크 요소들은 애플리케이션에 의해 사전 결정될 수 있지만, 이들은 사용자에 의해 구성 가능하여 개인화된 모자이크가 될 수도 있다.
도 24는 IP 기반 콘텐츠 배포 시스템의 도면이다. 이 시스템에서, 콘텐츠는 방송 소스(2400), 콘텐츠 제공자(2410)에 의해 공급되는 프록시 캐시(2415), 구성 및 관리 파일들(2420)을 포함하는 네트워크 부가 저장소(NAS)(2425) 또는 도시되지 않는 다른 소스들로부터 올 수 있다. 예를 들어, NAS는 콘텐츠의 위치에 대한 정보를 제공하는 자산 메타데이터를 포함할 수 있다. 이 콘텐츠는 로드 밸런싱 스위치(2460)를 통해 이용될 수 있다. 블레이드 세션 프로세서들/가상 머신들(2460)은 배포를 위해 콘텐츠를 준비하기 위해 콘텐츠에 대해 상이한 처리 기능들을 수행할 수 있다. 콘텐츠는 사용자에 의해 셋톱 박스(2490)와 같은 클라이언트 장치를 통해 요청된다. 이러한 요청은 제어기(2430)에 의해 처리되고, 이어서 제어기는 이러한 콘텐츠를 제공할 자원들 및 경로를 구성한다. 클라이언트 장치(2490)는 콘텐츠를 수신하고, 이를 사용자의 디스플레이(2495) 상에 표시한다.
도 25는 케이블 기반 콘텐츠 배포 시스템의 도면을 제공한다. 다수의 컴포넌트, 즉 제어기(2530), 방송 소스(2500), 프록시 캐시(2515)를 통해 자신의 콘텐츠를 제공하는 콘텐츠 제공자(2510), 파일 서버 NAS(2525)를 통한 구성 및 관리 파일들(2520), 세션 프로세서들(2560), 로드 밸런싱 스위치(2550), 셋톱 박스(2590)와 같은 클라이언트 장치 및 디스플레이(2595)는 동일하다. 그러나, 상이한 물리적 매체로 인해 필요한 다수의 추가 장비들도 존재한다. 이 예에서, 추가 자원들은 QAM 변조기들(2575), 반환 경로 수신기(2570), 결합기 및 디플렉서(2580), 및 세션 및 자원 관리기(SRM)(2540)를 포함한다. QAM 업컨버터(2575)는 데이터(콘텐츠)를 하류로 사용자에게 전송하는 데 필요하다. 이러한 변조기들은 데이터를, 사용자에게로 향하는 동축 케이블을 통해 운반될 수 있는 형태로 변환한다. 따라서, 반환 경로 수신기(2570)는 셋톱 박스(2590)의 케이블로부터 나오는 데이터를 복조하는 데에도 사용된다. 결합기 및 디플렉서(2580)는 다운스트림 QAM 채널들을 결합하고 업스트림 반환 채널을 분할하는 수동형 장치이다. SRM은 QAM 변조기들이 어떻게 구성되고 지정되는지 그리고 스트림들이 어떻게 클라이언트 장치로 라우팅되는지를 제어하는 엔티티이다.
이러한 추가적인 자원들은 시스템에 비용을 추가한다. 결과적으로, IP 네트워크와 같은 차단되지 않는 시스템을 모방하는 성능의 레벨을 사용자에게 제공하는 데 필요한 추가 자원들의 수를 최소화하는 것이 요구된다. 네트워크 상에서 케이블 네트워크 자원들과 사용자들 사이에 일대일 대응 관계가 존재하지 않으므로, 자원들이 공유되어야 한다. 공유 자원들은 사용자가 자원을 요구할 때 할당되고, 이어서 사용자가 그 자원의 사용을 끝냈을 때 자유로워질 수 있도록 관리되어야 한다. 이러한 자원들의 적절한 관리는 운영자에게 중요한데, 그 이유는 그러한 관리 없이는 자원들이 가장 필요할 때 이용될 수 없기 때문이다. 이러한 일이 발생할 경우, 사용자는 "대기하시오"라는 메시지를 수신하거나, 최악의 경우에는 "서비스 불가"라는 메시지를 수신한다.
도 26은 사용자로부터의 입력에 기초하여 새로운 상호작용 세션을 구성하는 데 필요한 단계들을 나타내는 도면이다. 이 도면은 할당되거나, 관리되거나, 또는 할당 또는 관리를 행하는 데 사용되어야 하는 아이템들만을 도시한다. 통상적인 요청은 아래에 나열된 단계들을 따를 것이다.
(1) 셋톱(2609)이 제어기(2607)로부터 콘텐츠를 요청한다(2610).
(2) 제어기(2607)가 SRM(2603)으로부터 QAM 대역폭을 요청한다(2620).
(3) SRM(2603)이 QAM 가용성을 검사한다(2625).
(4) SRM(2603)이 QAM 변조기를 할당한다(2630).
(5) QAM 변조기가 확인을 반환한다(2635).
(6) SRM(2603)이 QAM 할당 성공을 제어기에 확인시킨다(2640).
(7) 제어기(407)가 세션 프로세서를 할당한다(2650).
(8) 세션 프로세서가 할당 성공을 확인시킨다(2653).
(9) 제어기(2607)가 콘텐츠를 할당한다(2655).
(10) 제어기(2607)가 셋톱(2609)을 구성한다(2660). 이것은
a. 주파수 튜닝
b. 프로그램 취득 또는 대안으로서 PID 디코딩
c. 키스트로크 취득을 위한 IP 포트와 세션 프로세서의 접속
을 포함한다.
(11) 셋톱(2609)이 채널에 튜닝한다(2663).
(12) 셋톱(2609)이 성공을 제어기(2607)에 확인시킨다(2665).
제어기(2607)는 셋톱 박스(2609)로부터의 서비스 요청에 기초하여 자원들을 할당한다. 제어기는 셋톱 또는 서버가 "세션 종료"를 전송할 때 이들 자원을 자유롭게 한다. 제어기(2607)는 최소의 지연으로 빠르게 반응할 수 있지만, SRM(2603)은 초당 설정된 수의 QAM 세션들만을, 즉 200개의 세션을 할당할 수 있다. 이러한 레이트를 초과하는 요구는 사용자에 대해 수용 불가한 지연들을 유발한다. 예를 들어, 500개의 요청이 동시에 수신되는 경우, 최종 사용자는 그의 요청이 승인되기 전에 5초 동안 기다려야 할 것이다. 요청이 승인되는 것이 아니라, "서비스 불가"와 같은 에러 메시지가 표시될 수도 있다.
위의 예는 케이블 TV 네트워크를 통한 AVDN 세션에 대한 요청 및 응답 시퀀스를 설명하지만, 아래의 예는 IPTV 네트워크를 통한 유사한 시퀀스를 설명한다. 이러한 시퀀스는 본질적으로 클레임이 아니라, AVDN이 IPTV 네트워크를 통해 어떻게 동작하는지를 설명한다는 점에 유의한다.
(1) 클라이언트 장치가 세션 관리자(즉, 제어기 프록시)를 통해 제어기로부터 콘텐츠를 요청한다.
(2) 세션 관리자가 요청을 제어기로 전송한다.
(3) 제어기가 세션 관리자(즉, 클라이언트 프록시)를 통해 요청된 콘텐츠로 응답한다.
(4) 세션 관리자가 유니캐스트 세션을 개설하고, 제어기 응답을 유니캐스트 IP 세션을 통해 클라이언트에게 전송한다.
(5) 클라이언트 장치가 유니캐스트 IP 세션을 통해 전송된 제어기 응답을 취득한다.
(6) 세션 관리자가 대역폭 사용 최적화 기술로서 동시에 동일 콘텐츠를 요청하는 노드 그룹 상의 다른 클라이언트들과 공유하기 위해 멀티캐스트 IP 세션을 통해 응답을 동시에 내로우캐스트(narrowcast)할 수 있다.
도 27은 성능 향상을 위해 각각의 영역을 분할하는 데 사용되는 간단한 시스템 도면이다. 이 도면은 관리될 데이터 및 장비에만 집중하며, 모든 다른 비관리 아이템들을 배제한다. 따라서, 스위치, 반환 경로, 결합기 등은 명료화를 위해 배제된다. 이 도면은 최종 사용자의 작업으로부터 콘텐츠 생성에 이르는 각각의 아이템을 검사하는 데 사용될 것이다.
첫 번째 과제는 SRM(2720)에 의한 QAM들(2770) 및 QAM 채널들(2775)의 할당이다. 구체적으로, SRM 과부하를 방지하기 위해, 즉 SRM(2720)에 대한 요청들이 그의 초당 세션들의 레이트를 초과할 때 사용자가 만나는 지연을 제거하기 위해, 자원들이 관리되어야 한다.
SRM "과부하"를 방지하기 위해, "시간 기반 모델링"이 이용될 수 있다. 시간 기반 모델링을 위해, 제어기(2700)는 과거의 트랜잭션들의 이력, 특히 고부하 기간들을 모니터링한다. 이러한 이전의 이력을 이용함으로써, 제어기(2700)는 고부하 기간이 언제, 예컨대 정각에 발생할 수 있는지를 예측할 수 있다. 제어기(2700)는 이러한 지식을 이용하여 그 기간이 오기 전에 자원들을 사전 할당한다. 즉, 제어기는 예측 알고리즘들을 이용하여 미래의 자원 요구들을 결정한다. 일례로서, 제어기(2700)가 475명의 사용자가 특정 시간에 만나려 한다고 생각하는 경우, 제어기는 5초 일찍 자원들의 할당을 시작할 수 있으며, 따라서 부하를 만날 때, 자원들은 이미 할당되어 있고, 어떠한 사용자도 지연을 겪지 않는다.
둘째로, 자원들은 운영자로부터의 입력에 기초하여 사전 할당될 수 있다. 운영자가 중요한 이벤트, 예컨대 페이 퍼 뷰(pay per view) 스포팅 이벤트가 다가오고 있음을 아는 경우, 운영자는 자원들을 미리 사전 할당하기를 원할 수 있다. 양 예에서, SRM(2720)은 사용중이 아닐 때 그리고 이벤트 후에 미사용 QAM(2770) 자원들을 자유롭게 한다.
셋째, QAM들(2770)은 이전의 이력과 무관한 "변경 레이트"에 기초하여 할당될 수 있다. 예를 들어, 제어기(2700)가 급격한 트래픽 스파이크를 인식하는 경우, 제어기는 추가적인 세션들을 추가할 때 QAM 할당 단계를 피하기 위해 필요한 것보다 많은 QAM 대역폭을 요청할 수 있다. 급격한, 예상치 못한 스파이크의 일례는 사용자가 버튼을 선택할 때 상을 받을 수 있음을 지시하는 프로그램의 일부로서의 그러한 버튼일 수 있다.
일반적으로, 각각의 세션을 추가하기 위한 SRM(2720)에 대한 하나의 요청이 존재한다. 대신에, 제어기(2700)는 전체 QAM(2770) 또는 단일 QAM의 대역폭의 대부분을 요청하고, 본 발명이 QAM 채널(2775) 내에서 데이터를 처리하게 할 수 있다. 이 시스템의 일 특징은 단지 1, 2 또는 3Mb/초인 채널을 생성하는 능력이므로, 이것은 최대 27개의 요청을 단일 요청으로 대체함으로써 SRM(2720)에 대한 요청들의 수를 줄일 수 있다.
사용자는 이미 활성화된 세션 내에 있는 경우에도 상이한 콘텐츠를 요청할 때에는 지연을 또한 겪을 것이다. 일반적으로, 셋톱(2790)이 활성화된 세션 내에 있고, 새로운 세트의 콘텐츠(2730)를 요청하는 경우, 제어기(2700)는 SRM(2720)에게 QAM(2770)을 할당 해제할 것을 지시해야 하고, 이어서 제어기(2700)는 세션 프로세서(2750) 및 콘텐츠(2730)를 할당 해제한 후에 SRM(2720)으로부터 다른 QAM(2770)을 요청하고, 이어서 상이한 세션 프로세서(2750) 및 콘텐츠(2730)를 할당해야 한다. 대신에, 제어기(2700)는 QAM 변조기(2770)에 공급하는 비디오 스트림(2755)을 변경하여, 이전에 설정된 경로를 본래대로 유지할 수 있다. 변경을 달성하기 위한 두 가지 방법이 존재한다. 첫째, QAM 변조기들(2770)은 네트워크 상에 있으므로, 제어기(2700)는 단지 QAM(2770)을 구동하는 세션 프로세서(2750)를 변경할 수 있다. 둘째, 제어기(2700)는 셋톱(2790)에 대한 세션 프로세서(2750)의 접속을 그대로 유지할 수 있지만, 세션 프로세서(2750)에 공급하는 콘텐츠(2730), 예컨대 "CNN 헤드라인 뉴스"를 "CNN 현재 세상"으로 변경할 수 있다. 이러한 두 가지 방법은 QAM 초기화 및 셋톱 튜닝 지연들을 제거한다.
따라서, 자원들은 이러한 상호작용 서비스들을 제공하는 데 필요한 장비의 양을 줄이도록 지능적으로 관리된다. 특히, 제어기는 QAM(2770)에 공급하는 비디오 스트림들(2755)을 조작할 수 있다. 이러한 스트림들(2755)을 프로파일링함으로써, 제어기(2700)는 QAM(2770) 내에서의 채널 사용을 최대화할 수 있다. 즉, 제어기는 각각의 QAM 채널(2775) 내의 프로그램들의 수를 최대화하여, 낭비되는 대역폭 및 필요한 QAM들(2770)의 수를 줄일 수 있다. 스트림들을 프로파일링하기 위한 3개의 주요 수단, 즉 공식화(formulaic), 사전 프로파일링 및 라이브 피드백이 존재한다.
제1 프로파일링 방법인 공식화는 QAM 채널(2775)을 채우는 데 사용되는 다양한 비디오 스트림들의 비트 레이트들을 합산하는 단계로 이루어진다. 구체적으로, 단일 비디오 스트림(2755)을 생성하는 데 사용되는 많은 비디오 요소가 존재할 수 있다. 각각의 요소의 최대 비트 레이트를 합산하여, 비디오 스트림(2755)에 대한 총 비트 레이트를 얻을 수 있다. 모든 비디오 스트림들(2755)의 비트 레이트들을 모니터링함으로써, 제어기(2700)는 QAM 채널(2775)을 가장 효율적으로 사용하는 비디오 스트림들(2755)의 조합을 생성할 수 있다. 예를 들어, 4개의 비디오 스트림(2755), 즉 16Mb/초인 2개 및 20Mb/초인 2개가 존재하는 경우, 제어기는 채널당 하나의 각각의 비트 레이트를 할당함으로써 38.8Mb/초의 QAM 채널(2775)을 최상으로 채울 수 있다. 이어서, 제어기는 비디오 전송하기 위해 2개의 QAM 채널(2775)을 필요로 할 것이다. 그러나, 공식화 프로파일링을 사용하지 않는 경우에는, 아마도 2개의 16Mb/초 비디오 스트림(2755)이 단일 38.8Mb/초 QAM 채널(2775)로 결합된 후에 각각의 20Mb/초 비디오 스트림(2755)이 그 자신의 38.8Mb/초 QAM 채널(2775)을 가져야 하므로, 결과적으로 3개의 QAM 채널(2775)이 필요할 수 있다.
제2 방법은 사전 프로파일링이다. 이 방법에서는, 콘텐츠(2730)에 대한 프로파일이 수신되거나, 내부적으로 생성된다. 프로파일 정보는 스트림을 갖는 메타데이터 내에서 또는 개별 파일 내에서 제공될 수 있다. 프로파일링 정보는 전체 비디오로부터 또는 대표적인 샘플로부터 생성될 수 있다. 이어서, 제어기(2700)는 스트림에서 다양한 시각에서의 비트 레이트를 알며, 이러한 정보를 이용하여 비디오 스트림들(2755)을 함께 효과적으로 결합할 수 있다. 예를 들어, 2개의 비디오 스트림(2755) 모두가 20Mb/초의 피크 레이트를 가진 경우, 이들은 이들의 피크들에 기초하여 대역폭을 할당받는 경우에 상이한 38.8Mb/초 QAM 채널들(2775)에 할당되는 것이 필요할 것이다. 그러나, 제어기가 명목 비트 레이트가 14Mb/초임을 알고, 그들 각각의 프로파일들을 알아서, 동시 피크들이 존재하지 않는 경우, 제어기(2700)는 스트림들(2755)을 단일 38.8Mb/초 QAM 채널(2775)로 결합할 수 있다. 특정 QAM 비트 레이트는 단지 위의 예들에 대해서만 사용되며, 제한으로서 해석되지 않아야 한다.
제3 프로파일링 방법은 시스템에 의해 제공되는 피드백을 통하는 것이다. 시스템은 스트림들을 형성하는 데 사용되는 모든 비디오 요소들에 대한 현재 비트 레이트 및 스트림이 형성된 후의 스트림의 총 비트 레이트를 제어기(2700)에 알릴 수 있다. 더욱이, 시스템은 저장된 요소들의 사용 전에 이들의 비트 레이트들을 제어기(2700)에 알릴 수 있다. 이러한 정보를 이용하여, 제어기(2700)는 가장 효율적인 방식으로 비디오 스트림들(2755)을 결합하여 QAM 채널(2775)을 채울 수 있다.
3개의 프로파일링 방법 중 어느 하나 또는 모두를 조합하여 이용하는 것도 가능하다는 점에 유의해야 한다. 즉, 이들이 독립적으로 사용되어야 한다는 제한은 존재하지 않는다.
시스템은 또한 자원들 자체의 사용을 어드레스할 수 있다. 예를 들어, 세션 프로세서(2750)가 100명의 사용자를 지원할 수 있고, 현재 350명의 사용자가 활동하고 있는 경우, 시스템은 4개의 세션 프로세서를 필요로 한다. 그러나, 요구가 예를 들어 80명의 사용자로 감소하는 경우, 그러한 자원들을 단일 세션 프로세서(2750)에 재할당하는 것이 가능하여, 3개의 세션 프로세서의 나머지 자원들이 보존된다. 이것은 고장 상황에서도 유용하다. 자원이 고장난 경우, 본 발명은 이용 가능한 다른 자원들에 세션들을 재할당할 수 있다. 이러한 방식으로, 사용자에 대한 방해가 최소화된다.
시스템은 또한 예상되는 사용에 따라 기능들을 변경할 수 있다. 세션 프로세서들(2750)은 다수의 상이한 기능, 예를 들어, 비디오 처리, 오디오 처리 등을 구현할 수 있다. 제어기(2700)는 사용의 이력을 가지므로, 세션 프로세서들(2700) 상의 기능들을 예상 수요를 충족시키도록 조정할 수 있다. 예를 들어, 이른 오후에 통상적으로 음악에 대한 많은 요구가 있는 경우, 제어기(2700)는 추가적인 세션 프로세서들(2750)을 재할당하여 수요를 예상하여 음악을 처리할 수 있다. 따라서, 이른 저녁에 뉴스에 대한 많은 요구가 있는 경우, 제어기(2700)는 수요를 예상하고, 그에 맞게 세션 프로세서들(2750)을 재할당한다. 시스템의 유연성 및 예측력은 시스템이 최소량의 장비로 최적의 사용자 경험을 제공할 수 있게 한다. 즉, 장비는 단일 목적만을 갖고, 그 목적은 필요하지 않으므로, 어떠한 장비도 쓸모없지 않게 된다.
도 28은 비관리형 IP 네트워크를 통해 가입자들에게 상호작용 콘텐츠를 제공할 수 있는 관리형 방송 콘텐츠 위성 네트워크를 도시한다. 관리형 네트워크는 전송되는 콘텐츠가 최종 사용자에 의해서가 아니라 서비스 제공자에 의해서만 결정되는 통신 네트워크이다. 따라서, 서비스 제공자는 제공되는 콘텐츠에 대한 관리적 제어를 갖는다. 이러한 정의는 물리적 상호접속들과 무관하며, 논리적 연관이다. 사실상, 양 네트워크는 동일 물리 링크를 통해 동작할 수 있다. 관리형 네트워크에서, 사용자는 서비스 제공자에 의해 방송되는 복수의 채널로부터 채널을 선택할 수 있지만, 전체 콘텐츠는 서비스 제공자에 의해 결정되고, 사용자는 네트워크 밖의 임의의 다른 콘텐츠에 액세스할 수 없다. 관리형 네트워크는 폐쇄형 네트워크이다. 비관리형 네트워크는 사용자가 서비스 제공자가 아닌 당사자로부터 콘텐츠를 요청하고 수신할 수 있게 한다. 예컨대, 인터넷은 비관리형 네트워크이며, 인터넷과 통신하는 사용자는 복수의 소스 중 하나로부터 콘텐츠를 수신하기로 선택할 수 있으며, 인터넷 서비스 제공자(ISP)에 의해 제공되는 콘텐츠로 한정되지 않는다. 관리형 네트워크들은 예를 들어 위성 네트워크, 케이블 네트워크 및 IP 텔레비전 네트워크일 수 있다.
도 28에 도시된 바와 같이, 방송 콘텐츠가 관리형 네트워크 오피스(2801)에 의해 하나 이상의 지정 채널을 통해 위성(2800)으로 업로드된다. 채널은 개별 주파수이거나, 채널은 디리미터(delimiter)(즉, 헤더 정보)에 의해 함께 관련되는 데이터의 연관일 수 있다. 수신 위성(2800)은 가입자에 의해 선택될 수 있는 복수의 채널을 포함하는 방송 콘텐츠를 재전송한다. 가입자의 집에 있는 위성 수신기(2802)는 송신을 수신하고, 송신을 셋톱 박스와 같은 클라이언트 장치(2803)로 전송한다. 클라이언트 장치는 위성 송신을 디코딩하고, 선택된 채널을 가입자의 디스플레이 장치(2804) 상에서의 시청을 위해 제공한다.
방송 송신의 방송 콘텐츠 내에는 하나 이상의 트리거가 존재한다. 트리거는 가능한 상호작용 콘텐츠의 지시자이다. 예컨대, 트리거는 방송 콘텐츠 내에 삽입되거나, 방송 콘텐츠를 포함하는 프레임의 일부인 광고에 동반할 수 있다. 트리거들은 하나 이상의 비디오 프레임들과 연관될 수 있으며, 방송 콘텐츠를 전송하는 매체에 따라 하나 이상의 비디오 프레임들에 대한 헤더 내에 내장되거나, 아날로그 전송 신호의 일부이거나, 디지털 데이터의 일부일 수 있다. 광고에 응답하여, 사용자는 원격 제어와 같은 사용자 입력 장치(도시되지 않음)를 사용하여, 광고와 관련된 상호작용 콘텐츠를 요청할 수 있다. 다른 실시예들에서, 트리거는 자동으로 상호작용 세션이 개시되고, 콘텐츠를 수신하기 위한 네트워크가 관리형 네트워크와 비관리형 네트워크 사이에서 전환되게 할 수 있다. 이에 응답하여, 클라이언트 장치(2803)는 위성 네트워크(2800)로부터 방송 콘텐츠(2805)를 수신하는 것과 인터넷과 같은 비관리형 네트워크(2806)를 통해 콘텐츠를 수신하고 송신하는 것 사이에서 전환한다. 클라이언트 장치는 관리형 네트워크로부터 송신들을 수신하고 디코딩하는 단일 박스를 포함할 수 있으며, 또한 비관리형 네트워크와의 양방향 통신도 포함한다. 따라서, 클라이언트 장치는 2개의 개별 수신기 및 적어도 하나의 송신기를 포함할 수 있다. 클라이언트 장치는 관리형 및 비관리형 네트워크들 양자를 위한 단일 공유 프로세서를 가질 수 있거나, 클라이언트 장치 내에 개별 프로세서들이 존재할 수 있다. 소프트웨어 모듈이 2개의 네트워크 사이의 전환을 제어한다.
따라서, 소프트웨어 모듈은 양 네트워크와 통신하는 중심 컴포넌트이다. 대안 실시예들에서는, 개별 클라이언트 디코딩 박스들이 관리형 및 비관리형 네트워크들에 대해 사용될 수 있으며, 이 두 개의 박스는 통신 채널을 포함한다. 예컨대, 2개의 박스는 IP 또는 UDP 프로토콜들을 통해 통신할 수 있으며, 이 경우에 제1 박스는 제2 박스에 인터럽트를 전송하거나 출력 억제 신호를 전송할 수 있다. 박스들은 포트들이 서로 접속되고 2개의 박스 모두가 접속을 협의할 때 이를 인식하는 발견 에이전트들을 구비할 수 있다. 통신 채널은 2개의 박스가 통신하는 것을 가능하게 하여, 박스들의 출력이 전환될 수 있게 한다. 따라서, 각각의 박스는 박스가 명령들을 전송하고 적어도 다른 박스의 출력 포트를 제어하는 것을 가능하게 하는 공동 통신 프로토콜을 이용하여 동작한다. 위성 기반 시스템들과 관련된 본 실시예의 설명은 단지 예시적인 목적이며, 이러한 설명은 관리형 및 비관리형 네트워크들 양자를 포함하는 실시예들에 쉽게 적용될 수 있다는 것을 인식해야 한다.
사용자가 클라이언트 장치(2802)에 송신을 전송함으로써 상호작용 콘텐츠를 요청할 때, 클라이언트 장치(2802)는 트리거를 추출하고, 트리거를 비관리형 네트워크를 통해 처리 오피스(2810)로 전송한다. 처리 오피스(2810)는 탐색표에서 상호작용 콘텐츠에 대한 관련 인터넷 어드레스를 탐색하거나, 클라이언트 장치로부터 수신된 송신으로부터 인터넷 어드레스를 추출한다. 처리 오피스는 인터넷(2830)을 통해 요청을 적절한 콘텐츠 서버(2820)로 전송한다. 상호작용 콘텐츠가 처리 오피스(2810)로 반환되며, 처리 오피스(2810)는 상호작용 콘텐츠를 클라이언트 장치(2803)에 적합한 포맷으로 처리한다. 예를 들어, 처리 오피스(2810)는 전술한 바와 같이 콘텐츠를 MPEG 비디오 스트림으로서 스티칭하는 것을 스케일링함으로써 트랜스코딩을 인코딩할 수 있다. 이어서, 비디오 스트림은 일련의 IP 패킷들과 같이 비관리형 네트워크(2806)를 통해 처리 오피스(2810)로부터 클라이언트 장치(2803)로 전송될 수 있다. 이러한 실시예에서, 클라이언트 장치(2802)는 위성 디코더, 및 비관리형 IP 네트워크를 통해 통신들을 송수신하기 위한 포트를 포함한다. 요청된 상호작용 콘텐츠가 클라이언트 장치(2803)에 의해 수신될 때, 클라이언트 장치는 위성 방송 채널을 출력하는 것과 비관리형 네트워크를 통해 수신된 상호작용 콘텐츠를 출력하는 것 사이에서 전환할 수 있다. 소정 실시예들에서, 오디오 콘텐츠는 위성 송신에 의해 계속 수신될 수 있으며, 비디오만이 위성 통신 채널과 IP 통신 채널 사이에서 전환된다. 위성 송신으로부터의 오디오 채널은 비관리형 IP 네트워크를 통해 수신된 비디오와 혼합될 것이다. 다른 실시예들에서는, 오디오 및 비디오 신호가 관리형 및 비관리형 네트워크들 사이에서 전환된다.
트리거들은 광고들로 제한될 필요가 없으며, 다른 형태의 상호작용 콘텐츠와 관련될 수 있다는 것을 이 분야의 통상의 기술자는 인식해야 한다. 예를 들어, 방송 송신은 사용자가 스포팅 이벤트를 행하는 팀에 대한 통계들과 관련된 상호작용 콘텐츠를 검색하는 것을 가능하게 하는 스포팅 이벤트 동안의 트리거를 포함할 수 있다.
일부 실시예들에서는, 송신 내에서 트리거가 식별될 때, 상호작용 세션이 자동으로 설정되며, 둘 이상의 소스로부터의 상호작용 콘텐츠가 전술한 바와 같이 함께 합체된다. 이어서, 상호작용 콘텐츠는 통신 네트워크를 통해 클라이언트 장치에 제공되어 디코딩된다. 따라서, 사용자는 상호작용 세션이 설정되기 전에 클라이언트 장치에 입력을 제공할 필요가 없다.
소정 실시예들에서, 클라이언트 장치는 관리형 및 비관리형 네트워크 양자로부터 콘텐츠를 수신할 수 있으며, 하나의 네트워크로부터의 정보를 다른 네트워크로부터의 정보로 교체할 수 있다. 예컨대, 광고들에 대한 식별 가능한 삽입 포인트들(예컨대, 시간 코드, 헤더 정보 등)을 갖는 방송 콘텐츠가 관리형 네트워크를 통해 전송될 수 있다. 방송 콘텐츠는 삽입 포인트에 광고를 포함할 수 있으며, 클라이언트 장치는 방송 광고를, 관리형 네트워크를 통해 전송된 광고로 교체할 수 있으며, 클라이언트 장치는 광고의 길이에 대해 관리형 및 비관리형 네트워크들 사이에서 전환한다.
도 29는 클라이언트 장치(2902)가 관리형 네트워크(2900)를 통해 방송 콘텐츠를 수신하고, 상호작용 콘텐츠가 비관리형 네트워크(2901)를 통해 요청될 수 있고 제공되는 또 하나의 환경을 나타낸다. 이 실시예에서, 처리 오피스(2910)는 케이블 시스템(2900)을 통해 방송 콘텐츠를 전송한다. 방송 콘텐츠는 복수의 방송 프로그램 중 하나의 선택을 제공하는 셋톱 박스(2902)와의 상호작용에 기초하여 사용자에 의해 선택될 수 있다. 방송 프로그램들 중 하나 이상은 방송 내의(즉, 방송과 관련된 헤더 내의, 디지털 데이터 내의 또는 아날로그 신호 내의) 트리거를 포함한다. 클라이언트 장치(2910)가 방송 신호를 수신하고, 선택된 방송 콘텐츠를 출력할 때, 클라이언트 장치(2902) 상에서 실행되는 프로그램이 트리거를 식별하고, 트리거를 임시 버퍼 내에 저장한다. 방송 프로그램이 진행됨에 따라 트리거가 변경되는 경우, 클라이언트 장치는 버퍼를 갱신할 것이다. 예를 들어, 트리거는 임시 만기를 가질 수 있다. 트리거는 비디오 콘텐츠로부터의 다수의 비디오 프레임과 관련될 수 있으며, 따라서 시간적으로 제한된다. 다른 실시예들에서, 트리거는 처리 오피스로 전송되고 그에 저장될 수 있다. 그러한 실시예에서는, 각각의 방송 채널에 대한 트리거들의 하나의 사본만이 저장되는 것이 필요하다.
사용자는 클라이언트 장치(2902)와 통신하는 사용자 입력 장치(즉, 원격 제어)를 이용하여 상호작용 콘텐츠를 요청할 수 있다. 예컨대, 클라이언트 장치는 셋톱 박스, 미디어 게이트웨이 또는 비디오 게임 시스템일 수 있다. 클라이언트 장치가 요청을 수신할 때, 클라이언트 장치는 트리거를 유지하는 임시 버퍼에 액세스함으로써 요청과 관련된 트리거를 식별한다. 트리거는 단지, 비관리형 네트워크(2901)를 통해 하류의 처리 오피스(2910)로 전송되는 식별자일 수 있거나, 트리거는 라우팅 정보(즉, IP 어드레스)를 포함할 수 있다. 클라이언트 장치(2902)는 트리거를 클라이언트 장치의 식별자와 더불어 처리 오피스로 전송한다. 처리 오피스(2910)는 상호작용 콘텐츠에 대한 요청을 수신하고, 트리거 식별자를 사용하여, IP 어드레스들의 리스트를 포함하는 탐색표에 액세스하거나, 처리 오피스는 콘텐츠 서버(2920)에 위치하는 상호작용 콘텐츠에 대한 IP 어드레스에 대해 인터넷(2930)을 통해 요청을 행한다. 클라이언트 장치와 처리 오피스 사이에 결합된 비관리형 네트워크는 인터넷의 일부로서 간주될 수 있다. 상호작용 콘텐츠는 인터넷 상의 서버로부터 또는 콘텐츠 서버로부터 처리 오피스로 전송된다. 처리 오피스는 상호작용 콘텐츠를 클라이언트 장치에 적합한 포맷으로 처리한다. 상호작용 콘텐츠는 MPEG 비디오 스트림으로 변환되고, 처리 오피스로부터 하류의 클라이언트 장치로 복수의 IP 패킷으로서 전송될 수 있다. MPEG 비디오 스트림은 MPEG에 따르며, 표준 MPEG 디코더에 의해 쉽게 디코딩될 수 있다. 상호작용 콘텐츠는 하나 이상의 소스로부터 생성될 수 있으며, 콘텐츠는 다시 포맷팅되고, 스케일링되고, 함께 스티칭되어, 일련의 비디오 프레임들을 형성할 수 있다. 상호작용 콘텐츠는 상호작용 콘텐츠를 구성하는 하나 이상의 비디오 프레임 내에 정적 요소들, 동적 요소들, 및 정적 및 동적 요소들 모두를 포함할 수 있다. 클라이언트 장치(2902)가 상호작용 콘텐츠를 수신할 때, 클라이언트 장치는 관리형 네트워크로부터 방송 콘텐츠를 수신하는 것으로부터 비관리형 네트워크로부터 상호작용 콘텐츠를 수신하는 것으로 전환한다. 클라이언트 장치(2902)는 수신된 상호작용 콘텐츠를 디코딩하고, 사용자는 상호작용 콘텐츠와 상호작용할 수 있으며, 처리 오피스는 클라이언트 장치로부터의 콘텐츠의 변경들에 대한 요청들을 수신한다. 요청들에 응답하여, 처리 오피스는 콘텐츠를 검색하고, 콘텐츠를 비디오 스트림으로서 인코딩하며, 콘텐츠를 비관리형 네트워크를 통해 클라이언트 장치로 전송한다.
다른 실시예들에서, 상호작용 세션에 대한 요청을 유발하는 트리거는 방송 콘텐츠 외부에서 발생할 수 있다. 예를 들어, 요청은 원격 제어와 같은 입력 장치와의 사용자 상호작용에 응답하여 발생할 수 있다. 원격 제어에 의해 생성되는 신호는 클라이언트 장치로 전송되고, 클라이언트 장치는 관리형 네트워크를 통해 방송 콘텐츠를 수신하는 것과 비관리형 네트워크를 통해 상호작용 세션에 대한 요청을 행하는 것 사이에서 전환함으로써 응답한다. 상호작용 세션에 대한 요청은 통신 네트워크를 통해 처리 오피스로 전송된다. 처리 오피스는 프로세서를 할당하고, 프로세서와 클라이언트 장치 사이에 접속이 협의된다. 클라이언트 장치는 셋톱 박스, 미디어 게이트웨이, 소비자 전자 장치, 또는 인터넷과 같은 네트워크를 통해 원격 제어 신호들을 전송하고, 표준 MPEG 인코딩된 비디오 스트림을 수신하고 디코딩할 수 있는 다른 장치일 수 있다. 처리 오피스의 프로세서는 둘 이상의 소스로부터 상호작용 콘텐츠를 수집한다. 예컨대, MPEG 객체들을 포함하는 AVML 템플릿이 사용될 수 있으며, 국지적으로 저장된 소스 또는 네트워크 접속을 통해 도달 가능한 소스로부터 MPEG 비디오 콘텐츠가 검색될 수 있다. 예컨대, 네트워크는 IP 네트워크일 수 있으며, MPEG 비디오 콘텐츠는 인터넷 내의 서버에 저장될 수 있다. 할당된 프로세서는 상호작용 콘텐츠가 함께 스티칭되게 한다. 이어서, 스티칭된 콘텐츠는 네트워크 접속을 통해 클라이언트 장치로 전송되며, 클라이언트 장치는 콘텐츠를 디코딩하고, 디코딩된 콘텐츠를 디스플레이 장치에 제공한다.
일례로서, 내장 또는 외장형 QAM 튜너를 포함하는 텔레비전이 방송 케이블 텔레비전 신호를 수신한다. 방송 케이블 텔레비전 신호는 하나 이상의 트리거를 포함하거나, 사용자가 입력 장치를 이용하여 요청 신호를 생성한다. 텔레비전은 방송 케이블 텔레비전 신호의 디코딩 동안에 트리거를 분석하거나, 입력 장치로부터 요청을 수신하고, 결과적으로 인터넷(비관리형 네트워크)에 결합되는 IP 장치로 신호가 생성되게 한다. 텔레비전은 디스플레이로의 방송 케이블 텔레비전 신호의 출력을 억제한다. IP 장치는 인터넷 접속을 통해 배치된 처리 오피스와의 상호작용 세션을 요청함으로써 트리거 또는 요청 신호에 응답하는 텔레비전 외부의 개별 박스이거나 텔레비전 내부에 위치할 수 있다. 프로세서가 처리 오피스에 의해 할당되고, IP 장치와 할당된 프로세서 사이에 접속이 협의된다. 할당된 프로세서는 둘 이상의 소스로부터 상호작용 콘텐츠를 생성하고, MPEG 요소 스트림을 생성한다. MPEG 요소 스트림은 IP 장치로 전송된다. 이어서, IP 장치는 MPEG 요소 스트림을 텔레비전에 제공하고, 텔레비전은 상호작용 콘텐츠를 디코딩하여 텔레비전 디스플레이에 제공한다. 입력 장치와의 사용자에 의한 추가 상호작용에 응답하여, 할당된 프로세서에 의해 요소 스트림에 대한 갱신들이 달성될 수 있다. 사용자가 방송 텔레비전 콘텐츠로 복귀하기로 결정하거나, 상호작용 콘텐츠가 종료되는 경우, 텔레비전은 방송 텔레비전 콘텐츠 신호의 억제를 중지하고, 텔레비전은 방송 텔레비전 신호를 디코딩하여 디스플레이에 제공한다. 따라서, 시스템은 트리거 또는 요청 신호의 결과로서 관리형 네트워크와 비관리형 네트워크 사이에서 전환하며, 상호작용 콘텐츠 신호는 텔레비전으로부터 떨어진 위치에서 둘 이상의 소스로부터 생성된다.
위의 실시예들은 위성 및 케이블 텔레비전 시스템들로 제한되지 않으며, 실시예들은 전화 시스템을 사용하는 IPTV 네트워크들과 같은 IPTV 네트워크들에 동일하게 적용가능할 수 있다. 그러한 실시예에서, IPTV 네트워크는 관리형 네트워크이며, 비관리형 네트워크는 인터넷에 대한 접속(예를 들어, DSL 모뎀, 무선 인터넷 네트워크 접속, 이더넷 네트워크 접속)일 것이다.
본 발명은 프로세서(예컨대, 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서 또는 범용 컴퓨터)에서 사용하기 위한 컴퓨터 프로그램 로직, 프로그래머블 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이(FPGA) 또는 다른 PLD)에서 사용하기 위한 프로그래머블 로직, 개별 컴포넌트들, 집적 회로(예를 들어, 주문형 집적회로(ASIC)), 또는 이들의 임의 조합을 포함하는 임의의 다른 수단을 포함하지만 이에 한정되지 않는 많은 상이한 형태로 구현될 수 있다. 본 발명의 일 실시예에서, 주로 모든 재배열 로직은 컴퓨터 실행 가능 형태로 변환되고, 컴퓨터 판독 가능 매체에 그 자체로 저장되고, 운영 체제의 제어하에 어레이 내의 마이크로프로세서에 의해 실행되는 컴퓨터 프로그램 명령어들의 세트로서 구현될 수 있다.
본 명세서에서 전술한 기능의 전부 또는 일부를 구현하는 컴퓨터 프로그램 로직은 소스 코드 형태, 컴퓨터 실행 가능 형태 및 다양한 중간 형태(예를 들어, 어셈블러, 컴파일러, 네트워커 또는 로케이터에 의해 생성되는 형태들)를 포함하지만 이에 한정되지 않는 다양한 형태로 구현될 수 있다. 소스 코드는 다양한 운영 체제 또는 운영 환경에서 사용하기 위한 임의의 다양한 프로그래밍 언어(예를 들어, 객체 코드, 어셈블리 언어, 또는 FORTRAN, C, C++, JAVA 또는 HTML과 같은 하이 레벨 언어)로 구현되는 일련의 컴퓨터 프로그램 명령어들을 포함할 수 있다. 소스 코드는 다양한 데이터 구조 및 통신 메시지를 정의하고 사용할 수 있다. 소스 코드는 (예를 들어, 해석기를 통해) 컴퓨터 실행 가능 형태일 수 있거나, 소스 코드는 (예컨대, 번역기, 어셈블러 또는 컴파일러를 통해) 컴퓨터 실행 가능 형태로 변환될 수 있다.
컴퓨터 프로그램은 반도체 메모리 장치(예컨대, RAM, ROM, PROM, EEPROM 또는 플래시 프로그래머블 RAM), 자기 메모리 장치(예컨대, 디스켓 또는 고정 디스크), 광학 메모리 장치(예컨대, CD-ROM), PC 카드(예컨대, PCMCIA 카드) 또는 다른 메모리 장치와 같은 유형 저장 매체 내에 영구적으로 또는 일시적으로 임의 형태(예컨대, 소스 코드 형태, 컴퓨터 실행 가능 형태 또는 중간 형태)로 배치될 수 있다. 컴퓨터 프로그램은 아날로그 기술, 디지털 기술, 광학 기술, 무선 기술, 네트워킹 기술 및 인터네트워킹 기술을 포함하지만 이에 한정되지 않는 임의의 다양한 통신 기술들을 이용하여 컴퓨터로 전송될 수 있는 신호 내에 임의 형태로 배치될 수 있다. 컴퓨터 프로그램은 인쇄된 또는 전자 문서를 동반하는 이동식 저장 매체(예를 들어, 개별 포장 소프트웨어(shrink wrapped software) 또는 자기 테이프)로서 임의 형태로 배포되거나, 컴퓨터 시스템에(또는 시스템 ROM 또는 고정 디스크 상에) 사전 로딩되거나, 통신 시스템(예컨대, 인터넷 또는 월드 와이드 웹)을 통해 서버 또는 전자 게시판으로부터 배포될 수 있다.
본 명세서에서 전술한 기능의 모두 또는 일부를 구현하는 (프로그래머블 로직 장치에서 사용하기 위한 프로그래머블 로직을 포함하는) 하드웨어 로직은 전통적인 수동 방법들을 이용하여 설계될 수 있거나, 컴퓨터 보조 설계(CAD), 하드웨어 기술 언어(예컨대, VHDL 또는 AHDL) 또는 PLD 프로그래밍 언어(예컨대, PALASM, ABEL 또는 CUPL)와 같은 다양한 도구들을 이용하여 설계되거나, 캡처되거나, 시뮬레이션되거나, 전자적으로 문서화될 수 있다.
본 발명은 특정 실시예들과 관련하여 구체적으로 도시되고 설명되었지만, 첨부된 청구항들에 의해 정의되는 바와 같은 본 발명의 사상 및 범위로부터 벗어나지 않고, 그 안에서 다양한 형태 및 상세 변경들이 이루어질 수 있다는 것을 이 분야의 전문가들은 이해할 것이다. 이 분야의 전문가들에게 명백하듯이, 파노라마들에 대해 전술한 기술들은 비 파노라마 이미지들로서 캡처된 이미지들에 적용될 수 있고, 그 반대도 마찬가지다.
본 발명의 실시예들은 아래의 절들에 제한 없이 설명될 수 있다. 이러한 실시예들은 조항들에서 프로세스 단계들에 의해 설명되었지만, 아래의 조항들 내의 프로세스 단계들을 실행할 수 있는 관련 디스플레이를 갖는 컴퓨터를 포함하는 장치도 본 발명에 포함된다. 또한, 아래의 조항들 내의 프로세스 단계들을 실행하고 컴퓨터 판독 가능 매체 상에 저장되는 컴퓨터 실행 가능 명령어들을 포함하는 컴퓨터 프로그램 제품도 본 발명에 포함된다.

Claims (36)

  1. 비관리형 네트워크(unmanaged network)를 통해 사용자와 관련된 디스플레이 장치에 상호작용 콘텐츠(interactive content)를 제공하기 위한 방법으로서 - 상기 디스플레이 장치는 관리형 네트워크(managed network)를 통해 방송 비디오 콘텐츠를 수신함 - ,
    네트워크 접속된 클라이언트 장치로부터 상기 비관리형 네트워크를 통해 상호작용 콘텐츠에 대한 요청을 수신하는 단계;
    상기 비관리형 네트워크를 통해 상호작용 콘텐츠를 갖는 제1 인코딩된 데이터 스트림을 상기 네트워크 접속된 클라이언트 장치로 전송하는 단계;
    상기 관리형 네트워크로부터 방송 콘텐츠 신호를 수신하는 것과, 상기 비관리형 네트워크로부터 상호작용 콘텐츠를 갖는 상기 제1 인코딩된 데이터 스트림을 수신하는 것 사이에서 전환하는 단계; 및
    상기 사용자의 디스플레이 장치 상의 표시를 위해 상기 상호작용 콘텐츠를 출력하는 단계
    를 포함하는, 상호작용 콘텐츠 제공 방법.
  2. 제1항에 있어서, 상기 방송 콘텐츠 신호는 복수의 방송 프로그램들을 포함하는, 상호작용 콘텐츠 제공 방법.
  3. 제2항에 있어서, 상기 네트워크 접속된 클라이언트 장치는 상기 방송 프로그램들 중 하나를 선택적으로 출력하는, 상호작용 콘텐츠 제공 방법.
  4. 제1항에 있어서, 상기 관리형 네트워크는 단방향 송신 경로를 갖는, 상호작용 콘텐츠 제공 방법.
  5. 제1항에 있어서, 상기 관리형 네트워크는 위성 네트워크인, 상호작용 콘텐츠 제공 방법.
  6. 제1항에 있어서, 상기 관리형 네트워크는 IP 텔레비전 네트워크인, 상호작용 콘텐츠 제공 방법.
  7. 제1항에 있어서, 상기 관리형 네트워크는 케이블 텔레비전 네트워크인, 상호작용 콘텐츠 제공 방법.
  8. 제1항에 있어서, 상기 비관리형 네트워크 및 상기 관리형 네트워크는 단일 통신 링크를 통해 동작하는, 상호작용 콘텐츠 제공 방법.
  9. 제1항에 있어서, 상기 상호작용 콘텐츠의 식별자는 트리거인, 상호작용 콘텐츠 제공 방법.
  10. 제9항에 있어서, 상기 트리거는 방송 프로그램 내에 위치하는, 상호작용 콘텐츠 제공 방법.
  11. 제9항에 있어서, 상기 트리거는 만기(temporal expiration)를 갖는, 상호작용 콘텐츠 제공 방법.
  12. 제11항에 있어서, 사용자 입력 장치로부터 상호작용 콘텐츠 요청 신호가 수신될 때 상기 선택된 방송 프로그램 내에서 상기 트리거를 식별하는 단계를 더 포함하는, 상호작용 콘텐츠 제공 방법.
  13. 제12항에 있어서, 상기 클라이언트 장치로부터 전송하는 단계는 상호작용 콘텐츠에 대한 사용자 요청 내에서 적어도 상기 트리거의 표시를 처리 오피스(processing office)로 전송하는 단계를 포함하는, 상호작용 콘텐츠 제공 방법.
  14. 관리형 네트워크를 통해 방송 프로그램을 수신하고, 비관리형 네트워크를 통해 상호작용 콘텐츠를 요청하고 수신하기 위한 클라이언트 장치로서,
    하나 이상의 관련 트리거를 갖는 방송 프로그램을 수신하기 위한 관리형 네트워크 포트;
    상호작용 콘텐츠에 대한 요청을 생성하는 프로세서 - 상기 프로세서는, 상기 방송 프로그램과 관련된 현재 트리거에 기초하여 상기 요청을 생성함 - ; 및
    상호작용 콘텐츠에 대한 상기 요청을 처리 오피스로 전송하고, 상기 처리 오피스로부터 상기 상호작용 콘텐츠를 수신하기 위한 비관리형 네트워크 포트
    를 포함하는 클라이언트 장치.
  15. 제14항에 있어서, 상호작용 콘텐츠의 선택을 나타내는 사용자 입력 신호를 수신하기 위한 사용자 입력 수신기를 더 포함하는 클라이언트 장치.
  16. 제15항에 있어서, 상기 프로세서는, 상기 사용자 입력 수신기가 사용자 입력 장치로부터 사용자 입력 신호를 수신할 때 상호작용 콘텐츠에 대한 요청을 생성하는 클라이언트 장치.
  17. 제15항에 있어서, 상기 프로세서는 사용자 입력에 응답하여 갱신된 상호작용 콘텐츠에 대한 요청을 전송하는 클라이언트 장치.
  18. 제14항에 있어서, 상기 상호작용 콘텐츠는 상기 클라이언트 장치 상에 렌더링되지 않는 클라이언트 장치.
  19. 제14항에 있어서, 상기 사용자 입력 신호에 응답하여 상기 관리형 네트워크 포트와 상기 비관리형 네트워크 포트 사이에서 전환하기 위한 전환 모듈을 더 포함하는 클라이언트 장치.
  20. 제14항에 있어서, 상기 프로세서는, 상기 상호작용 콘텐츠를 디스플레이 장치로 출력하기 전에 상기 상호작용 콘텐츠를 디코딩하는 클라이언트 장치.
  21. 제14항에 있어서, 상기 관리형 네트워크 포트는 위성 네트워크 포트이고, 상기 프로세서는 위성으로부터 전송된 상기 방송 프로그램을 제1 포맷으로 디코딩하는 클라이언트 장치.
  22. 제21항에 있어서, 상기 프로세서는 제2 포맷으로 인코딩된 상기 상호작용 콘텐츠를 디코딩하는 클라이언트 장치.
  23. 제21항에 있어서, 상기 사용자 입력 수신기는 사용자의 원격 제어로부터 송신을 수신하기 위한 적외선 수신기인 클라이언트 장치.
  24. 비관리형 네트워크를 통해 상호작용 콘텐츠를 사용자의 디스플레이 장치로 제공하기 위해 프로세서와 함께 동작하는 컴퓨터 판독 가능 저장 매체 상의 컴퓨터 코드를 갖는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 코드는,
    클라이언트 장치에서 관리형 네트워크를 통해 상호작용 식별자를 포함하는 방송 콘텐츠 신호를 수신하기 위한 컴퓨터 코드;
    상기 비관리형 네트워크를 통해 상기 상호작용 식별자에 기초하여 상호작용 콘텐츠에 대한 요청을 상기 클라이언트 장치로부터 전송하기 위한 컴퓨터 코드;
    상기 클라이언트 장치에서 상기 관리형 네트워크로부터 데이터를 수신하는 것과, 상기 비관리형 네트워크로부터 데이터를 수신하는 것 사이에서 전환하기 위한 컴퓨터 코드;
    상기 클라이언트 장치에서 상기 비관리형 네트워크로부터 상기 요청된 상호작용 콘텐츠를 수신하기 위한 컴퓨터 코드; 및
    상기 사용자의 디스플레이 장치 상의 표시를 위해 상기 상호작용 콘텐츠를 출력하기 위한 컴퓨터 코드
    를 포함하는 컴퓨터 프로그램 제품.
  25. 제24항에 있어서, 상기 방송 콘텐츠 신호는 복수의 방송 프로그램들을 포함하는 컴퓨터 프로그램 제품.
  26. 제24항에 있어서, 상기 방송 프로그램들 중 하나를 선택적으로 출력하기 위한 컴퓨터 코드를 더 포함하는 컴퓨터 프로그램 제품.
  27. 제24항에 있어서, 상기 관리형 네트워크는 위성 네트워크인 컴퓨터 프로그램 제품.
  28. 제24항에 있어서, 상기 관리형 네트워크는 IP 텔레비전 네트워크인 컴퓨터 프로그램 제품.
  29. 제24항에 있어서, 상기 관리형 네트워크는 케이블 텔레비전 네트워크인 컴퓨터 프로그램 제품.
  30. 제24항에 있어서, 상기 상호작용 식별자는 만기를 갖는 컴퓨터 프로그램 제품.
  31. 제24항에 있어서, 사용자 입력 장치로부터 상호작용 콘텐츠 요청 신호가 수신될 때 상기 선택된 방송 프로그램 내에서 상기 상호작용 식별자를 식별하기 위한 컴퓨터 코드를 더 포함하는 컴퓨터 프로그램 제품.
  32. 제24항에 있어서, 상기 클라이언트 장치로부터 전송하기 위한 컴퓨터 코드는 상호작용 콘텐츠에 대한 사용자 요청 내에서 적어도 상기 상호작용 식별자의 표시를 처리 오피스로 전송하기 위한 컴퓨터 코드를 포함하는 컴퓨터 프로그램 제품.
  33. 제1항에 있어서, 상기 클라이언트 장치는 2개의 개별 인클로저(enclosure)를 포함하고, 제1 인클로저는 상기 관리형 네트워크로부터 데이터를 수신하고, 제2 인클로저는 상기 비관리형 네트워크로부터 데이터를 송신하고 수신하는, 상호작용 콘텐츠 제공 방법.
  34. 제33항에 있어서, 전환은 상기 제1 인클로저와 상기 제2 인클로저 사이에 신호가 전송되는 것을 필요로 하는, 상호작용 콘텐츠 제공 방법.
  35. 관리형 네트워크를 통해 비디오 콘텐츠를 수신하는 클라이언트 장치와 관련된 디스플레이 장치에, 변경된 비디오 콘텐츠를 제공하기 위한 방법으로서,
    가입자와 관련된 클라이언트 장치로부터 떨어진 위치에서 비디오 콘텐츠 신호의 송신을 수신하는 단계;
    적어도 하나의 다른 비디오 신호를 상기 비디오 콘텐츠 신호와 함께 스티칭(stitching)함으로써 상기 비디오 콘텐츠 신호를 변경하는 단계; 및
    비관리형 네트워크 상에서 상기 변경된 비디오 콘텐츠 신호를 상기 관리형 네트워크에 결합된 상기 클라이언트 장치로 전송하는 단계
    를 포함하고,
    상기 변경된 비디오 콘텐츠 신호는, 상기 관리형 네트워크로부터 상기 비디오 프로그램을 출력하는 것과, 상기 비관리형 네트워크 상에서 상기 변경된 비디오 프로그램을 출력하는 것 사이에서 전환하도록 상기 클라이언트 장치에 지시하는 신호 성분을 포함하는, 변경된 비디오 콘텐츠 제공 방법.
  36. 제1항에 있어서, 상호작용 콘텐츠를 갖는 상기 제1 인코딩된 데이터 스트림은 방송 콘텐츠를 포함하는, 상호작용 콘텐츠 제공 방법.
KR1020117001881A 2008-06-25 2009-06-22 관리형 네트워크를 통한 텔레비전 방송 및 비관리형 네트워크를 통한 상호작용 콘텐츠의 클라이언트 장치로의 제공 KR20110030640A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13310208P 2008-06-25 2008-06-25
US61/133,102 2008-06-25

Publications (1)

Publication Number Publication Date
KR20110030640A true KR20110030640A (ko) 2011-03-23

Family

ID=42107119

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117001881A KR20110030640A (ko) 2008-06-25 2009-06-22 관리형 네트워크를 통한 텔레비전 방송 및 비관리형 네트워크를 통한 상호작용 콘텐츠의 클라이언트 장치로의 제공

Country Status (8)

Country Link
US (1) US20090328109A1 (ko)
EP (1) EP2304953A4 (ko)
JP (3) JP2011526134A (ko)
KR (1) KR20110030640A (ko)
CN (1) CN102132578A (ko)
BR (1) BRPI0914564A2 (ko)
CA (1) CA2728797A1 (ko)
WO (1) WO2010044926A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US10200744B2 (en) 2013-06-06 2019-02-05 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074248B2 (en) 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
EP3145200A1 (en) 2007-01-12 2017-03-22 ActiveVideo Networks, Inc. Mpeg objects and systems and methods for using mpeg objects
US8103707B2 (en) * 2007-03-30 2012-01-24 Verizon Patent And Licensing Inc. Method and system for presenting non-linear content based on linear content metadata
US9066047B2 (en) * 2007-12-19 2015-06-23 Echostar Technologies L.L.C. Apparatus, systems, and methods for accessing an interactive program
US8732749B2 (en) 2009-04-16 2014-05-20 Guest Tek Interactive Entertainment Ltd. Virtual desktop services
US9154331B2 (en) 2009-07-21 2015-10-06 At&T Intellectual Property I, L.P. Managing linear multimedia content delivery
US9338515B2 (en) 2009-09-03 2016-05-10 At&T Intellectual Property I, L.P. Real-time and secured picture/video upload via a content delivery network
US9229734B2 (en) * 2010-01-15 2016-01-05 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual user interfaces
US9003455B2 (en) 2010-07-30 2015-04-07 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual set top boxes
CN106454495B (zh) * 2010-10-01 2020-01-17 索尼公司 信息处理装置、信息处理方法和程序
JP5866125B2 (ja) 2010-10-14 2016-02-17 アクティブビデオ ネットワークス, インコーポレイテッド ケーブルテレビシステムを使用したビデオ装置間のデジタルビデオストリーミング
EP2695388B1 (en) 2011-04-07 2017-06-07 ActiveVideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
EP2595405B1 (en) * 2011-11-15 2020-02-26 LG Electronics Inc. Electronic device and method for providing contents recommendation service
US9426123B2 (en) 2012-02-23 2016-08-23 Time Warner Cable Enterprises Llc Apparatus and methods for content distribution to packet-enabled devices via a network bridge
US8838149B2 (en) 2012-04-02 2014-09-16 Time Warner Cable Enterprises Llc Apparatus and methods for ensuring delivery of geographically relevant content
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US9467723B2 (en) 2012-04-04 2016-10-11 Time Warner Cable Enterprises Llc Apparatus and methods for automated highlight reel creation in a content delivery network
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
CA2936787C (en) * 2014-02-06 2019-01-15 Nippon Steel & Sumitomo Metal Corporation Lap welding method, lap joint, production method of lap joint, and an automobile part
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
US20150350295A1 (en) * 2014-05-28 2015-12-03 Joel Solomon Isaacson System And Method For Loading Assets During Remote Execution
CN105592281B (zh) * 2014-10-22 2018-07-06 中国电信股份有限公司 Mpeg视频处理方法、装置和系统
CN104540028B (zh) * 2014-12-24 2018-04-20 上海影卓信息科技有限公司 一种基于移动平台的视频美化交互体验系统
CA3042326A1 (en) * 2015-11-02 2017-05-11 Vantrix Corporation Method and system for flow-rate regulation in a content-controlled streaming network
US10523636B2 (en) 2016-02-04 2019-12-31 Airwatch Llc Enterprise mobility management and network micro-segmentation
CN107479964A (zh) * 2016-06-08 2017-12-15 成都赫尔墨斯科技股份有限公司 一种云渲染系统
JP6931080B2 (ja) * 2017-06-13 2021-09-01 グーグル エルエルシーGoogle LLC 低遅延環境における高遅延デジタルコンポーネントの送信
US10856036B2 (en) 2018-09-25 2020-12-01 Rovi Guides, Inc. Expiring synchronized supplemental content in time-shifted media
US10452868B1 (en) 2019-02-04 2019-10-22 S2 Systems Corporation Web browser remoting using network vector rendering
US10558824B1 (en) 2019-02-04 2020-02-11 S2 Systems Corporation Application remoting using network vector rendering
US10552639B1 (en) 2019-02-04 2020-02-04 S2 Systems Corporation Local isolator application with cohesive application-isolation interface
US11880422B2 (en) 2019-02-04 2024-01-23 Cloudflare, Inc. Theft prevention for sensitive information
WO2023144964A1 (ja) * 2022-01-27 2023-08-03 日本電信電話株式会社 映像処理システム、圧縮装置、映像処理方法及びプログラム
US20230334494A1 (en) * 2022-04-18 2023-10-19 Tmrw Foundation Ip S. À R.L. Cryptographic digital assets management system

Family Cites Families (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319455A (en) * 1990-09-28 1994-06-07 Ictv Inc. System for distributing customized commercials to television viewers
US5526034A (en) * 1990-09-28 1996-06-11 Ictv, Inc. Interactive home information system with signal assignment
US5442700A (en) * 1990-09-28 1995-08-15 Ictv, Inc. Scrambling method
US5883661A (en) * 1990-09-28 1999-03-16 Ictv, Inc. Output switching for load levelling across multiple service areas
US5412720A (en) * 1990-09-28 1995-05-02 Ictv, Inc. Interactive home information system
US5594507A (en) * 1990-09-28 1997-01-14 Ictv, Inc. Compressed digital overlay controller and method for MPEG type video signal
US5220420A (en) * 1990-09-28 1993-06-15 Inteletext Systems, Inc. Interactive home information system for distributing compressed television programming
US5557316A (en) * 1990-09-28 1996-09-17 Ictv, Inc. System for distributing broadcast television services identically on a first bandwidth portion of a plurality of express trunks and interactive services over a second bandwidth portion of each express trunk on a subscriber demand basis
US5361091A (en) * 1990-09-28 1994-11-01 Inteletext Systems, Inc. Interactive home information system for distributing video picture information to television viewers over a fiber optic telephone system
US5587734A (en) * 1990-09-28 1996-12-24 Ictv, Inc. User interface for selecting television information services through pseudo-channel access
US6034678A (en) * 1991-09-10 2000-03-07 Ictv, Inc. Cable television system with remote interactive processor
EP0830786A1 (en) * 1995-06-08 1998-03-25 ICTV,Inc. Switched channel system
US6240555B1 (en) * 1996-03-29 2001-05-29 Microsoft Corporation Interactive entertainment system for presenting supplemental interactive content together with continuous video programs
US5781227A (en) * 1996-10-25 1998-07-14 Diva Systems Corporation Method and apparatus for masking the effects of latency in an interactive information distribution system
US6163272A (en) * 1996-10-25 2000-12-19 Diva Systems Corporation Method and apparatus for managing personal identification numbers in interactive information distribution system
US6166730A (en) * 1997-12-03 2000-12-26 Diva Systems Corporation System for interactively distributing information services
US6305019B1 (en) * 1997-01-13 2001-10-16 Diva Systems Corporation System for interactively distributing information services having a remote video session manager
US6253375B1 (en) * 1997-01-13 2001-06-26 Diva Systems Corporation System for interactively distributing information services
US6208335B1 (en) * 1997-01-13 2001-03-27 Diva Systems Corporation Method and apparatus for providing a menu structure for an interactive information distribution system
US5923891A (en) * 1997-03-14 1999-07-13 Diva Systems Corporation System for minimizing disk access using the computer maximum seek time between two furthest apart addresses to control the wait period of the processing element
AU9211598A (en) * 1997-08-27 1999-03-16 Starsight Telecast Incorporated Systems and methods for replacing television signals
US6205582B1 (en) * 1997-12-09 2001-03-20 Ictv, Inc. Interactive cable television system with frame server
EP1038397A1 (en) * 1997-12-09 2000-09-27 ICTV,Inc. Distributed scrambling method and system
US6198822B1 (en) * 1998-02-11 2001-03-06 Ictv, Inc. Enhanced scrambling of slowly changing video signals
US6510554B1 (en) * 1998-04-27 2003-01-21 Diva Systems Corporation Method for generating information sub-streams for FF/REW applications
US6385771B1 (en) * 1998-04-27 2002-05-07 Diva Systems Corporation Generating constant timecast information sub-streams using variable timecast information streams
JPH11331611A (ja) * 1998-05-15 1999-11-30 Canon Inc 画像復号化装置及び方法、画像処理装置及び方法並びに記憶媒体
US6359939B1 (en) * 1998-05-20 2002-03-19 Diva Systems Corporation Noise-adaptive packet envelope detection
JP3818615B2 (ja) * 1998-05-28 2006-09-06 キヤノン株式会社 画像合成装置及び方法並びに記憶媒体
EP1082853A1 (en) * 1998-05-29 2001-03-14 Diva Systems Corporation Interactive information distribution system and method
US6314573B1 (en) * 1998-05-29 2001-11-06 Diva Systems Corporation Method and apparatus for providing subscription-on-demand services for an interactive information distribution system
US6324217B1 (en) * 1998-07-08 2001-11-27 Diva Systems Corporation Method and apparatus for producing an information stream having still images
US6584153B1 (en) * 1998-07-23 2003-06-24 Diva Systems Corporation Data structure and methods for providing an interactive program guide
US6415437B1 (en) * 1998-07-23 2002-07-02 Diva Systems Corporation Method and apparatus for combining video sequences with an interactive program guide
US6298071B1 (en) * 1998-09-03 2001-10-02 Diva Systems Corporation Method and apparatus for processing variable bit rate information in an information distribution system
US6438140B1 (en) * 1998-11-19 2002-08-20 Diva Systems Corporation Data structure, method and apparatus providing efficient retrieval of data from a segmented information stream
US6697376B1 (en) * 1998-11-20 2004-02-24 Diva Systems Corporation Logical node identification in an information transmission network
US6578201B1 (en) * 1998-11-20 2003-06-10 Diva Systems Corporation Multimedia stream incorporating interactive support for multiple types of subscriber terminals
US6598229B2 (en) * 1998-11-20 2003-07-22 Diva Systems Corp. System and method for detecting and correcting a defective transmission channel in an interactive information distribution system
US6732370B1 (en) * 1998-11-30 2004-05-04 Diva Systems Corporation Service provider side interactive program guide encoder
US6389218B2 (en) * 1998-11-30 2002-05-14 Diva Systems Corporation Method and apparatus for simultaneously producing compressed play and trick play bitstreams from a video frame sequence
US6253238B1 (en) * 1998-12-02 2001-06-26 Ictv, Inc. Interactive cable television system with frame grabber
US6588017B1 (en) * 1999-01-27 2003-07-01 Diva Systems Corporation Master and slave subscriber stations for digital video and interactive services
US6691208B2 (en) * 1999-03-12 2004-02-10 Diva Systems Corp. Queuing architecture including a plurality of queues and associated method for controlling admission for disk access requests for video content
US6229895B1 (en) * 1999-03-12 2001-05-08 Diva Systems Corp. Secure distribution of video on-demand
US6415031B1 (en) * 1999-03-12 2002-07-02 Diva Systems Corporation Selective and renewable encryption for secure distribution of video on-demand
US6378036B2 (en) * 1999-03-12 2002-04-23 Diva Systems Corporation Queuing architecture including a plurality of queues and associated method for scheduling disk access requests for video content
US6282207B1 (en) * 1999-03-30 2001-08-28 Diva Systems Corporation Method and apparatus for storing and accessing multiple constant bit rate data
US6240553B1 (en) * 1999-03-31 2001-05-29 Diva Systems Corporation Method for providing scalable in-band and out-of-band access within a video-on-demand environment
US6289376B1 (en) * 1999-03-31 2001-09-11 Diva Systems Corp. Tightly-coupled disk-to-CPU storage server
US6604224B1 (en) * 1999-03-31 2003-08-05 Diva Systems Corporation Method of performing content integrity analysis of a data stream
US6721794B2 (en) * 1999-04-01 2004-04-13 Diva Systems Corp. Method of data management for efficiently storing and retrieving data to respond to user access requests
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management
US6639896B1 (en) * 1999-04-01 2003-10-28 Diva Systems Corporation Asynchronous serial interface (ASI) ring network for digital information distribution
US6209024B1 (en) * 1999-04-05 2001-03-27 Diva Systems Corporation Method and apparatus for accessing an array of data storage devices by selectively assigning users to groups of users
US6614843B1 (en) * 1999-04-15 2003-09-02 Diva Systems Corporation Stream indexing for delivery of interactive program guide
US6621870B1 (en) * 1999-04-15 2003-09-16 Diva Systems Corporation Method and apparatus for compressing video sequences
US6704359B1 (en) * 1999-04-15 2004-03-09 Diva Systems Corp. Efficient encoding algorithms for delivery of server-centric interactive program guide
US6651252B1 (en) * 1999-10-27 2003-11-18 Diva Systems Corporation Method and apparatus for transmitting video and graphics in a compressed form
US6754271B1 (en) * 1999-04-15 2004-06-22 Diva Systems Corporation Temporal slice persistence method and apparatus for delivery of interactive program guide
US6115076A (en) * 1999-04-20 2000-09-05 C-Cube Semiconductor Ii, Inc. Compressed video recording device with non-destructive effects addition
US6718552B1 (en) * 1999-04-20 2004-04-06 Diva Systems Corporation Network bandwidth optimization by dynamic channel allocation
US6477182B2 (en) * 1999-06-08 2002-11-05 Diva Systems Corporation Data transmission method and apparatus
US6330719B1 (en) * 1999-06-30 2001-12-11 Webtv Networks, Inc. Interactive television receiver unit browser that waits to send requests
US6944877B1 (en) * 1999-08-27 2005-09-13 Koninklijke Philips Electronics N.V. Closed loop addressable advertising system and method of operation
ES2158812B1 (es) * 1999-11-05 2002-02-01 Castellon Melchor Daumal Dispositivo elevador de cristales para automoviles.
JP4274653B2 (ja) * 1999-11-12 2009-06-10 パナソニック株式会社 動画像合成装置および動画像合成方法
JP2001145021A (ja) * 1999-11-16 2001-05-25 Victor Co Of Japan Ltd 画像処理方法および画像処理装置
US6681397B1 (en) * 2000-01-21 2004-01-20 Diva Systems Corp. Visual improvement of video stream transitions
US20060117340A1 (en) * 2000-05-05 2006-06-01 Ictv, Inc. Interactive cable television system without a return path
GB0015065D0 (en) * 2000-06-21 2000-08-09 Macnamee Gerard System and method of personalised interactive TV advertising over broadcast television system
US20020083464A1 (en) * 2000-11-07 2002-06-27 Mai-Ian Tomsen System and method for unprompted, context-sensitive querying during a televison broadcast
US6907574B2 (en) * 2000-11-29 2005-06-14 Ictv, Inc. System and method of hyperlink navigation between frames
US7870592B2 (en) * 2000-12-14 2011-01-11 Intertainer, Inc. Method for interactive video content programming
JP2002300556A (ja) * 2001-03-30 2002-10-11 Casio Electronics Co Ltd Tv受信料支払代行システム
US20020188628A1 (en) * 2001-04-20 2002-12-12 Brian Cooper Editing interactive content with time-based media
US7266832B2 (en) * 2001-06-14 2007-09-04 Digeo, Inc. Advertisement swapping using an aggregator for an interactive television system
JP3795772B2 (ja) * 2001-06-25 2006-07-12 株式会社ノヴァ マルチメディア情報通信サービスシステム
JP2003006555A (ja) * 2001-06-25 2003-01-10 Nova:Kk コンテンツ配信方法、シナリオデータ、記録媒体およびシナリオデータ生成方法
CA2456984C (en) * 2001-08-16 2013-07-16 Goldpocket Interactive, Inc. Interactive television tracking system
WO2003077559A1 (en) * 2002-03-05 2003-09-18 Intellocity Usa, Inc. Multicasting of interactive data
WO2003085982A2 (en) * 2002-04-04 2003-10-16 Intellocity Usa, Inc. Interactive television notification system
US8443383B2 (en) * 2002-05-03 2013-05-14 Time Warner Cable Enterprises Llc Use of messages in program signal streams by set-top terminals
US8312504B2 (en) * 2002-05-03 2012-11-13 Time Warner Cable LLC Program storage, retrieval and management based on segmentation messages
US7614066B2 (en) * 2002-05-03 2009-11-03 Time Warner Interactive Video Group Inc. Use of multiple embedded messages in program signal streams
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
JP2004112441A (ja) * 2002-09-19 2004-04-08 Casio Comput Co Ltd 広告情報提供システム及び広告情報提供方法
JP2004120089A (ja) * 2002-09-24 2004-04-15 Canon Inc 受信装置
JP4268496B2 (ja) * 2002-10-15 2009-05-27 パナソニック株式会社 コンテンツの記録に要する記録メディアの記録容量を節約する放送記録システム、記録装置、放送装置および記録プログラム
US8015584B2 (en) * 2002-10-18 2011-09-06 Seachange International, Inc. Delivering interactive content to a remote subscriber
US20050015816A1 (en) * 2002-10-29 2005-01-20 Actv, Inc System and method of providing triggered event commands via digital program insertion splicing
US20040111526A1 (en) * 2002-12-10 2004-06-10 Baldwin James Armand Compositing MPEG video streams for combined image display
US20040244035A1 (en) * 2003-05-28 2004-12-02 Microspace Communications Corporation Commercial replacement systems and methods using synchronized and buffered TV program and commercial replacement streams
JP2005026867A (ja) * 2003-06-30 2005-01-27 Nhk Engineering Services Inc 放送通信融合端末、並びに、放送通信融合端末の放送関連情報取得方法及びそのプログラム
JP2005084987A (ja) * 2003-09-09 2005-03-31 Fuji Photo Film Co Ltd サービスサーバ及び合成動画作成サービス方法
JP2005123981A (ja) * 2003-10-17 2005-05-12 Hitachi Communication Technologies Ltd 画像信号受信装置およびその画像符号化信号合成方法
US20050108091A1 (en) * 2003-11-14 2005-05-19 John Sotak Methods, systems and computer program products for providing resident aware home management
JP2005156996A (ja) * 2003-11-26 2005-06-16 Pioneer Electronic Corp 情報記録再生端末装置、広告情報配信サーバ、広告情報配信システム、広告情報配信方法、コンテンツデータ再生プログラム、広告情報配信プログラム及び情報記録媒体
US20050149988A1 (en) * 2004-01-06 2005-07-07 Sbc Knowledge Ventures, L.P. Delivering interactive television components in real time for live broadcast events
CN1843034A (zh) * 2004-01-29 2006-10-04 松下电器产业株式会社 传输设备、内容再现设备以及内容和许可分发系统
JP4170949B2 (ja) * 2004-04-21 2008-10-22 株式会社東芝 データ利用装置、データ利用方法及びプログラム
JP4645102B2 (ja) * 2004-08-27 2011-03-09 パナソニック株式会社 広告受信機と広告受信システム
US20060075449A1 (en) * 2004-09-24 2006-04-06 Cisco Technology, Inc. Distributed architecture for digital program insertion in video streams delivered over packet networks
JP4355668B2 (ja) * 2005-03-07 2009-11-04 Necパーソナルプロダクツ株式会社 コンテンツ再生システム、サーバ、コンテンツ再生方法
US8074248B2 (en) * 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
US20070028278A1 (en) * 2005-07-27 2007-02-01 Sigmon Robert B Jr System and method for providing pre-encoded audio content to a television in a communications network
US9357175B2 (en) * 2005-11-01 2016-05-31 Arris Enterprises, Inc. Generating ad insertion metadata at program file load time
US20070300280A1 (en) * 2006-06-21 2007-12-27 Turner Media Group Interactive method of advertising
US20080098450A1 (en) * 2006-10-16 2008-04-24 Toptrend Global Technologies, Inc. Dual display apparatus and methodology for broadcast, cable television and IPTV
US20080201736A1 (en) * 2007-01-12 2008-08-21 Ictv, Inc. Using Triggers with Video for Interactive Content Identification
EP3145200A1 (en) * 2007-01-12 2017-03-22 ActiveVideo Networks, Inc. Mpeg objects and systems and methods for using mpeg objects
US20080212942A1 (en) * 2007-01-12 2008-09-04 Ictv, Inc. Automatic video program recording in an interactive television environment
US8149917B2 (en) * 2008-02-01 2012-04-03 Activevideo Networks, Inc. Transition creation for encoded video in the transform domain

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US11073969B2 (en) 2013-03-15 2021-07-27 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US10200744B2 (en) 2013-06-06 2019-02-05 Activevideo Networks, Inc. Overlay rendering of user interface onto source video

Also Published As

Publication number Publication date
WO2010044926A2 (en) 2010-04-22
EP2304953A2 (en) 2011-04-06
CA2728797A1 (en) 2010-04-22
WO2010044926A3 (en) 2010-06-17
CN102132578A (zh) 2011-07-20
JP2016001911A (ja) 2016-01-07
JP2014168296A (ja) 2014-09-11
BRPI0914564A2 (pt) 2015-12-15
EP2304953A4 (en) 2012-11-28
JP5795404B2 (ja) 2015-10-14
US20090328109A1 (en) 2009-12-31
JP2011526134A (ja) 2011-09-29

Similar Documents

Publication Publication Date Title
JP5795404B2 (ja) 被管理ネットワークを介したテレビ放送および非被管理ネットワークを介した双方向コンテンツのクライアントデバイスへの提供
US9042454B2 (en) Interactive encoded content system including object models for viewing on a remote device
US9826197B2 (en) Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US20080212942A1 (en) Automatic video program recording in an interactive television environment
JP5936805B2 (ja) パラレルユーザセッションをストリーミングするための方法、システム、およびコンピュータソフトウェア
EP1051039A2 (en) System and methods for preparing multimedia data using digital video data compression
JP2020509646A (ja) ライブビデオ放送の制作用のメディアコンテンツのキャプチャを制御するシステム及び方法
WO2008036185A2 (en) Methods, apparatus, and systems for insertion of overlay content into a video signal with transrating capabilities
US10743039B2 (en) Systems and methods for interleaving video streams on a client device
EP2448287A1 (en) Image processing device, image processing method, and image processing system
JP2023517484A (ja) 遠隔要素分解のクライアントベースの記憶装置
Angelides et al. The handbook of MPEG applications: standards in practice
Yu et al. Internet-based interactive HDTV

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid