KR20080024167A - 대화형 미디어 환경에서 복수의 애플리케이션을 렌더링하고합성하기 위한 방법, 시스템, 및 컴퓨터 판독가능 매체 - Google Patents

대화형 미디어 환경에서 복수의 애플리케이션을 렌더링하고합성하기 위한 방법, 시스템, 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR20080024167A
KR20080024167A KR1020077030967A KR20077030967A KR20080024167A KR 20080024167 A KR20080024167 A KR 20080024167A KR 1020077030967 A KR1020077030967 A KR 1020077030967A KR 20077030967 A KR20077030967 A KR 20077030967A KR 20080024167 A KR20080024167 A KR 20080024167A
Authority
KR
South Korea
Prior art keywords
application
order
display
applications
graphics
Prior art date
Application number
KR1020077030967A
Other languages
English (en)
Other versions
KR101311111B1 (ko
Inventor
제임스 씨. 핑거
존 안드레 유빈
쿠르쉐드 마자르
올리비에 콜레
아더 윌리암 제임스 프레만
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080024167A publication Critical patent/KR20080024167A/ko
Application granted granted Critical
Publication of KR101311111B1 publication Critical patent/KR101311111B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Processing (AREA)
  • Digital Computer Display Output (AREA)
  • Document Processing Apparatus (AREA)
  • Stored Programmes (AREA)
  • Image Generation (AREA)

Abstract

대화형 미디어 환경(1250)에서, 각각이 0개 이상의 스크립트 컴포넌트 및 0개 이상의 마크업 파일들을 포함하는 애플리케이션이 스스로 Z 순서를 가지는 시각적인 요소들로서 처리되는 모델이 제공된다. (자신의 사용자 이벤트를 수신함에 의하여) 대화형 미디어 환경(1250)에서 포커스(focus)를 가지는 애플리케이션이 먼저 렌더링되는 렌더링 순서가 제공된다. 남아 있는 애플리케이션이 위에서 아래로의 순서로, 즉, 반대의 Z 순서(1362)로 렌더링된다. 각각의 애플리케이션과 관련된 하나 이상의 그래픽 버퍼(1528)에 드로잉함(drawing)으로써 렌더링이 수행된다. 애플리케이션의 프레임들은 아래서 위로인 Z 순서(1352)로, 그래픽 버퍼로부터 합성되어 올바른 형상을 가지는 디스플레이를 제공한다.
Figure P1020077030967
대화형 미디어 환경, 마크업, 버퍼, 그래픽, 비디오

Description

대화형 미디어 환경에서 복수의 애플리케이션을 렌더링하고 합성하기 위한 방법, 시스템, 및 컴퓨터 판독가능 매체{RENDERING AND COMPOSITING MULTIPLE APPLICATIONS IN AN INTERACTIVE MEDIA ENVIRONMENT}
본 출원은 본원에 참조로서 포함되는 2005년 7월 1일자로 출원된 가특허 출원 제60/695,944의 우선권을 주장한다.
본원에 기술된 구성, 시스템 및 방법은 일반적으로 대화형 미디어에 관한 것이며 보다 상세히는 대화형 미디어 환경에서 복수의 애플리케이션을 렌더링하고 합성하는 것에 관한 것이다.
대화형 미디어 환경은 통상적으로 이용가능한 프로세싱 파워, 메모리, 및 이 환경에서 실행되는 애플리케이션에 이용가능한 다른 자원에 의하여 규제되는 자원이다. 대화형 미디어의 한 일반적인 예로는 사용자가 그래픽 메뉴 또는 기타 컨트롤과 대화하여 특정 비디오 콘텐츠를 네비게이션하거나 DVD에 작성된 특정 특징들을 호출할 수 있는 이러한 DVD로 인코딩된 비디오이다.
통상적인 대화형 미디어 환경에서, 그래픽 및 메뉴 등의 시각적인 요소에는 이 요소들의, 디스플레이 화면 상에서의 시각적인 순서를 제공하는 "Z 순서"가 주어진다. Z 순서는 시각적인 요소들이 디스플레이 화면으로부터 바깥쪽으로 이어지 는 가상의 Z-축을 따라 서로의 상면에 적층되는 것처럼 보이는 방식을 제어한다. 낮은 Z 순서를 가지는 시각적인 요소는 디스플레이의 하단에 있는 것처럼 보이는(그리고 사용자로부터 멀어보이는) 반면, 높은 Z 순서를 가지는 시각적인 요소는 낮은 Z 순서를 가지는 요소의 상면에 있는 것처럼 (따라서 사용자에 가까워) 보인다.
일반적으로, 디스플레이를 위하여 시각적인 요소를 렌더링할 때, 낮은 Z 순서를 가지는 요소가 먼저 드로잉되지고 그 다음에 높은 Z 순서를 가지는 요소가 드로잉된다. 그 다음 높은 Z 순서를 가지는 시각적인 요소가 그 위에 드로잉될 것이며 낮은 Z 순서를 가지는 요소의 일부 또는 전부를 가리게 될 수 있다. 이런 식으로, 적절히 겹치며 상대적인 순서를 가지는 스택(stack)으로 된 시각적인 요소들을 가지는 디스플레이가 올바르게 나타난다. 그러나, 이러한 방법론은 자원이 가장 아래에 있는 시각적 요소들(가장 먼저 드로잉되기 때문에)에 집중되도록 강요하므로 비효율적일 수 있다. 드로잉이 완료된 장면에서 높은 Z 순서를 가지는 시각적인 요소들이 결국에는 낮은 Z순서를 가지는 시각적인 요소들을 가리게 되는 경우에도 이러한 낮은 Z 순서를 가지는 시각적 요소들을 드로잉하는 데에 프로세싱 파워가 낭비된다. 이러한 비효율성은 시스템 자원을 지나치게 많이 요구하고 이 환경에서의 비디오와 그래픽 간의 동기화 및 비디오 재생의 중단과 같은 바람직하지 못한 재생 행위를 발생시킬 수 있다.
대화형 미디어 환경에서, 각각이 0개 이상의 스크립트 컴포넌트 및 0개 이상의 마크업 파일들을 포함하는 애플리케이션이 스스로 Z 순서를 가지는 시각적인 요소들로서 처리되는 모델이 제공된다. (자신의 사용자 이벤트를 수신함에 의하여) 대화형 미디어 환경에서 포커스(focus)를 가지는 애플리케이션이 먼저 렌더링되는 렌더링 순서가 이용된다. 그 다음 남아 있는 애플리케이션이 위에서 아래로의 순서로, 즉, 역 Z 순서로 렌더링된다. 각각의 애플리케이션과 관련된 하나 이상의 그래픽 버퍼에 드로잉함(drawing)으로써 렌더링이 수행된다. 애플리케이션의 프레임들은 아래서 위로인 Z 순서로, 그래픽 버퍼로부터 합성되어 올바른 형상을 가지는 디스플레이를 제공한다.
다양한 예시적인 예에서, 재생 시스템의 네비게이션 관리자는 재생 시스템에서 실행되는 애플리케이션에 대한 Z 순서를 보유한다. 표시 엔진은, 애플리케이션에 의해, 역 Z 순서로 각각의 그래픽 버퍼들에 렌더링되는 애플리케이션의 마크업으로 캔버스 개체에 애플리케이션을 드로잉한다. 그래픽 렌더링 엔진은 파인터(Painter's) 알고리즘을 이용하여 애플리케이션에 의해 Z 순서로 그래픽 버퍼들로부터의 프레임들을 합성한다. 애플리케이션은 또한 자신의 위에 적층된(즉, 자신보다 높은 Z 순서를 가지는) 애플리케이션들에 구멍을 뚫어 시각적으로 스택의 아래에 있는 시각적인 요소를 올리거나, 요소들을 디스플레이의 아래로 눌러 내리는 메소드를 호출할 수 있다.
바람직하게는, 역 Z 순서로 그래픽 버퍼에 애플리케이션을 렌더링한 다음 Z 순서로 디스플레이를 합성하는 것은 프로세서 순환 및 메모리를 포함하는 하드웨어 자원이 일반적으로 한정된 환경에 자원이-효율적인 모델을 제공한다. 포커싱된 애플리케이션 및 높은 Z 순서를 가지는 애플리케이션에 보다 자연스러운 우선 순위가 주어져 결국에는 그 위에 드로잉이 되거나 덮여질 낮은 Z 순서를 가지는 시각적인 요소를 드로잉하는 데에 적은 자원을 들이게 한다.
도 1은 대화형 미디어 환경에서 이용되는 애플리케이션을 구성하는 요소들을 도시하는 예시적인 블록도.
도 2는 복수의 마크업 문서들 및 스크립트 간의 관계를 나타내는 예시적인 도면.
도 3은 ICP(interactive content processor), VCP(video content processor), 및 믹서(339)를 포함하는 예시적인 대화형 미디어 플레이어(305)의 블록도.
도 4는 제2 예시적인 대화형 미디어 플레이어의 블록도.
도 5는 복수의 이벤트 큐 및 하나의 애플리케이션 스레드(thread)를 포함하는 예시적인 구성의 블록도.
도 6은 처음에는 BeginTime으로, 그 다음에는 워크아이템들이 이벤트 큐에 삽입되었던 시간으로, 워크아이템의 순서를 지정하는 것을 나타내는 예시적인 이벤트 큐(515)의 블록도.
도 7은 애플리케이션 스레드가 이벤트 큐의 끝에서 자동으로 2개의 워크아이템을 삽입하는 예시적인 구성의 블록도.
도 8은 대화형 미디어 환경에서 발생하는 이벤트와 관련된 워크아이템을 큐 잉(queuing)하기 위한 예시적인 방법의 흐름도.
도 9는 예시적인 그래픽적 합성 모델에 이용되는 평면들의 세트의 도면.
도 10은 제1 예시적인 애플리케이션 내의 시각적인 요소들의 Z 순서를 나타내는 도면.
도 11은 제2 예시적인 애플리케이션 내의 시각적인 요소의 Z 순서를 도시하는 도면.
도 12는 도 10 및 도 11에 도시된 애플리케이션들로부터 생성된 시각적인 요소들을 가지는 합성된 디스플레이를 도시하는 도면.
도 13은 애플리케이션이 우선 순위 순서로 렌더링되고 아래에서 위로의 순서로 합성되는 예시적인 구성을 도시하는 도면.
도 14는 애플리케이션이 우선 순위 순서로 렌더링되고 아래에서 위로의 순서로 합성되는 예시적인 방법의 흐름도.
도 15는 예시적인 재생 시스템의 블록도.
도 1을 참조하면, 대화형 미디어 환경에서 이용되는 애플리케이션(110)을 구성하는 요소들의 예시적인 블록도가 도시된다. 대화형 미디어 환경에서 애플리케이션은 통상적으로 리모트 컨트롤 등의 사용자 인터페이스를 통하여 사용자와 대화형 미디어 플레이어 간의 대화를 하여 연결된 (텔레비전 또는 모니터 등의) 디스플레이 장치 상에 그래픽 및 비디오를 렌더링할 수 있게 하는 이용된다. 보다 상세히는, 이 환경에서 애플리케이션은 비디오 재생을 포함하는 각종 콘텐츠 개체의 표 시 행위를 제어한다. 비디오에 대한 메뉴 및 대화형 버튼과 같은 그래픽 개체를 표시하는 것도 애플리케이션을 이용하여 실현된다. 이 환경에서 애플리케이션은 또한 오디오 재생 및 사운드를 관리하고 제어한다. 대부분의 대화형 미디어 세팅에서 일반적으로 복수의 애플리케이션이 동시에 실행될 수 있음이 고려된다. 그러나, 복수의 애플리케이션이 반드시 동시에 실행되어야 한다는 요구사항은 없으며 특정한 세팅에서는 애플리케이션을 분리할지 통합할지에 대한 결정이 대화형 미디어 제작자 설계적 선택이다. 애플리케이션은 또한 특정 세팅의 요구사항에 따라 애플리케이션 페이지들로 논리적으로 분리될 수도 있다.
애플리케이션(110)은 DOM(document object model)을 생성하는 데에 이용되는 0 이상의 마크업 문서(120) 및 0 이상의 스크립트 파일(117 및 119)을 포함하는 스크립트 호스트(115)를 포함한다. 마크업 문서(120)는 예를 들면, 그래픽 객체들의 레이아웃, 타이밍, 스타일 및 내용과 관련된 정보를 포함한다. 그러므로, 마크업 컨텍스트(context)는 일반적으로 대화형 미디어 환경에서 그래픽 평면 상의 그래픽을 제공하는 데에 이용된다.
이러한 예시적인 예제에서, 마크업 문서는 W3C 표준에 따른 XML 문서 파일이다. 도 1에 나타난 바와 같이, 복수의 물리적 XML 파일은 마크업의 <head> 섹션 내의 <include> 엘리먼트를 이용하여 액세스될 수 있다. 어떤 세팅에서는 애플리케이션이 한번에 하나 이상의 활성화된 마크업을 가지지 않도록 하는 것이 바람직할 수 있다. 그러나, 애플리케이션이 마크업의 <link> 엘리먼트를 이용하여 자신의 마크업(120)을 스위칭할 수 있다. 대안으로, 애플리케이션은 애플리케이션이 현재 애플리케이션 내의 기능적인 개체로의 액세스를 획득할 수 있게 해주는 API(application program interface)를 이용함으로써 자신의 마크업(120)을 스위칭할 수 있다. API를 통한 loadMarkup() 호출을 이용하여, 애플리케이션은 API를 통하여 새로운 마크업의 URI(Uniform Resource Identifier)를 전달함으로써 마크업 파일(120)을 스위칭할 수 있다.
애플리케이션이 새로운 마크업을 액세스하는 경우, API 호출은 애플리케이션의 현재 이벤트 처리기가 자신의 현재 태스크를 실행하는 것을 완료한 이후에만 효력을 나타낸다. 또한 임의의 미해결된 현재의 마크업-관련 이벤트 처리기는 새로운 마크업이 일단 로딩되면 이들 이벤트 처리기들이 무효해질 것이기 때문에 취소된다.
이러한 예시적인 예제에서, 대화형 미디어 경험을 구현하는 데에 마크업(120)과 함께 이용되는 스크립트 호스트(115)는 스크립트 파일(117 및 119)을 포함한다. 스크립트 파일(117 및 119)은 예를 들면, ECMA-262 사양의 Ecma 인터네셔널(international)에 의해 정의된 ECMA스크립트를 이용하여 구현될 수 있다. ECMA-262에 근거한 일반적인 스크립팅 프로그래밍 언어는 자바 스크립트 및 J스크립트를 포함한다. 일부 세팅에서는, 호스트 환경 및 일반적인 API 세트와 함께, ECMA스크립트(262)의 서브셋, 구체적으로는 ECMA-327을 이용하여 스크립트(117 및 119)를 구현하는 것이 바람직할 수 있다. 대부분의 세팅에서는 스크립트 컨텍스트가 시스템 이벤트, 그래픽 컨트롤, 비디오 재생, 자원 관리 및 마크업(120)만을 단독으로 이용하여 효과적이거나 쉽게 구현되지 않는 다른 이슈들과 함께, 사용자로 부터의 대화적인 컨트롤 이슈들을 처리하는 데에 이용된다.
애플리케이션(110)에 자원 및 API가 이용가능함을 도 1의 참조번호(125)로 표시하였다. 자원은, 특정 세팅의 환경에 따라 애플리케이션이 요구한 바와 같이, 예를 들면, 오디오 및 비디오 파일, 폰트, (PNG, JPEG, GIF, BMP, TIFF 등을 포함하는 일반적인 파일 포맷으로 된) 사진과 이미지, 및 기타 자원을 포함한다.
각 애플리케이션(110)은 스크립트의 변수, 함수 및 다른 상태에 대한 컨텍스트를 보유하는 자신만의 스크립트 호스트(115)를 보유한다. 대부분의 세팅에서는, 한 애플리케이션의 변수 및 함수는, 이 애플리케이션이, 예를 들어, 모든 애플리케이션들 간에 공유되는 개체를 이용하여 이러한 상호 애플리케이션-간의 가시성을 활성화하도록 특수하게 설정을 하지 않는 한, 다른 애플리케이션에 보이지 않는다. 예를 들면, 이러한 예시적인 예제에서, 대화형 미디어 플레이어 개체는 모든 애플리케이션 간에 공유되는 하나의 인스턴스를 가진다. 따라서, 선택적으로, 특수한 개체들이 -예를 들어, C++ 개체를 이용하여- 스크립트 호스트(115) 안에 위치하여 이 모든 특수 개체들이, 예를 들어, 이 플레이어의 동일한 내부 함수를 참조하는 싱글톤(singleton)(즉, 제한된 인스턴스화를 가지는 개체)을 구현할 수 있다. 이 선택적인 양태는 대화형 미디어 스크립트 제작자가 공통되는 개체들을 논리적으로 싱글톤으로서 취급하면서도 여전히 스크립트 호스트(115)가 하나의 스크립트 호스트에 하나의 개체를 노출하는 데에 필요한 기능 또한 구현할 수 있게 해준다.
이제 도 2를 참조해 보면, 복수의 마크업 문서들 및 스크립트 간의 관계를 나타내는 예시적인 도면이 제공된다. 애플리케이션 명단(manifest)(230)은 상술한 바와 같이 도시된 자원(125), 스크립트(205), 및 마크업 문서(251, 260, 및 275)에 의해 일반적으로 정의된 애플리케이션들과 대화한다. 대부분의 설정에서는 각 애플리케이션은 통상적으로 단일한 애플리케이션 명단을 이용하지만, 애플리케이션 명단은 애플리케이션의 런타임 상태 부분은 아니다. 이러한 예시적인 예제에서, 애플리케이션 명단(230)은 XML 문서 파일로서 인코딩된다.
애플리케이션 명단(230)은 (도 1의) 애플리케이션(110)에 의해 이용되는 초기 마크업 파일(251) 및 (도 1의) 스크립트 호스트(115)에 포함된 스크립트 파일-도 2에서는 참조번호(205)를 가지는 직사각형으로 통합되어 표시하였음-을 기술한다. 이 도시된 예에서와 같이, 애플리케이션 명단(230)이 2개 이상의 스크립트를 열거한다면, 모든 스크립트는 대화형 미디어 플레이어의 스크립트 처리 엔진으로 로딩된다. 그러므로, 복수의 스크립트 파일은 스크립트 제작자가 모든 스크립트 파일을 애플리케이션 명단(230)에 열거된 순서로 하나의 큰 파일로 연쇄시킨 것처럼 작용하고 행동한다.
도 2에 도시된 바와 같이, 애플리케이션 명단(230)은 자원(125)을 참조한다. 대화형 미디어 환경의 애플리케이션에 이용가능한 자원은 애플리케이션 명단(230)에서 참조되는 자원(125)이 루트가 되는 유향 그래프를 형성한다. 각 애플리케이션에 대한 그래프의 허용 범위는 애플리케이션 명단(230)에 의해 제한된다.
도 2는 대화형 미디어 환경에서 실행되는 애플리케이션을 도시한다. 상술한 바와 같이, 애플리케이션은 한번에 하나의 활성화된 마크업만을 가질 수 있고 애플리케이션의 내용은 애플리케이션과는 별도로 보유된다. 마크업 페이지들(251, 260, 및 275) 간의 화살표로 나타낸 바와 같이, 스크립트(205)를 통해, 애플리케이션은 마크업 페이지(251)로부터 마크업 페이지(260)로 진행할 수 있으며, 그 후에 마크업 페이지(260)로부터 마크업 페이지(275)로 진행할 수 있다.
대화형 미디어 환경의 애플리케이션에 의한 컨텍스트 실행 과정은, 다른 것들 중에서도, 플레이어에 의해 디스플레이 장치에 렌더링되는 표시용 개체를 포함하는 환경에서의 개체들 간의 관계를 기술하는 재생목록(290)에 의해 안내된다. 이들 표시용 개체는 통상적으로 애플리케이션에 의해 생성되는 그래픽 및 (이하 보다 상세히 기술될 복수의 스트림을 포함할 수 있는) 비디오를 포함한다.
재생목록(290)는 또한 애플리케이션에 의한 자원의 소비를 효율적으로 할당하고 제어하기 위하여 대화형 미디어 환경 전반의 자원들을 하나의 관리 엔티티로서 관리한다. 애플리케이션 명단(230)에서와 같이 대부분의 세팅에서는 재생목록(290)이 XML 문서 파일로서 구현되는 것이 바람직할 수 있다.
도 2의 마크업 페이지는 몇몇의 세팅에서 (도 1의 스크립트 파일(117 및 119)에 의해 생성되는) 실행 컨텍스트로 이벤트를 발화하는 데에 이용될 수 있다. 그 다음 실행 컨텍스트는 현재 애플리케이션 마크업에 의해 생성된 DOM을 조작한다. 대화형 미디어 환경에서 마크업은 (도 2에서 요소(253, 262, 및 277)로 도시한 바와 같이) 이 환경에서의 그래픽 개체의 레이아웃, 타이밍, 내용 및 스타일을 특정하는 데에 이용되기 때문에, 스크립트와 마크업을 결합하면 포괄적인 기능 세트를 생성 할 수 있다.
도 3은 ICP(interactive content processor)(355), VCP(video content processor)(310), 및 믹서(339)를 포함하는 제1 예시적인 대화형 미디어 플레이어(305)의 블록도이다. 도 3에 도시된 구성은 애플리케이션 상태 관리에 적절한 예시적인 대화형 미디어 플레이어(305)의 기능 및 특징을 기술하는 논리적 모델을 제공함을 유의한다. 그러므로, 대화형 미디어 플레이어의 실제 구현은 여러가지 구조적인 형태를 이용할 수 있지만 여전히 본원에 기술된 애플리케이션 상태 관리자의 이점들을 달성하기 위하여 동작한다. 대화형 미디어 플레이어(305)는 통상적으로 자립형 가전 장치와 같은 전용 하드웨어, 또는 퍼스널 컴퓨터 등에서 볼 수 있는 범용 프로세서를 구비한 컴퓨터 판독가능 매체를 채용하는 소프트웨어 구현에서 실현된다.
VCP(310)는 DVD 드라이브 또는 HD-DVD(high-definition DVD) 드라이브와 같은 로컬 광 드라이브, 로컬 메모리 또는 네트워크를 통한 원격 광대역 소스를 포함하는 복수의 소스로부터 수신될 수 있는 하나 이상의 미디어 스트림을 관리한다. 이 예시적인 예제에서, VCP(310)는 도 3의 요소들(304 및 306)로 나타낸 바와 같이 하나 이상의 미디어 프로세서 1, 2...N을 포함한다. 미디어 프로세서(304 및 306)는 선(325)을 통해 오디오/비디오 스트림으로서 출력되는 대응하는 이미지 및 사운드를 디코딩하고 렌더링하도록, 통상적으로 오디오 및 비디오를 포함하는 수신된 미디어 스트림을 처리한다. 오디오/비디오 스트림(325)은, 예를 들면, "화면 속 화면(picture in picture)" 유형 구성을 이용하여 복수의 개별적인 비디오 윈도우를 렌더링하도록 복수의 비디오 요소를 표시할 수 있다.
미디어 프로세서(304 및 306)는 각각이 미디어 소스 인터페이스, 디멀티플레 서 및 디코더를 포함한다. 미디어 프로세서(304 및 306)는 선택적으로 암호해독 기능 또한 포함할 수 있다. 오디오/비디오 스트림을 수신하고 디스플레이하기 위한 디스플레이 장치(355)가 연결된다.
각각의 수신된 미디어가 관련 "미디어 타임"을 가지도록 하는 데에 미디어 클럭(312)이 이용된다. 대화형 미디어 플레이어(305)에서 비디오 스트림이 잠시 멈추었다면(pause) 미디어 클럭(312)도 잠시 멈추게 된다. 비디오 스트림은 사용자에 의해 실제 시간보다 빠르게 또는 느리게 재생되도록 설정된다면(예를 들면, 비디오가 빠르게 감기(fast forward), 되감기(rewind) 또는 슬로 모션 모드(slow-motion mode)로 들어설 때 - 이들 모드 중 임의의 것을 이용하는 것을 "트릭 재생(trick play)"이라 함 -), 미디어 클럭(312)은 이에 따라 빨라지거나 느려진다. 그러므로 미디어 타임은 미디어 프로세서(304 및 306)의 동작 및 미디어 클럭으로부터 유도된다. 미디어 타임은 선(315)을 통해 ICP(335)의 재생목록 관리자(337)에게 전달된다. 미디어 타임을 포함하는 대화형 미디어 환경에서의 시간은 통상적으로 "눈금(ticks)" 단위로 카운팅된다.
ICP(335)는 모든 애플리케이션 관련 처리을 수행하며 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 실현될 수 있는 몇 가지 컴포넌트로부터 구성될 수 있다. ICP(335)의 컴포넌트들은, 예를 들면, 마크업 엔진, 스크립트 언어 해석기, 및 XML 파싱 컴포넌트(도시 생략)를 포함한다. ICP(335)는 오디오/비디오 스트림(325)과 동기화된 그래픽 스트림을 선(321)을 통해 출력한다. 믹서(339)는 선(321)을 통하는 그래픽 스트림 및 선(325)을 통하는 오디오/비디오 스트림을 수 신하여 이 그래픽이 비디오 스트림 상위의 그래픽 계층에서 렌더링되게 하여 사용자를 위한 대화형 미디어 세션을 구현한다.
대부분의 세팅에서, ICP(335)는 비디오 스트림과 프레임 단위로 동기화된 그래픽을 출력한다. 그러나, 이러한 동기화는, 예를 들면, (후술될 타이틀 타임 및 미디어 타임을 포함하는) 시간, 비디오 내의 내용, 또는 스트림의 특정 지점을 나타내거나 표시하는데에 이용되는, 비디오에 내장된 기타 매타데이터를 포함하는 기타 기준(base)들을 이용하여 수행될 수 있다.
ICP(335)는 재생목록 관리자(337) 및 태스크 관리자(330)를 포함한다. 재생목록 관리자(337)는 이 환경에서 표시용 개체를 제어하는 역할을 한다. 이들 개체는 대화형 그래픽을 생성하기 위해, 실행되고 있는 애플리케이션과 함께 플레이어(305)에서 재생되는 비디오를 포함한다. 재생목록 관리자(337)는 도 2와 관련된 본문에서 앞서 기술한 바와 같이 재생목록(290)을 관리한다.
재생목록 관리자(337)는 또한 미디어 스트림의 콘텐츠 부분 각각에 관련된 "타이틀 타임"을 계산한다. 타이틀은 통상적으로 DVD 제작자에 의해 정의되는 시작 시간과 종료 시간을 가지는 고유한 일련의 비디오 및 오디오 콘텐츠이다. 그러나, 이러한 제작자가 타이틀로서 정의하는 것은 임의적일 수 있다. 그러므로, 비디오로 인지되는 특정 콘텐츠는 하나의 타이틀의 일부이거나, 완전한 타이틀일 수 있고 또는, 복수의 타이틀에 걸쳐 실행될 수 있다.
타이틀의 일례는 미국의 아날로그 및 디지털 포맷으로 된 모든 미리-레코딩된 비디오 앞에 오는 저작권 경고이다. DVD의 특색을 이루는 인기물 (attraction)(예를 들면, 메인 영화)은 다른 예이며 종종 가장 긴 타이틀이 된다. 몇몇의 세팅에서, 영화의 각각의 챕터(chapter)가 DVD 제작자에 의해 별개의 타이틀로서 지정될 수 있다. 모든 이러한 타이틀에 대하여, 타이틀 타임은 미디어 클럭(312)에 나타나는 소정의 타이틀이 재생을 시작한 이후에 경과된 시간으로서 정의된다.
표시 클럭(360)은 선(362)을 통해 재생목록 관리자와 연결된다. 표시 클럭(360)은 실 세계의 시계와 동일한 속도로 그 시간이 변하는 클럭이다(즉, 표시 클럭(360)이 1초 만큼 진행하는 데에는 실제 시간으로 1초가 걸린다). 미디어 클럭(312)과는 다르게, 표시 클럭(360)은 절대로 멈추지 않으며 속도가 빨라지거나 느려질 수 없다. 표시 클럭(360)으로부터의 표시 시간은 태스크 관리자(330)로 전달되며 여기에서 이 표시 시간은 "애플리케이션 타임" 및 애플리케이션 "페이지 타임"을 계산하는 데에 이 표현 시간을 이용된다.
애플리케이션 타임은 애플리케이션이 시작한(또는 이하 보다 상세히 기술될 바와 같이 "활성화" 상태에 들어가는) 이후에 경과한 시간이다. 복수의 애플리케이션이 런타임 중일때, 각각의 애플리케이션은 자신만의 애플리케이션 타임의 개념을 가진다. 각 애플리케이션에 대하여, 이 환경에서 애플리케이션 타임은 애플리케이션이 시작할 때에 항상 0으로 시작한다.
예를 들면, 애플리케이션 App1이 (App1에 대해서는 0 타임 단위인) 20인 임의적인 타임 단위인 프레젠테이션 타임에서 시작하고 애플리케이션 App2가 (App2에 대해서는 0 타임 유닛인) 25 타임 단위인 프레젠테이션 타임에서 시작하면, 35 타 임 단위인 프레젠테이션 타임에서는, App1의 애플리케이션 타임은 15 타임 단위이며 App2의 애플리케이션 타임은 10 타임 단위이다. 논리적으로 페이지들로 분리되는 애플리케이션들에서는, 페이지 타임이 애플리케이션의 한 페이지가 로딩된 이후에 경과한 시간이 된다.
도 4는 ICP(435), VCP(410), 및 믹서(439)를 포함하는 제2 예시적인 미디어 플레이어(405)의 블록도이다. 대화형 미디어 플레이어(405)는 도 3에 도시된 대화형 미디어 플레이어(305)와 형태 및 기능이 유사하다. 그러나, VCP(435)는 (도 4의 요소(404 및 406)로 도시된 바와 같이) 믹서(439)에 개별적인 공급들(425 및 427)을 제공하도록 구성된 미디어 프로세서1, 2 ... N를 포함한다는 점을 유의한다. 이러한 구성은 믹싱 이전에 개별적인 미디어 스트림의 조작이 수행되는 몇몇의 세팅에서 바람직할 수 있다. 예를 들면, 미디어 스트림의 비디오 패닝(panning) 및 주밍(zoming)과 같은 이미지 처리/선택 기술은 도 4의 참조번호(425 및 427)에 의해 나타낸 N개의 개별적인 공급들 중 하나 이상에서 독립적으로 구현될 수 있다.
오디오/비디오 공급들(425 및 427)은, ICP(435)로부터의 동기화된 그래픽 스트림과 함께, 믹서(439)에 믹싱되고 선(441)을 통해 디스플레이 장치(455)에 출력된다. (재생목록 관리자(437) 및 태스크 관리자(430)를 포함하는) ICP(435), VCP(410)의 미디어 클럭(412) 및 표시 클럭(460)을 포함하는 도 4의 다른 요소는 도 3에 도시되고 이와 관련하는 본문에 기술된 이들의 대응부와 유사한 방식으로 구성되고 기능한다.
도 5는 각각 참조번호(510), 참조번호(515) 및 참조번호(518)로 지정한 복수의 이벤트 큐1, 2 ... N, 및 하나의 애플리케이션 스레드(523)를 포함하는 예시적인 구성(500)의 블록도이다. 이 예시적인 구성에서, (도 4의 ICP(435)와 같은) ICP에서 실행되는 모든 애플리케이션은 단일 스레딩되며, 애플리케이션 스레드(523)는 전적으로 이러한 목적으로 이용된다. 그러나, ICP(435)는 그 자체가 반드시 단일 스레딩될 필요는 없다. 대안적인 구현에서, ICP(435)는, 예를 들면, 캐시에 자원들을 미리-페칭(pre-fetching)하기 위하여 다른 스레드를 이용할 수 있다.
각각의 이벤트 큐(510, 515, 및 518)는 (도 5의 우측에 위치한) 자신의 머리부(head end)로부터 애플리케이션 스레드(523)로 제공되도록 구성된다. 각각이 참조번호(527), 참조번호(530), 및 참조번호(532)로 지정되는 복수의 애플리케이션 App1, App2 ... AppN은, 대표적으로 참조번호(535)로 지정된 워크아이템들을 이들의 (도 5의 좌측의) 꼬리부(tail end)로부터 큐들(510, 515 및 518)로 포스팅하도록 구성된다.
애플리케이션 이벤트는 애플리케이션이 발화한 이벤트들이다. 이들은 스크립트(예를 들면, 도 1의 스크립트 호스트(115))에 의해 또는 마크업(예를 들면, 도 1의 마크업(120))이 발화한 이벤트를 포함할 수 있다. 대부분의 시나리오에서, 애플리케이션 이벤트는 스크립트에 의해서만 처리된다. 그러나, 애플리케이션(527, 530, 및 532)은 스크립트 또는 마크업 기능을 직접 호출하지 않는다. 그 대신, 모든 이러한 기능은 워크아이템의 형태로 애플리케이션의 관련 이벤트 큐에 포스팅되 고 애플리케이션 스레드(523)가 워크아이템을 처리할 때 호출된다.
대안적인 구성에서, 애플리케이션이 아닌 다른 소스로부터의 이벤트들도 이벤트 큐를 이용하여 스케줄링된다. 예를 들면, 사용자 이벤트는 리모트 컨트롤을 이용하는 사용자 대화에 의해 발화된다. 시스템 이벤트는 도 4에 도시되고 이에 관련하여 본문에 기술된 플레이어(405)와 같은 대화형 미디어 플레이어에 의해 발화되는 이벤트이다.
이벤트 큐(510, 515, 및 518) 내의 워크아이템은 도 5에 도시된 바와 같이 필드들을 포함한다. 이들 필드는 애플리케이션 관련 필드(540), 메소드 필드(545), BeginTime 필드(552), 및 EndTime 필드(555), 및 선택적인 클럭선택자 필드(558)를 포함한다.
애플리케이션 관련 필드(540)는 워크아이템이 적용하는 특정 애플리케이션을 지정한다. 메소드 필드(545)는 워크아이템이 애플리케이션 스레드(523)에 의해 처리될 때 호출되는 메소드를 포함한다. 메소드 필드(545)는 이 메소드에 대한 인수도 포함한다.
BeginTime 필드(522) 및 EndTime 필드(555)는 각각 워드아이템의 메소드가 시작할 때와 끝날 때를 지정하는 데에 이용된다. 이러한 예시적인 예제에서, 애플리케이션 타임을 이용하여 시간이 표현된다. 그러나, 대안적인 예에서, BeginTime(552) 및 EndTime(555)은 특정 세팅의 요구사항에 따라, 대안으로 타이틀 타임, 애플리케이션 타임 또는 페이지 타임으로 표현될 수 있는 값들을 포함한다. 이러한 경우, 워크아이템에 의해 이용되는 특정 타임프레임은 클럭선택자 필 드(558)에 나타난다. 이용되는 타임프레임에 관계 없이, 워크아이템에 대한 BeginTime은 EndTime보다 항상 작아야 한다.
도 6은 이벤트 큐(515)에 포함된 워크아이템의 순서를 지정하는 것을 나타내는 이벤트 큐(515)의 블록도이다. (도 5의) 그 밖의 이벤트 큐(510 및 518)는 예시를 명료하게 하기 위한 편의상 도 6에는 도시되지 않는다. 그러나, 이하 기술된 순서 지정 방법론은 이러한 그 밖의 이벤트 큐에 마찬가지로 적용될 수 있다.
이벤트 큐(515)는 참조번호(605), 참조번호(610), 참조번호(615) 및 참조번호(620)로 각각 나타낸 워크아이템1, 2, 3 ... N을 포함한다. 각 워크아이템은 도 5에 도시되고 이와 관련하는 본문에 기술된 필드를 포함한다.
워크아이템(605)은 도 6의 블록(630)으로 나타낸 바와 같이, BeginTime1 및 이와 관련된 이벤트 큐(515)로의 삽입 타임 t1을 포함한다. 마찬가지로, 워크아이템(610)은 블록(635)으로 나타낸 바와 같이, BeginTime2 및 이와 관련된 이벤트 큐(515)로의 삽입 타임 t2를 포함한다. 워크아이템(615)은 블록(640)으로 나타낸 바와 같이, BeginTime3 및 이와 관련된 이벤트(515)로의 삽입 타임 t3를 포함한다. 그리고, 워크아이템(620)은 블록(645)으로 도시된 바와 같이, BeginTimeN 및 이와 관련된 이벤트 큐(515)로의 삽입 타임 tN을 포함한다.
이 예시적인 예제에서, 워크아이템들은 이벤트 큐(515)에서 먼저 BeginTime에 의해 순서가 정해진 다음 이 워크아이템들이 이벤트 큐로 삽입되었던 시간에 의 해 순서가 정해진다. 이러한 순서 지정은 애플리케이션 스레드(523)가 BeginTime의 순서로 워크아이템을 처리하게 하거나, 2개의 워크아이템이 동일한 시작 타임을 가지는 경우에는, FIFO(선입선출) 순서로 처리하게 한다.
그러므로, 워크아이템(620)이 이벤트 큐(515)의 헤드에 있다는 것은 BeginTimeN<BeginTime3임을 내포하고 있으며; 또는 BeginTimeN = BeginTime3인 경우에는, tN<t3이다(즉, 워크아이템(620)이 워크아이템(615) 보다 먼저 이벤트 큐(515)에 삽입되었다). 워크아이템(605, 610, 및 615)에 대해서도 같은 원리를 따르면:
BeginTime3<BeginTime2;
또는 BeginTime3 = BeginTime2인 경우에는, t3<t2; 및
BeginTime2<BeginTime1;
또는 BeginTime2 = BeginTime1인 경우에는, t2<t1;
이벤트 큐에서 워크아이템들의 순서 지정은 2개의 대안적인 방법을 이용하여 수행된다: 워크아이템들이 이벤트 큐에 삽입될 때, 또는 워크아이템들이 처리 이전에 이벤트 큐로부터 추출될 때 워크아이템들의 순서가 정해질 수 있다. 이 두 가지 중 어떠한 구성이라도 이벤트 큐로부터의 워크아이템들의 처리가 BeginTime에 의해 수행되고 그 다음에 큐 삽입 타임에 의해 수행되는 한 마찬가지로 이용할 수 있다.
도 7은 애플리케이션 스레드(523)가 이벤트 큐(515)의 꼬리부에 자동으로 2 개의 워크아이템을 삽입(705 및 715)하는 예시적인 구성의 블록도이다. (도 5의) 그 밖의 이벤트 큐들(510 및 518)은 예시를 명료하게 하기 위한 편의상 도 7에는 도시되지 않는다. 그러나, 후술될 애플리케이션 스레드에 의한 워크아이템의 자동적인 삽입은 이러한 그 밖의 이벤트 큐에 마찬가지로 적용될 수 있다. 도시된 바와 같이, 자동으로 삽입되는 워크아이템(705 및 715)은 이벤트 큐(515)의 워크아이템(605 및 620) 다음에 위치한다. 예시적인 예제에서, 이 2개의 워크아이템의 자동적인 삽입은 애플리케이션이 시작될 때 수행되고 워크아이템들은 눈금이 지날때마다 다시 스케줄링된다.
워크아이템(705)이 블록(730)으로 나타낸 바와 같이 애플리케이션 App2(530) 내의 한 페이지에 대한 타이밍을 처리하기 위한 마크업 엔진(예를 들면, 도 4의 ICP(435)에 배치된 마크업 엔진)으로의 호출을 포함한다. 블록(735)에서, 워크아이템(715)은 애플리케이션 App2'의 마크업을 리플로우하여 처리된 이벤트를 반영한 다음 디스플레이 장치(예를 들면, 도 4의 디스플레이(455))에 이 마크업을 렌더링하기 위한 마크업으로의 호출을 포함한다. 워크아이템(705 및 715)은 항상 애플리케이션 스레드(523)에 의해 애플리케이션의 눈금에서 처리되는 마지막 워크아이템들이다.
도 8은 대화형 미디어 환경에서 발생하는 이벤트와 관련된 워크아이템을 큐잉(queuing)하기 위한 방법의 흐름도이다. 하나의 애플리케이션 스레드를 이용하는 이벤트 큐잉의 예시적인 예제에서, 이 방법은 도 4 내지 7에 도시되고 이와 관련하여 본문에 설명된 구성에 의해 수행된다. 도시된 방법은 통상적으로 각 눈금 에 대하여 반복적으로 수행된다.
프로세스는 블록(805)에서 시작한다. 블록(810)에서, (도 5 내지 7의) 애플리케이션 스레드(523)가 워크아이템들을 처리할 수 있는 프리(free) 상태라면, 이 스레드는 먼저 BeginTime이 현재 또는 이전의 눈금에 대응하는 이벤트 큐(515) 내의 각 워크아이템에 표시를 한다. 애플리케이션 스레드(523)는 표시된 워크아이템들만을 처리할 것이다. 그러므로 이벤트 큐(515)의 워크아이템은 절대로 이 워크아이템의 BeginTime 이전에 처리되지 않을 것이다.
판정 블록(816)에서, 표시된 워크아이템의 EndTime이 이미 지났다면 블록(819)으로 나타낸 바와 같이 이 워크아이템은 이벤트 큐(515)로부터 드롭된다. 이 경우 그 워크아이템에 대해서는 어떠한 처리도 수행되지 않을 것이다. 애플리케이션 App2(530)가 자신의 페이지를 다시로딩해야 한다면, 애플리케이션의 클럭은 0으로 리셋되고 이 애플리케이션의 페이지 클럭에 기초하여 모든 미해결의(즉, 큐잉된) 워크아이템은 마치 이들이 자신들의 EndTime에 도달했던 것처럼 이벤트 큐로부터 드롭된다.
판정 블록(816)에서 표시된 워크아이템의 EndTime이 지나지 않았다면, 제어는 블록(822)으로 전달되고 애플리케이션 스레드(523)는 워크아이템을 처리한다. 도 6에 관련된 설명에서 상술한 바와 같이, 각 워크아이템은 이벤트 큐(515)로부터: 먼저 BeginTime에 의한 순서로 처리되고, 그 다음 각각의 워크아이템이 이벤트 큐(515)로 삽입되는 순서로 처리된다.
반복적인 이벤트 및 1회성(즉, 한번 발생, 비-반복) 이벤트 모두 도 8에 도 시된 방법을 이용하여 관리된다. 반복적인 이벤트는 관련 워크아이템이 다음으로 스케줄링된 BeginTime과 동일한 EndTime을 가지는 주기적인 이벤트를 포함할 수 있다. 즉, 각각의 주기적인 이벤트는 이벤트의 주기와 동일한 기간을 가진다.
주기적인 이벤트는 통상적으로 타이머 이벤트 및 애플리케이션 드로잉 이벤트와 같은 이벤트를 포함한다. 예를 들면, (예를 들어, 도 1의 스크립트 호스트(115)의) 애플리케이션의 스크립트가 10초 마다 한 번씩 콜 백(call back)을 할 타이머를 생성한다면, 현재 타임에 10초를 더한 것과 같은 BeginTime을 가지는 이벤트 큐(515)에 타이머 워크아이템을 추가할 것이다. EndTime은 BeginTime에 10초를 더한 것으로 설정될 것이다. 일단 타이머 워크아이템이 이벤트 큐(515)로부터 실행된다면, BeginTime 및 EndTime은 다른 10초를 추가함으로써 조정될 것이고 워크아이템은 새로운 BeginTime에 기초하는 적절한 위치에서 이벤트 큐(515)로 다시 삽입될 것이다.
주기적인 이벤트는 가능할 때마다 호출된다. 그러나 이 이벤트들이 자신의 관련 워크아이템의 EndTime이 만료되기 전에 애플리케이션 스레드(523)에 의해 처리될 수 없다면, 그 특정 호출은 드롭되고 새로운 워크아이템에 대한 다음 호출이 스케줄링된다. 그러므로, 주기적인 이벤트는 워크아이템 타임아웃을 겪게 된다.
바람직하게는, 이벤트 큐잉 방법은 타이머 이벤트로 전달될 수 있는 파라미터가 이 이벤트가 호출될 시간을 지정할 수 있게 해준다. 이 파라미터는 관련 워크아이템의 BeginTime과 동일해야 한다. 주기적인 타이머 이벤트에 관련된 스크립트는 상술한 바와 같이 호출된 시점에서 정확하게 실행되지 않을 수 있다. 그러 나, 각 워크아이템이 메소드에 인수를 지정하는 메소드 필드(545)(도 5)를 포함하기 때문에, 인수들의 값은 실제 시간이 아닌 의도된 호출 시간을 반영할 것이다. 따라서, 타이머 이벤트용 처리기는 언제 처리가 되는지(즉, 눈금)를 알 것이다.
1회성 이벤트는 EndTime이 INFINITE인 대응하는 워크아이템을 가진다. 그러므로, 1회성 이벤트는 이벤트 큐(515)로부터 절대로 드롭되지 않을 것이다. 예를 들면, 1회성 이벤트가 입력 이벤트라면, 이 이벤트의 처리기는 EndTime이 INFINITE인 이벤트 큐(515)의 워크아이템으로서 스케줄링된다.
블록(822)으로 나타낸 바와 같이, 처리는 발생 순서로 수행된다. 즉, 일단 애플리케이션 스레드(523)가 이벤트 큐(515)로부터의 워크아이템을 처리하기 시작했다면, 스레드는 이 처리를 중지하지 않는다. 예를 들면, 오랫동안 실행되고 있을 수 있는 스크립트는 그 처리가 중단된다거나 스크립트에, 이 스크립트를 버리기 위한 익셉션(exception)을 삽입하지 않는다. 이러한 방식은 애플리케이션 스레드가 스크립트를 처리할 때는 이 스레드를 묶어둘 수 있으면서도, 상술한 바와 같이 ICP(예를 들면, 도 4의 ICP(435))는 발생한 워크아이템의 처리 중에 계속하여 실행되는 다른 스레드를 포함하도록 구성될 수 있다.
블록(830)에서, 표시된 워크아이템의 처리 중에 생성된 임의의 새로운 워크아이템은 이들의 BeginTime에 관계없이 이벤트 큐(515)에, 표시된 워크아이템 다음으로 삽입된다. (블록(810, 822 및 830)에 나타난 바와 같이) 워크아이템들을 발생시키고 이벤트 큐에서 이 발생한 워크아이템 다음에 새로운 워크아이템을 삽입하는, 워크아이템을 표시하는 처리는 애플리케이션에 항상 몇몇의 시각적인 과정이 부여됨을 보장한다.
도 8의 블록(835 및 828)에 나타낸 바와 같이, 애플리케이션 스레드는 도 7에 도시되고 이와 관련하여 본문에 기술된 바와 같이, 각 눈금에 대한 각 애플리케이션의 이벤트 큐마다 2개의 워크아이템들을 자동으로 삽입한다. 이들 워크아이템은 애플리케이션 타이밍을 평가한 다음 이 마크업을 리플로우하고 이 마크업을 디스플레이 장치에 렌더링하기 위해 각 애플리케이션에 대한 마크업 엔진에 호출을 한다. 상술한 바와 같이, 워크아이템은 애플리케이션이 시작할 때 삽입되고 눈금이 지나갈 때마다 다시 스케줄링된다. 또한, 이 2개의 워크아이템들은 항상 하나의 애플리케이션의 눈금에 대해 처리될 마지막 2개의 워크아이템들이며 이벤트 큐(515)로부터 드롭될 수 있는 주기적인 이벤트로서 취급된다.
도 9는 함수 및/또는 소스에 의해 디스플레이 상에 논리적으로 시각적인 요소들을 그루핑하는 예시적인 그래픽적 합성 모델에 이용되는 그래픽 평면(900)의 세트의 도면이다. 그래픽 평면 세트(900)는 커서 평면(905), 그래픽 평면(912), 서브픽처 평면(918), 서브비디오 평면(922) 및 메인 비디오 평면(925)을 포함한다. 커서 평면(905)은 포인터와 같은 커서 개체가 디스플레이되는 그래픽 평면 세트(900)의 가장 상부의(즉, 사용자(930)가 가장 가까운 것으로 인지하는) 평면이다. 나머지 평면은 도 9의 왼쪽에서 오른쪽 방향 화살표(935)로 나타난 바와 같이 디스플레이의 상부에서 하부로 배치된다.
그래픽 평면 세트(900)의 모든 평면들은 캔버스라 칭하는 공통적인 xy 좌표계를 이용한다. 제3 차원은 도 9의 참조 번호(940)로 나타낸 바와 같이 디스플레 이로부터 바깥쪽으로 투영되는 z축에 의하여 기술된다. 대화형 미디어 환경에서 실행되는 애플리케이션은 특정 평면에 속한다. 애플리케이션은 평면들에 명시적으로 또는 임의적으로 할당될 수 없다 - 함축적으로 애플리케이션 유형으로부터 연관이 이루어진다. 예를 들면, 부제(subtitle) 애플리케이션은 서브픽처 평면(918)에 렌더링되는 반면, 대부분의 다른 애플리케이션들은 그래픽 평면(912)에 랜더링된다.
그래픽 평면(912)은 그래픽 평면 세트(900)의 제2 평면이며 후술될 바와 같이 표시 엔진에 의해 생성된다. 상술한 바와 같이, 대화형 미디어 환경의 그래픽 및 메뉴와 같은 대화형 콘텐츠를 생성하는 애플리케이션은 통상적으로 그래픽 평면(912)으로 렌더링된다.
서브픽처 프레임(918)은 그래픽 평면 세트(900)의 제3 평면이며 통상적으로 각각의 애플리케이션에 의해 생성된 부제 및/또는 표제(caption)를 디스플레이하는 데에 이용된다. 서브비디오 평면(922)은 그래픽 평면 세트(900)의 제4 평면이며 통상적으로 "PIP(화면 속 화면)" 구성으로 된 보조적인 비디오 디스플레이로서 이용된다. 참조 번호(942)로 나타낸 것과 같은 PIP 윈도우는 종종 메인 비디오 디스플레이보다는 작으며 축소된 해상도, 다른 양태의 비율 등과 같이 기타 달리하는 특징들을 가질 수 있다.
메인 비디오 평면(925)은 그래픽 평면 세트(900)의 제5 평면이며, 평면의 스택 중 가장 아래에 위치한다. 메인 비디오 평면(925)은 통상적으로 도 3에 관련된 설명에서 상술한 바와 같이 비디오 타이틀을 포함하는 대화형 미디어 환경의 비디 오 콘텐츠를 디스플레이하는 데에 이용된다. 도 9에 도시된 바와 같이, 그래픽 평면 세트(900)의 모든 평면은 후술될 그래픽 렌더링 엔진에 의해 믹싱되고 하나의 디스플레이(950)로 합성된다.
도 10은 AppA라 칭하는 제1 예시적인 애플리케이션 내의 3개의 시각적인 요소의 Z 순서를 나타내는 도면이다. 애플리케이션 내의 Z 순서는 애플리케이션의 Z 순서와 다르다는 것을 강조하였다. 즉, 애플리케이션은 애플리케이션 내부에서 Z 순서를 가지는 시각적인 요소들을 생성하고, 애플리케이션 그 자체에 대하여 (도 4의 ICP(435) ICP 등의) ICP에서 실행되고 있는 복수의 애플리케이션들 간의 Z 순서가 지정된다.
애플리케이션 AppA는 도시된 스택 구성으로 되어있으며 Z 순서가 각각 0, 1, 및 2인 요소(1010)(십자가), 요소(1020)(별), 및 요소(1030)(화살표)를 포함하는 3개의 시각적인 요소를 생성한다. 그러므로, N개의 요소 세트에 대하여, Z 순서 값의 세트는 스택의 가장 아래에 있는 요소에 대한 0으로부터 시작하여 스택에서 가장 위에 있는 요소에 대한 N - 1로 끝난다. 요소(1010, 1020 및 1030)가 디스플레이(1045)에 드로잉된다. 도 10의 윈도우(1050)는 디스플레이(1045)를 "모서리방향"으로 보듯이 AppA에 의해 생성된 시각적인 요소들의 Z 순서를 나타낸다. 디스플레이(1045) 및 윈도우(1050)는 xyz 좌표(1055)로 나타낸 바와 같이 서로 관련된 방향에 맞추고 있다.
도 11은 AppB라 칭하는 제2 예시적인 애플리케이션 내의 시각적인 요소의 Z 순서를 도시하는 도면이다. 애플리케이션 AppB는 디스플레이(1145) 상에 스택 구 성으로 되어있으며 Z 순서가 각각 0, 1, 및 2인 요소(11110)(삼각형), 요소(1020)(타원) 및 요소(1030)(직사각형)를 포함하는 3개의 시각적인 요소를 생성한다. 윈도우(1150)는 xyz 좌표(1155)로 나타낸 바와 같이 디스플레이(1145)의 모서리방향 보기로 AppB에 의해 생성된 시각적인 요소의 Z 순서를 도시한다.
도 12는 두 애플리케이션 AppA 및 AppB로부터 생성된 시각적인 요소들(종합적으로 참조 번호(1210)로 나타냄)을 가지는 합성된 디스플레이(1245)를 도시하는 도면이다. 윈도우(1250)는 (xyz 좌표(1255)로 나타낸 바와 같이) 디스플레이(1245)의 모서리방향 보기를 제공하고 애플리케이션 AppA 및 AppB가 서로에 관하여 관련된 Z순서를 가지는 것을 나타낸다. 또한, 도 10 및 11에 도시되고 이와 관련하여 본문에서 설명된 바와 같이, 애플리케이션 AppA 및 AppB는 각각 해당 Z 순서가 애플리케이션 내에서 보유되는 시각적인 요소들을 생성한다.
도 13은 애플리케이션이 우선 순위 순서로 렌더링되고 아래에서 위로의 순서로 합성되는 예시적인 구성(1300)을 도시하는 도면이다. 구성(1300)은 xyz 좌표(1355)로 나타낸 바와 같이 사용자(1330)를 향하는 방향을 가지는 디스플레이의 모서리방향 보기(1350)를 포함한다. (도 13에 도시되지 않은) 다른 예시적인 구성에서, 이 렌더링은 아래에서 위로(즉, 특정 세팅의 요구사항에 응답적인 Z 순서로) 수행된다.
각각이 참조번호(1305), 참조번호(1310), 참조번호(1315), 참조번호(1320) 및 참조번호(1325)로 도시된 AppA, AppB, AppC, AppD, 및 AppE를 포함하는 5개의 애플리케이션이 대화형 미디어 환경에서 실행되고 있다. 애플리케이션은 화살 표(1352)로 나타낸 바와 같이 윈도우(1350)에서 아래에서 위로의 Z 순서로 합성된다. 합성은 Z 순서=0인 애플리케이션 AppA(1305)로 시작하여 Z 순서=4인 애플리케이션 AppE(1325)로 끝난다.
이 예시적인 예제에서, 도 13에 도시된 타임 인스턴트(instant)에서 도시된 바와 같이, 애플리케이션 AppD(1320)는 사용자 이벤트를 수신하는 시각적인 요소(1358)를 생성하는 포커싱된 애플리케이션이다. 그러나, 동적인 환경에서의 동작에 의하여, 통상적으로 포커스를 가지는 특정 애플리케이션은 시간에 따라 설계가 변경되고, 모든 애플리케이션은 비디오 타이틀이 진행될수록 통상적으로 Z 순서가 위아래로 움직일 수 있다(그러나 애플리케이션은 메인 비디오를 끝내거나, 잠시 멈추거나 동결시킨 경우에도 실행되고 동작할 때에 Z 순서를 변경할 수 있음 또한 강조하였다). 또한, 포커싱된 애플리케이션은 스택에서 어떠한 위치에 있어도 된다(즉, 임의의 Z 순서를 가진다). 그러나, 다수의 시나리오에서, 포서싱된 애플리케이션은 사용자(1330)와 대화하고 버튼 누름, 마우스 클릭 등의 사용자 이벤트를 사용자 예측과 일치하도록 수신할 수 있도록 디스플레이 순서 중 위쪽을 향할 것이다.
화살표(1362)로 나타낸 바와 같이, 애플리케이션은 위에서 아래로, 또는 역 Z 순서로 포커싱된 애플리케이션(예를 들면, 애플리케이션 AppD(1320))에서 시작하여 그 다음 나머지 애플리케이션이 뒤따르는 우선 순위 순서로 렌더링된다.
도 14는 애플리케이션이 우선 순위 순서로 렌더링되고 아래에서 위로의 순서로 합성되는 예시적인 방법의 흐름도이다. 이 방법은 블록(1405)에서 시작한다. 블록(1412)에서, 상술한 바와 같이, 대화형 미디어 환경에서 실행되는 애플리케이션에 대한 Z 순서가 보유된다. 특정 비디오 타이틀에 관련된 애플리케이션의 초기 Z 순서는 절대값(예를 들면, 1, 2, 5, 7 ... 87 등)을 이용하는 (도 2의) 재생목록(290)에 의해 지정된다. 이들 절대값은 임의의 연결(tie)들을 해체시키도록 재생목록의 사전식 순서 지정을 이용하는 재생목록 Z 순서에 기초하여 모든 애플리케이션을 정렬함으로써 상대적인 Z 순서 지정으로 즉시 변환된다.
블록(1415)에서 비디오 타이틀이 진행하면서 자신들의 상대적인 Z 순서를 조작하기 위한 메소드를 호출하도록 애플리케이션을 인에이블링할 수 있다. 이러한 메소드는 예를 들면: a) 평면 내의 Z 순서의 가장 위로 애플리케이션을 이동; b) 평면 내의 Z 순서의 가장 아래로 애플리케이션을 이동; 및 c) 애플리케이션의 Z 순서를 디스플레이 스택에서 이 애플리케이션 위에 있는 애플리케이션의 바로 위에 있도록 변경하는 것을 포함한다.
상술한 바와 같이, 애플리케이션은 Z 순서 조작 메소드의 호출을 통해 애플리케이션이 Z 순서에 있어 얼마나 많이 이동할 수 있는 지에 대한 제한이 있는 특정 평면에 속한다. 예를 들면, 부제 애플리케이션을 가장 위로 옮기는 메소드를 호출한다면 (도 9의) 가장 위에 있는 애플리케이션은 서브픽처 평면(918)의 부제 애플리케이션이 되지만, 이 평면에서 생성된 시각적인 요소는 여전히 그래픽 평면(912)에 있는 애플리케이션에 의해 그래픽 평면(912)으로 렌더링되는 시각적인 요소에 의해 가려질 수 있다(즉, 덮여질 수 있다). 마찬가지로, 일반적인 대화형 애플리케이션을 가장 아래로 옮기는 메소드를 호출한다면 이 애플리케이션이 그래 픽 평면(912)의 가장 아래에 있는 애플리케이션이 되지만, 여전히 모든 부제 애플리케이션 위에 있을 것이다.
블록(1416)에서, 애플리케이션은 이 애플리케이션의 Z 순서가 변경되었다는 통지를 제공하는 이벤트를 수신한다. 이러한 통지는 대안으로 애플리케이션이 가장 위의 애플리케이션으로 이동하거나 멀어질 때 수신되도록 구성된다. 이러한 통지는, 예를 들면, 메뉴-생성 애플리케이션에 의해 생성된 메뉴가 가장 높은 Z 순서를 가지는 위치로 이동할 경우 게임 애플리케이션이 자신을 잠시 멈추게 할 수 있도록 할 것이다.
예시적인 방법은 애플리케이션으로부터 시각적인 요소가 하나 이상의 그래픽 버퍼로 렌더링되는 블록(1418)으로 계속된다. 대부분의 시나리오에서, 렌더링은, 디스플레이의 가장 위에서부터 아래를 향하는 반대로 된 Z 순서로 포커싱된 애플리케이션에 대한 수행을 시작한 다음 나머지 애플리케이션에 대하여 수행되는 우선 순위 순서로 수행된다. 드로잉(즉, 2차원 "2D" 드로잉)은 애플리케이션의 마크업(예를 들면, 도 1의 마크업(120))으로 "캔버스" 개체에 드로잉한 다음 PNG(휴대용 네트워크 그래픽)를 렌더링하는 것과 매우 유사한 방식으로 그래픽 버퍼로 렌더링되는 것으로 처리된다.
도 14에 도시된 예시적인 방법에서 애플리케이션이 각각의 애플리케이션 이벤트 큐의 주기적인 렌더링 이벤트에 대응하는 워크아이템을 포스팅함으로써 렌더링되도록 버퍼링 단계가 구성된다. 이 구성에서 이용될 수 있는 이벤트 큐 및 관련 메소드는 도 5 내지 8에 도시되고 이와 관련하여 본문에 설명되었다.
워크아이템을 포스팅한다는 것은 애플리케이션 프레임의 렌더링이 워크아이템 타임아웃을 겪음을 의미한다. 따라서 새로운 애플리케이션 프레임은, 우선 순위가 재생 시스템의 다른 곳에 위치된 경우에는, 각 비디오 프레임에 대하여 항상 렌더링되지 않을 수 있을 가능성을 수용하도록 애플리케이션의 2중 버퍼링이 수행된다. 이 경우, 가장 최근의 이용가능한 프레임이 새로운 것을 완료할 때까지 보여지기를 계속할 것이다.
블록(1421)에서, 디스플레이를 합성하기 전에, 각각의 애플리케이션은 이 애플리케이션이 자신의 마크업(예를 들면, 도 1의 마크업(120))에 <clearrect> 엘리먼트를 포함하는지를 알기 위한 검사를 한다. 이 엘리먼트는 주요 비디오 평면(925)이 보일 수 있게 하는 애플리케이션에 의해 생성되는 그래픽에 개구(즉, "구멍")를 생성하기 위하여 포함된다. <clearrect> 엘리먼트는 직사각형 형태의 개구를 생성하지만, 다른 정다각형 기하학 형태, 비정다각형 형태, 및 다른 임의적인 형태 또한 특정 세팅의 요구사항에 따라서 이용될 수 있다.
<clearrect>와 같은 엘리먼트 및 기타 이러한 개구-생성 엘리먼트는 방법 블록(1418)에서 애플리케이션이 렌더링되는 시점에서는 그래픽 버퍼에 포함되지 않는다. 그 대신, 합성할 때 <clearrect> 엘리먼트를 가지는 애플리케이션보다 낮은 Z 순서를 가지는 애플리케이션에 구멍이 클리어링(clear)됨으로써 주요 비디오 평면(925)이 애플리케이션의 구멍을 통해 보여진다. 우선순위 방식으로 렌더링이 수행되기 때문에, 애플리케이션이 버퍼에 렌더링되는 시점에서 <clearrect> 엘리먼트를 구현하는 것은 비실용적이다. 만약 이 엘리먼트가 구현되고 낮은 우선순위 애 플리케이션이 즉시 업데이트되지 않는다면, 구멍이 부적절하게 나타날 수 있는 가능성이 있을 것이다. 이는, 예를 들면, 낮은 우선 순위 애플리케이션이 타임아웃일때 업데이트되기를 기다렸을 때 Z 순서가 변경되거나, <clearrect> 엘리먼트를 가지는 애플리케이션이 종료된 경우에 일어날 수 있다.
블록(1425)에서, 애플리케이션은 도 12에 도시되고 이와 관련하여 본문에 기술된 바와 같이, Z 순서로, 아래에서 위로 합성된다. 대부분의 세팅에서, 심플 파인터(Simple painter's) 알고리즘이 각 애플리케이션의 마크업이 각 애플리케이션에 대한 가장 최근에 버퍼링된 프레임을 이용하여 그래픽 평면(912)으로 렌더링되는 경우에 이용가능하다. 또한, 상술한 바와 같이, <clearrect> 또는 기타 오프닝-생성 엘리먼트는 이 합성 단계 중에 구현된다. 예시적인 방법은 블록(1433)에서 종료된다.
도 15는 예시적인 재생 시스템(1500)의 블록도이다. 네비게이션 관리자(1505)는 대화형 미디어 환경에서 실행되는 N개의 애플리케이션의 엄밀한 순서를 보유한다. 각 애플리케이션에는 0 내지 N-1 중에서 한 Z 순서가 주어지며 모든 애플리케이션은 고유한 Z 순서를 가진다. 순서 간에는 틈이 없으며 2개의 애플리케이션들 중 어떠한 것도 동일한 Z 순서를 가지지 않는다. Z 순서 0은 디스플레이(1512)의 가장 아래에서 나타나며 Z 순서 N-1은 가장 위에 나타난다. 비디오 타이틀이 시간적으로 진행함에 따라, 네비게이션 관리자(1505)는, 상술한 바와 같이, 재생목록(예를 들면, 도 2의 재생목록(290))에 의해 설정된 초기 Z 순서 값들로부터 동적인 방식으로 애플리케이션에 대한 Z 순서를 보유한다.
네비게이션 관리자(1505)는 표시 엔진(1515) 및 그래픽 렌더링 엔진(1518)에 연결된다. 표시 엔진(1515)은 대부분의 세팅에서 그래픽 평면 세트(900)의 평면 각각을, 평면과 애플리케이션의 디스플레이(1512)로의 합성을 수행하는 그래픽 렌더링 엔진(1518)에 표시하도록 구성된다.
참조 부호(1522), 참조 부호(1526), 및 참조 부호(1528)로 각각 나타낸 하나 이상의 그래픽 버퍼 1, 2, ... N는 표시 엔진(1515)과 그래픽 렌더링 엔진(1518) 사이에 배치된다. N개의 그래픽 버퍼는 1대1 단위로 각각의 애플리케이션에 매핑되도록 구성된다. 즉, Nbuffer = Napplication이다. 대안적인 구성에서, (참조번호(1540)에 의해 표시되는) 하나의 버퍼가 모든 애플리케이션에 이용될 수 있거나, 그래픽 버퍼들이 동일하지 않는 방식으로 애플리케이션에 매핑된다.
예시를 명확하고 용이하게 하기 위하여 개별적인 블록, 박스 또는 기타 요소는 데이터, 프로그램, 및 운영 체제 등의 다른 실행가능한 프로그램 컴포넌트에 대한 설명으로 도시된 것이지만 이러한 프로그램 및 컴포넌트는 다른 저장 장치, 메모리 또는 이용되는 임의의 하드웨어 호스트의 프로세싱 컴포넌트에 여러 번 상주할 수 있고 및 이러한 호스트 하드웨어의 하나 이상의 프로세서에 의해 실행된다는 것을 유의한다.
대화형 미디어 환경에서 애플리케이션 상태를 관리하기 위한 각종 예시적인 구성 및 방법이 도시되고 기술되었지만, 본원에 첨부된 특허청구범위의 범주는 기술된 특정 특징, 구성 또는 방법에 반드시 제한될 필요는 없다고 이해되어야 한다. 그 대신, 특정 특징, 구성 또는 방법이 이하 보다 구체적으로 청구될 대화형 미디어 환경에서 관리되는 애플리케이션 상태를 구현하는 예시적인 형태로서 개시된다.

Claims (20)

  1. 디스플레이를 합성하기 위한 방법으로서,
    대화형 미디어 환경(1250)에서 실행되는 복수의 애플리케이션 각각에 대한 Z 순서를 보유하는 단계 - 상기 Z 순서는 상기 디스플레이 상의 시각적인 요소들에 대한 상대적인 순서를 기술함 - ,
    상기 애플리케이션에 관련된 각각의 그래픽 버퍼(1528)들로 애플리케이션을 렌더링하는 단계 - 애플리케이션에 의한 상기 렌더링 단계는 포커스(focus)를 가지는 애플리케이션에서 시작하여 상기 복수의 애플리케이션의 나머지 애플리케이션에 대하여 위에서 아래로의 Z 순서(1362)로 계속하여 수행됨 - , 및
    상기 그래픽 버퍼들의 시각적인 요소들로부터 상기 디스플레이를 합성하는 단계 - 애플리케이션에 의한 상기 합성 단계는 아래에서 위로의 Z 순서(1352)로 수행됨 -
    를 포함하는 디스플레이를 합성하기 위한 방법.
  2. 제1항에 있어서,
    초기 Z 순서는 재생목록(290)에서 설정되는 방법.
  3. 제1항에 있어서,
    상기 렌더링 단계는 2중 버퍼링 구성을 이용하여 상기 렌더링된 요소가 디스 플레이를 위하여 합성되기 전에 2중으로 버퍼링되도록 하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 대화형 미디어 환경은 복수의 디스플레이 평면(900)을 포함하고 상기 애플리케이션은 상기 복수의 디스플레이 평면(900)의 그래픽 평면(912)으로 렌더링되도록 할당되는 방법.
  5. 제1항에 있어서,
    상기 대화형 미디어 환경은 복수의 디스플레이 평면(900)을 포함하고 상기 애플리케이션은 상기 복수의 디스플레이 평면(900)의 서브픽처 평면(918)으로 렌더링되도록 할당되는 방법.
  6. 제1항에 있어서,
    상기 각각의 그래픽 버퍼는, 모든 애플리케이션으로부터의 시각적인 요소가 렌더링되는 하나의 그래픽 버퍼로서 보유되는 방법.
  7. 디스플레이와의 접속을 위한 재생 시스템으로서,
    대화형 미디어 환경에서 실행되는 애플리케이션에 대한 Z 순서를 보유하기 위한 네비게이션 관리자(1505) - 상기 Z 순서는 상기 디스플레이 상의 시각적인 요소들에 대한 상대적인 순서를 기술함 - ;
    상기 애플리케이션에 의해 생성되는 시각적인 요소들을 버퍼링하기 위한 하나 이상의 그래픽 버퍼(1528);
    상기 네비게이션 관리자에 동작적으로 연결되며, 애플리케이션에 의해 시각적인 요소를 역 Z 순서로 그래픽 버퍼에 렌더링하기 위한 표시 엔진(1515); 및
    상기 하나 이상의 그래픽 버퍼들로부터의 상기 디스플레이에 대한 프레임 이미지들을 합성하기 위한 그래픽 렌더링 엔진(1518) - 상기 합성은 Z 순서로 애플리케이션에 의해 수행됨 -
    을 포함하는 디스플레이와의 접속을 위한 재생 시스템.
  8. 제7항에 있어서,
    상기 합성은 그 마크업(markup)에 클리어 개구 엘리먼트(clear opening element)를 포함하는 애플리케이션보다 낮은 Z 순서를 가지는 모든 애플리케이션의 그래픽 버퍼 내에 개구를 클리어링하는 것을 포함하여 비디오 평면(925)이 상기 개구를 통해 보일 수 있게 되는 재생 시스템.
  9. 제8항에 있어서,
    상기 개구는 직사각형, 원, 타원, 및 임의적인 형태를 포함하는 복수의 형태들 중 하나로부터 선택되는 형태를 가지는 재생 시스템.
  10. 제7항에 있어서,
    합성된 프레임 이미지들은 모든 비디오 프레임에 대한 애플리케이션 프레임을 가지는 재생 시스템.
  11. 제10항에 있어서,
    상기 애플리케이션 프레임은 새로운 애플리케이션 프래임이 이용가능하지 않을 경우 가장 최근에 이용가능한 애플리케이션 프레임인 재생 시스템.
  12. 전자 장치의 하나 이상의 프로세서에 의해 실행될 때, 복수의 N개의 애플리케이션에 대한 드로잉 순서를 설정하기 위한 방법을 수행하는 컴퓨터 판독가능 매체로서,
    상기 복수의 애플리케이션 각각은 디스플레이 상에 시각적인 요소로서 랜더링될 수 있으며,
    상기 방법은
    상기 디스플레이(1415) 상의 상기 애플리케이션의 Z 순서를 조작하기 위한 하나 이상의 메소드를 호출하도록 애플리케이션을 인에이블링하는 단계 - 상기 Z 순서는 상기 디스플레이 상의 상기 N개의 애플리케이션에 대한 상대적인 순서를 기술하고, Z 순서 값들은 0과 N-1로 범위가 지정되는 세트로부터 선택됨 - ; 및
    상기 애플리케이션(1418)을 상기 애플리케이션에 관련된 각각의 그래픽 버퍼에 렌더링하는 단계 - 애플리케이션에 의한 상기 렌더링 단계는 N-1에서 시작하여 0에서 끝나는 역 Z 순서로 수행됨 -
    를 포함하는 복수의 N개의 애플리케이션에 대한 드로잉 순서를 설정하기 위한 방법을 수행하는 컴퓨터 판독가능 매체.
  13. 제12항에 있어서,
    상기 렌더링 단계는 이벤트 큐(515)에 삽입되는 하나 이상의 워크아이템(535)을 이용하여 수행되는 컴퓨터 판독가능 매체.
  14. 제12항에 있어서,
    상기 방법은, 애플리케이션의 Z 순서가 변경되었을 때 상기 애플리케이션에 통지(1416)를 제공하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  15. 제12항에 있어서,
    상기 렌더링 단계는 애플리케이션의 마크업으로 캔버스 개체에 드로잉하는(drawing) 단계를 포함하는 컴퓨터 판독가능 매체.
  16. 제12항에 있어서,
    상기 캔버스 개체는 상기 애플리케이션의 각각의 그래픽 버퍼에 렌더링되는 컴퓨터 판독가능 매체.
  17. 제12항에 있어서,
    상기 방법은, 파인터의(painter's) 알고리즘을 이용하여 가장 최근의 버퍼로부터 상기 디스플레이(1425)를 합성하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  18. 제12항에 있어서,
    상기 호출 메소드는 애플리케이션을 가장 높은 Z 순서로 옮기는 것을 포함하는 컴퓨터 판독가능 매체.
  19. 제12항에 있어서,
    상기 호출 메소드는 애플리케이션을 가장 낮은 Z 순서로 옮기는 것을 포함하는 컴퓨터 판독가능 매체.
  20. 제12항에 있어서,
    상기 호출 메소드는 애플리케이션을 상기 애플리케이션 보다 바로 위인 Z 순서를 가지는 애플리케이션 바로 위의 위치로 옮기는 것을 포함하는 컴퓨터 판독가능 매체.
KR1020077030967A 2005-07-01 2006-06-22 대화형 미디어 환경에서 복수의 애플리케이션의 렌더링 및 합성 KR101311111B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US69594405P 2005-07-01 2005-07-01
US60/695,944 2005-07-01
US11/352,575 US8305398B2 (en) 2005-07-01 2006-02-13 Rendering and compositing multiple applications in an interactive media environment
US11/352,575 2006-02-13
PCT/US2006/024423 WO2007005327A2 (en) 2005-07-01 2006-06-22 Rendering and compositing multiple applications in an interactive media environment

Publications (2)

Publication Number Publication Date
KR20080024167A true KR20080024167A (ko) 2008-03-17
KR101311111B1 KR101311111B1 (ko) 2013-10-14

Family

ID=37588891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077030967A KR101311111B1 (ko) 2005-07-01 2006-06-22 대화형 미디어 환경에서 복수의 애플리케이션의 렌더링 및 합성

Country Status (5)

Country Link
US (1) US8305398B2 (ko)
EP (1) EP1899856A4 (ko)
JP (1) JP4965567B2 (ko)
KR (1) KR101311111B1 (ko)
WO (1) WO2007005327A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9865075B2 (en) 2013-08-12 2018-01-09 Samsung Electronics Co., Ltd. Graphics processing apparatus and graphics processing method

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020084B2 (en) 2005-07-01 2011-09-13 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US7721308B2 (en) 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US8305398B2 (en) 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
US8656268B2 (en) 2005-07-01 2014-02-18 Microsoft Corporation Queueing events in an interactive media environment
US8799757B2 (en) * 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US8108787B2 (en) * 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications in an interactive media environment
US7941522B2 (en) * 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
JP5010233B2 (ja) * 2006-10-20 2012-08-29 株式会社東芝 映像再生装置及び映像再生方法
US7689665B2 (en) * 2007-04-27 2010-03-30 Microsoft Corporation Dynamically loading scripts
US8379019B2 (en) * 2007-12-26 2013-02-19 Advanced Micro Devices, Inc. Fast triangle reordering for vertex locality and reduced overdraw
US8521842B2 (en) * 2008-02-29 2013-08-27 Microsoft Corporation Delivering composite media to a client application
US8472779B2 (en) * 2008-06-17 2013-06-25 Microsoft Corporation Concurrently displaying multiple trick streams for video
US8884983B2 (en) * 2008-06-30 2014-11-11 Microsoft Corporation Time-synchronized graphics composition in a 2.5-dimensional user interface environment
US8269821B2 (en) * 2009-01-27 2012-09-18 EchoStar Technologies, L.L.C. Systems and methods for providing closed captioning in three-dimensional imagery
US20120102411A1 (en) * 2010-10-25 2012-04-26 Nokia Corporation Method and apparatus for monitoring user interactions with selectable segments of a content package
US8847970B2 (en) 2012-04-18 2014-09-30 2236008 Ontario Inc. Updating graphical content based on dirty display buffers
CN102868919B (zh) * 2012-09-19 2016-03-30 上海基美文化传媒股份有限公司 交互式播放设备及播放方法
DE102013108478A1 (de) * 2013-08-06 2015-02-12 Endress+Hauser Process Solutions Ag Verfahren zur Erweiterung einer eingebetteten Softwarekomponente eines Feldgerätes
KR20150025594A (ko) * 2013-08-29 2015-03-11 삼성전자주식회사 멀티 이미지 레이어 컴포지트 방법
KR20150033162A (ko) * 2013-09-23 2015-04-01 삼성전자주식회사 컴포지터, 이를 포함하는 시스템온칩 및 이의 구동 방법
US9591295B2 (en) 2013-09-24 2017-03-07 Amazon Technologies, Inc. Approaches for simulating three-dimensional views
US9437038B1 (en) * 2013-09-26 2016-09-06 Amazon Technologies, Inc. Simulating three-dimensional views using depth relationships among planes of content
CN104702914A (zh) * 2015-01-14 2015-06-10 汉柏科技有限公司 一种监控视频的数据处理方法及系统
US10348997B2 (en) 2015-07-09 2019-07-09 Genetec Inc. Security video monitoring client
CN108650555B (zh) * 2018-05-15 2022-11-22 北京优酷科技有限公司 视频界面的展示、交互信息的生成方法、播放器及服务器

Family Cites Families (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195092A (en) 1987-08-04 1993-03-16 Telaction Corporation Interactive multimedia presentation & communication system
US5208745A (en) 1988-07-25 1993-05-04 Electric Power Research Institute Multimedia interface and method for computer system
WO1992021211A1 (en) 1991-05-21 1992-11-26 Videotelecom Corp. A multiple medium message recording system
JP2512250B2 (ja) * 1991-09-13 1996-07-03 松下電器産業株式会社 動画表示ワ―クステ―ション
US5452435A (en) 1993-03-31 1995-09-19 Kaleida Labs, Inc. Synchronized clocks and media players
US5515490A (en) 1993-11-05 1996-05-07 Xerox Corporation Method and system for temporally formatting data presentation in time-dependent documents
US5574934A (en) 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
JP2701724B2 (ja) 1993-12-28 1998-01-21 日本電気株式会社 シナリオ編集装置
USRE44685E1 (en) 1994-04-28 2013-12-31 Opentv, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system, and method and system to order an item using a distributed computing system
US5966121A (en) 1995-10-12 1999-10-12 Andersen Consulting Llp Interactive hypervideo editing system and interface
US5760780A (en) 1996-01-31 1998-06-02 Hewlett-Packard Company Computer graphics system using caching of pixel Z values to improve rendering performance
US5631694A (en) 1996-02-01 1997-05-20 Ibm Corporation Maximum factor selection policy for batching VOD requests
US6240555B1 (en) 1996-03-29 2001-05-29 Microsoft Corporation Interactive entertainment system for presenting supplemental interactive content together with continuous video programs
JP3617887B2 (ja) * 1996-10-14 2005-02-09 シャープ株式会社 撮像装置
US5877763A (en) 1996-11-20 1999-03-02 International Business Machines Corporation Data processing system and method for viewing objects on a user interface
US6128712A (en) 1997-01-31 2000-10-03 Macromedia, Inc. Method and apparatus for improving playback of interactive multimedia works
US6069633A (en) 1997-09-18 2000-05-30 Netscape Communications Corporation Sprite engine
US6100881A (en) 1997-10-22 2000-08-08 Gibbons; Hugh Apparatus and method for creating interactive multimedia presentation using a shoot lost to keep track of audio objects of a character
US5956026A (en) 1997-12-19 1999-09-21 Sharp Laboratories Of America, Inc. Method for hierarchical summarization and browsing of digital video
US6665835B1 (en) 1997-12-23 2003-12-16 Verizon Laboratories, Inc. Real time media journaler with a timing event coordinator
US6453459B1 (en) 1998-01-21 2002-09-17 Apple Computer, Inc. Menu authoring system and method for automatically performing low-level DVD configuration functions and thereby ease an author's job
US6426778B1 (en) 1998-04-03 2002-07-30 Avid Technology, Inc. System and method for providing interactive components in motion video
US6067638A (en) 1998-04-22 2000-05-23 Scientific Learning Corp. Simulated play of interactive multimedia applications for error detection
US6212595B1 (en) 1998-07-29 2001-04-03 International Business Machines Corporation Computer program product for fencing a member of a group of processes in a distributed processing environment
JP3961693B2 (ja) 1998-09-28 2007-08-22 株式会社東芝 映像表示装置
US6700588B1 (en) * 1998-11-09 2004-03-02 Broadcom Corporation Apparatus and method for blending graphics and video surfaces
US6637031B1 (en) 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6384846B1 (en) * 1998-12-11 2002-05-07 Hitachi America Ltd. Methods and apparatus for rendering multiple images using a limited rendering resource
GB2344925A (en) 1998-12-16 2000-06-21 Memory Corp Plc Optical storage disc storing compressed and uncompressed data
US6430570B1 (en) 1999-03-01 2002-08-06 Hewlett-Packard Company Java application manager for embedded device
CN100505076C (zh) 1999-03-30 2009-06-24 提维股份有限公司 多媒体可视的播放进度指示系统
US6340977B1 (en) 1999-05-07 2002-01-22 Philip Lui System and method for dynamic assistance in software applications using behavior and host application models
US6369830B1 (en) * 1999-05-10 2002-04-09 Apple Computer, Inc. Rendering translucent layers in a display system
US6629150B1 (en) 1999-06-18 2003-09-30 Intel Corporation Platform and method for creating and using a digital container
US20040220926A1 (en) 2000-01-03 2004-11-04 Interactual Technologies, Inc., A California Cpr[P Personalization services for entities from multiple sources
US20010053996A1 (en) 2000-01-06 2001-12-20 Atkinson Paul D. System and method for distributing and controlling the output of media in public spaces
US20020157103A1 (en) 2000-01-07 2002-10-24 Deyang Song Method for digital media playback in a broadcast network
US20050251732A1 (en) 2000-01-20 2005-11-10 Interactual Technologies, Inc. System, method and article of manufacture for executing a multimedia event on a plurality of client computers using a synchronization host engine
US7367042B1 (en) 2000-02-29 2008-04-29 Goldpocket Interactive, Inc. Method and apparatus for hyperlinking in a television broadcast
CA2340144A1 (en) 2000-03-09 2001-09-09 Ethereal Minds, Inc. System and method for pre-loading still imagery data in an interactive multimedia presentation environment
US7725812B1 (en) 2000-03-31 2010-05-25 Avid Technology, Inc. Authoring system for combining temporal and nontemporal digital media
US6628283B1 (en) * 2000-04-12 2003-09-30 Codehorse, Inc. Dynamic montage viewer
DE10021286B4 (de) 2000-05-02 2005-03-10 Kara Can Verfahren und Vorrichtung zur Kompression und/oder Dekompression von Daten
US7669238B2 (en) 2000-06-21 2010-02-23 Microsoft Corporation Evidence-based application security
US7131143B1 (en) 2000-06-21 2006-10-31 Microsoft Corporation Evaluating initially untrusted evidence in an evidence-based security policy manager
US6785729B1 (en) 2000-08-25 2004-08-31 International Business Machines Corporation System and method for authorizing a network user as entitled to access a computing node wherein authenticated certificate received from the user is mapped into the user identification and the user is presented with the opprtunity to logon to the computing node only after the verification is successful
AU2001224098A1 (en) 2000-08-25 2002-03-04 4C Soft Inc Electronic study method using multimedia
US7200357B2 (en) 2000-10-20 2007-04-03 Universal Electronics Inc. Automotive storage and playback device and method for using the same
US20020099738A1 (en) 2000-11-22 2002-07-25 Grant Hugh Alexander Automated web access for back-end enterprise systems
US7210037B2 (en) 2000-12-15 2007-04-24 Oracle International Corp. Method and apparatus for delegating digital signatures to a signature server
US6728681B2 (en) 2001-01-05 2004-04-27 Charles L. Whitham Interactive multimedia book
US6792426B2 (en) 2001-01-10 2004-09-14 International Business Machines Corporation Generic servlet for browsing EJB entity beans
US6738911B2 (en) 2001-02-02 2004-05-18 Keith Hayes Method and apparatus for providing client-based network security
US20020138593A1 (en) 2001-03-26 2002-09-26 Novak Michael J. Methods and systems for retrieving, organizing, and playing media content
AUPR464601A0 (en) 2001-04-30 2001-05-24 Commonwealth Of Australia, The Shapes vector
US20020188616A1 (en) 2001-06-07 2002-12-12 Chinnici Roberto R. Database access bridge system and process
WO2003005190A1 (en) 2001-07-06 2003-01-16 E-Genie Australia Pty Limited Method and system for computer software application execution
US6920613B2 (en) 2001-08-27 2005-07-19 Xerox Corporation Video/text bi-directional linkage for software fault clearance applications
FR2829644A1 (fr) 2001-09-10 2003-03-14 St Microelectronics Sa Procede securise de transmission de donnees multimedia
JP3852568B2 (ja) 2001-09-11 2006-11-29 ソニー株式会社 マルチメディアプレゼンテーション作成装置および方法
US7356763B2 (en) 2001-09-13 2008-04-08 Hewlett-Packard Development Company, L.P. Real-time slide presentation multimedia data object and system and method of recording and browsing a multimedia data object
US7161599B2 (en) * 2001-10-18 2007-01-09 Microsoft Corporation Multiple-level graphics processing system and method
US20040205479A1 (en) 2001-10-30 2004-10-14 Seaman Mark D. System and method for creating a multimedia presentation
US20030152904A1 (en) 2001-11-30 2003-08-14 Doty Thomas R. Network based educational system
US6925499B1 (en) 2001-12-19 2005-08-02 Info Value Computing, Inc. Video distribution system using disk load balancing by file copying
JP3938307B2 (ja) * 2001-12-27 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示装置、表示方法、表示プログラム、および記録媒体
US20030142137A1 (en) 2002-01-28 2003-07-31 International Business Machines Corporation Selectively adjusting the order of windows in response to a scroll wheel rotation
TWI247295B (en) 2002-03-09 2006-01-11 Samsung Electronics Co Ltd Reproducing method and apparatus for interactive mode using markup documents
US20030182364A1 (en) 2002-03-14 2003-09-25 Openwave Systems Inc. Method and apparatus for requesting and performing batched operations for web services
US7127700B2 (en) 2002-03-14 2006-10-24 Openwave Systems Inc. Method and apparatus for developing web services using standard logical interfaces to support multiple markup languages
US7496845B2 (en) 2002-03-15 2009-02-24 Microsoft Corporation Interactive presentation viewing system employing multi-media components
US7080043B2 (en) 2002-03-26 2006-07-18 Microsoft Corporation Content revocation and license modification in a digital rights management (DRM) system on a computing device
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7496599B2 (en) 2002-04-30 2009-02-24 Microsoft Corporation System and method for viewing relational data using a hierarchical schema
US6928619B2 (en) 2002-05-10 2005-08-09 Microsoft Corporation Method and apparatus for managing input focus and z-order
KR100866790B1 (ko) 2002-06-29 2008-11-04 삼성전자주식회사 인터렉티브 모드에서의 포커싱 방법 및 그 장치
US20040034622A1 (en) 2002-08-13 2004-02-19 Espinoza Danny Javier Applications software and method for authoring and communicating multimedia content in a multimedia object communication and handling platform
US7290057B2 (en) 2002-08-20 2007-10-30 Microsoft Corporation Media streaming of web content data
US7038581B2 (en) 2002-08-21 2006-05-02 Thomson Licensing S.A. Method for adjusting parameters for the presentation of multimedia objects
US20040107179A1 (en) 2002-08-22 2004-06-03 Mdt, Inc. Method and system for controlling software execution in an event-driven operating system environment
EP1551027A4 (en) 2002-09-12 2009-08-05 Panasonic Corp RECORDING MEDIUM, REPRODUCTION DEVICE, PROGRAM, REPRODUCTION METHOD, AND RECORDING METHOD
US7519616B2 (en) 2002-10-07 2009-04-14 Microsoft Corporation Time references for multimedia objects
US7840856B2 (en) 2002-11-07 2010-11-23 International Business Machines Corporation Object introspection for first failure data capture
KR100484181B1 (ko) 2002-12-02 2005-04-20 삼성전자주식회사 멀티미디어 문서 저작 장치 및 방법
CA2414053A1 (en) 2002-12-09 2004-06-09 Corel Corporation System and method for manipulating a document object model
US7290263B1 (en) 2002-12-19 2007-10-30 Extreme, Networks, Inc. Method and system for a scriptable command line interface
US7707563B2 (en) 2003-01-10 2010-04-27 Nexaweb Technologies Inc System and method for network-based computing
JP2004221900A (ja) 2003-01-14 2004-08-05 Sony Corp 画像情報復号装置及び画像情報復号方法
US7302057B2 (en) 2003-01-31 2007-11-27 Realnetworks, Inc. Method and process for transmitting video content
US20040187157A1 (en) 2003-03-18 2004-09-23 Yen-Hwong Chong Multifunctional integrated multimedia viewer system
US7620301B2 (en) 2003-04-04 2009-11-17 Lg Electronics Inc. System and method for resuming playback
US6906643B2 (en) 2003-04-30 2005-06-14 Hewlett-Packard Development Company, L.P. Systems and methods of viewing, modifying, and interacting with “path-enhanced” multimedia
US7739715B2 (en) 2003-06-24 2010-06-15 Microsoft Corporation Variable play speed control for media streams
TW200514442A (en) 2003-06-30 2005-04-16 Matsushita Electric Ind Co Ltd Recording medium, reproduction device, recording method, program, and reproduction method
KR101081729B1 (ko) 2003-07-07 2011-11-08 로비 솔루션스 코포레이션 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안
KR20050022072A (ko) 2003-08-26 2005-03-07 삼성전자주식회사 인터렉티브 데이터 처리방법 및 장치
US7511718B2 (en) 2003-10-23 2009-03-31 Microsoft Corporation Media integration layer
US7436535B2 (en) 2003-10-24 2008-10-14 Microsoft Corporation Real-time inking
US8065616B2 (en) 2003-10-27 2011-11-22 Nokia Corporation Multimedia presentation editor for a small-display communication terminal or computing device
CN101661767B (zh) 2003-11-12 2011-07-27 松下电器产业株式会社 记录介质、再现装置和方法、记录方法以及计算机可读取程序
US7681114B2 (en) 2003-11-21 2010-03-16 Bridgeborn, Llc Method of authoring, deploying and using interactive, data-driven two or more dimensional content
EP1536606A1 (fr) 2003-11-27 2005-06-01 Nagracard S.A. Méthode d'authentification d'applications
EP1583098B1 (en) 2003-11-28 2017-10-18 Sony Corporation Reproduction device, reproduction method, reproduction program, and recording medium
US20050149729A1 (en) 2003-12-24 2005-07-07 Zimmer Vincent J. Method to support XML-based security and key management services in a pre-boot execution environment
JP4166707B2 (ja) 2004-01-20 2008-10-15 パイオニア株式会社 映像内容認識装置、録画装置、映像内容認識方法、録画方法、映像内容認識プログラム、および録画プログラム
JP4009634B2 (ja) 2004-03-04 2007-11-21 日本電気株式会社 アクセス制御方法、アクセス制御システム、メタデータ制御機、及び送信系装置
US7509497B2 (en) 2004-06-23 2009-03-24 Microsoft Corporation System and method for providing security to an application
US8201191B2 (en) 2004-06-30 2012-06-12 Time Warner Cable Inc. Apparatus and methods for implementation of network software interfaces
US20060041522A1 (en) 2004-08-18 2006-02-23 Xerox Corporation. Abstract document management systems and methods
KR20060125465A (ko) 2005-06-02 2006-12-06 엘지전자 주식회사 기록매체, 데이터 재생방법 및 재생장치와 데이터 저장방법및 저장장치
US7941522B2 (en) 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
US7721308B2 (en) 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US20070006078A1 (en) 2005-07-01 2007-01-04 Microsoft Corporation Declaratively responding to state changes in an interactive multimedia environment
US8020084B2 (en) 2005-07-01 2011-09-13 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US8656268B2 (en) 2005-07-01 2014-02-18 Microsoft Corporation Queueing events in an interactive media environment
US8799757B2 (en) 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US20070006238A1 (en) 2005-07-01 2007-01-04 Microsoft Corporation Managing application states in an interactive media environment
US8305398B2 (en) 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
US20070006079A1 (en) 2005-07-01 2007-01-04 Microsoft Corporation State-based timing for interactive multimedia presentations
US8108787B2 (en) 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications in an interactive media environment
US20070174387A1 (en) 2006-01-20 2007-07-26 International Business Machines Corporation Methods and apparatus for implementing real-time collective moderation of collaborative environments
US8495592B2 (en) 2006-11-28 2013-07-23 International Business Machines Corporation Presenting completion progress status of an installer via join points

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9865075B2 (en) 2013-08-12 2018-01-09 Samsung Electronics Co., Ltd. Graphics processing apparatus and graphics processing method

Also Published As

Publication number Publication date
WO2007005327A2 (en) 2007-01-11
JP4965567B2 (ja) 2012-07-04
US20070002045A1 (en) 2007-01-04
US8305398B2 (en) 2012-11-06
EP1899856A2 (en) 2008-03-19
JP2009505170A (ja) 2009-02-05
WO2007005327A3 (en) 2007-06-21
KR101311111B1 (ko) 2013-10-14
EP1899856A4 (en) 2012-08-08

Similar Documents

Publication Publication Date Title
KR101311111B1 (ko) 대화형 미디어 환경에서 복수의 애플리케이션의 렌더링 및 합성
KR101247018B1 (ko) 상호작용 미디어 환경에서 다수의 애플리케이션으로의 입력이벤트 분배
KR101265938B1 (ko) 대화형 미디어 환경에서의 이벤트 큐잉
CN101213540B (zh) 在交互式媒体环境中呈现和合成多个应用程序
KR101365829B1 (ko) 대화형 멀티미디어 프리젠테이션을 재생하는 방법을 수행하는 컴퓨터 실행가능 명령어들이 인코딩된 컴퓨터 판독가능 매체, 및 대화형 멀티미디어 프리젠테이션을 재생하는 프리젠테이션 시스템 및 장치
JP5015150B2 (ja) 対話式マルチメディア環境の状態変化への宣言式応答
US20140237332A1 (en) Managing application states in an interactive media environment
US20070006080A1 (en) Synchronization aspects of interactive multimedia presentation management
EP2154685A2 (en) System, method and medium generating frame information for moving images
JP2008545335A5 (ko)
CN113365150A (zh) 视频处理方法和视频处理装置
KR101292770B1 (ko) 불확정 시작 시간을 가진 어플리케이션을 포함하는 av데이터의 재생 방법 및 장치
KR20100117944A (ko) 멀티영상 편집장치 및 재생장치

Legal Events

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

Payment date: 20160818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 6