KR20080023318A - 미디어 콘텐츠 렌더링의 특징 - Google Patents

미디어 콘텐츠 렌더링의 특징 Download PDF

Info

Publication number
KR20080023318A
KR20080023318A KR1020077030646A KR20077030646A KR20080023318A KR 20080023318 A KR20080023318 A KR 20080023318A KR 1020077030646 A KR1020077030646 A KR 1020077030646A KR 20077030646 A KR20077030646 A KR 20077030646A KR 20080023318 A KR20080023318 A KR 20080023318A
Authority
KR
South Korea
Prior art keywords
media
time
presentation
playback
samples
Prior art date
Application number
KR1020077030646A
Other languages
English (en)
Other versions
KR101246976B1 (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 KR20080023318A publication Critical patent/KR20080023318A/ko
Application granted granted Critical
Publication of KR101246976B1 publication Critical patent/KR101246976B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/438Presentation of query results
    • G06F16/4387Presentation of query results by the use of playlists
    • G06F16/4393Multimedia presentations, e.g. slide shows, multimedia albums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/10537Audio or video recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

미디어 콘텐츠는 클립이라고 지칭되는 다수 세트의 비디오, 오디오 또는 데이터 샘플로 구성되며, 이들은 미디어 콘텐츠 관리자에 의해 렌더링된다. 프리젠테이션 관리자에 의해 관리되는 재생목록은 사용자에게 재생될 수 있는 클립의 시간순 시퀀스를 특정한다. 앞으로 나올 클립의 프리렌더링(pre-rendering)을 스케쥴된 재생 시간보다 얼마나 미리 시작할지 결정하는데 사용되는 시간 옵셋 값을 결정하는 것을 포함하는 특정 동작들이 미디어 콘텐츠 재생 동안 취해져, 사용자에게 인식되는 글리치(glitches)를 최소화한다. 시간 옵셋 값은 미디어 소스의 위치, 코덱 파라미터 또는 암호화 복잡도와 같은, 앞으로 나올 클립에 대한 미디어 소스와 연관된 하나 이상의 정적 특성과, 미디어 클립, 처리 부하 또는 클록 주파수의 검색 상태(retrieval states)(재생 속도를 포함함)와 같은, 프리젠테이션 시스템의 하나 이상의 동적 특성을 사용하여 결정된다.
프리젠테이션 시스템, 콘텐츠, 미디어, 렌더링, 시간 옵셋, 클립

Description

미디어 콘텐츠 렌더링의 특징{ASPECTS OF MEDIA CONTENT RENDERING}
본 발명은 미디어 콘텐츠를 재생하기 위한 시스템에 관한 것이다.
본 출원은 2005년 7월 1일 출원된 미국 가특허출원 제60/695,944호에 대해 우선권을 주장하고, 상기 가출원을 본 명세서에 참조로서 포함시킨다.
멀티미디어 플레이어는 사용자가 쓰기 위한 비디오, 오디오 또는 데이터 콘텐츠의 조합(combination)("멀티미디어 프리젠테이션")을 렌더링하는 장치이다. 현재, DVD 플레이어와 같은 멀티미디어 플레이어에서는, 비디오 콘텐츠를 재생하는 동안 사용자 대화성(user interactivity)이 제공된다 할지라도 그 정도가 미미한 실정이다 - 일반적으로 재생 속도를 조절하는 것 이외의 사용자 입력을 수신하기 위해서는 미디어 콘텐츠 재생이 중단(interrupt)된다 - . 예를 들어, 일반적으로 DVD 플레이어의 사용자는 오디오 코멘터리, 배우 기록, 또는 게임과 같은 피처(feature)를 선택 및 수신하도록 하는 옵션들을 포함하는 메뉴로 돌아가기 위해 재생중인 영화를 멈추어야만 한다.
대화형(interactive) 멀티미디어 플레이어는 전통적인 비디오, 오디오 또는 데이터 콘텐츠를 대화형 콘텐츠와 병존형으로(concurrently) 조합("대화형 멀티미디어 프리젠테이션")을 렌더링하는 장치(하드웨어, 소프트웨어, 펌웨어, 또는 이들 의 임의의 조합을 포함할 수 있음)이다. 일반적으로, 대화형 콘텐츠로는, 단독으로 또는 다른 비디오, 오디오 또는 데이터 콘텐츠와 함께 제공될 수 있는 사용자가 선택가능한(user-selectable) 가시의(visible) 또는 가청의(audible) 객체라면 어느 것도 그 대상이 될 수 있다. 임의의 유형의 장치가 대화형 멀티미디어 플레이어가 될 수 있으나, 광 미디어 플레이어(예컨대, DVD 플레이어), 컴퓨터 및 기타 전자 장치와 같은 장치가 많은 양의 비교적 값싸고 이동 가능한 데이터 저장소로의 액세스를 제공하기 때문에, 상업적으로 가치있는 대화형 멀티미디어 프리젠테이션의 생성 및 그에 대한 소비자 수요를 가능하게 하는데 특히 적합하다.
모든 유형의 미디어 콘텐츠 플레이어, 특히 대화형 멀티미디어 플레이어 및 대화형 멀티미디어 프리젠테이션에 대한 투자를 강화하기 위해, 비디오, 오디오 또는 데이터 콘텐츠의 예측가능하고 비교적 글리치 없는(glitch-free) 재생을 제공하는 것이 바람직하다.
본원에서의 청구 대상은 특정의 멀티미디어 프리젠테이션 시스템, 대화형 멀티미디어 프리젠테이션 시스템 또는 그 특징들의 단점의 일부 또는 전체를 해결하는 구현예에 한정되지 않음을 이해하여야 한다.
멀티미디어 프리젠테이션 및 대화형 멀티미디어 프리젠테이션과 같은 많은 유형의 프리젠테이션은 미디어 콘텐츠를 포함한다. 미디어 콘텐츠의 일례는 영화이지만, 미디어 콘텐츠는 비디오, 오디오, 데이터 또는 이들의 임의의 조합이 될 수 있다. 미디어 콘텐츠는 일반적으로 클립이라고 불리는 다수 세트의 샘플로 구성되며, 이들은 미디어 콘텐츠 관리자에 의해 렌더링된다(rendered). 하나의 클립은 일반적으로 하나의 미디어 소스로부터 수신할 수 있다. 프리젠테이션 관리자에 의해 관리되는 재생목록은 사용자에게 프리젠트될 수 있는 클립의 시간순(timer-order) 시퀀스를 특정한다. 종종, 재생목록에 특정된 대로의 한 클립에서 다른 클립으로의 실시간 전이(transition)는, 미디어 콘텐츠의 재생에 있어서 특히 제한된 처리 및/또는 디코딩 자원을 가진 프리젠테이션 시스템이 사용되는 경우, 사용자가 글리치(예컨대, 지연, 원치않는 중단 또는 콘텐츠 유실)를 경험하지 않도록 수행되기 어렵다.
여기서 논의되는 미디어 콘텐츠 재생을 위한 방법, 시스템, 장치 및 제조물품은 앞으로 나올 클립(upcoming clip)을 재생하기 위해 스케쥴하기 이전에 해당 클립의 적어도 일부를 프리렌더링(pre-rendering)하여 미디어 콘텐츠를 재생하는 동안의 글리치를 최소화하는 것을 포함한다. 미디어 콘텐츠의 재생 동안 취해지는 특정 동작들은, 스케쥴된 재생 시간보다 얼마나 미리, 앞으로 나올 클립을 프리렌더링해야할지를 결정하는데 사용되는 시간 옵셋 값을 결정하는 것을 포함한다. 스케쥴된 재생 시간 전에 클립을 프리렌더링하기 위한 충분한 시간이 있어야 하나, 프리렌더링 활동이 프리젠테이션 시스템 내에서 일어나는 기타 중요한 활동에 부정적인 영향을 줄 정도로 미리 프리렌더링되어서는 안된다.
시간 옵셋 값은, 앞으로 나올 클립에 대한 미디어 소스에 연관된 하나 이상의 정적(static) 특성 및 프리젠테이션 시스템의 하나 이상의 동적(dynamic) 특성을 사용하여 결정된다. 특정 미디어 소스의 정적 특성의 예로는, 미디어 소스의 위치, 코덱 파라미터나 설정, 또는 암호화 파라미터나 설정이 포함된다. 프리젠테이션 시스템의 동적 특성의 예로는, 미디어 클립의 검색 상태(retrieval states)(재생 속도를 포함함), 미디어 또는 그래픽 처리 부하, 또는 미디어 또는 그래픽 클록 주파수가 포함된다. 시간 옵셋 값은 다양한 동적 특성으로 인해 미디어 콘텐츠의 재생 동안 여러 번 결정될 수 있다.
이상의 설명은 단순화된 형태로 개념을 발췌하여 소개하기 위해 제공된다. 개념은 실시예 부분에서 더 설명된다. 이상에서 설명된 것 이외의 구성요소들 또는 단계들이 가능하며, 어떠한 구성요소나 단계도 반드시 필요한 것은 아니다. 이상의 설명은 청구 대상의 핵심적인 특징이나 본질적인 특징을 식별하려는 의도가 아니며, 청구 대상의 범위를 결정하는데 도움으로서 사용하려는 의도도 아니다.
도 1은 대화형 멀티미디어 프리젠테이션 시스템의 단순화된 기능 블록도.
도 2는 도 1에 도시된 재생목록으로부터 확인할 수 있는 예시적인 프리젠테이션 타임라인을 도시한 도면.
도 3은 도 1에 도시된 대화형 멀티미디어 프리젠테이션과 관련된 애플리케이션의 단순화된 기능 블록도.
도 4는 도 1의 타이밍 신호 관리 블록을 더 상세히 도시한 단순화된 기능 블록도.
도 5는 도 1에 도시된 대화형 멀티미디어 프리젠테이션 시스템과 같은 프리젠테이션 시스템을 사용하여, 도 2에 도시된 미디어 콘텐츠와 같은 미디어 콘텐츠 를 재생하기 위한 방법의 흐름도.
도 6은 도 5의 흐름도에 도시된 방법의 특정 특징들과 관련하여 사용될 수 있는 예시적인 미디어 타임라인의 개략도.
도 7은 도 1에 도시된 대화형 멀티미디어 프리젠테이션 시스템의 특징들과 관련하여 사용될 수 있는 범용 연산 유닛(computing unit)의 단순화된 기능 블록도.
도 8은 도 1에 도시된 대화형 멀티미디어 프리젠테이션이 구현되거나 사용될 수 있는 동작 환경의 예시적인 구성의 단순화된 기능 블록도.
도 9는 도 1에 도시된 대화형 멀티미디어 프리젠테이션 시스템이 구현되거나 사용될 수 있는 클라이언트-서버 아키텍처의 단순화된 기능 블록도.
동일한 부호가 동일한 컴포넌트를 가리키는 도면으로 돌아가서, 도 1은 대화형 멀티미디어 프리젠테이션 시스템("프리젠테이션 시스템")(100)의 단순화된 기능 블록도이다. 프리젠테이션 시스템(100)은 미디어 콘텐츠 관리자(102), 대화형 콘텐츠("IC") 관리자(104), 프리젠테이션 관리자(106), 타이밍 신호 관리 블록(108) 및 믹서/렌더러(mixer/renderer)(110)를 포함한다. 일반적으로, 설계 선택이 프리젠테이션 시스템(100)의 구체적인 기능이 어떻게 구현될지를 지시한다. 그러한 기능은 하드웨어, 소프트웨어 또는 펌웨어, 또는 이들의 조합을 사용하여 구현될 수 있다.
동작시, 프리젠테이션 시스템(100)은 대화형 멀티미디어 프리젠테이션 콘텐 츠("프리젠테이션 콘텐츠")(120)를 처리한다. 프리젠테이션 콘텐츠(120)는 미디어 콘텐츠 컴포넌트("미디어 컴포넌트")(122) 및 대화형 콘텐츠 컴포넌트("IC 컴포넌트")(124)를 포함한다. 일반적으로 미디어 컴포넌트(122)와 IC 컴포넌트(124)는 각각 미디어 콘텐츠 관리자(102)와 IC 관리자(104)에 의해 별개의 데이터 스트림으로 처리되나, 반드시 그럴 필요는 없다.
또한, 프리젠테이션 시스템(100)은 재생된 프리젠테이션(played presentation)(127)으로서의 사용자(도시하지 않음)에 대한 프리젠테이션 콘텐츠(120)의 프리젠테이션을 용이하게 한다. 재생된 프리젠테이션(127)은 디스플레이나 스피커(도시하지 않음)와 같은 장치를 통해 사용자에 의해 수신 가능하고 믹서/렌더러(110)에 의해 생성되는 프리젠테이션 콘텐츠(120)와 관련된 가시 및/또는 가청 정보를 나타낸다. 논의의 목적상, 프리젠테이션 콘텐츠(120)와 재생된 프리젠테이션(127)은 임의의 포맷의 고화질 DVD 영화 콘텐츠를 나타낸다. 그러나, 프리젠테이션 콘텐츠(120)와 재생된 프리젠테이션(127)이 지금 알려져 있거나 추후에 개발될 임의의 유형의 미디어 콘텐츠의 프리젠테이션일 수 있음을 알 수 있을 것이다.
미디어 컴포넌트(122)는 프리젠테이션 콘텐츠(120)의 전통적인 비디오, 오디오 또는 데이터 컴포넌트를 나타낸다. 예를 들어, 영화는 일반적으로 하나 이상의 버전(예컨대, 성인 관객을 위한 버전 및 청소년 관객을 위한 버전), 하나 이상의 타이틀(131)과 각 타이틀에 관련된 하나 이상의 챕터(미도시)(타이틀은 이하에서 프리젠테이션 관리자(106)에 관하여 더 설명됨), 하나 이상의 오디오 트랙(예컨대, 영화는 자막과 함께/자막 없이 하나 이상의 언어로 재생될 수 있음), 및 감독의 코멘터리, 추가적인 푸티지(footage), 트레일러 등과 같은 가외의 특징들을 가진다. 타이틀과 챕터 사이의 구별은 순전히 논리적인 구별임을 알 것이다. 예를 들어, 단일의 인지된 미디어 세그먼트는 단일의 타이틀/챕터의 일부이거나, 복수의 타이틀/챕터로 이루어질 수 있다. 적절한 논리적 구별을 결정하는 것은 콘텐츠 오소링 소스(content authoring source)에 달려 있다. 또한, 미디어 컴포넌트(122)가 영화로서 지칭되었으나, 미디어 컴포넌트(122)는 실제로 비디오, 오디오, 데이터, 또는 이들의 임의의 조합일 수 있음을 알 것이다.
미디어 컴포넌트(122)를 형성하는 미디어 샘플의 세트(예컨대, 비디오, 오디오 또는 데이터 샘플의 세트)는 클립(123){클립(123)은 미디어 컴포넌트(122), 미디어 콘텐츠 관리자(102) 및 재생목록(128) 내에 도시됨}으로 지칭된다. 미디어 콘텐츠 관리자(102)를 참조하면, 클립(123)에 관련된 정보는 하나 이상의 미디어 처리 파이프라인(159)(두 개의 미디어 처리 파이프라인이 예시를 위해 도시되었으나, 임의의 수가 가능함)에 의해 처리된다. 특정 미디어 처리 파이프라인(159) 내에서, 클립(123)에 관련된 정보는 미디어 소스(160)로부터 수신되고, 디코더 블록(161)에서 디멀티플렉싱, 디코딩 및/또는 해독된다(decrypted).
특정 미디어 소스(160)는 비디오, 오디오 또는 데이터가 도출되거나 획득되는 임의의 장치, 위치 또는 데이터이다. 미디어 소스의 예로는 네트워크, 하드 드라이브, 광 미디어, 대체 물리 디스크(alternate physical disks) 및 구체적인 비디오, 오디오 또는 데이터의 저장 장소를 참조하는(referencing) 데이터 구조가 포 함되나, 이에 한정되는 것은 아니다. 일반적으로, 임의의 컴퓨터 판독가능 매체는 미디어 소스로서 기능할 수 있다(컴퓨터 판독가능 미디어는 도 7과 관련하여 이하에 더 논의된다.)
각각의 미디어 소스(160)는 그에 연관된 하나 이상의 미디어 소스 특성(162)을 갖는다. 미디어 소스 특성은 특정 미디어 소스와 연관된 정적 파라미터이다. 그러한 정적 파라미터의 예로는, 미디어 소스의 위치, 인코더-디코더 쌍("코덱") 파라미터 또는 설정{예컨대, WMV, H.264, MPEG, VC1, 화상 그룹("GOP"; group of picture) 사이즈 설정, 압축률 설정 또는 품질 설정}, 또는 암호화 파라미터 또는 설정(예컨대, 대칭 또는 비대칭과 같은 암호화 유형, 암호화 복잡도, 또는 암호화 포맷 또는 프로토콜)이 포함될 수 있으나, 이에 한정되는 것은 아니다. 특정 미디어 소스와 연관된 다른 정적 파라미터가 정의되거나 인정될 수도 있음을 이해할 것이다.
디코더 블록(161)은 미디어 소스(160)로부터 수신되는 정보로부터, 렌더링할 수 있는 비디오, 오디오 또는 데이터 콘텐츠를 검색하기 위해 사용되는 임의의 장치, 기술 또는 단계를 나타낸다. 디코더 블록(161)은 예컨대, 코덱, 디멀티플렉서, 해독기를 포함할 수 있다. 디코더 블록(161) 및 그 컴포넌트는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 디코더 및 미디어 소스 간 일대일 관계가 도시되어 있으나, 하나의 디코더가 다수의 미디어 소스를 서비스할 수 있으며 그 역도 가능하다는 것을 알 수 있을 것이다. 예를 들어, 일부 상업적으로 사용가능한 DVD 플레이어는 하나의 디코더만을 포함한다.
미디어 콘텐츠 데이터("미디어 데이터")(132)는 미디어 콘텐츠 관리자(102)에 의해 렌더링되기 위해 준비되어 믹서/렌더러(110)으로 전송되는 미디어 컴포넌트(122)와 연관된 데이터이다. 일반적으로 미디어 데이터(134)의 세트(예컨대, 프레임)는 각각의 액티브 클립(123)에 대해 해당 클립의 일부의 렌더링을 포함한다. 미디어 데이터의 특정 세트에서 랜더링되는 클립의 정확한 부분 또는 양은 클립의 비디오, 오디오 또는 데이터 콘텐츠의 특성과 같은 몇몇 인자들 또는 하나 이상의 미디어 소스 특성(162)에 기초할 수 있다. 미디어 콘텐츠 관리자(102)는 미디어 컴포넌트(122) 및/또는 IC 컴포넌트(124)를 포함하는 다양한 클립의 아이덴티티 및 스케쥴링에 기초하여 동적 미디어 처리 부하를 가진다(이하 설명됨).
프리젠테이션 콘텐츠(120)를 다시 참조하면, IC 컴포넌트(124)는, 사용자가 선택가능한 가시의 또는 가청의 객체이고 미디어 컴포넌트(122)와 동시에 선택적으로 프리젠트할 수 있는 대화형 객체(125)를, 상기 가시 또는 가청 객체를 프리젠트하기 위한 임의의 명령{어플리케이션(155)으로 도시되며, 이하 더 설명됨}과 함께 포함하고 있다. 대화형 객체(125)는 정적이거나 움직이는 것일 수 있다(animated). 기타의 것들 중 대화형 객체의 예로는, 비디오 샘플 또는 클립, 오디오 샘플 또는 클립, 그래픽, 텍스트 및 이들의 조합이 포함된다.
대화형 객체(125)는 하나 이상의 소스(도시되지 않음)로부터 발생한다. 소스는 대화형 객체가 도출되거나 획득될 수 있는 임의의 장치, 위치 또는 데이터이다. 대화형 객체(125)에 대한 소스의 예로는, 네트워크, 하드 드라이브, 광 미디어, 대체 물리 디스크 및 구체적인 대화형 객체의 저장 장소를 참조하는 데이터 구 조가 포함되나, 이에 한정되는 것은 아니다. 대화형 객체(125)의 포맷의 예로는, 휴대용 네트워크 그래픽("PNG"), 합동 사진 전문가 그룹("JPEG"), 동화상 전문가 그룹("MPEG"), 멀티이미지 네트워크 그래픽("MNG"), 오디오 비디오 인터리브("AVI"), 익스텐서블 마크업 언어("XML"), 하이퍼텍스트 마크업 언어("HTML"), 익스텐서블 HTML("XHTML"), 익스텐서블 스타일시트 언어("XSL") 및 WAV가 포함되나 이에 한정되는 것은 아니다.
어플리케이션(155)은 프리젠테이션 시스템(100)이 대화형 객체(125)를 사용자에게 프리젠트하는 메커니즘을 제공한다. 어플리케이션(155)은 데이터에 대해 사전결정된 동작을 전자적으로 제어하는 임의의 신호 처리 방법 또는 저장된 명령어를 표시한다. 설명을 위해, IC 컴포넌트(124)는 도 2 및 3과 관련하여 이하에 더 설명되는 3개의 어플리케이션(155)을 포함하는 것으로 가정한다. 제1 어플리케이션은, 영화의 시각적 특징과 동시에, 다수의 사용자-선택가능 아이템을 갖는 메뉴를 제공하는 특정 대화형 객체를 제공한다. 제2 어플리케이션은 영화에서 나타나는 아이템 중 하나(예컨대, 사람, 차, 빌딩 또는 제품)를 식별하고 및/또는 따라가는데 사용될 수 있는 (원과 같은) 그래픽 오버레이를 제공하는 하나 이상의 대화형 객체를 프리젠트한다. 그리고, 제3 어플리케이션은 움직이는 섬네일(animated thumbnail)("스크립트 클립"으로 지칭됨)과 같은 미디어 클립을 프리젠트한다.
대화형 콘텐츠 데이터("IC 데이터")(134)는 IC 관리자(104)에 의해 렌더링되도록 준비되어 믹서/렌더러(110)로 전송된, IC 컴포넌트(124)와 연관된 데이터이다. 각각의 어플리케이션은 어플리케이션의 렌더링과 관련된 하나 이상의 작업 아 이템(도시되지 않음)을 유지하는 연관 큐(도시되지 않음)를 갖는다.
미디어 콘텐츠 관리자(104) 및 IC 관리자(102) 모두와 통신하도록 구성되는 프리젠테이션 관리자(106)는, 프리젠테이션 콘텐츠(120)의 처리 및 사용자에게로의 재생된 프리젠테이션(127)의 프리젠테이션을 용이하게 한다. 프리젠테이션 관리자(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){예시적인 미디어 타임라인(142)는 도 6과 관련하여 이하 더 설명됨}을 확인하기 위해 재생목록(128) 및/또는 프리젠테이션 타임라인(130)을 사용하는 것도 유용하다.
프리젠테이션 관리자(106)는 미디어 콘텐츠 관리자(102) 및 IC 관리자(104)에게 정보를 제공하며, 상기 정보는 프리젠테이션 타임라인(130)에 관한 정보를 포함하나 이에 한정되는 것은 아니다. 프리젠테이션 관리자(206)로부터의 입력에 기초하여, 미디어 콘텐츠 관리자(102)는 미디어 데이터(132)의 렌더링을 준비하고, IC 관리자(104)는 IC 데이터(134)의 렌더링을 준비한다. 일 구현에서, 프리젠테이션 관리자(106)는 미디어 처리 파이프라인(159)을 제어한다.
타이밍 신호 관리 블록(108)은 다양한 타이밍 신호(158)를 생성하며, 이 신호는 미디어 콘텐츠 관리자(102) 및 IC 관리자(104)에 의해, 각각 미디어 데이터(132) 및 IC 데이터(134)의 준비 및 생성을 위한 타이밍을 제어하는데 사용된다. 특히, 타이밍 신호(158)는 미디어 데이터(132) 및 IC 데이터(134)의 프레임 레벨 동기화를 달성하기 위해 사용된다. 타이밍 신호 관리 블록(108) 및 타이밍 신호(158)의 상세한 사항은 도 4와 관련하여 이하 더 설명된다.
믹서/렌더러는 미디어 데이터(132)를 비디오 플레인(plane)(도시하지 않음)에 렌더링하고, IC 데이터(134)를 그래픽 플레인(도시하지 않음)에 렌더링한다. 일반적으로, 그래픽 플레인은 사용자를 위해 재생된 프리젠테이션(127)을 생성하기 위해 비디오 플레인 위에 오버레이되지만, 반드시 그런 것은 아니다.
도 1에 이어, 도 2는 재생목록(128) 내의 타이틀(131)에 대한 샘플 프리젠테이션 타임라인(130)을 그래픽으로 도시한 것이다. 시간은 수평축(220) 상에 도시된다. 미디어 컴포넌트(122)에 대한 정보{클립(123)이 예시됨} 및 IC 컴포넌트(124){대화형 객체(125)를 프리젠트하는 어플리케이션(155)이 예시됨}는 수직 축(225)에 도시된다.
미디어 컴포넌트(122)에 관하여, 4개의 클립(123), 즉 제1 미디어 클립("미디어 클립 1")(230), 제2 미디어 클립("미디어 클립 2")(250), 제3 미디어 클립("미디어 클립 3")(251) 및 제4 미디어 클립("미디어 클립 4")(253)이 도시된다. 미디어 클립 1(230)은 미디어 처리 파이프라인 1(도 1에 도시)을 통해 0초에서 10초까지 재생가능하고, 미디어 클립 2(250)는 미디어 처리 파이프라인 2(역시 도 1에 도시)을 통해 8초에서 15초까지 재생가능하고, 미디어 클립 3(251)은 미디어 처리 파이프라인 1을 통해 10초에서 20초까지 재생가능하고, 미디어 클립 4(253)는 미디어 처리 파이프라인 2를 통해 30초에서 40초까지 재생가능하다. 어플리케이션(155)이 20초와 30초 사이에 미디어 처리 파이프라인 1을 통한 재생을 위해 스크립트 클립(255)을 프리젠트할 수 있으나, 20초와 30초 사이의 재생을 위해 재생목록(128)에 의해 스케쥴된 미디어 콘텐츠는 없다. 스크립트 클립은 일반적으로 재생목록에 포함되어 있지 않으나, 어플리케이션을 통해 때때로(재생을 위해 스케쥴된 미디어 콘텐츠가 없는 경우와 같은 때) 재생된 플리젠테이션(127) 내에서 선택적으로 요청될 수 있는 움직이는 섬네일과 같은 미디어 클립이다.
도 1과 관련하여 앞서 언급한 바와 같이, IC 컴포넌트(124)와 관련하여, 하나의 어플리케이션은 메뉴(280)의 사용자-선택가능 아이템(예컨대, 텍스트 또는 그래픽과 연관된 버튼)을 제공하는 특정 대화형 객체를 프리젠팅하는 것을 담당한다. 다른 하나의 어플리케이션은 그래픽 오버레이(290)를 제공하는 하나 이상의 대화형 객체를 프리젠팅하는 것을 담당한다. 도시된 바와 같이, 메뉴(280)은 미디어 클립 1 내지 4와 동시에 디스플레이되며, 그래픽 오버레이(290)는 미디어 클립 1(230) 및 미디어 클립 2의 일부와 동시에 디스플레이될 수 있다. 세번째 어플리케이션은 프리젠테이션을 위해 스케쥴된 미디어 콘텐츠가 없는 경우 스크립트 클립(255)을 프리젠트하는 것을 담당한다{도시된 바와 같이, 스크립트 클립(255)은 20초와 30초 사이에 재생가능하다}.
수평축(220)을 따라 타이틀(131)이 사용자에게 프리젠트될 수 있는 특정 양의 시간은 타이틀(131)의 재생 듀레이션(duration)(292)이라고 지칭된다. 재생 듀레이션(292) 내의 구체적인 시간은 타이틀 시간으로 지칭된다. 7개의 타이틀 시간("TTs"), 즉 TT1(293), TT2(294), TT3(295), TT4(296), TT5(297), TT6(298) 및 TT(299)가 프리젠테이션 타임라인(130) 상에 도시된다. 타이틀은 한번 재생되거나 한 번 이상{예컨대, 루프(looping) 방식으로} 재생될 수 있으므로, 재생 듀레이션(292)은 타이틀(131)의 하나의 반복(iteration)에 기초하여 결정된다. 재생 듀레이션(292)은 사전결정된 재생 속도(예컨대, 보통, 즉 1배속), 사전결정된 프레임 레이트 또는 사전결정된 타이밍 신호 상태를 포함하는 임의의 원하는 기준에 대하여 결정되나, 이들에 한정되는 것은 아니다. 재생 속도, 프레임 레이트 및 타이밍 신호는 도 4와 관련하여 이하 더 설명된다.
디스플레이 기술, 및 각각의 타이틀에 대한 클립과 대화형 객체 사이의 재생 시퀀스 및 타이밍 관계에 관한 구체적인 규칙과 같은 구현에 따른(implementation-specific) 인자들은 타이틀의 재생 듀레이션 및 타이틀 시간의 정확한 값에 영향을 줄 수 있다. 재생 듀레이션 및 타이틀 시간이라는 용어는 이러한 모든 구현에 따 른 상세사항을 포괄하도록 의도된다.
일반적으로 IC 컴포넌트(124)와 연관된 콘텐츠가 프리젠트될 수 있는 타이틀 시간은 사전결정되어 있으나, 사용자가 그러한 콘텐츠와 상호작용하는(interact) 때 취해지는 동작은 재생된 프리젠테이션(127)이 재생되고 있는 동안 사용자의 입력에 기초하여서만 결정될 수 있다. 예를 들어, 사용자는 재생된 프리젠테이션(127)의 재생 동안 특정 어플리케이션, 대화형 객체 및/또는 그와 연관된 추가 콘텐츠를 선택, 활성화 또는 비활성화할 수 있다.
재생 듀레이션(292) 내의 기타 시간 및/또는 듀레이션 역시 본 명세서에서 정의되고 설명된다. 미디어 프리젠테이션 간격(240)은 특정 클립(123)과 연관된 특정 콘텐츠가 재생될 수 있는 플레이 듀레이션(292)의 시작 및 종료 시간에 의해 정의된다. 예를 들어, 미디어 클립 1(230)은 시작 타이틀 시간 TT1(293) 및 종료 TT3(295)에 의해 정의되는 프리젠테이션 간격(240)을 갖고, 미디어 클립 2(250)는 시작 타이틀 시간 TT2(294) 및 종료 타이틀 시간 TT4(296)에 의해 정의되는 프리젠테이션 간격(240)을 갖고, 미디어 클립 3(251)은 시작 타이틀 시간 TT3(295) 및 종료 타이틀 시간 TT5(297)에 의해 정의되는 프리젠테이션 간격(240)을 갖고, 미디어 클립 4(253)는 시작 타이틀 시간 TT6(298) 및 종료 타이틀 시간 TT7(299)에 의해 정의되는 프리젠테이션 간격(240)을 갖고, 스크립트 클립(255)는 시작 타이틀 시간 TT5(297) 및종료 타이틀 시간 TT6(298)에 의해 정의되는 프리젠테이션 간격(240)을 갖는다.
프리렌더링(pre-rendering) 시간(220)은, 특정 클립(123)이 프리젠테이션 타 임라인(130)에 기초하여 재생될 수 있는 타이틀 시간에서 가변의 시간 옵셋 값에 기초한 양만큼 선행하는 타이틀 시간(또는 그 간격)이다{시간 옵셋 값 및 프리렌더링 시간(220)의 결정은 도 5 및 6과 관련하여 이하 설명됨}.
(어플리케이션 프리젠테이션 간격 및 어플리케이션 재생 듀레이션과 같은) 어플리케이션(155)과 연관된 시간 간격은 도 3과 관련하여 정의되고 설명된다.
도 1 및 도 2에 이어, 도 3은 단일 어플리케이션(155)의 기능 블럭도이다. 일반적으로, 어플리케이션(155)은 대화형 객체(280, 290 및 255)의 프리젠트를 담당하는 어플리케이션을 나타낸다(도 2에 도시됨). 어플리케이션(155)는 명령어(304)를 포함한다(이하 더 설명됨). 어플리케이션(155)은 어플리케이션 재생 듀레이션(320) 및 하나 이상의 어플리케이션 프리젠테이션 간격(321)과 연관되어 있다.
어플리케이션 재생 듀레이션(320)은, 어플리케이션(155)과 연관된 대화형 객체(125)가 재생된 프리젠테이션(127)의 수신자에게 프리젠트되고 및/또는 수신자에 의해 선택될 수 있는 재생 듀레이션(292)의 양(일부 또는 전부)에 관련한 특정 양의 시간이다. 도 2에서, 예컨대, 메뉴(280)를 담당하는 어플리케이션(155)은 TT1(293)과 TT7(299) 사이의 시간의 양으로 구성된 어플리케이션 재생 듀레이션을 갖는다. 그래픽 오버레이(290)를 담당하는 어플리케이션은 TT1(293)과 TT3(295) 사이의 시간의 양으로 구성된 어플리케이션 재생 듀레이션을 갖는다. 스크립트 클립(255)을 담당하는 어플리케이션은 TT5(297)과 TT6(298) 사이의 시간의 양으로 구성된 어플리케이션 재생 듀레이션을 갖는다.
특정 어플리케이션에 연관된 어플리케이션 재생 듀레이션(320)이 프리젠테이션 타임라인상에서 개념화되는 경우 획득되는 시작 및 종료 타이틀 시간에 의해 정의되는 간격은 어플리케이션 프리젠테이션 간격(321)이라고 지칭된다. 예를 들어, 도 2를 참조하면, 메뉴(280)를 담당하는 어플리케이션은 TT1(293)에서 시작해서 TT7(299)에 종료하는 어플리케이션 프리젠테이션 간격을 갖고, 그래픽 오버레이(290)를 담당하는 어플리케이션은 TT1(293)에서 시작해서 TT3(295)에 종료하는 어플리케이션 프리젠테이션 간격을 갖고, 스크립트 클립(255)을 담당하는 어플리케이션은 TT5(297)에서 시작해서 TT6(298)에 종료하는 어플리케이션 프리젠테이션 간격을 갖는다.
일부의 경우, 어플리케이션(155)은 하나 이상의 페이지(페이지는 도시하지 않음)를 가질 수 있다. 페이지는 특정 어플리케이션 재생 듀레이션(320) 및/또는 어플리케이션 프리젠테이션 간격(321) 내에 동시적으로 프리젠트될 수 있는 하나 이상의 대화형 객체의 논리적 그룹이다. 특정 페이지와 연관된 대화형 객체는 동시에, 순차적으로, 또는 이들의 조합으로 프리젠트될 수 있다. 소정의 타이틀과 연관된 어플리케이션 및 페이지의 수와, 각각의 어플리케이션 또는 페이지와 연관된 대화형 객체의 수는 일반적으로 설계상의 선택에 따른 논리적 차이이다. 예를 들어, 특정 초기 페이지의 지정은 필요하지 않거나, 어플리케이션의 둘 이상의 페이지가 동시에 프리젠트되거나, 어플리케이션이 페이지 없이(또는, 아무것도 포함하지 않는 초기 페이지로) 시작될 수 있다. 어플리케이션과 스크립트를 그대로(in tact) 두면서 어플리케이션의 페이지가 로드 및 언로드될 수 있다. 어플리케이션 의 실행 동안 메모리에 로드된 어플리케이션과 연관된 자원의 수 또는 양을 관리(예컨대, 제한)하는 것이 바람직한 경우, 다수의(multiple) 페이지가 사용될 수 있다.
명령어(304)는 실행시 사용자의 입력에 기초하여, 어플리케이션(155)에 연관된 대화형 객체(125)의 렌더링에 관한 태스크(기타 태스크들 중에서)를 수행한다. 사용자 입력의 하나의 유형(또는 그 결과)은 사용자 이벤트이다. 사용자 이벤트는 IC 컴포넌트(124)에 관련된 재생된 프리젠테이션(127)의 수신자에 의해 시작되는 동작 또는 사건이다. 일반적으로 사용자 이벤트는 비동기적이지만 반드시 그런 것은 아니다. 사용자 이벤트의 예로는 메뉴(280) 내의 버튼의 선택, 그래픽 오버레이(290)에 연관된 원의 선택 또는 스크립트 클립(255)의 발동(invocation)과 같은 재생된 프리젠테이션(127) 내의 대화형 객체와의 사용자 상호작용이 포함되나, 이에 한정되는 것은 아니다. 이러한 상호작용은 키보드, 원격제어, 마우스, 스타일러스 또는 음성 명령을 포함하는 이미 공지되어 있거나 추후 개발될 임의의 유형의 사용자 입력 장치를 사용하여 일어날 수 있다. 어플리케이션(155)은 시스템 이벤트, 문서 객체 모델 이벤트 또는 다른 유형의 이벤트와 같이, 사용자 이벤트가 아닌 이벤트에 응답할 수 있음을 이해하여야 한다.
일 구현에서, 명령어(304)는 컴퓨터 판독가능 미디어에 인코딩된 컴퓨터 판독가능 명령이다(이하, 도 8과 관련하여 설명됨). 본 명세서에 제시된 예에서, 명령어(304)는 스크립트(308) 또는 마크업 요소(303) 중 하나를 사용하여 구현된다. 일반적으로, 스크립트 또는 마크업 요소 중 하나가 단독으로 사용될 수 있으나, 스 크립트 및 마크업 요소의 조합은 고선명(high-definition) DVD 영화를 위한 광범위한 세트의 대화형 기능을 생성하는 것을 가능하게 한다.
스크립트(308)는 명령형(imperative) 프로그래밍 언어와 같은 비-선언형 프로그래밍 언어로 작성된 명령어(304)를 포함한다. 명령형 프로그래밍 언어는 프로세서에 의해 수행되기 위한 일련의 명령에 의해 연산을 기술한다. 스크립트(308)가 사용되는 대부분의 경우에 있어서, 스크립트는 사용자 이벤트에 응답하는데 사용된다. 그러나, 스크립트(308)는 마크업 요소를 단독으로 사용하여 쉽거나 효율적으로 구현되지 않는 문제들을 다루는 것과 같은, 다른 환경에서 유용하다. 그러한 환경의 예로는 스크립트 클립(255)의 프리젠테이션, 시스템 이벤트, 상태 관리 및 자원 관리(예컨대, 캐시되거나 지속적으로 저장된 자원에 액세스하는 것)의 특징을 처리하는 것이 포함된다. 일 구현에서, 스크립트(308)는 ECMA-262 사양에서 ECMA International에 의해 정의된 ECMA 스크립트이다. ECMA-262 하의 일반적인 스크립트 프로그래밍 언어는 자바 스크립트 및 J 스크립트를 포함한다. 일부 설정에서, ECMA-327과 같은 ECMA 스크립트(262)의 서브세트를 사용하여 308을 구현하는 것이 바람직할 수 있다.
마크업 요소(303)는 익스텐서블 마크업 언어("XML")와 같은 선언형 프로그래밍 언어로 작성된 명령어(304)를 나타낸다. XML에서, 요소는 시작태그(start-tags) 및 종료태그(end-tags)를 사용하여 XML 문서 내에 정의되는 정보의 논리적 유닛이다. XML 문서는 파싱되거나(parsed) 비파싱된(unparsed) 데이터를 보유하는, 엔티티라고 불리는(컨테이너라고도 불림) 저장 유닛으로 구성된 데이터 객체이 다. 파싱된 데이터는 캐릭터로 구성되어 있으며, 그 중 일부는 캐릭터 데이터를 형성하고, 일부는 마크업을 형성한다. 마크업은 문서의 저장 레이아웃과 논리 구조의 기술(description)을 인코딩한다. 하나의 XML 문서에는 하나의 루트 요소가 존재하며, 그 중 어느 부분도 임의의 다른 요소의 콘텐츠에 나타나지 않는다. 모든 기타 요소에 대하여, 시작태그 및 종료태그는 다른 요소의 콘텐츠 내에 존재하며, 서로 포개진다(nested).
XML 스키마(schema)는 XML 문서 클래스 문법(syntax)의 정의이다. 일부 XML 스키마는 월드와이드웹 컨소시움("W3C")에 의해 정의된다. 다른 XML 스키마는 고화질 비디오를 위한 DVD 사양에 따른 XML 문서에 있어서의 사용을 위해, 그리고 기타 용도를 위해 DVD 포럼에 의해 발표되어 왔다. 고화질 DVD 영화를 위한 기타 스키마뿐 아니라, 다른 대화형 멀티미디어 프리젠테이션을 위한 스키마도 가능함을 이해할 것이다.
높은 레벨에서, XML 스키마는 (1)요소 이름과 요소 유형을 연관시키는 전역(global) 요소 선언 및 (2)어트리뷰트(attribute), 서브요소(sub-element) 및 그 유형의 요소에 대한 캐릭터 데이터를 정의하는 유형 정의를 포함한다. 요소의 어트리뷰트는 이름/값 쌍을 사용하여 요소의 특정 속성(property)을 지정하며, 하나의 어트리뷰트는 단일 요소 속성을 지정한다.
도 1-3에 이어, 도 4는 타이밍 신호 관리 블록(108) 및 타이밍 신호(158)의 다양한 컴포넌트를 보다 자세히 도시하는 간략화된 기능 블록도이다.
타이밍 신호 관리 블록(108)은 프리젠테이션 시스템(100) 내의 구체적인 시 간이나 시간 듀레이션을 결정하는데 사용되는 클록 및/또는 타이밍 신호의 처리를 담당한다. 도시된 바와 같이, 연속적인 타이밍 신호(401)는 클록 소스(402)에 의해 사전결정된 레이트로 발생된다. 클록 소스(402)는 범용 컴퓨터 또는 특수목적용 전자 장치와 같은 처리 시스템과 연관된 클록일 수 있다. 일반적으로, 클록 소스(402)에 의해 생성된 타이밍 신호(401)는 실세계의 클록에 따라 계속적으로 변하는데, 실제 시간(real time) 1초 내에, 클록 소스(402)는 사전결정된 레이트로 1초에 상당하는 타이밍 신호(401)를 생성한다.
타이밍 신호(401)는 IC 프레임 레이트 계산기(404), 미디어 프레임 레이트 계산기(406), 시간 레퍼런스 계산기(408) 및 시간 레퍼런스 계산기(490)로 입력된다. IC 프레임 레이트 계산기(404)는 타이밍 신호(401)에 기초하여 타이밍 신호(405)를 생성한다. 타이밍 신호(405)는 "IC 프레임 레이트"라고 지칭되며, 이는 IC 데이터(134)의 프레임이 IC 관리자(104)에 의해 생성되는 레이트를 나타낸다. IC 프레임 레이트의 하나의 예시 값은 초당 30 프레임이다. 그러나, IC 프레임 레이트(405)의 주파수("프리젠테이션 클록 주파수"라고 지칭됨)는 동적으로 변경될 수 있다. 프리젠테이션 시스템(100)의 다양한 컴포넌트들 내의 처리 부하는 프리젠테이션 클록 주파수에 기초하여 변경될 수 있음이 이해될 것이다. IC 프레임 레이트 계산기(404)는 타이밍 신호(405)를 생성하기 위해 타이밍 신호(401)의 레이트를 감소시키거나 증가시킬 수 있다.
일반적으로, IC 데이터(134)의 프레임은 각각의 유효한 어플리케이션(155) 및/또는 그 페이지에 대해, 관련 있는 사용자 이벤트에 따른 유효한 어플리케이션 및/또는 페이지와 연관된 각각의 대화형 객체(125)의 렌더링을 포함한다. 예시를 위해, 유효한 어플리케이션은 프리젠테이션 타임라인(130)에 기초하여 재생 듀레이션(292)의 현재 타이틀 시간이포함되는 어플리케이션 프리젠테이션 간격(321)을 가지는 것이다. 어플리케이션이 둘 이상의 어플리케이션 프리젠테이션 간격을 가질 수 있다는 것이 이해될 것이다. 또한, 본 명세서에서 사용자 입력이나 자원 이용가능성에 기초하여 어플리케이션의 상태에 대해 구체적인 구별이 이루어지지 않는다는 것이 이해될 것이다.
미디어 프레임 레이트 계산기(406)도 타이밍 신호(401)에 기초하여 타이밍 신호{타이밍 신호(407)}를 생성한다. 타이밍 신호(407)는 "미디어 프레임 레이트"라고 지칭되며, 미디어 데이터(132)의 프레임이 미디어 콘텐츠 관리자(102)에 의해 생성되는 레이트를 나타낸다. 미디어 프레임 레이트는 IC 프레임 레이트(405)와 동일하거나 상이할 수 있다. 미디어 프레임 레이트의 일 예시 값은 초당 24 프레임이다. 미디어 프레임 레이트(407)의 주파수는 동적으로 변화할 수 있다. 그러나, 미디어 프레임 레이트 계산기(406)는 타이밍 신호(407)를 생성하기 위해 타이밍 신호(401)의 레이트를 감소시키거나 증가시킬 수 있다.
클록 소스(470)는 클립(123)과 연관된 정보가 미디어 소스(161)로부터 생성되는 레이트를 관장하는 타이밍 신호(471)를 생성한다. 클록 소스(470)는 클록(402)과 동일한 클록일 수 있고, 또는 클록 소스(402)와 동일한 클록에 기초할 수 있다. 다른 방법으로, 클록(470 및 402)은 완전히 상이할 수 있고 및/또는 상이한 소스를 가질 수 있다. 마찬가지로, 미디어 프레임 레이트(407)는 타이밍 신 호(471)와 동일하거나 동일한 값에 기초할 수 있고, 또는 타이밍 신호는 상이할 수 있다.
클록 소스(470)는 미디어 상태 표시자(indicator) 블록(480)에 의해 생성되는 미디어 상태 표시자 신호(481)에 기초하여 타이밍 신호(471)의 레이트("미디어 클록 주파수"라고 지칭됨)를 조정한다. 미디어 상태 표시자 신호(481)는 특정 미디어 소스(160)(도 1에 도시)로부터의 비디오, 오디오 또는 데이터 정보의 특정 검색 상태를 나타낸다. 그러한 검색 상태는 사용자 입력 또는 재생목록(128)의 콘텐츠에 직접 또는 간접적으로 기초할 수 있다(도 1에 도시). 미디어 클록 주파수는 인코딩 또는 디코딩 레이트와 같은 미디어 소스 특성(162)에 기초하여 변화할 수도 있다. 따라서, 미디어 클록 주파수는 클립에 따라 변할 수 있다.
특정 사용자 입력은 재생된 프리젠테이션(127)의 재생 속도를 변경하고, 결국, 특정 미디어 소스로부터의 비디오, 오디오 또는 데이터 정보의 검색 속도를 변경한다. 예를 들어, 재생된 프리젠테이션(127)은 보통 속도(normal speed)로 감기(forward) 방향으로 진행할 수 있으며, 보통 속도보다 빠르거나 느린 속도로 감기 방향 및 되감기(reverse) 방향 모두로 진행할 수도 있다. 보통 속도는 상대적인 용어이며, 보통 속도는 프리젠테이션에 따라, 그리고 클립에 따라 변화할 수 있다는 것이 이해될 것이다.
특정 미디어 소스로부터의 비디오, 오디오 또는 데이터 정보의 검색은 재생된 프리젠테이션(127)의 다양한 재생 속도에 기초하여 정의될 수 있다. 예를 들어, 보통 재생 검색 상태는 재생된 프리젠테이션(127)이 감기 방향으로 보통 속도 로 진행하는 경우 일어나도록 정의된다. 느리게-되감기 검색 상태는 재생된 프리젠테이션(127)이 되감기 방향으로 실제 시간보다 느리게 진행하는 경우 일어나도록 정의된다. 빠르게-되감기 검색 상태는 재생된 프리젠테이션(127)이 되감기 방향으로 실제 시간보다 빠르게 진행하는 경우 일어나도록 정의된다.
빠르게-되감기 및 빠르게-감기 검색 상태 동안에, 특정 미디어 콘텐츠가 종종 건너뛰어진다(skipped). 다른 사용자 입력은 사용자가 영화의 한 부분에서 다른 부분으로 점프하는 경우와 같이 특정 콘텐츠의 재생이 건너뛰어지도록 할 수 있다{예컨대, 메뉴(280)와 같은 대화형 메뉴로부터 선택을 함으로써}. 사용자는 다양한 지점 및 다양한 시간에서 영화를 시작하고 중지시킬 수도 있다.
특정 미디어 소스(160)로부터의 특정 클립(123)과 연관된 비디오, 오디오 또는 데이터 정보의 위치를 정하고(locating) 및/또는 재생을 시작하는 것과 연관된 검색 상태가 정의될 수도 있다. 예를 들어, 폐쇄(closed) 상태는 특정 클립(123)과 연관된 비디오, 오디오 또는 데이터 정보가 특정 미디어 소스(160)로부터 판독이 완료되기 전에 일어나도록 정의된다. 준비(ready) 상태는 특정 미디어 소스(160)으로부터의 제1 그룹의 비디오, 오디오 또는 데이터 정보 샘플이 디코딩되고 렌더링될 준비가 되었을 때 일어나도록 정의된다. 프리롤링(pre-rolling) 상태는 폐쇄 상태와 준비 상태 사이에서, 특정 미디어 소스(160)로부터의 제1 그룹의 비디오, 오디오 또는 데이터 정보 샘플이 렌더링되도록 준비하기 위해 단계들이 취해지는 때 일어나도록 정의된다. 이러한 단계는 특정 미디어 소스(160)로부터 정보를 판독하는 단계, 상기 정보를 디멀티플렉싱, 디코딩 및/또는 해독하는 단계를 포함하나 이에 한정되는 것은 아니다. 특정 미디어 소스로부터의 제1 그룹의 정보 샘플이 반드시 특정 클립(123) 내에서 일어나는 제1 그룹의 샘플은 아니며, 제1 그룹의 샘플이 정의되는 방식은 인코딩 또는 암호화 포맷 또는 프로토콜과 같은 인자들에 기초하여 프리젠테이션마다 변화할 수 있다는 것을 이해할 수 있을 것이다.
경과된(elapsed) 클립 재생 시간(452)은 활성 클립(123)과 연관된 특정 프리젠테이션 간격(240) 내에서 경과된 시간의 양을 나타낸다. 본 명세서에서의 설명을 목적으로, 활성 클립은 프리젠테이션 타임라인(130)에 기초하여 재생 듀레이션(292)의 현재 타이틀 시간이 포함되는 프리젠테이션 간격(240)(도 2에 도시)을 가지는 것이다. 시간 레퍼런스 계산기(454)는 시간 레퍼런스(452)를 수신하고 미디어 시간 레퍼런스(455)를 생성한다. 미디어 시간 레퍼런스(455)는 하나 이상의 시간 레퍼런스(452)를 기초로 경과된 재생 듀레이션(292)의 총량을 나타낸다. 일반적으로, 둘 이상의 클립이 동시에 재생되고 있는 경우, 단지 하나의 시간 레퍼런스(452)가 미디어 시간 레퍼런스(455)를 생성하기 위해 사용된다. 미디어 시간 레퍼런스(455)를 결정하는데 사용되는 특정 클립, 및 다수의 클립에 기초하여 미디어 시간 레퍼런스(455)를 결정하는 방법은 구현에 있어서의 선호 문제이다.
시간 레퍼런스 계산기(408)는 타이밍 신호(401), 미디어 시간 레퍼런스(455) 및 미디어 상태 표시자 신호(481)를 수신하고, 타이틀 시간 레퍼런스(409)를 생성한다. 타이틀 시간 레퍼런스(409)는 타임 레퍼런스 계산기(408)로의 하나 이상의 입력에 기초하여 재생 듀레이션(292) 내에 경과된 시간의 총량을 나타낸다.
시간 레퍼런스 계산기(490)는 타이밍 신호(401) 및 타이틀 시간 레퍼런 스(409)를 수신하고, 어플리케이션 시간 레퍼런스(들)(492) 및 페이지 시간 레퍼런스(들)(494)를 생성한다. 단일한 어플레케이션 시간 레퍼런스(492)는 연속적인 타이밍 신호(401)에 대해 특정 어플리케이션 재생 듀레이션(320)(도 3과 관련하여 도시되고 설명됨)의 경과 시간의 양을 나타낸다. 어플리케이션 시간 레퍼런스(492)는 타이틀 시간 레퍼런스(409)가 현재 타이틀 시간이 특정 어플리케이션의 어플리케이션 프리젠테이션 간격(321) 내에 존재한다는 것을 나타내는 경우에 결정된다. 어플리케이션 시간 레퍼런스(492)는 어플리케이션 프리젠테이션 간격(321)의 종료시에 리셋된다(예컨대, 비활성화되거나 다시 시작한다). 어플리케이션 시간 레퍼런스(492)는 사용자 이벤트에 응답하거나 트릭 재생(trick play)이 발생하는 경우와 같이 다른 환경에서 리셋될 수도 있다.
페이지 시간 레퍼런스(494)는 연속적인 타이밍 신호(401)에 관해, 어플리케이션의 특정 페이지에 대한 재생 듀레이션 내에서 경과된 시간의 양을 나타낸다. 어플리케이션의 특정 페이지에 대한 페이지 시간 레퍼런스(494)는 타이틀 시간 레퍼런스(409)가 현재 타이틀 시간이 적용가능한 페이지 프리젠테이션 간격(도시하지 않음) 내에 존재한다는 것을 나타내는 경우에 결정된다. 페이지 프리젠테이션 간격은 어플리케이션 프리젠테이션 간격(321)(도 3에 도시)의 서브 간격이다. 페이지 시간 레퍼런스(494)는 적용가능한 페이지 프리젠테이션 간격(도시하지 않음)의 완료시 리셋될 수 있다. 페이지 시간 레퍼런스(494)는 사용자 이벤트에 응답하거나 트릭 재생이 발생하는 경우와 같이 다른 환경에서 리셋될 수도 있다. 어플리케이션 프리젠테이션 간격(321) 및/또는 페이지 프리젠테이션 간격의 서브 간격이 될 수 있는 대화형 객체 프리젠테이션 간격도 정의될 수 있음을 이해할 것이다.
표 1은 프리젠테이션 시스템(100)에 의한 재생된 프리젠테이션(127)의 재생 동안의 예시적 사건과, 어플리케이션 시간 레퍼런스(492), 페이지 시간 레퍼런스(494), 타이틀 시간 레퍼런스(409) 및 미디어 시간 레퍼런스(455) 상에서 그러한 사건의 효과를 예시한다.
사건 어플리케이션 시간(492) 페이지 시간(494) 타이틀 시간(409) 미디어 시간(455)
영화 시작 어플리케이션이 유효하지 않으면/유효화될때까지 비활성 적용가능한 페이지가 유효하지 않으면/유효할 때까지 비활성 시작(예컨대, 0에서) 시작(예컨대, 0에서)
다음 클립 시작 어플리케이션이 유효하지 않으면/유효화될때까지 비활성 적용가능한 페이지가 유효하지 않으면/유효할 때까지 비활성 이전 타이틀 시간 및 경과된 클립 재생 시간에 기초하여 결정 리셋/재시작
다음 타이틀 시작 어플리케이션이 유효하지 않으면/유효화될때까지 비활성 적용가능한 페이지가 유효하지 않으면/유효할 때까지 비활성 리셋/재시작 리셋/재시작
어플리케이션이 유효화됨 시작 적용가능한 페이지가 유효한 경우 시작 계속/영향 없음 계속/영향 없음
트릭 재생 점프한 타이틀 시간에서 적용가능한 어플리케이션이 유효한 경우 리셋/재시작; 그렇지 않으면 비활성화됨 점프한 타이틀 시간에서 적용가능한 어플리케이션이 유효한 경우 리셋/재시작; 그렇지 않으면 비활성화됨 점프한 곳의 위치에 기초하여, 프리젠테이션 타임라인상의 경과된 재생 듀레이션에 대응하는 시간으로 전진하거나 후퇴 타이틀 내의 점프한 곳의 위치에서 활성 클립의 경과된 클립 재생 시간에 대응하는 시간으로 전진 또는 후퇴
재생 속도 N배 변경 계속/효과없음 계속/효과없음 N배 빠르게 경과 N배 빠르게 경과
영화 멈춤 계속/효과없음 계속/효과없음 중지 중지
영화 재개 계속/효과없음 계속/효과없음 복귀 복귀
다양한 타임라인, 클록 소스, 타이밍 신호 및 타이밍 신호 레퍼런스로의 액세스를 갖는 것은 프리젠테이션 시스템(100)의 능력을 향상시켜, 재생된 프리젠테이션(127) 내의 IC 데이터(124) 및 미디어 데이터(132)의 프레임 레벨 동기화를 달성하고, 미디어 컴포넌트(122)를 포함하는 클립의 글리치 없는 프리젠테이션을 우선순위화한다.
도 1-4에 이어, 도 5는 프리젠테이션 시스템(100)과 같은 프리젠테이션 시스템의 기능을 향상시켜, 도 2의 프리젠테이션 타임라인(130) 상에 도시된 클립(123)과 같은 특정 프리젠테이션의 미디어 콘텐츠를 글리치 없는 방식으로 프리젠트하기 위한 한 방법의 흐름도이다.
방법은 블록(500)에서 시작하여, 제1 시간에서 제1 미디어 소스로부터의 제1 세트의 미디어 샘플의 재생이 개시되는 블록(502)으로 계속된다. 다음으로, 블록(504)에서, 제2 미디어 소스로부터 제2 시간에 재생가능한 제2 세트의 미디어 샘플이 식별된다. 제2 미디어 소스의 정적 특성은 블록(506)에서 확인된다. 프리젠테이션 시스템의 동적 특성 역시 블록(508)에서 확인된다. 다음으로, 블록(510)에서, 정적 및 동적 특성에 기초하여 시간 옵셋 값이 결정된다. 마지막으로, 블록(512)에서, 제2 세트의 미디어 샘플이 시간 옵셋 값에 기초한 시간에 프리렌더링된다.
예시를 위해, 도 5의 흐름도의 방법이, 특히 프리젠테이션 타임라인(130)(도 2에 도시)에 따라 사용자에게 프리젠트될 수 있는 미디어 컴포넌트(122) 및 어플리케이션(155)에 관해, 프리젠테이션 시스템(100) 환경에서 설명된다.
도 2를 참조하면, 처리 및 디코딩 자원이 제한된 환경에서 미디어 클립 1(230), 미디어 클립 2(250), 미디어 클립 3(251), 미디어 클립 4(253)의 글리치 없는 재생을 확실히 하는 것과, 스크립트 클립(255)의 재생 시간을 최대화하는 것이 바람직하다. 일 구현에서, 프리젠테이션 시스템(100)은 하나의 중앙 처리 유닛, 하나의 그래픽 처리 유닛 및 하나의 디코더를 포함하며, 기타 구성도 가능하다. 따라서, 클립이 프리젠테이션을 위해 프리젠테이션 타임라인(130) 상에서 스케쥴된 타이틀 시간에 또는 그 이전에, 각각의 클립의 적어도 일부에 대한 준비 검색 상태{도 4와 관련하여 도시되고 설명된 미디어 상태 표시자 신호(481)에 의해 표시됨}에 도달하는 것이 바람직하다. 이 점에서, 프리롤링 검색 상태(도 4와 관련하여 설명됨)를 완료하기 위해 적절한 시간에 떠나는 것이 중요하나, 스크립트 클립(255) 또는 기타 클립의 재생과 같은 프리젠테이션 시스템 내에서 일어나는 다른 중요한 활동으로의 과도한 부정적 영향을 최소화하는 것도 중요하다. 특정 클립에 대한 프리롤링 검색 상태 내에서 일어나는 프리렌더링 활동으로 인해 다른 클립이 중지될 수 있다. 과도한 부정적 영향을 최소화할 수 있는 한 가지 방법은 클립이 프리젠테이션되도록 스케쥴된 타이틀 시간에, 또는 그에 가깝게 프리롤링 검색 상태를 완료하는 것이다.
일례에서, 미디어 파이프라인 1을 통한 미디어 클립 1(230)의 재생과 미디어 파이프라인 2를 통한 미디어 클립 3(251)의 재생 사이의 전이가 일어나는 시간인 TT3(295)에 또는 그 이전에, 미디어 클립 3(251)의 적어도 일부에 대한 준비 상태에 도달하는 것이 바람직하다. TT3(295)에서의 전이는 미디어 클립 2(250)이 미디어 파이프라인 1을 통해 재생되는 동안(그래서 현존하는 미디어 처리 부하가 존재하는 동안) 발생하기 때문에, 미디어 클립 3(251)의 일부에 대한 프리롤링 검색 상태에 진입하기 위해 TT3(295)까지 대기하거나 그에 너무 가까이까지 대기하면, 사용자가 TT3에서 글리치를 경험할 수 있다. 예를 들어, 비디오가 TT3에서 재생되도록 스케쥴된 경우, 비디오는 몇 초간 중지하거나, 일부 비디오가 드롭될(dropped) 수 있다. 오디오가 TT3에서 재생을 위해 스케쥴되는 경우, 몇 초간 무음(silence)이거나 일부 오디오가 드롭될 수 있다. 미디어 클립 2(250), 미디어 클립 3(251) 또는 미디어 클립 2(250)과 미디어 클립 3(251) 모두의 재생에 대해 글리치가 발생할 수 있다.
다른 예에서, TT6(298)에 또는 그 이전에, 미디어 파이프라인 2를 통해 재생되는 미디어 클립 4(253)의 적어도 일부에 대한 준비 상태에 도달하는 것이 바람직하다. TT6(298)에서의 전이는 스크립트 클립(255)이 미디어 파이프라인 1을 통해 재생되고 있는 동안 발생하기 때문에, 미디어 클립 4(253)의 일부에 대한 프리롤링 검색 상태에 진입하기 위해 TT6(298)까지 대기하거나 그에 너무 가까이까지 대기하는 것은 사용자로 하여금 TT6에서 글리치를 경험하도록 하는 결과가 될 수 있다. 그러나, 미디어 클립 4(253)의 일부에 대한 프리롤링 검색 상태에 너무 일찍 진입하는 것은 스크립트 클립(255)의 재생 시간을 감소시키는 원치않는 효과를 발생시킬 수 있다.
따라서, 미디어 클립 3(251) 및 미디어 클립 4(253)의 적어도 일부에 대한 프리렌더링 시간(220)을 결정하는 것이 바람직하다. 프리젠테이션 콘텐츠(120)/재생된 프리젠테이션(127)의 재생이 감기 방향으로 일어나고 있는 경우, 미디어 클립 3(251)에 대한 프리렌더링 시간은 TT3(295) 이전에 발생하고, 미디어 클립 4(253)에 대한 프리렌더링 시간(220)은 TT6(298) 이전에 발생한다. 프리렌더링 시간은 되감기 방향으로 일어나는 재생에 대해서 제공될 수도 있음이 이해될 것이다.
일반적으로 프리렌더링 시간(220)은 선행하는 클립(들)의 재생 동안 한 번 이상 계산된 시간 옵셋 값에 기초하여 결정된다. 일 구현에서, 시간 옵셋 값을 결정하는 단계와 연관된 하나 이상의 단계는 선행하는 클립(들)의 재생이 개시되는 때에 수행될 수 있고, 다음 클립의 렌더링을 위한 시간이 다가옴에 따라(그러나 프리렌더링 시간에 도달하기 전에) 하나 이상의 단계가 선행하는 클립(들)의 재생 동안 다른 시간에 반복될 수 있다.
시간 옵셋 값의 하나의 특징은, 미디어 소스(160)의 하나 이상의 미디어 소스 특성(162)(도 1에 도시)을 확인함으로써 결정된다. 한편, 상기 미디어 소스(160)로부터 그 다음의 재생가능한 클립이 수신될 수 있다. 미디어 소스의 위치, (인코딩 또는 디코딩 포맷이나 프로토콜, GOP 사이즈 설정, 압축 설정 또는 품질 설정과 같은) 코덱 파라미터 또는 설정 또는 (암호화 유형, 포맷 또는 프로토콜과 같은) 암호화 파라미터 또는 설정과 같은 미디어 소스 특성(162)은 특정 클립이나 그 일부에 대한 프리롤링 검색 상태를 완료하기 위해 필요한 처리 또는 디코딩 자원(그리고 결국 시간)에 영향을 준다. 디코딩되는 클립의 영역의 사이즈 역시 프리롤링 검색 상태를 완료하기 위해 필요한 시간에 영향을 줄 수 있는 정적 특성이다.
미디어 클립 3(251) 및 미디어 클립 4(253)의 일부에 대한 프리렌더링 시간을 결정하는 예에서, 미디어 소스 1 및 미디어 소스 2 각각의 하나 이상의 미디어 소스 특성(162)이 확인된다. 일 구현에서, 미디어 소스 1의 하나 이상의 미디어 소스 특성(162)은 테이블과 같은 데이터 구조에 저장된다. 미디어 소스 2의 하나 이상의 미디어 소스 특성(162) 역시 테이블과 같은 데이터 구조에 저장된다. 미디어 소스 1 및 미디어 소스 2의 미디어 소스 특성을 저장하는 데이터 구조들은 동일한 데이터 구조 또는 상이한 데이터 구조일 수 있다. 데이터 구조(들)는 미디어 콘텐츠 관리자(102)에 의해 액세스되거나 저장되고, 프리젠테이션 관리자(106)로 전달된다. 미디어 콘텐츠 관리자(102)는 데이터 구조들 자체, 또는 데이터 구조들에 기초한 초기 또는 디폴트 값을 갖는 시간 옵셋 값을 전달할 수 있다. 다른 방법으로, 프리젠테이션 관리자(106){또는 프리젠테이션 시스템(100)의 다른 컴포넌트}는 미디어 소스 특성(들) 및/또는 데이터 구조(들)를 직접 액세스하고, 초기 시간 옵셋 값을 결정한다.
시간 옵셋 값의 제2 특징은 프리젠테이션 시스템(100)의 하나 이상의 동적 특성을 확인함으로써 결정된다. 동적 특성은 프리젠테이션 시스템(100)의 동작 동안 변화할 수 있는 처리 또는 디코딩 동작에 영향을 주는 조건을 나타낸다. 동적 특성의 예로는 미디어 클록 주파수, 프리젠테이션 클록 주파수, 미디어 처리 부하, 일반 처리 부하 및 미디어 상태 표시자 신호(481)의 값(들)이 포함되나, 이에 한정되는 것은 아니다.
미디어 클립 3(251) 및 미디어 클립 4(253)의 일부에 대한 프리렌더링 시간을 결정하는 예로서, 프리젠테이션 시스템(100)의 하나 이상의 동적 특성은 특정 미디어 소스의 정적 특성(들)에 대해 설정된 초기 시간 옵셋 값(들)에 영향(예컨대, 증가)을 줄 수 있다. 일반적으로, 프리젠테이션 시스템(100)의 처리 또는 디코딩 부하가 높은 경우, 프리롤링 검색 상태를 완료하기 위해 더 많은 시간이 필요하고, 시간 옵셋이 증가한다.
처리 및/또는 디코딩 부하는, 미디어 처리 부하가 증가하는 경우(예컨대, 다수의 클립이 동시에 재생되고 있고 및/또는 미디어 클록 주파수가 높은 경우), 그래픽 처리 부하가 증가하는 경우(예컨대, 프리젠테이션 클록 주파수가 높은 경우), 일반 처리 부하가 증가하는 경우(예컨대, 안티바이러스 프로그램과 같은 기타 프로그램이 동시에 실행되고 있는 경우) 및 미디어 상태 표시자 신호(481)가 일반 재생 검색 상태와 다른 검색 상태를 나타내는 경우(예컨대, 재생된 프리젠테이션이 일반 속도보다 빠르거나 느린 속도로 감기 방향 또는 되감기 방향으로 진행하고 있는 경우)와 같이 다양한 상황에서 증가한다.
미디어 컴포넌트(122)의 재생 속도에 영향을 주는 사용자 입력(예컨대, 트릭 재생, 멈춤, 느리게-감기, 바르게-감기, 느리게-되감기 또는 빠르게-되감기)을 수신하는 것은 글리치 없는 방식으로 미디어 컴포넌트(122)를 프리젠트하는데 있어 문제를 악화시킬 수 있는데, 이는 미디어 컴포넌트(122)가 보통 속도로 진행하는 경우보다, 미디어 컴포넌트(122)의 재생 속도가 영향받는 경우의 시간 동안 미디어 소스(들)(160)로부터 활성 클립의 특정 부분을 예측하고 준비하기 위해 더 많은 처리 및 디코딩 자원이 사용되기 때문이다.
도 6은 감기 방향으로 보통 속도가 아닌 속도에서 미디어 콘텐츠(122)를 재생하는 것과 연관된 특정 처리 단계를 도시하는 예시적 미디어 타임라인(142){미디어 프레임 레이트(407)에 대한}의 개략도이다. 다양한 프레임 번호 프리젠테이션 시간(602)이 미디어 타임라인(142) 상에 표시된다. 프레임 번호 프리젠테이션 시간(602)은 개별적으로 번호지워진 세트의 미디어 데이터(132)가 프리젠트될 수 있는 재생 듀레이션(292)(도 2에 도시) 내의 시간을 나타낸다. 도시된 바와 같이, 프레임 번호 프리젠테이션 시간(602)은 프레임 번호 시간들(602)간의 주기적 미디어 시간 간격(604)의 듀레이션을 정의하는 미디어 프레임 레이트(407)에 기초한 레이트로 발생한다. 비록 미디어 클록 주파수가 특정 클립에 대한 인코딩 프레임 레이트에 기초하여 변화할 수 있지만, 미디어 프레임 레이트(407)가 특정 클립(123)이 인코딩된 프레임 레이트와 동일할 필요는 없다는 점에 유의한다. (프리젠테이션 클록 주파수는 동적으로 변화할 수도 있으나) IC 프레임 레이트(405)(도시하지 않음)는 초당 30 프레임으로 가정된다.
재생 듀레이션(292)의 현재 경과된 재생 시간(608)이 미디어 타임라인(142) 상에 도시된다. 현재 경과된 재생 시간(608)은 예컨대, 타이틀 시간(409)의 현재 값일 수 있다. 다음 프리젠트될 수 있는 프레임 번호 프리젠테이션 시간(614)이 또한 도시된다. 다음 프리젠트될 수 있는 프레임 번호 프리젠테이션 시간(614)은 사용자에게 프리젠트될 수 있는 {현재 경과된 재생 시간(709)/타이틀 시간(409)과 연관된 프레임 번호 후의} 다음 프레임 번호와 연관된 프레임 번호 프리젠테이션 시간(602)을 나타낸다. 다음 프리젠트될 수 있는 프레임 번호는 재생목록(128)에 기초하여 그 다음 계속되는 프레임 번호가 될 수 있거나, 현재 경과된 재생 시간(608)에 연관된 프레임 번호로부터 떨어져 있는 하나 이상의 프레임 번호 프리젠테이션 시간(602)의 프레임 번호일 수 있다. 보통 재생 속도 동안, IC 프레임 레이트(407)에 기초한 양을 현재 IC 프리젠테이션 시간(710)에 부가함으로써, 후속 IC 프리젠테이션 시간(712)이 선택된다.
그러나, 재생 상태가 일반 재생 속도가 아님을 미디어 상태 표시자 신호(481)가 표시하는 경우(예컨대, 빠르게-감기 또는 빠르게-되감기) 다음 프리젠트될 수 있는 프레임 번호 시간(614)을 확인하기 위한 한가지 방법은 재생 속도 및 미디어 프레임 레이트(407)에 기초하여 이미 지나간 재생 듀레이션(292)의 경과된 시간(620){현재 경과된 재생 시간(608)/타이틀 시간(409)에 부가하여}의 양을 예측하는 것이다.
일 구현에서, 경과된 시간(620)의 예측된 양은 현재 경과된 재생 시간(608)/타이틀 시간(409)에서 미디어 콘텐츠의 프리젠테이션 이후로 미디어 타임라인(142) 상의 얼마나 많은 예측된 프레임 번호 프리젠테이션 시간(602)이 지나갔는지 평가함으로써 계산된다. 예를 들어, 경과된 시간(620)의 에측된 양은 승수(multiplier) 값을 현재 경과된 재생 시간(608)에 부가함으로써 계산될 수 있다. 승수 값은 재생 속도 인자(재생 속도 변화의 방향에 따라 양 또는 음의 수가 될 수 있음)와 프레임 레이트 인자를 곱하여 획득된다. 재생 속도 인자는 재생 속도를 나타내는 값을 미디어 프레임 레이트(407)로 나눔으로써 획득된다. 프레임 레이트 인자는 미디어 프레임 레이트(407)를 IC 프레임 레이트(405)로 나눔으로써 획득된다.
다음으로, 경과된 시간(620)의 예측된 양은 그 다음 프리젠트될 수 있는 프레임 번호 프리젠테이션 시간(614)이 될 특정 프레임 번호 프리젠테이션 시간(602)을 위치시키는데 사용된다. 종종 다양한 재생 속도에서, 경과된 시간(620)의 예측된 양{그리고 그에 대응하는 프레임 번호 프리젠테이션 시간(602)}과 대응하는 다음 프리젠트될 수 있는 프레임 번호 프리젠테이션 시간(614) 사이에 패턴이 관측될 수 있다. 그러한 패턴의 인식은 각각의 프레임 번호 프리젠테이션 시간(602)에서 계산을 수행해야하는 필요를 감소시킬 수 있다. 패턴은, 특정 프레임 번호 프리젠테이션 시간(602)에 기초하여 다음 프레임 번호 프리젠테이션 시간(614)을 찾는데 사용될 수 있는 사전결정된 테이블이나 데이터 구조에 표시될 수 있다. 사전결정된 데이터 구조나 테이블을 이러한 방식으로 사용하는 경우, 특정 프레임의 렌더링 및 기타 조정이 스킵될 수 있다. 또한, 다수의 미디어 타임라인이 동시에 처리될 수 있다(예컨대, 둘 이상의 클립이 재생되고 있는 경우의 예).
다시 도 5의 흐름도를 참조하면, 프리젠테이션 시스템(100)의 하나 이상의 동적 특성을 정확히 밝히는 것은, 미디어 클립이 재생을 위해 스케쥴되는 시간 또는 그 시간 근처에서 완료될 앞으로 나올 미디어 클립에 대한 프리롤링 및 준비 검색 상태를 허용하는 시간 옵셋 값{따라서 프리렌더링 시간(220)}의 결정에 도움이 된다는 것을 알 수 있다. 미디어 클립 3(251) 및 미디어 클립 4(253)의 일부에 대한 프리렌더링 시간을 결정하는 예에서, 프리젠테이션 클록 주파수, 미디어 클록 주파수 또는 미디어 상태 표시자 신호(481)에 의해 표시되는 현재 검색 상태와 같은 하나 이상의 동적 특성에 있어서의 시간 옵셋 값이 증가하여, 프리롤링 검색 상태를 완료하기 위해 더 많은 시간을 제공할 수 있다.
일 구현에서, 특정 클립에 대한 프리렌더링 시간(220)을 결정하기 위해 사용되는 시간 옵셋 값은 프리젠테이션 관리자(106) 및 미디어 콘텐츠 관리자(102) 사이의 협상을 통해서 도달된다. 프리젠테이션 관리자(106)는 앞으로 나올 클립의 미디어 소스의 하나 이상의 정적 특성{일 구현에서 테이블과 같은 하나 이상의 데이터 구조를 통해 미디어 콘텐츠 관리자(102)로부터 수신되거나 확인됨}에 대하여 결정된 초기 또는 디폴트 시간 옵셋 값으로 시작한다. 다음으로, 프리젠테이션 관리자(106)는 하나 이상의 동적 특성에 기초하여 초기 시간 옵셋 값을 조정한다(현재 클립(들)의 재생 동안 한 번 이상). 다음으로, 조정된 시간 옵셋 값은, 현재 미디어 처리 부하에 기초하여 시간 옵셋 값을 더 조정하고 더 조정된 시간 옵셋 값을 프리젠테이션 관리자(106)로 전달하는 미디어 콘텐츠 관리자(102)로 전달된다. 다음으로, 프리젠테이션 관리자(106)는, 더 조정된 옵셋 값에 기초하여 특정 프리렌더링 시간(220)에, 앞으로 나올 클립을 프리롤링 검색 상태로 위치시키도록 미디어 콘텐츠 관리자(102)에게 지시한다. 다른 구현 역시 가능하다. 다른 일 구현에서, 미디어 콘텐츠 관리자(102)가 앞으로 나올 클립(들)에 대한 정보를 가지고 있는 경우, 미디어 콘텐츠 관리자(102)는 프리렌더링 시간을 직접 결정할 수 있다. 다른 일 구현에서, 프리젠테이션 시스템(100)의 단일한 컴포넌트는 시간 옵셋 값 및/또는 프리렌더링 시간을 결정할 수 있다.
도 5에 도시된 과정(들)은 이하 도 7과 관련하여 설명되는 프로세서(702)와 같은 하나 이상의 범용, 다목적 또는 단일목적 프로세서에서 구현될 수 있다. 구체적으로 언급되지 않는 이상, 본 명세서에 기재된 방법은 특정 순서나 시퀀스로 제한되지 않는다. 또한, 기재된 방법이나 요소의 일부는 동시에 일어나거나 수행될 수 있다.
도 7은 프리젠테이션 시스템(100)의 다양한 기능적 컴포넌트들을 구현하는데 사용되거나, 그들에 의해 액세스되거나, 그들에 포함될 수 있는 특정 기능적 컴포넌트를 도시하고 있는 범용 연산 유닛(700)의 블럭도이다. 연산 유닛(700)의 하나 이상의 컴포넌트는 IC 관리자(104), 프리젠테이션 관리자(106) 및 미디어 콘텐츠 관리자(102)를 구현하는데 사용되거나, 그들에 의해 액세스되거나, 그들에 포함될 수 있다. 예를 들어, 도 7의 하나 이상의 컴포넌트는 프리젠테이션 시스템(100)의 기능(전부 또는 일부)을 다양한 방식으로 구현하기 위해 함께 또는 개별적으로 패키지될 수 있다.
프로세서(702)는 컴퓨터 판독가능 미디어(704) 및 컴퓨터 프로그램(706)에 응답한다. 현실 또는 가상의 프로세서가 될 수 있는 프로세서(702)는, 컴퓨터 판독가능 명령어를 실행함으로써 전자 장치의 기능을 제어한다. 프로세서(702)는 특정 프로세스를 수행하기 위해서 어셈블리, 컴파일 또는 기계 레벨에서 명령어를 실행할 수 있다. 이러한 명령어는 소스 코드 또는 임의의 기타 알려진 컴퓨터 프로그램 설계 툴을 사용하여 생성될 수 있다.
컴퓨터 판독가능 미디어(704)는, 프로세서(702)에 의해 실행가능한 명령어와 같은 컴퓨터 판독가능 데이터의 기록, 저장 또는 전송이 가능한 임의의 형태의, 그리고 현재 공지되어 있거나 추후 개발될 임의의 수 및 조합의 로컬 또는 리모트 장치를 나타낸다. 특히, 컴퓨터 판독가능 미디어(704)는 반도체 메모리(예컨대, ROM, 임의의 유형의 PROM, RAM 또는 플래시 메모리), 자기 저장 장치{예컨대, 플로피 디스크 드라이브, 하드 디스크 드라이브, 자기 드럼, 자기 테이프 또는 광자기 디스크(magneto-optical disk)}, 광 저장 장치{예컨대, 임의의 유형의 CD(compact disk) 또는 DVD(digital versatile disk)}, 버블 메모리, 캐시 메모리, 코어 메모리, 홀로그래픽 메모리, 메모리 스틱, 페이퍼 튜브, 펀치 카드, 또는 이들의 임의의 조합이 되거나, 이러한 것들을 포함할 수 있다. 컴퓨터 판독가능 미디어(704)는 전송 미디어 및 그와 연관된 데이터를 포함할 수도 있다. 전송 미디어/데이터의 예로는 변조된 캐리어 신호에 의해 운반되는 패킷화된 또는 비패킷화된 데이터와 같이, 유선 또는 무선의 임의의 형태에 내장된 데이터가 포함되나 이에 한정되는 것은 아니다.
컴퓨터 프로그램(706)은 데이터 상에서 사전결정된 동작을 전자적으로 제어하는 임의의 처리 방법 또는 저장된 명령어를 나타낸다. 일반적으로, 컴퓨터 프로그램(706)은 컴포넌트 기반 소프트웨어 개발을 위해 주지된 절차에 따라 소프트웨어 컴포넌트로 구현된 컴퓨터 실행가능 명령어이며, {컴퓨터 판독가능 미디어(704)와 같은} 컴퓨터 판독가능 미디어에 인코딩될 수 있다. 컴퓨터 프로그램은 다양한 방법으로 결합되거나 분산될 수 있다.
프리젠테이션 시스템(100) 환경에 설명된 기능/컴포넌트는 컴퓨터 프로그램의 임의의 특정 실시예에 의한 구현에 한정되지 않는다. 기능들은 데이터를 전달하거나 변형하는 프로세스이며, 일반적으로 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 구현되거나 그 안에서 실행되고 또는 프리젠테이션 시스템(100)의 기능적 요소의 임의의 결합에 위치하거나 그에 의해 액세스될 수 있다.
도 7에 이어, 도 8은 프리젠테이션 시스템(100)의 전부 또는 일부가 구현되거나 사용될 수 있는 동작 환경(800)의 예시적 구성을 나타내는 블럭도이다. 동작 환경(800)은 일반적으로 넓고 다양한 범용 또는 특수목적용 연산 환경을 나타낸다. 동작 환경(800)은 적절한 동작 환경의 일례일 뿐이며, 본 명세서에 기재된 시스템(들) 및 방법들의 사용 또는 기능 범위에 임의의 한정을 제안하고자 하는 것이 아니다. 예를 들어, 동작 환경(800)은 개인용 컴퓨터, 워크스테이션, 서버, 휴대용 장치, 랩탑, 타블렛과 같은 유형의 컴퓨터 또는 광 미디어 플레이어와 같은 임의의 다른 유형의 전자 장치, 또는 공지되거나 추후 개발될 다른 유형의 미디어 플레이어, 또는 이들의 임의의 특징이 될 수 있다. 예를 들어, 동작 환경(800)은 분산 연산 네트워크 또는 웹 서비스가 될 수도 있다. 동작 환경(800)의 구체적인 예는 고화질 DVD 영화의 재생을 용이하게 하는 DVD 플레이어 또는 그와 연관된 동작 시스템과 같은 환경이다.
도시된 바와 같이, 동작 환경(800)은 프로세서(702), 컴퓨터 판독가능 미디어(704) 및 컴퓨터 프로그램(706)을 포함하는 연산 유닛(700)의 컴포넌트를 포함하거나 액세스한다. 저장소(804)는 광 디스크 드라이브(806)에 의해 처리되는 광 디스크와 같이, 동작 환경(800)과 구체적으로 연관된 추가적인 또는 상이한 컴퓨터 판독가능 미디어를 포함한다. 주지되어 있고 널리 사용가능한 요소인 하나 이상의 내부 버스(920)는 연산 환경(800) 또는 그 요소들 내에서, 그것들로 또는 그들로부터 데이터, 어드레스, 제어 신호 및 기타 정보를 운송하기 위해 사용될 수 있다.
입력 인터페이스(들)(808)는 연산 환경(800)으로의 입력을 제공한다. 입력은 사용자 인터페이스와 같이 임의의 유형의 현재 공지되어 있거나 추후 개발될 인터페이스를 사용하여 수집될 수 있다. 사용자 인터페이스는 리모트 컨트롤, 디스플레이, 마우스, 펜, 스타일러스, 트랙볼, 키보드, 마이크로폰, 스캐닝 장치 및 데이터를 입력하기 위해 사용되는 모든 유형의 장치들과 같은 터치 입력 장치가 될 수 있다.
출력 인터페이스(들)(810)는 동작 환경(800)으로부터의 출력을 제공한다. 출력 인터페이스(들)(810)의 예는 디스플레이, 프린터, 스피커, {광 디스크 드라이브(806) 및 기타 디스크 드라이브와 같은} 드라이브 등을 포함한다.
채널 신호, 데이터 신호 또는 컴퓨터 판독가능 매체와 같은 통신 매체를 통해 다른 엔티티로부터/엔티티로 정보를 수신/전송하기 위한 동작 환경(800)의 능력을 향상시키기 위해서, 외부 통신 인터페이스(들)(812)를 사용할 수 있다. 외부 통신 인터페이스(들)(812)는 연관된 네트워크 지원 장치 및/또는 소프트웨어나 인터페이스와 함께, 케이블 모뎀, 데이터 터미널 장비, 미디어 플레이어, 데이터 저장 장치, PDA(personal digital assistants) 또는 임의의 다른 장치나 그들의 컴포넌트/조합과 같은 요소가 되거나 이들을 포함할 수 있다.
도 9는 프리젠테이션 시스템(100) 또는 동작 환경(900)이 연관되어 사용될 수 있는 클라이언트-서버 아키텍처(900)의 개략화된 기능도이다. 프리젠테이션 시스템(100) 및/또는 동작 환경(800)의 하나 이상의 특징은 아키텍처(900)의 클라이언트측(902) 또는 아키텍처(900)의 서버측(904)에 표시될 수 있다. 도시된 바와 같이, 통신 프레임워크(903)(임의의 유형의 임의의 공중 또는 사설 네트워크가 될 수 있음, 예컨대, 유선 또는 무선)는 클라이언트측(902) 및 서버측(904) 사이의 통신을 용이하게 한다.
클라이언트측(902)에서, 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 구현될 수 있는 하나 이상의 클라이언트(906)는 클라이언트 데이터 저장소(client data stores)(908)에 응답한다. 클라이언트 데이터 저장소(908)는 클라이언트(906)에 지역적인(local) 정보를 저장하도록 사용된 컴퓨터 판독가능 미디어(704)가 될 수 있다. 서버측(904)에서, 하나 이상의 서버(910)는 서버 데이터 저장소(912)에 응답한다. 클라이언트 데이터 저장소(908)와 같이, 서버 데이터 저장소(912)는 서버(910)에 지역적인 정보를 저장하도록 사용된 하나 이상의 컴퓨터 판독가능 미디어(704)를 포함할 수 있다.
대화형 콘텐츠를 미디어 콘텐츠와 동기적으로 사용자에게 프리젠트하기 위해 사용되는 프리젠테이션 시스템의 다양한 특징이 설명되었다. 그러나, 프리젠테이션 시스템의 설명된 컴포넌트가 모두 사용될 필요는 없으며, 사용되는 경우 동시에 프리젠트되어야만 하는 것은 아님이 이해될 것이다. 컴퓨터 프로그램으로서 프리젠테이션 시스템(100) 환경에 설명된 기능/컴포넌트는 컴퓨터 프로그램의 임의의 특정 실시예에 의한 구현으로 한정되는 것이 아니다. 기능들은 데이터를 전송하거나 변형하는 프로세스이며, 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 의해 일반적으로 구현될 수 있다.
본 명세서에서의 청구대상은 구조적 특징 및/또는 방법론적인 동작으로 특정하는 언어로 기재되어 있으나, 청구범위에 정의된 청구대상이 반드시 위에 기재된 구체적인 특징이나 동작으로 한정되는 것은 아님이 이해되어야 한다.
또한, 한 요소가 다른 요소에 응답하는 것으로 표시된 경우, 해당 요소들은 직접 또는 간접적으로 결합될 수 있음을 이해하여야 한다. 본 명세서에서 설명된 연결은 요소들간 결합 또는 통신 인터페이스를 달성하기 위해 실제로 논리적 또는 물리적일 수 있다. 기타 방법들 중에서, 연결은 소프트웨어 프로세스들 사이의 프로세스간 통신(inter-process communications) 또는 네트워크 컴퓨터들 사이의 머신간 통신(inter-machine communications)으로 구현될 수 있다.
"예시"라는 단어는 본명세서에서 예 또는 실례와 같은 의미를 나타내도록 사용되었다. 본 명세서에서 "예시"로 설명된 임의의 구현 또는 그 특징이 반드시 기타 구현예이나 그 특징보다 바람직하거나 유리한 것으로 생각되어서는 안 된다.
첨부된 특허청구범위의 사상 및 범위에서 벗어나지 않고 앞서 설명된 특정 실시예와 다른 실시예가 발명될 수 있다는 것이 이해되는바, 청구대상의 범위는 이하의 청구항들에 의해 결정되도록 의도된다.

Claims (20)

  1. 프리젠테이션 시스템을 사용하여 미디어 콘텐츠를 재생하기 위한 방법으로서, 상기 미디어 콘텐츠는 복수개 세트의 미디어 샘플(plurality of media samples)로 구성되고, 미디어 샘플의 각각의 세트(each set of media samples)는 미디어 소스로부터 수신될 수 있으며, 상기 방법은,
    제1 시간에, 제1 미디어 소스로부터 수신된 제1 세트의 미디어 샘플의 재생을 개시하는 단계;
    제2 미디어 소스로부터 수신될 수 있는 제2 세트의 미디어 샘플을 식별하는(identifying) 단계 - 상기 제2 세트의 미디어 샘플의 재생 시작은, 상기 제1 시간으로부터 사전결정된 시간의 양만큼 떨어진 제2 시간에 스케쥴됨(scheduled) - ;
    상기 제2 미디어 소스와 연관된 정적 특성을 확인하는 단계;
    상기 제1 세트의 미디어 샘플의 재생 동안, 상기 프리젠테이션 시스템의 동적 특성을 확인하는 단계;
    상기 정적 특성 및 상기 동적 특성에 기초하여, 시간 옵셋 값을 결정하는 단계; 및
    상기 시간 옵셋 값에 기초한 양만큼 상기 제2 시간으로부터 옵셋된(offset) 프리렌더링 시간(pre-rendering time)에 상기 제2 세트의 미디어 샘플의 적어도 일부를 프리렌더링하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 프리렌더링 시간은, 상기 제1 세트의 미디어 샘플의 재생을 최대화하고, 상기 제2 세트의 미디어 샘플의 재생 개시가 상기 제2 시간에 일어나도록 선택되는 방법.
  3. 제1항에 있어서,
    상기 제1 미디어 소스는 상기 제2 미디어 소스와 동일한 방법.
  4. 제1항에 있어서,
    상기 시간 옵셋 값을 결정하는 상기 단계는, 상기 제1 시간 후, 상기 프리렌더링 시간 전에 일어나고, 상기 시간 옵셋 값을 결정하는 상기 단계는, 상기 제1 세트의 미디어 샘플의 재생 동안 복수회 반복되는 방법.
  5. 제1항에 있어서,
    상기 프리젠테이션 시스템 내의 처리 부하(load)에 기초하여 상기 시간 옵셋 값을 조정하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 제2 미디어 소스와 연관된 상기 정적 특성을 확인하는 단계는,
    복수개 세트의 정적 특성(plurality of sets of static characteristics)을 확인하는 단계; 및
    상기 제2 미디어 소스의 아이덴티티에 기초하여, 상기 복수개 세트의 정적 특성 중에서 한 세트의 정적 특성을 선택하는 단계
    를 포함하는 방법.
  7. 제1항에 있어서,
    상기 정적 특성은 인코더-디코더 쌍("코덱") 파라미터, 암호화(encryption) 파라미터, 제2 세트의 미디어 샘플의 사이즈 및 상기 제2 미디어 소스의 위치 중 하나를 포함하는 방법.
  8. 제1항에 있어서,
    상기 동적 특성은 상기 미디어 콘텐츠의 재생 상태, 상기 프리젠테이션 시스템 내의 처리 부하 및 상기 프리젠테이션 시스템에 연관된 클록의 주파수 중 하나를 포함하는 방법.
  9. 제8항에 있어서,
    상기 미디어 콘텐츠의 재생 상태는 상기 미디어 콘텐츠의 재생 속도에 기초한 방법.
  10. 제9항에 있어서,
    상기 재생 상태는 상기 프리젠테이션 시스템이 켜진 이래, 상기 미디어 콘텐츠의 재생 속도의 평균에 기초한 방법.
  11. 제1항에 있어서,
    상기 제1 세트의 미디어 샘플의 아이덴티티는 재생목록으로부터 확인할 수 없는 방법.
  12. 제1항에 있어서,
    상기 제2 시간은, 상기 제1 세트의 미디어 샘플의 재생 듀레이션(duration)의 종료와 동시인 것, 상기 제1 세트의 미디어 샘플의 재생 듀레이션 내에 발생하는 것 및 상기 제1 세트의 미디어 샘플의 재생 듀레이션 종류 후에 발생하는 것 중 하나인 방법.
  13. 제1항의 방법을 수행하기 위한 컴퓨터 판독가능 명령어들로 인코딩된 컴퓨터 판독가능 매체.
  14. 미디어 콘텐츠를 재생하기 위한 시스템으로서, 상기 미디어 콘텐츠는 복수개 세트의 미디어 샘플로 구성되고, 미디어 샘플의 각각의 세트는 미디어 소스로부터 수신가능하며, 상기 시스템은,
    제1 미디어 소스로부터의 제1 세트의 샘플을 재생하고, 제2 미디어 소스로부터의 제2 세트의 샘플을 재생하도록 동작하는 미디어 콘텐츠 관리자; 및
    재생목록으로의 액세스 권한을 갖고, 상기 미디어 콘텐츠 관리자와 통신하도록 구성되는 프리젠테이션 관리자
    를 포함하고,
    상기 프리젠테이션 관리자는,
    상기 재생 목록으로부터 상기 제2 세트의 미디어 샘플의 아이덴티티를 확인하고,
    상기 제2 미디어 소스와 연관된 정적 특성을 확인하고,
    상기 제1 세트의 미디어 샘플의 재생 동안 동적 특성을 확인하고,
    상기 정적 특성 및 상기 동적 특성에 기초하여 시간 옵셋 값을 결정하고,
    상기 시간 옵셋 값에 기초한 양만큼 상기 제2 시간으로부터 옵셋된(offset) 프리렌더링 시간에, 상기 제2 세트의 미디어 샘플의 적어도 일부를 프리렌더링하기 위해 준비하도록 동작가능하며,
    상기 제2 세트의 미디어 샘플의 일부가 프리렌더링된 경우, 상기 미디어 콘텐츠 관리자는 상기 제2 시간에 상기 제2 세트의 샘플의 프리렌더링된 일부를 재생하는 시스템.
  15. 제14항에 있어서,
    상기 제1 세트의 미디어 샘플의 아이덴티티는 상기 재생목록으로부터 확인할 수 없는 시스템.
  16. 제14항에 있어서,
    상기 프리젠테이션 관리자는 상기 정적 파라미터를 상기 미디어 콘텐츠 관리자로부터 수신하는 시스템.
  17. 제14항에 있어서,
    상기 미디어 콘텐츠 관리자는 상기 미디어 콘텐츠 관리자의 처리 부하에 기초하여 상기 결정된 시간 옵셋 값을 조정하도록 동작하고, 상기 프리젠테이션 관리자는 상기 미디어 콘텐츠 관리자로부터 상기 조정된 시간 옵셋 값을 수신하며, 상기 프리렌더링 시간은 상기 조정된 시간 옵셋 값에 기초한 양만큼 상기 제2 시간으로부터 옵셋된 시스템.
  18. 제14항에 있어서,
    상기 시스템은 운영 체제(operating system)를 포함하는 시스템.
  19. 제18항에 있어서,
    상기 시스템은 광 디스크 플레이어를 포함하는 시스템.
  20. 제19항에 있어서,
    상기 광 디스크 플레이어는 DVD 포럼에 의해 발행된 고화질 비디오를 위한 사양(specifications for high definition video)에 따르는 시스템.
KR1020077030646A 2005-07-01 2006-06-20 미디어 콘텐츠 렌더링의 특징 KR101246976B1 (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/405,816 US7500175B2 (en) 2005-07-01 2006-04-18 Aspects of media content rendering
US11/405,816 2006-04-18
PCT/US2006/023912 WO2007005272A2 (en) 2005-07-01 2006-06-20 Aspects of media content rendering

Publications (2)

Publication Number Publication Date
KR20080023318A true KR20080023318A (ko) 2008-03-13
KR101246976B1 KR101246976B1 (ko) 2013-03-25

Family

ID=37591294

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077030646A KR101246976B1 (ko) 2005-07-01 2006-06-20 미디어 콘텐츠 렌더링의 특징

Country Status (6)

Country Link
US (1) US7500175B2 (ko)
EP (1) EP1899853A4 (ko)
JP (1) JP4907653B2 (ko)
KR (1) KR101246976B1 (ko)
CN (1) CN102089823B (ko)
WO (1) WO2007005272A2 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8225231B2 (en) 2005-08-30 2012-07-17 Microsoft Corporation Aggregation of PC settings
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US9436688B2 (en) * 2008-05-28 2016-09-06 Adobe Systems Incorporated Durational referencing cue points for linking multimedia files
US7925774B2 (en) * 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8265140B2 (en) * 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
JP5361697B2 (ja) * 2009-12-21 2013-12-04 キヤノン株式会社 表示制御装置および表示制御方法
US20110268427A1 (en) * 2010-04-30 2011-11-03 Brelay Herve Methods and apparatuses for a projected pvr experience
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
US9383917B2 (en) * 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US20130167028A1 (en) * 2011-06-01 2013-06-27 Adobe Systems Incorporated Restricting media content rendering
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US8922575B2 (en) 2011-09-09 2014-12-30 Microsoft Corporation Tile cache
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US8933952B2 (en) 2011-09-10 2015-01-13 Microsoft Corporation Pre-rendering new content for an application-selectable user interface
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
CN104427360B (zh) * 2013-09-06 2017-12-29 刘镇崇 多轨媒体剪辑的编辑及播放系统与方法
CN105359094A (zh) 2014-04-04 2016-02-24 微软技术许可有限责任公司 可扩展应用表示
EP3129846A4 (en) 2014-04-10 2017-05-03 Microsoft Technology Licensing, LLC Collapsible shell cover for computing device
EP3129847A4 (en) 2014-04-10 2017-04-19 Microsoft Technology Licensing, LLC Slider cover for computing device
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10642365B2 (en) 2014-09-09 2020-05-05 Microsoft Technology Licensing, Llc Parametric inertia and APIs
CN106662891B (zh) 2014-10-30 2019-10-11 微软技术许可有限责任公司 多配置输入设备
CN107211227B (zh) 2015-02-06 2020-07-07 杜比实验室特许公司 用于自适应音频的混合型基于优先度的渲染系统和方法
US10255947B2 (en) * 2015-08-31 2019-04-09 Netflix, Inc. Mitigating drift in audiovisual assets
KR101853441B1 (ko) * 2016-09-23 2018-05-02 재단법인 실감교류인체감응솔루션연구단 클라이언트 장치 및 그 로컬 클럭 스큐 보정 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1090794C (zh) * 1994-10-24 2002-09-11 索尼公司 再现设备和再现方法
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
US6385596B1 (en) * 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
JP3961693B2 (ja) * 1998-09-28 2007-08-22 株式会社東芝 映像表示装置
GB2344453B (en) * 1998-12-01 2002-12-11 Eidos Technologies Ltd Multimedia editing and composition system having temporal display
CN100470658C (zh) * 1999-04-02 2009-03-18 松下电器产业株式会社 记录装置,再现装置及记录、再现方法
US8495679B2 (en) * 2000-06-30 2013-07-23 Thomson Licensing Method and apparatus for delivery of television programs and targeted de-coupled advertising
EP1312206A1 (en) * 2000-08-16 2003-05-21 Koninklijke Philips Electronics N.V. Method of playing multimedia applications
US7072908B2 (en) * 2001-03-26 2006-07-04 Microsoft Corporation Methods and systems for synchronizing visualizations with audio streams
EP1286349A1 (en) * 2001-08-21 2003-02-26 Canal+ Technologies Société Anonyme File and content management
JP3852568B2 (ja) * 2001-09-11 2006-11-29 ソニー株式会社 マルチメディアプレゼンテーション作成装置および方法
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
US7764868B2 (en) * 2002-09-12 2010-07-27 Panasonic Corporation Recording medium, reproduction device, program, reproduction method, and recording method
JP4727908B2 (ja) * 2003-04-23 2011-07-20 シャープ株式会社 コンテンツ再生装置、コンピュータプログラム、及び記録媒体
JP2004357275A (ja) * 2003-05-07 2004-12-16 Nec Corp 映像記録装置、記録媒体、映像記録方法及びプログラム
EP1641259B1 (en) * 2003-06-30 2009-09-02 Panasonic Corporation Recording medium, reproduction device, recording method, program, and reproduction method
TWI382404B (zh) * 2003-11-12 2013-01-11 Panasonic Corp 記錄媒體、播放裝置及方法、記錄方法、及電腦可讀取程式(一)

Also Published As

Publication number Publication date
US7500175B2 (en) 2009-03-03
US20070006064A1 (en) 2007-01-04
KR101246976B1 (ko) 2013-03-25
CN102089823A (zh) 2011-06-08
EP1899853A4 (en) 2015-06-10
CN102089823B (zh) 2013-09-04
EP1899853A2 (en) 2008-03-19
WO2007005272A3 (en) 2014-07-03
JP2009502049A (ja) 2009-01-22
JP4907653B2 (ja) 2012-04-04
WO2007005272A2 (en) 2007-01-11

Similar Documents

Publication Publication Date Title
KR101246976B1 (ko) 미디어 콘텐츠 렌더링의 특징
KR101365829B1 (ko) 대화형 멀티미디어 프리젠테이션을 재생하는 방법을 수행하는 컴퓨터 실행가능 명령어들이 인코딩된 컴퓨터 판독가능 매체, 및 대화형 멀티미디어 프리젠테이션을 재생하는 프리젠테이션 시스템 및 장치
KR101265936B1 (ko) 대화형 멀티미디어 프레젠테이션 관리의 동기 특징
US8799757B2 (en) Synchronization aspects of interactive multimedia presentation management
KR101231323B1 (ko) 대화형 멀티미디어 환경에서의 상태 변경에 대한 선언적응답
US8020084B2 (en) Synchronization aspects of interactive multimedia presentation management
US20070006065A1 (en) Conditional event timing for interactive multimedia presentations
JP2008545335A5 (ko)
KR101265840B1 (ko) 대화형 멀티미디어 프레젠테이션 관리의 동기 특징

Legal Events

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

Payment date: 20160218

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 8