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

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

Info

Publication number
KR101036991B1
KR101036991B1 KR1020057024964A KR20057024964A KR101036991B1 KR 101036991 B1 KR101036991 B1 KR 101036991B1 KR 1020057024964 A KR1020057024964 A KR 1020057024964A KR 20057024964 A KR20057024964 A KR 20057024964A KR 101036991 B1 KR101036991 B1 KR 101036991B1
Authority
KR
South Korea
Prior art keywords
graphics
button
ods
time
pts
Prior art date
Application number
KR1020057024964A
Other languages
English (en)
Other versions
KR20060027367A (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 KR20060027367A publication Critical patent/KR20060027367A/ko
Application granted granted Critical
Publication of KR101036991B1 publication Critical patent/KR101036991B1/ko

Links

Images

Classifications

    • 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
    • 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/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/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; 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 the same track as the main recording
    • G11B27/3027Indexing; 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 the same track as the main recording used signal is digitally coded
    • 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/30Indexing; 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 the same track as the main recording
    • G11B27/3027Indexing; 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 the same track as the main recording used signal is digitally coded
    • G11B27/3036Time code signal
    • 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
    • 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
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • 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/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • 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

Abstract

BD-ROM에 기록된 AV 클립은 그래픽스 스트림과 비디오 스트림을 다중화함으로써 취득된다. 그래픽스 스트림은, 1) 그래픽스 데이터를 저장하는 데이터 패킷(ODS)과, 2) 제어정보를 저장하는 PES 패킷(PCS)을 포함하는 패킷 시퀀스이다. 각 ODS에서, DTS와 PTS의 값은 대응하는 그래픽스 데이터에 대한 디코딩 시작 타이밍과, 대응하는 그래픽스 데이터에 대한 디코딩 종료 타이밍을 각각 나타낸다. 각 PCS에서, PTS 값은 비디오 스트림과 결합한 대응하는 디코드된 그래픽스 데이터의 표시 타이밍을 나타낸다.
Figure R1020057024964
윈도우 정보, 자막, 플레인, 동화상, 그래픽스, 멀티플렉싱, 렌더링, PES, ODS, PTS, DTS, PCS, 타이밍

Description

기록매체, 기록장치, 기록방법, 재생장치 및 재생방법 {RECORDING MEDIUM, RECORDING APPARATUS, RECORDING METHOD, REPRODUCTION APPARATUS AND REPRODUCTION METHOD}
본 발명은 BD-ROM과 같은 기록매체 및 재생장치에 관한 것이다. 본 발명은 특히 그래픽스에 의해 자막 표시와 대화형 표시를 실현하기 위한 기술에 관한 것이다.
그래픽스에 의한 자막 표시는 문자로 표명되는 단어를 세계 모든 지역의 사람들에게 전달하는 중요한 역할을 한다. 자막 표시를 실현하는 종래기술의 하나로 ETSI EN 300 743 규격(ETSI: European Telecommunication Standard Institute)의 자막 애플리케이션이다. 자막 애플리케이션은 그래픽스에 의한 자막 표시와 함께 재생될 비디오 스트림이다. 여기서, 자막에 대응하는 그래픽스는 MPEG2 규격의 데이터 스트림으로 표시된다. 데이터 스트림은 PES 패킷 시퀀스로, 각 PES 패킷은 PTS(presentation time stamp)를 갖는다. ETSI EN 300 743 규격은 자막 애플리케이션의 자막 표시 타이밍을 정의한다.이 규격은 동화상과 그래픽스 사이의 동기화를 수립하고, 이 동기화로 그래픽스는 비디오 스트림의 대응하는 화상이 표시될 때 표시된다.
자막 애플리케이션이 BD-ROM을 위해 제공될 때, 그래픽스의 해상도 레벨을 더 향상할 필요가 있다. 더 구체적으로, 해상도 레벨은 1920*1080의 레벨로 개선되도록 요구된다. 그러나, 이러한 고해상도의 실현은 재생시 상당히 큰 양의 디코딩 부하를 초래한다.
ETSI EN 300 743 규격은 PTS에 의해 지정되는 시간에 디코딩을 수행하고 이를 곧바로 표시하기 위한 재생제어를 정의한다. 이것이 적용될 때, 상당한 양의 디코딩 부하가 표시 직전의 시점에 재생장치에 집중될 것이다. 이러한 로드의 집중은, 그래픽스 표시를 실현하도록 재생장치의 하드웨어/소프트웨어 성능이 높아지는 것을 강요한다. 이러한 조건이 재생장치에 대해 필수적으로 되면, 재생장치의 제조비용이 현저하게 증가할 것이고, 이는 재생장치가 일반적으로 사용되는 것을 방지할 것이다.
본 발명의 목적은 제조비용의 증가를 피할 뿐만 아니라 고해상 수준의 그래픽스 표시를 구현하는 기록매체를 제공하는 것이다.
상기한 목적을 달성하기 위하여, 본 발명은 비디오 스트림과, 데이터 패킷 및 제어 패킷을 포함하는 그래픽스 스트림을 취득하는 취득수단; 동화상 데이터를 얻기 위해 상기 비디오 스트림을 디코드하는 비디오 디코더; (i) 상기 데이터 패킷의 디코드 타임 스탬프가 나타내는 시간에 상기 데이터 패킷에 포함된 그래픽스 데이터의 디코딩을 시작하고, (ⅱ) 상기 데이터 패킷에 포함된 프리젠테이션 타임 스탬프가 나타내는 시간에 상기 디코딩을 종료하는 프로세서; 및 (A) 상기 제어 패킷의 프리젠테이션 타임 스탬프가 나타내는 시간에 그래픽스 플레인의 디코드 된 그래픽스 데이터를 상기 동화상 데이터와 결합하여 표시시키고, (B) 상기 제어 패킷이 에포크 시작(Epoch Start)을 나타내고 있는 타입 정보를 포함하는 경우, 상기 제어 패킷의 디코드 타임 스탬프가 나타내는 시간에 상기 그래픽스 플레인을 소거(clear)하는 컨트롤러를 포함한다.
그래픽스가 디코드되는 기간은 그래픽스를 저장하는 패킷의 타임 스탬프에 의해 나타나고, 그래픽스의 표시는 대응하는 제어정보에 할당된 타임 스탬프의 값에 의해 정의된다. 따라서, 본 발명에서, "이미 디코드되었지만 아직 표시되지 않은 상태", 다시 말해, 압축해제된 그래픽스가 버퍼링된 상태가 재생 타임라인(timeline) 상에 정의된다.
이러한 버퍼링 기간을 정의함으로써, 엄청난 양의 디코딩 부하가 한 지점에 집중하는 것을 피할 수 있게 된다. 또한, 동시에 디코딩하기 위한 하드웨어 자원의 이용이 다른 처리와 충돌하면, 그래픽스 디코딩 기간을 재배치하여 그러한 충돌을 피하도록 버퍼링 기간이 제공될 수 있다.
여기서, 이 버퍼링 개념이 상기한 목적을 달성하도록 도입되면, 그러한 재생장치의 개발을 추구하는 기술자는 정상동작을 보장하기 위하여 장착될 메모리의 크기에 대해 당황할 것이다. 반면, 자막 애플리케이션을 제작하는 기술자도 자막 애플리케이션이 재생장치에 의해 확실하게 재생될 수 있는지에 대해 걱정할 것이다. 이 모든 것은 이 버퍼링을 위한 메모리 점유가, 재생 타임라인 상의 재생 과정에서 연대순으로 변할 것이기 때문이다. 메모리 점유의 연대순 변화가 미지로 남아 있다면, 이들 기술자의 걱정은 제거되지 않을 것이다.
이러한 문제를 해결하기 위하여, 상기 제어정보는 메모리 관리 시작을 지시하는 타입 정보를 포함하고, 상기 제어 패킷의 타임 스탬프는 프리젠테이션 타임 스탬프이며, 상기 제어 패킷은, 그것의 값이 상기 메모리 관리 시작에 대응하는, 상기 디지털 스트림의 재생 타임라인(timeline)의 지점을 지시하는 디코드 타입 스탬프, 및 상기 제어정보가 메모리로 독출되는 시간을 추가로 포함하는 구조를 구비하는 것이 바람직하다.
이러한 구성에 의하면, 메모리 관리 시작이 제어정보를 저장하는 패킷의 디코드 타임 스탬프에 의해 지시된다. 따라서, 디코드 타임 스탬프를 참조함으로써, 디코더 모델에 대한 각 버퍼가 재생 타임라인의 어떤 재생지점에서 플래시(flash)되어야 하는지를 알 수 있게 된다. 플래시 지점이 메모리 관리의 시작점으로 간주되면, 제어정보를 저장하는 버퍼, 디코드되기 전의 그래픽스를 저장하는 버퍼, 및 디코딩 후의 그래픽스를 저장하는 버퍼의 연대순 점유 변화를 이해하는 것이 쉽다. 이 디코드 타임 스탬프의 값을 변경함으로써, 버퍼 상태의 연대순 변화를 조정할 수 있다. 이러한 조정에 따라, 재생장치에서의 버퍼 오버플로우를 피할 수 있게 된다. 그러므로, 재생장치의 개발 단계에서 하드웨어/소프트웨어를 완성하기가 쉽다.
또한, 연대순 변화를 이해하고 조정하기가 쉽기 때문에, 오소링(authoring)에 의해 취득한 그래픽스 스트림이 BD-ROM 규격이 당연히 하는 디코더 모델의 제한을 만족하는지에 대한 검증이 쉬워진다. 따라서, 오소링을 담당하는 사람은, 자신의 창작 그래픽스가 정상적으로 동작될 것을 확신한다는 조건 하에서, 오소링 작업을 계속할 수 있다.
BD-ROM의 디코더 모델을 가정하면, 추가 구성요소가 본 발명을 실시하기 위해 필요하게 된다. 이 BD-ROM의 디코더 모델에서, 그래픽스의 디코더 본체(즉, 프로세서)는 그래픽스를 갱신하기 위한 컨트롤러 본체(즉, 컨트롤러)와 독립된다. 디코더 본체가 갱신 컨트롤러 본체와 독립적으로 제공되는 이유는, 예를 들어, 그래픽스가 자막인 경우에 대해 유용한, 그래픽스의 표시와 삭제와 같은 개선된 갱신을 점차 수행한다는 것이다. 갱신 컨트롤러 본체가 디코더 본체와 독립된 몸체인 경우, 프로세서-컨트롤러 연결이 더 가깝게 될 필요가 있다. 이는, 프로세서가 그래픽스 데이터의 디코딩을 완료한 후, 컨트롤러가 지연 없이 갱신을 수행해야 하기 때문이다.
프로세서의 디코딩 완료가 컨트롤러에 통보되는 방법은 프로세서와 컨트롤러가 장치에 실행되는 방법에 따른다. 프로세서와 컨트롤러가 프로그램으로 실행되면, 통보는 인트라-프로세스 통신에 의해 수행될 것이다. 프로세서와 컨트롤러가 서로 독립된 하드웨어 요소로 실행되면, 그때 통보는 인터럽트 신호에 의해 수행될 것이다. 이러한 통보의 시간 지연량은 장치의 실행 방식에 따르기도 한다. 실행이 통보의 많은 시간 지연을 필요로 하면, 그래픽스의 갱신이 동화상의 표시 속도와 동기될 수 없는 경우가 있을 것이다.
그러한 경우가 발생하는 것을 방지하기 위하여, 상기 프리젠테이션 타임 스탬프의 값은 기설정된 값을 상기 디코드 타임 스탬프의 값에 더하여 취득되고, 상기 기설정된 값은, 화면의 소거에 필요한 기간, 상기 그래픽스 데이터의 디코딩에 필요한 기간, 및 상기 그래픽스 데이터를 상기 화면에 기입하는데 필요한 기간 중 더 긴 것에 기초하는 구조를 갖는 것이 바람직하다.
그래픽스를 저장하는 패킷의 프리젠테이션 타임 스탬프는 디코딩 종료시간을 지시하고, 제어정보를 저장하는 패킷의 프리젠테이션 타임 스탬프는 기설정된 기간에 디코딩 종료시간을 더하여 취득한 시간을 지시한다. 따라서, 프리젠테이션 타임 스탬프를 참조함으로써만, 컨트롤러는 그래픽스 데이터의 디코딩 완료 통보를 프로세서로부터 수신하지 않고 적절한 타이밍에 갱신을 수행할 수 있다. 이러한 갱신이 수행되면, 재생장치의 실행 방식에 관계없이 동화상의 표시 속도와 동기된 갱신을 보장할 수 있게 된다.
더 가까운 프로세서-컨트롤러 연결은 재생장치의 프로세서-컨트롤러 실행 방식에 관계없이 구현되기 때문에, 장치를 저가로 제조하는 것을 용이하게 할 뿐만 아니라 장치 설계에서 일정한 정도의 유연성을 유지할 수 있게 된다.
도 1은 본 발명에 따른 기록매체 사용의 일 예를 나타낸다.
도 2는 BD-ROM의 구조를 나타낸다.
도 3은 AV 클립의 구조를 도식적으로 나타내는 다이어그램이다.
도 4a는 프리젠테이션 그래픽스 스트림의 구조를 나타낸다.
도 4b는 기능 세그먼트들을 변환하여 취득한 PES 패킷을 나타낸다.
도 5는 도 5는 다양한 종류의 기능 세그먼트로 구성된 논리구조를 나타낸다.
도 6은 자막과 에포크의 표시 위치 사이의 관계를 나타낸다.
도 7a는 오브젝트 정의 세그먼트(ODS)의 그래픽스 오브젝트를 정의하는 신택스를 나타낸다.
도 7b는 팔레트 정의 세그먼트(ODS)의 신택스를 나타낸다.
도 8a는 윈도우 정의 세그먼트(WDS)의 신택스를 나타낸다.
도 8b는 프리젠테이션 합성 세그먼트(PCS)의 신택스를 나타낸다.
도 9는 자막을 달기 위한 표시 설정의 디스크립션의 일 예를 나타낸다.
도 10은 DS1의 WDS와 PDS의 디스크립션의 일 예를 나타낸다.
도 11은 DS2의 PCS의 디스크립션의 일 예를 나타낸다.
도 12는 DS3의 PCS의 디스크립션의 일 예를 나타낸다.
도 13은 Cut-In/Out이 수행될 때 표시 설정의 디스크립션을 타임 라인을 따라 도시하는 예를 보여준다.
도 14는 Fade-In/Out이 수행될 때 표시 설정의 디스크립션을 타임 라인을 따라 도시한 예를 보여준다.
도 15는 스크롤링이 수행될 때 타임 라인을 따라 표시 설정의 디스크립션을 도시한 예를 보여준다.
도 16은 Wipe-In/Out이 수행될 때 타임 라인을 따라 표시 설정의 디스크립션을 도시한 예를 보여준다.
도 17은 윈도우가 4개의 그래픽스 오브젝트를 갖는 경우와 윈도우가 2개의 그래픽스 오브젝트를 갖는 경우의 두 가지 경우를 비교하는 다이어그램이다.
도 18은 디코드 기간을 계산하기 위한 알고리즘의 일 예를 나타낸다.
도 19는 도 18의 알고리즘을 나타내는 플로차트이다.
도 20a와 20b는 도 18의 알고리즘의 플로차트이다.
도 21a는 각 윈도우가 오브젝트 정의 세그먼트를 갖는 경우를 설명한다.
도 21b와 c는 도 18에 인용된 부호들 사이의 순서를 보여주는 타이밍 차트이 다.
도 22a는 각 윈도우가 두 개의 오브젝트 정의 세그먼트를 갖는 경우를 설명한다.
도 22b와 c는 도 18에 인용된 부호들 사이의 순서를 보여주는 타이밍 차트이다.
도 23a는 두 개의 윈도우 각각이 ODS를 포함하는 경우를 설명한다.
도 23b는 디코드 기간(2)이 소거 기간(1)과 기입 기간(31)의 총합보다 더 긴 경우를 설명한다.
도 23c는 소거 기간(1)과 기입 기간(31)의 총합이 디코드 기간보다 긴 경우를 설명한다.
도 24는 이 명세서의 예에서 설명한 갱신시의 시프트를 나타낸다.
도 25a는 상기 설명한 갱신을 수행하도록 설명된 4가지 표시 설정을 보여준다.
도 25b는 4가지 표시 설정에 포함된 기능 세그먼트의 DTS와 PTS의 설정을 보여주는 타이밍 차트이다.
도 26은 본 발명에 따른 재생장치의 내부 구조를 나타낸다.
도 27은 기입 속도 Rx, Rc, 및 Rd, 그래픽스 플레인(8), 부호화 데이터 버퍼(13), 오브젝트 버퍼(15), 및 합성 버퍼(16)의 크기를 나타낸다.
도 28은 재생장치에 의한 파이프라인 프로세싱을 나타내는 타이밍 차트이다.
도 29는 그래픽스 플레인의 소거가 완료되기 전에 ODS의 디코딩이 종료되는 경우의 파이프라인 프로세싱의 타이밍 차트이다.
도 30은 그래픽스 플레인의 축적량의 연대순 변화를 보여주는 타이밍 차트이다.
도 31은 기능 세그먼트의 로딩 동작의 프로세스를 나타내는 플로차트이다.
도 32는 다중화의 일 예를 보여준다.
도 33은 DS10이 부호화 데이터 버퍼(13)에 로드되는 방법을 나타낸다.
도 34는 정상 동작에서 DS1, DS10, 및 DS20의 로딩을 보여준다.
도 35는 도 34에 도시된 바와 같은 정상 재생에서 DS1, DS10, 및 DS20의 로딩을 보여준다.
도 36은 그래픽 컨트롤러(17)에 의해 수행되는 프로세스를 나타내는 플로차트이다.
도 37은 그래픽 컨트롤러(17)에 의해 수행되는 프로세스를 나타내는 플로차트이다.
도 38은 그래픽 컨트롤러(17)에 의해 수행되는 프로세스를 나타내는 플로차트이다.
도 39는 PDS의 PTS에 기초한 재생장치의 파이프라인 프로세스를 보여준다.
도 40은 재생장치의 파이프라인 프로세스에서 END의 의미를 설명하는 다이어그램이다.
도 41은 제 2 실시예에 따른 대화형 화면을 도식적으로 설명한 다이어그램이다.
도 42a와 도 42b는 제 2 실시예에 따른 대화형 화면에 대한 다이어그램이다.
도 43은 대화형 합성 세그먼트의 데이터 구조를 설명한다.
도 44는 DSn에 포함된 ODS와 ICS 사이의 관계를 보여준다.
도 45는 임의의 픽처 데이터 "pt1"의 표시 타이밍의 화면 합성을 보여준다.
도 46은 ICS의 버튼 정보에 대한 설정의 일 예를 보여준다.
도 47은 버튼 A- 버튼 D의 상태 변화를 나타낸다.
도 48은 일 예로서 PDS11, 21, 31 및 41의 이미지를 보여준다.
도 49는 일 에로서 버튼 A의 ODS11-19의 이미지를 설명한다.
도 50은 버튼-상태 그룹과 표시 설정의 ODS의 순서를 설명한다.
도 51은 도 50의 버튼-상태 그룹이 배치되는 대화형 화면의 상태 변화를 설명한다.
도 52는 표시 설정의 ODS의 순서를 설명한다.
도 53은 default_selected_button_number가 "=0"인 경우와 "=버튼 B"인 경우 사이에 S-ODS의 ODS의 배열에 있어서 차이를 보여준다.
도 54a와 54b는, N-ODS가 버튼 A-D를 구성하는 다수의 ODS를 포함하는 경우와 S-ODS가 버튼 A-D를 구성하는 다수의 ODS를 포함하는 경우, ∑SIZE(DSn[ICS.BUTTON[i]])의 값을 보여준다.
도 55는 ICS에 의한 동기화된 표시의 타이밍을 보여준다.
도 56은, 대화형 화면의 최초 표시가 다수의 ODS에 의해 구성되고, 디폴트 선택된 버튼이 정적으로 결정되는 경우, DTS와 PTS를 설정하는 방법을 보여준다.
도 57은, 대화형 화면의 최초 표시가 다수의 ODS에 의해 구성되고, 디폴트 선택된 버튼이 결정되지 않은 경우, DTS와 PTS를 설정하는 방법을 보여준다.
도 58은 그래픽스 플레인(8)과 비교하여 오브젝트 버퍼(15)의 내용을 도시한다.
도 59는 대화형 화면의 최초 표시 시간에서 그래픽스 컨트롤러(17)에 의해 수행되는 동작을 도시한다.
도 60은 대화형-화면 갱신이 1stUserAction(MoveRight)에 따라 수행될 때 그래픽스 컨트롤러(17)에 의해 수행되는 동작을 설명한다.
도 61은, 1stUserAction이 "MoveDown"인 대화형 화면 갱신시, 그래픽스 컨트롤러(17)에 의해 수행된 동작을 설명한다.
도 62는, 1stUserAction이 "Activated"인 대화형 화면 갱신시, 그래픽스 컨트롤러(17)에 의해 수행된 동작을 설명한다.
도 63은 재생장치에 의해 수행되는 파이프라인 프로세스를 설명하는 타이밍 차트이다.
도 64는 디폴트 선택된 버튼이 동적으로 변하는 경우에 재생장치에 의한 파이프라인 프로세스를 설명하는 타이밍 차트이다.
도 65는 그래픽스 플레인(8), 오브젝트 버퍼(15), 및 부호화 데이터 버퍼(13)의 점유로 연대순 변화를 설명하는 타이밍 차트이다.
도 66은 기능 세그먼트의 동작을 로딩하는 프로세스를 보여주는 플로차트이다.
도 67은 다중화의 일 예이다.
도 68은 DS10이 재생장치의 부호화 데이터 버퍼(13)에 로드되는 방법을 보여준다.
도 69는 정상재생이 수행되는 경우를 보여준다.
도 70은 도 69에서 수행된 정상 재생에서 DS1, DS10, 및 DS20의 로딩을 보여준다.
도 71은 그래픽스 컨트롤러(17)에 의해 수행되는 프로세스의 주 루틴을 설명하는 플로차트이다.
도 72는 타임 스탬프를 이용하는 동기제어를 구현하기 위한 프로세스를 설명하는 플로차트이다.
도 73은 메뉴의 최초 표시를 그래픽스 플레인(8)에 기입하는 동작을 설명하는 플로차트이다.
도 74는 디폴트 선택된 버튼에 대한 자동 활성화 프로세스를 설명하는 플로차트이다.
도 75는 애니메이션 표시 프로세싱을 보여주는 플로차트이다.
도 76은 UO 동작의 프로세스를 보여주는 플로차트이다.
도 77은 현재 버튼 변경동작의 프로세스를 나타내는 플로차트이다.
도 78은 수치 입력동작의 프로세스를 보여주는 플로차트이다.
도 79는 제 1 실시예에서 설명한 PCS를 기록하는 BD-ROM을 제조하는 방법을 설명한다.
도 80은 제 2 실시예에서 설명한 PCS를 기록하는 BD-ROM을 제조하는 방법을 설명한다.
(제 1 실시예)
본 발명에 따른 기록매체의 제 1 실시예가 이하 설명된다.
도 1은 본 발명에 따른 기록매체 사용의 일 예를 나타낸다. 도면에서, BD-ROM(100)은 본 발명에 따른 기록매체이다. BD-ROM(100)은 영화작품 데이터를 재생장치(200), 텔레비전(300), 및 리모트 컨트롤러(400)로 구성된 홈시어터 시스템에 제공하는데 이용된다.
본 발명에 따른 기록매체는 BD-ROM의 애플리케이션층을 이용하여 제작된다. 도 2는 BD-ROM의 구조를 나타낸다.
도면에서, BD-ROM은 도면의 하부에 도시되고, BD-ROM의 트랙은 BD-ROM 위에 도시된다. 트랙은 실제 디스크 위에 스파이럴 형상이지만, 도면에서는 선으로 도시된다. 도면에서 볼륨 영역은 물리층, 파일 시스템층, 및 애플리케이션층 갖는다. 도면의 제일 위에서, BD-ROM의 애플리케이션 포맷이 디렉터리 구조를 이용하여 도시되어 있다. 도면에 도시된 바와 같이, BD-ROM은 루트 디렉터리 아래에 BDMV 디렉터리를 가지며, BDMV 디렉터리는 확장자 M2TS(XXX.M2TS)를 갖는 AV 클립을 저장하기 위한 파일, 확장자 CLPI(XXX.CLPI)를 갖는 AV 클립용 관리정보를 저장하기 위한 파일, 및 확장자 XPLS(XXX.XPLS)를 갖는 AV 클립에 대한 논리적 플레이리스트(PL)를 정의하기 위한 파일을 포함한다. 상기의 애플리케이션 포맷을 형성함으로써, 본 발명에 따른 기록매체를 제작할 수 있다. 각 종류에 대해 하나의 파일 이상이 존재하는 경우, 하나의 디렉터리에 동일한 확장자를 갖는 파일을 저장하기 위해서 BDMV 아래에 STREAM, CLIPINE, 및 PLAYLIST로 명명된 디렉터리를 제공하는 것이 바람직하다. 구체적으로, STREAM에 확장자 M2TS를 갖는 파일을, CLIPINE에 확장자 CLPI를 갖는 파일을, 그리고 PLAYLIST에 확장자 MPLS를 갖는 파일을 저장하는 것이 바람직하다.
상기 애플리케이션 포맷의 AV 클립(XXX.M2TS)에 대해 이하 설명된다.
AV 클립(XXX.M2TS)은 비디오 스트림, 적어도 하나의 오디오 스트림, 및 프리젠테이션 그래픽스 스트림을 다중화하여 취득되는 MPEG-TS 포맷(TS는 트랜스포트 스트림이다)의 디지털 스트림이다. 비디오 스트림은 영화의 픽처를 나타내고, 오디오 스트림은 영화의 사운드를 나타내며, 프리젠테이션 그래픽스 스트림은 영화의 자막을 나타낸다. 도 3은 AV 클립을 도식적으로 설명하는 다이어그램이다.
AV 클립(XXX.M2TS)은 다음과 같은 방식으로 구성된다. 다수의 비디오 프레임(픽처 pj1, pj2, pj3)으로 구성된 비디오 스트림, 다수의 오디오 프레임(도면의 가장 위의 행)의 오디오 스트림은 PES 패킷 라인(도면의 두 번째 행)으로 변환되고, 다시 TS 패킷 라인(도면의 세 번째 행)으로 변환된다. 프리젠테이션 그래픽스 스트림(도면의 가장 아래 행)은 PES 패킷(도면의 아래에서 두 번째 행)으로 변환되고, 다시 TS 패킷(도면의 아래에서 세 번째 행)으로 변환된다. TS 패킷 3라인이 다중화되어 AV 클립(XXX.M2TS)이 구성된다.
도면에서, 하나의 프리젠테이션 그래픽스 스트림만이 다중화된다. 그러나, BD-ROM이 다수의 언어에 호환성을 갖는 경우, 각 언어에 대한 프리젠테이션 그래픽스 스트림이 다중화되어 AV 클립을 구성한다. 상기의 방법으로 구성된 AV 클립은 통상의 컴퓨터 파일과 같이 하나 이상의 하나 이상의 익스텐트(extent)로 분할되고, BD-ROM의 영역에 저장된다.
다음, 프리젠테이션 그래픽스 스트림이 설명된다. 도 4a는 프리젠테이션 그래픽스 스트림의 구조를 나타낸다. 제일 위의 행은 AV 클립에 다중화될 TS 패킷 라인을 나타낸다. 위에서 두 번째 행은 그래픽스 스트림을 구성하는 PES 패킷 라인을 나타낸다. PES 패킷 라인은 기설정된 PID를 갖는 TS 패킷으로부터 페이로드(payload)를 검색하고 검색된 페이로드를 연결함으로써 구성된다.
위에서 세 번째 행은 그래픽스 스트림의 구조를 나타낸다. 그래픽스 스트림은 프리젠테이션 합성 세그먼트(PCS), 윈도우 정의 세그먼트(WDS), 팔레트 정의 세그먼트(PDS), 오브젝트 정의 세그먼트(ODS), 및 디스플레이 설정 종료 세그먼트(END)로 명명된 기능 세그먼트들로 이루어진다. 상기한 기능 세그먼트들 중, PCS는 화면 합성 세그먼트로 불리고, WDS, PDS, ODS, 및 END는 정의 세그먼트로 불린다. PES 패킷과 각 기능 세그먼트는 1대1로 대응하거나, 1대 다수로 대응한다. 다시 말하면, 하나의 기능 세그먼트는 PES 패킷으로 변환된 후 BD-ROM에 기록되거나, 여러 조각으로 분할되어 하나 이상의 PES 패킷으로 변환된 후 BD-ROM에 기록된다.
도 4b는 기능 세그먼트들을 변환하여 취득한 PES 패킷을 나타낸다. 도면에 나타낸 것과 같이, PES 패킷은 패킷 헤더와 페이로드로 이루어지고, 페이로드는 기능 세그먼트의 실제 본체이다. 패킷 헤더는 기능 세그먼트에 대응하는 DTS와 PTS를 포함한다. 패킷 헤더에 포함된 DTS와 PTS는 이하 기능 세그먼트의 DTS 및 PTS라 한다.
상기한 다양한 종류의 기능 세그먼트는 도 5에 나타낸 논리구조를 구성한다. 도 5는 다양한 종류의 기능 세그먼트로 구성된 논리구조를 나타낸다. 도면에서, 가장 위의 행은 에포크(EPOCH)를 나타내고, 중간 행은 표시 설정(DS)을 나타내며, 가장 아래 행은 기능 세그먼트를 나타낸다.
중간 행에 나타낸 DS 각각은 그래픽스 스트림을 구성하는 모든 다수의 기능 세그먼트 중 하나의 화면에 대한 그래픽스를 합성하는 기능 세그먼트의 그룹이다. 도면의 파선은 가장 아래 행의 기능 세그먼트가 속하는 DS를 나타내고, 일련의 기능 세그먼트 PCS, WDS, PDS, ODS, 및 END가 하나의 DS를 구성하는 것을 보여준다. 재생장치는 DS를 구성하는 기능 세그먼트를 판독함으로써 한 화면에 대한 그래픽스를 생성할 수 있다.
가장 위의 행에 나타낸 에포크는 시간을 나타내며, 메모리 관리는 한 에포크의 AV 클립 재생의 일정표를 따라 시간상으로 연속적이다. 또한, 한 에포크는 동일한 시간에 할당된 한 그룹의 데이터를 나타낸다. 여기서 설명한 메모리는 한 화면에 대한 그래픽스를 저장하는 그래픽스 플레인, 및 압축해제된 그래픽스 데이터를 저장하는 오브젝트 버퍼이다. 메모리 관리가 연속적이라는 것은 그래픽스 플레인이나 오브젝트 버퍼의 소거(flash)가 에포크에서 일어나지 않으며, 그래픽스의 삭제와 표현은 그래픽스 플레인의 소정의 직사각 영역에서 수행될 뿐이라는 것을 의미한다(여기서 소거는 플레인이나 버퍼의 저장 데이터의 모든 내용을 제거하는 것을 나타낸다). 직사각 영역의 크기와 위치는 한 에포크 중에 고정된다. 그래픽스의 삭제와 표현이 그래픽스 플레인의 소정의 직사각 영역에서만 수행되는 한, 픽처와 그래픽스 사이의 동기 재생은 보장된다. 다시 말하면, 에포크는 재생 일정의 단위이고, 이 단위로 픽처와 그래픽스가 동기하여 재생되는 것이 보장된다. 그래픽스가 삭제되고 표현되는 영역이 다른 위치로 이동하는 경우, 영역을 이동하기 위한 일정상의 위치와 그 위치가 새로운 에포크가 된 후의 시간을 정의하는 것이 필요하다. 동기 재생은 두 에포크 사이의 경계에서는 보장되지 않는다.
실제 영화를 볼 때, 한 에포크는 자막이 화면의 같은 직사각 영역에 표시되는 시간이다. 도 6은 자막과 에포크의 표시 위치 사이의 관계를 나타낸다. 도면에 도시된 예에서, 5개의 자막 "Actually...", "I was hiding", "my feelings.", "I always", 및 "loved you"가 나타나는 위치가 영화의 픽처에 따라 이동한다. 구체적으로, 자막 "Actually...", "I was hiding", 및 "my feelings."는 화면의 아래에 나타나지만, 자막 "I always", "loved you"는 화면의 위에 나타난다. 직사각 영역의 위치는 화면을 시청할 때 자막이 픽처를 방해하지 않도록 이동한다. 자막이 아래에 나타나는 시간은 에포크 1이고, 자막이 위에 나타나는 이어지는 시간은 에포크 2이다. 에포크 1과 2는 각각 자막이 표현되는 다른 영역을 갖는다. 에포크 1의 영역은 화면의 아래에 위치한 윈도우 1이고, 에포크 2의 영역은 화면의 위에 위치한 윈도우 2이다. 메모리 관리는 에포크 1과 2 각각에 연속적이고, 따라서 윈도우 1과 2에 자막을 표현하는 것은 픽처와 동기한다.
다음, 표시 설정(DS)에 대한 상세한 내용을 설명한다.
도 5의 파선 hkl1과 hkl2는 중간 행의 어떤 세그먼트가 어떤 에포크에 속하는지를 나타낸다. 일련의 DS "EpochStart", "AcquisitionPoint", 및 "NormalCase"는 가장 위의 행의 에포크를 구성한다. "EpochStart", "AcquisitionPoint", 및 "NormalCase"는 DS의 종류들이고, "AcquisitionPoint"와 "NormalCase" 사이의 순서는 중요하지 않으며, 이들 중 어느 것이라도 먼저 올 수 있다.
Epoch Start는 새로운 에포크의 시작을 나타내는 "새로운 표시"의 표시효과를 갖는 DS이다. 이 때문에, Epoch Start는 새로운 화면 합성을 표시하는데 필요한 모든 기능 세그먼트를 포함한다. Epoch Start는, 영화의 챕터(chapter)와 같이, AV 클립의 스킵 동작의 대상인 위치에 제공된다.
Acquisition Point는 "표시 리프레시"의 표시효과를 갖는 DS로서, 그래픽스를 표현하는데 이용되는 내용에서 앞선 DS인 Epoch Start와 동일하다. Acquisition Point는 에포크의 시작점에 제공되지 않지만, 새로운 화면 합성을 표시하는데 필요한 모든 기능 세그먼트를 포함한다. 따라서, Acquisition Point에 대한 스킵 동작이 수행될 때 실패없이 그래픽스를 표시할 수 있다. 따라서, Acquisition Point로 에포크의 중간에 화면을 합성할 수 있다.
Acquisition Point는 스킵 동작의 목표일 수 있는 위치에 제공된다. 이러한 위치의 일 예는 시간 검색을 수행할 때 특정될 수 있는 위치이다. 시간 검색은 사용자가 특정한 시간에 대응하는 재생지점으로부터 재생을 개시하도록 사용자의 시간 입력에 대응하는 동작이다. 시간은 10분 또는 10초 단위로 대략 특정되고, 따라서 재생이 시작되는 포인트가 10분 간격 또는 10초 간격으로 제공된다. 재생을 시 작할 수 있는 포인트에 Acquisition Point를 제공함으로써, 시간 검색후 재생을 부드럽게 수행할 수 있다.
Normal Case는 "표시 갱신"의 표시효과를 갖는 DS로서, 앞선 화면 합성과 다른 요소만을 포함한다. 구체적으로, DSv의 자막이 DSu의 자막과 동일하지만 화면이 DSv와 DSu에서 다르게 표시되는 경우, PCS만을 포함하도록 DSv가 제공되고 DSv를 Normal Case로 만든다. 이것에 의해, 앞선 DS의 ODS과 동일한 내용을 갖는 ODS를 제공할 필요가 없고, BD-ROM의 데이터 크기는 감소될 수 있다. 반면에, Normal Case로서 DS가 차이만을 포함하기 때문에, Normal Case를 단독으로 이용하여 화면을 합성할 수 없다.
정의 세그먼트(ODS, WDS, 및 PDS)가 이하 설명된다. 오브젝트 정의 세그먼트(ODS)는 그래픽스 오브젝트를 정의하는 기능 세그먼트이다. 먼저, 그래픽스 오브젝트에 대해 설명한다. BD-ROM에 기록된 AV 클립의 상품 강조점은 하이-비전만큼 높은 해상도이며, 따라서 그래픽스 오브젝트에 대한 해상도는 1920×1080 픽셀로 설정된다. 1920×1080 픽셀의 높은 해상도 때문에, 특정 문자 스타일의 자막을 화면에 명료하게 표시할 수 있다. 자막의 색상에 관한 한, 각 픽셀에 대한 인덱스값(색상차 적색 Cr, 색상차 청색 Cb, 휘도 Y, 및 투명도 T)의 비트 길이는 8 비트이고, 따라서 자막에 대해 풀 컬러(16,777,216 컬러) 중에서 임의의 256 컬러를 선택할 수 있다. 그래픽스 오브젝트로 구현된 자막은 투명한 배경위에 텍스트를 위치시킴으로써 표현된다.
그래픽스 오브젝트를 정의하는 ODS의 신택스가 도 7a에 도시되어 있다. ODS 는 세그먼트가 ODS라는 것을 나타내는 segment_type, ODS의 데이터 길이를 나타내는 segment_length, 에포크에서 ODS에 대응하는 그래픽스 오브젝트를 고유하게 식별하는 segment_id, 에포크 내 ODS의 버전을 나타내는 object_version_number, last_insequence_flag, 및 그래픽스 오브젝트 전체 또는 일부에 대응하는 연속 바이트 시퀀스인 object_data_fragment로 이루어진다.
object_id는 에포크에서 ODS에 대응하는 그래픽스 오브젝트를 고유하게 식별하기 위한 것이다. 그래픽스 스트림의 에포크는 동일한 ID를 갖는 하나 이상의 ODS를 포함한다. 또한, 동일한 ID를 갖는 ODS는 동일한 폭과 높이를 가지며, 오브젝트 버퍼의 공통 영역에 할당된다. 동일한 ID를 갖는 ODS의 하나가 공통 영역에서 독출된 후, 독출된 ODS는 동일한 ID를 갖는 그 후의 ODS에 의해 오버라이트된다. 비디오 스트림의 재생이 진행될 때 오브젝트 버퍼에 독출된 ODS를 동일한 ID를 갖는 그 후의 ODS로 오버라이트함으로써, ODS에 의한 그래픽스는 그에 따라 갱신된다. 동일한 ID를 갖는 그래픽스 오브젝트의 폭과 높이는 동일해야 한다는 크기 제한은 한 에포크 중에만 적용되고, 다른 에포크의 그래픽스 오브젝트는 다른 크기를 가질 수 있다.
다음, last_sequence_flag와 object_data_fragment에 대해 설명한다. 일부 경우, PES 패킷의 페이로드 제한 때문에 자막을 구성하는 비압축 그래픽스를 하나의 ODS에 저장할 수 없다. 이러한 경우, 그래픽스는 일련의 연속적인 조각(fragment)들로 분리되고, 하나의 조각이 object_data_fragment로 설정된다. 하나의 그래픽스 오브젝트가 하나 이상의 조각으로서 저장될 때, 최종 조각을 제외하고 모든 조각은 같은 크기를 갖는다. 최종 조각은 이전 조각의 크기보다 작거나 같다. 조각을 나르는 ODS는 DS에 동일한 연속 순서로 나타나고, 시퀀스의 끝은 last_sequence_flag를 갖는 ODS가 나타낸다. 상기한 ODS 신택스는 앞선 PES로부터 조각들이 쌓인다는 가정에 기초하지만, 조각은 각 PES가 공백부를 포함하도록 쌓일 수 있다.
다음, 팔레트 정의 세그먼트(PDS)를 설명한다. PDS는 색상변환을 위한 팔레트를 정의하는데 이용된다. 도 7b는 PDS의 신택스를 보여준다. PDS는, 그 세그먼트가 PDS라는 나타내는 segment_type, PDS의 데이터 길이를 나타내는 segment_length, PDS에 포함된 팔레트를 고유하게 식별하는 palette_id, 에포크 내 PDS의 버전을 나타내는 palette_version_number, 및 팔레트의 엔트리 번호를 지정하는 palette_entry_id로 이루어진다. palette_entry_id는 색상차 적색(Cr_value), 색상차 청색(Cb_value), 휘도(Y_value), 및 투명도(T_value)를 나타낸다.
다음, 윈도우 정의 세그먼트(WDS)에 대해 설명한다.
WDS는 그래픽스 플레인의 직사각 영역을 정의하는데 이용된다. 상기한 바와 같이, 메모리 관리는 삭제와 표현이 그래픽스 플레인의 어떤 영역 내에서 수행될 때에만 연속적이다. 그래픽스 플레인의 영역은 WDS에 의해 정의되고 "윈도우(Window)"로 불린다. 도 8a는 WDS의 신택스를 나타낸다. 도면에 나타낸 바와 같이, WDS는 그 세그먼트가 WDS라는 것을 나타내는 segment_type, WDS의 데이터 길이를 나타내는 segment_length, 그래픽스 플레인의 윈도우를 고유하게 식별하는 window_id, 그래픽스 플레인의 윈도우의 최상 좌측 픽셀의 수평 어드레스를 지정하 는 window_horizontal_position, 그래픽스 플레인의 윈도우의 최상 좌측 픽셀의 수직 어드레스를 지정하는 window_vertical_position, 그래픽스 플레인의 윈도우 폭을 지정하는 window_width, 및 그래픽스 플레인의 윈도우 높이를 지정하는 window_height로 이루어진다.
window_horizontal_position, window_vertical_position, window_width, 및 window_height가 가질 수 있는 값의 범위를 이하 설명한다. 이 값을 위한 좌표 시스템은 그래픽스 플레인의 영역 내부이며, 그 크기는 높이에 대해서 window_height 그리고 폭에 대해서 window_width에 의해 2차원적으로 나타낸다.
window_horizontal_position은 그래픽스 플레인의 윈도우의 최상 좌측 픽셀의 수평 어드레스를 지정하며, 0 내지 (window_width)-1 범위이다. 또한, window_vertical_position은 그래픽스 플레인의 윈도우의 최상 좌측 픽셀의 수w직 어드레스를 지정하며, 0 내지 (window_height)-1 범위이다.
window_width는 그래픽스 플레인의 윈도우의 폭을 지정한다. 지정된 폭은 1 내지 (video_width) - (window_horizontal_position) 범위 내에 있다. 또한, window_height는 그래픽스 플레인의 윈도우의 높이를 지정하며, 지정된 높이는 1 내지 (video_height) - (window_vertical_position) 범위 내에 있다.
각 에포크에 대한 그래픽스 플레인의 윈도우의 위치와 크기는 window_horizontal_position, window_vertical_position, window_width, 및 window_height에 의해 정의된다. 따라서, 오소링시 윈도의 위치와 크기를 조정할 수 있어 한 에포크의 윈도우가 영화를 시청할 때 픽처에 방해가 되지 않는 위치에 나타나도록 한다. 이것에 의해, 자막의 가독성은 더 높아진다. 각 에포크에 대해 WDS가 정의되기 때문에, 픽처가 시간 경과에 따라 변하더라도 픽처에 따른 윈도우의 위치를 조정할 수 있다. 그 결과, 영화의 품질은 자막이 영화의 본체에 포함된 경우와 같이 높게 유지된다.
다음, 표시 설정 세그먼트의 종료(END)가 설명된다. END는 DS의 전송이 완료되었다는 지시를 제공한다. END는 하나의 DS의 최종 ODS 직후에 스트림에 삽입된다. END는 그 세그먼트가 END라는 것을 나타내는 segment_type과 END의 데이터 길이를 나타내는 segment_length로 이루어진다. END는 더 이상의 설명을 필요로 하는 어떠한 다른 요소도 포함하지 않는다.
다음, 프리젠테이션 제작 세그먼트(PCS)가 이하 설명된다.
PCS는 대화형 표시를 만드는데 이용되는 기능 세그먼트이다. 도 8b는 PCS의 신택스를 보여주고 있다. 도면에 나타난 바와 같이, PCS는 segment_type, segment_length, composition_number, composition_state, palette_update_flag, palette_id, 및 윈도우 정보 1-m으로 구성된다.
Composition_number는 0 내지 15 범위의 값으로 DS의 그래픽스 갱신을 식별한다. 그래픽스 갱신이 에포크의 선두와 PCS 사이에 존재하면, composition_number는 그래픽스 갱신이 일어날 때마다 증분된다.
Composition_state는 PCS가 포함되는 DS의 종류, 즉 Normal Case, Acquisition Point, 또는 Epoch Start를 나타낸다.
Palette_update_flag는 PCS가 Palette only Display Update를 서술한다는 것 을 나타낸다. Palette only Display Update는 팔레트만이 바로 이전 팔레트로부터 갱신된다는 것을 나타낸다. palette_update_flag 필드는, Palette only Display Update가 수행되면, "1"로 설정된다.
Palette_id는 Palette only Display Update에 사용되는 팔레트를 식별한다.
윈도우 정보 1-m은 PCS가 속하는 DS의 각 윈도우를 제어하는 방법을 나타낸다. 도 8b의 파선 wd1은 윈도우 정보 i의 내부 신택스를 상세하게 나타낸 것이다. 윈도우 정보 i는 object_id, window_id, object_cropped_flag, object_horizontal_position, object_vertical_position, 및 cropping_rectangle_information 1-n으로 구성된다.
Object_id는 윈도우 정보 i에 대응하는 윈도우의 ODS를 식별한다.
Window_id는 그래픽스 오브젝트가 PCS에서 할당되는 윈도우를 식별한다. 두 개의 그래픽스 오브젝트까지 하나의 윈도우에 할당될 수 있다.
Object_cropped_flag는 크롭된 그래픽스 오브젝트의 오브젝트 버퍼에의 표시와 비표시 사이를 스위칭하는데 이용된다. Object_cropped_flag이 "1"로 설정된 경우, 크롭된 그래픽스 오브젝트는 오브젝트 버퍼에 표시되고, "0"으로 설정되면, 그래픽스 오브젝트는 표시되지 않는다.
Object_horizontal_position은 그래픽스 플레인의 그래픽스 오브젝트의 최상 좌측 픽셀의 수평 어드레스를 지정한다.
Object_vertical_position은 그래픽스 플레인의 그래픽스 오브젝트의 최상 좌측 픽셀의 수직 어드레스를 지정한다.
Cropping_rectangle_information 1-n은 object_cropped_flag이 "1"로 설정될 때 사용되는 요소이다. 파선 wd2는 cropping_rectangle_information i에 대한 내부 신택스를 상세하게 설명하는 것이다. 파선 wd2가 나타내는 바와 같이, cropping_rectangle_informationi는 4개의 필드object_cropping_horizontal_position, object_cropping_vertical_position, object_cropping_width, 및 object_cropping_height로 이루어진다.
Object_cropping_horizontal_position은 그래픽스 플레인의 그래픽스 오브젝트의 표현 중에 사용되는 크로핑(cropping) 사각의 최상 좌측의 수평 어드레스를 지정한다. 크로핑 사각은 그래픽스 오브젝트의 한 부분을 지정하여 잘라내는데 사용되는 크로핑 프레임으로, ETSI EN 300 743 표준의 Region에 대응한다.
Object_cropping_vertical_position은 그래픽스 플레인의 그래픽스 오브젝트의 표현 중에 사용되는 크로핑 사각의 최상 좌측의 수직 어드레스를 지정한다.
Object_cropping_width는 크로핑 사각의 폭을 지정한다.
Object_cropping_height는 크로핑 사각의 높이를 지정한다.
PCS의 구체적인 예를 이하에 상술한다. 예에서, 도 6에 도시된 바와 같이, 자막 "Actually...", "I was hiding", 및 "my feelings."가 픽처가 진행됨에 따라 그래픽스 플레인에 3회 기입함으로써 점차 나타난다. 도 9는 이러한 자막 표시를 구현하기 위한 설명의 일 예이다. 도면의 에포크는 DS1(Epoch Start), DS2(Normal Case), 및 DS3(Normal Case)를 포함한다. DS1은 자막이 표시되는 윈도우를 지정하기 위한 WDS, "Actually... I was hiding my feelings." 라인을 지정하기 위한 ODS, 및 첫 번째 PCS를 포함한다. DS2는 두 번째 PCS를 포함하고, DS3은 세 번째 PCS를 포함한다.
도 10-12는 DS에 포함된 WDS와 PCS의 예를 보여준다. 도 10은 DS1의 PCS의 예를 보여준다.
도 10에서, WDS의 window_horizontal_position과 window_vertical_position은 LP1, 즉 그래픽스 플레인의 윈도우의 최상 좌측 픽셀의 위치로 나타내고 있다. Window_width와 window_height는 각각 윈도우의 폭과 높이를 나타낸다.
도 10에서, object_cropping_horizontal_position과 object_cropping_vertical_position은, 원점이 그래픽스 오브젝트의 최상 좌측 픽셀인 좌표 시스템에서 크로핑 사각의 기준점 ST1을 나타낸다. 크로핑 사각은 ST1에서 object_cropping_width까지의 폭과 ST1에서 object_cropping_height까지의 높이를 갖는 영역이다(두꺼운 선 프레임으로 나타낸 사각). 크롭된 그래픽스 오브젝트는, 그래픽스 플레인의 object_horizontal_position과 object_vertical_position(그래픽스 오브젝트의 최상 좌측 픽셀)에 원점을 갖는 좌표 시스템에 기준점을 갖고 파선 프레임 cp1로 나타낸 사각 안에 위치한다. 이것에 의해, "Actually..."는 그래픽스 플레인의 윈도우에 기입되고, 영화 픽처와 합성되어 화면에 표시된다.
도 11은 DS2의 PCS의 예를 보여준다. DS2의 WDS는 DS1의 WDS와 동일하기 때문에 DS2의 WDS는 설명하지 않는다. DS2의 크로핑 정보에 대한 표현은 도 10에 도시된 크로핑 정보의 표현과 다르다.
도 11에서, 크로핑 정보의 object_cropping_horizontal_position과 object_cropping_vertical_position은 오브젝트 버퍼의 "Actually... I was hiding my feelings." 중에서 자막 "I was hiding"의 최상 좌측 픽셀을 나타낸다. Object_cropping_width와 object_cropping_height는 자막 "I was hiding"을 포함하는 사각의 폭과 높이를 나타낸다. 이것에 의해, 자막 "I was hiding"은 그래픽스 플레인의 윈도우에 기입되고, 이어 영화 픽처와 합성되어 화면에 표시된다.
도 12는 DS3의 PCS의 일 예를 보여준다. DS3의 WDS는 DS1의 WDS와 같기 때문에 설명하지 않는다. DS3의 크로핑 정보의 디스크립션은 도 10에 도시된 크로핑 정보의 디스크립션과 다르다.
도 12에서, 크로핑 정보의 object_cropping_horizontal_position과 object_cropping_vertical_position은 오브젝트 버퍼의 "Actually... I was hiding my feelings." 중에서 자막 "my feelings."의 최상 좌측 픽셀을 나타낸다. Object_cropping_width와 object_cropping_height는 자막 "my feelings."를 포함하는 사각의 폭과 높이를 나타낸다. 이것에 의해, 자막 "my feelings."는 그래픽스 플레인의 윈도우에 기입되고, 이어 영화 픽처와 합성되어 화면에 표시된다.
상기한 바와 같이, DS1, DS2, 및 DS3를 기술함으로써, 화면에 자막을 표시하는 효과를 얻을 수 있다. 또한, 다른 종류의 효과를 얻을 수도 있고, 다른 효과를 구현하기 위한 디스크립션 규약을 이하 설명한다.
먼저, Cut-In/Out을 위한 디스크립션 규약을 설명한다. 도 13은 Cut-In/Out이 수행될 때 DS 디스크립션을 타임 라인을 따라 도시하는 예를 보여준다.
도면에서, 윈도우(x, y, u, v)의 x와 y는 각각 window_vertical_position과 window_horizontal_position의 값을 나타내고, u와 v는 각각 widow_width와 window_height의 값을 나타낸다. 또한, 도면에서, 크로핑 사각(a, b, c, d)의 a와 b는 object_cropping_vertical_position과 object_cropping_horizontal_position의 값을 각각 나타내고, c와 d는 object_cropping_width와 object_cropping_height의 값을 각각 나타낸다. 표시 설정 DS11, DS12, 및 DS13은 도면의 재생 타임 라인 상의 점 t11, t12, 및 t13에 있다.
점 t11의 DS11은 composition_state가 "Epoch Start"이고 object_cropped_flag가 "0"(no_cropping_rectangle_visible)인 PCS#0, 그래픽스 플레인의 (100, 100)에 폭 700 × 높이 500의 윈도우를 위한 명령문을 갖는 WDS#0, PDS#0, 자막 "Credits:"를 나타내는 ODS#0, 및 END를 포함한다.
점 t12의 DS12는 PCS#1을 포함하며, PCS#1은 composition_state가 "Normal Case"이고, 그래픽스 오브젝트의 크롭 동작이 오브젝트 버퍼의 (0, 0)부터 600 × 400 사이즈(cropping_rectangle#0(0, 0, 600, 400)) 내에 있다는 것을 나타내며, 그래픽스 플레인의 좌표 (0, 0)(Window#0(0, 0))에 크롭된 그래픽스 오브젝트를 위치시킨다.
점 t13의 DS13은 composition_state가 "Normal Case"이고 크롭된 그래픽스 오브젝트를 제거하도록 object_cropped_flag가 "0"으로 설정되는(no_cropping_rectangle_visible) PCS#2를 포함한다.
상기 설명한 표시 설정에 의하면, 자막 "Credit:"는 t11에서 표시되지 않고, t12에 나타나며, t13에서 다시 표시되지 않아 Cut-In/Out 효과가 구현된다.
두 번째, Fade-In/Out 효과를 위한 디스크립션 규약을 설명한다. 도 14는 Fade-In/Out이 수행될 때 DS의 디스크립션을 타임 라인을 따라 도시한 예를 보여준다. 표시 설정 DS21, DS22, DS23, 및 DS24는 도면의 재생 타임 라인 상의 점 t21, t22, t23, 및 t24에 있다.
점 t21의 DS21은 composition_state가 "Epoch Start"이고 그래픽스 오브젝트의 크롭 동작이 오브젝트 버퍼의 (0, 0)부터 600 × 400 사이즈(cropping_rectangle#0(0, 0, 600, 400)) 내에 있다는 것을 나타내며 그래픽스 플레인의 좌표 (0, 0)(Window#0(0, 0))에 크롭된 그래픽스 오브젝트를 위치시키는 PCS#0, 그래픽스 플레인의 (100, 100)에 폭 700 × 높이 500의 윈도우를 위한 명령문을 갖는 WDS#0, PDS#0, 자막 "Fin"을 나타내는 ODS#0, 및 END를 포함한다.
점 t22의 DS22는 composition_state가 "Normal Case"인 PCS#1과, PDS#1을 포함한다. PDS#1은 PDS#0와 동일한 Cr 및 Cb 레벨을 나타내지만, PDS#1이 나타내는 휘도는 PDS#0의 휘도보다 높다.
점 t23의 DS23은 composition_state가 "Normal Case"인 PCS#2, PDS#2, 및 END를 포함한다. PDS#2는 PDS#1과 동일한 Cr 및 Cb 레벨을 나타내지만, PDS#2가 나타내는 휘도는 PDS#1의 휘도보다 낮다.
점 t24의 DS24는 composition_state가 "Normal Case"이고 object_cropped_flag가 "0"(no_cropping_rectangle_visible)인 PCS와, END를 포함한다.
각 DS는 앞선 DS와 다른 PDS를 지정하며, 따라서, 한 에포크 내 하나 이상의 PCS로 제작된 그래픽스 오브젝트의 휘도는 점차 높아지거나 낮아진다. 이것에 의해 Fade-In/Out 효과를 구현할 수 있다.
다음, 스크롤링을 위한 디스크립션 규약을 설명한다. 도 15는 스크롤링이 수행될 때 타임 라인을 따라 DS의 디스크립션을 도시한 예를 보여준다. 표시 설정 DS31, DS32, DS33, 및 DS34는 도면의 재생 타임 라인 상의 점 t31, t32, t33, 및 t34에 있다.
점 t31의 DS31은 composition_state가 "Epoch Start"이고 object_cropped_flag가 "0"(no_cropping_rectangle_visible)인 PCS#0, 그래픽스 플레인의 (100, 100)에 폭 700 × 높이 500의 윈도우를 위한 명령문을 갖는 WDS#0, PDS#0, 자막 "Credits: Company"를 나타내는 ODS#0, 및 END를 포함한다.
점 t32의 DS32는 PCS#1을 포함하며, PCS#1은 composition_state가 "Normal Case"이고, 그래픽스 오브젝트의 크롭 동작이 오브젝트 버퍼의 (0, 0)부터 600 × 400 사이즈(cropping_rectangle#0(0, 0, 600, 400)) 내에 있다는 것을 나타내며, 그래픽스 플레인의 좌표 (0, 0)(Window#0(0, 0))에 크롭된 그래픽스 오브젝트를 위치시킨다. 오브젝트 버퍼의 (0, 0)으로부터 600 × 400 사이즈의 영역은 2라인에 나타난 자막 "Credits: Company"의 "Credits:" 부분을 포함하며, 따라서 "Credits:" 부분은 그래픽스 플레인 상에 나타난다.
점 t33의 DS33은 PCS#2를 포함하며, PCS#2는 composition_state가 "Normal Case"이고, 그래픽스 오브젝트의 크롭 동작이 오브젝트 버퍼의 (0, 100)부터 600 × 400 사이즈(cropping_rectangle#0(0, 100, 600, 400)) 내에 있다는 것을 나타내 며, 그래픽스 플레인의 좌표 (0, 0)(Window#0(0, 0))에 크롭된 그래픽스 오브젝트를 위치시킨다. 오브젝트 버퍼의 (0, 100)으로부터 600 × 400 사이즈의 영역은 2라인에 나타난 자막 "Credits: Company"의 "Credits:" 부분과 "Company" 부분을 포함하며, 따라서 "Credits:" 부분과 "Company" 부분이 그래픽스 플레인 상에 나타난다.
점 t34의 DS34는 PCS#3을 포함하며, PCS#3은 composition_state가 "Normal Case"이고, 그래픽스 오브젝트의 크롭 동작이 오브젝트 버퍼의 (0, 200)부터 600 × 400 사이즈(cropping_rectangle#0(0, 200, 600, 400)) 내에 있다는 것을 나타내며, 그래픽스 플레인의 좌표 (0, 0)(Window#0(0, 0))에 크롭된 그래픽스 오브젝트를 위치시킨다. 오브젝트 버퍼의 (0, 200)으로부터 600 × 400 사이즈의 영역은 2라인에 나타난 자막 "Credits: Company"의 "Company" 부분을 포함하며, 따라서 "Company" 부분은 그래픽스 플레인 상에 나타난다. 상기한 PCS 디스크립션에 의해, 2 라인의 자막을 스크롤 다운할 수 있다.
마지막으로, Wipe-In/Out 효과에 대한 디스크립션 규약을 설명한다. 도 16은 Wipe-In/Out이 수행될 때 타임 라인을 따라 DS의 디스크립션을 도시한 예를 보여준다. 표시 설정 DS51, DS52, DS53, 및 DS54는 도면의 재생 타임 라인 상의 점 t51, t52, t53, 및 t54에 있다.
점 t51의 DS51은 composition_state가 "Epoch Start"이고 object_cropped_flag가 "0"(no_cropping_rectangle_visible)인 PCS#0, 그래픽스 플레인의 (100, 100)에 폭 700 × 높이 500의 윈도우를 위한 명령문을 갖는 WDS#0, PDS#0, 자막 "Fin"을 나타내는 ODS#0, 및 END를 포함한다.
점 t52의 DS52는 PCS#1을 포함하며, PCS#1은 composition_state가 "Normal Case"이고, 그래픽스 오브젝트의 크롭 동작이 오브젝트 버퍼의 (0, 0)부터 600 × 400 사이즈(cropping_rectangle#0(0, 0, 600, 400)) 내에 있다는 것을 나타내며, 그래픽스 플레인의 좌표 (0, 0)(Window#0(0, 0))에 크롭된 그래픽스 오브젝트를 위치시킨다. 오브젝트 버퍼의 (0, 0)으로부터 600 × 400 사이즈의 영역은 2라인에 나타난 자막 "Fin"을 포함하며, 따라서 자막 "Fin"이 그래픽스 플레인 상에 나타난다.
점 t53의 DS53은 PCS#2를 포함하며, PCS#2는 composition_state가 "Normal Case"이고, 그래픽스 오브젝트의 크롭 동작이 오브젝트 버퍼의 (200, 0)부터 400 × 400 사이즈(cropping_rectangle#0(200, 0, 400, 400)) 내에 있다는 것을 나타내며, 그래픽스 플레인의 좌표 (200, 0)(Window#0(200, 0))에 크롭된 그래픽스 오브젝트를 위치시킨다. 이것에 의해, 윈도우의 좌표 (200, 0)와 (400, 400)가 나타내는 영역은 표시 영역으로 되고, 좌표 (0, 0)과 (199, 400)이 나타내는 영역은 비표시 영역이 된다.
점 t54의 DS54는 PCS#3을 포함하며, PCS#3은 composition_state가 "Normal Case"이고, 그래픽스 오브젝트의 크롭 동작이 오브젝트 버퍼의 (400, 0)부터 200 × 400 사이즈(cropping_rectangle#0(400, 0, 200, 400)) 내에 있다는 것을 나타내며, 그래픽스 플레인의 좌표 (400, 0)(Window#0(400, 0))에 크롭된 그래픽스 오브젝트를 위치시킨다. 이것에 의해, 좌표 (0, 0)과 (399, 400)이 나타내는 영역은 비 표시 영역이 된다.
이와 같이, 비표시 영역이 커짐에 따라 표시 영역을 더 작게 되어 Wipe-In/Out 효과가 구현된다.
상기한 바와 같이, Cut-In/Out, Fade-In/Out, Wipe-In/Out, 및 스크롤링과 같은 다양한 효과가 대응하는 스크립트를 이용하여 구현될 수 있으며, 따라서 자막을 제작하는데 다양한 배열을 할 수 있다.
상기한 효과를 구현하기 위한 제한은 다음과 같다. 스크롤링 효과를 구현하기 위해서, 윈도우를 제거하고 다시 그리는 동작이 필요하다. 도 15의 예를 들면, 그래픽스 플레인으로부터 t32의 그래픽스 오브젝트 "Credits:"를 제거하기 위하여 "윈도우 소거(Window clear)"를 수행하고, 이어 t32와 t33 사이의 간격 중에 "Credits:"의 하부와 "Company"의 상부를 그래픽스 플레인에 기입하는 "윈도우 리드로우(Window redraw)"를 수행할 필요가 있다. 상기 간격이 비디오 프레임의 간격과 동일하다고 가정하면, 스크롤링 효과를 위해 바람직한, 오브젝트 버퍼와 그래픽스 플레인 간의 전송률은 중요한 포인트가 된다.
여기서, 윈도우가 얼마나 클 지에 대한 제한을 살펴본다. Rc는 오브젝트 버퍼와 그래픽스 플레인 간의 전송률이다. 여기서 최악의 시나리오는 윈도우 소거와 윈도우 리드로우 양자를 전송률 Rc로 수행하는 것이다. 이 경우, 윈도우 소거와 윈도우 리드로우 각각은 Rc의 반(Rc/2)의 전송률로 수행되는 것이 요구된다.
윈도우 소거와 윈도우 리드로우를 비디오 프레임과 동기시키기 위하여 다음의 식이 만족될 필요가 있다.
윈도우 크기 × 프레임 속도 ≒ Rc/2
프레임 속도가 29.97이면, Rc는 아래의 식으로 표현된다.
Rc = 윈도우 크기 × 2 × 29.97
자막을 제작하는데 있어서, 윈도우 크기는 그래픽스 플레인의 적어도 25% 내지 33%를 차지한다. 그래픽스 플레인의 전체 픽셀의 수는 1920 × 1080이다. 픽셀당 인덱스 비트 길이가 8 비트라는 것을 고려하면, 그래픽스 플레인의 총 용량은 2 Mbyte (≒ 1920 × 1080 × 8)이다.
윈도우 크기가 그래픽스 플레인의 총 용량의 1/4인 것을 고려하면, 윈도우 크기는 500 Kbyte(= 2Mbyte/4)이다. 이 값을 상기의 식에 대입하면, Rc는 256 Mbps (= 500 Kbyte × 2 × 29.97)이다. 윈도우 소거와 윈도우 리드로우에 대한 비율이 프레임 속도의 1/2이나 1/4일 수 있다면, Rc가 같더라도 윈도우 크기를 2배 또는 4배로 할 수 있다.
윈도우 크기를 그래픽스 플레인의 25% 내지 33%로 유지하고 자막을 256 Mbps의 전송률로 표시함으로써, 어떠한 종류의 표시 효과가 구현되어야 하더라도 그래픽스와 영화 픽처 간의 동기 표시를 유지할 수 있다.
다음, 윈도우의 위치, 크기, 및 영역을 설명한다. 상기한 바와 같이, 윈도우의 위치와 영역은 한 에포크 내에서 변화하지 않는다. 위치와 크기가 변화하면 그래픽스 플레인의 목표 기입 어드레스가 변화할 필요가 있고, 어드레스를 변화시킴으로써 오브젝트 버퍼로부터 그래픽스 플레인까지의 전송률을 낮게 하는 오버헤드를 일으키기 때문에 윈도우의 위치와 크기는 한 에포크 내에서 동일하게 설정된다.
윈도우 당 그래픽스 오브젝트의 개수는 제한을 갖는다. 이 개수의 제한은 디코드된 그래픽스 오브젝트를 전송하는데 있어 오버헤드를 줄이기 위해 제공된다. 여기서, 오버헤드는 그래픽스 오브젝트의 에지의 어드레스를 설정할 때 생성되며, 에지의 개수가 많을수록 오버헤드가 많이 생성된다.
도 17은 비교예들, 즉 윈도우가 4개의 그래픽스 오브젝트를 갖는 일 예와 윈도우가 2개의 그래픽스 오브젝트를 갖는 다른 예를 보여준다. 4개의 그래픽스 오브젝트를 갖는 예의 에지의 개수는 2개의 그래픽스 오브젝트를 갖는 예의 에지의 개수의 2배이다.
그래픽스 오브젝트의 개수에 제한이 없으면, 그래픽스를 전송하는데 얼마나 많은 오버헤드가 생성될 수 있는지를 알지 못하게 되고, 따라서 전송 로드가 극단적으로 증가 및 감소한다. 반면에, 윈도우 내 그래픽스 오브젝트의 최대 개수가 2인 경우, 전송률은 4개의 오버헤드까지 고려하여 설정될 수 있다. 따라서, 최소 전송률의 개수를 설정하는 것이 더 용이하다.
다음, PCS와 ODS를 갖는 DS가 AV 클립의 타임 라인에 어떻게 할당되는지를 설명한다. 에포크는 그 안에서 메모리 관리가 재생 타임 라인을 따라 연속적인 시간이다. 에포크는 하나 이상의 DS로 구성되기 때문에, DS를 AV 클립의 재생 타임 라인에 할당하는 방법이 중요하다. AV 클립의 재생 타임 라인은 AV 클립에 다중화된 비디오 스트림을 구성하는 픽처 데이터의 각 부분의 디코딩과 재생을 위한 타이밍을 지정하기 위한 타임 라인(time line)이다. 재생 타임 라인 상의 디코딩 및 재생 타이밍은 90 KHz의 정밀도(accuracy)로 표현된다. DS의 PCS와 ODS에 첨부된 DTS 와 PTS는 재생 타임 라인 상의 동기 제어를 위한 타이밍을 나타낸다. 표시 설정을 재생 타임 라인에 할당하는 것은 PCS와 ODS에 첨부된 DTS와 PTS를 이용하여 동기 제어를 수행하는 것을 의미한다.
먼저, ODS에 첨부된 DTS와 PTS를 이용하여 동기 제어가 어떻게 수행되는지를 설명한다.
DTS는 90 KHz의 정밀도로 ODS를 시작하는 시간을 나타내고, PTS는 디코딩이 종료하는 시간을 나타낸다.
DTS의 종료는 동시에 끝나지 않고, 일정한 시간 길이를 갖는다. 디코드 기간의 시작점과 종료점을 명확하게 나타내기 위한 요청에 대응하여, ODS의 DTS와 PTS는 각각 디코딩이 시작하고 종료하는 시간을 나타낸다.
PTS 값은 최종 기한을 나타내고, 따라서 ODS의 디코딩은 PTS가 나타내는 시간까지 완료되어야 하고 압축해제된 그래픽스 오브젝트가 재생장치의 오브젝트 버퍼에 기입될 필요가 있다.
DSn의 임의의 ODSj의 디코드 개시시간은 90 KHz의 정밀도로 DTS(DSn[ODS])에 의해 나타난다. 디코드 기간의 최대 길이를 DTS(DSn[ODS])에 추가하는 것은 ODSj의 디코딩이 종료하는 시간이다.
ODSj의 크기가 "SIZE(DSn[ODSj])이고 ODS의 디코딩 속도가 "Rd"인 경우, 초 단위로 나타낸 디코딩에 필요한 최대 시간은 "SIZE(DSn[ODSj])//Rd"로 표현된다. 부호 "//"는 소수 이상은 반올림하는 나눗셈 연산자를 나타낸다.
최대 시간을 90 KHz의 정밀도로 표현된 수로 변환하고 ODSj의 DTS에 추가함 으로써, PTS에 의해 나타나는 디코딩이 종료하는 시간(90 khz)이 계산된다.
DSn의 ODSj의 PTS는 다음 식으로 표현된다.
PTS(DSn[ODSJ]) = DTS(DSn[ODSj]) + 90,000 × (SIZE(DSn[ODSj])//Rd)
또한, 2개의 연속적인 ODS, 즉 ODSj와 ODSj+1 사이의 관계는 다음의 식을 만족할 필요가 있다.
PTS(DSn[ODSj]) ≤ DTS(DSn[ODSj+1])
다음, PCS의 DTS와 PTS의 설정을 설명한다.
PCS는, DSn의 제 1 ODS(ODS1)의 디코드 개시시간(DTS(DSn[ODS1])) 이전에 그리고 DSn의 제 1 PDS(PDS1)이 유효하게 되는 시간(PTS(DSn[PDS1])) 이전에 재생장치의 오브젝트 버퍼에 로드될 필요가 있다. 따라서, DTS는 다음의 식을 만족하도록 설정될 필요가 있다.
DTS(DSn[PCS]) ≤ DTS(DSn[ODS1])
DTS(DSn[PCS]) ≤ PTS(DSn[PDS1])
또한, DSn 내 PCS의 PTS는 다음의 식으로 표현된다.
PTS(DSn[PCS]) ≥ DTS(DSn[PCS]) + decode_duration(DSn)
"decode_duration(DSn)"은 PCS를 갱신하는데 사용되는 모든 그래픽스 오브젝트를 디코딩하기 위한 시간을 나타낸다. 디코드 시간은 고정값이 아니지만, 재생장치와 디바이스의 상태나 재생장치에 탑재된 소프트웨어에 따라 변화하지 않는다. DSn.PCSn의 화면을 합성하는데 사용되는 오브젝트가 DSn.PCSn.OBJ[j]인 경우, decode_duration(DSn)은 (i) 윈도우를 소거하는데 필요한 시간, (ii) DSn.PCSn.OBJ 를 디코딩하기 위한 디코드 시간, (iii) DSn.PCSn.OBJ의 기입에 필요한 시간에 의해 영향을 받는다. Rd와 Rc가 설정되는 경우, decode_duration(DSn)은 항상 동일하다. 따라서, 오소링시 이 시간의 길이를 계산함으로써 PTS가 계산된다.
decode_duration의 계산은 도 18에 도시된 프로그램에 기초하여 수행된다. 도 19, 20a 및 20b는 프로그램의 알고리즘을 도시적으로 보여주는 플로차트이다. 이하, decode_duration의 계산에 대해 이 도면들을 참조하여 설명한다. 먼저, 도 19에 도시된 플로차트에서, PLANEINITIALIZE 함수가 호출된다(도 19의 단계 S1). PLANEINITIALIZE 함수는 DS를 제작하기 위해 그래픽스 플레인을 초기화하는데 필요한 시간을 계산하기 위한 함수를 호출하는데 사용된다. 도 19의 단계 S1에서, 함수는 변수 DSn, DSn.PCS.OBJ[0], 및 decode_duration과 같이 호출된다.
다음에서 도 20a를 참조하여 PLANEINITIALIZE 함수를 설명한다. 도면에서, initialize_duration은 PLANEINITIALIZE 함수의 리턴값을 나타내는 변수이다.
도 20의 단계 S2는 DSn의 PCS의 page_state가 Epoch Start를 나타내는지에 따라 동작을 스위칭하는 if 명령문이다. Page_state가 Epoch Start를 나타내면(DSn.PCS.page_state==epoch_start, 도 18의 단계 S2=Yes), 그래픽스 플레인을 소거하는데 필요한 시간이 initialize_duration으로 설정된다(단계 S3).
오브젝트 버퍼와 그래픽스 플레인 사이의 전송률 Rc가 상기한 바와 같이 256,000,000이고, 그래픽스 플레인의 총 크기가 video_width*video_height로 설정되는 경우, 소거하는데 필요한 시간은 "video_width*video_height//256,000,000"이다. PTS의 시간 정밀도로 표현하도록 90,000Hz를 곱한 경우, 그래픽스 플레인을 소 거하는데 필요한 시간은 "90,000 × video_width*video_height//256,000,000"이다. 이 시간이 initialize_duration에 추가된다.
Page_state가 Epoch Start를 나타내지 않으면(단계 S2=No), WDS로 정의된 윈도우[i]를 소거하는데 필요한 시간이 모든 윈도우에 대한 initialize_duration에 추가된다(단계 S4). 오브젝트 버퍼와 그래픽스 플레인 사이의 전송률 Rc가 상기한 바와 같이 256,000,000이고 WDS에 속하는 윈도우[i]의 총 크기가 ∑SIZE(WDS.WIN[i])일 때, 소거에 필요한 시간은 "SIZE(WDS.WIN[i])//256,000,000"이다. PTS의 시간 정밀도로 표현하도록 90,000Hz를 곱한 경우, WDS에 속하는 그래픽스 플레인을 소거하는데 필요한 시간은 "90,000 × SIZE(WDS.WIN[i])//256,000,000"이다. 이 시간이 initialize_duration에 추가되고, 그 결과로서 initialize_duration이 리턴된다. 상기한 것이 PLANEINITIALIZE 함수이다.
도 19의 단계 S5는 DSn의 그래픽스 오브젝트의 개수가 1인지 2인지의 여부에 따라 동작을 스위칭하는 것(도 18에서 if(DSn.PCS.num_of_object==2), if(DSn.PCS.num_of_object==1))으로, 개수가 2이면(단계 S5), 그래픽스 플레인을 디코딩하기 위한 대기 시간이 decode_duration에 추가된다(단계 S6). 대기 시간의 계산은 WAIT 함수를 호출함으로써 수행된다(도 18에서 decode_duration+=WAT(DSn, DS.PCS.OBJ[0], decode_duration)). DSn, DS.PCS.OBJ[0], decode_duration 으로 설정된 변수를 이용하여 호출되며, 리턴값은 wait_duration 이다.
도 20b는 WAIT 함수의 동작을 보여주는 플로차트이다.
플로차트에서, invoker의 decode_duration은 current_duration으로 설정된다. Object_definition_ready_time은 DS의 그래픽스 오브젝트의 PTS로 설정된 변수이다.
Current_time은 current_time 및 DSn의 PCS의 DTS의 총 값으로 설정된 변수이다. object_definition_ready_time가 current_time 보다 클 때(단계 S7, if(current_time < object_definition_ready_time))에서 Yes), 리턴값으로서 wait_duration은 object_definition_ready_time와 current_time의 차가 되도록 설정된다(단계 S8, wait_duration += object_definition_ready_time - current_time). Decode_duration은 WAIT 함수의 리턴값이 윈도우를 리도로잉하는데 필요한 시간(90,000 × SIZE(WDS.WIN[i])//256,000,000)에 추가한 시간으로 설정된다.
상기의 설명은 그래픽스 플레인의 개수가 1인 경우에 대한 것이다. 도 19의 단계 S5에서, 그래픽스 플레인의 개수가 2인 경우로 판정된다. DSn의 그래픽스 플레인의 개수가 2 이상이면(도 18에서 if(DSn.PCS.num_of_object==2)), 변수로서 PCS의 OBJ[0]를 사용하여 WAIT 함수가 호출되고, 리턴값을 decode_duration에 추가한다(단계 S10).
이어지는 단계 S11에서, DSn의 OBJ[0]이 속하는 윈도우가 그래픽스 오브젝트[1]가 속하는 윈도우와 동일한 지의 여부가 판정된다(if(DSn.OBJ[0].window_id== DSn.PCS.OBJ[1].window_id). 윈도우가 동일하면, 변수로 OBJ[1]를 사용하여 WAIT 함수가 호출되고, 리턴값 wait_duration을 decode_duration에 추가하며(단계 S12), OBJ[0]가 속하는 윈도우를 리드로잉하는데 필요한 시간(90,000*(SIZE(DSn.WDS.OBJ[0].window_id))//256,000,000)을 decode_duration에 추가한다(단계 S13).
윈도우가 다른 것으로 판정되면(단계 S11, "different"), OBJ[0]가 속하는 윈도우를 리드로잉하는데 필요한 시간(90,000*(SIZE(DSn.WDS.OBJ[0].window_id)) // 256,000,000)이 decode_duration에 추가되고(단계 S15), 변수로서 OBJ[1]을 사용하여 WAIT 함수가 호출되고, 리턴값 wait_duration을 decode_duration에 추가하고(단계 S16), OBJ[1]가 속하는 윈도우를 리드로잉하는데 필요한 시간(90,000*(SIZE(DSn.WDS.OBJ[1].window_id))//256,000,000)이 decode_duration에 추가된다(단계 S17).
Decode-duration은 상기한 알고리즘에 의해 계산된다. OCS의 PTS가 설정되는 구체적인 방법이 이하 설명된다.
도 21a는 하나의 ODS가 하나의 윈도우에 포함되는 경우를 설명한다. 도 21b와 21c는 도 18에 도시된 시간 순서로 값을 보여주는 타이밍 차트이다. 각 차트의 바닥 라인 "ODS Decode"와 중간 라인 "Graphics Plane Access"는 재생시 동시에 수행되는 두 가지 동작을 나타낸다. 상기의 알고리즘은 이 두 가지 동작이 나란히 수행되는 것을 가정하여 설명한다.
Graphics Plane Access는 소거 시간(1)과 기입 시간(3)을 포함한다. 소거 시간(1)은 전체 그래픽스 플레인을 소거하는데 필요한 시간(90,000×(그래픽스 플레인의 크기//256,000,000))이나 또는 그래픽스 플레인의 모든 윈도우를 소거 하는데 필요한 시간(90,000×(윈도우[i]의 크기//256,000,000)) 중의 하나를 나타낸다.
기입 시간(3)은 전체 윈도우를 제작하는데 필요한 시간(90,000×(윈도우[i]의 크기//256,000,000))을 나타낸다.
또한, 디코드 시간(2)은 ODS의 DTS와 PTS 사이의 시간을 나타낸다.
소거 시간(1), 디코드 시간(20), 및 기임 시간(3)의 길이는 소거될 범위, 디코드될 ODS의 크기, 및 그래픽스 플레인에 기입될 그래픽스 오브젝트의 크기에 따라 변할 수 있다. 편의상, 도면의 디코드 시간(2)의 시작점은 소거 시간(3)의 시작점과 동일하다.
도 21b는 디코드 시간(2)이 길고, decode_duration이 디코드 시간(2)과 기입 시간(3)의 총합과 동일한 경우를 나타낸다.
도 21c는 소거 시간(1)이 길고, decode_duration이 소거 시간(1)과 기입 시간(3)의 총합과 동일한 경우를 나타낸다.
도 22a 내지 22c는 2개의 ODS가 하나의 윈도우에 포함되는 경우를 나타낸다. 도 22b와 22c 모두에서 디코드 시간(2)은 두 그래픽스를 디코딩하는데 필요한 총 시간을 나타낸다. 마찬가지로, 기입 시간(3)은 두 그래픽스를 그래픽스 플레인에 기입하는데 필요한 총 시간을 나타낸다.
ODS의 수가 2이더라도, 도 21의 경우와 같은 방법으로 decode_duration을 계산할 수 있다. 2개의 ODS를 디코딩하기 위한 디코드 시간(3)이 긴 경우, 도 22b에 나타난 바와 같이, decode_duration은 디코드 시간(2)과 기입 시간(3)의 총합과 동일하다.
소거 시간(1)이 길 경우, decode_duration은 소거 시간(1)과 기입 시간(3)의 총합과 같다.
도 23a는 두 개의 윈도우 각각이 ODS를 포함하는 경우를 설명한다. 앞의 경우와 같이, 소거 시간(1)이 두 개의 ODS를 디코딩하기 위한 디코드 시간(3) 보다 길 때, decode_duration은 소거 시간(1)과 디코드 시간(2)의 총합과 같다. 그러나, 소거 시간(1)이 디코드 시간(3) 보다 짧은 경우, 디코드 시간(2)이 종료하기 전에 첫 번째 윈도우에 기입할 수 있다. 따라서, decode_duration은 소거 시간(1)과 기입 시간(3) 중 어느 하나, 또는 디코드 시간(2)과 기입 시간(3)의 총합과 같지 않다.
첫 번째 ODS를 디코딩하는데 필요한 시간이 기입 시간(31)이고, 두 번째 ODS를 디코딩하는데 필요한 시간이 기입 시간(32)일 때, 도 23b는 디코드 시간(2)이 소거 시간(1)과 기입시간(31)의 총합보다 긴 경우를 나타낸다. 이 경우, decode_duration은 디코드 기간(2)과 기입 기간(32)의 총합과 같다.
도 23c는 소거 시간(1)과 기입 시간(31)의 총합이 디코드 시간(2) 보다 긴 경우를 나타낸다. 이 경우, decode_duration은 소거 시간(1), 기입 시간(31), 및 기입 시간(32)의 총합과 같다.
그래픽스 플레인의 크기는 미리 재생장치의 모델로부터 알려진다. 또한, 윈도우의 크기, ODS의 크기와 개수는 오소링시 알려진다. 따라서, decode_duration이 소거 시간(1)과 기입 시간(3), 디코드 시간(2)과 기입 시간(3), 디코드 시간(2)과 기입 시간(32), 또는 소거 시간(1)과 기입 시간(3) 및 기입 시간(32) 중 어떤 시간 조합과 같은 지를 알 수 있다.
상기에서 설명한 decode_duration의 계산에 기초하여 ODS의 PTS를 설정함으로써, 픽처 데이터를 갖는 그래픽스를 높은 정밀도로 동기적으로 표시할 수 있다. 높은 정밀도의 이러한 동기 표시는 윈도우를 정의하고 윈도우에 리드로잉할 영역을 한정함으로써 가능하게 된다. 따라서, 윈도우의 개념을 오소링 환경에 도입하는 것은 큰 의미를 갖는다.
다음은 DSn의 WDS의 DTS와 PTS의 설정에 대한 설명이다. WDS의 DTS는 다음 식을 만족하도록 설정될 수 있다.
DTS(DSn[WDS]) ≥ DTS(DSn[PCS])
반면에, DSn의 WDS의 OTS는 그래픽스 플레인에 기입을 시작하는 데드라인을 나타낸다. 그래픽스 플레인의 윈도우에 기입하는데 충분하기 때문에, 그래픽스 플레인에 기입을 시작하는 시간은 WDS를 기입하는데 필요한 시간으로부터 PCS의 PTS가 나타내는 시간 길이를 빼서 결정된다. WDS의 총 크기가 ∑SIZE(WDS.WIN[i])일 때, 소거와 리드로잉을 위한 시간은 "∑SIZE(WDS.WIN[i])//256,000,000" 이다. 90.000KHz의 시간 정밀도로 표현하는 경우, 시간은 "90,000 × ∑SIZE(WDS.WIN[i])//256,000,000" 이다.
따라서, 다음의 식으로 WDS의 PTS를 계산할 수 있다.
PTS(DSn[WDS])=PTS(DSn[PCS]) - 90,000×∑SIZE(WDS.WIN[i])//256,000,000
WDS에 나타난 PTS는 데드라인이고, PTS 보다 빠르게 그래픽스 플레인에 기입을 시작할 수 있다. 환언하면, 도 23에 도시된 바와 같이, 일단 윈도우 중 하나에 표현될 ODS를 디코딩하면, 디코딩에 의해 얻어지는 그래픽스 오브젝트의 기입은 이 시점에서 시작할 수 있다.
상기한 바와 같이, WDS에 추가된 DTS와 PTS를 이용하여 AV 클립의 재생 타임 라인 상의 어떠한 시점에도 윈도우를 할당할 수 있다.
상기의 설정에 기초하여 표시 설정에서 DTS와 PTS의 설정의 예에 대해 도 24-25에 설명된 구체적인 예를 참조하여 이하 설명한다. 이 예는 그래픽스 플레인에 4회 기입함으로써 자막이 표시되고 두 개의 자막 "what is blu-ray."와 "blu-ray is everywhere."의 각각을 표시함으로써 갱신이 수행되는 경우에 대한 것이다. 도 24는 상기 예의 갱신시의 시프트를 설명한다. 점 t1 까지, "what"이 표시되고, t1 이후에 t2 까지 "what is"가 표시되고, 이어 t3에서 "what is blu-ray."가 표시된다. 첫 번째 자막의 전체 문장이 나타난 후, 두 번째 자막 "blu-ray is everywhere."가 t4에서 나타난다.
도 25a는 상기한 갱신을 수행하도록 설명되는 2개의 표시 설정을 도시한다. DS1은 t1에서의 갱신을 제어하기 위한 PCS1.2, 채색을 위한 PDS1, 자막 "what is blu-ray."에 대응하는 ODS1, 및 DS1의 종료 코드로서의 END를 포함한다.
DS2는 t2에서의 갱신을 제어하기 위한 PCS1.2와 END를 포함한다. DS3는 t3에서의 갱신을 제어하기 위한 PCS1.3과 END를 포함한다. DS4는 t4에서의 갱신을 제어하기 위한 PCS2, 색상 변환을 위한 PDS2, 자막 "blu-ray is everywhere."에 대응하는 ODS2, 및 END를 포함한다.
도 25b의 타이밍 차트를 참조하여, 4개의 표시 설정의 각 기능 세그먼트에 대한 DTS와 PTS의 설정을 설명한다.
타이밍 차트의 재생 타임 라인은 도 24의 타임 라인과 동일하다. 도 25a의 타이밍 차트에서, PTS(PCS1.1), PTS(PCS1.2), PTS(PCS1.3), 및 PTS(PCS2)는 각각 "what"을 표시하기 위한 표시점 t1, "what is"를 표시하기 위한 표시점 t2, "what is blu-ray."를 표시하기 위한 표시점 t3, "blue-ray is everywhere."를 표시하기 위한 표시점 t4에 설정된다. 각 PTS에 기술된 크로핑과 같은 제어가 각 자막의 표시점에서 수행될 필요가 있기 때문에 각 PTS는 상기와 같이 설정된다.
PTS(ODS1)과 PTS(ODS2)는 PTS(PCS1.1)과 PTS(PCS2)가 지시하는 점에서 decode_duration을 빼서 계산되는 점을 나타내도록 각각 설정된다. 이는 PTS(PCS)가 아래의 식을 만족하도록 설정될 필요가 있기 때문이다.
PTS(DSn[PCS]) ≥ DTS(DSn[PCS]) + decode_duration(DSn)
도 25b에서, PTS(ODS2)는 점 t4 앞에 오는 점 t5를 나타내도록 설정되고, PTS(ODS1)는 점 t0 앞에 오는 점을 나타내도록 설정된다. DTS(ODS2) = PTS(ODS1) 로 나타내는 관계가 여기서 만족된다.
선행하는 ODS의 PTS의 바로 직후의 ODS의 PTS가 더 빨리 표시되도록 설정함으로써, 재생장치는 선행하는 ODS를 오버라이트하도록 ODS가 메모리에 독출되는 동작을 수행하며, 이에 따라 적은 크기의 메모리로 재생 프로세스가 수행되는 것이 가능하다. 이러한 재생 프로세스를 수행함으로써, 재생장치를 위한 메모리 크기의 선택이 더 넓어진다.
PCS1.1의 DTS에 대한 값이 DTS(ODS1)이지시하는 점 이전의 어떠한 점일 수 있기 때문에, PCS1.1의 DTS는 DTS(PCS1.1) = DTS(ODS1)이 되도록 설정된다.
ODS1의 PTS, ODS2의 DTS, 그리고 PCS1.2, PCS1.3 및 PCS2의 PTS는 다음의 식이 나타내는 관계를 만족하도록 점 t0에서 설정된다.
PTS(ODS1) = DTS(ODS2) = PTS(PCS1.2) = PTS(PCS1.3) = PTS(PCS2)
이는 PCS1.2와 PCS1.3의 DTS에 대한 값이 PTS(PCS1.3)이 지시하는 점 이전의 어떠한 점일 수 있으며, PCS2의 DTS는 DTS(PCS2)가 지시하는 점 이전의 어떠한 점일 수 있기 때문이다.
상기에서 설명한 바와 같이, 동시에 하나 이상의 PCS를 독출함으로써 이전의 PCS의 갱신이 완료되자마자 이어지는 PCS의 갱신을 수행할 수 있다.
PCS의 DTS와 PTS, ODS의 PTS와 DTS가 상기한 식이 나타내는 관계를 만족하는 것은 충분하다. 따라서, DTS(ODS2) = PTS(ODS1) 또는 PTS(ODS1) = DTS(ODS2) = PTS(PCS1.2) = PTS(PCS1.3) = DTS(PCS2)가 되도록 값을 설정할 수 있다. 타임 스탬프에 대한 이러한 설정에 의해, 디코딩에서의 부하가 증가하거나 더 많은 버퍼가 필요한 기간의 시간 길이를 조절할 수 있다. 이러한 조절은 재생 중 제어의 가능성을 확장하고, 오소링이나 재생장치의 제조를 수행하는 사람들에게 유익하다.
상기에서 설명한 표시 설정(PCS, WDS, PDS, ODS)의 데이터 구조는 프로그래밍 언어에서 설명된 클래스 구조의 일 예이다. 오소링을 수행하는 제작자는 블루-레이 디스크 사전기록 포맷에서 제공되는 신택스에 따라 클래스 구조를 기술함으로써 BD-ROM 상의 데이터 구조를 얻을 수 있다.
다음, 본 발명에 따른 재생장치의 실제 예를 이하 설명한다. 도 26은 본 발 명에 따른 재생장치의 내부 구조를 나타낸다. 본 발명에 따른 재생장치는 도면에 도시한 내부 구조에 기초하여 산업적으로 제조된다. 본 발명에 따른 재생장치는 주로 3가지 부분, 시스템 LSI, 드라이브 디바이스, 및 마이크로컴퓨터 시스템으로 구성되며, 이 세 부분을 장치의 캐비넷과 기판에 실장함으로써 산업적으로 제조할 수 있다. 시스템 LSI는 재생장치의 기능을 수행하는 다양한 프로세스 유닛이 집적되는 집적회로이다. 상기한 방법으로 제조된 재생장치는 BD 드라이브(1), 독출 버퍼(2), PID 필터(3), 트랜스포트 버퍼(4a-4c), 주변회로(4d), 비디오 디코더(5), 비디오 플레인(6), 오디오 디코더(7), 그래픽스 플레인(8), CLUT 유닛(9), 가산기(10), 그래픽스 디코더(12), 부호화 데이터 버퍼(13), 주변회로(13a), 시스템 그래픽스 프로세서(14), 오브젝트 버퍼(15), 합성 버퍼(16), 및 그래픽 컨트롤러(17)를 포함한다.
BD 드라이브(1)는 BD-ROM의 로드(load)/리드(read)/이젝트(eject)를 수행하고, BD-ROM에 액세스한다.
독출 버퍼(2)는 BD-ROM으로부터 독출된 TS 패킷을 선입선출 순서로 저장하기 위한 FIFO 메모리이다.
PID 필터(3)는 독출 버퍼(2)로부터 출력된 하나 이상의 TS 패킷을 필터링한다. PID 필터(3)에 의한 필터링은 원하는 PID를 갖는 TS 패킷만을 트랜스포트 버퍼(4a-4c)에 기입하는 것이다. 버퍼링은 PID 필터(3)에 의한 필터링에 반드시 필요한 것은 아니며, 따라서 PID 필터(3)에 입력된 TS 패킷은 지연없이 트랜스포트 버퍼(4a-4c)에 기입된다.
트랜스포트 버퍼(4a-4c)는 PID 필터(3)로부터 출력된 TS 패킷을 선입선출 순서로 저장하기 위한 것이다. 트랜스포트 버퍼(4a-4c)로부터 TS 패킷이 출력되는 속도는 속도 Rx이다.
주변회로(4d)는 트랜스포트 버퍼(4a-4c)로부터 독출된 TS 패킷을 기능 세그먼트로 변환하기 위한 배선 로직이다. 변환에 의해 얻어진 기능 세그먼트는 부호화 데이터 버퍼(13)에 저장된다.
비디오 디코더(5)는 PID 필터(3)로부터 출력된 하나 이상의 TS 패킷을 압축해제된 픽처로 디코드하고 비디오 플레인(6)에 기입한다.
비디오 플레인(6)은 영화를 위한 플레인 메모리이다.
오디오 디코더(7)는 PID 필터(3)로부터 출력된 TS 패킷을 디코드하고 압축해제된 오디오 데이터를 출력한다.
그래픽스 플레인(8)은 한 화면에 대한 영역을 갖는 플레인 메모리이고, 한 화면분의 압축해제된 그래픽스를 저장할 수 있다.
CLUT 유닛(9)은 PDS가 나타내는 Y, Cr, 및 Cb에 대한 값에 기초하여 그래픽스 플레인(8)에 저장된 압축해제된 그래픽스의 인덱스 컬러를 변환한다.
가산기(10)은 CLUT 유닛(9)에 의해 색상 변환이 수행된 압축해제된 그래픽스에 PDS가 지시하는 T 값(투명도)을 곱하고, 비디오 플레인에 저장된 비합성된 픽처 데이터를 픽셀당 가산하여 합성된 이미지를 취득하여 출력한다.
그래픽스 디코더(12)는 그래픽스 스트림을 디코드하여 비합성된 그래픽스를 취득하고, 이 비합성된 그래픽스를 그래픽스 오브젝트로 그래픽스 플레인(8)에 기 입한다. 그래픽스 스트림을 디코딩함으로써, 자막과 메뉴가 화면에 나타난다. 그래픽스 디코더(12)는 부호화 데이터 버퍼(13), 주변회로(13a), 스트림 그래픽스 프로세서(14), 오브젝트 버퍼(15), 합성 버퍼(16), 및 그래픽 컨트롤러(17)를 포함한다.
부호화 데이터 버퍼(13)는 기능 세그먼트가 DTS와 PTS와 함께 저장되는 버퍼이다. 기능 세그먼트는 TS 패킷 헤더와 PES 패킷 헤더를 트랜스포트 버퍼(4a-4c)에 저장된 트랜스포트 스트림의 각 TS 패킷으로부터 제거하고 페이로드를 순차적으로 정렬함으로써 취득한다. 제거된 TS 패킷 헤더와 PES 패킷 헤더 중 PTS와 DTS는 PES 패킷들 사이의 대응을 만든 후에 저장된다.
주변회로(13a)는 부호화 데이터 버퍼(13)와 스트림 그래픽스 프로세서(14) 사이의 전송과, 부호화 데이터 버퍼(13)와 합성 버퍼(16) 사이의 전송을 구현하는 배선 로직이다. 전송 동작에서, 현재 시간이 ODS의 DTS가 지시하는 시간인 경우, ODS는 부호화 데이터 버퍼(13)로부터 스트림 그래픽스 프로세서(14)로 전송된다. 현재 시간이 PCS와 PDS의 DTS가 지시하는 시간인 경우, PCS와 PDS는 합성 버퍼(16)로 전송된다.
스트림 그래픽스 프로세서(14)는 ODS를 디코드하고, 디코딩으로 얻어진 인덱스 컬러의 압축해제된 그래픽스를 그래픽스 오브젝트로서 오브젝트 버퍼(15)에 기입한다. 스트림 그래픽스 프로세서(14)에 의한 디코딩은 DTS가 ODS와 일치하는 시각에 시작하고, ODS와 일치하는 PTS가 나타내는 디코드 종료시각에 종료한다. 그래픽스 오브젝트의 디코딩 속도 Rd는 스트림 그래픽스 프로세서(14)의 출력 속도이 다.
오브젝트 버퍼(15)는 ETSI EN 300 743 표준의 픽셀 버퍼에 대응하는 버퍼이며, 스트림 그래픽스 프로세서(14)가 수행한 디코드에 의해 취득한 그래픽스 오브젝트가 배치된다. 오브젝트 버퍼(15)는 그래픽스 플레인(8)의 2배 또는 4배 정도의 크기로 설정될 필요가 있다. 이는 스크롤링 효과가 수행되는 경우, 오브젝트 버퍼(15)는 그래픽스 플레인의 2배 또는 4배 정도인 그래픽스 오브젝트를 저장할 필요가 있기 때문이다.
합성 버퍼(16)는 PCS와 PDS가 배치되는 메모리이다.
그래픽스 컨트롤러(17)는 합성 버퍼(16)에 배치된 PCS를 디코드하고 이 PCS에 기초하여 제어를 수행한다. 제어를 수행하기 위한 타이밍은 PCS에 첨부된 PTS에 기초한다.
다음, PID 필터(3), 트랜스포트 버퍼(4a-4c), 그래픽스 플레인(8). CLUT 유닛(9), 부호화 데이터 버퍼(130, 및 그래픽 컨트롤러(17)를 구성하기 위한 전송 속도와 버퍼 크기에 대한 권장값을 설명한다. 도 27은 기입 속도 Rx, Rc, 및 Rd, 그래픽스 플레인(8), 부호화 데이터 버퍼(13), 오브젝트 버퍼(15), 및 합성 버퍼(16)의 크기를 보여준다.
오브젝트 버퍼(15)와 그래픽스 플레인(8) 사이의 전송 속도 Rc는 이 실시예의 재생장치에서 최고 전송 속도이고, 윈도우 크기와 프레임 속도로부터 256 Mbps(=500 Kbyte ×29.97 × 2)로 계산된다.
Rc와 달리, 스트림 그래픽스 프로세서(14)와 오브젝트 버퍼(15) 사이의 전송 속도 Rd(픽셀 디코딩 속도)는 매 프레임 사이클마다 갱신될 필요가 없으며, Rc의 1/2 또는 1/4이면 Rd에 대해 충분하다. 따라서, Rd는 128 Mbps 또는 64 Mbps 중 하나이다.
트랜스포트 버퍼(4a-4c)와 부호화 데이터 버퍼(13) 사이의 트랜스포트 버퍼 누설 속도 Rx는 압축된 상태의 ODS의 전송 속도이다. 따라서, 압축율을 곱한 전송 속도 Rd는 트랜스포트 버퍼 누설 속도 Rx에 대해 충분하다. ODS의 압축율이 25%로 주어지면, 16 Mbps(=64 Mbps × 25%)이면 충분하다.
도면에 도시된 전송 속도와 버퍼 크기는 최소 기준으로, 더 높은 전송 속도와 더 큰 크기도 가능하다.
상기와 같이 구성된 재생장치에서, 각 요소들은 파이프라인 구조로 디코딩 동작을 수행한다.
도 28은 재생장치에 의한 파이프라인 프로세싱을 보여주는 타이밍 차트이다. 도면의 5번째 행은 BD-ROM의 표시 설정이고, 4번째 행은 PCS, WDS, PDS, 및 ODS로부터 부호화 데이터 버퍼(13)로의 독출 기간을 보여준다. 3번째 행은 스트림 그래픽 프로세서(14)에 의한 각 ODS의 디코드 기간을 나타낸다. 첫 번째 행은 그래픽 컨트롤러(17)가 수행하는 동작을 보여준다.
ODS1과 ODS2에 첨부된 DTS(디코드 시작 시각)는 도면에서 각각 t31과 t32를 지시한다. 디코드 시작 시각이 DTS로 설정되기 때문에, 각 ODS는 부호화 데이터 버퍼(13)로 독출될 필요가 있다. 따라서, ODS1의 독출은 ODS1이 부호화 데이터 버퍼(13)로 디코드되는 디코드 기간 dp1 전에 완료된다. 또한, ODS2의 독출은 ODS2가 부호화 데이터 버퍼(13)로 디코드되는 디코드 기간 dp2 전에 완료된다.
반면에, ODS1과 ODS2에 첨부된 PTS(디코드 종료 시각)는 각각 도면에서 t32와 t33을 지시한다. 스트림 그래픽스 프로세서(14)에 의한 ODS1의 디코딩은 t32까지 완료되고, ODS2의 디코딩은 t33으로 지시하는 시각까지 완료된다. 상기한 바와 같이, 스트림 그래픽스 프로세서(14)는 ODS를 부호화 데이터 버퍼(13)에 ODS의 DTS가 지시하는 시각까지 독출하고, 부호화 데이터 버퍼(13)에 독출된 ODS를 ODS의 PTS가 지시하는 시각까지 디코드하며, 디코드된 ODS를 오브젝트 버퍼(15)에 기입한다.
도면에서 첫 번째 행의 기간 cd1은 그래픽스 컨트롤러(17)가 그래픽스 플레인을 소거하는데 필요한 기간이다. 또한, 기간 td1은 오브젝트 버퍼에 취득된 그래픽스 오브젝트를 그래픽스 플레인(8)에 기입하는데 필요한 기간이다. WDS의 PTS는 기입을 시작하는 데드라인이고, PCS의 PTS는 기입의 종료와 표시를 위한 타이밍을 나타낸다. PCS의 PTS가 지시하는 시각에, 대화형 화면을 합성하는 압축해제된 그래픽스가 그래픽스 플레인(8) 상에 취득된다.
CLUT 유닛(9)이 압축해제된 그래픽스의 색상 변환을 수행하고 가산기(10)가 비합성 그래픽스와 비디오 플레인(6)에 저장된 압축해제된 픽처의 합성을 수행한 후, 합성 이미지가 취득된다.
그래픽스 디코더(12)에서, 스트림 그래픽스 프로세서(14)는, 그래픽스 컨트롤러(17)가 그래픽스 플레인(8)의 소거를 수행하는 동안 연속적으로 디코딩을 수행한다. 상기한 파이프라인 프로세싱에 의해, 그래픽스를 신속하게 표시할 수 있다.
도 28에서, 그래픽스 플레인의 소거가 ODS 디코딩 완료 전에 종료하는 경우를 설명한다. 도 29는 그래픽스 플레인의 소거가 완료되기 전에 ODS 디코딩이 종료하는 경우의 파이프라인 프로세싱의 타이밍 차트를 도시하고 있다. 이 경우, ODS 디코딩의 완료시에 그래픽스 플레인에 기입을 할 수 없다. 그래픽스 플레인의 소거가 완료된 때, 디코드로 취득한 그래픽스를 그래픽스 플레인에 기입하는 것이 가능하게 된다.
다음, 버퍼 점유의 연대순 변화를 설명한다. 도 30은 도 26에 도시된 다음의 구성요소, 즉 합성 버퍼(16), 오브젝트 버퍼(15), 부호화 데이터 버퍼(13) 및 그래픽스 플레인(8)의 연대순 변화를 보여주는 타이밍 차트이다. 첫째 내지 넷째 행은 그래픽스 플레인(8), 오브젝트 버퍼(15), 부호화 데이터 버퍼(13), 및 합성 버퍼(16)의 점유의 연대순 변화를 설명한다. 여기서, 연대순 변화는 선 그래프를 이용하여 기술되며, 그래프에서 횡축은 타임라인을 나타내고 종축은 점유를 나타낸다.
도 30의 넷째 행은 합성 버퍼(16)에 대한 점유의 연대순 변화를 보여준다. 넷째 행이 보여주는 바와 같이, 합성 버퍼(16)에 대한 연대순 변화는 "vf0" 부분을 포함하는데, 이 "vf0"는 부호화 데이터 버퍼(13)에서 출력되는 PCS의 저장에 기인하는 단순증가를 나타낸다.
셋째 행은 부호화 데이터 버퍼(13)에 대한 점유의 연대순 변화를 보여준다. 셋째 행이 보여주는 바와 같이, 부호화 데이터 버퍼(13)의 연대순 변화는 두 개의 단순증가 부분 vf1과 vf2, 및 두 개의 단순감소 부분 vg1과 vg2를 포함한다. 단순증가 부분 vf1과 vf2의 기울기는 부호화 데이터 버퍼(13)로의 트랜스포트 버퍼(4a b, c)의 출력속도 Rx에 의존하며, 단순감소 부분 vg1과 vg2의 기울기는 즉시 수행되는 스트림 그래픽스 프로세서(14)에 의해 수행되는 디코딩을 나타낸다. 다시 말해, 스트림 그래픽스 프로세서(14)는 디코딩에 의해 취득한 압축해제된 그래픽스를 보유한다. 스트림 그래픽스 프로세서(14)에서 오브젝트 버퍼(15)로의 전송 경로의 기입 속도는 128Mbps이다. 따라서, 오브젝트 버퍼(15)의 점유는 이 기입 속도에 따라 증가한다.
둘째 행은 오브젝트 버퍼(15)에 대한 점유의 연대순 변화를 보여준다. 둘째 행이 보여주는 바와 같이, 오브젝트 버퍼(15)의 연대순 변화는 스트림 그래픽스 프로세서(14)에서 출력되는 ODS의 저장에 기인하는 단순증가 부분 vh1과 vh2를 포함한다. 단순증가 부분 vh1과 vh2의 기울기는 스트림 그래픽스 프로세서(14)에서 오브젝트 버퍼(15)로의 전송 속도 Rc에 의존한다. 셋째 행의 단순증가 부분과 둘째 행의 단순증가 부분이 일어나는 기간은 "디코드 기간"에 대응한다. 이러한 디코드 기간의 시작은 ODS의 DTS가 지시하며, 디코드 기간의 끝은 ODS의 PTS가 지시한다. 압축해제된 그래픽스가 ODS의 DTS가 나타낸 시간까지 오브젝트 버퍼(15)에 저장되면, 그것은 ODS에 대한 디코딩이 완료를 의미한다. 압축해제된 그래픽스가 ODS의 DTS가 나타낸 시간까지 오브젝트 버퍼(15)에 저장되는 한, 이 디코드 기간 중, 단순증가 부분과 단순감소 부분은 어떠한 형태도 가질 수 있다.
첫째 행은 그래픽스 플레인(8)에 대한 점유의 연대순 변화를 보여준다. 첫째 행이 보여주는 바와 같이, 그래픽스 플레인(8)의 연대순 변화는, 오브젝트 버퍼(15)에서 출력되는 이미 디코드된 ODS의 저장에 기인하는 단순증가 부분 vf3을 포 함한다. 단순증가 부분 vf3의 기울기는 오브젝트 버퍼(15)에서 그래픽스 플레인(8)으로의 전송 속도 Rd에 의존한다. 단순증가 부분의 끝은 ODS의 PTS가 지시한다.
도 27에서와 같은 그래프는, ODS에 할당된 DTS와 PTS, ICS에 할당된 DTS와 PTS, 도 27에 도시된 각 버퍼의 전송 속도를 이용하여 설명된다. 또한, 이러한 다이어그램과 같은 그래프를 생성함으로써 사용자는, 오소링시, 각 버퍼의 상태가 어떻게 변하는지를 알 수 있다.
각 버퍼의 상태의 변화가 DTS와 PTS를 갱신함으로써 조정될 수 있기 때문에, 재생장치 측에 부과되는, 디코더의 규격을 초과하는 디코딩 부하가 생성되는 것을 피할 수 있고, 재생에 부수적인 버퍼 오버플로우(overflow)를 피할 수 있게 된다. 이에 따라, 재생장치의 개발단계에서 하드웨어/소프트웨어 성취가 용이하게 될 것이다.
다음, 제어부(20)와 그래픽스 디코더(12)가 실행되는 방법을 이하 설명한다. 제어부(20)는 도 31에 도시된 동작을 수행하는 프로그램을 기입하고 일반 CPU가 이 프로그램을 실행하도록 함으로써 실행된다. 제어부(20)가 수행하는 동작은 도 31을 참조하여 설명된다.
도 31은 기능 세그먼트의 로딩 동작의 프로세스를 보여주는 플로차트이다. 플로차트에서, SegmentK는 AV 클립을 재생하는데 독출되는 세그먼트(PCS, WDS, PDS, 및 ODS) 각각을 나타내는 변수이다. IGNORE FLAG는 SegmentK가 무시되는지 로드되는지를 결정하는 플래그이다. 플로차트는 루프 구조를 가지며, 이 루프 구조에서 IGNORE FLAG가 먼저 "0"으로 초기화되고 이어 단계 S21-S24와 단계 S7-31이 각 SegmentK에 대해 반복된다(단계 S25와 단계 S26).
단계 S21은 SegmentK가 PCS인지를 판정하기 위한 것으로, SegmentK가 PCS이면 단계 S27과 S28의 판정이 수행된다.
단계 S22는 IGNORE FLAG가 0인지를 판정하기 위한 것이다. IGNORE FLAG가 0이면, 동작은 단계 S23으로 이동하고, IGNORE FLAG가 1이면, 동작은 단계 S24로 이동한다. IGNORE FLAG가 0이면(단계 S22에서 Yes), SegmentK는 단계 S23에서 부호화 데이터 버퍼(13)에 로드된다.
IGNORE FLAG가 1이면(단계 S22에서 No), SegmentK는 단계 S24에서 무시된다. 이것에 의해, DS에 속하는 모든 기능 세그먼트의 나머지는 단계 S22가 No이기 때문에 무시된다(단계 S24).
상기한 바와 같이, SegmentK가 로드되는지 무시되는지의 여부는 IGNORE FLAG에 의해 결정된다. 단계 S27-S31, S34, 및 S35는 IGNORE FLAG를 설정하기 위한 단계이다.
단계 S27에서, SegmentK의 segment_type이 Acquisition Point인지의 여부가 판정된다. SegmentK가 Acquisition Point이면, 동작은 단계 S28로 이동하고, SegmentK가 Epoch Start이거나 Normal Case이면, 동작은 단계 S31로 이동한다.
단계 S28에서, 선행하는 DS가 그래픽스 디코더의 어떠한 버퍼(부호화 데이터 버퍼(13), 스트림 그래픽스 프로세서(14), 오브젝트 버퍼(15), 및 합성 버퍼(16))에라도 존재하는지 여부가 판정된다. 단계 S28의 판정은 단계 S27의 판정이 Yes일 때 이루어진다. 선행하는 DS가 그래픽스 디코더(12)에 존재하지 않는 경우는 스킵 동작이 수행되는 경우를 나타낸다. 이 경우, 표시는 Acquisition Point인 DS로부터 시작하고, 따라서 동작은 단계 S30으로 이동한다(단계 S28의 No). 단계 S30에서, IGNORE FLAG는 0으로 설정되고 동작은 단계 S22로 이동한다.
선행하는 DS가 그래픽스 디코더(12)에 존재하는 경우는 정상 재생이 수행되는 경우를 나타낸다. 이 경우, 동작은 단계 S29로 이동한다(단계 S28에서 Yes). 단계 S29에서, IGNORE FLAG는 1로 설정되고 동작은 단계 S22로 이동한다.
단계 S31에서, PCS의 segment_type이 Normal Case인지의 여부가 판정된다. PCS가 Normal Case이면, 동작은 단계 S34로 이동하고, PCS가 Epoch Start이면, IGNORE FLAG는 단계 S30에서 0으로 설정된다.
단계 S34에서, 단계 S28과 같이, 선행하는 DS가 그래픽스 디코더(12)의 어떠한 버퍼에라도 존재하는지의 여부가 판정된다. 선행하는 DS가 존재하면, IGNORE FLAG는 0으로 설정된다(단계 S30). 선행하는 DS가 존재하지 않으면, 대화형 화면을 합성하기 위하여 충분한 기능 세그먼트를 취득할 수 없고 IGNORE FLAG는 1로 설정된다(단계 S35).
상기한 방법으로 IGNORE FLAG를 설정함으로써, Normal Case를 구성하는 기능 세그먼트는 선행하는 DS가 그래픽스 디코더(12)에 존재하지 않을 때 무시된다.
도 31에 도시된 바와 같이, DS가 다중화된 경우의 예를 들어, DS의 독출이 수행되는 방법을 설명한다. 도 31의 예에서, 3개의 DS가 영화와 다중화된다. DS1의 segment_type은 Epoch Start, DS10의 segment_type은 Acquisition Point, 그리고 DS20의 segment_type은 Normal Case이다.
3개의 DS와 영화가 다중화된 AV 클립에서, 화살표 am1으로 표시한 바와 같이 픽처 데이터 pt10으로의 스킵 동작이 수행된다고 가정하면, DS10은 스킵 목표에 가장 근접하며, 따라서 DS10은 도 31의 플로차트에서 설명한 DS이다. Segment_type이 단계 S27에서 Acquisition Point인 것으로 판정되더라도, IGNORE FLAG는 선행하는 DS가 부호화 데이터 버퍼(13)에 존재하지 않기 때문에 0으로 설정되며, DS10은 도 33의 화살표 md1로 나타낸 바와 같이, 재생장치의 부호화 데이터 버퍼(13)에 로드된다. 반면에, 스킵 목표가 DS10 이후인 경우(도 32의 화살표 am2), DS20이 Normal Case 표시 설정이고 선행하는 DS가 부호화 데이터 버퍼(13)에 존재하지 않기 때문에 DS20은 무시된다(도 33의 화살표 md2).
도 34는 정상 재생에서 DS1, DS10, 및 DS20의 로딩을 도시하고 있다. PCS의 segment_type이 Epoch Start인 DS1은 그대로 부호화 데이터 버퍼(13)에 로드된다(단계 S23). 그러나, PCS의 segment_type이 Acquisition Point인 DS10의 IGNORE FLAG가 1로 설정되기 때문에(단계 S29), DS10을 구성하는 기능 세그먼트는 무시되고 부호화 데이터 버퍼(13)에 로드되지 않는다(도 35의 화살표 rd2, 및 단계 S24). 또한, DS20은 부호화 데이터 버퍼(13)에 로드된다. 이는 PCS의 segment_type이 Normal Case이기 때문이다(도 35의 화살표 rd3).
다음, 그래픽스 컨트롤러(17)에 의한 동작을 설명한다. 도 36-38은 그래픽스 컨트롤러(17)에 의해 수행되는 동작을 나타내는 플로차트이다.
단계 S41-S44는 플로차트의 주요 루틴을 위한 단계이고, 단계 S41-S44에서 기술한 어떠한 이벤트라도 발생하는 것을 대기한다.
단계 S41은 현재의 재생 시각이 PCS의 DTS가 지시하는 시각인지를 판정하는 것이고, 판정이 Yes이면, 단계 S45-S53의 동작이 수행된다.
단계 S45는 OCS의 composition_state가 epoch_start인지를 판정하는 것이고, epoch_start로 판정되면, 그래픽스 플레인(8)은 단계 S46에서 모두 소거된다. epoch_start 이외의 다른 것으로 판정되면, WDS의 window_horizontal_position, window_vertical_position, window_width, 및 window_height가 나타내는 윈도우가 소거된다.
단계 S48은 단계 S46 또는 단계 S47에서 수행되는 소거 이후에 수행되는 단계이며, 임의의 ODSx의 PTS가 지시하는 시각이 경과하였는지를 판정한다. 임의의 ODSx의 디코딩은 소거가 종료하는 시각까지 이미 완료될 수 있다. 이는 전체 그래픽스 플레인(8)의 소거에 시간이 걸리기 때문이다. 따라서, 단계 S48에서, 임의의 ODSx의 디코딩은 소거가 종료되는 시각까지 이미 완료된 것으로 판정된다. 판정이 No이면, 동작은 메인 루틴으로 복귀한다. 임의의 ODSx의 PTS가 지시하는 시각이 이미 경과하였다면, 단계 S49-51의 동작이 수행된다. 단계 S49에서, object_crop_flag가 0인지의 여부가 판정되고, 0을 나타내면, 그래픽스 오브젝트는 "비표시"로 설정된다(단계 S50).
Object_crop_flag가 단계 S49에서 0이 아니면, object_cropping_horizontal_position, object_cropping_vertical_position, cropping_width, 및 cropping_height에 기초하여 크롭된 오브젝트가 object_cropping_horizontal_position와 object_cropping_vertical_position이 지 시하는 위치에서 그래픽스 플레인(8)의 윈도우에 기입된다(단계 S51). 상기한 동작에 의해, 하나 이상의 그래픽스 오브젝트가 윈도우에 표현된다.
단계 S52에서, 다른 ODSy의 PTS에 대응하는 시각이 경과하였는지의 여부가 판정된다. ODSx를 그래픽스 플레이(8)에 기입할 때, ODSy의 디코딩이 이미 완료되었다면, ODSy는 ODSx가 되고(단계 S53), 동작은 단계 S49로 이동한다. 이것에 의해 단계 S49-S51로부터의 동작이 다른 ODS로 수행된다.
다음, 도 37을 참조하여 이하에 단계 S42와 단계 S54-S59를 설명한다.
단계 S42에서, 현재의 재생지점이 WDS의 PTS에 있는지의 여부가 판정된다. 판정이 현재의 재생지점이 WDS의 PTS에 있는 것이면, 단계 S54에서 윈도우의 개수가 1 이하인지를 판정한다. 판정이 2이면, 단계 S55-S59의 루프 프로세싱이 수행된다. 루프 프로세싱에서, 단계 S55-S59의 동작은 윈도우에 표시된 두 개의 그래픽스 오브젝트의 각각에 수행된다. 단계 S57에서, object_crop_flag이 0을 나타내는지의 여부가 판정된다. 0을 나타내면, 그래픽스는 표시되지 않는다(단계 S58).
0을 나타내지 않으면, object_cropping_horizontal_position, object_cropping_vertical_position, cropping_width, 및 cropping_height에 기초하여 크롭된 오브젝트는 object_cropping_horizontal_position와 object_cropping_vertical_position이 지시하는 위치에서 그래픽스 플레인(8)의 윈도우에 기입된다(단계 S59). 상기한 동작을 반복함으로써, 하나 이상의 그래픽스 오브젝트가 윈도우에 표현된다.
단계 S44에서, 현재의 재생지점이 PDS의 PTS에 있는지의 여부가 판정된다. 현재의 재생지점이 PDS의 PTS에 있는 것으로 판정되면, pallet_update_flag가 단계 S60에서 하나 이하인지의 여부가 판정된다. 판정이 하나이면, pallet_id가 지시하는 PDS가 CLUT 유닛에 설정된다(단계 S61). 판정이 0이면, 단계 S61은 건너뛴다.
그 후, CLUT 유닛은 영화와 조합될 그래픽스 플레인(8)의 그래픽스 오브젝트의 색상 변환을 수행한다(단계 S62).
다음, 도 38을 참조하여 단계 S43과 단계 S64-S66을 이하 설명한다.
단계 S43에서, 현재의 재생지점이 PDS의 PTS에 있는지의 여부를 판정한다. 현재의 재생지점이 PDS의 PTS에 있는 것으로 판정되면, 단계 S63에서 윈도우의 개수가 2개 이하인지의 여부를 판정한다. 판정이 1이면, 동작은 메인 루틴으로 복귀한다. 판정이 2이면, 단계 S64-S66의 동작이 수행된다. 단계 S64에서, object_crop_flag가 0을 나타내는지의 여부를 판정한다. 0을 나타내면, 그래픽스는 표시되지 않는다(단계 S65).
0을 나타내지 않으면, object_cropping_horizontal_position, object_cropping_vertical_position, cropping_width, 및 cropping_height에 기초하여 크롭된 오브젝트는 object_cropping_horizontal_position와 object_cropping_vertical_position이 지시하는 위치에서 그래픽스 플레인(8)의 윈도우에 기입된다(단계 S66). 상기한 동작을 반복함으로써, 그래픽스 오브젝트가 각 윈도우에 표현된다.
상기의 설명은 PCS의 DTS와 PTS 및 DSn에 속하는 ODS의 DTS와 PTS에 관한 것이다. PDS의 DTS와 PTS 및 END의 DTS와 PTS는 설명하지 않는다. 먼저, DSn에 속하 는 PDS의 DTS와 PTS가 설명된다.
DSn에 속하는 PDS에 대해서, 첫 번째 ODS의 디코딩 시작점(DTS(DSn[ODS1]) 이후에 PDS가 합성 버퍼(16)에 로드되는 PCS(DTS[DSn])에 의해 CLUT(9)에 사용할 수 있다면 충분하다. 따라서, DSn의 각 PDS(PDS1-PDSlast)의 PTS 값은 다음의 관계를 만족하도록 설정될 필요가 있다.
DTS(DSn[PCS]) ≤ PTS(DSn[PDS1])
PTS(DSn[PDSj]) ≤ PTS(DSn[PDSj+1]) ≤ PTS(DSn[PDSlast])
PTS(DSn[PDSlast]) ≤ PTS(DSn[ODS1])
PDS의 DTS는 재생 중에 참조되지 않으며, ODS의 DTS는 MPEG2 표준을 만족하기 위하여 PDS의 PTS와 같은 값으로 설정되는 것에 유의하라.
다음은 상기의 관계를 만족하도록 DTS와 PDS가 설정될 때 재생장치의 파이프라인 프로세싱에서 DTS와 PTS의 역할에 대한 설명이다. 도 39는 PDS의 PTS에 기초한 재생장치의 파이프라인을 보여준다. 도 39는 도 26에 기초한다. 도 39의 첫 번째 행은 CLUT 유닛(9)에서 ODS를 설정하는 것을 보여준다. CLUT 유닛(9)에 대한 PDS1-PDSlast의 설정은 PCS와 WDS를 전송한 후, 그리고 ODS1의 디코딩 전에 수행되며, 따라서 CLUT 유닛(9)에 대한 PDS1-PDSlast의 설정은 화살표 up2와 up3으로 도시된 바와 같이 ODS1의 DTS가 지시하는 점 이전에 설정된다.
상기한 바와 같이, PDS의 설정은 ODS의 디코딩에 앞서 수행된다.
다음, DSn의 표시 설정 세그먼트의 END의 PTS의 설정을 설명한다. DSn에 속하는 END는 DSn의 종료를 나타내고, 따라서 END의 PTS가 ODS2의 디코드 종료 시각 을 나타내는 것이 필요하다. 디코드 종료 시각은 ODS2(ODSlast)의 PTS(PTS(DSn[PDSlast])에 의해 나타나고, 따라서 END의 PTS는 아래의 식을 만족하는 값으로 설정될 필요가 있다.
DTS(DSn[END]) = PTS(DSn[PDSlast])
DSn과 DSn+1에 속하는 PCS 사이의 관계를 고려하여, DSn의 PCS가 첫 번째 ODS(ODS1)의 로딩 시각 이전에 합성 버퍼(16)에 로드되므로 END의 PTS는 DSn의 PCS의 로딩 시각 이후이고 DSn+1에 속하는 PCS의 로딩 시각 이전이어야 한다. 따라서, END의 PTS는 아래의 관계를 만족할 필요가 있다.
DTS(DSn[PCS]) ≤ PTS(DSn[END]) ≤ DTS(DSn+1[PCS])
반면에, 첫 번째 ODS(ODS1)의 로딩 시각은 최종 PDS(PDSlast)의 로딩 시각 이전이며, 그러므로 END의 PTS(PTS(DSn[END])는 DSn에 속하는 PDS(PTS(DSn[PDSlast])의 로딩 시각 이후여야 한다. 따라서, END의 PTS는 아래의 관계를 만족시킬 필요가 있다.
PTS(DSn[PDSlast]) ≤ PTS(DSn[END])
다음은 재생장치의 파이프라인 프로세싱에서 END의 PTS의 의미에 대한 설명이다. 도 40은 재생장치의 파이프라인 프로세싱에서 END의 의미를 기술하는 다이어그램이다. 도 40은 도 26에 기초하며, 도 40의 각 행은, 도 40의 첫 번째 행이 합성 버퍼(16)의 내용을 나타내는 것을 제외하고 도 26과 실질적으로 동일하다. 또한, 도 40에서, 2개의 표시 설정 DSn과 DSn+1이 설명된다. DSn의 DSlast는 A-ODSs의 최종 ODSn이며, 따라서 END의 PTS가 지시하는 점은 DSn+1의 PCS의 DTS 이전이 다.
END의 PTS에 의해, DSn의 ODS의 로딩이 재생 중 완료되는 때를 알 수 있다.
END의 DTS가 재생 중에 참조되지 않더라도, MPEG2 표준을 만족하기 위하여 END의 PTS와 같은 값으로 설정되는 것에 유의해야 한다.
상기한 바와 같이, 그래픽스 플레인의 일부는 이 실시예에 따라 그래픽스를 표시하기 위하여 윈도우로서 지정되며, 따라서 재생장치는 전체 플레인에 대해 그래픽스를 표현할 필요가 없다. 재생장치는 윈도우의 기설정된 크기, 가령 그래픽스 플레인의 25% 내지 33%에 대해서만 그래픽스를 표현할 수 있다. 윈도우의 그래픽스 이외의 다른 그래픽스의 표현은 필요하지 않기 때문에, 재생장치에 소프트웨어의 로드는 감소한다.
그래픽스 플레인의 1/4처럼 그래픽스의 갱신이 수행되는 최악의 경우에도, 재생장치가 256 Mbps와 같은 기설정된 전송 속도로 그래픽스 플레인에 기입을 수행하고, 픽처와의 동기 표시를 보장하도록 윈도우의 크기를 설정함으로써 그래픽스를 픽처와 동기하여 표시할 수 있다.
따라서, 동기 표시가 쉽게 확보될 수 있기 때문에 다양한 재생장치에 대해 고해상도 자막 표시를 구현할 수 있다.
(제 2 실시예)
상기에 설명한 제 1 실시예는 자막 표시 전용의 그래픽스에 대한 것이다. 반면에, 제 2 실시예는 대화형 표시를 위한 그래픽스에 대한 것이다.
본 발명에 따른 기록매체의 실시예 중에서, 기록매체 사용의 일 예가 다음과 같이 설명된다. 제 1 실시예와 같이, 제 2 실시예의 기록매체는 BD-ROM의 애플리케이션층에서의 개선으로 제조될 수도 있다. 도 41은 제 1 실시예의 AV 클립의 구조를 도식적으로 나타내는 다이어그램이다.
(중간에 도시된) AV 클립은 다음 방법으로 구성된다. 다수의 비디오 프레임(픽처 pj1, pj2 및 pj3)으로 구성된 비디오 스트림, 그리고 다수의 오디오 프레임(도면의 최상부 행)으로 구성된 오디오 스트림은 각각 한 라인의 PES 패킷으로 변환되고(도면의 두 번째 행), 이어 한 라인의 TS 패킷(도면의 세 번째 행)으로 변환된다. 대화형 그래픽스 스트림(도면의 최하부 행)은 한 라인의 PES 패킷(도면의 최하부 행에서 두 번째)으로 변환되고, 이어 한 라인의 TS 패킷(도면의 최하부 행에서 세 번째)으로 변환된다. 세 라인의 TS 패킷은 다중화되어 AV 클립이 구성된다.
다음, 대화형 그래픽스 스트림이 설명된다. 대화형 그래픽스 스트림은 PCS 대신에 대화형 합성 세그먼트(ICS: Interactive Composition Segment)를 구비하며, WDS를 구비하지 않는다. 대화형 그래픽스 스트림은, 팔레트 정의 세그먼트(PDS), 오브젝트 정의 세그먼트(ODS), 및 표시설정 세그먼트의 종료(END)로 명명된 세그먼트를 구비한다는 점에서 프리젠테이션 그래픽스 스트림과 유사하다.
GUI 부분의 화면상 배치는 기능 세그먼트로 정의되는 대화형 화면을 생성한다. 도 42a는 대화형 그래픽스 스트림으로 실현되는 이러한 대화형 화면을 설명하는 다이어그램이다. 이 대화형 화면은 버튼 A 내지 버튼 D로 불리는 4개의 GUI 부분을 포함한다. 대화형 그래픽스 스트림에 의한 상호 작용은 사용자 조작에 따라 이 GUI 부분들(즉, 버튼들)의 상태를 변경하는 것을 의미한다. GUI 부분(버튼)의 상태는 "정상상태 bt1", "선택된 상태 bt2", 및 "액티브 상태 bt3"를 포함하며, 도 42a에 도시되어 있다. 정상상태는 단순한 표시가 제공되는 상태이다. 이것에 반대되는 것으로, 선택된 상태는 사용자 조작에 따라 집중되지만 확인이 수신되지 않은 상태이다. 액티브 상태는 확인이 수신된 상태이다. 버튼 상태는 제 1 실시예에서 보여준 리모트 컨트롤러(400)의 키를 누름으로써 변경될 수 있다.
도 42b는 리모트 컨트롤러(400)의 키를 설명하는 다이어그램으로, 이 키를 통하여 대화형 화면을 지시하는 사용자 조작을 수신한다. 이 도면에 도시된 바와 같이, 리모트 컨트롤러(400)는 MoveUp 키, MoveDown 키, MoveRight 키, 및 MoveLeft 키를 구비한다.
MoveUp 키는, 대화형 화면의 버튼이 선택된 상태에 있을 때, 이 선택된 버튼 위의 버튼이 선택된 상태에 있도록 설정하기 위한 것이다. MoveDown 키는 이 선택된 버튼 아래의 버튼이 선택된 상태에 있도록 설정하기 위한 버튼이다. MoveRight 키는 선택된 키의 우측의 키가 선택된 상태에 있도록 설정하기 위한 것이며, MoveLeft 키는 선택된 키의 좌측에 있는 키가 선택된 상태에 있도록 설정하기 위한 것이다.
액티브 키는 선택된 버튼이 액티브 상태에 있도록(즉, 액티브되도록) 설정하기 위한 것이다. 숫자 키 "0" - "9"는 대응하는 숫자가 할당된 버튼이 선택된 상태에 있도록 설정하기 위한 것이다. "+10" 키는 이미 입력된 수치 값에 10을 더하는 연산을 수신하기 위한 것이다. 여기서, "0" 키와 "+10" 키는 모두 10보다 적은 수치 값의 입력을 수신하기 위한 것이라는 데에 주목해야 한다.
각 상태(즉, 정상 상태, 선택된 상태, 및 액티브 상태)는 압축 해제된 상태의 다수의 그래픽스로 구성된다. 버튼의 각 상태를 나타내는 표시하기 위한 각 압축 해제된 그래픽스는 "그래픽스 오브젝트"로 명명된다. 버튼의 한 상태를 다수의 압축 해제된 그래픽스로 표시하는 이유는 각 버튼의 모든 상태에 대해 애니메이션 표시를 수행하는 것을 고려하기 때문이다.
다음, 이 실시예의 정의 세그먼트(ODS, PDS)에 대한 개선을 설명한다. ODS와 PDS는 제 1 실시예와 동일한 데이터 구조를 갖는다. 유일한 차이는 ODS에 대한 "object_ID"이다. 제 2 실시예의 ODS는 다수의 ODS에 의해 정의된 다수의 그래픽스 오브젝트를 이용한 애니메이션을 구성한다. 애니메이션을 구성하는데 있어서, object_ID는 ODS 열에 추가되고, 여기서 object_ID는 시리얼 번호이다.
다음, ICS를 설명한다. 대화형 합성 세그먼트(ICS)는 대화형 화면을 구성하는 기능 세그먼트이다. 대화형 합성 세그먼트는 도 43에 도시된 데이터 구조를 갖는다. 이 도면에 도시된 바와 같이, ICS는 segment_type; segment_length; composition_number; command_update_flag; composition_time_out_pts; selection_time_out_pts; UO_mask_table; animation_frame_rate_code; default_selected_button_number; default_activated_button_number; 및 버튼 정보 세트(button_info(1) (2) (3) ...)로 구성된다.
"composition_number"는 갱신의 수행을 지시하는 0 내지 15의 수치 값을 나타낸다.
"composition_state"는 현재 ICS와 함께 시작하는 DS가 Normal Case, Acquisition Point 또는 Epoch Start인지를 나타낸다.
"command_update_flag"는 현재의 ICS 내 버튼 명령이 이전 ICS로부터 변경되었는지를 나타낸다. 예를 들어, 어떤 ICS가 속하는 DS가 Acquisition Point라면, 이 ICS는 이 ICS 바로 전의 ICS와 동일한 내용을 가질 것이다. 그러나, "command_update_flag"가 온(on)으로 설정되면, 바로 전의 ICS와 다른 버튼 명령이 ICS로 설정될 수 있다. 이 플래그는 그래픽스 오브젝트를 적용하는 동안 명령이 변경되기를 원할 때 유효한 것으로 설정된다.
"composition_time_out_pts"는 대화형 화면의 종료시간을 나타낸다. 종료시간에, 대화형 화면 표시는 더 이상 유효하지 않으며, 그렇게 수행되지 않는다. 바람직하게, composition_time_out_pts는 동화상 데이터에 대한 재생 타임라인의 시간 정밀도로 기술된다.
"selection_time_out_pts"는 유효 버튼 선택기간의 종료시간을 나타낸다. selection_time_out_pts 중, default_activated_button_number로 지정된 버튼이 액티브된다. selection_time_out_pts 기간은 composition_time_out_pts 기간과 같거나 짧다. selection_time_out_pts는 비디오 프레임의 시간 정밀도로 기술된다.
"UO_mask_table"은 ICS에 대응하는 표시 설정에 대한 사용자 조작의 허가/금지를 나타낸다. 이 마스크 필드가 금지로 설정되면, 재생장치에 대한 사용자 조작은 무효하게 될 것이다.
"animation_frame_rate_code"는 애니메이션-타입 버튼에 적용되는 프레임 속도를 기술한다. 애니메이션 프레임 속도는 비디오 프레임 속도를 이 필드의 값으로 나누어 얻는다. 이 필드의 값이 "00"이면, start_object_id_xxx에 의해 지정된 ODS 만이 표시되고, 애니메이션은 아니며, ODS는 버튼에 대한 그래픽스 오브젝트를 정의하는 ODS 중에 있다.
"default_selected_button_number"는, 대화형 화면 표시가 시작될 때, 선택된 상태에서 디폴트로 설정되어야 하는 버튼 번호를 나타낸다. 이 필드가 "0"이면, 재생장치의 레지스터에 저장된 버튼 번호를 갖는 버튼이 자동으로 액티브된 상태에 있도록 설정될 것이다. 이 필드가 "0"이 아니면, 이는 이 필드가 버튼의 유효 값을 나타낸다는 것을 의미한다.
"default_activated_button_number"는, 사용자가 selection_time_out_pts이 정의한 시간 이전에 어떠한 버튼이라도 액티브 상태에 있도록 설정하지 못한 경우, 자동으로 액티브 상태에 있도록 설정된 버튼을 나타낸다.
default_activated_button_number가 "FF"이면, selection_time_out_pts가 지정한 시간에 현재 선택된 상태의 버튼이 자동으로 선택될 것이다.
이 default_activated_button_number가 "00"이면, 자동 선택은 수행되지 않을 것이다. "00"과 "FF" 이외의 다른 값이면, 이 필드는 유효 버튼 번호를 지시하는 것으로 해석될 것이다.
버튼 정보(button_info)는 대화형 화면에 구성된 각 버튼을 정의한다. 이 도면의 점선은 ICS가 제어하는 i번째 버튼에 대한 정보인 버튼 정보 i의 내부 구조에 집중한다. 다음은 버튼 정보 i를 구성하는 정보 요소를 설명한다.
"button_number"는 ICS에서 버튼 i를 고유하게 식별하는 값이다.
"numerically_selectable_flag"는 버튼 i에 대해 수치 값 선택을 허용할지를 나타낸다.
"auto_action_flag"는 버튼 i를 자동으로 설정할지를 나타낸다. 이 auto_action_flag가 온(on)(즉, 비의 비트 값)으로 설정되면, 버튼 i는 선택된 상태 대신 액티브 상태로 설정될 것이다. 반대로, auto_action_flag가 오프(off)(즉, 0의 비트 값)로 설정되면, 버튼 i는 이 버튼이 선택되었더라도 단순한 선택된 상태로 설정될 것이다.
"object_horizontal_position"과 "object_vertical_position"은 각각 대화형 화면에서 버튼 i의 상부 좌측 픽셀의 수평위치와 수직위치를 나타낸다.
"upper_button_number"는, 버튼 i가 선택된 상태에 있는 시점에서 MoveUp 키가 눌렸을 때, 버튼 i 대신 선택된 상태에 있도록 설정된 버튼의 번호를 나타낸다. 버튼 i에 대응하는 번호가 이 필드에 설정된 경우, MoveUp 키에 대한 누름은 무시될 것이다.
"lower_button_number", "left_button_number" 및 "right_button_number"는, 버튼 i가 선택된 상태에 있는 동안 MoveDown 키, MoveLeft 키, 및 MoveRight 키가 각각 눌렸을 때, 버튼 i를 누르는 대신 선택된 상태에 있는 버튼의 번호를 나타낸다. 버튼 i에 대응하는 번호가 이 필드에 설정된 경우, 이 키들에 대한 누름은 무시될 것이다.
"start_object_id_normal"은, 정상 상태의 버튼 i를 애니메이션으로 표현할 때, 애니메이션을 구성하는 다수의 ODS에 할당된 일련번호 중 최초 번호가 이 start_object_id_normal에 서술되는 그러한 필드이다.
"end_object_id_normal"는 정상 상태의 버튼 i를 애니메이션으로 표현할 때, 애니메이션을 구성하는 다수의 ODS에 할당된 일련번호(즉, object_id) 중 최종 번호가 이 end_object_id_normal에 서술되는 그러한 필드이다. end_object_id_normal에 나타난 ID가 start_object_id_normal에 나타난 ID와 동일하면, 그래픽스 오브젝트에서 이 ID에 대응하는 정지 이미지가 버튼 i에 대한 이미지일 것이다.
"repeated_normal_flag"는 정상상태에 있는 버튼 i의 애니메이션 표시를 반복하여 계속할지를 나타낸다.
"start_object_id_selected"는, 선택된 상태의 버튼 i를 애니메이션으로 표현할 때, 애니메이션을 구성하는 다수의 ODS에 할당된 일련번호 중 최초 번호가 이 "start_object_id_selected"에 서술되는 그러한 필드이다.
"end_object_id_selected"는, 선택된 상태의 버튼 i를 애니메이션으로 표현할 때, 애니메이션을 구성하는 다수의 ODS에 할당된 일련번호 중 최종 번호가 이 "end_object_id_selected"에 서술되는 그러한 필드이다. end_object_id_selected에 나타난 ID가 start_object_id_selected에 나타난 ID와 동일하면, 그래픽스 오브젝트에서 이 ID에 대응하는 정지 이미지가 버튼 i에 대한 이미지일 것이다.
"start_object_id_activated"는, 액티브 상태의 버튼 i를 애니메이션으로 표현할 때, 애니메이션을 구성하는 다수의 ODS에 할당된 일련번호 중 최초 번호가 이 "start_object_id_activated"에 서술되는 그러한 필드이다.
"end_object_id_activated"는, 선택된 상태의 버튼 i를 애니메이션으로 표현 할 때, 애니메이션을 구성하는 다수의 ODS에 할당된 일련번호(즉, object_id) 중 최종 번호가 이 "end_object_id_activated"에 서술되는 그러한 필드이다.
다음, 버튼 명령을 설명한다.
버튼 명령(button_command)은 버튼 i가 액티브 상태로 설정될 때 실행되는 명령이다.
다음과 같이, ICS에 의한 대화형 제어의 일 예를 설명한다. 이 예는 ODS와 ICS가 도 44에 설명된 바와 같은 것으로 가정한다. 도 44는 DSn에 포함된 ODS와 ICS 사이의 관계를 보여준다. 이 DSn은 ODS11-19, 21-29, 31-39, 및 41-49를 포함하는 것으로 가정된다. 이 ODS 중, ODS11-19는 각각 버튼 A의 상태를 나타내고, ODS21-29는 버튼 B의 상태를 나타내고, ODS31-39는 버튼 C의 상태를 나타내며, ODS41-49는 버튼 D의 상태를 나타낸다(괄호 "}" 참조). 버튼 A - 버튼 D에대한 상태 제어는 button_info (1), (2), (3), (4)에 각각 서술된 것으로 가정한다.
ICS에 의한 제어의 실행 타이밍은 도 45의 동화상의 임의의 픽처 데이터 pt1의 표시 타이밍과 일치하며, 이는 버튼 A - 버튼 D로 구성된 대화형 화면 tm1이 이 픽처 데이터 pt1(gs2)에 합성(gs1)됨으로써 표시될 것임을 의미한다. 동화상의 내용에 따라 대화형 화면이 다수의 버튼으로 구성되기 때문에, 버튼의 사용과 ICS에 의해 매우 사실적인 이미지를 표현하는 것이 가능하게 된다.
도 46은 버튼 A - 버튼 D의 상태가 도 47에 도시된 바와 같이 변경되는 경우, ICS의 설명 예를 나타낸다. 도 47의 화살표 hh1과 hh2는 button_info(1)의 neighbor_info()에 의해 생성되는 상태 변경을 기호로 표현한다. button_info(1)의 neighbor_info()는 버튼 C가 설정되는 lower_button_number를 구비한다. 따라서, 버튼 A가 선택된 상태에 있는 동안 MoveDown 키를 누르는 UO가 발생한다면(도 47, up1), 버튼 C가 선택된 상태로 될 것이다(도 47, sj1). button_info(1)의 neighbor_info()에서 right_button_number가 버튼 B로 설정되어 있기 때문에, 버튼 A가 선택된 상태에 있는 동안 MoveRight 키를 누르는 UO가 발생한다면(도 47, up2), 버튼 B가 선택된 상태로 될 것이다(도 47, sj2).
도 47의 화살표 hh3은 neighbor_info()에 기인한 button_info(3)의 상태 변경에 대한 제어를 나타낸다. button_info(3)의 neighbor_info()에서 upper_button_number가 버튼 A로 설정되어 있기 때문에, 버튼 C가 선택된 상태에 있는 동안 MoveUp 키를 누르는 UO가 발생한다면, 버튼 A는 선택된 상태로 돌아올 것이다.
다음, 버튼 A - 버튼 D에 대한 이미지를 설명한다. 여기서, ODS11, 21, 31 및 41은 도 49에 도시된 이미지 등을 갖는 것으로 가정한다. ICS에서, button_info(1)의 neighbor_info()가 ODS11-13을 나타내는 start_object_id_normal, end_object_id_normal을 구비하기 때문에, 버튼 A의 정상 상태는 ODS11-13의 애니메이션으로 표현된다. 또한, button_info(1)의 selected_state_info()가 ODS14-16을 나타내는 start_object_id_selected, end_object_id_selected을 구비하기 때문에, 버튼 A의 선택된 상태는 ODS14-16으로 표현된다. 이 버튼 A가 사용자에 의해 선택된 상태로 설정되어 있는 결과로, 버튼 A의 이미지인 그림은 ODS14-16의 그림에서 ODS11-13의 그림으로 변경될 것이다. 여 기서, normal_state_info(), selected_state_info() 각각에서 repeat_normal_flag, repeat_select_flag가 1로 설정되는 배열이 이루어지면, ODS11-3의 애니메이션과 ODS14-16의 애니메이션은 도면에서 "->(A)", "(A)->", "->(B)", 및 "(B)->"로 도시된 바와 같이, 반복적이고 지속적으로 표시될 것이다.
애니메이션을 표현할 수 있는 다수의 ODS가 버튼 A - 버튼 D에 할당되고, 대응하는 제어가 ICS에 기술되면, 버튼 상태 제어는 보다 민감하고 신속하게 표현될 수 있다(즉, 사용자 조작이 변함에 따라 이미지의 특성 표현이 변화함).
다음, 표시 설정에서 ODS의 순서를 설명한다. 상기한 바와 같이, 표시 설정에 속하는 ODS는 버튼의 한 상태를 표현하도록 ICS에 의해 지시된다. 표시 설정에서 ODS의 순서는 표현하여야 할 버튼 상태에 대한 지시에 따라 결정된다.
보다 구체적으로, 표시 설정의 ODS는 이들이 나타내는 상태 하에서, (1) 정상상태를 나타내는 것으로, (2) 선택된 상태를 나타내는 것으로, (3) 액티브 상태를 나타내는 것 등으로 분류된다. 버튼의 한 상태를 나타내는 이러한 그룹 각각은 "버튼-상태 그룹"으로 칭한다. 이어, 이들 버튼-상태 그룹은 "정상상태 -> 선택된 상태 -> 액티브 상태"와 같은 순서로 배열된다. ODS의 순서를 정의하는 것은 표시 설정의 ODS의 순서를 그에 따라 정의할 것이다.
도 50은 표시 설정에 속하는 ODS의 순서를 설명한다. 이 다이어그램의 둘째 행에, 표시 설정의 3가지 버튼-상태 그룹이 도시되어 있다. 이 도면은 3가지 ODS 세트를 보여준다. 즉, 정상상태를 나타내는 ODS 세트(정상상태를 위한 ODS), 선택된 상태를 나타내는 ODS(선택된 상태를 위한 ODS), 및 액티브 상태를 나타내는 ODS(실행된 상태를 위한 ODS)이다. 이들 버튼-상태 그룹은 "정상상태 -> 선택된 상태 -> 액티브 상태"의 순서로 배열된다. 이 순서의 목적은 갱신 후의 화면 표시를 구성하는 다른 요소의 판독에 앞서 대화형 화면의 최초 표시를 구성하는 요소를 판독하는 것이다.
도 50의 첫째 행은 그래픽스 오브젝트 "An, Bn, Cn, Dn, As, Bs, Cs, Ds, Aa, Ba, Ca, Da"를 보여준다. An, Bn, Cn, Dn에 할당된 아래 첨자 "n"은 대응하는 버튼의 정상상태를 나타낸다. 같은 방식으로, As, Bs, Cs, Ds의 아래 첨자 "s"는 대응하는 버튼의 선택된 상태를 나타내고, 아래 첨자 "a"는 대응하는 버튼의 액티브 상태를 나타낸다. 도 50의 둘째 행은 첫째 행의 그래픽스 오브젝트가 속하는 버튼-상태 그룹을 보여준다. 이 도면에서, ODS1-ODSn의 모든 세트는 1 및 n처럼 같은 번호가 할당되는 것에 주의해야 한다. 그러나, 이 세트들은 서로 다르며, 각각 N-ODS, S-ODS 및 A-ODS에 속한다. 이는 이하의 모든 유사한 도면에도 적용된다.
도 51은 도 50의 버튼-상태 그룹이 배치되는 대화형 화면의 상태 변화를 도시한다.
이 도면의 대화형 화면은 "최초 표시", "첫 번째 사용자 동작에 따른 갱싱 표시", 및 "두 번째 사용자 동작에 따른 갱신 표시"라는 다수의 상태를 구비한다. 이 도면의 화살표는 대응하는 상태 변화를 일으키는 사용자 동작을 나타낸다. 이 도면에 따르면, 4개의 버튼 A B, C 및 D는 각각 "정상상태", "선택된 상태", "액티브 상태"를 갖는다. 최초 표시를 수행하기 위하여, 3개의 정상상태를 표현하기 위한 그래픽스 오브젝트와 1개의 선택된 상태를 표현하기 위한 그래픽스 오브젝트가 필요하다는 것을 이해할 수 있다.
디폴트의 선택된 버튼이 정의되지 않고 선택된 상태에서 어떤 버튼이 설정될지가 동적으로 변할 경우에도, 각 버튼에 대해 정상상태와 선택된 상태를 나타내는 그래픽스 오브젝트를 위한 디코딩이 일단 완료되면, 최초 표시는 구현될 것이다. 이것을 고려하면, 이 실시예는 각각 상기 상태의 다른 하나에 대응하는 버튼-상태 그룹을 도 50의 둘째 행에 도시된 바와 같이 "정상상태 -> 선택된 상태 -> 액티브 상태"의 순서로 배열한다. 이러한 배치에 의해 액티브 상태를 구성하는 ODS의 판독과 디코딩이 완료되지 않은 경우에도 최초 표시를 구현하며, 표시 설정의 판독 개시로 시작하고 최초 표시의 완료로 종료하는 기간을 단축하도록 한다.
다음, 이하에서는 도 48과 49에 도시된 ODS가 어떤 순서로 배치되는지를 설명한다. 도 52는 표시 설정의 ODS의 순서를 도시한다. 이 도면에서, 정상상태를 위한 ODS는 ODS11-13, ODS21-23, ODS31-33, 및 ODS41-43에 의해 구성된다. 선택된 상태를 위한 ODS는 ODS14-16, ODS24-26, ODS34-36, 및 ODS44-46에 의해 구성되고, 액티브 상태를 위한 ODS는 ODS17-19, ODS27-29, ODS37-39, 및 ODS47-49에 의해 구성된다. ODS11-13은 도 49에 도시된 캐릭터의 표현의 변화를 표현하기 위한 것이다. 동일한 것이 ODS21-23, ODS31-33 및 ODS41-43에 적용된다. 따라서, 이들 ODS를 상부 버튼-상태 그룹에 배치함으로써, 표시 설정을 판독해내는 중간에도 최초 표시의 준비를 조정할 수 있게 된다. 이에 따라, 애니메이션에 필요로 하는 대화형 화면이 지연 없이 상연될 수 있다.
다음, 다수의 버튼에 의해 다중 참조하는 ODS의 순서를 설명한다. 여기서, 다중 참조(multi-referring)는 ODS의 object_id가 둘 이상의 normal_state_info, selected_state_info, 및 activated_state_info에 의해 지신되는 것을 의미한다. 이러한 다중 참조 방법을 적용함으로써, 버튼의 선택된 상태는 다른 버튼의 정상상태를 나타내기 위한 그래픽스 오브젝트를 이용하여 표현될 수 있다. 이것은 그래픽스 오브젝트의 이미지를 고유할 수 있도록 한다. 이러한 공유는 ODS의 개수를 줄이는데 도움이 된다. 이 경우, 다중 참조에 사용된 ODS에 관한 문제는 이 ODS가 어떤 버튼-상태 그룹에 속하느냐이다.
더 구체적으로, 버튼의 정상상태와 다른 버튼의 선택된 상태는 하나의 ODS에 의해 표현되는 경우, 고려될 것은 이 ODS가 정상상태에 대응하는 버튼-상태 그룹에 속하는지 또는 선택된 상태에 대응하는 버튼-상태 그룹에 속하는지의 여부이다.
이 경우, ODS는 가장 먼저 나타나는 상태에 대응하는 버튼-상태 그룹에 단 한번 배치된다.
어떤 ODS가 정상상태와 선택된 상태 양자의 다중 참조에 이용되면, 이 ODS는 선택된 상태에 대응하는 버튼-상태 그룹(S-ODS)이 아니고, 정상상태에 대응하는 버튼-상태 그룹(N-ODS)에 배치될 것이다. 또한, 다른 ODS가 선택된 상태와 액티브 상태 양자의 다중 참조에 사용되면, 이 ODS는 액티브 상태에 대응하는 버튼-상태 그룹(A-ODS)이 아니고, 선택된 상태에 대응하는 버튼-상태 그룹(S-ODS)에 배치될 것이다. 요컨대, 이러한 다중 참조법의 ODS는 가장 먼저 나타나는 상태에 대응하는 버튼-상태 그룹 내에 단한번 배치될 것이다.
다음, S-ODS의 ODS의 순서를 설명한다. S-ODS에서, 어떤 ODS가 가장 먼저 올 지는 디폴트 선택된 버튼이 정적으로 결정되느냐 또는 동적이냐의 여부에 의존한다. 정적으로 결정된 디폴트 선택된 버튼은 ICS의 default_selected_button_number에 설정된 유효 값(00을 포함)을 가지며, 이 값이 버튼을 지정한다. default_selected_button_number가 유효 값을 지시하고, N-ODS에 디폴트 선택된 버튼을 나타내는 ODS가 없다는 것을 지시할 때, 디폴트 선택된 버튼을 나타내는 ODS는 가장 먼저 배치될 것이다.
default_selected_button_number가 값 00을 지시하는 경우, 디폴트로 선택된 상태로 설정된 버튼은 재생장치 측의 상태에 따라 동적으로 변화할 것이다.
default_selected_button_number가 값 0을 지시하도록 설정될 경우는, 예를 들어, 표시 설정이 다중화된 AV 클립이 다수의 재생 경로를 위한 접속점으로 작용하는 경우이다. 예를 들어, 앞선 다수의 재생 경로가 각각 제 1, 제 2 및 제 3 장(chapter)이고 접속점인 표시 설정이 제 1, 제 2 및 제 3 장에 대응하는 버튼을 표시하기 위한 것이라면, default_selected_button_number에서 선택된 상태에 있는 버튼을 디폴트로 결정하는 것은 부적절하다.
이러한 경우, 선택된 상태에 있는 버튼을 다수의 앞선 재생 경로 중 어떤 것이 현재 진행하고 있는지에 따라 이 표시 설정에 도달할 때까지 변경하는 것이 이상적이다(즉, 제 1 장으로부터 도달하는 경우 제 2 장 버튼, 제 2 장으로부터 도달하는 경우 제 3 장 버튼, 및 제 3 장으로부터 도달하는 경우 제 4 장 버튼). 선택된 상태에 있는 버튼이 변경될 경우, default_selected_button_number는 무효한 것으로 지정될 것이다. 즉, 값 0이 거기에 설정된다. 선택된 상태에 있는 버튼이 변 경될 것이기 때문에, 버튼-선택 그룹의 처음에 어떤 ODS를 배치하는 조정은 불필요하다.
도 53은 default_selected_button_number가 "=0"인 경우와 "=버튼 B"인 경우 사이에 S-ODS의 ODS의 배열에 있어서 차이를 보여준다. 이 도면에서, 파선 ss1은 default_selected_button_number가 버튼 B를 지시하는 경우에 S-ODS의 ODS의 배치를 보여주고, 파선 ss2는 default_selected_button_number가 값 0을 지시하는 경우에 S-ODS의 ODS의 배치를 보여준다. 이 도면의 표시가 보여주는 바와 같이, default_selected_button_number가 버튼 B를 지시할 때, 버튼 B의 선택된 상태를 나타내는 ODSB가 S-ODS의 처음에 배치되고, 다른 버튼의 ODS는 그 이후에 배치된다. 반면, default_selected_button_number가 값 0을 지시할 때, 버튼 A의 선택된 상태를 나타내는 ODSA가 처음에 배치된다. 이와 같이, default_selected_button_number가 유효한지의 여부는 S-ODS의 순서가 많이 변하도록 한다.
다음, 이하에서 이들 ICS와 ODS를 갖는 표시 설정이 AV 클립용 재생 타임라인 상에 어떻게 배치되는지를 설명한다. ODS의 DTS와 PTS는 제 1 실시예에 나타낸 식에 기초하여 설정될 수 있다. 반면, ICS의 DTS와 PTS는 제 1 실시예에 나타낸 것과 다를 것이다. 다음은 ICS의 DTS와 PTS에 대한 값을 설명한다.
Epoch start 직후, ICS의 PTS는, (1) DSn의 최초 표시를 구성하는 ODS 중, 그것의 디코드 시간이 최종인 ODS의 PTS 값, (2) 그래픽스 플레인을 소거하는데 필요한 시간, 및 (3) ODS 디코딩에 의해 취득한 그래픽스 오브젝트를 그래픽스 플레 인에 기입하기 위한 기입 시간을 합하여 나온 값과 동일하거나 그보다 크도록 설정될 것이다. 반면, Acquisition Point에서, 그것은 (3) 플레인 기입 시간에 (1) ODS의 PTS 값을 더하여 취득한 값과 동일하거나 그보다 크도록 설정될 것이다.
ICS에서 default_selected_button_number가 나타나는 경우, i) 모든 버튼들의 정상상태를 나타내기 위한 ODS 디코딩과, ii) 디폴트 버튼의 선택된 상태를 나타내기 위한 ODS 디코딩이 있는 한, 최초 표시는 수행될 수 있다. 최초 표시에서 다수의 버튼의 선택된 상태를 표현하기 위한 ODS는 S-ODS로 칭하고, 그것의 디코딩 시간이 ODS 중 가장 먼저인 ODS(이 경우, 디폴트 버튼을 표현하기 위한 ODS)는 S-ODSsfirst로 칭한다. 이 S-ODSsfirst의 PTS 값은 디코딩 시간이 가장 나중인 ODS의 PTS 값으로 설정되며, ICS의 PTS 기준값으로 사용된다.
ICS에서 default_selected_button_number가 나타나지 않는 경우, 어떠한 버튼이라도 선택된 상태로 될 수 있다. 따라서, 최초 표시를 위한 준비는 모든 버튼에 대한 정상상태와 선택된 상태를 표현하기 위한 준비 때까지 완료되지 않을 것이다. 최초 표시에서 다수의 버튼의 선택된 상태를 표현하기 위한 S-ODS 중, 디코딩 시간이 가장 나중에 오는 ODS는 S-ODSslast로 칭한다. 이 S-ODSslast를 위한 PTS 값은 디코딩 시간이 가장 나중에 오는 ODS의 PTS 값으로 설정되고, ICS의 PTS 기준값으로 사용된다.
S-ODSsfirst을 디코딩하기 위한 종료 시간이 PTS(DSn[S-ODSsfirst])인 것으로 가정하면, PTS(DSn[ICS])는 PTS(DSn[S-ODSsfirst])에 (2) 그래픽스 플레인을 소거하는데 필요한 시간과 (3) ODS 디코딩으로부터 얻은 그래픽스 오브젝트를 그래픽 스 플레인에 기입하기 위한 기입 시간을 더하여 나온 값일 것이다.
여기서, 그래픽스 플레인 내에 픽처를 표현하기 위한 직사각 영역의 폭과 높이는 각각 "video-width"와 "video-height"로 정의되며, 그래픽스 플레인에의 기입속도는 128Mbps인 것으로 가정한다. 이어, 그래픽스 플레인을 소거하는데 필요한 시간은 "8*video_width*video_height//128,000,000"으로 표현된다. 이것을 90KHz의 시간 정밀도로 나타내는 경우, 그래픽스 플레인의 소건 시간(2)은 90,000*(8*video_width*video_height//128,000,000)이 될 것이다.
또한, 여기서, ICS에 포함된 모든 버튼 정보에 의해 지정된 그래픽스 오브젝트의 총 사이즈는 ∑SIZE(DSn[ICS.BUTTON[i]])이며, 그래픽스 플레인에의 기입속도는 128Mbps이며, 그래픽스 플레인에 기입하는데 필요한 시간은 ∑SIZE(DSn[ICS.BUTTON[i]]) // 128,000,000으로 표현되는 것으로 가정한다. 이것을 90KHz의 시간 정밀도로 나타내는 경우, 그래픽스 플레인의 소건 시간(2)은 90,000*(SIZE(DSn[ICS.BUTTON[i]]) // 128,000,000)이다.
여기서, SIZE(DSn[ICS.BUTTON[i]])는 모든 버튼을 나타내는 그래픽스 오브젝트 중, 가장 먼저 표시된 그래픽스 오브젝트의 총 사이즈이다. 이 SIZE(DSn[ICS.BUTTON[i]])는 디폴트 선택된 버튼이 이미 결정된 경우, 디폴트 선택된 버튼이 동적으로 변하는 경우와는 다른 값을 산출할 것이다. 디폴트 선택된 버튼이 정적으로 결정되는 경우, SIZE(DSn[ICS.BUTTON[i]])는, 1) 디폴트 선택된 버튼의 선택된 상태를 표현하기 위한 다수의 ODS 중 가장 먼저 표시된 ODS와, 2) 디폴트 선택된 버튼을 제외한 버튼의 정상상태를 표현하기 위한 다수의 ODS 중 가장 먼저 표시된 ODS의 총합이 될 것이다.
반면, 디폴트 선택된 버튼이 동적으로 변하는 경우, 어떤 버튼이 디폴트 선택된 버튼이 될지를 알기 어렵기 때문에, 기입 시간이 가장 긴 경우를 가정해야 한다. 이 경우, 가장 먼저 표시되는 그래픽스 오브젝트는, 1) 임의의 버튼 x의 정상상태의 첫 번째 페이지(ODSn1)를 나타내는 그래픽스 오브젝트와, 2) 버튼 x의 선택된 상태의 첫 번째 페이지(ODSs1)를 나타내는 그래픽스 오브젝트 중, 가장 큰 사이즈 (Max(ODSn1.ODSs1)를 갖는 그래픽스 오브젝트인 것으로 생각된다.
도달 버튼의 이 (Max(ODSn1.ODSs1)를 총합한 결과는 SIZE(DSn[ICS.BUTTON[i]])일 것이다.
도 54a, 54b는, N-ODS가 버튼 A-D를 구성하는 다수의 ODS를 포함하는 경우와 S-ODS가 버튼 A-D를 구성하는 다수의 ODS를 포함하는 경우, ∑SIZE(DSn[ICS.BUTTON[i]])이 어떤 값을 갖는지를 설명한다. 여기서, default_selected_button_number가 유효값을 지시하는 경우, SIZE(DSn[ICS.BUTTON[i]])는 두꺼운 선의 프레임으로 나타낸 4개의 ODS의 총 사이즈일 것이다. "As1"은 버튼 A의 선택된 상태를 나타내는 다수의 ODS 중 가장 먼저 표시된 ODS이다. "Bn1", "Cn1", 및 "Dn1"은 버튼 B-버튼 D의 정상상태를 나타내는 다수의 ODS 중 가장 먼저 표시된 대응 ODS를 나타낸다. 이들 사이즈는 size()로 표현할 때, SIZE(DSn[ICS.BUTTON[i]])는,
size(As1) + size(Bs1) + size(Cs1) + size(Ds1)일 것이다.
반면, default_selected_button_number가 "=0"인 경우, SIZE(DSn[ICS.BUTTON[i]])는,
An1, As1 중 더 큰 ODS + Bn1, Bs1 중 더 큰 ODS + Cn1, Cs1 중 더 큰 ODS + Dn1, Ds1 중 더 큰 ODS일 것이다.
따라서, SIZE(DSn[ICS.BUTTON[i]])는 다음과 같이 표현된다.
SIZE(DSn[ICS.BUTTON[i]])
= max(size(Cn1), size(Cs1)) + max(size(Dn1) + size(Ds1))
상기한 식을 이용하여, Epoch Start 시작 직후의 PTS(DSn[ICS])는 다음과 같이 표현된다.
PTS(DSn[ICS]) ≥ PTS(DSn[S-ODSsfirst])
+ 90,000*(8*video_width*video_height//128,000,000)
+ 90,000*(SIZE(DSn[ICS.BUTTON[i]])//128,000,000)
PTS와 DTS를 상기와 같이 설정함으로써, 동기 표시가 구현되는 일 예가 도 55에 도시되어 있다. 이 도면은, 동영상의 임의의 픽처 데이터 py1의 표시 타이밍에 버튼이 표시되는 경우를 가정한다. 이 경우, ICS의 PTS 값이 대응 픽처 데이터의 표시 시점과 일치하도록 설정되어야 한다.
또한, ODS의 PTS 값은 이 도면의 시점(1)에 설정되며, 이는 ICS의 PTS로부터 화면의 소거 기간 "cd1"과 그래픽스 오브젝트의 전송 기간 "td1"을 빼어 얻어지는 시간까지, DSn의 최초 표시를 구성하는 ODS 중 디코딩 시간이 가장 나중에 오는 ODS의 디코딩이 완료되어야 하기 때문이다. 또한, ODS의 디코딩이 기간 dd1을 필요로 하기 때문에, ODS의 DTS 값은 기간 dd1 만큼 이 PTS에 앞서 설정되어야 한다.
도 55는 동영상과 결합하는 하나의 ODS만을 구비하며, 단순화한 예이다. 다수의 ODS 중 동영상과 결합하는 대화형 화면의 최초 표시를 구현하기 위해서는, ICS의 PTS와 DTS, 그리고 ODS의 PTS와 DTS는 도 56에 도시된 바와 같이 설정되어야 한다.
도 56은, 대화형 화면의 최초 표시가 다수의 ODS에 의해 구성되고, 디폴트 선택된 버튼이 정적으로 결정되는 경우, DTS와 PTS를 설정하는 방법을 보여준다. 최초 표시를 구현하기 위한 ODS 중 디코딩이 가장 나중에 수행되는 S-ODSsfirst를 위한 디코딩이 이 도면의 기간 dd1 중에 종료한다면, 이 S-ODSsfirst의 PTS[DSn[S-ODSsfirst])는 기간 dd1의 시간을 나타내도록 설정되어야 한다.
또한, 최초 표시 전, 화면 소거와 이미 디코딩된 그래픽스 오브젝트의 전송이 수행되어야 한다. 따라서, ICS의 PTS(DSn[ICS])는, 이 PTS[DSn[S-ODSsfirst]) 값에 화면 소거를 위해 필요한 기간 90,000*(8*video_width*video_height//128,000,000)과, 디코딩된 그래픽스 오브젝트의 전송기간 (90,000*(SIZE(DSn[ICS.BUTTON[i]])//128,000,000))을 더하여 얻은 시간 이후가 되도록 설정되어야 한다.
도 57은, 대화형 화면의 최초 표시가 다수의 ODS에 의해 구성되고, 디폴트 선택된 버튼이 결정되지 않은 경우, DTS와 PTS를 설정하는 방법을 보여준다. 최초 표시를 구현하기 위한 ODS 중 디코딩이 가장 나중에 수행되는 S-ODSslast를 위한 디코딩이 이 도면의 기간 dd2 중에 종료한다면, 이 S-ODSslast의 PTS[DSn[S-ODSslast])는 기간 dd2의 시간을 나타내도록 설정되어야 한다.
또한, 최초 표시 전, 화면 소거와 이미 디코딩된 그래픽스 오브젝트의 전송이 수행되어야 한다. 따라서, ICS의 PTS(DSn[ICS])는, 이 PTS[DSn[S-ODSslast]) 값에 화면 소거를 위해 필요한 기간 90,000*(8*video_width*video_height//128,000,000)과, 디코딩된 그래픽스 오브젝트의 전송기간 (90,000*(SIZE(DSn[ICS.BUTTON[i]])//128,000,000))을 더하여 얻은 시간 이후가 되도록 설정되어야 한다.
여기서, 상기한 ICS의 PTS에 의한 동기 제어는 재생 타임라인 상의 임의의 타이밍에 버튼을 표시하는 제어뿐만 아니라, 재생 타임라인 상의 임의의 기간 중 팝업메뉴의 표시를 가능하도록 하는 제어를 포함한다. 팝업메뉴는 리모트 컨트롤러(400)에 제공된 메뉴 키를 눌러 팝업으로 표시되는 메뉴이다. ICS의 PTS에 의한 동기 제어는 AV 클립의 임의의 픽처 데이터의 표시 타이밍에 이 팝업이 표시되도록 할 수 있는 것을 포함한다. 이 팝업메뉴를 구성하는 ODS는, 버튼을 구성하는 ODS와 같이, 우선 디코딩된 후 그래픽스 플레인에 기입된다. 그래픽스 플레인에의 기입이 완료되지 않았으면, 사용자에 의한 메뉴 호출에 답하는 것이 불가능하다. 이러한 관점에서, 팝업 표시가 가능하게 되는 시간은 팝업메뉴의 동기 표시의 경우 ICS의 PTS에 기입된다.
상기한 본 발명의 기록매체에 대한 설명에 이어 본 발명에 따른 재생장치를 다음과 같이 설명한다. 제 1 실시예에 따른 재생장치의 내부 구조는, 오브젝트 버 퍼(15)와 그래픽스 컨트롤러(17)에 대한 일부 개선점을 제외하고, 실질적으로 제 1 실시예와 동일하다. 따라서, 오브젝트 버퍼(15)와 그래픽스 컨트롤러(17)에 대한 일부 개선점에 대해서 이하 상세히 설명한다.
스트림 그래픽스 프로세서(14)에 의해 수행된 디코딩에 의해 취득되고 대화형 화면을 구성하기 위한 것인 그래픽스 오브젝트는 제 2 실시예에 따라 오브젝트 버퍼(15)에 배치된다. 도 58은 그래픽스 플레인(8)과 비교하여 오브젝트 버퍼(15)의 내용을 도시한다. 오브젝트 버퍼(15)의 내용은 도 48과 도 49에 도시된 ODS가 오브젝트 버퍼(15)에 기입된 경우를 가정한다. 도 48과 도 49의 예는 36개의 ODS(ODS11-ODS49)에 의해 4개 버튼 애니메이션을 구현하며, 여기서 이 애니메이션의 모든 프레임을 표현하는 ODS는 이 오브젝트 버퍼(15)에 저장되며, 이 오브젝트 버퍼(15)에 저장된 각 ODS의 표시 위치는 그래픽스 플레인(8)에 정의된다. 이 표시 위치는 대응 버튼 정보의 Button_horizontal_position과 Button_vertical_position으로 정의된다. 애니메이션은 오브젝트 버퍼(15)에 저장된 다수의 ODS를 한 번에 한 프레임을 전송하여 그래픽스 플레인(8)의 대응하는 표시 위치에 기입함으로써 구현된다.
제 2 실시예의 그래픽스 컨트롤러(17)는 합성 버퍼(16)에 배치된 ICS를 해석하고, 이 ICS에 기초하여 제어를 실행한다. 이 제어의 실행 타이밍은 ICS에 할당된 PTS 값에 기초한다. 이 그래픽스 컨트롤러(17)의 중요한 태스크는 대화형 화면의 최초 표시 시간과 갱신 시간에서의 기입 동작이다. 다음은 도 59를 참조하여 대화형 화면의 최초 표시 시간과 갱신 시간에서의 기입 동작을 설명한다. 도 59는 대화 형 화면의 최초 표시 시간에서 그래픽스 컨트롤러에 의해 수행되는 동작을 도시한다. 이 다이어그램이 보여주는 바와 같이, 그래픽스 컨트롤러(17)는, 버튼 A의 S-ODS에 속하는 ODS가 버튼 A의 버튼 정보의 Button_horizontal_position과 Button_vertical_position에 의해 정의되는 표시 위치에 기입되도록 하며, 마찬가지로, 버튼 B, C, D의 N-ODS에 속하는 ODS가 버튼 B, C, 및 D의 버튼 정보의 Button_horizontal_position과 Button_vertical_position에 의해 정의되는 각 표시 위치에 기입되도록 한다. 여기서, 화살표 w1, w2, w3, 및 w4는 상기한 기입을 상징적으로 보여주는 것에 유의하라. 기입을 수행함으로써, 도 51에 도시된 최초 표시가 수행될 것이다. 여기서 유의해야 할 것은 대화형 화면의 최초 표시를 구현하기 위하여 모든 ODS가 필요하지 않다는 것이며, 오브젝트 버퍼(15)가 디폴트 선택된 버튼의 S-ODS에 속하는 ODS와, 다른 버튼의 N-ODS에 속하는 ODS를 포함하고 있는 한, 대화형 화면의 최초 표시를 완료하는데 충분하다. 따라서, 디폴트 선택된 버튼의 S-ODS에 속하는 ODS와 다른 버튼의 N-ODS에 속하는 ODS가 디코딩된 경우, 그래픽스 컨트롤러(17)가 대화형 화면의 최초 표시를 위한 기입을 수행하기 시작할 준비가 된 것으로 말할 수 있다.
도 60은 대화형-화면 갱신이 1stUserAction(MoveRight)에 따라 수행될 때 그래픽스 컨트롤러(17)에 의해 수행되는 동작을 설명한다. 이 도면이 도시한 바와 같이, 그래픽스 컨트롤러(17)는, 버튼 B의 S-ODS에 속하는 ODS가 버튼 B의 버튼 정보의 Button_horizontal_position과 Button_vertical_position에 의해 정의되는 표시 위치에 기입되도록 하며, 마찬가지로, 버튼 A의 N-ODS에 속하는 ODS가 버튼 A의 버 튼 정보의 Button_horizontal_position과 Button_vertical_position에 의해 정의되는 각 표시 위치에 기입되도록 한다. 여기서, 화살표 w5, w6, w7, 및 w8은 상기한 기입을 상징적으로 보여주는 것에 유의하라. 기입을 수행함으로써, 도 51에 도시된 상태 변화가 구현될 것이다. 버튼 C와 D는 최초 표시 시간에서와 같이 정상상태에 있지만, 그래픽스 플레인(8)에의 기입은 애니메이션이 계속되도록 계속하여 수행되고 있다.
상기와 유사한 방법으로, 도 61과 62는, 1stUserAction이 "MoveDown" 및 "Activated"인 대화형 화면 갱신시, 그래픽스 컨트롤러(17)에 의해 수행된 동작을 설명한다. 대화형 화면의 갱신시, 디폴트 선택된 버튼 이외의 버튼의 S-ODS와 A-ODS이 이용되고, 따라서 모든 ODS가 오브젝트 버퍼(15)에 저장되어 있는 것이 바람직하다.
상기에서와 같이 구성된 재생장치에서, 각 구성요소는 제 1 실시예에서와 같이 파이프라인 프로세스방법의 디코딩 동작을 수행한다.
도 63은 재생장치에 의해 수행되는 파이프라인 프로세스를 설명하는 타이밍 차트이다. 넷째 행은 BD-ROM의 표시 설정을 보여주고, 셋째 행은 ICS, ODS, ODS의 기간을 부호화 데이터 버퍼(13)에 독출하는 것을 보여준다. 둘째 행은 ODS의 디코드 기간을 보여주며, 디코딩은 스트림 그래픽스 프로세서(14)에 의해 수행된다. 첫째 행은 그래픽스 컨트롤러(17)에 의한 동작 기간을 보여준다. ODS를 위한 디코딩 개시시간은 각각 DTS11, DTS12, 및 DTS13으로 나타낸다. N-ODS에 속하는 것 중 첫 번째 ODS (N-ODSs[ODS1])의 부호화 데이터 버퍼(13)에의 기입은 DTS11까지 완료될 것이다. 이와 같이, 각 ODS는 그 자체의 DTS로 나타낸 시간까지 부호화 데이터 버퍼(13)에 독출될 것이다.
반면, 각 ODS의 디코드 종료시간은 도면에서 PTS11, PTS12, 및 PTS13으로 나타낸다. 스트림 그래픽스 프로세서(14)에 의해 수행되는 N-ODSs(ODS1)의 디코딩은 PTS11까지 완료될 것이고, N-ODSs(ODSn)의 디코딩은 PTS12까지 완료될 것이다. 이와 같이, 각 ODS의 DTS에 의해 나타낸 시간까지 ODS는 각 부호화 데이터 버퍼(13)로 독출이 완료되고, 부호화 데이터 버퍼(13)로 독출된 각 ODS는 디코드되어 대응하는 PTS가 나타낸 PTS에 의해 나타난 시간까지 오브젝트 버퍼(15)에 기입될 것이다. 스트림 그래픽스 프로세서(14)는 파이프라인 프로세스 방법으로 이러한 일련의 동작을 수행한다.
디폴트 선택된 버튼이 정적으로 결정될 때, 대화형 화면의 최초 표시를 위해 필요한 모든 그래픽스 오브젝트는, 1) 정상상태에 대응하는 버튼-상태 그룹과, 2) 선택된 상태에 대응하는 버튼-상태 그룹의 첫 번째 ODS에 대해 디코딩이 완료될 때, 오브젝트 버퍼(15)에 준비될 것이다. 이 도면에서, PTS13으로 나타낸 시간에, 대화형 화면의 최초 표시를 위해 필요한 모든 그래픽스 오브젝트가 준비된다.
이 도면에서, 첫째 행의 기간 cd1은 그래픽스 플레인(8)을 소거하는데 필요한 기간이다. 또한, 기간 td1은 오브젝트 버퍼(15)에 취득된 그래픽스 오브젝트 중에 있으며 대화형 화면의 첫 번째 페이지를 구성하는 그래픽스 오브젝트를 그래픽스 플레인(8)에 기입하는데 필요한 기간이다. 그래픽스 플레인(8)에서 그래픽스 오브젝트의 정확한 저장 장소는 Button_horizontal_position과 Button_vertical_position에 의해 나타낸 장소이다. 다시 말해, cd1(화면 소거기간), td1(디코딩된 그래픽스 오브젝트의 기입 기간)은 ODS의 PTS13에 더해지고, 대화형 화면을 구성하는 압축 해제된 그래픽스는 취득한 기간에 그래픽스 플레인(8) 상에 취득될 것이다. 이어, 1) CULT부(9)가 압축 해제된 그래픽스의 색변환을 수행하도록 하고, 2) 가산부(10)가 비디오 플레인(6)에 저장된 압축 해제된 픽처를 결합하도록 함으로써, 합성 이미지가 취득될 것이다.
표시 설정에 포함된 모든 ODS를 디코딩한 후 최초 표시가 수행되는 경우와 반대로, 상기의 경우에서, 선택된 상태에 대응하는 버튼-상태 그룹의 디코딩이 완료되었는지 또는 액티브 상태에 대응하는 버튼-상태 그룹의 디코딩이 완료되었는지에 관계없이 최초 표시를 수행할 수 있게 된다. 따라서, 최초 표시는 이 경우 도면의 기간 hy1 만큼 더 일찍 수행될 것이다.
이 도면에서, ODS1-ODSn의 모든 세트는 1 및 n과 같이 동일한 번호가 할당된다. 그러나, 이 세트들은 서로 다르며, 각각 N-ODS, S-ODS, 및 A-ODS에 속한다. 이는 또한 이하의 모든 유사한 도면에 적용된다.
그래픽스 디코더(12)에서, 그래픽스 컨트롤러(17)가 그래픽스 플레인(8)의 소거를 실행하거나 그래픽스 플레인(8)에 기입을 실행하는 동안에도, 스트림 그래픽스 프로세서(14)는 계속하여 디코딩을 수행한다(둘째 행에서 ODSn의 디코드 기간, ODS1의 디코드 기간, 및 ODSn의 디코드 기간). 따라서, 그래픽스 컨트롤러(17)에 의해 처리되고 있는 것과 다른 ODS의 디코딩을 종래보다 일찍 종료할 수 있게 된다. 이는 다른 ODS가 그래픽스 컨트롤러(17)에 의해 처리되고 있는 ODS의 디코딩 과 동시에 디코드될 것이기 때문이다. 다른 ODS의 디코딩을 완료함으로써 대화형 화면을 일찍 갱신하기 위한 준비를 갖추는 것이 가능하게 되므로, 다른 ODS를 사용할 대화형 화면 갱신은 종래보다 빠르게 종료할 것이다. 상기한 파이프라인 프로세스는 대화형 화면의 최초 표시와 갱신 모두가 지연 없이 수행되도록 할 수 있다.
도 63은 디폴트 선택된 버튼이 정적으로 결정된 경우를 가정한다. 반면, 도 64는 디폴트 선택된 버튼이 동적으로 변하는 경우에 재생장치에 의한 파이프라인 프로세스를 설명하는 타이밍 차트이다. 디폴트 선택된 버튼이 동적으로 변할 때, 최초 표시에 필요한 그래픽스 오브젝트는, 버튼-상태 그룹에 속하는 모든 ODS가 디코드되고 그래픽스 오브젝트가 그래픽스 플레인에 취득된 경우, 준비될 것이다. 액티브 상태에 대응하는 버튼-상태 그룹에 포함된 모든 ODS를 디코딩한 후 최초 표시가 수행되는 경우와 반대로, 상기한 경우는 액티브 상태에 대응하는 버튼-상태 그룹의 디코딩이 완료되었는지에 관계없이 최초 표시가 수행되도록 할 수 있다. 그러므로, 최초 표시는 이 경우 도면의 기간 hy2 만큼 더 일찍 수행될 것이다.
도 65는 그래픽스 플레인(8), 오브젝트 버퍼(15), 및 부호화 데이터 버퍼(13)의 점유로 연대순 변화를 설명하는 타이밍 차트이다. 이 도면에 사용된 점유 표시는 도 30에 사용된 것과 일치한다. N-ODS, S-ODS, A-ODS를 구성하는 ODS가 제 2 실시예에서 디코드될 것이므로, 단순히 증가하는 부분과 단순히 감소하는 부분의 개수는 도 30에서보다 많다. 이러한 차이를 제외하고, 도 65는 도 30과 동일하다. 제 1 실시예에서와 같이, ODS에 할당된 DTS와 PTS; ICS에 할당된 DTS와 PTS; 도 27에 설명된 각 버퍼의 사이즈와 전송 속도를 이용하여 도 65의 예에 대한 그래프를 설명한다. 또한, 이러한 그래프를 생성함으로써, 사용자는 오소링 단계에서 각 버퍼의 상태가 어떻게 변하는지를 알 수 있다. 각 버퍼 상태의 변화는 DTS와 PTS를 갱신함으로써 조정할 수 있으므로, 이 실시예에서도 재생장치 측에서 디코더의 규격을 초과하는 디코딩 부하가 생성하는 것을 피할 수 있고, 재생에 부수적인 버퍼 오버플로우(overflow)를 피할 수 있게 된다. 이에 따라, 재생장치의 개발단계에서 하드웨어/소프트웨어 성취가 용이하게 될 것이다.
다음, 제 2 실시예의 재생장치를 구현하는데 필요한 소프트웨어 개선을 설명한다.
도 66은 기능 세그먼트의 동작을 로딩하는 프로세스를 보여주는 플로차트이다. 이 도면은 도 31의 플로차트에 기초하여 도시된다. 차이는 단계 S29, 단계 S36 및 S67이 도 66에 추가된다는 것이다.
단계 S36은 command_update_flag가 1인지를 판정하는 것이다. 1이면(단계 S36:Yes), 버튼 정보의 버튼 명령만이 부호화 데이터 버퍼(13)에 로드되고, 다른 것은 무시된다(단계 S37). 0이면, 제어는 단계 S22로 이동하여 Acquisition Point를 나타내는 ICS를 무시한다(단계 S24).
다음, 도 67에서와 같이 다중화가 수행되는 경우를 가정하여 다음은 DS가 어떻게 독출되는지를 설명한다. 도 67의 예는 3개의 DS를 동영상과 함께 다중화한다. 3개의 DS 중, 첫 번째 DS1은 Composition_state로 Epoch Start를 구비하고, LinkPL(PL#5)로 불리고 Comand_update_flag가 0으로 설정된 버튼 명령을 포함한다.
DS10은 DS1의 "복제(duplicate)"이며, Composition_state로 Acquisition Point를 구비하고, LinkPL(PL#5)로 불리고 Comand_update_flag가 0으로 설정된 버튼 명령을 포함한다.
DS20은 DS1의 "유전(inherit)"이며, Composition_state로 Acquisition Point를 구비한다. DS1과 차이는 버튼 명령 LinkPL(PL#10)이며, 이를 나타내기 위하여 Comand_update_flag가 1로 설정된다.
여기서, 3개의 DS와 동영상은 AV 클립에 다중화되고, ms1의 픽처 데이터 pt10에 대한 스킵 동작이 수행된다고 가정한다. 이 경우, 스킵 대상에 가장 인접한 DS10은 도 66의 대상이다. 단계 S27에서, Composition_state는 Acquisition Point로 판정될 것이지만, 그래픽스 디코더(12)에 선행하는 DS는 존재하지 않는다. 따라서, ignore_flag는 0으로 설정되며, 이 DS10은 재생장치의 부호화 데이터 버퍼(13)에 로드된다(도 68의 hs1). 반면, 스킵 동작의 대상이 표시 설정이 존재하는 위치 이후에 오는 경우(ms2), DS 20(ㅇ도 68의 hs2)은 부호화 데이터 버퍼(13)로 독출될 것이다.
도 70은 도 69에서 수행된 정상 재생에서 DS1, DS10, 및 DS20의 로딩을 보여준다. 3개 DS 중, ICS의 Composition_state가 Epoch Start인 DS1은 그대로 부호화 데이터 버퍼(13)에 로드된다(단계 S23). 그러나, ICS의 Composition_state가 Acquisition Point인 DS10은 1의 ignore_flag를 갖는다(단계 S29). 따라서, DS10을 구성하는 기능 세그먼트는 부호화 데이터 버퍼(13)에 로드되지 않고 대신에 무시될 것이다(단계 S24). 또한, DS20에 대해서와 같이, 그것의 ICS의 Composition_state는 Acquisition Point이지만, Comand_update_flag가 1로 설정되는 것은 사실이다. 따라서, 단계 S36은 "Yes"를 가져오고 그것의 버튼 명령만이 로드되며, 부호화 데이터 버퍼(13)의 DS의 ICS의 버튼 명령만이 DS20의 버튼 명령으로 대체된다(단계 S37). 그러나, ignore flag는 여전히 1을 나타내고, 따라서 이 명령과 상이한 다른 것들은 로드되지 않고 대신 무시될 것이다.
DS20에 도달한 경우, 표시 내용은 동일한 채로 있지만, 버튼 명령은 DS의 LinkPL(PL#5)에서 LinkPL(#19)로 변경되었다. 버튼 명령을 이렇게 대체함으로써 버튼 명령의 내용을 변경하는 제어를 할 수 있다. 다음, 그래픽스 컨트롤러에 의해 수행되는 프로세스를 설명한다. 도 71은 그래픽스 컨트롤러(17)에 의해 수행되는 프로세스의 주 루틴을 설명하는 플로차트이다. 이 플로차트에서, 다음의 3가지 동작이 반복하여 실행된다. 즉, 타임 스탬프 동기동작(단계 S35), 애니메이션 표시동작(단계 S36), 및 UP 동작(단계 S37)이다.
여기서, 그래픽스 컨트롤러(17)에 의해 수행되는 프로세스를 설명한다. 그래픽스 컨트롤러(17)에 의해 수행되는 프로세스는 도 36-38에 나타낸 것으로부터 도 71-78에 나타낸 것으로 상당히 변경된다. 도 71은 그래픽스 컨트롤러(17)에 의해 수행되는 프로세스의 주 루틴을 설명하는 플로차트이다. 도 72는 타임 스탬프를 이용하는 동기제어를 구현하기 위한 프로세스를 설명하는 플로차트이다. 이 플로차트에서, 단계 S41, S43-S47의 조건 중 어느 것이든 보유하는지에 대한 판정이 수행된다. 조건 중 어느 것이든 보유하면, 대응하는 동작이 수행되며, 이어 주 루틴으로 복귀한다. 설명한 프로세스는 서브루틴이다.
단계 S41은 현재 재생지점이 S-ODSsfirst의 PTS에 의해 표현된 시간과 S- ODSslast의 PTS에 의해 표현된 시간 중 하나인지를 판정하는 것이다. 현재 재생지점이 상기한 시간 중 하나인 것으로 판정되면, 그것의 기간 α가 계산된다. (2) 그래픽스 플레인을 소거하는데 필요한 기간과, (1) ODS 디코딩에 의해 취득한 그래픽스 오브젝트를 그래픽스 플레인에 기입하는데 필요한 기간의 총합으로 기간 α가 얻어진다.
단계 S42에서, 그래픽스 컨트롤러(17)는 ICS의 Composition_state를 참조하면, a) Composition_state가 Epoch Start이면, α가 "플레인 소거 기간(2) + 플레인 기입 기간(3)"인 것으로 설정하고, b) Composition_state가 Aquisition Point이면, α는 플레인 기입 기간(3)으로 설정한다. 플레인 기입 기간(3)의 계산은 다음과 같이 수행된다. default_selected_button_number가 유효 값이면, 도 54a의 계산법이 사용되고, default_selected_button_number가 0이면, 도 54b의 계산법이 사용된다. α가 계산된 경우, 제어는 루프 프로세싱으로 복귀할 것이다.
단계 S43은 현재의 재생지점이 ICS의 PTS-α에 의해 나타낸 시간인지를 판정하는 것이다. 판정결과가 긍정적이면, 그래픽스 플레인(8)에의 기입 동작이 수행되며(단계 S51), 제어는 주 루틴으로 복귀한다.
단계 S45는 현재 재생지점이 ICS의 PTS에 있는지를 판정하는 것이다. 판정이 긍정적인 결과로 되면, 그래픽스 플레인(8)의 콘텐츠의 출력을 지시한다. 콘텐츠의 목적지는 CLUT 유닛(9)이다. CLUT 유닛(9)는 콘텐츠에 색 변환을 수행한다. 이어 대화형 화면이 비디오 플레인의 콘텐츠와 결합될 것이다. 그 결과, 최초 표시가 수행된다(단계 S52). 이어, 변수 "animation(p) (p=1, 2, 3, ... n)"은 0으로 설정되 며(단계 S53), 제어는 주 루틴으로 복귀한다. 여기서, 변수 animation(p)는 프레임 시퀀스에서 어떤 번호의 프레임이 현재 표시되는지를 나타내는 전역(global) 변수로, button(p)의 애니메이션 표시를 실행하는데 이용된다(전역 변수는 다수의 플로차트를 통하여 유효한 변수이다). 따라서, 단계 S53에서, 모든 버튼의 button(p)는 0으로 설정될 것이다.
단계 S46과 단계 S47은 현재의 재생지점이 ICS에 기술된 시간 정보에 도달하였는지를 판정하는 것이다.
단계 S46은 현재 재생시간이 selection_TimeOut_PTS가 나타내는 시간인지를 판정하는 것이며, 판정이 긍정적인 결과로 되면, default_activated_button_number이 나타내는 버튼을 활성화하기 위한 종작이 수행되며, 제어는 주 루틴으로 복귀한다(단계 S54).
단계 S47은 현재 재생지점이 Composition_TimeOut_PTS인지를 판정하며, 판정이 긍정적인 결과로 되면, 화면은 소거되고 제어는 주 루틴으로 복귀한다(단계 S55). 상기한 동기동작에서, 단계 S51와 단계 S54의 각 동작이 서브루틴으로 수행된다. 이어, 단계 S51의 서브루틴을 도 73을 참조하여 설명한다.
도 73은 메뉴의 최초 표시를 그래픽스 플레인(8)에 기입하는 동작을 설명하는 플로차트이다. 단계 S64는 ICS의 Composition_state가 Epoch Start인지를 판정하는 것이며, 판정이 긍정적이면, 그래픽스 플레인은 단계 S65에서 소거되고, 단계 S66-S73의 동작이 수행된다. 그래픽스 플레인(8)을 소거하는데 필요한 기간은 도 56과 도 57의 기간 cd1이다. 단계 S64의 판정이 부정적이면, 단계 S65는 스킵되고, 단계 S66-S73의 동작이 수행된다.
단계 S66-S73은 루프 프로세싱을 형성하며, ICS의 각 버튼 정보 부분에 대해 반복된다(단계 S66, S67). 이 루프 프로세싱을 거쳐야 하는 버튼 정보는 button information(p)로 칭한다.
단계 S67은 default_selected_button_number에 의한 지시가 유효한지의 여부를 판정하는 것이다. 단계 S68은, button_info(p)가 default_selected_button_number에 의해 지시된 디폴트 선택된 버튼에 대응하는 버튼 정보인지를 판정하는 것이다.
단계 S68의 판정이 부정적이면, button_info(p)의 normal_state_info가 지시하는 start_object_id_normal의 그래픽스 오브젝트가 오브젝트 버퍼(15)로부터 발견되고, Graphics Object(p)로 식별된다(단계 S69).
단계 S68의 판정이 긍정적이면, button_info(p)의 selected_state_info가 지시하는 start_object_id_selected의 그래픽스 오브젝트가 오브젝트 버퍼(15)로부터 발견되고, Graphics Object(p)로 식별된다(단계 S70). 현재의 버튼은 현재 표시되는 대화형 화면에 선택된 상태에 있도록 설정된 버튼이다. 재생장치는 이 현재의 버튼의 식별자를 PSR(10)로 저장한다.
Graphics Object(p)가 단계 S69와 단계 S70의 결과로 식별되었다면, Graphics Object(p)는 button_info(p)의 Button_horizontal_position과 Button_vertical_position이 지시하는 그래픽스 플레인(8) 상의 위치에 기입된다(단계 S72). 각 버튼 정보 부분에 대해 상기한 동작을 반복함으로써, 각각 대응하는 버튼의 상태를 보여주는 다수의 그래픽스 오브젝트 중의 첫 번째 그래픽스 오브젝트가 그래픽스 플레인(8)에 기입 될 것이다. 오브젝트 버퍼(15)의 적어도 최초 표시에 필요한 그래픽스 오브젝트에 대한 상기 동작을 수행하는데 필요한 기간은 도 56과 도 57의 기간 td1으로 나타낸다.
default_selected_button_number가 "=0"이고, 디폴트 선택된 버튼이 동적으로 변하는 경우, 단계 S67은 No일 것이며, button_info(p)가 현재 버튼에 대응하는지를 판정한다. 단계 S67의 판정이 긍정적인 결과로 되면, 제어는 단계 S70으로 가고, 판정이 부정적인 결과로 되면, 제어는 단계 S69로 이동한다.
다음, 단계 S54의 서브루틴 프로세스를 도 74를 참조하여 설명한다.
도 74는 디폴트 선택된 버튼에 대한 자동 활성화 프로세스를 설명하는 플로차트이다. 먼저, default_activated_button_number가 0이거나 FF인지를 판정한다(단계 S75). 단계S75의 판정이 "00"인 결과로 되면, 프로세스가 수행되지 않고 제어는 주 루틴으로 복귀한다. 단계 S75의 판정이 "FF"인 결과로 되면, 현재 버튼 i는 액티브 상태로 변하고(단계 S77), 변수 animation(p)는 0으로 설정되며, 제어는 주 루틴으로 복귀한다(단계 S78).
단계 S75의 판정이 "00"이나 "FF" 어느 것도 아닌 결과로 되면, default_activated_button_number로 지정된 버튼이 현재 버튼으로 설정되고(단계 S76), 현재버튼 i는 액티브 상태로 변하고(단계 S77), 현재 버튼 i에 대응하는 변수 animation(p)은 0으로 설정되며, 제어는 주 루틴으로 복귀한다(단계 S78).
상기한 프로세스는 선택된 상태의 버튼이 기설정된 시간 후에 액티브 상태로 변하도록 할 수 있다.
다음, 메뉴에 의한 애니메이션(단계 S36)을 설명한다. 도 75는 애니메이션 표시 프로세싱을 보여주는 플로차트이다.
여기서, 최초 표시는 그래픽스 오브젝트를 그래픽스 플레인(8)에 기입함으로써 구현되고, 그래픽스 오브젝트는 각 button_info에 대해, 1) normal_state_info의 start_object_id_normal, 및 2) selected_state_info의 start_object_id_selected에 의해 지정되어 있다. 여기서 "애니메이션"은, 단계 S35-단계 S37의 루프 프로세싱의 한 사이클이 완료될 때마다, 각 버튼의 임의의 프레임(즉, q 번째 프레임의 그래픽스 오브젝트)을 갖는 그래픽스 플레인을 갱신하는 프로세스이다. 이 갱신은 주 루틴으로 복귀하고 button_info의 normal_state_info와 selected_state_info에 의해 지시된 그래픽스 오브젝트를 하나씩 그래픽스 플레인(8)에 기입함으로써 수행된다. 여기서, 변수 q는 각 버튼 정보 부분에 대해 button_info의 normal_state_info와 selected_state_info에 의해 지시된 각 그래픽스 오브젝트를 식별하는데 이용된다.
이 애니메이션 표시를 구현하기 위한 프로세스를 도 75를 참조하여 상세하게 설명한다. 이 플로차트는 ICS의 repeat_normal_flag와 repeat_selected_flag가 설명을 간단하게 하기 위하여 "repetition necessary"를 지시하도록 설정되는 경우를 가정한다.
단계 S80은 최초 표시가 종료되었는지를 판정한다. 단계 S80의 판정이 부정적인 결과로 되면, 제어는 어떠한 프로세스 없이 복귀한다. 단계 S80의 판정이 긍 정적인 결과로 되면, 단계 S81-단계 S93이 수행된다. 단계 S81-단계 S93은 ICS의 각 button_info에 대해 단계 S83-단계 S93의 동작을 반복하는 루프 프로세싱을 구성한다(단계 S81, 단계 S82).
단계 S83은 button_info(p)에 대응하는 변수 animation(p)를 변수 q로 설정하는 것이다. 이 단계를 수행함으로써, 변수 q는 button_info(p)에 대응하는 현재 프레임 번호를 지시할 것이다.
단계 S84는 button_info(p)가 현재 선택된 상태의 버튼(이하, "현재 버튼"이라 함)에 대응하는지를 판정한다.
button_info(p)가 현재 버튼 이외인 것으로 판정되면, 단계 S86의 판정이 수행된다.
단계 S86은 현재 버튼이 액티브 상태인지를 판정하며, 긍정적으로 판정되면, 변수 q를 button_info(p).actioned_state_info의 start_object_id_actioned에 더한 결과로 된 식별자가 ID(q)가 되도록 설정된다. 이어, button_info(p)에 포함된 것 중 하나의 버튼 명령이 실행된다(단계 S88).
현재버튼이 액티브 상태에 있지 않은 것으로 판정되면, 변수 q를 button_info(p).selected_state_info의 start_object_id_selected에 더한 결과로 된 식별자가 ID(q)가 되도록 설정된다(단계 S89).
ID(q)가 상기의 동작의 결과로 결정되면, ID(q)를 구비하고 오브젝트 버퍼(15)에 존재하는 Graphics Object(p)는 button_info(p)의 Button_horizontal_position과 Button_vertical_position이 지시하는 그래픽스 플 레인(8) 상의 위치에 기입된다(단계 S90).
상기한 루프 프로세싱에 의해, 현재 버튼의 선택된 상태(또는, 액티브 상태), 그리고 다른 버튼의 정상상태를 구성하는 다수의 그래픽스 오브젝트 중, q 번째 페이지에 대응하는 그래픽스 오브젝트가 그래픽스 플레인(8)에 기입된다.
단계 S91은 start_object_id_normal+q가 end_object_id_normal에 도달하였는지를 판정하는 것이다. 단계 S91의 판정이 부정적인 결과로 되면, 변수 1를 1만큼 증분한 결과로 나온 값이 변수 "animation(p)"로 설정된다(단계 S92). 단계 S91의 판정이 긍정적인 결과로 되면, 변수 "animation(p)"는 값 0을 갖도록 초기화된다(단계 S93). 상기한 동작은 ICS의 모든 button_info에 대해 반복된다(단계 S81, S82). 모든 button_info가 상기한 동작을 거친 경우, 제어는 주 루틴으로 복귀한다.
상기한 단계 S80-단계 S93 중, 주 루틴(단계 S35-단계 S37)이 한 번 수행될 때, 대화형 화면의 각 버튼의 이미지가 새로운 그래픽스 오브젝트로 갱신될 것이다. 이것은, 상기한 주 루틴(단계 S35-단계 S37)이 여러 번 수행될 때, 소위 애니메이션이 구현되는 것을 의미한다. 애니메이션에서, 그래픽스 컨트롤러(17)는, 그래픽스 오브젝트의 한 프레임에 대한 표시 간격이 animation_frame_rate_code가 지시하는 값이 되도록 시간을 조정한다.
여기서, 단계 S88에서, button_info(p)에 포함된 버튼 명령은 하나씩 실행되는 것에 유의해야 한다. 그러나, 액티브 상태에 대응하는 일련의 그래픽스 오브젝트가 표시된 후, 버튼 명령을 총괄하여 실행하는 것도 가능하다. 다음, 주 루틴의 단계 S37에서 수행되는 UO 동작의 프로세스를 도 76을 참조하여 설명한다.
도 76은 UO 동작의 프로세스를 보여주는 플로차트이다. 이 플로차트에서, 단계 S100-단계 S103의 조건 중 어느 것이든 보유하는지를 판정한다. 조건 중 어느 것이든 보유하면, 대응하는 프로세싱이 수행되고, 이어 주 루틴으로 돌아간다. 단계 S100은 UOmaskTable이 "1"로 설정되는지를 판정하는 것이며, 판정이 긍정적이면, 제어는 어떠한 프로세싱 없이 주 루틴으로 복귀한다.
단계 S101은 MoveUp/Down/left/Right 키가 눌렸는지를 판정한다. 판정이 긍정적이면, 현재 버튼은 변경되고(단계 S104), 이어 현재 버튼의 auto_action_flag가 01인지를 판정한다(단계 S108). 단계 S108의 판정이 부정적이면, 제어는 주 루틴으로 복귀한다. 단계 S108의 판정이 긍정적이면, 제어는 단계 S105로 이동한다.
단계 S102는 활성화된 키가 눌렸는지를 판정하는 것이다. 판정이 긍정적이면, 현재 버튼 i는 액티브 상태로 변경된다(단계 S105). 이어 변수 "animation(i)"는 0으로 설정된다(단계 S106).
단계 S103은 수치가 입력된 경우인지를 판정하는 것이다. 판정이 긍정적이면, 대응하는 수치 입력 동작이 수행되고(단계 S107), 제어는 주 루틴으로 돌아간다. 도 76의 프로세스 중, 단계 S104와 단계 S107 각각은 서브루틴이다. 이 서브루틴의 프로세스는 도 77과 도 78에 도시된다. 다음은 이 플로차트에 대한 설명이다.
도 77은 현재 버튼 변경동작의 프로세스이다. 먼저, 현재 버튼의 neighbor_info에 속하는 upper_button_number, lower_button_number. left_button_number, 및 right_button_number 중, 눌린 키에 대응하는 것이 식별된 다(단계 S110).
이어, 현재 버튼은 "button i"로 설정되며, 새로운 현재 버튼으로 되는 버튼은 "button j"로 설정된다(단계 S111). 단계 S112는 단계 S111에서 설정된 button j가 button i에 대응하는지를 판정하는 것이다. 이들이 서로 대응하면, 제어는 어떠한 프로세싱도 수행하지 않고 주 루틴으로 복귀한다. 이들이 서로 대응하지 않으면, button j는 현재 버튼으로 설정되고(단계 S113), 변수 "animation(i)"과 변수 "animation(j)"는 0으로 설정되며, 제어는 주 루틴으로 돌아간다(단계 S114).
도 78은 수치 입력동작의 프로세스를 보여주는 플로차트이다. 입력된 수치와 일치하는 button_number를 갖는 Button_info.j가 있는지에 대한 판정이 수행된다(단계 S121). Button_info.j의 numerically_selectable_flag가 1인지에 대한 판정이 수행된다(단계 S122). 단계 S121과 단계 S122가 "Yes"이면, 현재 버튼은 정상상태로 변경되고, button j가 현재 버튼으로 설정되며(단계 S123), 변수 "animation(i)"과 변수 "animation(j)"는 0으로 설정된다(단계 S124). 이들 동작 후, Button_info.j의 auto_action_flag가 1인지에 대한 판정이 수행된다(단계 S125). 판정이 부정적이면, 제어는 주 루틴으로 복귀한다.
판정이 긍정적이면, 현재 버튼은 단계 S126에서 액티브 상태로 변경되고, 제어는 주 루틴으로 돌아간다.
단계 S121-S122의 어느 것이든 No이면, 제어는 주 루틴으로 돌아간다.
그래픽스 컨트롤러(17)는 동기 표시를 수행하기 위하여 상기의 프로세스를 수행한다. 여기서, 팝업 표시 등을 이용한 사용자 조작에 의해 시작되는 대화형 화 면 표시를 수행하면, 스트림 그래픽스 프로세서(14)와 그래픽스 컨트롤러(17)는, 동기 표시를 수행하기 위하여 수행된 동작과 동일한 이어지는 동작을 수행한다. 이어지는 동작을 수행함으로써, 그래픽스 오브젝트가 그래픽스 플레인(8)에 취득된다. 상기한 바와 같이 그래픽스 오브젝트가 취득된 후, 현재 재생장치가 ICS에 할당된 PTS가 지시하는 시간을 경과할 때까지 대기한다. 이어, 상기한 시간 후, UO 컨트롤러(18)가 메뉴 호출을 지시하는 UO를 수신하면, 그것은 CLUT 유닛(9)로 출력되어 CLUT 유닛(9)가 그래픽스 플레인(8)에 저장된 그래픽스 오브젝트를 수행하도록 지시한다. 이러한 출력이 UO와 동기하여 수행되면, 메뉴 호출을 누름에 따른 팝업 표시가 구현될 것이다.
상기의 설명은 DSn에 속하는 ICS의 PTS; ODS와 PTS의 DTS의 설정을 설명한다. 그러나, ICS의 DTS; PDS의 DTS와 PTS; END의 DTS와 PTS는 언급하지 않는다. 이러한 관점에서, 다음은 이들에 관한 타임 스탬프를 설명한다. WDS가 제 2 실시예에 존재하지 않기 때문에, ICS는, 1) DSn의 첫 번째 PDS(PDS1)의 디코딩 개시시간(즉, DTS(DSn[ODS1])), 및 2) DSn의 첫 번째 PDS(PDS1)이 사용가능하게 되는 시간(즉, PTS(DSn[PDS1]))에 앞서, ICS가 합성 버퍼(16)에 로드되어야 한다. 다시 말해, 다음 식을 만족하는 값으로 설정되어야 한다.
DTS(DSn[ICS]) ≤ DTS(DSn[ODS1])
DTS(DSn[ICS]) ≤ PTS(DSn[PDS1])
다음, DSn에 속하는 각 PDS에 대해 DTS와 PTS의 설정을 설명한다.
DSn에 속하는 각 PDS가 CLUT 유닛(9)에서 유효하게 되는 시간은, 1) ICS가 합성 버퍼(16)에 로드되는 시간에서, 2) 첫 번째 ODS에 대한 디코딩 개시시간 (DTS(DSn[ODS1])까지이다. 이를 고려하여, DSn에 속하는 각 PDS(즉, PDS1-PDSlast)의 PTS 값은 다음의 관계를 만족하는 값으로 설정되어야 한다.
DTS(DSn[ICS]) ≤ PTS(DSn[PDS1])
PTS(DSn[PDSj]) ≤ PTS(DSn[PDSj+1]) ≤ PTS(DSn[PDSlast])
PTS(DSn[PDSlast]) ≤ DTS(DSn[ODS1])
다음, DSn에 속하는 "END of Display SetSegment"의 PTS의 설정을 설명한다. DSn에 속하는 END는 DSn의 끝을 나타낸다. 따라서, 이는 DSn의 최종 ODS (ODSlast)의 디코딩 종료시간이어야 한다. 이 디코딩 종료시간은 PTS가 지시하며(PTS(DSn[ODSlast])), 따라서 END의 PTS는 다음 식으로 나타낸 값으로 설정되어야 한다.
PTS(DSn[END]) = PTS(DSn[ODSlast])
DSn과 DSn+1에 속하는 ICS와의 관계를 고려하여, DSn의 ICS는 첫 번째 ODS(ODS1)의 로딩 시간에 앞서 합성 버퍼(16)에 로드된다. 따라서, END의 PTS는, 1) DSn에 속하는 ICS의 로딩 시간(즉, DTS(DSn[ICS]) 이후, 그리고 2) DSn+1에 속하는 ICS의 로딩 시간(즉, DTS(DSn+1[ICS]) 이전이어야 한다. 따라서, END의 PTS는 다음 관계를 만족해야 한다.
DTS(DSn[ICS]) ≤ PTS(DSn[END]) ≤ DTS(DSn+1[ICS])
반면, 첫 번째 ODS(즉, ODS1)의 로딩 시간과 END의 PTS(즉, PTS(DSn[END])는 DSn에 속하는 PDS의 로딩 시간 이후이어야 한다. 따라서, END의 PTS는 다음 관계를 만족한다.
PTS(DSn[PDSlast]) ≤ PTS(DSn[END])
DTS와 PTS가 설정된 ICS, PDS, ODS가 AV 클립에 미리 포함되어 있기 때문에, 임의의 동화상의 프레임이 화면에 나타날 때 재생장치가 어떠한 동작을 수행하도록 하기 위한 대화형 제어를 기술하기가 편리하다. 다시 말해, 상기의 배열은 동화상 콘텐츠와 밀접하게 동기되는 대화형 제어를 기술하는데 편리하다. 또한, ICS, PDS, 및 ODS는 AV 클립 자체에 다중화된다. 따라서, 사용자가 재생 제어를 하고자 하는 구간이 다수인 경우, 가령 수백인 경우, 모든 구간에 대응하는 IDS, PDS, 및 ODS 모두를 메모리에 저장할 필요가 없다. ICS, ODS, 및 ODS는 BD-ROM으로부터 판독되기 때문에, 다음의 배열로 충분하다. 즉, 바로 재생될 동화상 구간에 대응하는 ICS, ODS, 및 ODS는 메모리에 상주한다. 이 동화상 구간에 대한 재생이 종료된 후, 대응하는 ICS, ODS, 및 ODS는 메모리에서 삭제되고, 대신 이어지는 동화상 구간에 대응하는 ICS, ODS, 및 ODS가 메모리에 저장된다. ICS, ODS, 및 ODS는 AV 클립에 다중화될 것이기 때문에, ICS, ODS, 및 ODS의 수가 수백이 되더라도, 메모리의 점유는 최소 필요수준으로 제한될 수 있다.
상기에서 설명한 바와 같이, 이 실시예는 애니메이션을 구현하기 위해 369페이지의 ODS를 구비한다. 따라서, 버튼 자료가 3가지 상태로 분류될 때, ODS는 120페이지씩 분류될 것이다(즉, 3가지 버튼-상태 그룹으로). 버튼-상태 그룹은, 나중에 나타나는 상태에 대응하는 그룹과 비교하여, 더 일찍 나타나는 상태에 대응하는 그룹이 처음에 더 많이 위치하도록 정렬된다. 이 때문에, 재생시, 더 일찍 나타나는 상태에 대응하는 버튼-상태 그룹은, 나중에 나타나는 상태에 대응하는 버튼-상태 그룹과 비교하여, 재생장치에 더 일찍 로드된다. 이에 따라, 360 페이지의 ODS 모두의 디코딩이 완료되지 않았더라도, 전체 ODS의 약 1/3 - 2/3만이 완료되면, 적어도 최초 표시는 수행될 준비가 된다. 최초 표시 동작이 전체 ODS의 약 1/3 - 2/3의 완료시 개시될 수 있기 때문에, 판독되어 디코드될 다수의 ODS가 있더라도, 최초 표시는 지연되지 않을 것이다. 따라서, 화면이 사용자를 즐겁게 하는 애니메이션을 포함하더라도, 대화형 화면은 신속하게 실행된다.
(제 3 실시예)
이 실시예는 BD-ROM의 제조방법에 관한 것이다. 도 79는 제 1 실시예에서 설명한 PCS를 기록하는 BD-ROM을 제조하는 방법을 설명한다.
BD-ROM의 제조방법은, 이미지 픽처를 촬영하고 대응하는 오디오를 기록하는 자료제작 단계 S201; 애플리케이션 포맷을 생성하는 오소링 단계 S202; 및 프레싱/라미네이션을 수행하여 BD-ROM을 완성하는 프레스 단계 S203을 포함한다.
이들 단계 중, BD-ROM에 대한 오소링 단계는 다음의 단계 S204-단계 S210을 포함한다.
단계 S204에서, 제어정보, 윈도우 정의 정보, 팔레트 정의 정보, 및 그래픽스가 기술된다. 단계 S205에서, 제어정보, 윈도우 정의 정보, 팔레트 정의 정보, 및 그래픽스가 각각 기능 세그먼트로 변환된다. 단계 S206에서, 동기하여 표시될 픽처가 나타나는 때에 따라 PCS의 PTS가 설정된다. 단계 S207에서, PTS[PCS]의 값에 따라 DTS[ODS]와 PTS[ODS]가 설정된다. 단계 S208에서, DTS[ODS]의 값에 따라, DTS[PCS], PTS[PDS], DTS[WDS], 및 PTS[WDS]가 설정되고, 단계 S209에서, 재생장치 모델의 각 버퍼의 점유의 연대순 변화가 그래프로 표현된다. 단계 S210에서, 그래프로 표현된 연대순 변화가 재생장치 모델에 강요된 제한을 만족하는지를 판정한다. 단계 S210의 판정이 긍정적인 결과로 되면, 그래픽스 스트림이 단계 S212에서 생성되고, 그래픽스 스트림과, 이 그래픽스 스트림으로부터 별도로 생성된 비디오 스트림과 오디오 스트림과 함께 다중화함으로써 AV 클립을 취득한다. 이어, BD-ROM의 포맷에 따르도록 AV 클립을 만들어 애플리케이션 포맷을 완성한다.
상기한 설명은 제 1 실시예에 따른 기록매체의 제조방법에 대한 것이다. 제 2 실시예에 따른 기록매체의 제조방법은 도 80에 도시된다. 도 80에서, 단계 S304-단계 S308은 도 79의 단계 S204-단계 S208을 대체한다.
다음에서 단계 S304-단계 S308을 설명한다. 단계 S304에서, 제어정보, 팔레트 정의 정보, 및 그래픽스가 기술된다. 단계 S305에서, 제어정보, 팔레트 정의 정보, 및 그래픽스가 각각 기능 세그먼트로 변환된다. 단계 S306에서, 동기하여 표시될 픽처가 나타나는 때에 따라 PCS의 PTS가 설정된다. 단계 S307에서, PTS[ICS]의 값에 따라 DTS[ODS]와 PTS[ODS]가 설정된다. 단계 S308에서, DTS[ODS]의 값에 따라, DTS[ICS] 및 PTS[PDS]가 설정된다.
(주의)
말할 필요 없이, 상기한 설명은 본 발명의 모든 실시예와 사용 형태를 나타내지 않는다. 본 발명은 다음의 변형예 (A), (B), (C), (D), ... 등의 어느 것이든 추가된 실시예에 의해서도 구현된다. 본 발명의 청구항의 발명은 상기한 실시예 또는 변형예를 다음의 변형에 기초하여 확장하거나 일반화한 기재이다. 확장과 일반화의 정도는 출원시의 기술수준을 반영한다.
(A) 모든 실시예에서, 본 발명에 따른 기록매체는 BD-ROM인 것으로 가정된다. 그러나, 본 발명의 특징은 매체에 기록되는 그래픽스 스트림에 있으며, 이러한 특징은 BD-ROM의 물리적 속성에 좌우되지 않는다. 다시 말해, 그래픽스 스트림을 저장할 수 있는 어떠한 기록매체라도 본 발명을 구현하는데 사용될 수 있다. 이러한 기록매체의 예로는 DVD-ROM, DVD-RAM, DVD-RW, DVD-R, DVD+RW, DVD+R, CD-R, 및 CD-RW 같은 광디스크, PD와 MO 같은 광자기 디스크를 포함한다. 상기 예는 콤팩트 플래시 카드, 스마트 매체, 메모리 스틱, 멀티-미디어 카드, 및 PCM-CIA 카드와 같은 반도체 메모리 카드를 추가로 포함한다. 상기 예는 또한 플렉시블 카드, SuperDisk, Zip, 및 Clik!과 같은 자기 기록디스크, 그리고 ORB, Jaz, SparQ, SyJet, EZFley, 마이크로 드라이브와 같은 리무버블 하드디스크 드라이브를 추가로 포함한다. 상기 예는 또한 장치에 내장되는 하드디스크를 포함한다.
(B) 상기의 모든 실시예에서, 재생장치는 BD-ROM에 기록된 AV 클립을 디코드하고 디코드된 AV 클립을 TV에 출력한다. 그러나, 재생장치가 단순히 BD-ROM 드라이브이고, 다른 요소는 TV에 포함된 구조도 가능하다. 이 경우, 재생장치와 TV는 홈 네트워크를 구성하는 IEEE1394를 통하여 연결될 수 있다. 이 실시예의 재생장치는 거기에 연결된 TV와 함께 사용하기 위한 것이다. 그러나, 재생장치는 디스플레이와 일체일 수 있다. 또한, 각 실시예의 재생장치에서, 프로세싱의 필수 부분인 시스템 LSI(집적회로)만이 발명으로 간주될 수 있다. 재생장치와 집적회로는 모두 이 명세서에 기술된 발명이며, 따라서 제 1 실시예에 따른 재생장치의 내부 구조에 기초하여 상기한 형태의 어느 것이든 갖는 재생장치를 제조하는 어떠한 행위도 본 발명의 실시이다. 또한, 본 발명에 따른 재생장치의 무상이나 유상으로의 양도, 대여, 및 수입도 또한 본 발명의 실시를 구성한다. 또한, 상점에서의 진열, 카탈로그 권유, 및 팸플릿 배포를 통하여 이러한 양도와 대여를 수행하는 어떠한 행위도 본 발명의 실시를 구성한다.
(C) 각 플로차트에 도시된 정보 처리는 하드웨어 자원을 이용하여 구체적으로 구현된다. 따라서 그 처리가 각 플로차트에 도시된 어떠한 프로그램도 독립된 발명을 구성한다. 이 프로그램에 관련한 모든 실시예들은 프로그램이 대응하는 재생장치에 내장되는 형태인 것을 가정한다. 그러나, 제 1 실시예에 따른 프로그램은 대응하는 재생장치로부터 독립된 실시일 수 있다. 프로그램 자체의 실시의 예는 (i) 프로그램을 제작하는 행위, (ii) 프로그램을 유상 또는 무상으로 대여하는 행위, (iii) 프로그램을 양도하는 행위, (iv) 프로그램을 수입하는 행위, (v) 대화형 전자통신라인을 통하여 프로그램을 공중에 제공하는 행위, 및 (vi) 상점에서의 진열, 카탈로그 권유 및 팸플릿 배포를 통하여 일반 사용자에게 양도하는 행위를 포함한다.
(D) 모든 플로차트에서 연대순으로 순서로 수행되는 각 단계들에 존재하는 시간 개념이 본 발명을 특정하는 필수적인 요소로 간주되면, 플로차트의 각 프로세스는 재생방법의 사용 패턴을 개시하는 것으로 해석된다. 본 발명의 목적을 달성하는데 있어서 효과적이고 도움이 되도록, 각 단계를 연대순으로 실행함으로써 상기 플로차트의 프로세스가 실행되면, 그것은 본 발명에 따른 기록 방법의 실시에 대응할 것이다.
(E) BD-ROM에 기록시, AV 클립을 구성하는 각 패킷은 추가 헤더를 할당받는 것이 바람직하다. 추가 헤더는 "TP_extra_header"로 칭하고, "Arrival_Time_Stamp"와 "copy_permission_indicator"를 포함하며, 4 바이트 길이를 갖는다. TP_extra_header가 할당된 TS 패킷(EX-할당 패킷)은 각각 32개 TS 패킷을 포함하는 그룹으로 분리되고, 3개의 섹터에 기입된다. 각각 32개 EX-할당 TS 패킷으로 구성된 그룹의 총 사이즈는 6144 바이트(=32*192)이다. 한 섹터에 저장된 32개 EX-할당 TS 패킷은 "정렬 단위(Aligned Unit)"로 언급한다.
IEEE1394를 통하여 연결된 홈 네트워크에서 사용될 때, 재생장치는 다음의 송신 처리에 의해 정렬 단위 송신을 수행한다. 즉, 송신측 장치는 정렬 단위의 32개 EX-할당 TS 패킷 각각으로부터 TS_extra_header를 제거하고, TS 패킷의 몸체를 디코드하여 이를 출력한다. TS 패킷의 출력시, 등시 패킷이 TS 패킷 사이의 여러 곳에 삽입된다. 정확한 삽입 위치는 TS_extra_header의 Arrival_Time_Stamp가 나타내는 시간에 기초한다. TS 패킷의 출력에 응답하여, 재생장치는 DTCP_Descriptor를 출력한다. DTCP_Descriptor는 TP_extra_header의 복제 허용/금지 설정을 식별한다. 따라서, DTCP_Descriptor가 "복제 금지"를 식별하도록 기술되면, TS 패킷이 IEEE1394를 통해 연결된 홈 네트워크에 사용될 때, TS 패킷은 다른 장치에 기록되지 않을 것이다.
(F) 상기한 실시예의 디지털 스트림은 BD-ROM 규격의 AV 클립이다. 그러나, 디지털 스트림은 DVD-Video 규격이나 DVD-Video 기록규격의 비디오 오브젝트(VOB)일 수 있다. VOB는 비디오 스트림과 오디오 스트림을 다중화함으로써 취득되며 ISO/IEC13818-1-규격에 따르는 프로그램 스트림이다. 또한, AV 클립의 비디오 스트림은 MPEG4나 WMV 규격에 기초할 수도 있다. 또한, 오디오 스트림은 돌비-AC3, MP3, MPEG-AAC 또는 DTS 규격에 기초할 수 있다.
(G) 상기한 실시예의 영화물은 아날로그 화상 신호를 인코딩하여 얻을 수 있거나, 또는 디지털 방송을 통하여 전송되는 트랜스포트 스트림에 의해 구성되는 스트림 데이터일 수 있다. 또한, 비디오 테이프에 기록된 아날로그 또는 디지털 화상 신호를 인코딩하여 콘텐츠를 얻을 수 있거나, 분배 서버에 의해 분배되는 디지털 작업물일 수 있다.
(H) 제 1 및 제 2 실시예에 도시된 그래픽스 오브젝트는 런-렝스(run-length) 인코딩법으로 인코딩된 라스터(raster) 데이터이다. 런-렝스 인코딩법이 그래픽스 오브젝트의 압축/인코딩법으로 사용되는 이유는 런-렝스 인코딩법이 자막 을 압축하고 인코딩하는데 가장 적절하기 때문이다. 자막은 수평방향의 한 픽셀값의 연속 길이가 비교적 길다는 특성을 갖는다. 따라서 런-렝스 인코딩 압축을 이용함으로써 높은 압축률을 얻는다. 또한, 압축해제시 부수하는 로드가 많지 않기 때문에 디코딩 처리를 위한 소프트웨어를 만드는데 바람직하다. 본 발명에서, 자막에 이용되는 압축/압축해제 방법은 그래픽스 오브젝트에 이용되며, 따라서 디코딩을 위한 하나의 장치 구조가 자막과 그래픽스 오브젝트 사이에 공유된다. 그러나, 런-렝스 인코딩법의 적용이 본 발명의 필수 부분은 아니며, 선택적으로 그래픽스 오브젝트는 PNG 데이터일 수 있다. 또한, 라스터 데이터는 벡터 데이터 또는 투명 이미지일 수 있다.
(I) PCS에 의한 표시 효과는 재생 측의 언어 설정에 따라 선택된 자막의 그래픽스에 부여될 수 있다. 이에 의해, 현재 DVD의 동화상 본체에 의해 표현되는 캐릭터에 의해 구현되는데 사용된 표시 효과가 재생 측의 언어 설정에 따라 표시된 자막 그래픽스를 이용하여 구현될 수 있다.
(J) PCS에 의한 표시 효과는 언어 설정에 따라 재생 측에 의해 선택된 자막의 그래픽스에 부여될 수 있다. 구체적으로, 와이드-비전, 팬-스캔, 및 레터박스와 같은 다양한 표시 모드를 위한 그래픽스가 BD-ROM에 기록되고, 재생장치는 이 재생장치가 연결된 TV의 설정에 기초하여 이들 중 하나를 선택한다. 이 경우, 표시 효과는 상기한 방법으로 표시된 자막 그래픽스에 부여될 것이다. 따라서, 현재 DVD의 동화상 본체에 의해 표현되는 캐릭터에 의해 구현되는데 사용된 표시 효과가 재생 측의 언어 설정에 따라 표시된 자막 그래픽스를 이용하여 구현될 수 있다. 이것은 실제로 매우 유용하다.
(K) 제 1 실시예에서, 윈도우 크기가 전체 그래픽스 플레인의 25%가 되도록 그래픽스플레인 플레인에의 기입 속도 Rc가 정의되어, 그래픽스 플레인의 소거와 리렌더링(re-rendering)이 한 비디오 프레임 내에서 가능하도록 한다. 그러나, 선택적으로, 수직 리트레이스(retrace) 기간이 1/29.93초의 25%인 것으로 가정하면, Rc는 1 Gbps일 것이다. 이러한 방법으로 Rc를 설정함으로써, 그래픽스 표시는 용이해질 것이다. 이것은 실제로 매우 유용하다.
또한, 수직 리트레이스 기간 중 기입하는 이외에 기입 스캔과 동기한 기입이 동시에 수행될 수도 있다. 이것에 의해, 기입 속도 Rc가 256 Mbps인 경우에도, 표시가 용이해질 것이다.
(L) 상기한 각 실시예에서, 재생장치는 그래픽스 플레인을 구비한다. 그러나, 그래픽스 플레인 대신에 한 라인용 압축해제된 픽셀을 저장할 수 있는 라인 버퍼가 재생장치에 장착될 수도 있다. 화상 신호로의 변환은 각 수평 행(즉, 라인) 단위로 수행될 수 있기 때문에, 재생장치는 화상 신호로의 변환을 수행할 수 있다.
(M) 그래픽스인 자막은 상기에서 영화물에서 말하는 단어를 표현하기 위한 문자열로 설명된다. 그러나, 자막은 상표를 구성하는 것으로 형상, 캐릭터, 및 컬러의 조합을 포함할 수 있다. 또한, 자막은 모든 종류의 국가 문장, 감독과 인증을 위해 국가가 채택한 공식 마크, 국제조직의 마크, 특정 상품의 원산지를 나태는 마크 등을 포함할 수 있다.
(N) 제 1 실시예는, 자막이 화면의 상부/하부에 표시되는 것을 가정하여, 윈 도우는 그래픽스 플레인의 상부나 하부에 정의된다. 그러나, 윈도우를 그래픽스 플레인의 우측이나 좌측에 정의할 수도 있다. 이것은 일본어 자막을 수직방향으로 표시하는데 유용한다.
(O) 상기의 실시예의 AV 클립은 영화물을 구성한다. 그러나, AV 클립은 가라오케(미리 기록된 테이프의 반주)를 구현하기 위한 것일 수 있다. 이 경우, 예를 들어, PCS는 자막의 컬러를 변화하는 표시 효과를 구현할 수 있다.
(P) 다수의 재생 경로가 서로 접속하고, 디폴트 선택된 버튼이 어떤 재생 경로를 취하느냐에 따라 변하는 경우, 다음의 배열이 바람직하다. 즉, 동적 시나리오의 재생제어는, 각 재생 경로가 통과된 때, 재생 경로를 위한 고유값이 재생장치의 레지스터에 설정되도록 기술되고, 버튼이 레지스터에 설정된 값에 따라 선택된 상태로 설정되도록 재생 프로세스가 기술된다. 이러한 배열에 의해, 선택된 상태에 있는 버튼은 어떤 재생 경로를 통과하느냐에 따라 변경될 수 있다.
본 발명에 따른 기록매체와 재생장치는, 표시 효과를 갖는 자막 표시와 애니메이션을 포함하는 대화형 표시를 구현하며, 시장에 고부가가치를 갖는 영화물을 제공하는데 도움을 주며, 영화시장과 소비재시장을 고무하는데 도움을 준다. 따라서, 본 발명에 따른 기록매체와 재생장치는 영화산업과 소비재 산업에 매우 유용하다.
자막을 표시 효과와 함께 표시할 수 있다. 따라서, 시장에 공급되는 영화에 높은 가치를 더할 수 있고, 영화 시장과 소비자 제품을 액티브할 수 있다. 따라서, 본 발명에 따른 기록매체와 재생장치는 영화 산업과 소비자 제품 산업과 같은 산업에 높은 산업적 유용성을 갖는다.

Claims (32)

  1. 비디오 스트림과, 데이터 패킷 및 제어 패킷을 포함하는 그래픽스 스트림을 취득하는 취득수단;
    동화상 데이터를 얻기 위해 상기 비디오 스트림을 디코드하는 비디오 디코더;
    (i) 상기 데이터 패킷의 디코드 타임 스탬프가 나타내는 시간에 상기 데이터 패킷에 포함된 그래픽스 데이터의 디코딩을 시작하고,
    (ⅱ) 상기 데이터 패킷에 포함된 프리젠테이션 타임 스탬프가 나타내는 시간에 상기 디코딩을 종료하는 프로세서; 및
    (A) 상기 제어 패킷의 프리젠테이션 타임 스탬프가 나타내는 시간에 그래픽스 플레인의 디코드 된 그래픽스 데이터를 상기 동화상 데이터와 결합하여 표시시키고,
    (B) 상기 제어 패킷이 에포크 시작(Epoch Start)을 나타내고 있는 타입 정보를 포함하는 경우, 상기 제어 패킷의 디코드 타임 스탬프가 나타내는 시간에 상기 그래픽스 플레인을 소거(clear)하는 컨트롤러를 포함하는 것을 특징으로 하는 재생장치.
  2. 비디오 스트림과, 데이터 패킷 및 제어 패킷을 포함하는 그래픽스 스트림을 취득하는 단계;
    동화상 데이터를 얻기 위해 상기 비디오 스트림을 디코드하는 단계;
    (i) 상기 데이터 패킷의 디코드 타임 스탬프가 나타내는 시간에 상기 데이터 패킷에 포함된 그래픽스 데이터의 디코딩을 시작하고, (ⅱ) 상기 데이터 패킷에 포함된 프리젠테이션 타임 스탬프가 나타내는 시간에 상기 디코딩을 종료하는 단계; 및
    (A) 상기 제어 패킷의 프리젠테이션 타임 스탬프가 나타내는 시간에 그래픽스 플레인의 디코드 된 그래픽스 데이터를 상기 동화상 데이터와 결합하여 표시시키고, (B) 상기 제어 패킷이 에포크 시작(Epoch Start)을 나타내고 있는 타입 정보를 포함하는 경우, 상기 제어 패킷의 디코드 타임 스탬프가 나타내는 시간에 상기 그래픽스 플레인을 소거(clear)하는 단계를 포함하는 것을 특징으로 하는 재생방법.
  3. 비디오 스트림; 및
    데이터 패킷과 제어 패킷을 포함하는 그래픽스 스트림을 포함하며,
    상기 비디오 스트림은 디코드되어 동화상 데이터가 되고,
    상기 데이터 패킷에 포함된 그래픽스 데이터는, 상기 데이터 패킷의 디코드 타임 스탬프가 나타내는 시간에 디코딩을 시작하고, 상기 데이터 패킷에 포함된 프리젠테이션 타임 스탬프가 나타내는 시간에 상기 디코딩을 종료하며,
    그래픽스 플레인의 디코드 된 그래픽스 데이터는 상기 제어 패킷의 프리젠테이션 타임 스탬프가 나타내는 시간에 상기 동화상 데이터와 결합되어 표시되고,
    상기 제어 패킷이 에포크 시작(Epoch Start)을 나타내고 있는 타입 정보를 포함하는 경우, 상기 그래픽스 플레인은 상기 제어 패킷의 디코드 타임 스탬프가 나타내는 시간에 소거(clear)되는 것을 특징으로 하는 기록매체.
  4. 애플리케이션 데이터를 생성하는 생성수단; 및
    상기 생성된 애플리케이션 데이터를 기록매체에 기록하는 기록수단을 포함하며,
    상기 생성된 애플리케이션은 비디오 스트림과, 데이터 패킷 및 제어 패킷을 포함하는 그래픽스 스트림을 포함하고,
    상기 비디오 스트림은 디코드되어 동화상 데이터가 되고,
    상기 데이터 패킷에 포함된 그래픽스 데이터는, 상기 데이터 패킷의 디코드 타임 스탬프가 나타내는 시간에 디코딩을 시작하고, 상기 데이터 패킷에 포함된 프리젠테이션 타임 스탬프가 나타내는 시간에 상기 디코딩을 종료하며,
    그래픽스 플레인의 디코드 된 그래픽스 데이터는 상기 제어 패킷의 프리젠테이션 타임 스탬프가 나타내는 시간에 상기 동화상 데이터와 결합되어 표시되고,
    상기 제어 패킷이 에포크 시작(Epoch Start)을 나타내고 있는 타입 정보를 포함하는 경우, 상기 그래픽스 플레인은 상기 제어 패킷의 디코드 타임 스탬프가 나타내는 시간에 소거(clear)되는 것을 특징으로 하는 기록장치.
  5. 애플리케이션 데이터를 생성하는 단계; 및
    상기 생성된 애플리케이션 데이터를 기록매체에 기록하는 단계를 포함하며,
    상기 생성된 애플리케이션은 비디오 스트림과, 데이터 패킷 및 제어 패킷을 포함하는 그래픽스 스트림을 포함하고,
    상기 비디오 스트림은 디코드되어 동화상 데이터가 되고,
    상기 데이터 패킷에 포함된 그래픽스 데이터는, 상기 데이터 패킷의 디코드 타임 스탬프가 나타내는 시간에 디코딩을 시작하고, 상기 데이터 패킷에 포함된 프리젠테이션 타임 스탬프가 나타내는 시간에 상기 디코딩을 종료하며,
    그래픽스 플레인의 디코드 된 그래픽스 데이터는 상기 제어 패킷의 프리젠테이션 타임 스탬프가 나타내는 시간에 상기 동화상 데이터와 결합되어 표시되고,
    상기 제어 패킷이 에포크 시작(Epoch Start)을 나타내고 있는 타입 정보를 포함하는 경우, 상기 그래픽스 플레인은 상기 제어 패킷의 디코드 타임 스탬프가 나타내는 시간에 소거(clear)되는 것을 특징으로 하는 기록방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
KR1020057024964A 2003-07-03 2004-07-05 기록매체, 기록장치, 기록방법, 재생장치 및 재생방법 KR101036991B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US48520703P 2003-07-03 2003-07-03
US60/485,207 2003-07-03

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020107026926A Division KR101051821B1 (ko) 2003-07-03 2004-07-05 기록매체, 기록장치, 기록방법, 재생장치 및 재생방법

Publications (2)

Publication Number Publication Date
KR20060027367A KR20060027367A (ko) 2006-03-27
KR101036991B1 true KR101036991B1 (ko) 2011-05-25

Family

ID=33564048

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020107026926A KR101051821B1 (ko) 2003-07-03 2004-07-05 기록매체, 기록장치, 기록방법, 재생장치 및 재생방법
KR1020057024964A KR101036991B1 (ko) 2003-07-03 2004-07-05 기록매체, 기록장치, 기록방법, 재생장치 및 재생방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020107026926A KR101051821B1 (ko) 2003-07-03 2004-07-05 기록매체, 기록장치, 기록방법, 재생장치 및 재생방법

Country Status (16)

Country Link
US (3) US8280230B2 (ko)
EP (6) EP2088779B1 (ko)
JP (8) JP3993626B2 (ko)
KR (2) KR101051821B1 (ko)
CN (6) CN101790066B (ko)
AT (4) ATE493844T1 (ko)
AU (2) AU2004300623C1 (ko)
CA (1) CA2528585C (ko)
DE (4) DE602004030836D1 (ko)
ES (2) ES2356582T3 (ko)
PL (2) PL1940166T3 (ko)
PT (2) PT1940166E (ko)
RU (2) RU2477574C2 (ko)
TW (2) TWI460720B (ko)
WO (1) WO2005004478A1 (ko)
ZA (1) ZA200509946B (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8737810B2 (en) * 2002-11-15 2014-05-27 Thomson Licensing Method and apparatus for cropping of subtitle elements
KR100886527B1 (ko) 2003-02-28 2009-03-02 파나소닉 주식회사 애니메이션을 수반한 대화화면의 표시를 실현할 수 있는 기록매체, 재생장치, 기록방법, 컴퓨터 판독 가능한 기록매체, 재생방법
CN101005629A (zh) 2003-06-30 2007-07-25 松下电器产业株式会社 记录介质、记录方法、再现装置和方法以及计算机可读程序
KR20050012328A (ko) * 2003-07-25 2005-02-02 엘지전자 주식회사 고밀도 광디스크의 프레젠테이션 그래픽 데이터 관리 및재생방법과 그에 따른 고밀도 광디스크
TWI279788B (en) * 2003-07-24 2007-04-21 Lg Electronics Inc Recording medium having a data structure for managing reproduction of text subtitle data recorded thereon and recording and reproducing methods and apparatuses
KR20050035678A (ko) * 2003-10-14 2005-04-19 엘지전자 주식회사 광디스크 장치의 부가 데이터 재생방법 및 장치와, 이를위한 광디스크
KR20050036277A (ko) * 2003-10-15 2005-04-20 엘지전자 주식회사 고밀도 광디스크의 네비게이션 정보 관리방법
CN100550178C (zh) 2003-11-12 2009-10-14 松下电器产业株式会社 再现装置和方法以及记录方法
KR20050072256A (ko) * 2004-01-06 2005-07-11 엘지전자 주식회사 고밀도 광디스크의 메뉴 사운드 구성방법 및 재생방법과기록재생장치
EP2257059B1 (en) 2004-01-13 2014-03-12 Panasonic Corporation Recording medium, reproduction device, recording method, program, and reproduction method
US8391672B2 (en) * 2004-02-06 2013-03-05 Panasonic Corporation Recording medium, reproduction device, program, and reproduction method
US20080002947A1 (en) * 2004-02-06 2008-01-03 Wataru Ikeda Recording medium, reproduction device, program and reproduction method
KR100561417B1 (ko) * 2004-02-09 2006-03-16 삼성전자주식회사 Av 데이터의 재생상태를 전환할 수 있는 인터랙티브그래픽 스트림을 기록한 정보저장매체, 그 재생방법 및 장치
KR20050089353A (ko) * 2004-03-04 2005-09-08 엘지전자 주식회사 고밀도 광디스크와 그에 따른 데이터 파일 구성 방법 및재생 방법과 장치
EP1718073B1 (en) * 2004-02-17 2011-12-28 Panasonic Corporation Recording medium, reproduction device, program, and reproduction method
EP1726016B8 (en) * 2004-03-15 2018-10-31 InterDigital Madison Patent Holdings Technique for efficient video re-sampling
DE602005018462D1 (de) * 2004-03-18 2010-02-04 Lg Electronics Inc Aufzeichungsmedium und verfahren und vorrichtung zur wiedergabe eines auf dem aufzeichnungsmedium aufgezeichneten textuntertitelstroms
ATE479987T1 (de) 2004-03-26 2010-09-15 Lg Electronics Inc Speichermedium,verfahren, und gerät zum wiedergeben von untertiteldatenströmen
WO2005091722A2 (en) 2004-03-26 2005-10-06 Lg Electronics Inc. Recording medium and method and apparatus for reproducing text subtitle stream recorded on the recording medium
DE602005017824D1 (de) * 2004-06-02 2009-12-31 Panasonic Corp Aufzeichnugsmedium, Wiedergabegerät, Programm und Verfahren zur Wiedergabe
JP4692950B2 (ja) * 2004-06-11 2011-06-01 ソニー株式会社 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、並びにデータ記録媒体
US8000580B2 (en) * 2004-11-12 2011-08-16 Panasonic Corporation Recording medium, playback apparatus and method, recording method, and computer-readable program
US20080137729A1 (en) * 2005-03-08 2008-06-12 Jung Kil-Soo Storage Medium Including Data Structure For Reproducing Interactive Graphic Streams Supporting Multiple Languages Seamlessly; Apparatus And Method Therefore
CN101902628B (zh) * 2005-04-26 2012-05-02 汤姆森许可贸易公司 同步流打包
US20100284667A1 (en) * 2005-07-27 2010-11-11 Hiroshi Yahata Information recording medium, recording device, and recording method
US20080238938A1 (en) * 2005-08-29 2008-10-02 Eklund Don Effects for interactive graphic data in disc authoring
US20090196356A1 (en) * 2005-09-14 2009-08-06 Mitsunori Houki Multi-stream decoder apparatus
US20070218444A1 (en) * 2006-03-02 2007-09-20 David Konetski System and method for presenting karaoke audio features from an optical medium
US20070206929A1 (en) * 2006-03-02 2007-09-06 David Konetski System and method for presenting karaoke audio and video features from an optical medium
JP5001584B2 (ja) 2006-06-06 2012-08-15 ソニー株式会社 オーサリング装置、オーサリング方法、オーサリングプログラム、記録装置、記録方法および記録プログラム、検証装置、検証方法および検証プログラム、ならびに、記録媒体の製造装置および製造方法
US7895560B2 (en) * 2006-10-02 2011-02-22 William Stuart Lovell Continuous flow instant logic binary circuitry actively structured by code-generated pass transistor interconnects
US7852339B2 (en) * 2006-10-23 2010-12-14 Intel Corporation Video composition optimization by the identification of transparent and opaque regions
EP2235685B1 (en) 2007-12-26 2014-06-18 Koninklijke Philips N.V. Image processor for overlaying a graphics object
JP4518194B2 (ja) * 2008-06-10 2010-08-04 ソニー株式会社 生成装置、生成方法、及び、プログラム
CN102355590B (zh) * 2008-09-30 2014-11-12 松下电器产业株式会社 3d 影像的记录介质、再现装置、系统lsi、再现方法、眼镜、显示装置
JP4985807B2 (ja) * 2009-04-15 2012-07-25 ソニー株式会社 再生装置および再生方法
EP2482563B1 (en) * 2009-09-25 2017-02-15 Panasonic Intellectual Property Management Co., Ltd. Recording medium, reproduction device and integrated circuit
US8521006B2 (en) * 2010-05-06 2013-08-27 Intel Corporation Boundary detection in media streams
US9160960B2 (en) * 2010-12-02 2015-10-13 Microsoft Technology Licensing, Llc Video preview based browsing user interface
EP2597876A1 (en) * 2011-11-24 2013-05-29 Koninklijke Philips Electronics N.V. Interlaced 3D video
KR20140031758A (ko) * 2012-09-05 2014-03-13 삼성전자주식회사 포인팅 디바이스를 이용하여 aⅴ 데이터의 메뉴를 제어하기 위한 인터랙티브 그래픽 데이터를 기록한 정보저장매체, 그 재생방법 및 장치
US9813325B2 (en) 2012-12-27 2017-11-07 Comcast Cable Communications, Llc Information stream management
GB2556612B (en) * 2016-04-18 2022-03-09 Grass Valley Ltd Monitoring audio-visual content with captions
GB2557194A (en) * 2016-11-29 2018-06-20 Sony Corp A decoder, encoder, computer program and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0924934A1 (en) * 1997-12-22 1999-06-23 Nec Corporation Coding/decoding apparatus, coding/decoding system and multiplexed bit stream
US20030117529A1 (en) 1995-07-21 2003-06-26 Wiebe De Haan Method of video information transmission, as well as an information carrier, a device for receiving and a device for transmitting video information

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US540460A (en) * 1895-06-04 Piston for air-engines
GB9405914D0 (en) 1994-03-24 1994-05-11 Discovision Ass Video decompression
DE1073767B (de) * 1958-02-27 1960-01-21 Fa. Carl Zeiss, Heidenheim/Brenz Unsymmetrisches photographisches Objektiv
US4918624A (en) 1988-02-05 1990-04-17 The United States Of America As Represented By The United States Department Of Energy Vector generator scan converter
BR9105987A (pt) 1990-09-19 1993-02-02 Philips Nv Portador de registro no qual foram registrados um arquivo de dados principais e um arquivo de controle,processo e dispositivo para registrar um arquivo de dados principais e um arquivo de controle num portador de registro,e dispositivo para ter um portador de registro
US6047112A (en) 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US6067417A (en) 1992-06-30 2000-05-23 Discovision Associates Picture start token
US6079009A (en) 1992-06-30 2000-06-20 Discovision Associates Coding standard token in a system compromising a plurality of pipeline stages
US5842033A (en) 1992-06-30 1998-11-24 Discovision Associates Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system
US6435737B1 (en) 1992-06-30 2002-08-20 Discovision Associates Data pipeline system and data encoding method
DE69229338T2 (de) 1992-06-30 1999-12-16 Discovision Ass Datenpipelinesystem
US5768561A (en) 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US7095783B1 (en) 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
US6112017A (en) 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US5809270A (en) 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US6034674A (en) 1992-06-30 2000-03-07 Discovision Associates Buffer manager
US6417859B1 (en) 1992-06-30 2002-07-09 Discovision Associates Method and apparatus for displaying video data
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
JPH06121263A (ja) 1992-10-08 1994-04-28 Sony Corp 映像信号の記録方法
JPH06275054A (ja) * 1993-03-24 1994-09-30 Kyocera Corp Cd−gのグラフィックデータ再生処理方法
EP0621691B1 (en) 1993-04-19 1997-12-29 Koninklijke Philips Electronics N.V. Complementary-signal BiCMOS line driver with low skew
US5805914A (en) 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
US5699544A (en) 1993-06-24 1997-12-16 Discovision Associates Method and apparatus for using a fixed width word for addressing variable width data
US5861894A (en) 1993-06-24 1999-01-19 Discovision Associates Buffer manager
EP0714582B1 (en) 1993-08-20 1999-04-21 Thomson Consumer Electronics, Inc. Closed caption system for use with compressed digital video transmission
CA2145379C (en) 1994-03-24 1999-06-08 William P. Robbins Method and apparatus for addressing memory
CA2145365C (en) 1994-03-24 1999-04-27 Anthony M. Jones Method for accessing banks of dram
CA2145361C (en) 1994-03-24 1999-09-07 Martin William Sotheran Buffer manager
JP2931755B2 (ja) 1994-04-14 1999-08-09 株式会社東芝 データ再生装置、データエンコード装置、データエンコード方法及びデータ再生システム
US5984512A (en) 1994-07-29 1999-11-16 Discovision Associates Method for storing video information
US5771075A (en) * 1994-12-08 1998-06-23 Lg Electronics Inc. Audio/video synchronizer
US5930450A (en) * 1995-02-28 1999-07-27 Kabushiki Kaisha Toshiba Recording medium, apparatus and method of recording data on the same, and apparatus and method of reproducing data from the recording medium
KR100256663B1 (ko) * 1995-04-11 2000-05-15 니시무로 타이죠 데이타 기록 매체
US6119213A (en) 1995-06-07 2000-09-12 Discovision Associates Method for addressing data having variable data width using a fixed number of bits for address and width defining fields
US20020044757A1 (en) * 1995-08-04 2002-04-18 Sony Corporation Information carrier, device for reading and device for providing the information carrier and method of transmitting picture information
EP0788094A4 (en) * 1995-08-21 1998-06-24 Matsushita Electric Ind Co Ltd MULTIMEDIA OPTICAL DISK WHICH CAN COMPLETELY GENERATE UNEXPECTED SCENES THROUGH INTERACTIVE CONTROL, THEIR PLAYBACK DEVICE AND PLAYBACK METHOD
JP3356768B2 (ja) * 1995-08-21 2002-12-16 松下電器産業株式会社 記録方法、再生装置
MY115648A (en) * 1995-08-23 2003-08-30 Sony Corp Encoding/decoding fields of predetermined field polarity apparatus and method
TW436777B (en) 1995-09-29 2001-05-28 Matsushita Electric Ind Co Ltd A method and an apparatus for reproducing bitstream having non-sequential system clock data seamlessly therebetween
JP3922592B2 (ja) * 1995-09-29 2007-05-30 松下電器産業株式会社 記録方法
US6567612B2 (en) 1996-04-05 2003-05-20 Pioneer Electronic Corporation Information record medium, apparatus for recording the same and apparatus for reproducing the same
JPH09282848A (ja) 1996-04-05 1997-10-31 Pioneer Electron Corp 情報記録媒体並びにその記録装置及び再生装置
KR100470407B1 (ko) 1996-11-13 2005-07-01 마츠시타 덴끼 산교 가부시키가이샤 복수영상정보의이음부없는재생을가능하게하는정보기록디스크저장용비트스트림의생성장치,생성방법,생성장치에적용되는프로그램을기록한기록매체
JP4416846B2 (ja) * 1997-08-22 2010-02-17 ソニー株式会社 メニュー制御用データを記録したコンピュータ読み取り可能な記録媒体ならびにメニュー制御方法および装置
US5929857A (en) * 1997-09-10 1999-07-27 Oak Technology, Inc. Method and apparatus for dynamically constructing a graphic user interface from a DVD data stream
JP3185863B2 (ja) * 1997-09-22 2001-07-11 日本電気株式会社 データ多重化方法および装置
ID29305A (id) 1997-12-15 2001-08-16 Matsushita Electric Ind Co Ltd Piringan optik, aparatus perekaman, media penyimpanan komputer-yang-dapat-membaca yang menyimpan program perekaman, dan metoda perekaman
EP0940986B1 (en) * 1998-03-02 2011-02-16 Panasonic Corporation Method and system downloading a desired portion of a continuous medium with a raised precision
IL132964A (en) 1998-03-19 2004-08-31 Koninkl Philips Electronics Nv A transmitter that transmits a digital information signal alternately in an encrypted and unencrypted manner
JP2000100073A (ja) * 1998-09-28 2000-04-07 Sony Corp 記録装置および方法、再生装置および方法、記録媒体、並びに提供媒体
CN1165165C (zh) 1998-10-12 2004-09-01 松下电器产业株式会社 信息记录介质及用于记录或再现数据的装置和方法
JP2000152179A (ja) * 1998-11-17 2000-05-30 Pioneer Electronic Corp 映像データ再生方法、映像データ再生装置、映像データ記録方法及び映像データ記録装置
ID24586A (id) 1998-12-21 2000-07-27 Matsushita Electric Ind Co Ltd Perangkat dan metode penyelarasan waktu dengan menggunakan modul basis waktu dan resolusi peningkatan waktu
WO2000042773A1 (en) 1999-01-19 2000-07-20 Sony Electronics Inc. System and method for implementing interactive video
JP3805985B2 (ja) 1999-02-18 2006-08-09 株式会社東芝 ストリームデータの情報記憶媒体、その記録方法、再生方法、記録装置および再生装置
US7010032B1 (en) * 1999-03-12 2006-03-07 Kabushiki Kaisha Toshiba Moving image coding apparatus and decoding apparatus
US7099561B1 (en) * 1999-08-20 2006-08-29 Thomson Licensing User interface and processing system for digital video, audio and ancillary data
US8024767B1 (en) * 1999-09-14 2011-09-20 Ati Technologies Ulc Method and apparatus for receiving digital video signals
MXPA02004015A (es) * 1999-10-22 2003-09-25 Activesky Inc Un sistema de video orientado a los objetos.
GB0007870D0 (en) * 2000-03-31 2000-05-17 Koninkl Philips Electronics Nv Methods and apparatus for making and replauing digital video recordings, and recordings made by such methods
KR100364733B1 (ko) * 2000-07-18 2002-12-16 엘지전자 주식회사 디지털 티브이의 아날로그/디지털 오에스디 제어장치
JP4022818B2 (ja) * 2001-03-08 2007-12-19 ソニー株式会社 データ記録装置および方法、データ記録媒体、データ再生装置および方法、データ編集装置および方法、プログラム格納媒体、並びにプログラム
JP3656248B2 (ja) 2001-10-09 2005-06-08 ソニー株式会社 ビデオ信号記録装置および方法、ビデオ信号再生装置および方法、記録媒体、プログラム、並びにデータ構造
TW200300928A (en) 2001-11-30 2003-06-16 Sony Corportion Information processing method and apparatus, program storage medium, program and information recording medium
KR100886527B1 (ko) 2003-02-28 2009-03-02 파나소닉 주식회사 애니메이션을 수반한 대화화면의 표시를 실현할 수 있는 기록매체, 재생장치, 기록방법, 컴퓨터 판독 가능한 기록매체, 재생방법
KR20050004339A (ko) 2003-07-02 2005-01-12 엘지전자 주식회사 고밀도 광디스크의 그래픽 데이터 관리방법 및 그에 따른고밀도 광디스크

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030117529A1 (en) 1995-07-21 2003-06-26 Wiebe De Haan Method of video information transmission, as well as an information carrier, a device for receiving and a device for transmitting video information
EP0924934A1 (en) * 1997-12-22 1999-06-23 Nec Corporation Coding/decoding apparatus, coding/decoding system and multiplexed bit stream

Also Published As

Publication number Publication date
AU2004300623A1 (en) 2005-01-13
ATE494731T1 (de) 2011-01-15
EP1940166A1 (en) 2008-07-02
PL1940166T3 (pl) 2011-05-31
EP1814327B1 (en) 2008-05-21
JP2009268112A (ja) 2009-11-12
CN101740077A (zh) 2010-06-16
CA2528585C (en) 2013-03-12
US8369690B2 (en) 2013-02-05
CN100579194C (zh) 2010-01-06
JP2009268114A (ja) 2009-11-12
RU2477574C2 (ru) 2013-03-10
AU2009243537A1 (en) 2009-12-24
RU2008108075A (ru) 2009-09-10
JP4774431B2 (ja) 2011-09-14
AU2004300623B2 (en) 2009-10-01
CN101729914B (zh) 2013-05-08
CA2528585A1 (en) 2005-01-13
RU2006103074A (ru) 2006-06-10
EP2088779A1 (en) 2009-08-12
KR20060027367A (ko) 2006-03-27
PL2088779T3 (pl) 2011-06-30
DE602004030960D1 (de) 2011-02-17
JP2007267408A (ja) 2007-10-11
DE602004030836D1 (de) 2011-02-10
JP2007521737A (ja) 2007-08-02
CN101729915A (zh) 2010-06-09
AU2004300623C1 (en) 2010-04-29
CN101790066B (zh) 2012-07-04
EP2088779B1 (en) 2011-01-05
DE602004008922T2 (de) 2008-01-17
TWI460720B (zh) 2014-11-11
JP4990932B2 (ja) 2012-08-01
ES2356582T3 (es) 2011-04-11
WO2005004478A1 (en) 2005-01-13
EP2259582A1 (en) 2010-12-08
JP2009100479A (ja) 2009-05-07
ZA200509946B (en) 2007-05-30
AU2009243537B2 (en) 2011-09-29
TW201203228A (en) 2012-01-16
US20090220211A1 (en) 2009-09-03
EP2259583A1 (en) 2010-12-08
US8280230B2 (en) 2012-10-02
TWI359408B (en) 2012-03-01
ATE493844T1 (de) 2011-01-15
JP4283860B2 (ja) 2009-06-24
DE602004014042D1 (de) 2008-07-03
US20060153532A1 (en) 2006-07-13
US20090214175A1 (en) 2009-08-27
EP1940166B1 (en) 2010-12-29
TW200509082A (en) 2005-03-01
JP4287500B2 (ja) 2009-07-01
ATE373387T1 (de) 2007-09-15
EP1645122A1 (en) 2006-04-12
EP2259583B1 (en) 2012-05-30
CN101790066A (zh) 2010-07-28
CN101740076A (zh) 2010-06-16
CN101729915B (zh) 2013-09-25
JP2007282260A (ja) 2007-10-25
JP2007097197A (ja) 2007-04-12
JP4048220B2 (ja) 2008-02-20
CN1817034A (zh) 2006-08-09
ES2356590T3 (es) 2011-04-11
CN101729914A (zh) 2010-06-09
JP3993626B2 (ja) 2007-10-17
DE602004008922D1 (de) 2007-10-25
KR20100134799A (ko) 2010-12-23
RU2329611C2 (ru) 2008-07-20
KR101051821B1 (ko) 2011-07-25
PT2088779E (pt) 2011-03-07
JP4022567B2 (ja) 2007-12-19
CN101740077B (zh) 2015-06-17
PT1940166E (pt) 2011-02-07
US8682146B2 (en) 2014-03-25
EP1645122B1 (en) 2007-09-12
CN101740076B (zh) 2013-03-06
EP1814327A1 (en) 2007-08-01
EP2259582B1 (en) 2012-05-30
JP2009099256A (ja) 2009-05-07
JP5059805B2 (ja) 2012-10-31
ATE396587T1 (de) 2008-06-15

Similar Documents

Publication Publication Date Title
KR101036991B1 (ko) 기록매체, 기록장치, 기록방법, 재생장치 및 재생방법
KR100760118B1 (ko) 기록매체, 재생장치, 기록방법, 재생방법 및 집적회로
KR20090130145A (ko) 기록매체, 재생장치, 기록방법, 프로그램, 재생방법

Legal Events

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

Payment date: 20140421

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160418

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180418

Year of fee payment: 8