[go: up one dir, main page]

KR101087316B1 - 재생 장치, 재생 방법 및 기록 매체 - Google Patents

재생 장치, 재생 방법 및 기록 매체 Download PDF

Info

Publication number
KR101087316B1
KR101087316B1 KR1020057013836A KR20057013836A KR101087316B1 KR 101087316 B1 KR101087316 B1 KR 101087316B1 KR 1020057013836 A KR1020057013836 A KR 1020057013836A KR 20057013836 A KR20057013836 A KR 20057013836A KR 101087316 B1 KR101087316 B1 KR 101087316B1
Authority
KR
South Korea
Prior art keywords
event
player
reproduction
content data
program
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020057013836A
Other languages
English (en)
Other versions
KR20060112194A (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 KR20060112194A publication Critical patent/KR20060112194A/ko
Application granted granted Critical
Publication of KR101087316B1 publication Critical patent/KR101087316B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/34Indicating arrangements 
    • 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
    • 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
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, 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
    • 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
    • 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
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • 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
    • 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
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • 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/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/213Read-only discs
    • 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/2541Blu-ray discs; Blue laser DVR discs
    • 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/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

대용량의 재생 전용 광 디스크에서, 보다 자유도가 높은 인터랙티브 기능을 용이하게 실현 가능하게 한다. 플레이어의 기능에 대응하는 가상 플레이어 모델을 구축하고, Java에 의해 기술한다. BDBasicPlayer(210)는, 유저 입력이나 플레이어의 상태 천이를 검출하여 이벤트를 발생시킨다. 리스너 인터페이스를 실장한 오브젝트(211)는, 수신하고자 하는 이벤트에 대응하는 이벤트 리스너 등록을, 해당 이벤트가 발생하기 전에 BDBasicPlayer(210)에 대해 행하고, 필요 없게 되면 삭제한다. BDBasicPlayer(210)는, 이벤트가 발생되면 대응하는 이벤트 리스너 등록이 이루어진 오브젝트(211)에 대해 이벤트를 송신한다. 오브젝트(211)는, 수신한 이벤트에 부합한 메소드를 실행한다. 이벤트와 메소드의 관계를 유연하게 설정할 수 있고, 복잡한 인터랙티브 기능도 용이하게 실현 가능하다.
이벤트, 인터렉티브, 메소드, 오브젝트, 플레이어, 광디스크

Description

재생 장치, 재생 방법 및 기록 매체{REPRODUCTION DEVICE, REPRODUCTION METHOD AND RECORDING MEDIUM}
본 발명은, 블루레이 디스크(Blu-ray Disc) 등의 대용량의 기록 매체에 기록된 프로그램에 대한 유저에 의한 인터랙티브한 조작을 가능하게 하는 재생 장치, 재생 방법, 재생 프로그램 및 기록 매체에 관한 것이다.
최근, 기록 가능하고 기록 재생 장치로부터 분리 가능한 디스크형 기록 매체의 규격으로서, Blu-ray Disc(블루레이 디스크) 규격이 제안되어 있다. Blu-ray Disc 규격에서는, 기록 매체로서 직경 12㎝, 커버층 0.1㎜의 디스크를 이용하고, 광학계로서 파장 405㎚의 청자색 레이저, 개구수 0.85의 대물 렌즈를 이용하여, 최대 27GB(기가바이트)의 기록 용량을 실현하고 있다. 이에 의해, 일본의 BS 디지털 하이비젼 방송을, 화질을 열화시키지 않고 2시간 이상 기록하는 것이 가능하다.
이 기록 가능 광 디스크에 기록하는 AV(Audio/Video) 신호의 소스(공급원)로서는, 종래부터의, 예를 들면 아날로그 텔레비전 방송에 의한 아날로그 신호에 의한 것과, 예를 들면 BS 디지털 방송을 비롯한 디지털 텔레비전 방송에 의한 디지털 신호에 의한 것이 상정되어 있다. Blu-ray Disc 규격에서는, 이들 방송에 의한 AV 신호를 기록하는 방법을 정한 규격은, 이미 만들어져 있다.
한편, 현상의 Blu-ray Disc의 파생 규격으로서, 영화나 음악 등이 미리 기록된, 재생 전용의 기록 매체를 개발하는 움직임이 진행되고 있다. 영화나 음악을 기록하기 위한 디스크형 기록 매체로서는, 이미 DVD(Digital Versatile Disc)가 널리 보급되어 있지만, 이 Blu-ray Disc의 기획에 기초한 재생 전용 광 디스크는, Blu-ray Disc의 대용량 및 고속의 전송 속도 등을 살려 하이비젼 영상을 고화질 그대로 2시간 이상 수록할 수 있는 점이, 기존의 DVD와는 크게 다르고 우위이다.
재생 전용의 DVD 비디오 규격에 있어서는, 메뉴 화면 상에 배치된 버튼 화상 등을 이용하여 인터랙티브한 기능을 실현하고 있다. 예를 들면, DVD 비디오에 의해 동화상을 재생 중에, 리모트 컨트롤 커맨더 등을 이용하여 메뉴 화면을 호출하고, 메뉴 화면 상에 배치된 버튼 화상을 선택하여 재생 장면을 변경하는 등의 처리가 가능했다.
DVD 비디오의 경우, 메뉴 화면을 고정적인 서브픽쳐 데이터에 의해 구성하고, 메뉴 화면이 호출되었을 때에, 동화상 데이터에 이 서브픽쳐 데이터를 합성하여 표시한다. 버튼 화상 데이터도 이 서브픽쳐 데이터에 포함된다. 특허 문헌「일본 공개 특허 평10-308924호 공보」에, 이와 같이 동화상 데이터에 서브픽쳐 데이터를 합성하여 기록 가능한 DVD에 기록하는 구성이 기재되어 있다.
그러나, 재생 전용의 DVD 비디오 규격에서는, 단순한 커맨드에 의해 동작이 기술되어 있기 때문에, 복잡한 인터랙티브 기능을 실현하기가 어렵다는 문제점이 있었다. 그 때문에, 복잡한 인터랙티브 기능을 재생 전용의 DVD 비디오 규격으로 실현하는 것은, 제작자에게 있어서 큰 부담으로 된다는 문제점이 있었다.
또한, 재생 전용의 DVD 규격에서는, 프로그램의 동작으로서는, 커맨드가 나열된 커맨드 영역을 1행씩 실행해 가는 단순한 것으로, 멀티쓰레드 프로그래밍이나 이벤트 구동의 프로그래밍을 행할 수 없었다. DVD 비디오 규격은, 인터넷 등의 네트워크에 액세스하는 기능을 갖고 있지 않지만, 네트워크 액세스 기능을 실현하는 것을 고려한 경우, 네트워크로부터의 응답이나 유저로부터의 응답은 대기 시간이 길어, 멀티쓰레드로 처리를 행할 수 있는 시스템 구성인 것이, 퍼포먼스의 향상에 매우 유효하다.
또한, 이 DVD 비디오 규격에서는, 영상 및 음성이 다중화되어 있는 AV(Audio/Video) 스트림 중에도 커맨드가 매립되어 있다. AV 스트림의 재생을 진행시켜 감에 따라 커맨드를 취득하여 실행한다는, 소위 고구마 덩굴을 찾아가는 것 같은 동작 모델로 되어 있다. 그 때문에, 타이틀 선택의 메뉴 화면이나 분기가 있는 멀티스토리에 있어서, 유저가 버튼을 선택 실행했을 때에 비로소 다음 동작이 결정된다. 따라서, DVD 비디오 규격에서는, 커맨드를 미리 판독하여 분기 예측이나 투기 실행을 행하도록 하는 고속 처리 기술을 적용할 수 없다는 문제점이 있었다.
또한, 디스크를 제작하는 오서링의 관점으로부터도, 재생 전용의 DVD 비디오 규격은 문제가 있었다. 일례로서, AV 스트림 상의 어떤 시각에 표시되도록 상정된 버튼 표시에 대해, 버튼 표시의 타이밍을 시간 축 상에서 전 혹은 나중으로 어긋나게 하고자 하는 경우를 생각한다. 예를 들면, 도 1에 도시된 바와 같이, AV 스트림 상의 버튼 표시 개시 시각(t1)부터 버튼 표시 종료 시각(t2)까지 표시되도록 상 정된 버튼을, 시각(t1)보다 전의 시각(t3)부터 표시시키도록 변경한다.
주지하는 바와 같이, 재생 전용의 DVD 비디오 규격에서는, AV 스트림은 MPEG2(Moving Pictures Experts Group 2)의 규정에 따라 부호화되고 패킷타이즈된다. 재생 출력의 시각 관리는, pts(Presentation Time Stamp)에 의해 행해진다. 도 1의 예에서는, 버튼의 표시 개시 시각을, 시각 t1에 대응하는 pts1으로부터 시각(t3)에 대응하는 pts3으로 변경하게 된다.
DVD 비디오 규격에서는, 내비게이션 정보, 비디오 데이터, 오디오 데이터 및 서브픽쳐 데이터가 각각 팩으로서, 1개의 AV 스트림에 다중화되어 AV 스트림 중에 커맨드 등이 매립된 구조로 되어 있다. 비디오 데이터, 오디오 데이터 및 서브픽쳐 데이터는, 그 다중화된 시각에 표시되는 것을 상정하고 있다. 예를 들면, 도 2의 (a)에 도시된 바와 같이, pts 단위로 관리되는 시간 축 상의 소정 시각에 소정의 데이터가 재생되도록 다중화가 이루어진다.
이와 같이 다중화가 이루어져 있기 때문에, 시각(pts1)에 표시되도록 상정된 버튼(A)을, 시각(pts3)에 표시되도록 변경하기 위해서는, 도 2의 (a)의 AV 스트림을, 도 2의 (b)에 도시된 바와 같이, 버튼(1)을 표시하는 서브픽쳐 데이터가 시각(pts3)의 위치에 오도록 재다중화할 필요가 있다. 버튼이 선택되었을 때에 실행하는 커맨드의 내용을 변경하고자 하는 경우에도, 마찬가지로 하여, AV 스트림의 재다중화를 행해야만 했다. 재다중화는, 예를 들면, DVD를 재생하는 플레이어 내에서, 재생한 AV 스트림을 일단 메모리에 저장하여 행한다.
이와 같이, 종래에서는, 더 자유도가 높은 인터랙티브 기능을 실현하기가 어 렵고, 그것을 실현하려고 하면, 제작자측에도 더 큰 부담이 가해진다는 문제점이 있었다.
따라서, 본 발명의 목적은, 대용량의 재생 전용 광 디스크에 있어서, 더 자유도가 높은 인터랙티브 기능을 용이하게 실현 가능한 재생 장치, 재생 방법, 재생 프로그램 및 기록 매체를 제공하는 데 있다.
본 발명은, 전술한 과제를 해결하기 위해, 기록 매체에 계층 구조로 기록된 콘텐츠 데이터를 재생하는 재생 장치로서, 소정의 변화에 부합하여 이벤트를 발생시키도록 구성된 플레이어 오브젝트와, 상기 플레이어 오브젝트의 상위에 있으며, 상기 이벤트의 발생에 대응한 처리를 기술 가능하며, 상기 이벤트마다 독립한 오브젝트로서 구성되는 프로그램 오브젝트를 갖고, 상기 플레이어 오브젝트는, 상기 프로그램 오브젝트에 기술된 상기 이벤트의 발생에 대응한 처리에 기초하여, 기록 매체에 계층 구조로 기록된 콘텐츠 데이터의 재생 처리를 제어하도록 한 재생 장치이다.
또한, 본 발명은, 기록 매체에 계층 구조로 기록된 콘텐츠 데이터를 재생하는 재생 방법으로서, 소정의 변화에 부합하여 이벤트를 발생시키도록 구성된 플레이어 오브젝트에 의해, 상기 플레이어 오브젝트의 상위에 있으며, 상기 이벤트의 발생에 대응한 처리를 기술 가능하며, 상기 이벤트마다 독립한 오브젝트로서 구성되는 프로그램 오브젝트에 기술된 상기 이벤트의 발생에 대응한 처리에 기초하여, 기록 매체에 계층 구조로 기록된 콘텐츠 데이터의 재생 처리를 제어하도록 한 재생 방법이다.
또한, 본 발명은, 원반 형상 기록 매체에 계층 구조로 기록된 콘텐츠 데이터를 재생하는 재생 방법을 컴퓨터 장치에 실행시키는 재생 프로그램에 있어서, 재생 방법은, 소정의 변화에 부합하여 이벤트를 발생시키도록 구성된 플레이어 오브젝트에 의해, 플레이어 오브젝트의 상위에 있으며, 이벤트의 발생에 대응한 처리를 기술 가능한 프로그램 오브젝트에 기술된 이벤트의 발생에 대응한 처리에 기초하여, 원반 형상 기록 매체에 계층 구조로 기록된 콘텐츠 데이터의 재생 처리를 제어하도록 한 재생 프로그램이다.
또한, 본 발명은, 기록 매체에 계층 구조로 기록된 콘텐츠 데이터를 재생하는 재생 방법을 컴퓨터 장치에 실행시키는 재생 프로그램이 기록된 컴퓨터 장치에 판독 가능한 기록 매체로서, 상기 재생 방법은, 소정의 변화에 부합하여 이벤트를 발생시키도록 구성된 플레이어 오브젝트에 의해, 상기 플레이어 오브젝트의 상위에 있으며, 상기 이벤트의 발생에 대응한 처리를 기술 가능하며, 상기 이벤트마다 독립한 오브젝트로서 구성되는 프로그램 오브젝트에 기술된 상기 이벤트의 발생에 대응한 처리에 기초하여, 기록 매체에 계층 구조로 기록된 콘텐츠 데이터의 재생 처리를 제어하도록 한 기록 매체이다.
또한, 본 발명은, 재생 장치에 의해 재생되는 콘텐츠 데이터가 계층 구조로 기록된 기록 매체로서, 적어도 콘텐츠 데이터와, 이벤트의 발생에 대응한 처리를 기술 가능하며 상기 이벤트마다 독립한 오브젝트로서 구성되는 프로그램 오브젝트가 기록되고, 상기 프로그램 오브젝트를 재생 장치에서 판독시켜, 소정의 변화에 부합하여 이벤트를 발생시키도록 구성된, 상기 프로그램 오브젝트의 하위에 있는 플레이어 오브젝트로부터의 이벤트 발생에 대응한 처리를 구성함과 함께, 상기 콘텐츠 데이터의 재생 처리를, 상기 프로그램 오브젝트에 기술된 상기 이벤트의 발생에 대응한 처리에 기초하여 상기 플레이어 오브젝트에 제어시키도록 한 기록 매체이다.
전술한 바와 같이, 본 발명에 따르면, 소정의 변화에 부합하여 이벤트를 발생시키도록 구성된 플레이어 오브젝트에 의해, 플레이어 오브젝트의 상위에 있으며, 이벤트의 발생에 대응한 처리를 기술 가능한 프로그램 오브젝트에 기술된 이벤트의 발생에 대응한 처리에 기초하여, 원반 형상 기록 매체에 계층 구조로 기록된 콘텐츠 데이터의 재생 처리를 제어하도록 하고 있기 때문에, 하나의 플레이어 오브젝트로 원반 형상 기록 매체마다 독자적인 처리의 재생 제어를 행할 수 있다.
또한, 본 발명에 따르면, 적어도 콘텐츠 데이터와, 이벤트의 발생에 대응한 처리를 기술 가능한 프로그램 오브젝트가 기록되고, 콘텐츠 데이터의 재생 처리가, 소정의 변화에 부합하여 이벤트를 발생시키도록 구성된, 프로그램 오브젝트의 하위에 있는 플레이어 오브젝트에 의해, 프로그램 오브젝트에 기술된 이벤트의 발생에 대응한 처리에 기초하여 제어되도록 하고 있기 때문에, 하나의 플레이어 오브젝트에 대해, 기록 매체마다 독자적인 재생 제어를 행하게 하도록 할 수 있다.
본 발명에서는, BD-ROM 플레이어의 AV 스트림 재생 기능을 추상화한 가상 플레이어를 구축하고, 가상 플레이어에 대해 이벤트 모델을 적용하여 발생하는 이벤트를 정했다. 또한, 유저 입력에 의해 발생하는 유저 이벤트를 정의했다. 그 때문에, 하나의 이벤트 모델로 DVD 비디오가 갖는 기능을 실현할 수 있다는 효과가 있다.
또한, 본 발명에서는, BD-ROM 플레이어의 AV 스트림 재생 기능을 추상화한 가상 플레이어를 구축하고, 가상 플레이어에게 대응하는 Java 클래스를 정의하고 있다. 그리고, 가상 플레이어에게 대해 이벤트 모델을 적용하여 발생하는 이벤트를 정함과 아울러, 유저 입력에 의해 발생하는 유저 이벤트를 정의했다. 그 때문에, 재생 전용 비디오 디스크에 있어서의 재생 제어의 방법으로서, Java의 이벤트 모델을 적용할 수 있어, Java 프로그램으로부터 플레이 리스트의 재생 제어가 가능하게 된다는 효과가 있다.
그 때문에, 복잡한 인터랙티브 기능을 조립하는 경우라도, 디스크 제작자측의 부담이 가벼워진다는 효과가 있다.
또한, 본 발명은, Java 언어에 한하지 않고, ECMA 스크립트와 같은 스크립트 언어에도 적용할 수 있고, 이벤트에 대응하는 이벤트 핸들러의 내용을 콘텐츠 제작자측이 스크립트 언어를 이용해서 기술하여, 이벤트 발생시에 콘텐츠 제작자측이 의도하는 동작을 용이하게 실현시킬 수 있는 효과가 있다.
도 1은, 종래 기술에 의해 버튼의 표시 개시 시각을 변경하는 것을 설명하기 위한 도면.
도 2의 (a) 및 (b)는, 스트림의 재다중화를 설명하기 위한 도면.
도 3A 및 도 3B는, BD-ROM 규격의 HD 무비 모드에 있어서의 일례의 레이어 구성을 나타내는 개략 선도.
도 4는, BD-ROM의 플레이어 모델의 일례의 레이어 구성을 도시한 개략 선도.
도 5는, BD 기본 플레이어(30)에 대해 설명하기 위한 도면.
도 6은, 플레이 리스트의 재생 중에 발생하는 이벤트의 예를 도시한 개략 선 도.
도 7은, 클래스 BDBasicPlayer의 메소드의 예를 일람하여 나타내는 개략 선도.
도 8A, 도 8B 및 도 8C는, 클래스 BDBasicPlayer의 메소드의 예를 일람하여 나타내는 개략 선도.
도 9는, 클래스 BDBasicPlayer의 메소드의 예를 일람하여 나타내는 개략 선도.
도 10은, 클래스 BDBasicPlayer의 메소드의 예를 일람하여 나타내는 개략 선도.
도 11은, 클래스 BDBasicPlayer의 메소드의 예를 일람하여 나타내는 개략 선도.
도 12는, 클래스 BDBasicPlayer의 메소드의 예를 일람하여 나타내는 개략 선도.
도 13은, 클래스 BDBasicPlayer의 메소드의 예를 일람하여 나타내는 개략 선도.
도 14A, 도 14B 및 도 14C는, D-ROM의 오브젝트 BDBasicPlayer에서 생성되는 일례의 이벤트 정의를 일람하여 나타내는 개략 선도.
도 15는, 리스너 및 이벤트에 대해 설명하기 위한 도면.
도 16A 및 제 16B는, 이벤트 리스너 등록에 관한 일례의 메소드를 일람하여 나타내는 개략 선도.
도 17은, 이벤트 리스너 등록을 이용한 프로그램 작성의 일례의 수순을 나타내는 플로우차트.
도 18은, 이벤트 리스너 등록을 이용한 프로그램을 재생측이 실장할 때의 일례의 처리를 나타내는 플로우차트.
도 19A, 도 19B 및 도 19C는, 클립 AV 스트림 파일, 마크 데이터가 저장되는 파일 및 버튼을 구성하는 데이터가 저장되는 파일을 개념적으로 도시한 개략 선도.
도 20은 이벤트 드리븐 모델에 의한 BD-ROM 가상 플레이어 모델에 대해 설명하기 위한 도면.
도 21A, 도 21B, 도 21C 및 도 21D는, BD-R0M 가상 플레이어 모델이 접수하는 유저 입력 커맨드의 정의의 일례를 일람하여 나타내는 개략 선도.
도 22는, 리모트 컨트롤 커맨더로부터의 키 입력 이벤트를 나타내는 클래스 RmtKeyEvent의 예를 나타내는 개략 선도.
도 23은, 오브젝트 RmtKeyEvent가 갖는 일례의 메소드를 일람하여 나타내는 개략 선도.
도 24는, 메소드 getRmtKeyCode에 의해 얻어지는 일례의 키를 일람하여 나타내는 개략 선도.
도 25A 및 도 25B는, 메소드 getRmtKeyCode에 의해 얻어지는 일례의 키를 일람하여 나타내는 개략 선도.
도 26은, 유저 입력 이벤트를 계기로 하여, 준비된 프로그램이 실행되는 일례의 수순을 나타내는 플로우차트.
도 27은, BD-ROM의 풀 프로파일에 적용 가능한 일례의 파일의 관리 구조를 도시한 개략 선도.
도 28A, 도 28B 및 도 28C는, 본 발명의 실시의 제1 형태에 적용 가능한 플레이어 디코더(100)의 일례의 구성을 도시한 기능 블록도.
도 29는, UMD 비디오 규격의 레이어 구성을 도시한 개략 선도.
도 30은, 이 실시의 제2 형태에 의한 일례의 플레이어 모델을 모식적으로 도시한 도면.
도 31은, 무비 플레이어의 일례의 내부 구성을 도시한 개략 선도, 도 32는, 무비 플레이어의 3상태를 나타내는 개략 선도.
도 33은, 본 발명의 실시의 제2 형태에 의한 무비 플레이어의 이벤트 모델을 모식적으로 도시한 도면.
도 34A 및 도 34B는, 무비 플레이어 오브젝트의 일례의 이벤트 핸들러를 나타내는 개략 선도.
<발명을 실시하기 위한 최량의 형태>
이하, 본 발명에 대해 하기 구성에 따라 설명한다.
1. 발명의 실시의 제1 형태
1-1. BD-ROM의 AV 스트림 재생 기능에 대하여
1-la. BD-ROM의 HD 무비 모드에 대하여
1-1b. BD-ROM의 풀 프로파일에 대하여
1-2. Java에 의한 BD 가상 플레이어 모델
1-3. BD 기본 플레이어로 생성되는 이벤트에 대하여
1-3a. 이벤트의 분류
1-3b. 이벤트 모델에 대하여
1-4. 유저 입력에 대하여
1-5. 파일의 관리 구조에 대하여
1-6. 디코더 모델에 대하여
2. 발명의 실시의 제2 형태
2-1. UMD 비디오 규격에 대하여
2-2. UMD 비디오 규격의 플레이어 모델에 대하여
2-3. 무비 플레이어의 이벤트 모델에 대하여
2-4. 무비 플레이어 오브젝트 및 유저 입력에 대하여
2-5. 무비 플레이어 오브젝트에서의 이벤트의 취급에 대하여
1. 발명의 실시의 제1 형태
이하, 본 발명의 실시의 제1 형태에 대하여 설명한다. 우선, 이해를 쉽게 하기 위해, 현상의 Blu-ray Disc의 파생 규격으로서 제안되어 있는, 재생 전용의 기록 매체의 규격에 대하여 개략적으로 설명한다. 이하에서는, 기록 가능한 Blu-ray Disc와 구별하기 위해, Blu-ray Disc의 파생 규격인 재생 전용의 기록 매체를 BD-ROM(Blu-ray Disc-Read 0nly Memory)이라 칭하고, BD-ROM 규격에 있어서 DVD 비디오와 동등한 인터랙티브 기능을 준비하기 위해, HD(High Definition) 무비 모드가 준비되어 있다.
1-1. BD-ROM의 AV 스트림 재생 기능에 대하여
1-1a. BD-ROM의 HD 무비 모드에 대하여
도 3A 및 도 3B는, BD-ROM 규격의 HD 무비 모드에 있어서의 일례의 레이어 구성을 나타낸다. BD-ROM 규격의 HD 무비 모드는, 하층측부터, 클립 레이어(Clip Layer), 플레이 리스트 레이어(PlayList Layer), 무비 오브젝트 레이어(Movie 0bject Layer) 및 인덱스 테이블 레이어(Index Table Layer)로 이루어진다.
클립 레이어는, 1 또는 복수의 클립으로 이루어진다. 클립(Clip)은, 클립 AV 스트림(Clip AV Streem) 및 클립 인포메이션(Clip Information)으로 이루어진다. AV(Audio/Video) 스트림의 실체는, 클립 AV 스트림 파일이고, MPEG2(Moving Pictures Experts Group 2) 트랜스포트 스트림에 타임 스탬프를 부가한 형식으로 기록된다. 클립 AV 스트림 파일에는, 버튼 화상을 표시하기 위한 버튼 오브젝트를 다중화할 수 있다.
클립 AV 스트림 파일의 기록시에, 클립 AV 스트림 파일에 1대1로 대응하여 클립 인포메이션 파일이 동시에 작성된다. 클립 AV 스트림 파일 및 클립 인포메이션 파일의 1세트를, 클립이라 칭한다.
클립은, 기록의 단위라고도 할 수 있는 것으로서, 재생시에 어떠한 순서로 클립을 재생할지는, 클립의 상위 레이어에서 관리한다. 플레이 리스트 레이어는, 클립의 재생 경로를 지정하는 레이어로서, 1 또는 복수의 플레이 리스트를 포함한다. BD-ROM 규격의 HD 무비 모드에 있어서, 플레이 리스트는, 무비 플레이 리스트(Movie PlayList)라 불리는 1종류가 존재한다. 무비 플레이 리스트는, 플레이 아 이템(PlayItem)의 집합으로 이루어진다. 플레이 아이템에는, 클립의 재생 범위를 나타낸 1세트의 IN 점 및 OUT 점이 포함되어 있고, 플레이 아이템을 늘어 놓음으로써, 임의의 순서로 클립을 재생할 수 있게 된다. 플레이 아이템은, 클립을 중복해서 지정할 수 있다. 클립 AV 스트림 파일의 IN 점 및 OUT 점은, 바이트 포지션으로 지정된다.
무비 오브젝트는, 플레이 리스트 레이어의 상위에 있고, 1 또는 복수의 무비 오브젝트로 이루어진다. 무비 오브젝트는, 플레이 리스트의 재생 지시나, 플레이어 설정을 행하는 커맨드 열로 구성된다. 무비 오브젝트가 갖는 커맨드에 의해, 복수의 언어용으로 준비된 스트림 중 어느 것을 선택할지, 혹은 선택되는 플레이 리스트가 어떤 조건에 따라 변화하는 것 같은, 조건 분기를 수반하는 플레이 리스트 재생을 실현할 수 있다. 조건 분기를 수반하는 플레이 리스트 재생을 행하는 어플리케이션 예로서는, 멀티 스토리를 들 수 있다. 무비 오브젝트에 의해, 쌍방향성(인터랙티브성)이 도입되는 것으로 된다.
인덱스 테이블을 포함하는 인덱스 테이블 레이어는, 플레이 리스트 레이어의 상위에 있다. 인덱스 테이블은, 디스크 삽입시에 최초로 실행되는 무비 오브젝트, 메뉴 키가 눌렸을 때에 실행되는 무비 오브젝트 및 유저에게 보이는 타이틀의 일람표로 구성된다. 인덱스 테이블에 의해, 유저 인터페이스가 제공된다. 타이틀은, 1 또는 복수의 무비 오브젝트로 구성된다. 인덱스 테이블에는, 각 타이틀에서 최초로 실행되는 무비 오브젝트가 나열되어 있다. 플레이어는, 이 인덱스 테이블을 기초로 각종 동작시에 최초로 실행하는 무비 오브젝트를 정하고 있다.
BD-ROM의 HD 무비 모드에 있어서의 디스크 상에는, 이상 설명한 바와 같은 데이터 베이스가 구성된다. 플레이어는, 디스크 상으로부터 이러한 데이터 베이스를 판독하고, 지정된 동작을 행한다.
다음으로, 플레이어측의 모델을 설명한다. 현실의 플레이어 실장에 있어서는, 다양한 형태를 생각할 수 있지만, 여기서는 플레이어 모델을, 하드웨어에 가까운 스트림을 재생하는 기능 블록과, 그 상위에 있고 소프트웨어로 커맨드를 해석하여 실행하는 기능 블록이라는, 2개의 기능 블록으로 나눈다. 도 4는, BD-ROM의 플레이어 모델의 일례의 레이어 구성을 도시한다. 도 4의 좌측이, HD 무비 모드에 있어서의 2개의 기능 블록으로 나누어진 레이어 구성을 도시하고 있다.
BD 프레젠테이션 엔진(Presentation Engine)(200)은, 플레이 리스트나 클립을 취급하고, AV 스트림의 디코드를 행하여, 동화상이나 음성을 재생하는 기능 블록이다. 자막 스트림이나, 버튼 화상이나 메뉴를 표시하기 위한 그래픽스 스트림의 디코드도, BD 프레젠테이션 엔진(200)에서 행한다.
BD 프레젠테이션 엔진(200)은, 상위 레이어의 지시에 따라 지정된 플레이 리스트를 재생한다.
BD-ROM의 HD 무비 모드에서는, BD 프레젠테이션 엔진(200) 위에, 내비게이션 엔진(Navigation Engine)(201)이 존재한다. 내비게이션 엔진(201)은, 인덱스 테이블이나 무비 오브젝트를 해석하고, 최종적으로 재생하는 플레이 리스트를 BD 프레젠테이션 엔진(200)에 지시한다.
1-1b. BD-ROM의 풀 프로파일에 대하여
다음으로, BD-ROM 규격의 풀 프로파일에 대해 설명한다. BD-ROM 규격의 풀 프로파일은, 전술한 BD-ROM 규격의 HD 무비 모드에 대해서 보다 높은 자유도와 확장성을 갖게 한, BD-ROM 규격에 제안되는 모드이다. 이하, BD-ROM 규격의 풀 프로파일 모드를 풀 프로파일이라 약칭한다.
본 발명의 실시의 제1 형태에서는, 높은 자유도와 확장성을 실현하기 위해, 플레이어 모델에 대해 Java 가상 머신(JavaVM:Java Vertual Machine)을 탑재하고, Java 어플리케이션을 실행함으로써, 풀 프로파일을 실현하고 있다. 이 점이 전술한 BD-ROM의 HD 무비 모드와는 크게 다른 점이다. 또한, Java, JavaVM 등은 Sun Microsystems Inc.에 의한 등록 상표이다.
풀 프로파일에 있어서도, 플레이어의 기능은 모두 이용할 수 있는 것이 필요하다. 이는 BD 프레젠테이션 엔진(200)과 Java 어플리케이션 사이에 API(Application Programming Interface)가 정의되어 있고, 그 API를 통해 BD 프레젠테이션 엔진(200)을 조작할 수 있는 것을 의미한다. 이는 BD-ROM의 HD 무비 모드에 있어서의 내비게이션 엔진(201)과 같이, Java 어플리케이션이 BD 프레젠테이션 엔진(200)의 상위에 위치한다고 생각하면 된다. 즉, 도 4의 우측에 일례가 도시된 바와 같이, 풀 프로파일에 있어서는, BD 프레젠테이션 엔진(200)의 상위에, JavaVM(202)를 통해 Java 어플리케이션(203)이 올라 타는 구성으로 된다.
또한, Java에서는, 그 외에 네트워크 기능이나 그래픽 기능을 갖는다. 그 때문에, Java 어플리케이션(203) 및 JavaVM(202)의 하위 레이어로서, 네트워크 레이어(204) 및 GUI(Graphical User Interface) 레이어(205)를 갖는다.
Java 어플리케이션(203)으로부터 BD 프레젠테이션 엔진(200)을 조작한다는 것은, 플레이 리스트를 재생하는 플레이어를 소프트웨어 상에서 가상적으로 생각하고, 그 플레이어에 대해 재생, 정지, 스트림 선택 등의 명령을 발하여, 플레이어 조작을 행한다고 보면 된다. 플레이어로부터 Java 어플리케이션(203)에는, 어떤 플레이 리스트를 재생하고 있는가라는 현재의 플레이어의 상태나, 스트림 선택이나 유저로부터의 입력 등, 각종 동작의 변화의 시각을 전할 필요가 있다. 본 발명의 실시의 제1 형태에서는, 이러한 플레이어의 기능을, Java 어플리케이션(203) 상에서 추상화한 오브젝트로서 생각한다. 이 플레이나 기능을 추상화한 오브젝트를, BD 기본 플레이라 칭한다.
도 5를 이용하여, BD 기본 플레이어에 대해 설명한다. BD 기본 플레이어(30)는, 본 발명의 실시의 제1 형태에 의해 정의되는 디스크 형상 기록 매체를 재생하는 것으로서, 퍼스널 컴퓨터 등의 컴퓨터 환경 상의 오브젝트이다. 컴퓨터 환경은, 범용적인 퍼스널 컴퓨터에 한정되지 않고, 예를 들면, 본 발명의 실시의 제1 형태에 의해 정의되는 디스크 형상 기록 매체를 재생하도록 전용적으로 구성된 재생 장치 및/또는 기록 재생 장치에 조립된 소프트웨어 환경도 포함한다. 또한, 이하, 본 발명의 실시의 제1 형태에 의해 정의되는 디스크 형상 기록 매체를, 디스크라 약칭한다.
BD 기본 플레이어(30)는, 소프트웨어 상의 추상화된 오브젝트이다. BD 기본 플레이어(30)의 하위에, OS(Operating System) 및 하드웨어(33)가 존재한다. BD 기본 플레이어(30)의 상위 프로그램으로서, API(32)를 통해 Java 프로그램(31)이 존재한다.
BD 기본 플레이어(30)의 상태는, 개략적으로는, 플레이 리스트나 그래픽스를 재생하는 상태(A)와, 재생이 정지된 상태(B)의 2개의 상태로 분류할 수 있다. 상태(A)는, 고속 재생, 역전 재생이라는 변속 재생이나, 디스크 상의 임의의 시각부터 재생하는 스킵 재생이라는 특수 재생 등의 복수의 동작을 포함한다. 또한, BD 기본 플레이어(30)는, 내부에 플레이어 상태를 보유하는 변수(공통 파라미터(34))를 갖는다. 공통 파라미터(34)는, 실제로는 컴퓨터 환경 상의 레지스터 등으로 이루어진다. 상위 레이어의 어플리케이션(Java 프로그램(31))은, Java의 메소드를 통해 공통 파라미터(34)에 액세스함으로써, BD 기본 플레이어(30)의 상태에 부합한 개별의 처리를 행할 수 있다.
BD 기본 플레이어(30)는, 소프트웨어 상의 추상화된 오브젝트이다. BD 기본 플레이어(30)는, Java 프로그램(31)에 의한 API(32)를 통한 제어를, 최종적으로 하위에 있는 OS 및 하드웨어(33)에의 제어로 변환하고 있는 것으로 된다.
BD 기본 플레이어(30)는, API(32)에 의해 상위의 프로그램(Java 프로그램(31))으로부터 제어됨과 아울러, BD 기본 플레이어(30)에서 발생하는 상태의 변화를 상위 프로그램에 전할 필요가 있다. 왜냐하면, 지금 재생하고 있는 플레이 리스트를 다 재생하면 별도의 플레이 리스트를 재생시킨다고 하는 복수의 동작을 순서를 정해서 BD 기본 플레이어(30)에 행하게 하기 위해서는, BD 기본 플레이어(30)의 상태를 상위 프로그램이 파악하고 있을 필요가 있기 때문이다. 본 발명의 실시의 제1 형태에서는, 이 플레이어의 상태를 상위 레이어에 전하는 구조로서, 이벤트 모델을 도입한다.
도 6은, 플레이 리스트의 재생 중에 발생하는 이벤트의 예를 도시한다. 재생 개시시에는, 우선, 이벤트 PlayStarted가 발생한다. 그 다음에, 플레이 리스트의 재생이 개시될 때에는, 이벤트 PlayListStarted가 발생한다. 플레이 리스트의 선두는, 플레이 아이템의 선두이기도 하기 때문에, 이벤트 PlayListStarted의 발생과 동시에 이벤트 PlayItemSarted도 발생한다. 또한, 플레이 리스트의 선두에 챕터를 나타내는 챕터 마크가 표시되어 있는 경우에는, 이벤트 MarkEncountered가 발생한다.
마찬가지로, 플레이 아이템 중에 마크가 표시되어 있을 때에는, 해당 플레이 아이템을 재생 중에 이 마크가 검출됨으로써 이벤트 MarkEncountered가 발생한다. 플레이 아이템의 재생이 종료되면, 이벤트 PlayItemEnded가 발생하고, 그 다음에 플레이 리스트도 종료하고 있으면, 이벤트 PlayListEnded가 다시 발생한다. 재생 종료시에는, 이벤트 PlayEnded가 발생한다.
이와 같이, 플레이어의 동작 중에는, 다양한 이벤트가 발생하는 것으로 하여, 이벤트 발생을 상위 프로그램에 전함으로써, 상위 프로그램은 플레이어의 상태를 파악할 수 있게 된다. 상위 프로그램측에서는, 각 이벤트 발생 통지시에 실행되는 프로그램을 준비해 둠으로써 각종 이벤트 발생에 대처한다.
본 발명의 실시의 제1 형태에서는, 이상과 같이, 플레이어의 추상화의 방법, Java 프로그램으로부터 플레이어를 조작하는 메소드 모델 및 플레이어의 상태를 Java 프로그램에 전하기 위한 이벤트 모델을 제공하고, BD-ROM의 제어 프로그램에 Java 언어를 도입한다. 이 실시의 제1 형태가 적용된 시스템에서는, 디스크 제작자는, API(32)을 통해 BD 기본 플레이어(30)를 조작하는 Java 프로그램(31)을 작성하게 된다.
다음으로, 플레이어 기능을 상세히 분석하여 추상화하고, Java의 클래스로 표현한 구체예를 나타낸다.
1-2. Java에 의한 BD 가상 플레이어 모델
BD-ROM의 풀 프로파일을 정할 때에, Blu-ray Disc를 실행하는 환경을 정의 할 필요가 있다. BD-ROM을 재생하는 이상적인 BD 기본 플레이어(30)의 모델을, BD-ROM 가상 플레이어 모델이라 명명한다. BD 기본 플레이어(30)는, BD-ROM 가상 플레이어 모델 중의 플레이 리스트를 재생하는 기능 블록에 상당한다. BD-ROM 가상 플레이어 모델에서는, BD 기본 플레이어(30)의 취득 상태나 상태 천이의 조건을 정의함과 아울러, BD 기본 플레이어(30)로 재생할 수 있는 스트림의 속성, 스트림을 제어하는 커맨드리스(스크립트)의 기술 방법 등을 정의한다. BD-ROM에 저장된 스크립트나 스트림은, 이 BD-ROM 가상 플레이어 모델 상에서 정확하게 동작하는 것이어만 한다.
또한, 실제의 BD-ROM 플레이어에는, 다양한 실장 방법이 있지만, 실장에 의존하지 않는 모델을 상정함으로써, 최소한 필요한 하드웨어 자원을 명확하게 하는 것이 가능하게 된다.
본 발명의 실시의 제1 형태에서 정의되는 BD-ROM 가상 플레이어 모델에서는, BD 기본 플레이어(30)를 제어하는 프로그래밍 언어로서, Java를 이용한다. Java 는, Sun Microsystems, Inc.에 의해 만들어진 프로그래밍 언어로서, 적용하는 시스템의 규모에 따라 J2EE, J2SE, J2ME 등의 복수의 에디션을 갖는다. 여기서는, 세트 톱 박스 등에서의 조립으로의 사용을 상정한 에디션인 J2ME를 일례로서 사용하는 것을 상정하고 있다. 즉, J2ME를 베이스로 하여, BD-ROM 가상 플레이어 모델에 필요한 확장을 가한다는 사고 방식이다.
Java 언어는, 새로운 클래스를 정의함으로써 용이하게 확장할 수 있는 특징이 있다. 예를 들면, 단체로는 이벤트 처리할 수 없는 HTML(HYper Text Markup Language) 문서로 이벤트 처리를 실현하기 위해서는, HTML 문서 내에 이벤트 처리가 가능한 스크립트, 예를 들면 ECMA(European Computer Manufacturers Association)스크립트를 기술하여 이벤트를 처리한다.
Java 언어를 이용함으로써, 이와 같이 어떤 기능을 실현하기 위해 복수의 기술을 사용하는 것이 아니며, Java 언어로 정해진 확장의 방법에 따라 기능을 추가할 수 있다. 그 때문에, 완성한 프로그램도, Java 언어만을 이용하여 기술된 것으로 된다. 또한, Java는, 이미 수많은 프로그램 개발 환경이 제공되어 있고, 제작자에게 있어서 디스크를 만들기 쉬운 환경이라고 할 수 있다.
BD-ROM 가상 플레이어 모델을 Java 언어로 기술하는 경우, 이미 Sun Microsystems, Inc.에 의해 규정되어 있는 Java의 클래스, API는, 그대로 이용할 수 있다. 한편, BD 기본 플레이어(30)는 BD-ROM 독자의 기능으로서, 기존의 클래스나 API로서는 준비되어 있지 않다. 이 BD-ROM 독자의 기능을 Java로 실현하기 위해서는, 다양한 방법을 생각할 수 있지만, 본 발명의 실시의 제1 형태에서는, BD 기본 플레이어(30)의 기능과 그에 관한 API, 이벤트 모델 등을 BD-ROM에 적합한 형태로 구축했다.
우선, BD 기본 플레이어(30)를 Java의 하나의 클래스로서 정의한다. 그 클래스의 클래스명을 BDBasicPlayer라 정의한다. 도 7∼도 13은, 클래스 BDBasicPlayer의 메소드의 예를 일람하여 나타낸다. BD 기본 플레이어(30)에 대한 명령은, 모두 이 메소드를 통해 행한다.
도 7은 플레이어 설정 정보 취득에 관한 일례의 메소드를 나타낸다. 메소드 getPlayerSpeed()로 플레이어의 재생 속도를 취득한다. 메소드 getPlayerDirection()로 플레이어의 재생 방향을 취득한다. 메소드 getDescriptionLanguage()로 플레이어의 표시 언어를 취득한다. 메소드 getPlayListNumber()로 현재 재생 중인 플레이 리스트 번호를 취득한다. 메소드 getChapterNumber()로 현재 재생 중인 챕터 번호를 취득한다. 메소드 getPlayerSupport()로 플레이어의 버전 및 해당 플레이어가 갖는 기능을 취득한다.
도 8A, 도 8B 및 도 8C는, 플레이 리스트의 재생에 관한 일례의 메소드를 나타낸다. 메소드 playPlayList(int playListNumber, long[PlayListTime])로, "playListNumber"로 지정된 플레이 리스트의 재생을 개시한다. 또한, "playListTime"은 필수는 아니다. "playListTime"에 의해 플레이 리스트 내의 경과 시각을 지정하고, 거기에서 플레이 리스트를 재생한다. 메소드 playPlayList(String playListURL, long[PlayListTime])로, "playListURL"로 지정된 플레이 리스트의 재생을 개시한다. "playListURL"은, 플레이 리스트를 URL(Uniform Resource Locator)로 지정한다. 예를 들면 인터넷 상에 있는 플레이 리스트를 URL로 지정할 수 있다. 일례로서, 플레이어가 인터넷 접속 기능을 갖고 있으면, 이 "playListURL"로 지정된 URL로부터 플레이 리스트를 다운로드하여 재생하도록 할 수 있다. "playListTime"은 필수는 아니다. "playListTime"에 의해 플레이 리스트 내의 경과 시각을 지정하고, 거기에서 플레이 리스트를 재생한다.
메소드 playPlayItem(int playListNumber, int playItemNumber)으로, "playListNumber"로 지정되는 플레이 리스트의, "palyItemNumber"로 지정되는 플레이 아이템부터 재생을 개시한다. "playItemNumber"는, 플레이 아이템을 식별하기 위한 "PlayItem_id"이고, O부터 시작되는 수치이다. 플레이 리스트의 선두부터 재생하는 것이라면, "playItemNumber"의 값은 O으로 된다. 메소드 plavPlayItem(String playListURL, int playItemNumber)으로, "playListURL"로 지정되는 플레이 리스트의, "playItemNumber"로 지정되는 플레이 아이템부터 재생을 개시한다. "playItemNumber"는, "PlayItem_id"이고, O부터 시작되는 수치이다. 플레이 리스트의 선두부터 재생하는 것이라면, "playItemNumber"의 값은 O으로 된다.
메소드 playChapterMark(int playListNumber, int chapterNumber)는, "playListNumber"로 결정되는 플레이 리스트 중의, "chapterNumber"로 지정되는 어떤 챕터부터 재생한다. "playListNumber"는 "playListURL"이어도 된다. 플레이 리스트의 선두에는, 반드시 ChapterMark(챕터 마크)가 붙어져 있다.
메소드 moveAndPlay(string position, object)position=("prev"|"next"|"top"|"tail")object=("PlayItem"|"Chapter")로, 플레이 리스트 내에서의 이동이 지시된다. "next"는, 현재 재생 중인 개소로부터 다음의 플레이 아이템 또는 챕터에 스킵하여 재생을 개시한다. "top"은 플레이 리스트의 선두로 이동한다. "tail"은 플레이 리스트의 최후로 이동한다. "prev"은 현재 재생 중인 플레이 리스트의 선두부터 재생을 개시한다. 메소드 stop()로, 재생을 정지한다. 이때, 표준 레지스터의 값은 보유되지 않는다. 메소드 playSoundEffect(int sound_id)로, "sound_id"로 선택된 효과음을 재생한다.
도 9는, 비디오 스트림에 관한 일례의 메소드를 나타낸다. 메소드 getVideoStreamAvailability()로, 지정된 비디오 스트림이 포함되어 있는지의 여부를 취득한다. 메소드 setVideoStreamNumber()로, 디코드하는 비디오 스트림을 지정한다. 메소드 getVideoStreamNumber()로, 선택 중인 비디오 스트림의 번호를 취득한다. 메소드 getVideoStreamAttribute()로, 비디오 스트림의 속성을 취득한다. 비디오 스트림의 속성은, 예를 들면 부호화 방식, 해상도, 어스펙트비, 어스펙트비가 4:3일 때의 디스플레이 모드, 클로즈드 캡션인지의 여부, 등이다. 메소드 setAngleNumber()로, 앵글 번호를 지정한다. 메소드 getAngleNumber()로, 선택 중인 앵글 번호를 취득한다. 메소드 getMaxVideoStreams()로, 선택 가능한 비디오 스트림의 수를 취득한다.
도 10은, 오디오 스트림에 관한 일례의 메소드를 나타낸다. 메소드 getAudioStreamAvailability()로, 지정된 오디오 스트림이 포함되어 있는지의 여부를 취득한다. 메소드 getAudioStreamLanguage()로, 지정된 오디오 스트림의 언어 에 대한 정보를 취득한다. 메소드 setAudioStreamNumber()로, 재생하는 오디오 스트림을 지정한다. 메소드 getAudioStreamNumber()로, 재생하고 있는 오디오 스트림의 번호를 취득한다. 메소드 getAudioStreamAttribute()로, 오디오 스트림의 속성을 취득한다. 오디오 스트림의 속성은, 예를 들면 부호화 방식, 채널 수, 양자화 비트 수, 샘플링 주파수 등이다. 메소드 getMaxAudioStreams()로, 선택 가능한 오디오 스트림의 수를 취득한다.
도 11은 서브픽쳐 스트림에 관한 일례의 메소드를 나타낸다. 메소드 getSPStreamAvailability()로, 지정된 서브픽쳐 스트림이 포함되어 있는지의 여부를 취득한다. 메소드 getSPStreamLanguage()로, 지정된 서브픽쳐 스트림의 언어를 취득한다. 메소드 getSPDisplayStatus()로, 서브픽쳐 스트림의 표시 상태, 즉 현재 표시되어 있는지, 비표시인지를 취득한다. 메소드 setSPDisplayStatus()로, 서브픽쳐 스트림의 표시 상태, 즉 표시할 것인지 비표시로 할 것인지를 설정한다. 메소드 getSPStreamAttribute()로, 서브픽쳐 스트림의 속성을 취득한다. 서브픽쳐 스트림의 속성은, 예를 들면 상이한 해상도의 서브픽쳐 스트림을 갖는 경우의 해상도별 정보, 어스펙트비 4:3 또는 와이드용 등의 정보이다.
도 12는 내장 타이머에 관한 일례의 메소드를 나타낸다. 메소드 sleep()로, 지정된 밀리초간, 처리를 정지한다. 메소드 setTimeout()로, 지정된 밀리초후에 함수나 처리를 실행한다. 메소드 setInterval()로, 지정된 밀리초마다 처리를 실행한다. 메소드 clearTimer()로, 지정된 등록 타이머 ID의 처리를 중지한다. 메소드 pauseTimer()로, 지정한 등록 타이머 ID의 타이머를 일시 정지한다. 메소드 resumeTimer()로, 지정한 등록 타이머 ID의 타이머를 일시 정지로부터 재개한다.
도 13은 키 입력에 관한 일례의 메소드를 나타낸다. 메소드 getPressedKey()로, 유저가 누른 키의 종류를 취득한다.
1-3. BD 기본 플레이어로 생성되는 이벤트에 대하여
플레이어 조작에 관한 메소드를 실행했을 때, 플레이어의 동작이 정상적으로 개시되었는지 등, 직후에 반응을 알 수 있는 것은, 메소드에 대한 리턴 값으로 알 수 있다. 그러나, 시간의 이러한 처리를 지시한 경우, 그 처리가 종료할 때까지 대기하는 것 같은 방법에서는, 다른 처리를 할 수 없다. 또한, 언제 발생할지 모르는 처리도 있다. 이러한 경우에는 이벤트의 구조를 도입함으로써 효율이 좋은 처리가 가능하게 된다.
플레이어의 동작 중에는, 다양한 이벤트가 발생한다. 어떠한 이벤트가 발생하는지는, BD-ROM 가상 플레이어 모델로 정의한다. 플레이어의 동작에 변화가 발생하면 이벤트가 발생하는 것으로 하고, 그 이벤트 발생에 대처하는 프로그램이 준비되어 있는 경우에, 그 프로그램이 실행된다는 모델을 BD-ROM 가상 플레이어 모델로 정의한다.
예를 들면, 복수의 플레이 리스트를 지정된 순서로 재생해 가는 경우, 전의 플레이 리스트의 재생 종료의 이벤트를 받아 다음 플레이 리스트의 재생을 개시하는 처리를 행하는 프로그램을 준비해 둔다. 또한, 어떠한 원인으로 다음의 플레이 리스트가 재생되지 않은 경우에는, 예외가 발생하는 것으로 하여 예외 처리하는 프로그램을 준비해 둔다.
프로그램으로서 기술되어 있지 않은 경우에는, 규격으로 규정되어 있는 플레이어 조립의 동작(디폴트의 이벤트 핸들러)을 실행하거나, 혹은 아무것도 실행되지 않고 그 이벤트는 무시되는 것으로 된다. 아무것도 처리를 행할 필요가 없을 때에는, 적극적으로 이벤트를 무시하게 된다. 그때는, 후술하는 이벤트 리스너 등록을 행하지 않거나, 이벤트에 대응한 프로그램을 기술하지 않도록 함으로써, 이벤트를 무시할 수 있다.
이와 같이, 비정기적인 이벤트가 발생하고, 이벤트 발생을 계기로 준비해 둔 프로그램이 실행되는 모델을, 이벤트 드리븐 모델이라고 한다.
1-3a. 이벤트의 분류
BD-ROM 가상 플레이어 모델에 있어서의 이벤트는, (1) 재생 중인 콘텐츠로부터 발생되는 이벤트, (2) 유저로부터의 인터럽트에 의한 이벤트, (3) 플레이어 상태의 변화에 의한 이벤트의 3종류로 크게 나눌 수 있다.
(1)의, 재생 중인 콘텐츠로부터 발생되는 이벤트는, 예를 들면 플레이 리스트를 재생 중에, 마크로 지시된 시각이 다가오면 발생하는 마크 검출의 인터럽트 이벤트이다. 이 이벤트 발생을 계기로 하여, 그래픽스의 표시나 소거를 행한다. 이 종류의 이벤트는, 미리 설정된 인터럽트로, 재생할 때마다 동일한 타이밍에서 발생하는 점이 특징이다.
(2)의, 유저로부터의 인터럽트에 의한 이벤트는, 주로 플레이어를 조작하는 리모트 컨트롤 커맨더에 대한 키 입력을 상정하고 있다. 이 종류의 이벤트는, 유저가 언제 키 입력을 할지 모르기 때문에, 사전에 인터럽트의 타이밍을 알 수 없 다.
(3)의, 플레이어 상태의 변화에 의한 이벤트는, 플레이어가 정지 상태로부터 재생 상태로 변화했을 때나, 재생 중인 스트림이 변경되었을 때 등, 플레이어의 상태 천이를 나타내는 이벤트이다. 또한, 프로그램 중에서 타이머를 설정한 경우에는, 어떤 시각이 되면 타이머 인터럽트의 이벤트가 발생한다. 플레이어의 상태 변화는, 전술한 (1) 재생 중인 콘텐츠로부터 발생되는 이벤트나, (2) 유저로부터의 인터럽트에 의한 이벤트에 의해 야기되는 이벤트이기도 하는 경우도 많다.
도 14A, 도 14B 및 도 14C는, BD-ROM의 오브젝트 BDBasicP1ayer에서 생성되는 일례의 이벤트 정의를 일람하여 나타낸다. 오브젝트 BDBasicPlayer는, 클래스 BDBasicPlayer에 의해 생성되는 오브젝트이다.
우선, (1)의, 재생 중인 콘텐츠로부터 발생되는 이벤트에 대해 설명한다. 도 14A, 도 14B 및 도 14C에 있어서, 이벤트 MarkEncounteredEvent는, 재생 중에 마크를 검출했을 때에 발생된다. 이 이벤트는, 예를 들면 그래픽스 화면을 표시할 때에 이용된다. 이벤트 ValidPeriodStartedEvent는, 유저 입력의 선택 유효 기간이 개시했을 때에 발생된다. 이벤트 ValidPeriodEndedEvent는, 유저 입력의 유효 기간이 종료했을 때에 발생된다. 이 이벤트는, 예를 들면 링크의 강제 실행시에 이용된다. 이벤트 PlayRepeatedEvent는, 반복 재생 구간의 선두를 검출했을 때에 발생된다. 이벤트 VideoStreamChangedEvent는, 재생하는 비디오 스트림이 변한 때에 발생된다. 이벤트 AudioStreamChangedEvent는, 재생하는 오디오 스트림이 변한 때에 발생된다. 이벤트 SubpictureStreamChangedEvent는, 재생하는 서브픽쳐 스트 림이 변한 때에 발생된다. 이벤트 StreamDispIayStatusChangedEvent는, 스트림의 표시/비표시 상태가 변한 때에 발생된다. 이벤트 PlayListStartedEvent는, 플레이 리스트의 선두를 검출했을 때에 발생된다. 이벤트 PlayListEndedEvent는, 플레이 리스트의 끝을 검출했을 때에 발생된다. 이벤트 PlayItemStartedEvent는, 플레이 아이템의 선두를 검출했을 때에 발생된다. 이벤트 PlayItemEndedEvent는, 플레이 아이템의 끝을 검출했을 때에 발생된다.
다음으로, (2)의, 유저로부터의 인터럽트에 의해 발생되는 이벤트에 대해 설명한다. 이벤트 RmKeyEvent는, 리모트 컨트롤 커맨더의 키가 눌렸을 때에 발생된다. 어떤 키가 눌렸는지는, 대응하는 이벤트 리스너(후술함) 내에서 판정한다.
다음으로, (3)의, 플레이어 상태의 변화에 의해 발생되는 이벤트에 대해 설명한다. 이벤트 PlayStartedEvent는, 플레이어가 재생을 개시했을 때에 발생된다. 이벤트 PlayStoppedEvent는, 플레이어가 재생을 정지했을 때에 발생된다. 이벤트 PlayStilledEvent는, 플레이어가 재생을 일시 정지했을 때에 발생된다. 이벤트 StillReleasedEvent는, 플레이어에 있어서 재생의 일시 정지가 해제된 때에 발생된다. 이벤트 PlayPausedEvent는, 플레이어에서의 재생이 유저에 의해 일시 정지(포즈)된 때에 발생된다. 이벤트 PauseReleasedEvent는, 포즈가 해제된 때에 발생된다. 이벤트 TimerFiredEvent는, 카운트 다운 타이머가 O으로 되었을 때에 발생된다. 또는, 카운트 업 타이머가 지정한 값으로 되었을 때에 발생된다.
1-3b. 이벤트 모델에 대하여
도 14A, 도 14B 및 도 14C에서 설명한 각 이벤트는, 오브젝트 BDBasicPlayer 내에서 발생하는 것으로 한다. 즉, Java 언어에 있어서의 이벤트 소스는, 오브젝트 BDBasicPlayer라고 정한다. 이벤트는, Java 언어 상에서는, 이벤트 오브젝트로서 정의된다. 이벤트 발생시에 실행하는 메소드를 리스너라고 부른다. 리스너가 실행되기 위해서는, 이벤트 소스에 대해 이벤트 리스너 등록을 행할 필요가 있다. 리스너가 이벤트 소스에 등록되어 있으면, 오브젝트 BDBasicPlayer는, 이벤트를 이벤트 리스너에 송신한다. 이벤트를 수신한 오브젝트는, 오브젝트 내에 준비한 메소드를 실행한다.
도 15를 이용하여, 리스너 및 이벤트에 대해 설명한다. 오브젝트(211, 211, …)는, 이벤트를 수신하여 리스너를 실행시키는 리스너 인터페이스를 실장하고 있다. 오브젝트(211)는, 수신하고자 하는 이벤트에 대응하는 리스너를, 오브젝트 BDBasicPlayer(210)에 대해 등록한다(단계 S10). 어떤 이벤트에 대응하는 리스너를 오브젝트 BDBasicPlayer(210)에 대해 등록하는 것을, 이벤트 리스너 등록이라 칭한다. 오브젝트 BDBasicPlayer(210)에 대해, 복수의 오브젝트(211, 211, …)로부터 이벤트 리스너 등록을 행할 수 있다.
리스너 인터페이스를 실장한 오브젝트란, 이벤트 발생시에 실행하는 메소드를 실장한 오브젝트이다. 제 15도의 예에서는, 어떤 이벤트 발생시에 실행되는 메소드인 doAction()가 오브젝트(211)에 실장되어 있다. 오브젝트 BDBasicPlayer(210) 내에서 이벤트가 발생(단계 S11)하고, 이 이벤트가 오브젝트 BDBasicPlayer(210)에 대해 이벤트 리스너 등록된 이벤트이면, 해당 이벤트 리스너 등록을 행한 오브젝트(211)에 대해, 해당 이벤트가 송신된다(단계 S12). 이벤트를 수신한 오브젝트(211)는, 메소드 doAction()를 실행한다(단계 S13).
도 16A 및 도 16B는, 이벤트 리스너 등록에 관한 일례의 메소드를 일람하여 나타낸다. 메소드 addContentsListener(ContentsListener l)로, 오브젝트 BDBasicPlayer로부터 이벤트 ContentsEvent를 수취하기 위해, 지정된 리스너를 오브젝트 BDBasicPlayer에 등록한다. 등록된 리스너는, 배열 ContentsListener()에 추가된다. 이벤트 ContentsEvent는, 도 14A, 도 14B 및 도 14C를 이용하여 설명한, (1)의, 재생 중인 콘텐츠로부터 발생되는 이벤트의 총칭이다. 메소드 addRmtKeyListener(RmtKeyListener 1)로, 오브젝트 BDBasicPlayer로부터 이벤트 RmtKeyEvent(도 14A, 도 14B 및 도 14C를 이용하여 설명한, (2)의, 유저로부터의 인터럽트에 의해 발생되는 이벤트)를 수취하기 위해, 지정된 리스너를 등록한다. 등록된 리스너는, 배열 RmtkeyListener()에 추가된다. 메소드 addPlayerStatusListener(PlayerStatusListener 1)로, 오브젝트 BDBasicPlayer로부터 이벤트 PlayerStatusEvent를 수취하기 위해, 지정된 리스너를 등록한다. 등록된 리스너는, 배열 PlayerStatusListener()에 추가된다. 이벤트 PlayerStatusEvent는, 도 14A, 도 14B 및 도 14C를 이용하여 설명한, (3)의, 플레이어 상태의 변화에 의해 발생되는 이벤트의 총칭이다.
메소드 removeContentsListener(ContentsListener 1)로, 오브젝트 BDBasicPlayer로부터 이벤트 ContentsEvent를 수취하지 않도록, 지정된 리스너를 삭제한다. 메소드 removeRmtKeyListener(RmtKeyListener 1)로, 오브젝트 BDBasicPlayer로부터 이벤트 RmtKeyEvent를 수취하지 않도록, 지정된 리스너를 삭 제한다. 메소드 removePlayerStatusListener(PlayerStatusListener1 )로, 오브젝트 BDBasicPlayer로부터 이벤트 PlayerStatusEvent를 수취하지 않도록, 지정된 리스너를 삭제한다.
이와 같이, "add"로 시작되는 메소드를 실행함으로써, 이벤트 리스너 등록이 행해진다. 이벤트 리스너 등록은, 목적으로 하는 이벤트가 발생하기 전에 행한다. 이벤트를 수취할 필요가 없게 된 때에는, "remove"로 시작되는 메소드를 실행함으로써, 이벤트 송신을 정지시킬 수 있다.
도 16A 및 도 16B 에 있어서, 메소드 getContentsListeners()로, 오브젝트 BDBasicPlayer에 등록되어 있는 모든 ContentsListener의 배열을 되돌린다. 메소드 getRmtkeyListeners()로, 오브젝트 BDBasicPlayer에 등록되어 있는 모든 RmtkeyListener의 배열을 되돌린다. 메소드 getPlayerStatusListeners()로, 오브젝트 BDBasicPlayer에 등록되어 있는 모든 PlayerStatusListener의 배열을 되돌린다.
이벤트 리스너 등록을 이용한 프로그램의 작성에 대해 설명한다. 여기서는, 플레이 리스트를 재생 중, 어떤 신(scean)으로 되었을 때에 버튼을 표시시키는 동작을 행하게 하는 프로그램을 작성하는 예이다. 플레이 리스트를 재생 중에, 특정한 신에 들어갔음을 알기 위해서는, 마크 기능을 이용하면 된다. 마크는, 플레이 리스트의 임의의 시각에 설정하는 것이 가능한 첫머리 탐색 점을 설정하는 기능이다. 마크가 설정된 시각에 재생이 들어가면, 도 14A, 도 14B 및 도 14C를 이용하여 설명한 이벤트 MarkEncounteredEvent가 발생한다. 이 이벤트 MarkEncounteredEvent의 발생을 계기로 하여 버튼이 표시되는 것 같은 리스너 인터페이스를 실장한 버튼 오브젝트를 작성하면 된다. 즉, 버튼의 오브젝트에는, 오브젝트 BDBasicPlayer에 이벤트 리스너 등록을 하고, 이벤트 MarkEncounteredEvent를 수취했을 때에 표시를 개시하는 것 같은 프로그램을 실장해 두면 된다.
더 구체적으로는, 도 17에 일례가 나타난 바와 같이, 우선 플레이 리스트 상의 어떤 신에서 버튼을 표시시킬지를 정하고(단계 S20), 플레이 리스트 상의 버튼을 표시시키는 시각에, 마크를 설정한다(단계 S21). 다음으로, 표시시키는 버튼의 오브젝트에, 단계 S21에서 설정된 마크에 대응하는 이벤트 리스너 등록을 행하는 메소드를, 프로그램 중에 기술한다(단계 S22). 즉, 이 단계 S22에서는, 도 15에서 설명한 단계 S10의 동작을 행하게 하는 기술이 이루어진다. 그리고, 이벤트 발생시에 실행시키는 처리를 버튼 오브젝트에 기술하고, 버튼 오브젝트에 대해, 마크 발생 이벤트에 대응하는 리스너 인터페이스를 실장한다(단계 S23). 즉, 이 단계 S23에서는, 도 15에서 설명한 단계 S13의 내용이 기술된다. 이들 프로그램은, Java 언어로써 기술된다.
도 18은 도 17과 같은 프로그래밍에 의해 규정된 동작을, 재생측이 실장할 때의 일례의 처리를 나타낸다. 오브젝트 BDBasicPlayer에 의해, 플레이 리스트의 재생이 개시된다(단계 S30). 오브젝트 BDBasicPlayer는, 플레이 리스트의 재생 중에, 플레이 리스트 중에 설정된 마크를 검출한 것으로 한다(단계 S31). 오브젝트 BDBasicPlayer는, 검출된 마크에 대응하는 이벤트 리스너가 등록되어 있는지의 여부를 조사한다(단계 S32). 즉, 단계 S32에서는, 도 15를 이용하여 설명한, 단계 S10의 처리가 행해져 있는지의 여부가 조사된다. 만약, 대응하는 이벤트 리스너가 등록되어 있지 않다고 판단되면, 처리는 단계 S36으로 이행하고, 오브젝트 BDBasicPlayer는, 이벤트 송신을 행하지 않는다.
한편, 단계 S32에서, 마크에 대응하는 이벤트 리스너가 등록되어 있다고 판단되면, 처리는 단계 S33으로 이행한다. 단계 S33에서는, 오브젝트 BDBasicPlayer는, 이벤트 리스너를 등록한 오브젝트에 대해 이벤트 MarkEncounteredEvent를 송신한다. 이는, 도 15을 이용하여 설명한, 단계 S12의 처리이다. 이 이벤트 MarkEncounteredEvent를 받은 오브젝트는, 이벤트 MarkEncounteredEvent의 발생시에 실행하는 메소드의 실행을 개시한다(단계 S34). 즉, 도 15을 이용하여 설명한, 단계 S13의 메소드 doAction()가 실행된다. 이 예에서는,이 메소드 doAction()는, 버튼을 화면 상에 표시하는 처리가 기술되어 있다. 이 기술에 따라 화면 상에 버튼이 표시된다(단계 S35).
배경 기술에 있어서 도 2의 (a) 및 (b)를 이용하여 이미 설명한 바와 같이, 종래의 DVD 비디오에서는, 버튼의 정보가 AV 스트림에 다중화되어 있기 때문에, 버튼의 표시 개시 시각을 변경하기 위해서는, AV 스트림의 재다중화를 행할 필요가 있었다.
이에 대해 본 발명의 실시의 제1 형태에 의한, BD-ROM 가상 플레이어 모델에서는, 마크의 시간 축 상의 설정 위치를 바꾸는 것만으로, 버튼의 표시 개시 시각을 변경할 수 있다. 본 발명의 실시의 제1 형태에서는, 도 19A, 도 19B 및 도 19C에 개략적으로 도시된 바와 같이, 클립 AV 스트림 파일(도 19A), 마크 데이터가 저 장되는 파일(도 19B) 및 버튼을 구성하는 데이터가 저장되는 파일(도 19C)은, 상호 독립적인 구성으로 되어 있다(파일 구성의 상세 내용은 후술함). 또한, 클립 AV 스트림 파일은, 비디오 팩 및 오디오 팩이 다중화된 파일이다.
이와 같이, 마크의 정보는, 클립 AV 스트림과는 별도의 데이터 베이스 파일에 저장된다. 그 때문에, 도 19A, 도 19B 및 도 19C에 도시된 바와 같이, 당초 표시 개시 시각이 시각(pts1)으로 되어 있는 버튼 화상을, 시각(pts2)부터 표시시키고자 하는 경우에도, 예를 들면 데이터 베이스로부터 판독된 마크 정보에 대해, 시각(pts1)을 시각(pts2)으로 재기입하는 것만으로 되므로, 마크의 위치를 변경해도, 클립 AV 스트림의 재다중화를 행할 필요가 없다.
또한, 이 실시의 제1 형태에서는, 버튼을 구성하는 데이터도, 클립 AV 스트림과는 별도의 파일에 저장된다. 그 때문에, 버튼이 선택된 때의 처리의 기술에 대해서도, 클립 AV 스트림 파일과는 독립하여 존재하는 버튼 오브젝트의 메소드를 변경하는 것만으로 된다. 이미 설명한 바와 같이, 종래의 DVD 비디오에서는, 버튼 선택시의 처리를 행하는 버튼 커맨드가 AV 스트림에 다중화되어 있었기 때문에, 버튼이 선택된 때의 처리의 변경은, 용이하게는 실현할 수 없었다.
BD-ROM의 풀 프로파일에 있어서는, 이상과 같은 BD-ROM 가상 플레이어 모델을 구축함으로써, 종래의 DVD 비디오 비디오와 비교하여, 오서링의 유연성, 용이성의 향상을 실현할 수 있다.
전술에서는, BD-ROM 가상 플레이어 모델을, 오브젝트 지향적인 이벤트 리스너의 모델에 기초하여 구축했다. BD-ROM 가상 플레이어 모델은, 이 예에 한하지 않고, 더 간편한 이벤트 드리븐 모델로 구축하는 것도 가능하다.
도 20을 이용하여, 이벤트 드리븐 모델에 의한 BD-ROM 가상 플레이어 모델에 대해 설명한다. 오브젝트 BDBasicPlayer에서 발생하는 이벤트는, 도 15를 이용하여 설명한 오브젝트 지향적인 모델과 동일하다. 이 이벤트 드리븐 모델의 경우는, 이벤트 발생시에 호출되는 메소드가, 오브젝트 BDBasicPlayer 내에 정의된 메소드 processEvent()만으로 한다. 즉, 이 모델에서는, 어떤 이벤트가 호출되더라도 동일한 메소드가 호출된다. 그 때문에, 이벤트의 종류에 따라 처리를 바꾸고자 하는 경우에는, 어떤 이벤트가 발생했는지를 메소드 processEvent() 중에서 판정할 필요가 있다.
이 모델에서는, 이벤트마다 이벤트 리스너 등록을 행할 필요가 없다. 그 때문에, 간이한 구성의 모델을 구축할 수 있다. 그러나, 이벤트가 발생할 때마다 메소드 processEvent()가 호출되기 때문에, 효율이 나쁘다. 또한, 처리하는 메소드 processEvent()가 고정적으로 오브젝트 BDBasicPlayer 내에 정의되어 있기 때문에, 별도의 오브젝트 내에서 새로운 처리 루틴을 정의하여 실행한다고 하는 확장성이 부족하다. 그 때문에, 확장성을 중시하는 본 발명의 실시의 제1 형태에는, 도 15를 이용하여 설명한 오브젝트 지향적인 모델로 BD-ROM 가상 플레이어 모델을 구축하는 것이 바람직하다.
1-4. 유저 입력에 대하여
도 21A, 도 21B, 도 21C 및 도 21D는, BD-ROM 가상 플레이어 모델이 접수하는 유저 입력 커맨드의 정의의 일례를 일람하여 나타낸다. 이 유저 입력은, 플레 이어를 조작하기 위한 리모트 컨트롤 커맨더에 설정된 키로부터의 입력이나, 플레이어 장치로부터 출력되는 메뉴 화면에 부합한 입력을 상정하고 있다. 유저 입력은, BD-ROM 가상 플레이어 모델에 있어서는 키 입력 이벤트의 일종이다.
커맨드 timeSearch(playlistNumber, Time)는, 재생 중인 시나리오의, "Time"으로 지정되는 시각부터의 재생을 지시한다. 커맨드 play(playlistNumber, chapterNumber)는, 지정된 시나리오의, "chapterNumber"로 지정되는 챕터부터의 재생을 지시한다. 커맨드 stop()는, 재생의 정지를 지시한다. 커맨드 prev()는, 재생 중인 챕터의 1개 전의 챕터의 선두부터의 재생 개시를 지시한다. 커맨드 top()는, 재생 중인 챕터의 선두부터의 재생 개시를 지시한다. 커맨드 next()는, 재생 중인 챕터의 다음 챕터의 선두부터의 재생 개시를 지시한다. 커맨드 forwardScan(speed)는, "speed"로 지정된 속도에서의 순방향 재생을 지시하고, 커맨드 backwardScan(speed)는, "speed"로 지정된 속도에서의 역방향 재생을 지시한다. "speed"는, 0.1∼360의 범위에서 값을 지정할 수 있다.
커맨드 moveCursor(direction, [level])는, 커서의 상하 좌우의 이동을 지시한다. "direction"은, "upper", "lower", "left" 또는 "right" 중 어느 하나의 값으로서, 각각 커서의 상, 하, 좌, 우 방향으로의 이동을 지시한다. 또한, "level"은 "0"∼"255"의 범위에서 값을 지정할 수 있다. "level" 옵션은, 통상은 이용하지 않거나, 값이 "0"으로 된다. "level"의 값으로서 중간치("1"∼"255")를 사용함으로써, 아날로그 조이스틱 등을 표현한다
커맨드 click(buttonNumber)은, 화면 상의 버튼의 클릭을 지시한다. 커맨드 focus(buttonNumber)는, 화면 상의 버튼에 포커스를 맞추는 취지를 지시한다.
커맨드 stillOff()는, 플레이어에 의해 일시 정지된 재생의 재개를 지시한다. 커맨드 stillOff()는, 커맨드 pauseOff와 통합할 수 있다. 커맨드 pauseOn()는, 일시 정지를 지시한다. 이 커맨드 pauseOn()는, 시나리오 재생시에만 동작할 수 있다. 커맨드 pauseOff()는, 일시 정지의 해제를 지시한다.
커맨드 LanguageSelect(languageCode)는, 메뉴의 표시 언어를 지정한다. 커맨드 StreamChange(StreamNumber)는, 재생하는 스트림의 변경을 지시한다. 커맨드 setEnabled(boolean)는, 스트림의 표시/비표시를 정한다. 커맨드 angleChange(angleNumber)는, 표시 앵글의 변경을 지시한다. 커맨드 parentalCountrySelect(countryCode)는, 파렌탈 레벨용 컨트리 코드를 설정한다. 커맨드 videoPresentationModeChange(mode)는, 비디오의 표시 형식을 지정한다. "mode"는, "WLde"(와이드), "LB"(레터 박스) 또는 "PanScan"(빵 스캔) 중 어느 하나의 값을 취한다.
도 22는, 리모트 컨트롤 커맨더로부터의 키 입력 이벤트를 나타내는 클래스 RmtKeyEvent의 예를 나타낸다. 파라미터 "source"는, 이벤트의 발생원의 오브젝트로서, 오브젝트 BDBasicPlayer를 가리킨다. 파라미터 "id"는, 이벤트의 타입을 나타내는 정수이다. 파라미터 "when"은, 이벤트가 발생한 시간을 지정하는 long 형식의 정수이다. 파라미터 "mtKeyCode"는, 입력 가상 키에 대응하는 정수형 코드 또는 "VK_UNDEFINED"로 된다. "VK_UNDEFINED"에 대해서는 후술한다.
도 3A 및 도 3B를 이용하여 이미 설명한 바와 같이, 리모트 컨트롤 커맨더의 키에 의한 유저 입력은, 우선 하드웨어가 수취하고, 오브젝트 BDBasicPlayer에도 전해진다. 이 유저 입력에 부합하여, 오브젝트 BDBasicPlayer에서는, 클래스 RmtKeyEvent에 의해 오브젝트 RmtKeyEvent가 발생하고, 이 오브젝트 RmtKeyEvent에 대응한 이벤트 리스너를 등록하고 있는 오브젝트에 대해, 유저 입력에 의한 커맨드가 통지된다.
도 23은, 오브젝트 RmtKeyEvent가 갖는 일례의 메소드를 일람하여 나타낸다. 메소드 getRmtKeyCode는, 이 이벤트가 발생한 키의 키 코드를 되돌린다. 메소드 setRmtKeyCode는, 이 이벤트가 발생하는 키의 키 코드를 설정한다. 예를 들면, 메소드 getRmtKeyCode를 실행함으로써, 어떤 키가 눌려짐으로써 오브젝트 RmtKeyEvent가 발생했는지를 알 수 있다.
도 24, 그리고 도 25A 및 도 25B는, 도 23에서 설명한 메소드 getRmtKeyCode에 의해 얻어지는 일례의 키를 일람하여 나타낸다. 도 24, 그리고 도 25A 및 도 25B에 나타낸 「VK」로 시작되는 각 키는, 오브젝트 BDBasicPlayer 상의 가상적인 키이다. 키 VK_POWER는, 전원 키에 대응하는 기능을 제공한다. 키 VK_P0WER_0N은, 전원 ON 키에 대응하는 기능을 제공한다. 키 VK_POWEL_OFF는, 전원 OFF 키에 대응하는 기능을 제공한다. 키 VK_MENU는, 메뉴를 표시시키는 메뉴 키에 대응하는 기능을 제공한다. 키 VK_ENTER는, 「결정」을 지시하는 결정 키에 대응하는 기능을 제공한다. 키 VK_RETURN은, 처리의 단계를 하나 되돌리는 리턴 키에 대응하는 기능을 제공한다.
키 VK_PLAY는, 재생을 지시하는 재생 키에 대응하는 기능을 제공한다. 키 VK_STOP은, 재생의 정지를 지시하는 정지 키에 대응하는 기능을 제공한다. 키 VK_PAUSE는, 재생의 일시 정지를 지시하는 일시 정지 키에 대응하는 기능을 제공한다. 키 VK_FAST_FORWARD는, 앞으로 감기 재생을 지시하는 앞으로 감기 키에 대응하는 기능을 제공한다. 키 VK_FAST_REVERSE는, 되감기 재생을 지시하는 되감기 키에 대응하는 기능을 제공한다. 키 VK_SLOW_FORWARD는, 순방향의 슬로우 재생을 지시하는 슬로우(순방향) 키에 대응하는 기능을 제공한다. 키 VK_SLOW_REVERSE는, 역방향의 슬로우 재생을 지시하는 슬로우(역방향) 키에 대응하는 기능을 제공한다. 키 VK_STEP_FORWARD는, 순방향의 코마 보내기 재생을 지시하는 코마 보내기 (순방향) 키에 대응하는 기능을 제공한다. 키 VK_STEP_REVERSE는, 역방향의 코마 보내기 재생을 지시하는 코마 보내기(역방향) 키에 대응하는 기능을 제공한다.
키 VK_NEXT는, 「다음」을 의미하는 값을 입력하는 다음 지정 키에 대응하는 기능을 제공한다. 키 VK_PREVIOUS는, 「전」을 의미하는 값을 입력하는 전 지정 키에 대응하는 기능을 제공한다. 예를 들면, 키 VK_NEXT 및 키 VK_PREVIOUS를 이용하여, 전후의 챕터에의 이동을 지시할 수 있다.
키 VK_UP은, 「상」을 의미하는 값을 입력하는 상 방향 지정 키에 대응하는 기능을 제공한다. 키 VK_DOWN은, 「하」를 의미하는 값을 입력하는 하 방향 지정 키에 대응하는 기능을 제공한다. 키 VK_RIGHT는, 「우」를 의미하는 값을 입력하는 우 방향 지정 키에 대응하는 기능을 제공한다. 키 VK_LEFT는, 「좌」를 의미하는 값을 입력하는 좌 방향 지정 키에 대응하는 기능을 제공한다. 키 VK_UP_RIGHT는, 「우측 상」을 의미하는 값을 입력하는 우측 상 방향 지정 키에 대응하는 기능 을 제공한다. 키 VK_UP_LEFT는, 「좌측 상」을 의미하는 값을 입력하는 좌측 상 방향 지정 키에 대응하는 기능을 제공한다. 키 VK_DOWN_RIGHT는, 「우측 하」를 의미하는 값을 입력하는 우측 하 방향 지정 키에 대응하는 기능을 제공한다. 키 VK_DOWN_LEFT는, 「좌측 하」를 의미하는 값을 입력하는 좌측 하 방향 지정 키에 대응하는 기능을 제공한다. 이들 방향 키를 이용함으로써, 예를 들면 화면 상의 커서 표시의 이동을 지시할 수 있다.
키 VK_ANGLE은, 멀티 앵글의 비디오에 대한 앵글 전환을 지시하는 앵글 전환 키에 대응하는 기능을 제공한다. 키 VK_PRESENTATION_GRAPHICS는, 영어 자막, 일본어 자막, 자막 표시/비표시 등을 전환하는 자막 전환 키에 대응하는 기능을 제공한다. 키 VK_AUDIO는, 서라운드나 바이링궐 등 오디오 설정을 전환하는 오디오 전환에 대응하는 기능을 제공한다. 키 VK_VIDEO_ASPECT는, 비디오의 어스펙트비 전환을 지시하는 어스펙트 전환 키에 대응하는 기능을 제공한다. 키 VK_COLORED_KEY_1은, 착색 기능 키 1, 키 VK_COLORED_KEY_2는, 착색 기능 키 2, 키 VK_CLORED_KEY_3은, 착색 기능 키 3, 키 VK_C0L0RED_KEY_4는, 착색 기능 키 4, 키 VK_COLORED_KEY_5는, 착색 기능 키 5, 키 VK_COL0RED_KEY_6은, 착색 기능 키 6에 각각 대응하는 기능을 제공한다. 키 VK_UNDEFINED는, 미정의 키이다.
도 24, 그리고 도 25A 및 도 25B에 일람한 키는, 실제의 리모트 컨트롤 커맨더의 물리 키와 반드시 일치하지 않는다. 기기에 따라서는, 하나의 물리 키에 복수의 기능을 갖게 하는 경우가 있다. 또한, 화면 상에 리모콘을 나타내는 화상을 표시하고, 표시된 화면 상의 키를 유저에게 선택하게 하는 경우도 있다. 그 때문 에, 도 24, 그리고 도 25A 및 도 25B 에 도시한 키는, 기능을 추상화한 가상적인 키이다. 오브젝트 BDBasicPlayer에의 유저 입력을, 이와 같은 가상 키로 표현함으로써, 기기에 의존하지 않는 유저 입력을 정의할 수 있다.
도 26은, 유저 입력 이벤트를 계기로 하여, 준비된 프로그램이 실행되는 일례의 수순을 나타낸다. 도 26은, 통상 재생 중에, 유저에 의해 "next" 키가 눌렸을 때에, 이 키 입력에 대응하여, 다음 챕터에 점프하여 재생을 개시함과 동시에, 준비된 메시지를 화면 상에 표시하는 프로그램의 예이다.
"next" 키는, 다음 챕터로 이동하여 재생하는 것을 플레이어에 대해 지시하기 위한 키로서, 예를 들면 리모트 컨트롤 커맨더 상의 키이다. 도 26의 플로우차트는, 유저가 재생 중에 이 "next" 키를 누름으로써 개시된다(단계 S41). "next" 키가 눌리면, 오브젝트 RmeKeyEvent가 발생되고(단계 S42), 다음의 챕터 마크를 찾기 위해, 챕터 마크에 데이터 베이스가 검색된다(단계 S43). 검색 결과에 기초하여 다음의 챕터 마크가 존재하는지의 여부가 판단되고(단계 S44), 존재하지 않으면, 일련의 처리가 종료되고, 통상 재생이 계속된다. 단계 S44에서, 다음의 챕터 마크가 존재한다고 판단되면, 처리는 단계 S45로 이행한다.
단계 S45에서는, 오브젝트 BDBasicPlayer는, "next" 키에 응답하여 현재 재생 중인 챕터의 재생이 중지된다(단계 S45). 플레이어의 재생이 중지되면, 이벤트 PlayStoppedEvent가 발생된다(단계 S46). 오브젝트 BDBasicPlayer는, 단계 S43 및 단계 S44에서 취득된 다음의 챕터 마크가 지시하는, 클립 AV 스트림 파일 내의 바이트 위치를, 클립 정보 파일의 특징점 정보로부터 취득한다. 취득된 파일 내 바 이트 위치에 액세스하고, 그 위치부터 스트림의 판독을 개시하고, 재생을 개시한다(단계 S47).
단계 S48 이하는, 챕터가 전환된 것을 알리는 메시지를 화면 상에 표시하는 일례의 수순이다. 챕터가 전환된 위치에서 메시지를 표시하기 위해서는, 이벤트 MarkEncounteredEvent에 대응하는 이벤트 리스너로서, 메시지 표시의 메소드를 실장해 두면 된다. 스트림의 재생이 개시되면, 이벤트 PlayStartedEvent가 발생된다. 그와 함께, 챕터 마크에 대응하여 이벤트 MarkEncounteredEvent가 발생된다(단계 S48).
이벤트 MarkEncounteredEvent의 발생에 수반하여, 단계 S49에서, 이벤트 MarkEncounteredEvent에 대응한 리스너의 실행이 개시된다. 이 리스너에서는, 우선 이벤트 MarkEncounteredEvent에 의해 검출된 마크의 종별이 취득되고(단계 S50), 이 마크가 챕터 마크인지의 여부가 판단된다(단계 S51). 만약, 챕터 마크가 아니라고 판단되면, 처리는 단계 S53으로 이행되고 해당 리스너의 실행이 종료된다. 단계 S51에서, 검출된 마크가 챕터 마크라고 판단되면, 처리는 단계 S52로 이행되고 챕터 선두인 것을 나타내는 메시지를 표시한다.
이 예에서는, 유저가 리모트 컨트롤 커맨더의 키를 누름으로써 하나의 이벤트 RmtKeyEvent가 발생하고, 이 이벤트 RmtKeyEvent의 발생을 계기로 한 일련의 상태 천이에 의해, 이벤트 PlayStoppedEvent, 이벤트 PlayStartedEvent 및 이벤트 MarkEncounteredEvent라고 하는, 복수의 이벤트가 야기된다.
이와 같이, 본 발명의 실시의 제1 형태에 의한 BD-ROM 가상 플레이어 모델에 서는, 유저 입력 이벤트는, 플레이어의 상태를 변화시켜 새로운 이벤트를 발생시키는 계기로도 되어, 새롭게 발생한 이벤트를 이용하여 다양한 처리를 행하게 할 수 있다.
본 발명의 실시의 제1 형태에서는, 전술한 바와 같이 하여 BD-ROM 가상 플레이어 모델을 정의함으로써, DVD 비디오에는 없었던 다양한 장점을 얻을 수 있다. 예를 들면, 본 발명의 실시의 제1 형태에 따르면, 종래의 DVD 비디오에 있어서의 몇 가지 기능을 하나의 모델로 실현할 수 있다.
제1 예로서, 자막의 강제 출화 기능 및 UOP(User Operation) 금지 기능을 들 수 있다. 자막의 강제 출화 기능은, 유저가 자막 표시를 오프로 설정하고 있더라도, 특정한 자막을 특정한 신에서 강제적으로 표시시키는 기능이다. 또한, UOP 금지 기능은, 유저 입력을 금지하는 기능이다. DVD 비디오에서는, 이들 기능을 실현하기 위해, 각각 전용의 데이터 구조와 동작 모델이 정의되어 있었다.
본 발명의 실시의 제1 형태에 의한 BD-ROM 가상 플레이어 모델에서는, 자막의 강제 출화 기능에 관해서는, 자막을 강제적으로 출화시키고자 하는 신(시각)에 마크를 표시해 두고, 그 마크에 대응한 이벤트 리스너 등록을 행함과 아울러, 자막 표시의 온/오프에 관계 없이 화면 상에 자막을 출화하는 처리를 리스너로서 준비해 둔다. 이와 같이 함으로써, 통상의 마크를 처리하는 모델로, 자막의 강제 출화 기능을 동일한 처리로서 실현할 수 있다.
또한, UOP 금지 기능에 대해서는, 리모트 컨트롤 커맨더의 키 입력 이벤트에 대한 이벤트 리스너 등록을 행하지 않으면, 키 입력에 의한 이벤트가 발생해도 아 무것도 처리가 행해지지 않기 때문에, 유저 입력이 무시되고 UOP가 금지된다.
이와 같이, 본 발명의 실시의 제1 형태에서는, 하나의 이벤트 모델로 DVD의 기능을 실현할 수 있기 때문에, 디스크 제작측의 부담이 가벼워진다는 장점이 있다.
또한 예를 들면, DVD 비디오에서는, 리모트 컨트롤 커맨더의 각 키에 대한 동작이 미리 결정되어 있었다. 예를 들면, 서브 메뉴 키를 누르면, 오디오, 자막, 앵글의 설정을 변경하기 위한 서브 메뉴 화면이 표시되는 것이, 서브 메뉴 키의 동작으로서 정해져 있었다. 그러나, 서브 메뉴는 DVD 비디오에 있어서 필수적인 데이터가 아니기 때문에, 서브 메뉴가 없는 디스크도 존재한다. 이 경우, 서브 메뉴 키를 누르더라도, 전혀 반응이 없는 것으로 된다.
한편, 본 발명의 실시의 제1 형태의 BD-ROM 가상 플레이어 모델에서는, 도 21A, 도 21B, 도 21C 및 도 21D, 도 22, 도 23, 도 24, 그리고 도 25A 및 도 25B를 이용하여 설명한 바와 같이, 키가 눌렸을 때에 어떠한 처리를 행할지는, 디스크 제작측에서 정할 수 있다. 그 때문에, 서브 메뉴를 준비하지 않은 경우라도 메시지를 표시하도록 프로그램함으로써, 서브 메뉴 키가 눌린 경우에는, 메시지를 표시하여 서브 메뉴가 없음을 유저에게 전하는 것이 가능하게 된다.
이와 같이, 본 발명의 실시의 제1 형태에서는, 디스크 제작시의 자유도가 높아져서 유저에게 있어서 조작하기 쉬운 디스크를 제작할 수 있게 된다는 장점이 있다.
또한, 본 발명의 실시의 제1 형태에서는, BD-ROM 가상 플레이어 모델에 대응 하는 Java 클래스를 정의하고, Java 프로그램에 의해 플레이 리스트의 재생 제어를 행하도록 하고 있다. Java 프로그램을 이용함으로써, 멀티쓰레드 프로그램을 실현할 수 있고, 네트워크 액세스나 유저 입력의 응답 대기에 의한 타임 러그에 용이하게 대처 가능하다. 또한, Java 프로그램을 이용함으로써, 커맨드를 미리 판독함으로써 분기 예측이나 투기 실행 등도 용이하게 실현 가능하고, 고속 처리가 가능하게 된다.
1-5. 파일의 관리 구조에 대하여
다음으로, BD-ROM의 풀 프로파일에 적용 가능한 파일의 관리 구조에 대해, 도 27을 이용하여 설명한다. 파일은, 디렉토리 구조에 의해, 계층적으로 관리된다. 기록 매체 상에는, 반드시 1개의 디렉토리(도 27의 예에서는 루트(root) 디렉토리)가 작성된다. 이 디렉토리의 아래가, 하나의 기록 재생 시스템으로 관리되는 범위로 한다.
루트 디렉토리의 아래에 디렉토리(BDMV)가 놓인다. 또한, 도시는 되어 있지 않지만, 디렉토리(BDMV)는 루트 디렉토리의 아래에 복수를 놓을 수 있다.
디렉토리(BDMV)의 아래에는, 2개의 파일, 즉 파일 「scenario.hdmv」 및 파일 「entrylist.data」가 놓임과 아울러, 디렉토리 「PLAYLIST」, 디렉토리 「CLIPINF」, 디렉토리 「STREAM」이라고 하는 복수의 디렉토리가 놓인다.
파일「scenario.hdmv」는, 시나리오가 저장되는 시나리오 파일이다. 시나리오는, 복수의 플레이 리스트가 배열된 구조로서, 플레이 리스트의 재생 순서 등을 제어한다. 시나리오를 더 세분화한 단위로 유저에게 보이기 위해, 챕터를 설정할 수 있다. 또한, 도 3A 및 도 3B를 이용하여 설명한, BD-ROM의 HD 무비 모드에 있어서의 무비 오브젝트는, 파일 「scenario.hdmv」에 저장된다.
파일 「entrylist.data」는, 시나리오 내의 첫머리 탐색 점(타이틀 엔트리), 메뉴를 구성하는 플레이 리스트나 플레이 리스트군에의 엔트리 포인트 등의 메뉴에 관한 정보가 저장된다. 또한, 도 3A 및 도 3B를 이용하여 설명한, BD-ROM의 HD 무비 모드에 있어서의 인덱스 테이블은, 파일「entrylist.data」에 저장된다.
디렉토리 「PLAYLIST」는, 플레이 리스트가 저장된다. 하나의 플레이 리스트는, 하나의 파일「*****.mpls」에 저장된다. 클립 AV 스트림 상의 마크 위치를 나타내는 정보는, 해당 클립 AV 스트림의 재생 범위를 지정한 플레이 리스트 파일 「*****.mp1s」에 저장된다.
디렉토리 「CLIPINF」는, 클립 인포메이션 파일 「#####.clpi」이 저장된다. 디렉토리 「STREAM」은, 클립 AV 스트림 파일 「%%%%%.m2ts」가 저장된다. 클립 인포메이션 파일과, 대응하는 클립 AV 스트림 파일에 대해, 상호 관련한 파일명을 부여함으로써, 이들 파일의 관련 지움이 용이해진다. 예를 들면, 클립 인포메이션 파일과, 대응하는 클립 AV 스트림 파일에 있어서, 확장자보다 앞의 부분 「#####」와 「%%%%%」를 동일하게 한다.
또한, 도시하지 않았으나, Java 프로그램을 구성하는 Java 클래스 파일은, 예를 들면 디렉토리(BDMV)의 아래에 설정된 소정의 디렉토리에 저장된다. 이에 한하지 않고, 예를 들면 루트 디렉토리의 아래에 디렉토리(BDMV)와 동 계층에 설정된 디렉토리에 저장하도록 하여도 된다.
1-6. 디코더 모델에 대하여
다음으로, 본 발명의 실시의 제1 형태에 적용 가능한 플레이어 디코더(100)에 대해 설명한다. 도 28A, 도 28B 및 도 28C는, 본 발명의 실시의 제1 형태에 적용 가능한 플레이어 디코더(100)의 일례의 구성을 도시한 기능 블록도이다. 이 플레이어 디코더(100)는, 도시되지 않은 드라이브 장치에 장전된 디스크로부터 재생된 데이터를 해석하고, 콘텐츠를 구성하는 AV(Audio/Video) 스트림을 출력함과 아울러, 출력된 AV 스트림에 대한 유저에 의한 인터랙티브한 조작을 가능하게 한다.
또한, 플레이어 디코더(100)는, 도시되지 않는 CPU에 의해 전체 동작이 제어된다. 예를 들면, 플레이어 디코더(100)의 각 부에 있어서의 스트림이나 데이터의 흐름은, CPU에 의해 감시되고, 제어된다.
도시되지 않은 드라이브 장치에 디스크가 장전되면, BD-ROM의 HD 무비 모드에 있어서는, 우선 플레이 리스트의 재생 순서를 지정한 파일 「scenario.hdmv」와, 메뉴나 타이틀을 구성하는 플레이 리스트군의 선두 플레이 리스트를 가리키는 파일 「entrylist.data」가 재생되고, 이 파일 「scenario.hdmv」 및 파일 「entrylist.data」의 기술에 기초하여, 필요한 다른 파일이 판독되고, 디스크에 기록된 콘텐츠가 재생된다.
예를 들면, 파일 「scenario.hdmv」 및 파일 「entrylist.data」의 기술에 기초하여, 비디오 플레인(134) 및 제2 비디오 플레인(160)에 표시하기 위한 동화상 데이터, 그래픽스 플레인 A(132)이나 그래픽스 플레인 B(133), 제2 비디오 플레인(160)에 표시하기 위한 화상 데이터, 플레이 리스트 파일 등이 디스크로부터 판독 된다. 풀 프로파일에 있어서는, 프로그램을 저장한 파일이 판독되어, 실행된다.
이하에서는, 디스크로부터 판독되는 이들 데이터 중, 동화상 데이터, 서브픽쳐(자막 데이터)나 음성 데이터라고 하는, 연속적으로 처리할 필요가 있는 스트림을 리얼타임 스트림이라 칭한다. 또한, 시나리오 파일, 플레이 리스트 파일, 스크립트 파일 및 프로그램 파일, 그리고 일부의 동화상, 정지 화상 및 사운드 데이터라고 하는, 연속적인 처리를 요구받지 않는 비리얼타임의 데이터를, 스토어 오브젝트라 칭한다. 스토어 오브젝트는, 메모리 상 등에 축적, 전개되어, 필요에 따라 처리된다.
플레이어 디코더(100)는, 채널 (1) 및 (2)의 2계통의 입력 채널을 갖고, 입력 채널(1)의 입력단(101)에 스토어 오브젝트가 입력된다. 입력 채널(2)의 입력단(202)에 리얼타임 스트림이 입력된다. 입력단(202)에 스토어 오브젝트를 입력하는 것도 가능하다. 이 실시의 제1 및 제2 형태에서는, 입력단(202)에 입력되는 리얼타임 스트림 및 일부의 스토어 오브젝트는, 예를 들면 MPEG2 TS(Moving Pictures Experts Group 2 Transport Stream)이다.
또한, 입력단(202)에 입력되는 리얼타임 스트림은, MPEG2 TS에 한정되지 않는다. 패킷 단위로 전송되어, 비디오 데이터, 오디오 데이터, 정지 화상 데이터 등을 다중화 가능하면, 다른 형식의 스트림을 입력하도록 하여도 된다. 이 때에는, 후술하는 PID 필터(110)는, 그 스트림 형식에 적합한 디멀티플렉서로서 이용되어, 비디오 데이터, 오디오 데이터, 정지 화상 데이터 등을 분리한다.
또한, 예를 들면, 드라이브 장치에 있어서 디스크의 회전 속도를 2배속 등의 고속 회전으로 하여 디스크로부터의 판독 전송 레이트를 올리고, 시분할로 동작시킴으로써, 디스크로부터의, 채널 (1) 및 (2)의 2계통의 판독이 실현 가능하다.
우선, 입력 채널 (1)의 계통에 대해 설명한다. 입력단(101)에 입력된 스토어 오브젝트는, 스위치 회로(102)에 입력된다. 스토어 오브젝트로서 Java 파일이나, ECMA(European Computer Manufacturers Association) 스크립트, HTML(Hyper Text Markup Language) 파일 (또는 XHTML 파일) 등에 의한 프로그램 코드가 입력된 경우, 스위치 회로(102)에 있어서 출력단(102A)이 선택되고, 입력된 프로그램 코드가 코드 버퍼(104)에 저장된다.
한편, 스토어 오브젝트로서 화상 데이터가 입력된 경우, 스위치 회로(102)에 있어서 출력단(102B)이 선택되고, 입력된 화상 데이터가 스위치 회로(103)에 입력된다. 입력단(202)에 입력된 리얼타임 스트림에, 그래픽스 플레인 A(l32)이나 그래픽스 플레인 B(133)에 표시하기 위한 화상 데이터가 포함되어 있지 않은 경우에는, 스위치 회로(103)로 입력단(103A)이 선택되고, 스위치 회로(102)로부터 입력된 화상 데이터가 콘텐츠 버퍼(105)에 저장된다.
마찬가지로 하여, 입력단(202)에 입력된 리얼타임 스트림에, 그래픽스 플레인 A(132)나 그래픽스 플레인 B(133)에 표시하기 위한 화상 데이터가 포함되어 있는 경우에는, 스위치 회로(103)에 있어서 입력단(103B)가 선택되고, 해당 화상 데이터가 콘텐츠 버퍼(105)에 저장된다. 코드 버퍼(104) 및 콘텐츠 버퍼(105)에 저장된 스토어 오브젝트는, 필요에 따라 판독되어 멀티미디어 엔진(106)에 공급된다.
콘텐츠 버퍼(105)에 저장된 스토어 오브젝트 중 화상 데이터는, 스위치 회로 (107 및 108)를 각각 통해, 그래픽스 디코더 A(116) 및 그래픽스 디코더 B(117)에도 공급된다.
멀티미디어 엔진(106)은, XML 파서(106A), 프로그램/스크립트 인터프리터(106B) 및 그래픽스 렌더러(106C)를 포함한다. 멀티미디어 엔진(106)은, 추가로 사운드 플레이어(106D)를 가지며 오디오 데이터의 취급을 가능하게 하고 있다. 멀티미디어 엔진(106)은, 독립적인 하드웨어로 구성해도 되고, 전술한 도시되지 않은 CPU의, 소정 프로그램에 기초한 처리로 실현하는 것도 가능하다.
XML 파서(106A)는, XML(Extensible Markup Language) 문서를 해석하는 기능을 갖고, HTML 문서나 XHTML 문서의 해석도 가능하다. XML 파서(106A)로 해석된 HTML 문서나 XHTML 문서는, 이 플레이어 디코더(100)로 실행 가능한 형식으로 변환된다. 프로그램/스크립트 인터프리터(106B)는, Java(등록 상표) 프로그램이나 ECMA 스크립트 등을 해석하고, 이 플레이어 디코더(100)로 실행 가능한 형식으로 변환된다. 또한, 그래픽스 렌더러(106C)는, 화상 데이터를 자막 플레인(11) 및 그래픽스 플레인(12)에 전개 가능한 형식에 디코드한다.
멀티미디어 엔진(106)에 있어서, 버퍼(109)를 워크 메모리로 하여, 이들 XML 파서(106A), 프로그램/스크립트 인터프리터(106B) 및 그래픽스 렌더러(106C)의 처리가 행해진다. 예를 들면, XML 파서(106A) 및 프로그램/스크립트 인터프리터(106B)에 의해, 버퍼(109) 중 코드 버퍼(109A)가 이용된다. 또한, 그래픽스 렌더러(106C)에 의해, 버퍼(109) 중 그래픽스 버퍼(109D)가 이용된다. 버퍼(109)는, 전술한 코드 버퍼(109A) 및 그래픽스 버퍼(109D) 외에 문자열의 표시에 이용하는 폰트 데이터가 저장되는 폰트 버퍼(109B), XML 파서(106A)로 HTML 문서를 해석한 결과를 계층화된 트리 구조로 보유하기 위한 트리 버퍼(109C), 사운드 플레이어(106D)에서 이용하는 오디오 데이터가 저장되는 사운드 버퍼(109E) 등이 포함된다.
멀티미디어 엔진(106)에서는, 필요에 따라 코드 버퍼(104)에 저장된 Java 프로그램의 판독, 콘텐츠 버퍼(105)로부터의 화상 데이터의 판독 등을 행한다. 코드 버퍼(104) 및 콘텐츠 버퍼(105)에 저장된 데이터는, 해당 데이터가 불필요하게 될 때까지, 코드 버퍼(104)나 콘텐츠 버퍼(105)에 보유해 둘 수 있다. 따라서, 이들 코드 버퍼(104)나 콘텐츠 버퍼(105)에 저장된 데이터는, 필요에 따라 몇 번이라도 판독하여 사용할 수 있다.
멀티미디어 엔진(106)에서는, 전술한 것 외에도, 예를 들면 코드 버퍼(104)에 저장된 ECMA 스크립트를 판독하고, 실행할 수 있다. 또한, 판독된 ECMA 스크립트의 기술에 기초하여, 필요에 따라 코드 버퍼(104)로부터 다른 ECMA 스크립트나 HTML 문서(또는 XHTML 문서)를 판독하여 실행할 수 있다.
또한, 멀티미디어 엔진(106)에 의해, 유저로부터의, 리모트 컨트롤 커맨더나 포인팅 디바이스 등에 의한 입력이 수취되고, 소정으로 처리된다. 유저 입력은, 또한, 후술하는 그래픽스 디코더 A(116), 그래픽스 디코더 B(117), 오디오 디코더(118), MPEG 비디오 디코더(120) 및 시스템 디코더(121)에도 공급된다.
그래픽스 렌더러(106C)로 처리된 화상 데이터는, 스위치 회로(130 및 131)를 각각 통해 그래픽스 플레인 A(132) 및 그래픽스 플레인 B(133)에 공급된다. 또한, 이 예에서는, 그래픽스 플레인 A(132) 및 그래픽스 플레인 B(133)에 공급되는 화상 데이터로서, PNG 형식, 런 렝스 형식, JPEG 형식 등을 들 수 있지만 특히 규정하지 않는다. 이들 각 플레인(132, 133)에 화상 데이터가 공급되는 타이밍은, 멀티미디어 엔진(106)에 의해 제어된다.
멀티미디어 엔진(106)은, 또한 후술하는 프레젠테이션 프로세서(155)에 대해, 비디오 플레인(134), 제2 비디오 플레인(160), 그래픽스 플레인 A(132) 및 그래픽스 플레인 B(133)의 전환, 알파 합성 등을 지시하는 제어 신호를 공급한다. 마찬가지로, 멀티미디어 엔진(106)은 후술하는 프레젠테이션 프로세서(157)에 대해, 오디오 스트림 출력을 제어하는 것 같은 제어 신호를 공급한다.
멀티미디어 엔진(106)에서는, 예를 들면 도시되지 않은 ROM(Read Only Memory) 등에 미리 저장된 Java 프로그램을 판독하고, 오브젝트 BDBasicPlayer를 멀티미디어 엔진(106) 상에 구축한다. 또한, 멀티미디어 엔진(106)에서는, 코드 버퍼(104)에 저장된 Java 프로그램을 판독한다. 코드 버퍼(104)로부터 판독된 Java 프로그램에 의해 구성되는 오브젝트로부터 오브젝트 BDBasicPlayer에 대해, 필요에 따라 이벤트 리스너 등록이 행해진다.
도 15를 이용하여 설명한 바와 같이, 멀티미디어 엔진(106) 상에서, 예를 들면 유저 입력에 부합하여, 코드 버퍼(104)로부터 판독된 Java 프로그램에 의한 오브젝트에 대해, 오브젝트 BDBasicPlayer로부터 이벤트 송신이 이루어지고, 해당 오브젝트에 있어서 대응하는 메소드가 실행된다. 또한, 오브젝트 BDBasicPlayer는, 플레이어 디코더(1OO)의 상태의 변화를 검출하고, 소정의 변화가 검출되면, 대응하는 이벤트를 발생시킨다. 멀티미디어 엔진(106)은, 이와 같이 하여 발생된 이벤트 에 부합한 메소드 등에 의해, 도시되지 않은 드라이브 장치나, 이 플레이어 디코더(100)의 각 부를 제어하고, 디스크의 재생 제어를 행하는 것으로 된다.
다음으로, 입력 채널 (2)의 계통에 대해 설명한다. 입력단(202)에 MPEG2 TS로 입력된 리얼타임 스트림은, PID 필터(110)에 공급되고, MPEG2 TS의 트랜스포트 패킷에 저장되는 PID(Packet Identification)가 추출되고, 해당 트랜스포트 패킷에 저장되는 스트림의 속성이 검출된다. PID 필터(110)에서는, 이 스트림 속성에 기초하여, 입력된 리얼타임 스트림이, 트랜스포트 패킷마다 대응하는 계통에 분류된다.
PID에 기초하여, 트랜스포트 패킷이 스토어 오브젝트에 속하는 화상 데이터가 저장되어 있는 패킷으로 되면, 해당 트랜스포트 패킷은, 버퍼 TBn(111A)에 일단 저장되고, 소정의 타이밍에서 판독되어 입력단(103B)이 선택된 스위치 회로(103)에 입력되고, 스위치 회로(103)를 통해 콘텐츠 버퍼(105)에 저장된다.
PID 필터(110)에 있어서, PID에 기초하여, 트랜스포트 패킷이 자막 데이터가 저장되어 있는 패킷으로 되면, 해당 트랜스포트 패킷은, 버퍼 TBn(11lB) 및 버퍼 Bn(112B)에 일단 저장되고, 소정의 타이밍에서 판독되어 입력단(107B)이 선택된 스위치 회로(107)에 입력되고, 스위치 회로(107)를 통해 그래픽스 디코더 A(116)에 공급된다.
그래픽스 디코더 A(116)에서는, 공급된 트랜스포트 패킷의 헤더 정보를 제거함과 아울러, 해당 트랜스포트 패킷에 저장된 자막 데이터가 디코드되어 자막 등을 표시하기 위한 화상 데이터로 된다. 이 화상 데이터는, 소정의 타이밍에서 스위치 회로(130)의 입력단(130B)에 입력되고, 스위치 회로(130)를 통해 그래픽스 플레인 A(132)에 전개된다. 또한, 스위치 회로(131)를 통해 그래픽스 플레인 B(133)에도 전개시키는 것이 가능하다.
PID 필터(110)에 있어서, PID에 기초하여 트랜스포트 패킷이 그래픽스 데이터가 저장되어 있는 패킷으로 되면, 해당 트랜스포트 패킷은, 버퍼 TBn(lllC) 및 버퍼 Bn(112C)에 일단 저장되고, 소정의 타이밍에서 판독되어 입력단(108B)이 선택된 스위치 회로(108)에 입력되고, 스위치 회로(108)를 통해 그래픽스 디코더 B(117)에 공급된다.
그래픽스 디코더B(117)에서는, 공급된 트랜스포트 패킷의 헤더 정보를 제거함과 아울러, 해당 트랜스포트 패킷에 저장된 그래픽스 데이터가 디코드되어 그래픽스 데이터로 된다. 이 화상 데이터는, 소정의 타이밍에서 스위치 회로(131)의 입력단(131B)에 입력되고, 스위치 회로(131)를 통해 그래픽스 플레인 B(133)에 전개된다. 또한, 스위치 회로(130)를 통해 그래픽스 플레인 A(132)에도 전개시키는 것이 가능하다.
또한, 그래픽스 디코더 A(116)와 그래픽스 디코더 B(117)에는, 기능적인 차이는 없다. 즉, 모델상, 독립하여 동작하는 그래픽스 디코더가 2계통 있는 것을 나타내고 있다. 즉, 자막 데이터와 그래픽스 데이터를 각각 독립적으로 디코드할 수 있는 것을 상정하고 있다. 실장에 있어서는, 1계통의 고속 그래픽스 디코더를 시분할로 사용하고, 가상적으로 2계통의 그래픽스 디코더가 존재하고 있다고 간주하는 방법도 있다.
PID 필터(110)에 있어서, PID에 기초하여, 트랜스포트 패킷이 오디오 데이터가 저장되어 있는 패킷으로 되면, 해당 트랜스포트 패킷은, 버퍼 TBn(111D) 및 버퍼 Bn(112D)에 저장되고, 소정의 타이밍에서 판독되어 오디오 디코더(118)에 공급된다. 이 트랜스포트 패킷에 저장되는 오디오 데이터는, 예를 들면 MPEG에 준거한 방식으로 압축 부호화되어 있다.
오디오 디코더(118)는, 예를 들면 리니어 PCM(Pulse Code Modulation) 오디오 디코더(119)도 갖는다. 오디오 디코더(118)는, 입력된 트랜스포트 스트림의 헤더 정보를 제거함과 아울러, 해당 트랜스포트 패킷에 저장된 압축 부호화된 오디오 데이터를 리니어 PCM 오디오 데이터로 디코드한다.
오디오 디코더(118)로부터 출력된 리니어 PCM 오디오 데이터는, 오디오용 프레젠테이션 프로세서(157)에 입력되고, 멀티미디어 엔진(106)의 제어에 기초해서 소정의 음향 효과 등이 부가되어 출력단(158)에 도출된다.
PID 필터(110)에 있어서, PID에 기초하여, 트랜스포트 패킷이 동화상 데이터가 저장되어 있는 패킷으로 되면, 해당 트랜스포트 패킷은, 버퍼 TBn(111E), 버퍼 MBn(113) 및 버퍼 EBn(114)에 일단 저장되고, 소정의 타이밍에서 판독되어 MPEG 비디오 디코더(120)에 공급된다. 이 트랜스포트 패킷에 저장되는 동화상 데이터는, MPEG2 방식에 의해 압축 부호화되어 있다.
MPEG 비디오 디코더(120)에서는, 공급된 트랜스포트 패킷의 헤더 정보를 제거함과 아울러, 해당 트랜스포트 패킷에 저장된, MPEG2 방식으로 압축 부호화된 동화상 데이터를 기저 대역의 동화상 데이터로 디코드한다.
MPEG 디코더(120)로부터 출력된 동화상 데이터는, 스위치 회로(124)의 입력단(124A)에 입력된다. 스위치 회로(124)에 있어서, MPEG 비디오 디코더(120)로부터의 동화상 데이터와 멀티미디어 엔진(106)으로부터 출력된 동화상 데이터가 선택된다. 소정의 타이밍에서 선택된 동화상 데이터는, 스위치(123)에 입력된다. 스위치(123)에서는 전개할 곳의 비디오 플레인이 선택되고, 동화상 데이터는 비디오 플레인(134) 혹은 제2 비디오 플레인(160)에 전개된다.
PID 필터(110)에 있어서, PID에 기초하여 트랜스포트 패킷이 시스템 정보가 저장되어 있는 패킷으로 되면, 해당 트랜스포트 패킷은, 버퍼 TBn(111F) 및 Bsys(115)를 통해 시스템 디코더(121)에 공급된다. 시스템 디코더(121)에서는, 공급된 트랜스포트 패킷의 헤드 정보가 제거되고, 저장되어 있는 시스템 정보가 취출된다. 시스템 정보는, 예를 들면 도시되지 않은 CPU에 전달된다.
그래픽스 플레인 A(132) 상의 화상 데이터는, 팔레트(150)에 공급되어, 256색으로 이루어진 팔레트에 대해 인덱스에 의한 참조가 이루어지고, RGB 데이터가 출력됨과 아울러, 알파 블렌딩을 위한 파라미터인 불투명도 데이터(α1)가 추출된다. RGB 데이터는, RGB/YCbCr 변환 회로(151)에 의해 YCbCr 데이터로 변환되고, YCbCr 데이터 및 불투명도 데이터(α1)는, 프레젠테이션 프로세서(155)에 공급된다.
그래픽스 플레인 B(133) 상의 화상 데이터는, 팔레트(152)에 공급되어, 256색으로 이루어진 팔레트에 대해 인덱스에 의한 참조가 이루어지고, RGB 데이터가 출력됨과 아울러, 불투명도 데이터(α2)가 추출된다. RGB 데이터는, RGB/YCbCr 변 환 회로(153)에 의해 YCbCr 데이터로 변환되고, YCbCr 데이터 및 불투명도 데이터(α2)는, 프레젠테이션 프로세서(155)에 공급된다.
비디오 플레인(134)의 출력은, 업/다운 컨버터(154)를 통해 프레젠테이션 프로세서(155)에 공급된다. 마찬가지로, 제2 비디오 플레인(160)의 출력은, 업/다운 컨버터(161)를 통해 프레젠테이션 프로세서(155)에 공급된다.
또한, 업/다운 컨버터(154)는, 화상의 해상도를 변환하는 회로로서, 예를 들면 고해상도의 HD(High Definition) 화상으로부터 통상의 해상도를 갖는 SD(Standard Definition) 화상에의 변환을 행한다.
프레젠테이션 프로세서(155)는, 그래픽스 플레인 A(132)의 화상 데이터에 의한 불투명도(α1)와, 그래픽스 플레인 B(133)에 의한 불투명도(α2)를 이용한 알파 블렌딩 처리를 행한다. 또한, 프레젠테이션 프로세서(155)에서는, 비디오 플레인(134) 및 제2 비디오 플레인(160)의 출력을 화소 단위로 전환하여, 전술한 픽처 인 픽처 기능이나 벽지 표시 기능 등을 실현한다.
즉, 프레젠테이션 프로세서(155)에서는, 비디오 플레인(134)과 제2 비디오 플레인(160)의 화상 데이터를 도시되지 않은 스위치로 전환하여 하나의 화상 데이터를 구성하고, 그 화상 데이터에 대해, 그래픽스 플레인 A(132)의 화상 데이터에 설정된 불투명도(α1)에 기초하여, 그래픽스 플레인 A(132)의 화상 데이터가 합성된다. 또한, 비디오 플레인과 그래픽스 플레인 A(132)가 합성된 화상 데이터에 대해, 그래픽스 플레인 B(l33)의 화상 데이터에 설정된 불투명도(α2)에 기초하여, 그래픽스 플레인 B(133)의 화상 데이터가 합성된다. 이 그래픽스 플레인 B(133)의 화상 데이터, 그래픽스 플레인 A(132)의 화상 데이터(자막 데이터), 그리고 비디오 플레인(134), 제2 비디오 플레인(160)의 화상 데이터가 합성된 화상 데이터가 출력단(156)에 도출된다.
또한, 프레젠테이션 프로세서(155)는, 화상 데이터에 대해 리얼타임으로 이펙트 처리를 행할 수도 있다.
전술에서는, 플레이어 디코더(100)의 각 부가 하드웨어로 구성되도록 설명했지만, 이는 이 예에 한정되지 않는다. 예를 들면, 플레이어 디코더(100)를 소프트웨어 상의 처리로서 실현하는 것도 가능하다. 이 경우, 플레이어 디코더(100)를 컴퓨터 장치 상에서 동작시킬 수 있다. 또한, 플레이어 디코더(100)를 하드웨어 및 소프트웨어가 혼합된 구성으로 실현할 수도 있다. 예를 들면, 오디오 디코더(118)나 MPEG 비디오 디코더(120)를 하드웨어로 구성하고, 그 외의 것을 소프트웨어로 구성하는 것을 생각할 수 있다.
플레이어 디코더(100)를 소프트웨어만, 또는 하드웨어 및 소프트웨어의 혼합에 의해 구성하고, 컴퓨터 장치에서 실행시키기 위한 프로그램은, 예를 들면 CD-R0M(Compact Disc-Read 0nly Memory)이라고 하는 기록 매체에 기록되어 제공된다. 이 CD-ROM을 컴퓨터 장치의 CD-ROM 드라이브에 장전하고, CD-ROM에 기록된 프로그램을 소정으로 컴퓨터 장치에 인스톨함으로써, 전술한 처리를 컴퓨터 장치 상에서 실행 가능한 상태로 할 수 있다. 또한, 컴퓨터 장치의 구성은, 매우 주지이기 때문에, 설명은 생략한다.
2. 발명의 실시의 제2 형태
다음으로, 본 발명의 실시의 제2 형태에 대해 설명한다. 이 실시의 제2 형태는, ECMA 스크립트라고 불리는 스크립트 언어를 이용하여 플레이어 모델을 기술하는 예이다. ECMA 스크립트는, ECMA(European Computer Manufacturers Association)에 의해 정해진, JavaScript(등록 상표)에 기초한 크로스 플랫폼용 스크립트 언어이다. ECMA 스크립트는, HTML 문서와의 친화성이 높은 것과, 독자적인 오브젝트의 정의가 가능하기 때문에, 본 발명에 의한 플레이어 모델에 이용하기에 적합하다.
또한, 도 28A, 도 28B 및 도 28C를 이용하여 이미 설명한 바와 같이, 플레이어 디코더(100)는, 멀티미디어 엔진(106)에 있어서 ECMA 스크립트의 해석이나 실행이 가능하기 때문에, 이 실시의 제2 형태에도 그대로 적용할 수 있다.
또한, 이하에서는, 이 ECMA 스크립트를 바탕으로 한 스크립트 언어를 이용한, 본 발명의 실시의 제2 형태에 기초하는 규격을, UMD(Universal Media Disc:등록 상표) 비디오 규격이라고 부른다. 또한, UMD 비디오 규격 중, 특히 스크립트에 관한 부분을 UMD 비디오 스크립트 규격이라고 부른다.
2-1. UMD 비디오 규격에 대하여
우선, 이해를 쉽게 하기 위해, 이 실시의 제2 형태에 적용 가능한 UMD 비디오 규격에 대해 개략적으로 설명한다. 도 29는, UMD 비디오 규격의 레이어 구성을 도시한다. 이 도 29는, 실시의 제1 형태에서 설명한 도 1에 대응하는 것이다. UMD 비디오 규격에서는, 스크립트 레이어, 플레이 리스트 레이어 및 클립 레이어의 3층의 레이어 구조가 정의되고, 이 구조에 기초하여 스트림 관리가 이루어진다.
UMD 비디오 규격에 있어서는, 디지털 부호화된 비디오, 오디오 및 자막을, MPEG2(Moving Pictures Experts Group 2)의 엘리멘터리 스트림으로서 다중화한 MPEG2 스트림으로서 취급한다. 이 비디오, 오디오 및 자막의 엘리멘터리 스트림이 다중화된 MPEG2 스트림을, 클립 AV 스트림(Clip AV Stream)이라고 부른다. 클립 AV 스트림은, 클립 AV 스트림 파일에 저장된다. 클립 AV 스트림 파일의 기록시에, 해당 클립 AV 스트림 파일에 1대1로 대응하여, 클립 인포메이션 파일(Clip Information File)이 동시에 작성된다. 이들 클립 인포메이션 파일과, 대응하는 클립 AV 스트림 파일로 이루어지는 세트를, 클립(Clip)이라고 부른다.
클립은, 디스크에의 기록의 단위라고도 할 수 있는 것으로서, 재생시에 어떠한 순서로 클립을 재생할지는, 클립의 상위 레이어인 플레이 리스트 레이어에서 관리한다. 플레이 리스트 레이어는, 클립의 재생 경로를 지정하는 레이어로서, 1 또는 복수의 플레이 리스트(Play List)를 포함한다. 플레이 리스트는, 플레이 아이템(Play Item)의 집합으로 이루어진다. 플레이 아이템에는, 클립의 재생 범위를 나타낸 1세트의 인(In)점 및 아웃(Out)점이 포함되어 있고, 플레이 아이템을 늘어 놓음으로써, 임의의 순서로 클립을 재생할 수 있게 된다. 플레이 아이템은, 클립을 중복하여 지정할 수 있다. 클립 AV 스트림 파일의 인점 및 아웃점은, 타임 스탬프(클립내 시각)로 지정되고, 타임 스탬프는 클립 인포메이션 파일의 정보에 의해 클립 AV 스트림 파일 상의 바이트 위치로 변환된다.
플레이 리스트는, 클립의 전부 또는 일부를 가리키는 플레이 아이템을 순서에 따라 재생해 가는 구조만을 갖고 있고, 플레이 리스트만을 이용하여 재생순의 분기나, 유저와의 쌍방향성을 실현하는 것은 불가능하다.
스크립트 레이어는, 언어 사양의 ECMA 스크립트를 확장한, UMD 비디오 스크립트에 의해 구축되는 레이어이다. UMD 비디오 스크립트는, ECMA 스크립트를 기본으로 하여, UMD 비디오에 특유한 기능을 실현하기 위한 확장을 가한 스크립트이다.
스크립트 레이어는, 플레이 리스트 레이어의 상위의 레이어로서, 플레이 리스트의 재생 지시나, 플레이어 설정을 행하는 커맨드 열로 구성된다. 스크립트 레이어의 커맨드에 의해, 복수의 언어용으로 준비된 스트림 중 어느 하나를 선택하는, 어떤 조건에 따라 선택되는 플레이 리스트에 재생의 흐름이 변화한다라고 하는, 조건 분기를 수반하는 플레이 리스트 재생을 실현할 수 있다. 이와 같은 조건 분기를 수반하는 플레이 리스트 재생이 이용되는 어플리케이션의 예로서는, 멀티스토리를 들 수 있다. 이 스크립트 레이어에 의해, 유저와의 쌍방향성 기능(인터랙티브 기능)이 도입되게 된다.
2-2. UMD 비디오 규격의 플레이어 모델에 대하여
다음으로, UMD 비디오 규격에 따른 데이터를 재생하는 재생 장치(플레이어)의 모델, 즉 플레이어 모델에 대해 설명한다. 플레이어는, 우선 디스크로부터 스크립트 프로그램, 플레이 리스트 및 클립 인포메이션 파일을 판독하고, 다음으로 이들에 의해 정해져 있는 재생 순서에 따라, 클립 AV 스트림 파일을 판독하여 비디오, 오디오 및 자막 등을 재생한다.
스크립트 프로그램의 언어 사양에 있어서는, 플레이 리스트를 재생하는 기능 블록을, 스크립트 프로그램 내의 오브젝트로서 실장한다. 이 플레이 리스트 재생 을 행하는 오브젝트를, UMD 비디오 규격에서는, 무비 플레이어(Movie Player) 오브젝트라고 부른다. 플레이 리스트의 재생 지시나, 플레이어 설정을 행하는 커맨드는, 이 무비 플레이어 오브젝트가 갖는 메소드로 된다. 무비 플레이어 오브젝트는, 스크립트 레이어로부터의 메소드에 의해 제어된다. 이때, 무비 플레이어 오브젝트로부터 스크립트 레이어에 대해, 상태의 변화나 재생 위치 등을 통지하는 기능이 필요해진다. 이는 무비 플레이어 오브젝트가 스크립트 프로그램에 대해 이벤트를 발하는 것에 대응하고, 그 이벤트에 대응한 처리는, 이벤트 핸들러로서 기술된다.
이와 같이, 무비 플레이어 오브젝트로부터 스크립트 프로그램에의 정보 전달은, 이벤트에 의해 행하고, 스크립트 프로그램으로부터 무비 플레이어 오브젝트에 대한 제어를 메소드에 의해 행하는 모델을 구축함으로써, 클립 AV 스트림의 재생을 스크립트 프로그램으로 제어할 수 있게 된다.
도 30은, 전술한 이 실시의 제2 형태에 의한 일례의 플레이어 모델을 모식적으로 도시한다. 무비 플레이어(300)는, UMD 비디오 규격에 있어서 비디오, 오디오 및 자막의 재생을 담당하는 모듈이다. 전술한 무비 플레이어 오브젝트는, 무비 오브젝트를 스크립트 프로그램으로부터 조작하기 위해 스크립트 프로그램 내의 오브젝트로 한 것이다. 바꾸어 말하면, 무비 플레이어 오브젝트는, 무비 플레이어의 기능을 실현하기 위한 스크립트 프로그램 그 자체이다.
또한, 무비 플레이어(300)와 무비 플레이어 오브젝트는, 실질적으로 동일한 대상을 나타낸다고 생각되기 때문에, 이하, 이들을 동일한 부호를 붙여 설명한다.
도 30에 있어서, 무비 플레이어(300)는, 유저 입력(310) 등에 의해 야기되는 하위 레이어(도 30의 예에서는 네이티브 실장 플랫폼(301))나, 상위 레이어인 스크립트 레이어(302)로부터의 메소드에 따라, 플레이 리스트 및 클립 인포메이션의 데이터 베이스에 기초하여, 클립 AV 스트림 파일의 판독, 판독된 클립 AV 스트림의 디코드 및 표시를 행한다.
무비 플레이어 오브젝트(300)의 내부는, UMD 비디오를 재생하는 UMD 비디오 플레이어의 실장에 의존하는 것으로서, 스크립트 레이어(302)로부터는, 블랙 박스화된 오브젝트로서 메소드나 프로퍼티라고 하는 API(Application Programming Interface)가 제공된다. 여기서, UMD 비디오 플레이어는, 무비 플레이어를 실장한 실제의 기기를 가리킨다. 모든 UMD 비디오 플레이어는, UMD 비디오 규격의 제약을 지켜 무비 플레이어를 실장하고 있어, 재생 호환을 갖는다.
도 30에 도시된 바와 같이, 무비 플레이어 오브젝트(300)는, 네이티브 실장 플랫폼(301)으로부터의 제어 커맨드(311)를 접수하는 패스, 스크립트 레이어(302)에 대해 이벤트(312)를 통지하는 패스, 스크립트 레이어(302)로부터의 메소드(313)를 접수하는 패스의, 3개의 입출력 패스를 갖는다.
제어 커맨드(311)는, 네이티브 실장의 플랫폼(301)으로부터의, 무비 플레이어 오브젝트(300)의 동작을 제어하는 커맨드이다. 네이티브 실장 플랫폼(301)은, 예를 들면, 실제 기기로서의 UMD 비디오 플레이어에 있어서의, 기기에 고유한 부분과 무비 플레이어(300)의 인터페이스이다. 이벤트(312)는, 무비 플레이어(300)로부터 스크립트 레이어(302)에 대한 스크립트 이벤트이다. 메소드(313)는, 스크립 트 레이어(30)의 스크립트 프로그램으로부터 무비 플레이어(300)에 전달되는 메소드이다.
무비 플레이어 오브젝트(300)는, 내부에, UMD 비디오 규격의 플레이 리스트 및 클립 인포메이션의 데이터 베이스(320)를 갖는다. 무비 플레이어 오브젝트(300)는, 이 데이터 베이스(320)를 이용하여, 유저 입력(310)에 대한 마스크나, 시각으로 지정된 재생 위치를 클립 AV 스트림 내의 바이트 위치로 변환하는 처리 등을 행한다.
무비 플레이어 오브젝트(300) 내의 플레이 백 모듈(321)은, 비디오, 오디오 및 자막이 다중된 MPEG2 PS(Program Stream)인 클립 AV 스트림의 디코드를 행한다. 플레이 백 모듈(321)은, 플레이, 스톱 및 포즈의 3상태를 갖고, 제어 명령이나 메소드에 의해, 이 3상태의 사이를 천이한다(도 31 참조).
스크립트 레이어(302)는, UMD 비디오스크립트 규격에 기초한 스크립트 프로그램을 실행하고, 무비 플레이어 오브젝트(300)의 제어나, 화면 표시를 행하는 레이어이다. 이 스크립트 레이어(302)는, 콘텐츠 제작자측이 의도한 시나리오를 실현하는 역할을 완수한다. 스크립트 레이어(302)는, 무비 플레이어 오브젝트(300)에 대해 메소드(313)를 발행하고, 무비 플레이어 오브젝트(300)로부터는 이벤트(312)를 수취한다. 스크립트 레이어(302)는, 네이티브 실장 플랫폼(301)과의 사이에서, 유저 입력(310)에 부합한 키 이벤트(314)나, 화면 묘화 등을 네이티브 실장 플랫폼(301)에 대해 지시하는 메소드(315) 등의 교환을 행한다.
예를 들면, 메뉴 화면 상에 배치되는 버튼은, 스크립트 레이어(302)의 스크 립트 프로그램으로부터 네이티브 실장 플랫폼(301)에 전달되는 메소드(315)에 기초하여, 네이티브 실장 플랫폼(301)에 의해 묘화된다. 유저가 그 버튼에 대해 선택 조작을 행했을 때에는, 유저 입력(310)에 따른 키 이벤트(314)가 네이티브 실장 플랫폼(301)으로부터 스크립트 레이어(302)에 통지되고, 스크립트 레이어(302) 내의 스크립트 프로그램은, 키 이벤트(314)에 기초하여 키 입력(310)에 부합한 처리를 행한다.
또한, 스크립트 프로그램과 스크립트 프로그램 내에서 사용하는 화상, 음성 등의 데이터는, 파일로서 디스크 상에 기록된다. 이 파일은, 도 25A 및 도 25B에서 설명한 파일 scenario.hdmv에 상당한다.
이와 같이, 비디오, 오디오 및 자막의 디코드나 표시 제어는 무비 플레이어(300)가 담당하고, 버튼 등의 GUI(Graphical User Interface)를 구성하기 위한 부품 화상의 배치나 표시, 그리고 GUI 부품에 대해 선택 조작이 이루어졌을 때의 처리는, 스크립트 레이어(302)가 행하는 것 같이, 역할 분담이 이루어져 있다.
네이티브 실장 플랫폼(301)은, 무비 플레이어 오브젝트(300)나 스크립트 프로그램이 동작하기 위한 기반으로 되는 플랫폼으로서, 예를 들면 실제의 UMD 비디오 플레이어가 하드웨어인 경우, 하드웨어와 플레이어 모델 사이의 처리를 중개하는 역할을 완수하도록, 하드웨어에 고유하게 실장된다.
예를 들면 네이티브 실장 플랫폼(301)은, 유저로부터의 유저 입력(310)을 접수하고, 접수한 유저 입력(310)이 무비 플레이어(300)에 대한 명령인지, 스크립트 레이어(302)로 묘화 및 표시하고 있는 버튼에 대한 명령인지를 판정한다. 네이티 브 실장 플랫폼(301)은, 유저 입력(310)이 무비 플레이어(300)에 대한 명령이라고 판정되면, 유저 입력(310)을 무비 플레이어(300)에 대한 내부 제어 명령인 제어 커맨드(311)로 변환하고, 무비 플레이어(300)에 대해 제어 명령을 발한다. 한편, 네이티브 실장 플랫폼(301)은, 유저 입력(310)이 스크립트 레이어(302)로 묘화 및 표시하고 있는 GUI 부품에 대한 명령이라고 판정되면, 유저 입력(310)에 부합한 키 이벤트(314)를 스크립트 레이어(302)에 통지한다.
다음으로,무비 플레이어(300)에 대해 더 상세하게 설명한다. 도 31은, 무비 플레이어(300)의 일례의 내부 구성을 도시한다. 전술한 바와 같이, 무비 플레이어(300)는, 데이터 베이스(320) 및 플레이 백 모듈(321)로 구성된다. 데이터 베이스(320)는, 디스크로부터 판독한 플레이 리스트의 정보와, 클립의 정보 즉 클립 인포메이션을 저장하는 영역이다.
플레이 백 모듈(321)은, 디코더 엔진(322)과, 플레이 백 모듈(321)의 상태를 나타내는 값인 프로퍼티(323)로 이루어진다. 프로퍼티(323)는, 예를 들면 언어 코드와 같이, 무비 플레이어(300)의 초기 설정으로 값이 결정되는 프로퍼티(323A)(리드 온리 파라미터)와, 플레이 백 모듈(321)의 상태에 따라 값이 변화하는 프로퍼티(323B)(플레이어 스테이터스)의 2종류가 있다.
초기 설정으로 값이 결정되는 프로퍼티(323A)는, 네이티브한 시스템, 예를 들면 실제 기기에 의해 값이 세팅되고, 플레이 리스트나 클립 인포메이션, 스크립트 프로그램으로부터 값이 변경되는 일이 없다. 프로퍼티(323A)는, 스크립트 프로그램으로부터 값을 판독하는 것만이 가능하게 된다. 한편, 플레이 백 모듈(321)의 상태를 나타내는 프로퍼티(323B)는, 스크립트 프로그램으로부터 값을 판독할 수 있음과 아울러, 일부의 스크립트 프로그램으로부터 값을 기입하는 것이 가능하게 된다.
또한, 이 동작 모델에 있어서는, 플레이 리스트 및 클립 인포메이션은, 클립 AV 스트림의 재생전에 디스크로부터 프리 로드되어 있는 것을 상정하고 있다. 이에 한하지 않고, 다른 실장이더라도, 무비 플레이어 모델로 정한 동작을 실현할 수 있으면 된다.
무비 플레이어 오브젝트(300)는, 스크립트 레이어(302) 또는 네이티브 실장 플랫폼(301)으로부터의 지시에 따라, 지정된 플레이 리스트를 재생한다. 예를 들면, 무비 플레이어(300)는, 데이터 베이스(320)를 참조하여, 지정된 플레이 리스트에 대응하는 클립 AV 스트림의 재생 위치를 파일 중의 바이트 위치에서 얻는다. 플레이 백 모듈(321)에 있어서, 디코더 엔진(322)은, 이 재생 위치 정보에 기초하여 클립 AV 스트림의 디코드를 제어한다.
무비 플레이어(300)는, 도 32에 나타낸 바와 같이, 플레이 리스트의 재생 상황에 부합하여 플레이(play), 스톱(Stop) 및 포즈(pause)의 3상태를 갖는다. 플레이 상태는, 플레이 리스트의 재생을 행하고 있고, 시간이 경과하고 있는 상태를 가리킨다. 통상 재생 외에 2배속, 1/2배속이라고 하는 변속 재생이나, 앞으로 감기 및 되감기(빨리 되돌리기)도 플레이 상태에 포함된다. 포즈 상태는, 플레이 리스트의 재생을 행하고 있는 상태에서, 시간 축이 정지하고 있는 상태이다. 재생을 프레임 단위로 진행시키거나 되돌리거나 하는 소위 코마 보내기 재생은, 포즈 상태 와 플레이 상태를 반복하고 있는 상태이다. 스톱 상태는, 플레이 리스트를 재생하지 않는 상태이다.
예를 들면, 무비 플레이어(300)의 상태는, 무비 플레이어(300) 내의 디코더 엔진(322)에 있어서의 플레이, 포즈 및 스톱의 상태 천이에 수반하는 것으로, 디코더 엔진(322)의 상태 천이에 부합하여 프로퍼티(323B)의 값이 갱신된다.
리줌 인포메이션은, 스톱 상태 직전의 상태를 기억한다. 예를 들면, 무비 플레이어(300)가 어떤 플레이 리스트를 디코드하여 플레이 상태로 되어 있을 때에, 상태가 스톱 상태로 천이하면, 스톱 상태의 직전 상태를 기억한다. 리줌 인포메이션은, 하드웨어로서의 플레이어가 갖는 불휘발성 메모리에, 디스크의 타이틀마다 식별 가능하도록 복수를 기억시킬 수 있다.
2-3. 무비 플레이어의 이벤트 모델에 대하여
무비 플레이어(300)의 이벤트 모델에 대해 설명한다. 무비 플레이어(300)는, 플레이 리스트를 재생하는 플레이 상태에서, 다양한 이벤트를 발생한다. 이 이벤트는, 이벤트 핸들러라고 불리는, 스크립트로 기술된 처리 프로그램의 실행을 야기한다. 이벤트 핸들러는, 이벤트 발생에 의해 호출되는 메소드이다. 이 이벤트 발생에 의해 처리 프로그램의 실행을 개시하는 프로그램 실행 모델을, 이벤트 드리븐 모델이라고 부른다. 이 실시의 제2 형태에 있어서는, 스크립트 프로그램은, 이벤트 핸들러군에 의해 무비 플레이어 오브젝트(300)의 동작을 제어한다.
도 33은, 본 발명의 실시의 제2 형태에 의한 무비 플레이어(300)의 이벤트 모델을 모식적으로 도시한다. 도 33에 있어서, 이벤트 핸들러 onEventA(), onEventB() 및 onEventC()는 인터페이스로서, 각각의 이벤트 핸들러의 내용은 스크립트로 기술되어 있다. 이벤트 핸들러의 내용은, 예를 들면 콘텐츠 제작자측에서 작성되어 실장된다. UMD 비디오 스크립트 규격에 있어서는, 무비 플레이어 오브젝트(300)로부터 스크립트 프로그램에 통지되는 이벤트마다, 이벤트 핸들러가 준비된다. 도 33의 예에서는, 이벤트 A가 발생했을 때에 실행되는 처리 프로그램은, 이벤트 핸들러 onEventA()에 정해져 있다. 이벤트 B 및 이벤트 C에 대해서도 마찬가지로, 이벤트 B의 발생시에는 대응하는 이벤트 핸들러 onEventB()가 실행되고, 이벤트 C의 발생시에는 대응하는 이벤트 핸들러 onEventC()가 실행된다.
이벤트 발생에 따라 호출되는 이벤트 핸들러는, 시스템측에서 선택되기 때문에, 콘텐츠 제작자측에서는 어떤 이벤트가 발생했는지를 판단하는 처리를, 스크립트 프로그램 내에 기술해 둘 필요가 없다.
이 실시의 제2 형태에 의한 이벤트 모델은, 실시의 제1 형태에서 도 15를 이용하여 이미 설명한, 이벤트 등록, 이벤트 등록 삭제라고 하는 처리가 필요한 이벤트 리스너의 모델보다 간단하다. 한편, 어떠한 이벤트가 발생해도 하나의 메소드 processEvent()를 호출하는 모델(도 20 참조)에서는, 어떤 이벤트가 발생했는지를 알고, 이벤트마다 준비되어 있는 처리 루틴을 전환한다는 전처리를, 메소드 processEvent() 중에 기술해 둘 필요가 있다. 메소드 processEvent()는, 콘텐츠 제작자측이 실장하는 것이기 때문에, 모델로서는 간단하더라도, 콘텐츠 제작자측의 부담이 커진다. 또한, 큰 하나의 처리 프로그램(메소드)이 이벤트의 발생마다 불려지게 되어, 메모리의 영역을 많이 점유하여 실행 속도도 느려진다고 생각된다. 본 발명의 실시의 제2 형태에 의한, 이벤트마다 처리 프로그램(이벤트 핸들러)을 준비하는 모델에서는, 이러한 점에 대해 유리하다고 할 수 있다.
2-4. 무비 플레이어 오브젝트(300)에 대하여
다음으로, 무비 플레이어 오브젝트(300)의 외부적인 사양에 대해 설명한다. 일반적으로, ECMA 스크립트 언어 사양에 따른 언어에 의해 정의된 오브젝트는, 프로퍼티와 메소드를 갖는다. 이 실시의 제2 형태에 의한 무비 플레이어 오브젝트(300)도, 도 31 및 도 32를 이용하여 이미 설명한 바와 같이, 마찬가지로 하여 프로퍼티와 메소드를 갖는다. 프로퍼티는, 외부의 오브젝트로부터, 대상으로 되는 오브젝트명과 프로퍼티명을 지정함으로써, 직접적으로 기입 및 판독하는 것이 가능하다. 이에 한하지 않고, 프로퍼티치의 설정을 행하는 메소드 setXXX()(「XXX」는, 대상의 프로퍼티명)나, 프로퍼티치의 판독을 행하는 메소드 getXXX()를 정의함으로써, 다른 오브젝트의 프로퍼티의 기입 및 판독을, 메소드로 행하는 것이 가능하게 된다.
이 실시의 제2 형태에 의한 무비 플레이어 오브젝트(300)의 프로퍼티 및 메소드는, 실시의 제1 형태에 있어서 도 7∼도 12를 이용하여 이미 설명한 프로퍼티 및 메소드와 동일한 사양을 적용할 수 있다. 즉, 이 실시의 제2 형태에 있어서, 스크립트 레이어(302)의 스크립트 프로그램과 무비 플레이어 오브젝트(300) 사이의 사양(API), 즉 도 30을 이용하여 설명한 메소드(313)는, 전술한 실시의 제1 형태에 있어서 Java에서 정의한 클래스와 마찬가지로 생각할 수 있다.
한편, 유저로부터의 키 입력에 대해서는, 도 30을 이용하여 이미 설명한 바 와 같이, 유저 입력(310)을 네이티브 실장 플랫폼(301)이 우선 수취한다. 즉, 네이티브 실장 플랫폼(301)은, 유저로부터의 키 입력을 유저 입력(310)으로서 수취하고, 유저 입력(310)이 무비 플레이어(300)에 대한 커맨드인지, 스크립트 레이어(302)의 스크립트 프로그램에 대한 이벤트인지를 판정하고, 판정 결과에 부합하여, 제어 커맨드(311) 또는 키 이벤트(314)를 발생하고, 대응하는 상위 레이어(무비 플레이어(300) 또는 스크립트 레이어(302))에 통지한다.
유저 입력(310)은, 예를 들면 도 24, 그리고 도 25A 및 도 25B를 이용하여 이미 설명한 키 입력이다. 여기서, 도 24에 나타낸 키 입력에 대응하는 기능과, 도 25A 및 도 25B 에 나타낸 키 입력에 대응하는 기능에서는, 역할이 상이하기 때문에, 통지처를 네이티브 실장 플랫폼(301)에서 분류할 필요가 있다.
도 24에 나타낸 키 입력에 의해, 비디오, 오디오 및 자막의 재생에 관한 지시가 이루어진다. 네이티브 실장 플랫폼(301)은, 유저 입력(310)으로서 도 24에 나타낸 키 입력을 수취하면, 수취한 키 입력을 도 21A, 도 21B, 도 21C 및 도 21D에서 설명한 바와 같은 커맨드로 변환한다. 변환된 커맨드는, 무비 플레이어(300)에 대한 제어 커맨드(311)로서 통지된다. 즉, 도 21A, 도 21B, 도 21C 및 도 21D를 이용하여 설명한 유저 입력 커맨드는, 도 30의 제어 커맨드(311)에 대응한다.
한편, 도 25A 및 도 25B 에 나타낸 키 입력은, GUI에 대한 유저 입력(310)이다. 네이티브 실장 플랫폼(301)은, 유저 입력(310)으로서 도 25A 및 도 25B에 나타낸 키 입력을 수취하면, 수취한 키 입력을 키 이벤트(314)로 변환하여 스크립트 레이어(302)에 통지한다.
또한, 전술한 도 25A 및 도 25B에는, 키 VK_ANGLE, 키 VK_PRESENTATION_ GRAPHICS, 키 VK_AUDIO라는, 스트림 전환에 관한 키 입력도 포함되어 있지만, 이들은, 스크립트 프로그램으로부터 무비 플레이어(300)에 대한 메소드로 실현되도록 하고 있기 때문에, 스크립트 레이어(302)에 전해질 키 입력이다.
2-5. 무비 플레이어 오브젝트(300)에서의 이벤트의 취급에 대하여
Java 언어를 이용한 전술한 실시의 제1 형태에서는, 도 14A, 도 14B 및 도 14C와 같은 이벤트를, 오브젝트 BDBasicPlayer가 갖는 것으로 하고 있었다. 그리고, 도 15에 도시된 바와 같은 이벤트 리스너 모델에 기초하여, 도 16A 및 도 16B를 이용하여 설명했던 것 같은 메소드로, 리스너의 등록이나 삭제를 행하도록 하고 있었다. 이 실시의 제1 형태에 의한 이벤트 리스너 모델에서는, 프로그램 실행중에 동적으로 리스너를 등록 및 삭제할 수 있도록 되고, 이벤트에의 응답 처리를 프로그램 도중에서 변경하는 것이 가능하다. 그 때문에, 더 자유도가 높고, 고도의 기능을 실현하는 프로그래밍이 가능하다.
한편, 이 실시의 제2 형태에 적용되는 ECMA 스크립트를 바탕으로 한 스크립트 언어에 있어서는, 리스너 등록 및 삭제를 행하는 것은 하지 않고, 이벤트에 부합하여, 미리 고정적으로 준비된 처리 프로그램이 호출되도록 하고 있다. 실시의 제1 형태에 있어서의 리스너에 대응하는 인터페이스는, 무비 플레이어 오브젝트(300)의 이벤트 핸들러이다. 이벤트 핸들러의 모델에서는, 도 16A 및 도 16B에 나타낸 바와 같은 리스너 등록에 관련한 메소드는 불필요해진다.
이 실시의 제2 형태에서는, 이벤트 각각에 대응하여, 도 34A 및 도 34B에 일 례를 나타낸 이벤트 핸들러가 설치된다. 이벤트 핸들러명은, 이벤트명의 선두에 「on」을 부가한 것이 된다. 이 도 34A 및 도 34B에 일례를 나타낸 이벤트 핸들러는, 전술한 실시의 제1 형태에 있어서 도 14A, 도 14B 및 도 14C를 이용하여 설명한 이벤트에 대응하는 것이다.
이벤트 핸들러 onTimerFired()는, 무비 플레이어(300)에 있어서의 카운트 다운 타이머의 값이 "0"으로 되었거나, 혹은 카운트 업 타이머의 값이 지정된 값으로 되었을 때에 발생되는 이벤트에 대응한다. 이에 의해, 어떤 타이밍에 있어서의 처리를 실현할 수 있다.
이벤트 핸들러 onPlayStopped()는, 무비 플레이어(300)에 있어서의 재생이 정지된(스톱) 때에 발생되는 이벤트에 대응한다. 이벤트핸들러 onPlayStilled()는, 무비 플레이어(300)에 있어서의 재생이 일시 정지된(포즈) 때에 발생되는 이벤트에 대응한다. 이벤트 핸들러 onPlayStarted()는, 무비 플레이어(300)에 있어서의 재생이 개시된(스타트) 때에 발생되는 이벤트에 대응한다. 이벤트 핸들러 onPlayRepeated()는, 무비 플레이어(300)에 있어서의 반복 재생시의 선두를 검출했을 때에 발생되는 이벤트에 대응한다. 이들에 의해, 디코더 엔진(322)의 상태에 따른 처리를 실현할 수 있다.
이벤트 핸들러 onSPDisplayStatusChanged()는, 무비 플레이어(300)에 있어서의 자막(서브픽쳐)의 스트림의 표시 및 비표시 상태가 변한 때에 발생되는 이벤트에 대응한다. 이벤트 핸들러 onSelectedAudioChanged()는, 무비 플레이어(300)에 있어서의 재생하는 오디오 스트림이 변한 때에 발생되는 이벤트에 대응한다. 이벤 트 핸들러 onVideoStopped()는, 무비 플레이어(300)에 있어서의 재생하는 비디오 스트림이 변한 때에 발생되는 이벤트에 대응한다. 이들에 의해, 재생되는 스트림의 변화에 부합한 처리를 실현할 수 있다.
이벤트 핸들러 onPlayListStarted()는, 무비 플레이어(300)에 있어서의 플레이 리스트의 선두를 검출했을 때에 발생되는 이벤트에 대응한다. 이벤트 핸들러 onPlayListEnded는, 무비 플레이어(300)에 있어서의 플레이 리스트의 끝을 검출했을 때에 발생되는 이벤트에 대응한다. 이벤트 핸들러 onPlayItemStarted()는, 무비 플레이어(300)에 있어서의 플레이 아이템의 선두를 검출했을 때에 발생되는 이벤트에 대응한다. 이벤트 핸들러 onPlayItemEnded()는, 무비 플레이어(300)에 있어서의 플레이 아이템의 끝을 검출했을 때에 발생되는 이벤트에 대응한다. 플레이 리스트나 플레이 아이템의 연속적인 재생 등, 플레이 리스트나 플레이 아이템의 재생 개시나 재생 종료에 따른 처리를 실현할 수 있다.
이벤트 핸들러 onMarkEncountered()는, 무비 플레이어(300)에 있어서의 재생 중에, 플레이 리스트 중의 마크를 검출했을 때에 발생되는 이벤트에 대응한다. 플레이 리스트 중에 어떤 시각을 나타내는 마크를 미리 설정해 둠으로써, 재생 중인 플레이 리스트에 있어서의 분기 처리 등을 실현할 수 있다.
이들 이벤트 핸들러의 내용은, 콘텐츠 제작자측이 스크립트 언어에 의해 기술한다. 이에 의해, 이벤트 발생시에 콘텐츠 제작자가 의도하는 동작을 실현할 수 있다.

Claims (26)

  1. 기록 매체에 계층 구조로 기록된 콘텐츠 데이터를 재생하는 재생 장치로서,
    소정의 변화에 부합하여 이벤트를 발생시키도록 구성된 플레이어 오브젝트와,
    상기 플레이어 오브젝트의 상위에 있으며, 상기 이벤트의 발생에 대응한 처리를 기술 가능하며, 상기 이벤트마다 독립한 오브젝트로서 구성되는 프로그램 오브젝트를 갖고,
    상기 플레이어 오브젝트는, 상기 프로그램 오브젝트에 기술된 상기 이벤트의 발생에 대응한 처리에 기초하여, 기록 매체에 계층 구조로 기록된 콘텐츠 데이터의 재생 처리를 제어하도록 한, 재생 장치.
  2. 제1항에 있어서,
    상기 프로그램 오브젝트는 상기 기록 매체로부터 재생되는 재생 장치.
  3. 제1항에 있어서,
    상기 프로그램 오브젝트가 상기 이벤트의 발생에 대응한 처리를 상기 플레이어 오브젝트에 등록함으로써, 해당 이벤트의 발생에 대응한 처리가 상기 플레이어 오브젝트에서 실행되는 재생 장치.
  4. 제3항에 있어서,
    상기 콘텐츠 데이터의 재생 중에 상기 등록을 수행가능하도록 한 재생 장치.
  5. 제3항에 있어서,
    상기 콘텐츠 데이터의 재생 중에, 상기 등록된 상기 처리를 삭제가능하도록 한 재생 장치.
  6. 제1항에 있어서,
    상기 소정의 변화는 상기 콘텐츠 데이터의 재생 중의 변화인 재생 장치.
  7. 제6항에 있어서,
    상기 소정의 변화는 상기 콘텐츠 데이터에 설정된 해당 콘텐츠 데이터 내의 시각을 나타내는 마크의, 재생 중의 검출인 재생 장치.
  8. 제1항에 있어서,
    유저의 입력을 접수하여 상기 플레이어 오브젝트에 통지하는 유저 입력 수단을 더 갖고,
    상기 소정의 변화는 상기 유저 입력 수단에 대한 입력에 기초하는 재생 장치.
  9. 제8항에 있어서,
    상기 유저 입력 수단의 물리 키에 대해 상기 프로그램 오브젝트에 의해 가상 키가 할당되고, 상기 소정의 변화는 상기 가상 키에 대한 입력에 기초하는 재생 장치.
  10. 제1항에 있어서,
    상기 소정의 변화는 플레이어의 상태 천이인 재생 장치.
  11. 제1항에 있어서,
    상기 이벤트에 기초하는 상기 변화에 부합하여, 1 또는 복수의 이벤트를 더 발생가능한 재생 장치.
  12. 제1항에 있어서,
    상기 재생 처리는, 상기 기록 매체로부터 상기 콘텐츠 데이터를 재생할 때의 재생 제어와, 상기 기록 매체로부터 재생된 상기 콘텐츠 데이터에 대한 처리를 포함하는 재생 장치.
  13. 기록 매체에 계층 구조로 기록된 콘텐츠 데이터를 재생하는 재생 방법으로서,
    소정의 변화에 부합하여 이벤트를 발생시키도록 구성된 플레이어 오브젝트에 의해, 상기 플레이어 오브젝트의 상위에 있으며, 상기 이벤트의 발생에 대응한 처리를 기술 가능하며, 상기 이벤트마다 독립한 오브젝트로서 구성되는 프로그램 오브젝트에 기술된 상기 이벤트의 발생에 대응한 처리에 기초하여, 기록 매체에 계층 구조로 기록된 콘텐츠 데이터의 재생 처리를 제어하도록 한, 재생 방법.
  14. 삭제
  15. 기록 매체에 계층 구조로 기록된 콘텐츠 데이터를 재생하는 재생 방법을 컴퓨터 장치에 실행시키는 재생 프로그램이 기록된 컴퓨터 장치에 판독 가능한 기록 매체로서,
    상기 재생 방법은,
    소정의 변화에 부합하여 이벤트를 발생시키도록 구성된 플레이어 오브젝트에 의해, 상기 플레이어 오브젝트의 상위에 있으며, 상기 이벤트의 발생에 대응한 처리를 기술 가능하며, 상기 이벤트마다 독립한 오브젝트로서 구성되는 프로그램 오브젝트에 기술된 상기 이벤트의 발생에 대응한 처리에 기초하여, 기록 매체에 계층 구조로 기록된 콘텐츠 데이터의 재생 처리를 제어하도록 한, 기록 매체.
  16. 재생 장치에 의해 재생되는 콘텐츠 데이터가 계층 구조로 기록된 기록 매체로서,
    적어도 콘텐츠 데이터와, 이벤트의 발생에 대응한 처리를 기술 가능하며 상기 이벤트마다 독립한 오브젝트로서 구성되는 프로그램 오브젝트가 기록되고,
    상기 프로그램 오브젝트를 재생 장치에서 판독시켜, 소정의 변화에 부합하여 이벤트를 발생시키도록 구성된, 상기 프로그램 오브젝트의 하위에 있는 플레이어 오브젝트로부터의 이벤트 발생에 대응한 처리를 구성함과 함께, 상기 콘텐츠 데이터의 재생 처리를, 상기 프로그램 오브젝트에 기술된 상기 이벤트의 발생에 대응한 처리에 기초하여 상기 플레이어 오브젝트에 제어시키도록 한, 기록 매체.
  17. 제16항에 있어서,
    상기 프로그램 오브젝트가 상기 이벤트의 발생에 대응한 처리를 상기 플레이어 오브젝트에 등록함으로써, 해당 이벤트의 발생에 대응한 처리가 상기 플레이어 오브젝트에서 실행되는 기록 매체.
  18. 제17항에 있어서,
    상기 프로그램 오브젝트는 상기 콘텐츠 데이터의 재생 중에 상기 등록을 수행가능하도록 한 기록 매체.
  19. 제17항에 있어서,
    상기 프로그램 오브젝트는, 상기 콘텐츠 데이터의 재생 중에, 상기 등록된 상기 처리를 삭제가능하도록 한 기록 매체.
  20. 제16항에 있어서,
    상기 소정의 변화는 상기 콘텐츠 데이터의 재생 중의 변화인 기록 매체.
  21. 제20항에 있어서,
    상기 소정의 변화는 상기 콘텐츠 데이터에 설정된, 해당 콘텐츠 데이터 내의 시각을 나타내는 마크에 기초하는 기록 매체.
  22. 제16항에 있어서,
    상기 소정의 변화는 유저 입력 수단에 대한 입력에 기초하는 기록 매체.
  23. 제22항에 있어서,
    상기 프로그램 오브젝트는, 입력에 기초하여 상기 소정의 변화를 발생시키는 가상 키를, 상기 유저 입력 수단의 물리 키에 대해 할당하는 기록 매체.
  24. 제16항에 있어서,
    상기 소정의 변화는 플레이어의 상태 천이인 기록 매체.
  25. 제16항에 있어서,
    상기 이벤트에 기초하는 상기 변화에 부합하여, 1 또는 복수의 이벤트를 더 발생가능한, 기록 매체.
  26. 제16항에 있어서,
    상기 재생 처리는, 상기 콘텐츠 데이터를 재생할 때의 재생 제어와, 재생된 상기 콘텐츠 데이터에 대한 처리를 포함하는, 기록 매체.
KR1020057013836A 2003-11-28 2004-08-19 재생 장치, 재생 방법 및 기록 매체 Expired - Fee Related KR101087316B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00399546 2003-11-28
JP2003399546 2003-11-28
PCT/JP2004/012243 WO2005052940A1 (ja) 2003-11-28 2004-08-19 再生装置、再生方法、再生プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
KR20060112194A KR20060112194A (ko) 2006-10-31
KR101087316B1 true KR101087316B1 (ko) 2011-11-25

Family

ID=34631609

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057013836A Expired - Fee Related KR101087316B1 (ko) 2003-11-28 2004-08-19 재생 장치, 재생 방법 및 기록 매체

Country Status (12)

Country Link
US (1) US7821881B2 (ko)
EP (1) EP1583098B1 (ko)
JP (1) JP4241731B2 (ko)
KR (1) KR101087316B1 (ko)
CN (2) CN103956176B (ko)
AU (1) AU2004293960A1 (ko)
BR (1) BRPI0407057A (ko)
ES (1) ES2650987T3 (ko)
MX (1) MXPA05007760A (ko)
NZ (1) NZ541096A (ko)
RU (1) RU2312412C2 (ko)
WO (1) WO2005052940A1 (ko)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100631243B1 (ko) * 2002-06-21 2006-10-02 엘지전자 주식회사 비디오 데이터의 재생을 관리하기 위한 데이터 구조를갖는 기록 매체
JP4299779B2 (ja) * 2002-06-21 2009-07-22 エルジー エレクトロニクス インコーポレーテッド ビデオデータの再生を管理するためのデータ構造を有する記録媒体
KR20040000290A (ko) 2002-06-24 2004-01-03 엘지전자 주식회사 고밀도 광디스크의 멀티 경로 데이터 스트림 관리방법
CN101350214B (zh) * 2002-06-24 2015-07-01 Lg电子株式会社 记录和再现用于视频数据的再现的数据结构的方法及装置
CN100576898C (zh) * 2003-06-30 2009-12-30 松下电器产业株式会社 记录方法、再现装置和方法
US7609939B2 (en) 2004-08-17 2009-10-27 Lg Electronics Inc. Method and apparatus of reproducing data recorded on recording medium and local storage
US7725010B2 (en) * 2004-08-17 2010-05-25 Lg Electronics, Inc. Method and apparatus of reproducing data recorded on recording medium and local storage
US7609945B2 (en) * 2004-08-17 2009-10-27 Lg Electronics Inc. Recording medium, and method and apparatus for reproducing data from the recording medium
US7613384B2 (en) * 2004-08-17 2009-11-03 Lg Electronics Inc. Method for configuring composite file structure for data reproduction, and method and apparatus for reproducing data using the composite file structure
EP1789958A4 (en) * 2004-09-13 2009-12-09 Lg Electronics Inc METHOD AND DEVICE FOR REPRODUCING DATA RECORDED IN A RECORDING MEDIUM USING A LOCAL STORAGE
WO2006031049A2 (en) * 2004-09-13 2006-03-23 Lg Electronics Inc. Method and apparatus for reproducing data from recording medium using local storage
US7599611B2 (en) * 2004-09-13 2009-10-06 Lg Electronics Co. Recording medium, and method and apparatus of reproducing data recorded on the same
US20060077817A1 (en) * 2004-09-13 2006-04-13 Seo Kang S Method and apparatus for reproducing data from recording medium using local storage
KR20060047549A (ko) * 2004-10-12 2006-05-18 엘지전자 주식회사 로컬 스토리지를 이용한 기록매체 재생방법 및 재생장치
US7783161B2 (en) * 2004-11-08 2010-08-24 Lg Electronics Inc. Method and apparatus for reproducing data from recording medium using local storage
KR20060063601A (ko) * 2004-12-03 2006-06-12 엘지전자 주식회사 로컬 스토리지에 데이터를 다운로드/업데이트 하는 방법 및장치
KR20060065476A (ko) * 2004-12-10 2006-06-14 엘지전자 주식회사 기록매체, 기록매체 내의 콘텐츠 서치방법 및 기록매체재생방법과 재생장치
KR20060081323A (ko) * 2005-01-07 2006-07-12 엘지전자 주식회사 로컬 스토리지를 이용한 기록매체 재생방법 및 재생장치
EP1836705B1 (en) * 2005-01-12 2012-05-16 Samsung Electronics Co., Ltd. Binding and reproducing data prerecorded on an optical storage medium such as blu-ray along with downloaded data
US8656268B2 (en) 2005-07-01 2014-02-18 Microsoft Corporation Queueing events in an interactive media environment
US20070006238A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Managing application states in an interactive media environment
US8020084B2 (en) * 2005-07-01 2011-09-13 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
US8305398B2 (en) * 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
US20070006079A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation State-based timing for interactive multimedia presentations
US7721308B2 (en) * 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US8799757B2 (en) * 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
KR20070014944A (ko) * 2005-07-29 2007-02-01 엘지전자 주식회사 데이터 재생방법 및 재생장치, 기록매체와 데이터 기록방법및 기록장치
KR20070014948A (ko) * 2005-07-29 2007-02-01 엘지전자 주식회사 기록매체, 데이터 재생방법 및 재생장치와 데이터 기록방법및 기록장치
KR20070014941A (ko) * 2005-07-29 2007-02-01 엘지전자 주식회사 기록매체, 데이터 재생방법 및 재생장치와 데이터 기록방법및 기록장치
KR20070014945A (ko) * 2005-07-29 2007-02-01 엘지전자 주식회사 기록매체, 데이터 재생방법 및 재생장치와 데이터 기록방법및 기록장치
AU2006277225B2 (en) 2005-08-09 2011-06-09 Panasonic Corporation Recording medium, playback apparatus, method and program
BRPI0615068A2 (pt) * 2005-08-22 2016-09-13 Lg Electronics Inc método para gerenciar reprodução de pelo menos um caminho de apresentação picture-in-picture, aparelho de reprodução, meio de gravação, aparelho para gerenciar reprodução, método para gravar estrutura de dados
EP1924993A4 (en) * 2005-08-22 2010-04-14 Lg Electronics Inc METHOD AND DEVICE FOR REPRODUCING DATA, RECORDING MEDIUM, AND METHOD AND DEVICE FOR RECORDING DATA
KR20070022580A (ko) * 2005-08-22 2007-02-27 엘지전자 주식회사 데이터 재생방법 및 재생장치, 기록매체와 데이터 기록방법및 기록장치
WO2007024078A1 (en) * 2005-08-22 2007-03-01 Lg Electronics Inc. Recording medium, method and apparatus for reproducing data, and method and apparatus for recording data
US20070041711A1 (en) * 2005-08-22 2007-02-22 Lg Electronics Apparatus for reproducing data, method thereof, apparatus for recording the same, method thereof and recording medium
KR20070052650A (ko) * 2005-11-17 2007-05-22 엘지전자 주식회사 기록매체 재생방법 및 재생장치, 기록매체와 기록매체기록방법 및 기록장치
EP1955329A1 (en) * 2005-11-23 2008-08-13 Koninklijke Philips Electronics N.V. Method and apparatus for playing video
JP4972933B2 (ja) * 2005-12-28 2012-07-11 ソニー株式会社 データ構造、記録装置、記録方法、記録プログラム、再生装置、再生方法および再生プログラム
US20090103902A1 (en) * 2006-03-24 2009-04-23 Matsushita Electric Industrial Co., Ltd. Reproduction device, debug device, system lsi, and program
US7855548B2 (en) * 2006-03-29 2010-12-21 Levinton Manufacturing Co., Inc. Low labor enclosure assembly
US20080056679A1 (en) * 2006-04-03 2008-03-06 Kim Kun S Recording medium, method and apparatus for reproducing data, and method and apparatus for recording data
JP4765733B2 (ja) * 2006-04-06 2011-09-07 ソニー株式会社 記録装置、記録方法および記録プログラム
JP4784371B2 (ja) * 2006-04-06 2011-10-05 ソニー株式会社 記録装置、記録方法および記録プログラム
US20080056678A1 (en) * 2006-04-18 2008-03-06 Kim Kun S Apparatus for reproducing data, method thereof, apparatus for recording the same, method thereof and recording medium
JP5087903B2 (ja) * 2006-06-30 2012-12-05 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
KR101292770B1 (ko) * 2006-11-06 2013-08-02 삼성전자주식회사 불확정 시작 시간을 가진 어플리케이션을 포함하는 av데이터의 재생 방법 및 장치
US7861150B2 (en) * 2006-11-07 2010-12-28 Microsoft Corporation Timing aspects of media content rendering
US20100166394A1 (en) * 2007-04-12 2010-07-01 Masayasu Ariyoshi Merchandise purchasing system, recording/reproducing apparatus, and computer program
JP5032408B2 (ja) * 2008-07-25 2012-09-26 パナソニック株式会社 簡易レジューム再生装置及び簡易レジューム再生方法
JP4915457B2 (ja) 2009-04-03 2012-04-11 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
JP4915456B2 (ja) 2009-04-03 2012-04-11 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
JP4919122B2 (ja) 2009-04-03 2012-04-18 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
US8718443B2 (en) * 2010-10-13 2014-05-06 Sony Corporation Implementing web browser in BD platform
JP5594045B2 (ja) * 2010-10-14 2014-09-24 ソニー株式会社 再生装置、再生方法、プログラム、および記録媒体
JP5685969B2 (ja) 2011-02-15 2015-03-18 ソニー株式会社 表示制御方法、表示制御装置
CN103891303B (zh) 2011-08-16 2018-03-09 黛斯悌尼软件产品有限公司 基于脚本的视频呈现
JP5615445B2 (ja) * 2011-10-21 2014-10-29 三菱電機株式会社 映像情報再生方法及び映像情報再生装置
CN103503073B (zh) 2012-01-16 2016-03-30 松下知识产权经营株式会社 再现装置、再现方法、和集成电路
US20140320592A1 (en) * 2013-04-30 2014-10-30 Microsoft Corporation Virtual Video Camera
US9838571B2 (en) 2015-04-10 2017-12-05 Gvbb Holdings S.A.R.L. Precision timing for broadcast network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002369154A (ja) * 2001-04-02 2002-12-20 Matsushita Electric Ind Co Ltd ディジタル映像コンテンツの映像再生装置、映像再生方法、映像再生プログラム、パッケージメディア
JP2003249057A (ja) * 2002-02-26 2003-09-05 Toshiba Corp デジタル情報媒体を用いるエンハンスド・ナビゲーション・システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3382159B2 (ja) 1998-08-05 2003-03-04 株式会社東芝 情報記録媒体とその再生方法及び記録方法
US6144375A (en) * 1998-08-14 2000-11-07 Praja Inc. Multi-perspective viewer for content-based interactivity
KR100657241B1 (ko) * 1999-09-03 2006-12-18 삼성전자주식회사 동영상 기록/재생 장치와 방법 및 기록 매체
US7392481B2 (en) * 2001-07-02 2008-06-24 Sonic Solutions, A California Corporation Method and apparatus for providing content-owner control in a networked device
JP3980805B2 (ja) * 2000-03-10 2007-09-26 パイオニア株式会社 番組情報の記録装置及び記録方法
DE50006486D1 (de) 2000-03-30 2004-06-24 Siemens Ag Kraftfahrzeug-Navigationssystem mit einem geschützten Speichermedium
CZ20031749A3 (cs) * 2001-01-16 2004-01-14 Matsushita Electric Industrial Co., Ltd. Médium pro záznam dat, zařízení pro záznam dat a způsob záznamu dat
US20020194618A1 (en) 2001-04-02 2002-12-19 Matsushita Electric Industrial Co., Ltd. Video reproduction apparatus, video reproduction method, video reproduction program, and package media for digital video content
EP1328114A1 (en) 2002-01-10 2003-07-16 Canal+ Technologies Société Anonyme Image resolution management in a receiver/decoder
JP2003303248A (ja) 2002-01-11 2003-10-24 Mayumi Kobayashi コンテンツのライセンス管理方法、およびその管理装置、ならびにコンテンツライセンス管理プログラム、同プログラムを記録した記録媒体、コンテンツ配信サーバ
WO2004049710A1 (ja) * 2002-11-28 2004-06-10 Sony Corporation 再生装置、再生方法、再生プログラムおよび記録媒体
CA2514031C (en) * 2003-02-19 2012-09-25 Matsushita Electric Industrial Co., Ltd. Recording medium, playback apparatus, recording method, program, and playback method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002369154A (ja) * 2001-04-02 2002-12-20 Matsushita Electric Ind Co Ltd ディジタル映像コンテンツの映像再生装置、映像再生方法、映像再生プログラム、パッケージメディア
JP2003249057A (ja) * 2002-02-26 2003-09-05 Toshiba Corp デジタル情報媒体を用いるエンハンスド・ナビゲーション・システム

Also Published As

Publication number Publication date
JPWO2005052940A1 (ja) 2007-06-21
RU2312412C2 (ru) 2007-12-10
US20060140079A1 (en) 2006-06-29
JP4241731B2 (ja) 2009-03-18
EP1583098B1 (en) 2017-10-18
MXPA05007760A (es) 2005-09-30
CN103956176B (zh) 2017-07-07
ES2650987T3 (es) 2018-01-23
CN1757074A (zh) 2006-04-05
WO2005052940A1 (ja) 2005-06-09
AU2004293960A1 (en) 2005-06-09
US7821881B2 (en) 2010-10-26
KR20060112194A (ko) 2006-10-31
RU2005123982A (ru) 2006-01-27
EP1583098A1 (en) 2005-10-05
EP1583098A4 (en) 2009-03-18
CN103956176A (zh) 2014-07-30
BRPI0407057A (pt) 2006-01-17
NZ541096A (en) 2008-07-31

Similar Documents

Publication Publication Date Title
KR101087316B1 (ko) 재생 장치, 재생 방법 및 기록 매체
JP4228767B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
KR101089974B1 (ko) 재생 장치, 재생 방법, 및 기록 매체
JP4879480B2 (ja) 再生装置、再生方法および再生プログラム、記録媒体、ならびに、データ構造体
KR20060061919A (ko) 재생 장치, 재생 방법 및 재생 프로그램, 기록 매체, 및데이터 구조체
JP2008090627A (ja) 再生装置、表示制御方法および表示制御プログラム
KR101237160B1 (ko) 재생 장치 및 기록 매체
JP2006230001A (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP5209515B2 (ja) 記録媒体
JP5209516B2 (ja) 記録媒体
JP4277863B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP5209513B2 (ja) 記録媒体
AU2011205093B2 (en) Reproduction device, reproduction method, reproduction program, and recording medium
JP4277865B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP4277864B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP4277862B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP5187454B2 (ja) データ格納方法
JP5187453B2 (ja) データ格納方法
JP5494779B2 (ja) データ構造
JP5494780B2 (ja) データ構造
JP5494782B2 (ja) データ構造
JP5187451B2 (ja) データ格納方法
JP5187452B2 (ja) データ格納方法
JP5494781B2 (ja) データ構造
JP5209514B2 (ja) 記録媒体

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

A201 Request for examination
E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

FPAY Annual fee payment

Payment date: 20141118

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20151122

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20151122

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301