KR20090096621A - Hd-dvd 마크업의 증분 갱신 및 포맷 - Google Patents

Hd-dvd 마크업의 증분 갱신 및 포맷 Download PDF

Info

Publication number
KR20090096621A
KR20090096621A KR1020097013995A KR20097013995A KR20090096621A KR 20090096621 A KR20090096621 A KR 20090096621A KR 1020097013995 A KR1020097013995 A KR 1020097013995A KR 20097013995 A KR20097013995 A KR 20097013995A KR 20090096621 A KR20090096621 A KR 20090096621A
Authority
KR
South Korea
Prior art keywords
markup
scene description
instructions
dvd
readable storage
Prior art date
Application number
KR1020097013995A
Other languages
English (en)
Other versions
KR101463275B1 (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 KR20090096621A publication Critical patent/KR20090096621A/ko
Application granted granted Critical
Publication of KR101463275B1 publication Critical patent/KR101463275B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • 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
    • 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/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • 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
    • G11B2220/2579HD-DVDs [high definition DVDs]; AODs [advanced optical discs]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

본 명세서에서는, HD-DVD 마크업을 증분 갱신하고 포매핑하기 위한 시스템, 방법, 및/또는 기술(툴)을 설명한다. 툴은 HD-DVD로부터 판독될 제1 장면 설명을 나타내는 제1 마크업을 수신할 수 있고, 사용자에게 프리젠테이션하도록 제1 마크업을 제1 합성 영역에 매핑할 수 있다. 이어서, 툴은 HD-DVD로부터 판독될 제2 장면 설명을 나타내는 제2 마크업을 수신할 수 있다. 제2 마크업을 수신하는 것에 응답하여, 툴은 사용자에게 프리젠테이션하도록 제1 장면 설명의 일부분을 제2 합성 영역에 증분 리매핑할 수 있다.
Figure P1020097013995
HD-DVD, 합성 영역, 장면 설명, 증분 리매핑, 변환 컴포넌트

Description

HD-DVD 마크업의 증분 갱신 및 포맷{INCREMENTALLY UPDATING AND FORMATTING HD-DVD MARKUP}
고해상도(High-definition; HD) DVD 매체 및 관련 플레이어는 점점 더 유명해지며 널리 사용되고 있다. 더 많은 제조사들이 이러한 시장에 진입함에 따라, 경쟁이 치열해지며, 가격을 내리는 경향이 있다. 이러한 가격 경쟁 환경에서, HD-DVD 플레이어 내에서 실행되는 소프트웨어는 통상적으로 비교적 비싸지 않은 소비자 하드웨어에서 실행된다.
HD-DVD 콘텐츠 및 스타일 마크업을 디스플레이를 위한 실체적인 형태(tangible form)로 변환하는 것은 연산 비용이 많이 든다. 통상적으로, HD-DVD 마크업을 위한 렌더링 율의 적절한 목표는 허용가능한(acceptable) 사용자 경험에 있어서 초당 대략 24개의 프레임이다. HD-DVD 마크업을 변환하고 렌더링하기 위한 종래의 기술은, 이러한 렌더링 율 목표에 도달하고자 할 때, 저가의 소비자 하드웨어에서 모든 클럭 펄스마다 연산상으로 비용이 많이 드는 모든 관련 HD-DVD 콘텐츠와 스타일 마크업(style markup)을 포맷하는 작업을 수행하는 것으로 인해, 어려움에 직면할 수 있다.
본 명세서에서는 HD-DVD 마크업을 증분 갱신(incrementally updating)하고 포맷하기 위한 시스템, 방법, 및/또는 기술(툴; tool)이 설명된다. 툴은, HD-DVD로부터 판독될 제1 장면 설명을 나타내는 제1 마크업을 수신할 수 있고, 제1 마크업을 사용자에게 나타내기 위한 제1 합성 영역(first area composite)으로 매핑할 수 있다. 이어서, 툴은 HD-DVD로부터 판독될 제2 장면 설명을 나타내는 제2 마크업을 수신할 수 있다. 제2 마크업을 수신하는 것에 응답하여, 툴은 제1 장면 설명의 일부를 사용자에게 나타내기 위한 제2 합성 영역으로 증분 리매핑(remap)할 수 있다.
이 개요는 상세한 설명에서 더 상세히 후술하는 개념들의 선택을 간략한 형태로 도입하고자 제공된다. 이 개요는 청구 대상의 핵심적이거나 필수적인 특징들을 식별하려는 것이 아니며, 청구 대상의 범위를 결정하려는 데 도움을 주려는 것도 아니다. 예를 들어, "툴"이라는 용어는, 위 문맥에서 허용되며 명세서 전반에 걸쳐 허용되는 바와 같이 시스템(들), 방법(들), 컴퓨터 판독가능 명령어, 및/또는 기술(들)을 가리킬 수 있다.
HD-DVD 마크업을 증분 갱신하고 포맷하는 것에 관련된 툴은 다음에 따르는 도면과 함께 설명된다. 동일 컴포넌트들 및 특징들을 참조하기 위하여 명세서 전반에 걸쳐 동일한 번호들이 사용되었다. 참조 번호에서의 첫 번째 자리는 그 참조 번호가 도입되는 도면을 가리킨다.
도 1은 HD-DVD 마크업을 증분 갱신하고 포맷하기 위한 동작 환경을 도시하는 블록도이다.
도 2는 HD-DVD 변환 컴포넌트의 추가 양태를 도시하는 블록도이다.
도 3은 시간 경과에 따라 발생하는 장면 설명에서의 상태 전이를 도시하는 블록도이다.
도 4는 클럭 펄스에 응답하여 다큐먼트 오브젝트 모델(DOM)의 상태 전이가 시간 경과에 따라 발생할 때 그 전이를 도시하는 블록도이며, 포맷기 컴포넌트가 DOM 상태들을 어떻게 증분 리매핑할 수 있는지를 예시한다.
도 5는 HD-DVD 마크업을 증분 갱신하고 포맷하기 위한 프로세스를 도시하는 흐름도이다.
도 6은 HD-DVD 스타일 데이터가 층들로 조직화되는 장치(arrangement)를 도시하는 블록도이다.
도 7은 변경 통지 메시지의 추가 양태를 도시하는 블록도이다.
도 8은 변경 통지 메시지에 대한 반응으로서 수행될 수 있는 프로세스를 도시하는 흐름도이다.
도 9는 클럭 신호에 응답하여 프레임당 포맷을 수행하기 위한 프로세스를 도시하는 흐름도이다.
도 10은 마크업 트리(markup tree)의 부모 노드와 자식 노드를 횡단(traverse)하기 위한 프로세스를 도시하는 흐름도이다.
개요
이하에서는 많은 기술과 프로세스를 수행 및/또는 지원할 수 있는 툴을 설명 한다. 또한, 툴이 HD-DVD 마크업을 증분 갱신 및 포맷하는 예시적인 방식들을 설명한다. 또한, 툴이 수행할 수 있는 다른 기술 및/또는 프로세스를 설명한다.
본 명세서에서 설명하는 바와 같이 HD-DVD 콘텐츠와 스타일 마크업을 실체적 형태로 포맷하기 위해, "상태"(state)라는 용어는 HD-DVD 사양에 의해 규정되는 상태들 및/또는 스타일들 중 임의의 것을 가리킬 수 있으며, "상태 전이"(state transition)라는 용어는 임의의 HD-DVD 상태나 스타일에 대한 값의 임의의 변경을 가리킨다.
도 1은 HD-DVD 마크업을 증분 갱신하고 포맷하기 위한 동작 환경(100)을 도시한다. 동작 환경(100)은 일반적으로 점선(106)으로 표시한 바와 같이 하나 이상의 사용자(102)가 하나 이상의 HD-DVD 디스크(104)를 재생할 수 있게 한다.
이러한 HD-DVD 디스크(104)는 하나 이상의 기계 판독가능 컴포넌트를 포함할 수 있다. 이러한 컴포넌트는, 예를 들어, 요소들의 구조화된 트리(structured tree)를 규정하는 XML 어휘를 포함할 수 있는 콘텐츠 마크업 부분(108)을 포함할 수 있다. 이러한 요소들은 HD-DVD 디스크가 재생될 때 사용자에게 제시될 수 있는 비주얼 콘텐츠 또는 오디오 콘텐츠를 특정할 수 있다.
DVD 디스크(104)는, 콘텐츠 마크업 부분(108)에 포함되어 있는 요소들이 사용자에게 제시될 때 어떻게 보이는지를 규정하는 XML 어휘를 포함할 수 있는 스타일 마크업 부분(110)도 포함할 수도 있다. 다시 말하면, 콘텐츠 마크업 부분은 어떤 요소들이 사용자에게 렌더링되어야 하는지를 특정할 수 있고, 스타일 마크업 부분은 이러한 요소들이 사용자에게 어떻게 렌더링되어야 하는지를 특정할 수 있다.
아래의 표 1은 HD-DVD 콘텐츠 마크업 요소들을 도시하고 있다.
Figure 112009040808878-PCT00001
DVD 디스크(104)는, 시간 경과에 따른 하나 이상의 스타일 마크업 변경을 특정하는 XML 어휘를 포함할 수 있는 타이밍 마크업 부분(112)도 포함할 수 있다.
콘텐츠 마크업 부분, 스타일 마크업 부분, 타이밍 마크업 부분은 선언적 프로그래밍 언어(declarative programming language)로 구현될 수 있다. 그러나, 스크립트 부분(114)은 시간 경과에 따라 스타일 마크업에 비결정적 변경을 야기하는 명령형 프로그래밍 어휘(imperative programming vocabulary)로 구현될 수 있다.
동작 환경(100)은 HD-DVD 디스크(104)와 HD-DVD 플레이어(116)를 연결하는 점선으로 표시한 바와 같이 사용자(102)가 HD-DVD 디스크(104)를 재생을 위해 HD-DVD 플레이어(116)에 삽입할 수 있게 한다. HD-DVD 플레이어(116)는 참조 번호 118로 표시된 하나 이상의 프로세서를 포함하는 컴퓨터 기반 시스템일 수 있다. 이러한 프로세서는 소정의 유형이나 아키텍처를 갖는 것으로서 분류되거나 특징지워질 수도 있지만, 동일한 유형이나 아키텍처를 갖거나 갖지 않아도 된다.
HD-DVD 플레이어는 일반적으로 참조 번호 120으로 표시된 기계 판독가능 저장매체 또는 컴퓨터 판독가능 저장매체의 하나 이상의 인스턴스를 포함할 수도 있다. 컴퓨터 판독가능 매체(120)는, 프로세서(118)에 의해 실행될 때 본 명세서에서 HD-DVD 플레이어에 의해 수행되는 것으로서 설명한 툴들 또는 관련된 기능들 중 임의의 것을 수행하는 명령어를 포함할 수 있다. 프로세서는 컴퓨터 판독가능 매체 상으로 임베딩되거나 인코딩된 명령어를 액세스 및/또는 실행할 수 있고, 그리고/또는 컴퓨터 판독가능 매체에 저장된 데이터에 액세스할 수 있다.
컴퓨터 판독가능 매체(120)를 더 상세히 참조해 보면, 이것은 HD-DVD 변환 컴포넌트(122)의 하나 이상의 인스턴스를 포함할 수 있다. HD-DVD 변환 컴포넌트(122)는, 예를 들어, 프로세서 내로 로딩되어 실행될 때, 사용자에 대한 렌더링을 위해 HD-DVD 플레이어가 HD-DVD 마크업을 증분 갱신하고 포맷하게 하는 하나 이상의 소프트웨어 모듈을 포함할 수 있다.
도 1은 일반적으로 참조 번호 124에서 사용자에게 렌더링될 때의 마크업의 출력을 도시한다. 설명의 편의상, 도 1은 렌더링된 마크업이 포함할 수 있는 요소들의 여러 예를 포함하지만, 이러한 구현예로 한정되지는 않는다. 전술한 바와 같이, 콘텐츠 마크업 부분(108)은, 하나 이상의 기하학적 프리미티브(126)를 포함할 수 있는 이러한 요소들 중 적어도 일부를 특정할 수 있다. 기하학적 프리미티브(126)의 예로는, 메뉴 박스, 그래픽 요소, 또는 사용자 인터페이스의 기타 특징들을 구축하는 데 사용되는 요소들이 포함될 수 있다.
렌더링된 출력(124)은 일반적으로 참조 번호 128로 표시된 하나 이상의 텍스트 요소를 포함할 수 있다. 이러한 텍스트 요소(128)의 예로는, 렌더링된 출력(124)에서 사용자에게 제시되는, 라벨, 설명, 또는 기타 영숫자나 문자 기반 정보가 포함될 수 있다.
렌더링된 출력(124)은 일반적으로 참조 번호 130로 표시된 이미지 및/또는 비디오 요소들 중 하나 이상의 인스턴스를 포함할 수 있다. 이러한 이미지 또는 비디오 요소들은, 사용자 인터페이스 디바이스(예를 들어, 메뉴 박스 등)의 일부로서 포함될 수 있고, 또는 HD-DVD 디스크의 엔터테인먼트 부분(예를 들어, 영화, 스포츠 이벤트 등)으로서 포함된 메인 콘텐츠를 제공할 수 있다.
렌더링된 출력(124)은 일반적으로 참조 번호 132로 표시된 오디오 요소들의 하나 이상의 인스턴스를 포함할 수 있다. 이러한 오디오 요소들은 단독으로 제시되거나 이미지/비디오 요소(130)들과 같은 다른 요소들과 함께 제시될 수 있다.
HD-DVD 플레이어(116)는 점선(136)으로 표시한 바와 같이 프리젠테이션 디바이스(134)와 협동하여 렌더링된 출력(124)을 사용자(102)에게 제공할 수 있다. 도 1은 사용자에게 렌더링된 출력(124) 뿐만 아니라 또한 사용자에 의해 제공되는 임의의 응답이나 입력을 나타내고자 점선(136)을 기본적으로 양방향으로 도시한다.
프리젠테이션 디바이스(134)는 사용자에게 렌더링된 출력을 가시적인 형태로 제공하기 위한 디스플레이 프리젠테이션 디바이스(138)를 포함할 수 있다. 디스플레이 프리젠테이션 디바이스(138)의 예로는, 임의의 적절한 디스플레이 기술로 구현되는, 텔레비전 세트, 모니터, 디스플레이 등이 포함될 수 있다.
프리젠테이션 디바이스(134)는 렌더링된 출력을 사용자에게 가청 형태로 제공하기 위한 오디오 프리젠테이션 디바이스(140)를 포함할 수 있다. 오디오 프리젠테이션 디바이스(140)의 예로는, 임의의 적절한 오디오 기술로 구현되는, 사람의 귀로 수신하도록 전기 신호를 음파로 변환하기 위한 스피커나 유사 디바이스가 포함될 수 있다.
도 1은 설명과 도시의 편의상 프리젠테이션 디바이스(134)와 HD-DVD 플레이어(116)를 별도의 블록들로 도시하지만, 가능한 구현예들을 한정하려는 것은 아니다. 구체적으로, 프리젠테이션 디바이스와 HD-DVD 플레이어는 독립형(stand-alone) 컴포넌트나 통합된(integrated) 컴포넌트로서 구현될 수 있다. 마찬가지로, 디스플레이 프리젠테이션 디바이스(138)와 오디오 프리젠테이션 디바이스(140)는 프리젠테이션 디바이스(134)와 분리되된 독립형 컴포넌트 또는 프리젠테이션 디바이스에 통합된 컴포넌트로서 구현될 수 있다.
도 1을 참조하여 동작 환경(100)을 설명하였으므로, 이제 도 2에 제시된 HD-DVD 변환 컴포넌트(122)의 보다 상세한 설명을 진행하도록 할 것이다.
도 2는 HD-DVD 변환 컴포넌트(122)의 추가 양태(200)를 도시한다. 편의상, 위에서 설명한 일부 요소들을 도 2에서 동일한 참조 번호로 표시하였지만, 이러한 예로 한정되지는 않는다.
전체적으로 볼 때, 콘텐츠 마크업(108), 스타일 마크업(110), 및 타이밍 마크업(112)이 다큐먼트 오브젝트 모델(DOM; 202)을 규정한다. DOM(202)은 XML 어휘를 사용하여 트리 데이터 구조로서 구현될 수 있다. DOM(202)은 도 2에서 일반적으로 참조 번호 204로 표시된 복수의 개별적인 마크업 요소를 포함할 수 있다. 위의 표 1은 DOM 상태(202)들의 특정 예들을 제공하는, 적법한 부모-자식 요소(legal parent-child element) 조합들의 세트들을 도시한다.
도 2는 마크업 요소들의 두 가지 예(204A, 204N)를 도시한다. 그러나, DOM의 구현예에서는, 임의 개수의 요소(204)들을 포함할 수 있으며, DOM 트리는 임의의 적절한 형태를 취할 수 있다. 스크립트(114)는 DOM을 비결정적 방식(non-deterministic way)으로 변경하는 명령형 프로그래밍 언어일 수 있다.
이러한 마크업 요소들은 사용자에게 스크린-상에(on-screen) 무엇이 렌더링되는지에 대한 장면 설명을 규정할 수 있다. 도 2는 이 장면 설명을 일반적으로 참조 번호 206으로 도시한다. 장면 설명(206)은, 사용자에게 스크린-상에 무엇이 렌더링되는 지를 특정할 수 있지만, 장면 설명 자체는 직접 열거(manifested)되거나 스크린-상에 디스플레이될 수 있는 형태라기보다는 (DVD 포럼 운영 위원회에 의해 공표되는 바와 같이) HD-DVD 사양에 의해 규정되는 형태로 표현된다. 본 명세서에서는 장면 설명을 스크린-상의 디스플레이에 적절한 형태로 변환하는 프로세스를 포맷(formatting)이라 칭한다. 이러한 기능을 수행하기 위해, HD-DVD 변환 컴포넌트(122)는 HD-DVD 포매터 컴포넌트(208)를 포함할 수 있고, 이 포매터 컴포넌트는 장면 설명을 스크린-상의 디스플레이에 적절한 형태로 포맷하라는 소프트웨어 명령어를 포함할 수 있다.
HD-DVD 포매터 컴포넌트(208)는 장면 설명 언어(206)를 사용자에게 스크린-상에 렌더링하는 데 적절한 변환 콘텐츠 및 스타일 마크업으로 변환하거나 매핑한다. 도 2는 일반적으로 변환 콘텐츠 및 스타일 마크업을 참조 번호 210으로 도시한다. 이 변환 마크업(210)은 HD-DVD 렌더링 컴포넌트(212)에 입력되고, 이 컴포넌트는 변환 콘텐츠 및 스타일 마크업을 렌더링된 최종 출력 형태(예를 들어, 참조 번호 124)로 렌더링하기 위한 소프트웨어 명령어를 포함한다. 이렇게 렌더링된 출력은, 프리젠테이션 디바이스(134)에게 특정된 임의의 특별한 사항들을 고려하여, 예를 들어 프리젠테이션 디바이스(134)를 통해 사용자에게 프리젠테이션하는 데 적절하다.
도 2를 참조하여 HD-DVD 변환 컴포넌트(122)를 보다 상세히 설명하였으므로, 이하에서는 도 3에 도시된 HD-DVD 포매터 컴포넌트(208)가 시간 경과에 따라 장면 설명을 처리할 수 있으므로 이 HD-DVD 포매터 컴포넌트(208)를 보다 상세히 설명하고자 한다.
도 3은 시간 경과에 따라 발생하는 장면 설명에서의 상태 전이(300)를 도시한다. 편의상, 위에서 설명한 일부 요소들을 도 3에 도시하였으며 동일한 참조 번호를 부여하였지만, 이러한 예로 한정되지는 않는다.
도 3에 도시한 바와 같이, 소정의 초기 상태에 있는 장면 설명(206A)은, 초기 상태에 있는 대응하는 DOM(202A)에 의해 표현된다. HD-DVD 포매터(208)는 DOM 상태(202A)를 일반적으로 도 3에 도시한 합성 영역 구조(302)에 매핑한다. 구체적으로, DOM 상태(202A)에 대응하는 합성 영역 상태는 참조 번호 302A로 도시되어 있는 한편, 매핑 프로세스는 참조 번호 304로 도시되어 있다.
합성 영역(area composite; 302)은 DOM에서 특정된 다양한 요소들이 스크린-상에서 사용자에게 어떻게 렌더링될 수 있는지를 가리키는 트리 구조로서 구현될 수 있다. 따라서, 합성 영역(302)은 임의의 개수의 요소(306A, 306N; 일반적으로 306)를 포함할 수 있다. DOM은 HD-DVD의 저자에 의해 선택된 마크업 언어로 특정될 수 있는 한편, 합성 영역은 HD-DVD 콘텐츠가 디스플레이되는 디바이스의 능력 면에서 표현된다. HD-DVD 렌더링 컴포넌트(212)는 합성 영역(302A)의 콘텐츠에 기초하여 렌더링된 출력(124A)을 생성할 수 있다.
하나의 DOM 노드는, 패러그래프를 설명하는 DOM 노드가 다수의 텍스트 라인을 생성할 때처럼, 다수의 영역 노드를 생성할 수 있고, 여기서 전체 패러그래프는 (예를 들어, 패러그래프를 위한 백그라운드 컬러를 갖는) 하나의 영역을 생성하며, 또한, 각 라인은 (예를 들어, 해당 라인 상에 일부 텍스트 및/또는 이미지를 갖는) 하나의 영역을 생성한다. 하나의 영역 노드는 일반적으로 하나의 DOM 노드를 다시 참조하지만, 이것은 항상 참(true)이 아닐 수도 있다. 예를 들어, 패러그래프 DOM 노드가 다른 어떠한 DOM 노드에 의해서가 아니라 자체적으로 완전히 특정되어 있으며 패러그래프 영역들과 라인 영역들을 생성하는 경우를 고려해 본다. 이러한 패러그래프 영역들과 라인 영역들의 각각은 일반적으로 또한 특정하게 그 패러그래프 DOM 노드를 참조하며, 다른 어떠한 DOM 노드들도 참조하지 않는다.
그러나, 부모 패러그래프 DOM 노드가 백그라운드 컬러를 규정하고 자식 패러그래프 DOM 노드가 그 컬러를 계승하는 경우를 고려해 본다. 이에 따라, 자식 패러그래프 DOM 노드에 의해 생성되는 패러그래프 영역과 라인 영역은 일반적으로 자식 패러그래프 DOM 노드를 참조한다. 그러나, 엄밀하게 말하면, 이러한 패러그래프 영역과 라인 영역은 백그라운드 컬러를 특정한 부모 패러그래프 DOM 노드에 의해 항상 영향을 받고 그 부모 패러그래프 DOM 노드에 항상 연관된다.
도 3은 클럭 펄스나 똑딱 소리가 발생하는 것처럼 시간 경과에 따라 HD-DVD 포매터(208)가 장면 설명을 어떻게 전이할 수 있는지를 도시한다. 클럭 펄스나 똑딱 소리는 일반적으로 참조 번호 308로 도시된다. 도 3은 소정의 상태에 있는 장면 설명(206A)이 클럭 펄스(308)에 응답하여 다음 상태(206N)로 전이되는 시나리오를 도시한다.
클럭 펄스(308)가 발생하면, 이것은 장면 설명(206A)이 206N으로 상태 변경되었다는 신호를 HD-DVD 포매터(208)에 제공한다. 도 3에 도시한 바와 같이, 새로운 장면 설명(206N)은 DOM의 새로운 상태(202N)와 연관될 수 있다. 도 3은 초기 DOM 상태(202A)와 새로운 DOM 상태(202N) 사이의 임의의 변경(310)을 도시한다.
이어서, 포매터(208)는 클럭 펄스(308)에 응답하여 합성 영역(302A)을 갱신할 때 이러한 변경(310)을 고려할 수 있다. 구체적으로, 포매터(208)는 DOM(202N)을 합성 영역(302N)의 갱신 상태에 증분 리매핑할 수 있다. 본 명세서에서 사용되는 바와 같이 "증분"(incremental)이라는 용어는, 완전히 새로운 DOM 상태(202N)를 리매핑하는 것과는 구별되도록, 이전의 DOM 상태(202A)에 비하여 새로운 DOM 상태(202N)의 변경된 그 일부분만을 리매핑한다는 개념을 가리킨다. 도 3은 이러한 증분 리매핑 프로세스(312)를 도시한다.
일단 합성 영역(302A)이 합성 영역(302N)으로 갱신되면, HD-DVD 렌더링 컴포넌트(212)는 갱신된 렌더링 출력(124N)을 생성할 수 있다. 렌더링 출력(124N)은 최종 열거적 형태로 사용자에게 제시되듯이 클럭 펄스(308)에 의해 발생한 장면 설명에서의 변경을 반영한다.
도 3을 참조하여 HD-DVD 포매터 컴포넌트(208)를 보다 상세히 설명하였으므로, 이하에서는 DOM 상태들이 시간 경과에 따라 전이될 때 포매터 컴포넌트(208)가 DOM 상태들을 증분 리매핑할 수 있는 다양한 방안을 도 4를 참조하여 보다 구체적으로 설명한다.
도 4는 클럭 펄스에 응답하여 DOM 상태 전이가 시간 경과에 따라 발생할 때의 DOM 상태들의 전이(400)를 도시하고, 또한 포매터 컴포넌트(208)가 DOM 상태들을 어떻게 증분 리매핑하는지를 도시한다. 편의상, 전술한 일부 요소들을 도 4에서 동일한 참조 번호로 도시하였지만, 이러한 예로 한정되지는 않는다.
포매터 컴포넌트(208)는 소정의 현재 장면 설명을 나타내는 데이터(206A)를 수신하고, 연속되는 클럭 펄스(308)들의 지시를 수신한다. 클럭 펄스(308)들에 응답하여, 현재 장면 설명(206A)은 다음 장면 설명 상태(206N)로 전이되고, 포매터 컴포넌트(208)는 다음 장면 설명 상태(206N)의 지시를 수신한다.
도 4에 도시한 바와 같이, 서로 다른 장면 설명 상태들은 DOM의 상태들이나 인스턴스들(202A, 202B, 202C, 202N)에 각각 연관되어 있다. 도 4는 시간 축(402)을 도시하며, 클럭 펄스(308)는 이산 시간(402A, 402B, 402C, 402N)으로 발생한다.
DOM이 상태(202A)로부터 상태(202B)로 전이될 때, 예를 들어, 포매터 컴포넌트(208)는 DOM 상태가 어떻게 변경되는지를 결정할 수 있다. 도 4는 세 가지 변경 예(312A, 312B, 312C)를 도시한다. 변경(312A)은 상태(202A)로부터 상태(202B)로의 전이시 DOM에서의 변경을 가리키고, 변경(312B)은 상태(202B)로부터 상태(202C)로의 전이시 DOM에서의 변경을 가리키고, 변경(312C)은 상태(202C)로부터 상태(202N)로의 전이시 DOM에서의 변경을 가리킨다.
HD-DVD 플레이어(116)의 포매터 컴포넌트(208) 및/또는 기타 컴포넌트들은 이러한 변경들의 콘텐츠와 범위를 가리키는 메시지를 생성할 수 있다. 도 4는 변경 통지 메시지의 세 가지 예(404A, 404B, 404C; 통칭하여 변경 통지 메시지(404)라 함)를 도시한다. 본 명세서에서는 이 기술(description)의 구현이 임의의 개수의 DOM 상태들의 전이를 지원할 수 있다는 점에 주목한다.
변경 통지 메시지(404)에 반영되는 바와 같이 변경들의 특별한 세트의 성질과 범위에 따라, 포매터 컴포넌트(208)는 갱신된 합성 영역을 도출하도록 DOM 상태를 증분 리매핑하거나 리포맷팅하기 위한 서로 다른 기술들을 채용할 수 있다. 도 4는 세 가지 기술을 도시한다.
제1 시나리오(406)에서, 포매터 컴포넌트(208)는 변경(310)에 의한 어떠한 증분 작업도 수행하지 않는다. 이 제1 시나리오에서는, DOM 상태의 전이로 야기되는 증분 리매핑이나 리포맷팅이 전혀 발생하지 않는다. 이러한 제1 시나리오가 발생할 수 있는 예가 이하에서 기재된다.
제2 시나리오(408)에서, 포매터 컴포넌트(208)는 일부 스타일-모든 요소(some styles-all elements) 기술을 채용한다. 이 제2 기술에서, 포매터 컴포넌트는 DOM 마크업 트리에 포함된 모든 요소들을 평가하지만, 상태 전이 때문에 변경되는 스타일만을 평가한다.
제3 시나리오(410)에서, 포매터 컴포넌트(208)는 일부 스타일-단일 요소 기술을 채용한다. 이 제3 기술에서, 포매터 컴포넌트는 마크업 트리에서 단일 노드를 평가하고, 그 단일 노드 내에서, 상태 전이 때문에 수정된 스타일들만 평가한다.
DOM 상태들이 시간 경과에 따라 전이될 때 포매터 컴포넌트(208)가 DOM 상태들을 증분 리매핑할 수 있는 다양한 방안들을 도 4를 참조하여 설명하였으므로, 이하에서는 포매터 컴포넌트(208)가 수행할 수 있는 프로세스 흐름을 도 5를 참조하여 설명한다.
도 5는 HD-DVD 마크업을 증분 갱신하고 포맷팅하는 프로세스 흐름(500)을 도시한다. 편의상, 전술한 일부 요소들을 도 5에서 동일한 참조 번호로 이용하고 있지만, 이러한 예로 한정되지는 않는다. 포매터 컴포넌트(208)와 같은 일부 컴포넌트들과 관련하여 프로세스 흐름(500)을 설명하지만, 본 발명의 사상 및 범위로부터 벗어나지 않고서 다른 컴포넌트들이 프로세스 흐름(500)의 적어도 일부를 수행할 수 있다는 점에 주목한다.
도 5는 클럭 펄스(308)에 응답하여 DOM 상태(202B)로 전이되는 DOM 상태(202A)를 도시한다. DOM 상태(202)들은 전술한 바와 같이 복수의 요소를 포함하는 트리 구조들로서 표현될 수 있다. 도 5에 도시한 바와 같이, 이러한 트리들 내의 요소들은 스타일(502)들과 각각 연관될 수 있다. 도 5는, DOM 상태(202A)에서의 이러한 스타일들(502A, 502B, 502C), 및 DOM 상태(202B)에서의 이러한 스타일들(502X, 502Y, 502Z)의 예를 도시한다. DOM 상태(202A)가 DOM 상태(202B)로 전이될 때, 이러한 스타일(502)들 중 일부가 변경 통지 메시지(404)에서 가리키는 바와 같이 변경될 수 있다(또는 스타일(502)들 중 어떠한 것도 변경되지 않을 수 있다).
본 명세서에서 설명한 툴은 변경 통지 메시지(404)의 수신에 응답하여 프로세스 흐름(500)의 적어도 일부분을 수행할 수 있다. 도 5에 대한 설명과 본 명세서에 포함된 다른 흐름도에 대한 설명을 진행하기 전에, 이러한 흐름도에서 도시된 블록들은 편의상 도시되어 있는 순서로 제시되어 있지만 이러한 예로 한정되지 않는다는 점에 주목한다. 이러한 프로세스 흐름의 구현예는 이러한 블록들을 임의의 편리한 순서로 수행할 수 있다.
블록(504)은 변경 통지 메시지에서 가리키는 포맷팅 변경이 관련 스타일에 대응하는지 여부를 평가하는 것을 나타낸다. 대응한다면, 프로세스 흐름(500)은 "예" 브랜치(506)를 택하여 블록(508)으로 향하며, 이 블록은 관련 스타일에 대응하는 임의의 데이터를 함께 처리하는 것을 나타낸다.
스타일들은 다수의 변경 통지가 함께 전달될 때 관련되고 함께 처리될 수 있다. 예를 들어, 변경 통지 메시지(예를 들어, 404)는 변경 A, 변경 B, 변경 C, 변경 D를 포함할 수 있으며, 여기서 변경 B와 변경 C는 관련되어 있으며 함께 처리될 수 있다.
스타일들은, 많은 스타일들이 합성 영역 내의 하나의 영역의 동일한 부분에 영향을 끼칠 때 함께 관련되고 처리될 수 있다. 예를 들어, 합성 영역 내의 하나의 영역의 일부분은, 직사각형 백그라운드이며, 이 영역이 백그라운드 컬러나 백그라운드 이미지를 갖는 경우 필수적으로 백그라운드 컬러 및/또는 백그라운드 이미지가 그려지는 위치를 설명하는 바운딩 박스((x0, y0) - (x1, y1))이다. 많은 스타일들은 style:anchor, style:x, style:y, style:position, style:inlineProgressionDimension, style:blockProgressionDimension, style:writingMode, style:width, style:height를 포함하는 이 직사각형 백그라운드에 영향을 끼칠 수 있지만, 이러한 스타일의 예로 한정되지는 않는다. 따라서, 이러한 스타일들 모두는, 궁극적으로 그 영역에서 직사각형 백그라운드를 연산하는 것이 이러한 스타일들의 각각을 고려하기 때문에, 한번에 처리될 수 있다. 그러나, 직사각형 백그라운드의 style:color가 이 영역에 대한 바운딩 박스에 관련되어 있지만, 컬러는 바운딩 박스의 연산에 관여되지 않으며, 컬러 변경은 폭, 높이 등의 변경과는 별도로 처리된다.
블록(504)로 돌아가서, 변경 통지 메시지에서 가리키는 포맷팅 변경이 관련 스타일에 대응하지 않으면, 프로세스 흐름(500)은 "아니오" 브랜치를 취하여 평가 블록(512)으로 진행할 수 있다.
평가 블록(512)은, 과거 포맷팅 결과가 이용가능한지 여부를 판정하고, 이용가능하다면 이러한 과거 결과가 DOM 상태(202B)에 대하여 여전히 정확한 것인지 여부를 판정하는 것을 나타낸다. 정확하다면, 프로세스 흐름(500)은 "예" 브랜치(514)를 택하여 블록(516)으로 향하고, 여기서는 클럭 펄스(308)에 의해 개시된 현재의 리포맷팅 동작에서 이러한 과거 포맷팅 결과를 이용하는 것을 나타낸다.
평가 블록(512)에서, 평가 결과가 부정적이라면, 프로세스 흐름은 "아니오" 브랜치(518)를 취하여 평가 블록(520)으로 향하고, 이 블록은 클럭 펄스에 의해 개시된 임의의 스타일 변경이 DOM에서의 모든 요소들에 영향을 끼치는지 또는 DOM에서의 요소들의 서브세트에만 영향을 끼치는지 여부를 평가한다. 스타일 변경이 이러한 요소들의 서브세트에만 영향을 끼친다고 판정되면, 프로세스 흐름(500)은 "예" 브랜치(522)를 취하여 블록(524)으로 향하고, 이 블록은 DOM 내의 요소들의 영향을 받은 유용한 서브세트를 처리한다.
평가 블록(520)으로부터, 평가 결과가 부정적이라면, 프로세스 흐름(500)은 "아니오" 브랜치(526)를 취하여 평가 블록(528)으로 향할 수 있으며, 이 블록은 DOM 상태(202A)로부터 상태(202B)로의 전이가 그래픽 애셋(graphic asset)을 참조하는지 여부 및/또는 역참조(dereferenc)하는지 여부를 판정한다. 그래픽 애셋의 예로는, 압축해제 동작에 관련되어 사용될 수 있는 이미지나 폰트 파일이 있다.
평가 블록(528)으로부터, 평가 결과가 긍정적이라면, 프로세스 흐름(500)은 "예" 브랜치(530)를 취하여 블록(532)으로 향하고, 이 블록은 HD-DVD 상에 저장된 바와 같이 적절히 저작된 애플리케이션이 플랫폼 제한 사항을 초과하지 않도록(예를 들어, 픽셀 버퍼의 한계를 초과하지 않도록) 동작의 임의의 참조 동작 및/또는 역참조 동작을 순서화한다.
평가 블록(528)으로부터, 평가 결과가 부정적이라면, 프로세스 흐름(500)은 "아니오" 브랜치(534)를 취하여 블록(536)으로 향할 수 있고, 이 블록은 클린(clean) 상태 또는 더티(dirty) 상태를 DOM 트리 내의 다양한 요소들과 관련짓는다. 구체적으로, DOM 상태가 202A로부터 202B로 변경되어 DOM 트리의 특정한 요소들이 변경되면, 블록(536)은 이러한 특정한 요소들을 더티로 마킹하는 것을 포함할 수 있으며, DOM 트리의 나머지 요소들을 클린으로 마킹하는 것을 포함할 수 있다.
블록(538)은 전체적으로 DOM 트리를 클린 상태 또는 더티 상태와 관련짓는다. 구체적으로, DOM 상태(202A)로부터 DOM 상태(202B)로의 변경으로 인해 DOM 트리에서 어떠한 변경이 발생하면, 블록(538)은 DOM 트리를 더티 상태로 마킹하는 것을 포함할 수 있다. DOM 상태가 변경되지 않아 전체적으로 DOM 트리에 변경이 발생하지 않으면, 블록(538)은 DOM 트리를 클린 상태로 마킹하는 것을 포함할 수 있다.
블록(540)은 블록(536) 및/또는 블록(538)에 의해 더티 상태로 마킹된 DOM 트리 내의 이러한 요소들 및/또는 스타일들에 대한 리포맷팅을 나타낸다.
도 5에 도시한 다양한 동작들은 서로 다른 최적화 전략들을 제공한다. 본 명세서에서 설명하는 툴의 구현예에서는, 서로 다른 환경들에서 적절한 경우 이러한 최적화 전략들 중 하나 이상을 채용할 수 있다. 구체적으로, 이러한 최적화 전략들은 일부 스타일-모든 요소 기술(예를 들어, 도 4의 블록 406) 및/또는 일부 스타일-단일 요소 기술(예를 들어, 도 4의 블록 408)을 지원할 수 있다.
포매터 컴포넌트(208)가 수행할 수 있는 프로세스 흐름을 도 5를 참조하여 설명하였으므로, 이하에서는 도 6을 참조하여 HD-DVD 스타일 데이터를 층들로 조직하는 것을 설명한다.
도 6은 HD-DVD 스타일 데이터가 층들로 조직된 장치(600)를 도시한다. 편의상, 위에서 설명한 일부 요소들을 도 6에서 동일한 참조 번호로 표시하였지만, 이러한 예로 한정되지는 않는다.
도 6에 도시한 바와 같이, 클럭 펄스(308)에 응답하여 DOM 상태(202A)로부터 DOM 상태(202B)로의 천이에 따라, HD-DVD 포매터(208)가 변경 통지 메시지(404)를 생성하게 된다. 스타일(502)은 도 5로부터 순방향으로 전달된다.
포매터(208)는 층 구조의 개념을 지원할 수 있다. 도 6은 층(602A, 602N; 일반적으로 602)의 두 개의 예를 도시하지만, 본 명세서에서 설명하는 툴은 어떠한 개수의 층도 지원할 수 있다. 층(602)은 소정의 DOM 상태에서 보이는 다양한 스타일 데이터를 조직할 수 있다. 도 6에 도시한 예에서, 층(602N)은 DOM 상태(202A)의 스타일(502A)과 연관되어 있으며 DOM 상태(202B)의 스타일(502X)과 연관되어 있다. 다른 층들(예를 들어, 층(602A))은 다른 스타일(502)들을 조직할 수 있지만, 도 6에서는 설명이 명료해지도록 이러한 관계가 생략된다.
층들이 스타일 데이터를 조직할 수 있게 하는 기준의 예로는, 스타일 데이터를 분리하여, HD-DVD가 저작되어 있는 선언적 언어에 의해 허용되는, 응용 값(applicative value), 참조 값, 인라인 값, 애니메이션 값(animated value), 스크립트 값(scripted value)을 지원하는 것을 포함한다. 도 6은 이러한 값들을 블록(604, 606, 608, 610, 612)들로 각각 나타낸다.
DOM이 상태(202A)로부터 상태(202B)로 변경될 때, 포매터(208)는 그 상태 변경으로 인해 발생하는 서로 다른 층들에게 변경을 보고할 수 있다. 도 6은 층들에 대한 이러한 변경을 블록(614)으로 도시한다. 이러한 변경은, 예를 들어, 블록(616)으로 나타낸 바와 같이 개별 층들에서의 서로 다른 스타일들에 대한 하나 이상의 set() 연산으로서 표현될 수 있다.
블록(618)은 이러한 변경을 개별 층들에서의 서로 다른 스타일들에 대한 하나 이상의 unset() 연산으로서 표현하는 것을 나타낸다. 블록(620)은 이러한 층 변경을 개별 층들에서의 서로 다른 스타일들에 대한 하나 이상의 get() 연산으로서 표현하는 것을 나타낸다. 블록(622)은, 유효 값을 판정하도록 각 층의 상대적 우선 순위를 고려하여, 이러한 층 변경을 모든 층들에서의 모든 스타일들에 대한 하나 이상의 get() 연산으로서 표현하는 것을 나타낸다. 블록(624)은 층들에 의해 발생하는 실체 데이터(tangible data)를 분리하는 것을 나타낸다.
set() 연산과 unset() 연산의 예로, 선언적 콘텐츠 마크업 및 선언적 스타일 마크업에서 style:x가 인라인으로 적용됨으로 인해 소정의 요소의 초기 상태가 style:x="10px"인 경우를 고려해 본다. 선언적 타이밍 마크업에서, 영화 재생 3분 후의 시간에서, 요소는 5초에 걸쳐 10px로부터 100px로 이동한 후 5초에 걸쳐 뒤로 이동하도록 프로그래밍되는 경우를 고려해 본다.
애니메이션이 발생하고 있는 부분을 포함하여 영화의 전체 지속 시간 동안, style:x의 초기 값은 10px로 유지된다. 이 값은 로딩 동안 set()였으며 절대로 unset()이 아니다.
영화의 처음 3분 동안에는, 애니메이션 층에서 style:x의 어떠한 값도 존재하지 않는다. 영화 재생의 3분에서, style:x의 애니메이션 값은 10px로 설정(set())된다. 다음 10초 동안, style:x의 애니메이션 값은, 시스템의 성능 및 기타 프로그래밍 고려 사항에 따라 10 내지 100의 값으로 설정(set())되고 되돌아간다.
영화 재생의 3분 10초에서, style:x의 애니메이션 값은 unset()으로 된다. 영화 재생의 3분 10초 후에, style:x의 어떠한 값도 애니메이션 층에 존재하지 않는다. 이제, 영화의 최초 3분 동안, 유효 값이 인라인 층으로부터의 값이다. 3:00 내지 3:10 동안, 유효 값은 애니메이션 층으로부터의 값이다. 3:10에서, 유효 값은 다시 인라인 층으로부터의 값이다.
get() 연산의 예로, 소정 시간 주기 동안 style:x의 애니메이션 값과 style:x의 정적 인라인 값을 갖는 위의 버튼의 경우를 고려해 본다. get() 연산은, 유효 값, 필수적으로 최종 개수를 요청하는 층 컴포넌트 외부의 컴포넌트를 판정하도록 포맷팅에 의해 수행될 수 있다. 이 요청을 수용하기 위해, 층 컴포넌트는 개별 층들에 저장된 값을 얻기 위해(get()) 부 호출(subordinate calls)을 행할 수 있으며, 이후 HD-DVD 사양에서의 선행 규칙(precedence rule)에 따라 이용가능 층들로부터 적절한 유효 값을 선택할 수 있다. 따라서, 유효 get()을 지원하도록 기능하는 층인 get()의 두 가지 버전이 존재한다.
도 6을 참조하여 HD-DVD 스타일 데이터를 층들 내에 조직하기 위한 기술을 설명하였으므로, 이하에서는 도 7을 참조하여 변경 통지 메시지를 보다 상세히 설명한다.
도 7은 변경 통지 메시지의 추가 양태(700)를 도시한다. 편의상, 위에서 설명한 일부 요소들을 도 7에서 동일한 참조 번호로 표시하였지만, 이러한 예로 한정되지는 않는다.
전술한 바와 같이, 변경 통지 메시지(예를 들어, 404)는, DOM 상태(202A)가 DOM 상태(202B)로 전이될 때 발생할 수 있다. 상태 전이로부터 발생하는 변경의 성질과 범위에 따라, 변경 통지 메시지는 정보의 서로 다른 유형들을 포함할 수 있다.
도 7에 도시한 예에서, 변경 통지 메시지는, 702로 나타낸 바와 같이 상태 전이 때문에 하나 이상의 요소가 변경되고 있음을 가리킬 수 있다. 요소들의 예가 204A, 204B, 204X - 204Z로 도시되어 있다.
변경 통지 메시지는, 704로 나타낸 바와 같이 상태 전이 때문에 하나 이상의 스타일이 변경되고 있음을 가리킬 수 있다. 스타일들의 예가 502A - 502C, 502X - 502Z로 도시되어 있다.
변경 통지 메시지는 706에서 상태 전이 때문에 하나 이상의 층이 변경되고 있음을 가리킬 수 있다. 층들의 예는 602A - 602N으로 도시되어 있다.
라인(708)은 DOM에 대한 변경이 하나 이상의 set() 연산에서 표현되는 인스턴스를 나타낸다. 이러한 인스턴스에서, 변경 통지는 블록(710)에서 나타낸 바와 같이 스타일의 새로운 값을 특정할 수 있다.
도 7을 참조하여 변경 통지 메시지를 보다 상세히 설명하였으므로, 이하에서는 도 8을 참조하여 변경 통지 메시지에 대한 반응을 위한 프로세스 흐름을 설명한다.
도 8은 변경 통지 메시지에 대한 반응으로서 수행될 수 있는 프로세스 흐름(800)을 도시한다. 편의상, 위에서 설명한 일부 요소들을 도 8에서 동일한 참조 번호로 표시하였지만, 이러한 예로 한정되지는 않는다.
도 8에 도시한 바와 같이, 타이밍 마크업(예를 들어, 112)에서 또는 스크립트(예를 들어, 114)에서 특정된 DOM 상태의 변경에 의해 변경 통지 메시지(예를 들어, 404)가 발생할 수 있다. 변경 통지 메시지에 응답하여, 툴은 프로세스 흐름(800)의 적어도 일부를 수행할 수 있다.
평가 블록(802)은 입력되는 변경 통지 메시지(404)가 set() 연산 또는 unset() 연산을 특정하는지 여부를 판정하는 것을 나타낸다. 메시지(404)가 set() 연산을 특정하면, 프로세스 흐름(800)은 브랜치(804)를 취하여 평가 블록(806)으로 향할 수 있다. 메시지가 unset() 연산을 취하면, 프로세스 흐름(800)은 브랜치(808)를 취하여 블록(810)으로 향할 수 있다.
블록(810)은 메시지(404)에서 특정된 바와 같이 유효 스타일 값을 얻기 위해 get() 연산을 수행하는 것을 나타낸다.
평가 블록(812)은 입력되는 메시지(404)가 단일 요소 포맷팅을 허용하는지 여부를 판정하는 것을 나타낸다. 허용한다면, 프로세스 흐름(800)은 브랜치(814)를 취하여 블록(816)으로 향하고, 이 블록은 입력되는 메시지(404)에서 특정된 단일 요소에 관련된 실체 데이터를 조절하는 것을 나타낸다. 이후, 프로세스 흐름(800)은 종료 상태(818)로 진행할 수 있다.
평가 블록(812)으로부터, 단일 요소 포맷팅이 허용되지 않으면, 프로세스 흐름(800)은 브랜치(820)를 취하여 블록(822)으로 향하고, 이 블록은 입력되는 메시지에서 특정된 리포맷팅의 영향을 검색(look up)하는 것을 나타낸다.
포맷팅의 영향을 검색하는 예로, 백그라운드 컬러를 규정하는 부모 패러그래프, 및 그 컬러를 계승하는 자식 패러그래프를 다시 고려해 본다. 부모 패러그래프의 백그라운드 컬러가 변경되면, 변경된 그 값을 계승하는 어떠한 자식 패러그래프도 변경된다. 따라서, 부모 패러그래프는 단일 요소 포맷팅을 이용하여 style:backgroundColor를 포맷하는 것이 허용되지 않는다. 이 포맷팅이 허용되는지 여부를 아는 것은 블록(828)에서 연산되고 부모 패러그래프에 대응하는 포맷팅 소프트웨어의 구성의 일부로서 저장된다.
블록(824)은 입력되는 메시지에서 특정된 리포맷팅에 의해 전체 DOM 트리가 영향을 받고 이에 따라 더티 상태라는 점을 가리키도록 비트 또는 기타 적절한 메카니즘을 설정하는 것을 나타낸다. 이후, 프로세스 흐름(800)은 종료 상태(818)로 진행할 수 있다.
평가 블록(812)으로부터, 단일 요소 포맷팅이 허용되는지 여부의 문제가 아직 판정되지 않았다면, 프로세스 흐름(800)은 브랜치(826)를 취하여 블록(828)으로 진행할 수 있으며, 이 블록은 트리에서의 현재의 부모 노드 및/또는 자식 노드를 검사한다. 이후, 프로세스 흐름(800)은 도 8에 도시한 바와 같이 평가 블록(812) 바로 전으로 복귀할 수 있다.
일부 요소에 대응하는 포맷팅 소프트웨어의 구성에는, 부모 요소, 제1 자식 요소, 다음 형제 요소(sibling element)에 대한 참조가 저장되어 있다. 이러한 세 개의 링크를 이용함으로써, 트리는 적절하게 위 및/또는 아래로 및/또는 가로질러 횡단될 수 있다. 트리의 일부 또는 전부를 횡단하여 단일 요소 포맷팅이 허용되어 있는지 여부를 판정할 수 있다.
변경 통지 메시지가 단일 요소 포맷팅이 허용되는지 여부를 특정하지 않을 수 있지만, 변경 통지 메시지는 단일 요소 포맷팅을 허용하거나 허용하지 않는다는 판정을 통보하는 소정의 정보를 포함할 수 있다.
예를 들어, 백그라운트 컬러를 적색으로 규정하는 부모 버튼, 및 백그라운드 컬러를 청색으로 규정하는 자식 버튼을 고려해 본다. 자식 버튼이 청색을 무시하고 대신에 자신의 부모로부터 적색인 백그라운드 컬러를 계승하도록 변경되면, 단일 요소 포맷팅은 부모에 대하여 비활성화되고, 부모에 대한 변경이 이제 자식에 영향을 끼친다.
다른 예로, 명시적인 크기를 갖지 않는 부모 패러그래프와, "Hello, World"라는 텍스트를 포함하는 자식 스팬(child span)을 고려해 본다. 이어서, 이 부모 패러그래프의 디폴트 크기는 여러 개의 사항들에 기초하지만, 여기서의 설명에 있어서 가장 중요한 것은 스트링(Hello, World)에 대한 글리프(glyphs)를 포함하는 스팬의 크기이다.
또 다른 예로, "Hello, World" 대신에 "The Quick Brown Fox"를 포함하도록 자 스팬이 수정되어 있는 변경 통지를 고려해 본다. 명백하게, 이 스팬은, 더 이상의 텍스트가 없으므로, 더 커지고 있다. 명백하게, 스팬의 크기에 따라 주로 크기 조절되는 부모 패러그래프도 더 커지고 있다. 따라서, 이 경우 스팬은 단일 요소 수단에 따라 포맷팅되지 않을 수 있다.
일반적으로, 영향은, 부모-자식 영향 및 자식-부모 영향을 포함할 수 있다. 구현에 있어서, 이러한 영향들은 다수일 수 있으며, 위에서 예시용으로 제공한 계승 및 사이징(sizing) 예로 한정되지 않을 수 있다.
평가 블록(806)으로 복귀하게 되면, 이 블록은 메시지(404)에서 특정된 층이 리포맷팅 프로세스에서 유효 층인지 여부를 판정하는 것을 나타낸다. DVD 명세는 어느 층들이 유효한지 또는 특별한 상황에서 선행(precedence)을 갖는지를 규정한다. 메시지에 특정된 층이 유효 층이 아니라면, 프로세스 흐름(800)은 "아니오" 브랜치(830)를 취하여 종료 상태(818)로 진행할 수 있다. 반면에, 메시지(404)에 특정된 층이 유효 층이라면, 프로세스 흐름(800)은 "예" 브랜치(832)를 취하여 평가 블록(834)으로 진행할 수 있다.
블록(834)은 검사되고 있는 현재 노드가 다른 노드로부터의 속성들 중 적어도 일부를 계승하도록 설정되어 있는지 여부를 판정하는 것을 나타낸다. 예를 들어, 현재 노드는 부모 노드로부터의 속성들 중 적어도 일부를 계승하는 자식 노드일 수 있다. 다른 예로, 현재 노드는 부모 노드일 수 있으며, 이 부모 노드의 속성들 중 적어도 하나는 자신의 자식 노드들의 속성들에 기초한다. 일반적으로, 변경 메시지는, 설정 메시지인 경우, 설정되고 있는 값을 포함한다. 한 가지 특별한 유형의 값은 "계승" 값이다.
평가 블록(834)에서, 현재 노드가 다른 노드로부터 계승되도록 설정되어 있지 않다면, 프로세스 흐름(800)은 "아니오" 브랜치(836)를 취하여 블록(838)으로 진행할 수 있고, 이 블록은 입력되는 메시지(404)에서 특정된 바와 같은 스타일 값을 이용하는 것을 나타낸다. 이후, 프로세스 흐름(800)은 종료 상태(818)로 진행할 수 있다.
평가 블록(834)에서, 현재 노드가 다른 노드로부터 계승되도록 설정되어 있다면, 프로세스 흐름(800)은 "예" 브랜치(840)를 취하여 블록(842)으로 진행할 수 있으며, 이 블록은 현재 노드의 임의의 부모 노드나 자식 노드 뿐만 아니라 그 현재 노드에 대한 단일 요소 포맷팅을 비활성화하는 것을 나타낸다. 현재 노드가 다른 노드들로부터 계승되기 때문에, 리포맷팅으로부터 발생하는 임의의 변경은 트리의 적어도 일부를 통해 캐스케이딩(cascade)될 수 있고, 이 경우, 단일 요소 포맷팅은 적절하지 않을 수 있다. 이후, 프로세스 흐름(800)은 전술한 블록(810)으로 진행할 수 있다.
프로세스 흐름이 블록(842)을 거쳐 평가 블록(812)에 도달하게 되면, 블록(842)은 단일 요소 포맷팅을 비활성화한다. 이 경우, 프로세스 흐름(800)은 브랜치(820)를 취하여 블록(822)으로 진행할 수 있다. 이어서, 블록(822)은 블록(834)의 계승 관계로부터 발생하는 변경이 트리를 통해 얼마나 많이 캐스케이딩되어 있는지를 확인하는 것을 포함할 수 있다.
도 8을 참조하여 변경 통지 메시지에 대한 반응을 위한 프로세스 흐름(800)을 설명하였으므로, 이하에서는 도 9를 참조하여 프레임당 포맷팅을 위한 프로세스 흐름을 설명한다.
도 9는 클럭 신호에 응답하여 프레임당 포맷팅을 수행하기 위한 프로세스 흐름(900)을 도시한다. 편의상, 위에서 설명한 일부 요소들을 도 9에 도시하였으며 동일한 참조 번호를 부여하였지만, 이러한 예로 한정되지는 않는다.
도 9는 HD-DVD 클럭킹 신호(308)의 예를 도시한다. 본 명세서에서 설명하는 툴은 클럭킹 신호의 이산 인스턴스에 응답하여 프로세스 흐름(900)의 적어도 일부를 수행할 수 있다. 전술한 바와 같이, HD-DVD 장면 설명을 위한 마크업은 트리 형 구조로 표현될 수 있고, 클럭킹 신호가 발생할 때, 툴은 마크업을 갱신하고 렌더링 및 사용자에 대한 프리젠테이션을 위해 그 갱신된 마크업을 리포맷할 수 있다(예를 들어, 도 1의 참조 번호 102).
블록(902)은 클럭킹 신호로 인해 장면 설명을 나타내는 트리 구조 내의 임의의 상태나 스타일 변경이 발생하는지 여부를 평가하는 것을 나타낸다. 클럭킹 신호로부터 어떠한 상태나 스타일도 변경되지 않으면, 프로세스 흐름(900)은 "아니오" 브랜치(904)를 취하여 종료 상태(906)로 진행할 수 있다. 반면에, 클럭킹 신호로부터 임의의 상태나 스타일이 변경하게 되면, 프로세스 흐름(900)은 "예" 브랜치(908)를 취하여 블록(910)으로 진행할 수 있다.
블록(910)은 블록(902)에서 평가된 상태나 스타일 변경으로 인해 트리 구조의 임의의 부분이 더티 상태로 되었는지 여부를 평가하는 것을 나타낸다. 다시 말하면, 블록(910)은 상태나 스타일 변경 때문에 트리 내의 적어도 하나의 요소가 변경되어야 하는지 여부를 평가하는 것을 포함할 수 있다. 구체적으로, 블록(910)은 임의의 상태나 스타일 변경을 위해 처리될 트리 내의 소정의 요소를 선택하도록 트리를 횡단하는 것을 포함할 수 있다.
트리 내의 어떠한 요소도 변경되지 않아야 한다면, 프로세스 흐름(900)은 "아니오" 브랜치(912)를 취하여 종료 상태(906)로 진행할 수 있다. 반면에, 트리 내의 임의의 요소가 변경되어야 한다면, 프로세스 흐름(900)은 "예" 브랜치(914)를 취하여 블록(916)으로 진행할 수 있고, 이 블록은 트리 횡단이 완료되는지 여부를 평가하는 것을 나타낸다. 트리 내의 어떠한 요소도 횡단을 위해 남아 있지 않다면, 프로세스 흐름(900)은 "아니오" 브랜치(918)를 취하여 종료 상태(906)로 진행할 수 있다. 반면에, 트리 내의 임의의 요소가 횡단을 위해 남아 있다면, 프로세스 흐름(900)은 "예" 브랜치(920)를 취하여 블록(922)으로 진행할 수 있다.
블록(922)은 현재 요소로서 트리에 남아있는 적어도 하나의 다음 요소에 액세스하도록 트리를 횡단하는 것을 나타낸다. 블록(924)은 그 현재 요소에 대하여 행할 임의의 변경을 판정하거나 연산하는 것을 나타낸다. 이러한 변경은 도 9에 도시한 바와 같이 "더티 스텝"으로서 보일 수 있다. 블록(926)은 현재 요소에 대하여 임의의 더티 스텝을 수행하는 것을 나타낸다. 이후, 프로세스 흐름(900)은 블록(916)으로 복귀하여, 횡단 및 처리를 위해 트리에 남아있는 임의의 추가 요소를 체크할 수 있다. 블록(922, 924, 926)들은 소정의 마크업 트리 내에 포함된 다양한 요소들에 대하여 반복될 수 있다.
도 9를 참조하여 프레임당 포맷팅을 수행하기 위한 프로세스 흐름(900)을 설명하였으므로, 이하에서는 도 10을 참조하여 마크업 트리의 부모 노드와 자식 노드를 횡단하는 것을 보다 상세히 설명한다.
도 10은 마크업 트리의 부모 노드와 자식 노드를 횡단하기 위한 프로세스 흐름(1000)을 도시한다. 편의상, 위에서 설명한 일부 요소들을 도 10에서 동일한 참조 번호로 표시하였지만, 이러한 예로 한정되지는 않는다.
도 10은 장면 설명 마크업의 DOM 트리(202)의 일 예를 도시한다. 이 DOM 트리(202)의 예는, 세 개의 예(204A, 204B, 204N)를 도시하고 있는 도 10에서 임의의 개수의 요소를 포함할 수 있다. 프로세스 흐름(1000)은 장면 설명을 리포맷팅할 때 트리 구조를 횡단하는 데 있어서 투-패스 프로세스를 수행할 수 있다. 블록(1002)은 제1 패스를 수행하는 한편 블록(1004)은 제2 패스를 수행한다.
블록(1002)에 나타낸 제1 패스를 보다 상세히 참조해 보면, 블록(1006)은 DOM 트리 내의 소정의 부모 노드를 횡단하는 것을 나타낸다. 프로세스 흐름(1000)은 DOM 트리의 루트 노드(예를 들어, 204A)로 시작할 수 있고, 이로부터 트리를 횡단할 수 있다. 이후, 루트 노드(예를 들어, 204A) 아래에서 하나 이상의 자식 노드를 아래에 갖는 부모 노드에 대하여 횡단을 행할 수 있다.
블록(1008)은, 현재 노드의 자식 노드로 진행하기 전에, 현재 노드에서 가능한 많은 리포맷팅을 수행함으로써 현재 노드에서 컨텍스트를 생성하는 것을 나타낸다.
블록(1010)은 임의의 추가 부모 노드가 DOM 트리에서 처리를 위해 남아 있는지 여부를 판정하는 것을 나타낸다. 남아 있다면, 프로세스 흐름(1000)은 "예" 브랜치(1012)를 취하여 블록(1006)으로 복귀하여, 트리에서의 다음 부모 노드를 선택한다. 남아 있지 않다면, 프로세스 흐름(1000)은 "아니오" 브랜치(1014)를 취할 수 있다. 브랜치(1014)는 도 10에 도시한 바와 같이 제1 패스에 대한 상세 처리를 완료하고 제2 패스에 대한 상세 처리를 시작한다.
블록(1004)을 보다 상세히 참조해 보면, 블록(1016)은 트리를 횡단하여 소정의 부모 노드 아래의 임의의 자식 노드에 액세스한다. 블록(1018)은 그 소정의 부모 노드 아래의 자식 노드를 처리하기 위한 상세를 분석하는 것을 나타낸다.
평가 블록(1020)은, 소정의 부모 노드가 처리를 위해 자신 아래에서 임의의 추가 자식 노드를 갖고 있는지 여부를 판정하는 것을 나타낸다. 갖고 있다면, "예" 브랜치를 취하여 다시 블록(1016)으로 향하여 다음 자식 노드의 처리를 계속한다. 소정의 부모 노드가 자신의 아래에서 어떠한 추가 자식 노드도 갖고 있지 않다면, "아니오" 브랜치(1024)를 취하여 블록(1026)으로 향할 수 있으며, 이 블록은, 그 소정의 부모 노드 아래의 모든 자식 노드에 대한 상세를 분석하였으므로, 그 소정의 부모 노드에 관한 상세를 완전히 분석하는 것을 나타낸다.
도 10을 참조하여 마크업 트리의 부모 노드와 자식 노드를 횡단하기 위한 프로세스 흐름(1000)을 설명하였으므로, 이하에서는 콘텐츠 마크업 참조 및 마크업 트리를 통한 전체 반복을 설명한다.
아래의 표 2는 트리를 통한 패스 1 및 패스 2로 표시된 패스들의 분리의 일 예를 도시한다.
Figure 112009040808878-PCT00002
도 10과 관련하여 전술한 바와 같이, 패스 1은 부모 노드를 통해 하향 횡단하고, 자식 노드를 위한 컨텍스트를 확립한다. 패스 2 업(Pass 2 up) 동안, 자 상세가 충분히 해석되어, 부 상세가 충분히 해석될 수 있게 한다.
결론
HD-DVD 처리를 설명하였지만, 본 명세서에서 설명한 툴 및 기술은 다른 유형의 매체를 처리하거나 본 명세서에서 설명한 유형과는 다른 유형의 마크업을 처리하는 데 적합할 수 있다는 점에 주목한다.
구조적 특징 및/또는 방법론적 액션에 특정된 언어로 시스템 및 방법을 설명하였지만, 청구범위에서 규정된 시스템 및 방법이 반드시 설명된 특정한 특징이나 액션으로 한정되지 않는다는 점을 이해하기 바란다. 오히려, 이러한 특정한 특징과 액션은 청구 대상인 시스템과 방법을 구현하는 예시적인 형태로서 제시된 것이다.
또한, 본 명세서에서 설명하고 예시한 소정의 데이터 및 프로세스 흐름도에 대하여, 본 발명의 사상 및 범위로부터 벗어나지 않고서 이러한 프로세스와 서브 프로세스가 도시된 순서가 아닌 다른 순서로 수행될 수 있다는 점에 주목한다. 또한, 본 명세서에서는 이러한 데이터 및 프로세스 흐름을 소정의 컴포넌트와 관련하여 설명하고 있지만, 본 발명의 사상 및 범위로부터 벗어나지 않고서 이러한 데이터 및 프로세스 흐름을 다른 컴포넌트와 함께 수행할 수 있다는 점에 주목한다.

Claims (20)

  1. 기계 판독가능 명령어들을 포함하는 하나 이상의 기계 판독가능 저장매체(120)로서,
    상기 기계 판독가능 명령어들은, 기계(116)에 의해 실행시, 상기 기계(116)로 하여금,
    고해상도 DVD(HD-DVD)로부터 판독될 제1 장면 설명(scene description)을 나타내는 제1 마크업을 수신하는 단계(206A)와,
    사용자에게 프리젠테이션하도록 상기 제1 마크업의 적어도 일부를 제1 합성 영역(area composite; 302A)에 매핑하는 단계(304)와,
    상기 HD-DVD로부터 판독될 적어도 제2 장면 설명을 나타내는 적어도 제2 마크업을 수신하는 단계(206N)와,
    상기 제2 마크업을 수신하는 것에 응답하여, 상기 사용자에게 프리젠테이션하도록 상기 제1 장면 설명의 일부분을 적어도 제2 합성 영역(302N)에 증분 리매핑(incrementally remapping; 312)하는 단계
    를 포함하는 방법을 수행하게 하는 하나 이상의 기계 판독가능 저장매체.
  2. 제1항에 있어서,
    상기 제1 마크업을 수신(206A)하기 위한 명령어들은 상기 HD-DVD로부터 판독되는 콘텐츠 마크업, 스타일 마크업, 타이밍 마크업 중 적어도 하나를 수신하기 위 한 명령어들을 포함하는, 하나 이상의 기계 판독가능 저장매체.
  3. 제1항에 있어서,
    상기 제1 장면 설명의 일부분을 증분 리매핑(312)하기 위한 명령어들은 상기 제1 장면 설명에서 표현된 모든 요소들 중 일부 스타일들을 리매핑(408)하기 위한 명령어들을 포함하는, 하나 이상의 기계 판독가능 저장매체.
  4. 제1항에 있어서,
    상기 제1 장면 설명의 일부분을 증분 리매핑(312)하기 위한 명령어들은 상기 제1 장면 설명에서 표현된 하나의 요소의 일부 스타일들을 리매핑(410)하기 위한 명령어들을 포함하는, 하나 이상의 기계 판독가능 저장매체.
  5. 제1항에 있어서,
    상기 제1 장면 설명의 일부분을 증분 리매핑(312)하기 위한 명령어들은 상기 제1 장면 설명의 증분 리매핑을 수행하지 않는 것(406)을 판정하기 위한 명령어들을 포함하는, 하나 이상의 기계 판독가능 저장매체.
  6. 제1항에 있어서,
    클럭 펄스에 응답하여 상기 제2 마크업을 수신(308)하기 위한 명령어들을 더 포함하는, 하나 이상의 기계 판독가능 저장매체.
  7. 제1항에 있어서,
    상기 제2 마크업을 수신하는 것에 응답하여 적어도 하나의 변경 통지 메시지를 생성(404A, 404B, 404C)하기 위한 명령어들을 더 포함하는, 하나 이상의 기계 판독가능 저장매체.
  8. 제7항에 있어서,
    상기 변경 통지 메시지를 생성(404A, 404B, 404C)하기 위한 명령어들은, 상기 제2 장면 설명에서 변경되는 상기 제1 장면 설명 내의 적어도 하나의 요소의 지시를 포함하는 변경 통지 메시지를 생성하기 위한 명령어들을 포함하는, 하나 이상의 기계 판독가능 저장매체.
  9. 제7항에 있어서,
    상기 변경 통지 메시지를 생성(404A, 404B, 404C)하기 위한 명령어들은, 상기 제2 장면 설명에서 변경되는 상기 제1 장면 설명 내의 적어도 하나의 요소 내의 적어도 하나의 스타일의 지시를 포함하는 변경 통지 메시지를 생성하기 위한 명령어들을 포함하는, 하나 이상의 기계 판독가능 저장매체.
  10. 제7항에 있어서,
    상기 변경 통지 메시지를 생성(404A, 404B, 404C)하기 위한 명령어들은, 상 기 제2 장면 설명에서 변경되는 상기 제1 장면 설명에서 규정된 층 내에 있는 적어도 하나의 요소나 스타일의 지시를 포함하는 변경 통지 메시지를 생성하기 위한 명령어들을 포함하는, 하나 이상의 기계 판독가능 저장매체.
  11. 제7항에 있어서,
    상기 변경 통지 메시지를 생성(404A, 404B, 404C)하기 위한 명령어들은, 상기 제2 장면 설명에서 변경되는 상기 제1 장면 설명에서 규정된 요소의 스타일의 적어도 하나의 새로운 값의 지시를 포함하는 변경 통지 메시지를 생성하기 위한 명령어들을 포함하는, 하나 이상의 기계 판독가능 저장매체.
  12. 제7항에 있어서,
    상기 변경 통지 메시지에서 특정된 층이 유효한 층인지 여부를 판정(806)하기 위한 명령어들을 더 포함하는, 하나 이상의 기계 판독가능 저장매체.
  13. 제7항에 있어서,
    상기 제1 장면 설명에 포함된 적어도 하나의 제1 요소가 상기 제1 장면 설명에 포함된 다른 하나의 요소로부터 적어도 하나의 속성(attribute)을 계승하도록 설정되어 있는지 여부를 판정(840)하기 위한 명령어들을 더 포함하는, 하나 이상의 기계 판독가능 저장매체.
  14. 제13항에 있어서,
    상기 제1 요소가 상기 적어도 하나의 속성을 계승하도록 설정되어 있다는 판정에 응답하여, 상기 제1 요소의 단일 요소 리매핑(single-element remapping)을 비활성화(842)하기 위한 명령어들을 더 포함하는, 하나 이상의 기계 판독가능 저장매체.
  15. 제13항에 있어서,
    상기 제1 요소가 상기 적어도 하나의 속성을 계승하도록 설정되어 있지 않다는 판정에 응답하여, 상기 제1 요소의 단일 요소 리매핑을 수행(838)하기 위한 명령어들을 더 포함하는, 하나 이상의 기계 판독가능 저장매체.
  16. 제13항에 있어서,
    상기 제1 요소의 단일 요소 리매핑을 수행(838)하기 위한 명령어들은, 변경 통지 메시지에서 특정된 바와 같이 단일 요소에 대한 스타일 값을 사용하기 위한 명령어들을 포함하는, 하나 이상의 기계 판독가능 저장매체.
  17. 제1항의 하나 이상의 기계 판독가능 저장매체를 포함하는 HD-DVD를 플레이하기 위한 디바이스(116).
  18. HD-DVD를 플레이하기 위한 디바이스(116)로서,
    프로세서(118)와,
    하나 이상의 컴퓨터 판독가능 저장매체(120)를 포함하고,
    상기 하나 이상의 컴퓨터 판독가능 저장매체는,
    상기 HD-DVD로부터 판독될 제1 장면 설명을 나타내는 제1 마크업을 수신(206A)하고, 사용자에게 프리젠테이션하도록 상기 제1 마크업의 적어도 일부를 제1 합성 영역(302A)에 매핑(304)하고, 상기 HD-DVD로부터 판독될 적어도 제2 장면 설명을 나타내는 적어도 제2 마크업을 수신(206N)하고, 상기 제2 마크업을 수신하는 것에 응답하여 상기 사용자에게 프리젠테이션하도록 상기 제1 장면 설명의 일부분을 적어도 제2 합성 영역(302N)에 증분 리매핑(312)하기 위한 HD-DVD 변환 컴포넌트(122)를 포함하는 HD-DVD 플레이 디바이스.
  19. 제18항에 있어서,
    상기 HD-DVD 변환 컴포넌트(122)는 상기 제1 장면 설명에서 표현된 하나의 요소의 일부 스타일(410)들을 리매핑(312)하기 위한 것인, HD-DVD 플레이 디바이스.
  20. 제18항에 있어서,
    상기 HD-DVD 변환 컴포넌트(122)는 상기 제1 장면 설명에서 표현된 모든 요소들의 일부 스타일(408)들을 리매핑(312)하기 위한 것인, HD-DVD 플레이 디바이스.
KR1020097013995A 2007-01-05 2007-12-22 Hd-dvd 마크업의 증분 갱신 및 포맷 KR101463275B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US88376307P 2007-01-05 2007-01-05
US60/883,763 2007-01-05
US11/694,777 US7814412B2 (en) 2007-01-05 2007-03-30 Incrementally updating and formatting HD-DVD markup
US11/694,777 2007-03-30
PCT/US2007/088763 WO2008085722A1 (en) 2007-01-05 2007-12-22 Incrementally updating and formatting hd-dvd markup

Publications (2)

Publication Number Publication Date
KR20090096621A true KR20090096621A (ko) 2009-09-11
KR101463275B1 KR101463275B1 (ko) 2014-11-18

Family

ID=39595323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097013995A KR101463275B1 (ko) 2007-01-05 2007-12-22 Hd-dvd 마크업의 증분 갱신 및 포맷

Country Status (13)

Country Link
US (1) US7814412B2 (ko)
EP (1) EP2126914A4 (ko)
JP (1) JP5323721B2 (ko)
KR (1) KR101463275B1 (ko)
CN (1) CN101611450B (ko)
AU (1) AU2007342150B2 (ko)
BR (1) BRPI0720787A2 (ko)
CA (1) CA2674615A1 (ko)
MX (1) MX2009007273A (ko)
RU (1) RU2452046C2 (ko)
TW (1) TWI363336B (ko)
WO (1) WO2008085722A1 (ko)
ZA (1) ZA200904535B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732575B2 (en) * 2011-03-22 2014-05-20 Mark E. Nusbaum Word processing system and method with automatic undo operation monitoring and analysis

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100218474B1 (ko) * 1997-06-10 1999-09-01 구자홍 에치티엠엘 데이터 송신 및 수신 장치
US6442755B1 (en) * 1998-07-07 2002-08-27 United Video Properties, Inc. Electronic program guide using markup language
US6635089B1 (en) * 1999-01-13 2003-10-21 International Business Machines Corporation Method for producing composite XML document object model trees using dynamic data retrievals
US6865747B1 (en) 1999-04-01 2005-03-08 Digital Video Express, L.P. High definition media storage structure and playback mechanism
US7178106B2 (en) * 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US20050166232A1 (en) * 1999-04-21 2005-07-28 Lamkin Allan B... Presentation of media content from multiple media sources
US20050182828A1 (en) * 1999-04-21 2005-08-18 Interactual Technologies, Inc. Platform specific execution
KR100407494B1 (ko) 1999-10-29 2003-12-01 엘지전자 주식회사 스트림 사양정보의 기록 및 이의 제공방법
US7058290B1 (en) 1999-10-30 2006-06-06 Lg Electronics Inc. Method for supporting a still picture of data stream recorded in a disk recording medium
KR100424480B1 (ko) 2000-05-23 2004-03-22 엘지전자 주식회사 디지털 텔레비전이 수용가능한 데이터 포맷의 고밀도 광 기록매체와, 그에 따른 재생장치
KR100424481B1 (ko) * 2000-06-24 2004-03-22 엘지전자 주식회사 디지털 방송 부가서비스 정보의 기록 재생장치 및 방법과그에 따른 기록매체
US20050193425A1 (en) * 2000-07-24 2005-09-01 Sanghoon Sull Delivery and presentation of content-relevant information associated with frames of audio-visual programs
US20060064716A1 (en) 2000-07-24 2006-03-23 Vivcom, Inc. Techniques for navigating multiple video streams
US6934740B1 (en) * 2000-09-19 2005-08-23 3Com Corporation Method and apparatus for sharing common data objects among multiple applications in a client device
US20020112247A1 (en) * 2001-02-09 2002-08-15 Horner David R. Method and system for creation, delivery, and presentation of time-synchronized multimedia presentations
US7028040B1 (en) * 2001-05-17 2006-04-11 Microsoft Corporation Method and system for incrementally maintaining digital content using events
EP1267278A1 (en) * 2001-06-12 2002-12-18 Caplin Systems Limited Streaming of real-time data to a browser
JP2003249057A (ja) * 2002-02-26 2003-09-05 Toshiba Corp デジタル情報媒体を用いるエンハンスド・ナビゲーション・システム
TWI247295B (en) * 2002-03-09 2006-01-11 Samsung Electronics Co Ltd Reproducing method and apparatus for interactive mode using markup documents
JP3941610B2 (ja) * 2002-07-08 2007-07-04 日本電気株式会社 情報抽出方法、情報抽出装置および情報抽出プログラム
TWI285808B (en) * 2002-07-27 2007-08-21 Samsung Electronics Co Ltd Apparatus and method for reproducing content and information storage medium therefor
GB2392743A (en) * 2002-09-05 2004-03-10 Hewlett Packard Co Method for authoring web page content
CA2498885A1 (en) * 2002-10-17 2004-04-29 Samsung Electronics Co., Ltd. Data storage medium having information for controlling buffered state of markup document, and method and apparatus for reproducing data from the data storage medium
RU2323486C2 (ru) * 2002-10-17 2008-04-27 Самсунг Электроникс Ко., Лтд. Носитель информации, содержащий информацию коэффициента пропорциональности устройства, способ и устройство для него
CN1512768A (zh) * 2002-12-30 2004-07-14 皇家飞利浦电子股份有限公司 一种在hd-dvd系统中用于生成视频目标单元的方法
JP2004296065A (ja) * 2003-03-10 2004-10-21 Toshiba Corp 情報記憶媒体、情報再生装置、および情報再生方法
KR20040080736A (ko) * 2003-03-13 2004-09-20 삼성전자주식회사 인터랙티브 컨텐츠 동기화 장치 및 방법
JP2005276344A (ja) 2004-03-25 2005-10-06 Toshiba Corp 情報記録媒体及び情報再生装置
DE602005023285D1 (de) * 2004-03-26 2010-10-14 Lg Electronics Inc Speichermedium,verfahren, und gerät zum wiedergeben von untertiteldatenströmen
JPWO2005098661A1 (ja) * 2004-04-08 2008-02-28 株式会社ジャストシステム 文書処理装置及び文書処理方法
JP2005318473A (ja) * 2004-04-30 2005-11-10 Toshiba Corp 動画像のメタデータ
JP2005318472A (ja) * 2004-04-30 2005-11-10 Toshiba Corp 動画像のメタデータ
JP2005332521A (ja) * 2004-05-21 2005-12-02 Toshiba Corp 情報記録媒体及び情報再生装置
JP2007065928A (ja) * 2005-08-30 2007-03-15 Toshiba Corp 情報記憶媒体、情報処理方法、情報転送方法、情報再生方法、情報再生装置、情報記録方法、情報記録装置、及びプログラム
JP2006134520A (ja) * 2004-11-08 2006-05-25 Toshiba Corp 情報記憶媒体、情報再生方法、および情報再生装置
JP2006155830A (ja) 2004-11-30 2006-06-15 Memory Tec Kk 光ディスク及び光ディスク装置及び光ディスク再生方法
US8627344B2 (en) * 2004-12-15 2014-01-07 Siebel Systems, Inc. Methods and apparatuses for user interface management
KR101069858B1 (ko) * 2005-01-31 2011-10-04 엘지전자 주식회사 데이터 기록매체에 기록된 컨텐츠상에 마크를 설정하고,그 마크에 따른 동작을 수행하는 방법 및 장치
US20060182418A1 (en) 2005-02-01 2006-08-17 Yoichiro Yamagata Information storage medium, information recording method, and information playback method
US7110605B2 (en) 2005-02-04 2006-09-19 Dts Az Research, Llc Digital intermediate (DI) processing and distribution with scalable compression in the post-production of motion pictures
JP2006236411A (ja) 2005-02-22 2006-09-07 Toshiba Corp 情報記憶媒体、情報記録方法、および情報再生方法
JP2006261860A (ja) 2005-03-15 2006-09-28 Toshiba Corp 情報再生方法及び情報再生装置
KR20060101654A (ko) 2005-03-21 2006-09-26 삼성전자주식회사 디브이디기록기기 및 디브이디기록기기의 셀단위 편집방법
JP2006294152A (ja) * 2005-04-12 2006-10-26 Toshiba Corp 情報記憶媒体、情報記録装置、および情報再生装置
JP2007004896A (ja) 2005-06-23 2007-01-11 Toshiba Corp 情報記憶媒体、情報転送方法、情報再生方法、及び情報記録方法
US8020084B2 (en) * 2005-07-01 2011-09-13 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US20070006078A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Declaratively responding to state changes in an interactive multimedia environment
US20070006065A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Conditional event timing for interactive multimedia presentations
US8799757B2 (en) * 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US20070006062A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US20070006079A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation State-based timing for interactive multimedia presentations
KR20070009382A (ko) * 2005-07-15 2007-01-18 엘지전자 주식회사 데이터 재생방법 및 재생장치, 기록매체와 데이터 기록방법및 기록장치
US20080028302A1 (en) * 2006-07-31 2008-01-31 Steffen Meschkat Method and apparatus for incrementally updating a web page

Also Published As

Publication number Publication date
TWI363336B (en) 2012-05-01
CA2674615A1 (en) 2008-07-17
EP2126914A1 (en) 2009-12-02
AU2007342150A1 (en) 2008-07-17
JP2010516089A (ja) 2010-05-13
KR101463275B1 (ko) 2014-11-18
ZA200904535B (en) 2010-09-29
CN101611450A (zh) 2009-12-23
MX2009007273A (es) 2009-07-10
EP2126914A4 (en) 2013-03-06
US20080168344A1 (en) 2008-07-10
RU2009125536A (ru) 2011-01-10
WO2008085722A1 (en) 2008-07-17
RU2452046C2 (ru) 2012-05-27
CN101611450B (zh) 2012-05-30
BRPI0720787A2 (pt) 2014-03-11
US7814412B2 (en) 2010-10-12
JP5323721B2 (ja) 2013-10-23
TW200841330A (en) 2008-10-16
AU2007342150B2 (en) 2011-10-20

Similar Documents

Publication Publication Date Title
KR101130494B1 (ko) 블렌딩된 객체 특성 키 프레이밍 방법
JP4819689B2 (ja) スタイル情報を含むテキスト基盤のサブタイトルデータが記録された記録媒体、再生装置及びその再生方法
CN1922682B (zh) 用于再现基于文本的字幕数据的设备
US8589871B2 (en) Metadata plug-in application programming interface
US8265450B2 (en) Capturing and inserting closed captioning data in digital video
JP2012054619A (ja) 編集装置、編集方法、編集プログラム及びデータ構造
KR101317204B1 (ko) 동적 영상물의 프레임 정보를 생성하는 방법 및 이를이용한 장치
KR20080114725A (ko) 비디오 프레임 시퀀스를 제공하는 장치 및 방법, 장면 모델을 제공하는 장치 및 방법, 장면 모델, 메뉴 구조를 생성하는 장치 및 방법 그리고 컴퓨터 프로그램
CN112637520B (zh) 一种动态视频编辑方法及其系统
JP5063810B2 (ja) アニメーション編集装置、アニメーション再生装置及びアニメーション編集方法
JP2015165449A (ja) オーサリング・ツールおよびこれを実装するための方法
KR101463275B1 (ko) Hd-dvd 마크업의 증분 갱신 및 포맷
US20050097442A1 (en) Data processing system and method
US20050094971A1 (en) Data processing system and method
EP1636799A2 (en) Data processing system and method, computer program product and audio/visual product
JP2007036502A (ja) データ処理装置、データ処理方法及びコンピュータプログラム

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee