KR20120090096A - 재생장치, 프로그램, 재생방법 - Google Patents

재생장치, 프로그램, 재생방법 Download PDF

Info

Publication number
KR20120090096A
KR20120090096A KR1020127016051A KR20127016051A KR20120090096A KR 20120090096 A KR20120090096 A KR 20120090096A KR 1020127016051 A KR1020127016051 A KR 1020127016051A KR 20127016051 A KR20127016051 A KR 20127016051A KR 20120090096 A KR20120090096 A KR 20120090096A
Authority
KR
South Korea
Prior art keywords
application
playlist
playback
stream
mixing
Prior art date
Application number
KR1020127016051A
Other languages
English (en)
Other versions
KR101249218B1 (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 KR20120090096A publication Critical patent/KR20120090096A/ko
Application granted granted Critical
Publication of KR101249218B1 publication Critical patent/KR101249218B1/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
    • 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]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/02Control of operating function, e.g. switching from recording to reproducing
    • G11B19/022Control panels
    • G11B19/025'Virtual' control panels, e.g. Graphical User Interface [GUI]
    • 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
    • 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/34Indicating arrangements 
    • 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

Abstract

BD-ROM에는 AVClip과 Java(등록상표) 애플리케이션이 기록되어 있다. 이 AVClip에는 비디오 스트림 및 오디오 스트림이 다중화되어 있다. 또, BD-ROM에는 관리정보와 이에 대응하는 Mixing_On 플래그가 기록되어 있고, 상기 관리정보는 Java(등록상표) 애플리케이션의 실행과 동시에 개시해야 할 AVClip의 재생제어를 나타내는 정보이며, Mixing_On 플래그는 Java(등록상표) 애플리케이션에 대한 사용자 조작에 따른 클릭 음과 상기 재생제어 시에서의 AVClip의 음성출력을 믹싱할지 여부를 나타낸다.

Description

재생장치, 프로그램, 재생방법{REPRODUCTION DEVICE, PROGRAM, REPRODUCTION METHOD}
본 발명은 클릭 음 재생(click sound playback)의 기술분야에 속하는 발명이다.
클릭 음 재생이란, 영화작품의 재생 중에 표시된 GUI에 대하여 사용자가 조작을 행한 경우, 그 조작에 호응하여 영화작품 중의 재생음성에 클릭 음을 사운드 믹싱(sound mixing)하여 출력하는 기술이다.
예를 들어, 영화작품의 재생 중에 표시되는 GUI가 「게임 개시」라고 하는 기능의 실행지시를 접수하는 것이며, 이 실행지시에 따라서「지금부터 게임을 시작한다」는 음성 안내(audio announce)를 클릭 음으로 영화 본편의 음성에 사운드 믹싱하여 출력하는 경우를 생각한다. 이 음성 안내가 영화작품에 등장하는 캐릭터의 목소리에 의한 것이라면, 어린아이인 사용자는 이 음성 안내에 의해 영화작품에 등장하는 캐릭터가 말을 거는 듯한 인상을 받는다. 이상의 클릭 음 재생의 도입에 의해 어린아이가 즐겁게 놀 수 있는 GUI를 영화작품에 도입할 수 있다.
여기서 하나의 음성출력에 다른 음성출력을 믹싱하여 출력하는 기술에는 이하의 특허문헌 1에 기재된 것이 있다.
특허문헌 1 : 일본국 특개평 7-320411호 공보
그런데 클릭 음의 사운드 믹싱을 행하려면, 디지털화된 오디오 스트림을 일단 LPCM 상태까지 전개하지 않으면 안 된다. 여기서 사운드 믹싱의 대상이 되는 본편 측의 오디오 스트림이 5.1채널이라는 멀티채널 속성을 갖는 경우, 전개된 LPCM 상태에서의 데이터량은 매우 많아진다. 따라서, 멀티채널 속성을 갖는 오디오 스트림에 클릭 음을 사운드 믹싱하여 디지털 음성 출력을 행하는 경우, 대역(帶域) 상의 제한으로, 어떤 종류의 디지털 인터페이스(digital interface)에서는 디지털 음성출력이 불가능하게 되어 버리는 경우가 있다. 최근의 영화는 음향 면을 중시하고 있는 것이 많고, 또, 사용자도 앰프(amplifier)나 서라운드 스피커(surround speaker) 등 거액의 사비를 투입하여 사적인 음향 시스템을 구축하고 있는 케이스가 많으므로, 클릭 음을 사운드 믹싱하고자 하는 순간 영화 본편의 디지털 음성 출력이 불가능해진다고 하면, 영화에 대한 마이너스 이미지는 상상할 수 없을 정도다.
클릭 음의 도입에 의해 "멀티채널의 음성출력이 도중에 끊어지는 것은 아닌가"라는 불안한 마음이 있는 한, 클릭 음이라는 기능 자체가 영화제작에 사용되지 않는다고 하는 케이스가 빈발한다. 이러한 불안에서 영화제작 스튜디오를 해방하기 위해서는 재생장치에 재 인코드(re-encode)를 행하게 한다고 하는 생각을 모든 재생장치가 의무적으로 구비하도록 하면 된다. 즉, 재생장치 내에 인코더를 구비해 두고, 5.1 채널이라는 멀티채널 속성을 갖는 오디오 스트림을 LPCM 형상으로 전개하여 클릭 음을 믹싱한 후, 이것을 재 인코드한 후에 디지털 출력을 하면 된다. 구체적으로 말하면, 믹싱한 음성의 디지털 음성출력을 S/PDIF(Sony/Philips Digital Inter-Connect Format, ISO 60958-3 규격)과 같은 디지털 인터페이스를 통해서 실행하는 경우, 상술한 재 인코더를 행하여 돌비 디지털(Dolby digital)이나 DTS로 변환할 필요가 있다. 그러나 이러한 재 인코드에는 인코더의 구비가 필수이므로, 아무래도 BD-ROM 재생장치의 표준 모델로 채용되지는 않을 것이다.
본 발명의 목적은, 음성출력에 대한 폐해를 초래하지 않고, 클릭 음의 사운드 믹싱 출력을 실현할 수 있는 기록매체를 제공하는 것이다.
상기 과제를 달성하기 위해 본 발명의 기록매체는, 애플리케이션을 실행하는 동시에 디지털 스트림을 재생하는 재생장치로, 기록매체에 기록된 상기 디지털 스트림, 상기 애플리케이션, 사운드 데이터 및 관리정보에 관련하는 타이틀을 선택하는 선택수단과, 상기 기록매체에 기록된 관리정보로부터 상기 애플리케이션이 실행 가능한 구간을 나타내는 정보, 상기 실행 가능한 구간에서 애플리케이션을 실행 중에 개시할 디지털 스트림의 재생경로를 규정하는 플레이리스트를 나타내는 정보를 판독하는 판독수단과, 상기 기록매체에 기록된 타이틀에 관련하는 애플리케이션을 당해 애플리케이션에 정해진 실행 가능한 구간에서 실행하는 플랫폼부와, 상기 실행 가능한 구간에서 애플리케이션을 실행 중에 상기 관리정보에 나타낸 플레이리스트에 규정되는 재생경로에 따라서 디지털 스트림을 재생함으로써 당해 타이틀에 관련하는 디지털 스트림을 재생하여 영상출력 및 음성출력을 실행하는 재생제어 엔진부와, 상기 실행 중의 애플리케이션에 대한 사용자 조작에 따른 사운드 데이터를 이용한 클릭 음의 출력과, 상기 디지털 스트림에 포함되는 압축된 오디오 스트림을 전개한 음성 출력의 믹싱을 실행하는 믹싱부와, 상기 플레이리스트에 포함되는 플래그가 온인 경우, 상기 믹싱부에 의한 상기 실행 중의 애플리케이션에 대한 사용자 조작에 따른 사운드 데이터를 이용한 클릭음의 출력과, 상기 디지털 스트림에 포함되는 압축된 오디오 스트림을 전개한 음성 출력의 믹싱을 실행하여 출력하고, 상기 플레이리스트에 포함되는 플래그가 오프인 경우, 상기 믹싱부에 의한 믹싱을 실행하지 않고 상기 압축된 오디오 스트림을 출력하는 사운드 컨트롤러를 구비하는 것을 특징으로 하고 있다.
본 발명은 상술한 구성을 가지므로, 실행 중인 애플리케이션에 대한 사용자 조작에 따른 사운드 데이터를 이용한 클릭 음의 출력과 실행중인 애플리케이션에 의해 선택된 재생경로 정보에 규정된 재생경로에 나타낸 디지털 스트림의 음성 출력을믹싱하는가 여부의 조정을 제작자 측의 의도에 따른 것으로 할 수 있게 된다.
이는 예를 들어 멀티채널에서의 음성출력을 의도하는 등의 재생제어의 실행시에는 사운드 믹싱을 무효화해 두고, 멀티채널에서의 음성출력을 의도하지 않는 재생제어의 실행시에는 사운드 믹싱을 유효화해 둘 수 있게 되며, 예를 들어 영화의 제작 스튜디오는 멀티채널에서의 재생을 의도하고 있는 경우에는 클릭 음을 금지하고, 클릭 음에서의 재생을 의도하고 있는 경우에는 반대로 멀티채널에 의한 음성출력을 금지한다고 하는 조정이 가능해질 뿐 아니라, 애플리케이션이 선택할 수 있는 재생경로 정보를 관리정보에 나타낸 재생경로 정보로 제한할 수 있다.
도 1은 본 발명에 관한 기록매체의 사용행위를 나타내는 도면이다.
도 2는 BD-ROM의 내부 구성을 나타내는 도면이다.
도 3은 확장자 .m2ts가 부여된 파일이 어떻게 구성되어 있는가를 모식적으로 나타내는 도면이다.
도 4는 AVClip을 구성하는 TS 패킷이 어떠한 과정을 거쳐서 BD-ROM에 기록되는가를 나타내는 도면이다.
도 5는 AVClip을 구성하는 TS 패킷이 어떠한 과정을 거쳐서 BD-ROM에 기록되는가를 나타내는 도면이다.
도 6은 Clip 정보의 내부 구성을 나타내는 도면이다.
도 7은 영화의 비디오 스트림에 대한 EP_map 설정을 나타내는 도면이다.
도 8은 PlayList 정보의 데이터 구조를 나타내는 도면이다.
도 9는 AVClip과 PlayList 정보의 관계를 나타내는 도면이다.
도 10(a)은 STN_table의 구성을 나타내는 도면이고, (b) ~ (e)은 entry-attribute의 상세를 나타내는 도면이다.
도 11은 PlayList 정보의 PlayListMark 정보의 내부 구성을 나타내는 도면이다.
도 12는 PlayList 정보의 PlayListMark 정보에 의한 챕터 위치의 지정을 나타내는 도면이다.
도 13은 BD-J Object의 내부 구성을 나타내는 도면이다.
도 14는 아카이브 파일에 의해 저장되어 있는 프로그램 및 데이터를 나타내는 도면이다.
도 15는 파일 sound.bdmv의 구성을 나타내는 도면이다.
도 16(a)은 애플리케이션 관리 테이블의 내부 구성을 나타내는 도면이고, (b)는 애플리케이션 관리 테이블을 구성하는 정보요소의 의미 내용을 나타내는 도면이다.
도 17은 디스크 콘텐츠에서의 상태천이를 나타내는 도면이다.
도 18(a)은 BD-ROM 전체의 시간 축을 나타내는 도면이고, (b)는 BD-ROM 전체의 시간 축에서의 구성을 나타내는 도면이다.
도 19(a)(b)는 BD-ROM 전체의 시간 축에서 BD-J Object에서 특정되는 타이틀 재생구간을 나타내는 도면이다.
도 20은 도 19(b)의 시간 축 상에 규정되는 생존구간의 전형을 나타내는 도면이다.
도 21은 본편 타이틀, 온라인 쇼핑 타이틀, 게임 타이틀이라는 3개의 타이틀을 포함하는 디스크 콘텐츠를 나타내는 도면이다.
도 22(a)(b)는 애플리케이션 관리 테이블, 생존구간의 일례를 나타내는 도면이다.
도 23은 기동속성이 취할 수 있는 3가지 형태(Present, AutoRun, Suspend)와, 직전 타이틀에서의 애플리케이션 상태의 3가지 형태(비 기동, 기동 중, Suspend)가 취할 수 있는 조합을 나타내는 도면이다.
도 24(a)는 플레이리스트 관리 테이블의 내부 구성을 나타내는 도면이고, (b)는 플레이리스트 관리 테이블을 구성하는 정보요소의 의미 내용을 나타내는 도면이다.
도 25는 플레이리스트 관리 테이블, 애플리케이션 관리 테이블에 의해 규정되는 타이틀의 구체 예를 나타낸다.
도 26은 현재 타이틀이 취할 수 있는 3가지 형태(플레이리스트 관리 테이블 없음, 플레이리스트 관리 테이블은 있으며, 무 지정, 플레이리스트 관리 테이블은 있으며, AutoPlay)와, 직전 타이틀에서의 PL의 상태(비 재생 상태, 재생 중 상태)가 취할 수 있는 6가지의 조합을 나타내는 도면이다.
도 27(a)은 플레이리스트 관리 테이블 및 애플리케이션 관리 테이블의 기술 예를 나타내는 도면이고, (b)는 도 27(a)과 같이 기술된 애플리케이션 관리 테이블, 플레이리스트 관리 테이블에 의해 플레이리스트 재생, 애플리케이션 실행이 어떻게 진행하는가를 나타내는 도면이다.
도 28(a)은 플레이리스트 관리 테이블의 다른 기술 예를 나타내는 도면이고, (b)는 도 28(a)의 케이스에 의거한 애플리케이션 실행 및 플레이리스트 재생의 진행을 나타내는 도면이다.
도 29는 SMT의 내부 구성을 나타내는 도면이다.
도 30(a)(b)은 STN_Table에서의 오디오 스트림에 대한 entry-attribute와 Mixing_On 플래그의 설정과의 인과관계를 나타내는 도면이다.
도 31은 Mixing_On 플래그가 ON으로 설정된 타이틀에서 GUI 프레임 워크 상의 버튼이 조작된 경우의 재생장치에 의한 음성재생을 나타내는 도면이다.
도 32는 Mixing_On 플래그가 OFF로 설정된 타이틀에서 GUI 프레임 워크 상의 버튼이 조작된 경우의 재생장치에 의한 음성재생을 나타내는 도면이다.
도 33은 본 발명에 관한 재생장치의 내부 구성을 나타내는 도면이다.
도 34는 ROM(24)에 저장된 소프트웨어와 하드웨어로 이루어진 부분을 레이어 구성으로 치환하여 묘사한 도면이다.
도 35는 Java(등록상표) 가상 머신(36)의 내부 구성을 나타내는 도면이다
도 36은 프레젠테이션 엔진(Presentation Engine)(31) ~ 모듈 매니저(34)에 의한 처리를 모식화한 도면이다.
도 37은 BD-J Object에서의 PLMT에 의거한 애플리케이션 매니저(37)의 처리를 나타내는 도면이다.
도 38은 BD-J Object에서의 SMT에 의거한 애플리케이션 매니저(37)의 처리를 나타내는 도면이다.
도 39는 애플리케이션 매니저(37)에 의한 처리순서를 나타내는 플로차트이다.
도 40(a)은 제 2 실시 예에 관한 플레이리스트 정보의 내부 구성을 나타내는 도면이고, (b)는 PlayItem 정보 내에 설치된 Mixing_On 플래그의 내용을 나타내는 도면이다.
도 41은 플레이 백 컨트롤 엔진(Playback Control Engine)(32)에 의한 플레이리스트의 재생순서를 나타내는 플로차트이다.
도 42는 애플리케이션 매니저(37)에 의한 통지처리의 처리순서를 나타내는 플로차트이다.
도 43은 제 3 실시 예에 관한 애플리케이션 매니저(37)의 처리순서를 나타내는 도면이다.
도 44(a)는 패런털 레벨(parental level)에 의거한 선택 알고리즘의 내용을 나타내고, (b)는 Language for Audio에 의거한 선택 알고리즘의 내용을 나타내며, (c)는 Player Configuration for Video에 의거한 선택 알고리즘의 내용을 나타낸다.
도 45는 타이틀 언바운더리 애플리케이션에 플레이리스트 선택을 행하게 하는 과정을 모식적으로 묘사한 도면이다.
(부호의 설명)
1 BD-ROM 드라이브 2 리드 버퍼
3 디 멀티플렉서 4 비디오 디코더
5 비디오 플레인(video plane) 6 사운드 프로세서
*7 사운드 프로세서 8 믹서
9 사운드 컨트롤러 10 D/A 컨버터
11 인터랙티브 그래픽스 디코더(Interactive Graphics decoder)
*12 인터랙티브 그래픽스 플레인(Interactive Graphics plane)
13 프레젠테이션 그래픽스 디코더(Presentation Graphics decoder)
14 프레젠테이션 그래픽스 플레인(Presentation Graphics plane)
15 JPEG 디코더 16 스틸 플레인(still plane)
17 합성부 18 STC-delta 부가부
19 ATC-delta 부가부 20 로컬 스토리지(local soorage)
21 명령 ROM 22 사용자 이벤트 처리부
23 PSR 세트 24 CPU
25 시나리오 메모리 26 로컬 메모리
(제 1 실시 예)
이하, 본 발명에 관한 기록매체의 실시 예에 대하여 설명한다. 우선 먼저, 본 발명에 관한 기록매체의 실시행위 중 사용행위에 대한 예를 설명한다. 도 1은 본 발명에 관한 기록매체의 사용행위에 대한 예를 나타낸 도면이다. 도 1에서 본 발명에 관한 기록매체는 BD-ROM(100)이며, BD-ROM(100)은, 재생장치(200), 리모컨(300), 텔레비전(400), 서라운드 스피커에 접속된 앰프(500)에 의해 형성되는 홈 시어터 시스템에 저작물을 공급하는 용도로 제공된다.
본 시스템에서 재생장치(200)는, BD-ROM(100)에 기록되어 있는 각종 데이터를 재생하고, 영상출력 및 음성출력을 행한다. 이 재생장치(200)에 의한 영상출력은, HDMI(High Definition Multimedia Interface), 그 외 아날로그 인터페이스를 통해서 텔레비전(400)에 출력된다. 또, 재생장치(200)에 의한 음성출력은 S/PDIF 또는 HDMI, 그 외 아날로그 인터페이스를 통해서 텔레비전(400) 또는 앰프(500)에 출력된다.
이상이 본 발명에 관한 기록매체의 사용 예에 대한 설명이다.
이어서, 본 발명에 관한 기록매체의 생산행위에 대하여 설명한다. 본 발명에 관한 기록매체는, BD-ROM의 파일 시스템상에서의 개량으로 실현할 수 있다. 도 2는 BD-ROM에서의 파일?디렉터리 구성을 나타내는 도면이다. 본 도면에서 BD-ROM에는 Root 디렉터리의 아래에 BDMV 디렉터리가 있다.
BDMV 디렉터리에는 확장자 bdmv가 부여된 파일(index.bdmv, MovieObject.bdmv)이 있다. 그리고 이 BDMV 디렉터리의 바로 아래에는, PLAYLIST 디렉터리, CLIPINF 디렉터리, STREAM 디렉터리, BDBJ 디렉터리, BDJA 디렉터리, AUXDATA 디렉터리라고 불리는 6개의 서브 디렉터리가 더 존재한다.
PLAYLIST 디렉터리에는 확장자 mpls가 부여된 파일(00001.mpls, 00002.mpls, 00003.mpls)이 있다.
CLIPINF 디렉터리에는 확장자 clpi가 부여된 파일(00001.clpi, 00002.clpi, 00003.clpi)이 있다.
STREAM 디렉터리에는 확장자 m2ts가 부여된 파일(00001.m2ts, 00002.m2ts, 00003.m2ts)이 있다.
BDBJ 디렉터리에는 확장자 BOBJ가 부여된 파일(00001.bobj, 00002.bobj, 00003.bobj)이 존재한다.
BDJA 디렉터리에는 확장자 jar이 부여된 파일(00001.jar, 00002.jar, 00003.jar)이 있다.
AUXDATA 디렉터리에는 파일 sound.bdmv가 저장된다.
이상의 디렉터리 구조에 의해 서로 다른 종별의 복수 파일이 BD-ROM 상에 배치되어 있는 것을 알 수 있다.
<BD-ROM의 구성 그 1. AVClip>
우선 먼저, 확장자 .m2ts가 부여된 파일에 대하여 설명한다. 도 3은 확장자 .m2ts가 부여된 파일이 어떻게 구성되어 있는가를 모식적으로 나타내는 도면이다. 확장자 .m2ts가 부여된 파일(00001.m2ts, 00002.m2ts, 00003.m2ts, ……)은 AVClip을 저장하고 있다. AVClip은 MPEG2-Transport Stream 형식의 디지털 스트림이다. 이 디지털 스트림은 필름 영상, NTSC 영상, PAL 영상을 디지털화함으로써 얻어진 디지털 비디오, LPCM 음원, AC-3 음원, DTS 음원을 디지털화함으로써 얻어진 디지털 오디오를(상 1단째), PES 패킷으로 이루어지는 엘리멘터리 스트림(elementary stream)으로 변환하고(상 2단째), 또, TS 패킷으로 변환하며(상 3단째), 마찬가지로 자막 계의 프레젠테이션 그래픽스 스트림(Presentation Graphics(PG)스트림) 및 대화 계의 인터랙티브 그래픽스 스트림(Interactive Graphics(IG)스트림)(하 1단째)을 PES 패킷 열로 변환하고(하 2단째), 또, TS 패킷으로 변환하며(하 3단째), 이것을 다중화함으로써 구성된다.
PG 스트림은 동화상의 재생진행에 따른 자막표시를 실현하는 엘리멘터리 스트림이고, IG 스트림은 동화상의 재생진행에 따른 GUI를 실현하는 엘리멘터리 스트림이다.
PES 패킷화된 디지털 영상은 비디오 스트림이라고 불리고, 또 PES 패킷화된 음성은 오디오 스트림이라고 불린다. 이들 비디오 스트림, 오디오 스트림은 엘리멘터리 스트림이고, 독립 복호 가능한 단위로 "액세스 유닛(Access Unit)"이 존재한다. 비디오 스트림에서는, 소위 GOP(Group Of Picture)가 이 "액세스 유닛"에 해당한다.
비디오 스트림 중 하나의 PTS로 재생되는 재생단위(픽처(picture) 등)를
"비디오 프레젠테이션 유닛(Video Presentation Unit)"이라고 한다. 오디오 스트림 중 하나의 PTO로 재생되는 재생단위를 "오디오 프레젠테이션 유닛(Audio Presentation Unit)"이라고 한다.
여기서, AVClip을 구성하는 PES 패킷은 하나 이상의 "STC_Sequence"를 구성한다. "STC_Sequence"란, PES 패킷의 배열로서, 그 PTS, DTS가 참조하고 있는 시스템 타임 클록(System Time Clock, STC)의 값에 STC 불연속 점(system time-base discontinuity)이 존재하지 않는 것을 말한다. STC 불연속 점이 없는 것이 STC_Sequence의 요건이므로, 하나의 STC_Sequence를 구성하는 PES 패킷 열 중, STC 불연속 점의 직후에 위치하는 PES패킷으로서, PCR(Program Clock Reference)를 포함한 것에서부터 다음의 STC 불연속 점의 직전까지가 하나의 STC_Sequence가 된다.
이어서, 이상과 같이 구성된 AVClip이 BD-ROM에 어떻게 기록되는가를 설명한다. 도 4는 AVClip을 구성하는 TS 패킷이 어떠한 과정을 거쳐서 BD-ROM에 기록되는가를 나타낸다. 본 도면의 제 1 단째에 AVClip을 구성하는 TS 패킷을 나타낸다.
AVClip을 구성하는 188 바이트의 TS 패킷은, 제 2 단째에 나타낸 바와 같이, 4 바이트의 TS_extra_header(도면 중의 해칭부)가 부여되어서 192 바이트 길이의 소스 패킷이 된다. 이 TS_extra_header는 Arrival_Time_Stamp를 포함한다.
AVClip을 구성하는 소스 패킷은 제 3 단째에서의 AVClip에서 하나 이상의 "ATC_Sequence"를 구성한다. "ATC_Sequence"란, 소스 패킷의 배열로, 그 Arrival_Time_Stamp가 참조하고 있는 Arrival_Time_Clock에 불연속 점(no arrival time-base discontinuity)가 존재하지 않는 것을 말한다. 다시 말하면, 그 Arrival_Time_Stamp가 참조하고 있는 Arrival_Time_Clock에 연속성이 존재하는 소스 패킷 열을 "ATC_Sequence"라고 한다.
이러한 ATC_Sequence가 AVClip이 되고, xxxxx.m2ts라는 파일명으로 BD-ROM에 기록된다.
이러한 AVClip은, 통상의 컴퓨터 파일과 마찬가지로, 복수의 파일 익스텐트(file extent)로 분할되어 BD-ROM 상의 영역에 기록된다. 제 4 단째는 AVClip이 어떻게 BD-ROM에 기록되는가를 모식적으로 나타낸다. 이 4 단째에서 파일을 구성하는 각 파일 익스텐트는 미리 정해진 Sextent 이상의 데이터 길이를 갖는다.
AVClip을 복수의 익스텐트로 분할하여 기록하는 경우의 익스텐트 1개당 최소 데이터 길이 Sextent를 검토한다.
여기서, BD-ROM에서 광 픽업의 점프(jump)에 필요한 시간은,
Tjump = Taccess + Toverhead
에 의해 얻어진다.
Taccess는 점프 거리에 따라 부여되는 시간(m초)이며,
점프 거리(논리 블록 수)가 0 ~ 5000이면 179m초,
점프 거리(논리 블록 수)가 5001 ~ 10,000이면 210m초,
점프 거리(논리 블록 수)가 10,001 ~ 20,000이면 270m초,
점프 거리가 하프 스트로크(half stroke)이면 990m초,
점프 거리가 풀 스트로크(full stroke)이면 1220m초가 된다.
BD-ROM에서 판독된 TS 패킷은 리드 버퍼(Read Buffer)라고 불리는 버퍼에 저장된 후에 디코더(decoder)에 출력되나, 리드 버퍼로의 입력이 Rud라고 하는 비트 레이트(bit rate)로 행해지고, ECC 블록에서의 섹터 수를 Secc로 한 경우,
Toverhead는,
Toverhead ≤ (2×Secc×8)/Rud=20m초
라는 계산에 의해 얻을 수 있다.
BD-ROM에서 판독된 TS 패킷은 소스 패킷의 상태로 리드 버퍼에 저장된 후, TS_Recording_rate라는 전송 레이트로 디코더에 공급된다.
TR_Recording_rate라는 전송 레이트에서의 디코더로의 TS 패킷 공급이 끊어지지 않게 하기 위해서는, Tjump 동안 리드 버퍼에서 디코더로의 TS 패킷 출력이 계속되고 있을 필요가 있다. 여기서 리드 버퍼로부터의 출력은 TS 패킷이 아니라 소스 패킷의 상태로 이루어지므로, TS 패킷의 소스 패킷과의 사이즈 비를 192/188로 한 경우, Tjump 동안 (192/188×TS_Recording_rate)라는 전송 레이트에 의해 리드 버퍼로부터의 소스 패킷 출력이 계속되고 있을 필요가 있다.
따라서, 리드 버퍼가 언더 프로(underflow) 하지 않기 위한 버퍼 축적량은,
Boccupied ≥ (Tjump/1000×8)×((192/188)×TS_Recording _rate)
가 된다.
리드 버퍼로의 입력 레이트는 Rud, 리드 버퍼로부터의 출력 레이트는 TS_Recording_rate×(192/188)이므로, 리드 버퍼로의 축적 레이트는 입력 레이트 - 출력 레이트의 계산에 의해 얻을 수 있으며, (Rud-TS_Recording_rate×(192/188))이 된다.
이 Boccupied를 리드 버퍼에 축적할 때 필요한 시간 Tx는,
Tx=Boccupied/(Rud-TS_Recording_rate×(192×188))
이 된다.
BD-ROM으로부터의 판독에는 이 시간 Tx에서 Rud에서의 TS 패킷 입력을 계속할 필요가 있으므로, AVClip을 복수의 익스텐트로 분할하여 기록하는 경우의 익스텐트 1개당 최소 데이터 길이 Sextent는,
Sextent=Rud×Tx
=Rud×Boccupied/(Rud-TS_Recording_rate×(192/188))
≥Rud×(Tjump/1000×8)×((192/188)×TS_Recording_rate)
/(Rud-TS_Recording_rate×(192/188))
≥(Rud×Tjump/1000×8)×
×TS_Recording_rate×192/(Rud×188-TS_Recording_rate×192) 가 된다.
따라서,
Sextent ≥
(Tjump×Rud/1000×8)×
(TS_Recording_rate×192/(Rud×188-TS_Recording_rate×192))가 된다.
AVClip을 구성하는 각 파일 익스텐트는 이렇게 산출된 Sextent 이상의 데이터 길이를 가짐으로써, AVClip을 구성하는 각 파일 익스텐트가 BD-ROM 상에서 이산적(離散的)으로 위치되어 있어도 재생 시에 디코더로의 TS 패킷 공급이 끊어지지 않고 연속적으로 판독되게 된다.
도 5는 BD-ROM의 물리 단위와 하나의 파일 익스텐트를 구성하는 소스 패킷과의 대응관계를 나타내는 도면이다. 제 2 단째에 나타낸 바와 같이, BD-ROM 상에는 복수의 섹터가 형성되어 있다. 파일 익스텐트를 구성하는 소스 패킷은, 제 1 단째에 나타내는 바와 같이, 32개마다 그룹화되어서 연속하는 3개의 섹터에 기록된다. 32개의 소스 패킷으로 이루어지는 그룹은 6144 바이트(=32×192)이고, 이것은 3개의 섹터 사이즈 6144 바이트(=2048×3)와 일치한다. 3개의 섹터에 수납된 32개의 소스 패킷을 "Aligned Unit"이라고 하고, BD-ROM으로의 기록에 있어서는 Aligned Unit 단위로 암호화가 이루어진다.
제 3 단째에서 섹터는 32개 단위로 오류정정부호(error correction code)가 부여되어 ECC 블록을 구성한다. 재생장치는 Aligned Unit 단위로 BD-ROM을 액세스하는 한, 32개의 완결된 소스 패킷을 얻을 수 있다. 이상이 BD-ROM에 대한 AVClip의 기록의 프로세스이다.
<BD-ROM의 구성 2. Clip 정보>
이어서, 확장자 .clpi가 부여된 파일에 대하여 설명한다. 확장자 .clip가 부여된 파일(00001.clpi, 00002.clpi, 00003.clpi……)은 Clip 정보를 저장하고 있다. Clip 정보는 개개의 AVClip에 대한 관리정보이다. 도 6은 Clip 정보의 내부 구성을 나타내는 도면이다. 본 도면의 좌측에 나타낸 바와 같이, Clip 정보는,
ⅰ) AVClip에 대한 정보를 저장한 『ClipInfo()』,
ⅱ) ATC Sequence, STC Sequence에 관한 정보를 저장한 『Sequence Info()』
ⅲ) Program Sequence에 관한 정보를 저장한 『Program Info()』
ⅳ) 『Characteristic Point Info(CPI())』로 이루어진다.
Sequence Info는 AVClip에 포함되는 하나 이상의 STC-Sequence, ATC-Sequence에 대한 정보이다. 이들 정보를 설치해 두는 의의는 STC, ATC의 불연속 점을 미리 재생장치에 통지하기 위해서이다. 즉, 이러한 불연속 점이 존재하면 AVClip 내에서 동일한 값의 PTS, ATS가 출현할 가능성이 있어서, 재생 시에 문제가 발생한다. STC, ATC가 연속하고 있는 것은, 트랜스 포트 스트림 중 어디에서 어디까지인가를 나타내기 위하여 Sequence Info는 설치되어 있다.
Program Info는 프로그램 내용이 일정한 구간(Program Sequence)을 나타내는 정보이다. 프로그램은 동기 재생을 위한 시간 축을 서로 공유하는 엘리멘터리 스트림들의 집합이다. 프로그램 시퀀스 정보를 설치해 두는 의의는 프로그램 내용의 변화 점을 미리 재생장치에 통지하기 위해서이다. 여기에서의 프로그램 내용의 변화 점이란, 비디오 스트림의 PID가 변화하거나, 비디오 스트림의 종류가 SDTV에서 HDTV로 변화하고 있는 점 등을 말한다.
이어서, Characteristic Point Info에 대하여 설명한다. 도면 중의 인출선 cu2는 CPI의 구성을 클로즈업하고 있다. 인출선 cu2에 나타낸 바와 같이, CPI는, Ne개의 EP_map_for_one_stream_PID(EP_map_for_one_stream_PID(0) ~ EP_map_for_one_ stream_PID(Ne-1))로 이루어진다. 이들 EP_map_for_one_stream_PID는 AVClip에 속하는 개개의 엘리멘터리 스트림에 대한 EP_map이다. EP_map은 하나의 엘리멘터리 스트림 상에서 액세스 유닛의 선두부분인 Access Unit Delimiter가 존재하는 엔트리 위치의 패킷 번호(SPN_EP_strat)를 엔트리 시각(PTS_EP_strat)과 대응시켜서 나타내는 정보이다. 도면 중의 인출선 cu3은 EP_map_for_one_stream_PID의 내부 구성을 클로즈업하고 있다.
이에 의하면, EP_map_for_one_stream_PID는, Nc개의 EP_High(EP_High(0) ~ EP_High(Nc-1))과, Nf개의 EP_Low(EP_Low(0) ~ EP_Low(Nf-1))로 이루어지는 알 수 있다. 여기서 EP_High는 액세스 유닛의 SPN_EP_start 및 PTS_EP_start의 상위 비트를 나타내는 역할을 하고, EP_Low는 액세스 유닛의 SPN_EP_start 및 PTS_EP_start의 하위 비트를 나타내는 역할을 한다.
도면 중의 인출선 cu4는 EP_High의 내부 구성을 클로즈업하고 있다. 이 인출 선으로 표시한 바와 같이, EP_High(i)는, EP_Low에 대한 참조 값인 『ref_to_EP_Low_id[i]』와, 액세스 유닛의 선두에 해당하는 Non-IDR I픽처, IDR픽처의 PTS의 상위 비트를 나타내는 『PTS_EP_High[i]』와, 액세스 유닛의 선두에 해당하는 Non-IDR I픽처, IDR픽처의 SPN의 상위 비트를 나타내는 『SPN_EP_High[i]』로 이루어진다. 여기서 i란, 임의의 EP_High를 식별하기 위한 식별자이다.
도면 중의 인출선 cu5는 EP_Low의 구성을 클로즈업하고 있다. 인출선 cu5에 도시한 바와 같이, EP_Low는, 대응하는 액세스 유닛이 IDR 픽처인가 여부를 나타내는 『is_angle_change_point(EP_Low_id)』와, 대응하는 액세스 유닛의 사이즈를 나타내는 『I_end_position_offset(EP_Low_id)』와, 대응하는 액세스 유닛(Non-IDR I픽처, IDR픽처)의 PTS의 하위 비트를 나타내는 『PTS_EP_Low(EP_Low_id)』와, 대응하는 액세스 유닛(Non-IDR I픽처, IDR픽처)의 SPN의 하위 비트를 나타내는 『SPN_EP_Low(EP_Low_id)』로 이루어진다. 여기서 EP_Low_id는 임의의 EP_Low를 식별하기 위한 식별자이다.
<Clip 정보의 설명 2. EP_map>
이하, 구체 예를 통하여 EP_map에 대하여 설명한다. 도 7은 영화의 비디오 스트림에 대한 EP_map 설정을 나타내는 도면이다. 제 1 단째는 표시 순으로 배치된 복수의 픽처(MPEG4-AVC에 규정된 IDR픽처, I픽처, B픽처, P픽처)를 나타내고, 제 2 단째는 그 픽처에서의 시간 축을 나타낸다. 제 4 단째는 BD-ROM 상의 TS 패킷 열을 나타내고, 제 3 단째는 EP_map의 설정을 나타낸다.
제 2 단째의 시간 축에서 시점 t1 ~ t7에 액세스 유닛이 되는 IDR픽처 및 I픽처가 존재한다. 그리고 이들 t1 ~ t7의 시간 간격이 1초 정도라고 하면, 영화에 이용되는 비디오 스트림에서의 EP_map은 t1 ~ t7을 엔트리 시각(PTS_EP_start)으로 나타내고, 이에 대응시켜서 엔트리 위치(SPN_EP_start)를 나타내도록 설정된다.
<PlayList 정보>
이어서, PlayList 정보에 대하여 설명한다. 확장자 "mpls"가 부여된 파일(00001.mpls)은 PlayList(PL) 정보를 저장한 파일이다.
도 8은 PlayList 정보의 데이터 구조를 나타내는 도면으로, 본 도면에서 인출선 mp1에 나타낸 바와 같이, PlayList 정보는 MainPath를 정의하는 MainPath 정보(MainPath())와, 챕터를 정의하는 PlayListMark 정보(PlayListMark())로 이루어진다.
<PlayList 정보의 설명 1. MainPath 정보>
먼저, MainPath에 대하여 설명한다. MainPath는 주 영화인 비디오 스트림이나 오디오 스트림에 대하여 정의되는 재생경로이다.
MainPath는, 화살표 mp1에서 나타내는 바와 같이, 복수의 PlayItem 정보 #1 … #m으로 정의된다. PlayItem 정보는 MainPath를 구성하는 하나 이상의 논리적인 재생구간을 정의한다. PlayItem 정보의 구성은 인출선 hs1에 의해 클로즈업되어 있다. 이 인출 선에 나타낸 바와 같이, PlayItem 정보는 재생구간의 IN 점 및 OUT 점이 속하는 AVClip의 재생구간 정보의 파일명을 나타내는 『Clip_Information_file_name』과, AVClip의 부호화 방식을 나타내는 『Clip_codec_identifier』과, PlayItem이 멀티앵글을 구성하는가 여부를 나타내는 『is_multi_angle』과, 이 PlayItem이 대상으로 하고 있는 STC_Sequence를 고유하게 나타내는 『ref_to_STC_id[0]』와, 이 PlayItem과 그 하나 앞의 PlayItem의 접속을 심리스하게(seamlessly) 행할지 여부를 나타내는 『connection_condition』과, 재생구간의 시작점을 나타내는 시간정보『In_time』과, 재생구간의 종료 점을 나타내는 시간정보 『Out_time』과, 이 PlayItem에서 마스크 해야 할 사용자 오퍼레이션(user operation)이 어느 것인가를 나타내는 『UO_mask_table』과, 이 PlayItem의 도중으로의 랜덤 액세스(random access)를 기허가할지 여부를 나타내는 『PlayItem_random_access_flag』와, 이 PlayItem의 재생종료 후, 최후의 픽처의 정지표시를 계속할지 여부를 나타내는 『Still_mode』와 『STN_table』로 구성된다. 이 중, 재생경로를 구성하는 것은 재생구간의 시작점을 나타내는 시간정보 『In_time』, 재생구간의 종료 점을 나타내는 시간정보 『Out_Time』의 세트이고, 재생경로 정보는 이 『In_Time 』 및 『Out_Time』의 세트로 구성된다.
도 9는 AVClip과 PlayList 정보의 관계를 나타내는 도면이다. 제 1 단째는 PlayList 정보가 갖는 시간 축을 나타낸다. 제 2 단째에서 제 5 단째는 EP_map에서 참조되어 있는 비디오 스트림(도 7에 나타낸 것과 동일)을 나타낸다.
PlayList 정보는 PlayItem 정보 #1, #2라는 2개의 정보를 포함하고 있고, 이들 PlayItem 정보 #1, #2의 In_time, Out_time에 의해 2개의 재생구간이 정의되게 된다. 이들 재생경로를 배열시키면 AVClip 시간 축과는 다른 시간 축이 정의되게 된다. 이것이 제 1 단째에 나타낸 PlayItem 시간 축이다. 이와 같이 PlayItem 정보의 정의에 의해 AVClip과는 다른 시간 축의 정의가 가능해진다.
<STN_table>
STN_table은 PlayItem의 Clip_Information_file_name으로 지정되어 있는 AVClip에 다중화된 복수 엘리멘터리 스트림 중 재생 가능한 것을 나타내는 테이블이다. 구체적으로 말하면, STN_table은 복수의 엘리멘터리 스트림 각각에 대한 엔트리를 attribute와 대응시킴으로써 구성된다.
도 10(a)은 STN_table의 내부 구성을 나타내는 도면이다. 본 도면에 나타낸 바와 같이, STN_table은 STN_table에서의 entry와 attribute와의 세트(entry-attribute)를 복수 포함하고, 이들 entry-attribute의 세트의 개수(number_of_video_stream_entries, number_of_audio_stream_entries, number_of_PG_ stream_entries, number_of_IG_stream_entries)를 나타내는 데이터 구조로 되어 있다.
entry-attribute의 세트는 도면 중의 괄호기호 "{"에 나타낸 바와 같이, PlayItem에서 재생 가능한 비디오 스트림, 오디오 스트림, PG_stream, IG 스트림 각각에 대응하고 있다.
entry-attribute의 상세에 대하여 설명한다. 도 10(b) ~ (e)는 entry-attribute의 상세를 나타내는 도면이다.
도 10(b)은 비디오 스트림에 대응한 entry-attribute의 세트를 나타내는 도면이다.
비디오 스트림에서의 엔트리는 AVClip을 다중분리함에 있어서, 당해 비디오 스트림의 추출에 이용되는 PID를 나타내는 『ref_to_stream_PID_of_mainClip』을 포함한다.
비디오 스트림에서의 attribute는 0x02로 설정된 『stream_coding_type』와 비디오 스트림의 표시 레이트를 나타내는 『frame_rate』 등을 포함한다.
도 10(c)은 오디오 스트림에 대응한 entry-attribute의 세트를 나타내는 도면이다.
오디오 스트림에서의 엔트리는 AVClip를 다중분리함에 있어서, 당해 오디오 스트림의 추출에 이용되는 PID를 나타내는 『ref_to_stream_PID_of_mainClip』을 포함한다.
오디오 스트림에서의 attribute는 0x80(LinearPCM), 0x81(AC-3), 0x82(DTS) 중 어느 하나로 설정됨으로써 오디오 스트림의 코딩타입(coding type)을 나타내는 『stream_coding_type』와, 대응하는 오디오 스트림의 채널 구성을 나타내고, 멀티채널의 출력 여부를 나타내는 『audio_presentation_type』와, 대응하는 오디오 스트림의 언어속성을 나타내는 『audio_language code』 등으로 이루어진다.
멀티채널에는 5.1Ch의 서라운드 음성 외에 스테레오 음성도 포함되나, 이후의 설명에서는 멀티채널은 5.1Ch의 서라운드 음성만을 의미하는 것으로 설명한다.
도 10(d)은 PG 스트림에 대응한 entry-attribute의 세트를 나타내는 도면이다.
PG 스트림에서의 entry는 AVClip를 다중분리함에 있어서, 당해 PG 스트림의 추출에 이용되는 PID를 나타내는 『ref_to_stream_PID_of_mainClip』을 포함한다.
PG 스트림에서의 attribute는 0x90으로 설정됨으로써, PG 스트림의 코딩을 나타내는 『stream_coding_type』와, 대응하는 PG 스트림의 언어속성을 나타내는 『PG_language code』로 이루어진다.
도 10(e)은 IG 스트림에 대응한 entry-attribute의 세트를 나타내는 도면이다.
IG 스트림에서의 entry는 AVClip를 다중분리함에 있어서, 당해 IG 스트림의 추출에 이용되는 PID를 나타내는 『ref_to_stream_PID_of_mainClip』을 포함한다.
IG 스트림에서의 attribute는 0x91로 설정됨으로써, IG 스트림의 코딩을 나타내는 『stream_coding_type』와, 대응하는 IG 스트림의 언어속성을 나타내는 『language code』로 이루어진다.
<PlayList 정보의 설명 2. PlayListMark>
이상이 본 실시 예에 관한 PlayItem 정보에 대한 설명이다. 이어서 PlayListMark 정보에 대하여 설명한다.
도 11은 PlayList 정보의 PlayListMark 정보의 내부 구성을 나타내는 도면이다. 본 도면의 도면 중의 인출선 pm0에 나타낸 바와 같이, PlayListMark 정보는 복수의 PLMark 정보(#1 ~ #n)로 이루어진다. PLMark 정보(PLmark())는 PL 시간 축 중 임의의 구간을 챕터 점으로 지정하는 정보이다. 인출선 mp1에 나타낸 바와 같이, PLmark 정보는 챕터 지정의 대상인 PlayItem을 나타내는 『ref_to_PlayItem_Id』와, 그 PlayItem에서의 챕터 위치를 시간표기에 의해 나타내는 『mark_time_stamp』를 포함한다.
도 12는 PlayList 정보의 PLMark 정보에 의한 챕터 위치의 지정을 나타내는 도면이다. 본 도면의 제 2 단째에서 제 5 단째는 도 10에 나타낸 EP_map과 AVClip을 나타낸다.
본 도면의 제 1 단째는 PLMark 정보와 PL 시간 축을 나타낸다. 이 제 1 단째에는 2개의 PLMark 정보 #1 ~ #2가 존재한다. 화살표 kt 1, 2는 PLMark 정보의 ref_to_PlayItem_Id에 의한 지정을 나타낸다. 이 화살표에서도 알 수 있듯이, PLMark 정보의 ref_to_PlayItem_Id는 PlayItem 정보 각각을 지정하고 있음을 알 수 있다. 또, Mark_time_Stamp는 PlayItem 시간 축 중 Chapter #1, #2가 되어야 할 시점을 나타낸다. 이와 같이, PLMark 정보는 PlayItem 시간 축 상에 챕터 점을 정의할 수 있다.
AVClip-SubClip을 동기화시킬 수 있는 동기구간의 정의를 가능하게 하는 것이 BD-ROM에서의 플레이리스트 정보의 특징이다. 이상의 Clip 정보 및 플레이리스트 정보는 "정적 시나리오"로 분류된다. 왜냐하면, 이상의 Clip 정보 및 플레이리스트 정보에 의해 정적인 재생단위인 플레이리스트가 정의되기 때문이다. 이상으로 정적 시나리오에 대한 설명을 마친다.
이어서, "동적 시나리오"에 대하여 설명한다. 동적 시나리오란, AVClip의 재생제어를 동적으로 규정하는 시나리오 데이터이다. "동적으로"라는 것은 재생장치에서의 상태 변화나 사용자로부터의 키 이벤트(key event)에 의해 재생제어의 내용이 바뀌는 것을 말한다. BD-ROM에서는 이 재생제어의 동작환경으로 2개의 모드를 상정하고 있다. 첫 번째는 DVD 재생장치의 동작환경과 비슷한 동작환경으로, 커맨드 베이스(command-base)의 실행환경이다. 두 번째는 Java(등록상표) 가상 머신의 동작환경이다. 이들 2개의 동작환경 중 첫 번째는 HDMV 모드라고 불린다. 두 번째는 BD-J 모드라고 불린다. 이들 2개의 동작환경이 있으므로, 동적 시나리오는 이 중 어느 하나의 동작환경을 상정하여 기술된다. HDMV 모드를 상정한 동적 시나리오는 무브 오브젝트(Movie Object)라고 불린다. 한편, BD-J 모드를 상정한 동적 시나리오는 BD-J Object라고 불린다.
우선 먼저, 무브 오브젝트에 대하여 설명한다.
<무브 오브젝트>
무브 오브젝트는 도 2에 나타낸 Movie Object.bdmv라는 파일에 저장되고 , 내비게이션 커맨드 열(navigation command sequence)을 포함한다.
내비게이션 커맨드 열은, 조건분기, 재생장치에서의 상태 레지스터의 설정, 상태 레지스터의 설정 값 취득 등을 실현하는 커맨드 열로 이루어진다. 무브 오브젝트에서 기술 가능한 커맨드를 이하에 설명한다.
PlayPL 커맨드
서식 : PlayPL(제 1 인수(argument), 제 2 인수)
제 1 인수는 플레이리스트의 번호이며, 재생해야 할 플레이리스트를 지정할 수 있다. 제 2 인수는 그 플레이리스트에 포함되는 PlayItem이나, 그 플레이리스트에서의 임의의 시각, 챕터(Chapter), 마크(Mark)를 이용하여 재생개시 위치를 지정할 수 있다.
PlayItem에 의해 PL 시간 축 상의 재생개시 위치를 지정한 PlayPL 함수를 PlayPLatPlayItem(),
Chapter에 의해 PL 시간 축 상의 재생개시 위치를 지정한 PlayPL 함수를 PlayPLatChapter(),
시각정보에 의해 PL 시간 축 상의 재생개시 위치를 지정한 PlayPL 함수를 PlayPLatSpecified Time()이라고 한다.
JMP 커맨드
서식 : JMP 인수
JMP 커맨드는 현재의 동적 시나리오를 도중에서 폐기하고(discard), 인수인 분기 처 동적 시나리오를 실행하는 분기이다. JMP 명령의 형식에는, 분기 처 동적 시나리오를 직접 지정하고 있는 직접 참조의 것과, 분기 처 동적 시나리오를 간접 참조하고 있는 간접 참조인 것이 있다.
무브 오브젝트에서의 내비게이션 커맨드의 기술은 DVD에서의 내비게이션 커맨드의 기술방식과 유사하므로, DVD 상의 디스크 콘텐츠를 BD-ROM에 이식하는 작업을 효율적으로 행할 수 있다. 무브 오브젝트에 대해서는 이하의 국제공개공보에 기재된 선행기술이 존재한다. 상세한 내용에 대해서는 본 국제공개공보를 참조하면 된다.
국제공개공보 WO 2004/074976
이상으로 무브 오브젝트에 대한 설명을 마친다. 이어서 BD-J Object에 대하여 설명한다.
<BD-J Object>
BD-J Object는 Java(등록상표) 프로그래밍 환경에서 기술된 BD-J 모드의 동적 시나리오이고, 00001 ~ 00003.bobj라는 파일에 저장된다.
도 13은 BD-J Object.bdmv의 내부 구성을 나타내는 도면이다. 애플리케이션 관리 테이블(AMT), 플레이리스트 관리 테이블(PLMT), 사운드 관리 테이블(SMT)로 이루어진다. 무브 오브젝트와의 차이는 BD-J Object에 커맨드가 직접 기술되어 있지 않은 점이다. 즉, 무브 오브젝트에서 제어순서는 내비게이션 커맨드에 의해 직접 기술되어 있다. 이에 비해 BD-Object에서는 Java(등록상표) 애플리케이션에 대한 지정을 애플리케이션 관리 테이블에 기재함으로써 간접적으로 제어순서를 규정하고 있다. 이와 같은 간접적인 규정에 의해 복수의 동적 시나리오에서 제어순서를 공통화한다고 하는 제어순서의 공통화를 효율적으로 행할 수 있다.
또, 무브 오브젝트에서의 플레이리스트 재생은 플레이리스트 재생을 명령하는 내비게이션 커맨드(PlayPl커맨드)의 기술에 의해 이루어지지만, BD-J Object에서의 플레이리스트 재생은 플레이리스트 재생순서를 나타내는 플레이리스트 관리 테이블을 BD-J Object에 포함함으로써 기술이 가능해진다.
이 BD-J Object에서의 Java(등록상표) 애플리케이션에 대하여 설명한다. 여기서 BD-J 모드가 상정하고 있는 Java(등록상표) 플랫폼은, Java(등록상표) 2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)과, Globally Executable MHP specification(GEM1.0.2) for package media targets를 모두(fully) 실장한 것이다.
이 BD-J 모드에서의 Java(등록상표) 애플리케이션은 xlet 인터페이스를 통해서 애플리케이션 매니저(Application Manager)에 의해 제어된다. xlet 인터페이스는 "loaded", "paused", "active", "destoryed"라는 4개의 상태를 갖는다.
상술한 Java(등록상표) 플랫폼은, JFIF(JPEG)와 PNG, 그 외의 이미지 데이터를 표시하기 위한 스탠더드(standard) Java(등록상표) 라이브러리를 포함한다. 따라서, Java(등록상표) 애플리케이션은 HDMV 모드에서 IG 스트림에 의해 실현되는 GUI와는 다른 GUI 프레임 워크(framework)를 실현할 수 있다. Java(등록상표) 애플리케이션에서의 GUI 프레임 워크는 GEM1.0.2에 규정된 HAVi 프레임 워크를 포함하고, GEM1.0.2에서의 리모트 컨트롤 내비게이션 기구(remote control navigation mechanism)를 포함한다.
이에 의해, Java(등록상표) 애플리케이션은, HAVi 프레임 워크에 의거한 버튼표시, 텍스트 표시, 온라인 표시(BBD의 내용)라는 표시를 동화상의 표시와 조합한 화면표시를 실현할 수 있고, 리모트컨트롤을 이용하여 이 화면표시에 대한 조작을 행할 수 있다.
이 Java(등록상표) 애플리케이션의 실체에 해당하는 것이, 도 2에서의 BDMV 디렉터리 바로 아래의 BDJA 디렉터리에 저장된 Java(등록상표) 아카이브 파일(archive file)(00001.jar, 00002.jar)이다. 이후, Java(등록상표) 아카이브 파일에 대하여 설명한다.
<Java(등록상표) 아카이브 파일>
Java(등록상표) 아카이브 파일(도 2의 00001.jar, 00002.jar)은, 하나 이상의 클래스 파일, 하나 이상의 데이터 파일 등을 하나로 결합함으로써 얻을 수 있는 파일로, BD-J 모드에서 동작해야 할 Java(등록상표) 애플리케이션을 구성한다.
도 14는 아카이브 파일에 의해 저장되어 있는 프로그램 및 데이터를 나타내는 도면이다. 본 도면에서의 프로그램 및 데이터는 틀 내에 나타낸 디렉터리 구조가 배치된 복수의 파일을 java(등록상표) 아카이브로 종합한 것이다. 틀 내에 나타낸 디렉터리 구조는, Root 디렉터리, Java(등록상표) 1, 2, 3 디렉터리, Image 1, 2, 3 디렉터리로 이루어지고, Root 디렉터리에 common.pkg가, Java(등록상표)1, Java(등록상표)2, Java(등록상표)3 디렉터리에 클래스 파일(00001.class ~ 00007.class)이, Image 1, Image 2, Image 3 디렉터리에 00001.JPEG ~ 00003.JPEG, 00004.PNG ~ 00006.PNG가 배치되어 있다. java(등록상표) 아카이브 파일은 이들을 java(등록상표) 아카이브로 결합함으로써 얻어진다. 이러한 클래스 파일 및 데이터는 BD-ROM에서 캐시(cache)에 판독됨으로써 전개되어, 캐시 상에서 디렉터리에 배치된 복수의 파일로서 취급된다. Java(등록상표) 아카이브 파일의 파일명에서의 "zzzzz"라는 5자리의 수치는 애플리케이션의 ID(application ID)를 나타낸다. 본 Java(등록상표) 아카이브 파일이 캐시에 판독되었을 때, 이 파일명에서의 수치를 참조함으로써 임의의 Java(등록상표) 애플리케이션을 구성하는 프로그램 및 데이터를 인출할 수 있다.
또, 본 실시 예에서 애플리케이션을 구성하는 프로그램 및 데이터는 Java(등록상표) 아카이브 파일로 결합이 되었으나, LZH 파일, zip 파일이어도 된다.
이상이 BD-J 모드에서의 동적 시나리오에 대한 설명이다.
<sound.bdmv>
이어서, sound.bdmv에 대하여 설명한다. sound.bdmv는, Java(등록상표) 애플리케이션의 GUI 프레임 워크에 대하여 조작이 이루어진 경우, 클릭 음으로 출력해야 할 오디오 데이터(이러한 오디오 데이터를 사운드 데이터라고 한다)가 저장되는 파일이다.
도 15는 파일 sound.bdmv의 구성을 나타내는 도면이다. 파일 sound.bdmv는 Sound Data()와 Sound Index()로 이루어진다. Sound Data()는 복수의 사운드 데이터(sound_data(0), sound_data(1))로 이루어진다. 이들 사운드 데이터 중 sound_data(0)는 Java(등록상표) 애플리케이션의 GUI 프레임 워크에 대한 조작 시에 제 1 클릭 음으로 출력되는 음원이다. sound_data(1)는 Java(등록상표) 애플리케이션의 GUI 프레임 워크에 대한 조작 시에 제 2 클릭 음으로 출력되는 음원이다. 이들 사운드 데이터는 sound_ID라고 불리는 식별자에 의해 지시된다.
Sound Index()는, 사운드 수(number_of_sound_entries), sound_data(0)에 대한 인덱스, sound_data(1)에 대한 인덱스로 이루어진다.
인덱스(index)는, 모노럴(monaural)/스테레오 등의 각 사운드의 속성(sound_attributes), 대응하는 사운드 데이터의 어드레스(sound_data_ start_address), 대응하는 사운드 데이터의 연속 길이(sound_data_length)로 이루어진다.
도 2 ~ 도 6에 나타낸 바와 같이, 영화의 극중에 사용되는 음성(대사, BGM, 효과음)의 음원은 오디오 스트림으로 AVClip 내에 다중화된다. 이것은 영화 극중의 음성을 나타내는 오디오 스트림을 비디오 스트림의 판독과 동시에 재생장치에 공급하기 위해서이다. 이에 비해, 파일 sound.bdmv는 AVClip과는 별개의 파일로 BD-ROM에 기록된다. 파일 sound.bdmv는 AVClip과는 별개의 파일로 기록되므로, AVClip의 판독 중에 사운드 데이터를 출력시키고자 하면, 파일 sound.bdmv를 판독하기 위한 광 픽업의 점프가 발생하여 AVClip의 판독이 중단될 수밖에 없다. 이러한 중단이 발생하면, AVClip의 재생에 끊어짐이 생긴다.
이러한 AVClip의 재생 중단을 피하기 위해서는, AVClip의 재생이 이루어지고 있지 않은 시점에서 파일 sound.bdmv를 미리 버퍼에 프리 로드(pre-load) 해 둘 필요가 있다. 즉, AVClip의 재생에 앞서 파일 sound.bdmv 내의 사운드 데이터를 프리 로드 해 둘 필요가 있다. 이상이 파일 sound.bdmv에 대한 설명이다.
<Index.bdmv>
Index.bdmv는 타이틀을 구성하는 무브 오브젝트 또는 BD-J Object를 나타내는 테이블이다.
타이틀(Title)에서 어떤 타이틀의 구성요소가 되는 무브 오브젝트는 어느 것인가, 또는 어떤 타이틀의 구성요소가 되는 BD-J Object는 어느 것인가를 정의한다.
Index.bdmv에 대해서는 이하의 국제공개공보에 상세한 내용이 기재되어 있다. 상세한 내용에 대해서는 본 공보를 참조하면 된다.
국제공개공보 WO 2004/025651 A1 공보
이후, 도 15에 나타낸 애플리케이션 관리 테이블, 플레이리스트 관리 테이블, 사운드 관리 테이블 각각에 대하여 더욱 상세하게 설명한다.
<애플리케이션 관리 테이블>
애플리케이션 관리 테이블(AMT)에 대하여 설명한다. 애플리케이션 관리 테이블(AMT)이란, 상술한 GEM1.0.2 for package media targets에서의 "애플리케이션 시그널링(application signaling)"을 실장하는 테이블이다. "애플리케이션 시그널링"이란, GEM1.0.2가 규정하는 MHP(Multimedia Home Platform)에서 "서비스"를 생존구간으로 애플리케이션의 기동 및 실행을 행하는 제어를 말한다. 본 실시 예에서의 애플리케이션 관리 테이블은 이 "서비스" 대신에 BD-ROM에서의 "타이틀"을 생존구간으로 하여 애플리케이션의 기동 및 실행의 제어를 실현한다.
도 16(a)은 애플리케이션 관리 테이블의 내부 구성을 나타내는 도면이다. 본 도면에 나타낸 바와 같이, 애플리케이션 관리 테이블은, 『life_cycle』, 『apli_id_ref』, 『run_attribute』와, 『run_priority』로 이루어진다.
도 16(b)은 애플리케이션 관리 테이블을 구성하는 정보요소의 의미 내용을 나타낸다.
『life_cycle』은 애플리케이션의 "생존구간"을 나타낸다.
『apli_id_ref』는 "애플리케이션 식별자"에 대한 참조 값이 기술됨으로써, 좌측에 기재된 생존구간을 갖는 애플리케이션이 어느 것인가를 나타낸다. 애플리케이션 식별자는 Java(등록상표) 아카이브 파일에서 파일명으로 부여된 5자리의 수치 zzzzz로 표현된다. 『apli_id_ref』에는 이 5자리의 수치가 기술된다.
『run_attribute』는 당해 생존구간에서의 애플리케이션의 "기동속성"이 기술된다. 기동속성에는, AutoRun, Present, Suspend라는 종별이 있다.
『run_priority』는 당해 생존구간에서의 애플리케이션의 "기동 우선도"가 기술된다. BD-J Object에서는 이들 정보를 이용하여 애플리케이션의 거동을 제어한다.
<생존구간>
애플리케이션 관리 테이블에 규정되는 정보 중 생존구간에 대하여 설명한다.
생존구간이란, BD-ROM에 기록된 콘텐츠 전체의 시간 축에서 가상 머신의 워크 메모리 상에서 애플리케이션이 생존할 수 있는 구간을 나타낸다. 워크 메모리에서의 "생존"이란, 그 애플리케이션을 구성하는 xlet 프로그램이 Java(등록상표) 가상 머신 내의 워크 메모리에 판독되어 Java(등록상표) 가상 머신에 의한 실행이 가능하게 되어 있는 상태를 말한다.
Java(등록상표) 가상 머신에서 애플리케이션을 동작시키는 경우, 시간 축의 어디에서 애플리케이션에 의한 서비스를 개시하고, 시간 축의 어디에서 애플리케이션에 의한 서비스를 종료하는가 하는 "서비스의 개시 점, 종료 점"을 명확하게 규정하는 것이 중요해진다. 이 서비스의 개시 점, 종료 점을 규정하는 것이 애플리케이션 관리테이블에서의 생존구간이다.
한편, DVD-Video와 같이 판독 전용 디스크로 공급되는 디스크 콘텐츠는 톱 메뉴 타이틀을 핵심으로 한 구조로 되어 있다. 그 톱 메뉴 타이틀에서 개개의 저작물로 분기하여 재생을 행하고, 그 후 다시 톱 메뉴 타이틀로 되돌아간다고 하는 독특한 상태천이를 이룬다. 도 17은 디스크 콘텐츠에서의 상태천이를 나타내는 도면이다. 본 도면에서의 사각 틀은 타이틀이다. 타이틀이란, 디스크 콘텐츠 특유의 상태천이에서 하나의 "상태"에 해당하는 재생단위이고, 이 타이틀이 Java(등록상표) 애플리케이션의 생존구간으로 취급된다.
타이틀에는, BD-ROM의 로딩 시에 최초로 재생되는 『FirstPlayTitle』, Top_menu를 구성하는 『Top_menuTitle』, 이들 이외의 일반적인 『Title』이 있다. 또, 도면 중의 화살표 jh 1, 2, 3, 4, 5, 6, 7, 8은 타이틀 간의 분기를 상징적으로 나타낸다. 본 도면에 나타낸 상태천이란, BD-ROM 로딩 시에 『FirstPlayTitle』이 재생되고, 『Top_menuTitle』로의 분기가 발생하여 톱 메뉴에 대한 선택 대기가 되는 것이다.
톱 메뉴에 대한 선택 조작이 사용자에 의해 이루어지면, 선택에 따라서 해당 타이틀의 재생을 행하고, 다시 TopMenu Title로 되돌아간다고 하는 처리를 BD-ROM의 이젝트(eject)가 이루어질 때까지 오래도록 반복한다고 하는 것이 디스크 콘텐츠 특유의 상태천이이다.
그러면, 도 17과 같은 상태천이를 이루는 디스크 콘텐츠에서 타이틀은 어떻게 생존구간으로 규정되는 것인가. BD-ROM의 로딩이 이루어진 후, 도 17에서 화살표 jh 1, 2, 3, 4……에 나타낸 참조부호의 수치 순으로 분기가 이루어지고, BD-ROM이 이젝트된 것으로 한다. 그렇게 하면, BD-ROM이 로딩되고 나서 이젝트 될 때까지의 연속 시간대를 하나의 시간 축으로 볼 수 있다. 이 시간 축을 디스크 전체의 시간 축으로 한다. 도 18(a)은 디스크 전체의 시간 축을 나타내는 도면이고, 도 18(b)은 이 시간 축에서의 구성을 나타낸다. 도 18(b)에 나타낸 바와 같이, 디스크 전체의 시간 축은 FirstPlay Title이 재생되어 있는 구간, TopMenu Title이 재생되어 있는 구간, title#1이 재생되어 있는 구간 등으로 이루어진다. 이들 타이틀의 재생구간은 어떻게 규정되어 있는가 하면, 타이틀은 유일한 BD-J Object로 구성되므로, 어느 무브 오브젝트 또는 BD-J Object가 유효로 되어 있는 기간을 타이틀의 재생구간으로 생각할 수 있다.
즉, FirstPlay Title, TopMenu Title, 그 외의 타이틀은 모두 동적 시나리오로 구성되므로, 타이틀을 구성하는 BD-J Object 중 어느 것이 현재 BD-J Object로 Activated되고, 재생장치 내에서 해독 및 실행에 제공되는 기간을 타이틀의 재생구간으로 정의할 수 있다. 도 19(a)는 BD-ROM 전체의 시간 축에서 식별자 bobj_id에 의해 특정되는 BD-J Object에서 특정되는 타이틀 재생구간을 나타내는 도면이다. 여기서 식별자 bobj_id에 의해 특정되는 BD-J Object가 하나의 타이틀을 구성하고 있으면, 그 식별자 bobj_id에 의해 특정되는 BD-J Object가 유효로 되어 있는 BD-ROM 시간 축 상의 한 구간을 타이틀의 재생구간으로 생각할 수 있다.
여기서, BD-J Object가 Activate되어 있는 기간의 종료 시기는 타이틀 분기가 이루어질 때까지이다. 즉, 타이틀 분기가 이루어질 때까지 실행의 대상으로 되어 있는 동적 시나리오는 현재 BD-J Object로 취급되므로, 그 BD-J Object에서 JumpTitle이 발생할 때까지 하나의 구간을 타이틀 구간으로 취급한다.
이어서, 타이틀 구간과 PL 시간 축의 관계에 대하여 설명한다. 상술한 바와 같이 무브 오브젝트, BD-J Object에서는 하나의 처리순서로 플레이리스트 재생순서를 기술할 수 있다. 플레이리스트 재생순서의 기술이 있으며, 상술한 PL 시간 축의 전부 또는 일부가 타이틀 구간에 귀속하게 된다. 도 19(a)의 일례에서 BD-J Object에 플레이리스트 관리 테이블이 기술되어 있다고 한다. 이 경우, BD-J Object에 대응하는 타이틀 구간에는, 도 19(b)에 나타낸 바와 같이, PL 시간 축이 귀속한다. 이 PL 시간 축에는 또한 복수의 챕터(Chapter#1, #2, #3)가 정의될 수 있으므로, BD-ROM 상의 시간 축에는 BD-ROM 전체 - 타이틀 - 플레이리스트 - 챕터라는 도메인이 존재하게 된다. 이들 도메인을 이용하여 애플리케이션의 생존구간을 기술할 수 있다. 또, 플레이리스트 재생은 애플리케이션 실행과 동시에 이루어지므로, 플레이리스트 재생의 도중에서 타이틀 분기가 발생할 수 있다. 이 경우, 하나의 타이틀 재생구간 내에는 플레이리스트 시간 축 전체가 아니라 플레이리스트 시간 축의 일부분만이 귀속하게 된다. 즉, 하나의 타이틀의 재생구간에서 플레이리스트 시간 축의 전체가 귀속할지, 그 일부분이 귀속할지는 타이틀 분기가 언제 발생할지에 의해 변한다.
도 20은 도 19(b)의 시간 축 상에 규정되는 생존구간의 전형을 나타내는 도면이다. 본 도면에 나타낸 바와 같이, 애플리케이션에는, 타이틀을 생존구간으로 한 "타이틀 바운더리 애플리케이션(title boundary application)", 타이틀 내에서의 챕터를 생존구간으로 한 "챕터 바운더리 애플리케이션(chapter boundary application)", BD-ROM 전체의 시간 축을 생존구간으로 한 "타이틀 언바운더리 애플리케이션(title unboundary application)"이라는 3개의 전형이 있다.
이 중, 타이틀 바운더리 애플리케이션의 생존구간은 그 타이틀의 식별자를 이용하여 정의할 수 있다. 또, 챕터 바운더리 애플리케이션의 생존구간은 챕터가 속하는 타이틀의 식별자와 그 챕터의 식별자의 세트를 이용하여 정의할 수 있다.
플랫폼이 동작하고 있어도 타이틀이나 챕터라는 생존구간이 종료하면, 리소스를 애플리케이션에서 회수할 수 있다. 리소스 회수의 기회를 보증하므로, 플랫폼의 동작을 안정화시킬 수 있다.
가까운 장래에 실시될 디스크 콘텐츠를 제재(題材)로 선택하여, 애플리케이션 관리 테이블에서의 생존구간의 기술에 대하여 구체 예를 함께 설명한다. 여기서 제재로 하는 디스크 콘텐츠는, 영상 본편을 구성하는 본편 타이틀(title#1), 온라인 쇼핑을 구성하는 온라인 쇼핑 타이틀(title#2), 게임 애플리케이션을 구성하는 게임 타이틀(title#3)이라고 하는 성격이 다른 3개의 타이틀을 포함하는 것이다. 도 21은 본편 타이틀, 온라인 쇼핑 타이틀, 게임 타이틀이라고 하는 3개의 타이틀을 포함하는 디스크 콘텐츠를 나타내는 도면이다. 본 도면에서의 우측에는 Index.bdmv를 기술하고 있고, 좌측에는 3개의 타이틀을 기술하고 있다.
우측에서의 점선 틀은 각 애플리케이션이 어느 타이틀에 속해 있는가 라고 하는 귀속관계를 나타낸다. 3개의 타이틀 중 title#1은, application#1, application#2, application#3이라는 3개의 애플리케이션으로 이루어진다. title#2는, application#3, application#4라는 2개의 애플리케이션, title#3은 application5를 포함한다. 도 21의 일례에서 application#3은, title#1, title#2의 쌍방에서 기동된다.
도 21의 점선으로 표시된 귀속관계로부터 각 애플리케이션의 생존구간을 그래프화하면 도 22(a)와 같이 된다. 본 도면에서 가로축은 타이틀 재생구간이고, 세로축 방향에 각 애플리케이션의 생존구간을 배치하고 있다. 여기서, application#1, application#2는 title#1에만 귀속해 있으므로, 이들의 생존구간은 title#1 내로 한정되어 있다. application#4는 title#2에만 귀속해 있으므로, 이들의 생존구간은 title#2 내로 한정되어 있다. application#5는 title#3에만 귀속해 있으므로, 이들의 생존구간은 title#3 내로 한정되어 있다. application#3은 title#1 및 title#2에 귀속해 있으므로, 이들의 생존구간은 title#1-title#2에 걸쳐 있다. 이 생존구간에 의거하여 애플리케이션 관리 테이블을 기술하면, title#1, #2, #3의 애플리케이션 관리 테이블은 도 22(b)와 같이 된다. 이와 같이 애플리케이션 관리 테이블이 기술되면, title#1의 재생개시 시에 application#1, application#2, application#3을 워크 메모리에 로드해 둔다. 그리고 title#2의 개시 시에 application#1, application#2를 워크 메모리로부터 삭제하여 application#3만으로 하는 제어를 행한다. 이와 마찬가지로 title#2의 재생개시 시에 application#4를 워크 메모리에 로드해 두고, title#3의 개시 시에 application#3, #4를 워크 메모리로부터 삭제하는 제어를 행할 수 있다.
또, title#3의 재생 중에 application#5를 워크 메모리에 로드해 두고, title#3의 재생 종료시에 application#5를 워크 메모리로부터 삭제하는 제어를 행할 수 있다.
타이틀 간 분기가 있었던 경우에도, 분기 원(branch source)- 분기 처(branch destination)에서 생존해 있는 애플리케이션은 워크 메모리 상에 저장해두고, 분기 원에는 없고 분기 처에만 존재하는 애플리케이션을 워크 메모리에 판독하면 되므로, 애플리케이션을 워크 메모리에 판독하는 횟수는 필요 최저 수가 된다. 이와 같이, 판독 횟수를 적게 함으로써 타이틀의 경계를 의식하지 않는 애플리케이션, 즉 언바운더리(unboundary) 한 애플리케이션을 실현할 수 있다.
이어서, 애플리케이션의 기동속성에 대하여 더욱 상세하게 설명한다. 기동속성에는 자동적인 기동을 나타내는 「AutoRun」, 자동기동의 대상은 아니나, 가상 머신의 워크 메모리에 두어도 됨을 나타내는 「Present」, 가상 머신의 워크 메모리에는 둘 수 있으나, CPU 파워의 할당은 불가능해지는 「Suspend」가 있다.
「AutoRun」은, 대응하는 타이틀의 분기와 동시에, 그 애플리케이션을 워크 메모리에 판독하고, 또한 실행한다는 취지를 나타내는 속성이다. 어떤 타이틀로부터 다른 타이틀로의 분기가 있으면, 애플리케이션 관리를 행하는 관리 주체(애플리케이션 매니저)는, 그 분기 처 타이틀에서 생존하고 있고, 또한, 기동속성이 AutoRun으로 설정된 애플리케이션을 가상 머신의 워크 메모리에 판독하여 실행한다. 이에 의해, 그 애플리케이션은 타이틀 분기와 함께 자동으로 기동되게 된다.
기동속성 「Present」는 계속 속성이며, 분기 원 타이틀에서의 애플리케이션의 상태를 계속하는 것을 나타낸다. 또, 대응하는 애플리케이션을 실행하여도 됨을 나타내는 속성이다. 기동속성이 「Present」인 경우, 이 기동속성이 부여된 애플리케이션은 다른 애플리케이션으로부터의 호출이 허가되게 된다. 애플리케이션의 관리를 행하는 관리 주체(애플리케이션 매니저)는 기동 중의 애플리케이션에서 호출이 있으면, 그 애플리케이션의 애플리케이션 ID가 애플리케이션 관리 테이블에 기술되어 있고, 기동속성이 「Present」인가 여부를 판정한다. 「Present」이면 그 애플리케이션을 워크 메모리에 로드한다. 한편, 그 호출 처(call destination) 애플리케이션의 ㅇ애플리케이션 ID가 애플리케이션 관리 테이블에 기술되어 있지 않은 경우, 그 애플리케이션은 워크 메모리에 로드되지 않는다. 애플리케이션에 의한 호출은 이 「Present」가 부여된 애플리케이션으로 한정되게 된다. 「Present」는 기동속성을 명시적으로 지정하지 않은 경우에 부여되는 디폴트(default)의 기동속성이므로, 어떤 애플리케이션의 기동속성이 무 지정 「--」인 경우, 그 애플리케이션의 기동속성은 이 Present임을 의미한다.
「Suspend」란, 리소스(resource)는 할당되어 있으나, CPU 파워는 할당되지 않은 상태로 애플리케이션이 놓이는 것을 말한다. 이러한 Suspend는, 예를 들어, 게임 타이틀의 실행 중에 사이드 경로(side path)를 경유하는 처리의 실현에 의의를 갖는다.
도 23은 기동속성이 취할 수 있는 3가지 형태(Present, AutoRun, Suspend)와, 직전 타이틀에서의 애플리케이션 상태의 3가지 형태(비 기동, 기동 중, Suspend)가 취할 수 있는 조합을 나타내는 도면이다. 직전 상태가 "비 기동"인 경우, 기동속성이 "AutoRun"이면 분기 처 타이틀에서 그 애플리케이션은 기동되게 된다.
직전 상태가 "비 기동"이고, 기동속성이 "Present", "AutoRun"이면, 분기 처 타이틀에서 그 애플리케이션은 아무것도 하지 않으며, 상태를 계속하게 된다.
직전 상태가 "기동 중"인 경우, 기동속성이 "Present", "AutoRun"이면, 분기 처 타이틀에서 그 애플리케이션은 아무것도 하지 않으며, 상태를 계속하게 된다.
기동속성이 "Suspend"이면, 애플리케이션의 상태는 Suspend되게 된다. 직전 상태가 "Suspend" 인 경우, 분기 처 타이틀의 기동속성이 "Suspend"이면 Suspend를 유지하게 된다. "Present" 또는 "AutoRun"이면, 분기 처 타이틀에서 그 애플리케이션은 재개(resume)하게 된다. 애플리케이션 관리 테이블에서 생존구간 및 기동속성을 정의함으로써, 타이틀 재생구간의 진행에 따라 Java(등록상표) 애플리케이션을 동작시킨다고 하는 동기제어가 가능하게 되어서, 영상의 재생과 프로그램의 실행을 수반한 다양한 애플리케이션을 세상에 배출할 수 있다.
또, 직전 상태가 "Suspend"이고, 분기 처 타이틀의 기동속성이 "Present"인 경우는, 직전 상태, 즉 서스펜드 상태를 유지하여도 된다.
최후에, 각 애플리케이션에 대한 "기동 우선도"에 대하여 설명한다.
이 기동 우선도는, 0 ~ 255의 값을 취하며, 메모리 리소스 고갈 시나, CPU 부하가 높아졌을 때 어느 애플리케이션을 강제적으로 종료시킬지, 또, 어느 애플리케이션에서 리소스를 빼앗을지의 처리를 애플리케이션 매니저가 행함에 있어서의 판단재료가 된다. 이 경우, 애플리케이션 매니저는 기동 우선도가 낮은 애플리케이션의 동작을 종료하고, 기동 우선도가 높은 애플리케이션의 동작을 계속시킨다고 하는 처리를 행한다.
또, 기동 우선도는, 재생 중 플레이리스트에 대한 요구가 경합한 경우의 애플리케이션 사이의 조정에도 이용된다. 여기서 어떤 애플리케이션이 어떤 플레이리스트의 빨리 감기를 한다고 하자. 여기서 다른 애플리케이션이 동일한 플레이리스트에 대한 정지(pause) 요구를 하였다고 하면, 이들의 애플리케이션에 부여된 기동 우선도를 비교한다. 그리고 빨리 감기를 명령한 애플리케이션의 기동 우선도가 높으면, 이 애플리케이션에 의한 빨리 감기를 계속해서 행한다. 역으로, 정지를 명령한 애플리케이션의 기동 우선도가 높으면, 빨리 감기 중에 플레이리스트의 정지를 행한다.
이상의 생존구간, 기동속성, 기동 우선도에 의해 가상 머신 상에서 동작할 수 있는 애플리케이션의 수를 소정 수 이하로 제한하도록 규정해 두는 것이 편집(authoring) 시에 가능하다. 따라서, 애플리케이션의 안정된 동작을 보증할 수 있다.
<플레이리스트 관리 테이블>
이상이 애플리케이션 관리 테이블에 대한 설명이다. 이어서, 플레이리스트 관리 테이블(PLMT)에 대하여 설명한다. 플레이리스트 관리 테이블이란, 애플리케이션의 생존구간에서 각 애플리케이션 실행과 동시에 행해야 할 재생제어를 나타내는 테이블이다. 애플리케이션의 동작이라는 것은 불안정하며, 기동의 실패나 이상종료가 있을 수 있다. 이에, 기동실패, 이상종료가 있었던 경우의 Fail Safe 기구로, 본 실시 예에서는 애플리케이션의 생존구간 별로 플레이리스트 관리 테이블을 설치하고 있다. 플레이리스트 관리 테이블은 어떤 애플리케이션의 생존구간이 개시했을 때, 이와 동시에 행해야 할 재생제어를 규정하는 정보이다. 이 재생제어란, 플레이리스트 정보에 의거한 AVClip 재생이고, 플레이리스트 정보에 의해 재생제어를 동시에 행함으로써, 애플리케이션 실행과 플레이리스트 재생이 동시에 이루어지게 된다. 플레이리스트 관리 테이블은 애플리케이션의 생존구간 별로 설치된다고 하였으나, 플레이리스트 관리 테이블이 설치되는 애플리케이션은 타이틀 바운더리 애플리케이션으로 한정된다. 왜냐하면, 타이틀 언바운더리 애플리케이션은, 모든 타이틀을 생존구간으로 하고 있으므로, 애플리케이션 실행과 동시에 플레이리스트 재생을 행한다고 하는 제어는 적합하지 않기 때문이다.
챕터 바운더리 애플리케이션은 하나의 플레이리스트 내의 챕터에서 애플리케이션 실행을 개시한다고 하는 전제 하에 생존구간이 규정되어 있으므로, 플레이리스트 재생을 규정할 필요는 없기 때문이다. 이상의 점으로부터 플레이리스트 관리 테이블은 하나 이상의 타이틀로 이루어지는 생존구간으로 정의되게 된다.
도 24(a)는 플레이리스트 관리 테이블의 내부 구성을 나타내는 도면이다. 본 도면에 나타낸 바와 같이, 플레이리스트 관리 테이블은 『PL_id_ref』와 『Playback_Attribute』로 이루어진다.
도 24(b)는 플레이리스트 관리 테이블을 구성하는 정보요소의 의미 내용을 나타낸다.
『PL_id_ref』는 플레이리스트 식별자에 대한 "참조 값"이 기술됨으로써 애플리케이션의 생존구간에서 재생이 가능해지는 플레이리스트가 어느 것인가를 나타낸다. 플레이리스트 식별자는 파일 YYYYY.MPLS에서 파일명으로 부여된 5자리의 수치 YYYYY로 표현된다. 이 YYYYY가 기술됨으로써, 『PL_id_ref』는 대응하는 타이틀에서 재생이 가능해지는 플레이리스트가 어느 것인가를 나타낸다.
『Playback_Attribute』는, 애플리케이션 관리 테이블에서의 기동속성을 모방한 속성으로, 『PL_id_ref』에 기술된 플레이리스트를 타이틀 개시 시에 어떻게 재생할지를 규정하는 재생속성이다. 플레이리스트에 대한 재생속성에는 『AutoPlay』, 『Present』라는 종별이 있다.
『AutoPlay』란, 대응하는 타이틀의 분기와 동시에, 그 플레이리스트를 재생시키는 취지를 나타내는 속성이다. 어떤 타이틀로부터 다른 타이틀로의 분기가 있으면, 애플리케이션 관리를 행하는 관리 주체(애플리케이션 매니저)는, 그 분기 처 타이틀에서 재생이 가능하고, 또한, 재생속성이 AutoPlay로 설정된 플레이리스트의 재생을 개시한다. 이에 의해, 기동속성이 AutoPlay로 설정된 플레이리스트는 타이틀 분기와 함께 자동으로 기동되게 된다.
『Present』란, 기동속성에서의 Present와 마찬가지로 계속 속성이며, 분기 원 타이틀에서의 플레이리스트의 상태를 계속하는 것을 나타낸다. 또, 대응하는 플레이리스트를 재생하여도 됨을 나타내는 속성이다. 예를 들어, 연속해서 재생되는 2개의 타이틀이 있고, 전의 타이틀 측의 플레이리스트 관리 테이블에서는 어떤 플레이리스트의 재생속성이 AutoPlay로 설정되고, 현재 타이틀 측의 플레이리스트 관리 테이블에서는 그 플레이리스트의 재생속성이 Present로 설정되어 있다고 하자. 여기서, 플레이리스트의 재생시간이 2시간 길이이고, 이 중 1시간이 경과 한 시점에서 분기가 발생한다고 하자. 이 경우, 현재 타이틀에서는 재생속성이 Present로 설정되어 있으므로, 현재 타이틀에서 그 플레이리스트는 1시간이라는 재생이 끝난 구간의 직후에서 재생되게 된다. 이와 같이 재생속성을 Present로 설정해 두면, 타이틀 간의 분기가 있었던 경우에도, 플레이리스트 재생을 그 나머지 부분에서 개시할 수 있다. 이에 의해, 서로 분기하는 일련의 타이틀에서 공통된 플레이리스트를 재생한다고 하는 "타이틀 사이에서의 플레이리스트 재생의 공통화"를 용이하게 실현할 수 있다. 또, 분기 처 타이틀이 복수인 경우, 이들 복수 타이틀의 재생속성을 모두 Present로 해두면, 복수 중 어느 것으로 분기하여도 하나의 공통된 플레이리스트 재생을 계속하게 할 수 있다.
또, 타이틀의 경계는 심리스 재생을 보증하지 않아도 되므로, 상술한 바와 같이 복수의 타이틀 사이에서 하나의 플레이리스트를 재생하고자 하는 경우, 분기 전후에서 플레이리스트 재생을 중단시키는 것은 허용된다.
또, 재생속성이 「Present」인 경우, 이 재생속성이 부여된 플레이리스트는 다른 애플리케이션으로부터의 재생요구에 의해 재생되게 된다. 애플리케이션 관리를 행하는 관리 주체(애플리케이션 매니저)는 기동 중의 애플리케이션으로부터 플레이리스트의 재생 요구가 있으면, 요구를 수신한 플레이리스트의 PL_id_ref가 플레이리스트 관리 테이블에 기술되어 있고, 재생속성이 「AutoPlay」 나 「Present」 중 어느 하나인지 여부를 판정한다. 「AutoPlay」 나 「Present」 중 어느 하나이면, 그 플레이리스트를 재생한다. 한편, 요구를 수신한 플레이리스트의 PL_id_ref가 플레이리스트 관리 테이블에 기술되어 있지 않은 경우, 그 플레이리스트를 재생하지 않는다. 애플리케이션의 요구에 의한 플레이리스트 재생은 이 「AutoPlay」나「Present」중 어느 하나가 부여된 플레이리스트로 한정되게 된다. 「Present」는 재생속성을 명시적으로 지정하지 않은 경우에 부여되는 디폴트의 재생속성이므로, 어떤 플레이리스트의 재생속성이 무 지정 「--」이면, 그 플레이리스트의 재생속성은 이 Present임을 의미한다.
도 25는 플레이리스트 관리 테이블, 애플리케이션 관리 테이블에 의해 규정되는 타이틀의 구체 예를 나타낸다. 도 25의 제 1 단째는 타이틀의 재생 영상을 나타내고, 제 2 단째는 타이틀의 시간 축을 나타낸다. 제 3 단째는 PLMT에 의해 재생이 규정되는 플레이리스트, 제 4 단째는 애플리케이션 실행을 나타낸다. 제 4 단째에서 application#1은, 타이틀의 개시와 함께 기동되고 있고, 그 후 시점 t1에서 동작 상태가 된다. 한편, PlayList#1은 타이틀의 개시와 동시에 재생이 개시되어 있다. Playlist#1의 재생은 타이틀의 개시와 동일한 시점에 개시되어 있으므로, 제 1 단째의 좌측에 나타낸 바와 같이, 타이틀의 재생개시 직후에서 애플리케이션이 동작상태가 될 때까지의 스타트 업 지연(start-up delay)에서 플레이리스트의 재생화상 gj1이 풀 스크린(full-screen) 표시된다. 플레이리스트 관리 테이블의 재생속성을 "AutoPlay"로 설정해둠으로써 Java(등록상표) 애플리케이션이 동작상태가 될 때까지 5~10초라는 시간이 걸려도, 그 사이 "어쨌든 무엇인가가 표시되고 있는 상태"가 된다. 이 "어쨌든 무엇인가가 표시되고 있는 상태"에 의해 타이틀 실행 개시 시의 스타트 업 지연을 보충할 수 있다.
한편, application#1은 시점 t1에서 동작상태가 되므로, 플레이리스트 재생화상을 자 화면(child screen), 애플리케이션의 실행화상을 친 화면(parent screen)으로 한 합성화상 gj2가 시점 t1에서 표시되게 된다. 애플리케이션의 실행화상은, Start 버튼, continue 버튼, POWER 인디케이터(power indicator)를 배치한 게임용의 GUI 프레임 워크이며, 이러한 GUI 프레임 워크의 묘사처리를 Java(등록상표) 애플리케이션이 실행함으로써 이루어진다.
이러한 플레이리스트의 재생 화상과 Java(등록상표) 애플리케이션의 GUI 프레임 워크를 조합한 재생 화상을 이루는 타이틀을 구성할 수 있는 것이 PLMT의 특징이다.
도 26은 현재 타이틀이 취할 수 있는 3가지 형태(플레이리스트 관리 테이블 없음(ⅰ), 플레이리스트 관리 테이블 있고 또한 AutoPlay(ⅱ), 플레이리스트 관리 테이블 있고 또한 무 지정(ⅲ))과, 직전 타이틀에서의 플레이리스트의 상태(비 재생상태, 재생 중 상태)가 취할 수 있는 6가지의 조합을 나타내는 도면이다.
본 도면에서의 6가지의 조합 중, "직전 상태=비 재생상태"와, "현재 타이틀 =플레이리스트 관리 테이블 있고 또한 현재 타이틀의 재생속성=AutoPlay"의 조합에서 분기 처 타이틀에서의 플레이리스트의 재생은 자동으로 개시되게 된다.
또, "직전상태=재생 중 상태"와, "현재 타이틀=플레이리스트 관리 테이블 없음"과의 조합에서 분기 처 타이틀에서의 플레이리스트의 재생은 자동으로 정지하게 된다.
그리고 이들 2개의 조합 이외는 모두 전의 타이틀의 상태를 계속하게 된다. 플레이리스트 관리 테이블에 의거한 플레이리스트 재생의 개시는 분기 원 타이틀에서 비 재생상태이고, 분기 처 타이틀에서 AutoPlay 속성이 부여되어 있는 경우로 한정되므로, 타이틀의 분기가 발생할 때마다 플레이리스트 재생을 개시할 필요는 없다. 타이틀 간의 분기가 다수 발생하여도, 플레이리스트 재생을 개시하는 횟수를 필요 최저 수로 할 수 있다.
플레이리스트 관리 테이블 및 애플리케이션 관리 테이블의 기술 예에 대하여, 도 27(a)을 참조하면서 설명한다. 여기서 상정하는 구체 예는 2개의 연속하는 타이틀(title#1, title#2)이고, 그 중 title#1에서는 AutoRun 애플리케이션으로 application#1, application#2가 기술되어 있다. title#2에서는 AutoRun 애플리케이션으로 application#2, application#3이 기술되어 있다. 한편, title#1의 플레이리스트 관리 테이블에는 AutoPlay 플레이리스트로 PlayList#1이, title#2의 플레이리스트 관리 테이블에는 AutoPlay 플레이리스트로 PlayList#2가 기술되어 있다. 도 27(b)은 도 27(a)과 같이 기술된 애플리케이션 관리 테이블 및 플레이리스트 관리 테이블에 의해 플레이리스트 재생 및 애플리케이션 실행이 어떻게 진행하는가를 나타내는 도면이다.
title#1에서 애플리케이션 관리 테이블 및 플레이리스트 관리 테이블은 상술한 바와 같이 설정되어 있으므로, title#1의 개시 시에는 application#1, application#2가 자동으로 기동되고, PlayList#1의 재생이 자동으로 개시된다.
title#2에서 애플리케이션 관리 테이블 및 플레이리스트 관리 테이블은 상술한 바와 같이 설정되어 있으므로, title#1 측에 기재는 있으나, title#2 측에는 기재가 없는 application#1의 실행은 정지시킬 수 있다. 마찬가지로 title#1 측에 기재는 있으나, title#2 측에 기재가 없는 PlayList#1의 재생도 정지시킬 수 있다.
title#1 측에 기재는 없으나, title#2 측에 기재가 있는 PlayList#2, application#3은 재생 및 실행이 자동으로 개시되게 된다. 타이틀 분기가 있으면 그 분기를 계기로 재생해야 할 플레이리스트를 다른 플레이리스트로 절환(switching) 할 수 있다. 이와 같이 애플리케이션 관리 테이블 및 플레이리스트 관리 테이블을 이용함으로써, 분기를 계기로 하여 플레이리스트 재생을 절환한다고 하는 처리를 편집 단계에서 규정해 둘 수 있다.
또, 도 27에서는, application#1, application#2, application#3에는 각각 200, 128, 200의 기동 우선도가 부여되어 있다. 이들의 기동 우선도를 부여함으로써, PlayList#1, PlayList#2에 대한 제어요구가 경합한 경우의 조정을 행하게 할 수 있다. 여기서 application#1이 PlayList#1에 대하여 빨리 감기를 명령한다고 하자. 한편, application#2가 정지 요구를 행한다고 하자. 이 경우, 애플리케이션 관리 테이블에 각 애플리케이션에 대한 기동 우선도가 규정되어 있으므로, 이 기동 우선도에 따라 양 애플리케이션에 대한 조정이 이루어지게 된다. 그 결과, application#2에 의한 요구를 피하고, application#1에 의한 제어를 계속한다고 하는 처리를 편집 시에 규정해둘 수 있다. 기동 우선도를 플레이리스트 관리 테이블과 함께 이용함으로써 플레이리스트에 대한 제어가 경합한 경우의 조정조차도 재생장치에 행하게 할 수 있다.
플레이리스트 관리 테이블의 기술의 다른 구체 예에 대하여 설명한다. 도 28(a)는 플레이리스트 관리 테이블의 다른 기술 예를 나타내는 도면이다. 본 도면에서 상정하고 있는 것은, 2개의 연속하는 타이틀(title#1, title#2)에서, title#1 측의 플레이리스트 관리 테이블에는 AutoPlay 플레이리스트로 PlayList#1이, 재생 가능한 플레이리스트로 PlayList#2가 기술되고, title#1 측의 애플리케이션 관리 테이블에는 AutoPlay 애플리케이션인 application#1과, 실행 가능한 애플리케이션으로 application#2가 기술되어 있다. 한편, title#2 측의 플레이리스트 관리 테이블에는 재생 가능한 플레이리스트로 PlayList#2, PlayList#3이 기술되고, 애플리케이션 관리 테이블에는 AutoRun 애플리케이션으로 application#3이 기술되어 있다. 도 28(b)은 도 28(a)의 케이스에 의거한 애플리케이션 실행 및 플레이리스트 재생의 진행을 나타내는 도면이다. title#1의 애플리케이션 관리 테이블에는 AutoRun 애플리케이션으로 application#1이 기술되어 있으므로, title#1의 개시 시에는 application#1이 자동으로 기동된다. 한편, title#1의 애플리케이션 관리 테이블에는 실행 가능한 애플리케이션으로 application#2가 기술되어 있으므로, application#1로부터의 호출 yd1에 의해 application#2가 기동된다.
title#2 측의 애플리케이션 관리 테이블에서 application#1, application#2가 비 생존으로 되어 있고, 대신에 AutoRun 애플리케이션으로 application#3이 기술되어 있다. 따라서, title#1 - title#2의 경계 부에서는 application#1, application#2를 정지하고, application#3을 자동으로 기동하는 처리가 이루어진다. 플레이리스트 관리 테이블을 참조하면, title#1 측의 플레이리스트 관리 테이블은 PlayList#1, PlayList#2가 재생 가능하다고 기술되어 있고, 그 중 PlayList#1은 AutoRun 속성으로 되어 있다. 따라서, PlayList#1은 title#1의 개시 시에 자동으로 재생된다.
title#1 측의 플레이리스트 관리 테이블에는 PlayList#1 외에 PlayList#2가 재생 가능하다고 기술되어 있으므로, application#1은 PlayList#1의 재생을 정지시키고, 대신에 PlayList#2의 재생을 요구함으로써 플레이리스트의 교대를 실행할 수 있다.
title#2 측의 플레이리스트 관리 테이블에는 재생 가능한 플레이리스트로 PlayList#2, PlayList#3이 기술되어 있다. 그리고 AutoRun 속성이 부여된 플레이리스트는 없다. 따라서, 만약 title#1 개시 시에서 자동으로 재생된 PlayList#1의 재생이 title#2까지 계속되어도 PlayList#1의 재생은 자동으로 종료하게 된다.
그러나 PlayList#2 재생이 계속된 채로 title#2에 이르면, PlayList#2 재생은 title#2 개시 이후에도 계속된다. title#2의 플레이리스트 관리 테이블에는 재생 가능한 플레이리스트로 PlayList#2, PlayList#3이 기술되어 있다. 따라서, title#2에서 실행 중이 되는 application#3은 PlayList#2의 재생을 정지하고, 대신에 PlayList#3의 재생을 요구함으로써 재생 중인 플레이리스트를 교대시킬 수 있다.
이상과 같이 플레이리스트 관리 테이블의 재생 속성을 "AutoPlay"로 설정해 두면, Java(등록상표) 애플리케이션의 기동에 5~10초라는 시간이 걸려도, 그 기동이 이루어지고 있는 동안 "어쨌든 무엇인가가 표시되고 있는 상태"가 된다. 타이틀 실행 개시 시에 애플리케이션 기동에 시간이 걸려도 화면은 "어쨌든 무엇인가가 표시되고 있는 상태"가 된다. 이에 의해, 애플리케이션 기동에 시간이 걸리는 것에 따른 스타트 업 지연의 장기화를 보충할 수 있다.
애플리케이션 관리 테이블 및 플레이리스트 관리 테이블을 정의함으로써, 타이틀 재생 구간의 진행에 따라 Java(등록상표) 애플리케이션을 동작시킨다고 하는 동기제어가 가능해지고, 영상의 재생과 프로그램의 실행을 수반한 다양한 애플리케이션을 세상에 배출할 수 있다.
<사운드 관리 테이블>
이후, 사운드 관리 테이블(SMT)에 대하여 설명한다.
도 29는 사운드 관리 테이블의 내부 구성을 나타내는 도면이다. 본 도면에 나타낸 바와 같이, 사운드 관리 테이블은 Mixing_On 플래그를 포함한다. Mixing_On 플래그란, 0 또는 1로 설정됨으로써 사운드 믹싱을 유효로 할지 무효로 할지를 나타내는 그래프이다. "유효"란 오디오 스트림의 재생 음성에 대하여 믹싱을 행한 후에 출력하는 것을 말하고, "무효"란 오디오 스트림의 재생 음성을 스루 출력(through output)을 하는 것을 말한다.
Mixing_On 플래그가 1(ON)로 설정된 경우, 파일 sound.bdmv에 의한 클릭 음을 동일한 BD-J Object에 속하는 PLMT에 의해 재생이 이루어지는 플레이리스트의 재생음성으로 믹싱하는 취지를 나타낸다.
Mixing_On 플래그가 0(OFF)으로 설정된 경우, 파일 sound.bdmv에 의한 클릭 음을 동일한 Bd-J Object에 속하는 PLMT에 의해 재생이 이루어지는 플레이리스트의 재생음성으로 믹싱하지 않는 취지를 나타낸다.
파일 sound.bdmv에 의한 클릭 음을 믹싱할지 여부를 Java(등록상표) 애플리케이션의 생존구간의 단위, 즉 타이틀 단위로 규정할 수 있다. 그리고 이 Mixing_On 플래그를 어떠한 값으로 설정할지는 그 플레이리스트가 갖는 STN_Table의 설정내용에 따른 것이 된다.
도 30(a)(b)은 STN_Table에서의 오디오 스트림에 대한 entry-attribute와 Mixing_On 플래그의 설정과의 인과관계를 나타내는 도면이다. 도 30(a)에서 entry-attribute에서의 audio_presentation_type가 "멀티채널"을 나타내고 있으면, Mixing_On 플래그는 0(OFF)으로 설정된다. 도 30(b)에서 entry-attribute에서의 audio_presentation_type가 "비 멀티채널"을 나타내고 있으면, Mixing_On 플래그는 1(ON)로 설정된다. 이상과 같은 설정을 행함으로써, "멀티채널"의 재생을 행하는 플레이리스트(PlayItem)와 애플리케이션을 동시에 실행하는 경우, 재생장치에서의 음성재생과의 믹싱을 무효화할 수 있고, "비 멀티채널"의 재생을 행하는 플레이리스트(PlayItem)와 애플리케이션을 동시에 실행하는 경우, 재생장치에서의 음성재생과의 믹싱을 유효화할 수 있다.
이후, 도 27(a)에서의 사운드 관리 테이블의 일례에 대하여 재생이 어떻게 행해지는가에 대하여 설명한다. 도 27(a)에서의 Title#1, #2 중 Title#1의 Mixing_On 플래그는 음성재생과의 믹싱을 유효화하는 취지를 나타내고 있고, Title#2에서의 사운드 관리 테이블 #2의 Mixing_On 플래그는 음성재생과의 믹싱을 무효화하는 취지를 나타내고 있다.
또, Title#1의 재생 시에는 도 25와 같은 GUI 프레임 워크와 플레이리스트의 재생 영상이 출력된다. 사용자가 리모컨을 통해서, 도 31에 나타낸 바와 같이, 이 GUI 프레임 워크에서의 버튼을 조작한다. 이 경우, 이 GUI 프레임 워크를 묘사한 Java(등록상표) 애플리케이션의 애플리케이션 관리 케이블과 동일한 BD-J Object에 속하는 사운드 관리 테이블이 Mixing_On 플래그=1로 설정되어 있으면, 파일 sound.bdmv에서의 사운드 데이터가 플레이리스트의 재생음성에 믹싱된다.
여기서 플레이리스트의 재생 음성이 영화 극 중의 BGM이고, 파일 sound.bdmv에서의 사운드 데이터가 「게임을 시작한다!」는 음성안내이면, 이 영화 극 중의 BGM과 음성안내가 믹싱되어서 출력되게 된다.
또, title#2의 재생 시에는 도 25와는 다른 GUI 프레임 워크와 플레이리스트의 재생 영상이 출력되고 있다. 그리고, 사용자가 리모컨을 통해서, 도 32에 나타낸 바와 같이, 이 GUI 프레임 워크에서의 버튼을 조작한다. 이 경우, 이 GUI 프레임 워크를 묘사한 Java(등록상표) 애플리케이션의 애플리케이션 관리 테이블과, 동일한 BD-J Object에 속하는 사운드 관리 테이블이 Mixing_On 플래그=0으로 설정되어 있으면, 파일 sound.bdmv에서의 사운드 데이터는 플레이리스트의 재생음성에 믹싱되지 않는다. 여기서 플레이리스트의 재생음성이 영화 극 중의 멀티채널의 BGM이면, 이 영화 극 중의 BGM만이 출력되게 된다.
<Mixing_On 플래그의 의의>
재생하고자 하는 AVClip에 5.1Ch의 서라운드 음성의 오디오 스트림과 모노럴 음성의 오디오 스트림이 다중화되어 있어도, PlayItem의 STN_Table에서 그 모너럴 음성의 오디오 스트림의 재생이 허가되고, 5.1Ch의 서라운드 음성의 오디오 스트림의 재생이 허가되지 않은 경우는, 그 PlayItem에 대응하는 Mixing_On 플래그를 ON으로 하여 클릭 음과의 믹싱을 실행할 수 있다. 이와 같이 함으로써, 5.1Ch의 서라운드 음성의 오디오 스트림과 모너럴 음성의 오디오 스트림이 동일한 AVClip을 구성한다고 해도, 당해 AVClip이 5.1Ch의 서라운드 음성의 재생을 허가하지 않은 PlayItem에서 재생되는 경우는, 그 PlayItem의 재생 시에서의 클릭 음의 믹싱을 실행할 수 있다.
이상을 생각하면, 클릭 음의 믹싱을 의도하는 타이틀과 믹싱을 의도하지 않는 타이틀을 하나의 BD-ROM에 기록하고자 하는 경우, 5.1Ch의 서라운드 음성을 갖는 AVClip과 모너럴 음성을 갖는 AVClip를 따로따로 BD-ROM에 기록해 둘 필요가 없다.
5.1Ch의 서라운드 음성과 모너럴 음성이 다중화된 AVClip를 하나만 BD-ROM에 기록해 두고, 5.1Ch의 서라운드 음성의 오디오 스트림의 재생이 허가하고 있는 PlayItem 정보와, 5.1Ch의 서라운드 음성의 오디오 스트림의 재생이 허가되지 않은 PlayItem 정보를 기록해 두면, 클릭 음의 믹싱을 의도하는 타이틀과, 믹싱을 의도하지 않는 타이틀을 하나의 BD-ROM에서 공급할 수 있다.
AVClip의 수를 많게 하지 않으며, 클릭 음의 믹싱을 의도하지 않고, 음향 면의 충실을 의도한 타이틀, 클릭 음의 믹싱을 의도하고, 대화 면의 충실을 의도한 타이틀의 쌍방을 제작하여 사용자에게 공급할 수 있으므로, 제작 스튜디오의 수고가 적고, 영화 제작의 효율화를 도모할 수 있다.
<무브 오브젝트, Java(등록상표) 애플리케이션과의 관계)
HDMV 모드에서의 무브 오브젝트에 클릭 음의 발음을 의도하는 것과 같은 내비게이션 커맨드(navigation command)가 포함되어 있지 않고, BD-J 모드에서의 Java(등록상표) 애플리케이션에 클릭 음의 발음을 의도하고 있는 것과 같은 바이트 코드(byte code)가 포함되어 있지 않은 경우, 즉, 애플리케이션이 클릭 음의 재생을 행하지 않는 것이 분명한 경우, Mixing_On 플래그는 0(OFF)으로 설정된다. 역으로, 클릭 음의 발음을 의도하는 것과 같은 내비게이션 커맨드나 바이트 코드가 존재하는 경우, Mixing_On 플래그는 1(ON)로 설정된다. 이상과 같은 설정을 행함으로써, 클릭 음의 재생을 행하지 않는 애플리케이션과 오디오의 재생을 행하는 PlayItem을 동시에 실행하는 경우, 재생장치에서의 믹싱을 무효화할 수 있고, 클릭 음의 재생을 행하는 애플리케이션과 오디오의 재생을 행하는 PlayItem을 동시에 실행하는 경우, 재생장치에서의 믹싱을 유효화할 수 있다.
이상이 기록매체에 대한 설명이다. 이어서, 본 발명에 관한 재생장치에 대하여 설명한다.
도 33은 본 발명에 관한 재생장치의 내부 구성을 나타내는 도면이다. 본 발명에 관한 재생장치는 본 도면에 나타낸 내부에 의거하여 공업적으로 생산된다. 본 발명에 관한 재생장치는 주로 시스템 LSI와 드라이브 장치라는 2개의 부분으로 이루어지며, 이들 부분을 장치의 캐비닛 및 기판에 실장 함으로써 공업적으로 생산할 수 있다. 시스템 LSI는 재생장치의 기능을 담당하는 다양한 처리부를 집적한 집적회로이다. 이렇게 생산되는 재생장치는, BD-ROM 드라이브(1), 리드 버퍼(Read Buffer)(2), 디 멀티플렉서(3), 비디오 디코더(4), 비디오 플레인(5), 사운드 프로세서(6), 사운드 프로세서(7), 믹서(8), 사운드 컨트롤러(9), D/A 컨버터(10), 인터랙티브 그래픽스 디코더(11), 인터랙티브 그래픽스 플레인(12), 프레젠테이션 그래픽스 디코더(13), 프레젠테이션 그래픽스 플레인(14), JPEG 디코더(15), 스틸 플레인(16), 합성부(17), STC-delta 부가부(18), ATC-delta 부가부(19), 로컬 스토리지(local storage)(20), 명령 ROM(21), 사용자 이벤트 처리부(22), PSR 세트(23), CPU(24), 시나리오 메모리(25), 로컬 메모리(26)로 구성된다.
우선 먼저, BD-ROM에 기록된 AVClip의 재생에 관한 구성요소(BD-ROM 드라이브(1) ~ 오디오 디코더(6))에 대하여 설명한다.
BD-ROM 드라이브(1)는 BD-ROM의 로딩/이젝트를 행하고, BD-ROM에 대하여 액세스를 실행한다.
리드 버퍼(2)는 FIFO 메모리이며, BD-ROM에서 판독된 TS 패킷이 선입선출(先入先出)식으로 저장된다.
디 멀티플렉서(De-MUX)(3)는, 리드 버퍼(2)로부터 소스 패킷을 인출하여 이 소스 패킷을 구성하는 TS 패킷을 PES 패킷으로 변환한다. 그리고 변환에 의해 얻어진 PES 패킷 중, STN_Table에 기재되었으므로 PID를 갖는 것을 비디오 디코더(4), 오디오 디코더(6), 인터랙티브 그래픽스 디코더(11), 프레젠테이션 그래픽스 디코더(13) 중 어느 하나에 출력한다.
비디오 디코더(4)는 디 멀티플렉서(3)로부터 출력된 복수 PES 패킷을 복호하여 비 압축형식의 픽처를 얻어서 비디오 플레인(5)에 기록한다.
비디오 플레인(5)은 비 압축형식의 픽처를 저장해 두기 위한 플레인이다. 플레인이란, 재생장치에서 한 화면 분의 화소 데이터를 저장해 두기 위한 메모리 영역이다. 비디오 플레인(5)에서의 해상도는 1920×1080이며, 이 비디오 플레인(5)에 저장된 픽처 데이터는 16비트의 YUV 값으로 표현된 화소 데이터에 의해 구성된다. 비디어 플레인(5)에서는 비디오 스트림에서의 1프레임 별 재생화상을 스케일링(scaling) 할 수 있다. 스케일링이란, 1프레임 별 재생화상을 비디오 플레인(5) 전체의 1/4(쿼터라고 한다), 1/1(풀 스케일(full-scale)이라고 한다) 중 어느 하나로 변화시킬 수 있다. 이러한 스케일링을 BD-J 모드에서 CPU(24)로부터의 지시에 따라 실행하므로, 비디오 스트림의 재생화상을 화면의 끝에 몰아넣거나, 전면적으로 나타낸다고 하는 화면연출이 가능해진다.
사운드 프로세서(6)는, 오디오 스트림을 구성하는 PES 패킷을 PID 필터(3)가 출력했을 때, 이 PES 패킷을 저장해 둘 디코드 버퍼(DB)(6a)와, 이 버퍼에 저장된 PES 패킷을 디코드하여 PCM 상태의 오디오 데이터를 출력하는 오디오 디코더(6b)를 포함한다.
사운드 프로세서(7)는, BD-ROM에서 판독된 파일 sound.bdmv를 프리로드 해 두는 프리로드 메모리(7a)와, 프리로드 된 파일 sound.bdmv에서의 복수의 사운드 데이터 중 CPU(24)에 의해 지정된 것을 디코드하여 PCM 상태의 오디오 데이터를 출력하는 오디오 디코더(7b)를 포함한다. 프리로드 버퍼(7a)로의 프리로드는 BD-ROM의 장전(load) 시나 타이틀 절환 시에 행하는 것이 바람직하다. 왜냐하면, AVClip의 재생 중에 파일 sound.bdmv를 판독하고자 하면, AVClip과는 다른 파일을 판독하기 위한 광 픽업의 씨크(seek)가 발생하기 때문이다. 한편, BD-ROM의 장전 시나 타이틀 절환 시에는 AVClip의 재생이 계속되어 있는 일은 거의 없으므로, 이러한 타이밍에 파일 sound.bdmv 을 판독함으로써 AVClip의 재생이 끊어지지 않는 것을 보증할 수 있다.
사운드 믹서(8)는 사운드 프로세서(6) 및 사운드 프로세서(7)에서 출력되는 PCM 상태의 사운드 데이터를 믹싱한다. 믹싱에 있어서 사운드 믹서(8)는 샘플링 주파수와 채널 수를 맞추기 위하여, 사운드 프로세서(6)에서 출력된 음성의 속성을 사운드 프로세서에서 출력되는 음성속성으로 변환하는 처리를 행한다. 이 사운드 믹서(8)에 의한 믹싱은, 클릭 음의 발음을 의도한 바와 같은 내비게이션 커맨드, 또는 클릭 음의 발음을 의도한 바와 같은 바이트 코드를 CPU(4)가 해독함으로써 이루어진다.
사운드 컨트롤러(9)는 사운드 믹서(8)에서 출력된 전개된 상태의 오디오 데이터 및 사운드 프로세서(6)를 통하지 않고 압축된 상태의 오디오 데이터 중 어느 것을 출력할지 절환한다. 이 음성출력은 S/PDIF 또는 HDMI를 통해서 텔레비전(400) 또는 앰프(500)에 출력된다. 압축된 상태의 오디오 데이터를 출력하는 경우는, 그 출력 처의 텔레비전(400) 및 앰프(500)에서 디코드 된다.
D/A 변환부(10)는 사운드 믹서(8)에서 출력되는 디지털의 오디오 데이터를 D/A 변환하여 아날로그 음성을 출력한다.
I-Graphics 디코더(IG 디코더)(11)는 BD-ROM 또는 로컬 스토리지(20)에서 판독된 IG 스트림을 디코드하여 비 압축 그래픽스를 인터랙티브 그래픽스 플레인(12)에 기록한다.
인터랙티브 그래픽스(IG) 플레인(12)은 HDMV 모드에서 I-Graphics 디코더(10)에 디코드에 의해 얻어진 비 압축 그래픽스가 기록된다. 또, BD-J 모드에서 애플리케이션에 의해 묘사된 문자나 그래픽스가 기록된다
P-Graphics 디코더(13)는 BD-ROM 또는 로컬 스토리지(20)에서 판독된 PG 스트림을 디코드하여 비 압축 그래픽스를 프레젠테이션 그래픽스 플레인(11)에 기록한다. P-Graphics 디코더(13)에 의한 디코드에 의해 자막이 화면상에 나타나게 된다.
프레젠테이션 그래픽스 플레인(14)은 한 화면 분의 영역을 갖는 메모리이며, 한 화면 분의 비 압축 그래픽스를 저장할 수 있다.
JPEG 디코더(15)는 BD-ROM 또는 로컬 스토리지(20)에 기록되어 있는 JPEG 데이터를 디코드하여 스틸 플레인(16)에 기록한다.
스틸 플레인(16)은 JPEG 데이터를 전개함으로써 얻어진 비 압축의 그래픽스 데이터가 저장되는 플레인이다. 이 그래픽스 데이터는 Java(등록상표) 애플리케이션이 묘사하는 GUI 프레임 워크의, 소위 "벽지(wallpaper)"로 이용된다.
합성부(17)는, 인터랙티브 그래픽스 플레인(12)의 저장내용, 프레젠테이션 그래픽스 플레인(11)의 저장내용, 비디오 플레인(5)의 저장내용과, 스틸 플레인(16)의 저장내용을 합성한 합성화상을 얻는다.
STC_delta 부가부(18)는 System Time Clock(STC)를 생성한다. 그리고 STC_Sequence의 절환 시에 있어서, 그때까지의 STC_Sequence에서의 STC 값(STC1)에 STC_delta라고 불리는 오프셋 값을 가산함으로써, 새로운 STC_Sequence의 STC 값(STC2)을 구하고, 그때까지의 STC_Sequence에서의 STC 값(STC1)과 새로운 STC_Sequence의 STC 값(STC2)을 연속한 값으로 한다.
선행 STC_Sequence에서 최후에 재생되는 픽처의 표시개시 시각을 PTS1(1st END), 픽처의 표시기간을 Tpp로 하고, 후속 STC_Sequence에서 최초로 표시되는 픽처의 개시시각을 PTS2(2nd START)로 한 경우, STC_delta는 STC_delta=PTS1(1stEND)+Tpp-PTS2(2ndSTART) 로 표현된다. 이상과 같이 STC_delta를 구하고, 이것이 합쳐진 클록의 계수(計數) 값을 각 디코더에 출력한다. 이에 의해, 각 디코더는 2개의 STC_Sequence에 해당하는 스트림을 끊어지지 않고 재생해 갈 수 있다. 이상에 의해, 하나의 AVClip 중에 2 이상의 STC_Sequence가 존재한다고 해도, 또, 연속해서 재생해야 할 2 이상의 AVClip 각각이 다른 STC_Sequence를 가지고 있다고 해도, 이들의 STC_Sequence 사이의 디코드 처리를 심리스하게 실행할 수 있다.
또, 버퍼링의 연속성을 만족하기 위해서는, 이하의 1), 2)를 만족시키면 된다.
1) STC2(2ndSTART)>STC2(1stEND)를 만족할 것
여기서 STC2(1stEND)는, STC1(1stEND)를 STC2의 시간 축에 투영한 값이며, STC2(1stEND)=STC1(1stEND)-STC_delta라는 계산식으로 부여된다.
2) TS1으로부터의 TS 패킷의 인출과 TS2로부터의 TS 패킷의 인출이 동일한 시간 축에 투영된 STC1과 STC2에 의해 정의되고, 버퍼의 언더 프로(underflow)나 오버 프로(overflow)를 초래하지 않을 것
ATC_delta 부가부(19)는 Arrival Time Clock(ATC)을 생성한다. 그리고 ATC_Sequence의 절환 시에 있어서, 그때까지의 ATC_Sequence에서의 ATC 값(ATC1)에 ATC_delta라고 불리는 오프셋 값을 가산함으로써, 그때까지의 ATC_Sequence에서의 ATC 값(ATC1)과 새로운 ATC_Sequence의 ATC 값(ATC2)을 연속한 값으로 한다. 이 가산에 의해, ATC2=ATC1+ATC_delta가 된다. ATC_delta란, 지금까지 판독되어 있는 트랜스 포트 스트림(TS1)의 최후의 TS 패킷의 입력시점 T1에서 새롭게 판독된 트랜스 포트 스트림(TS2)의 최초의 TS 패킷의 입력시점 T2까지의 오프셋 값을 말하고, "ATC_delta≥N1/TS_recording_rate"라는 계산식으로 부여된다. 여기서 입력시점 T2는 TS2의 최초의 TS 패킷의 입력시점을 TS1의 시간 축 상에 투영한 시점을 의미한다. 또, N1은 TS1의 최후의 비디오 PES 패킷에 후속하는 TS 패킷의 패킷 수이다. BD-ROM에서 이러한 ATC_delta는 Clip 정보에 기술되므로, 이것을 이용함으로써 ATC_delta를 계산할 수 있다. 이상의 계산에 의해, 지금까지의 ATC_Sequence를 가지고 있는 ATC 값(ATC1)과 새로운 ATC_Sequence가 가지고 있는 ATC 값(ATC2)을 연속한 값으로 할 수 있다. ATC_delta가 합쳐진 클록의 계수 치를 디 멀티플렉서(De-MUX)(3)에 출력함으로써, 심리스한 버퍼 제어를 실현할 수 있다.
이상이 AVClip 재생에 관한 구성요소이다. 이어서, BD-J 모드에서의 동작에 관한 구성요소(로컬 스토리지(20) ~ 로컬 메모리(26))에 대하여 설명한다.
로컬 스토리지(20)는, web사이트에서 다운로드 된 콘텐츠 등 BD-ROM 이외의 기록매체, 통신매체에서 공급된 콘텐츠를 메타 데이터(metadata)와 함께 저장해 두기 위한 하드디스크이다. 이 메타 데이터는 다운로드 콘텐츠를 로컬 스토리지(20)에 바인드(bind) 하여 관리하기 위한 정보이며, 이 로컬 스토리지(20)를 액세스함으로써 BD-J 모드에서의 애플리케이션은 다운로드 콘텐츠 길이를 이용한 다양한 처리를 행할 수 있다.
이어서, 재생장치에서의 통합제어를 실현하는 구성요소(명령 ROM(21) ~ 로컬 메모리(26))에 대하여 설명한다.
명령 ROM(21)은 재생장치의 제어를 규정하는 소프트웨어를 기억하고 있다.
사용자 이벤트 처리부(22)는 리모컨이나 재생장치의 프런트 패널에 대한 키 조작에 따라서 그 조작을 행하는 사용자 이벤트를 CPU(24)에 출력한다.
PSR 세트(23)는 재생장치에 내장되는 레지스터이며, 64개의 플레이어 스테이터스 레지스터(Player Status Register)(PSR)와, 4096개의 제너럴 퍼포스 레지스터(General Purpose Register)(GPR)로 이루어진다. 플레이어 스테이터스 레지스터의 설정 값(PSR) 중, PSR4 ~ PSR8은 현재의 재생 시점을 표현하는데 이용된다.
PSR4는 1 ~ 100의 값으로 설정됨으로써 현재의 재생 시점이 속하는 타이틀을 나타내고, 0으로 설정됨으로써 현재의 재생 시점이 톱 메뉴임을 나타낸다.
PSR5는 1 ~ 999의 값으로 설정됨으로써 현재의 재생 시점이 속하는 챕터번호(chapter number)를 나타내고, 0xFFFF로 설정됨으로써 재생장치에서 챕터번호가 무효임을 나타낸다.
PSR6은 0 ~ 999의 값으로 설정됨으로써 현재의 재생 시점이 속하는 플레이리스트(현재 PL)의 번호를 나타낸다.
PSR7은 0 ~ 255의 값으로 설정됨으로써 현재의 재생 시점이 속하는 PlayItem(현재 PlayItem)의 번호를 나타낸다.
PSR8은 0 ~ 0xFFFFFFFF의 값으로 설정됨으로써 45KHz의 시간 정밀도를 이용하여 현재의 재생 시점(현재 PTM(Presentation Time))을 나타낸다. 이상의 PSR4 ~ PSR8에 의해 도 18(a)에서의 BD-ROM 전체의 시간 축에서 현재의 재생 시점은 어디인가를 특정할 수 있다.
CPU(24)는 명령 ROM(21)에 저장되어 있는 소프트웨어를 실행하여 재생장치 전체의 제어를 실행한다. 이 제어의 내용은 사용자 이벤트 처리부(22)에서 출력된 사용자 이벤트 및 PSR 세트(23)에서의 각 PSR의 설정 값에 따라 동적으로 변화한다.
시나리오 메모리(25)는 현재 PL 정보나 현재 Clip 정보를 저장해 두기 위한 메모리이다. 현재 PL 정보란, BD-ROM에 기록되어 있는 복수의 플레이리스트 정보 중 현재 처리 대상으로 되어 있는 것을 말한다. 현재 Clip 정보란 BD-ROM에 기록되어 있는 복수 Clip 정보 중 현재 처리 대상으로 되어 있는 것을 말한다.
로컬 메모리(26)는, BD-ROM으로부터의 판독이 저속(低速)이므로, BD-ROM의 기록내용을 일시적으로 저장해 두기 위한 캐시 메모리(cache memory)이다. 이러한 로컬 메모리(26)가 존재함으로써, BD-J 모드에서의 애플리케이션 실행은 효율화되게 된다.
이상이 본 실시 예에 관한 재생장치의 하드웨어 구성이다. 이어서, 본 실시 예에 관한 재생장치의 소프트웨어 구성에 대하여 설명한다.
도 34는 ROM(24)에 저장된 소프트웨어와 하드웨어로 이루어지는 부분을 레이어 구성으로 치환하여 묘사한 도면이다. 본 도면에 나타낸 바와 같이, 재생장치의 레이어 구성은 이하의 a), b), c)로 이루어진다. 즉,
a) BD Player Device의 제 1 계층
b) BD Player Model의 제 2 계층
c) Application Runtime Environment의 제 3 계층으로 이루어진다.
이들 계층 중, 도 34에 나타낸 재생장치의 하드웨어 구성은 제 1 계층에 속하게 된다. 본 도면의 제 1 계층 "BD Player Device"에는 도 34에 나타낸 하드웨어 구성 중, 비디오 디코더(4), 오디오 디코더(6), IG 디코더(11), PG 디코더(13)에 해당하는 "디코더"와, 비디오 플레인(5), IG 플레인(12), PG 플레인(14)에 해당하는 "플레인", BD-ROM 및 그 파일 시스템, 로컬 스토리지(20) 및 그 파일 시스템을 포함한다.
제 2 계층 "BD Player Model"은 이하의 b1), b2) 층으로 이루어진다. 즉,
b2) 플레이 백 컨트롤 엔진(Playback Control Engine)(32) 층
b1) 버츄얼 파일 시스템(Virtual File System)(30) 및 프레젠테이션 엔진(Presentation Engine)(31) 층으로 이루어지며, 자신보다 상위의 계층에 대하여 기능 API(function API)를 제공한다.
제 3 계층 "Application Runtime Environment"는 이하의 c1), c2) 계층으로 이루어진다. 즉,
c1) 모듈 매니저(module manager)(34)가 존재하는 층
c2) BD-J 플랫폼(35)이 존재하는 층으로 이루어진다.
우선 먼저, 제 2 층에 속하는 버츄얼 파일 시스템(30) ~ 모듈 매니저(34)에 대하여 설명한다.
버츄얼 파일 시스템(30)은 로컬 스토리지(20)에 저장된 다운로드 콘텐츠를 BD-ROM에서의 디스크 콘텐츠와 일체적으로 취급하기 위한 가상적인 파일 시스템이다. 여기서 로컬 스토리지(20)에 저장된 다운로드 콘텐츠는, SubClip, Clip 정보, 플레이리스트 정보를 포함한다. 이 다운로드 콘텐츠에서의 플레이리스트 정보는 BD-ROM 및 로컬 스토리지(20) 중 어느 하나에 존재하는 Clip 정보여도 지정할 수 있는 점에서 BD-ROM 상의 플레이리스트 정보와 다르다. 이 지정에 있어서, 버츄얼 파일 시스템(30) 상의 플레이리스트 정보는 BD-ROM이나 로컬 스토리지(20)에서의 파일을 풀 패스(full path)로 지정할 필요는 없다. BD-ROM 상의 파일 시스템이나 로컬 스토리지(20) 상의 파일 시스템은 가상적인 하나의 파일 시스템(Virtual File System(30))으로 인식되기 때문이다. 따라서, PlayItem 정보에서의 Clip_Information_file_name은, Clip 정보를 저장한 파일의 파일 보디(file body)에 해당하는 5자리의 수치를 지정함으로써, 버츄얼 파일 시스템(30), BD-ROM 상의 AVClip을 지정할 수 있다. 버츄얼 파일 시스템(30)을 통해서 로컬 스토리지(20)의 기록내용을 판독하고, BD-ROM의 기록내용과 동적으로 조합함으로써, 다양한 재생의 변화를 양산할 수 있다. 로컬 스토리지(20)와 BD-ROM을 조합하여 이루어지는 디스크 콘텐츠는 BD-ROM에서의 디스크 콘텐츠와 대등하게 취급되므로, 본원에서의 "BD-ROM"은 로컬 스토리지(20) + BD-ROM의 조합으로 이루어지는 가상적인 기록매체도 포함하게 된다.
프레젠테이션 엔진(31)은 AV 재생기능을 실행한다. 재생장치의 AV 재생기능이란, DVD 플레이어, CD 플레이어로부터 답습한 전통적인 기능 군(群)으로, 재생개시(Play), 재생정지(Stop), 일시정지(Pause On), 일시정지의 해제(Pause Off), Still 기능의 해제(still off), 속도지정 부 빨리 감기(Forward Play(speed)), 속도지정 부 되감기(Backward Play(speed)), 음성 절환(Audio Change), 부 영상 절환(Subtitle Change), 앵글 절환(Angle Change)이라는 기능이다. AV 재생기능을 실현하기 위하여 프레젠테이션 엔진(31)은, 리드 버퍼(2) 상에 판독된 AVClip 중 원하는 시각에 해당하는 부분의 디코드를 행하도록 비디오 디코더(4), P-Graphics 디코더(13), I-Graphics 디코더(10), 오디오 디코더(6)를 제어한다. 원하는 시각으로 PSR8(현재 PTM)에 표시되는 개소의 디코드를 행하게 함으로써, AVClip에서 임의의 시점을 재생 가능하게 할 수 있다.
재생제어엔진(Playback Control Engine(PCE))(32)은 플레이리스트에 대한 재생제어기능(ⅰ), PSR 세트(23)에서의 상태 취득/설정기능(ⅱ)과 같은 여러 기능을 실행한다. 플레이리스트에 대한 재생제어기능이란, 프레젠테이션 엔진(31)이 행하는 AV 재생기능 중 재생개시나 재생정지를 현재 PL정보 및 Clip 정보에 따라서 행하게 하는 것을 말한다. 이들 기능 (ⅰ) ~ (ⅱ)는 HDMV 모듈(33) ~ BD-J 플랫폼(35)으로부터의 기능 콜(function call)에 따라서 실행한다.
모듈 매니저(34)는 BD-ROM에서 판독된 Index.bdmv를 유지하고, 분기 제어를 행한다. 이 분기제어는 현재 타이틀을 구성하는 동적 시나리오에 Terminate 이벤트를 발행하고, 분기 처 타이틀을 구성하는 동적 시나리오에 Activate 이벤트를 발행함으로써 이루어진다.
이상이 프레젠테이션 엔진(31) ~ 모듈 매니저(34)에 대한 설명이다.
이어서, BD-J 플랫폼(35)에 대하여 설명한다.
BD-J 플랫폼(35)은, 소위 Java(등록상표) 플랫폼이며, Java(등록상표) 가상 머신(36)을 핵심으로 한 구성으로 되어 있다. BD-J 플랫폼(35)은, 상술한 Java(등록상표) 2Micro_Edition(J2ME) Personal Basis Profile(PBP1.0)와, Globally Executable MHP specification(GEM[1.0.2]) for package media targets에 더하여, BD-J Extension을 실장하고 있다. BD-J Extension은 GEM[1.0.2]를 넘는 기능을 BD-J 플랫폼에 부여하기 위하여 특화된 다양한 패키지를 포함하고 있다.
우선 먼저, BD-J 플랫폼(35)의 핵심이 되는 Java(등록상표) 가상 머신(36)에 대하여 설명한다.
<Java(등록상표) 가상 머신(36)>
도 35는 Java(등록상표) 가상 머신(36)의 내부 구성을 나타내는 도면이다. 본 도면에 나타낸 바와 같이, Java(등록상표) 가상 머신(36)은, 도 33에 나타낸 CPU(24)와, 사용자 클래스 로더(52), 메소드 영역(method area)(53), 워크 메모리(54), 스레드(thread)(55a, b…n), Java(등록상표) 스택(stack)(56a, b…n)으로 구성된다.
사용자 클래스 로더(52)는 BDJA 디렉터리의 Java(등록상표) 아카이브 파일에서의 클래스 파일을 로컬 메모리(26) 등에서 판독하여 메소드 영역(53)에 저장한다. 이 사용자 클래스 로더(52)에 대한 클래스 파일 판독은 파일 경로(file path)를 지정한 판독을 애플리케이션 매니저(37)가 사용자 클래스 로더(52)에 지시함으로써 이루어진다. 파일 경로가 로컬 메모리(26)를 나타내고 있으면, 사용자 클래스 로더(52)는 애플리케이션을 구성하는 Java(등록상표) 아카이브 파일에서의 클래스 파일을 로컬 메모리(26)에서 워크 메모리(54)에 판독한다. 파일 경로가 버츄얼 파일 시스템(30) 상의 디렉터리를 나타내고 있으면, 사용자 클래스 로더(52)는 애플리케이션을 구성하는 Java(등록상표) 아카이브 파일에서의 클래스 파일을 BD-ROM 또는 로컬 스토리지(20)에서 워크 메모리(54)에 판독한다. 애플리케이션의 기동 제어는 이 사용자 클래스 로더(52)에 의한 클래스 파일 판독에 의해 실현된다. 판독이 지시된 클래스 파일이 로컬 메모리(26)에 없는 경우, 사용자 클래스 로더(52)는 판독 실패를 애플리케이션 매니저(37)에 통지하게 된다.
메소드 영역(53)은 사용자 클래스 로더(52)에 의해 로컬 메모리(26)에서 판독된 클래스 파일이 저장된다.
워크 메모리(54)는, 소위 히프 영역(heap area)이며, 다양한 클래스 파일의 인스턴스(instance)가 저장된다. 도 34에 나타낸 애플리케이션 매니저(37)는 이 워크 메모리(54)에 상주하는 레지던트 애플리케이션(resident application)이다. 워크 메모리(54)에는, 이들 레지던트 형의 인스턴스 외에 메소드 영역(53)에 판독된 클래스 파일에 대응하는 인스턴스가 저장된다. 이 인스턴스가 애플리케이션을 구성하는 xlet 프로그램이다. 이러한 xlet 프로그램을 워크 메모리(54)에 배치함으로써 애플리케이션은 실행 가능한 상태가 된다.
도 34의 레이어 모델에서는 이 워크 메모리(54) 상의 애플리케이션 매니저(37)를 Java(등록상표) 가상 머신(36) 상에 묘사하였으나, 이것은 알기 쉽게 하기 위한 배려에 지나지 않는다. 애플리케이션 매니저(37) 및 애플리케이션은 인스턴스로 스레드(55a, b…n)에 의해 실행된다고 하는 것이 현실적인 기술이 된다.
스레드(55a, b…n)는, 워크 메모리(54)에 저장된 메소드를 실행하는 논리적인 실행주체이며, 로컬 변수나 오퍼랜드 스택(operand stack)에 저장된 인수를 오퍼랜드로 하여 연산을 행하고, 연산결과를 로컬 변수 또는 오퍼랜드 스택에 저장한다. 도면 중의 화살표 ky1, ky2, kyn은 워크 메모리(54)에서 스레드(55a, b…n)로의 메소드 공급을 상징적으로 나타내고 있다. 물리적인 실행주체가 CPU 하나인 것에 비해, 논리적인 실행주체인 스레드는 최대 64개의 Java(등록상표) 가상 머신(36) 내에 존재할 수 있다. 이 64개라는 수치 내에서 스레드를 신규로 작성하는 것도 기존의 스레드를 삭제하는 것도 가능하고, 스레드의 동작 수는 Java(등록상표) 가상 머신(36)의 동작 중에서 증감할 수 있다. 스레드의 수는 적절하게 증가시킬 수 있으므로, 복수의 스레드에 의해 하나의 인스턴스의 병렬 실행을 행하여 인스턴스의 고속화를 도모할 수도 있다. 본 도면에서는 CPU(24)와 스레드의 대응관계는 1 대 다(多)의 관계로 하고 있으나, CPU가 복수인 경우, CPU와 스레드의 대응관계는 다 대 다의 관계가 될 수 있다. 스레드(55a, b…n)에 의한 메소드 실행은 메소드를 이루는 바이트 코드를 CPU(24)의 네이티브 코드로 변환한 후에 CPU(24)에 발행함으로써 이루어진다. 이 네이티브 코드의 변환에 대해서는 본원의 주제에서 벗어나므로 설명을 생략한다.
Java(등록상표) 스택(56a, b…n)은, 스레드(55a, b…n)와 1 대 1의 비율로 존재하고, 프로그램 카운터(도면 중의 PC)와 하나 이상의 프레임을 내부에 갖는다. "프로그램 카운터(program counter)"는 인스턴스에서 현재 어느 부분이 실행되어 있는가를 나타낸다. "프레임"은 메소드에 대한 1회의 콜(call)에 대하여 할당된 스택시스템(stack system)의 영역이며, 그 1회의 콜 시의 인수가 저장되는 "오퍼랜드 스택"과 콜 된 메소드가 이용하는 "로컬 변수 스택(도면 중의 로컬 변수)"로 이루어진다. 프레임은 콜이 1회 이루어질 때마다 Java(등록상표) 스택(56a, b…n) 상에 적층되는 것이므로, 어떤 메소드가 자신을 재귀적(再歸的)으로 호출하는 경우에도 이 프레임은 하나 적층 된다.
이상이 Java(등록상표) 가상 머신에 대한 설명이다.
<애플리케이션 매니저(37)>
애플리케이션 매니저(37)는, Java(등록상표) 가상 머신(36) 내의 워크 메모리 상에서 동작하는 시스템 소프트웨어이며, 타이틀 분기가 발생할 때마다 분기 전 타이틀에서는 실행되어 있지 않으나, 새로운 타이틀에서는 AutoRun의 기동속성을 갖는 애플리케이션을 기동하도록 Java(등록상표) 가상 머신(36)에 지시한다. 그와 동시에, 분기 전 타이틀에서는 실행되어 있으나 새로운 타이틀을 생존구간으로 하지 않는 애플리케이션을 종료시킨다. 이들 기동제어 및 종료제어는 현재 BD-J Object에서의 애플리케이션 관리 테이블을 참조한 후에 이루어진다.
도 36은 BD-J Object에서의 애플리케이션 관리 테이블에 의거한 애플리케이션 매니저(37)의 처리를 나타내는 도면이다.
도 36에서의 ☆1, ☆2, ☆3은, 애플리케이션 관리 테이블 참조(☆1), Java(등록상표) 가상 머신(36)에 대한 애플리케이션 기동 지시(☆2), Java(등록상표) 가상 머신(36)에 의한 Java(등록상표) 아카이브 파일에 대한 판독 지시(☆3), Java(등록상표) 애플리케이션을 정의하는 클래스 파일의 클래스 로더(☆4, 5, 6)라는 일련의 과정을 모식화하여 나타낸다. 이 기동지시에 의해 Java(등록상표) 가상 머신(36)은 로컬 메모리(26)에서 워크 메모리에 xlet 프로그램을 판독한다.
도 37은 BD-J Object에서의 PLMT에 의거한 애플리케이션 매니저(37)의 처리를 나타내는 도면이다. ▽1은 BD-J Object에서의 PLMT의 참조를 나타내고, ▽2는 프레젠테이션 엔진(31)에 대한 플레이리스트 정보의 판독 지시를 나타낸다.
도 37에서의 ◎1, 2, 3, 4는, 버츄얼 파일 시스템(30) 경유의 플레이리스트 정보의 판독(◎1), 플레이리스트 정보를 구성하는 PlayItem 정보의 해독(◎2), 버츄얼 파일 시스템(30) 경유의 Clip 정보의 판독(◎3), Clip 정보의 해독(◎4)을 모식화한 것이다. 이상의 과정을 거쳐서 Clip 정보, 플레이리스트 정보가 해독되면, AVClip을 구성하는 TS 패킷을 버츄얼 파일 시스템(30)을 통해서 프레젠테이션 엔진(31)에 인도한다. 이와 같이 하여 프레젠테이션 엔진(31)에 TS 패킷이 순차 인도되면, 프레젠테이션 엔진(31)은 AVClip을 구성하는 TS 패킷을 디코더에 출력하여 플레인에 표시시킨다. 도면 중의 ☆1, 2, 3, 4는, AVClip을 구성하는 TS 패킷의 판독(☆1, 2), 버츄얼 파일 시스템(30)에서 프레젠테이션 엔진(31)으로의 TS 패킷의 인도(☆3), 디코더로의 TS 패킷 투입(☆4), 디코더에서 각종 플레인으로의 디코드 결과 출력(☆5)을 모식적으로 나타내고 있다.
도 38은 BD-J Object에서의 사운드 관리 테이블에 의거한 애플리케이션 매니저(37)의 처리를 나타내는 도면이다. 도 38에서의 ◎0, 1, 2는, 애플리케이션 매니저(37)에 의한 BD-J Object 내의 사운드 관리 테이블의 참조(◎0), 애플리케이션 생존구간 별 사운드 믹싱의 유효화, 무효화의 지시(◎1), 조작된 버튼에 대응하는 사운드 데이터의 출력지시 또는 디코드 지시(◎2)를 모식적으로 나타낸 것이다.
이후, 소프트웨어에 의한 애플리케이션 매니저(37)의 실장에 대하여 설명한다.
도 39는 애플리케이션 매니저(37)에 의한 처리순서를 나타내는 플로차트이다. 본 도면에서의 처리순서는 스텝 S1 - 스텝 S2 - 스텝 S3 - 스텝 S4로 이루어지는 메인 루프를 갖는다. 스텝 S1은 TitleJump가 이루어졌는가 여부의 판정으로, 만약 이루어지면 타이틀 절환을 행한다(스텝 S7).
스텝 S8은 현재 타이틀에 대응하는 BD-J Object에 PLMT가 존재하는가 여부의 판정이다. 만약, 존재하지 않으면, 전의 타이틀에서는 PLMT에 기재되어 있던 플레이리스트의 재생을 정지시킨다(스텝 S9).
만약 존재하면, 전의 타이틀에서는 PLMT에 기재되어 있지 않았으나, 현재 타이틀에서는 PLMT에 기재되어 있고, AutoPlay 속성이 부여되어 있는 플레이리스트의 재생을 개시시킨다(스텝 S10).
스텝 S11에서는 현재 타이틀에 대응하는 BD-J Object에 사운드 관리 테이블이 존재하는가 여부의 판정을 행한다. 스텝 S12는, 사운드 관리 테이블이 존재하는 경우에 실행되는 판정 스텝이고, 그 사운드 관리 테이블에서의 Mixing_On 플래그가 1인가 여부의 판정을 행한다. 만약, Mixing_On 플래그가 1이라면, 사운드 믹싱을 유효화하도록 사운드 컨트롤러(9)에 지시하고(스텝 S13), 만약 Mixing_On 플래그가 0이면, 사운드 믹싱을 무효화하도록 사운드 컨트롤러(9)에 지시한다(스텝 S14).
스텝 S15는, 현재 타이틀에 대응하는 BD-J Object에 애플리케이션 관리 테이블에 존재하는가 여부의 판정이고, 만약 존재하면, 전의 타이틀을 생존구간으로 하지 않으나, 현재 타이틀을 생존구간으로 하고 있는 Java(등록상표) 애플리케이션으로, AutoRun 속성을 갖는 것을 기동한다(스텝 S16). 만약 존재하지 않으면, 전의 타이틀을 생존구간으로 하고 있으나, 현재 타이틀을 생존구간으로 하고 있지 않은 애플리케이션을 정지한다(스텝 S17)
그 후, Java(등록상표) 애플리케이션의 기동에 성공했는지 여부의 판정을 행하고(스텝 S18), 기동에 성공하면(스텝 S18에서 Yes), AutoPlayPL의 재생화상을 쿼터(1/4)로 변환한다(스텝 S19)고 하는 순서를 실현하는 것이다.
한편, 이 스텝 S18이 No이면, 스텝 S23, S24, S16, S18로 이루어지는 루프처리를 실행하게 된다. 본 루프처리에서의 제어변수는 재 기동 카운터(restart counter)이다. 재 기동 카운터는 애플리케이션의 재 기동 횟수를 규정하는 카운터이다. 본 재 기동 카운터는 본 플로차트의 기동 시에 리셋 되고, 스텝 S23에서 0인지 여부의 판정이 이루어진다. 0이 아닌 경우, 스텝 S24에서 재 기동 카운터는 감소된다. 이상의 스텝 S23, S24, S16, S18 ~ 스텝 S19로 이루어지는 루프 처리에 의해 재 기동 카운터가 0이 아닌 한, AutoRun 애플리케이션의 기동은 반복되게 된다. 이러한 반복에 의해 애플리케이션의 기동이 보증되게 된다.
스텝 S2는, 메인이 되는 애플리케이션이 실행되어 있지 않은 상태인가 여부의 판정이고, 만약 그렇다면, 스텝 S5의 판정을 행한다. 스텝 S5는 애플리케이션이 정상 종료하였는지의 판정이다. 만약 이상 종료했으면, 스텝 S21, 스텝 S22의 처리를 실행한다. 정상 종료했으면, 스텝 S21 ~ 스텝 S22를 실행하지 않고, 스텝 S1 ~ 스텝 S4로 이루어지는 메인 루프로 되돌아간다.
스텝 S21은, AutoPlayPL의 재생 중인지 여부의 판정이고, 만약 재생 중이면, AutoPlayPL의 재생화상을 풀 스크린화 하도록 플레이 백 컨트롤 엔진(32)에 지시한다(스텝 S22). 그 후, 스텝 S23으로 이행한다. 스텝 S23으로의 이행에 의해, 이상 종료 시에도 스텝 S14 ~ 스텝 S17로 이루어지는 루프 처리가 실행되게 된다. 이에 의해 재 기동 카운터의 횟수가 0이 될 때까지 애플리케이션의 재 기동은 반복되게 된다.
스텝 S4는, BD 드라이브(1)에 BD-ROM이 존재하고 있는가 여부의 판정이고, 만약 BD-ROM이 존재하지 않으면, 모든 애플리케이션에 대하여 종료 지시를 나타낸다(스텝 S6).
이상과 같이 본 실시 예에 의하면, 멀티채널에서의 음성출력을 의도하는 것과 같은 재생제어의 실행 시에는 사운드 믹싱을 무효화해 두고, 멀티채널에서의 음성출력을 의도하지 않는 것과 같은 재생제어의 실행 시에는 사운드 믹싱을 유효화해 둘 수 있다.
이에 의해, 영화제작 스튜디오는 멀티채널에서의 재생을 의도하고 있는 경우에는 클릭 음을 금지하고, 대신에 클릭 음에서의 재생을 의도하고 있는 경우는, 대신에 멀티채널에 의한 음성출력을 금지한다고 하는 조정이 가능해진다.
클릭 음의 도입에 의해 "멀티채널의 음성출력이 끊어지는 것은 아닌가"라고 하는 불안에서 제작 스튜디오를 해방할 수 있으므로, 영화작품 작성에 있어서의 클릭 음의 도입에 탄력을 붙일 수 있다.
또, 제 1 실시 예에서는, 멀티채널이 5.1Ch의 서라운드 음성이고, 오디오 스트림이 이 멀티채널의 속성을 갖는 경우, Mixing_On 플래그를 OFF로 한다고 설명하였으나, 멀티채널이 2 CH의 스테레오 음성을 의미하고, 오디오 스트림이 스테레오 속성을 갖는 경우, Mixing_On 플래그를 OFF로 하여도 된다.
스테레오 음성을 전개한 후의 데이터량은 그다지 크지는 않고, LPCM 상태로 전개한 후에 서라운드 믹싱을 행하여도 디지털 출력이 가능해질 수도 있다. 이와 같이, 스테레오 음성의 전개 후의 데이터량은 그다지 크지 않다고 기대할 수 있고, 디지털 출력이 가능한 것을 확인한 경우, 멀티채널을 ON으로 설정하여도 된다.
(제 2 실시 예)
제 1 실시 예에서는, 플레이리스트의 자동재생이 이루어진 애플리케이션의 생존구간 별로 Mixing_On 플래그를 설치하였으나, 이것을 다르게 보면, 플레이리스트와 애플리케이션 생존구간이 등가(等價)이며, 플레이리스트를 구성하는 생존구간 별로 Mixing_On 플래그에 의한 제어가 미치는 것을 생각할 수 있다.
이것을 감안하여, 본 실시 예에서는 Mixing_On 플래그를 플레이리스트 정보에 설치하는 기술을 제안한다.
도 40(a)은 제 2 실시 예에 관한 플레이리스트 정보의 내부 구성을 나타내는 도면이다. 본 도면이 도 8(a)에 나타낸 플레이리스트 정보의 내부 구성과 다른 것은 PlayItem 정보 내에 Mixing_On 플래그가 설치되어 있는 점이다. 도 40(b)은 PlayItem 정보 내에 설치된 Mixing_On 플래그의 내용을 나타내는 도면이다.
Mixing_On 플래그가 1로 설정된 경우, 파일 sound.bdmv에 의한 클릭 음을 PlayItem의 재생음성으로 믹싱하는 취지를 나타낸다.
Mixing_On 플래그가 0으로 설정된 경우, 파일 sound.bdmv에 의한 클릭 음을 PlayItem의 재생음성으로 믹싱하지 않는 취지를 나타낸다.
파일 sound.bdmv에 의한 클릭 음을 믹싱할지 여부를 플레이리스트의 단위로 규정할 수 있다. 그리고 이 Mixing_On 플래그를 어떠한 값으로 설정할지는 그 PlayItem 정보가 갖는 STN_Table의 설정내용에 따른 것이 된다.
이상이 제 2 실시 예에 관한 기록매체의 개량이다. 이어서, 제 2 실시 예에 관한 재생장치의 개량에 대하여 설명한다. 제 2 실시 예에 관한 재생장치의 개량 점은 플레이 백 컨트롤 엔진(32)에 존재한다.
이후, 도 41의 플로차트를 참조하여 플레이 백 컨트롤 엔진(32)에 의한 구체적인 제어순서를 설명한다.
도 41은 플레이 백 컨트롤 엔진(32)에 의한 플레이리스트 재생순서를 나타내는 플로차트이다. 이 재생순서는 프레젠테이션 엔진(31)에 대한 제어(스텝 S106)와 BD-ROM 드라이브(1) 또는 로컬 스토리지(20)에 대한 제어(스텝 S108)를 주로 포함한다. 본 플로차트에서 처리대상인 PlayItem을 PlayItem#x로 한다. 본 플로차트는, 현재 PL 정보(.mpls)의 판독을 행하고(스텝 S101), 그 후, 스텝 S102 ~ 스텝 S110의 처리를 실행하는 것이다. 여기서 스텝 S102 ~ 스텝 S110은 스텝 S109가 Yes가 될 때까지 현재 PL 정보를 구성하는 각각의 PI 정보에 대하여 스텝 S103 ~ 스텝 S110의 처리를 반복한다고 하는 루프처리를 구성하고 있다. 이 루프처리에서 처리대상이 되는 PlayItem을 PlayItem#x(PI#x)라고 부른다. 이 PlayItem#x는 현재 플레이리스트의 선두의 PlayItem에 설정됨으로써 초기화된다(스텝 S102). 상술한 루프처리의 종료요건은, 이 PlayItem#x가 현재 플레이리스트의 최후의 PlayItem이 되는 것이고(스텝 S109), 만약 최후의 PlayItem이 아니면, 현재 플레이리스트에서의 다음의 PlayItem이 PlayItem#x로 설정된다(스텝 S110).
루프 처리에서 반복하여 실행되는 스텝 S103 ~ 스텝 S110은, PlayItem#x의 Clip_information_file_name으로 지정되는 Clip 정보를 시나리오 메모리(25)에 판독하고(스텝 S103), PlayItem#x의 In_time을 현재 Clip 정보의 EPmap을 이용하여 I픽처 어드레스 u로 변환하며(스텝 S104), PlayItem#x의 Out_time를 현재 Clip 정보의 EP_map을 이용하여 I픽처 어드레스 v로 변환하고(스텝 S105), 이들의 변환으로 얻어진 어드레스 v의 다음의 I픽처를 구하여 그 어드레스의 하나 바로 앞을 어드레스 w로 설정하며(스텝 S107), 그렇게 산출된 어드레스 w를 이용하여 I픽처 어드레스 u에서 어드레스 w까지의 TS 패킷의 판독을 BD-ROM 드라이브(1) 또는 로컬 스토리지(20)에 명령한다고 하는 것이다(스텝 S108).
한편, 프레젠테이션 엔진(31)에 대해서는 현재 PLMark의 mark_time_stamp에서 PlayItem#x의 Out_time까지의 출력을 명령한다(스텝 S106). 이상의 스텝 S105 ~ 스텝 S108에 의해 AVClip에서 PlayItem#x에 의해 지시되어 있는 부분의 재생이 이루어지게 된다.
그 후, PlayItem#x가 현재 플레이리스트의 최후의 PI인지의 판정이 이루어진다(스텝 S109).
PlayItem#x가 현재 플레이리스트의 최후의 PI가 아니면, 현재 플레이리스트에서의 다음의 PlayItem을 PlayItem#x로 설정하고(스텝 S110), 스텝 S103으로 되돌아간다. 이상의 스텝 S103 ~ 스텝 S110을 반복함으로써 플레이리스트를 구성하는 PI는 순차적으로 재생되게 된다.
본 플로차트에서 스텝 S115 ~ 스텝 S117은 스텝 S103 ~ 스텝 110이 한바퀴 돌 때마다 실행되는 스텝이다. 스텝 S115는 PlayItem#x에서의 Mixing_On 플래그가 1인지 여부의 판정을 행한다. 만약 Mixing_On 플래그가 1이라면, 사운드 믹싱을 유효화하도록 사운드 컨트롤러(9)에 지시하고(스텝 S116), 만약 Mixing_On 플래그가 0이라면, 사운드 믹싱을 무효화하도록 사운드 컨트롤러(9)에 지시한다(스텝 S117).
이상과 같이 본 실시 예에 의하면, HDMV 모드에서도 BD-J 모드에서도 이용되는 플레이리스트 정보에 Mixing_On 플래그를 설치하므로, HDMV 모드에서 IG 스트림을 이용하여 GUI가 실현되는 경우에도, 클릭 음의 사운드 믹싱의 유효화, 무효화를 규정해 둘 수 있다.
또, 클릭 음에 한정되지 않고, WWW 사이트에서 다운로드 한 다른 오디오 스트림과의 사운드 믹싱을 실현하는 경우에도, 그 사운드 믹싱의 유효화/무효화를 Mixing_On 플래그에 규정해 둘 수 있다.
(제 3 실시 예)
제 1 실시 예에서 Java(등록상표) 가상 머신에서의 플레이리스트 재생은 BD-J Object 내의 플레이리스트 관리 테이블을 이용하여 규정할 수 있었다. 여기서 문제가 되는 것이 플레이리스트 관리 테이블이다. 즉, 플레이리스트를 재생하여도 될지 여부는 BD-J Object 별로 플레이리스트 관리 테이블에 기술되어 있으므로, 어떤 타이틀에서는 재생 가능하나, 다른 타이틀에서는 재생 불가능하게 되는 경우가 있다. 또, 플레이리스트 재생은 가능하다고 해도, 저작권 보호의 관점에서 어떤 종류의 애플리케이션으로부터의 재생을 금지하고 싶은 경우가 있다. 이러한 플레이리스트 재생의 제한을 실현하기 위하여, 제 3 실시 예에서는 Java(등록상표) 플랫폼(35)에 퍼미션 컨트롤러(permission controller)가 설치되어 있다.
퍼미션 컨트롤러는, 어느 애플리케이션이 플레이리스트 재생을 요구한 경우, 그 애플리케이션과 상호 인증을 행하고, 요구 원 애플리케이션에 플레이리스트의 재생 권한이 있는가 여부를 판정한다. 만약 있으면, 당해 재생을 플레이 백 컨트롤 엔진(32)에 요구하고, 없으면 불허가를 나타내는 응답 이벤트를 요구 원 애플리케이션에 출력한다. 이 퍼미션 컨트롤러에 의한 허락 여부 판정에 의해 어떤 배급회사의 배급에 관계된 플레이리스트를 다른 배급회사의 배급에 관계된 애플리케이션이 요구하여도, 이러한 요구를 불허가로 할 수 있다. 따라서, 정당한 권한이 없는 애플리케이션에 의한 플레이리스트의 무단 인용을 피할 수 있다. 허가해야 할 플레이리스트와 애플리케이션의 조합, 허가하지 않아야 할 플레이리스트와 애플리케이션의 조합은 별도 BD-ROM에 기록된 퍼미션 파일(permission file)에 규정되어 있고, 퍼미션 컨트롤러에 의한 판정에 이것에 의거한다. 이러한 파일의 상세는 본원의 주안이 아니므로 설명을 생략한다.
제 3 실시 예에서 애플리케이션 매니저(37)는 현재의 재생시점에서 재생 가능한 플레이리스트를 애플리케이션으로부터의 요구에 따라서 통지한다. 도 42는 이 애플리케이션 매니저(37)에 의한 통지처리의 처리 순서를 나타내는 플로차트이다. 본 플로차트에서는, 애플리케이션의 기동 중에 재생 가능한 플레이리스트의 통지를 요구하는 요구(GetPL)를 애플리케이션이 발행하였는가 여부의 감시를 행하고 있다(스텝 S45). 만약 발행되면, 현재의 재생시점이 속해 있는 타이틀을 구성하는 BD-J Object에 플레이리스트 관리 테이블이 존재하는가 여부를 판정한다(스텝 S46). 플레이리스트의 기술이 있으면, 플레이리스트 관리 테이블에 기술된 플레이리스트를 재생 가능한 플레이리스트로 요구 원의 애플리케이션에 통지한다(스텝 S47).
플레이리스트의 기술이 없으면, 플레이리스트 재생이 불가능한 취지를 발행 원 애플리케이션에 통지한다(스텝 S48). 이상이 제 3 실시 예에 관한 애플리케이션 매니저(37)의 처리 순서이다.
이어서, 플레이리스트 재생이 요구된 경우의 애플리케이션 매니저(37)의 처리에 대하여 설명한다. 제 3 실시 예에 관한 애플리케이션 매니저(37)는 도 43의 플로차트에 따라서 처리를 행한다.
도 43에서 애플리케이션 매니저(37)는 플레이리스트 재생을 요구한 애플리케이션이 존재하는가 여부의 판정을 행하고 있다(스텝 S51). 어느 애플리케이션이 플레이리스트 재생을 요구하면, 요구 원 애플리케이션에 플레이리스트 재생의 권리가 존재하는가 여부의 인증을 퍼미션 컨트롤러에 행하게 한다(스텝 S52). 만약 재생할 권리가 있으면, 플레이 백 컨트롤 엔진(32)에 재생 개시를 지시하고(스텝 S53), 플레이 백 컨트롤 엔진(32)으로부터의 성공 응답을 기다린다(스텝 S54).
이러한 재생요구가 있으면, 플레이 백 컨트롤 엔진(32)은 플레이리스트 정보의 정당성을 체크한다. 이러한 정당성 체크에는, 플레이리스트 정보, Clip 정보, AVClip이 존재하는 BD-ROM 및 로컬 스토리지(20)에서, 정당한 플레이리스트를 구성하고 있는가의 체크와 플레이리스트 정보에서의 clip_Information_file_name에 의해 지정되는 Clip 정보 및 AVClip이 BD-ROM 및 로컬 스토리지(20)에 존재하는가 여부의 체크가 있다. clip_Information_file_name에 의해 정당한 파일이 참조되어 있지 않은 경우, 또는 BD-ROM 및 로컬 스토리지(20)로 구성되는 가상적인 패키지에 모순이 있고, 정당한 플레이리스트를 구성할 수 없는 경우, 플레이 백 컨트롤 엔진(32)은 false를 나타내는 응답을 되돌리게 된다. 또, 요구 원 애플리케이션에 의해 높은 기동 우선도를 갖는 애플리케이션이 그 플레이리스트를 재생하고 있고, 플레이리스트 재생을 실현하는 리소스에서 경합이 발생하고 있는 경우도, 플레이 백 컨트롤 엔진(32)은 false를 나타내는 응답을 되돌린다.
이상의 과정을 거쳐서 성공 응답이 있으면, 플레이리스트 재생 성공을 나타내는 이벤트를 요구 원 애플리케이션에 출력한다(스텝 S55).
성공 응답이 없으면, 플레이리스트 재생 실패를 나타내는 이벤트를 요구 원 애플리케이션에 출력한다(스텝 S56). 한편, 스텝 S52에서 요구 원 애플리케이션을 재생할 권리가 요구 원 애플리케이션에 없으면, 플레이리스트 재생 불가를 나타내는 이벤트를 요구 원 애플리케이션에 출력한다(스텝 S57).
이상과 같이 본 실시 예에 의하면, 플레이리스트 재생 여부가 각 타이틀 별로 각각 다르고, 플레이리스트 재생의 권한을 갖는 애플리케이션이나 그렇지 않은 애플리케이션 등 다양한 애플리케이션이 있다고 해도, 적절한 플레이리스트 재생을 애플리케이션으로부터의 요구에 따라서 실행할 수 있다. 따라서, 애플리케이션 실행과 플레이리스트 재생을 조합한 다채로운 콘텐츠 표현이 가능해진다.
(제 4 실시 예)
제 1 실시 예에서는, 타이틀 개시 시에 재생을 개시하고자 하는 플레이리스트에 AutoPlay를 나타내는 재생속성을 부여하여 AutoPlayPL의 재생을 재생장치에 명령한다. 이에 비해, 본 실시 예에서는 언바운더리 애플리케이션을 BD-ROM에 기록해 두고, 타이틀 개시 시에 자동으로 재생을 개시해야 할 타이틀을 언바운더리 애플리케이션에 선택하게 하는 개량에 관한 것이다.
언바운더리 애플리케이션은, 플레이 백 컨트롤 엔진(32)과 같은 재생장치에서의 레지던트 애플리케이션과 대등한 입장에 있는 애플리케이션으로, 플레이리스트 관리 테이블에 기술되어 있는 복수의 플레이리스트 정보 중에서 재생장치 측의 PSR 설정 값에 합치하는 것을 선택하여 통지한다고 하는 처리를 플레이 백 컨트롤 엔진(32)으로부터의 요구에 따라서 실행한다 .
플레이리스트 선택을 언바운더리 애플리케이션에 행하게 하는 경우, 이러한 선택이 필요한 타이틀에서는 플레이리스트 관리 테이블에서의 재생속성을 모두 무 지정으로 설정해 둔다. 이것은, "모두 무 지정"인 것을 신호로 플레이 백 컨트롤 엔진(32)에 플레이리스트 선택을 타이틀 언바운더리 애플리케이션에 요구하게 하기 위해서이다.
이 언바운더리 애플리케이션에 의한 선택은 편집 시에 규정된 선택 알고리즘에 의거한다. 도 44(a) ~ (c)는 언바운더리 애플리케이션에 포함된 선택 알고리즘의 내용을 표 형식으로 나타내는 도면이다. 이 표는 PSR의 값이 취할 수 있는 값의 범위와 PSR이 그들의 값이 되었을 때, 재생해야 할 플레이리스트를 대응시켜서 나타내고 있다. 이 중, 도 44(a)는 패런털 레벨(parental level)에 의거한 선택 알고리즘의 내용을 나타낸다. 여기서 패런털 레벨은 재생장치에서 PSR(14)에 나타나있다. 구체적으로 말하면, PSR(14)에는 사용자의 연령을 나타내는 정수 값이 설정되어 있고, 이것을 재생장치는 패런털 레벨로 해석한다. 도 44(a)에서 PSR(14)이 취할 수 있는 값은, 14살 미만, 14살 이상 18살 미만, 18살 이상이라는 3개의 범위로 나누어져 있다. 그리고 이들 범위별로 재생해야 할 플레이리스트가 대응되어 있다. 언바운더리 애플리케이션이 이러한 선택 알고리즘에 의한 선택을 행하면, PSR의 설정 값이 14살 미만이면 PlayList#1이, 14살 이상 18살 미만이면 PlayList#2가, 18살 이상이면 PlayList#3이 각각 선택되게 된다.
도 44(b)는 Language for Audio에 의거한 선택 알고리즘의 내용을 나타낸다. 여기서 Language for Audio는 재생장치에서 PSR(16)에 나타나있다. 구체적으로 말하면, PSR(16)에는 정수 값이 설정되어 있고, 이것을 재생장치는 음성재생용의 언어설정으로 해석한다. 도 44(b)에서 PSR(16)이 취할 수 있는 값은, 영어를 나타내는 값, 일본어를 나타내는 값, 그 외의 값이라는 3개의 범위로 나누어져 있다. 그리고 이들 범위별로 재생해야 할 플레이리스트가 대응되어 있다. 언바운더리 애플리케이션이 이러한 선택 알고리즘에 의한 선택을 행하면, PSR(16)의 설정 값이 영어를 나타내면 PlayList#1이, 일본어를 나타내면 PlayList#2가, 영어, 일본어 이외의 값이면 PlayList#3이 각각 선택되게 된다.
도 44(c)는 Player Configuration for Video에 의거한 선택 알고리즘의 내용을 나타낸다. 여기서 Player Configuration for Video는 재생장치에서 PSR(14)에 나타나있다. 구체적으로 말하면, PSR(14)에는 정수 값이 설정되어 있고, 이것을 재생장치는 영상재생용의 환경설정으로 해석한다. 도 44(c)에서 PSR(14)이 취할 수 있는 값은, 해상도 525×600 TV system Letter Box, 해상도 525×600 TV system, 1920×1080 TV system이라는 3개의 범위로 나누어져 있다. 그리고 이들 범위별로 재생해야 할 플레이리스트가 대응되어 있다. 언바운더리 애플리케이션이 이러한 선택 알고리즘에 따라서 선택을 행하면, PSR(14)의 설정 값이 해상도 525×600 TV system Letter Box를 나타내는 것이면 PlayList#1이, 해상도 525×600 TV system을 나타내는 것이면 PlayList#2가, 1920×1080 TV system을 나타내는 것이면 PlayList#3이 각각 선택되게 된다. 도 44(a) ~ (c)에 나타낸 바와 같은 선택 알고리즘은 이들 도면에 나타난 조건분기를 컴퓨터 기술언어로 기술함으로써 작성할 수 있다.
이상이 본 실시 예에 관한 기록매체의 개량이다. 이어서, 본 실시 예에 관한 재생장치의 개량에 대하여 설명한다. 본 실시 예에서의 개량 점은 주로 애플리케이션 매니저(37), 플레이 백 컨트롤 엔진(32)에 있다.
애플리케이션 매니저(37)는, 타이틀 분기가 발생하고, 플레이리스트 관리 테이블을 참조했을 때, 그 플레이리스트 관리 테이블에 AutoPlayPL이 존재하는가 여부를 판정한다. AutoPlayPL이 없으면, 플레이리스트 관리 테이블을 플레이 백 컨트롤 엔진(32)에 인도하여, 이 플레이리스트 관리 테이블에 기재되어 있는 플레이리스트 중 어느 것을 자동으로 재생하도록 플레이 백 컨트롤 엔진(32)에 요구한다.
플레이 백 컨트롤 엔진(32)은 플레이리스트 관리 테이블의 인도를 수신하면, 언바운더리 애플리케이션에 대하여 플레이리스트 선택을 행하도록 요구한다. 이 요구에 따라서 언바운더리 애플리케이션에서 재생 가능한 플레이리스트의 리스트가 통지되면, 그 PL 리스트에 기재된 플레이리스트 중, PlayItem에서 인도된 플레이리스트 관리 테이블에 존재하는 것을 판정한다. 언바운더리 애플리케이션에 의해 선택된 플레이리스트 중에 플레이리스트 관리 테이블에 기재된 것이 있으면, 그것의 재생을 자동으로 개시한다.
도 45는 타이틀 언바운더리 애플리케이션에 PL 선택을 행하게 하는 과정을 모식적으로 나타낸 도면이다. 본 도면의 좌측은 재생장치에서의 소프트웨어의 레이어 구성을 나타내고, 본 도면의 우측에 BD-ROM의 기록내용을 나타낸다. 도면 중의 ◎1, 2, 3, 4는, AutoPlay가 없는 플레이리스트 관리 테이블을 발견한 경우의 애플리케이션 매니저(37)로부터의 통지(◎1), 플레이 백 컨트롤 엔진(32)에 의한 재생 가능 플레이리스트의 문의(◎2), 타이틀 언바운더리 애플리케이션에 의한 PSR 설정 값 취득(◎3), 타이틀 언바운더리 애플리케이션에서 플레이 백 컨트롤 엔진(32)으로의 재생 가능한 플레이리스트의 통지(◎4)를 모식적으로 나타내고 있다.
또, 도 45에서 타이틀 언바운더리 애플리케이션은 BD-ROM 상에 기술되어 있으나, 이것은 타이틀 언바운더리 애플리케이션을 알기 쉽게 기술하기 위한 배려에 지나지 않는다. 타이틀 언바운더리 애플리케이션은 Java(등록상표) 애플리케이션이므로, Java(등록상표) 가상 머신(36) 내의 워크 메모리(54)에서 인스턴스로 스레드(55)에 의해 실행된다고 하는 것이 현실적인 기술이 된다.
이상과 같이 본 실시 예에 의하면, 타이틀의 바운더리에서 생존해 있는 애플리케이션에 상술한 바와 같은 판정을 행하게 하므로, 재생장치 측의 플레이 백 컨트롤 엔진(32)은 BD-ROM에서의 복수의 플레이리스트 중 재생장치 측의 상태설정에 따른 것은 어느 것인가를 타이틀 개시 시의 빠른 단계에서 알 수 있다. 재생속성=AutoPlay의 애플리케이션을 정해두지 않아도, 타이틀 개시 시에 재생을 개시해야 할 플레이리스트를 결정할 수 있으므로, 랭귀지 크레디트(language credit)나 패런털 록(parental lock)이라는 재생제어를 BD-J 모드에서도 실현할 수 있다.
또, 본 실시 예에서의 선택 알고리즘은 PSR이 취할 수 있는 값을 플레이리스트에 대응시켰으나, 재생장치에서의 PSR의 설정 값이 상정 외의 값인 경우에, 재생장치에 재생시키는 플레이리스트를 미리 규정해두어도 된다.
(제 5 실시 예)
본 실시 예는, 타이틀 절환 시에 사운드 믹싱을 미리 무효화해두는 개량에 관한 것이다. 타이틀 절환 시에는 파일 sound.bdmv의 판독이 발생할 수 있으므로 이러한 절환 시에는 디폴트로 사운드 믹싱을 미리 무효화해 둔다. 이렇게 함으로써, 파일 sound.bdmv가 프리로드 버퍼(7b) 내에 존재하지 않음에 따른 클릭 음 재생의 끊김을 방지할 수 있다.
(제 6 실시 예)
본 실시 예는, xlet 프로그램이 JMF(Java(등록상표) Media Frame Work) 방식의 인터페이스를 이용하여 mpls 파일에 대한 인스턴스(JMF 플레이어 인스턴스)를 생성함으로써, 플레이리스트 재생을 재생장치에 명령하는 경우의 실시 예이다.
mpls 파일은 플레이리스트 정보의 실체 면을 규정하는 파일이므로, 제 2 실시 예에서 설명한 바와 같이, 이 플레이리스트 정보에 Mixing_On 플래그를 설치해 둔다. Mixing_On 플래그를 플레이리스트에 설치한 경우, Java(등록상표) 애플리케이션이 플레이리스트 정보의 재생을 플레이 백 컨트롤 엔진(32)에 요구함으로써, 지정된 플레이리스트 정보 내에 있는 Mixing_On 플래그에 따라서 사운드 믹싱을 유효화 또는 무효화할 수 있다.
(제 7 실시 예)
제 1 실시 예에서는, 사운드 믹싱의 유효화 또는 무효화 등을 사운드 컨트롤러(9)에 지시하기 위한 기능을 애플리케이션 매니저(37)에 갖게 하였으나, 본 실시 예는 이러한 기능을 Java(등록상표) 애플리케이션에 갖게 하는 실시 예이다.
이에, 본 실시 예에서는 이러한 기능의 호출을 Java(등록상표) 애플리케이션에서 접수하기 위한 API(Application Interface)를 Java(등록상표) 플랫폼(35)에 갖게 한다. 그렇게 하여, 사운드 믹싱의 유효화 또는 무효화를 요구하는 기능 호출을 Java(등록상표) 애플리케이션이 실행한 경우, 사운드 믹싱의 유효화 또는 무효화 등을 사운드 컨트롤러(9)에 지시한다.
또, 이러한 유효화, 무효화를 지시하는 기능을 모듈 매니저(34)에 갖게 하여도 된다.
(제 8 실시 예)
재생장치에 PCM에서의 서라운드 음성의 전송이 가능한 출력형태가 존재하고, 그 출력형태가 사용자에 의해 선택되어 있는 경우, 믹싱 음성의 재 인코드는 불필요하므로, 그대로 출력할 수 있는 경우가 있다. 이러한 출력형태에는, HDMI에서의 출력형태, 아날로그에서의 출력형태가 있다.
재생장치에 PCM에서의 서라운드 음성의 전송이 가능한 출력형태가 존재하는지, 그리고 그 출력형태가 선택되어 있는지를 재생장치가 판단하기 위하여, 어떠한 음성출력 형태를 사용자가 바라고 있는가, 또는 재생장치의 I/F의 접속형태에서 어떠한 음성출력이 가능한지를 본 실시 예에서는 PSR 세트(23)에 기술해 둔다.
이후, 본 실시 예에 관한 PSR의 내용에 대하여 설명한다. 본 실시 예에서는, PSR 세트(23) 중, 21번째의 PSR(PRS(21)), 22번째의 PSR(PSR(22))에 이하와 같은 개량이 부가되어 있다.
PSR(21)은, 믹싱(예를 들어, 2 ch의 추가음성의 믹싱)이 가능한가 여부를 나타내는 "Audio Mixing Capability", 믹싱 가능한 채널 수(또는, 믹싱 가능한 개개의 채널 명)을 나타내는 "Audio Mixing Channel Number", 현재 사용자가 선택하고 있는 음성출력 형태에 대한 최대의 출력 ch 수를 나타내는 "Audio output Channel Number"을 나타낸다.
예를 들어, 음성출력 형태로 S/PDIF를 선택하고 있는 경우, 서라운드 음성은 대역 상의 문제에서 압축 부호화하지 않으면 출력할 수 없다. 따라서, 믹싱 후에 재 인코드할 필요가 있으나, 고 비트 레이트에 대응한 디지털 I/F인 HDMI 등을 선택한 경우, 비 압축(LPCM)의 형식이어도 그대로 서라운드 음성인 채로 송신할 수 있다. 따라서, S/PDIF 접속 시에는, 믹싱 후에 인코드할지 여부로 Audio Output Channel Number의 값이 변한다.
PSR(22)에는, 재생장치의 한 속성으로, 비디오의 출력을 행하지 않는 재생장치임을 나타내는 Audio Only Player, 소정의 프로파일에 준거한 재생장치임을 나타내는 Profile 1 Player, Profile 2 Player이 있다. 예를 들어, Profile 1에는 대응하면서도, Profile 2에는 대응하지 않는 재생장치는 Profile 1 Player을 유효로 설정하고, Profile 2 Player을 무효로 설정한다. 이들 값은 일본어 L에서 참조가 가능하므로 재생장치의 프로파일(profile)에 따른 동적인 재생경로의 선택이나 메뉴의 유무 등을 선택할 수 있다. 특히, Audio Only Player가 유효로 되어 있는 경우에는, 일본어 L에서 CD 재생장치와 동등한 사용자 조작성을 부여하도록 플레이리스트를 재생하도록 타이틀을 작성할 수 있고, 이 경우, 사용자는 BD-ROM을 음악 CD와 전혀 다름없이 조작할 수 있다. 물론, 동일한 디스크이면서, Audio Only Player가 무효로 되어 있는 재생장치에 대해서는, 지금까지처럼 영상출력을 가정하여 GUI 베이스의 메뉴 등을 표시하여 인터랙티브 한 재생이 가능하다. 이와 같은 상정은 BD를 채용한 카 오디오 시스템 등에서 유효하다고 생각된다.
이상과 같은 PSR이 추가되었으므로, 본 실시 예에 관한 플레이 백 컨트롤 엔진(32)은 PlayItem 정보 또는 플레이리스트 정보에 대응하는 Mixing_On 플래그가 "믹싱=유효"를 나타내고 있는 경우, PSR(21)에서 믹싱이 가능한가 여부를 판정한다. 그리고 PSR(21)이 믹싱이 가능한 경우에, PSR(21)에서 믹싱이 가능한 ch 수를 취득하고, 그 ch 수 이하의 ch 수를 갖는 오디오 스트림 또는 사운드 데이터를 선택적으로 사운드 믹서(8), 사운드 컨트롤러(9)에 출력하여 믹싱을 행하게 한다.
*이상과 같은 본 실시 예에 의하면, 어떠한 음성출력 형태를 사용자가 원하고 있는지, 또는 재생장치의 I/F의 접속형태에서 어떠한 음성출력이 가능한지를 PSR에 기술해두므로, 믹싱 출력의 여부를 더욱 상세하게 상정해 둘 수 있다.
(비고)
이상의 설명은 본 발명의 모든 실시행위의 예를 설명하고 있는 것은 아니다. 하기(A) (B) (C) (D)……의 변경을 한 실시행위의 예에 의해서도 본 발명의 실시는 가능하다. 본원의 청구항에 관한 각 발명은 이상에 기재한 복수의 실시 예 및 이들 변형 예를 확장한 기재 및 일반화한 기재로 되어있다. 확장 내지 일반화의 정도는 본 발명의 기술분야의 출원 당시의 기술수준의 특성에 의거한다.
(A) 각 실시 예에 관한 BD-ROM은 이하의 공정을 순차적으로 실행함으로써 만들 수 있다.
우선 먼저, BD-ROM을 어떠한 개요(?)로 재생시킬지를 결정하여 기획하고(기획 공정), 동화상 수록, 음성 수록 등의 소재작성을 행하며(소재작성 공정), 기획공정에서 작성된 개요에서 볼륨 구성정보(volume structure information)를 작성한다(시나리오 작성 공정).
볼륨 구성정보란 추상적인 기술로 광 디스크의 응용 층의 포맷을 나타내는 정보이다.
그 후, 비디오 소재, 오디오 소재, 자막 소재, 메뉴 소재 각각을 인코드함으로써, 엘리멘터리 스트림을 얻는다(소재 인코드 공정). 그 후, 복수의 엘리멘터리 스트림의 다중화를 행한다(다중화 공정).
이렇게 다중화가 이루어지면, 다중화된 스트림 및 볼륨 구성정보를 BD-ROM의 응용 층의 포맷에 적합하게 하는 작업을 행하고, BD-ROM의 볼륨 영역에 기록해야 할 데이터의 전체 화상(일반적으로 볼륨 데이터라 한다)을 얻는다(포맷팅 공정(formatting process)).
여기서 본 발명에 관한 기록매체의 응용 층 포맷은 프로그래밍 언어로 기술된 클래스 구조체의 인스턴스이고, BD-ROM 규격, BD-J 규격에 규정된 구문에 의거하여 클래스 구조체의 인스턴스를 기술함으로써, BD-J Object, Clip 정보, PlayList 정보 등을 작성할 수 있다. 이 경우, 테이블 형식의 데이터는 프로그래밍 언어의 for문을 이용하여 정의할 수 있고, 그 외 특정한 조건 하에만 필요로 하게 되는 데이터는 if문을 이용하여 정의할 수 있다.
이러한 적합 처리 후, 볼륨 데이터가 얻어지면, 볼륨 데이터를 재생해 보고 시나리오 작성공정의 결과가 정당한가 여부의 확인을 행한다(에뮬레이션 공정(emulation process)). 이 에뮬레이션 공정에서는 BD-ROM 플레이어 모델의 버퍼 상태의 시뮬레이트(simulate)를 행하는 것이 바람직하다.
최후에 프레스 공정을 행한다.
이 프레스 공정에서는, 볼륨 이미지를 물리 데이터 열로 변환하고, 이 물리 데이터 열을 이용하여 원반 커팅을 행하여 디스크 원반을 작성한다. 또, 프레스 장치에 의해 작성된 원반에서 BD-ROM을 제조한다. 이 제조는, 주로 기판성형, 반사막 성막, 보호층 코팅, 부착, 레벨의 인쇄라는 여러 공정으로 이루어진다.
이상의 공정을 거쳐서 각 실시 예에서 설명한 기록매체(BD-ROM)를 만들 수 있다.
(B) 각 실시 예에서 설명한 플로차트나 기능적인 구성요소에 의한 정보처리는 하드웨어 자원을 이용하여 구체적으로 실현되어 있으므로, 자연법칙을 이용한 기술적 사상의 창작이라고 할 수 있어서, "프로그램의 발명"으로서의 성립요건을 만족한다.
?본 발명에 관한 프로그램의 생산형태
본 발명에 관한 프로그램은 이하와 같이 해서 만들 수 있다. 우선 먼저, 소프트웨어 개발자는 프로그래밍 언어를 이용하여 각 플로차트나 기능적인 구성요소를 실현하는 소스 프로그램을 기술한다. 이 기술에 있어서, 소프트웨어 개발자는 프로그래밍 언어의 구문에 따라서 클래스 구조체나 변수, 배열변수, 외부함수의 콜을 이용하여 각 플로차트나 기능적인 구성요소를 구현하는 소스 프로그램을 기술한다.
구체적으로는, 플로차트에서의 반복 처리는 상기 구문에 규정된 for문 등을 이용하여 기술한다. 판정처리는 상기 구문에 규정된 if문, switch문 등을 이용하여 기술한다. 디코더에 대한 재생제어나 드라이브 장치의 액세스 제어 등 하드웨어에 대한 제어는 하드웨어의 제조원에서 공급되는 외부함수를 호출함으로써 기술한다.
기술된 소스 프로그램은 파일로서 컴파일러(compiler)에 부여된다. 컴파일러는 이들 소스 프로그램을 번역하여 오브젝트 프로그램을 생성한다.
컴파일러에 의한 번역은, 구문해석, 최적화, 자원할당, 코드 생성이라는 과정으로 이루어진다. 구문해석에서는, 소스 프로그램의 자구(字句)해석, 구문해석 및 의미해석을 행하고, 소스 프로그램을 중간 프로그램으로 변환한다. 최적화에서는, 중간 프로그램에 대하여 기본 블록화, 제어 프로의 해석, 데이터 프로의 해석이라는 작업을 행한다. 자원할당에서는, 타깃이 되는 프로세서의 명령 세트로의 적합을 도모하기 위하여, 중간 프로그램 중의 변수를 타깃이 되는 프로세서의 프로세서가 갖고 있는 레지스터 또는 메모리에 할당한다. 코드 생성에서는, 중간 프로그램 내의 각 중간명령을 프로그램 코드로 변환하고, 오브젝트 프로그램을 얻는다.
여기서 생성된 오브젝트 프로그램은 각 실시 예에서 설명한 플로차트의 각 스텝이나 기능적 구성요소 각각의 순서를 컴퓨터에 실행하도록 하는 하나 이상의 프로그램 코드로 구성된다. 여기서 프로그램 코드는, 프로세서의 네이티브 코드, JAVA(등록상표) 바이트 코드와 같이 다양한 종류가 있다. 프로그램 코드에 의한 각 스텝의 실현에는 다양한 형태가 있다. 외부함수를 이용하여 각 스텝을 실현할 수 있는 경우, 이 외부함수를 콜하는 콜 문이 프로그램 코드가 된다. 또, 하나의 스텝을 실현하는 프로그램 코드가 각각의 오브젝트 프로그램에 귀속하는 경우도 있다. 명령 종류가 제한되어 있는 RISC 프로세서에서는 산술연산 명령이나 논리연산 명령, 분기명령 등을 조합함으로써, 플로차트의 각 스텝을 실현하여도 된다.
오브젝트 프로그램이 생성되면, 프로그래머는 이들에 대하여 링커(linker)를 기동한다. 링커는 이들의 오브젝트 프로그램이나, 관련된 라이브러리 프로그램(library program)을 메모리 공간에 할당하고, 이것을 하나로 결합하여 로드 모듈(load module)을 생성한다. 이렇게 생성된 로드 모듈은 컴퓨터에 의한 판독을 전제로 한 것이며, 각 플로차트에 나타낸 처리순서나 기능적인 구성요소의 처리순서를 컴퓨터에 실행시키는 것이다. 이상의 처리를 거쳐서 본 발명에 관한 프로그램을 만들 수 있다.
(C) 본 발명에 관한 프로그램은 이하와 같이 하여 사용할 수 있다.
(i) 내장 프로그램으로 사용
본 발명에 관한 프로그램을 내장 프로그램으로 사용하는 경우, 프로그램에 해당하는 로드 모듈을 기본 입출력 프로그램(BIOS)이나 다양한 미들웨어(middle ware)(오퍼레이션 시스템)와 함께 명령 ROM에 기록한다. 이러한 명령 ROM을 제어부에 포함하고 CPU에 실행시킴으로써, 본 발명에 관한 프로그램을 재생장치의 제어 프로그램으로 사용할 수 있다.
(ⅱ) 애플리케이션으로 사용
재생장치가 하드디스크 내장 모델인 경우는, 기본 입출력 프로그램(BIOS)이 명령 ROM에 포함되어 있고, 다양한 미들웨어(오퍼레이션 시스템)가 하드디스크에 프리 인스톨(pre-install) 되어 있다. 또, 하드디스크에서 시스템을 기동하기 위한 부트(boot) ROM이 재생장치에 설치되어 있다.
이 경우, 로드 모듈만을 트랜스포터블(transportable) 기록매체나 네트워크를 통해서 재생장치에 공급하고, 하나의 애플리케이션으로 하드디스크에 인스톨한다. 그렇게 하면, 재생장치는 부트 ROM에 의한 부트 스트랩(boot strap)을 행하고, 오퍼레이션 시스템을 기동한 후에 하나의 애플리케이션으로 당해 애플리케이션을 CPU에 실행시켜서 본 발명에 관한 프로그램을 사용한다.
하드디스크 모델의 재생장치에서는 본 발명의 프로그램을 하나의 애플리케이션으로 사용할 수 있으므로, 본 발명에 관한 프로그램을 단일 체로 양도, 대여, 또는 네트워크를 통해서 공급할 수 있다.
(D) 본 발명에 관한 시스템 LSI의 생산 및 사용행위
시스템 LSI란 고밀도 기판상에 베어 칩(bear chip)을 실장하고 패키징한 것을 말한다. 복수 개의 베어 칩을 고밀도 기판상에 실장하고 패키징함으로써, 마치 하나의 LSI와 같은 외형구조를 복수 개의 베어 칩에 가지게 하는 것도 시스템 LSI에 포함된다(이와 같은 시스템 LSI는 멀티 칩 모듈이라고 불린다).
여기서, 패키지의 종별에 착안하면, 시스템 LSI는, QFP(쿼드 플랫 패키지(Quad Flat Package)), PGA(핀 그리드 어레이(Pin Grid Array))이라는 종별이 있다. QFP는 패키지의 네 측면에 핀이 장착된 시스템 LSI이다. PGA는 저면 전체에 많은 핀이 장착된 시스템 LSI이다.
이들 핀은, 드라이브 장치와의 입출력 인터페이스, 리모컨 장치와의 입력 인터페이스, 텔레비전과의 인터페이스, 그 외 IEEE 1394 인터페이스나 PCI 버스와의 인터페이스로서의 역할을 담당하고 있다. 시스템 LSI에서의 핀에는 이러한 인터페이스의 역할이 존재하므로, 시스템 LSI에서의 이들 핀에 드라이브 장치 등이나 재생장치의 각종 회로를 접속함으로써, 시스템 LSI는 재생장치의 핵심으로서의 역할을 담당한다.
시스템 LSI에 패키징되는 베어 칩이란 각 실시 예에서 내부 구성도로 설명한 각 구성요소의 기능을 구현하는 명령 ROM이나 디코더 LSI 등이다.
먼저, "내장 프로그램으로 사용"에서 설명한 바와 같이, 명령 ROM에는, 프로그램에 해당하는 로드 모듈이나 기본 입출력 프로그램(BIOS), 다양한 미들웨어(오퍼레이션 시스템)가 기록된다. 본 실시 예에서, 특히 창작한 것은 이 프로그램에 해당하는 로드 모듈 부분이므로, 프로그램에 해당하는 로드 모듈을 저장한 명령 ROM을 베어 칩으로 패키징함으로써, 본 발명에 관한 시스템 LSI는 생산할 수 있다.
구체적인 실장으로는 SoC 실장이나 SiP 실장이 바람직하다. SoC(System on chip) 실장이란 하나의 칩 위에 복수의 회로를 용융접착하는 기술이다. SiP(System in package) 실장이란 복수의 칩을 수지 등으로 하나의 패키지로 하는 기술이다. 이상의 과정을 거쳐서 본 발명에 관한 시스템 LSI는 각 실시 예에서 설명한 재생장치의 내부 구성도를 기초로 만들 수 있다.
*또, 상술한 바와 같이 하여 생산되는 집적회로는 집적도의 차이에 의해 IC, LSI, 슈퍼 LSI, 울트라 LSI라고 호칭하는 경우도 있다.
또, 각 재생장치의 구성요소의 일부 또는 전부를 하나의 칩으로 구성하여도 된다. 집적회로화는 상술한 SoC 실장, SiP 실장에 한정되는 것이 아니라 전용회로 또는 범용 프로세스로 실현하여도 된다. LSI 제조 후에 프로그램할 수 있는 FPGA(Field Programmable Gate Array)나 LSI 내부의 회로 셀의 접속이나 설정을 재 구성 가능한 리컨피규러블 프로세서(re-configurable process)를 이용하는 것을 생각할 수 있다. 또, 반도체 기술의 진보 또는 파생하는 기술에 의해 LSI로 치환하는 집적회로화의 기술이 등장하면, 당연히 그 기술을 이용하여 기능블록의 집적회로 화를 행하여도 된다. 예를 들어, 바이오 기술의 적용 등이 가능성이 있다.
(E) 모든 실시 예에서는 본 발명에 관한 광 디스크를 BD-ROM으로 실시하였으나, 어떠한 기록매체여도 된다. 예를 들어, DVD-ROM, DVD-RAM, DVD-RW, DVD-R, DVD+RW, DVD+R, CD-R, CD-RW 등의 광 디스크, PD, MO 등의 광 자기 디스크 등이어도 된다.
(F) 각 실시 예에서의 비디오 스트림은 BD-ROM 규격의 AVClip이었으나, DVD-Video 규격, DVD-Video Recording 규격의 VOB(Video Object)여도 된다. VOB는, 비디오 스트림, 오디오 스트림을 다중화함으로써 얻어진 ISO/IEC13818-1 규격 준거의 프로그램 스트림이다. 또, AVClip에서의 비디오 스트림은 MPEG4나 WMV 방식이어도 된다. 또한, 오디오 스트림은 Linear-PCM 방식, Dolby-AC3 방식, MP3 방식, MPEG-AAC 방식, dts 방식이어도 된다.
(G) 각 실시 예에서는 MPEG4-AVC(H.264나 JVT라고도 불린다)를 기초로 설명하였으나, MPEG2 비디오 스트림이어도 되고, 또, 그 외의 형식(VC-1 등)의 화상의 경우여도 단독으로 디코드 가능한 화상이면 용이하게 응용할 수 있다.
본 발명에 관한 기록매체 및 재생장치는 상기 실시 예에 내부 구성이 개시되어 있고, 이 내부 구성에 의거하여 양산할 수 있으므로, 자질에 있어서 공업상 이용할 수 있다. 이 점으로부터 본 발명에 관한 기록매체 및 재생장치는 산업상 이용 가능성을 갖는다.

Claims (8)

  1. 애플리케이션을 실행하는 동시에 디지털 스트림을 재생하는 재생장치로,
    기록매체에 기록된 상기 디지털 스트림, 상기 애플리케이션, 사운드 데이터 및 관리정보에 관련하는 타이틀을 선택하는 선택수단과,
    상기 기록매체에 기록된 관리정보로부터 상기 애플리케이션이 실행 가능한 구간을 나타내는 정보, 상기 실행 가능한 구간에서 애플리케이션을 실행 중에 개시할 디지털 스트림의 재생경로를 규정하는 플레이리스트를 나타내는 정보를 판독하는 판독수단과,
    상기 기록매체에 기록된 타이틀에 관련하는 애플리케이션을 당해 애플리케이션에 정해진 실행 가능한 구간에서 실행하는 플랫폼부와,
    상기 실행 가능한 구간에서 애플리케이션을 실행 중에 상기 관리정보에 나타낸 플레이리스트에 규정되는 재생경로에 따라서 디지털 스트림을 재생함으로써 당해 타이틀에 관련하는 디지털 스트림을 재생하여 영상출력 및 음성출력을 실행하는 재생제어 엔진부와,
    상기 실행 중의 애플리케이션에 대한 사용자 조작에 따른 사운드 데이터를 이용한 클릭 음의 출력과, 상기 디지털 스트림에 포함되는 압축된 오디오 스트림을 전개한 음성 출력의 믹싱을 실행하는 믹싱부와,
    상기 플레이리스트에 포함되는 플래그가 온인 경우, 상기 믹싱부에 의한 상기 실행 중의 애플리케이션에 대한 사용자 조작에 따른 사운드 데이터를 이용한 클릭음의 출력과, 상기 디지털 스트림에 포함되는 압축된 오디오 스트림을 전개한 음성 출력의 믹싱을 실행하여 출력하고, 상기 플레이리스트에 포함되는 플래그가 오프인 경우, 상기 믹싱부에 의한 믹싱을 실행하지 않고 상기 압축된 오디오 스트림을 출력하는 사운드 컨트롤러를 구비하는 것을 특징으로 하는 재생장치.
  2. 애플리케이션을 실행하는 동시에 디지털 스트림의 재생을 컴퓨터에 실행시키는 재생프로그램으로,
    기록매체에 기록된 상기 디지털 스트림, 상기 애플리케이션, 플레이리스트, 사운드 데이터 및 관리정보에 관련하는 타이틀을 선택하는 선택스텝과,
    상기 기록매체에 기록된 관리정보로부터 상기 애플리케이션이 실행 가능한 구간을 나타내는 정보, 상기 실행 가능한 구간에서 애플리케이션을 실행 중에 개시 할 디지털 스트림의 재생경로를 규정하는 플레이리스트를 나타내는 정보를 판독하는 판독스텝과,
    상기 기록매체에 기록된 타이틀에 관련하는 애플리케이션을 당해 애플리케이션에 정해진 실행 가능한 구간에서 실행하는 스텝과,
    상기 실행 가능한 구간에서 애플리케이션을 실행 중에 상기 관리정보에 나타낸 플레이리스트에 규정되는 재생경로에 따라서 디지털 스트림을 재생함으로써 당해 타이틀에 관련하는 디지털 스트림을 재생하여 영상출력 및 음성출력을 실행하는 재생제어스텝과,
    상기 실행 중의 애플리케이션에 대한 사용자 조작에 따른 사운드 데이터를 이용한 클릭 음의 출력과, 상기 디지털 스트림에 포함되는 압축된 오디오 스트림을 전개한 음성 출력의 믹싱을 실행하는 믹싱 스텝과,
    상기 플레이리스트에 포함되는 플래그가 온인 경우, 상기 애플리케이션에 대한 사용자 조작에 따른 사운드 데이터를 이용한 클릭 음의 출력과, 상기 디지털 스트림에 포함되는 압축된 오디오 스트림을 전개한 음성 출력의 믹싱을 실행하여 출력하고, 상기 플레이리스트에 포함되는 플래그가 오프인 경우, 상기 믹싱 스텝에 의한 믹싱을 실행하지 않고 상기 압축된 오디오 스트림을 출력하는 사운드컨트롤스텝을 컴퓨터에 실행시키는 것을 특징으로 하는 관리프로그램.
  3. 애플리케이션을 실행하는 동시에 디지털 스트림을 재생하는 재생방법으로,
    기록매체에 기록된 상기 디지털 스트림, 상기 애플리케이션, 플레이리스트, 사운드 데이터 및 관리정보에 관련하는 타이틀을 선택하는 선택스텝과,
    상기 기록매체에 기록된 관리정보로부터 상기 애플리케이션이 실행 가능한 구간을 나타내는 정보, 상기 실행 가능한 구간에서 애플리케이션을 실행 중에 개시할 디지털 스트림의 재생경로를 규정하는 플레이리스트를 나타내는 정보를 판독하는 판독스텝과,
    상기 기록매체에 기록된 타이틀에 관련하는 애플리케이션을 당해 애플리케이션에 정해진 실행 가능한 구간에서 실행하는 스텝과,
    상기 실행 가능한 구간에서 애플리케이션을 실행 중에 상기 관리정보에 나타낸 플레이리스트에 규정되는 재생경로에 따라서 디지털 스트림을 재생함으로써 당해 타이틀에 관련하는 디지털 스트림을 재생하여 영상출력 및 음성출력을 하는 재생제어스텝과,
    상기 실행 중의 애플리케이션에 대한 사용자 조작에 따른 사운드 데이터를 이용한 클릭 음의 출력과, 상기 디지털 스트림에 포함되는 압축된 오디오 스트림을 전개한 음성출력의 믹싱을 실행하는 믹싱 스텝과,
    상기 플레이리스트에 포함되는 플래그가 온인 경우, 상기 믹싱 스텝에 의한 상기 실행 중의 애플리케이션에 대한 사용자 조작에 따른 사운드 데이터를 이용한 클릭 음의 출력과, 상기 디지털 스트림에 포함되는 압축된 오디오 스트림을 전개한 음성 출력의 믹싱을 실행하여 출력하고, 상기 플레이리스트에 포함되는 플래그가 오프인 경우, 상기 믹싱 스텝에 의한 믹싱을 실행하지 않고 상기 압축된 오디오 스트림을 출력하는 사운드컨트롤스텝을 포함하는 것을 특징으로 하는 재생방법.
  4. 애플리케이션을 실행하는 동시에 디지털 스트림을 재생하는 재생장치로,
    관리정보와, 이에 대응하는 플래그를 기록매체로부터 판독하는 판독수단과,
    기록매체에 기록된 애플리케이션을 실행하는 플랫폼부와,
    애플리케이션의 실행과 동시에 관리정보에 나타낸 재생제어를 실행함으로써 디지털 스트림을 재생하여 영상출력 및 음성출력을 실행하는 재생제어 엔진부와,
    관리정보에 대응한 플래그가 온인 경우 애플리케이션에 대한 사용자 조작에 따른 클릭 음과 음성 출력의 믹싱을 실행하지만, 관리정보에 대응한 플래그가 오프인 경우 당해 믹싱을 실행하지 않는 믹싱부를 구비하고,
    상기 관리정보는 엔트리 정보를 포함하고,
    상기 엔트리 정보는,
    디지털 스트림의 재생제어시에 음성 출력이 가능해지는 오디오 스트림을 나타내고,
    상기 플래그는,
    음성 출력이 가능하게 되어 있는 오디오 스트림이 멀티 채널 속성을 가지고 있는 경우에는 온을 나타내도록 설정되고,
    음성 출력이 가능하게 되어 있는 오디오 스트림이 멀티 채널 속성을 가지고 있지 않은 경우에는 오프를 나타내도록 설정되며,
    상기 재생제어 엔진은,
    디지털 스트림에 다중화되어 있는 오디오 스트림 중 엔트리 정보에서 음성 출력이 가능한 것으로 나타나 있는 것만을 디코드하여 음성출력을 실행하고, 상기 사운드 믹싱은 플래그에 의거하여 음성출력과의 믹싱을 실행하는 재생장치.
  5. 제 4항에 있어서,
    상기 재생장치는,
    애플리케이션의 실행 화상을 저장하는 제 1 플레인과,
    영상으로 출력되어야 할 재생 영상을 저장하는 제 2 플레인과,
    애플리케이션의 실행 화상을 친 화면에 배치하고, 재생제어시에서의 영상출력을 자 화면에 배치한 합성화상을 출력하는 합성부를 포함하는 것을 특징으로 하는 재생장치.
  6. 제 5 항에 있어서,
    상기 플랫폼부는.
    애플리케이션이 기동되기까지의 스타트 업 딜레이에 있어서 디지털 스트림의 재생화상을 주 화상으로 하도록 제 1 플레인의 저장내용을 스케일링하는 제어를 하고,
    상기 합성화상을 애플리케이션이 정상으로 기동한 후에 출력하는 것을 특징으로 하는 재생장치.
  7. 애플리케이션을 실행하는 동시에 디지털 스트림의 재생을 컴퓨터에 실행하도록 하는 관리프로그램으로,
    관리정보와, 이에 대응하는 플래그를 기록매체로부터 판독하는 판독스텝과,
    기록매체에 기록된 애플리케이션을 실행하는 스텝과,
    애플리케이션의 실행과 동시에 관리정보에 나타낸 재생제어를 실행함으로써 디지털 스트림을 재생하여 영상출력 및 음성출력을 실행하는 재생제어스텝과,
    관리정보에 대응한 플래그가 온인 경우 애플리케이션에 대한 사용자 조작에 따른 클릭 음과 음성 출력의 믹싱을 실행하지만, 관리정보에 대응한 플래그가 오프인 경우 당해 믹싱을 실행하지 않는 믹싱 스텝을 구비하고,
    상기 관리정보는 엔트리 정보를 포함하며,
    상기 엔트리 정보는,
    디지털 스트림의 재생제어시에 음성 출력이 가능해지는 오디오 스트림을 나타내고,
    상기 플래그는,
    음성 출력이 가능한 것으로 되어 있는 오디오 스트림이 멀티 채널 속성을 가지고 있는 경우에는 온을 나타내도록 설정되고,
    음성 출력이 가능한 것으로 되어 있는 오디오 스트림이 멀티 채널 속성을 가지고 있지 않은 경우에는 오프를 나타내도록 설정되며,
    상기 재생제어스텝은,
    디지털 스트림에 다중화되어 있는 오디오 스트림 중 엔트리 정보에서 음성 출력이 가능한 것으로 나타나 있는 것만을 디코드하여 음성 출력을 하고, 상기 사운드 믹싱은 플래그에 의거하여 음성 출력과의 믹싱을 실행하는 것을 특징으로 하는 관리 프로그램.
  8. 애플리케이션을 실행하는 동시에 디지털 스트림을 재생하는 재생방법으로,
    관리정보와, 이에 대응하는 플래그를 기록매체로부터 판독하는 판독스텝과,
    기록매체에 기록된 애플리케이션을 실행하는 스텝과,
    애플리케이션의 실행과 동시에 관리정보에 나타낸 재생제어를 실행함으로써 디지털 스트림을 재생하여 영상출력 및 음성출력을 하는 재생제어스텝과,
    관리정보에 대응한 플래그가 온인 경우 애플리케이션에 대한 사용자 조작에 따른 클릭 음과 음성 출력의 믹싱을 실행하지만, 관리정보에 대응한 플래그가 오프인 경우 당해 믹싱을 실행하지 않는 믹싱 스텝을 구비하고,
    상기 관리정보는 엔트리 정보를 포함하고,
    상기 엔트리 정보는,
    디지털 스트림의 재생제어시에 음성출력이 가능해지는 오디오 스트림을 나타내고,
    상기 플래그는,
    음성 출력이 가능한 것으로 되어 있는 오디오 스트림이 멀티 채널 속성을 가지고 있는 경우에는 온을 나타내도록 설정되고,
    음성 출력이 가능한 것으로 되어 있는 오디오 스트림이 멀티 채널 속성을 가지고 있지 않은 경우에는 오프를 나타내도록 설정되며,
    상기 재생제어 스텝은,
    디지털 스트림에 다중화되어 있는 오디오 스트림 중 엔트리 정보에서 음성 출력이 가능한 것으로 나타나 있는 것만을 디코드하여 음성출력을 하고, 상기 사운드 믹싱은 플래그에 의거하여 음성출력과의 믹싱을 실행하는 것을 특징으로 하는 재생방법.
KR1020127016051A 2004-12-01 2005-11-30 재생장치, 프로그램, 재생방법 KR101249218B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004349144 2004-12-01
JPJP-P-2004-349144 2004-12-01
PCT/JP2005/022009 WO2006059654A1 (ja) 2004-12-01 2005-11-30 記録媒体、再生装置、プログラム、再生方法、集積回路

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020067023756A Division KR101226487B1 (ko) 2004-12-01 2005-11-30 기록매체, 재생장치, 재생방법

Publications (2)

Publication Number Publication Date
KR20120090096A true KR20120090096A (ko) 2012-08-16
KR101249218B1 KR101249218B1 (ko) 2013-04-03

Family

ID=36565087

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020077027323A KR100822558B1 (ko) 2004-12-01 2005-11-30 기록매체, 재생장치, 재생방법 및 집적회로
KR1020127016051A KR101249218B1 (ko) 2004-12-01 2005-11-30 재생장치, 프로그램, 재생방법
KR1020067023756A KR101226487B1 (ko) 2004-12-01 2005-11-30 기록매체, 재생장치, 재생방법
KR1020087014971A KR100868145B1 (ko) 2004-12-01 2005-11-30 기록매체, 재생장치, 재생방법 및 집적회로

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020077027323A KR100822558B1 (ko) 2004-12-01 2005-11-30 기록매체, 재생장치, 재생방법 및 집적회로

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020067023756A KR101226487B1 (ko) 2004-12-01 2005-11-30 기록매체, 재생장치, 재생방법
KR1020087014971A KR100868145B1 (ko) 2004-12-01 2005-11-30 기록매체, 재생장치, 재생방법 및 집적회로

Country Status (10)

Country Link
US (4) US7835625B2 (ko)
EP (1) EP1770705B1 (ko)
JP (6) JP4012559B2 (ko)
KR (4) KR100822558B1 (ko)
CN (8) CN101833966B (ko)
BR (1) BRPI0510404A (ko)
CA (1) CA2564045C (ko)
ES (1) ES2498793T3 (ko)
MX (1) MXPA06013139A (ko)
WO (1) WO2006059654A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150059483A (ko) * 2013-11-22 2015-06-01 삼성전자주식회사 영상표시장치 및 영상표시장치의 구동방법, 음향출력장치 및 음향출력장치의 구동방법

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005109434A1 (ja) * 2004-05-11 2005-11-17 Matsushita Electric Industrial Co., Ltd. 再生装置、プログラム、再生方法
CN101814310B (zh) * 2004-07-22 2012-11-28 松下电器产业株式会社 重放装置和重放方法
CN101833966B (zh) * 2004-12-01 2013-05-08 松下电器产业株式会社 再现装置和再现方法
EP1843351B1 (en) * 2005-01-28 2012-08-22 Panasonic Corporation Recording medium, program, and reproduction method
JP4968506B2 (ja) * 2005-03-04 2012-07-04 ソニー株式会社 再生装置、再生方法、およびプログラム
JP4968561B2 (ja) * 2005-03-04 2012-07-04 ソニー株式会社 再生装置、再生方法、および記録方法
CN101026725B (zh) * 2005-07-15 2010-09-29 索尼株式会社 再现设备及再现方法
JP4251298B2 (ja) * 2005-07-15 2009-04-08 ソニー株式会社 再生装置および再生方法、プログラム、プログラム格納媒体、データ、記録媒体、記録装置、および、記録媒体の製造方法
KR100808257B1 (ko) * 2005-12-05 2008-02-29 한국전자통신연구원 임베디드 시스템 프로토타입 개발 지원 장치 및 방법
US20070255433A1 (en) * 2006-04-25 2007-11-01 Choo Eugene K Method and system for automatically selecting digital audio format based on sink device
CN101123677B (zh) * 2006-08-11 2011-03-02 松下电器产业株式会社 改善图像锐度的方法、装置及集成电路
JP4846502B2 (ja) * 2006-09-29 2011-12-28 株式会社東芝 音声出力装置及び音声出力方法
US20080182669A1 (en) * 2007-01-26 2008-07-31 Alan Amron Game and video cartridge for portable electronic device
US20080182670A1 (en) * 2007-01-26 2008-07-31 Alan Amron Game and video cartridge for a host device
US8010711B2 (en) * 2007-01-26 2011-08-30 Digital Video Chip, Llc Universal multimedia
EP2051254A4 (en) * 2007-06-06 2012-10-03 Panasonic Corp PLAYING DEVICE, PLAY PROCESS AND CORRESPONDING PROGRAM
US9047235B1 (en) * 2007-12-28 2015-06-02 Nokia Corporation Content management for packet-communicating devices
JP5406178B2 (ja) * 2008-04-16 2014-02-05 パナソニック株式会社 再生装置、再生方法、プログラム
EP2270801B1 (en) * 2008-04-16 2018-12-05 Panasonic Intellectual Property Management Co., Ltd. Recording medium, recording device, recording method, and reproduction device
JP4737228B2 (ja) * 2008-05-07 2011-07-27 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
WO2009145750A1 (en) * 2008-05-30 2009-12-03 Digital Video Chip, Llc Universal multimedia
WO2009157163A1 (ja) * 2008-06-24 2009-12-30 パナソニック株式会社 再生装置、再生装置の制御方法
KR20110036882A (ko) * 2008-06-24 2011-04-12 파나소닉 주식회사 기록매체, 재생장치, 집적회로, 재생방법, 프로그램
WO2009157198A1 (ja) 2008-06-26 2009-12-30 パナソニック株式会社 記録媒体、再生装置、記録装置、再生方法、記録方法、プログラム
JP5395074B2 (ja) * 2008-07-16 2014-01-22 パナソニック株式会社 再生装置、再生方法、プログラム
US8444485B2 (en) * 2008-08-05 2013-05-21 Warner Bros. Entertainment Inc. Seamless user navigation between high-definition movie and video game in digital medium
CN103747226B (zh) * 2008-12-04 2015-11-04 三菱电机株式会社 视频信息再现方法和视频信息再现装置
JP4984183B2 (ja) * 2009-04-07 2012-07-25 ソニー株式会社 再生装置、再生方法、および記録方法
KR20110001618A (ko) * 2009-06-30 2011-01-06 애니포인트 미디어 그룹 장치-특화 및 애플리케이션-특화된 컴퓨팅 장치, 재생 장치 및 컴퓨팅 장치를 이용한 재생 장치의 제어 방법
US9092436B2 (en) * 2009-09-08 2015-07-28 Apple Inc. Programming interface for use by media bundles to provide media presentations
JP5032668B2 (ja) * 2009-10-30 2012-09-26 パイオニア株式会社 プレイリスト生成装置、プレイリスト生成方法、プレイリスト生成プログラムおよび記録媒体
WO2011155099A1 (ja) 2010-06-11 2011-12-15 三菱電機株式会社 映像表示装置
KR101077778B1 (ko) * 2010-09-29 2011-10-28 주식회사 이노와이어리스 Lte-tdd 신호에서의 ul/dl 컨피규레이션 자동 검출 장치 및 방법
CN103491332B (zh) * 2012-06-11 2016-12-14 珠海扬智电子科技有限公司 显示处理装置、媒体播放器、显示处理方法以及电视信号抓取方法
CN103809953B (zh) * 2012-11-14 2018-09-07 腾讯科技(深圳)有限公司 多媒体播放监测方法及系统
US20150269836A1 (en) * 2014-03-20 2015-09-24 Lucida Technology Co., Ltd. Configurable bi-directional remote control based on signal input device
US20150287433A1 (en) * 2014-04-04 2015-10-08 Rocky Williform System and method of generating static contiguous media formats from dynamic playlists
US10009413B2 (en) * 2014-06-26 2018-06-26 At&T Intellectual Property I, L.P. Collaborative media playback
CN104269185B (zh) * 2014-09-09 2017-04-12 烽火通信科技股份有限公司 在Java虚拟机中实现混音播放的方法及系统
CN104793917B (zh) * 2015-02-10 2017-09-12 西南民族大学 一种实时获取Cocos2d‑x游戏播放声音的方法
US11669296B2 (en) 2015-10-27 2023-06-06 Super Hi Fi, Llc Computerized systems and methods for hosting and dynamically generating and providing customized media and media experiences
US10861435B2 (en) 2016-03-25 2020-12-08 Sharp Kabushiki Kaisha Systems and methods for signaling of information associated with audio content
CN106507187A (zh) * 2016-09-22 2017-03-15 深圳市金立通信设备有限公司 一种视频播放方法及终端
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
US10930284B2 (en) 2019-04-11 2021-02-23 Advanced New Technologies Co., Ltd. Information processing system, method, device and equipment
WO2021195112A1 (en) * 2020-03-23 2021-09-30 Super Hi Fi, Llc Computerized systems and methods for hosting and dynamically generating and providing customized media and media experiences

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US161615A (en) * 1875-04-06 Improvement in revolving fire-arms
US194618A (en) * 1877-08-28 Improvement in substitutes for coffee
US120695A (en) * 1871-11-07 Improvement in roasting and treating ores
JP3443938B2 (ja) 1994-03-31 2003-09-08 ソニー株式会社 ディジタル信号処理装置
US20050089310A1 (en) * 1994-09-22 2005-04-28 Fischer Addison M. Announcing device for entertainment systems
JP3665390B2 (ja) 1995-06-30 2005-06-29 株式会社東芝 再生装置と光ディスクと記録装置
JP4130965B2 (ja) * 1995-10-30 2008-08-13 パイオニア株式会社 光ディスク再生装置
JP3421899B2 (ja) * 1996-04-11 2003-06-30 ソニー株式会社 データ記録及び/又は再生装置並びに方法
JP3595151B2 (ja) * 1998-02-20 2004-12-02 株式会社東芝 使用可能キー表示システムで用いる光ディスク、この光ディスクを用いる方法および装置
JP2001275089A (ja) * 2000-03-27 2001-10-05 Toshiba Corp ディジタルビデオ記録媒体並びにディジタルビデオディスク再生装置
JP2002369154A (ja) 2001-04-02 2002-12-20 Matsushita Electric Ind Co Ltd ディジタル映像コンテンツの映像再生装置、映像再生方法、映像再生プログラム、パッケージメディア
KR20030007706A (ko) * 2001-04-02 2003-01-23 마츠시타 덴끼 산교 가부시키가이샤 디지털 영상 콘텐츠의 영상재생 장치, 영상재생 방법,영상재생 프로그램, 패키지 미디어
JP2003009086A (ja) * 2001-06-22 2003-01-10 Matsushita Electric Ind Co Ltd 映像記録装置及び記録方法
JP4011329B2 (ja) 2001-11-13 2007-11-21 三菱電機株式会社 音量調整装置
JP2003249057A (ja) 2002-02-26 2003-09-05 Toshiba Corp デジタル情報媒体を用いるエンハンスド・ナビゲーション・システム
US7664372B2 (en) * 2002-11-20 2010-02-16 Lg Electronics Inc. Recording medium having data structure for managing reproduction of multiple component data recorded thereon and recording and reproducing methods and apparatuses
CN100466713C (zh) 2002-11-28 2009-03-04 索尼株式会社 再现装置和再现方法
US7580614B2 (en) 2002-12-09 2009-08-25 Kabushiki Kaisha Toshiba Information playback apparatus having expansion information storage unit and information playback method
JP3908724B2 (ja) * 2002-12-09 2007-04-25 株式会社東芝 情報再生装置及び情報再生方法
JP4715094B2 (ja) 2003-01-30 2011-07-06 ソニー株式会社 再生装置、再生方法、再生プログラムおよび記録媒体
EP1608165B1 (en) * 2003-01-31 2010-03-17 Panasonic Corporation RECORDING MEDIUM, REPRODUCTION DEVICE, RECORDING METHOD, PROGRAM, AND REPRODUCTION METHOD for a graphics stream specifying interactive buttons
KR101027200B1 (ko) * 2003-02-21 2011-04-06 파나소닉 주식회사 기록매체, 재생장치, 기록방법 및 재생방법
EP1463052A1 (en) * 2003-03-25 2004-09-29 Deutsche Thomson-Brandt Gmbh Method for representing animated menu buttons
KR20050072256A (ko) * 2004-01-06 2005-07-11 엘지전자 주식회사 고밀도 광디스크의 메뉴 사운드 구성방법 및 재생방법과기록재생장치
US7765158B2 (en) * 2004-01-27 2010-07-27 Panasonic Corporation Playback apparatus and server apparatus
CN101833966B (zh) * 2004-12-01 2013-05-08 松下电器产业株式会社 再现装置和再现方法
BRPI0615070A2 (pt) * 2005-08-22 2016-09-13 Lg Electronics Inc método e aparelho para gerenciar reprodução de áudio para pelo menos um caminho de apresentação picture-in-picture, meio de gravação, método e aparelho para gravar estrutura de dados
JP2007180746A (ja) 2005-12-27 2007-07-12 Funai Electric Co Ltd ディスク再生装置及びその映像データ出力方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150059483A (ko) * 2013-11-22 2015-06-01 삼성전자주식회사 영상표시장치 및 영상표시장치의 구동방법, 음향출력장치 및 음향출력장치의 구동방법

Also Published As

Publication number Publication date
JP2012142079A (ja) 2012-07-26
CN101872637A (zh) 2010-10-27
CN101872632A (zh) 2010-10-27
CN101833975A (zh) 2010-09-15
JP4012559B2 (ja) 2007-11-21
CA2564045A1 (en) 2006-06-08
JP5319804B2 (ja) 2013-10-16
JP2009158087A (ja) 2009-07-16
KR101249218B1 (ko) 2013-04-03
KR20070122241A (ko) 2007-12-28
KR20070093320A (ko) 2007-09-18
JP2010211908A (ja) 2010-09-24
JP4664439B2 (ja) 2011-04-06
CN101853680A (zh) 2010-10-06
JP4664419B2 (ja) 2011-04-06
ES2498793T3 (es) 2014-09-25
CN101833965A (zh) 2010-09-15
EP1770705A4 (en) 2012-08-01
CN1954387B (zh) 2010-05-05
CA2564045C (en) 2013-02-26
CN101853680B (zh) 2013-02-27
KR101226487B1 (ko) 2013-01-28
CN101833966A (zh) 2010-09-15
CN1954387A (zh) 2007-04-25
JP2011096361A (ja) 2011-05-12
CN101872637B (zh) 2013-02-27
CN101833965B (zh) 2012-05-09
US20110008014A1 (en) 2011-01-13
CN101777372A (zh) 2010-07-14
WO2006059654A1 (ja) 2006-06-08
US20120177342A1 (en) 2012-07-12
EP1770705B1 (en) 2014-08-20
US20100046926A1 (en) 2010-02-25
US8842978B2 (en) 2014-09-23
JP4664420B2 (ja) 2011-04-06
CN101833975B (zh) 2012-04-25
CN101833966B (zh) 2013-05-08
MXPA06013139A (es) 2007-02-28
BRPI0510404A (pt) 2007-10-23
US20070223876A1 (en) 2007-09-27
CN101777372B (zh) 2012-09-19
US7865069B2 (en) 2011-01-04
KR100868145B1 (ko) 2008-11-10
US8165452B2 (en) 2012-04-24
JP4971492B2 (ja) 2012-07-11
JP2009224018A (ja) 2009-10-01
KR100822558B1 (ko) 2008-04-16
KR20080065005A (ko) 2008-07-10
US7835625B2 (en) 2010-11-16
JPWO2006059654A1 (ja) 2008-06-05
EP1770705A1 (en) 2007-04-04

Similar Documents

Publication Publication Date Title
KR101249218B1 (ko) 재생장치, 프로그램, 재생방법
JP4664346B2 (ja) 記録媒体、再生装置、プログラム、再生方法
JP4084833B2 (ja) 記録媒体、再生装置、プログラム、再生方法、集積回路

Legal Events

Date Code Title Description
A107 Divisional application of patent
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: 20160219

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee