KR101231323B1 - 대화형 멀티미디어 환경에서의 상태 변경에 대한 선언적응답 - Google Patents
대화형 멀티미디어 환경에서의 상태 변경에 대한 선언적응답 Download PDFInfo
- Publication number
- KR101231323B1 KR101231323B1 KR1020077030311A KR20077030311A KR101231323B1 KR 101231323 B1 KR101231323 B1 KR 101231323B1 KR 1020077030311 A KR1020077030311 A KR 1020077030311A KR 20077030311 A KR20077030311 A KR 20077030311A KR 101231323 B1 KR101231323 B1 KR 101231323B1
- Authority
- KR
- South Korea
- Prior art keywords
- application
- presentation
- state
- media
- time
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/438—Presentation of query results
- G06F16/4387—Presentation of query results by the use of playlists
- G06F16/4393—Multimedia presentations, e.g. slide shows, multimedia albums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/102—Programmed access in sequence to addressed parts of tracks of operating record carriers
- G11B27/105—Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/19—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
- G11B27/28—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
- G11B27/32—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
- G11B27/322—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier used signal is digitally coded
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4438—Window management, e.g. event handling following interaction with the user interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8543—Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Stored Programmes (AREA)
Abstract
선언형 언어 애플리케이션 명령어를 사용하여, 대화형 멀티미디어 프레젠테이션의 대화형 콘텐트의 재생과 관련된 액션은 특정 미디어 개체의 상태 변경에 기초하여 트리거된다. 소정의 애플리케이션 명령어는 미디어 개체의 특성을 지정하는 반면, 그외 다른 애플리케이션 명령어는 특성의 상태 변경에 기초하여 대화형 콘텐트의 재생과 관련된 액션(예를 들어, 미디어 개체가 렌더링 가능할 때, 이벤트 발생, 스크립트 실행 또는 변수의 변경)을 지정한다. 상태 변경은 애플리케이션 명령어, 미디어 개체 및/또는 특성과 관련된 노드를 포함하는 문서 개체 모델과 같은 애플리케이션의 구조적 표현을 쿼리함으로써 검출된다. 상태 변경이 검출될 때, 하나 이상의 지정된 액션은 트리거됨으로써 상태 변경에 선언적으로 응답한다. 예시적인 예에서, 상태 변경은 포그라운드(foreground), 포커스드(focused), 포인터(pointer), 액션드(actioned), 인에이블드(enabled) 및 값(value)을 포함하는 특성을 사용하여 추적된다.
상태 변경, 문서 개체 모델, 마크업, 스크립트, XPATH 쿼리, 프레젠테이션 시스템, 콘텐트 요소
Description
<관련 출원서>
본 출원은 여기에서 참조로 사용되고 2005년 7월 1일자로 출원된 가출원 제60/695,944호의 권리를 주장한다.
본 발명은 대화형 멀티미디어 환경에서 상태 변경에 선언적으로 응답하는 것에 관한 것이다.
멀티미디어 플레이어는 사용자가 소모하기 위한 비디오, 오디오 또는 데이터 콘텐트의 조합("멀티미디어 프레젠테이션")을 렌더링하는 장치이다. 현재 DVD 플레이어와 같은 멀티미디어 플레이어는 비디오 콘텐트의 재생 동안에, 있다 하더라도 많은 사용자 대화성을 제공하지는 못하고 - 비디오 콘텐트 재생은 일반적으로 재생 속도 조정 이외의 사용자 입력을 수신하기 위해 중단된다. 예를 들어, DVD 플레이어의 사용자는 일반적으로, 오디오 해설, 배우 일대기 또는 게임과 같은 특징을 사용자가 선택해서 수신할 수 있게 하는 옵션을 포함하는 메뉴로 돌아가기 위해, 사용자가 재생하고 있는 영화를 정지해야 한다.
대화형 멀티미디어 플레이어는 종래의 비디오, 오디오 또는 데이터 콘텐트와 동시에 대화형 콘텐트의 조합("대화형 멀티미디어 프레젠테이션")을 렌더링하는 장치이다(그러한 장치는 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있다). 임의 유형의 장치가 대화형 멀티미디어 플레이어일 수 있긴 하지만, 광 미디어 플레이어(예를 들어, DVD 플레이어), 컴퓨터 및 기타 전자 장치와 같은 장치는 특히, 다량의 비교적 저렴하고 휴대할 수 있는 데이터 저장소로의 액세스를 제공하기 때문에, 상업적으로 가치있는 대화형 멀티미디어 프레젠테이션의 작성 및 그러한 프레젠테이션에 대한 소비자 요구를 가능하게 하기에 아주 유리한 입장에 있다.
대화형 콘텐트는 일반적으로, 단독으로 또는 다른 비디오, 오디오 또는 데이터 콘텐트와 함께 제시할 수 있는 임의의 사용자-선택가능 가시(visible) 또는 가청(audible) 개체이다. 가시 개체의 한 종류는 비디오 콘텐트 내의 특정 사물-예를 들어, 영화에서 출현하는 사람, 차 또는 빌딩-을 식별하고 및/또는 뒤쫓아가기 위해 사용될 수 있는 원과 같은 그래픽 개체이다. 가청 개체의 한 종류는 원격 제어 또는 마우스와 같은 장치를 사용하여, 사용자가 원과 같은 가시 개체를 선택했다는 것을 나타내기 위해 재생된 클릭 사운드이다. 대화형 콘텐트의 그외 다른 예로는 메뉴, 캡션 및 애니메이션을 포함하지만 이것에 제한되는 것은 아니다.
대화형 멀티미디어 플레이어 및 대화형 멀티미디어 프레젠테이션으로의 투자를 늘리기 위해서는, 대화형 멀티미디어 프레젠테이션의 대화형 콘텐트 컴포넌트와 그러한 프레젠테이션의 종래의 비디오, 오디오 또는 데이터 콘텐트 컴포넌트와의 정확한 동기를 보장하는 것이 바람직하다. 정확한 동기는 일반적으로 비디오, 오 디오 또는 데이터 콘텐트 컴포넌트의 예측가능하고 글리치(glitch) 없는 재생을 우선시한다. 예를 들어, 원이 영화 속의 차 주위로 나타나게 될 때, 영화는 일반적으로 원이 그려지기를 기다리기 위해 중지하지 않아야 하고, 원은 움직이는 차를 쫓아가야 한다.
다수의 대화형 멀티미디어 환경은 현재, 종종 비용상의 이유로, 처리 능력, 메모리 및 기타 자원 면에서 고의적으로 자원 제약적인 컴퓨팅 플랫폼 또는 "얇은" 플레이어 상에 구현되거나 그 구현을 위해 계획된다. 이용가능 자원을 효율적으로 활용하기 위해, 플레이어 상에서 실행중인 애플리케이션이 선언형 방식을 사용하는 것이 바람직할 수 있는데, 이 선언형 방식은 흔히, 프로그래밍이 더욱 단순하고 보다 덜 프로세서 집약적으로 되게 한다.
선언형 프로그래밍 패러다임에서, 원하는 결과를 얻기 위해 요구된 의미론은 그 결과의 설명에 암시되어 있다. 보통, 원하는 결과를 얻기 위해 분리된 절차를 제공할(즉, 스크립트를 기입하거나 실행가능 코드를 포함할) 필요는 없다. 애플리케이션 제작자는 통상적으로 어설션(assertion) 형태로 표현되는 선언형 콘텐트를 생성하기 위해 선언형 프로그래밍을 사용한다.
예를 들어, 웹 페이지들은 페이지가 보여야 하는 것-예를 들어, 타이틀, 폰트, 텍스트, 이미지-을 설명하기 때문에 흔히 선언적인 것으로 간주되는데, 그들은 컴퓨터 디스플레이 상에 그래픽 및 웹 페이지를 실제로 렌더링하는 방법을 설명하지는 않는다. 브라우저 또는 대화형 미디어 플레이어 애플리케이션과 같은 다른 애플리케이션은 제작자의 목적에 맞게 그래픽을 렌더링하기 위해 선언형 콘텐트를 이용한다.
선언형 방식은 일반적으로 대화형 미디어 플레이어를 제어 또는 조작 하기 위해 실행될 알고리듬을 프로그래머가 지정할 것을 요구하는 포트란(Fortran), C 및 자바(Java)와 같은 종래의 언어를 사용하는 절차형 방식("명령형" 방식이라고도 함)과 대조적이다. 그러므로, 선언형 프로그램은 목표를 명시적으로 하고 알고리듬을 암시적으로 두는 반면, 명령형 프로그램은 알고리듬을 명시적으로 하고, 목표를 암시적으로 둔다. 주의할 점은 애플리케이션이 단순히 선언형이거나 단순히 절차형일 필요는 없다는 것이다. 선언형 애플리케이션은 종종, 사실상 그 자체가 절차적인 스크립트를 사용하고, 절차 개체는 선언형 애플리케이션 내에 포함될 수 있다.
선언형 프로그래밍 언어의 일반적인 예는 HTML(HyperText Markup Language) 및 XML(eXtensible Markup Language)을 포함한다. 이들은 둘 다, 텍스트와, "태그"라고 하는 텍스트를 보충하거나 설명하는 정보를 결합하는 마크업 언어이다. XML은 허용된 사용에 관해 설명되고 정의된 태그의 사용자-작성에 대한 지원을 통한 그 확장성으로 인해 그래픽, 사용자 인터페이스, 웹 서비스(이를테면, 전자 쇼핑 및 웹 검색) 및 기타 기능을 작성하기 위해 증가된 사용을 보이고 있는 더 새로운 언어이다.
그러므로, XML은 사용자를 위한 대화형 경험을 생성하기 위해 애플리케이션을 위한 유연하고 간단한 도구를 제공한다. 그러나, 마크업 언어의 고유한 선언 특성으로 인해, 현재, 제작자가 대화형 멀티미디어 환경의 변경에 응답할 수 있는 애플리케이션을 기입하기 곤란할 수 있다. 즉, 대화형 멀티미디어는 통상적으로, 비디오 콘텐트가 진행되고, 시스템(즉, 플레이어 및 그 애플리케이션)이 사용자 입력과 같은 이벤트를 수신함에 따라, 플레이어 상에서 실행중인 애플리케이션의 상태가 변경되는 동적 환경에서 동작한다. 따라서, 많은 대화형 멀티미디어 장치가 매우 만족스럽게 실행하는 동안, 선언형 방식을 사용하는 장치가 고도의 자원 효율성을 유지하면서 환경의 상태 변경을 캡처하여 그 변경에 응답할 수 있는 것이 여전히 바람직할 것이다.
청구된 주제는 특정 대화형 멀티미디어 프레젠테이션 시스템 또는 그 실시양상의 임의의 또는 모든 단점을 해결하는 구현에 제한되지 않는다는 것을 이해할 것이다.
선언형 언어 애플리케이션 명령어를 사용하여, 대화형 멀티미디어 프레젠테이션의 대화형 콘텐트의 재생과 관련된 액션은 특정 미디어 개체의 상태 변경에 기초하여 조건부로 트리거된다. 미디어 개체는 예를 들어, 통상적으로 대화형 멀티미디어 프레젠테이션 내의 비디오와 함께 제시되는 사용자-선택가능 가시 또는 가청 개체를 포함한다. 소정의 선언형 애플리케이션 명령어는 미디어 개체의 특성을 지정하는 반면, 그외 다른 선언형 애플리케이션 명령어는 하나 이상의 특성(attribute) 상태 변경에 기초하여 대화형 콘텐트의 재생 또는 렌더링과 관련된 액션을 지정한다. 상태 변경은 한 예시적인 예에서, 애플리케이션 명령어, 미디어 개체 및/또는 특성과 관련된 노드를 포함하는 문서 개체 모델("DOM")과 같은 애플리케이션의 구조적 표현을 쿼리(query)함으로써 검출된다. 상태 변경이 검출될 때, 하나 이상의 지정된 액션은 트리거됨으로써 상태 변경에 선언적으로 응답한다.
예시적인 예에서, 콘텐트 요소 특성은 DOM 내에 배열되고 XPATH 쿼리를 사용하여 재귀적으로 내성되는(recursively introspected) 포그라운드(foreground), 인에이블드(enabled), 포커스드(focused), 액션드(actioned), 포인터(pointer) 및 값(value)으로부터 선택된 것들을 포함한다. 이들 특성과 관련된 값은 통상적으로 대화형 미디어 프레젠테이션의 과정에 걸쳐 변경되고, 그러한 값은 사용자 상호작용 또는 이벤트가 대화형 멀티미디어 프레젠테이션에서 실행중인 애플리케이션에 배포되는 방법을 결정한다.
이 요약은 단순화된 형태로 개념의 선택을 소개하기 위해 제공된다. 그 개념은 다음의 상세한 설명 부분에서 더욱 설명된다. 이 요약에서 설명된 것들 이외의 요소 또는 단계가 가능하고, 반드시 요구되는 요소 또는 단계는 없다. 이 요약은 청구된 주제의 핵심적인 특징이나 본질적인 특징을 식별하려는 것도 아니고, 청구된 주제의 범위의 결정을 돕는 것으로 사용되려는 것도 아니다.
도 1은 대화형 멀티미디어 프레젠테이션 시스템의 단순화된 기능 블록도.
도 2는 도 1에 도시된 재생 목록으로부터 확인할 수 있는 예시적인 프레젠테이션 타임라인의 그래픽 도면.
도 3은 도 1에 도시된 대화형 멀티미디어 프레젠테이션과 관련된 애플리케이션의 단순화된 기능 블록도.
도 4는 도 1의 타이밍 신호 관리 블록을 더욱 상세하게 도시한 단순화된 기능 블록도.
도 5는 도 4에 도시된 소정의 시간 참조의 값에 미치는 예시적인 사건발생의 효과를 연속적인 타이밍 신호와 관련하여 도시한 개략도.
도 6은 대화형 멀티미디어 프레젠테이션을 재생하기 위해 도 3에 도시된 소정의 애플리케이션 명령어를 사용하는 방법의 플로우차트.
도 7은 도 6에 도시된 방법의 실시양상과 관련하여 사용할 수 있는 문서 개체 모델의 도면.
도 8은 도 1에 도시된 대화형 멀티미디어 프레젠테이션 시스템의 실시양상과 관련하여 사용할 수 있는 범용 컴퓨팅 유닛의 단순화된 기능 블록도.
도 9는 도 1에 도시된 대화형 멀티미디어 프레젠테이션 시스템이 구현되거나 사용될 수 있는 운영 환경의 예시적인 구성의 단순화된 기능 블록도.
도 10은 도 1에 도시된 대화형 멀티미디어 프레젠테이션 시스템이 구현되거나 사용될 수 있는 클라이언트-서버 아키텍처의 단순화된 기능도.
일반적으로, 대화형 멀티미디어 프레젠테이션은 비디오 콘텐트 컴포넌트 및 대화형 콘텐트 컴포넌트를 포함한다. 비디오 콘텐트 컴포넌트는 예시적인 목적을 위해 영화로 언급되지만, 실제로 비디오, 오디오, 데이터 또는 이들의 임의의 조합일 수 있다.
타이밍 신호에 기초한 속도로 대화형 콘텐트 매니저에 의해 렌더링하도록 되 어 있는 프레젠테이션의 대화형 콘텐트 컴포넌트는 하나 이상의 애플리케이션의 형태로 되어 있다. 애플리케이션은 선언 형태(예를 들어, XML "마크업") 또는 스크립트 형태의 명령어를 포함한다. 애플리케이션 명령어는 종종 비디오 콘텐트 컴포넌트와 함께, 미디어 개체의 프레젠테이션을 구성하고, 포매팅하고, 동기화하기 위해 사용자에게 제공된다. 애플리케이션의 스크립트 및 마크업 컴포넌트는 각각 스크립트 API(애플리케이션 프로그래밍 인터페이스) 또는 마크업 API의 사용을 통해 각종 방법 또는 서비스를 호출할 수 있다.
여기에서 설명된 제조의 방법, 시스템, 장치 및 물품은 대화형 멀티미디어 프레젠테이션의 대화형 콘텐트 컴포넌트의 재생과 관련된 액션을 트리거하기 위해 선언 형태의 애플리케이션 명령어를 사용한다. 상술된 바와 같이 사용할 수 있는 애플리케이션의 예는 마크업 요소 및 특성을 포함한다. 미디어 개체의 특성은 미디어 개체와 관련된 콘텐트 요소의 스타일 또는 비-스타일 특성에 의해 지정될 수 있다. 몇몇 유용한 특성은 하나 이상의 XML 스키마에 의해 정의된다. 예를 들어, DVD 포럼(Forum)에 의해 공표된 하나 이상의 XML 스키마는 대화형 고선명 DVD 영화의 재생 동안에 수신된 사용자 입력에 기초하여 값을 변경시키는 특성을 설명한다. 대화형 콘텐트의 재생과 관련된 액션은 타이밍, 스타일 및 애니메이션 요소 내에서 더욱 지정될 수 있다. 이러한 방식으로 사용 가능한 몇몇 요소는 DVD 포럼에서 공표된 XML 스키마에서 설명된다.
그외 다른 요소는 W3C(World Wide Web Consortium)에 의해 발표된 SMIL(Synchronized Multimedia Integration Language)의 XML 스키마에 의해 정의된 다. XPATH 쿼리는 특성의 값 및 그러한 값의 변경을 검출하기 위해 DOM과 같은 애플리케이션의 구조적 표현을 쿼리하기 위해 사용될 수 있다.
이제, 동일한 참조 번호가 동일한 컴포넌트를 나타내는 도면을 참조하면, 도 1은 대화형 멀티미디어 프레젠테이션 시스템("프레젠테이션 시스템")(100)의 단순화된 기능 블록도이다. 프레젠테이션 시스템(100)은 오디오/비디오 콘텐트("AVC") 매니저(102), 대화형 콘텐트("IC") 매니저(104), 프레젠테이션 매니저(106), 타이밍 신호 관리 블록(108) 및 믹서/렌더러(110)를 포함한다. 일반적으로, 설계 선택은 프레젠테이션 시스템(100)의 특정 기능이 구현되는 방법을 지시한다. 그러한 기능은 하드웨어, 소프트웨어 또는 펌웨어, 또는 이들의 조합을 사용하여 구현될 수 있다.
동작시, 프레젠테이션 시스템(100)은 대화형 멀티미디어 프레젠테이션 콘텐트("프레젠테이션 콘텐트")(120)를 처리한다. 프레젠테이션 콘텐트(120)는 비디오 콘텐트 컴포넌트("비디오 컴포넌트")(122) 및 대화형 콘텐트 컴포넌트("IC 컴포넌트")(124)를 포함한다. 비디오 컴포넌트(122) 및 IC 컴포넌트(124)는 일반적으로, 각각 AVC 매니저(102) 및 IC 매니저(104)에 의해, 분리된 데이터 스트림으로서 처리되지만, 반드시 그런 것은 아니다.
프레젠테이션 시스템(100)은 또한 재생된 프레젠테이션(127)으로서 사용자(도시되지 않음)에게로의 프레젠테이션 콘텐트(120)의 프레젠테이션을 용이하게 한다. 재생된 프레젠테이션(127)은 믹서/렌더러(110)에 의해 생성되어 디스플레이 또는 스피커(도시되지 않음)와 같은 장치를 통해 사용자에 의해 수신 가능한 프레 젠테이션 콘텐트(120)와 관련된 가시 및/또는 가청 정보를 나타낸다. 설명을 위해, 프레젠테이션 콘텐트(120) 및 재생된 프레젠테이션(127)은 임의의 포맷으로 고선명 DVD 영화 콘텐트를 나타낸다고 하자. 그러나, 프레젠테이션 콘텐트(120) 및 재생된 프레젠테이션(127)은 지금 알려져 있거나 나중에 개발되는 임의 유형의 대화형 멀티미디어 프레젠테이션일 수 있다는 것을 이해할 것이다.
비디오 컴포넌트(122)는 프레젠테이션 콘텐트(120)의 종래의 비디오, 오디오 또는 데이터 컴포넌트를 나타낸다. 예를 들어, 영화는 일반적으로, 하나 이상의 버전(예를 들어, 성인 관객을 위한 버전, 및 청소년 관객을 위한 버전); 각 타이틀과 관련된 하나 이상의 챕터(도시되지 않음)가 있는 하나 이상의 타이틀(131)(타이틀은 프레젠테이션 매니저(106)와 관련하여 아래에 더욱 설명됨); 하나 이상의 오디오 트랙(예를 들어, 영화는 서브타이틀이 있거나 없이, 하나 이상의 언어로 재생될 수 있음); 감독의 해설, 추가 장면, 예고편 등과 같은 별도의 특징을 갖는다. 타이틀과 챕터 간의 구별은 단순히 논리적 구별이라는 것을 이해할 것이다. 예를 들어, 단일의 인지된 미디어 세그먼트는 단일 타이틀/챕터의 부분일 수 있고, 또는 다수의 타이틀/챕터로 구성될 수 있다. 적용할 수 있는 논리적 구별을 결정하는 것은 콘텐트 제작 소스에 달려 있다. 또한, 비디오 컴포넌트(122)가 영화로 언급되지만, 비디오 컴포넌트(122)는 실제로 비디오, 오디오, 데이터 또는 이들의 임의의 조합일 수 있다는 것을 이해할 것이다.
비디오 컴포넌트(122)를 형성하는 비디오, 오디오 또는 데이터의 샘플 그룹은 클립(clip)(12)이라 칭해진다(클립(123)은 비디오 컴포넌트(122), AVC 매니 저(102) 및 재생 목록(128) 내에 도시된다). AVC 매니저(102)와 관련하여, 클립(13)과 관련된 정보는 하나 이상의 미디어 소스(160)로부터 수신되고, 디코더 블록(161)에서 디코딩된다. 미디어 소스는 비디오, 오디오 또는 데이터가 구해지거나 얻어지는 임의의 장치, 위치 또는 데이터이다. 미디어 소스의 예는 네트워크, 하드 드라이브, 광 미디어, 대안적인 물리적 디스크, 및 특정 비디오, 오디오 또는 데이터의 저장 위치를 참조하는 데이터 구조를 포함하지만 이것에 제한되는 것은 아니다.
디코더 블록(161)은 미디어 소스(160)로부터 수신된 정보로부터 렌더링가능한 비디오, 오디오 또는 데이터 콘텐트를 검색하기 위해 사용된 임의의 장치, 기술 또는 단계를 나타낸다. 디코더 블록(161)은 예를 들어, 인코더/디코더 쌍, 디멀티플렉서 또는 복호기를 포함할 수 있다. 디코더와 미디어 소스 사이의 1 대 1 관계가 도시되지만, 하나의 디코더가 다수의 미디어 소스를 위해 쓰일 수 있고, 그 반대로도 될 수 있다는 것을 이해할 것이다.
오디오/비디오 콘텐트 데이터("A/V 데이터")(132)는 AVC 매니저(102)에 의해 렌더링할 준비가 되어 있고 믹서/렌더러(110)에게 송신되는 비디오 컴포넌트(122)와 관련된 데이터이다. A/V 데이터(134)의 프레임은 일반적으로 각각의 활성 클립(123)에 대해, 클립의 일부의 렌더링을 포함한다. 특정 프레임 내에 렌더링된 클립의 정확한 부분 또는 양은 클립의 비디오, 오디오 또는 데이터 콘텐트의 특성, 또는 클립을 인코딩 또는 디코딩하기 위해 사용된 포맷, 기술 또는 속도와 같은 몇 가지 요인에 기초할 수 있다.
다시 프레젠테이션 콘텐트(120)와 관련하여, IC 컴포넌트(124)는 가시 또는 가청 개체를 제시하는 임의의 명령어(애플리케이션(155)으로서 도시되고 아래에 더욱 설명됨)와 함께, 선택적으로 비디오 컴폰너트(122)와 동시에 제시할 수 있는 사용자-선택가능 가시 또는 가청 개체인 미디어 개체(125)를 포함한다. 미디어 개체(125)는 정적이거나 동적일 수 있다. 미디어 개체의 예는 그 중에서 특히, 비디오 샘플 또는 클립, 오디오 샘플 또는 클립, 그래픽, 텍스트 및 이들의 조합을 포함한다.
미디어 개체(125)는 하나 이상의 소스(도시되지 않음)에서 비롯된다. 소스는 미디어 개체가 구해지거나 얻어지는 임의의 장치, 위치 또는 데이터이다. 미디어 개체(125)를 위한 소스의 예는 네트워크, 하드 드라이브, 광 미디어, 대안적인 물리적 디스크, 및 특정 미디어 개체의 저장 위치를 참조하는 데이터 구조를 포함하지만 이것에 제한되는 것은 아니다. 미디어 개체(125)의 포맷의 예는 PNG(portable network graphics), JPEG(joint photographic experts group), MPEG(moving picture experts group), MNG(multiple-image network graphics), AVI(audio video interleave), XML(extensible markup language), HTML(hypertext markup language), XHTML(extensible HTML), XSL(extensible stylesheet language) 및 WAV를 포함하지만 이것에 제한되는 것은 아니다.
애플리케이션(155)은 프레젠테이션 시스템(100)이 사용자에게 매체 개체(125)를 제시하는 메카니즘을 제공한다. 애플리케이션(155)은 데이터 상의 미리 결정된 동작을 전자적으로 제어하는 임의의 신호 처리 방법 또는 저장된 명령어 (들)을 나타낸다. 설명을 위해, IC 컴포넌트(124)는 도 2 및 3과 관련하여 아래에 더욱 설명되는 3개의 애플리케이션(155)을 포함한다고 하자. 제1 애플리케이션은 영화 이전에 저작권 고지를 제시하고, 제2 애플리케이션은 영화의 시각적인 양상과 동시에, 다수의 사용자-선택가능 항목을 가진 메뉴를 제공하는 소정의 미디어 개체를 제시하며, 제3 애플리케이션은 영화에 출현하는 것 또는 항목들(예를 들어, 사람, 차, 빌딩 또는 산물)을 식별하고 및/또는 뒤쫓기 위해 사용될 수 있는 (원과 같은) 그래픽 오버레이를 제공하는 하나 이상의 미디어 개체를 제시한다.
대화형 콘텐트 데이터("IC 데이터")(134)는 IC 매니저(104)에 의해 렌더링할 준비가 되어 있고 믹서/렌더러(110)에 송신되는 IC 컴포넌트(124)와 관련된 데이터이다. 각각의 애플리케이션은 애플리케이션의 렌더링과 관련된 하나 이상의 작업 항목(도시되지 않음)을 보유하는 관련된 큐(도시되지 않음)를 갖는다.
AVC 매니저(104) 및 IC 매니저(102) 둘 다와 통신하도록 구성되는 프레젠테이션 매니저(106)는 재생된 프레젠테이션(127)의 사용자에게로의 프레젠테이션 및 프레젠테이션 콘텐트(120)의 처리를 용이하게 한다. 프레젠테이션 매니저(106)는 재생 목록(128)으로의 액세스를 갖는다. 재생 목록(128)은 그 중에서 특히, 사용자에게 나타내 보일 수 있는 클립(123) 및 애플리케이션(155)(미디어 개체(125)를 포함)의 시간 순서화 시퀀스를 포함한다. 클립(123) 및 애플리케이션(155)/미디어 개체(125)는 하나 이상의 타이틀(131)을 형성하도록 배열될 수 있다. 예시적으로, 하나의 타이틀(131)이 여기에서 설명된다. 재생 목록(128)은 XML 문서, 또는 다른 데이터 구조를 사용하여 구현될 수 있다.
프레젠테이션 매니저(106)는 타이틀(131)에 대한 프레젠테이션 타임라인(130)을 확인하기 위해 재생 목록(128)을 사용한다. 개념적으로, 프레젠테이션 타임라인(130)은 특정 클립(123) 및 애플리케이션(155)이 사용자에게 제시될 수 있을 때의 타이틀(131) 내의 시간을 나타낸다. 클립(123)과 애플리케이션(155)의 프레젠테이션 사이의 예시적인 관계를 도시한 샘플 프레젠테이션 타임라인(130)은 도 2와 관련하여 도시되고 설명된다. 어떤 상황에서, 또한, 비디오 콘텐트 타임라인("비디오 타임라인")(142) 및 대화형 콘텐트 타임라인("IC 타임라인")(144)을 확인하기 위해 재생 목록(128) 및/또는 프레젠테이션 타임라인(130)을 사용하는 것이 유용하다.
프레젠테이션 매니저(106)는 프레젠테이션 타임라인(130)에 대한 정보를 포함하는(이것에 제한되지는 않음) 정보를 AVC 매니저(102) 및 IC 매니저(104)에게 제공한다. 프레젠테이션 매니저(206)로부터의 입력에 기초하여, AVC 매니저(102)는 렌더링하기 위한 A/V 데이터(132)를 준비하고, IC 매니저(104)는 렌더링하기 위한 IC 데이터(134)를 준비한다.
타이밍 신호 관리 블록(108)은 각각 AVC 매니저(102) 및 IC 매니저(104)에 의한 A/V 데이터(132) 및 IC 데이터(134)의 준비 및 생성을 위한 타이밍을 제어하기 위해 사용되는 다양한 타이밍 신호(158)를 생성한다. 특히, 타이밍 신호(158)는 A/V 데이터(132)와 IC 데이터(134)의 프레임-레벨 동기를 달성하기 위해 사용된다. 타이밍 신호 관리 블록(108) 및 타이밍 신호(158)의 상세는 도 4와 관련하여 아래에 더욱 설명된다.
믹서/렌더러는 비디오 평면(도시되지 않음) 내에 A/V 데이터(132)를 렌더링하고, 그래픽 평면(도시되지 않음) 내에 IC 데이터(134)를 렌더링한다. 그래픽 평면은 일반적으로 사용자를 위한 재생된 프레젠테이션(127)을 생성하기 위해 비디오 평면 상에 오버레이되지만, 반드시 그렇지는 않다.
계속 도 1과 관련하여, 도 2는 재생 목록(128) 내의 타이틀(131)에 대한 샘플 프레젠테이션 타임라인(130)의 그래픽 도면이다. 시간은 수평 축(220) 상에 도시된다. 비디오 컴포넌트(122)(클립(123)이 도시됨) 및 IC 컴포넌트(124)(미디어 개체(125)를 나타내 보이는 애플리케이션(155)이 도시됨)에 대한 정보는 수직 축(225) 상에 도시된다. 비디오 컴포넌트(122)와 관련하여, 2개의 클립(123), 즉 제1 비디오 클립("비디오 클립 1")(230) 및 제2 비디오 클립("비디오 클립")(250)이 도시된다.
도 1과 관련하여 상술된 IC 컴포넌트(124)와 관련하여, 제1 애플리케이션은 저작권 고지(260)를 포함하는 하나 이상의 미디어 개체(예를 들어, 이미지 및/또는 텍스트)를 제시할 책임이 있다. 제2 애플리케이션은 메뉴(280)의 사용자 선택가능 항목(예를 들어, 관련된 텍스트 또는 그래픽이 있는 버튼)을 제공하는 소정의 미디어 개체를 제시할 책임이 있다. 제3 애플리케이션은 그래픽 오버레이(290)를 제공하는 하나 이상의 미디어 개체를 제시할 책임이 있다. 도시된 바와 같이, 메뉴(280)는 비디오 클립 1(230) 및 비디오 클립 2(250)와 함께 표시되고, 그래픽 오버레이(290)는 비디오 클립 1(230) 및 메뉴(280)와 함께 표시될 수 있다.
타이틀(131)이 사용자에게 제시될 수 있는 수평 축(220)을 따른 특정 시간량 은 타이틀(131)의 재생 지속시간(292)이라 칭해진다. 재생 지속시간(292) 내의 특정 시간은 타이틀 시간이라 칭해진다. 4개의 타이틀 시간("TT")인 TT1(293), TT2(294), TT3(295) 및 TT4(296)는 프레젠테이션 타임라인(130) 상에 도시된다. 타이틀이 한번 재생될 수 있거나, 2번 이상(예를 들어, 루핑(looping) 형태로) 재생될 수 있기 때문에, 재생 지속시간(292)은 한 번의 타이틀(131) 반복에 기초하여 결정된다. 재생 지속시간(292)은 미리 결정된 재생 속도(예를 들어, 정상 또는 1x 재생 속도), 미리 결정된 프레임 속도 또는 미리 결정된 타이밍 신호 상태를 포함하는(이것에 제한되지는 않음) 임의의 원하는 참조와 관련하여 결정될 수 있다. 재생 속도, 프레임 속도 및 타이밍 신호는 도 4와 관련하여 아래에 더욱 설명된다.
각 타이틀에 대한 클립 및 미디어 개체 사이의 타이밍 관계 및 재생 시퀀스에 관한 특정 규칙 및 표시 기술과 같은 구현-특정 요인은 타이틀의 재생 지속시간 및 그 안의 타이틀 시간의 정확한 값에 나쁜 영향을 줄 수 있다는 것을 이해할 것이다. 재생 지속시간 및 타이틀 시간이라는 용어는 모든 그러한 구현 특정 상세를 포함하고자 하는 것이다.
IC 컴포넌트(124)와 관련된 콘텐트가 제시될 수 있는 타이틀 시간이 일반적으로 미리 결정되지만, 사용자가 그러한 콘텐트와 상호작용할 때 취한 액션은 재생된 프레젠테이션(127)이 재생되고 있는 동안 사용자 입력에 기초하여 결정될 수 있을 뿐이라는 것을 이해할 것이다. 예를 들어, 사용자는 재생된 프레젠테이션(127)의 재생 동안에 관련된 소정의 애플리케이션, 미디어 개체 및/또는 추가 콘텐트를 선택하거나, 활성화하거나, 불활성화할 수 있다.
재생 지속시간(292) 내의 그외 다른 시간 및/또는 지속시간이 또한 여기에서 정의되고 설명된다. 비디오 프레젠테이션 간격(240)은 비디오 컴포넌트(122)와 관련된 특정 콘텐트가 재생될 수 있는 재생 지속시간(292)의 시작 및 종료 시간에 의해 정의된다. 예를 들어, 비디오 클립 1(230)은 타이틀 시간 TT2(294)와 TT4(296) 사이의 프레젠테이션 간격(240)을 갖고, 비디오 클립 2(250)는 타이틀 시간 TT3(295)과 TT4(296) 사이의 프레젠테이션 간격(240)을 갖는다. 애플리케이션 프레젠테이션 간격, 애플리케이션 재생 지속시간, 페이지 프레젠테이션 간격 및 페이지 지속시간은 또한 도 3과 관련하여 아래에 정의되고 설명된다.
계속 도 1 및 도 2와 관련하여, 도 3은 단일 애플리케이션(155)의 기능 블록도이다. 애플리케이션(155)은 일반적으로 (도 2에 도시된) 미디어 개체(260, 280 및 290)를 제시할 책임이 있는 애플리케이션들을 대표한다. 애플리케이션(155)은 콘텐트 명령어(302), 타이밍 명령어(306), 스크립트 명령어(308), 스타일 명령어(310), 미디어 개체 명령어(312) 및 이벤트 명령어(360)를 포함하는 명령어(304)(후술됨)를 포함한다. 애플리케이션(155)은 이와 관련된 0개 이상의 자원 패키지 데이터 구조(340)(후술됨), 애플리케이션 재생 지속시간(320) 및 하나 이상의 애플리케이션 프레젠테이션 간격(321)을 갖는다.
애플리케이션 재생 지속시간(320)은 애플리케이션(155)과 관련된 미디어 개체(125)가 재생된 프레젠테이션(127)의 수신에 의해 제시가능 및/또는 선택가능한 재생 지속시간(292)의 양(일부 또는 전부)에 관련된 특정 시간량이다. 예를 들어, 도 2와 관련하여, 저작권 고지(260)를 책임지는 애플리케이션(155)은 TT1(293)과 TT2(294) 사이의 시간량으로 이루어진 애플리케이션 재생 지속시간을 갖는다. 메뉴(280)를 책임지는 애플리케이션은 TT2(294)와 TT4(296) 사이의 시간량으로 이루어진 애플리케이션 재생 지속시간을 갖는다. 그래픽 오버레이(290)를 책임지는 애플리케이션은 TT2(294)와 TT3(295) 사이의 시간량으로 이루어진 애플리케이션 재생 지속시간을 갖는다.
특정 애플리케이션과 관련된 애플리케이션 재생 지속시간(320)이 프레젠테이션 타임라인 상에 개념화될 때 얻어진 시작 및 종료 타이틀 시간에 의해 정의된 간격은 애플리케이션 프레젠테이션 간격(321)이라 칭해진다. 예를 들어, 도 2와 관련하여, 저작권 고지(260)를 책임지는 애플리케이션은 TT1(293)에서 시작하고 TT2(294)에서 끝나는 애플리케이션 프레젠테이션 간격을 갖고, 메뉴(280)를 책임지는 애플리케이션은 TT2(294)에서 시작하고 TT4(296)에서 끝나는 애플리케이션 프레젠테이션 간격을 가지며, 그래픽 오버레이(290)를 책임지는 애플리케이션은 TT2(294)에서 시작하고 TT3(295)에서 끝나는 애플리케이션 프레젠테이션 간격을 갖는다.
다시 도 3과 관련하여, 몇몇 경우에, 애플리케이션(155)은 2 이상의 페이지를 가질 수 있다. 한 페이지는 특정 애플리케이션 재생 지속시간(320) 및/또는 애플리케이션 프레젠테이션 간격(321) 내에서 동시에 제시할 수 있는 하나 이상의 미디어 개체의 논리적 그루핑이다. 처음 페이지(330) 및 다음 페이지(들)(335)이 도시된다. 각 페이지는 차례로 그 자신의 페이지 지속시간을 갖는다. 페이지 지속시간은 특정 페이지와 관련된 미디어 개체가 사용자에게 제시될 수 있는(및/또는 사용자에 의해 선택될 수 있는) 애플리케이션 재생 지속시간의 양(일부 또는 전부)에 관련된 특정 시간량이다. 도시된 바와 같이, 처음 페이지(330)는 페이지 지속시간(332)을 갖고, 다음 페이지(들)(335)은 페이지 지속시간(337)을 갖는다.
특정 페이지와 관련된 미디어 개체는 동시에, 연속적으로, 또는 이들의 조합으로 제시될 수 있다. 도시된 바와 같이, 처음 페이지(330)는 관련된 처음 미디어 개체(들)(331)을 갖고, 다음 페이지(들)(335)은 관련된 미디어 개체(들)(336)을 갖는다. 특정 페이지와 관련된 페이지 지속시간이 프레젠테이션 타임라인(도 2 참조) 상에 개념화될 때 얻어진 시작 및 종료 타이틀 시간에 의해 정의된 간격은 페이지 프레젠테이션 간격(343)이라 칭해진다. 페이지 프레젠테이션 간격(343)은 특정 미디어 개체(331, 336)가 제시될 수 있는 애플리케이션 프레젠테이션 간격(321)의 서브-간격이다. 특정 미디어 개체 프레젠테이션 간격(345)은 또한 페이지 프레젠테이션 간격(343) 내에 정의될 수 있다.
주어진 타이틀과 관련된 애플리케이션 및 페이지의 수, 및 각 애플리케이션 또는 페이지와 관련된 미디어 개체는 일반적으로, 설계 선택의 문제인 논리적 차이점이다. 예를 들어, 특정 처음 페이지의 지정이 반드시 필요한 것은 아니고, 또는 애플리케이션의 2 이상의 페이지가 동시에 제시될 수 있으며, 또는 애플리케이션이 페이지들 없이(또는 아무것도 포함하지 않는 처음 페이지로) 시작될 수 있다. 애플리케이션의 페이지는 애플리케이션 및 스크립트를 그대로 두면서 로드되고 언로드될 수 있다. 다수의 페이지는 애플리케이션의 실행 동안에 메모리 내로 로드되는 애플리케이션과 관련된 자원의 수 또는 양을 관리(예를 들어, 제한)하는 것이 바람직할 경우에 사용될 수 있다. 애플리케이션의 자원은 미디어 개체를 렌더링하는 명령어(304)뿐만 아니라, 애플리케이션에 의해 사용된 미디어 개체를 포함한다. 예를 들어, 다수의 페이지가 있는 애플리케이션이 제시될 수 있을 때, 애플리케이션의 현재 제시가능한 페이지와 관련된 그들 자원만을 메모리 내로 단지 로드하는 것이 가능할 수 있다.
자원 패키지 데이터 구조(340)는 (선택적으로, 애플리케이션의 실행 이전에) 메모리 내로의 애플리케이션 자원의 로딩을 용이하게 하기 위해 사용된다. 자원 패키지 데이터 구조(340)는 그 애플리케이션의 자원이 위치한 메모리 위치를 참조한다. 자원 패키지 데이터 구조(340)는 그것이 참조하는 자원과 함께 또는 자원과 분리된 임의의 원하는 위치에 저장될 수 있다. 예를 들어, 자원 패키지 데이터 구조(340)는 비디오 컴포넌트(122)로부터 분리된 영역 내에, 고선명 DVD와 같은 광 매체 상에 배치될 수 있다. 대안적으로, 자원 패키지 데이터 구조(340)는 비디오 컴포넌트(122) 내에 포함될 수 있다. 다른 대안에서, 자원 패키지 데이터 구조(340)는 멀리 떨어져 위치할 수 있다. 원격 위치의 한 예는 네트워크화된 서버이다. 애플리케이션 실행을 위한 그리고 애플리케이션들 사이의 자원의 트랜잭션의 처리에 관한 토픽은 여기에서 상세하게 설명되지 않는다.
다시 애플리케이션(155) 자체와 관련하여, 명령어(304)는 실행시에, 사용자 입력에 기초하여 애플리케이션(155)과 관련된 미디어 개체(125)의 렌더링에 관련된 태스크를 수행한다. 한가지 유형의 사용자 입력(또는 그 결과)은 사용자 이벤트이다. 사용자 이벤트는 IC 컴포넌트(124)에 관한 재생된 프레젠테이션(127)의 수신 에 의해 시작된 액션 또는 사건이다. 사용자 이벤트는 일반적으로 비동기적이지만, 반드시 그렇지는 않다. 사용자 이벤트의 예는 메뉴(280) 내의 버튼의 선택 또는 그래픽 오버레이(290)와 관련된 원의 선택과 같은 재생된 프레젠테이션(127) 내의 미디어 개체와의 사용자 상호작용을 포함하지만 이것에 제한되는 것은 아니다. 그러한 상호작용은 키보드, 원격 제어, 마우스, 스타일러스 또는 음성 명령을 포함하여, 지금 알려져 있거나 나중에 개발되는 임의 유형의 사용자 입력 장치를 사용하여 발생할 수 있다. 애플리케이션(155)이 시스템 이벤트, 문서 개체 모델 이벤트 또는 기타 유형의 이벤트와 같은, 사용자 이벤트 이외의 이벤트에 응답할 수 있다는 것을 이해할 것이다.
한 구현에서, 명령어(304)는 컴퓨터 판독가능 매체 내에 인코딩된 컴퓨터 실행가능 명령어이다(도 8 및 9와 관련하여 후술됨). 여기에서 설명된 예에서, 명령어(304)는 스크립트(308) 또는 마크업 요소(302, 306, 310, 312, 360)를 사용하여 구현된다. 스크립트 또는 마크업 요소가 단독으로 사용될 수 있지만, 일반적으로 스크립트와 마크업 요소의 조합은 고선명 DVD 영화에 대한 상호작용 능력의 포괄적인 집합의 생성을 가능하게 한다.
스크립트(308)는 명령형 프로그래밍 언어와 같은 비선언형 프로그래밍 언어로 기입된 명령어(304)를 포함한다. 명령형 프로그래밍 언어는 프로세서에 의해 실행될 명령의 순서 면에서의 계산을 설명한다. 스크립트(308)가 사용되는 대부분의 경우에, 스크립트는 사용자 이벤트에 응답하기 위해 사용된다. 그러나, 스크립트(308)는 마크업 요소를 단독으로 사용하여 용이하게 또는 효율적으로 구현되지 않는 문제들의 처리와 같은 기타 상황에서 유용하다. 그러한 상황의 예는 시스템 이벤트, 상태 관리 및 자원 관리(예를 들어, 캐시된 또는 영구적으로 저장된 자원의 액세스)를 포함한다. 한 구현에서, 스크립트(308)는 ECMA-262 사양에서 ECMA 인터내셔널에 의해 정의된 ECMAScript이다. ECMA-262 하에 속하는 일반적인 스크립팅 프로그래밍 언어는 JavaScript 및 JScript이다. 몇몇 설정에서, ECMA-327과 같은 ECMAScript 262의 서브셋을 사용하여 스크립트(38)를 구현하는 것이 바람직할 수 있다.
마크업 요소(302, 306, 310, 312 및 360)는 XML과 같은 선언형 프로그래밍 언어로 기입된 명령어(304)를 나타낸다. XML에서, 요소는 XML 문서 내에, 시작-태그 및 종료-태그를 사용하여 정의된 정보의 논리 유닛이다. XML 문서는 파싱된 또는 파싱되지 않은 데이터를 포함하는 엔티티라고 하는(또는 컨테이너라고도 함) 저장 유닛으로 구성된 데이터 개체이다. 파싱된 데이터는 문자들로 구성되는데, 그 중 일부는 문자 데이터를 형성하고, 그 중 일부는 마크업을 형성한다. 마크업은 문서의 저장 배치 및 논리 구조의 설명을 인코딩한다. XML 문서 내에 하나의 루트 요소가 있는데, 그것의 어떤 부분도 임의의 다른 요소의 콘텐트 내에 나타나지 않는다. 모든 기타 요소에 대해, 시작-태그 및 종료-태그는 서로의 안에 포개져 있는 기타 요소들의 콘텐트 내에 있다.
XML 스키마는 XML 문서의 클래스의 구문(들)의 정의이다. 몇몇 XML 스키마는 W3C(World Wide Web Consortium)에 의해 정의된다. 기타 XML 스키마는 고선명 비디오의 DVD 사양을 준수하여 XML 문서와 함께 사용하기 위해 그리고 다른 사용을 위해 DVD 포럼에 의해 공표되었다. 기타 대화형 멀티미디어 프레젠테이션을 위한스키마뿐만 아니라, 고선명 DVD 영화를 위한 기타 스키마가 가능하다는 것을 이해할 것이다.
하이 레벨에서, XML 스키마는 (1) 요소 이름을 요소 유형과 관련시키는 글로벌 요소 선언, 및 (2) 특성, 서브-요소, 및 그 유형의 요소를 위한 문자 데이터를 정의하는 유형 정의를 포함한다. 요소의 특성은 이름/값 쌍을 사용하여 후술되는 바와 같이 스타일 속성 및 상태 속성과 같은 요소의 특정 속성을 지정하는데, 하나의 특성은 단일 요소 속성을 지정한다.
이벤트 요소(360)를 포함할 수 있는 콘텐트 요소(302)는 애플리케이션(155)에 의해 사용자에게 제시될 수 있는 특정 미디어 개체 요소(312)를 식별하기 위해 사용된다. 다음에, 미디어 개체 요소(312)는 일반적으로, 특정 미디어 개체(125)를 정의하는 데이터가 배치되는 위치를 지정한다. 그러한 위치는 예를 들어, 인터넷, 사적으로 관리된 네트워크 또는 월드 와이드 웹과 같은 유선 또는 무선, 공용 또는 사설 네트워크 상의, 또는 광 미디어 상의 위치를 포함하는 로컬 또는 원격 저장소 내의 위치일 수 있다. 미디어 개체 요소(312)에 의해 지정된 위치는 또한 자원 패키지 데이터 구조(340)에 관한 참조와 같은, 위치에 관한 참조일 수 있다. 이러한 방식으로, 미디어 개체(125)의 위치는 간접적으로 지정될 수 있다.
타이밍 요소(306)는 특정 콘텐트 요소(302)가 특정 애플리케이션(155)에 의해 사용자에게 제시될 수 있는 시간, 또는 시간 간격을 지정하기 위해 사용된다. 타이밍 요소의 예는 XML 문서의 시간 컨테이너 내의 파(par), 타이밍 또는 시 크(seq) 요소를 포함한다. 몇몇 타이밍 요소는 SMIL(Synchronized Multimedia Integration Language)에 대해 W3C에 의해 발표된 표준에 의해 정의된다. 기타 타이밍 요소는 DVD 포럼에 의해 발표된 표준(예를 들어, 고선명 비디오의 DVD 사양)에 의해 정의된다. 표준은 모든 점에서 여기에서 참조로 사용된다. 선언형 언어 문서와 함께 사용하기 위한 기타 타이밍 모델과 관련된 상이한 타이밍 요소도 가능하다.
스타일 요소(310)(및 대응하는 스타일 특성)는 일반적으로 특정 애플리케이션에 의해 사용자에게 제시될 수 있는 특정 콘텐트 요소(302)의 출현을 지정하기 위해 사용된다. 소정의 스타일 요소는 하나 이상의 공개된 사양에 W3C에 의해 및/또는 DVD 포럼에 의해 정의된다. W3C에 의해 발표된 사양의 예는 XSL에 관한 사양, 및 종속형 시트(CSS)에 관한 사양을 포함한다.
이벤트 요소(360)는 마크업 DOM의 재생 동안에 특정 조건의 사건을 식별하기 위해 사용할 수 있는 사용자 정의 파라미터의 변수 집합 및 사용자 지정 이름을 갖는 요소이다. 한 예시적인 예에서, 이벤트 요소는 단지 스크립트에 의해 소모할 수 있다. 그러므로, 이벤트 요소는 그 구문에 의해 설명될 수 있는 임의 유형의 조건의 스크립트(예를 들어, 스크립트(308))를 통지하기 위해 사용된 타이밍 요소(예를 들어, 타이밍 요소(306))의 구성 내에 포함되는 선언형 요소이다. 이벤트 태그는 W3C에 의해 지정된 이벤트 태그로부터 얻어지거나, 그 이벤트 태그와 유사할 수 있고, 또는 W3C에 의해 지정된 이벤트 태그와 다를 수 있다.
마크업 요소(302, 306, 310 및 360)는 관련된 미디어 개체 요소(312)/미디어 개체(125)의 소정의 속성을 지정함으로써, 마크업 요소의 렌더링을 동기시키고, 마크업 내에 선언된 이벤트의 활성을 조정하기 위해 사용될 수 있는 특성을 갖는다. 한 예시적인 구현에서, 이들 특성/속성은 하나 이상의 클록 또는 타이밍 신호이 값을 나타낸다(도 4와 관련하여 후술됨). 시간 또는 지속시간을 나타내는 속성을 갖는 마크업 요소의 특성을 사용하는 것은 사용자가 재생된 프레젠테이션(127)을 수신하는 동안에 IC 컴포넌트(124)와 비디오 컴포넌트(122) 사이의 동기화가 달성되는 특별한 한가지 방식(즉, 인라인 타이밍 구성을 사용하는 방식)이다. 그러나, 타이밍 특성은 애플리케이션에서 마크업 요소에만 제한되지 않고, 전체적으로 여기에서 설명된 이벤팅 시스템(예를 들어, 프레젠테이션 시스템(100))에 대체로 적용될 수 있다는 점이 강조된다. 다른 예시적인 구현(도 6과 관련하여 후술됨)에서, 이들 특성/속성의 구조적 표현은 주기적으로 쿼리되고, 특정 값 또는 그 변화는 재생된 프레젠테이션(127) 내의 IC 컴포넌트(124)의 재생과 관련된 하나 이상의 액션을 트리거하기 위해 사용될 수 있다.
마크업 요소를 포함하는 샘플 XML 문서는 아래에 설명된다(스크립트(308)는 나타내지 않는다). 샘플 XML 문서는 "id"라고 하는 미디어 개체 요소(312)를 참조하는 콘텐트 요소(302) 상에서 잘라내기(crop) 애니메이션을 실행하기 위한 스타일(310) 및 타이밍(306) 요소를 포함한다. "id" 미디어 개체 요소와 관련된 미디어 개체(125)를 정의하는 데이터의 위치는 나타내지 않는다. 아래의 샘플 XML 문서는 예시적으로 제공된 것이고, 구문론적으로 합법적이지 않을 수 있다는 것을 이해할 것이다.
샘플 XML 문서는 "루트"라고 하는 루트 요소에서 시작된다. 루트 요소 다음에, 몇몇 네임스페이스 "xmlns" 필드는 샘플 XML 문서의 구문을 정의하는 다양한 스키마 및 그 안의 컨테이너가 발견될 수 있는 월드 와이드 웹 상의 위치를 나타낸다. 고선명 DVD 영화와 함께 사용하기 위한 XML 문서와 관련하여, 예를 들어, 네임스페이스 필드는 DVD 포럼과 관련된 웹사이트를 나타낼 수 있다.
"id"라고 칭해진 하나의 콘텐트 요소(302)는 "보디(body)"라는 레이블이 붙은 태그에 의해 설명된 컨테이너 내에 정의된다. 콘텐트 요소 "id"와 관련된 스타일 요소(310)(이 예에서 "스타일링(styling)"이라는 레이블 하의 요소)는 "헤드(head)"라는 레이블이 붙은 태그에 의해 설명된 컨테이너 내에 정의된다. 타이밍 요소(306)("타이밍(timing)"이라는 레이블 하의 요소)는 또한 "헤드(head)"라는 레이블이 붙은 태그에 의해 설명된 컨테이너 내에 정의된다.
계속 도 1-3과 관련하여, 도 4는 타이밍 신호 관리 블록(108) 및 타이밍 신호(158)의 다양한 컴포넌트를 더욱 상세하게 도시한 단순화된 기능 블록도이다.
타이밍 신호 관리 블록(108)은 프레젠테이션 시스템(100) 내에서 특정 시간 또는 지속시간을 결정하기 위해 사용되는 클록 및/또는 타이밍 신호의 처리를 책임진다. 도시된 바와 같이, 연속적인 타이밍 신호(401)는 클록 소스(402)에 의해 미리 결정된 속도로 생성된다. 클록 소스(402)는 범용 컴퓨터 또는 특수 목적 전자 장치와 같은 처리 시스템과 관련된 클록일 수 있다. 클록 소스(402)에 의해 생성된 타이밍 신호(401)는 일반적으로 클록 소스(402)가 미리 결정된 속도로 타이밍 신호(401)의 1초만큼의 분량을 생성하는 실제 시간의 1초 내에 현실 세계의 시계에서와 같이 연속적으로 바뀐다. 타이밍 신호(401)는 IC 프레임 속도 계산기(404), A/V 프레임 속도 계산기(406), 시간 참조 계산기(408) 및 시간 참조 계산기(490)에 입력된다.
IC 프레임 속도 계산기(404)는 타이밍 신호(401)에 기초하여 타이밍 신호(405)를 생성한다. 타이밍 신호(405)는 IC 데이터(134)의 프레임이 IC 매니 저(104)에 의해 생성되는 속도를 나타내는 "IC 프레임 속도"라 칭해진다. IC 프레임 속도의 한 예시적인 값은 초 당 30 프레임이다. IC 프레임 속도 계산기(404)는 타이밍 신호(405)를 생성하기 위해 타이밍 신호(401)의 속도를 줄이거나 늘릴 수 있다.
IC 데이터(134)의 프레임은 일반적으로, 각각의 유효 애플리케이션(155) 및/또는 그 페이지에 대해, 관련 사용자 이벤트에 따라 유효 애플리케이션 및/또는 페이지와 관련된 각 미디어 개체(125)의 렌더링을 포함한다. 예시적인 목적을 위해, 유효 애플리케이션은 프레젠테이션 타임라인(130)에 기초하여, 재생 지속시간(292)의 현재 타이틀 시간이 속하는 애플리케이션 프레젠테이션 간격(321)을 갖는 것이다. 애플리케이션은 2개 이상의 애플리케이션 프레젠테이션 간격을 가질 수 있다는 것을 이해할 것이다. 또한, 여기에서는 사용자 입력 또는 자원 이용도에 기초하여 애플리케이션의 상태에 대해 특별한 구별이 이루어지지 않는다는 것을 이해할 것이다.
A/V 프레임 속도 계산기(406)는 또한 타이밍 신호(401)에 기초하여 타이밍 신호(407)인 타이밍 신호를 생성한다. 타이밍 신호(407)는 A/V 데이터(132)의 프레임이 AVC 매니저(102)에 의해 생성되는 속도를 나타내는 "A/V 프레임 속도"라 칭해진다. A/V 프레임 속도는 IC 프레임 속도(405)와 동일하거나 다를 수 있다. A/V 프레임 속도의 한 예시적인 값은 초 당 24 프레임이다. A/V 프레임 속도 계산기(406)는 타이밍 신호(407)를 생성하기 위해 타이밍 신호(401)의 속도를 줄이거나 늘릴 수 있다.
클록 소스(470)는 클립(123)과 관련된 정보가 미디어 소스(들)(161)로부터 생성되는 속도를 관리하는 타이밍 신호(471)를 생성한다. 클록 소스(470)는 클록(402)과 동일한 클록일 수 있고, 또는 클록 소스(402)와 동일한 클록에 기초할 수 있다. 대안적으로, 클록(470 및 402)은 전혀 다를 수 있고, 및/또는 상이한 소스를 가질 수 있다. 클록 소스(470)는 재생 속도 입력(480)에 기초하여 타이밍 신호(471)의 속도를 조정한다. 재생 속도 입력(480)은 재생된 프레젠테이션(127)의 재생 속도에 영향을 미치는 수신된 사용자 입력을 나타낸다. 재생 속도는 예를 들어, 사용자가 영화의 한 부분에서 다른 부분으로 점프할 때("트릭(trick) 플레이"라 칭함), 또는 사용자가 영화를 중지, 느리게 감기, 빨리 감기 또는 느리게 되감기, 또는 빨리 되감기를 할 때, 영향을 받는다. 트릭 플레이는 메뉴(280)(도 2에 도시됨)로부터 선택을 함으로써 또는 다른 방식으로 달성될 수 있다.
시간 참조(452)는 활성 클립(123)과 관련된 특정 프레젠테이션 간격(240) 내에서 경과한 시간의 양을 나타낸다. 여기에서의 설명을 위해, 활성 클립은 프레젠테이션 타임라인(130)에 기초하여, 재생 지속시간(292)의 현재 타이틀 시간이 속하는 프레젠테이션 간격(240)을 갖는 것이다. 시간 참조(452)는 "경과된 클립 재생 시간(들)"로 칭해진다. 시간 참조 계산기(454)는 시간 참조(452)를 수신하여, 미디어 시간 참조(455)를 생성한다. 미디어 시간 참조(455)는 하나 이상의 시간 참조(452)에 기초하여 경과한 재생 지속시간(292)의 총량을 나타낸다. 일반적으로, 2개 이상의 클립이 동시에 재생하고 있을 때, 하나의 시간 참조(452)만이 미디어 시간 참조(455)를 생성하기 위해 사용된다. 미디어 시간 참조(455)를 결정하기 위 해 사용된 특정 클립, 및 미디어 시간 참조(455)가 다수의 클립에 기초하여 결정되는 방법은 구현 선호의 문제이다.
시간 참조 계산기(408)는 타이밍 신호(401), 미디어 시간 참조(455) 및 재생 속도 입력(480)을 수신하고, 타이클 시간 참조(409)를 생성한다. 타이틀 시간 참조(409)는 시간 참조 계산기(408)로의 하나 이상의 입력에 기초하여 재생 지속시간(292) 내에서 경과한 총 시간량을 나타낸다.
시간 참조 계산기(490)는 타이밍 신호(401) 및 타이틀 시간 참조(409)를 수신하고, 애플리케이션 시간 참조(들)(492) 및 페이지 시간 참조(들)(494)을 생성한다. 단일 애플리케이션 시간 참조(492)는 연속적인 타이밍 신호(401)와 관련하여, 특정 애플리케이션 재생 지속시간(320)(도 3과 관련하여 도시되고 설명됨)의 경과된 시간량을 나타낸다. 애플리케이션 시간 참조(492)는 현재의 타이틀 시간이 특정 애플리케이션의 애플리케이션 프레젠테이션 간격(321) 내에 속한다는 것을 시간 참조(409)가 나타낼 때 결정된다. 애플리케이션 시간 참조(492)는 애플리케이션 프레젠테이션 간격(321)의 완료시에 리셋된다(예를 들어, 불활성화되거나 시작된다). 애플리케이션 시간 참조(492)는 또한 사용자 이벤트에 응답하거나, 또는 트릭 플레이가 발생할 때와 같은 기타 상황에서 리셋될 수 있다.
페이지 시간 참조(494)는 연속적인 타이밍 신호(401)와 관련하여, 단일 페이지 재생 지속시간(332, 337)(또한 도 3과 관련하여 도시되고 설명됨)의 경과된 시간량을 나타낸다. 애플리케이션의 특정 페이지에 대한 페이지 시간 참조(494)는 현재의 타이틀 시간이 적용가능한 페이지 프레젠테이션 간격(343) 내에 속한다는 것을 시간 참조(409)가 나타낼 때 결정된다. 페이지 프레젠테이션 간격은 애플리케이션 프레젠테이션 간격(321)의 서브-간격이다. 페이지 시간 참조(들)(494)은 적용가능한 페이지 프레젠테이션 간격(들)(343)의 완료시에 리셋될 수 있다. 페이지 시간 참조(494)는 또한 사용자 이벤트에 응답하거나, 또는 트릭 플레이가 발생할 때와 같은 기타 상황에서 리셋될 수 있다. 애플리케이션 프레젠테이션 간격(321) 및/또는 페이지 프레젠테이션 간격(343)의 서브-간격일 수 있는 미디어 개체 프레젠테이션 간격(345)이 또한 정의될 수 있다는 것을 이해할 것이다.
표 1은 프레젠테이션 시스템(100)에 의해 재생된 프레젠테이션(127)의 재생 동안의 예시적인 사건발생(occurrence), 및 애플리케이션 시간 참조(492), 페이지 시간 참조(494), 타이틀 시간 참조(409) 및 미디어 시간 참조(455)에 미치는 그러한 사건발생의 영향을 도시한 것이다.
사건발생 | 애플리케이션 시간(492) |
페이지 시간(494) |
타이틀 시간(409) |
미디어 시간(455) |
영화 시작 | 애플리케이션이 유효화되지 않는 한/될 때까지 불활성 |
적용가능 페이지가 유효화되지 않는 한/될 때까지 불활성 |
시작 (예를 들어, 0에서) |
시작 (예를 들어, 0에서) |
다음 클립 시작 |
애플리케이션이 유효화되지 않는 한/될 때까지 불활성 |
적용가능 페이지가 유효화되지 않는 한/될 때까지 불활성 |
이전의 타이틀 시간 및 경과된 클립 재생 시간에 기초하여 결정됨 |
리셋/다시 시작 |
다음 타이틀 시작 |
애플리케이션이 유효화되지 않는 한/될 때까지 불활성 |
적용가능 페이지가 유효화되지 않는 한/될 때까지 불활성 |
리셋/다시 시작 | 리셋/다시 시작 |
애플리케이션 유효화 | 시작 | 적용가능 페이지가 유효화될 때 시작 |
계속/효과 없음 | 계속/효과 없음 |
트릭 플레이 | 적용 가능한 애플리케이션이 점프된 타이틀 시간에서 유효화되면 리셋/다시 시작; 그렇지 않으면 불활성화됨 |
적용 가능한 페이지가 점프된 타이틀 시간에서 유효화되면 리셋/다시 시작; 그렇지 않으면 불활성화됨 |
점프된 위치에 기초하여, 프레젠테이션 타임라인 상의 경과된 재생 지속시간에 대응하는 시간으로 전진 또는 후퇴 |
타이틀 내의 점프된 위치에서 활성 클립(들)의 경과된 클립 재생 시간(들)에 대응하는 시간으로 전진 또는 후퇴 |
재생 속도를 N배로 변경 |
계속/효과 없음 | 계속/효과 없음 | N배 빨리 경과 | N배 빨리 경과 |
영화 중지 | 계속/효과 없음 | 계속/효과 없음 | 중지 | 중지 |
영화 재개 | 계속/효과 없음 | 계속/효과 없음 | 재개 | 재개 |
도 5는 애플리케이션 시간 참조(492), 페이지 시간 참조(들)(494), 타이틀 시간 참조(409) 및 미디어 시간 참조(455)에 미치는 재생된 프레젠테이션(127)의 재생 동안의 소정의 사건발생(502)의 영향을 더욱 상세하게 도시한 개략도이다. 사건 발생(502) 및 그 영향은 타이밍 신호(401)와 같은 연속적인 타이밍 신호의 값에 관해 도시된다. 달리 나타내지 않는 한, 고선명 DVD 영화의 특정 타이틀은 정상 속도로 재생되고 있으며, 3개의 연속적으로 제시될 수 있는 페이지를 갖는 단일 애플리케이션은 사용자 상호작용을 제공한다.
타이밍 신호가 0 값을 가질 때 영화는 재생을 시작한다. 타이밍 신호가 10의 값을 가질 때, 애플리케이션은 유효화되고 활성화된다. 애플리케이션의 페이지1과 관련된 페이지 시간(494)뿐만 아니라 애플리케이션 시간(492)은 0의 값을 가정한다. 페이지 2 및 3은 불활성화 상태이다. 타이틀 시간(409) 및 미디어 시간(455)은 둘 다 10의 값을 갖는다.
애플리케이션의 페이지 2는 타이밍 신호 값 15에서 로드한다. 애플리케이션 시간 및 페이지 1 시간은 5의 값을 갖는 반면, 타이틀 시간 및 미디어 시간은 15의 값을 갖는다.
애플리케이션의 페이지 3은 타이밍 신호가 20의 값을 가질 때 로드한다. 애플리케이션 시간은 10의 값을 갖고, 페이지 2 시간은 5의 값을 가지며, 페이지 1 시간은 불활성화 상태이다. 타이틀 시간 및 미디어 시간은 20의 값을 갖는다.
영화는 타이밍 신호 값 22에서 중지한다. 애플리케이션 시간은 12의 값을 갖고, 페이지 3 시간은 2의 값을 가지며, 페이지 1 및 2는 불활성화 상태이다. 타이틀 시간 및 미디어 시간은 22의 값을 갖는다. 영화는 타이밍 신호 값 24에서 재개된다. 그 다음, 애플리케이션 시간은 14의 값을 갖고, 페이지 3 시간은 4의 값을 가지며, 타이틀 시간 및 미디어 시간은 22의 값을 갖는다.
타이밍 신호 값 27에서, 새로운 클립이 시작된다. 애플리케이션 시간은 17의 값을 갖고, 페이지 3 시간은 7의 값을 가지며, 타이틀 시간은 25의 값을 갖고, 미디어 시간은 0으로 리셋된다.
사용자는 타이밍 신호 값 32에서 애플리케이션을 불활성화시킨다. 애플리케이션 시간은 22의 값을 갖고, 페이지 시간은 12의 값을 가지며, 타이틀 시간은 30의 값을 갖고, 미디어 시간은 5의 값을 갖는다.
타이밍 신호 값 39에서, 사용자는 동일한 클립의 다른 부분으로 뒤로 점프한다. 애플리케이션은 점프된 위치에서 유효화되는 것으로 추정되고, 그 후 곧 다시 활성화된다. 애플리케이션 시간은 0의 값을 갖고, 페이지 1 시간은 0의 값을 가지며, 다른 페이지는 불활성화 상태이고, 타이틀 시간은 27의 값을 가지며, 미디어 시간은 2의 값을 갖는다.
타이밍 신호 값(46)에서, 사용자는 영화의 재생 속도를 정상 속도의 2배로 빨리 감기로 변경한다. 빨리 감기는 타이밍 신호 값 53까지 계속된다. 도시된 바와 같이, 애플리케이션 및 페이지 시간은 영화의 재생 속도의 변경에 영향받지 않는 연속적인 타이밍 신호로 일정한 페이스로 계속 변경되는 반면, 타이틀 및 미디어 시간은 영화의 재생 속도에 비례하여 변경된다. 애플리케이션의 특정 페이지가 로드되는 때는 타이틀 시간(409) 및/또는 미디어 시간(455)에 관계가 있다는 것을 알 수 있을 것이다(도 3과 관련하여 설명된 애플리케이션 프레젠테이션 간격(들)(321) 및 페이지 프레젠테이션 간격(들)(343)의 설명 참조).
타이밍 신호 값(48)에서, 새로운 타이틀이 시작되고, 타이틀 시간(409) 및 미디어 시간(455)은 0의 값으로 리셋된다. 초기 타이틀과 관련하여, 이것은 타이틀 시간이 62의 값을 갖고, 미디어 시간이 36의 값을 가질 때 발생한다. 애플리케이션 시간(492) 및 페이지 시간(494)의 리셋팅(도시되지 않음)은 타이틀 시간(409) 및 미디어 시간(455)의 리셋팅을 따른다.
다양한 타임라인으로 액세스하므로, 클록 소스, 타이밍 신호 및 타이밍 신호 참조는 재생된 프레젠테이션(127) 내의 IC 데이터(124)와 A/V 데이터(132)의 프레임 레벨 동기를 달성하고, 그러한 프레임 레벨 동기를 사용자 상호작용 기간 동안 유지하기 위한 프레젠테이션 시스템(100)의 능력을 향상시킨다.
계속 도 1-4와 관련하여, 도 6은 프레젠테이션 콘텐트(120)/재생된 프레젠테이션(127)의 IC 컴포넌트(124) 및 비디오 컴포넌트(122)와 같은 대화형 멀티미디어 프레젠테이션의 대화형 및 비디오 컴포넌트들을 동시에 제시하기 위한, 프레젠테이션 시스템(100)과 같은 대화형 멀티미디어 프레젠테이션 시스템의 능력을 향상시키는 한 가지 방법의 플로우차트이다. 이 방법은 IC 컴포넌트(124)의 재생과 관련된 소정의 액션을 조건부로 트리거하기 위해 선언 형태의 소정의 애플리케이션 명령어의 사용을 수반한다. 액션은 (예를 들어, 사용자 입력에 기초하여) 대화형 멀티미디어 프레젠테이션의 재생 동안에 하나 이상의 미디어 개체의 하나 이상의 특성의 상태에 기초하여 트리거된다.
도 6은 (도 7에 도시되고 그에 수반하는 본문에서 설명된 DOM과 같은) 애플리케이션의 구조적 표현이 환경에서의 상태 변경을 검출한 다음에 그 상태 변경에 대한 응답을 트리거하기 위해 XPATH 쿼리를 사용하여 주기적으로 액세스되는 대화형 멀티미디어 환경 내에서의 상태 변경에 선언적으로 응답하는 한 가지 특정된 예시적인 방법을 도시한 것이다. 이 선언형 방법 이외에, 프로그램식(즉, 명령적인) 이벤트 구동형 방법이 대안적으로 이용된다. 예를 들어, 환경 내의 다른 개체는 특정 상태 변경에 응답하도록 구조화될 수 있다. 프로그램된 구성은 상태 특성이 그러한 개체들에게 상태 변경을 알릴 수 있게 함으로써 응답을 트리거할 수 있게 한다. 그러므로, 상태 변경을 검출하기 위해 DOM을 주기적으로 쿼리하는 것(폴링 형태) 이외에, 긍정적인 이벤트 통지는 특정 요구사항에 의존하여 이용될 수 있고, 예를 들어 개체의 이벤트 처리기를 스크립트, 마크업 API 또는 스크립트 API를 사용하여 적합한 통지 메소드로 넘겨줌으로써 구현될 수 있다. 그 다음, 상태 변경은 상태 특성이 변경될 때 신호된다.
이 방법은 블록(600)에서 시작되고, 블록(602)으로 진행되어, 선언형 언어 명령어를 갖는 애플리케이션이 액세스된다. 소정의 선언형 명령어는 미디어 개체의 특성을 지정한다. 기타 선언형 명령어는 특성의 상태 변경에 기초하여 프레젠테이션의 대화형 콘텐트의 재생 또는 렌더링과 관련된 액션을 지정한다. 대화형 멀티미디어 프레젠테이션의 재생 동안에, 특성은 통상적으로 여러 가지 상이한 상태를 갖게 될 것이다. 즉, 하나 이상의 대화형 애플리케이션이 (대화형 메뉴를 작성하기 위해 또는 기타 대화형 콘텐트를 사용자에게 제공하기 위해) 로드되어 실행될 때, (후술되는 바와 같이) 콘텐트 요소 특성에 의해 정의된 여러 가지 상태는 통상적으로, 변하는 대화형 환경을 반영하도록 변경된다.
블록(604)에서, 아래의 도 7에 도시된 DOM과 같은 애플리케이션의 구조적 표현은 상태 변경을 검출하기 위해 주기적으로 쿼리된다. 관련 상태 변경이 검출될 때, 다이아몬드(606)에서 판정된 바와 같이, 선언형 명령어에 의해 지정된 액션은 블록(608)에서 트리거되고, 블록(604)에서의 주기적 쿼리가 계속된다. 관련 상태 변경이 다이아몬드(606)에서 검출되지 않으면, 블록(604)에서의 주기적 쿼리가 계속된다.
블록(602)과 관련하여, 콘텐트 요소(302), 스타일 요소(310), 미디어 개체 요소(312) 또는 이벤트 요소(360)와 같은 애플리케이션 명령어(304)(도 3에 도시됨) 및 그 특성은 재생된 프레젠테이션(127)의 재생 동안에 추정될 수 있는 특정 미디어 개체(125) 및 관련된 특성 상태(예를 들어, 특성의 값)를 지정하는 일을 한다. 고선명 DVD 영화 애플리케이션에서 나오는 마크업 요소와 함께 사용하기 위한 소정의 특성은 DVD 포럼에 의해 공표된 하나 이상의 XML 스키마에 의해 정의된다. 예시적인 예에서, 특성은 스타일 및 상태 특성을 포함한다.
소정의 특성은 사용자 이벤트와 관련하여 정의될 수 있다. 스타일 특성 또는 상태 특성의 값에 영향을 미칠 수 있는 사용자 이벤트의 한 가지 유형은 제스처 이벤트이다. 제스처 이벤트는 재생된 프레젠테이션(127) 내의 미디어 개체의 프레젠테이션에 영향을 미치는 (키보드, 원격 제어 또는 마우스와 같은 장치로부터의 입력과 같은) 임의의 사용자-개시 액션이다. 일반적인 특성 상태 및 특성의 값, 및 특별한 스타일 또는 상태 특성의 값은 대안적인 또는 이진 상태를 추정할 수 있다. 그러한 대안적인 또는 이진 상태의 예는 참 또는 거짓, 온 또는 오프, 0 또는 1 등을 포함한다. 대안적으로, 특성 상태 및 특성의 값은 문자열 값 또는 숫자 값과 같은 일반적인 값을 추정할 수 있다. 다른 대안에서, 특성 상태 및 특성의 값은 미리 정해진 컬러 집합 내의 특정 컬러를 나타내는 값과 같이, 미리 정해진 집합 내의 값을 추정할 수 있다.
다시 블록(602)과 관련하여, (도 3에 도시된) 애플리케이션 명령어(304) 내에서, 특성 상태의 변경에 기초하여 트리거될 수 있는 IC 컴포넌트(124)의 재생과 관련된 하나 이상의 액션은 그외 다른 선언형 명령어를 사용하여 지정된다. 그러한 액션의 예는 콘텐트 렌더링, 이벤트 발생, 스크립트 실행, 변수 값의 변경 및 기타 액션을 포함한다. 애플리케이션 또는 그 페이지 내에서, 다수의 타이밍 요소가 사용될 수 있고, 타이밍 요소는 동일한 또는 상이한 클록에 동기될 수 있다. 예를 들어, 타이밍 신호(401 및 471)는 타이밍 요소가 동기되는 클록을 설정하기 위해 직접적으로 또는 간접적으로 관련될 수 있다. 예를 들어, 타이밍 신호(401)는 클록 소스(402), IC 프레임 속도 계산기(404), A/V 프레임 속도 계산기(406), 애플리케이션 시간(492) 또는 페이지 시간(494)을 통해 간접적으로 관련될 수 있다. 이와 마찬가지로, 타이밍 신호(471)는 예를 들어, 클록 소스(407), 경과된 클립 재생 시간(들)(452), 시간 참조 계산기(454), 미디어 시간 참조(455), 시간 참조 계산기(408) 또는 타이틀 시간 참조(409)를 통해 간접적으로 관련될 수 있다. 또한, 클록, 타이밍 신호, 시간 참조 계산기 및/또는 시간 참조에 대한 논리적 참조를 수반하는 표현은 또한 타이밍 요소의 동기를 지정하기 위해 사용될 수 있다. 예를 들어, "AND", "OR" 및 "NOT"과 같은 부울 피연산자는 다른 피연산자 또는 그 유형과 함께, 그러한 표현 또는 조건을 정의하기 위해 사용될 수 있다.
다시 도 6의 플로우차트와 관련하여, 블럭(604), 다이아몬드(606) 및 블럭(608)에 나타낸 단계는 프레젠테이션 시스템(100)과 관련하여 설명된다. 프레젠테이션 콘텐트(120)/재생된 프레젠테이션(127)의 재생 동안에, (콘텐트 요소(302), 타이밍 요소(306), 스타일 요소(310), 미디어 개체 요소(312), 이벤트 요소(360) 및/또는 특성(및 선택적으로 특성의 특성)과 같은) 특정 애플리케이션(155)과 관련된 선언형 언어 명령어의 상태는 애플리케이션의 구조적 표현 내에 유지된다. 그러한 구조적 표현의 한 예는 DOM이다. DOM의 구조 및 기능은 W3C에 의해 발표된 하나 이상의 사양에 의해 설명된다.
도 7은 루트 노드, 요소 노드(704), 특성 노드(706) 및 텍스트 노드(708)인 문서 노드(702)를 포함하는 몇 가지 유형의 노드의 나무형 계층이다. 종종, 타이밍 데이터 구조는 DOM 내의 콘텐트 데이터 구조로부터 분리된다. DOM(700)의 구조는 단지 예시적으로 제시된 것이다. 임의의 요소는 특성 또는 특성 자체를 포함하는 텍스트를 가질 수 있다는 것을 이해할 것이다.
애플리케이션이 로드될 때, 그 마크업은 DOM을 생성하기 위해 로드되어 파싱된다. 애플리케이션이 대화형 환경에서 실행되고, 사용자가 애플리케이션과 대화하며, 이벤트가 발화되고, 스크립트가 실행되는 등등에 따라, 상태 특성을 포함하는 환경의 다양한 양상들이 바뀌는데, 이것은 DOM에 대한 변경으로서 반영된다. 따라서, 애플리케이션이 처음 시작될 때 최초에 로드된 DOM은 그 애플리케이션의 수명 동안에 동적으로 유지되는 "라이브(live)" DOM과 통상적으로 다르다.
DOM(700)(또는 그 부분들)은 (스타일 특성 또는 디스플레이 특성과 같은) 특성 노드가 특정 값을 가질 때를 판정하기 위해 XPATH 쿼리 또는 다른 유형의 쿼리(예를 들어, XQUERY)를 사용하여 주기적으로 쿼리될 수 있다. 한 구현에서, XPATH 쿼리는 특성 노드가 값을 변경할 때를 판정한다. 상술된 바와 같이, 특성은 이진 값, 숫자 값, 문자열 값, 또는 다른 유형의 값을 가질 수 있다. 특성 노드들(각각 DOM(700) 내에 노드(704 및 706)로 나타냄)은 대화형 멀티미디어 프레젠테이션이 재생될 때 및/또는 사용자 이벤트와 같은 이벤트에 응답하여, 특정 값으로 변한다. 한 구현에서, XPATH 쿼리는 쿼리된 값에 기초하여 참 또는 거짓으로 변한다. 이러한 방식으로, 특정 미디어 개체에 대한 실제 시간 간격이 형성될 수 있고, XPATH는 콘텐트 데이터 구조 내의 정보를 조회 및/또는 모니터하기 위해 타이밍 구조 내에서 유리하게 사용될 수 있다. 쿼리는 하나 이상의 특성 노드 상에서 동시에 실행될 수 있고, 특성에 대한 논리적 참조를 수반하는 표현 또는 조건은 또한 쿼리를 정의하기 위해 사용될 수 있다. 예를 들어, "AND", "OR" 및 "NOT"과 같은 부울 피연산자는 다른 피연산자 또는 그 유형과 함께, 그러한 표현 또는 조건을 정의하기 위해 사용될 수 있다. 몇몇 경우에, 소정의 주기적인 쿼링을 스킵하는 것이 가능할 수도 있다. 예를 들어, 쿼리 결과 및/또는 다른 정보의 분석에 기초하여, 쿼리 결과가 변하지 않을 기간이 식별될 수 있고, 쿼링은 그들 기간 동안에 스킵되었다.
XPATH 쿼리는 타이밍 신호(401) 또는 타이밍 신호(471)에서와 같은 타이밍 신호에 기초한 속도로 DOM 상에서 실행될 수 있다. 타이밍 신호(401 및 471)는 DOM이 쿼리되는 시간을 설정하기 위해 직접적으로 또는 간접적으로 관련될 수 있다는 것을 이해할 것이다. 예를 들어, 타이밍 신호(401)는 클록 소스(402), IC 프레임 속도 계산기(404), A/V 프레임 속도 계산기(406), 애플리케이션 시간(492) 또는 페이지 시간(494)을 통해 간접적으로 관련될 수 있다. 이와 마찬가지로, 타이밍 신호(471)는 예를 들어, 클록 소스(407), 경과된 클립 재생 시간(들)(452), 시간 참조 계산기(454), 미디어 시간 참조(455), 시간 참조 계산기(408) 또는 타이틀 시간 참조(409)를 통해 간접적으로 관련될 수 있다. 또한, 클록, 타이밍 신호, 시간 참조 계산기 및/또는 시간 참조에 대한 논리적 참조를 수반하는 표현은 또한 쿼리가 DOM 상에서 실행되는 때를 정의하기 위해 사용될 수 있다. 예를 들어, "AND", "OR" 및 "NOT"과 같은 부울 피연산자는 다른 피연산자 또는 그 유형과 함께, 그러한 표현 또는 조건을 정의하기 위해 사용될 수 있다.
특정 액션이 DOM의 쿼리를 통해 검출된 상태 변경에 의해 트리거될 때, 적절한 콘텐트가 액세스되고, 액션에 관련된 명령어가 실행된다. 예를 들어, 외부 이벤트 처리기는 일반적으로 이벤트-관련 콘텐트를 액세스하고, 이벤트에 관련된 명령어의 실행을 준비한다. 트리거된 액션에 관련된 명령어의 실행으로부터 비롯된 작업 항목(도시되지 않음)은 쿼리(들)(도시되지 않음) 내에 배치되고, IC 프레임 속도(405)에 의해 제공된 속도와 같은 미리 결정된 속도로 실행된다. 작업 항목의 성능으로부터 비롯된 IC 데이터(134)(예를 들어, 사용자 입력에 따른 특정 미디어 개체의 렌더링)는 믹서/렌더러(110)에 전송된다. 믹서/렌더러(110)는 사용자를 위한 재생된 프레젠테이션(127)의 대화형 부분을 생성하기 위해 그래픽 평면 내에 IC 데이터(134)를 렌더링한다.
그러므로, 애플리케이션은 미디어 개체의 특정 특성의 상태를 지정하는 소정의 선언형 언어 명령어, 및 특성의 상태 변경에 기초하여 대화형 멀티미디어 프레젠테이션의 대화형 콘텐트의 재생과 관련된 (미디어 개체의 렌더링, 이벤트 발생, 변수 변경, 및 기타 액션과 같은) 액션을 지정하는 다른 선언형 언어 명령어를 제공한다. 대화형 콘텐트의 재생과 관련된 액션은 상태 변경을 검출하기 위해 애플리케이션의 구조적 표현을 주기적으로 쿼리함으로써 조건부로 트리거될 수 있다. XPATH 기능은 그러한 상태 변경을 검출하기 위한 DOM의 쿼리에 아주 적합하다.
따라서, 대화형 멀티미디어 환경에서의 상태 변경에 반응하도록 애플리케이션에 의해 발생된 그래픽에 능력을 제공하기 위해, 마크업 요소는 상태 특성을 포함하도록 되어 있다. 그러한 상태 특성은 상술된 바와 같이 DOM의 사용을 통해 애플리케이션에 노출된다. 예시적인 예에서, 상태 특성은 표 2에 나타낸 것들을 포함한다.
이름 | 선택된 값 | 초기 값 | 값 설정 규칙 |
포그라운드 (Foreground) |
참 또는 거짓 | 거짓 | 애플리케이션이 맨 앞일 때 참; 그렇지 않으면 거짓 |
포커스드 (Focused) |
참 또는 거짓 | 거짓 | 활성화 제스터 후에 참; 다른 요소가 포커스드 참으로 변경될 때 또는 삭제 제스처가 수신되는 경우에 거짓 |
포인터 (Pointer) |
참 또는 거짓 | 거짓 | 커서 "핫스폿"이 요소의 가시 부분과 교차할 때 참; 그렇지 않으면 거짓(커서가 인에이블될 때만 발생) |
액션드 (Actioned) |
참 또는 거짓 | 거짓 | 활성화 제스터 동안에 참; 그렇지 않으면 거짓 |
인에이블드 (Enabled) |
참 또는 거짓 | 참 | 스크립트에 의해 변경되지 않는 한 항상 참 |
값 (Value) |
설명 참조 | 설명 참조 | 버튼 및 영역 요소에 대해: 초기에 거짓, 요소의 모든 활성화시에 토글; 입력 요소에 대해: 초기에 제작자에 의해 설정된 값; 마크업 DOM 내에 지정되지 않으면 디폴트 값은 빈 문자열 |
표 2의 1열은 6개의 상태 특성을 열거한다. 2열은 특성이 취할 수 있는 값을 열거한다. 이 예시적인 예에서, "값"을 제외한 모든 특성은 참 또는 거짓의 부울 값을 이용하도록 되어 있다. 값 특성은 통상적으로 텍스트를 사용하거나, 또는 그 값에 대해 사용자로부터 입력된 기타 비-부울 정보를 사용한다.
애플리케이션 제작자는 3열에 나타내는 바와 같이, 상태 특성에 대한 초기 값을 설정할 수 있다. 그러나, 값은 상술된 제스처 이벤트의 수신을 통한 사용자 상호작용에 기초하여 변경된다. 특히, 포그라운드, 포인터 및 액션드의 상태 특성은 프레젠테이션 시스템(100)에 의해 변경되고, 마크업 또는 스크립트에 의해 변경되지 않을 것이다. 즉, 프레젠테이션 시스템(100)의 액션은 마크업 및 스크립트를 무시한다. 그러나, 포커스드, 인에이블드 및 값의 상태 특성은 마크업 또는 스크립트에 의해 설정될 수 있고, 그렇게 설정된 값은 프레젠테이션 시스템(100)에 의해 다르게 설정되었을 값을 무시할 것이다. 그리고, 특히, 스트립트는 프레젠테이션 시스템(100) 내에 배치된 애니메이션 엔진으로 제어를 다시 넘기도록, 스크립트 API를 통해 구현된 "미설정" 명령어를 통해 달리 명시적으로 지시되지 않는 한, 포커스드 및 인에이블드의 상태 특성을 무시할 수 있다. 그러므로, 특성 값의 변경을 관리하는 규칙은 우선순위를 설정함으로써 잘 정해진 제어 순서를 설정하고, 표 2의 4열에 요약된다.
이 예시적인 예에서, 제스처 이벤트는 마크업 처리를 사용하여 처리된다. 다른 종류의 이벤트는 스크립트 처리에 의해 관리된다. 제스처 이벤트의 매핑은 상태 특성에 의해 설명된 상태 속성에 기초한 스타일 및 타이밍 표현을 통해 마크업에서 처리된다. 제스처 이벤트는 먼저 제스처의 시간을 애플리케이션 시간(예를 들어, 애플리케이션 시간 참조(492))로 변환한 다음에 DOM 내의 임의의 영향받은 요소의 상태 속성을 변경함으로써, 프레젠테이션 시스템(100)에 의해 처리된다. 제스처 이벤트들이 마크업에 의해 처리되는 동안, 그들은 여전히 적절한 이벤트 리스너(listener)를 설정함으로써 스크립트로 전파될 수 있다.
도 6의 방법이 재생된 프레젠테이션(127) 내의 IC 데이터(134)/IC 컴포넌트(124)의 특정 미디어 개체(125)를 제시하기 위해 프레젠테이션 시스템(100) 내에서 사용할 수 있는 방식의 한 예가 제공된다. 설명을 위해, 재생된 프레젠테이션(127)은 고선명 DVD 영화이고, 미디어 개체는 버튼 그래픽이며, 대화성은 영화의 최소한 몇몇 부분과 동시에, (도 2에 도시된) 메뉴(280) 내의 사용자 선택가능 항목으로서 버튼 그래픽을 제시하는 애플리케이션(155)에 의해 제공된다고 하자.
애플리케이션은 상태 특성 "포커스드"를 갖는 "마이버튼(Mybutton)"이라고 하는 버튼 그래픽으로서 배열된 콘텐트 요소를 포함한다. 포커스드 상태 특성은 사용자의 제스처 이벤트에 기초하여 포커스된 그리고 포커스되지 않은 상태(즉, 참조 또는 거짓)를 취할 수 있다.
표 2에 나타낸 바와 같이, Mybutton과 같은 콘텐트 요소는 활성화 제스처가 수신된 후에 포커스된다. 그러한 활성화 제스처는, 예를 들어 버튼 그래픽 주위의 미리 정해진 영역("범위"라 함) 내로 커서의 팁을 내가 이동시키는 Mybutton의 "핫스폿" 영역을 사용자가 조작할 때 수신된다. 다른 방식은, 예를 들어 포커스를 갖도록 콘텐트 요소를 조작하기 위해, 키보드를 사용하여 콘텐트 요소 상태 특성을 참으로 변경하도록 활성화 제스터를 작성하는 것이다.
콘텐트 요소는 포커스될 때, 그 상대 표시 순서에 관계없이 사용자 입력(예를 들어, 버튼 푸시, 선택, 활성화, 텍스트 입력 등)과 같은 포커스 이벤트를 수신한다. "Z 순서"라고 하는 이 순서는 디스플레이 상의 콘텐트 요소와 관련된 그래픽의 계층화를 나타낸다. N 그래픽 개체의 그룹의 경우에, Z 순서 = 0은 그래픽이 가장 멀리서 나타난다는 것을 의미하는 반면, Z 순서 = N-1을 갖는 그래픽은 디스플레이 상에서 다른 모든 그래픽의 위에 나타난다는 것을 의미한다. 그러므로, 많은 경우에, 포커스된 콘텐트 요소는 디스플레이 상의 최상위 개체일 때 Z 순서 = N-1을 가질 것이고, 통상적으로 사용자와의 상호작용을 시작하고 사용자 이벤트를 수신하는 것일 수 있다. 그러나, 포커스드 상태 특성을 갖는 콘텐트 요소는 항상 최고 Z 순서를 가져야 하는 것은 아니다. 또한, 기껏해야 한번에 하나의 콘텐트 요소가 포커스를 갖는다. 마크업이 포커스드 상태를 갖도록 2개 이상의 콘텐트 요소를 지정하는 경우에, 사전적으로 나중의 요소가 우선순위를 갖는다. 이 예시적인 예에서, 콘텐트 요소의 포커스드 상태를 변경하기 위해 스타일, 애니메이션 또는 XML 애플리케이션 프로그래밍 인터페이스("API")를 사용할 수도 있다.
일단 콘텐트 요소의 상태 특성이 참으로 설정되면, 그 상태는 유지된다. 그러므로, 콘텐트 요소는 2가지 경우에: 즉 사용자가, 예를 들어 메뉴(280)로부터 다른 메뉴 항목을 선택함으로써, 포커스드 상태로 이동하도록 상이한 콘텐트 요소를 선택할 때, 및 포인터 장치가 요소의 범위 내로 이동하고, 삭제 제스처가 수신될 때, 포커스되지 않는다(즉, 그 포커스드 특성은 거짓이다). 그러한 삭제 제스처 후에는 포커스드 상태 특성을 갖는 콘텐트 요소는 하나도 없다.
표 2에 나타낸 바와 같이, 액션드 상태는 초기에 거짓으로 설정된다. 액션드 상태는 콘텐트 요소를 목표로 하는 활성화 제스처의 시작 시에 참으로 변경되고, 활성화 제스처가 끝난 후에 거짓으로 돌아간다. 그러한 활성화 제스처는 통상적으로 포인터 장치(예를 들어, 원격 제어 또는 마우스)를 사용하거나 키보드로 발생된다. 포인터 장치의 경우에, 포인터 장치로부터의 활성화 제스처는 (마우스 버튼의 푸시와 같은) 포인터-다운 이벤트로 시작되고, (마우스 버튼 해제와 같은) 포인터-업 이벤트까지 계속된다. 키보드에 의해 전달된 활성화 제스처는 1 틱(tick)의 지속시간을 갖는다.
또한, 콘텐트 요소 상의 사용자 활성화 제스처를 시뮬레이션하기 위해 스타일, 애니메이션 또는 XML API를 사용하여 콘텐트 요소의 액션드 상태를 프로그램 명령어로 변경할 수 있다. 실제 또는 시뮬레이션 활성화 제스처의 두 가지 경우에, 액션드 이벤트는 그 요소의 액션드 상태 특성을 변경함으로써 참과 같은 포커스드 상태 특성을 갖는 단일 콘텐트 요소로 전달된다.
콘텐트 요소의 포인터 상태는 초기에 거짓이다. 값은 커서 핫스폿이 콘텐트 요소와 교차할 때마다 참으로 변경된다. 그렇지 않으면, 값은 거짓으로 설정된다. 그러나, 이 행위는 단지, 커서가 비활성 미디어 프레젠테이션 내에서 사용가능하게 된 시간 동안에만 발생한다. 그러므로, 포인터 이동 이벤트는 포인터 상태 특성을 참으로 변경함으로써 포인터를 포함하는 요소를 포함하는 단일 애플리케이션으로 전달된다. 그러한 포인터 이동 이벤트는 애플리케이션의 Z 순서에 관계없이 전달된다. 포인터 클릭 이벤트는 요소가 포커스를 갖는 지의 여부에 관계없이 포인터를 포함하는 애플리케이션 내의 요소로 전달된다. 콘텐트 요소가 포커스를 수신할 수 있으면, 이것은 포인터 클릭의 결과로서 발생할 것이다. 콘텐트 요소가 액션화될 수 있으면, 그것은 포인터 클릭의 결과로서 액션화될 것이다.
포그라운드 상태 특성은 애플리케이션의 Z 순서가 가장 앞의 애플리케이션일 때마다(즉, 최고 Z 순서를 가질 때마다) 프레젠테이션 시스템(100)에 의해 참으로 설정된다. 그것은 애플리케이션이 Z 순서 내의 다른 곳에 위치할 때마다 거짓으로 설정된다. 포그라운드 이벤트는 포그라운드 상태 특성을 참으로 변경함으로써 포커스를 얻거나 잃을 때 애플리케이션으로 전달된다.
인에이블드 상태 특성은 디폴트에 의해 참으로 설정된다. 프레젠테이션 시스템(100)의 액션은 인에이블드 상태 특성을 바꾸지 않을 것이다. 그러나, 스타일, 애니메이션 또는 XML API는 콘텐트 요소의 인에이블드 상태를 거짓으로 변경할 수 있다. 거짓일 때, 콘텐트 요소는 포커스를 수신할 수 없다.
값을 작성하기 위해 사용자 입력 텍스트에 의해 발생된 것들과 같은 값 이벤트들은 콘텐트 요소에 대한 값 상태 특성을 변경함으로써 그 값이 변경되는 콘텐트 요소를 포함하는 애플리케이션에 전달된다. 그러한 이벤트는 Z 순서에 관계없이 애플리케이션에 전달된다. 콘텐트 요소의 값 상태는 스타일, 애니메이션 또는 XML API를 사용하여 변경될 수 있고, 값 상태는 개체 유형에 의존한다.
입력, 영역 및 버튼 콘텐트 요소는 통상적으로 사용자 이벤트에 응답하는 사용자 입력 개체를 나타내기 위해 사용된다. 영역 콘텐트 요소는 활성화 면에서 버튼처럼 동작하지만, 모양 및 그외 다른 파라미터 면에서 정의가능하다. 영역 및 버튼과 관련된 콘텐트 요소는 표 2에 나타낸 바와 같이 초기에 거짓의 값으로 설정된다. 그 값은 콘텐트 요소의 액션드 상태 특성이 참으로 변경될 때 토글한다.
입력 또는 개체 콘텐트 요소에 대한 값 상태 특성의 값은 임의의 원하는 값으로 초기화된다. 디폴트는 빈 문자열이다. 값 상태는 콘텐트 요소의 포커스 상태가 거짓에서 참으로 변경될 때, 사용된 특정 입력 장치에 의존하여, 편집가능하게 된다.
특정 제스터 이벤트에 기초하여 참 또는 거짓일 수 있는 상술된 "포커스드"라고 하는 상태 특성을 갖고 있는 콘텐트 요소와 관련된, 예를 들어 Mybutton과 관련된 미디어 개체의 렌더링을 조건부로 트리거하기 위해 사용할 수 있는 선언형 언어 명령어를 나타낸 의사 코드는 아래와 같이 표시된다:
"파(par)" 타이밍 요소는 "Mybutton" 요소와 관련된 미디어 개체를 렌더링하는 액션을 설명한다는 것을 알 수 있다. 액션은 Mybutton 요소의 포커스드 특성을 나타내는 DOM 노드의 쿼리가 참으로 될 때 트리거되고(즉, 미디어 개체가 렌더링되고), 액션은 Mybutton 요소의 포커스드 특성을 나타내는 DOM 노드의 쿼리가 거짓으로 될 때 정지된다(즉, 미디어 개체가 렌더링되지 않는다). 이 예에서, 렌더링가능한 미디어 개체는 상태의 수를 추정하도록 구성된 특성을 갖는 것과 동일한 미디어 개체이지만, 렌더링가능한 미디어 개체(들)은 서로 다를 수 있다.
도 6에 도시된 프로세스(들)은 도 8과 관련하여 후술되는 프로세서(802)와 같은 하나 이상의 범용, 다용도, 또는 단일 용도 프로세서로 구현될 수 있다. 구체적으로 나타내지 않는 한, 여기에 설명된 방법은 특정 순서 또는 시퀀스에 제한되지 않는다. 또한, 설명된 방법 또는 그 요소의 몇몇은 동시에 발생하거나 실행될 수 있다.
도 8은 프레젠테이션 시스템(100)의 다양한 기능 컴포넌트를 구현하기 위해 사용될 수 있거나, 그 컴포넌트에 의해 액세스될 수 있거나, 그 컴포넌트 내에 포함될 수 있는 소정의 기능적 컴포넌트를 도시한 범용 컴퓨팅 유닛(800)의 블록도이다. 컴퓨팅 유닛(800)의 하나 이상의 컴포넌트는 IC 매니저(104), 프레젠테이션 매니저(106) 및 AVC 매니저(102)를 구현하기 위해 사용될 수 있거나, 그 매니저들에 의해 액세스될 수 있거나, 그 매니저들 내에 포함될 수 있다. 예를 들어, 도 8의 하나 이상의 컴포넌트는 여러 방식으로 (전체적으로 또는 부분적으로) 프레젠테이션 시스템(100)의 기능을 구현하기 위해 함께 또는 따로 패키징될 수 있다.
프로세서(802)는 컴퓨터 판독가능 매체(804) 및 컴퓨터 프로그램(806)에 응답한다. 실제 또는 가상 프로세서일 수 있는 프로세서(802)는 컴퓨터 실행가능 명령어를 실행함으로써 전자 장치의 기능을 제어한다. 프로세서(802)는 특정 프로세스를 실행하기 위해 어셈블리, 컴파일드 또는 기계-레벨에서 명령어를 실행할 수 있다. 그러한 명령어는 소스 코드 또는 임의의 다른 공지된 컴퓨터 프로그램 설계 도구를 사용하여 작성될 수 있다.
컴퓨터 판독가능 매체(804)는 프로세서(802)에 의해 실행가능한 명령어와 같은 컴퓨터 판독가능 데이터를 기록, 저장 또는 전송할 수 있는 지금 공지된 또는 나중에 개발되는 임의의 형태의 로컬 또는 원격 장치의 임의의 수 및 조합을 나타낸다. 특히, 컴퓨터 판독가능 매체(804)는 반도체 메모리(이를테면, 예를 들어, ROM, 임의 유형의 PROM, RAM 또는 플래시 메모리); 자기 저장 장치(이를테면, 플로피 디스크 드라이브, 하드 디스크 드라이브, 자기 드럼, 자기 테이프 또는 광자기 디스크); 광 저장 장치(이를테면, 임의 유형의 콤팩트 디스크 또는 DVD); 버블 메모리; 캐시 메모리; 코어 메모리; 홀로그래픽 메모리; 메모리 스틱; 종이 테이프; 펀치 카드; 또는 이들의 임의의 조합일 수 있고, 또는 이들을 포함할 수 있다. 컴퓨터 판독가능 매체(804)는 또한 송신 매체 및 그와 관련된 데이터를 포함할 수 있다. 송신 매체/데이터의 예는 피변조 반송파 신호에 의해 전달된 패킷화된 또는 패킷화되지 않은 데이터와 같은 임의 형태의 유선 또는 무선 송신으로 구현된 데이터를 포함하지만 이것에 제한되는 것은 아니다.
컴퓨터 프로그램(806)은 데이터에 관한 미리 결정된 동작을 전자적으로 제어하는 임의의 신호 처리 방법 및 저장된 명령어를 나타낸다. 일반적으로, 컴퓨터 프로그램(806)은 컴포넌트 기반의 소프트웨어 개발을 위한 잘 알려진 실시에 따라 소프트웨어 컴포넌트로서 구현되고, (컴퓨터 판독가능 매체(804)와 같은) 컴퓨터 판독가능 매체 내에 인코딩된 컴퓨터 실행가능 명령어이다. 컴퓨터 프로그램은 다양한 방식으로 결합되거나 배포될 수 있다.
프레젠테이션 시스템(100)과 관련하여 설명된 기능/컴포넌트는 컴퓨터 프로그램의 임의의 특정 실시예에 의한 구현에 제한되지 않는다. 오히려, 기능은 데이터를 전달하거나 변환하는 프로세스이고, 일반적으로 프레젠테이션 시스템(100)의 기능적 구성요소의 임의의 조합에 위치하거나 그것에 의해 액세스되는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 실행되거나 그것에 의해 구현될 수 있다.
계속 도 8과 관련하여, 도 9는 프레젠테이션 시스템(100)의 전부 또는 일부가 구현되거나 사용될 수 있는 운영 환경(900)의 예시적인 구성의 블록도이다. 운영 환경(900)은 일반적으로 광범위한 각종 범용 또는 특수 목적 컴퓨팅 환경을 나타낸다. 운영 환경(900)은 적합한 운영 환경의 일례에 불과하며, 여기에서 설명된 시스템(들) 및 방법들의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 예를 들어, 운영 환경(900)은 퍼스널 컴퓨터, 워크스테이션, 서버, 휴대 장치, 랩톱, 태블릿과 같은 컴퓨터 유형이거나, 또는 지금 공지된 또는 나중에 개발되는 광 미디어 플레이어 또는 다른 유형의 미디어 플레이어, 또는 그것의 임의의 양상과 같은 임의의 다른 유형의 전자 장치와 같은 컴퓨터 유형일 수 있다. 예를 들어, 운영 환경(900)은 분산된 컴퓨팅 네트워크 또는 웹 서비스일 수도 있다. 운영 환경(900)의 특수한 예는 고선명 DVD 영화의 재생을 용이하게 하는 DVD 플레이어 또는 그와 관련된 운영 체계와 같은 환경이다.
도시된 바와 같이, 운영 환경(900)은 프로세서(802), 컴퓨터 판독가능 매체(804) 및 컴퓨터 프로그램(806)을 포함하는 컴퓨팅 유닛(800)의 컴포넌트를 포함하거나 액세스한다. 저장 장치(904)는 광 디스크 드라이브(906)에 의해 처리되는 광 디스크와 같은 운영 환경(900)과 특별히 관련된 추가적인 또는 상이한 컴퓨터 판독가능 매체를 포함한다. 잘 알려지고 널리 이용가능한 구성요소인 하나 이상의 내부 버스(920)는 컴퓨팅 환경(900) 또는 그 구성요소 내에, 그곳으로 또는 그곳으로부터 데이터, 주소, 제어 신호 및 기타 정보를 전달하기 위해 사용될 수 있다.
입력 인터페이스(들)(908)은 컴퓨팅 환경(900)에 입력을 제공한다. 입력은 사용자 인터페이스와 같은 임의 유형의 지금 알려진 또는 나중에 개발되는 인터페이스를 사용하여 수집될 수 있다. 사용자 인터페이스는 원격 제어, 디스플레이, 마우스, 펜, 스타일러스, 트랙볼, 키보드, 마이크, 스캐닝 장치, 및 입력 데이터가 사용되는 모든 유형의 장치와 같은 터치-입력 장치일 수 있다.
출력 인터페이스(들)(910)은 컴퓨팅 환경(900)으로부터 출력을 제공한다. 출력 인터페이스(들)(910)의 예는 디스플레이, 프린터, 스피커, 드라이브(이를테면, 광 디스크 드라이브(906) 및 기타 디스크 드라이브) 등을 포함한다.
외부 통신 인터페이스(들)(912)은 채널 신호, 데이터 신호 또는 컴퓨터 판독가능 매체와 같은 통신 매체를 통해 다른 엔티티로부터 정보를 수신하거나, 다른 엔티티로 정보를 송신하기 위한 컴퓨팅 환경(900)의 능력을 향상시키기 위해 이용할 수 있다. 외부 통신 인터페이스(들)(912)은 관련된 네트워크 지원 장치 및/또는 소프트웨어 또는 인터페이스와 함께, 케이블 모뎀, 데이터 단말기 장치, 미디어 플레이어, 데이터 저장 장치, PDA, 또는 임의의 다른 장치 또는 컴포넌트/그 조합일 수 있고, 또는 그들을 포함할 수 있다.
도 10은 프레젠테이션 시스템(100) 또는 운영 환경(900)이 사용될 수 있는 클라이언트-서버 아키텍처(1000)의 단순화된 기능도이다. 프레젠테이션 시스템(100) 및/또는 운영 환경(900)의 하나 이상의 실시양상은 아키텍처(100)의 클라이언트측(1002) 또는 아키텍처(1000)의 서버측(1004) 상에 나타내질 수 있다. 도시된 바와 같이, (임의 유형의, 예를 들어 유선 또는 무선의, 임의의 공용 또는 사설 네트워크일 수 있는) 통신 프레임워크(1003)는 클라이언트측(1002)과 서버측(1004) 사이의 통신을 용이하게 한다.
클라이언트측(1002)에서, 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있는 하나 이상의 클라이언트(1006)는 클라이언트 데이터 저장소(1008)에 응답한다. 클라이언트 데이터 저장소(1008)는 클라이언트(1006)에 국한된 정보를 저장하기 위해 이용된 컴퓨터 판독가능 매체(804)일 수 있다. 서버측(1004)에서, 하나 이상의 서버(1010)는 서버 데이터 저장소(1012)에 응답한다. 클라이언트 데이터 저장소(1008)와 같이, 서버 데이터 저장소(1012)는 서버(1010)에 국한된 정보를 저장하기 위해 이용된 하나 이상의 컴퓨터 판독가능 매체(804)를 포함할 수 있다.
오디오/비디오 콘텐트와 동시에 사용자에게 대화형 콘텐트를 제시하기 위해 사용되는 대화형 멀티미디어 프레젠테이션 시스템의 다양한 실시양상이 설명되었다. 대화형 멀티미디어 프레젠테이션은 일반적으로 재생 지속시간, 가변적인 재생 속도, 비디오 컴포넌트 및 IC 컴포넌트를 갖는 것으로 설명되었다. 그러나, 상기 컴포넌트 전부가 사용될 필요도 없고, 컴포넌트가 사용시에 동시에 제시되어야 하는 것도 아니라는 것을 이해할 것이다. 프레젠테이션 시스템(100)과 관련하여 컴퓨터 프로그램인 것으로 설명된 기능/컴포넌트는 컴퓨터 프로그램의 임의의 특정 실시예에 의한 구현에 제한되지 않는다. 오히려, 기능은 데이터를 전달하거나 변환하는 프로세스이고, 일반적으로 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 실행되거나 구현될 수 있다.
여기에서 주제는 구조적 특징 및/또는 방법적 액트에 특정된 언어로 설명되었지만, 청구범위에 정의된 주제는 상술된 특정 특징 또는 액트에 반드시 제한되는 것은 아니라는 것을 또한 이해할 것이다. 오히려, 상술된 특정 특징 및 액트는 청구범위를 구현하는 예시적인 형태로 개시된다.
또한, 한 요소가 다른 요소에 응답하는 것으로 나타내질 때, 그 요소들은 직접적으로 또는 간접적으로 결합될 수 있다는 것을 이해할 것이다. 여기에서 설명된 접속은 요소들 사이의 커플링 또는 통신 인터페이스를 달성하기 위해 실제로 물리적 또는 논리적 접속일 수 있다. 접속은 다른 방법들 중에서, 소프트웨어 프로세스들 사이의 프로세스간 통신, 또는 네트워크화된 컴퓨터들 사이의 기계간 통신으로서 구현될 수 있다.
"예시적"이라는 말은 여기에서 하나의 예, 사례 또는 예증으로서 쓰인다는 의미로 사용된다. "예시적인" 것으로 여기에서 설명된 임의의 구현 또는 그 실시양상은 반드시 기타 구현 및 그 실시양상보다 양호하거나 유리한 것으로 구성된다는 것은 아니다.
이해되는 바와 같이, 상술된 특정 실시예 이외의 실시예가 첨부된 청구범위의 정신 및 범위를 벗어나지 않고서 고안될 수 있으며, 본 발명의 주제의 범위는 다음의 청구범위에 의해 결정될 수 있다.
Claims (20)
- 애플리케이션이 상태 변경에 응답하도록 하는 방법으로서,상기 애플리케이션은, 마크업(markup) 컴포넌트 및 적어도 하나의 스크립트(script) 컴포넌트를 포함하고, 대화형 멀티미디어 환경에서 비디오 스트림과 동기되는(synchronous) 하나 이상의 그래픽 요소를 제공하며,상기 방법은,사용자에 의해 발생된 이벤트에 응답하여, 상기 마크업 컴포넌트 내의 콘텐트 요소의 적어도 하나의 상태 특성(state attribute)을 변경하는 단계;문서 개체 모델(document object model: DOM)을 생성하기 위하여 상기 마크업 컴포넌트를 파싱하는(parsing) 단계;상기 적어도 하나의 상태 특성을 검색하기 위하여 상기 DOM을 주기적으로 쿼리하는(periodically querying) 단계; 및상기 주기적인 쿼리에 응답하여 프로세싱을 트리거함으로써 상기 상태 변경에 응답하는 단계를 포함하고,상기 쿼리 결과에 기초하여, 상기 쿼리 결과가 변하지 않을 기간(periods of time)이 식별되어, 상기 기간 중에 쿼리가 스킵되는,애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제1항에 있어서, 상기 주기적인 쿼리는 XPATH 쿼리(query)를 사용하여 실행되는, 애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제2항에 있어서, 상기 대화형 멀티미디어 환경에서의 시간은 일련의 틱들(ticks)을 사용하여 카운트되고, 상기 XPATH 쿼리는 각각의 틱에서 실행되는, 애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제1항에 있어서, 상기 대화형 멀티미디어 환경은 HD-DVD, 블루-레이(Blu-Ray), EVD(Enhanced Versatile Disc), DMD(Digital Multilayer Disc), HVD(Holographic Versatile Disc), VMD(Versatile Multilayer Disc) 중 하나로부터 선택된 광 미디어의 사용을 통해 적어도 부분적으로 제공된 고선명 DVD 환경을 포함하는,애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제1항에 있어서, 상기 적어도 하나의 상태 특성은 포그라운드(foreground), 포커스드(focused), 포인터(pointer), 액션드(actioned), 인에이블드(enabled) 또는 값(value) 중 하나로부터 선택되는, 애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제5항에 있어서, 값을 제외한, 상기 적어도 하나의 상태 특성들의 각각은 참 또는 거짓으로서 설명할 수 있는 부울 특성(Boolean attribute)인, 애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제1항에 있어서, 상기 상태 특성들의 값들은 이진 값들, 숫자 값들, 문자열 값들 및 미리 결정된 값들의 집합들 중 하나로부터 선택되는, 애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제1항에 있어서, 상기 DOM은 하나 이상의 XML 문서들로부터 생성되는, 애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제1항에 있어서, 상기 프로세싱은 상기 이벤트를 소모하는 것(consuming)을 포함하는, 애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제1항에 있어서, 상기 프로세싱은 이벤트 리스너(event listener)의 사용을 통해 상기 적어도 하나의 스크립트 컴포넌트에 의해 상기 이벤트를 수신하는 것을 포함하는, 애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 제1항에 있어서, 상기 프로세싱은 상기 애플리케이션의 포커스, Z 순서, 또는 사용자 이벤트들의 수신에 대한 변경을 통해 상기 대화형 멀티미디어 환경을 조작하는 것을 포함하는, 애플리케이션이 상태 변경에 응답하도록 하는 방법.
- 컴퓨터로 하여금 제1항 내지 제11항 중 어느 한 항의 방법을 수행하도록 하는 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
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/405,736 US20070006078A1 (en) | 2005-07-01 | 2006-04-18 | Declaratively responding to state changes in an interactive multimedia environment |
US11/405,736 | 2006-04-18 | ||
PCT/US2006/024226 WO2007005302A2 (en) | 2005-07-01 | 2006-06-22 | Declaratively responding to state changes in an interactive multimedia environment |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080021698A KR20080021698A (ko) | 2008-03-07 |
KR101231323B1 true KR101231323B1 (ko) | 2013-02-07 |
Family
ID=37591305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077030311A KR101231323B1 (ko) | 2005-07-01 | 2006-06-22 | 대화형 멀티미디어 환경에서의 상태 변경에 대한 선언적응답 |
Country Status (5)
Country | Link |
---|---|
US (2) | US20070006078A1 (ko) |
EP (1) | EP1900198A4 (ko) |
JP (1) | JP5015150B2 (ko) |
KR (1) | KR101231323B1 (ko) |
WO (1) | WO2007005302A2 (ko) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346737B2 (en) * | 2005-03-21 | 2013-01-01 | Oracle International Corporation | Encoding of hierarchically organized data for efficient storage and processing |
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 |
US7721308B2 (en) | 2005-07-01 | 2010-05-18 | Microsoft Corproation | Synchronization aspects of interactive multimedia presentation management |
US8020084B2 (en) | 2005-07-01 | 2011-09-13 | Microsoft Corporation | Synchronization aspects of interactive multimedia presentation management |
US7941522B2 (en) * | 2005-07-01 | 2011-05-10 | Microsoft Corporation | Application security 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 |
US7949991B1 (en) * | 2005-07-29 | 2011-05-24 | Adobe Systems Incorporated | Systems and methods for specifying states within imperative code |
US7707152B1 (en) * | 2005-07-29 | 2010-04-27 | Adobe Systems Incorporated | Exposing rich internet application content to search engines |
US7627566B2 (en) * | 2006-10-20 | 2009-12-01 | Oracle International Corporation | Encoding insignificant whitespace of XML data |
DE102006058214A1 (de) * | 2006-12-11 | 2008-06-19 | Bayerische Motoren Werke Ag | Kraftfahrzeug |
US20080165281A1 (en) * | 2007-01-05 | 2008-07-10 | Microsoft Corporation | Optimizing Execution of HD-DVD Timing Markup |
US7814412B2 (en) * | 2007-01-05 | 2010-10-12 | Microsoft Corporation | Incrementally updating and formatting HD-DVD markup |
US20080168402A1 (en) * | 2007-01-07 | 2008-07-10 | Christopher Blumenberg | Application Programming Interfaces for Gesture Operations |
US20080168478A1 (en) | 2007-01-07 | 2008-07-10 | Andrew Platzer | Application Programming Interfaces for Scrolling |
US8161369B2 (en) * | 2007-03-16 | 2012-04-17 | Branchfire, Llc | System and method of providing a two-part graphic design and interactive document application |
US8090731B2 (en) | 2007-10-29 | 2012-01-03 | Oracle International Corporation | Document fidelity with binary XML storage |
US8250062B2 (en) * | 2007-11-09 | 2012-08-21 | Oracle International Corporation | Optimized streaming evaluation of XML queries |
US8645827B2 (en) | 2008-03-04 | 2014-02-04 | Apple Inc. | Touch event model |
US8881120B2 (en) * | 2008-05-02 | 2014-11-04 | Adobe Systems Incorporated | Systems and methods for creating multi-state content |
US8776078B2 (en) * | 2008-05-20 | 2014-07-08 | International Business Machines Corporation | Method for dynamically freeing computer resources |
US8645822B2 (en) * | 2008-09-25 | 2014-02-04 | Microsoft Corporation | Multi-platform presentation system |
US9582506B2 (en) * | 2008-12-31 | 2017-02-28 | Microsoft Technology Licensing, Llc | Conversion of declarative statements into a rich interactive narrative |
US20110113315A1 (en) * | 2008-12-31 | 2011-05-12 | Microsoft Corporation | Computer-assisted rich interactive narrative (rin) generation |
US20110119587A1 (en) * | 2008-12-31 | 2011-05-19 | Microsoft Corporation | Data model and player platform for rich interactive narratives |
US9092437B2 (en) * | 2008-12-31 | 2015-07-28 | Microsoft Technology Licensing, Llc | Experience streams for rich interactive narratives |
US8566045B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US9684521B2 (en) | 2010-01-26 | 2017-06-20 | Apple Inc. | Systems having discrete and continuous gesture recognizers |
US10216408B2 (en) | 2010-06-14 | 2019-02-26 | Apple Inc. | Devices and methods for identifying user interface objects based on view hierarchy |
US9043296B2 (en) | 2010-07-30 | 2015-05-26 | Microsoft Technology Licensing, Llc | System of providing suggestions based on accessible and contextual information |
US9274595B2 (en) * | 2011-08-26 | 2016-03-01 | Reincloud Corporation | Coherent presentation of multiple reality and interaction models |
US8904373B2 (en) * | 2011-08-30 | 2014-12-02 | Samir Gehani | Method for persisting specific variables of a software application |
CN102752664B (zh) * | 2012-06-29 | 2015-05-20 | 北京奇虎科技有限公司 | 一种网页中文本字幕信息的显示方法和装置 |
US9733716B2 (en) | 2013-06-09 | 2017-08-15 | Apple Inc. | Proxy gesture recognizer |
US10417717B2 (en) * | 2014-11-26 | 2019-09-17 | Intuit Inc. | Method and system for generating dynamic user experience |
US20160373498A1 (en) * | 2015-06-18 | 2016-12-22 | Qualcomm Incorporated | Media-timed web interactions |
US20170344523A1 (en) * | 2016-05-25 | 2017-11-30 | Samsung Electronics Co., Ltd | Method and apparatus for presentation customization and interactivity |
CN107798051A (zh) * | 2016-08-31 | 2018-03-13 | 安提特软件有限责任公司 | 文件对象模型事务爬行器 |
WO2020175845A1 (ko) * | 2019-02-26 | 2020-09-03 | 엘지전자 주식회사 | 디스플레이 장치 및 그의 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030074093A (ko) * | 2002-03-09 | 2003-09-19 | 삼성전자주식회사 | 마크업 문서를 사용하여 av 데이터를 인터렉티브 모드로재생하는 방법, 및 그 장치 |
US20050022116A1 (en) * | 2002-12-09 | 2005-01-27 | Corel Corporation | System and method for manipulating a document object model |
Family Cites Families (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2512250B2 (ja) * | 1991-09-13 | 1996-07-03 | 松下電器産業株式会社 | 動画表示ワ―クステ―ション |
US5394547A (en) * | 1991-12-24 | 1995-02-28 | International Business Machines Corporation | Data processing system and method having selectable scheduler |
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 |
US6122433A (en) * | 1994-10-20 | 2000-09-19 | Thomson Licensing S.A. | HDTV trick play stream derivation for VCR |
US5717468A (en) * | 1994-12-02 | 1998-02-10 | International Business Machines Corporation | System and method for dynamically recording and displaying comments for a video movie |
JP3701051B2 (ja) * | 1995-07-04 | 2005-09-28 | パイオニア株式会社 | 情報記録装置及び情報再生装置 |
US5659539A (en) * | 1995-07-14 | 1997-08-19 | Oracle Corporation | Method and apparatus for frame accurate access of digital audio-visual information |
JP3471526B2 (ja) * | 1995-07-28 | 2003-12-02 | 松下電器産業株式会社 | 情報提供装置 |
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 |
US5949410A (en) * | 1996-10-18 | 1999-09-07 | Samsung Electronics Company, Ltd. | Apparatus and method for synchronizing audio and video frames in an MPEG presentation system |
US5877763A (en) * | 1996-11-20 | 1999-03-02 | International Business Machines Corporation | Data processing system and method for viewing objects on a user interface |
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 |
US6385596B1 (en) * | 1998-02-06 | 2002-05-07 | Liquid Audio, Inc. | Secure online music distribution system |
US6426778B1 (en) * | 1998-04-03 | 2002-07-30 | Avid Technology, Inc. | System and method for providing interactive components in motion video |
EP1034656A2 (en) * | 1998-06-11 | 2000-09-13 | Koninklijke Philips Electronics N.V. | Trick play signal generation for a digital video recorder |
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 |
US20030025599A1 (en) * | 2001-05-11 | 2003-02-06 | Monroe David A. | Method and apparatus for collecting, sending, archiving and retrieving motion video and still images and notification of detected events |
US6715126B1 (en) * | 1998-09-16 | 2004-03-30 | International Business Machines Corporation | Efficient streaming of synchronized web content from multiple sources |
GB2344453B (en) * | 1998-12-01 | 2002-12-11 | Eidos Technologies Ltd | Multimedia editing and composition system having temporal display |
US6637031B1 (en) * | 1998-12-04 | 2003-10-21 | Microsoft Corporation | Multimedia presentation latency minimization |
US6430570B1 (en) * | 1999-03-01 | 2002-08-06 | Hewlett-Packard Company | Java application manager for embedded device |
US6629150B1 (en) * | 1999-06-18 | 2003-09-30 | Intel Corporation | Platform and method for creating and using a digital container |
US6772413B2 (en) * | 1999-12-21 | 2004-08-03 | Datapower Technology, Inc. | Method and apparatus of data exchange using runtime code generator and translator |
US20040220926A1 (en) * | 2000-01-03 | 2004-11-04 | Interactual Technologies, Inc., A California Cpr[P | Personalization services for entities from multiple sources |
WO2001050401A1 (en) * | 2000-01-06 | 2001-07-12 | Hd Media, Inc. | 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 |
US7725812B1 (en) * | 2000-03-31 | 2010-05-25 | Avid Technology, Inc. | Authoring system for combining temporal and nontemporal digital media |
US6505153B1 (en) * | 2000-05-22 | 2003-01-07 | Compaq Information Technologies Group, L.P. | Efficient method for producing off-line closed captions |
US7669238B2 (en) * | 2000-06-21 | 2010-02-23 | Microsoft Corporation | Evidence-based application security |
KR100424481B1 (ko) * | 2000-06-24 | 2004-03-22 | 엘지전자 주식회사 | 디지털 방송 부가서비스 정보의 기록 재생장치 및 방법과그에 따른 기록매체 |
US8495679B2 (en) * | 2000-06-30 | 2013-07-23 | Thomson Licensing | Method and apparatus for delivery of television programs and targeted de-coupled advertising |
US7350204B2 (en) * | 2000-07-24 | 2008-03-25 | Microsoft Corporation | Policies for secure software execution |
JP2004507172A (ja) * | 2000-08-16 | 2004-03-04 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | マルチメディアアプリケーションを再生する方法 |
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 |
US6967725B2 (en) * | 2000-10-13 | 2005-11-22 | Lucent Technologies Inc. | System and method for optical scanning |
US20020099738A1 (en) * | 2000-11-22 | 2002-07-25 | Grant Hugh Alexander | Automated web access for back-end enterprise systems |
US6792426B2 (en) * | 2001-01-10 | 2004-09-14 | International Business Machines Corporation | Generic servlet for browsing EJB entity beans |
US6500188B2 (en) * | 2001-01-29 | 2002-12-31 | Ethicon Endo-Surgery, Inc. | Ultrasonic surgical instrument with finger actuator |
US6738911B2 (en) * | 2001-02-02 | 2004-05-18 | Keith Hayes | Method and apparatus for providing client-based network security |
US20020188616A1 (en) * | 2001-06-07 | 2002-12-12 | Chinnici Roberto R. | Database access bridge system and process |
DE10129525A1 (de) * | 2001-06-21 | 2003-01-09 | Basf Ag | Multimodale Polyamide, Polyester und Polyesteramide |
WO2003005190A1 (en) * | 2001-07-06 | 2003-01-16 | E-Genie Australia Pty Limited | Method and system for computer software application execution |
US6565153B2 (en) * | 2001-07-31 | 2003-05-20 | Johnson Controls Technology Corporation | Upper back support for a seat |
EP1286349A1 (en) * | 2001-08-21 | 2003-02-26 | Canal+ Technologies Société Anonyme | File and content management |
US6920613B2 (en) * | 2001-08-27 | 2005-07-19 | Xerox Corporation | Video/text bi-directional linkage for software fault clearance applications |
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 |
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 |
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 |
US20040039909A1 (en) * | 2002-08-22 | 2004-02-26 | David Cheng | Flexible authentication with multiple levels and factors |
EP1403778A1 (en) * | 2002-09-27 | 2004-03-31 | Sony International (Europe) GmbH | Adaptive multimedia integration language (AMIL) for adaptive multimedia applications and presentations |
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 |
US7328076B2 (en) * | 2002-11-15 | 2008-02-05 | Texas Instruments Incorporated | Generalized envelope matching technique for fast time-scale modification |
KR100484181B1 (ko) * | 2002-12-02 | 2005-04-20 | 삼성전자주식회사 | 멀티미디어 문서 저작 장치 및 방법 |
WO2004063900A2 (en) * | 2003-01-10 | 2004-07-29 | Nexaweb Technologies, Inc. | System and method for network-based computing |
US7302057B2 (en) * | 2003-01-31 | 2007-11-27 | Realnetworks, Inc. | Method and process for transmitting video content |
KR20040080736A (ko) * | 2003-03-13 | 2004-09-20 | 삼성전자주식회사 | 인터랙티브 컨텐츠 동기화 장치 및 방법 |
US7735104B2 (en) * | 2003-03-20 | 2010-06-08 | The Directv Group, Inc. | System and method for navigation of indexed video content |
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 |
JP2004357275A (ja) * | 2003-05-07 | 2004-12-16 | Nec Corp | 映像記録装置、記録媒体、映像記録方法及びプログラム |
US20040244003A1 (en) * | 2003-05-30 | 2004-12-02 | Vidiator Enterprises Inc. | Apparatus and method for task scheduling for media processing |
US7739715B2 (en) * | 2003-06-24 | 2010-06-15 | Microsoft Corporation | Variable play speed control for media streams |
GB2403697B (en) * | 2003-07-09 | 2006-05-24 | Peter Gordon Martin | Cycle saddle suspension assembly |
US7511718B2 (en) * | 2003-10-23 | 2009-03-31 | Microsoft Corporation | Media integration layer |
US8065616B2 (en) * | 2003-10-27 | 2011-11-22 | Nokia Corporation | Multimedia presentation editor for a small-display communication terminal or computing device |
US7882034B2 (en) * | 2003-11-21 | 2011-02-01 | Realnetworks, Inc. | Digital rights management for content rendering on playback devices |
US7681114B2 (en) * | 2003-11-21 | 2010-03-16 | Bridgeborn, Llc | Method of authoring, deploying and using interactive, data-driven two or more dimensional content |
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 | パイオニア株式会社 | 映像内容認識装置、録画装置、映像内容認識方法、録画方法、映像内容認識プログラム、および録画プログラム |
US7801303B2 (en) * | 2004-03-01 | 2010-09-21 | The Directv Group, Inc. | Video on demand in a broadcast network |
JP2005318472A (ja) * | 2004-04-30 | 2005-11-10 | Toshiba Corp | 動画像のメタデータ |
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 |
JP4039417B2 (ja) * | 2004-10-15 | 2008-01-30 | 株式会社日立製作所 | 記録再生装置 |
US7593980B2 (en) * | 2004-11-30 | 2009-09-22 | Cisco Technology, Inc. | Application server system and method |
US20060123451A1 (en) * | 2004-12-07 | 2006-06-08 | Showtime Networks Inc. | Enhanced content in an on-demand environment |
-
2006
- 2006-04-18 US US11/405,736 patent/US20070006078A1/en not_active Abandoned
- 2006-06-22 EP EP06773733A patent/EP1900198A4/en not_active Withdrawn
- 2006-06-22 KR KR1020077030311A patent/KR101231323B1/ko active IP Right Grant
- 2006-06-22 JP JP2008519404A patent/JP5015150B2/ja not_active Expired - Fee Related
- 2006-06-22 WO PCT/US2006/024226 patent/WO2007005302A2/en active Application Filing
-
2014
- 2014-04-22 US US14/258,612 patent/US20140229819A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030074093A (ko) * | 2002-03-09 | 2003-09-19 | 삼성전자주식회사 | 마크업 문서를 사용하여 av 데이터를 인터렉티브 모드로재생하는 방법, 및 그 장치 |
US20050022116A1 (en) * | 2002-12-09 | 2005-01-27 | Corel Corporation | System and method for manipulating a document object model |
Also Published As
Publication number | Publication date |
---|---|
US20070006078A1 (en) | 2007-01-04 |
WO2007005302A3 (en) | 2008-07-10 |
JP2009501459A (ja) | 2009-01-15 |
WO2007005302A2 (en) | 2007-01-11 |
US20140229819A1 (en) | 2014-08-14 |
EP1900198A2 (en) | 2008-03-19 |
KR20080021698A (ko) | 2008-03-07 |
JP5015150B2 (ja) | 2012-08-29 |
EP1900198A4 (en) | 2011-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101231323B1 (ko) | 대화형 멀티미디어 환경에서의 상태 변경에 대한 선언적응답 | |
KR101354739B1 (ko) | 상호작용 멀티미디어 프리젠테이션을 위한 상태 기초타이밍 | |
KR101265890B1 (ko) | 대화형 멀티미디어 프레젠테이션 관리의 동기 특징 | |
KR101265936B1 (ko) | 대화형 멀티미디어 프레젠테이션 관리의 동기 특징 | |
KR101365829B1 (ko) | 대화형 멀티미디어 프리젠테이션을 재생하는 방법을 수행하는 컴퓨터 실행가능 명령어들이 인코딩된 컴퓨터 판독가능 매체, 및 대화형 멀티미디어 프리젠테이션을 재생하는 프리젠테이션 시스템 및 장치 | |
US20070006065A1 (en) | Conditional event timing for interactive multimedia presentations | |
JP4812833B2 (ja) | 対話型マルチメディアプレゼンテーション管理の同期化の態様 | |
JP2008545335A5 (ko) | ||
JP5619838B2 (ja) | 対話型マルチメディア・プレゼンテーション管理の同期性 | |
JP2009500909A5 (ko) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160104 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170119 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180118 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190116 Year of fee payment: 7 |