KR20070090906A - 재생장치, 화상합성방법, 화상합성 프로그램 및 집적회로 - Google Patents

재생장치, 화상합성방법, 화상합성 프로그램 및 집적회로 Download PDF

Info

Publication number
KR20070090906A
KR20070090906A KR1020077012832A KR20077012832A KR20070090906A KR 20070090906 A KR20070090906 A KR 20070090906A KR 1020077012832 A KR1020077012832 A KR 1020077012832A KR 20077012832 A KR20077012832 A KR 20077012832A KR 20070090906 A KR20070090906 A KR 20070090906A
Authority
KR
South Korea
Prior art keywords
image
plane
storing
application
gui
Prior art date
Application number
KR1020077012832A
Other languages
English (en)
Other versions
KR101193397B1 (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 KR20070090906A publication Critical patent/KR20070090906A/ko
Application granted granted Critical
Publication of KR101193397B1 publication Critical patent/KR101193397B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/93Regeneration of the television signal or of selected parts thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/806Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal
    • H04N9/8063Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8227Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being at least another television signal

Abstract

기록매체에 기록되어 있는 애플리케이션을 실행하면서 당해 기록매체에 기록되어 있는 동화상을 재생하는 재생장치에서 애플리케이션에 관련하는 화상과 동화상을 합성할 때의 메모리 버스의 이용 효율을 높이는 것을 목적으로 한다. 애플리케이션에 의해서 사용되는 동화상이나 메뉴 등의 GUI의 그래픽스의 배경에 사용하는 배경화상을 합성하는가 여부를 동화상이 배경화상 전체를 덮는가 여부의 판단에 의해서 결정한다. 동화상이 배경화상을 덮는 경우에는 배경화상을 합성할 필요가 없어지므로, 배경화상을 판독하기 위해서 사용하는 메모리 버스를 기록매체로부터 판독된 동화상 데이터를 메모리에 기록하는 용도 등에 사용할 수 있어서, 메모리 버스의 밴드 폭을 유효하게 활용할 수 있다.
애플리케이션, 실행, 동화상, 재생, 배경화상, 합성, 덮는

Description

재생장치, 화상합성방법, 화상합성 프로그램 및 집적회로{REPRODUCTION DEVICE, IMAGE SYNTHESIS METHOD, IMAGE SYNTHESIS PROGRAM, AND INTEGRATED CIRCUIT}
본 발명은 동화상(moving image)을 재생하면서 애플리케이션을 실행하는 재생장치에 관한 것으로, 화상을 합성할 때의 메모리 버스의 활용방법에 관한 발명이다.
최근 DVD(Digital Versatile Disc) 플레이어 및 BD(Blu-ray Disc) 플레이어 등의 영상재생장치가 개발되고 있다. 이들 플레이어로는 DVD, BD 등의 기록매체로부터 동화상 스트림 데이터를 판독하여 동화상을 재생할 수 있다. 이때 동화상을 재생하면서 기록매체에 기록되어 있는 애플리케이션을 실행하는 플레이어도 있고, 동화상과는 별개로 애플리케이션에 관련하는 화상도 표시하는 플레이어도 있다. 예를 들어, 동화상의 가로 측 위치의 동화상에 관한 메뉴 GUI(Graphical User Interface) 등의 표시 혹은 자막의 표시 등이 이에 해당한다.
이때, 플레이어는 동화상과 애플리케이션에 의해 표시 제어되는 화상을 합성하여 표시해야할 화상 데이터를 생성하여 디스플레이에 표시하도록 하고 있다. 이 합성의 토대가 되는 데이터는 순차적으로 기록매체에서 판독되어서, 일단 플레이어 의 메모리의 각각에 대응하는 영역에 기록된다. 그리고 플레이어는 그 메모리로부터 화상 데이터를 판독하고, 합성하여 출력하는 동작을 행하고 있다. 여기서, 플레이어의 메모리의 각각에 대응하는 영역은 메모리에서 동화상의 화상 데이터를 저장하는 비디오 플레인 및 동화상과 함께 표시하는 GUI 메뉴의 화상 데이터를 저장하는 IG 플레인 (Interactive Graphics plane) 등을 말한다. 플레이어는 화상을 합성할 때에는 각 플레인에 액세스할 필요가 있다.
플레이어에서는 합성화상을 생성할 때에 고속으로 각 플레인에 액세스할 필요가 있으며, 지연 없이 동화상을 재생하기 위해서는 당해 액세스에서의 메모리 버스의 유효한 활용은 중요한 과제가 된다.
메모리에 대한 기록에 관한 기술이 특허문헌 1에 기재되어 있으며, 이 기술에 의하면 어떤 GUI 오브젝트(GUI object)에서 재 묘화(再描畵, drawn again)가 발생한 경우에, 수복할 필요가 있는 영역을 결정하는 체크 수단 및 재묘화할 필요가 있는 오브젝트를 결정하는 생성수단에 의해서 메모리에 대한 불필요한 기록을 억제하므로, 기록이 억제된 분량만큼 메모리 버스의 밴드 폭을 유효하게 활용할 수 있다.
특허문헌 1 : 일본국 특허공개 2004-102343호 공보
그러나 상술한 것과 같이 플레이어는 플레인에 대한 기록과 판독을 행하고 있으나, 메모리에 대한 기록과 판독에 사용하는 메모리 버스는 비용이나 설치공간의 문제에서 공유화되어 있다. 예를 들어, HD화질(1920×1080 픽셀)의 화상을 표시하고자 하는 경우에 동화상의 기록에서 사용하는 메모리 버스의 밴드 폭은, 2B/픽셀, 30fps로 하면 약 120MB/sec(1920×1080×2×30)가 요구되고, 판독의 경우에도 마찬가지로 약 120MB/sec의 성능이 요구되게 된다. 또, 배경화상의 기록이나 판독에 대해서는 각각 약 120MB/sec가 요구되며, GUI 등의 메뉴 등의 그래픽스의 기록이나 판독에 대해서는, 4B/픽셀, 30fps로 하면 각각 약 240MB/sec(1920×1080×4×30)의 메모리 버스의 밴드 폭이 요구된다. 또, 자막이 있는 경우에는 이 데이터도 메모리에 기록하여 판독할 필요가 있으며, 역시 각각 약 120MB/sec의 메모리 버스 폭이 요구된다. 동화상 재생시에는 판독과 기록이 동시에 행해지므로, 이들 플레인의 화상 데이터를 합성하기 위해서 2GB/sec에 가까운 대역이 필요해진다. 앞으로도 화질의 고품질화에 따라서 더 많은 메모리 버스의 밴드 폭이 필요해질 것으로 예상되나, 동시에 이는 플레이어의 저가격화를 저해하는 하나의 요인도 되고 있다.
그래서 본 발명에서는 화상 데이터의 판독에 사용되는 메모리 버스의 밴드 폭의 유효한 활용을 도모하기 위해서 이바지할 수 있는 새로운 재생장치를 제공하는 것을 목적으로 한다.
상기 과제를 해결하기 위해, 본 발명의 재생장치는, 동화상을 저장하기 위한 비디오 플레인(video plane)과, GUI로 표시하는 화상인 GUI 화상을 저장하기 위한 이미지 플레인(image plane)과, 배경화상을 저장하기 위한 스틸 플레인(still plane)의 메모리 영역을 갖는 기억수단과, 상기 비디오 플레인에 동화상을 저장하는 동화상 저장수단과, 상기 이미지 플레인에 상기 GUI 화상을 저장하는 이미지 저장수단과, 상기 스틸 플레인에 상기 배경화상을 저장하는 배경화상 저장수단과, 상기 동화상이 상기 배경화상을 차폐(遮蔽)할 수 있는 소정의 사이즈인 경우에는, 상기 배경화상을 판독하지 않고, 상기 동화상과 상기 GUI 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하고, 상기 동화상이 상기 소정의 사이즈가 아닌 경우에는, 상기 동화상과 상기 GUI 화상 및 상기 배경화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하는 합성출력수단을 구비하는 것을 특징으로 하고 있다.
상기의 구성을 구비한 재생장치는, 배경화상을 필요로 하지 않을 때, 즉 동화상이 배경화상을 덮을 때(동화상에 의해 배경화상이 보이지 않고 감추어질 때)에는 배경화상을 합성할 필요가 없어서 메모리에서 판독할 필요가 없어지므로, 그때에는 배경화상의 데이터는 판독하지 않도록 한다. 동화상이 배경화상을 덮는 소정의 사이즈, 예를 들어 풀 스크린 사이즈(full-screen size)로 표시될 때에는 배경화상을 판독하지 않도록 함으로써 재생장치의 부담이 가벼워지고, 또 판독에 사용하는 메모리 버스의 밴드 폭이 비게(freed) 된다.
이렇게 하여, 필요가 없는 배경화상의 판독을 제한함으로써 배경화상의 판독에 사용하고 있던 메모리 버스를 다른 목적, 예를 들어 GUI 화상을 메모리에 기록하는 용도 등에 사용할 수 있으므로, 메모리 버스의 밴드 폭을 유효하게 활용할 수 있고, 디스플레이에 표시하는 화상 표시가 지연되는 문제도 경감할 수 있게 된다.
통상, 합성하는 플레인은 동일한 사이즈의 플레인을 중첩하여 합성을 하나, 동화상이 원래의 풀 스크린 사이즈에서 사이즈를 변경하여 표시하는 경우, 즉 배경화상을 덮어서 은폐하지 않는 경우도 있으며, 이때에는 배경화상이 필요하므로 합성을 한다.
상술한 바와 같은 HD화질의 경우에 재생장치가 배경화상의 판독에 사용하는 120MB/sec 분량의 메모리 버스의 밴드 폭을, 예를 들어 동화상의 기록에 사용하면, 동화상의 기록의 속도가 배가 된다고 할 수 있고, 판독시에 동화상의 데이터가 기록되어 있지 않아서 판독을 할 수 없어서 동화상의 재생이 지연되는 사태를 방지할 수 있다.
또, 상기 소정의 사이즈는 상기 동화상이 표시화면에서 풀 스크린으로 표시되는 사이즈를 말하며, 상기 재생장치는 상기 동화상에 관한 애플리케이션을 실행하는 가상 머신부(vertual machine unit)를 더 구비하고, 상기 합성출력수단은, 상기 애플리케이션의 상기 비디오 플레인에 대한 축소지시를 수신하여 상기 배경화상을 합성하며, 축소지시가 없는 경우에는 상기 배경화상을 합성하지 않는 것으로 해도 된다.
여기서, 풀 스크린은 재생장치에 접속되어 있는 외부기기인 텔레비전 등으로 대표되는 표시장치 혹은 내장되어 있는 모니터 등에서 그 표시화면 전체를 덮는 사이즈를 말한다.
재생장치는 실행하고 있는 애플리케이션의 지시에 의거하여 동화상의 사이즈 변경을 행하고 있으며, 당해 변경지시는 통상 비디오 플레인에 대해서만 이루어지나, 이 지시를 수신하여 합성출력수단은 스틸 플레인에서의 데이터의 판독을 실행하는가 여부를 판단한다. 이 구성을 구비함으로써 스틸 플레인으로부터의 데이터의 출력의 필요성의 판단을 용이하게 행할 수 있다.
또, 상기 스틸 플레인은 상기 동화상과는 다른 시간에 따라서 전환(change)되는 화상을 더 저장하기 위한 것이며, 상기 재생장치는, 상기 스틸 플레인에 상기 시간에 따라서 전환되는 화상을 저장하는 화상저장수단을 더 구비하며, 상기 합성출력수단은, 상기 동화상이 표시화면에서 풀 스크린으로 표시되는 사이즈인 경우에는, 상기 비디오 플레인에 저장된 동화상과 상기 이미지 플레인에 저장된 GUI 화상 및 상기 스틸 플레인에 저장된 시간에 따라서 전환되는 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하며, 상기 동화상이 풀 스크린으로 표시되는 사이즈가 아닌 경우에는, 상기 비디오 플레인에 저장된 동화상과 상기 이미지 플레인에 저장된 GUI 화상 및 상기 스틸 플레인에 저장된 배경화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하는 것으로 해도 된다.
여기서, 시간에 따라서 전환되는 화상은 동화상 저장수단에 의해 저장하는 동화상과는 다른 화상이며, 또한 시간에 따라서 표시내용이 다른 것으로, 예를 들어 자막을 표시하기 위한 화상 등을 말한다.
이에 의해, 기억수단에서 종래에는 통상의 스틸 플레인과 자막을 저장하기 위한 자막 플레인으로 각각 별도로 준비된 메모리 영역을 공용으로 이용할 수 있게 됨으로써, 플레인 하나 분량의 메모리 영역이 비게 되며, 빈 메모리 영역은 다른 데이터의 기억에 할당할 수 있게 되므로, 메모리를 유효하게 활용할 수 있다. 또, 종래와 같이 스틸 플레인과 자막 플레인이 있는 경우에 비해서 플레인 하나에 대응하는 분량만큼이 감소하게 되어, 당연히 플레인 하나가 감소한 분량만큼 액세스하는 메모리 버스의 밴드 폭도 적어도 된다.
또, 상기 합성출력수단 및 상기 각 저장수단은 상기 기억수단에 접속되어 있는 메모리 버스를 공유하고 있고, 상기 이미지 저장수단은, 상기 합성출력수단이 스틸 플레인의 판독을 행하지 않는다고 판단한 경우에는, 스틸 플레인의 판독에 할당되어 있는 상기 메모리 버스의 대역(band) 또는 시간(time)을 이미지 플레인에 대한 기록에 사용하는 것으로 해도 된다.
이에 의해, 재생장치는 배경화상의 판독에 할당되어 있던 메모리 버스의 밴드 폭을 이미지 플레인에 기록을 하기 위한 용도로 사용함으로써, 유효하게 메모리 버스의 밴드 폭을 이용할 수 있다고도 할 수 있다. 이미지 플레인에 대한 기록에 관해서는, GUI 화상은 동화상이나 배경화상에 비해서 고품질이므로, 그 기록에 요하는 시간이 길어지거나 또는 메모리 버스의 밴드 폭이 넓어지게 되나, 스틸 플레인으로부터의 데이터의 판독에 사용할 예정이었던 메모리 버스를 이미지 플레인에 대한 기록에 사용함으로써 고속화를 할 수 있다.
또, 동화상을 저장하기 위한 비디오 플레인과, GUI로 표시하는 화상인 GUI 화상을 저장하기 위한 이미지 플레인과, 배경화상을 저장하기 위한 스틸 플레인과의 메모리 영역을 갖는 기억수단을 구비하는 재생장치에서 화상을 합성하는 화상합성방법으로, 상기 비디오 플레인에 동화상을 저장하는 동화상 저장스텝과, 상기 이미지 플레인에 상기 GUI 화상을 저장하는 이미지 저장스텝과, 상기 스틸 플레인에 상기 배경화상을 저장하는 배경화상 저장스텝과, 상기 동화상이 상기 배경화상을 완전하게 차폐할 수 있는 소정의 사이즈인 경우에는, 상기 배경화상을 판독하지 않고, 상기 동화상과 상기 GUI 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하고, 상기 동화상이 상기 소정의 사이즈가 아닌 경우에는, 상기 동화상과 상기 GUI 화상 및 상기 배경화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하는 합성출력스텝을 포함하는 것으로 해도 된다.
이 방법을 실행함으로써, 재생장치는 필요하지 않은 경우에는 스틸 플레인으로부터의 데이터의 판독을 행하지 않으므로, 메모리 버스의 밴드 폭을 그 분량만큼 비워둘 수 있다.
또, 동화상을 저장하기 위한 비디오 플레인과, GUI로 표시하는 화상인 GUI 화상을 저장하기 위한 이미지 플레인과, 배경화상을 저장하기 위한 스틸 플레인의 메모리 영역을 갖는 기억수단을 구비하는 재생장치의 컴퓨터에 화상을 합성시키기 위한 처리순서를 나타낸 화상합성 프로그램으로, 상기 비디오 플레인에 동화상을 저장하는 동화상 저장스텝과, 상기 이미지 플레인에 상기 GUI 화상을 저장하는 이미지 저장스텝과, 상기 스틸 플레인에 상기 배경화상을 저장하는 배경화상 저장스텝과, 상기 동화상이 상기 배경화상을 완전하게 차폐할 수 있는 소정의 사이즈인 경우에는, 상기 배경화상을 판독하지 않고, 상기 동화상과 상기 GUI 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하고, 상기 동화상이 상기 소정의 사이즈가 아닌 경우에는, 상기 동화상과 상기 GUI 화상 및 상기 배경화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하는 합성출력스텝을 포함하는 것으로 해도 된다.
이 프로그램을 재생장치의 컴퓨터가 실행함으로써, 재생장치는 필요하지 않은 경우에는 스틸 플레인으로부터의 데이터의 판독을 행하지 않게 되므로, 메모리 버스의 밴드 폭을 그 분량만큼 비워둘 수 있다.
또, 화상을 합성하여 출력하는 재생장치에 탑재되는 집적회로로, 동화상을 저장하기 위한 비디오 플레인과, GUI로 표시하는 화상인 GUI 화상을 저장하기 위한 이미지 플레인과, 배경화상을 저장하기 위한 스틸 플레인의 메모리 영역을 갖는 기억수단과, 상기 비디오 플레인에 동화상을 저장하는 동화상 저장수단과, 상기 이미지 플레인에 상기 GUI 화상을 저장하는 이미지 저장수단과, 상기 스틸 플레인에 상기 배경화상을 저장하는 배경화상 저장수단과, 상기 동화상이 상기 배경화상을 완전하게 차폐할 수 있는 소정의 사이즈인 경우에는, 상기 배경화상을 판독하지 않고, 상기 동화상과 상기 GUI 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하고, 상기 동화상이 상기 소정의 사이즈가 아닌 경우에는, 상기 동화상과 상기 GUI 화상 및 상기 배경화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하는 합성출력수단을 구비하는 것으로 해도 된다.
이 집적회로를 탑재함으로써, 재생장치는 필요하지 않은 경우에는 스틸 플레인으로부터의 데이터의 판독을 행하지 않으므로, 메모리 버스의 밴드 폭을 그 분량만큼 비워둘 수 있다.
도 1은 본 발명의 재생장치의 사용행위를 나타내는 도면이다.
도 2는 제 1 실시 예의 재생장치(100)의 기능구성을 나타낸 블록 도이다.
도 3은 소프트웨어와 하드웨어로 이루지는 부분을 계층 구성으로 치환하여 묘사한 도면이다.
도 4는 Java(등록상표) 가상 머신(36)의 기능구성을 나타낸 도면이다.
도 5는 BD-ROM(110)에 저장되어 있는 데이터의 디렉터리 구조를 나타낸 도면이다.
도 6은 확장자 .m2ts가 부여된 파일이 어떻게 구성되어 있는가를 모식적으로 나타낸 도면이다.
도 7은 Clip 정보의 구성을 나타낸 도면이다.
도 8은 영화의 비디오 스트림에 대한 EP_map 설정을 나타내는 도면이다.
도 9는 Playlist 정보의 데이터 구조를 나타낸 도면이다.
도 10은 AVClip과 PlayList 정보의 관계를 나타내는 도면이다.
도 11은 Playlist 정보에 포함되는 STN 테이블을 나타낸 도면이다.
도 12의 (a) ~ (d)는 entry-attribute의 상세를 나타내는 도면이다.
도 13은 PlayList 정보에서의 PlayListMark 정보의 내부 구성을 나타내는 도면이다.
도 14는 PlayList 정보에서의 PlayListMark 정보에 의한 챕터 위치의 지정을 나타내는 도면이다.
도 15는 BD-J Object의 내부 구성을 나타내는 도면이다.
도 16은 아카이브 파일에 의해 수용되어 있는 프로그램 및 데이터를 나타내는 도면이다.
도 17 (a)는 애플리케이션 관리테이블의 내부 구성을 나타내는 도면이다. (b)는 애플리케이션 관리테이블을 구성하는 정보요소의 의미내용을 나타내는 도면이다.
도 18은 디스크 콘텐츠에서의 상태천이(status transition)를 나타내는 도면이다.
도 19 (a)는 BD-ROM 전체의 시간 축을 나타내는 도면이다. (b)는 BD-ROM 전체의 시간 축에서의 구성을 나타내는 도면이다.
도 20 (a), (b)는 BD-ROM 전체의 시간 축에서 BD-J Object로부터 특정되는 타이틀 재생구간을 나타내는 도면이다.
도 21은 도 20 (b)의 시간 축 상에 규정되는 생존구간의 전형을 나타내는 도면이다.
도 22는 본편 타이틀, 온라인 쇼핑 타이틀, 게임 타이틀이라는 3개의 타이틀을 포함하는 디스크 콘텐츠를 나타내는 도면이다.
도 23 (a), (b)는 애플리케이션 관리테이블, 생존구간의 일례를 나타내는 도면이다.
도 24는 기동속성이 취할 수 있는 3개의 형태(Present, AutoRun, Suspend)와 직전 타이틀에서의 애플리케이션 상태의 3개의 형태(비 기동, 기동 중, Suspend)가 취할 수 있는 조합을 나타내는 도면이다.
도 25 (a)는 플레이 리스트 관리테이블의 내부 구성을 나타내는 도면이다. (b)는 플레이 리스트 관리테이블을 구성하는 정보요소의 의미내용을 나타내는 도면이다.
도 26은 플레이 리스트 관리테이블 및 애플리케이션 관리테이블에 의해 규정되는 타이틀의 구체 예를 나타낸다.
도 27은 현재 타이틀이 취할 수 있는 3개의 형태(플레이 리스트 관리테이블 없음, 플레이 리스트 관리테이블이 있으면서 무 지정, 플레이 리스트 관리테이블이 있으면서 AutoPlay)와 직전 타이틀에서의 PL의 상태(비 재생상태, 재생 중 상태)가 취할 수 있는 6종류의 조합을 나타내는 도면이다.
도 28 (a)는 플레이 리스트 관리테이블 및 애플리케이션 관리테이블의 기술 예를 나타내는 도면이다. (b)는 도 27 (a)와 같이 기술된 애플리케이션 관리테이블, 플레이 리스트 관리테이블에 의해 플레이 리스트 재생, 애플리케이션 실행이 어떻게 진행되는가를 나타내는 도면이다.
도 29 (a)는 플레이 리스트 관리테이블의 다른 기술 예를 나타내는 도면이다. (b)는 도 28 (a)의 경우에 의거한 애플리케이션 실행 및 플레이 리스트 재생의 진행을 나타내는 도면이다.
도 30은 스틸 플레인을 합성하는가 여부를 판단하는 재생장치(100)의 동작을 나타내는 플로차트이다.
도 31은 제 2 실시 예에서의 재생장치(100)의 기능구성을 나타낸 블록 도이다.
도 32는 제 2 실시 예에서 애플리케이션의 지시에 비디오 스케일링의 지시에 의거하여 스틸 플레인 및 PG 플레인으로부터의 데이터의 출력제어의 흐름을 나타낸 플로차트이다.
(부호의 설명)
1 BD-ROM 드라이브 2 리드 버퍼
3 디 멀티플렉서 4 비디오 디코더
5 비디오 플레인 6 사운드 프로세서
7 사운드 프로세서 8 믹서
9 사운드 컨트롤러 10 D/A 컨버터
11 인터랙티브 그래픽스 디코더
12 인터랙티브 그래픽스 플레인
13 프레젠테이션 그래픽스 디코더
14 프레젠테이션 그래픽스 플레인
15 JPEG 디코더 16 스틸 플레인
17 스틸 플레인 제어부
18a, 18b, 18c 합성부 19 STC-DELTA 부가부
20 ATC-DELTA 부가부 21 로컬 기억장치
22 명령 ROM 23 사용자 이벤트 처리부
24 PSR 세트 25 CPU
26 시나리오 메모리 27 로컬 메모리
28 PG 플레인 제어부 100 재생장치
(제 1 실시 예)
이하, 본 발명의 일 실시 예인 재생장치에 대하여 도면을 사용하여 설명한다.
<구성>
<사용형태의 구성>
먼저, 도 1에는 재생장치의 사용행위에 대한 형태를 나타낸다.
도 1에 도시하는 바와 같이, 재생장치(100)는 BD-ROM(110)을 장착하여, BD-ROM(110)에 기록되어 있는 동화상을 재생해서, 유선 혹은 무선으로 접속하고 있는 텔레비전(130)에 표시하도록 한다. 또, 재생장치(100)는 BD-ROM(110)에 기록되어 있는 Java(등록상표) 애플리케이션(Java application)을 실행하여 당해 애플리케이션에 의거한 화상도 표시하도록 한다.
사용자 조작을 접수하기 위해서 리모컨(120)이 있으며, 당해 리모컨(120)에는 재생장치(100)를 제어하기 위한 각종 키가 탑재되어 있다. 이 각종 키에는 재생개시(Play), 재생정지(Stop), 일시정지(Pause On), 일시정지의 해제(Pause Off), 스틸 기능의 해제(still off), 속도지정 부(付) 빨리 감기(Forward Play(speed)), 속도지정 부 되감기(Backward Play(speed)), 음성전환(Audio Change), 부 영상전환(Subtitle Change), 앵글전환(Angle Change)을 수신하는 키나 메뉴 조작시의 포커스 이동 조작을 수신하는 MoveUp 키, MoveDown 키, MoveRight 키, MoveLeft 키, 메뉴표시의 조작을 수신하는 Pop-up 키, 수치입력을 수신하는 Numeric 키가 포함된다.
이상이 본 발명의 재생장치(100)의 사용행위의 형태에 대한 설명이다.
<재생장치(100)의 하드웨어 구성>
다음에, 도 2를 사용하여 재생장치(100)의 기능 구성에 대하여 설명한다.
본 발명의 재생장치(100)는 본 도면에 도시한 내부 구성에 의거하여 공업적으로 생산된다. 본 발명의 재생장치(100)는 주로 시스템 LSI(Large Scale Integration)와 드라이브 장치라는 2개의 부분(part)으로 이루어지고, 이들 부분을 장치의 캐비닛 및 기판에 실장 함으로써 공업적으로 생산할 수 있다. 시스템 LSI는 재생장치의 기능을 달성하는 다양한 처리부를 집적한 집적회로이다. 이렇게 하여 생산되는 재생장치(100)는 BD-ROM 드라이브(1), 리드 버퍼(2), 디 멀티플렉서(demultiplexer, 3), 비디오 디코더(4), 비디오 플레인(5), 사운드 프로세서 6, 사운드 프로세서 7, 믹서(8), 사운드 컨트롤러(9), D/A 컨버터(10), 인터랙티브 그래픽스 디코더(Interactive Graphics decoder, 11), 인터랙티브 그래픽스 플레인(Interactive Graphics plane, 12), 프레젠테이션 그래픽스 디코더(Presentation Graphics decoder, 13), 프레젠테이션 그래픽스 플레인((Presentation Graphics plane, 14), JPEG 디코더(15), 스틸 플레인(Still plane, 16), 스틸 플레인 제어부(17), 합성부(18a, 18b, 18c), STC-DELTA 부가부(19), ATC-DELTA 부가부(20), 로컬 기억장치(local storage, 21), 명령 ROM(22), 사용자 이벤트 처리부(23), PSR 세트(24), CPU(25), 시나리오 메모리(26) 및 로컬 메모리(27)를 포함하여 구성된다.
BD-ROM 드라이브(1)는 BD-ROM의 로딩/이젝트를 행하며, BD-ROM에 대한 액세스를 실행하는 기능을 갖는다.
리드 버퍼(2)는 FIFO(First In First Out) 메모리이며, BD-ROM에서 판독된 TS 패킷을 차례로 저장하고, 먼저 저장된 패킷부터 순차 출력하는 기능을 갖는다.
디 멀티플렉서(De-MUX, 3)는 리드 버퍼(2)로부터 소스 패킷(Source packet)을 인출하여, 이 소스 패킷을 구성하는 TS 패킷을 PES 패킷으로 변환하는 기능을 갖는다. 그리고 변환에 의해 얻어진 PES 패킷 중 STN_Table에 기재된 것 중에서 PID(Packet IDentifier)를 갖는 것을 비디오 디코더(4), 오디오 디코더(6), 인터랙티브 그래픽스 디코더(11), 프레젠테이션 그래픽스 디코더(13) 중 어느 하나에 출력하는 기능도 갖는다. 소스 패킷 및 STN_Table의 상세에 관해서는 후술한다.
비디오 디코더(4)는 디 멀티플렉서(3)로부터 출력된 복수 PES 패킷을 복호하여 비 압축형식의 픽쳐를 얻어서 비디오 플레인(5)에 기록하는 기능을 갖는다.
비디오 플레인(5)은 비 압축형식의 픽쳐를 저장해 두기 위한 플레인이다. 플레인은 재생장치(100)에서 1 화면 분의 화소 데이터를 저장해 두기 위한 메모리 영역이다. 비디오 플레인은 비디오 디코더에 의해서 기록된 데이터를 저장하고 출력하는 기능을 갖는다. 비디오 플레인(5)에서의 해상도는 1920×1080이며, 이 비디오 플레인(5)에 저장된 픽쳐 데이터(picture data)는 16비트의 YUV 값으로 표현된 화소 데이터에 의해 구성된다. 비디오 플레인(5)에서는 비디오 스트림에서의 1 프레임 단위의 재생영상을 스케일링(scaling)할 수 있다. 스케일링은 1 프레임 단위의 재생화상을 비디오 플레인(5) 전체의 1/4(쿼터라고 한다) 또는 1/1(풀 스케일이라고 한다) 중 어느 하나로 변화시키는 것이다. 이와 같은 스케일링을 BD-J 모드에서 CPU(25)로부터의 지시에 따라서 실행하므로 비디오 스트림의 재생화상을 화면의 구 석에 표시하거나 전면적으로 표시하는 화면연출이 가능해진다.
사운드 프로세서 6은 오디오 스트림을 구성하는 PES 패킷을 PID 필터(3)가 출력한 때에 이 PES 패킷을 저장해 두는 기능을 갖는 오디오 버퍼(6a)와, 이 버퍼에 저장된 PES 패킷을 디코드하여 PCM(Pulse Code Modulation) 상태의 오디오 데이터를 출력하는 기능을 갖는 오디오 디코더(6b)를 포함한다.
사운드 프로세서 7은 BD-ROM에서 판독된 파일 sound.bdmv를 프리 로드(pre-load) 해 두는 기능을 갖는 프리 로드 버퍼(7a)와, 프리 로드된 파일 sound.bdmv에서의 복수의 사운드 데이터 중 CPU(25)에 의해 지시된 것을 디코드하여 PCM 상태의 오디오 데이터를 출력하는 기능을 갖는 오디오 디코더(7b)를 포함한다. 프리 로드 버퍼(7a)에 대한 프리 로드는 BD-ROM의 장전시나 타이틀 전환시에 행하는 것이 바람직하다. 왜냐하면, AVClip의 재생 중에 파일 sound.bdmv를 판독하려고 하면 AVClip과는 별도의 파일을 판독하기 위한 광 픽업의 탐색(seek)이 발생하기 때문이다. 한편, BD-ROM의 장전시나 타이틀 전환시에는 AVClip의 재생이 계속되고 있는 경우는 드물기 때문에, 이와 같은 타이밍에 파일 sound.bdmv를 판독함으로써 AVClip 재생이 도중에 끊기지 않고 이루어지는 것을 보증할 수 있다.
사운드 믹서(8)는 사운드 프로세서 6 및 사운드 프로세서 7로부터 출력되는 PCM 상태의 사운드 데이터를 믹싱하는 기능을 갖는다.
사운드 컨트롤러(9)는 사운드 믹서(8)로부터 출력된 전개된 상태의 오디오 데이터 및 사운드 프로세서(6)를 통하지 않은 압축된 상태의 오디오 데이터 중 어느 하나를 출력하거나 전환하는 기능을 갖는다. 압축된 상태의 오디오 데이터를 출 력하는 경우에는 그 출력 처의 기기(텔레비전)에서 디코드 된다.
D/A 컨버터(10)는 사운드 믹서(8)로부터 출력되는 디지털의 오디오 데이터를 D/A 변환하여 아날로그 음성을 출력하는 기능을 갖는다.
I-그래픽스 디코더(IG 디코더)(11)는 BD-ROM 또는 로컬 기억장치(21)에서 판독된 IG 스트림을 디코드하여 비 압축 그래픽스를 인터랙티브 그래픽스 플레인(12)에 기록하는 기능을 갖는다.
인터랙티브 그래픽스(IG) 플레인(12)에는 HDMV 모드에서 I-그래픽스 디코더(11)에 의한 디코드에 의해 얻어진 비 압축 그래픽스가 기록된다. 또, BD-J 모드에서 애플리케이션에 의해 묘화(描畵) 된 문자나 그래픽스가 기록된다.
P-그래픽스 디코더(13)는 BD-ROM 또는 로컬 기억장치(21)에서 판독된 PG 스트림을 디코드하여 비 압축 그래픽스를 프레젠테이션 그래픽스(PG) 플레인(11)에 기록하는 기능을 갖는다. P-그래픽스 디코더(13)에 의해서 디코드 되어 프레젠테이션 그래픽스 플레인(14)에 기록된 데이터가 합성됨으로써 자막이 화면상에 나타나게 된다.
프레젠테이션 그래픽스 플레인(14)은 1 화면 분의 영역을 갖는 메모리이며, 1 화면 분의 비 압축 그래픽스를 저장할 수 있다.
JPEG 디코더(15)는 BD-ROM 또는 로컬 기억장치(21)에 기록되어 있는 JPEG 데이터를 디코드하여 스틸 플레인(16)에 기록하는 기능을 갖는다.
스틸 플레인(16)은 JPEG 데이터를 전개함으로써 얻어진 비 압축의 그래픽스 데이터가 저장되는 플레인이다. 이 그래픽스 데이터는 Java(등록상표) 애플리케이 션이 묘화하는, GUI 프레임 워크(framework)의 소위 "벽지(wallpaper)"로서 사용된다.
스틸 플레인 제어부(17)는 스틸 플레인(16)으로부터의 데이터의 출력을 제어하는 기능을 갖는다. 구체적으로는, CPU(25)로부터 비디오 플레인(5)에 대한 스케일링 지시(scaling instruction)를 수신하여, 당해 스케일링 지시가 텔레비전(130) 전체에 대한 표시 지시인 풀 스케일 스케일링인 경우에는 스틸 플레인(16)으로부터의 데이터의 판독을 억지한다. 그리고 스케일링 지시가 풀 스케일의 1/4인 쿼터 스케일링인 경우에는 스틸 플레인(16)으로부터 합성부(18c)에 대해서 저장하고 있는 스틸 데이터를 출력하도록 한다.
합성부(18a, b, c)는 인터랙티브 그래픽스 플레인(12)에 저장되어 있는 데이터와, 프레젠테이션 그래픽스 플레인(14)에 저장되어 있는 데이터와, 비디오 플레인(5)에 저장되어 있는 데이터와, 스틸 플레인(16)에 저장되어 있는 데이터를 각각 합성하여 얻어진 합성화상의 화상 신호를 출력하는 기능을 갖는다. 또한, 플레인으로부터 화상 신호가 출력되지 않은 경우에는 합성하지 않고 출력되어 온 신호를 그대로 출력한다.
STC_delta 부가부(18)는 STC(System Time Clock)를 생성하는 기능을 갖는다. 그리고 STC_Sequence의 전환시에, 그때까지의 STC_Sequence에서의 STC 값(STC1)에 STC_delta라고 하는 오프셋 값을 가산함으로써 새로운 STC_Sequence의 STC 값(STC2)을 구하여, 그때까지의 STC_Sequence에서의 STC 값(STC1)과 새로운 STC_Sequence의 STC 값(STC2)을 연속한 값으로 한다.
선행 STC_Sequence에서 최후에 재생되는 픽쳐의 표시개시시각을 PTS1(lstEND), 픽쳐의 표시기간을 Tpp로 하고, 후속 STC_Sequence에서 최초에 표시되는 픽쳐의 개시시각을 PTS2(2ndSTART)로 한 경우, STC_delta는
STC_delta = PTS1(1stEND) + Tpp - PTS2(2ndSTART)
로 표현된다. 이상과 같이 STC_delta를 구하고, 이것이 더해진 클록의 계수 값을 각 디코더에 출력한다. 이에 의해 각 디코더는 2개의 STC_Sequence에 해당하는 스트림을 도중에 끊김이 없이 재생해 갈 수 있다. 이상에 의해, 하나의 AVClip 중에 2개 이상의 STC_Sequence가 존재하였다고 해도, 또, 연속하여 재생되어야하는 2개 이상의 AVClip의 각각이 다른 STC_Sequence를 가지고 있었다고 해도, 이들 STC_Sequence 사이의 디코드 처리를 심리스(seamless) 하게 실행할 수 있다.
또한, 버퍼링의 연속성을 만족하기 위해서는 이하의 조건 1), 2)를 만족시키면 된다.
1) STC2(2ndSTART) > STC2(1stEND)를 만족할 것.
2) TS1로부터의 TS 패킷의 인출과 TS2로부터의 TS 패킷의 인출이 동일한 시간 축에 투영된 STC1과 STC2에 의해 정의되며, 버퍼의 언더 프로(underflow)나 오버 프로(overflow)를 초래하지 않을 것.
또한, 1)에서 STC2(1stEND)는 STC1(1stEND)을 STC2의 시간 축에 투영한 값이며, STC2(1stEND) = STC1(1stEND) - STC_delta라는 계산식으로 주어진다.
ATC_delta 부가부(19)는 ATC(Arrival Time Clock)를 생성하는 기능을 갖는다. 그리고 STC_Sequence의 전환시에, 그때까지의 ATC_Sequence에서의 ATC 값(ATC1)에 ATC_delta라고 하는 오프셋 값을 가산함으로써, 그때까지의 ATC_Sequence에서의 ATC 값(ATC1)과 새로운 ATC_Sequence의 ATC 값(ATC2)을 연속한 값으로 한다. 이 가산에 의해 ATC2 = ATC1 + ATC_delta가 된다. ATC_delta란, 지금까지 판독되고 있는 트랜스 포트 스트림(transport stream, 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 모드에서의 동작에 관한 구성요소(로컬 기억장치(21) ~ 로컬 메모리(27))에 대하여 설명한다.
로컬 기억장치(21)는 웹사이트로부터 다운로드 된 콘텐츠 등, BD-ROM 이외의 기록매체, 통신매체로부터 공급된 콘텐츠를 메타데이터(metadata)와 함께 저장해 두는 기능을 갖는 하드 디스크이다. 이 메타데이터는 다운로드 콘텐츠를 로컬 기억장치(21)에 바인드(binding) 하여 관리하기 위한 정보이며, 이 로컬 기억장치(21) 를 액세스함으로써 BD-J 모드에서의 애플리케이션은 다운로드 콘텐츠 길이를 이용한 다양한 처리를 행할 수 있다.
이어서, 재생장치에서의 통합제어를 실현하는 구성요소(명령 ROM(22) ~ 로컬 메모리(27))에 대하여 설명한다.
명령 ROM(22)은 재생장치의 제어를 규정하는 소프트웨어를 기억하고 있다.
사용자 이벤트 처리부(23)는 리모컨이나 재생장치의 프런트 패널(front panel)에 대한 키 조작에 따라서 그 조작을 행하는 사용자 이벤트를 CPU(25)에 출력한다.
PSR(Player Status Register) 세트(24)는 재생장치에 내장되는 레지스터이며, 64개의 PSR과 4096개의 GPR(General Purpose Register)로 이루어진다. Player Status Register의 설정 값(PSR) 중 PSR4 ~ PSR8은 현재의 재생시점을 표현하는 것에 사용된다.
PSR4는, 1 ~ 100의 값으로 설정됨으로써 현재의 재생시점이 속하는 타이틀을 나타내고, 0으로 설정됨으로써 현재의 재생시점이 톱 메뉴임을 나타낸다.
PSR5는, 1 ~ 999의 값으로 설정됨으로써 현재의 재생시점이 속하는 챕터 번호(chapter number)를 나타내고, 0xFFFF로 설정됨으로써 재생장치에서 챕터 번호가 무효임을 나타낸다.
PSR6은 0 ~ 999의 값으로 설정됨으로써 현재의 재생시점이 속하는 플레이 리스트(현재 PL)의 번호를 나타낸다.
PSR7은 0 ~ 255의 값으로 설정됨으로써 현재의 재생시점이 속하는 PlayItem(현재 Play Item)의 번호를 나타낸다.
PSR8은 0 ~ OxFFFFFFFF의 값으로 설정됨으로써 45㎑의 시간 정밀도를 사용하여 현재의 재생시점(현재 PTM(Presentation TiMe))을 나타낸다. 이상의 PSR4 ~ PSR8에 의해 도 18 (a)에서의 BD-ROM 전체의 시간 축에서 현재의 재생시점이 어디인가를 특정할 수 있다.
CPU(25)는 명령 ROM(22)에 저장되어 있는 소프트웨어를 실행하여 재생장치 전체의 제어를 실행하는 기능을 갖는다. 이 제어의 내용은 사용자 이벤트 처리부(23)로부터 출력된 사용자 이벤트 및 PSR 세트(24)에서의 각 PSR의 설정 값에 따라서 동적으로 변화한다.
시나리오 메모리(26)는 현재의 PL 정보나 현재의 Clip 정보를 저장해 두는 기능을 갖는 메모리이다. 현재 PL 정보는 BD-ROM에 기록되어 있는 복수의 플레이 리스트 정보 중 현재 처리대상으로 되어 있는 것을 말한다. 현재 Clip 정보는 BD-ROM에 기록되어 있는 복수의 Clip 정보 중 현재 처리대상으로 되어 있는 것을 말한다.
로컬 메모리(27)는, BD-ROM에서의 판독은 저속이므로 BD-ROM의 기록내용을 일시적으로 저장해 두기 위한 캐시 메모리이다. 이와 같은 로컬 메모리(27)가 존재함으로써 BD-J 모드에서의 애플리케이션의 실행이 효율적으로 이루어지게 된다.
이상이 본 실시 예의 재생장치의 하드웨어 구성이다.
<재생장치(100)의 소프트웨어 구성>
이어서 본 실시 예의 재생장치의 소프트웨어 구성에 대하여 설명한다.
도 3에는 ROM(24)에 저장된 소프트웨어와 하드웨어로 이루어지는 부분을 계층 구성으로 치환하여 묘사한 도면이다. 본 도면에 도시하는 바와 같이, 재생장치의 계층 구성은 이하의 a), b), c)로 이루어진다. 즉,
a) BD Player Device의 제 1 계층,
b) BD Player Model의 제 2 계층,
c) Application Runtime Enviroment의 제 3 계층으로 이루어진다.
이들 계층 중에서, 도 3에 도시한 재생장치의 하드웨어 구성은 제 1 계층에 속하게 된다. 본 도면의 제 1 계층인 "BD Player Device"에는 도 2에 도시한 하드웨어 구성 중 비디오 디코더(4), I-그래픽스 디코더(11), 오디오 디코더(6) 등에 해당하는 "디코더"와, 비디오 플레인(5), 인터랙티브 그래픽스 플레인(12) 등에 해당하는 "플레인", BD-ROM(110) 및 그 파일 시스템, 로컬 기억장치(21) 및 그 파일 시스템을 포함한다.
제 2 계층인 "BD Player Model"은 이하의 b1), b2)의 층으로 이루어진다. 즉,
b1) 가상파일시스템(Virtual File System, 30) 및 프레젠테이션 엔진(Presentation Engine, 31)의 층
b2) 재생제어엔진(Playback Control Engine, 32)의 층으로 이루어지며, 자신보다 상위의 계층에 대해 기능 API(API function)를 제공한다.
제 3 계층인 "Application Runtime Enviroment"는 이하의 c1), c2)의 계층으로 이루어진다. 즉,
c1) 모듈 매니저(34)가 존재하는 층
c2) BD-J 플랫폼(35)이 존재하는 층으로 이루어진다.
먼저, 제 2 층에 속하는 가상파일시스템(30) ~ 모듈 매니저(34)에 대하여 설명한다.
가상파일시스템(30)은 로컬 기억장치(21)에 저장된 다운로드 콘텐츠를 BD-ROM에서의 디스크 콘텐츠와 일체적으로 취급하기 위한 가상적인 파일 시스템이다. 여기서 로컬 기억장치(21)에 저장된 다운로드 콘텐츠는 SubClip, Clip 정보, 플레이 리스트 정보를 포함한다. 이 다운로드 콘텐츠에서의 플레이 리스트 정보는 BD-ROM 및 로컬 기억장치(21) 중 어느 하나에 존재하는 Clip 정보라도 지정할 수 있다는 점에서 BD-ROM 상의 플레이 리스트 정보와 다르다. 이 지정시에 가상파일시스템(30) 상의 플레이 리스트 정보는 BD-ROM이나 로컬 기억장치(21)에서의 파일을 풀 패스(full path)로 지정할 필요는 없다. BD-ROM 상의 파일 시스템이나 로컬 기억장치(21) 상의 파일 시스템은 가상적인 하나의 파일 시스템(가상파일시스템(30))으로 인식되기 때문이다. 그런 이유에서, PlayItem 정보에서의 Clip_Information_file_name은 Clip 정보가 저장한 파일의 파일 보디(file body)에 해당하는 5자리의 수치를 지정함으로써 가상파일시스템(30) 및 BD-ROM 상의 AVClip을 지정할 수 있다. 가상파일시스템(30)을 통하여 로컬 기억장치(21)의 기록내용을 판독하여 BD-ROM의 기록내용과 동적으로 조합시킴으로써 다양한 재생의 변형을 산출할 수 있다. 로컬 기억장치(21)와 BD-ROM을 조합시켜서 이루어지는 디스크 콘텐츠는 BD-ROM에서의 디스크 콘텐츠와 대등하게 취급되므로, 본 발명에서 BD-ROM에는 로컬 기억장치(21) + BD-ROM의 조합으로 이루어지는 가상적인 기록매체도 포함하는 것으로 한다.
프레젠테이션 엔진(31)은 AV 재생기능을 실행한다. 재생장치의 AV 재생기능은 DVD 플레이어, CD 플레이어로부터 답습한 전통적인 기능 군이며, 재생개시(Play), 재생정지(Stop), 일시정지(Pause On), 일시정지의 해제(Pause Off), 스틸 기능의 해제(still off), 속도지정 부(付) 빨리 감기(Forward Play(speed)), 속도지정 부 되감기(Backward Play(speed)), 음성전환(Audio Change), 부 영상 전환(Subtitle Change), 앵글전환(Angle Change)이라는 기능이다. AV 재생기능을 실현하기 위해, 프레젠테이션 엔진(31)은 리드 버퍼(2) 상에 판독된 AVClip 중 원하는 시각에 해당하는 부분의 디코드를 행하도록 비디오 디코더(4), P-그래픽스 디코더(13), I-그래픽스 디코더(11), 오디오 디코더(6)를 제어한다. 원하는 시각으로서 PSR8(현재 PTM)에 표시되는 개소의 디코드를 행하도록 함으로써 AVClip에서 임의의 시점을 재생할 수 있게 한다.
재생제어엔진(Playback Control Engine(PCE))(32)은 플레이 리스트에 대한 재생제어기능(ⅰ), 및 PSR 세트(24)에서의 상태취득/설정기능(ⅱ)이라는 제반 기능을 실행한다. 플레이 리스트에 대한 재생제어기능은 프레젠테이션 엔진(31)이 행하는 AV 재생기능 중 재생개시나 재생정지를 현재 PL 정보 및 Clip 정보에 따라서 행하도록 하는 것을 말한다. 이들 기능 (ⅰ), (ⅱ)는 HDMV 모듈(33) ~ BD-J 플랫폼(35)으로부터의 기능 콜(function call)에 따라서 실행한다.
모듈 매니저(34)는 BD-ROM으로부터 판독된 Index.dbmv를 보유하며, 분기제어 를 행한다. 이 분기제어는 현재 타이틀을 구성하는 동적 시나리오에 터미네이트 이벤트(Terminate event)를 발행하고, 분기 처 타이틀을 구성하는 동적 시나리오에 액티베이트 이벤트(Activate event)를 발행함으로써 이루어진다.
이상이 프레젠테이션 엔진(31) ~ 모듈 매니저(34)에 대한 설명이다. 이어서 BD-J 플랫폼(35)에 대하여 설명한다.
BD-J 플랫폼(35)은 소위 Java(등록상표) 플랫폼이며, Java(등록상표) 가상 머신(36)을 중핵으로 한 구성으로 되어 있다. BD-J 플랫폼(35)은 상술한 Java(등록상표) 2 Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)과, Globally Executable MHP specification(GEM[1.0.2]) for package media targets 및 BD-J Extention을 실장하고 있다. BD-J Extention은 GEM[1.0.2]를 초월하는 기능을 BD-J 플랫폼에 부여하기 위해서 특화된 다양한 패키지를 포함하고 있다.
먼저, BD-J 플랫폼(35)의 중핵이 되는 Java(등록상표) 가상 머신(36)에 대하여 설명한다.
<Java(등록상표) 가상 머신(36)>
도 4는 Java(등록상표) 가상 머신(36)의 내부 구성을 나타내는 도면이다. 본 도면에 도시하는 바와 같이, Java(등록상표) 가상 머신(36)은 도 33에 도시한 CPU(25)와 사용자 클래스 로더(user class loader, 52), 메소드 영역(method area, 53), 워크 메모리(work memory, 54), 스레드(thread, 55a, b … n), Java(등록상표) 스택(Java stack, 56a, b … n)으로 구성된다.
사용자 클래스 로더(52)는 BDJA 디렉터리의 Java(등록상표) 아카이브 파 일(Java archive file)에서의 클래스 파일을 로컬 메모리(27) 등에서 판독하여 메소드 영역(53)에 저장한다. 이 사용자 클래스 로더(52)에 의한 클래스 파일의 판독은 파일 패스를 지정한 판독을 애플리케이션 매니저(37)가 사용자 클래스 로더(52)에 지시함으로써 이루어진다. 파일 패스가 로컬 메모리(27)를 가리키고 있으면, 사용자 클래스 로더(52)는 애플리케이션을 구성하는 Java(등록상표) 아카이브 파일에서의 클래스 파일을 로컬 메모리(27)에서 워크 메모리(54)로 판독한다. 파일 패스가 가상파일시스템(30) 상의 디렉터리를 가리키고 있으면, 사용자 클래스 로더(52)는 애플리케이션을 구성하는 Java(등록상표) 아카이브 파일에서의 클래스 파일을 BD-ROM 또는 로컬 메모리(27)에서 워크 메모리(54)로 판독한다. 애플리케이션의 기동제어는 이 사용자 클래스 로더(52)에 의한 클래스 파일의 판독에 의해 실현된다. 판독이 지시된 클래스 파일이 로컬 메모리(27)에 없는 경우, 사용자 클래스 로더(52)는 판독 실패를 애플리케이션 매니저(37)에 통지하게 된다.
메소드 영역(53)은 사용자 클래스 로더(52)에 의해 로컬 메모리(27)에서 판독된 클래스 파일이 저장된다.
워크 메모리(54)는 소위 히프 영역(heap area)이며, 다양한 클래스 파일의 인스턴스(instance)가 저장된다. 도 3에 도시한 애플리케이션 매니저(37)는 이 워크 메모리(54)에 상주하는 레지던트 애플리케이션(resident application)이다. 워크 메모리(54)에는 이들 레지던트형의 인스턴스 외에 메소드 영역(53)에 판독된 클래스 파일에 대응하는 인스턴스가 저장된다. 이 인스턴스가 애플리케이션을 구성하는 xlet 프로그램이다. 이와 같은 xlet 프로그램을 워크 메모리(54)에 배치함으로 써 애플리케이션은 실행 가능한 상태가 된다.
도 3의 계층모델에서는 이 워크 메모리(54) 상의 애플리케이션 매니저(37)를 Java(등록상표) 가상 머신(36) 상에 묘사하고 있었으나, 이는 이해를 용이하게 하기 위해서 의도한 배려에 불과하다. 애플리케이션 매니저(37) 및 애플리케이션은 인스턴스로서 스레드(55a, b … n)에 의해 실행되는 것이 현실적인 기술(記述)이 된다.
스레드(55a, b … n)는 워크 메모리(54)에 저장된 메소드를 실행하는 논리적인 실행 주체이며, 로컬 변수(local variable)나 오퍼랜드 스택(operand stack)에 저장된 인수(argument)를 오퍼랜드로 하여 연산을 행하여, 연산결과를 로컬 변수 또는 오퍼랜드 스택에 저장한다. 도면 중의 화살표 ky1, ky2, kyn은 워크 메모리(54)에서 스레드(55a, b … n)로의 메소드의 공급을 상징적으로 나타내고 있다. 물리적인 실행 주체가 CPU 단 하나인 것에 대해, 논리적인 실행 주체인 스레드는 최대 64개가 Java(등록상표) 가상 머신(36) 내에 존재할 수 있다. 이 64개라는 수치 내에서 스레드를 신규로 작성할 수도 있고, 기존의 스레드를 삭제할 수도 있으며, 스레드의 동작 수는 Java(등록상표) 가상 머신(36)의 동작 중에 증감할 수 있다. 스레드의 수를 적절하게 증가시킬 수 있으므로, 복수의 스레드에 의해 하나의 인스턴스의 병렬 실행을 행하여 인스턴스의 고속화를 도모할 수도 있다. 도면에서는 CPU(25)와 스레드와의 대응관계를 1 대 다(one-to-many)의 관계로 하고 있으나, CPU가 복수인 경우에는, CPU와 스레드와의 대응관계는 다 대 다(many-to-many)의 관계가 될 수 있다. 스레드(55a, b … n)에 의한 메소드의 실행은 메소드를 이루는 바이트 코드(byte code)를 CPU(25)의 네이티브 코드(native code)로 변환한 다음에 CPU(25)에 발행함으로써 이루어진다.
Java(등록상표) 스택(56a, b … n)은 스레드(56a, b … n)와 1 대 1의 비율로 존재하고 있고, 프로그램 카운터(도면 중의 PC)와 하나 이상의 프레임을 내부에 갖는다. "프로그램 카운터"는 인스턴스에서 현재 어느 부분이 실행되고 있는가를 나타낸다. "프레임"은 메소드에 대한 1회의 콜에 대해서 할당된 스택형식(stack-type)의 영역이며, 그 1회의 콜 시의 인수가 저장되는 "오퍼랜드 스택"과 콜 된 메소드가 사용하는 "로컬 변수 스택(도면 중의 로컬 변수)"으로 이루어진다. 프레임은 콜이 1회 이루어질 때마다 Java(등록상표) 스택(56a, b … n) 상에 누적되는 것이므로, 어떤 메소드가 자신을 재귀적(再歸的)으로 호출하는 경우에도 이 프레임은 1개 누적되게 된다.
이상이 Java(등록상표) 가상 머신에 대한 설명이다.
<애플리케이션 매니저(37)>
이어서 애플리케이션 매니저(37)에 대하여 설명한다. 애플리케이션 매니저(37)는, Java(등록상표) 가상 머신(36) 내의 워크 메모리 상에서 동작하는 시스템 소프트웨어이며, 타이틀 분기(time branch)가 발생할 때마다, 분기 전 타이틀에서는 실행되고 있지 않으나, 새로운 타이틀에서는 AutoRun의 기동속성을 갖는 애플리케이션을 기동하도록 Java(등록상표) 가상 머신(36)에 지시한다. 그와 동시에, 분기 전 타이틀에서는 실행되고 있었으나, 새로운 타이틀을 생존 구간으로 하지 않는 애플리케이션을 종료시킨다. 이들 기동제어 및 종료제어는 현재 BD-J Object에 서의 애플리케이션 관리테이블을 참조한 상태에서 이루어진다.
<BD-ROM의 구성>
다음에 BD-ROM(110)에 기록되어 있는 데이터에 관하여 설명한다.
먼저, 도 5를 사용하여 BD-ROM(110)의 데이터의 파일 디렉터리 구조에 대하여 설명한다.
도 5에 도시하는 바와 같이, BD-ROM(110)에는 루트 디렉터리 아래에 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)이 있다. 이상의 디렉터리 구조에 의해서 서로 다른 종별의 복수 파일이 BD-ROM 상에 배치되어 있음을 알 수 있다.
AUXDATA 디렉터리에는 파일 sound.bdmv가 저장된다.
<BD-ROM의 구성 ; 1. AVClip >
먼저, 확장자 .m2ts가 부여된 파일에 대하여 설명한다. 도 6은 확장자 .m2ts가 부여된 파일이 어떻게 구성되어 있는가를 모식적으로 나타낸 도면이다. 확장자 .m2ts가 부여된 파일(00001.m2ts, 00002.m2ts, 00003.m2ts …)은 AVClip을 저장하고 있다. AVClip은 MPEG2-트랜스 포트 스트림(MPEG2-Transport Stream) 형식의 디지털 스트림이다. 이 디지털 스트림은 필름 영상, NTSC(National Television Standards Committee) 영상, PAL(Phase Alternation by Line) 처리를 디지털화함으로써 얻어진 디지털 비디오, LPCM(Linear Pulse Code Modulation) 음원, AC-3 음원(sound source), DTS(Digital Surround) 음원을 디지털화함으로써 얻어진 디지털 오디오를(상 1 단째), PES 패킷으로 이루어지는 엘리멘터리 스트림으로 변환하고(상 2 단째), 다시 TS 패킷으로 변환하며(상 3 단째), 동일한 방법으로, 자막 계의 프레젠테이션 그래픽스 스트림(Presentation Graphics(PG) Stream) 및 대화 계의 인터랙티브 그래픽스 스트림(Interactive Graphics(IG) Stream)을(하 1 단째) PES 패킷 열로 변환하고(하 2 단째), 다시 TS 패킷으로 변환하여(하 3 단째), 이들을 다중화함으로써 구성된다.
PG 스트림은 동화상의 재생진행에 따른 자막표시를 실현하는 엘리멘터리 스트림이며, IG 스트림은 동화상의 재생진행에 따른 GUI를 실현하는 엘리멘터리 스트 림이다. 이들 IG 스트림 및 PG 스트림에 대해서는 본 발명의 주안점은 아니므로 설명을 생략한다.
비디오 스트림 중 하나의 PTS로 재생되는 재생단위(픽쳐 등)를 "비디오 프레젠테이션 유닛(Video Presentation Unit)"이라고 한다. 오디오 스트림 중 하나의 PTS로 재생되는 재생단위를 "오디오 프레젠테이션 유닛(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가 된다.
<Clip 정보>
이어서 확장자 .clpi가 부여된 파일에 대하여 설명한다. 확장자 .clpi가 부여된 파일(00001.clpi, 00002.clpi, 00003.clpi …)은 Clip 정보를 저장하고 있다. Clip 정보는 개개의 AVClip에 대한 관리정보이다. 도 7은 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, PCR이 출현할 가능성이 있어서 재생시에 문제가 발생한다. Sequence Info는 STC, ATC가 연속하고 있는 것이 트랜스 포트 스트림 중 어디에서 어디까지인가를 나타내기 위해 설치되어 있다.
Program Info는 프로그램 내용이 일정한 구간(Program Sequence)을 나타내는 정보이다. 프로그램은 동기 재생(synchronous playback)을 위한 시간 축을 서로 공유하는 엘리멘터리 스트림의 집합이다. Program Sequence 정보를 설치해 두는 의의는 프로그램 내용의 변화 점(point of change)을 미리 재생장치에 통지하기 위함이다. 여기에서의 프로그램 내용의 변화 점이란, 비디오 스트림의 PID가 변화하거나, 비디오 스트림의 종류가 SDTV(Standard Definition TeleVision)에서 HDTV(High-Definition TeleVision)로 변화하고 있는 점 등을 말한다.
이어서 Characteristic Point Info에 대하여 설명한다. 도 7 중의 인출선 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은 1개의 엘리멘터리 스트림 상에서 액세스 유닛 딜리미터(Access Unit Delimiter)가 존재하는 엔트리 위치의 패킷 번호(SPN_EP_start)를 엔트리 시각(PTS_EP_start)과 대응시켜서 나타내는 정보이다. 도면 중의 인출선 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는 액세스 유닛(Non-IDR I픽쳐, IDR 픽쳐)의 SPN_EP_start 및 PTS_EP_start의 상위 비트를 나타내는 역할을 가지며, EP_Low는 액세스 유닛(Non-IDR I픽쳐, IDR 픽쳐)의 SPN_EP_start 및 PTS_EP_start의 하위 비트를 나타내는 역할을 갖는다.
도 7 중의 인출선 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를 식별하기 위한 식별자이다.
도 7 중의 인출선 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에 대하여 설명한다. 도 8은 영화의 비디오 스트림에 대한 EP_map의 설정을 나타내는 도면이다. 제 1 단째는 표시순서로 배치된 복수의 픽쳐(MPEG4-AVC에 규정된 B픽쳐, IDR 픽쳐, P픽쳐)를 나타내며, 제 2 단째는 그 픽쳐에서의 시간 축을 나타낸다. 제 4 단째는 BD-ROM 상의 TS 패킷 열을 나타내며, 제 3 단째는 EP_map의 설정을 나타낸다.
제 2 단째의 시간 축에서 시점 t1 ~ t7에 액세스 유닛이 되는 IDR 픽쳐가 존재하는 것으로 한다. 그리고 이들 t1 ~ t7의 시간간격이 1초 정도라고 하면, 영화에 사용되는 비디오 스트림에서의 EP_map은 t1 ~ t7을 엔트리 시각(PTS_EP_start)으로 나타내며, 이에 대응시켜서 엔트리 위치(SPN_EP_start)를 나타내도록 설정된다.
<PlayList 정보>
이어서 PlayList 정보에 대하여 설명한다. 확장자 "mpls"가 부여된 파일(0000.1mpls)은 PlayList(PL) 정보를 저장한 파일이다. PlayList 정보는 MainPath라고 불리는 재생경로와 이에 대응하는 재생정보를 플레이 리스트(PL)로 정의하는 정보이다.
도 9는 PlayList 정보의 데이터 구조를 나타내는 도면이며, 본 도면에 도시하는 바와 같이, PlayList 정보는 MainPath를 정의하는 MainPath 정보(MainPath())와 챕터(chapter)를 정의하는 PlayListMark 정보(PlayListMark())로 이루어진다.
MainPath는 주된 AVClip(main AVClip) 상에 정의되는 재생경로이다. 한편, Subpath는 SubClip 상에 정의되는 재생경로이다. 여기서 SubClip은 동화상인 비디오 스트림을 포함하지 않는 AVClip이다.
<PlayList 정보의 설명 ; 1. MainPath 정보>
먼저 MainPath에 대하여 설명한다. MainPath는 주 영상인 비디오 스트림이나 오디오 스트림에 대하여 정의되는 재생경로이다.
MainPath는 화살표 mp1에 도시하는 바와 같이 복수의 PalyItem 정보 #1 … #m으로 정의된다. PlayItem 정보는 MainPath를 구성하는 하나 이상의 논리적인 재생구간을 정의한다. PlayItem 정보의 구성은 인출선 hs1에 의해 클로즈업되어 있다. 이 인출선에 도시하는 바와 같이, PlayItem 정보는 재생구간의 IN 점 및 Out 점이 속하는 AVClip의 재생구간정보의 파일명을 나타내는 『Clip_Information_file_name』과, AVClip의 부호화 방식을 나타내는 『Clip_codec_identifier』와, 재생구간의 시점을 나타내는 시간정보 『IN_time』과, 재생구간의 종점을 나타내는 시간정보 『OUT_time』 및 『STN_table』로 구성된다.
도 10은 AVClip과 PlayList 정보와의 관계를 나타내는 도면이다. 제 1 단째 는 PlayList 정보가 갖는 시간 축을 나타낸다. 제 2 단째에서 제 5 단째까지는 EP_map에 의해 참조되고 있는 비디오 스트림(도 6에 도시한 것과 동일)을 나타낸다.
PlayList 정보는 PlayItem 정보 #1, #2라는 2개의 PlayItem 정보를 포함하고 있고, 이들 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은 복수 엘리멘터리 스트림의 각각에 대한 entry를 attribute와 대응시킴으로써 구성된다.
도 11은 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_textST_stream_ entries, number_of_IG_stream_entries)를 나타내는 데이터 구조로 되어 있다.
entry-attribute의 세트는 도면 중의 괄호기호 "{"로 도시하는 바와 같이, Play Item에서 재생 가능한 비디오 스트림, 오디오 스트림, PG_textST_stream, IG 스트림의 각각에 대응하고 있다.
entry-attribute의 상세에 대하여 설명한다. 도 11은 entry-attribute의 상세를 나타내는 도면이다.
도 12 (a)는 비디오 스트림에 대응한 entry-attribute의 세트를 나타내는 도면이다.
비디오 스트림에서의 entry는 AVClip을 다중 분리할 때에 당해 비디오 스트림의 추출에 사용되는 PID를 나타내는 『ref_to_stream_PID_of_mainClip』을 포함한다.
비디오 스트림에서의 attribute는 0x02로 설정된 『stream_coding_type』과 비디오 스트림의 표시 비율을 나타내는 『Frame_rate』 등을 포함한다.
도 12 (b)는 오디오 스트림에 대응한 entry-attribute의 세트를 나타내는 도면이다.
오디오 스트림에서의 entry는 AVClip을 다중 분리할 때에 당해 오디오 스트림의 추출에 사용되는 PID를 나타내는 『ref_to_stream_PID_of_mainClip』을 포함한다.
오디오 스트림에서의 attribute는 0x80(LinearPCM), 0x81(AC-3), 0x82(DTS) 중 어느 하나로 설정됨으로써 오디오 스트림의 코딩 타입을 나타내는 『stream_coding_type』과, 대응하는 오디오 스트림의 채널 구성을 나타내며, 멀티 채널 출력의 여부를 나타내는 『audio_presentation_type』과, 대응하는 오디오 스 트림의 언어속성을 나타내는 『audio_language_code』 등으로 이루어진다.
멀티 채널에는 5.1CH의 서라운드 음성 외에 스테레오 음성도 포함되나, 이하의 설명에서는 멀티 채널은 5.1CH의 서라운드 음성만을 의미하는 것으로 설명을 진행한다.
도 12 (c)는 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』로 이루어진다.
도 12 (d)는 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 정보에 대하여 설명한다.
도 13은 PlayList 정보에서의 PlayListMark 정보의 내부 구성을 나타내는 도면이다. 본 도면의 도면 중의 인출선 pm0에 도시하는 바와 같이, PlayListMark 정보는 복수의 PLMark 정보(#1 ~ #n)로 이루어진다. PLmark 정보(PLmark())는 PL 시간 축 중 임의의 구간을 챕터 점(chapter point)으로 지정하는 정보이다. 인출선 pm1에 도시하는 바와 같이, PLmark 정보는 챕터 지정의 대상인 PlayItem을 나타내는 『ref_to_PlayItem_Id』와 그 PlayItem에서의 챕터 위치를 시간표기에 의해 나타내는 『mark_time_stamp』를 포함한다.
도 14는 PlayList 정보에서의 PLMark 정보에 의한 챕터 위치의 지정을 나타내는 도면이다. 본 도면의 제 2 단째에서 제 5 단째는 도 10에 도시한 EP_map과 AVClip을 나타낸다.
본 도면의 제 1 단째는 PLMark 정보와 PL 시간 축을 나타낸다. 이 제 1 단째에는 2개의 PLMark 정보 #1 ~ #2가 존재한다. 화살표 kt1, kt2는 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 정보 및 플레이 리스트 정보는 "정적 시나리오(static scenarios)"로 분류된다. 왜냐하면, 이상의 Clip 정보 및 플레이 리스트 정보에 의해 정적인 재생단위인 플레이 리스트가 정의되기 때문이다. 이상으로 정적 시나리오에 대한 설명을 마친다.
이어서 "동적인 시나리오(dynamic scenarios)"에 대하여 설명한다. 동적 시나리오는 AVClip의 재생제어를 동적으로 규정하는 시나리오 데이터이다. "동적으로"라는 것은 재생장치에서의 상태변화나 사용자로부터의 키 이벤트에 의해 재생제어의 내용을 알 수 있는 것을 말한다. BD-ROM에서는 이 재생제어의 동작환경으로 2개의 모드를 상정하고 있다. 첫 번째는 DVD 재생장치의 동작환경과 매우 유사한 동작환경이며, 코맨드 베이스(command-based)의 실행환경이다. 두 번째는 Java(등록상표) 가상 머신의 동작환경이다. 이들 2개의 동작환경 중 첫 번째는 HDMV 모드라고 불린다. 두 번째는 BD-J 모드라고 불린다. 이들 2개의 동작환경이 있으므로 동적 시나리오는 이 중 어느 하나의 동작환경을 상정하여 기술된다. HDMV 모드를 상정한 동적 시나리오는 Movie Object라고 불린다. 한편 BD-J 모드를 상정한 동적 시나리오는 BD-J Object라고 불린다.
먼저 Movie Object에 대하여 설명한다.
<Movie Object>
Movie Object는 도 5에 도시한 MovieObject.bdmv라는 파일에 저장되며, 내비게이션 코맨드 열(navigation command sequence)을 포함한다.
내비게이션 코맨드 열은 조건 분기, 재생장치에서의 상태 레지스터의 설정, 상태 레지스터의 설정 값 취득 등을 실현하는 코맨드 열로 이루어진다. Movie Object에서 기술 가능한 코맨드를 이하에 설명한다.
1) PlayPL 코맨드
서식 : PlayPL(제 1 인수, 제 2 인수)
제 1 인수는 플레이 리스트의 번호이며, 재생해야할 플레이 리스트를 지정할 수 있다. 제 2 인수는 그 플레이 리스트에 포함되는 PlayItem이나, 그 플레이 리스트에서의 임의의 시각, Chapter 및 Mark를 사용하여 재생개시위치를 지정할 수 있다.
PlayItem에 의해 PL 시간 축 상의 재생개시위치를 지정한 PlayPL 함수를 PlayPLatPlayItem(),
Chapter에 의해 PL 시간 축 상의 재생개시위치를 지정한 PlayPL 함수를 PlayPLatChapter(),
시각정보에 의해 PL 시간 축 상의 재생개시위치를 지정한 PlayPL 함수를 PlayPLatSpecified Time()이라고 한다.
2) JMP 코맨드
서식 : JMP 인수
JMP 코맨드는 현재의 동적 시나리오를 도중에 폐기하고(discard), 인수인 분기 처 동적 시나리오를 실행하는 분기이다. JMP 명령의 형식에는 분기 처 동적 시나리오를 직접 지정하고 있는 직접 참조의 형식과 분기 처 동적 시나리오를 간접 참조하고 있는 간접 참조의 형식이 있다.
Movie Object에서의 내비게이션 코맨드의 기술은 DVD에서의 내비게이션 코맨 드의 기술방식과 매우 유사하므로, DVD 상의 디스크 콘텐츠를 BD-ROM에 이식하는 작업을 효율적으로 행할 수 있다. Movie Object에 대해서는 이하의 국제공개공보에 기재된 선행기술이 존재한다. 상세에 대해서는 이 국제공개공보를 참조하면 된다.
국제공개공보 : WO 2004/074976호 공보
이상으로 Movie Object에 대한 설명을 마친다. 이어서 BD-J Object에 대하여 설명한다.
<BD-J Object>
BD-J Object는 Java(등록상표) 프로그래밍 환경에서 기술된 BD-J 모드의 동적 시나리오이며, 00001~00003.bobj라는 파일에 저장된다.
도 15는 BD-J Object의 내부 구성을 나타내는 도면이다. 애플리케이션 관리테이블(AMT) 및 플레이 리스트 관리테이블(PLMT)을 포함하여 구성된다. Movie Object와의 차이는 BD-J Object에는 코맨드가 직접 기술되어 있지 않다는 점이다. 즉 Movie Object에서 제어순서는 내비게이션 코맨드에 의해 직접 기술되어 있었다. 이에 대해 BD-J Object에서는 Java(등록상표) 애플리케이션에 대한 지정을 애플리케이션 관리테이블에 기재함으로써, 간접적으로 제어순서를 규정하고 있다. 이와 같은 간접적인 규정에 의해 복수의 동적 시나리오에서 제어순서를 공통화하는 제어순서의 공통화를 효율적으로 행할 수 있다.
또, Movie Object에서의 플레이 리스트 재생은 플레이 리스트 재생을 명령하는 내비게이션 코맨드(PlayPI 코맨드)의 기술에 의해 이루어지나, BD-J Object에서의 플레이 리스트 재생은 플레이 리스트 재생순서를 나타내는 플레이 리스트 관리 테이블을 BD-J Object에 포함함으로써 기술할 수 있게 된다.
이 BD-J 모드에서의 Java(등록상표) 애플리케이션에 대하여 설명한다. 여기서 BD-J 모드가 상정하고 있는 Java(등록상표) 플랫폼은 Java(등록상표) 2 Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)과 Globally Executable MHP specification(GEM1.0.2) for package media targets를 모두 실장한 것이다.
이 BD-J 모드에서의 Java(등록상표) 애플리케이션은 xlet 인터페이스를 통해서 Application Manager에 의해 제어된다. xlet 인터페이스는 "loaded", "paused", "active", "destroyed"라는 4개의 상태를 갖는다.
상술한 Java(등록상표) 플랫폼은 JFIF(JPEG)나 PNG, 그 외의 이미지 데이터를 표시하기 위한 표준 Java(등록상표) 라이브러리(standard Java library)를 포함한다. 그러므로, Java(등록상표) 애플리케이션은 HDMV 모드에서 IG 스트림에 의해 실현되는 GUI와는 다른 GUI 프레임 워크(GUI framework)를 실현할 수 있다. Java(등록상표) 애플리케이션에서의 GUI 프레임 워크는 GEM1.0.2에 의해 규정된 HAVi(Home Audio/Video interoperability) 프레임 워크를 포함하며, GEM1.0.2에서의 리모트 컨트롤 내비게이션 기구(remote control navigation mechanism)를 포함한다.
이에 의해, Java(등록상표) 애플리케이션은, HAVi 프레임 워크에 의거한 버튼 표시, 텍스트 표시, 온라인 표시(BBS의 내용)라는 표시를 동화상의 표시와 조합시킨 화면표시를 실현할 수 있고, 리모트 컨트롤을 사용하여 이 화면표시에 대한 조작을 행할 수 있다.
이 Java(등록상표) 애플리케이션의 실체에 해당하는 것이 도 2에서의 BDMV 디렉터리 하위의 BDJA 디렉터리에 저장된 Java(등록상표) 아카이브 파일(00001.jar, 00002.jar)이다. 이하, Java(등록상표) 아카이브 파일에 대해서 도 16을 참조하면서 설명한다.
<Java(등록상표) 아카이브 파일>
Java(등록상표) 아카이브 파일(도 2의 00001.jar, 00002.jar)은 하나 이상의 클래스 파일과 하나 이상의 데이터 파일 등을 하나로 정리함으로써 얻어지는 파일이며, BD-J 모드에서 동작해야 할 Java(등록상표) 애플리케이션을 구성한다.
도 16은 아카이브 파일에 의해 수용되어 있는 프로그램 및 데이터를 나타내는 도면이다. 본 도면에서의 프로그램 및 데이터는 사각형 틀 내에 도시한 디렉터리 구조가 배치된 복수의 파일을 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 모드에서의 동적 시나리오에 대한 설명이다.
<Index.bdmv>
Index.bdmv는 타이틀을 구성하는 Movie Object 또는 BD-J Object를 나타내는 테이블이다.
Title에서 어떤 타이틀의 구성요소가 되는 MovieObject는 어느 것인가, 또는 어떤 타이틀의 구성요소가 되는 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)에서 "서비스"를 생존구간(life cycle)으로 하여 애플리케이션의 기동 및 실행을 행하는 제어를 말한다. 본 실시 예에서의 애플리케이션 관리테이블은 이 "서비스" 대신 BD-ROM에서의 "타이틀"을 생존구간으로 하여 애플리케이션의 기동 및 실행의 제어를 실현한다.
도 17 (a)는 애플리케이션 관리테이블의 내부 구성을 나타내는 도면이다. 본 도면에 도시하는 바와 같이, 애플리케이션 관리테이블은 『life_cycle』과, 『apli_id_ref』와, 『run_attribute』 및 『run_priority』로 이루어진다.
도 17 (b)는 애플리케이션 관리테이블을 구성하는 정보요소의 의미내용을 나타낸다.
『life_cycle』은 애플리케이션의 "생존구간"을 나타낸다.
『apli_id_ref』는 "애플리케이션 식별자"에 대한 참조 값이 기술됨으로써 상기의 생존구간을 갖는 애플리케이션이 어느 것인가를 나타낸다. 애플리케이션 식별자는 Java(등록상표) 아카이브 파일에서 파일명으로 부여된 5자리의 수치 zzzzz로 표현된다. 『apli_id_ref』에는 이 5자리의 수치가 기술된다.
『run_attribute』는 당해 생존구간에서의 애플리케이션의 "기동속성"이 기술된다. 기동속성에는 AutoRun, Present, Susped라는 종별이 있다.
『run_priority』는 당해 생존구간에서의 애플리케이션의 "기동 우선도"가 기술된다. BD-J Object에서는 이들 정보를 사용하여 애플리케이션의 거동을 제어한다.
<생존구간>
여기서 애플리케이션 관리테이블에 규정되는 정보 중 생존구간에 대하여 설명한다.
생존구간은 BD-ROM에 기록된 콘텐츠 전체의 시간 축에서 가상 머신의 워크 메모리 상에서 애플리케이션이 생존할 수 있는 구간을 가리킨다. 워크 메모리에서의 "생존"이란, 그 애플리케이션을 구성하는 xlet 프로그램이 Java(등록상표) 가상 머신 내의 워크 메모리에 판독되어서, Java(등록상표) 가상 머신에 의한 실행을 할 수 있게 되어 있는 상태를 말한다.
Java(등록상표) 가상 머신에서 애플리케이션을 동작시키는 경우, 시간 축의 어디에서 애플리케이션에 의한 서비스를 개시하고, 시간 축의 어디에서 애플리케이션에 의한 서비스를 종료하는가 라고 하는 "서비스의 개시 점·종료 점"을 명확하게 규정하는 것이 중요해진다. 이 서비스의 개시 점·종료 점을 규정하는 것이 애플리케이션 관리테이블에서의 생존구간이다.
한편, DVD-Video와 같은 판독전용 디스크에 공급되는 디스크 콘텐츠는 톱 메뉴 타이틀을 중핵으로 한 구조로 되어 있다. 그 톱 메뉴 타이틀로부터 개개의 저작물로 분기하여 재생을 행하고, 그 후 다시 톱 메뉴 타이틀로 복귀하는 독특한 상태천이를 이룬다. 도 18은 디스크 콘텐츠에서의 상태천이를 나타내는 도면이다. 본 도면에서의 사각 틀은 타이틀이다. 타이틀은 디스크 콘텐츠 특유의 상태천이에서 하나의 "상태(status)"에 해당하는 재생단위이며, 이 타이틀이 Java(등록상표) 애플리케이션의 생존구간으로 취급된다.
타이틀에는 BD-ROM의 로딩 시에 최초로 재생되는 『FirstPlayTitle』, Top-Menu를 구성하는 『Top_menuTilte』, 이들 이외의 일반적인 『Title』이 있다. 또, 도면 중의 화살표 jh1, 2, 3, 4, 5, 6, 7, 8은 타이틀 간의 분기를 상징적으로 나타낸다. 본 도면에 도시된 상태천이란, BD-ROM 로딩 시에 『FirstPlayTitle』이 재생되고, 『Top_menuTitle』로 분기가 발생하여 톱 메뉴에 대한 선택 대기가 되는 것이다.
톱 메뉴에 대한 선택조작이 사용자에 의해 이루어지면, 선택에 따라서 당해 타이틀의 재생을 행하고, 다시 TopMenu Title로 복귀하는 처리를, BD-ROM의 이젝트가 이루어질 때까지 계속해서 반복하는 것이 디스크 콘텐츠 특유의 상태천이이다.
그러면, 도 18과 같은 상태천이를 이루는 디스크 콘텐츠에서 타이틀은 어떻게 생존구간으로서 규정되는 것인가를 설명한다. BD-ROM의 로딩이 이루어진 후, 도 18에서 화살표 jh1, 2, 3, 4 …로 표시된 참조부호의 수치 순으로 분기가 이루어진 후, BD-ROM이 이젝트 된 것으로 한다. 그렇게 하면, BD-ROM이 로딩 되고 나서 이젝트 될 때까지의 연속 시간대를 하나의 시간 축과 동일시할 수 있다. 이 시간 축을 디스크 전체의 시간 축으로 한다. 도 19 (a)는 디스크 전체의 시간 축을 나타내는 도면이며, 도 19 (b)는 이 시간 축에서의 구성을 나타낸다. 도 19 (b)에 도시하는 바와 같이, 디스크 전체의 시간 축은 FirstPlay Title이 재생되고 있는 구간, TopMenu Title이 재생되고 있는 구간, title #1이 재생되고 있는 구간 등으로 이루어진다. 이들 타이틀의 재생구간이 어떻게 규정되어 있는가 하면, 타이틀은 유일한 BD-J Object로 구성되므로, 어느 한 MovieObject 또는 BD-J Object가 유효로 되어 있는 기간을 타이틀의 재생구간이라고 생각할 수 있다.
즉, FirstPlay Title, TopMenu Title 및 기타 타이틀은 모두 동적 시나리오로 구성되므로, 타이틀을 구성하는 BD-J Object 중 어느 하나가 현재 BD-J Object로서 활성화(activated)되어서 재생장치 내에서 해독·실행에 제공되고 있는 기간을 타이틀의 재생구간으로 정의할 수 있다. 도 20 (a)는 BD-ROM 전체의 시간 축에서 식별자 bobj_id에 의해 특정되는 BD-J Object로부터 특정되는 타이틀 재생구간을 나타내는 도면이다. 여기서 식별자 bobj_id에 의해 특정되는 BD-J Object가 하나의 타이틀을 구성하고 있다면, 그 식별자 bobj_id에 의해 특정되는 BD-J Object는 유효하게 되어 있는 BD-ROM 시간 축 상의 1구간을 타이틀의 재생구간으로 생각할 수 있다.
여기서 BD-J Object가 활성화되어 있는 기간의 종기는 타이틀 분기가 이루어질 때까지이다. 즉, 타이틀 분기가 이루질 때까지 실행의 대상으로 되어 있는 동적 시나리오는 현재 BD-J Object로 취급되므로, 그 BD-J Object에서 JumpTitle이 발생할 때까지의 하나의 구간을 타이틀 구간으로 취급한다.
이어서 타이틀 구간과 PL 시간 축과의 관계에 대하여 설명한다. 상술한 바와 같이 MovieObject, BD-J Object에서는 하나의 처리순서로 플레이 리스트 재생순서를 기술할 수 있다. 플레이 리스트 재생순서의 기술이 있으면 상술한 PL 시간 축의 전부 또는 일부가 타이틀 구간에 귀속되게 된다. 도 20 (a)의 일례에서 BD-J Object에 플레이 리스트 관리테이블이 기술되어 있다고 하자. 이 경우, BD-J Object에 대응하는 타이틀 구간에는 도 20 (b)에 도시하는 바와 같이 PL 시간 축이 귀속된다. 이 PL 시간 축에는 복수의 챕터(Chapter#1, #2, #3)가 더 정의될 수 있으므로, BD-ROM 상의 시간 축에는 BD-ROM 전체-타이틀-플레이 리스트-챕터라는 도메인이 존재하게 된다. 이들 도메인을 사용하여 애플리케이션의 생존구간을 기술할 수 있다. 또한, 플레이 리스트 재생은 애플리케이션 실행과 동시에 이루어지므로, 플레이 리스트 재생의 도중에 타이틀 분기가 발생하는 경우가 있다. 이 경우, 하나의 타이틀 재생구간 내에는 플레이 리스트 시간 축 전체가 아니라 플레이 리스트 시간 축의 일부분만이 귀속되게 된다. 즉, 하나의 타이틀의 재생구간에서 플레이 리스트 시간 축의 전체가 귀속되는가, 그 일부분이 귀속되는가는 타이틀 분기가 언제 발생하는가에 따라서 달라진다.
도 21은 도 20 (b)의 시간 축 상에 규정되는 생존구간의 전형을 나타내는 도면이다. 본 도면에 도시하는 바와 같이, 애플리케이션에는 타이틀을 생존구간으로 한 "타이틀 바운더리 애플리케이션(title boundary application)", 타이틀 내에서의 챕터를 생존구간으로 한 "챕터 바운더리 애플리케이션(chapter boundary application)", BD-ROM 전체의 시간 축을 생존구간으로 한 "타이틀 언 바운더리 애플리케이션(title unboundary application)"이라는 3개의 전형이 있다.
이 중 타이틀 바운더리 애플리케이션의 생존구간은 그 타이틀의 식별자를 dl용하여 정의할 수 있다. 또 챕터 바운더리 애플리케이션의 생존구간은 챕터가 속하는 타이틀의 식별자와 그 챕터의 식별자의 세트를 이용하여 정의할 수 있다.
플랫폼이 동작하고 있었다고 해도 타이틀이나 챕터라는 생존구간이 종료되면 리소스(resource)를 애플리케이션으로부터 회수할 수 있다. 리소스 회수의 기회를 보증하므로 플랫폼의 동작을 안정화시킬 수 있다.
가까운 장래에 실시될 디스크 콘텐츠를 제재(題材)로 선정하여, 애플리케이션 관리테이블에서의 생존구간의 기술에 대하여 구체 예를 통하여 설명한다. 여기서 제재로 하는 디스크 콘텐츠는 영상 본편을 구성하는 본편 타이틀(title #1), 온라인 쇼핑을 구성하는 온라인 쇼핑 타이틀(title #2), 게임 애플리케이션을 구성하는 게임 타이틀(title #3)이라는, 성격이 다른 3개의 타이틀을 포함하는 것이다. 도 22는 본편 타이틀, 온라인 쇼핑 타이틀, 게임 타이틀이라는 3개의 타이틀을 포함하는 디스크 콘텐츠를 나타내는 도면이다. 본 도면의 우측에는 Index.bdmv를 기술하고 있고, 좌측에는 3개의 타이틀을 기술하고 있다.
우측의 점선 틀은 각 애플리케이션이 어느 타이틀에 속해 있는가 라고 하는 귀속관계를 나타낸다. 3개의 타이틀 중 title #1은 application #1, application #2, application #3이라는 3개의 애플리케이션으로 이루어진다. title #2는 application #3, application#4라는 2개의 애플리케이션을 포함하고, title #3은 application#5를 포함한다. 도 22의 일례에서 application #3은 title #1, title #2의 쌍방에 의해 기동 된다.
도 22의 점선으로 도시된 귀속관계에서 각 애플리케이션의 생존구간을 그래프화하면 도 23 (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의 애플리케이션 관리테이블은 도 23 (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, application#4를 워크 메모리에서 삭제하는 제어를 행할 수 있다.
또한, title #3의 재생 중에 application#5를 워크 메모리에 로드해 두고, title #3의 재생종료시에 application#5를 워크 메모리에서 삭제하는 제어를 행할 수 있다.
타이틀 간 분기가 있은 경우에도 분기 원(branch source) - 분기 처(branch sestination)에서 생존하고 있는 애플리케이션은 워크 메모리 상에 저장해 두고, 분기 원에는 없고 분기 처에만 존재하는 애플리케이션을 워크 메모리에 판독하면 좋으므로, 애플리케이션을 워크 메모리에 판독하는 횟수는 필요 최저 수가 된다. 이와 같이, 판독 횟수를 적게 함으로써 타이틀의 경계를 의식시키지 않는 애플리케이션, 즉 언 바운더리 한 애플리케이션을 실현할 수 있다.
이어서 애플리케이션의 기동속성에 대하여 더욱 상세하게 설명한다. 기동속성에는 자동적인 기동을 나타내는 「AutoRun」, 자동기동의 대상은 아니나 가상 머신의 워크 메모리에 두어도 좋다는 것을 나타내는 「Present」, 가상 머신의 워크 메모리에는 둘 수 있으나 CPU 파워의 할당은 할 수 없는 「Suspend」가 있다.
「AutoRun」은 대응하는 타이틀의 분기와 동시에 그 애플리케이션을 워크 메모리에 판독하고, 또한 실행하는 취지를 나타내는 속성이다. 어떤 타이틀에서 다른 타이틀로의 분기가 있으면, 애플리케이션 관리를 행하는 관리주체(애플리케이션 매니저)는 그 분기 처 타이틀에서 생존하고 있고, 또한 기동속성이 AutoRun으로 설정된 애플리케이션을 가상 머신의 워크 메모리에 판독하여 실행한다. 이에 의해 그 애플리케이션은 타이틀 분기와 함께 자동으로 기동이 되게 된다.
기동속성 「Present」는 계속 속성이며, 분기 원 타이틀에서의 애플리케이션의 상태를 계속하는 것을 나타낸다. 또, 대응하는 애플리케이션을 실행해도 좋음을 나타내는 속성이다. 기동속성이 「Present」인 경우에는 이 기동속성이 부여된 애플리케이션은 다른 애플리케이션으로부터의 호출이 허가되게 된다. 애플리케이션 관리를 행하는 관리주체(애플리케이션 매니저)는 기동 중인 애플리케이션으로부터 호출이 있으면, 그 애플리케이션의 application ID가 애플리케이션 관리테이블에 기술되어 있고, 기동속성이 「Present」인가 여부를 판정한다. 「Present」이면 그 애플리케이션을 워크 메모리에 로드한다. 한편, 그 호출 처 애플리케이션의 application ID가 애플리케이션 관리테이블에 기술되어 있지 않은 경우에는, 그 애플리케이션은 워크 메모리에 로드되지 않는다. 애플리케이션에 의한 호출은 이 「 Present」가 부여된 애플리케이션에 한정되게 된다. 「Present」는 기동속성을 명시적으로 지정하지 않는 경우에 부여되는 디폴트의 기동속성이므로, 어떤 애플리케이션의 기동속성이 무 지정 「--」인 경우, 그 애플리케이션의 기동속성의 기동속성은 이 Present라는 것을 의미한다.
「Suspend」는 리소스는 할당되어 있으나 CPU 파워는 할당되지 않는 상태에 애플리케이션이 놓이는 것을 말한다. 이와 같은 Suspend는, 예를 들어 게임 타이틀의 실행 중에 사이드 패스(side path)를 경유하는 처리의 실현에 의의가 있다.
도 24는 기동속성이 취할 수 있는 3개의 형태(Present, AutoRun, Suspend)와 직전 타이틀에서의 애플리케이션 상태의 3개의 형태(비 기동, 기동 중, Suspend)가 취할 수 있는 조합을 나타내는 도면이다. 직전 상태가 "비 기동"인 경우, 기동속성이 "AutoRun"이면 분기 처 타이틀에서 그 애플리케이션은 기동되게 된다.
직전 상태가 "비 기동"이고 기동속성이 "Present", "Suspend"이면, 분기 처 타이틀에서 그 애플리케이션은 아무것도 하지 않고 상태를 계속하게 된다.
직전 상태가 "기동 중"인 경우, 기동속성이 "Present", "AutoRun"이면, 분기 처 타이틀에서 그 애플리케이션은 아무것도 하지 않고 상태를 계속하게 된다.
기동속성이 "Suspend"이면, 애플리케이션의 상태는 서스펜드 되게 된다. 직전 상태가 "Suspend"인 경우에 분기 처 타이틀의 기동속성이 "Suspend"이면 Suspend를 유지하게 된다. "Present" 또는 "AutoRun"이면, 분기 처 타이틀에서 그 애플리케이션은 리쥼(resume)하게 된다. 애플리케이션 관리테이블에서 생존구간 및 기동속성을 정의함으로써, 타이틀 재생구간의 진행에 따라서 Java(등록상표) 애플 리케이션을 동작시키는 동기제어를 할 수 있게 되어서, 영상재생과 프로그램 실행을 수반하는 다양한 애플리케이션을 세상에 내보낼 수 있다.
또한 직전 상태가 "Suspend"이고 분기 처 타이틀의 기동속성이 "Present"인 경우에는 직전 상태, 즉 서스펜드 상태를 유지해도 된다.
마지막으로, 각 애플리케이션에 대한 "기동 우선도"에 대하여 설명한다.
이 기동 우선도는 0 ~ 255의 값을 취하며, 메모리 리소스 고갈시나 CPU 부하가 높아졌을 때에 어느 애플리케이션을 강제적으로 종료시키는가, 또 어느 쪽의 애플리케이션에서 리소스를 빼앗는가라는 처리를 애플리케이션 매니저가 행할 때의 판단재료가 된다. 이 경우, 애플리케이션 매니저는 기동 우선도가 낮은 애플리케이션의 동작을 종료하고, 기동 우선도가 높은 애플리케이션의 동작을 계속시키는 처리를 행한다.
또, 기동 우선도는 재생 중인 플레이 리스트에 대한 요구가 경합하는 경우의 애플리케이션 사이의 조정에도 이용된다. 여기서, 어떤 애플리케이션이 어떤 플레이 리스트의 빨리 감기를 하고 있는 것으로 한다. 여기서 다른 애플리케이션이 동일한 플레이 리스트에 대한 포즈(pause) 요구를 하였다고 하면, 이들 애플리케이션에 부여된 기동 우선도를 비교한다. 그리고 빨리 감기를 명령한 애플리케이션의 기동 우선도가 높으면 이와 같은 애플리케이션에 의한 빨리 감기를 계속해서 행한다. 반대로 포즈를 명령한 애플리케이션의 기동 우선도가 높으면 빨리 감기 중에 플레이 리스트의 포즈를 행한다.
이상의 생존구간·기동속성·기동 우선도에 의해 편집(authoring) 시에 가상 머신 상에서 동작할 수 있는 애플리케이션의 수를 소정 수 이하로 제한하도록 규정해 둘 수 있게 된다. 그러므로 애플리케이션의 안정적인 동작을 보증할 수 있다.
<플레이 리스트 관리테이블>
이상이 애플리케이션 관리테이블에 대한 설명이다. 이어서 플레이 리스트 관리테이블(PLMT)에 대하여 설명한다. 플레이 리스트 관리테이블은 애플리케이션의 생존구간에서 각 애플리케이션의 실행과 동시에 행해야하는 재생제어를 나타내는 테이블이다. 애플리케이션의 동작은 불안정한 것이므로 기동의 실패나 이상 종료가 있을 수 있다. 그래서 기동 실패나 이상 종료가 있었던 경우의 Fail Safe 기구로서 본 실시 예에서는 애플리케이션의 생존구간별로 플레이 리스트 관리테이블을 설치하고 있다. 플레이 리스트 관리테이블은 어떤 애플리케이션의 생존구간이 개시되었을 때에 이와 동시에 행해야하는 재생제어를 규정하는 정보이다. 이 재생제어는 플레이 리스트 정보에 의거하는 AVClip 재생이며, 플레이 리스트 정보에 의한 재생제어를 동시에 행함으로써 애플리케이션의 실행과 플레이 리스트 재생이 동시에 이루어지게 된다. 플레이 리스트 관리테이블은 애플리케이션의 생존구간별로 설치되는 것으로 하였으나, 플레이 리스트 관리테이블이 설치되는 애플리케이션은 타이틀 바운더리의 애플리케이션에 한정된다. 왜냐하면, 타이틀 언 바운더리 애플리케이션은 전체 타이틀을 생존구간으로 하고 있으므로, 애플리케이션의 실행과 동시에 플레이 리스트 재생을 행하는 제어는 적합하지 않기 때문이다.
챕터 바운더리 애플리케이션은 하나의 플레이 리스트 내의 챕터에서부터 애플리케이션 실행을 개시한다는 전제하에서 생존구간이 규정되어 있으므로, 플레이 리스트 재생을 규정할 필요는 없기 때문이다. 이상의 사항에 의해 플레이 리스트 관리테이블은 하나 이상의 타이틀로 이루어지는 생존구간으로 정의되게 된다.
도 25 (a)는 플레이 리스트 관리테이블의 내부 구성을 나타내는 도면이다. 본 도면에 도시하는 바와 같이, 플레이 리스트 관리테이블은 『PL_id_ref』와 『Playback_Attribute』로 이루어진다.
도 25 (b)는 플레이 리스트 관리테이블을 구성하는 정보요소의 의미 내용을 나타낸다.
『PL_id_ref』는 플레이 리스트 식별자에 대한 "참조 값(reference value)"이 기술됨으로써 애플리케이션의 생존구간에서 재생할 수 있게 되는 플레이 리스트가 어느 것인가를 나타낸다. 플레이 리스트 식별자는 파일 YYYYY.MPLS에서 파일명으로서 부여된 5자리의 수치 YYYYY로 표현된다. 이 YYYYY가 기술됨으로써 『PL_id_ref』는 대응하는 타이틀에서 재생을 할 수 있는 플레이 리스트가 어느 것인가를 나타낸다.
『Playback_Attribute』는 애플리케이션 관리테이블에서의 기동속성에 따른 속성이며, 『PL_id_ref』에 기술된 플레이 리스트를 타이틀 개시시에 어떻게 재생하는가를 규정하는 재생속성이다. 플레이 리스트에 대한 재생속성에는 『AutoPlay』, 『Present』라는 종별이 있다.
『AutoPlay』는 대응하는 타이틀의 분기와 동시에 그 플레이 리스트를 재생시킨다는 취지를 나타내는 속성이다. 어떤 타이틀에서 다른 타이틀로의 분기가 있으면, 애플리케이션 관리를 행하는 관리주체(애플리케이션 매니저)는 그 분기 처 타이틀에서 재생이 가능하고, 또한 재생속성이 AutoPlay로 설정된 플레이 리스트의 재생을 개시한다. 이에 의해 기동속성이 AutoPlay로 설정된 플레이 리스트는 타이틀 분기와 함께 자동으로 기동되게 된다.
『Present』는, 기동속성에서의 Present와 마찬가지로 계속속성이며, 분기 원 타이틀에서의 플레이 리스트의 상태를 계속하는 것을 나타낸다. 또, 대응하는 플레이 리스트를 재생해도 좋음을 나타내는 속성이다. 예를 들어, 연속하여 재생되는 2개의 타이틀이 있고, 앞의 타이틀(preceding title) 측의 플레이 리스트 관리테이블에서는 어떤 플레이 리스트의 재생속성이 AutoPlay로 설정되고, 현재 타이틀 측의 플레이 리스트 관리테이블에서는 그 플레이 리스트의 재생속성이 Present로 설정되어 있는 것으로 한다. 여기서 플레이 리스트의 재생시간이 2시간 길이이고, 이 중 1시간이 경과한 시점에서 분기가 발생하였다고 하자. 이 경우, 현재 타이틀에서는 재생속성이 Present로 설정되어 있으므로, 현재 타이틀에서 그 플레이 리스트는 1시간이라는 재생완료구간의 직후부터 재생되게 된다. 이와 같이 재생속성을 Present로 설정해 두면, 타이틀 간의 분기가 있은 경우에도 플레이 리스트 재생을 그 나머지 부분부터 개시할 수 있다. 이에 의해 서로 분기하는 일련의 타이틀에서 공통의 플레이 리스트를 재생하는 "타이틀 간에서의 플레이 리스트 재생의 공통화"를 용이하게 실현할 수 있다. 또 분기 처 타이틀이 복수 있는 경우, 이들 복수 타이틀의 재생속성을 모두 Present로 해 두면, 복수 중 어느 하나로 분기하였다고 해도 하나의 공통의 플레이 리스트 재생을 계속시킬 수 있다.
또한, 타이틀의 경계는 심리스 재생을 보증하지 않아도 되므로, 상술한 바와 같이 복수 타이틀 사이에서 하나의 플레이 리스트를 재생하려고 하는 경우에는, 분기 전후에서 플레이 리스트 재생을 중단시키는 것이 허용된다.
또, 재생속성이 「Present」인 경우, 이 재생속성이 부여된 플레이 리스트는 다른 애플리케이션으로부터의 재생요구에 의해 재생되게 된다. 애플리케이션 관리를 행하는 관리주체(애플리케이션 매니저)는 기동 중의 애플리케이션으로부터 플레이 리스트의 재생요구가 있으면, 요구를 수신한 플레이 리스트의 PL_id_ref가 플레이 리스트 관리테이블에 기술되어 있고 재생속성이 「AutoPlay」 또는 「Present」 중 어느 하나인가 여부를 판정한다. 「AutoPlay」또는 「Present」 중 어느 하나이면 그 플레이 리스트를 재생한다. 한편, 요구를 수신한 플레이 리스트의 PL_id_ref가 플레이 리스트 관리테이블에 기술되어 있지 않은 경우에는, 그 플레이 리스트를 재생하지 않는다. 애플리케이션의 요구에 의한 플레이 리스트 재생은 이 「AutoPlay」 또는 「Present」 중 어느 하나가 부여된 플레이 리스트에 한정되게 된다. 「Present」는 재생속성을 명시적으로 지정하지 않는 경우에 부여되는 디폴트의 재생속성이므로, 어떤 플레이 리스트의 재생속성이 무 지정 「--」이면 그 플레이 리스트의 재생속성은 이 Present라는 것을 의미한다.
도 26은 플레이 리스트 관리테이블 및 애플리케이션 관리테이블에 의해 규정되는 타이틀의 구체 예를 나타낸다. 도 26의 제 1 단째는 타이틀의 재생 영상을 나타내고, 제 2 단째는 타이틀의 시간 축을 나타낸다. 제 3 단째는 PLMT에 의해 재생이 규정되는 플레이 리스트를 나타내며, 제 4 단째는 애플리케이션 실행을 나타낸다. 제 4 단째에서 application #1은 타이틀의 개시와 함께 기동하고 있고, 그 후, 시점 t1에서 동작상태가 된다. 한편 PlayList #1은 타이틀의 개시와 함께 재생이 개시되어 있다. PlayList #1의 재생은 타이틀의 개시와 동일한 시점에서 개시되어 있으므로, 제 1 단째의 좌측에 도시하는 바와 같이, 타이틀의 재생개시 직후부터 애플리케이션이 동작상태가 될 때까지의 스타트 업 딜레이(start-up delay)에서 플레이 리스트의 재생화상 gj1이 풀 스크린으로 표시된다. 플레이 리스트 관리테이블의 재생속성을 "AutoPlay"로 설정해 둠으로써, Java(등록상표) 애플리케이션이 동작상태가 될 때까지 5 ~ 10초라는 시간이 걸렸다고 해도, 그동안 "적어도 무엇인가가 표시되고 있는 상태"가 된다. 이 "적어도 무엇인가가 표시되고 있는 상태"에 의해 타이틀 실행개시시의 스타트 업 딜레이를 보충할 수 있다.
한편, application #1은 시점 t1에서 동작상태가 되므로, 플레이 리스트 재생화상을 자 화면(child screen), 애플리케이션의 실행화상을 친 화면(parent screen)으로 한 합성화상 gj2가 시점 t1에서 표시되게 된다. 애플리케이션의 실행화상은 Start 버튼, continue 버튼, POWER 인디케이터(indicator)를 배치한 게임용 GUI 프레임 워크이며, 이와 같은 GUI 프레임 워크의 묘화처리를 Java(등록상표) 애플리케이션이 실행함으로써 이루어진다.
이와 같은, 플레이 리스트의 재생 영상과 Java(등록상표) 애플리케이션의 GUI 프레임 워크를 조합시킨 재생 영상을 이루는 타이틀을 구성할 수 있는 것이 PLMT의 특징이다.
도 27은 현재 타이틀이 취할 수 있는 3개의 형태(플레이 리스트 관리테이블 없음(ⅰ), 플레이 리스트 관리테이블이 있으면서 AutoPlay(ⅱ), 플레이 리스트 관 리테이블이 있으면서 무 지정(ⅲ))와 직전 타이틀에서의 플레이 리스트의 상태(비 재생상태, 재생 중 상태)가 취할 수 있는 6종류의 조합을 나타내는 도면이다.
본 도면에서의 6종류의 조합 중, "직전 상태 = 비 재생상태"와, "현재 타이틀 = 플레이 리스트 관리테이블이 있으면서 현재 타이틀의 재생속성 = AutoPlay"의 조합에서 분기 처 타이틀에서의 플레이 리스트의 재생은 자동으로 개시하게 된다.
또 "직전 상태 = 재생 중 상태"와 "현재 타이틀 = 플레이 리스트 관리테이블 없음"의 조합에서 분기 처 타이틀에서의 플레이 리스트의 재생은 자동으로 정지하게 된다.
그리고 이들 2개의 조합 이외에는 모두 이전의 타이틀의 상태가 계속되게 된다. 플레이 리스트 관리테이블에 의거한 플레이 리스트 재생의 개시는, 분기 원 타이틀에서 비 재생상태이며, 분기 처 타이틀에서 AutoPlay 속성이 부여되어 있는 경우에 한정되므로, 타이틀의 분기가 발생할 때마다 플레이 리스트 재생을 개시시킬 필요는 없다. 타이틀 간의 분기가 다수 발생하였다고 해도 플레이 리스트 재생을 개시시키는 횟수를 필요 최저 수로 할 수 있다.
플레이 리스트 관리테이블 및 애플리케이션 관리테이블의 기술 예에 대하여 도 28 (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가 기술되어 있는 것으로 한다. 도 28 (b)는 도 28 (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)할 수 있다. 이와 같이 애플리케이션 관리테이블 및 플레이 리스트 관리테이블을 사용함으로써, 분기를 계기로 하여 플레이 리스트 재생을 전환하는 처리를 편집단계에서 규정해 둘 수 있다.
또, 도 28에서는 application #1, application #2, application #3에는 각각 200, 128, 200의 기동 우선도가 부여되어 있다. 이들 기동 우선도를 부여함으로써 PlayList #1, PlayList #2에 대한 제어요구가 경합하는 경우의 조정을 행하게 할 수 있다. 여기서 application #1이 PlayList #1에 대해 빨리 감기를 명령하고 있는 것으로 한다. 한편, application #2가 포즈 요구를 행하였다고 하자. 이 경우, 애플리케이션 관리테이블에 각 애플리케이션에 대한 기동 우선도가 규정되어 있으므로, 이 기동 우선도에 따라서 양 애플리케이션에 대한 조정이 이루어지게 된다. 그 결과, application #2에 의한 요구를 거절(rejecting)하고 application #1에 의한 제어를 계속하는 처리를 편집시에 규정해 둘 수 있다. 기동 우선도를 플레이 리스트 관리테이블과 병행하여 이용함으로써 플레이 리스트에 대한 제어가 경합하는 경우의 조정도 재생장치가 행하도록 할 수 있다.
플레이 리스트 관리테이블의 기술에 대한 다른 구체 예에 대하여 설명한다. 도 29 (a)는 플레이 리스트 관리테이블의 다른 기술 예를 나타내는 도면이다. 본 도면에서 상정하고 있는 것은 2개의 연속하는 타이틀(title #1, title #2)에서 title #1 측의 플레이 리스트 관리테이블에는 AutoPlay 플레이 리스트로 PalyList #1이 기술되고, 재생 가능한 플레이 리스트로 PlayList #2가 기술되며, title #1 측의 애플리케이션 관리테이블에는 AutoPlay 애플리케이션인 application #1과 실행 가능한 애플리케이션으로 application #2가 기술되어 있다. 한편, title #2 측의 플레이 리스트 관리테이블에는 재생 가능한 플레이 리스트로 PlayList #2, PlayList #3이 기술되고, 애플리케이션 관리테이블에는 AutoRun 애플리케이션으로 application #3이 기술되어 있다. 도 29 (b)는 도 29 (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은 AutoPlay 속성으로 되어 있다. 그러므로 PlayList #1은 title #1의 개시시에 자동으로 재생된다.
title #1 측의 플레이 리스트 관리테이블에는 PlayList #1 외에 PlayList #2가 재생 가능하다고 기술되어 있으므로, application #1은 PlayList #1의 재생을 정지시키고, 대신에 PlayList #2의 재생을 요구함으로써 플레이 리스트의 교대를 실행할 수 있다.
title #2 측의 플레이 리스트 관리테이블에는 재생 가능한 플레이 리스트로 PlayList #2, PlayList #3이 기술되어 있다. 그리고 AutoPlay 속성이 부여된 플레이 리스트는 없다. 그러므로 만일 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(등록상표) 애플리케이션을 동작시키는 동기제어를 할 수 있게 되어서, 영상재생과 프로그램의 실행에 따른 다양한 애플리케이션을 세상에 내보낼 수 있다.
<동작>
다음에, 본 실시 예의 재생장치(100)의 BD-ROM(110)을 로드하여 동화상이 재 생되거나 또는 메뉴가 표시될 때까지의 동작을 도 30에 도시한 플로차트를 이용하여 설명한다. 당해 동작은 애플리케이션 매니저(37)에 의한 처리이기도 하다.
도 30에 도시하는 바와 같이, 먼저 Title jump가 이루어졌는가 여부를 판정한다(스텝 S 1).
Tilte jump가 있은 경우(스텝 S 1의 YES)에는 타이틀 전환을 실행하고(스텝 S 7), 다음에 현재 타이틀에 대응하는 BD-JObject에 PLMT가 존재하는가 여부를 확인한다(스텝 S 8).
PLMT가 존재하는 경우에는(스텝 S 8의 YES), 앞의 타이틀에서는 PLMT에 기재되어 있지 않았으나 현재 타이틀에서는 PLMT에 기재되어 있고 Auto Play 속성이 부여되어 있는 플레이 리스트의 재생을 개시한다. PLMT가 존재하지 않는 경우에는(스텝 S 8의 NO), 앞의 타이틀에서는 PLMT에 기재되어 있었으나 현재 타이틀에서는 PLMT에 기재되어 있지 않은 Auto Play 속성이 부여되어 있는 플레이 리스트의 재생을 정지한다.
다음에, 현재 타이틀에 대응하는 애플리케이션 관리테이블이 있는가 여부를 판단한다(스텝 S 11).
애플리케이션 관리테이블이 있은 경우(스텝 S 11의 YES)에는, 앞의 타이틀을 생존구간으로 하고 있지 않으나 현재 타이틀을 생존구간으로 하고 있는 Java(등록상표) 애플리케이션 중 Auto Run 속성이 부여되어 있는 애플리케이션을 기동한다. 애플리케이션 관리테이블이 없는 경우(스텝 S 11의 NO)에는, 앞의 타이틀을 생존구간으로 하고 있으나 현재 타이틀을 생존구간으로 하고 있지 않은 애플리케이션을 종료한다.
이어서, 애플리케이션의 기동에 성공하였는가 여부를 판단한다(스텝 S 14). 애플리케이션의 기동에 성공한 경우(스텝 S 14의 YES)에는, 비디오 플레인(5) 및 스틸 플레인 제어부(17)에 대해서 Auto Play 속성이 부여되어 있는 플레이 리스트의 재생화상의 쿼터(quarter) 화의 지시를 실행한다. 또, 당해 지시를 수신한 스틸 플레인 제어부(17)는 스틸 플레인(16)으로부터의 스틸 데이터의 출력을 실행한다(스텝 S 15). 그리고 텔레비전(130)에는 스틸 플레인(16)의 스틸 데이터도 합성된 화상이 표시된다. 애플리케이션의 기동에 실패한 경우(스텝 S 14의 NO)에는, 스텝 S 23으로 이행하여 이후의 처리를 실행한다.
Title Jump가 발생하지 않은 경우(스텝 S 1의 NO)에는 메인 애플리케이션이 종료하였는가 여부를 검출한다(스텝 S 2).
메인이 되는 애플리케이션이 종료한 경우(스텝 S 2의 YES)에는 당해 애플리케이션이 정상으로 종료하였는가 여부를 판단한다(스텝 S 5). 정상으로 종료한 경우(스텝 S 5의 YES)에는 스텝 S 1로 복귀하여 이후의 처리를 실행한다.
메인이 되는 애플리케이션이 이상 종료한 경우(스텝 S 5의 NO)에는 Auto Play PL의 재생중이었는가 여부를 확인한다(스텝 S 21). 재생 중이었던 경우(스텝 S 21의 YES)에는, CPU(25)는 Auto Play PL의 재생화상을 풀 스크린화하도록 비디오 플레인(5)의 데이터를 풀 스크린 사이즈로 출력시킨다. 또, 스틸 플레인 제어부(17)에 대해서도 동일한 지시를 하고, 당해 지시를 수신하여, 스틸 플레인 제어부(17)는 스틸 플레인(16)에 저장되어 있는 스틸 데이터의 출력을 억지한다(스텝 S 22). 그리고 텔레비전(130)에는 스틸 데이터가 합성되어 있지 않은 합성화상이 표시된다.
그리고 재기동 카운터가 0인가 여부를 판정한다(스텝 S 23). 여기서 재기동 카운터는 애플리케이션의 재기동 횟수를 규정하기 위한 제어변수이다. 재기동 카운터가 0인 경우(스텝 S 23의 YES)에는 스텝 S 1로 복귀하여 이후의 처리를 실행한다. 재기동 카운터가 0이 아닌 경우(스텝 S 23의 NO)에는 재기동 카운터를 디크리먼트(decrement) 하고, 스텝 S 12로 이행하여 이후의 처리를 실행한다. 스텝 S 23, S 24의 순서를 밟음으로써 애플리케이션의 기동을 보증한다. 또한 재기동 카운터는 본 플로차트의 기동시에 리셋 된다.
메인이 되는 애플리케이션이 종료하지 않은 경우(스텝 S 2의 NO)에는 Auto Play 속성이 부여되어 있는 플레이 리스트의 재생이 종료하였는가 여부를 판단한다(스텝 S 3). Auto Play 속성이 부여되어 있는 플레이 리스트의 재생이 종료한 경우(스텝 S 3의 YES)에는 스텝 S 1로 복귀하여 이후의 처리를 실행한다. Auto Play 속성이 부여되어 있는 플레이 리스트의 재생이 종료하지 않은 경우(스텝 S 3의 NO)에는 BD 드라이버(1)에 BD-ROM이 있는가 여부를 검출한다(스텝 S 4).
BD 드라이버(1)에 아직 BD-ROM이 존재하는 경우(스텝 S 4의 YES)에는 스텝 S 1로 복귀하여 이후의 처리를 실행한다. BD 드라이버(1)에 BD-ROM이 존재하지 않는 경우(스텝 S 4의 NO)에는 전체 애플리케이션의 종료 지시를 실행하여(스텝 S 6) 종료한다.
이상이 BD-ROM(110)이 재생장치(100)에 장착되고 나서 인출될 때까지의 동작 이다. 여기에서 설명한 바와 같이, 재생화상이 풀 스크린인 경우와 쿼터인 경우에 스틸 플레인(16)으로부터의 데이터의 출력의 여부를 결정한다. 풀 스크린인 경우에는, 스틸 플레인(16)의 데이터의 합성은 필요하지 않으므로 출력하지 않으며, 이렇게 함으로써 스틸 플레인(16)의 판독에 사용되는 메모리 버스의 밴드 폭을 비워둘 수 있다.
<제 2 실시 예>
다음에 본 발명의 제 2 실시 예에 대하여 도면을 참조하면서 설명한다.
제 2 실시 예에서는 BD 애플리케이션에서 더 풍부한 인터랙티브성(interactivity)을 실현하기 위해서, Java(등록상표)와 같은 프로그래밍 환경을 도입하는 동시에, 스틸 플레인 또는 PG 플레인으로부터의 데이터의 출력을 제어함으로써 메모리 버스의 밴드 폭을 유효하게 활용하는 내용을 제시한다. 기본적으로는 제 1 실시 예에 의거한 내용이며, 확장 또는 다른 부분에 대한 설명을 한다.
<재생장치(100)의 하드웨어 구성>
재생장치(100)에 대해서는, 제 1 실시 예와 달리, PG 플레인 제어부(28)가 추가되어 있다. 여기에서는 PG 플레인 제어부(28)의 기능에 대하여 설명한다. 그외의 각 부에 대해서는 제 1 실시 예에서 설명한 것과 동일하다.
PG 플레인 제어부(28)는 PG 플레인(14)으로부터의 데이터의 출력을 제어하는 기능을 갖는다. 구체적으로는, CPU(25)에서 비디오 플레인(5)에 대한 스케일링 지시를 수신하여, 당해 스케일링 지시가 텔레비전(130) 전체에 대한 표시지시인 풀 스케일링인 경우에는 PG 플레인(14)으로부터의 데이터를 출력시킨다. 그리고 스케 일링 지시가 풀 스케일링의 1/4인 쿼터 스케일링인 경우에는 PG 플레인(14)으로부터의 데이터의 판독을 억제한다.
<동작>
도 32는 제 2 실시 예에서 애플리케이션의 요구에 의거하여 PG 플레인(14) 및 스틸 플레인(16)으로부터의 데이터의 출력제어를 행하는 동작을 나타낸 플로차트이다.
도 32에 도시하는 바와 같이, 먼저 애플리케이션으로부터 비디오 스케일링이 요구되면, CPU(25)는 비디오 프로세서(도시 생략)에 비디오 스케일링을 지시한다(스텝 S 101).
이어서, 비디오 프로세서는 비디오 스케일링이 성공하였는가 여부를 CPU(25)에 통지한다(스텝 S 102). 비디오 스케일링이 성공한 경우(스텝 S 102의 YES)에는 당해 스케일링 지시가 텔레비전(130)의 표시화면 전체에 대한 표시지시인 풀 스케일링 지시인가 여부를 판정한다(스텝 S 103).
풀 스케일링 지시인 경우(스텝 S 103의 YES)에는, CPU(25)는 스틸 플레인 제어부(17)에 대해서 스틸 플레인(16)으로부터의 데이터의 출력을 억제하도록 지시한다(스텝 S 104). 또, CPU(25)는 PG 플레인 제어부(28)에 대해서 PG 플레인(14)으로부터의 데이터의 출력을 실행하도록 지시하고(스텝 S 106) 종료한다.
풀 스케일링 지시가 아닌 경우(스텝 S 103의 NO), 즉 비디오 스케일링의 지시가 풀 스케일링의 1/4인 쿼터 스케일링인 경우에는, CPU(25)는 스틸 플레인 제어부(17)에 대해서 스틸 플레인(16)으부터의 데이터의 출력을 실행하도록 지시한다 (스텝 S 105). 또, CPU(25)는 PG 플레인 제어부(28)에 대해서 PG 플레인(14)으로부터의 데이터의 출력을 억제하도록 지시하고(스텝 S 107) 종료한다.
또한, 스텝 S 102에서 비디오 스케일링에 실패한 경우(스텝 S 102의 NO)에도 본 플로차트를 종료한다.
이상과 같이 애플리케이션에 의한 전체 화면에 대한 비디오 스케일링이 성공한 경우에는 스틸 플레인(16)으로부터의 데이터의 판독을 억제하고, PG 플레인(14)으로부터의 데이터의 판독을 실행할 수 있다. 또, 애플리케이션에 의한 전체 화면의 1/4 사이즈에 대한 비디오 스케일링이 성공한 경우에는 스틸 플레인(16)으로부터의 데이터의 판독을 실행하고, PG 플레인(14)으로부터의 데이터의 판독을 억제할 수 있다.
PG 플레인(14)에 관해서도, 여기서 설명한 바와 같이 비디오 스케일링에 의거한 판독의 억제를 행하고, 비디오 스케일링이 쿼터 스케일링인 경우에는 데이터의 출력을 억제함으로써 당해 출력에 사용할 예정이었던 메모리 버스의 밴드 폭을 비워둘 수 있다.
<제 3 실시 예>
제 1 실시 예에서는 스틸 플레인(16)의 출력제어를 행하여, 스틸 플레인(16)의 데이터의 출력이 필요하지 않은 경우에는 메모리 버스의 밴드 폭을 그 분량만큼 비워둘 수 있다는 것을 설명하였다.
제 3 실시 예에서는 메모리 버스의 밴드 폭 및 메모리 영역을 유효하게 활용할 수 있는 다른 방법을 설명한다. 여기서는 제 1 실시 예와는 다른 부분에 대해서 만 기술한다.
제 1 및 제 2 실시 예에서 설명한 바와 같이, 스틸 플레인(16)으로부터의 데이터의 출력은, 비디오 스케일링이 풀 스케일인 경우에는 스틸 플레인(16)으로부터의 데이터의 출력을 억제하고, 비디오 스케일링이 쿼터 사이즈인 경우에는 스틸 플레인(16)으로부터의 데이터의 출력을 실행한다.
또, PG 플레인(14)에 관해서도 비디오 스케일링에 의거한 출력제어를 실행하는 것을 제 2 실시 예에서 기술하였다. 상술한 바와 같이 PG 플레인(14)에 관해서는, 스틸 플레인(16)의 경우와는 반대로 비디오 스케일링이 풀 스케일인 경우에는 데이터의 출력을 실행하고, 비디오 스케일링이 쿼터 사이즈인 경우에는 데이터의 출력을 억제한다.
즉, PG 플레인(14) 및 스틸 플레인(16)으로부터의 데이터의 출력에 관해서는 배타적이라고 할 수 있으며, 일 측이 출력을 실행하고 있으면 타 측은 출력을 실행하지 않는 구성이 된다.
따라서, 제 3 실시 예에서는 제 1 실시 예와는 달리, PG 플레인(14)과 스틸 플레인(16)에서 사용하는 메모리 영역을 공유한다. 이 경우, 애플리케이션으로부터의 비디오 스케일링에 관한 지시가 풀 스케일인 경우에는 당해 메모리 영역은 PG 플레인(14)용의 메모리 영역으로 사용된다. 그리고 비디오 스케일링에 관한 지시가 쿼터 사이즈인 경우에는 당해 메모리 영역은 스틸 플레인(16)으로 이용한다. 구체적으로는, PG 플레인(14)과 스틸 플레인(16)은 메모리의 동일 어드레스의 영역을 공유하게 된다.
이렇게 함으로써, 실질적으로 1개 분의 플레인의 메모리 영역을 비워둘 수 있어서, 그 메모리 영역을 다른 용도로 사용할 수 있다. 예를 들어, 스틸 플레인(16)에 표시할 JPEG 데이터를 압축한 상태로 저장해 두고, 스틸 플레인(16)으로부터의 데이터의 출력이 필요한 경우에는 압축해 둔 JPEG 데이터를 전개하여 스틸 플레인에 기록하는 구성으로 해도 된다.
또, 데이터의 판독 시에 대해서도 실질적으로 액세스하는 메모리 영역이 플레인 1개 분량만큼 감소하고 있는 것과 같으며, 메모리 버스의 밴드 폭도 그 분량만큼 비게 된다고 할 수 있다.
<보충>
상기 실시 예에 의거하여 본 발명의 재생장치에 관해서 설명을 하였으나, 본 발명의 실시 예는 상술한 것에 한정되는 것은 아니다. 이하, 그 변형 예에 대하여 설명한다.
(1) 상기 실시 예에서는 재생장치를 BD-ROM 재생장치로 하여 설명을 하였으나, 이는 특별히 BD-ROM 재생장치에 한정되는 것은 아니며, DVD 플레이어 등이라도 좋다.
(2) 상기 실시 예에서는, 스틸 플레인 제어부(17)는 비디오 플레인의 스케일 변경이 이루어지는가 여부에 의거하여 스틸 플레인으로부터의 스틸 데이터의 판독을 행하는가 여부를 판단하였으나, 자막 데이터를 저장하기 위한 PG 플레인에 합성해야하는 데이터가 있는가 여부에 의해서 판단해도 된다.
자막 데이터는, 기본적으로 풀 스크린 표시를 행하기 위한 폰트 사이즈로 BD-ROM(110)에 기억되어 있으며, 스케일을 변경하여 축소한 경우에는 글자가 일그러지는(distorted) 현상이 있으므로, PG 플레인을 합성하는 경우에는 반드시 풀 스크린으로 표시가 이루어진다. 따라서 스틸 플레인 제어부(17)는 PG 플레인이 있는 경우에는 풀 스크린으로 표시가 이루어지는 것으로 판단하며, 이때에는 스틸 플레인으로부터의 스틸 데이터의 판독을 행하지 않도록 해도 된다.
(3) 상기 제 1 실시 예에서는, 동화상이 풀 스크린 표시인 경우에는 스틸 플레인의 판독에 사용될 예정이었던 메모리 버스의 밴드 폭을 비워두는 것으로 하였다. 이 빈 메모리 버스의 밴드 폭은 당연히 그 외의 용도로 이용해도 된다.
예를 들어, 스틸 플레인의 판독 대신에, 비디오 플레인에 동화상용의 화상 데이터를 기록하는 용도에 사용하거나, 혹은 IG 플레인에 GUI 화상을 기록하기 위한 용도에 사용할 수도 있다. 당해 구성을 구비함으로써 재생장치는 기록 및 판독 사이클을 빠르게 할 수 있어서, 텔레비전에서의 화상 표시의 지연을 되도록 억제할 수 있게 된다.
(4) 상기 실시 예에서는 비디오 스트림은 BD-ROM 규격의 AVClip이었으나, DVD-Video 규격, DVD-Video Recording 규격의 VOB(VideoOBject)라도 좋다. VOB는 비디오 스트림 및 오디오 스트림을 다중화하여 얻어진 ISO/IEC13818-1 규격 준거의 프로그램 스트림이다. 또, AVClip에서의 비디오 스트림은 MPEG4나 WMV 방식이라도 좋다. 또한, 오디오 스트림은 Linear-PCM 방식, Dolby-AC3 방식, MP3 방식, MPEG-AAC 방식, dts 방식이라도 좋다.
(5) 상기 실시 예에서는 MPEG4-AVC(H.264나 JVT라고도 불린다)에 의거하여 설명을 하였으나, MPEG2 비디오 스트림이라도 좋고, 또 그 외의 형식(VC-1 등)의 화상인 경우에도 단독으로 디코드할 수 있는 화상이라면 용이하게 응용할 수 있다.
(6) 상기 실시 예에서는 비디오 플레인이 풀 스크린인 경우에 대해서만 스틸 플레인을 합성하지 않는 것으로 하였으나, 이는 스틸 플레인과 비디오 플레인이 함께 통상 풀 스크린 사이즈로 준비되기 때문이다. 그러나 비디오 플레인 및 스틸 플레인이 함께 풀 스크린 사이즈가 아니어도, 비디오 플레인의 데이터가 스틸 플레인의 데이터 전부를 덮어서 감추면 스틸 플레인의 합성을 실행하지 않는 구성으로 해도 된다.
(7) 상기 실시 예에서는 비디오 플레인, 즉 동화상의 스케일링을 행할 때에 풀 스케일로 하는가 쿼터로 하는가에 따라서 스틸 플레인(16)으로부터의 데이터의 출력을 제어하였으나, 비디오 스케일링 시가 아니라도 스틸 플레인(16)으로부터의 데이터의 출력제어를 행해도 된다.
이 경우, 애플리케이션에 스틸 플레인 제어부(17)에 대한 데이터의 출력의 억제 혹은 실행 기능을 갖게 한다. 이렇게 함으로써, 비디오 스케일링 시뿐만 아니라 다른 때에도 스틸 플레인(16)으로부터의 데이터의 출력제어를 실행할 수 있게 된다.
또, 제 2 실시 예에서, PG 플레인(14)으로부터의 데이터의 출력제어에 관해서도, 비디오 스케일링 시뿐만 아니라 다른 때에도 애플리케이션에 PG 플레인 제어부(28)에 대한 출력의 제어 혹은 실행의 기능을 갖게 해도 된다. 이렇게 함으로써 비디오 스케일링 시뿐만 아니라 다른 때에도 PG 플레인(14)으로부터의 데이터의 출 력제어를 실행할 수 있게 된다.
(8) 상기 실시 예에서는 스틸 플레인(16)의 데이터의 출력제어를 애플리케이션의 지시에 의거하는 형태로 행하였으나, BD-ROM에 스틸 데이터의 출력제어에 관한 플래그를 갖게 하여, 당해 플래그에 의거한 출력제어를 행해도 된다.
(9) 상기 실시 예에서는 PG 플레인(14)에는 자막만을 저장하는 것으로 하였으나, 자막의 화상 데이터뿐만 아니라, 비디오 플레인에 저장되어 있는 동화상과는 다른 동화상을 저장해도 된다. 이렇게 함으로써, 예를 들어 표시화면을 2개의 영역으로 분할하여 각각 다른 동화상을 표시할 수 있게 된다.
(10) 본 발명은 상기 실시 예에서 설명한 스틸 플레인의 스틸 데이터의 합성제어에서 설명한 방법으로 해도 되고, 당해 방법에서 설명한 처리순서를 재생장치의 컴퓨터에 실행시키는 컴퓨터 프로그램이라도 좋다. 또, 당해 컴퓨터 프로그램은 플렉시블 디스크, 하드 디스크, CD(Compact Disc), MO(Magneto Optical disc), DVD, BD, 반도체 메모리 등에 기록된 것이라도 좋다.
(11) 상기 실시 예에서 재생장치(100)는 시스템 LSI에 의해서 실현디는 것으로 하였으나, 재생장치(100)의 각 기능은 복수의 LSI에 의해서 실현되어도 된다.
본 발명의 재생장치는 BD-ROM에서 데이터를 판독하여 애플리케이션을 실행하면서, 재생장치에서 표시의 지연이 없이 화상을 표시하는 재생장치로 활용할 수 있다.

Claims (10)

  1. 동화상(moving image)을 저장하기 위한 비디오 플레인(video plane)과, GUI로 표시하는 화상인 GUI 화상을 저장하기 위한 이미지 플레인(image plane)과, 배경화상을 저장하기 위한 스틸 플레인(still plane)의 메모리 영역을 갖는 기억수단과,
    상기 비디오 플레인에 동화상을 저장하는 동화상 저장수단과,
    상기 이미지 플레인에 상기 GUI 화상을 저장하는 이미지 저장수단과,
    상기 스틸 플레인에 상기 배경화상을 저장하는 배경화상 저장수단과,
    상기 동화상이 상기 배경화상을 차폐(遮蔽)할 수 있는 소정의 사이즈인 경우에는, 상기 배경화상을 판독하지 않고, 상기 동화상과 상기 GUI 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하고, 상기 동화상이 상기 소정의 사이즈가 아닌 경우에는, 상기 동화상과 상기 GUI 화상 및 상기 배경화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하는 합성출력수단을 구비하는 것을 특징으로 하는 재생장치.
  2. 제 1 항에 있어서,
    상기 소정의 사이즈는 상기 동화상이 표시화면에서 풀 스크린(full screen)으로 표시되는 사이즈를 말하며,
    상기 재생장치는,
    상기 동화상에 관한 애플리케이션을 실행하는 가상 머신부(vertual machine unit)를 더 구비하고,
    상기 합성출력수단은, 상기 애플리케이션의 상기 비디오 플레인에 대한 축소지시를 수신하여 상기 배경화상을 합성하며, 축소지시가 없는 경우에는 상기 배경화상을 합성하지 않는 것을 특징으로 하는 재생장치.
  3. 제 1 항에 있어서,
    상기 스틸 플레인은 상기 동화상과는 다른 시간에 따라서 전환(change)되는 화상을 더 저장하기 위한 것이며,
    상기 재생장치는,
    상기 스틸 플레인에 상기 시간에 따라서 전환되는 화상을 저장하는 화상저장수단을 더 구비하며,
    상기 합성출력수단은, 상기 동화상이 표시화면에서 풀 스크린으로 표시되는 사이즈인 경우에는, 상기 비디오 플레인에 저장된 동화상과 상기 이미지 플레인에 저장된 GUI 화상 및 상기 스틸 플레인에 저장된 시간에 따라서 전환되는 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하며, 상기 동화상이 풀 스크린으로 표시되는 사이즈가 아닌 경우에는, 상기 비디오 플레인에 저장된 동화상과 상기 이미지 플레인에 저장된 GUI 화상 및 상기 스틸 플레인에 저장된 배경화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하는 것을 특징으로 하는 재생장치.
  4. 제 1 항에 있어서,
    상기 합성출력수단 및 상기 각 저장수단은 상기 기억수단에 접속되어 있는 메모리 버스를 공유하고 있고,
    상기 이미지 저장수단은, 상기 합성출력수단이 스틸 플레인의 판독을 행하지 않는다고 판단한 경우에는, 스틸 플레인의 판독에 할당되어 있는 상기 메모리 버스의 대역(band) 또는 시간(time)을 이미지 플레인에 대한 기록에 사용하는 것을 특징으로 하는 재생장치.
  5. 동화상을 저장하기 위한 비디오 플레인과, GUI로 표시하는 화상인 GUI 화상을 저장하기 위한 이미지 플레인과, 배경화상을 저장하기 위한 스틸 플레인의 메모리 영역을 갖는 기억수단을 구비하는 재생장치에서 화상을 합성하는 화상합성방법으로,
    상기 비디오 플레인에 동화상을 저장하는 동화상 저장스텝과,
    상기 이미지 플레인에 상기 GUI 화상을 저장하는 이미지 저장스텝과,
    상기 스틸 플레인에 상기 배경화상을 저장하는 배경화상 저장스텝과,
    상기 동화상이 상기 배경화상을 완전하게 차폐할 수 있는 소정의 사이즈인 경우에는, 상기 배경화상을 판독하지 않고, 상기 동화상과 상기 GUI 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하고, 상기 동화상이 상기 소정의 사이즈가 아닌 경우에는, 상기 동화상과 상기 GUI 화상 및 상기 배경 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하는 합성출력스텝을 포함하는 것을 특징으로 하는 화상합성방법.
  6. 제 5 항에 있어서,
    상기 합성출력스텝 및 상기 각 저장스텝에서 판독 및 저장에 사용하는 상기 기억수단에 접속되어 있는 메모리 버스를 공유하고 있고,
    상기 이미지 저장스텝에서는, 상기 합성출력스텝에서 스틸 플레인의 판독을 행하지 않는다고 판단한 경우에는, 스틸 플레인의 판독에 할당되어 있는 상기 메모리 버스의 대역 또는 시간을 이미지 플레인에 대한 기록에 사용하는 것을 특징으로 하는 화상합성방법.
  7. 동화상을 저장하기 위한 비디오 플레인과, GUI로 표시하는 화상인 GUI 화상을 저장하기 위한 이미지 플레인과, 배경화상을 저장하기 위한 스틸 플레인의 메모리 영역을 갖는 기억수단을 구비하는 재생장치의 컴퓨터에 화상을 합성시키기 위한 처리순서를 나타낸 화상합성 프로그램으로,
    상기 비디오 플레인에 동화상을 저장하는 동화상 저장스텝과,
    상기 이미지 플레인에 상기 GUI 화상을 저장하는 이미지 저장스텝과,
    상기 스틸 플레인에 상기 배경화상을 저장하는 배경화상 저장스텝과,
    상기 동화상이 상기 배경화상을 완전하게 차폐할 수 있는 소정의 사이즈인 경우에는, 상기 배경화상을 판독하지 않고, 상기 동화상과 상기 GUI 화상을 판독해 서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하고, 상기 동화상이 상기 소정의 사이즈가 아닌 경우에는, 상기 동화상과 상기 GUI 화상 및 상기 배경화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하는 합성출력스텝을 포함하는 것을 특징으로 하는 화상합성 프로그램.
  8. 제 7 항에 있어서,
    상기 합성출력스텝 및 상기 각 저장스텝에서는 판독 및 저장에 사용하는 상기 기억수단에 접속되어 있는 메모리 버스를 공유하고 있고,
    상기 이미지 저장스텝에서는, 상기 합성출력스텝에서 스틸 플레인의 판독을 행하지 않는다고 판단한 경우에는, 스틸 플레인의 판독에 할당되어 있는 상기 메모리 버스의 대역 또는 시간을 이미지 플레인에 대한 기록에 사용하는 것을 특징으로 하는 화상합성 프로그램.
  9. 화상을 합성하여 출력하는 재생장치에 탑재되는 집적회로로,
    동화상을 저장하기 위한 비디오 플레인과, GUI로 표시하는 화상인 GUI 화상을 저장하기 위한 이미지 플레인과, 배경화상을 저장하기 위한 스틸 플레인의 메모리 영역을 갖는 기억수단과,
    상기 비디오 플레인에 동화상을 저장하는 동화상 저장수단과,
    상기 이미지 플레인에 상기 GUI 화상을 저장하는 이미지 저장수단과,
    상기 스틸 플레인에 상기 배경화상을 저장하는 배경화상 저장수단과,
    상기 동화상이 상기 배경화상을 완전하게 차폐할 수 있는 소정의 사이즈인 경우에는, 상기 배경화상을 판독하지 않고, 상기 동화상과 상기 GUI 화상을 판독해서, 중첩하여 합성한 합성화상을 표시하는 화상 신호를 출력하고, 상기 동화상이 상기 소정의 사이즈가 아닌 경우에는, 상기 동화상과 상기 GUI 화상 및 상기 배경화상을 판독해서, 중첩하여 합성한 합성화상을 나타내는 화상 신호를 출력하는 합성출력수단을 구비하는 것을 특징으로 하는 집적회로.
  10. 제 9 항에 있어서,
    상기 합성출력수단 및 상기 각 저장수단은 상기 기억수단에 접속되어 있는 메모리 버스를 공유하고 있고,
    상기 이미지 저장수단은, 상기 합성출력수단이 스틸 플레인의 판독을 행하지 않는다고 판단한 경우에는, 스틸 플레인의 판독에 할당되어 있는 상기 메모리 버스의 대역 또는 시간을 이미지 플레인에 대한 기록에 사용하는 것을 특징으로 하는 집적회로.
KR1020077012832A 2004-12-01 2005-11-30 재생장치, 화상합성방법, 컴퓨터 판독 가능한 기록매체 및 집적회로 KR101193397B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00349143 2004-12-01
JP2004349143 2004-12-01
PCT/JP2005/022022 WO2006059661A1 (ja) 2004-12-01 2005-11-30 再生装置、画像合成方法、画像合成プログラム及び集積回路

Publications (2)

Publication Number Publication Date
KR20070090906A true KR20070090906A (ko) 2007-09-06
KR101193397B1 KR101193397B1 (ko) 2012-10-24

Family

ID=36565094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077012832A KR101193397B1 (ko) 2004-12-01 2005-11-30 재생장치, 화상합성방법, 컴퓨터 판독 가능한 기록매체 및 집적회로

Country Status (6)

Country Link
US (1) US8306386B2 (ko)
EP (1) EP1818907A4 (ko)
JP (1) JP4949853B2 (ko)
KR (1) KR101193397B1 (ko)
CN (2) CN100514441C (ko)
WO (1) WO2006059661A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2034422A2 (en) 2007-09-07 2009-03-11 Electronics and Telecommunications Research Institute Apparatus and method for detecting malicious process

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007119765A1 (ja) * 2006-04-13 2009-08-27 パナソニック株式会社 記録媒体、再生装置、記録装置、システムlsi、方法、プログラム
US7712047B2 (en) * 2007-01-03 2010-05-04 Microsoft Corporation Motion desktop
JP5322529B2 (ja) 2008-07-29 2013-10-23 キヤノン株式会社 表示装置、表示制御方法
WO2011007416A1 (ja) * 2009-07-14 2011-01-20 パイオニア株式会社 再生装置及び方法、並びにコンピュータプログラム
JP5544863B2 (ja) * 2009-12-17 2014-07-09 富士通株式会社 受信装置、受信方法及び受信プログラム
WO2011155099A1 (ja) * 2010-06-11 2011-12-15 三菱電機株式会社 映像表示装置
US9154797B2 (en) 2010-09-20 2015-10-06 Onecodec, Limited Systems and methods for encoding and decoding
US10129556B2 (en) 2014-05-16 2018-11-13 Bevara Technologies, Llc Systems and methods for accessing digital data
US10025787B2 (en) 2011-08-17 2018-07-17 Bevara Technologies, Llc Systems and methods for selecting digital data for archival
JP5857636B2 (ja) * 2011-11-02 2016-02-10 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US9202522B2 (en) * 2013-05-08 2015-12-01 Adobe Systems Incorporated Method and apparatus for subtitle display
TWI530169B (zh) * 2013-08-23 2016-04-11 晨星半導體股份有限公司 處理影音資料之方法以及相關模組
WO2015176009A1 (en) * 2014-05-16 2015-11-19 Bevara Technologies, Llc Systems and methods for selecting digital data for archival
WO2017061434A1 (ja) * 2015-10-09 2017-04-13 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP2018022370A (ja) * 2016-08-04 2018-02-08 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム
CN106980579B (zh) 2016-09-30 2020-08-14 阿里巴巴集团控股有限公司 一种图片加载方法及装置
US10895954B2 (en) * 2017-06-02 2021-01-19 Apple Inc. Providing a graphical canvas for handwritten input
CA3086546A1 (en) 2018-01-18 2019-07-25 Bevara Technologies, Llc Browser navigation for facilitating data access
KR20210074880A (ko) * 2019-12-12 2021-06-22 삼성전자주식회사 디스플레이 장치 및 그 동작 방법

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0421077A (ja) * 1990-05-15 1992-01-24 Oki Electric Ind Co Ltd 画像重ね合わせ装置
JPH0773287A (ja) * 1993-06-15 1995-03-17 Nec Corp 画像合成回路
JP2000010542A (ja) * 1998-06-24 2000-01-14 Canon Inc 画像表示装置と画像データの表示方法
US6853385B1 (en) 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6636222B1 (en) 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US6573905B1 (en) 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US6538656B1 (en) 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
WO2002089105A2 (en) * 2001-05-02 2002-11-07 Bitstream, Inc. Methods, systems, and programming for producing and displaying subpixel-optimized images and digital content including such images
JP4829443B2 (ja) * 2001-09-20 2011-12-07 キヤノン株式会社 受信装置、受信方法および記録媒体
EP1328114A1 (en) * 2002-01-10 2003-07-16 Canal+ Technologies Société Anonyme Image resolution management in a receiver/decoder
JP4136383B2 (ja) * 2002-01-28 2008-08-20 キヤノン株式会社 テレビ受信装置及びその制御方法
US20040047588A1 (en) 2002-03-27 2004-03-11 Tomoyuki Okada Package medium, reproduction apparatus, and reproduction method
JP2004007518A (ja) 2002-03-27 2004-01-08 Matsushita Electric Ind Co Ltd パッケージメディア、再生装置、および再生方法
JP4011949B2 (ja) 2002-04-01 2007-11-21 キヤノン株式会社 マルチ画面合成装置及びデジタルテレビ受信装置
JP4066714B2 (ja) * 2002-05-23 2008-03-26 ソニー株式会社 画像信号の処理装置および処理方法
JP4158462B2 (ja) 2002-09-04 2008-10-01 ソニー株式会社 画面表示処理装置及び画面表示処理方法、並びにコンピュータ・プログラム
JP3837427B2 (ja) 2002-09-12 2006-10-25 松下電器産業株式会社 記録媒体、再生装置、プログラム、再生方法、記録方法
KR100973862B1 (ko) * 2002-09-25 2010-08-03 파나소닉 주식회사 재생장치, 광 디스크, 기록매체, 재생방법
WO2004049710A1 (ja) 2002-11-28 2004-06-10 Sony Corporation 再生装置、再生方法、再生プログラムおよび記録媒体
JP4715094B2 (ja) * 2003-01-30 2011-07-06 ソニー株式会社 再生装置、再生方法、再生プログラムおよび記録媒体
AU2004214180B2 (en) 2003-02-21 2010-01-28 Panasonic Corporation Recording Medium, Playback Device, Recording Method, Playback Method, and Computer Program
US7561779B2 (en) 2003-03-13 2009-07-14 Panasonic Corporation Video data processor having converting section for producing NTSC- or PAL-compliant synthetic video data
JP2004334058A (ja) * 2003-05-12 2004-11-25 Hitachi Ltd 表示装置および表示制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2034422A2 (en) 2007-09-07 2009-03-11 Electronics and Telecommunications Research Institute Apparatus and method for detecting malicious process

Also Published As

Publication number Publication date
CN101600122A (zh) 2009-12-09
US20080089660A1 (en) 2008-04-17
CN100514441C (zh) 2009-07-15
JP4949853B2 (ja) 2012-06-13
CN101600122B (zh) 2011-10-05
KR101193397B1 (ko) 2012-10-24
US8306386B2 (en) 2012-11-06
EP1818907A4 (en) 2008-06-25
EP1818907A1 (en) 2007-08-15
CN101069229A (zh) 2007-11-07
JPWO2006059661A1 (ja) 2008-06-05
WO2006059661A1 (ja) 2006-06-08

Similar Documents

Publication Publication Date Title
KR101193397B1 (ko) 재생장치, 화상합성방법, 컴퓨터 판독 가능한 기록매체 및 집적회로
US8107788B2 (en) Recording medium, playback device, recording method and playback method
KR101204653B1 (ko) 기록매체, 재생장치, 재생방법
JP4410253B2 (ja) 読出装置、プログラム、読出方法
KR101076198B1 (ko) 기록매체, 재생장치, 기록방법, 재생방법
JP2007287327A (ja) 記録媒体、再生装置、プログラム、再生方法、集積回路

Legal Events

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

Payment date: 20150917

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160922

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170920

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee