KR20120091007A - 입체 시 영상을 재생할 수 있는 재생장치, 집적회로, 재생방법, 프로그램 - Google Patents

입체 시 영상을 재생할 수 있는 재생장치, 집적회로, 재생방법, 프로그램 Download PDF

Info

Publication number
KR20120091007A
KR20120091007A KR1020127007836A KR20127007836A KR20120091007A KR 20120091007 A KR20120091007 A KR 20120091007A KR 1020127007836 A KR1020127007836 A KR 1020127007836A KR 20127007836 A KR20127007836 A KR 20127007836A KR 20120091007 A KR20120091007 A KR 20120091007A
Authority
KR
South Korea
Prior art keywords
plane
graphics
configuration
right eye
left eye
Prior art date
Application number
KR1020127007836A
Other languages
English (en)
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 KR20120091007A publication Critical patent/KR20120091007A/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/7921Processing of colour television signals in connection with recording for more than one processing mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/356Image reproducers having separate monoscopic and stereoscopic modes
    • H04N13/359Switching between monoscopic and stereoscopic modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/156Mixing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • H04N13/183On-screen display [OSD] information, e.g. subtitles or menus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/361Reproducing mixed stereoscopic images; Reproducing mixed monoscopic and stereoscopic images, e.g. a stereoscopic image overlay window on a monoscopic image background
    • 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
    • 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/8233Transformation 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 a character code 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/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • 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/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00217Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source
    • G11B20/00246Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is obtained from a local device, e.g. device key initially stored by the player or by the recorder
    • 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/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00217Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source
    • G11B20/00253Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is stored on the record carrier
    • G11B20/00362Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is stored on the record carrier the key being obtained from a media key block [MKB]
    • 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/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00485Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier
    • G11B20/00492Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted
    • G11B20/00528Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted wherein each title is encrypted with a separate encryption key for each title, e.g. title key for movie, song or data file
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/10537Audio or video recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1289Formatting of user data
    • 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
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N2013/40Privacy aspects, i.e. devices showing different images to different viewers, the images not being viewpoints of the same scene
    • H04N2013/405Privacy aspects, i.e. devices showing different images to different viewers, the images not being viewpoints of the same scene the images being stereoscopic or three dimensional
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Television Signal Processing For Recording (AREA)
  • Processing Or Creating Images (AREA)

Abstract

평면적인 영상 재생 모드와 입체적인 영상 재생 모드의 전환 기능을 갖는 재생장치에서 전환시에 좌측 눈 용 화상과 우측 눈 용 화상의 부정합이 발생한다. 구체적으로는 평면적인 영상 재생 모드에서 입체적인 영상 재생 모드를 전환할 때, Graphics#drawImage의 묘화 요구를 무효화하고, 좌측 눈 용 그래픽스 플레인의 저장재용을 우측 눈 용 그래픽스 플레인에 카피하고 나서 그래픽스 플레인의 출력계통의 전환을 실행하고, StereoGraphics#drawImage의 묘화 요구의 금지를 해제함으로써 좌측 눈 용 화상과 우측 눈 용 화상의 부정합을 방지한다.

Description

입체 시 영상을 재생할 수 있는 재생장치, 집적회로, 재생방법, 프로그램{PLAYBACK DEVICE THAT CAN PLAY STEREOSCOPIC VIDEO, INTEGRATED CIRCUIT, PLAYBACK METHOD AND PROGRAM}
본 발명은 바이트코드 애플리케이션에 의한 그래픽스 묘화 기술(graphics rendering technology)의 기술분야에 속하는 발명이다.
바이트코드 애플리케이션이란 오브젝트 지향 프로그래밍 언어를 이용하여 기술된 클래스 구조체를 컴파일함으로써 얻어진 실행형식의 프로그램으로, 기기에 의존하지 않는 코드(바이트코드)에 의해 기술되어 있는 것을 말한다. 바이트코드 애플리케이션으로 전형적인 것에는 Java(등록상표) 애플리케이션이 있다.
바이트코드 애플리케이션에 대해서는 미들웨어에 의해 각종 기능이 제공된다. 바이트코드 애플리케이션에 대한 기능 제공은 미들웨어가 실장하고 있는 패키지의 멤버 함수를 호출함으로써 이루어진다. 미들웨어가 실장하고 있는 패키지는 색 지정을 수반한 선이나 직사각형 등 도형의 묘화, 지정 영역을 전부 칠하기, 카피?페이스트(pasting) 등의 묘화 처리를 실행하는 라이브러리를 포함한다. 그래서 미들웨어는 이 라이브러리의 기능에 의해 그래픽스 묘화를 실행하는 묘화부를 구비하고 있다. 바이트코드 애플리케이션은 이들 묘화 처리의 요구를 연속적으로 발행함으로써 다양한 그래픽스 묘화 처리를 실현할 수 있다. 그래픽스 묘화를 위한 패키지에는 java.awt 패키지가 있고, 그래픽스 묘화의 애플리케이션 프로그램 인터페이스는 이 java.awt 패키지의 메소드가 된다. 여기서, 바이트코드 애플리케이션의 동작을 위한 플랫폼에는 평면 시 재생을 전제로 한 것에 한정되지 않고, 입체 시 재생을 전제로 한 것도 등장하고 있다. 입체 시 재생을 전제로 한 플랫폼은 좌측 눈 용의 그래픽스 플레인과 우측 눈 용의 그래픽스 플레인을 가지며, 평면 시 모드와 입체 시 모드에서 이들 그래픽스 플레인을 전환하도록 하고 있다.
또, 특허문헌 1에는 평면 시 모드와 입체 시 모드의 전환의 전후에서의 보이는 방법이 완전히 동일해지는 전환 후 영상을 준비함으로써 모드 전환 전후에서 출력되는 영상의 동일성을 보증하는 기술이 기재되어 있다.
특허문헌 1 : 일본국 특허 제 4266774호
 그런데 입체 시 콘텐츠의 재생시에 애플리케이션을 기동하여 동화상 재생에 동기 한 GUI를 애플리케이션에 묘화시킴으로써 입체 시 콘텐츠의 재생시에서의 사용자 조작을 용이하게 실시하도록 하고자 하는 요망이 있다. 이는, 기존의 DVB-MHP 콘텐츠나 BD-ROM 콘텐츠에서 콘텐츠와 애플리케이션을 연동시켜서 애플리케이션에 GUI 처리를 실행하게 한다고 하는 고도의 처리가 실현되어 있으며, 이를 입체 시 콘텐츠에서도 실현하고자 하는 콘텐츠 제작자 측으로부터 요망에 의한다.
바이트코드 애플리케이션이나 java.awt.Graphics는 그 실행시에 있어서 복수의 스레드에 의해 처리되고 있으며, 또, 파라미터의 교환은 스택을 개재한 스레드 간 통신으로 이루어지므로, 바이트코드 애플리케이션에 의한 그래픽스의 묘화 요구에는 지연시간이 크다. 따라서 어느 하나의 애플리케이션 스레드가 발한 모드 전환이 java.awt.Graphics에 의해 수리된 후, 다른 애플리케이션 스레드가 발한 2D 그래픽스 묘화 요구가 java.awt.Graphics에 도달한다고 하는 경우도 드물지 않다.
2D 그래픽스 묘화 요구가 늦게 도달했기 때문에 모드 전환에 의해 확보된 우측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인 중, 좌측 눈 용 그래픽스 플레인에만 2D 그래픽스 묘화 요구에 의해 요구된 그래픽스가 기입되게 되면 양 눈의 그래픽스의 부정합이 발생하게 되어 사용자에게 시각적인 불쾌감을 준다.
물론 2D 그래픽스 묘화 요구에 의해 좌측 눈-우측 눈의 시각 부정합이 발생했다고 하더라도 그 후의 3D 그래픽스 묘화 요구의 발행에 의해 그래픽스의 갱신이 이루어지면 좌측 눈-우측 눈의 시각 부정합이 발생하는 기간은 얼마 안 되는 기간이 된다. 그러나 입체 시 재생시에서의 좌측 눈-우측 눈의 시각 부정합의 발생은 비록 얼마 안 되는 기간이라도 시청자에게 주는 불쾌감의 영향은 크며, 그 불쾌감이 원인이 되어 시청자가 입체 시 콘텐츠 자체를 혐오해 버려서, 입체 시 콘텐츠의 관련 제품에 거부 반응을 나타내는 것은 충분히 생각할 수 있다. 기간의 장단에 관계없이 좌측 눈-우측 눈의 시각 부정합은 허용되는 것은 아니다.
양 눈의 그래픽스의 부정합을 회피하기 위해서는 애플리케이션의 작성을 매뉴팩처가 일률적으로 규율하는 것을 생각할 수 있으나, 콘텐츠 고유의 GUI를 표시하는 애플리케이션은 콘텐츠 공급자에 의해 독자적으로 작성되는 것이며, 비록 재생 품질로부터의 요망이라고 하더라도 매뉴팩처 측의 요망을 일방적으로 강요하는 것은 불가능에 가깝다.
본 발명의 목적은 바이트코드 애플리케이션으로부터 묘화부로의 묘화 요구의 시간지연이 매우 크다고 하더라도 입체 시 재생을 즐기는 사용자에게 시각적인 불쾌감을 주지 않는 재생장치를 제공하는 것이다.
 상기 과제를 해결할 수 있는 재생장치는 바이트코드 애플리케이션을 동작시키는 플랫폼부와, 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인을 구비하고, 상기 플랫폼부는 바이트코드 애플리케이션으로부터의 그래픽스 묘화 요구를 접수하여 그래픽스 묘화를 실행하는 묘화부를 포함하며, 상기 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인의 컨피규레이션에는 평면 시 재생시 및 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인만을 사용하는 1 플레인 구성과, 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인을 사용하는 2 플레인 구성이 있으며, 상기 그래픽스 묘화 요구에는 2D 그래픽스의 묘화 요구와 3D 그래픽스의 묘화 요구가 있고, 상기 설정 중 1 플레인 구성에서 2 플레인 구성으로의 전환은 지금까지 바이트코드 애플리케이션에 의해 이루어진 2D 그래픽스의 묘화 요구를 무효화하는 처리와, 좌측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 그래픽스 플레인에 카피하는 처리를 포함하고, 당해 카피가 이루어진 후, 묘화부는 3D 그래픽스의 묘화 요구를 받아들이는 것을 특징으로 하고 있다.
 상기 과제해결수단을 구비한 재생장치는 그래픽스 플레인의 설정을 1 플레인 구성에서 2 플레인 구성으로 전환할 때 2D 그래픽스 묘화 요구를 무효화하므로, 1 플레인 구성에서 2 플레인 구성으로의 그래픽스 플레인의 설정 전환 후에 묘화부에 도달하는 2D 그래픽스 묘화 요구가 존재했다고 하더라도, 그 2D 그래픽스 묘화 요구는 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 플레인 간 카피가 이루어지기 전에 무효화 되게 된다.
스택 상의 2D 그래픽스 묘화 요구를 일시적으로 무효로 한 다음, 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 카피가 이루어지므로, 그래픽스 플레인의 설정이 1 플레인 구성에서 2 플레인 구성으로 전환된 후 묘화부에 2D 그래픽스 묘화 요구가 도달함으로써 좌측 눈 용 그래픽스 플레인의 저장내용만이 갱신되는 일은 있을 수 없다. 재생장치의 매뉴팩처는 비록 콘텐츠 공급자가 제작한 애플리케이션을 동작시키고, 그 애플리케이션에 3D 그래픽스를 표시하게 하는 경우에도 그 3D 그래픽스를 시청하는 사용자에게 불쾌한 생각이 들지 않도록 입체 시 콘텐츠의 재생의 품위에 충분한 배려를 할 수 있다.
2D 그래픽스 묘화 요구의 무효화는 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 카피에 앞서 이루어지므로, 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 카피의 도중에 좌측 눈 용 그래픽스 플레인 단독의 갱신이 이루어지는 일은 없다. 좌측 눈 용 그래픽스 플레인에 저장되어 있는 화소 중, 이미 우측 눈 용 그래픽스 플레인에 카피된 것이 플레인 간 카피의 도중에 2D 그래픽스 묘화 요구에 의해 사후적으로 재기록되어 버린다고 하는 가능성의 뿌리를 완전히 끊을 수 있다.
그래픽스 플레인의 설정을 1 플레인 구성에서 2 플레인 구성으로 변경할 때, 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인이 같은 내용으로 되어 있을 것이 엄밀하게 보장되므로, 얼마 안 되는 기간의 좌측 눈-우측 눈의 시각 부정합도 발생하는 일은 없다. 따라서 3D 그래픽스의 품위를 완전한 레벨까지 향상시킬 수 있다.
그래픽스 플레인이 1 플레인 구성에서 2 플레인 구성으로 전환된 후의 2D 그래픽스 묘화 요구의 무효화에 의해 한쪽 눈 용의 그래픽스 플레인만이 단독으로 재기록될 가능성을 배제하고 있으며, 애플리케이션에 의해 묘화되는 3D 그래픽스의 품위를 그 애플리케이션의 플랫폼에 해당하는 플랫폼의 입장에서 보장하고 있으므로, 콘텐츠 공급자는 애플리케이션에 의해 묘화되는 3D 그래픽스의 품위의 유지를 매뉴팩처에 맡길 수 있다. 3D 그래픽스의 품질관리를 매뉴팩처에 위임함으로써 콘텐츠 공급자는 입체 시 콘텐츠의 제작에 전념할 수 있으므로 입체 시 콘텐츠의 제작이 많이 촉진되어 입체 시 콘텐츠의 충실화를 도모할 수 있다.
비록 바이트코드 애플리케이션에서 묘화 모듈로의 묘화 요구의 주고받음에 타임 러그가 발생했다고 하더라도 그 타임 러그가 입체 시 화상의 품위를 저하시키는 요인이 될 수는 없으므로, 바이트코드 애플리케이션에서 묘화 모듈로의 묘화 요구의 주고받음에 타임 러그가 발생하는 것과 같은 소프트웨어 실장도 허용되게 된다. 매뉴팩처가 재생장치를 개발할 때의 소프트웨어 실장에도 자유도가 인정되므로 재생장치의 제품 개발이 촉진되어 입체 시 재생이 가능한 재생장치의 충실화를 도모할 수 있다.
현실의 재생장치의 소프트웨어 실장에서는 2D 그래픽스 묘화 요구가 java.awt.Graphics에 의해 처리되고, 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 카피가 재생장치에서의 디바이스 드라이버에 의해 실행되며, 이들 java.awt.Graphics와 디바이스 드라이버가 병렬로 동작한다고 하는 실장 형태를 충분히 생각할 수 있다. 그러나 본 발명에서는 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 카피에 앞서 2D 그래픽스 묘화 요구의 무효화를 실행하므로, java.awt.Graphics와 디바이스 드라이버가 병렬로 동작한다고 하는 소프트웨어 실장의 형태에서도 그래픽스 플레인이 2 플레인 구성인 경우에 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인이 동일한 내용으로 되어 있는 것이 엄밀히 보장된다. 따라서 재생장치의 매뉴팩처로부터 소프트웨어 실장의 자유도를 빼앗을 일은 없다.
임의적이지만 상기 재생장치는 이하와 같이 구성해도 좋다. 예를 들어, 상기 재생장치는 상기 기록매체에 기록되어 있는 입체 시 비디오 스트림을 디코드하는 디코더와, 입체 시 비디오 스트림을 디코드함으로써 얻어지는 좌측 눈 용 픽처 데이터를 저장하는 좌측 눈 용 비디오 플레인과, 입체 시 비디오 스트림을 디코드함으로써 얻어지는 우측 눈 용 픽처 데이터를 저장하는 우측 눈 용 비디오 플레인과, 좌측 눈의 출력계통의 합성 및 우측 눈의 출력계통의 합성을 실행하는 합성부를 구비하고, 상기 좌측 눈의 출력계통의 합성은 좌측 눈 용 그래픽스 플레인의 저장내용과 좌측 눈 용 비디오 플레인의 저장내용을 합성하는 것이며, 상기 우측 눈의 출력계통의 합성은 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인 중 어느 하나의 저장내용을 우측 눈 용 비디오 플레인의 저장내용과 합성하는 것이고, 상기 합성부는 상기 1 플레인 구성에서 2 플레인 구성으로의 변환시에 좌측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 그래픽스 플레인에 카피한 후, 우측 눈 용 출력계통에서의 우측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 비디오 플레인의 저장내용에 합성하는 처리를 개시하고, 상기 묘화부에 의한 3D 그래픽스 묘화의 요구의 수용은 우측 눈 용 그래픽스 플레인의 저장내용과 우측 눈 용 비디오 플레인의 저장내용의 합성 후에 이루어지는 것이라도 좋다.
좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 플레인간 카피가 완료될 때까지 비디오 플레인과 그래픽스 플레인의 합성 출력이 이루어지는 일은 없으므로, 좌측 눈 용 그래픽스 플레인의 저장내용과 우측 눈 용 그래픽스 플레인의 저장내용에서 시각의 부정합이 존재하는 상태인 채로 그래픽스가 동화상과 합성되어서 시청자에게 제공되는 일은 없다. 좌측 눈으로 시청해야 할 그래픽스와 우측 눈으로 시청해야 할 그래픽스의 완전한 정합을 유지할 수 있다.
도 1은 패키지 매체인 기록매체, 플레이어 기기인 재생장치, 표시장치, 안경에 의해 구성되는 홈시어터 시스템을 나타낸다.
도 2는 재생장치의 내부 구성을 나타내는 블록도이다.
도 3은 비디오 플레인(104a, 104b)에 저장된 픽처 데이터가 셔터안경(500)을 착용한 사용자에 의해 어떻게 보이는가를 나타낸다.
도 4는 묘화부(115)의 기능적인 구성을 나타내는 블록도이다.
도 5는 플레인 합성기의 내부 구성을 나타내는 도면이다.
도 6은 그래픽스 플레인(104c, 104d)의 내부 구성을 나타낸다.
도 7은 플레인 간 카피의 처리 내용을 나타내는 도면이다.
도 8은 1 플레인 구성에서 2 플레인 구성으로의 전환 후의 그래픽스 갱신을 나타내는 도면이다.
도 9는 BD-J 모듈(15)이 서포트하는 그래픽스 묘화 기능의 API의 일 예를 나타내는 도면이다.
도 10은 도 8의 애플리케이션 프로그램 인터페이스를 이용하여 규정할 수 있는 묘화 요구의 구체 예이다.
도 11은 도 9와 같이 인수가 지정된 경우, Graphics#drawImage 및 StereoGraphics#drawImage의 호출에 의해 어떤 기입이 실행되는가를 모식적으로 나타낸다.
도 12는 2D 그래픽스 묘화 요구의 무시, 플레인 간 카피, 우측 눈 용 출력계통의 추가의 시간적인 관계를 비디오 스트림 시간 축에 따라서 나타내는 타이밍차트이다.
도 13은 Graphics#drawImage의 무효화를 실행하는 것과 하지 않는 것에 의해 재생장치에 의해 재생되는 입체 시 영상이 어떻게 다른지의 대비 설명을 위한 도면이다.
도 14는 무효화를 실행하지 않고 모드 전환을 실행하려고 하는 경우, 스택에 서의 복수의 코드가 어떻게 처리되는가를 연속 사진적인 표기로 나타내는 도면이다.
도 15는 도 14 (c)의 기입에 의해 재생되게 되는 입체 시 영상을 나타낸다.
도 16은 무효화를 실행하고 나서 모드 전환을 실행하려고 하는 경우, 스택에 서의 복수의 API 콜 코드가 어떻게 처리되는가를 연속 사진적인 표기로 나타낸다.
도 17은 도 16 (d)의 기입에 의해 재생되게 되는 입체 시 영상을 나타낸다.
도 18은 BD-ROM(100)의 내부 구성을 나타내는 도면이다.
도 19는 재생장치의 내부 구성을 나타내는 블록도이다.
도 20은 플레인 메모리의 레이어 구성과 합성부의 구성요소를 나타낸다.
도 21은 플레인 합성기(20)가 4 방법의 출력계통의 전환을 실현함으로써 이루어지는 4개의 합성 모드(합성 모드 1, 합성 모드 2, 합성 모드 3, 합성 모드 4)를 나타낸다.
도 22는 BD-J 모듈(15)이 서포트하는 그래픽스 묘화 기능의 API의 일 예를 나타낸 도면이다.
도 23은 도 22의 그래픽스 묘화 기능 API의 콜 코드의 일 예를 나타내는 도면이다.
도 24는 합성 모드 전환 요구(803)가 호출된 경우의 처리순서를 나타내는 도면이다.
도 25는 1 플레인에서 2 플레인으로 전환하는 처리, 2 플레인에서 1 플레인으로 전환하는 처리의 순서를 나타내는 플로차트이다.
도 26은 setConfiguraionAPI 콜 시에서의 org.havi.ui의 처리순서를 나타내는 플로차트이다.
도 27은 java.awt.Graphics의 처리순서를 나타내는 플로차트이다.
도 28은 애플리케이션 매니저에 의한 StereoGraphics 상태제어의 순서를 나타내는 플로차트이다.
도 29는 플레인 합성기에 의한 합성 모드 전환 및 우측 눈 용 출력계통의 전환의 순서를 나타내는 플로차트이다.
도 30은 StereoGraphics#drawImage 메소드가 콜 되었을 때의 라인 묘화 순서를 나타내는 플로차트이다.
도 31은 바이트코드 애플리케이션에 의한 메뉴 표시의 플로차트이다.
도 32는 동작 모드 오브젝트의 내부 구성의 일 예를 나타내는 도면이다.
도 33은 타이틀 선택시의 해상도 설정시에서의 처리순서를 나타내는 플로차트이다.
도 34는 입체 시 화상이 표시화면보다 앞에 있는 것처럼 보이는 원리를 설명하기 위한 도면이다.
도 35는 입체 시 화상이 표시화면보다 안쪽에 있는 것처럼 보이는 원리를 설명하기 위한 도면이다.
도 36은 정(正)과 부(負)의 플레인 오프셋의 보이는 방법의 차이의 일 예를 나타내는 도면이다.
도 37은 집적회로의 아키텍처를 나타내는 도면이다.
이하, 도면을 참조하면서 본원에 포함되는 재생장치 발명, 집적회로 발명, 재생방법 발명, 프로그램 발명의 실시형태에 대해서 설명한다.
상기 과제해결수단을 구비한 재생장치 발명은 패키지 매체를 재생하기 위한 플레이어 기기로서 실시할 수가 있으며, 집적회로 발명은 당해 플레이어 기기에 포함되는 시스템 LSI로서 실시할 수 있다. 재생방법의 발명은 이 플레이어 기기로서 실현되는 시계열 순서로서 실시할 수 있다. 프로그램의 발명은 컴퓨터 판독 가능한 기록매체에 기록되고, 플레이어 기기에 인스톨 되는 실행형식 프로그램으로 실시할 수 있다.
1:재생장치 발명의 사용형태
도 1은 패키지 매체인 기록매체, 플레이어 기기인 재생장치, 표시장치, 안경에 의해 구성되는 홈시어터 시스템을 나타낸다. 동 도면에 나타내는 것과 같이 상기 패키지 매체인 기록매체, 플레이어 기기인 재생장치는 표시장치, 안경, 리모컨과 함께 홈시어터시스템을 구성하며, 사용자에 의한 사용에 제공된다.
1. 1:기록매체(100)
 기록매체(100)는 상기 홈시어터시스템에 예를 들어 영화작품을 공급하는 광디스크이다.
1. 2:재생장치(200)
재생장치(200)는 텔레비전(400)과 접속되고, 기록매체(100)를 재생한다. 이와 같은 재생은 좌측 눈 용 영상(L화상)의 영상출력과 우측 눈 용 영상(R화상)의 영상출력을 교호로 반복함으로써 이루어진다. 이렇게 해서 재생되는 재생 영상에는 2D 영상, 3D 영상이 존재한다. 2D 영상이란 예를 들어 표시장치의 표시화면을 포함하는 평면을 X-Y평면으로 파악하여, 이 X-Y평면상에 위치하는 표시화면의 표시위치에서의 화소로 표현되는 화상이며, 평면 시 화상이라고도 불린다. 이 2D 영상을 재생하기 위한 재생장치의 재생 모드를“2D 재생 모드”또는“평면 시 재생 모드”라고 한다. 그리고 이 2D 재생 모드로 재생장치에 의해 표시되는 그래픽스를“2D 그래픽스”라고 한다.
대조적으로, 3D 영상이란 상술의 X-Y평면으로 파악한 평면과 직교하는 직선을 Z축으로 하여, Z축 방향의 깊이를 더한 화상이다. 이 3D 영상을 재생하기 위한 재생장치의 재생 모드를“3D 재생 모드”또는“입체 시 재생 모드”라고 한다. 그리고 이 3D 재생 모드로 재생장치에 의해 표시되는 그래픽스를“3D 그래픽스”라고 한다.
1. 3:리모컨(300)
리모컨(300)은 계층화된 GUI에 대한 조작을 사용자로부터 접수하는 기기이며, 이러한 조작 접수를 위해 리모컨(300)은 GUI를 구성하는 메뉴를 호출하는 메뉴 키, 메뉴를 구성하는 GUI 부품의 포커스를 이동시키는 화살표 키, 메뉴를 구성하는 GUI 부품에 대해서 확정 조작을 실행하는 결정 키, 계층화된 메뉴를 보다 상위의 것으로 되돌아가게 하기 위한 리턴키, 수치 키를 구비한다.
1. 4:텔레비전(400)
텔레비전(400)은 재생장치(200)로부터의 영상출력을 받아서 L화상과 R화상을 동일한 타이밍에 그대로 교호로 출력한다. 타이밍의 동일화는 영상출력과 표시 전환의 프레임 레이트를 동일하게 함으로써 실현된다. 시청자의 눈의 부담을 경감하기 위해 표시 변환 측의 프레임 레이트만을 체배(multiplied)하는 구성을 취할 수도 있다. 이 경우는 L화상 및 이어서 출력된 R화상 세트를 표시 디스플레이(400)가 축적하고, 표시 디스플레이 측에서 이들 화상을 고속으로 전환함으로써 고 프레임 레이트의 표시를 실행하게 된다.
1. 5:셔터안경(500)
셔터안경(500)은 액정셔터와 제어부로 구성되고, 사용자의 두 눈에서의 시차를 이용하여 입체 시를 실현한다. 셔터안경(500)의 액정 셔터는 인가 전압을 바꿈으로써 광의 투과율이 변화하는 성질을 갖는 액정 렌즈를 이용한 셔터이다. 셔터안경(500)의 제어부는 재생장치로부터 보내지는 R화상과 L화상의 출력의 전환의 동기 신호를 수신하고, 이 동기 신호에 따라서 제 1 상태, 제 2 상태의 전환을 실행한다.
제 1 상태란 우측 눈에 대응하는 액정 렌즈가 광을 투과하지 않도록 인가 전압을 조절하고, 좌측 눈에 대응하는 액정 렌즈가 광을 투과하도록 인가 전압을 조절한 상태이며, 이 상태에서 좌측 눈에 L화상이 입사하고, 우측 눈에는 L화상이 입사하지 않는 상태가 된다.
제 2 상태란 우측 눈에 대응하는 액정 렌즈가 광을 투과하도록 인가 전압을 조절하고, 좌측 눈에 대응하는 액정 렌즈가 광을 투과하지 않도록 인가 전압을 조절한 상태이며, 이 상태에서 우측 눈에 R화상이 입사하고, 좌측 눈에는 R화상이 입사하지 않는 상태가 된다.
일반적으로 R화상과 L화상이란 그 촬영 위치의 차에 기인하여 우측 눈 동공으로의 입사에서 보이는 상(像)과 좌측 눈 동공으로의 입사에서 보이는 상에는 보이는 방법에 약간의 차가 있는 것과 같은 화상이다.
이 상의 보이는 방법의 차이(apparent difference)의 정도를 인간의 좌측 눈/우측 눈의 각각에서 보이는 상의 차이의 정도(즉, 시차의 정도)로 함으로써 인간의 눈에서 보이는 상을 입체로 인식할 수 있는 것이다. 그러므로 셔터안경(500)이 이상과 같은 제 1 상태, 제 2 상태의 전환을 R화상과 L화상의 출력의 전환 타이밍에 동기시키면 사용자는 평면적인 표시가 입체적으로 보이는 것으로 착각한다. 다음에, R화상, L화상을 표시할 때의 시간간격에 대해서 설명한다.
구체적으로는, 평면 표시의 화상에서 R화상과 L화상에는 인간의 시차에 상당하는 보이는 방법의 차에 상당하는 정도의 차이가 있으며, 이들 화상을 짧은 시간간격으로 전환하여 표시함으로써 마치 입체적인 표시가 이루어지고 있는 것처럼 보이는 것이다. 이 짧은 시간간격이라고 하는 것은 상술의 전환 표시에 의해 인간이 입체적으로 보인다고 착각하는 정도의 시간이면 충분하다. 본 실시형태에서는 텔레비전(400)이 비디오 스트림을 재생하기 위한 표시 주기를 나타내는 프레임 기간을 2개로 분할하고, 분할에 의해 얻어진 각각의 기간을 우측 눈, 좌측 눈을 전환하기 위한 시간간격으로 한다. 프레임 기간을 분할함으로써 얻어진 기간 중에서 좌측 눈으로 시청하게 하기 위한 기간을 "좌측 눈 동공 입사기간"이라고 한다. 또, 우측 눈으로 시청하게 하기 위한 기간을 "우측 눈 동공 입사기간"이라고 한다. 여기서 프레임 주기가 1/24초이면 좌측 눈 동공 입사기간, 우측 눈 동공 입사기간은 각각 1/48초가 된다. 프레임 주기가 1/60초이면 좌측 눈 동공 입사기간, 우측 눈 동공 입사기간은 각각 1/120초가 된다.
(제 1 실시형태)
이하, 본원 명세서의 과제해결수단을 구비한 재생장치의 실시형태 중 그래픽스 플레인을 2 플레인 구성으로 하는 실시형태에 대해서 설명한다.
2:재생장치의 내부 구성
도 2는 본원의 과제해결수단을 구비한 재생장치의 기본적인 내부 구성을 나타낸다. 본 도면에 나타내는 것과 같이 재생장치(200)는 판독부(101), 비디오 디코더(102), 플레인 메모리 세트(103) (비디오 플레인(104a, 104b), 그래픽스 플레인(104c, 104d)을 포함한다), 플레인 합성기(105), 이미지 메모리(106), 렌더링 엔진(107), 플랫폼부(110), 히프 메모리(111), 바이트코드 인터프리터(112), 클래스 로더(113), 애플리케이션 매니저(114), 묘화부(115)로 구성된다.
2. 1:판독부(101)
판독부(101)는 기록매체(100)로부터 비디오 스트림, 데이터구조체, 바이트코드 애플리케이션의 클래스 구조체, 애플리케이션 관리테이블을 판독하고, 비디오 스트림에 대해서는 비디오 디코더(102)에 공급한다.
2. 2:비디오 디코더(102)
비디오 디코더(102)는 판독된 비디오 스트림을 복호하여 비 압축 형식의 픽처를 플레인 메모리 세트(103)에 기입한다.
플레인 메모리 세트(103)는 복수의 플레인 메모리로 구성된다. 플레인 메모리는 한 화면 분의 화소 데이터를 라인 단위로 저장해 두고, 수평동기신호, 수직동기신호에 따라서 이들의 화소 데이터를 출력하기 위한 메모리이다. 개개의 플레인 메모리는 비디오, 자막, GUI, 배경 화상의 디코드에 의해 얻어진 1 화면 분의 화소 데이터를 저장한다.
이들 플레인 메모리는 레이어 모델을 구성하고 있으며, 개개의 플레인 메모리의 저장내용은 레이어 합성에 제공된다. 이 레이어 합성은 플레인 메모리의 레이어 모델에서 2개의 계층의 플레인 메모리에 저장되어 있는 화소 데이터의 화소치를 중첩시킨다고 하는 처리를 레이어 모델에서의 2개의 계층의 모든 조합에 대해서 실행함으로써 이루어진다.
2. 4. 1:좌측 눈 용 비디오 플레인(104a), 우측 눈 용 비디오 플레인(104b)
좌측 눈 용 비디오 플레인(104a) 및 우측 눈 용 비디오 플레인(104b)는 플레인 메모리 세트의 하나이며, 각각 좌측 눈 용의 비디오의 픽처, 우측 눈 용의 비디오의 픽처가 저장된다.
2. 4. 2:좌측 눈 용 그래픽스 플레인(104c), 우측 눈 용 그래픽스 플레인(104d)
좌측 눈 용 그래픽스 플레인(104c) 및 우측 눈 용 그래픽스 플레인(104d)은 플레인 메모리 세트 중 하나이며, 비디오 플레인 상의 중첩시켜야 할 그래픽스를 비 압축 형식으로 저장한다. 좌측 눈 용 그래픽스 플레인(104c)는 좌측 눈 용의 그래픽스를 저장하는 좌측 눈 용 플레인 메모리이다. 우측 눈 용 그래픽스 플레인(104d)은 우측 눈 용의 그래픽스를 저장하는 우측 눈 용 플레인 메모리이다. 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인의 설정에는 평면 시 재생시 및 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인만을 사용하는 1 플레인 구성과 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인을 사용하는 2 플레인 구성이 있다. 여기에서의 “그래픽스”란 이들 그래픽스 플레인에 저장된 ARGB 형식의 화소 데이터에 의해 표현되는 표시 내용을 말하며, 폰트를 이용하여 텍스트 코드를 전개함으로써 얻어진 문자, 기호의 비트 맵이나, GIF/JPEG/PNG 데이터를 디코드함으로써 얻어진 GIF/JPEG/PNG 이미지(본 명세서에서는“묘화 이미지”라고 한다)를 포함한다.
2. 5:플레인 합성기(105)
플레인 합성기(105)는 복수의 플레인 메모리의 레이어 합성을 실행한다. 플레인 합성기(105)는 좌측 눈 용의 출력계통과 우측 눈 용의 출력계통으로 구성되고, 좌측 눈 용의 출력계통과 우측 눈 용의 출력계통에서 각각 독립하여 복수의 플레인 메모리 간의 레이어 합성을 실행한다. 좌측 눈 용 출력계통, 우측 눈 용 출력계통은 복수의 가산기와 가산기 간의 결선(結線)으로 구성된다. 좌측 눈 용 출력계통은 2D 재생 모드에서 공용된다. 우측 눈 용 출력계통은 3D 재생 모드에서만 유효가 된다. 이 우측 눈 용 출력계통에서 가산기로의 공급원을 좌측 눈 용 그래픽스 플레인으로 한 경우, 그래픽스 플레인을 1 플레인 구성으로 할 수 있으며, 가산기로의 공급원을 우측 눈 용 그래픽스 플레인으로 한 경우, 그래픽스 플레인을 2 플레인 구성으로 할 수 있다.
2. 6:이미지 메모리(106)
이미지 메모리(106)는 기록매체(100)에 기록된 데이터구조체의 인스턴스가 생성된 경우에 데이터구조의 인스턴스인 묘화 이미지를 저장해 두기 위한 메모리이다. 이와 같은 묘화 이미지는 ARGB 형식의 비트 맵이며, 바이트코드 애플리케이션으로부터는 인스턴스 변수에 의해 지시된다. 3D 재생 모드에서는 우측 눈 용의 묘화 이미지 오브젝트, 좌측 눈 용의 묘화 이미지 오브젝트를 개별로 저장할 수 있다.
2. 7:렌더링 엔진(107)
렌더링 엔진(107)은 좌측 눈 용 그래픽스 플레인(104c) 및 우측 눈 용 그래픽스 플레인(104d)에 대한 묘화 처리를 실행한다. 렌더링 엔진(107)에 의한 이미지 묘화는 이미지 메모리(106) 상의 묘화 이미지 오브젝트를 이미지 메모리(106)에서 그래픽스 플레인(104c, 104d)에 카피함으로써 이루어진다. 카피의 대상이 되는 묘화 이미지 오브젝트는 인스턴스 변수로서 지시된다.
2. 10:플랫폼부(110)
플랫폼부(110)는 ROM 등의 불휘발성 메모리에 기억된 내장 프로그램과 이 내장 프로그램을 실행하는 하드웨어(MPU, 레지스터, 주변회로를 포함한다)로 구성되며, 기록매체(100)에 기록된 클래스 구조체의 인스턴스인 바이트코드 애플리케이션을 동작하게 한다.
2. 11:히프 메모리(111)
히프 메모리(111)는 바이트코드 애플리케이션이 동작을 실행하기 위한 워크 영역이며, 멀티 슬레드(111a)와 멀티 스택(111b)으로 구성된다.
2. 11. 1:멀티 슬레드(111a)
멀티 슬레드(111a)는 바이트코드를 실행하는 논리적인 실행 주체(스레드)의 집합이며, 로컬 변수나 오퍼랜드 스택에 저장된 인수를 오퍼랜드로 해서 연산을 실행하여, 연산 결과를 로컬 변수 또는 오퍼랜드 스택에 저장한다. 재생장치에서의 물리적인 실행 주체가 MPU 1개인데 대해 논리적인 실행 주체인 스레드는 최대 64개 존재할 수 있다. 이 64개라고 하는 수치 내에서 스레드를 신규로 작성하는 것도 기존의 스레드를 삭제하는 것도 가능하며, 스레드의 동작 수는 플랫폼의 동작 중에 증감할 수 있다. 스레드의 수는 적절히 늘릴 수 있으므로 복수의 스레드에 의해 바이트코드 애플리케이션을 구성하는 바이트코드의 병렬 실행을 하여 바이트코드 애플리케이션의 고속화를 도모할 수도 있다. 기록매체로부터 로드되는 바이트코드 애플리케이션이나 java.awt.Graphics나 HAVi 등의 레지던트형의 바이트코드 애플리케이션을 구성하는 바이트코드도 이와 같은 병렬 실행에 제공된다.
2. 11. 2:멀티 스택(111b)
멀티 스택(111b)는 복수의 스레드의 각각과 1 대 1의 비율로 존재하고 있는 스택의 집합이며, 각 스택은 프로그램 카운터와 1개 이상의 프레임을 그 내부에 갖는다. ”프로그램 카운터”는 인스턴스에서 현재 어느 부분이 실행되고 있는가를 나타낸다. ”프레임”은 메소드에 대한 1회의 콜에 대해서 할당된 스택방식의 영역이며, 그 1회의 콜 시의 인수가 저장되는 "오퍼랜드 스택”과 콜 된 메소드가 이용하는 "로컬 변수 스택”으로 이루어진다. 프레임은 콜이 1회 이루어질 때마다 스택에 누적되므로 어느 메소드가 자신을 재귀적(再歸的)으로 호출하는 경우도 이 프레임은 1개 누적된다.
2. 12:바이트코드 인터프리터(112)
바이트코드 인터프리터(112)는 스레드에 할당된 바이트코드를 네이티브 코드로 변환하여, MPU에 실행시킨다. 바이트코드 인터프리터(112)는 바이트코드 애플리케이션을 멀티 슬레드로서 처리한다.
2. 13:클래스 로더(113)
클래스 로더(113)는 기록매체(100)에 기록된 애플리케이션의 클래스 구조체의 인스턴스를 히프 메모리(111)에 생성함으로써 바이트코드 애플리케이션의 로드를 실행한다.
2. 14:애플리케이션 매니저(114)
애플리케이션 매니저(114)는 애플리케이션 관리테이블에 의거하여 바이트코드 애플리케이션의 정당성을 검증한 후, 바이트코드 애플리케이션을 기동하거나 바이트코드 애플리케이션을 종료하거나 하는 등, 바이트코드 애플리케이션의 애플리케이션 시그널링을 실행한다.
2. 15:묘화부(115)
묘화부(115)는 플랫폼부에서 동작하고 있는 바이트코드 애플리케이션에 대해서 각종 기능을 제공하는 내장 기기용의 미들웨어 프로그램이다. 이 미들웨어 프로그램이 실장하고 있는 패키지는 색 지정을 수반한 선이나 직사각형 등 도형의 묘화, 지정영역의 전부 칠하기, 지정된 카피?페이스트 등의 묘화 처리를 렌더링 엔진(107)을 통해서 좌측 눈 용 그래픽스 플레인(104c) 및 우측 눈 용 그래픽스 플레인(104d)에 대해서 실시하는 라이브러리를 포함한다. 바이트코드 애플리케이션은 이들 묘화 처리의 요구를 묘화부에 연속적으로 발행함으로써 다양한 그래픽스 묘화 처리를 실현한다.
이하, 이들 구성요소의 처리 내용을 참고도와 함께 더 상세하게 설명한다.
3:셔터안경(500)에 의한 입체 시 영상의 시청
도 3은 비디오 플레인(104a, 104b)에 저장된 픽처 데이터가 셔터안경(500)을 착용한 사용자에 의해 어떻게 보이는가를 나타낸다.
도면 중의 화살표 vw1는 우측 눈 동공 입사기간에서의 시점(視點)으로의 영상 입력을 나타내고, 도면 중의 화살표 vw2는 좌측 눈 동공 입사기간에서의 시점으로의 영상 입력을 나타낸다. 우측 눈 동공 입사기간에서는 화살표 vw1에 나타내는 것과 같이 우측 눈 용 비디오 플레인의 저장내용이 셔터안경(500)을 통해서 사용자의 좌측 눈에 입사한다. 좌측 눈 동공 입사기간에서는 이 화살표 vw2에 나타내는 것과 같이 좌측 눈 용 비디오 플레인의 저장내용이 셔터안경(500)을 통해서 사용자의 좌측 눈에 입사한다. 이러한 셔터의 전환에 의해 비디오 스트림의 입체 시 재생이 가능해진다. 본 도면에서 자막, 음성, 특전이라고 하는 문자 열이 부가된 3개의 버튼 부재로 이루어지는 메뉴는 그래픽스 플레인에 저장되어 있는 그래픽스에 의해 구성된다. 이와 같이, 입체 시 재생의 대상이 되는 것은 비디오에 한정되는 것은 아니다. 그래픽스로 구성되는 메뉴도 입체 시의 대상이 된다.
이상이 셔터안경(500)을 착용하는 것에 의한 입체 시 영상의 시청이다. 계속해서 그래픽스 플레인의 상세에 대하여 설명한다.
다음에, 그래픽스 플레인(104c, 104d)에서의 컨피규레이션 설정에 대해서 설명한다. 이러한 컨피규레이션에는 2 플레인 구성과 1 플레인 구성이 있다.
4. 1:2 플레인 구성
2 플레인 구성이란 재생장치가 3D 재생 모드인 경우, 바이트코드 애플리케이션이 묘화한 그래픽스를 3D-LR모드로 재생하기 위한 플레인 구성이다. 3D-LR모드란 좌측 눈 용 그래픽스를 좌측 눈 용 그래픽스 플레인에 기입하고, 우측 눈 용 그래픽스를 우측 눈 용 그래픽스 플레인에 기입함으로써 입체 시 효과를 작성한다고 하는 재생 모드이다.
4. 2:1 플레인 구성
1 플레인 구성이란 재생장치가 3D 재생 모드인 경우, 바이트코드 애플리케이션이 묘화한 그래픽스를 1plane+Offset 모드로 재생하기 위한 플레인 구성이다. 1plane+Offset 모드란 좌측 눈 동공 입사기간 및 우측 눈 동공 입사기간의 각각에서 플레인 메모리에서의 라인 단위의 화소의 좌표를 좌측방향 또는 우측방향에 시프트시키고, 우측 눈 시선 및 좌측 눈 시선의 결상점을 앞 방향 또는 안쪽 방향으로 변위시킴으로써 깊이감을 변화시키는 재생 모드이다. 구체적으로는 좌측 눈 동공 입사기간에서 좌측방향, 우측 눈 동공 입사기간에 우측방향으로 화소 좌표를 변화시키면 두 눈의 시선의 결상점은 앞이 되고, 좌측 눈 동공 입사기간에서 우측방향, 우측 눈 동공 입사기간에서 좌측방향으로 화소 좌표를 변화시키면 두 눈의 시선의 결상점은 앞이 된다.
이와 같은 플레인 시프트에서는 입체 시를 위한 플레인 메모리가 1 플레인으로 충분하므로 간편하게 입체 시 영상을 만들어 내는데 최적이다. 이 플레인 시프트에서는 평면적인 영상이 앞에 오거나 안쪽으로 들어가거나 하는 입체 시 영상을 만들어 내는 것에 지나지 않으므로 메뉴나 자막의 입체 시 효과에는 적합하지만, 캐릭터나 물체의 입체 시 효과의 실현에는 약간 어딘지 부족하다. 캐릭터의 얼굴의 움푹한 곳이나 요철 등을 재현할 수 없기 때문이다.
재생 대상이 되는 비디오 스트림이 베이스 뷰 비디오 스트림 및 디펜던트 뷰 비디오 스트림의 세트이고, 재생장치가 3D 재생 모드로 설정되었다고 하더라도 그래픽스 플레인의 설정은 원칙으로 1 플레인 구성이 된다. 바이트코드 애플리케이션이 컨피규레이션 설정 요구를 실행하여, 그래픽스 플레인의 컨피규레이션을 2 플레인 구성으로 전환한 경우에만 2 플레인 구성으로 전환할 수 있다.
기록매체에 우측 눈 용 묘화 이미지의 데이터구조, 좌측 눈 용 묘화 이미지의 데이터구조가 기록되어 있고, 바이트코드 애플리케이션이 이들을 이용하여 화상이나 버튼 부재의 입체 시 재생을 실현하려고 하는 경우, 바이트코드 애플리케이션은 묘화에 앞서 컨피규레이션 설정 요구를 실행하여, 그래픽스 플레인을 2 플레인 구성으로 설정해 둘 필요가 있다.
4:묘화부(116)의 기능 구성
상술한 것과 같은 묘화부(116)는 이들의 묘화 요구, 컨피규레이션 설정 요구를 처리하기 위한 구성요소이며, 소프트웨어의 기능적인 관점에서 보면 묘화부의 내부 구성은 도 4와 같이 표현된다. 도 4는 묘화부(116)의 기능적인 구성을 나타내는 블록도이다. 제 1 단째는 도 2의 내부 구성에서의 소프트웨어의 레이어 구성이고, 제 2 단째는 도 2의 내부 구성에서의 플레인 메모리의 레이어 구성과, 우측 눈 용 출력계통, 좌측 눈 용 출력계통을 나타낸다. 제 3 단째는 우측 눈 영상, 좌측 눈 영상을 나타낸다.
제 1 단째의 레이어 모델에서 해칭을 부여한 것은 묘화부의 구성요소가 되는 것을 나타낸다. 본 도면에서 해칭을 부여하여 나타내는 것과 같이 묘화부는 레지던트형의 바이트코드 애플리케이션인 「org.havi.ui」, 「java.awt.Graphics」와, 재생장치의 네이티브 코드로 기술된 내장 프로그램인 「디바이스 드라이버」로 구성된다. 이하, 이들 묘화부의 구성요소에 대해서 설명한다.
4. 1:org.havi.ui 모듈
「org.havi.ui」는 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인을 HAVi 그래픽스 디바이스로서 관리한다.
4. 2:java.awt.Graphics 모듈
「java.awt.Graphics 모듈」은 개량이 실시된 java.awt.Graphics의 모듈이다. java.awt(Abstract Window Toolkit)는 GUI를 구축하기 위한 기능을 정리한 기본 라이브러리이며, 컴포넌트와 컨테이너라고 하는 2개의 클래스를 갖는다. 컴포넌트가 Java 애플리케이션의 묘화 영역을 제공하고, 컨테이너가 복수의 컴포넌트를 배치?저장하는 기능을 제공한다. 어느 점에 개량이 더해졌는가 하면 1 플레인에서 2 플레인으로의 그래픽스 플레인 전환이 명해진 경우에 특수한 처리를 실행하는 점이 통상의 java.awt.Graphics와 다르다. 그래픽스 플레인이 2 플레인으로 되어 있는 동안은 2D 그래픽스 묘화를 실행하지 않는 것을 제외하고는 통상의 java.awt.Graphics와 동일하다. 이 java.awt.Graphics에 의한 특수한 처리는 2D 그래픽스 묘화 요구의 무시이다. 제 1 실시형태에서는 이“무시”의 일 예로 이미 스택에 축적되어 있는 2D 그래픽스 묘화 요구의 콜 코드를 모두 소거하고, Exception를 요구 원의 스레드로 되돌린다고 하는 방식을 채용한다. 이와 같은 무시를 실행한 후에는 2 플레인에서 1 플레인으로의 그래픽스 플레인 전환이 명해지고, 우측 눈 용의 출력계통이 해방될 때까지 2D 그래픽스의 묘화를 실행하지 않는다.
4. 3:디바이스 드라이버(116)
디바이스 드라이버(116)는 java.awt.Graphics, org.havi.ui의 요구에 따라서 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인에 그래픽스를 기입한다.
1 플레인에서 2 플레인으로의 그래픽스 플레인 전환 시에는 좌측 눈 용 그래픽스 플레인에 저장되어 있는 1 화면 분의 화소 데이터를 우측 눈 용 그래픽스 플레인에 카피한다고 하는 처리를 실행하여 출력계통의 전환을 실행한다. 도면 중의 화살표 dr1, dr2는 디바이스 드라이버에 의한 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인으로의 액세스를 상징적으로 나타내고 있다.
이 액세스에 의해 좌측 눈 용 그래픽스 플레인의 저장내용이 우측 눈 용 그래픽스 플레인에 카피된다. 화살표 cp1은 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 카피를 나타낸다. 이상의 카피 후에 우측 눈 용 출력계통이 추가됨으로써 도 4의 제 3 단째에 나타내는 것과 같이 그래픽스가 합성된 우측 눈 화상, 좌측 눈 화상이 재생장치로부터 출력되게 된다.
4. 4:StereoGraphics 모듈
「StereoGraphics 모듈」은 3D 그래픽스 묘화의 요구를 접수하여, 그래픽스의 묘화를 실행하므로 특별히 재생장치에 실장된 레지던트형의 바이트코드 애플리케이션이다. 1 플레인에서 2 플레인으로의 그래픽스 플레인 전환이 명해진 경우에만 기동되고, 그래픽스 플레인이 2 플레인에서 1 플레인으로 전환된 경우 즉시 동작을 종료한다.
본 실시형태에서 가장 중요한 것은 레이어 모델의 설명에서 서술한 「우측 눈 용 출력계통의 추가」, 「플레인 간 카피」, 「2D 그래픽스 묘화 요구의 무시」라는 3개의 순서이다. 이하, 이들 순서와 이 순서를 실현하기 위한 구성요소에 대해서 설명한다.
우측 눈 용 출력계통의 추가를 실현하는 것은 플레인 합성기(105)이다. 다음에 합성부의 내부 구성에 대해서 설명한다.
5:플레인 합성기(105)의 내부 구성
도 5 (a)는 플레인 메모리의 레이어 구성과 합성부의 구성요소를 나타낸다. 합성부는 플레인 메모리의 레이어 구성의 좌측 눈 용 출력계통에 설치된 가산기(41)와 플레인 메모리의 레이어 구성의 우측 눈 용 출력계통에 설치된 가산기(42)와 스위치(43)를 구성요소로 한다.
5. 1:가산기(41)
가산기(41)는 좌측 눈 용 출력계통에서 좌측 눈 용 비디오 플레인의 저장내용과 좌측 눈 용 그래픽스 플레인의 저장내용의 합성을 실행한다.
5. 2:가산기(42)
가산기(42)는 우측 눈 용 출력계통에서 우측 눈 용 비디오 플레인의 저장내용과 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인 중 어느 일방과의 합성을 실행한다. 이들 가산기(41, 42)에 의한 저장내용의 합성은 비디오 플레인 및 그래픽스 플레인에 저장되어 있는 화소 데이터의 화소치를 중첩한다고 하는 것이다. 화소치의 중첩은 플레인 메모리의 라인 단위의 화소치에 투과율α을 중량으로 곱하는 동시에, 그 하위 계층에 위치하는 플레인 메모리의 라인 단위의 화소치에(1-투과율α)라고 하는 중량을 곱하여 이들 휘도의 가중이 부여된 화소치끼리를 가산하고, 가산 결과를 그 계층에서의 라인 단위의 화소의 화소치로 하는 처리이다. 가산기(41, 42)는 플레인 메모리의 라인 화소의 화소 데이터를 저장하는 라인 메모리와, 라인 화소에서의 개개의 화소치에 등가율을 곱하기 위한 곱셈부를 포함하며, 라인 화소에서의 개개의 화소에 대해 상술한 것과 같은 가산을 실행한다.
5. 3:스위치(43)
스위치(43)는 가산기(42)에 대한 화소 데이터의 공급원을 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인의 어느 하나로 전환한다. 가산기(42)에 대한 화소 데이터의 공급원을 좌측 눈 용 그래픽스 플레인으로 한 경우, 그래픽스 플레인의 컨피규레이션은 “1 플레인 구성”이 되고, 화소 데이터의 공급원을 우측 눈 용 그래픽스 플레인으로 한 경우, 컨피규레이션은 “2 플레인 구성”이 된다.
5. 4:합성 모드의 변형
5. 4. 1:합성 모드
2D 재생 모드에서의 출력계통은 도 5 (b)의 것으로 고정된다. 이에 대해서 3D 재생 모드에서는 우측 눈 용의 출력계통과 좌측 눈 용의 출력계통이 있고, 좌측 눈 용의 출력계통에서는 가산기로의 데이터 공급원을 우측 눈 용의 플레인 메모리로 할지 좌측 눈 용의 플레인 메모리로 할지에 의해 도 5 (c)~(d)에 나타내는 2가지의 변형이 존재한다. 즉, 2D 재생 모드에서는 출력계통에 변형이 존재하지 않지만, 3D 재생 모드에서 플레인 합성기(20)는 2가지의 출력계통의 전환을 실현함으로써 2개의 합성 모드(합성 모드 A, 합성 모드 B)를 가지게 된다. 이하, 각각의 모드에 대해 도 5 (c)~(d)의 각각을 이용하여 설명한다.
도 5 (c)는 그래픽스 플레인, 비디오 플레인의 비율을 2:2로 하는 출력계통에 의한 합성 모드(합성 모드 A)를 나타낸다. 그래픽스 플레인의 플레인 수는 모두 2 플레인이므로 가산기(42)로의 공급원은 우측 눈 용 그래픽스 플레인으로 되어 있다.
5. 4. 2:합성 모드 B
도 5 (d)는 그래픽스 플레인, 비디오 플레인의 비율을 1:2로 하는 출력계통에 의한 합성 모드(합성 모드 B라고 한다)를 나타낸다. 합성 모드 B에서는 그래픽스 플레인은 좌측 눈 용만이 사용된다. 그 결과, 그래픽스 플레인에 대해서는 좌우 동일한 영상이 출력되므로 시청자의 눈에는 평평하게 보이게 된다.
2D 재생 모드에서 플레인 합성기(105)에는 우측 눈 용 출력계통이 존재하지 않고, 플레인 합성기(105)는 도 5 (b)의 상태로 되어 있다. 그러나 2D 재생 모드에서 3D 재생 모드로의 전환시에 플레인 합성기(105)에는 우측 눈 용 출력계통이 추가되고, 플레인 합성기(105)는 도 5 (c) 또는 도 5 (d)의 상태가 된다. 이와 같이 가산기(42) 및 스위치(43)를 유효 상태로 하는 것이 “우측 눈 용 출력계통의 추가”이다. 반대로, 가산기(42) 및 스위치(43)를 무효 상태로 하는 것이 “우측 눈 용 출력계통의 해방”이다.
이어서, 플레인 간 카피의 상세에 대하여 설명한다. 플레인 간 카피란 좌측 눈 용 그래픽스 플레인에 저장되어 있는 모든 화소를 우측 눈 용 그래픽스 플레인에 카피하는 것을 의미한다. 이 카피 처리의 전제가 되는 그래픽스 플레인의 플레인 구성에 대해서 설명한다.
6. 그래픽스 플레인의 내부 구성
도 6은 좌측 눈 용 그래픽스 플레인(104c) 및 우측 눈 용 그래픽스 플레인(104d)의 공통의 내부 구성을 나타낸다. 해상도가 1920×1080으로 설정되어 있는 경우, 동 도면(a)에 나타내는 것과 같이 그래픽스 플레인(104c, 104d)은 가로 1920×세로 1080의 32 비트 길이의 기억소자로 이루어진다. 그래픽스 플레인(104c, 104d)은 1920×1080의 해상도로 ARGB 형식 8888 형식에 의해 화소 데이터를 저장한다. ARGB 형식 8888 형식에서의 각 화소는 8 비트의 투명도 A, 8 비트의 R치, 8 비트의 G치, 8 비트의 B치로 구성된다.
6. 1:화소 데이터
동 도면(b)는 그래픽스 플레인(104c, 104d)에 저장되어 있는 화소 데이터를 나타낸다. 본 도면에 나타내는 것과 같이 그래픽스 플레인(104c, 104d)에 저장되어 있는 그래픽스 데이터는 전경 부분에 해당하는 화소 데이터, 배경 부분에 해당하는 화소 데이터로 구성된다. 여기서 배경 부분에 해당하는 기억소자에는 투명색을 나타내는 A치가 저장되어 있으며, 이 부분에는 비디오 플레인과의 합성시에 그래픽스 플레인의 자막이나 비디오 플레인에서의 동화상이 비쳐서 보이게 된다. 한편, 전경 부분에 해당하는 기억소자에는 투명색 이외를 나타내는 R, G, B치가 저장되어 있으며, 이 투명색 이외의 R, G, B치에 의해 묘화 이미지가 그려지게 된다.
플레인 합성기(105)에 의한 플레인 합성시에 투명 화소에 해당하는 부분에는 다른 플레인 메모리의 저장내용이 비쳐서 보이게 되며, 이러한 투명 부분의 존재에 의해 플레인 합성이 가능해진다.
6. 2:플레인 간 카피
플레인 간 카피에 대해서 설명한다. 그래픽스 플레인을 1 플레인 구성에서 2 플레인 구성으로 변경하는 경우, 도 6 (a)에 나타낸 좌측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 그래픽스 플레인에 모두 카피하지 않으면 안 된다. 이 카피는 좌측 눈 용 그래픽스 플레인의 저장내용인 화소 데이터의 집합, 즉, 좌측 눈 용 그래픽스 플레인에 저장되어 있는 1920×1080의 ARGB 형식의 화소 데이터를 모두 우측 눈 용 그래픽스 플레인에 카피한다고 하는 것이다. 왜냐하면 1 플레인 구성에서 2 플레인 구성으로 전환되었을 때 좌측 눈 용 그래픽스 플레인에는 유효한 화소가 존재하는데 반해 우측 눈 용 그래픽스 플레인에는 화소가 전혀 존재하지 않고 무지(無地)의 상태이면 좌측 눈-우측 눈의 시각 불일치가 발생하기 때문이다. 따라서 1 플레인 구성에서 2 플레인 구성으로의 전환시에는 우측 눈 용 그래픽스 플레인의 저장내용이 재생 출력에 제공되기 전에 좌측 눈 용 그래픽스 플레인에 존재하는 1920×1080의 화소 데이터의 모두를 우측 눈 용 그래픽스 플레인에 카피하지 않으면 안 된다. 대조적으로 2 플레인 구성에서 1 플레인 구성으로의 전환시에는 이러한 카피는 불필요해진다. 2D 재생 모드에서는 좌측 눈-우측 눈의 시각 부정합의 발생을 우려하지 않아도 좋기 때문이다. 따라서 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 카피는 그래픽스 플레인의 컨피규레이션을 1 플레인 구성에서 2 플레인 구성으로 변경할 때의 필수적인 처리가 된다.
7:플레인 간 카피의 과정
이하, 플레인 간 카피의 과정을 도 7 (a)~(c)를 참조하면서 설명한다. 도 7 (a)는 우측 눈 용 출력계통의 추가가 이루어지기 전의 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인의 저장내용을 나타낸다. 본 도면에서 좌측 상단에 존재하는 메뉴는 도 3의 입체 시 영상에서의 메뉴와 같고, 이러한 메뉴를 구성하는 화소 데이터가 좌측 눈 용 그래픽스 플레인에 존재하는 것을 알 수 있다. 도 7 (b)는 우측 눈 용 출력계통의 추가가 어떻게 이루어지는가를 모식적으로 나타낸다. 좌측 눈 용 그래픽스 플레인은 1920×1080의 화소 데이터의 집합이며, 이들 중 가로 1920의 화소는 라인 화소를 구성한다. 도 7 (b)의 화살표 cy1, cy2, cy3, cy4, cy5는 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 라인 화소의 카피를 상징적으로 나타내고 있다. 이러한 라인 화소의 카피에 의해 좌측 눈 용 그래픽스 플레인에서의 1920×1080의 화소 데이터는 그대로 우측 눈 용 그래픽스 플레인에 복제되게 된다. 도 7 (c)는 우측 눈 용 출력계통의 추가가 이루어진 후의 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인의 저장내용을 나타낸다. 도 7 (c)에서 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인의 각각에 메뉴가 존재하므로 좌측 눈, 우측 눈의 시각의 불일치는 발생할 수 없다.
8:2D 그래픽스 묘화 요구의 무시
이상이 플레인 간 카피와 그래픽스 플레인에 대한 설명이다. 이어서, 2D 그래픽스 묘화 요구의 무시의 상세에 대하여 설명한다. 2D 그래픽스 묘화 요구의 무시는 1 플레인 구성에서 2 플레인 구성으로의 전환 후에 java.awt.Graphics에 도달한 2D 그래픽스 묘화 요구를 무시한다고 하는 것이다. 컨피규레이션의 전환으로 그래픽스 플레인을 2 플레인 구성으로 할 때 스택에 축적된 2D 그래픽스 묘화 요구를 모두 소거해 버려서 2D 그래픽스 묘화 요구를 예외적으로 종료시킨다고 하는 적극적인 처리를 의미한다. 적극적인 처리를 수반하는“무시”에 의해 java.awt.Graphics가 바이트코드 애플리케이션으로부터 요구를 수신하기 위한 스택에서 2D 그래픽스 묘화 요구는 없어지게 된다. 컨피규레이션 변경 요구 후의 2D 그래픽스 묘화 요구를 무시한다고 하는 처리는 2D 그래픽스 묘화 요구의“무효화”라고도 한다.
1 플레인 구성에서 2 플레인 구성으로의 전환 후에 2D 그래픽스 묘화 요구가 도달함으로써 어떠한 폐해가 발생하는지를 도 8을 참조하면서 설명한다. 도 8은 1 플레인 구성에서 2 플레인 구성으로의 전환 후의 그래픽스 갱신을 나타낸다. 도 8에서는 도면의 좌단을 시간 축의 원점으로 하고, 도면의 우측방향을 시간 축의 정방향, 좌측방향을 시간 축의 부의 방향으로 하고 있다. 그리고 이 시간 축과 직교하는 평면을 그래픽스 플레인이 이루는 X-Y평면으로 하고 있다. 그래픽스의 재생시에는 이 시간 축과 직교하는 X-Y평면에서의 좌표가 표시 좌표로 부여된다. 이후의 설명에서 달리 언급이 없으면 비디오 스트림의 시간 축이나 X-Y좌표계의 표기에는 본 도면과 동일한 표기를 이용한다. 그래픽스 갱신을 위한 묘화 요구가 2D 그래픽스 묘화 요구인지, 3D 그래픽스 묘화 요구인지에 의해 도 8 (a)의 케이스, 도 8 (b)의 케이스가 발생한다.
8. 2:2 플레인 구성으로의 전환 후에서의 3D 그래픽스 묘화 요구에 의한 갱신
도 8 (a)의 케이스는 그래픽스 플레인의 컨피규레이션을 1 플레인 구성에서 2 플레인 구성으로 전환한 후에 3D 그래픽스 묘화 요구에 의한 그래픽스 갱신이 이루어진 케이스를 나타낸다. 이 도 8 (a)의 케이스에서는 도면의 메뉴에서 제시된 음성, 자막, 특전 중 음성이 선택됨으로써 음성의 언어로 영어, 중국어, 일본어의 선택을 접수하는 메뉴가 제시되는 표시 예를 상정하고 있다. 본 도면에서 시점 u1에서는 좌측 눈 용 그래픽스 플레인에 메뉴가 존재한다. 시점 u2에서는 컨피규레이션이 1 플레인 구성에서 2 플레인 구성으로 전환됨으로써 플레인 간 카피가 실행되어 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인의 쌍방에 메뉴가 존재한다. 시점 u3에서는 메뉴의 확정 조작에 따라서 3D 그래픽스 묘화 요구가 발행됨으로써 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인의 저장내용이 갱신된 상태를 나타낸다.
8. 3:2 플레인 구성으로의 전환 후에서의 2D 그래픽스 묘화 요구에 의한 갱신
도 8 (b)는 그래픽스 플레인의 컨피규레이션을 1 플레인 구성에서 2 플레인 구성으로 전환한 후, 2D 그래픽스 묘화 요구에 의한 그래픽스 갱신이 이루어진 케이스를 나타낸다. 이 도 8 (b)의 케이스에서 시점 u1에서는 좌측 눈 용 그래픽스 플레인에 메뉴가 존재한다. 시점 u2에서는 컨피규레이션이 1 플레인 구성에서 2 플레인 구성으로 전환됨으로써 플레인 간 카피가 실행되어 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인의 쌍방에 메뉴가 존재한다. 시점 u3에서는 메뉴의 확정 조작에 따라서 2D 그래픽스 묘화 요구가 발행됨으로써 좌측 눈 용 그래픽스 플레인의 저장내용만이 갱신된 상태를 나타낸다. 좌측 눈 용 그래픽스 플레인의 저장내용이 갱신된 것에 대해, 우측 눈 용 그래픽스 플레인의 저장내용은 미갱신이므로 좌측 눈, 우측 눈의 시각의 부정합이 발생하고 있다.
무시의 대상이 되는 2D 그래픽스 묘화 요구가 어떠한 것인지, 3D 그래픽스 묘화 요구, 컨피규레이션 설정 요구가 어떠한 것인지에 대해서 설명한다.
「2D 그래픽스 묘화 요구」는 제 1 인수, 제 2 인수의 설정이 이루어진 Graphics#drawImage API의 콜 코드로 실현된다. 제 1 인수, 제 2 인수, 제 3 인수가 x1, y1, x2, y2, image1인 경우, Graphics#drawImage(x1, y1, x2, y2, image1);라고 하는 API 콜의 코드를 바이트코드 애플리케이션 중에 기술함으로써 2D 그래픽스 묘화 요구는 이루어진다.
「3D 그래픽스 묘화 요구」는 제 1 인수, 제 2 인수, 제 3 인수, 제 4 인수, 제 5 인수의 설정이 이루어진 StereoGraphics#drawImage API의 콜 코드이다. 인수가 x1, y1, x2, y2, image1, x3, y3, x4, y4, image2인 경우, StereoGraphics#drawImage(x1, y1, x2, y2, image1, x3, y3, x4, y4, image2);라고 하는 API 콜의 코드를 바이트코드 애플리케이션 중에 기술함으로써 3D 그래픽스 묘화 요구는 이루어진다.
「컨피규레이션 설정 요구」는 제 1 인수, 제 2 인수의 설정이 이루어진 SetConfiguraionAPI의 콜 코드이다. 인수가 제 1 인수, 제 2 인수가 width×height, number1인 경우, setConfiguraion(width×height, number1);라고 하는 API 콜의 코드를 바이트코드 애플리케이션 중에 기술함으로써 그래픽스 플레인 메모리의 컨피규레이션 전환을 요구할 수 있다.
이들 2D 그래픽스 묘화 요구인 Graphics#drawImage API의 콜 코드, 3D 그래픽스 묘화 요구인 StereoGraphics#drawImageLR의 콜 코드는 바이트코드 애플리케이션을 구성하는 스레드에 의해 스택에 축적되고, 묘화부의 구성요소인 java.awt.Graphics, StereoGraphics에 공급된다.
이들 Graphics#drawImage API, StereoGraphics#drawImage API, setConfiguraion API라고 하는 API를 콜 하는 경우, 이들 콜에 대응하는 프레임이 멀티 스택의 개개의 스레드에 대응하는 스택 상에 쌓아 올려진다. 그리고 이들의 스택에서의 프레임의 오퍼랜드 스택에는 Graphics#drawImage API 콜의 인수, StereoGraphics#drawImage API 콜의 인수, setConfiguraionAPI 콜의 인수가 쌓아 올려지게 된다.
도 9는 묘화 이미지의 기입에 이용되는 애플리케이션 프로그램 인터페이스를 나타낸다.
9. 1:java.awt.Graphics#drawImage 메소드
도 9 (a)에서의 java.awt.Graphics#drawImage 메소드는 제 1 인수의 위치에서 지정된 묘화 위치에 제 2 인수에서 지정된 묘화 이미지를 기입하는 기능을 호출하기 위한 API이다. 정확하게는 지정된 묘화 이미지를 직사각형에 트리밍 하고 나서 묘화하기 위한 직사각형 위치를 지정하는 인수를 인계하는 것도 가능하지만, 여기에서는 생략한다.
9. 2:StereoGraphics#drawImage 메소드
도 9 (b)에서의 StereoGraphics#drawImage 메소드는 좌측 눈 용 그래픽스 플레인에서 제 1 인수의 위치에서 지정된 직사각형 범위에 제 2 인수에서 지정된 묘화 이미지를 기입하고, 좌측 눈 용 그래픽스 플레인에서 제 3 인수의 위치에서 지정된 직사각형 범위에 제 4 인수에서 지정된 묘화 이미지를 기입하는 기능을 호출하는 API이다.
직사각형 범위는 묘화 처가 되는 직사각형 영역의 좌측 상단의 좌표(x1, y1)와 우측 하단의 좌표(x2, y2) 의 조합으로 표현된다. 또, 묘화 이미지 오브젝트로는 GIF/JPEG/PNG 형식의 데이터구조에서 생성한 인스턴스 외에 BufferedImage를 이용할 수 있다.
앞에서 설명한 것과 같이 java.awt.Graphics#drawImage 메소드에서는 이미지 카피 처리가 규정되어 있으나, 이 처리에서는 1개의 직사각형 영역의 카피 밖에 지정할 수 없다. 한편, StereoGraphics#drawImage 메소드에 의한 좌우 동시 이미지 카피는 묘화 위치와 묘화 이미지의 쌍을 포함한다. 묘화 처 플레인은 각각 좌측 눈 용 그래픽스 플레인(104c)과 우측 눈 용 그래픽스 플레인(105d)에 고정되어 있는 것으로 하고, 그래픽스 플레인의 지정은 StereoGraphics#drawImage 메소드의 인수에서 제외되고 있다.
10:묘화 요구의 구체 예
도 10은 도 9의 애플리케이션 프로그램 인터페이스를 이용하여 규정할 수 있는 묘화 요구의 구체 예이다.
10. 1:java.awt.Graphics#drawImage에 의한 묘화 요구의 구체 예
도 10 (a)는 API의 종별이 java.awt.Graphics#drawImage 메소드인 경우, 묘화 해야 할 직사각형 범위, 묘화 이미지가 구체적으로 어떠한 것으로 설정되는지를 표 형식으로 나타낸다. java.awt.Graphics#drawImage 메소드의 경우, 묘화해야 할 직사각형 범위는 (X1=50, Y1=100), (X2=250, Y2=170)라고 하는 플레인 좌표계에서의 XY좌표로 표현된다. 또, 묘화 이미지는 데이터구조체의 인스턴스에 부여할 수 있는 인스턴스 변수를 이용하여 표현된다. 본 도면의 "비트 맵 이미지 1"이란 가로 200 화소×높이 70 화소로 구성되는 인스턴스에 부여된 인스턴스 변수이다.
10. 2:StereoGraphics#drawImage에 의한 묘화 요구의 구체 예
동 도면(b)는 API의 종별이 StereoGraphics#drawImage 메소드인 경우, 묘화 해야 할 직사각형 범위, 묘화 이미지가 구체적으로 어떠한 것으로 설정되는가를 나타내는 도면이다. API의 종별이 StereoGraphics#drawImage 메소드인 경우, 좌측 눈 용 그래픽스 플레인에서의 묘화해야 할 직사각형 범위는 (X1=50, Y1=100), (X2=255, Y2=170)라고 하는 플레인 좌표계에서의 XY좌표로 표현된다. 또, 묘화 이미지는 데이터구조체의 인스턴스에 부여되는 변수 명을 이용하여 표현된다. 본 도면의 "비트 맵 이미지 1"이란 가로 200 화소×높이 70 화소로 구성되는 인스턴스에 부여된 인스턴스 변수이다.
우측 눈 용 그래픽스 플레인에서의 묘화해야 할 직사각형 범위는 (X3=55, Y3=100), (X4=255, Y4=170)라고 하는 플레인 좌표계에서의 XY좌표로 표현된다. 또, 묘화 이미지는 데이터구조체의 인스턴스에 부여되는 인스턴스 변수를 이용하여 표현된다. 본 도면의 "비트 맵 이미지 2"란 가로 200 화소×높이 70 화소로 구성되는 인스턴스에 부여된 인스턴스 변수이다.
11. 1:2D 그래픽스 묘화 요구에 의한 그래픽스 플레인으로의 기입
도 11 (a)는 도 10 (a)과 같이 인수가 지정된 경우, Graphics#drawImage의 호출에 의해 어떤 기입이 실행되는가를 모식적으로 나타낸다. 도면 중의 앞쪽은 묘화 이미지를 저장한 이미지 메모리를 나타낸다. 도면 중의 안쪽은 서로 중첩된 좌측 눈 용 그래픽스 플레인 및 좌측 눈 용 비디오 플레인의 세트, 우측 눈 용 그래픽스 플레인 및 우측 눈 용 비디오 플레인의 세트를 나타낸다.
도 11 (a)에 의하면 좌측 눈 용 그래픽스 플레인에만 그래픽스가 기입되어 있고, 좌측 눈 용의 그래픽스가 갱신되고 있으나, 우측 눈 용 그래픽스 플레인에는 그래픽스가 미기록이므로 2D 그래픽스 묘화 요구에 의해 좌측 눈 용 그래픽스 플레인만이 갱신되고 있다. 1 플레인 구성에서 2 플레인 구성으로 전환한 후의 2D 그래픽스 묘화 요구에 의해 좌측 눈-우측 눈의 시각의 부정합이 발생하고 있음을 알 수 있다.
11. 2:StereoGraphics#drawImage에 의한 그래픽스 플레인으로의 기입
도 11 (b)는 도 10 (b)와 같이 인수가 지정된 경우, StereoGraphics#drawImage의 호출에 의해 어떤 기입이 실행될지를 모식적으로 나타낸다. 도면 중의 앞쪽은 묘화 이미지를 저장한 이미지 메모리를 나타낸다. 도면 중의 안쪽은 서로 중첩된 좌측 눈 용 그래픽스 플레인 및 좌측 눈 용 비디오 플레인의 세트, 우측 눈 용 그래픽스 플레인 및 우측 눈 용 비디오 플레인의 세트를 나타낸다. 이 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인에 도 10 (b)에서 묘화해야 할 직사각형 범위로 나타낸 구체적인 XY좌표를 플롯 하고 있다.
본 도면에 의하면 좌우의 그래픽스 플레인에서는 X좌표가 약간 어긋나 있으므로 묘화 이미지가 각각 횡 방향으로 조금 어긋난 위치에 카피되게 된다. 도면 중의 화살표 ig1, ig2는 좌우 이미지 메모리에서 좌우의 이미지 메모리로의 카피를 나타낸다. 이 경우는 R화상의 묘화 위치가 L화상의 묘화 위치보다 5 픽셀만큼 오른쪽으로 어긋나 있으므로 시청자에게는 디스플레이의 안으로 들어가 있는 것과 같은 표시로 느껴지게 된다. 좌우 각각의 시점용으로 준비한 다른 비트 맵을 지정하고 있으므로 입체 시로서의 효과는 향상하고 있으나, 묘화 이미지로 동일한 비트 맵을 이용할 수도 있다.
이상과 같은 시각의 부정합을 회피하기 위해서도 2 플레인 구성에서는 2D 그래픽스 묘화 요구를 무시하지 않으면 안 된다.
이상의 1 플레인 구성에서 2 플레인 구성으로 전환할 때의 2D 그래픽스 묘화 요구의 무시, 플레인 간 카피, 우측 눈 용 출력계통의 추가의 시간적 관계는 (1) 2D 그래픽스 묘화 요구의 무시→(2) 플레인 간 카피→(3) 우측 눈 용 출력계통의 추가라고 하는 것이며, 우측 눈 용 출력계통의 추가의 실행 후에 3D 그래픽스 묘화 요구를 수용한다고 하는 것이다. 한편, 2 플레인 구성에서 1 플레인 구성으로 전환할 때의 시간적 관계는 3D 그래픽스 묘화 요구의 수용을 금지하고 나서 우측 눈 용 출력계통을 해방하고, 2D 그래픽스 묘화 요구를 수용한다고 하는 것이 된다. 이들 순서의 시간적 관계를 나타낸 것이 도 12의 타이밍차트이다.
12:각 구성요소의 동작의 시간적 관계
도 12는 바이트코드 애플리케이션, StereoGraphics, java.awt.Graphics, 디바이스 드라이버에 의한 동작의 시간적인 관계를 비디오 스트림 시간 축에 따라서 나타내는 타이밍차트이다. 제 1 단째는 바이트코드 애플리케이션을 나타내고, 제 2 단째는 StereoGraphics를 나타낸다. 제 3 단째는 java.awt.Graphics를 나타내고, 제 4 단째는 디바이스 드라이버를 나타낸다. 제 5 단째는 비디오 스트림의 시간 축에서 1/23.976초,1/59.94초라고 하는 프레임 기간에 연속적으로 표시되는 복수의 픽처를 나타낸다. 제 6 단째는 비디오 스트림의 시간 축을 나타낸다.
12. 1:1 플레인에서 2 플레인으로의 컨피규레이션 전환
도면 중의 별표 기호 1이 부여된 화살표는 제 2 인수를“2 플레인”으로 한 setConfiguraion의 콜을 상징적으로 나타내고 있다. 동그라미 기호 1, 2, 3, 4는 인수를 2 플레인으로 한 setConfiguraion의 콜 후에 어떠한 순서로 java.awt.Graphics에 의한 무효화, 디바이스 드라이버에 의한 카피, StereoGraphics에 의한 3D 그래픽스 묘화 요구의 수용이 실행되는가를 나타낸다. 이 동그라미 기호의 번호와 같이 첫 번째로 java.awt.Graphics에 의한 Graphics#drawImage의 무효화가 이루어지고, 두 번째로 디바이스 드라이버에 의한 그래픽스 플레인의 카피가, 세 번째로 디바이스 드라이버에 의한 우측 눈 용 출력계통의 출력이 이루어지고 있음을 알 수 있다. 이들 처리가 완료한 후, 네 번째로 StereoGraphics가 기동되어 StereoGraphics#drawImage의 수용이 개시되고 있음을 알 수 있다.
제 2 단째에서의 무효화의 개시시점 t0는 setConfiguraion API의 콜이 이루어진 시점의 직후이다. 플레인 메모리의 카피의 개시시점(t1)은 2D 그래픽스 묘화 요구의 무효화가 완료한 시점 직후이다. 만일, 카피하는 도중에 좌측 눈 용 그래픽스 플레인의 내용이 java.awt.Graphics에 의해 재기록되면 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인에서 저장내용의 불일치가 발생하여 양 눈 시각의 불일치가 발생한다. 그러나, 본 도면에 나타내는 것과 같이 java.awt.Graphics가 2D 그래픽스 묘화의 요구를 모두 무시하고 나서 그래픽스 플레인의 카피를 실시하므로, 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인의 저장내용의 불일치는 발생할 수 없다.
이상과 같이, 디바이스 드라이버의 처리 중 특징적인 것은 2D 그래픽스 묘화 요구의 무시를 완료하고 나서 상기 카피를 실행하는 점에 있다. 즉, 카피하는 도중에 좌측 눈 용 그래픽스 플레인의 내용이 java.awt.Graphics에 의해 재기록되면 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인에서 저장내용의 불일치가 발생하여 양 눈 시각의 불일치가 발생한다. 그러나, java.awt.Graphics가 2D 그래픽스 묘화 요구를 모두 스택에서 소멸시키고 나서 디바이스 드라이버가 그래픽스 플레인의 카피를 실행하면 저장내용의 불일치는 발생할 수 없다.
우측 눈 용 출력계통의 추가 시점 (t2)는 플레인 카피가 완료한 시점 직후이다. 제 5 단째에서는 이 출력계통의 전환 직후에 영상출력이 평면 시에서 입체 시로 전환되어 있음을 알 수 있다.
StereoGraphics의 기동 시점 (t3)은 우측 눈 용 출력계통의 추가 시점 직후이다. StereoGraphics가 기동되었으므로 이 시점 (t3) 이후에 입체 시 그래픽스의 갱신이 가능해진다. 이상의 타이밍차트로부터도 명백한 것과 같이 setConfiguraion의 콜 후, 즉시 3D 그래픽스 묘화 요구에 의한 StereoGraphics#drawImage의 묘화가 가능해지는 것은 아니다. 2D 그래픽스 묘화 요구의 무시, 그래픽스 플레인의 카피, 출력계통의 전환이라고 하는 일련의 처리를 실행하기 위한 지연시간이 발생한다.
12. 2:2 플레인에서 1 플레인으로의 컨피규레이션 전환
도면 중의 별표 기호 2가 부여된 화살표는 제 2 인수를“1 플레인”으로 한 setConfiguraion의 콜을 상징적으로 나타내고 있다. 동그라미 기호 5, 6, 7은 인수를 1 플레인으로 한 SetConfiguraion의 콜 후에 어떠한 순서로 java.awt.Graphics에 의한 무효화, 디바이스 드라이버에 의한 카피, StereoGraphics에 의한 3D 그래픽스 묘화 요구의 수용이 실행되는가를 나타낸다. 이 동그라미 기호의 번호와 같이 첫 번째로 StereoGraphics의 동작이 종료하고, 두 번째로 출력계통이 좌측 눈 용의 출력계통에만 되며, 세 번째로 java.awt.Graphics가 Graphics#drawImage의 콜의 수용을 개시하고 있음을 알 수 있다.
제 2 단째에서의 StereoGraphics의 종료시점(t4)은 setConfiguraion 콜이 이루어진 시점의 직후이다. StereoGraphics#drawImage에 따라서 3D 그래픽스 묘화를 실행하는 StereoGraphics는 setConfiguraion의 콜에 의해 1 플레인에서 2 플레인으로의 그래픽스 플레인 전환이 명해진 경우에만 기동되고, 재차의 setConfiguraion의 콜에 의해 그래픽스 플레인이 2 플레인에서 1 플레인으로 전환된 경우에 즉시 동작을 종료하므로 그 동작 기간은 매우 제한되어 있다. 따라서 2D 재생 모드에 StereoGraphics가 동작하는 것에 의한 문제가 발생할 일은 없다.
제 4 단째에서의 우측 눈 용 출력계통의 해방 시점(t4)은 StereoGraphics의 동작이 종료한 시점 직후이다. 제 5 단째에서는 이 출력계통의 전환 직후에 영상출력이 평면 시에서 입체 시로 전환되어 있음을 알 수 있다.
제 3 단째에서의 Graphics#drawImage의 접수 시점(t5)은 2 플레인에서 1 플레인으로의 출력계통이 완료한 시점의 직후이다. java.awt.Graphics가 2D 그래픽스 묘화의 요구를 접수하므로, 이 시점 이후에 2D 그래픽스의 갱신이 가능해진다.
카피의 실행 중이나 출력계통의 전환 중에는 그래픽스 플레인의 저장내용을 출력에 제공하지 않으므로 재생장치로부터의 출력 내용이 정당한 것임이 보장된다. 이상이 java.awt.Graphics, 디바이스 드라이버, StereoGraphics의 시간적 관계에 대한 설명이다.
13:대비 설명
재생장치의 처리에서 가장 특징적인 것은 2D 그래픽스 묘화의 무효화이다. 이 무효화를 실행하는 것과 하지 않는 것에서 재생장치에 의해 재생되는 입체 시 영상이 어떻게 다른지의 대비 설명을 한다. 이 대비 설명에서는 도 13과 같은 사례를 제재로 선택한다.
13. 1:상정하는 사례
도 13 (a)는 콘텐츠 제작자가 이상적이라고 생각하고 있는 그래픽스의 갱신의 과정이다. 본 도면에서의 aaa는 도 3에 나타낸 음성, 자막, 특전의 선택을 접수하는 메뉴를 표기한 것이고, bbb는 도 7에 나타낸 영어, 중국어, 일본어의 선택을 접수하는 메뉴를 표기한 것이다. 이 갱신의 과정은 4개의 프레임 f, f+1, f+2, f+3 중, 프레임 f에서 Graphics#drawImage API의 콜에 의해 aaa를 기입하고, 프레임 f+1에서 Graphics#drawImage API의 콜에 의해 bbb를 기입하며, 프레임 f+2에서 그래픽스 플레인을 2 플레인화하고, 프레임 f+3에서 2 플레인화 된 그래픽스 플레인의 각각에 bbb를 기입한다고 하는 것이다. 이러한 그래픽스 갱신을 실현하기 위해, 프레임 f, f+1에서는 Graphics#drawImage, 프레임 f+2에서는 setConfiguraion, 프레임 f+3에서는 StereoGraphics#drawImage를 발행하려고 한다.
바이트코드 애플리케이션에서 Graphics#drawImage의 콜 코드, setConfiguraion의 콜 코드, StereoGraphics#drawImage의 콜 코드는 2D 그래픽스 묘화 요구→setConfiguraion→StereoGraphics#drawImage라고 하는 순서로 나열되어 있으나, GraphicsDrawImage의 콜 코드에 해당하는 바이트코드, setConfiguraion의 콜 코드에 해당하는 바이트코드, StereoGraphics#drawImage의 콜 코드에 해당하는 바이트코드가 멀티 슬레드에서의 3개의 스레드에 의해 병렬 실행되었으므로 이들 콜 코드가 setConfiguraion→Graphics#drawImage→StereoGraphics#drawImage라고 하는 순서로 발행된 것으로 한다.
도 13 (b)는 도 13 (a)의 그래픽스 갱신을 위해서 바이트코드 애플리케이션이 발한 3개의 콜 코드를 나타낸다. 본 도면의 제 2 단째는 스레드 간 통신을 위한 스택이며, 이 중에 setConfiguraion, Graphics#drawImage, StereoGraphics#drawImage라고 하는 순서로 재나열된 3개의 코드가 존재한다. 본 도면의 제 1 단째는 바이트코드 애플리케이션을 나타내고, 제 4 단째는 플레인 메모리를 나타낸다. 제 3 단째는 묘화부의 구성요소인 java.awt.Graphics, StereoGraphics, 디바이스 드라이버를 나타낸다.
14. 1:케이스 1 (무효화를 실행하고 나서 플레인 구성의 전환을 실행하는 경우)
첫 번째로 무효화를 실행하지 않고 플레인 구성의 전환을 실행하려고 하는 케이스를 설명한다.
도 14는 무효화를 실행하지 않고 플레인 구성의 전환을 실행하려고 하는 경우, 스택에서의 복수의 코드가 어떻게 처리되는가를 연속 사진적인 표기로 나타내는 도면이다. 스택에서의 코드가 처리되는 과정은 4개의 스테이지로 이루어지고, 도 14 (a)는 최초의 스테이지, 도 14 (b)는 2번째의 스테이지, 도 14 (c)는 3번째의 스테이지, 도 14 (d)는 4번째의 스테이지를 나타낸다. 이들 도 14 (a)~(d)에서는 앞의 도면과 동일한 표기로 스택, java.awt.Graphics, StereoGraphics, 디바이스 드라이버, 플레인 메모리를 묘화하고 있다.
도 14 (a) 도면 중의 동그라미 기호 2가 부여된 화살표는 플레인 메모리의 카피를 상징적으로 나타내고 있다. 도 14 (b)에서의 동그라미 기호 3이 부여된 화살표는 출력계통의 전환을 상징적으로 나타내고 있다. 도 14 (c)에서의 도면 중의 동그라미 기호 8이 부여된 화살표는 Graphics#drawImage에 의한 bbb의 기입을 상징적으로 나타내고 있다. 도 14 (d)에서의 동그라미 기호 9가 부여된 화살표는 StereoGraphics#drawImage에 의한 bbb의 기입을 상징적으로 나타내고 있다.
15. 케이스 1에서 재생되는 입체 시 영상
도 15는 도 14 (c)의 기입에 의해 재생되게 되는 입체 시 영상을 나타낸다. 도 14 (c)에서는 우측 눈 그래픽스 플레인과 좌측 눈 그래픽스 플레인이 다른 것이 되어 있으므로, 우측 눈 용의 영상과 좌측 눈 용의 영상에서 불일치가 발생하고 있다. 우측 눈-좌측 눈의 시각의 불일치는 StereoGraphics에 의한 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인의 갱신이 이루어질 때까지 화면상에 남으므로 이러한 불일치가 사용자에게 큰 불쾌감을 준다.
16. 케이스 2(무효화를 실행하고 나서 모드 전환을 실행하는 케이스)
도 16은 무효화를 실행하고 나서 모드 전환을 실행하려고 하는 경우, 스택에 서의 복수의 API 콜 코드가 어떻게 처리되는가를 연속 사진적인 표기로 나타낸다. 스택에서의 코드가 처리되는 과정은 도 14와 마찬가지로 4개의 스테이지로 이루어지고, 도 16 (a)는 최초의 스테이지, 도 16 (b)는 2번째의 스테이지, 도 16 (c)는 3번째의 스테이지, 도 16 (d)은 4번째의 스테이지를 나타낸다. 이들 도 16 (a)~(d)에서는 도 13 (b)와 동일한 표기로 스택, java.awt.Graphics, StereoGraphics, 디바이스 드라이버, 플레인 메모리를 묘화하고 있다.
도 16 (a)에서 동그라미 기호 1이 부여된 화살표는 무효화에 의한 2D 그래픽스 묘화 요구 API의 콜 코드의 소거를 나타낸다. 도면 중의 ×표는 스택에 저장된 3개의 콜 코드 중, bbb를 기입하는 취지의 Graphics#drawImage가 소거됨으로써 후속하는 setConfiguraion의 콜 코드의 순위가 1개 위로 올라가고 있음을 모식적으로 나타내고 있다.
도 16 (b)에서 동그라미 기호 2가 부여된 화살표는 플레인 메모리의 카피를 상징적으로 나타내고 있다. 도 16 (a)는 java.awt.Graphics가 2D 그래픽스 묘화의 요구를 모두 스택에서 소멸시키고 나서, 도 16 (b)에서의 그래픽스 플레인의 카피를 실행하고 있으므로, 좌측 눈 및 우측 눈의 시각상의 불일치는 발생할 수 없다. 도 16 (c)에서 동그라미 기호 3이 부여된 화살표는 우측 눈 용 출력계통의 추가를 상징적으로 나타내고 있다. 도 16 (d)에서 동그라미 기호 9가 부여된 화살표는 StereoGraphics#drawImage에 의한 bbb의 기입을 상징적으로 나타내고 있다.
17. 케이스 2에서 재생되는 입체 시 영상
도 17은 도 16 (d)의 기입에 의해 재생되게 되는 입체 시 영상을 나타낸다. 우측 눈 그래픽스 플레인과 좌측 눈 그래픽스 플레인이 다르므로 불일치가 발생하지 않는다.
이상과 같이 본 실시형태에 의하면 그래픽스 플레인의 카피에 앞서 2D 그래픽스 묘화 요구를 무효화하므로, 좌측 눈 용 그래픽스 플레인에서 그래픽스 플레인으로의 화소 데이터 카피가 이루어진 후에 좌측 눈 용 그래픽스 플레인에 새로운 그래픽스가 기입되는 일은 없다. 2D 그래픽스 묘화 요구가 지연되어서 java.awt.Graphics에 도달했다고 하더라도 그 2D 그래픽스 묘화 요구에 따라서 그래픽스가 표시되는 일은 있을 수 없으며, 두 눈의 시각의 불일치가 생길 일은 없다.
(제 2 실시형태)
제 1 실시형태에서는 스택 상에 저장된 2D 그래픽스 묘화 요구 API의 콜 코드를 소거함으로써 2D 그래픽스 묘화의 무효화를 실현했지만, 2D 그래픽스 묘화 요구의 무시는 컨피규레이션의 전환에 의해 그래픽스 플레인이 2 플레인 구성으로 되어 있는 동안에만 2D 그래픽스 묘화 요구를 무 처리로 리턴하도록 2D 그래픽스 묘화 처리 측을 변경하는, 즉, 컨피규레이션 변경시에서의 2D 그래픽스 묘화 요구의 "일시적인 무효화"도 포함한다.
따라서 본 실시형태에서는 그래픽스 플레인이 2 플레인 구성으로 되어 있는 동안에만 2D 그래픽스 묘화 요구를 무 처리로 리턴하도록 하는 형태의 무시를 2D 그래픽스 묘화 금지 플래그의 실장에 의해 실현한다.
2D 그래픽스 묘화 금지 플래그는 2D 그래픽스 묘화 요구를 무시할지, 2D 그래픽스 묘화 요구를 접수할지의 선택을 Graphics#drawImage에 명하기 위한 것이다. 이 2D 그래픽스 묘화 금지 플래그의 추가에 수반하는 Graphics#drawImage의 개량으로는 그 처리부의 선두에 2D 그래픽스 묘화 금지 플래그를 참조하는 처리를 포함한다. 이 참조 처리란 만약 2D 그래픽스 묘화 금지 플래그가 온의 경우는 Graphics#drawImage의 처리를 실행하지 않고 즉시 예외 처리(전형적으로는 무 처리)로 리턴하고, 2D 그래픽스 묘화 금지 플래그가 오프이면 Graphics#drawImage의 처리를 실행한다고 하는 것이다.
일방의 setConfiguration의 개량으로는 setConfiguration이 콜 되어서 1 플레인 구성에서 2 플레인 구성으로의 전환이 명해진 경우 2D 그래픽스 묘화 금지 플래그를 오프에서 온으로 전환한다. 이렇게 함으로써 그래픽스 플레인이 2 플레인 구성으로 설정되어 있는 동안 Graphics#drawImage는 스택에서의 2D 그래픽스 묘화 요구를 처리하는 일 없이 예외 종료하고, 그 호출 원의 애플리케이션으로 리턴한다.
반대로, setConfiguration이 콜 되어서 2 플레인 구성에서 1 플레인 구성으로의 전환이 명해진 경우 2D 그래픽스 묘화 금지 플래그를 온에서 오프로 전환한다. 이렇게 함으로써 그래픽스 플레인이 1 플레인 구성으로 설정되어 있는 동안 Graphics#drawImage는 스택에서의 2D 그래픽스 묘화 요구를 접수하고, 2D 그래픽스의 묘화를 실행하게 된다.
이상과 같이 본 실시형태에 의하면 그래픽스 플레인이 2 플레인 구성으로 되어 있는 동안에만 2D 그래픽스 묘화 요구를 무 처리로 리턴하도록 2D 그래픽스 묘화 처리 측을 변경한다고 하는 형태에 의해 2D 그래픽스 묘화 요구의 무시를 실현하므로, 2D 그래픽스 묘화 요구의 무시를 간이한 처리로 실현할 수 있다. 이러한 간이화에 의해 2D 그래픽스 묘화 요구의 무시의 실장이 간단해진다.
(제 3 실시형태)
제 3 실시형태는 본원의 우선권 주장의 기초 출원에서 원서에 첨부한 명세서에 기재되어 있는 실시형태와 실질적으로 동일한 내용의 실시형태이다.
본 실시형태에서 입체 표시를 실행하는 대상 영상은 BD-ROM 기록매체에 기록되어 있는 것을 재생해서 시청하는 것을 전제로 한다. BD-ROM 규격에서는 BD-ROM 규격에 준거한 형식으로 로컬 스토리지 내 혹은 리무버블 미디어에 기록되어 있는 데이터를 재생하는 것도 가능하다. 이것들을 포함해서 재생장치(200)에 의해 입체 시 영상 표시가 실시되는 형태를 설명한다.
18. BD-ROM의 내부 구성
이어서. 재생장치(200)가 재생의 대상으로 하고 있는 BD-ROM(100)의 내부 구성에 대해서 설명한다. 도 18은 BD-ROM(100)의 내부 구성을 나타내는 도면이다.
본 도면의 제 4 단째에 BD-ROM를 나타내고, 제 3 단째에 BD-ROM상의 트랙을 나타낸다. 본 도면의 트랙은 BD-ROM의 내주에서 외주에 걸쳐서 나선 형상으로 형성되어 있는 트랙을 횡 방향으로 연장하여 묘화하고 있다. 이 트랙은 리드인 영역과 볼륨 영역과 리드 아웃 영역으로 이루어진다. 또, 리드 인의 안쪽에는 BCA(Burst Cutting Area)로 불리는 영역이 있으며, 이 영역에서 정보를 판독할 수 있는 주체는 제한되어 있으므로 예를 들어 저작권 보호기술 등에 이용된다.
본 도면의 볼륨 영역은 물리 층, 파일시스템 층, 응용 층이라고 하는 레이어 모델을 가지며, 볼륨영역에는 파일시스템 정보(볼륨)를 선두로 영상 데이터 등의 애플리케이션 데이터가 기록되어 있다. 파일 시스템이란 UDF나 ISO9660 등의 것이며, 통상의 PC와 동일하게 기록되어 있는 논리데이터를 디렉터리, 파일구조를 사용하여 판독하는 것이 가능하게 되어 있으며, 255 문자의 파일명, 디렉터리 명을 판독할 수 있다.
디렉터리 구조를 이용하여 BD-ROM의 응용 층 포맷(애플리케이션 포맷)을 표현하면 도면 중의 제 1 단째와 같이 된다. 이 제 1 단째에서 BD-ROM에는 Root 디렉터리의 아래에 CERTIFICATE 디렉터리 및 BDMV 디렉터리가 있다.
BDMV 디렉터리는 BD-ROM에서 취급하는 AV콘텐츠나 관리정보 등의 데이터가 기록되어 있는 디렉터리이며, BDMV 디렉터리의 아래에는 PLAYLIST 디렉터리, CLIPINF 디렉터리, STREAM 디렉터리, BDJO 디렉터리, JAR 디렉터리, META 디렉터리라고 불리는 6개의 서브 디렉터리가 존재하며, INDEX.BDMV과 MovieObject.bdmv의 2 종류의 파일이 배치되어 있다.
STREAM 디렉터리에는 소위 트랜스포트 스트림 본체가 되는 파일을 저장하고 있는 디렉터리이며, 확장자 "m2ts"가 부여된 파일(000001. m2ts)이 존재한다.
PLAYLIST 디렉터리에는 확장자 "mpls"가 부여된 파일(000001. mpls)이 존재한다.
CLIPINF 디렉터리에는, 확장자"clpi"가 부여된 파일(000001. clpi)이 존재한다.
BDJO 디렉터리에는 확장자 "bdjo"가 부여된 파일(XXXXX.bdjo)이 존재한다.
JAR 디렉터리에는 확장자 "jar"가 부여된 파일(YYYYY.jar)이 존재한다.
META 디렉터리에는 XML 파일(ZZZZZ.xml)이 존재한다.
이하, 이들 파일에 대해서 설명한다.
18. 1:AVClip
먼저 처음에 확장자 "m2ts"가 부여된 파일에 대해서 설명한다. 확장자 "m2ts"가 부여된 파일은 MPEG-TS(TransportStream) 형식의 디지털 AV스트림의 스트림 파일이며, 비디오 스트림, 1개 이상의 오디오 스트림, 대화적인 그래픽스 스트림, 그래픽스 자막 스트림 등을 다중화함으로써 얻을 수 있다. 비디오 스트림은 영화의 동화상 부분을, 오디오 스트림은 영화의 음성 부분을 각각 나타내고 있다. 스트림 파일에는 2D 전용의 것과 2D-3D 겸용의 것이 있다. 2D 전용의 스트림 파일은 통상의 트랜스포트 스트림 형식이며, 2D-3D 겸용의 스트림 파일은 입체 시 인터리브드 스트림 파일의 파일 형식을 갖는다.
입체 시 인터리브드 스트림 파일 형식이란 베이스 뷰 비디오 스트림을 포함하는 메인의 트랜스포트 스트림(메인 TS)의 익스텐트와, 디펜던트 뷰 비디오 스트림을 포함하는 서브 트랜스포트 스트림(서브 TS)의 익스텐트를 인터리브 형식으로 교호로 배치한 것이다.
18. 2:PlayList 정보
확장자 "mpls"가 부여된 파일은 플레이리스트(이하, PL라고도 기재한다) 정보를 저장한 플레이리스트 정보 파일이다. 「플레이리스트」란 트랜스포트 스트림(TS)의 시간 축 상에서 재생 구간을 규정하는 동시에, 이 재생 구간끼리의 재생 순서를 논리적으로 지정함으로써 규정되는 재생 경로이며, TS 중 어느 것을 어느 부분만큼 재생하고, 어떠한 순서로 씬 전개를 해 가는지를 규정하는 역할을 갖는다. 플레이리스트 정보는 이러한 플레이리스트의 「형태」를 정의한다. 플레이리스트 정보에 의해 정의되는 재생 경로는 소위 「멀티 패스」이다. 멀티 패스는 주가 되는 TS에 대해서 정의된 재생 경로(메인 패스)와, 종이 되는 TS에 대해서 정의된 재생 경로(서브 파스)를 묶은 것이다. 이 멀티 패스에서 베이스 뷰 비디오 스트림의 재생 경로를 규정하고, 서브 패스에서 디펜던트 뷰 비디오 스트림의 재생 경로를 규정하면 입체 시를 재생하기 위한 비디오 스트림의 조합을 매우 적합하게 규정할 수 있다.
오브젝트 지향 프로그래밍 언어 베이스의 애플리케이션이 이 플레이리스트 정보를 재생하는 프레임 워크 플레이어 인스턴스의 생성을 명함으로써 멀티 패스에 의한 AV재생을 개시하게 할 수 있다. 프레임 워크 플레이어 인스턴스란 미디어 프레임 워크 플레이어 클래스를 기초로 가상 머신의 히프메모리 상에 생성되는 실제의 데이터이다. 또, 커멘드 베이스의 프로그램이 이 플레이리스트 정보를 인수로 지정한 재생 커멘드를 발행함으로써 멀티 패스에 의한 재생을 개시할 수도 있다.
18. 3:Clip 정보
확장자 "clpi"가 부여된 파일은 스트림 파일의 각각에 1 대 1로 대응하는 스트림 정보 파일이다. 스트림 정보 파일은 스트림 파일에서의 트랜스포트 스트림 내의 임의의 소스 패킷에 대한 랜덤 액세스나 다른 트랜스포트 스트림과의 중단 없는 재생을 보장한다. 이 스트림 정보 파일을 통함으로써 스트림 파일은 「AVClip」으로 관리되게 된다. 스트림 정보 파일은 AVClip에서의 스트림의 부호화 형식, 프레임 레이트, 비트 레이트, 해상도 등의 정보나, GOP의 선두 위치의 소스 패킷 번호를 프레임 기간의 프레젠테이션 타임 스탬프와 대응시켜서 나타내는 기본 엔트리 맵을 갖고 있으므로, 스트림 파일의 액세스에 앞서 이 스트림 정보 파일을 메모리에 로드해 두면 액세스하려고 하는 스트림 파일 중의 트랜스포트 스트림이 어떠한 것인지를 파악할 수 있으므로, 랜덤 액세스의 실행을 보장할 수 있다. 스트림 정보 파일에는 2D 스트림 정보 파일과 3D 스트림 정보 파일이 있으며, 3D 스트림 정보 파일은 베이스 뷰를 위한 클립 정보(클립 베이스 정보)와 디펜던트 뷰를 위한 클립 정보(클립 디펜던트 정보)를 포함한다.
클립 베이스 정보는 베이스 뷰를 위한 익스텐트 출발점 정보를 포함하고, 클립 디펜던트 정보는 디펜던트 뷰를 위한 익스텐트 출발점 정보를 포함한다. 베이스 뷰를 위한 익스텐트 출발점 정보는 복수의 소스 패킷 번호로 구성된다. 각각의 소스 패킷 번호는 메인 TS에서의 익스텐트의 분할 위치가 몇 패킷 째에 존재하는가를 나타낸다. 디펜던트 뷰를 위한 익스텐트 출발점 정보도 복수의 소스 패킷 번호로 구성되며, 서브 TS에서의 분할 위치가 어느 패킷에 존재하는가를 나타낸다. 이들 익스텐트 출발점 정보를 이용함으로써 입체 시 인터리브드 스트림 파일은 메인 TS와 서브 TS로 분할되게 된다. 이상의 Clip 정보 및 PL 정보는 "정적 시나리오"로 분류된다.
18. 4:BD-J오브젝트
이어서, 확장자 BDJO를 부여한 파일에 대해서 설명한다. BD-ROM 규격에서는 영상의 재생 중에 애플리케이션 프로그램을 실행함으로써 동적인 재생 제어나 재생 중의 사용자와의 인터랙션 등, 영상의 재생을 실행하면서 임의의 계산기 처리를 실행하게 하는 것이 가능하다. BD-ROM에서는 이 애플리케이션 플랫폼 규격으로 Java(등록상표)가 이용되고 있으며, BD-ROM 규격상에서 채용되는 Java(등록상표) 플랫폼은 BD-Java, 혹은 BD-J로 불리며, 그 실행 애플리케이션은 BD-Java 애플리케이션, 혹은 BD-J 애플리케이션로 불린다.
확장자 BDJO를 부여한 파일은 BD-J오브젝트를 저장한 파일이다. BD-J오브젝트란 BD-Java 애플리케이션을 실행할 때에 사용되는 각종의 정보를 포함하고 있다. 정보 중에는 재생 타이틀과의 관련부여, 후술하는 JAR 파일과의 관련부여, PlayList 정보에 대한 참조치, 애플리케이션 관리테이블 등이 포함된다.
애플리케이션 관리테이블이란 실행하는 BD-J 애플리케이션의 상세 정보, 즉 애플리케이션의 명칭을 나타내는 문자열, 애플리케이션에 대응 짓는 아이콘의 소재를 가리키는 아이콘 로케이터 등의 정보를 애플리케이션 단위마다 기록하고 있는 정보이다.
18. 5:JAR 파일
BD-J 애플리케이션의 프로그램 정보이며, 이것을 아카이브 한 형식이 JAR 파일이다. BD-J 애플리케이션은 가상 머신의 히프 영역(워크 메모리라고도 한다)에 로드되는 Java(등록상표) 프로그램의 실행시 형식인 1개 이상의 클래스 파일, 및 프로그램의 실행시에 사용되는 각종의 데이터로 구성된다. JAR 파일은 이들 정보를 포함하는 파일 형식이다.
18. 6:메타 파일
META 디렉터리에 저장된 메타 파일(ZZZZZ.xml)에는 디스크에 들어가 있는 영상 작품에 관한 다양한 정보가 저장되어 있다. 메타 파일에 저장되어 있는 정보로는 디스크의 디스크 명 및 화상, 디스크의 작성 주체자의 명칭의 정보, 각 타이틀에 관한 타이틀 명 등이 있다.
이상이 BDMV 디렉터리의 설명이다.
CERTIFICATE 디렉터리의 아래에는 디스크의 루트 증명서의 파일(app.discroot.cert)이 존재한다.
이는 BD-J 애플리케이션을 실행할 때, 애플리케이션이 개찬되어 있지 않은지, 및 애플리케이션의 신원 확인을 행하는 프로세스(이하, 서명 검증이라고 한다)에 이용되는 디지털 증명서의 정보가 포함되어 있다.
이상이 BD-ROM(100)에 대한 설명이다. 메타 파일 등 일부의 파일은 BD-ROM 규격에서는 반드시 필수로 여겨지지 않고 있으며, 일부의 파일이 존재하고 있지 않아도 BD-ROM(100)은 영상 기록매체로서 BD-ROM 규격하에 재생이 가능하다.
19. BD-ROM 재생장치의 내부 구성
다음에 본 실시형태에 관한 재생장치(200)의 상세에 대하여 설명한다.
도 19는 재생장치의 내부 구성을 나타내는 블록도이다. 본 도면에 나타내는 것과 같이 재생장치는 BD-ROM 드라이브(1), 트랙 버퍼(2), 디 멀티플렉서(3), 비디오 디코더(4), 좌측 눈 용 비디오 플레인(5), 우측 눈 용 비디오 플레인(6), 이미지 메모리(7), 이미지 디코더(8), 좌측 눈 용 그래픽스 플레인(9), 우측 눈 용 그래픽스 플레인(10), 정적 시나리오 메모리(11), 동적 시나리오 메모리(12), 제어부(13), HDMV 모듈(14), BD-J 모듈(15), 모드 관리 모듈(16), 디스패쳐(17), AV 재생 라이브러리(18), 그래픽스 디코더(19), 플레인 합성기(20), UO 탐지 모듈(21), 렌더링 엔진(22), 네트워크 인터페이스(23), 로컬 스토리지(24), 가상파일시스템(25), 오디오 디코더(26), 리무버블 미디어(27), 좌측 눈 용 백그라운드 플레인(28), 우측 눈 용 백그라운드 플레인(29), 좌측 눈 용 자막 플레인(30), 우측 눈 용 자막 플레인(31)으로 구성된다. 제 1 실시형태에서의 플레인 메모리의 레이어 모델은 그래픽스 플레인-비디오 플레인이라고 하는 단순한 모델을 채용했지만, 제 3 실시형태에서는 그래픽스 플레인-자막 플레인-비디오 플레인-백그라운드 그래픽스 플레인이라고 하는 모델을 재생장치의 내부 구성으로 채용한다.
19. 1:BD 드라이브(1)
BD 드라이브(1)는 BD-ROM의 로딩/이젝트를 실시하고, BD-ROM에 대한 액세스를 실행한다.
19. 2:트랙 버퍼(2)
트랙 버퍼(2)는 FIFO 메모리이며, BD-ROM으로부터 판독된 ACCESS UNIT이 선입선출식으로 저장된다.
19. 3:디 멀티플렉서(3)
디 멀티플렉서(3)는 가상파일시스템(25)을 통해서 BD-ROM 드라이브(1)에 로딩되어 있는 BD-ROM, 또는 로컬 스토리지(24) 상, 또는 리무버블 미디어(27)에 보존되어 있는 트랜스포트 스트림의 다중 분리를 실행한다. 디 멀티플렉서(3)에 의한 다중 분리는 TS패킷을 PES 패킷으로 변환한다고 하는 변환처리를 포함한다. 다중 분리에 의해 GOP를 구성하는 비디오 프레임, 오디오 프레임, 그래픽스 스트림, 자막 스트림을 얻을 수 있다. GOP를 구성하는 비디오 프레임은 비디오 디코더(4)에 출력되고, GOP에 다중화되고 있는 오디오 프레임은 오디오 디코더(26)에 출력된다. 마찬가지로 다중 분리에 의해 얻어지는 그래픽스 스트림은 그래픽스 디코더(19)에 출력된다.
19. 4:비디오 디코더(4)
비디오 디코더(4)는 디 멀티플렉서(3)로부터 출력된 비디오 프레임을 복호 하여 비 압축 형식의 픽처를 좌측 눈 용 비디오 플레인(5) 및 우측 눈 용 비디오 플레인(6)에 기입한다.
19. 5-6:좌측 눈 용 비디오 플레인(5), 우측 눈 용 비디오 플레인(6)
좌측 눈 용 비디오 플레인(5) 및 우측 눈 용 비디오 플레인(6)은 비 압축 형식의 픽처를 저장하기 위한 메모리이며, 각각 좌측 눈 용의 비디오의 픽처, 우측 눈 용의 비디오의 픽처가 저장된다. 이것들은 HAVi 디바이스에서의 HVideoDevice에 해당한다. BD-J 애플리케이션에 의해 비디오 재생 요구 명령이 발행되면 비디오 디코더(4)가 계속적으로 좌측 눈 용 비디오 플레인(5) 및 우측 눈 용 비디오 플레인(6)을 재기록함으로써 입체 시 비디오 스트림의 재생을 실현할 수 있다.
19. 7:이미지 메모리(7)
이미지 메모리(7)는 가상파일시스템(25)으로부터 판독되고, 이미지 디코더에 의해 전개된 화상 이미지를 저장하는 버퍼이다. 또, 전개된 화상 이미지 이외에 BD-J 애플리케이션에 의해 사용되는 범용적인 이미지 버퍼로도 이용할 수 있다.
19. 8:이미지 디코더(8)
이미지 디코더(8)는 압축 상태의 화상 이미지를 가상파일시스템으로부터 판독하고, 렌더링 엔진(22)이 고속으로 카피 처리나 α연산 처리를 실행할 수 있는 것과 같은 상태로 이미지 메모리에 기입한다. 구체적으로는 예를 들어 ARGB8888 형식으로 기입하는 구성을 들 수 있다.
19. 9-10:좌측 눈 용 그래픽스 플레인(9), 우측 눈 용 그래픽스 플레인(10)
좌측 눈 용 그래픽스 플레인(9) 및 우측 눈 용 그래픽스 플레인(10)은 비디오 플레인 및 자막 플레인 상에 중첩시켜야 할 이미지를 저장하기 위한 메모리이며, HAVi 디바이스에서의 HGraphicsDevice에 해당한다. 이 그래픽스 플레인에 의해 메뉴 표시 등을 실현하는 것이 가능해진다.
19. 11:정적 시나리오 메모리(11)
정적 시나리오 메모리(11)는 현재의 PL이나 현재의 스트림 관리 정보를 저장해 두기 위한 메모리이다. 현재 PL이란 가상파일시스템(25)에서 판독할 수 있는 PL 중 그 시점에서의 처리 대상으로 되어 있는 것을 말한다. 현재 스트림 관리 정보란 가상파일시스템(25)으로부터 판독할 수 있는 복수 스트림 관리 정보 중 그 시점에서의 처리 대상으로 되어 있는 것을 말한다.
19. 12:동적 시나리오 메모리(12)
동적 시나리오 메모리(12)는 현재 동적 시나리오를 저장하고, HDMV 모듈(14), BD-J 모듈(15)에 의한 처리에 제공되는 메모리이다. 현재 동적 시나리오란 가상파일시스템(25)으로부터 판독할 수 있는 복수 시나리오 정보 중 그 시점에서의 실행 대상으로 되어 있는 것을 말한다.
19. 13:제어부(13)
제어부(13)는 ROM, RAM, CPU로 이루어지는 마이크로컴퓨터 시스템이며, ROM에는 재생장치를 제어하는 프로그램이 기록되어 있으며, ROM 내의 프로그램이 CPU에 판독되고, 프로그램과 하드웨어 자원이 협동함으로써 HDMV 모듈(14), BD-J 모듈(15), 모드 관리 모듈(16), 디스패쳐(17), AV 재생 라이브러리(18)의 기능을 실현한다.
19. 14:HDMV 모듈(14)
HDMV 모듈(14)는, DVD-Video 가상 플레이어이다. HDMV(High Definition Movie Mode)란 DVD와의 친화성이 있는 커멘드 인터프리터 형식으로 동작하는 동작 모드이다.
19. 15:BD-J 모듈(15)
BD-J 모듈(15)은 Java(등록상표) 가상 머신을 포함하는 미들웨어 플랫폼이며, BD-J 애플리케이션을 실행한다. BD-J 애플리케이션은 재생 영상과 관련이 부여되어서 BD-ROM(100)중에 기록되어 있으며, 재생시에는 동적 시나리오 메모리(12)에 판독된 후 BD-J 모듈(15)에 의해 실행된다. Java(등록상표) 가상 머신은 BD-J 애플리케이션을 해석하여 CPU에 실행시킨다. BD-J 모듈(15)의 일부는 하드웨어에 의해 실현되고 있어도 좋고, 소프트웨어에 의해 실현되고 있어도 좋다.
19. 16:모드 관리 모듈(16)
모드 관리 모듈(16)은 가상파일시스템(25)으로부터 판독된 모드 관리테이블을 보유하고, 모드 관리 및 분기 제어를 실행한다. 모드 관리 모듈(16)에 의한 모드 관리란 동적 시나리오를 어느 HDMV 모듈(14), BD-J 모듈(15)에 실행시키는가 하는 모듈을 할당하는 처리를 실행한다.
19. 17:디스패쳐(17)
디스패쳐(17)는 UO 검지 모듈(21)에 의해 수신한 사용자의 조작(사용자 오퍼레이션, 이하, UO라고도 한다)에서 현재의 재생장치에서의 모드에 적절한 UO만을 선택하고, 그 모드를 실행하는 모듈에 인계한다. 예를 들어, HDMV 모드의 실행 중에 상하좌우, 액티베이트라고 하는 UO를 접수한 경우에 HDMV 모드의 모듈에 이들의 UO를 출력하는 것이 디스패쳐(17)의 처리이다.
19. 18:AV 재생 라이브러리(18)
AV 재생 라이브러리(18)는 HDMV 모듈(14), 혹은 BD-J 모듈(15)로부터의 호출에 따라서 AV 재생 기능, 플레이리스트의 재생 기능을 실행하기 위한 라이브러리이며, 이러한 라이브러리에 의해 제어부는 재생 제어 엔진으로 기능한다. AV 재생 기능은 BD-ROM에서 정의되고 있는 DVD 플레이어, CD 플레이어로부터 답습한 기능 군이며, 재생 개시, 재생 정지, 일시정지, 일시정지의 해제, 정지화면 기능의 해제, 재생 속도를 즉치로 지정한 빨리 감기, 재생 속도를 즉치로 지정한 되감기, 음성 전환, 부 영상 전환, 앵글 전환이라고 하는 처리이다. 플레이리스트 재생기능이란 이 AV 재생 기능 중, 재생 개시나 재생 정지를 플레이리스트 정보에 따라서 실행한다.
19. 19:그래픽스 디코더(19)
그래픽스 디코더(19)는 자막 데이터의 전개 처리를 실행하고, 전개된 좌측 눈 용 자막 이미지와 우측 눈 용 자막 이미지를 각각 좌측 눈 용 자막 플레인(30)과 우측 눈 용 자막 플레인(31)에 기입한다.
19. 20:플레인 합성기(20)
플레인 합성기(20)는 후술하는 합성 모드에 의거하여 백그라운드 플레인, 비디오 플레인, 자막 플레인, 그래픽스 플레인의 4 종류의 플레인에 대해서 좌측 눈 용과 우측 눈 용의 합성 처리를 실행하고, 결과를 영상으로 출력한다.
19. 21:UO 검지 모듈(21)
UO 검지 모듈(21)은 장치의 시청자가 재생장치에 대해서 입력을 한 사용자의 조작(UO)을 수신한다. 이는 예를 들어 리모컨?컨트롤러와 같은 원격 기기로 입력되는 것인 경우도 있고, 기기에 대해서 설치되는 버튼과 같은 인터페이스에 의해 직접 입력되는 것인 경우도 있다.
19. 22:렌더링 엔진(22)
렌더링 엔진(22)은 이미지 메모리(7), 좌측 눈 용 그래픽스 플레인(9), 우측 눈 용 그래픽스 플레인(10), 좌측 눈 용 백그라운드 플레인(28) 및 우측 눈 용 백그라운드 플레인(29) (이하, 이것들을 종합해서 그래픽스 메모리라고 한다)에 대해서 묘화 처리를 실행한다. BD-J 모듈(15)은 색 지정을 수반한 선이나 직사각형 등 도형의 묘화, 지정 영역의 전부 칠함, 지정된 이미지의 카피?페이스트 등의 묘화 처리를 렌더링 엔진(22)을 통해서 실시하는 라이브러리를 갖고 있으며, BD-J 애플리케이션은 이들의 묘화 처리의 요구를 연속적으로 발행함으로써 그래픽스 메모리에 대한 다양한 그래픽스 묘화 처리를 실현할 수 있다.
19. 23:네트워크 인터페이스(23)
네트워크 인터페이스(23)는 인터넷상에 공개된 BD-ROM 추가 콘텐츠의 다운로드에 이용된다. BD-ROM 추가 콘텐츠란 오리지널의 BD-ROM에 없는 콘텐츠로, 예를 들어 추가의 부 음성, 자막, 특전 영상, 애플리케이션 등이다. BD-J 모듈(15)에서 네트워크 인터페이스(23)를 제어할 수 있으며, 인터넷상에 공개된 추가 콘텐츠를 로컬 스토리지(24)나 리모트 미디어(27)에 다운로드 할 수 있다.
19. 24:로컬 스토리지(24)
로컬 스토리지(24)는 재생장치에 내장되어 있는 하드 디스크 등의 자기 기록 장치이다. BD-ROM(100)에 기록되어 있는 파일 형식 또는 그에 준하는 형태로 트랜스포트 스트림이나 재생에 사용하는 각종의 데이터를 기록한다.
19. 25:가상파일시스템(25)
가상파일시스템(25)은 BD-ROM(100) 혹은 로컬 스토리지(24) 혹은 리무버블 미디어(27)에 기록되어 있는 파일에 대한 리드?라이트 기구를 제공하는 파일 시스템이다.
BD-ROM의 재생시에 필요하게 되는 파일 액세스는 통상 BD-ROM(100)에 대해서 행해지지만, 가상파일시스템(25)은 로컬 스토리지(24) 혹은 리무버블 미디어(27)에 존재하는 파일을 마치 BD-ROM(100)상에 기록되어 있는 파일인 것처럼 가상적으로 파일의 어드레스 변환을 실행하는 기구를 구비한다. 즉, 본 가상파일시스템(25)은 파일의 물리적인 기록 처를 추상화하는 기구를 제공한다.
19. 26:오디오 디코더(26)
오디오 디코더(26)는 디 멀티플렉서(3)로부터 출력된 오디오 프레임을 복호 하여 비 압축 형식의 오디오 데이터를 출력한다.
19. 27:리무버블 미디어(27)
리무버블 미디어(27)는 재생장치에 장착된 외부 슬롯에서 삽입되는 기억 매체이다.
19. 28-29:백그라운드 플레인(28, 29)
좌측 눈 용 백그라운드 플레인(28) 및 우측 눈 용 백그라운드 플레인(29)은 배경 이미지를 저장하기 위한 메모리이며, HAVi 디바이스에서의 HBackgroundDevice에 해당한다. 백그라운드 플레인 상에는 비디오 플레인이 중첩된다. 따라서 비디오가 화면 전체를 점유하고 있는 경우에는 백그라운드 플레인은 숨어서 안 보이게 되지만, 비디오가 스캘링, 즉 축소 표시되고 있는 상황하에서는 비디오의 주위에 배경 이미지가 표시되게 된다. 그래픽스 플레인에서는 풍부한 색채가 가능한 한편, 백그라운드 플레인에서 사용할 수 있는 색 수는 제한되어 있는 것과 같은 구성으로 하는 것이 바람직하다. 이 경우, 백그라운드 플레인에 전송 가능한 이미지와 그래픽스 플레인에 전송 가능한 이미지를 다른 종류의 비트 맵 이미지로 구별해서 취급하는 것이 바람직하다. 이 구성에서는 백그라운드 플레인의 색 수를 억제함으로써 백그라운드 플레인용에 필요한 메모리 양을 삭감할 수 있다고 하는 효과가 있다.
19. 30-31:좌측 눈 용 자막 플레인(30) 및 우측 눈 용 자막 플레인(31)
좌측 눈 용 자막 플레인(30) 및 우측 눈 용 자막 플레인(31)은 비디오 상에 중첩되는 자막의 이미지를 저장하기 위한 메모리이다.
19. 20. 1:플레인 합성기(20)에 의한 합성 모드
이어서, 플레인 합성기(20)의 합성 모드에 대해 상세하게 설명한다.
플레인 합성기(20)의 기본적인 기능은 좌측 눈 용과 우측 눈 용의 각각 4개의 플레인, 즉 아래에서부터 차례로 백그라운드 플레인, 비디오 플레인, 자막 플레인, 그래픽스 플레인을 합성하고, 영상으로 출력하는 것이다. 영상출력은 좌측 눈 용과 우측 눈 용에서 다른 영상을 출력할 수 있다. 이에 의해 좌측 눈과 우측 눈에서 다른 영상을 봄으로써 시청자는 입체 시의 효과를 얻을 수 있다.
그러나 입체적인 시청을 위해서는 반드시 모든 플레인에서 좌우 다른 영상으로 할 필요는 없다. 예를 들어, 비디오 플레인만이 좌우 다른 영상이 되고, 비디오 플레인의 뒤에 표시되는 백그라운드 플레인이나, 비디오 플레인 상에 중첩 표시되는 메뉴 등의 그래픽스 플레인은 좌우 같은 영상이어도 좋다. 이 경우, 백그라운드 플레인 및 그래픽은 시청자에게는 평평한 것처럼 보이게 되지만, 이와 같은 구성을 취함으로써 BD-ROM 콘텐츠의 제작이 용이해지므로 비용면에서는 유리하게 된다.
이와 같이, 제작비용의 절감과 고기능의 입체 시 시청의 양립을 실현하므로 재생기기의 플레인 합성기(20)는 복수의 합성 모드를 서포트하고, BD-J 애플리케이션은 필요한 때에 합성 모드를 동적으로 전환할 수 있다.
예를 들어, 평평한 메뉴 화면을 표시하고 있을 때에는 그래픽스 플레인은 좌우 같은 화상을 사용하고 있으나, 메뉴에서 특전의 게임기능으로 천이하면 그래픽스 플레인에서도 입체적인 효과가 필요해지므로 좌측 눈과 우측 눈에서 다른 그래픽스를 표시할 수 있도록 그래픽스 플레인의 합성 모드를 전환하면 좋다. 마찬가지로 백그라운드 플레인에 대해서도 스캘링 표시되고 있는 비디오의 주변의 배경으로 사용되는 경우에는 좌우 같은 화상을 사용하고, 게임기능의 배경으로 사용되는 경우에는 좌우 다른 화상이 되도록 백그라운드 플레인의 합성 모드도 전환할 수 있다.
이상과 같이, 플레인 합성기(20)에 복수의 합성 모드를 갖게 함으로써 단순한 메뉴를 간단하게 만들고자 하는 경우, 기교를 집중시킨 입체적인 메뉴로 완성하고자 하는 경우 등, 다양한 선택을 콘텐츠 오쏘링 측에서 실시하는 것이 가능해져서 제작 측의 자유도를 더할 수 있다.
다음에, 플레인 합성기(20)에서의 합성에 대해서 설명한다.
20. 플레인 합성기(20)의 구성요소
도 20 (a)는 플레인 메모리의 레이어 구성과 플레인 합성기(20)의 구성요소를 나타낸다. 다중 분리부(105)는 플레인 메모리의 레이어 구성의 좌측 눈 용 출력계통에 설치된 가산기(51), 가산기(52), 가산기(53)와, 플레인 메모리의 레이어 구성의 우측 눈 용 출력계통에 설치된 가산기(61), 가산기(62), 가산기(63), 스위치(64), 스위치(65)를 구성요소로 한다.
가산기(51)는 좌측 눈 용 비디오 플레인의 저장내용과 좌측 눈 용 백그라운드 플레인의 저장내용의 합성을 실행한다.
가산기(52)는 좌측 눈 용 자막 플레인의 저장내용과 가산기(51)의 합성 결과의 합성을 실행한다.
가산기(53)는 좌측 눈 용 그래픽스 플레인의 저장내용과 가산기(52)의 합성 결과의 합성을 실행한다.
가산기(61)는 좌측 눈 용 비디오 플레인의 저장내용과 좌측 눈 용 백그라운드 플레인 또는 우측 눈 용 백그라운드 플레인의 저장내용의 합성을 실행한다.
가산기(62)는 우측 눈 용 자막 플레인의 저장내용과 가산기(61)의 합성 결과의 합성을 실행한다.
가산기(63)는 좌측 눈 용 그래픽스 플레인 또는 우측 눈 용 그래픽스 플레인의 저장내용과 가산기(62)의 합성 결과의 합성을 실행한다.
스위치(64)는 가산기(61)에 대한 화소 데이터의 공급원을 좌측 눈 용 백그라운드 플레인 및 우측 눈 용 백그라운드 플레인의 어느 하나로 전환한다. 가산기(61)에 대한 화소 데이터의 공급원을 좌측 눈 용 백그라운드 플레인으로 한 경우 컨피규레이션은 1 플레인 구성이 되고, 화소 데이터의 공급원을 우측 눈 용 백그라운드 플레인으로 한 경우 컨피규레이션은 2 플레인 구성이 된다.
스위치(65)는 가산기(63)에 대한 화소 데이터의 공급원을 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인 중 어느 하나로 전환한다. 가산기(61)에 대한 화소 데이터의 공급원을 좌측 눈 용 그래픽스 플레인으로 한 경우 컨피규레이션은 1 플레인 구성이 되고, 화소 데이터의 공급원을 우측 눈 용 그래픽스 플레인으로 한 경우 컨피규레이션은 2 플레인 구성이 된다.
자막 플레인도 우측 눈 용 자막 플레인, 좌측 눈 용 자막 플레인이 존재하므로 본래라면 자막 플레인의 컨피규레이션도 1 플레인 구성, 2 플레인 구성이 존재하지만, 이 자막 플레인의 1 플레인 구성을 상정하면 설명이 번잡해지므로 자막 플레인은 2 플레인 구성으로 고정하는 것으로 설명을 진행시킨다.
21. 합성 모드의 변형
2D 재생 모드에서의 출력계통은 도 20 (b)의 것으로 고정된다. 이에 대해서 3D 재생 모드에서는 우측 눈 용의 출력계통과 좌측 눈 용의 출력계통이 있고, 좌측 눈 용의 출력계통에서는 가산기로의 데이터 공급원을 우측 눈 용의 플레인 메모리로 할지, 좌측 눈 용의 플레인 메모리로 할지에 의해 도 21 (a)~(d)에 나타내는 4가지의 변형이 존재한다. 즉, 2D 재생 모드에서는 출력계통에 변형이 존재하지 않지만, 3D 재생 모드에서 플레인 합성기(20)는 4가지의 출력계통의 전환을 실현함으로써 4개의 합성 모드(합성 모드 1, 합성 모드 2, 합성 모드 3, 합성 모드 4)를 가지게 된다. 이하, 각각의 모드에 대해 도 21 (a)~(d)의 각각을 이용하여 설명한다.
21. 1:합성 모드 1
도 21 (a)는 그래픽스 플레인, 자막 플레인, 비디오 플레인, 백그라운드 플레인의 비율을 2:2:2:2로 하는 출력계통에 의한 합성 모드(합성 모드 1)를 나타낸다. 그래픽스 플레인, 자막 플레인, 백그라운드 그래픽스 플레인의 플레인 수는 모두 2 플레인이므로, 가산기(63)로의 공급원은 우측 눈 용 그래픽스 플레인, 가산기(61)로의 공급원은 우측 눈 용 백그라운드 플레인으로 되어 있다. 합성 모드 1에서는 그래픽스 플레인은 좌측 눈 용과 우측 눈 용의 2개가 사용된다. 백그라운드 플레인도 좌측 눈 용과 우측 눈 용의 2개가 사용된다. 좌측 눈 용 영상출력으로 아래에서부터 좌측 눈 용 백그라운드 플레인, 좌측 눈 용 비디오 플레인, 좌측 눈 용 자막 플레인, 좌측 눈 용 그래픽스 플레인의 순으로 합성되고, 마찬가지로 우측 눈 용 영상출력으로 아래에서부터 우측 눈 용 백그라운드 플레인, 우측 눈 용 비디오 플레인, 우측 눈 용 자막 플레인, 우측 눈 용 그래픽스 플레인의 순으로 합성된다. 합성 모드 1에서는 그래픽스 플레인, 백그라운드 플레인의 양쪽 모두 입체적인 표현이 가능하다.
21. 2:합성 모드 2
도 21 (b)는 그래픽스 플레인, 자막 플레인, 비디오 플레인, 백그라운드 플레인의 비율을 1:2:2:2로 하는 출력계통에 의한 합성 모드(합성 모드 2라고 한다)를 나타낸다. 그래픽스 플레인에서의 플레인 수는“1”이므로 가산기(63)로의 공급원은 좌측 눈 용 그래픽스 플레인, 가산기(61)로의 공급원은 우측 눈 용 백그라운드 플레인으로 되어 있다. 합성 모드 2에서는 그래픽스 플레인은 좌측 눈 용만이 사용되고, 좌측 눈 용 영상출력과 우측 눈 용 영상출력에는 모두 좌측 눈 용 그래픽스 플레인이 참조된다. 그 결과, 그래픽스 플레인에 대해서는 좌우 같은 영상이 출력되므로 시청자의 눈에는 평평한 것처럼 보이게 된다. 백그라운드 플레인에 대해서는 합성 모드 1과 마찬가지로 좌측 눈 용과 우측 눈 용의 2개가 사용된다. 합성 모드 2에서는 좌측 눈 용 영상출력으로 아래에서부터 좌측 눈 용 백그라운드 플레인, 좌측 눈 용 비디오 플레인, 좌측 눈 용 자막 플레인, 좌측 눈 용 그래픽스 플레인이 합성되고, 우측 눈 용 영상출력으로 아래에서부터 우측 눈 용 백그라운드 플레인, 우측 눈 용 비디오 플레인, 우측 눈 용 자막 플레인, 좌측 눈 용 그래픽스 플레인의 순으로 합성된다. 따라서 백그라운드 플레인은 입체적인 표현이 가능하지만, 그래픽스 플레인에 대해서는 평면적인 표현에 한정된다.
21. 3:합성 모드 3
도 21 (c)는 그래픽스 플레인, 자막 플레인, 비디오 플레인, 백그라운드 플레인의 비율을 2:2:2:1로 하는 출력계통에 의한 합성 모드(합성 모드 3이라고 한다)를 나타낸다. 백그라운드 플레인의 플레인 수는 1 플레인이므로, 가산기(61)로의 공급원은 좌측 눈 용 백그라운드 플레인으로 되어 있다. 합성 모드 3에서는 그래픽스 플레인은 좌측 눈 용과 우측 눈 용의 2개가 사용되지만, 백그라운드 플레인은 좌측 눈 용만이 사용되고, 좌측 눈 용 영상출력과 우측 눈 용 영상출력에는 모두 좌측 눈 용 백그라운드 플레인이 참조된다. 그 결과, 백그라운드 플레인에 대해서는 좌우 같은 영상이 출력되므로 시청자의 눈에는 평평한 것처럼 보이게 된다. 합성 모드 3에서는 좌측 눈 용 영상출력으로 아래에서부터 좌측 눈 용 백그라운드 플레인, 좌측 눈 용 비디오 플레인, 좌측 눈 용 자막 플레인, 좌측 눈 용 그래픽스 플레인ㅇ 순서대로 합성되고, 우측 눈 용 영상출력으로 아래에서부터 좌측 눈 용 백그라운드 플레인, 우측 눈 용 비디오 플레인, 우측 눈 용 자막 플레인, 우측 눈 용 그래픽스 플레인이 순서대로 합성된다. 따라서 그래픽스 플레인은 입체적인 표현이 가능하지만, 백그라운드 플레인에 대해서는 평면적인 표현에 한정된다.
21. 4:합성 모드 4
도 21 (d)은 그래픽스 플레인, 자막 플레인, 비디오 플레인, 백그라운드 플레인의 비율을 1:2:2:1로 하는 출력계통에 의한 합성 모드(합성 모드 4)를 나타낸다. 그래픽스 플레인의 플레인 메모리 수는 1 플레인, 백그라운드 플레인의 플레인 수는 1 플레인이므로, 가산기(63)로의 공급원은 좌측 눈 용 그래픽스 플레인, 가산기(61)로의 공급원은 좌측 눈 용 백그라운드 플레인으로 되어 있다. 합성 모드 4에서는 그래픽스 플레인 및 백그라운드 플레인의 양쪽 모두 좌측 눈 용만이 사용된다. 즉, 좌측 눈 용 영상출력으로 아래에서부터 좌측 눈 용 백그라운드 플레인, 좌측 눈 용 비디오 플레인, 좌측 눈 용 자막 플레인, 좌측 눈 용 그래픽스 플레인이 순서대로 합성되고, 우측 눈 용 영상출력으로 아래에서부터 좌측 눈 용 백그라운드 플레인, 우측 눈 용 비디오 플레인, 우측 눈 용 자막 플레인, 좌측 눈 용 그래픽스 플레인이 순서대로 합성된다. 따라서 합성 모드 4에서는 그래픽스 플레인, 백그라운드 플레인이 모두 평면적인 표현에 한정된다.
22. 그래픽스 묘화 기능의 API
다음에, BD-J 모듈(15)이 갖는 그래픽스 기능에 대해서 설명한다. 도 22는 BD-J 모듈(15)이 서포트하는 그래픽스 묘화 기능의 API의 일 예를 나타낸 도면이며, 도 23은 도 22의 그래픽스 묘화 기능 API의 콜 코드의 일 예를 나타내는 도면이다. BD-J 애플리케이션으로부터 이들 API 호출, 즉 묘화 요구를 트리거로 BD-J 모듈(15)은 렌더링 엔진(22)을 이용하여 실제의 묘화 처리를 실행한다.
22. 1:이미지 묘화 요구(801)
이미지 묘화 요구(801)는 제 3 실시형태의 내부 구성을 갖는 재생장치에서 1매의 비트 맵 이미지를 좌측 눈 용 그래픽스 플레인(9)에 카피하는 취지를 요구하는 것이며, 제 1 실시형태의 Graphics#drawImage에 상당한다. 카피 원의 묘화 이미지와 카피 처의 묘화 위치를 입력으로 하여, 대상이 되는 묘화 이미지를 좌측 눈 용 그래픽스 플레인(9)의 지정된 묘화 위치에 카피한다. 묘화 이미지는 이미지 메모리에 존재하고, 렌더링 엔진(22)에 의해 고속으로 이미지 메모리로부터 좌측 눈 용 그래픽스 플레인(9)으로의 전송이 이루어진다.
22. 2:좌우 이미지 묘화 요구(802)
좌우 이미지 묘화 요구(802)는 제 3 실시형태의 내부 구성을 갖는 재생장치에서 2매의 비트 맵 이미지를 각각 좌측 눈 용 그래픽스 플레인(9)과 우측 눈 용 그래픽스 플레인(10)에 동시에 카피하는 취지를 요구하는 것이며, 제 1 실시형태의 StereoGraphics#drawImage에 상당한다. 이 요구는 카피 원의 묘화 이미지 2매와 묘화 위치 2개를 입력으로 하고, 일방의 묘화 이미지는 좌측 눈 용 그래픽스 플레인(9), 다른 일방의 묘화 이미지는 우측 눈 용 그래픽스 플레인(10)에 묘화를 실행한다. 각각의 묘화 이미지는 이미지 메모리에 존재하고, 렌더링 엔진(22)에 의해 고속으로 이미지 메모리로부터 좌측 눈 용 그래픽스 플레인(9)과 우측 눈 용 그래픽스 플레인(10)에 전송된다.
22. 3:합성 모드 전환 요구(803)
합성 모드 전환 요구(803)는 제 3 실시형태의 내부 구성을 갖는 재생장치에서 플레인 합성기(20)의 합성 모드를 전환하기 위한 API이며, 제 1 실시형태의 컨피규레이션 설정 요구에 대응한다. 제 1 실시형태와 다른 것은 해상도, 그래픽스 플레인의 설정, 및 백그라운드 플레인의 설정을 입력으로 하는 점이다. 해상도는 재생기기가 복수의 해상도에 대응하는 경우에 필요하지만, 제 3 실시형태에서는 반드시 1920×1080 고정으로 취급하는 것으로 한다.
제 3 실시형태에서는 플레인 메모리로 백그라운드 플레인이 존재하므로, 합성 모드 전환 요구에서는 그래픽스 플레인 및 백그라운드 플레인의 설정으로 각각 1 플레인 구성인지 2 플레인 구성인지를 선택할 수 있다. 1 플레인 구성은 좌측 눈 용과 우측 눈 용에 같은 영상을 출력하는 모드를 나타내고, 앞에서 설명한 1plane+Offset 모드에 상당하는 것이다. 2 플레인 구성은 좌측 눈 용과 우측 눈 용에 각각 다른 영상을 출력하는 모드를 나타내며, 앞에서 설명한 3D-LR 모드에 상당하는 것이다. 그래픽스 플레인 설정으로 2 플레인, 백그라운드 플레인 설정으로 2 플레인이 요구된 경우, 플레인 합성기(20)는 후술하는 합성 모드 1로 천이할 필요가 있다. 마찬가지로 그래픽스 플레인 설정과 백그라운드 플레인 설정에 의거하여 플레인 합성기(20)가 어느 합성 모드로 천이해야 하는지가 고유하게 정해진다.
22. 4:백그라운드 묘화 요구(804)
백그라운드 묘화 요구(804)는 1매의 비트 맵 이미지를 좌측 눈 용 백그라운드 플레인(28)에 카피하기 위한 API이다. 카피 원의 묘화 이미지를 입력으로 하고, 대상의 묘화 이미지를 좌측 눈 용 백그라운드 플레인(28) 전체에 카피한다.
22. 5:백그라운드 묘화 요구(805)
 백그라운드 묘화 요구(805)는 2매의 비트 맵 이미지를 각각 좌측 눈 용 백그라운드 플레인(28) 및 우측 눈 용 백그라운드 플레인(29)에 카피하기 위한 API이다. 카피 원의 묘화 이미지 2매를 입력으로 하고, 하나의 묘화 이미지는 좌측 눈 용 백그라운드 플레인(28)에, 다른 하나의 묘화 이미지는 우측 눈 용 그래픽스 플레인(29)에 카피된다. 각각의 묘화 이미지는 이미지 메모리에 존재하고, 렌더링 엔진(22)에 의해 고속으로 이미지 메모리에서 좌측 눈 용 백그라운드 플레인(28) 및 우측 눈 용 백그라운드 플레인(29)의 전체에 전송된다.
백그라운드 묘화 요구의 카피 처의 설정에는 백그라운드 플레인 전체로 설정할 수도 있고, 그래픽스 플레인과 마찬가지로 묘화 위치를 지정할 수 있도록 해도 좋다.
24. 합성 모드 전환 요구시의 처리순서
이어서, 합성 모드 전환 요구(803)가 호출된 경우의 처리순서에 대해 도 24를 이용하여 설명한다. 합성 모드 전환 요구(803)의 처리는 플레인 합성기(20)의 현재의 합성 모드와 요구된 합성 모드를 비교하여 천이를 실행하는 것이다.
먼저, 그래픽스 플레인의 설정으로 2 플레인이 요구되고 있고, 또한 현재의 그래픽스 플레인이 1 플레인(합성 모드 2 혹은 합성 모드 4)인지를 확인하여(S901), 그런 경우에는 그래픽스 플레인을 2 플레인으로 전환한다(S902). 이 처리에 대한 상세는 후술한다.
이어서, 그래픽스 플레인의 설정으로 1 플레인이 요구되고 있고, 또한 현재의 그래픽스 플레인이 2 플레인(합성 모드 1 혹은 합성 모드 3)인지를 확인하여(S903), 그런 경우에는 그래픽스 플레인을 1 플레인으로 전환한다(S904). 이 처리에 대해서도 상세는 후술한다.
다음에, 백그라운드 플레인의 설정으로 2 플레인이 요구되고 있고, 또한 현재의 백그라운드 플레인이 1 플레인(합성 모드 3 혹은 합성 모드 4)인지를 확인하여(S905), 그런 경우에는 백그라운드 플레인을 2 플레인으로 전환한다(S906).
백그라운드 플레인의 설정으로 1 플레인이 요구되고 있고, 또한 현재의 백그라운드 플레인이 2 플레인(합성 모드 1 혹은 합성 모드 2)인지를 확인하여(S907), 그런 경우에는 백그라운드 플레인을 1 플레인으로 전환한다(S908). 마지막으로, 전환 처리가 완료했음을 BD-J 애플리케이션에 통지한다(S909). 이 통지는 비동기의 이벤트 처리로 실시하는 것이 바람직하다.
도 24의 플로에 나타내는 처리를 동기 API로 실장하는 경우, 합성 모드 전환 요구(803)는 S909의 처리 완료 후에 BD-J 애플리케이션으로 리턴하여, 제어를 옮긴다. BD-J시스템은 멀티-스레드를 서포트하고 있으므로 합성 모드 전환 요구(803)가 처리되고 있는 동안도 BD-J 애플리케이션의 다른 스레드는 독립해서 동작하고 있으나, 합성 모드 전환 요구(803)를 동기 메소드로 실장하면 합성 모드 전환 요구(803)를 호출한 스레드는 전환 처리가 완료할 때까지 블록 되게 된다.
25. 1:1 플레인 구성에서 2 플레인 구성으로 전환
다음에, 그래픽스 플레인을 1 플레인에서 2 플레인으로 전환하는 S902의 처리에 대해 보다 상세한 처리 플로를 도 25 (a)를 이용하여 설명한다.
우선 먼저, 1 플레인용의 그래픽스 플레인 묘화 요구인 이미지 묘화 요구(801)를 금지하고(S1001), 이후에 이미지 묘화 요구(801)가 호출된 경우는 앞에서 설명한 것처럼 당해 호출을 무시하거나, 예외를 발생시키도록 한다. 그래픽스 플레인이 1 플레인으로 되어 있는 초기 상태에서는 상술한 것과 같이 이미지 묘화 요구(801)의 호출은 허가, 좌우 이미지 묘화 요구(802)의 호출은 금지가 되어 있으나, 본 스텝에 의해 이미지 묘화 요구(801) 및 좌우 이미지 묘화 요구(802)의 쌍방의 호출이 금지되게 된다.
이어서, 좌측 눈 용 그래픽스 플레인(9)의 내용 전체를 우측 눈 용 그래픽스 플레인(10)에 카피한다(S1002). 합성 모드 전환 전 상태에서는 좌측 눈 용 그래픽스 플레인(9)의 화상만이 영상으로서 출력되고 있으며, 우측 눈 용 그래픽스 플레인(10)에는 어떠한 화상이 저장되어 있는지가 부정(不定)이며, 예를 들어 전면 흑색인 채로 되어 있다. 그런데 그대로 그래픽스 플레인을 2 플레인으로 전환하면 이 전면 흑색의 우측 눈 용 그래픽스 플레인(10)이 영상으로 출력되어 버린다. BD-J 애플리케이션이 합성 모드 전환 요구(803)를 호출했다고 하는 것은 당연히 BD-J 애플리케이션은 그 후 우측 눈 용 그래픽스 플레인(10)에도 정당한 화상을 묘화할 것이 기대되지만, 묘화까지 지연시간이 존재하면 일순간 우측 눈 용에만 전면 흑색의 출력이 이루어지므로 좌우의 영상의 부정합이 발생해 버린다. 이와 같은 부정합을 회피하기 위해 본 스텝에서 좌측 눈 용 그래픽스 플레인(9)의 내용을 우측 눈 용 그래픽스 플레인(10)에 강제적으로 카피함으로써 좌우의 영상출력의 정합을 유지할 수 있다.
다음에, 플레인 합성기(20)의 합성 모드를 합성 모드 1 또는 합성 모드 3으로 전환한다(S1003). 현재의 백그라운드 플레인이 2 플레인의 경우에는 합성 모드 1로, 1 플레인의 경우에는 합성 모드 3으로 천이시키면 좋다.
마지막으로, 2 플레인용의 그래픽스 플레인 묘화 요구인 좌우 이미지 묘화 요구(802)의 금지를 해제하고(S1004), 이후에 좌우 이미지 묘화 요구(802)가 호출된 경우에는 카피 처리가 실행되도록 한다. 본 스텝에 의해 이미지 묘화 요구(801)의 호출은 금지, 좌우 이미지 묘화 요구(802)의 호출은 허가되게 된다.
상기와 같이, 1 플레인용의 그래픽스 플레인 묘화 요구를 금지한 후에 S1002, S1003의 처리를 실행함으로써 좌측 눈 용과 우측 눈 용의 부정합을 방지할 수 있다. 이와 같은 구성을 취함으로써 BD-J 애플리케이션의 실장의 문제에 의해서 합성 모드 전환 요구(803)의 처리 도중에 이미지 묘화 요구(801)가 발생한 경우에도 부정합이 발생하지 않도록 할 수 있다.
25. 2:2 플레인 구성에서 1 플레인 구성으로의 전환
이어서, 그래픽스 플레인을 2 플레인에서 1 플레인으로 전환하는 S904의 처리에 대해 보다 상세한 처리 플로를 도 25 (b)를 이용하여 설명한다.
우선 먼저, 2 플레인용의 그래픽스 플레인 묘화 요구인 좌우 이미지 묘화 요구(802)를 금지하고(S1101), 이후에 좌우 이미지 묘화 요구(802)가 호출된 경우는 앞에서 설명한 것과 같이 당해 호출을 무시하거나, 예외를 발생시키도록 한다. 그래픽스 플레인이 2 플레인으로 되어 있는 초기 상태에서는 이미지 묘화 요구(801)의 호출은 금지, 좌우 이미지 묘화 요구(802)의 호출은 허가로 되어 있으나, 본 스텝에 의해 이미지 묘화 요구(801) 및 좌우 이미지 묘화 요구(802)의 쌍방의 호출이 금지되게 된다.
다음에, 플레인 합성기(20)의 합성 모드를 합성 모드 2 또는 합성 모드 4로 전환한다(S1102). 현재의 백그라운드 플레인이 2 플레인의 경우에는 합성 모드 2로, 1 플레인의 경우에는 합성 모드 4로 천이시키면 좋다.
이어서, 1 플레인용의 그래픽스 플레인 묘화 요구인 이미지 묘화 요구(801)의 금지를 해제하고(S1103), 이후에 이미지 묘화 요구(801)가 호출된 경우에는 카피 처리가 실행되도록 한다. 본 스텝에 의해 이미지 묘화 요구(801)의 호출은 허가, 좌우 이미지 묘화 요구(802)의 호출은 금지되게 된다.
마지막으로, 재묘화 요구 이벤트를 BD-J 애플리케이션에 통지한다(S1104). 합성 모드를 전환한 직후에는 재묘화가 필요하게 될 가능성이 있으나, 그래픽스 플레인이 1 플레인으로 되어 있는 합성 모드 전환 후에는 종래의 BD-J 사양과 동일한 그래픽스 처리가 가능한 상태로 되어 있으므로, 종래 사양과의 정합을 취하기 위해서 본 스텝에서 재묘화 요구 이벤트를 통지한다.
이상과 같이, 합성 모드의 전환이 완료하고 나서 S1103의 처리를 실행함으로써 좌측 눈 용의 영상과 우측 눈 용의 영상의 부정합을 방지할 수 있다.
바이트코드 애플리케이션에 의한 컨피규레이션 설정 요구에 의해 백그라운드 플레인이 2 플레인 구성인지 1 플레인 구성인지의 설정이 이루어진다. 이와 같은 컨피규레이션 전환에서는 제 1 실시형태에서 설명한 상황, 즉, 좌측 눈 용 백그라운드 플레인 및 우측 눈 용 백그라운드 플레인의 컨피규레이션을 1 플레인 구성에서 2 플레인 구성으로 전환하는 취지를 요구한 후, 백그라운드 플레인에 대한 Graphics#drawImage에 의한 요구가 java.awt.Graphics에 도달한다고 하는 상황이 발생한다. 그러므로 백그라운드 플레인에 대한 컨피규레이션 설정 요구를 수신한 후의 1 플레인 구성에서 2 플레인 구성으로의 컨피규레이션의 전환시에는 백그라운드 플레인에 대한 2D 그래픽스 묘화 요구의 무효화, 좌측 눈 용 백그라운드 플레인에서 우측 눈 용 백그라운드 플레인으로의 카피, 우측 눈 용 출력계통의 전환 , 3D 그래픽스 묘화 요구 수용을 실행하고, 2 플레인 구성에서 1 플레인 구성으로의 컨피규레이션 전환시에는 백그라운드 플레인에 대한 StereoGraphics#drawImage에 의한 요구의 금지, 우측 눈 용 출력계통의 전환, 백그라운드 플레인에 대한 Graphics#drawImage의 수용을 실행한다. 이렇게 함으로써 1 플레인 구성에서 2 플레인 구성으로의 컨피규레이션의 전환 후에 2D 그래픽스 묘화 요구가 java.awt.Graphics에 도달하는 것에 의한 좌우의 시각의 불일치 발생을 해소할 수 있다. 따라서 도 25 (a), (b)의 처리를 백그라운드 플레인에 대한 컨피규레이션 설정 요구의 후에도 실행한다.
따라서 제 3 실시형태에서는 백그라운드 플레인을 2 플레인으로 전환하는 S906 및 백그라운드 플레인을 1 플레인으로 전환하는 S908의 처리를 각각 도 25 (a) 및 도 25 (b)와 동일한 처리 플로에 의해 실현한다.
이상과 같이 본 실시형태에 의하면 그래픽스 플레인만이 아니라 백그라운드 플레인의 카피에 앞서 2D 그래픽스 묘화 요구를 무효화하므로, 좌측 눈 용 백그라운드 플레인에서 우측 눈 용 백그라운드 플레인으로의 화소 데이터 카피가 이루어진 후에 좌측 눈 용 백그라운드 플레인에 새로운 그래픽스가 기입되는 일은 없다. 2D 그래픽스 묘화 요구가 지연되어 java.awt.Graphics에 도달했다고 하더라도 그 2D 그래픽스 묘화 요구에 따라서 백그라운드 플레인의 저장내용이 표시되는 일은 있을 수 없으며, 두 눈의 시각의 불일치가 발생하는 일은 없다.
(제 4 실시형태)
본 실시형태는 제 1 실시형태에서 설명한 레이어 모델에서 1 플레인 묘화 요구의 금지와 그 해제, 2 플레인 묘화 요구의 금지와 그 해제를 재생장치 내에 어떻게 실시하는가 하는 개량에 관한 것이다.
25:org.havi.ui에 대한 개량
도 25 (a) (b)의 처리를 실현하기 위해서는 setConfiguraion 콜이 이루어진 경우에서의 제 2 인수가 2 플레인 구성의 지정인 경우의 처리, 제 3 인수가 2 플레인 구성의 지정인 경우의 처리를 org.havi.ui에 추가시킬 필요가 있다. 이와 같은 개량은 org.havi.ui에 도 26의 플로차트의 처리순서를 추가하면 좋다.
26:setConfiguraion 콜 시에서의 org.havi.ui의 처리순서
도 26은 setConfiguraion 콜 시에서의 org.havi.ui의 처리순서를 나타내는 플로차트이다. 본 플로차트는 플레인 구성의 전환 처리의 최상위의 처리, 즉, 메인 루틴에 해당하는 것이며, 본 플로차트의 하위의 플로차트로서 도 27~도 30의 플로차트가 존재한다. 이하, 메인 루틴에서의 처리순서에 대해서 설명한다.
스텝 S901은 현재의 그래픽스 플레인의 컨피규레이션이 1 플레인 구성이며, 또한 setConfiguraion 콜 시에서의 제 2 인수, 즉, 그래픽스 플레인의 플레인 수가 2 플레인 구성을 지정한 것인지 여부의 판정이다. 이러한 판정은 도 24의 스텝 S901를 더 상세하게 한 것이다. 이 스텝 S901이 Yes이면 스텝 S1000에서 제 1 인수로 지정된 해상도의 그래픽스 플레인을 2 플레인 확보한 후, 스텝 S1001~스텝 S1004를 실행한다.
스텝 S1001~스텝 S1004는 setConfiguraion 콜에 의한 2 플레인 구성으로의 전환순서이며, 앞의 실시형태에서의 도 25 (a)의 처리순서와 동일하며, 도 25 (a)와 동일한 참조부호를 부여하고 있다. 구체적으로는 그래픽스 플레인에 대한 1 플레인용 묘화 요구를 금지하고(스텝 S1001), 좌측 눈 용 그래픽스 플레인에서 우측 눈 용 그래픽스 플레인으로의 화소 데이터 카피를 실시하며(스텝 S1002), 플레인 합성기의 합성 모드를 전환하고(스텝 S1003), 그래픽스 플레인에 대한 2 플레인용 묘화 요구의 금지를 해제한다(스텝 S1004).
스텝 S901이 No인 경우, 스텝 S903의 판정을 실행한다. 스텝 S903은 현재의 그래픽스 플레인의 설정이 2 플레인 구성이고, 또한 setConfiguraion 콜 시에서의 제 2 인수, 즉, 그래픽스 플레인의 플레인 수가 1 플레인 구성을 지정한 것인지 여부의 판정이다. 이러한 판정은 도 24의 스텝 S903을 더 상세하게 한 것이다. 이 스텝 S903이 Yes이면 스텝 S1100에서 제 1 인수로 지정된 해상도의 그래픽스 플레인을 1 플레인 확보한 후, 스텝 S1101~스텝 S1104를 실행한다.
스텝 S1101~스텝 S1104는 setConfiguraion 콜에 의한 1 플레인 구성으로의 전환순서이며, 앞의 실시형태에서의 도 25 (b)의 처리순서와 동일하며, 도 25 (b)와 동일한 참조부호를 부여하고 있다. 구체적으로는 그래픽스 플레인에 대한 2 플레인용 묘화 요구를 금지하고(스텝 S1101), 플레인 합성기의 합성 모드를 전환하며(스텝 S1102), 그래픽스 플레인에 대한 1 플레인용 묘화 요구의 금지를 해제하고(스텝 S1103), 재묘화 요구 이벤트를 통지한다(스텝 S1104).
이상이 그래픽스 플레인에 대한 setConfiguraion의 처리순서의 설명이다. 이어서, 백그라운드 플레인에 대한 처리의 상세에 대하여 설명한다.
스텝 S905는 현재의 백그라운드 플레인의 컨피규레이션이 1 플레인 구성이며, 또한 setConfiguraion 콜 시에서의 제 2 인수, 즉, 백그라운드 플레인의 플레인 수가 2 플레인 구성을 지정한 것인지 여부의 판정이다. 이러한 판정은 도 24의 스텝 S905를 더 상세하게 한 것이다. 이 스텝 S905가 Yes이면 스텝 S1010에서 제 1 인수로 지정된 해상도의 백그라운드 플레인을 2 플레인 확보한 후, 스텝 S1011~스텝 S1014를 실행한다. 스텝 S1011~스텝 S1014는 setConfiguraion 콜에 의한 2 플레인 구성으로의 전환순서이며, 앞의 실시형태에서의 도 25 (a)의 처리순서를 백그라운드 플레인에 적용한 것이다. 구체적으로는 백그라운드 플레인에 대한 1 플레인용 묘화 요구를 금지하고(스텝 S1011), 좌측 눈 용 백그라운드 플레인에서 우측 눈 용 백그라운드 플레인으로의 화소 데이터 카피를 실시하며(스텝 S1012), 플레인 합성기의 합성 모드를 전환하고(스텝 S1013), 백그라운드 플레인에 대한 2 플레인용 묘화 요구의 금지를 해제한다(스텝 S1004).
스텝 S905가 No인 경우, 스텝 S907을 실행한다. 스텝 S907은 현재의 백그라운드 플레인의 컨피규레이션이 1 플레인 구성이며, 또한 setConfiguraion 콜 시에서의 제 2 인수, 즉, 백그라운드 플레인의 플레인 수가 2 플레인 구성을 지정한 것인지 여부의 판정이다. 이러한 판정은 도 24의 스텝 S907를 더 상세하게 한 것이다. 이 스텝 S907이 Yes이면 스텝 S1110에서 제 1 인수로 지정된 해상도의 백그라운드 플레인을 1 플레인 확보한 후, 스텝 S1111~스텝 S1114를 실행한다. 스텝 S1111~스텝 S1114는 setConfiguraion 콜에 의한 1 플레인 구성으로의 전환순서이며, 앞의 실시형태에서의 도 25 (a)의 처리순서를 백그라운드 플레인에 적용한 것이다. 구체적으로는 백그라운드 플레인에 대한 2 플레인용 묘화 요구를 금지하고(스텝 S1111), 플레인 합성기의 합성 모드를 전환하며(스텝 S1112), 백그라운드 플레인에 대한 1 플레인용 묘화 요구의 금지를 해제하고(스텝 S1113), 재묘화 요구 이벤트를 통지한다(스텝 S1114).
27:java.awt.Graphics에 대한 개량
제 3 실시형태에서의 도 25 (a) (b)의 처리를 실행하기 위해서는 도 26의 스텝 S1001에서 1 플레인용 묘화 요구가 금지되고 나서 도 26의 스텝 S1103에서 1 플레인용 묘화 요구의 금지가 해제될 때까지 Graphics#drawImage를 일절 실행하지 않고, 또 지금까지 이루어진 Graphics#drawImage 콜을 무효화하는 것과 같은 개량을 java.awt.Graphics에 더할 필요가 있다. 그러한 개량은 java.awt.Graphics에 도 27의 플로차트의 처리순서를 추가하면 좋다.
도 27은 java.awt.Graphics의 처리순서를 나타내는 플로차트이다. 스텝 S1-스텝 S2로 이루어지는 루프를 실행하고 있다. 스텝 S1은 java.awt.Graphics의 콜이 이루어졌는지 여부의 판정이며, java.awt.Graphics의 콜이 이루어지면 스텝 S3에 서 제 1 인수, 제 2 인수에 따라서 그래픽스의 묘화를 실행한다. 스텝 S2는 1 플레인용 묘화 요구가 금지되었는지 여부의 판정이다. 만약 금지되면 스텝 S2에서 스텝 S4로 이행한다. 스텝 S4는 스택 중에 Graphics#drawImage의 콜 코드가 존재하는지 여부의 판정이다. 만약 존재하면 스텝 S5에서 Graphics#drawImage의 콜 코드의 호출 원의 스레드에 Exception를 되돌려줌으로써 Graphics#drawImage를 무시한다. 스텝 S6은 1 플레인 묘화 요구가 해제되었는지 여부의 판정 대기이며, 만약 해제되면 스텝 S1~스텝 S2의 루프로 되돌아온다. java.awt.Graphics가 이상의 처리를 실행함으로써 도 25 (a)의 스텝 S1001에서 1 플레인용 묘화 요구가 금지되고 나서 도 25 (b)의 스텝 S1103에서 1 플레인용 묘화 요구의 금지가 해제될 때까지 java.awt.Graphics는 Graphics#drawImage를 일절 실행하는 일은 없다.
28:애플리케이션 매니저에 대한 개량부분
도 25 (a), 도 25 (b)에 의한 플레인 구성의 전환을 실현하기 위한 애플리케이션 매니저에 대한 개량된 부분에 대해서 설명한다. StereoGraphics는 StereoGraphics#drawImage만을 처리하는 StereoGraphics 전용의 그래픽스 묘화 패키지이므로 도 26의 스텝 S1004로의 이행시에 StereoGraphics를 기동하는 것으로 하고, 도 26의 스텝 S1101로의 이행시에 StereoGraphics의 동작을 종료시키도록 StereoGraphics 상태를 제어하지 않으면 안 된다. 이러한 상태제어를 실현하기 위해서는 StereoGraphics 특유의 상태제어로서 도 28의 처리순서를 애플리케이션 매니저에 실행시키면 좋다.
도 28은 애플리케이션 매니저에 의한 StereoGraphics의 상태제어의 순서를 나타내는 플로차트이다. 스텝 S11은 2 플레인 묘화 요구의 금지가 해제되었는지 여부의 판정 대기이며, 해제되면 스텝 S12로 이행하여, StereoGraphics를 로드하여 기동한다. 그 후, 스텝 S13~스텝 S14의 루프로 이행한다. 스텝 S13은 StereoGraphics에 3D 그래픽스를 처리시키는 것이며, 3D 그래픽스의 콜이 발생하는 한 StereoGraphics은 이 3D 그래픽스의 콜에 따라서 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인으로의 그래픽스 기입을 실행한다. 스텝 S14는 2 플레인 묘화 요구가 금지되었는지 여부의 판정이다. 금지되지 않는 한 스텝 S13~스텝 S14의 루프를 반복하게 된다. 만약 금지되면 스텝 S15에서 StereoGraphics의 동작을 종료하고, 스텝 S11로 이행하여 금지가 해제되는 것을 기다린다.
이상이 애플리케이션 매니저에 의한 StereoGraphics 상태제어에 대한 설명이다. StereoGraphics의 상태를 외부로부터 상술한 것과 같이 제어함으로써 StereoGraphics는 한정적으로 동작하게 된다.
29:디바이스 드라이버에 대한 개량
도 25 (a) (b)의 처리를 실행하기 위해서는 도 26의 스텝 S1003 및 도 26의 스텝 S1102에서 합성 모드의 전환이 요구된 때에 우측 눈 용의 출력계통의 해방?추가나, 우측 눈 용가산기로의 데이터 공급원의 전환을 디바이스 드라이버에 실현시킬 필요가 있다. 그러한 개량은 디바이스 드라이버에 도 29 (a) (b)의 플로차트의 처리순서를 추가하면 좋다.
도 29 (a)는 합성 모드기에 의한 합성 모드의 전환순서의 메인 루틴에 해당하는 처리순서를 나타내는 플로차트이다. 스텝 S21은 재생 모드가 3D 재생 모드인지 2D 재생 모드인지의 판정이며, 2D 재생 모드이면 스텝 S22에서 우측 눈 용의 출력계통을 해방한다. 재생 모드가 3D 재생 모드이면 스텝 S23에서 우측 눈 용의 출력계통이 유효한지 여부를 판정한다. 유효하면 스텝 S25에서 우측 눈 용의 출력계통을 전환한다. 유효하지 않으면 스텝 S24에서 우측 눈 용의 출력계통을 추가한 다음, 스텝 S25에서 우측 눈 용의 출력계통을 전환한다.
스텝 S25의 우측 눈 용 출력계통의 전환에 대해서는 도 29 (b)의 서브 루틴을 사용하여 더 상세하게 설명한다.
도 29 (b)는 우측 눈 용의 출력계통의 전환순서를 나타내는 플로차트이다. 스텝 S26은 setConfiguraion의 제 1 인수가 2 플레인인지 여부의 판정이다. 스텝 S26이 No이면 스텝 S27에서 우측 눈 용가산기로의 공급원을 좌측 눈 용 그래픽스 플레인으로 한다. 스텝 S26이 Yes이면 스텝 S28에서 우측 눈 용가산기로의 공급원을 우측 눈 용 그래픽스 플레인으로 한다. 스텝 S29는 setConfiguraion의 제 2 인수가 2 플레인인지 여부의 판정이다. No이면 스텝 S30서 우측 눈 용가산기로의 공급원을 좌측 눈 용 백그라운드 플레인으로 한다. Yes이면 스텝 S31에서 우측 눈 용가산기의 공급원을 우측 눈 용 백그라운드 플레인으로 한다.
30:StereoGraphics를 구현하는 처리순서
StereoGraphics의 실체는 StereoGraphics#drawImage 콜에 따른 라인 묘화를 MPU에 실시하게 하는 레지던트형의 바이트코드 애플리케이션이다. 도 30은 StereoGraphics#drawImage 메소드가 콜 되었을 때의 라인 묘화 순서를 나타내는 플로차트이다.
변수 Y는 본 플로차트의 루프에서의 제어 변수이며, 스텝에서 초기화되고, 스텝 S54에서의 본 플로차트의 종료 조건의 성공 여부의 판정에 이용된다.
묘화 이미지의 묘화 대상의 행을 나타내는 변수 Y를 「1」로 초기화하고(스텝 S51), 스텝 S52~스텝 S54의 루프로 이행한다. 이 루프에서는 제 2 인수로 지시되는 묘화 이미지의 Y라인째의 RGB치를 좌 이미지 플레인의 (x1, y1+Y-1)에서 (x2, y1+Y-1)까지 기입하고(스텝 S52), 제 4 인수의 Y라인째의 RGB치를 우 이미지 플레인의 (x3, y3+Y-1)에서 (x4, y3+Y-1)까지 기입한다(스텝 S53)고 하는 처리를 스텝 S54가 Yes로 판정될 때까지 반복한다. 스텝 S54는 y1+Y-1이 y2이고, 또한 y3+Y-1=y4라고 하는 조건을 만족할지 여부의 판정이며, 이 조건을 만족하지 않는 경우, 스텝 S55에서 변수 Y를 증가한 후, 스텝 S52로 이행한다. 이 루프의 반복에 의해 좌 이미지 플레인에서의 묘화를 실행해야 할 직사각형 범위에 Image1을 구성하는 라인 화소가 기입되어 가고, 우 이미지 플레인에서의 묘화를 실행해야 할 직사각형 범위에 Image2를 구성하는 라인 화소가 기입되어 간다.
이상이 StereoGraphics에 의한 카피 순서에 대한 설명이다. 이어서, StereoGraphics#drawImage를 이용하여 GUI 묘화를 실행하는 바이트코드 애플리케이션의 구체 예에 대해서 설명한다. StereoGraphics#drawImage를 이용한 GUI 묘화의 구체 예로는 복수의 프레임 기간을 걸쳐서 묘화 이미지를 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인에 기입한다고 하는 것이 된다. 이하, StereoGraphics#drawImage를 이용한 바이트코드 애플리케이션의 기술 예에 대해서 설명한다.
31:바이트코드 애플리케이션에 의한 메뉴 표시의 구체 예
도 31은 바이트코드 애플리케이션에 의한 메뉴 표시의 플로차트이다. 스텝 S41에서 묘화 이미지를 최초로 표시해야 할 프레임을 "프레임 t"로 하고, 스텝 S42~스텝 S47의 루프로 이행한다. 스텝 S42~스텝 S47은 프레임 t에 표시해야 할 좌 이미지의 인스턴스를 생성하여 이미지 1로 하며(스텝 S42), 프레임 t에 표시해야 할 우 이미지의 인스턴스를 생성하여 이미지 2로 하고(스텝 S43), 프레임 t의 초기가 도래하는 것을 대기하며(스텝 S44), 초기가 도래하면 좌 이미지 플레인의 묘화를 실행해야 할 직사각형 범위, 우 이미지 플레인의 묘화를 실행해야 할 직사각형 범위를 특정한다(스텝 S45). 그리고 좌 이미지 플레인의 묘화를 실행해야 할 직사각형 범위, 우 이미지 플레인의 묘화를 실행해야 할 직사각형 범위를 인수로 지정한 후, StereoGraphics#drawImage 메소드의 콜을 실시하고(스텝 S46), 다음에 이미지를 표시해야 할 프레임을 프레임 t로 하는 처리(스텝 S47)를 반복하는 것이다.
이상과 같이 본 실시형태에 의하면 BD-J터미널의 플레이어 모델, 레이어 모델에서의 구성요소에 대한 개량에 의해 지금까지의 실시형태에서 설명한 특징적인 처리를 재생장치에 실행시킬 수 있으므로, 재생장치의 기본 구성에 대폭적인 변경을 부가할 일 없이 본원 특유의 특징적인 처리를 재생장치에 포함할 수 있다. 이에 의해 재생장치의 개발 공정 수를 큰 폭으로 삭감할 수 있어서 재생장치의 제품 투입을 앞당길 수 있다.
(제 5 실시형태)
본 실시형태는 재생장치에서의 재생 모드를 타이틀 선택시에 실행되는 모드 선택 프로시저로 결정한다고 하는 실시형태이다. 여기서 본 명세서의 타이틀은 적어도 1개의 동작 모드 오브젝트를 필수의 구성요소로 한다. 동작 모드 오브젝트란 어느 모드에서의 타이틀 재생시의 재생장치의 거동의 상세를 규정하는 동작 관리테이블이다. 그리고 이 타이틀에는 HDMV 타이틀, BD-J타이틀이라고 하는 종별이 있다.
32. 1:HDMV 타이틀
「HDMV 타이틀」이란 제 3 실시형태에서 설명한 HDMV 모드로 재생되어야 할 타이틀이며, 무비 오브젝트와 무비 오브젝트 내의 재생 커멘드로 재생되는 플레이리스트(플레이리스트 정보, 클립 정보, 스트림 파일)로 구성된다.
「무비 오브젝트」란 인덱스 테이블에서 HDMV 타이틀의 타이틀 번호에 대응된 동작 모드 오브젝트이며, 네비게이션 커멘드 열로 구성되는 배치 프로그램에 리줌(resume)의 가부를 나타내는 리줌 플래그, 메뉴 콜을 마스크 할지 여부를 나타내는 플래그, 타이틀 서치를 마스크 할지 여부를 나타내는 플래그를 대응시킴으로써 구성되어 있다.
32. 2:BD-J타이틀
「BD-J타이틀」이란 제 3 실시형태에서 설명한 BD-J모드로 재생되어야 할 타이틀이며, 클래스 아카이브 파일과 BD-J오브젝트로 구성된다.
「클래스 아카이브 파일」은 바이트코드 애플리케이션의 클래스 구조체의 파일(클래스 파일)을 디지털 증명서 매니페스토 파일(manifesto file), 디스크 서명 시그네이처 파일, 디스크 서명 암호키 파일, 퍼미션 리퀘스트 파일과 합쳐서 아카이브 한 파일이다. 애플리케이션의 로드는 이 클래스 아카이브 파일을 합쳐서 이루어지며, 클래스 로드시에 디지털 증명서, 디스크 서명, 디스크 서명 암호키를 이용한 애플리케이션의 정당성의 검증을 할 수 있게 되어 있다. 또, 퍼미션 리퀘스트 파일이 존재하므로, 애플리케이션에 의한 동작을 일정한 권한이 부여된 것으로 한정할 수 있다.
클래스 아카이브 파일에 아카이브 되는 바이트코드 애플리케이션은 BD-J 애플리케이션이라 불린다.
32. 2. 1:BD-J 애플리케이션
BD-J 애플리케이션은 Xlet 인터페이스를 실현(implement)함으로써 애플리케이션 매니저에 의한 상태제어에 제공된다. 이 Xlet 인터페이스에는 초기 상태에서의 BD-J 애플리케이션의 거동을 규정하는 인터페이스인 public void initXlet(){}, 스타트 상태에서의 BD-J 애플리케이션의 거동을 규정하는 인터페이스인 public void startXlet(){}, 포즈 상태에서의 BD-J 애플리케이션의 거동을 규정하는 인터페이스인 public void pauseXlet(){}, 데스트로이 상태에서의 BD-J 애플리케이션의 거동을 규정하는 인터페이스인 public void destroyXlet(){}가 있으며, 이들 초기 상태, 스타트 상태, 포즈 상태, 데스트로이 상태의 거동이 오브젝트 지향 프로그래밍 언어로 기술된다. 또, public void KeyListener(){}인터페이스를 실현함으로써 특정의 키 이벤트에 따른 BD-J 애플리케이션의 거동을 기술할 수 있다.
public void ControllerListner(){}인터페이스를 실현함으로써 JMF 플레이어의 컨트롤러의 상태 변화에 따른 BD-J 애플리케이션의 거동을 정의할 수 있다. 여기서, BD-J 애플리케이션 중 예외 처리의 발생이 상정되는 거동에 대해서는 try문을 사용해서 기술할 수 있다. 또, BD-J 애플리케이션 중 예외 처리 발생시의 거동에 대해서는 catch문으로 기술할 수 있다.
BD-J 애플리케이션에서 입체 시 재생의 실현에 이용할 수 있는 API에는 Java2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)와, Globally Executable MHP specification(GEM1.0.2) for package media targets가 있다. 이들API를 이용하면 네트워크 처리를 위한 java.net, GUI 처리를 위한 java.awt, 언어 처리를 위한 java.lang, 기록매체에 대한 I/O처리를 위한 java.io, 유틸리티인 java.util, 미디어 프레임 워크를 위한 javax.media, HAVi 디바이스를 위한 org.havi.ui라고 하는 클래스의 메소드, 컨스트럭터(constructor), 인터페이스, 이벤트를 이용한 구조화 프로그래밍으로 3D 재생이 가능한 BD-J타이틀의 기술이 가능해진다.
또, BD-J모드를 위한 익스텐션 API(BD-J익스텐션이라 한다)를 이용함으로써 지금까지의 실시형태에서 설명한 입체 시 재생을 위한 데이터구조, 입체 시 재생에서의 재생 단위를 이용한 제어를 실현한다. 이 BD-J익스텐션은 java.net, java.awt, java.lang, java.io, java.util, javax.media 클래스의 메소드로부터의 인헤릿 메소드(inherit method)를 포함하고, 이들 클래스의 인터페이스를 임베디드 인터페이스(embedded interfaces), 슈퍼 인터페이스로 하고 있으므로, java.net, java.awt, java.lang, java.io, java.util, javax.media 클래스를 이용한 프로그래밍 기법의 연장선상에서 입체 시 재생을 전제로 한 BD-J타이틀을 작성할 수 있다.
예를 들어, BD-J모드를 위한 익스텐션 API는 재생장치 상태 설정이나 상태 취득을 명하는 설정 취득 클래스를 포함한다. 이러한 설정 취득 클래스는 플레이어상태 레지스터(PSR)의 보유치를 나타내는 컨스턴트 필드와 PSR의 보유치의 취득을 명하는 취득 메소드와 PSR의 보유치의 설정을 명하는 설정 메소드로 구성된다.
설정 취득 클래스의 메소드는 java.lang.Object 클래스의 메소드의 인헤릿 메소드를 포함한다. 또, 메소드 콜 시의 인수가 부정하면 java.lang 클래스의 이벤트인 java.lang.llleghalArgumentException 이벤트를 보낸다. 본 클래스는 java.lang.Object의 메소드나 이벤트를 계승하고 있으므로, 프로그래머는 java.lang.Object의 연장선에서 레지스터 세트의 보유치를 이용한 프로그램을 작성할 수 있다. 이상이 클래스 아카이브 파일에 대한 설명이다.
32. 2. 2:BD-J오브젝트의 상세
이어서, BD-J모드의 동작 모드 오브젝트인 BD-J오브젝트의 상세에 대하여 설명한다.
「BD-J오브젝트」는 BD-J모드에서의 재생장치의 거동의 상세를 규정한다. 그 거동의 상세는 대응하는 타이틀이 현재 타이틀이 되었을 때의 애플리케이션의 클래스 로드(1), 대응하는 타이틀이 현재 타이틀이 되었을 때의 애플리케이션 시그널링(2), 당해 애플리케이션 시그널링에 의해 기동된 애플리케이션이 GUI 처리를 실행할 때의 HAVi 디바이스 컨피규레이션(3), 당해 현재 타이틀에서의 플레이리스트액세스(4), 대응하는 타이틀이 현재 타이틀이 되었을 경우의 클래스 아카이브 파일의 캐시 인?캐시 아웃(5), 기동된 애플리케이션의 트리거가 되는 이벤트를 키에 할당한다고 하는 이벤트 할당(6)이 있다.
「클래스 로드」란 클래스 아카이브 파일에 아카이브 되고 있는 클래스 파일의 인스턴스를 플랫폼의 히프 영역에 생성하는 처리이며, 「애플리케이션 시그널링」은 클래스 파일의 인스턴스인 애플리케이션을 자동 기동시킬지 여부, 또는 애플리케이션의 생존 구간을 타이틀 바운더리로 할지 디스크 바운더리로 할지를 규정하는 제어이다. 타이틀 바운더리란 타이틀의 종료와 동시에 애플리케이션인 스레드를 히프 영역에서 소멸시킨다고 하는 관리이며, 디스크 바운더리란 디스크 이젝트와 동시에 애플리케이션인 스레드를 히프 영역에서 소멸시키는 관리이다. 반대로 디스크 이젝트가 되어도 스레드를 히프 영역에서 삭제하지 않는 제어를 「디스크 언바운더리」라고 한다. 「HAVi 디바이스 컨피규레이션」은 애플리케이션이 GUI 처리를 실행할때의 그래픽스 플레인의 해상도나 문자 표시에 이용하는 폰트 등을 규정하는 것이다.
「플레이리스트 액세스」란 기동된 애플리케이션이 재생을 명할 수 있는 플레이리스트나 타이틀 선택시에 자동적으로 재생해야 할 플레이리스트의 지정이다.
「클래스 아카이브 파일의 캐시 인」이란 클래스 로드의 대상이 되는 클래스 아카이브 파일을 캐시에 예측한다고 하는 처리이며, 「클래스 아카이브 파일의 캐시 아웃」이란 캐시에 존재하는 클래스 아카이브 파일을 캐시로부터 삭제한다고 하는 처리이다. 「애플리케이션 구동을 위한 이벤트 할당」은 사용자가 조작 가능한 키에 애플리케이션의 이벤트 리스너에 등록되어 있는 이벤트를 할당한다고 하는 것이다.
바이트코드 애플리케이션 중, BD-J오브젝트 내의 애플리케이션 관리테이블에서 애플리케이션 시그널링이 이루어지는 것을 「BD-J 애플리케이션」이라고 한다. , HDMV 타이틀을 BD-J 타이틀과 대비하면 상술의 HDMV 타이틀에서는 네비게이션 커멘드를 실행하기 위한 커멘드 인터프리터나 플레이리스트를 해독하여 재생하기 위한 재생 제어 엔진이라고 하는 모듈이 소프트웨어의 동작 주체가 된다.
이에 대해 BD-J 타이틀에서는 클래스 로드를 위한 클래스 로더나 애플리케이션 시그널링을 위한 애플리케이션 매니저, HAVi 디바이스, Java 미디어 프레임워크에 의한 플레이리스트 재생을 위한 재생 제어 엔진, 캐시 인?캐시 아웃 관리를 위한 캐시 매니저, 이벤트 처리를 위한 이벤트 매니저라고 하는 소프트웨어 군, 즉, 디지털 방송의 멀티미디어 플랫폼 단말에서의 소프트웨어 군과 많이 닮은 소프트웨어 군이 동작 주체가 되므로 BD-J 타이틀에서 HDMV 타이틀로의 전환, HDMV 타이틀에서 BD-J 타이틀로의 전환에서는 재생장치에서의 소프트웨어 구성이 크게 다른 것이 된다.
재생 모드가 전환된 후의 소프트웨어의 동작 주체에 있어서 최적의 것으로 되어 있는가의 확인과 전환 후의 동작 모드에 최적의 재생 모드의 선택이라고 하는 2개의 처리를 실현하기 위하여, 최적의 재생 모드를 선택하기 위한 프로시저를 현재 타이틀의 선택시에 실행한다.
32. 2. 3:BD-J오브젝트의 내부 구성
이후, BD-J오브젝트에 대해서 설명한다. 도 32는 BD-J오브젝트의 내부 구성의 일 예를 나타내는 도면이다. 본 도면에 나타내는 것과 같이 BD-J오브젝트는 「애플리케이션 관리테이블」, 「단말 관리테이블」, 「애플리케이션 캐시 정보」, 「플레이리스트 액세스 정보」, 「키 인터레스트 테이블」로 구성된다.
「애플리케이션 관리테이블」은 타이틀을 바운더리로 한 애플리케이션 시그널링을 애플리케이션 매니저나 클래스 로더에 지시하는 제어 테이블이며, 「단말 관리테이블」은 GUI를 실현하기 위한 HAVi 디바이스 컨피규레이션이나 GUI에 이용하는 폰트, 사용자 조작의 마스크의 유무를 멀티 미디어 홈 플랫폼(MHP)에 지시하는 관리테이블이다. 「애플리케이션 캐시 정보」는 타이틀 선택시의 아카이브 파일의 캐시 인/캐시 아웃을 캐시 매니저에 지시하는 제어 테이블이며, 「플레이리스트 액세스 정보」타이틀 선택시에서의 플레이리스트의 자동 재생의 지정을 재생 제어 엔진(PCE)에 지시하는 제어 테이블이다. 「키 인터레스트 테이블」은 키와 이벤트의 대응관계를 이벤트 매니저에 지시하는 제어 테이블이다.
인출선 bj1은 애플리케이션 관리테이블에서의 엔트리를 클로즈업해서 나타내고 있다. 이 인출선에 나타내는 것과 같이 애플리케이션 관리테이블의 엔트리는 타이틀에서 애플리케이션을 자동으로 기동시켜야할 것인지(AutoStart), 다른 애플리케이션으로부터의 호출을 기다려서 기동해야할 것인지(Present)라고 하는 기동의 방법을 나타내는 「제어 코드」와 「애플리케이션 타입」과 기동해야 할 BD-J 애플리케이션을 아카이브 한 아카이브 파일의 파일명이 되는 5자리 수의 수치를 이용하여 대상이 되는 애플리케이션을 나타내는 「애플리케이션 ID」와 「애플리케이션 기술자」를 포함한다. 인출선 bj2는 「애플리케이션 기술자」의 내부 구성을 클로즈업해서 나타내고 있다. 본 인출선에 나타내는 것과 같이 「애플리케이션 기술자」는 애플리케이션이 로드되는 경우의 「우선도」와 애플리케이션이 타이틀 언바운드인지 여부와 디스크 바운드인지 여부를 나타내는 「바인딩 정보」와 애플리케이션의 명칭을 나타내는 문자 열과 애플리케이션의 언어 속성을 나타내는 「언어 코드」와 애플리케이션에 대응 짓는 아이콘의 소재를 지시하는 「아이콘 로케이터」와 「애플리케이션의 프로파일 값」을 애플리케이션별로 저장하고 있다. 3D 재생 모드에 대응하는 애플리케이션에 대해서는 이 프로파일 값이=5로 설정된다. 인덱스 테이블에서의 BDMV 애플리케이션 정보의 입체 시 콘텐츠 존재 플래그가 1로 설정되는 것은 이 애플리케이션의 프로파일 값이=5로 설정되는 것이 요건이 된다.
인출선 bj3은 단말 관리테이블에서의 컨피규레이션 정보를 클로즈업해서 나타내고 있다. 컨피규레이션 정보는 그래픽스 플레인의 확보를 재생장치에 지시하는 정보이며, 이 인출선 bj3에 나타내는 것과 같이 단말 관리테이블은 HD3D_1920×1080, HD3D_1280×720, HD_1920×1080, HD_1280×720, QHD_960×540, SD, SD_50HZ_720×576, SD_60HZ_720×480의 어느 하나로 설정할 수 있다.
인출선 bj4는 플레이리스트 액세스 정보에서의 자동 재생 플레이리스트를 지정하는 정보의 내부 구성을 클로즈업해서 나타내고 있다. 인출선 bj4에 나타내는 것과 같이 자동 재생 플레이리스트를 지정하는 정보로 3D플레이리스트 1920×1080, 3D플레이리스트 1280×720, 2D플레이리스트 1920×1080, 2D플레이리스트 1280×720, 2D플레이리스트 720×576, 2D플레이리스트 720×480의 지정이 가능해진다.
어느 하나의 타이틀이 선택되었을 때, 재생장치는 선택된 현재 타이틀에 대응하는 것의 플레이리스트 액세스 정보에 의해 지정된 플레이리스트의 재생을 애플리케이션으로부터의 재생 지시를 기다리는 일 없이 개시하고, 플레이리스트 재생의 종료보다 BD-J 애플리케이션 실행이 먼저 종료한 경우에는 플레이리스트의 재생을 계속해서 실행한다.
이러한 선행 재생에 의해 애플리케이션의 클래스 로드에 시간이 걸려서 묘화 이미지가 표시되지 않아서 대화 화면이 좀처럼 출력되지 않는 것과 같은 경우에 플레이리스트 재생에 의한 재생 영상이 그대로 출력되게 되므로, 애플리케이션에서의 기동 지연이 현저한 경우에도 우선 플레이리스트의 재생 영상을 사용자에게 시청하게 할 수 있다. 애플리케이션의 스타팅 지연 동안 무엇인가가 표시되고 있는 상태로 해 둘 수 있으므로 사용자에게 안심감을 줄 수 있다.
33. 1:타이틀 전환시에서의 그래픽스 플레인 설정
도 33은 타이틀 전환시에서의 플레인 메모리의 해상도 설정의 처리순서의 일 예를 나타내는 플로차트이다. 본 플로차트는 스텝 S61, 스텝 S62, 스텝 S63, 스텝 S66의 판정 결과에 따라서 스텝 S64, 스텝 S65, 스텝 S67의 처리를 선택적으로 실행한다.
스텝 S61은 자동 재생 플레이리스트가 존재하는가 여부의 판정이며, 스텝 S62는 직전의 재생 모드는 3D인지 여부의 판정이다. 스텝 S63은 선택된 타이틀의 자동 재생 플레이리스트가 1920×1080의 3D플레이리스트 또는 1280×720의 3D플레이리스트인지 여부의 판정이다.
자동 재생 플레이리스트가 존재하지 않는 경우, 스텝 S66에서 동작 모드 오브젝트의 디폴트 해상도가 HD3D_1920×1080, HD3D_1280×720인지 여부가 판정되며, 만약 Yes이면 스텝 S65에서 재생 모드를 3D로 설정하고, 동작 모드 오브젝트에서의 디폴트 해상도에 따라서 1920×1080, 혹은 1280×720으로 설정한다. 만약 No이면 스텝 S67에서 재생 모드를 2D로 설정하고, 해상도를 동작 모드 오브젝트에 서의 디폴트 해상도로 설정한다.
자동 재생 플레이리스트가 존재하지 않는 경우, 스텝 S62에서 직전의 재생 모드가 2D인지 여부, 또는 스텝 S63에서 플레이리스트가 3D플레이리스트이고, 그 해상도가 1920×1080, 1280×720인지 여부를 판정한다. 스텝 S62, 스텝 S63의 어느 쪽이 No이면 스텝 S64에서 재생 모드를 2D로 설정하고, 해상도를 자동 재생 플레이리스트의 해상도로 설정한다.
스텝 S62가 Yes, 스텝 S63도 Yes로 판정된 경우, 스텝 S65에서 재생 모드를 3D로 설정하고, 해상도를 자동 재생 플레이리스트의 해상도에 따라서 1920×1080, 또는, 1280×720으로 설정한다.
33. 2:재생 모드와 그래픽스 플레인 컨피규레이션의 관련성
입체 시 재생에 대응한 3D플레이리스트가 재생 대상으로 선택됨으로써 재생장치의 모드는 2D 재생 모드에서 3D 재생 모드로 전환된다. 그러나 재생 모드가 3D 재생 모드로 되었다고 하더라도 그래픽스 플레인은 1 플레인 구성 상태를 유지한다. 즉, setConfiguraion API를 콜함으로써 그래픽스 플레인의 컨피규레이션을 1 플레인 구성에서 2 플레인 구성으로 전환하는 것이 요구되지 않는 이상 그래픽스 플레인은 1 플레인 구성의 상태를 유지한다.
마찬가지로 현재 타이틀의 선택시에 있어서 입체 시 재생에 대응한 3D플레이리스트가 자동 재생 플레이리스트로서 선택되는 것으로도 재생장치의 모드는 2D 재생 모드에서 3D 재생 모드로 전환된다. 그러나 입체 시 재생에 대응한 3D플레이리스트가 자동 재생 플레이리스트로 선택되고, 재생 모드가 3D 재생 모드가 되었다고 하더라도 그래픽스 플레인은 1 플레인 구성의 상태를 유지한다.
그런데 현재 타이틀의 선택시에 현재 타이틀에 대응하는 BD-J오브젝트의 HAVi 디바이스 컨피규레이션이 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인의 컨피규레이션을 나타내고 있는 경우, 그래픽스 플레인의 컨피규레이션은 1 플레인 구성에서 2 플레인 구성으로 자동으로 전환된다. 즉, 1 플레인 구성에서 2 플레인 구성으로의 컨피규레이션 전환은 현재 타이틀의 선택시에 현재 타이틀에 대응하는 BD-J오브젝트의 HAVi 디바이스 컨피규레이션이 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인의 컨피규레이션을 나타내고 있거나, 또는 2 플레인 구성을 요구하는 setConfiguraion API가 요구되는 것이 요건이 된다.
33. 3:그래픽스 묘화 요구 무시의 필연성
BD-J오브젝트의 HAVi 디바이스 컨피규레이션에서 그래픽스 플레인이 2 플레인 구성인지 1 플레인 구성인지가 설정되므로, 현재 타이틀의 선택시에 1 플레인 구성에서 2 플레인 구성으로의 컨피규레이션 전환, 1 플레인 구성에서 2 플레인 구성으로의 컨피규레이션 전환이 실행된다. 이러한 컨피규레이션 전환에서는 제 1 실시형태에서 설명한 상황, 즉, 1 플레인 구성에서 2 플레인 구성으로의 컨피규레이션의 전환 후에 2D 그래픽스 묘화 요구가 java.awt.Graphics에 도달한다고 하는 상황이 발생한다. 그러므로 현재 타이틀의 선택시에 1 플레인 구성에서 2 플레인 구성으로의 컨피규레이션의 전환시에는 2D 그래픽스 묘화 요구의 무효화, 그래픽스 플레인 카피, 우측 눈 용 출력계통의 전환, 3D 그래픽스 묘화 요구 수용을 실행하고, 2 플레인 구성에서 1 플레인 구성으로의 컨피규레이션 전환시에는 3D 그래픽스 묘화 요구의 금지, 우측 눈 용 출력계통의 전환, 2D 그래픽스 묘화 요구의 수용을 실행한다. 이렇게 함으로써 1 플레인 구성에서 2 플레인 구성으로의 컨피규레이션의 전환 후에 2D 그래픽스 묘화 요구가 java.awt.Graphics에 도달하는 것에 의한 좌우의 시각의 불일치 발생을 해소할 수 있다.
이상과 같이 본 실시형태에 의하면 현재 타이틀의 선택시에 BD-J오브젝트에 의거하여 HAVi 디바이스 컨피규레이션에 규정된 해상도를 이용해 입체 시 재생을 실현할 수 있다.
(제 6 실시형태)
본 실시형태에서는 1 플레인 구성인 1plane+Offset 모드에서 화상이 돌출하는 원리에 대해서 설명한다. 1plane+Offset 모드에서는 좌측 눈 동공 입사기간에서의 묘화 이미지의 기입 위치를 우측방향으로 어긋나게 하고, 우측 눈 동공 입사기간에서의 묘화 이미지의 기입 위치를 좌측방향으로 어긋나게 함으로써 입체 시 영상을 표시화면보다 앞에 있도록 보이게 할 수 있다.
34:1plane+Offset 모드에서 화상을 돌출하게 하는 원리
도 34는 플레인 오프셋의 부호가 정인 경우에 상이 표시화면보다 앞에 있는 것처럼 보이는 원리를 설명하기 위한 도면이다.
본 도면에서 동그라미로 나타내는 것은 표시화면상에 표시되는 상이다. 먼저, 2D 재생 모드인 경우에는 우측 눈에 보이는 상도 좌측 눈에 보이는 상도 같은 위치이므로 두 눈을 이용하여 이 상을 보았을 때의 초점 위치는 표시화면상에 위치한다(도 34 (a)). 결과적으로 표시되는 상은 표시화면상에 위치한다.
좌측 눈 동공 입사기간에서 좌측 눈에 보이는 상은 플레인 오프셋이 0의 경우에 비해 우측의 위치에 보이도록 시프트해서 표시한다. 이때, 우측 눈에는 셔터안경(500)에 의해 아무것도 보이지 않도록 한다. 한편, 우측 눈에 보이는 상은 플레인 오프셋이 0의 경우에 비해 좌측의 위치에 보이도록 시프트해서 표시한다. 이때, 좌측 눈에는 셔터안경(500)에 의해 아무것도 보이지 않도록 한다(도 34 (b)).
인간은 두 눈을 이용하여 초점을 맞춰서 그 초점 위치에 상이 있도록 인식한다. 따라서 셔터안경(500)에 의해 좌측 눈에 상이 보이는 상태와 우측 눈에 상이 보이는 상태를 교호로 짧은 시간간격으로 전환하면 인간의 두 눈은 표시화면보다 앞의 위치에 초점 위치를 맞추려고 하며, 결과적으로 표시화면보다 앞에 위치하는 초점 위치에 상이 있는 것처럼 착각을 일으킨다(도 34 (c)).
35:1plane+Offset 모드에서 화상을 표시화면에서 안쪽으로 보이게 하는 원리
도 35는 화상이 표시화면보다 안쪽에 있는 것처럼 보이게 하는 원리를 설명하기 위한 도면이다. 도 35 (a)에서 동그라미로 나타내는 것은 표시화면상에 표시되는 상이다. 먼저, 2D모드에서 우측 눈에 보이는 상도 좌측 눈에 보이는 상도 같은 위치이므로, 두 눈을 이용하여 이 상을 보았을 때의 초점 위치는 표시화면상에 위치한다(도 35 (a)). 결과적으로 표시되는 상은 표시화면상에 위치한다.
한편, 좌측 눈 동공 입사기간에서 좌측 눈에 보이는 상은 플레인 오프셋이 0의 경우에 비해 좌측의 위치에 보이도록 한다. 이때, 우측 눈에는 셔터안경(500)에 의해 아무것도 보이지 않게 한다. 한편, 우측 눈에 보이는 상은 오프셋이 0의 경우에 비해 우측의 위치에 보이도록 한다. 이때, 좌측 눈에는 셔터안경(500)에 의해 아무것도 보이지 않게 한다(도 35 (b)).
셔터안경(500)에 의해 좌측 눈에 상이 보이는 상태와 우측 눈에 상이 보이는 상태를 교호로 짧은 시간간격으로 전환하면 인간의 두 눈은 표시화면보다 안쪽의 위치에 초점 위치를 맞추려고 하고, 결과적으로 표시화면보다 안쪽의 위치에 상이 있는 것처럼 착각을 일으킨다(도 35 (c)).
36:1plane+Offset 모드에서의 오프셋의 정부(正負)의 차이
도 36은 정과 부의 플레인 오프셋의 보이는 방법의 차이의 일 예를 나타내는 도면이다.
본 도면(a)는 좌측 눈 동공 입사기간에서의 묘화 이미지의 기입 위치를 우측방향으로 어긋나게 하고, 우측 눈 동공 입사기간에서의 묘화 이미지의 기입 위치를 좌측방향으로 어긋나게 하는 경우를 나타낸다. 도 34에 나타낸 것처럼 좌측 눈 동공로의 입사 출력시의 그래픽스가 우측 눈 동공로의 입사 출력시의 그래픽스보다 오른쪽의 위치에 보이게 된다. 즉, 폭주점(초점 위치)이 스크린보다 앞에 오므로 그래픽스도 앞에 보이게 된다.
본 도면 (b)는 좌측 눈 동공 입사기간에서의 묘화 이미지의 기입 위치를 좌측방향으로 어긋나게 하고, 우측 눈 동공 입사기간에서의 묘화 이미지의 기입 위치를 우측방향으로 어긋나게 하는 경우를 나타낸다. 도 35에 나타낸 것처럼 좌측 눈 동공로의 입사 출력시의 그래픽스가 우측 눈 동공로의 입사의 출력시의 그래픽스보다 왼쪽의 위치에 보이게 된다. 즉, 폭주점(초점 위치)이 스크린보다 안쪽에 가므로 그래픽스도 안쪽에 보이게 된다. 이상이 1 플레인 구성의 컨피규레이션인 경우의 입체 시 화상의 보이는 방법의 설명이다.
36. 1:그래픽스 플레인에서의 1plane+Offset 모드의 실현
그래픽스 플레인은 복수의 라인 메모리로 이루어지고, 그래픽스를 구성하는 ARBG 형식의 화소 데이터는 그래픽스 플레인의 라인 메모리를 구성하는 더블 워드(32 비트) 길이의 기억소자에 각각 저장된다. 그리고 그래픽스를 구성하는 화소 데이터의 화면상의 좌표는 예를 들어 그래픽스 플레인에서의 화소 데이터의 라인 메모리를 지시하는 ROW 어드레스와,그 라인 메모리에서의 기억소자를 지시하는 COLUMN 어드레스의 세트에 대응한다.
1plane+Offset 모드에서는 그래픽스 플레인에서의 화소 데이터의 X좌표에 수평 방향의 오프셋을 부여함으로써 입체 시를 실현한다. 상술한 것과 같이 OSD를 구성하는 화소 데이터의 화면상의 좌표는 그래픽스 플레인에서의 화소 데이터의 라인 메모리를 지시하는 ROW 어드레스와, 그 라인 메모리에서의 기억소자를 지시하는 COLUMN 어드레스의 세트에 대응하므로 그래픽스 플레인에서의 그래픽스의 각 화소 데이터의 기억소자를 지시하는 COLUMN 어드레스를 수평 방향의 오프셋에 상당하는 어드레스만큼 증감시키면 화소 데이터의 좌표를 좌우측방향으로 변위시킬 수 있다. 화소 데이터의 어드레스 시프트는 어드레스 조정을 수반하는 화소 데이터의 카피 처리에 의해 실현할 수 있다. 여기서, 수평 방향의 오프셋에서 지정되는 화소 수 X만큼 화소 데이터의 X좌표를 변경하고 싶은 경우, 화소 데이터의 카피시에 그 카피 처가 되는 기억소자를 지시하는 COLUMN 어드레스를 화소 수 X에 상당하는 주소만큼 전후에 조정해 둔다. 이러한 조정을 전제로 해서 카피를 실행하면 화소 데이터의 좌표는 좌우측방향으로 시프트 하게 된다. 플레인 합성기가 레이어 합성을 할 때 그래픽스 플레인을 구성하는 라인 메모리와 플레인 합성기 내의 라인 메모리의 사이에서 상기 화소 데이터의 카피는 이루어지므로, 이 카피시에 상술한 것과 같은 어드레스 조정을 하면 그래픽스 플레인의 좌우 시프트는 가능해진다.
좌우측방향의 시프트 양으로는 1plane+Offset 모드에서 비디오 스트림의 액세스 유닛 구조에 포함된 오프셋 시퀀스에서의 오프셋을 이용한다. 오프셋 시퀀스는 GOP에서의 각 프레임마다 수평 방향의 오프셋이 규정되어 있으므로 1plane+Offset 모드에서의 화소의 돌출 정도는 비디오 스트림과 치밀하게 동기 한 것이 된다.
이상과 같이 본 실시형태에 의하면 1 플레인 구성에서 간이하게 입체 시 재생을 실현할 수 있으므로 바이트코드 애플리케이션에 의한 그래픽스 묘화 처리의 간이화를 실현할 수 있다.
<비고>
이상, 본원의 출원 시점에서 출원인이 알 수 있는 최선의 실시형태에 대해서 설명하였으나, 이하에 설명하는 기술적 토픽에 대해서는 개량이나 변경 실시를 더 부가할 수 있다. 각 실시형태에 설명한 것과 같이 실시하거나, 이들 개량?변경을 시행할지 여부는 모두 임의적이며, 실시하는 사람의 주관에 의한 것임에 유의하기 바란다.
(리무버블 미디어의 종류)
기억매체의 종류는 전형적으로는 SD카드 등의 플래시 미디어가 이용되지만, USB 메모리, 리무버블 하드 디스크, 그 외 임의의 종류의 기억매체여도 좋다.
(사용 불가의 묘화 요구가 이루어졌을 때의 에러 핸들링)
제 2 실시형태에서는 선택되고 있는 합성 모드에 의해 사용 가능한 묘화 요구와 사용 불가의 묘화 요구가 존재한다. 사용 불가의 묘화 요구가 이루어진 경우에서의 에러 처리로는 이하와 같이 처리하는 것이 바람직하다.
먼저, 이미지 묘화 요구(801)는 좌측 눈 용 그래픽스 플레인(9)에만 묘화를 실행하는 API이다. 따라서 합성 모드 1과 합성 모드 3일 때에 호출된 경우, 합성의 결과인 영상출력에서는 좌측 눈만이 갱신된 영상이 되고, 우측 눈은 갱신 전의 영상인 채로 남게 된다. 즉, 좌측 눈의 영상과 우측 눈의 영상이 어긋나 버려서 시청자에게 불쾌감을 줄 우려가 있으므로, 이러한 묘화 요구는 금지할 필요가 있다. 그러므로 합성 모드 2 및 합성 모드 4에서 이미지 묘화 요구(801)가 호출된 경우에만 좌측 눈 용 그래픽스 플레인(9)으로의 카피 처리를 실행하는 것으로 하고, 합성 모드 1 혹은 합성 모드 3에서 호출된 경우에는 당해 호출을 무시하는 것으로 한다. 종래의 BD-J사양에서는 이미지 묘화 요구(801)에 상당하는 기능은 예외를 발생하지 않는 API로 규정되고 있으므로 이러한 구성을 취함으로써 종래의 평면 시 전용의 재생장치의 사양과의 모순을 발생시키는 일 없이 좌측 눈의 영상과 우측 눈의 영상의 부정합을 확실히 방지할 수 있다.
또, 종래 사양과는 행동이 다르지만, 당해 호출을 무시하는 것이 아니라 예외를 발생하는 것과 같은 구성으로 해도 좋다.
(합성 모드 1, 3에서 금지해야 할 묘화 처리)
또, 제 3 실시형태에서는 「이미지 카피」만을 좌측 눈 용 그래픽스 플레인으로의 묘화 요구의 예로 들고 있으나, BD-J의 종래 사양에 존재하는 그 외의 묘화 처리, 예를 들어 「직사각형 전부 칠하기」나 「문자 열 묘화」등에 대해서도 마찬가지로 합성 모드 1 또는 합성 모드 3에서는 당연히 금지로 해야 한다.
(합성 모드 1 또는 합성 모드 3에서 좌우 이미지 묘화 요구(802)가 요구된 경우의 취급)
좌우 이미지 묘화 요구(802)는 좌측 눈 용 그래픽스 플레인(9)과 우측 눈 용 그래픽스 플레인(10)을 동시에 묘화하는 기능이며, 합성 모드 1 또는 합성 모드 3에서 호출된 경우에는 의미를 갖지만, 합성 모드 2 및 합성 모드 4에서 호출된 경우에는 좌측 눈 용의 묘화 밖에 의미를 갖지 않으므로 BD-J 애플리케이션의 잘못일 가능성이 크다. 그러므로 합성 모드 1 또는 합성 모드 3에서 좌우 이미지 묘화 요구(802)가 호출된 경우에만 양 그래픽스 플레인으로의 묘화 처리를 실행하는 것으로 하고, 합성 모드 2 및 합성 모드 4에서 호출된 경우에는 예외를 발생시키는 것으로 한다.
좌우 이미지 묘화 요구(802)는 종래의 BD-J사양에는 존재하지 않는 새롭게 정의되는 API이며, 예외를 발생시켜도 종래 사양과의 모순은 발생하지 않으므로 확실히 개발자에게 에러를 통지하기 위해서 예외를 발생시키는 방법이 바람직하지만, 이미지 묘화 요구(801)와 마찬가지로 당해 호출을 무시하는 구성으로 해도 좋다.
(합성 모드 3 또는 합성 모드 4에서 백그라운드 묘화 요구(804)가 요구된 경우의 취급)
백그라운드 묘화 요구(804)에 대해서도 마찬가지로 합성 모드 3 및 합성 모드 4에서만 의미를 갖고, 합성 모드 1 또는 합성 모드 2에서 호출된 경우에는 합성 결과의 영상출력이 좌측 눈과 우측 눈에서 어긋나 버리므로 금지할 필요가 있다. 금지의 방법으로는 좌우 이미지 묘화 요구(802)와 마찬가지로 예외를 발생시키는 것으로 하지만, 당해 호출을 무시하는 구성으로 해도 좋다.
백그라운드 묘화 요구(805)에 대해서도 마찬가지로 합성 모드 1 또는 합성 모드 2에서만 의미를 갖고, 합성 모드 3 및 합성 모드 4에서 호출된 경우에는 BD-J 애플리케이션의 잘못일 가능성이 크기 때문에 금지하는 것이 바람직하다. 금지의 방법으로는 좌우 이미지 묘화 요구(802)와 마찬가지로 예외를 발생시키는 것으로 하지만, 당해 호출을 무시하는 구성으로 해도 좋다.
이상과 같이, 특히 이미지 묘화 요구(801) 및 백그라운드 묘화 요구(804)에 대해 묘화 요구를 접수하는 합성 모드를 제한함으로써 BD-J 애플리케이션이 잘못한 합성 모드로 묘화를 실행하려고 한 경우에도 입체 시의 BD-ROM 재생기기 상에서 발생할 수 있는 좌측 눈 용 영상과 우측 눈 용 영상의 부정합이라고 하는 문제를 방지하는 것이 가능해진다.
(묘화 요구를 접수한 후의 부정합 회피)
지금까지의 실시형태에서는 금지되어 있는 묘화 요구가 발행된 경우에는 당해 요구를 무시하거나 예외를 발생시키는 구성으로 했지만, 묘화 요구를 접수한 후에 좌측 눈 용 영상과 우측 눈 용 영상의 부정합이 발생하지 않도록 처리하는 구성으로 해도 좋다. 구체적으로는 예를 들어 합성 모드 1 또는 합성 모드 3에서 이미지 묘화 요구(801)가 호출된 경우에는 좌측 눈 용 그래픽스 플레인(9)에 대해서만 묘화 처리를 실행하는 것이 아니라, 좌측 눈 용 그래픽스 플레인(9) 및 우측 눈 용 그래픽스 플레인(10)에 대해서 동시에 동일한 묘화 처리를 적용함으로써 좌측 눈 용 영상과 우측 눈 용 영상의 부정합을 방지할 수 있다. 또, 합성 모드 2 또는 합성 모드 4에서 좌우 이미지 묘화 요구(802)가 호출된 경우에는 묘화 요구 중의 좌측 눈 용 그래픽스 플레인(9)에 대한 묘화 처리 부분만을 추출해서 실행하면 그래픽스 플레인이 1 플레인의 상황에서도 좌우 이미지 묘화 요구(802)를 처리하는 것이 가능해진다. 또, 합성 모드 전환 중에 존재하는 이미지 묘화 요구(801) 및 좌우 이미지 묘화 요구(802)의 양쪽이 금지되어 있는 타이밍에 이들 묘화 요구가 호출되는 경우에 대해서는 당해 묘화 요구를 일단 보류해 두고, 합성 모드 전환 처리가 완료한 타이밍에 처리를 재개하도록 하면 좋다.
(합성 모드의 전환 횟수)
또, 그래픽스 플레인의 전환과 백그라운드 플레인의 전환의 양쪽이 필요한 경우에는 플레인 합성기(20)의 합성 모드 전환을 1회로 끝내도록 해도 좋다. 예를 들어, 합성 모드 전환에 시간이 걸리는 경우 등에 있어서는 합성 모드 전환을 1회로 끝내는 쪽이 바람직하다. 예를 들어, 그래픽스 플레인과 백그라운드 플레인의 쌍방을 1 플레인에서 2 플레인으로 전환, 즉 합성 모드 4에서 합성 모드 1로 전환하는 경우에 대해 생각한다. 먼저, S1001의 1 플레인용 묘화 요구의 금지를 그래픽스 플레인과 백그라운드 플레인의 쌍방에 대해서 실행한다, 즉, 이미지 묘화 요구(801) 및 백그라운드 묘화 요구(804)의 양쪽을 금지한다. 이어서, S1002의 카피 처리에 대해서도 그래픽스 플레인과 백그라운드 플레인의 쌍방에 대해서 좌측 눈 용 플레인에서 우측 눈 용 플레인으로의 카피를 실행한다. 다음에, S1003의 합성 모드 전환 처리로 플레인 합성기(20)를 합성 모드 4에서 합성 모드 1로 직접 전환한다. 최후에, S1004의 2 플레인용 묘화 요구의 금지의 해제에 대해서도 그래픽스 플레인과 백그라운드 플레인의 쌍방에 대해서 실행한다, 즉, 좌우 이미지 묘화 요구(802) 및 백그라운드 묘화 요구(805)의 양쪽의 금지를 해제하면 좋다.
(2D 재생 모드에서의 합성 모드)
제 3 실시형태에서는 1 플레인에서의 2D 재생 모드의 합성 모드에서는 항상 좌측 눈 용의 플레인만을 사용하는 구성으로 했지만, 1 플레인의 합성 모드에서도 좌측 눈 용 플레인만을 사용할지 우측 눈 용 플레인만을 사용할지를 선택 가능하게 하는 구성을 취해도 좋다. 예를 들어, 비디오 스트림이 좌측 눈 용의 영상이 메인인지, 우측 눈 용의 영상이 메인인지를 나타내는 정보를 갖고 있는 경우에는 그래픽스 플레인 및 백그라운드 플레인이 1 플레인일 때에는 비디오 스트림에 맞춘 형태로 좌측 눈 용 플레인만을 참조할지 우측 눈 용 플레인만을 참조할지를 결정해야 한다. 이 경우, 비디오 스트림이 좌우 어느 쪽이 메인인지의 상태를 재생장치(200) 내에 보유해 두고, 합성 모드 2 및 합성 모드 4에서는 좌우 어느 하나의 그래픽스 플레인을 참조할지를 상기 상태에 의거하여 선택하며, 마찬가지로 합성 모드 3 및 합성 모드 4에서도 좌우 어느 하나의 백그라운드 플레인을 참조할지를 상기 상태에 의거하여 선택하도록 하면 좋다. 이러한 구성을 취함으로써 예를 들어 비디오 스트림이 우측 눈 용의 영상이 메인으로 되어 있는 상황하에서 그래픽스 플레인을 2 플레인에서 1 플레인으로 합성 모드 전환을 실행한 경우, 전환 전의 우측 눈 용 그래픽스 플레인(10)의 묘화 내용이 계속해서 전환 후에도 참조되게 되므로 비디오 스트림과의 정합성이 보다 취해진 합성 모드 전환을 실현할 수 있다.
(우측 눈 용 플레인에서 좌측 눈 용 플레인으로의 카피 타이밍)
제 3 실시형태의 합성 모드 2~4에서 그래픽스 플레인 및 백그라운드 플레인은 항상 좌측 눈 용 플레인만을 참조한다고 하는 제 3 실시형태인 상태라도, 그래픽스 또는 백그라운드의 합성 모드를 2 플레인에서 1 플레인으로 천이시킬 때에 비디오 스트림이 우측 눈 용의 영상이 메인으로 되어 있는 경우에만 그래픽스 또는 백그라운드의 우측 눈 용 플레인의 내용을 좌측 눈 용 플레인에 카피를 하도록 하면 동일한 효과를 얻을 수 있다.
(좌측 눈 용의 영상, 우측 눈 용의 영상의 식별)
제 3 실시형태에서는 비디오 스트림이 좌측 눈 용의 영상이 메인인지 우측 눈 용의 영상이 메인인지를 나타내는 정보를 가지고 있는 것으로 했지만, 당해 정보를 BD-J 애플리케이션이 지정하도록 해도 좋다.
(오브젝트 지향 프로그래밍 언어에 의한 3D플레이리스트 재생순서의 기술)
각 실시형태에서는 오브젝트 지향 프로그래밍 언어에 의한 3D플레이리스트 재생 순서는 이하와 같이 기술해도 좋다.
3D플레이리스트인 플레이리스트 파일 00001.mpls를 재생하려고 하는 경우의 기술은 이하와 같다.
i) 3D플레이리스트의 플레이리스트 파일의 파일 패스(bd://1.PLAYLIST:00001)를 인수로 한 BDLocator 클래스의 인스턴스를 생성한다. 이 BDLocator 클래스의 인스턴스 변수를“loc”로 한 경우, BDLocator loc = newBDlocator(bd://1.PLAYLIST:00001)라고 기술한다.
ii) BDLocator 클래스의 인스턴스 변수의 변수 명을 인수로 한 MediaLocator 클래스의 인스턴스를 생성한다. BDLocator 클래스의 인스턴스 변수의 변수 명이“loc”이고, MediaLocator 클래스의 인스턴스 변수의 변수 명을 m1로 하면,
MediaLocator m1 = new MediaLocator(loc)로 기술한다.
iii) MediaLocator 클래스의 인스턴스 변수의 변수 명을 인수로 한 javax.media.Manager.creatPlayer 클래스의 인스턴스, 즉 플레이어 인스턴스를 생성한다. MediaLocator 클래스의 인스턴스 변수의 변수 명이 m1이고, 플레이어 인스턴스의 인스턴스 변수의 변수 명이 Player이면 Player=Manager.creatPlayer(m1);로 기술한다.
iv) 최후에, JMF 플레이어 인스턴스의 멤버 함수인 start()를 콜함으로써 플레이리스트 재생을 개시한다. 플레이어 인스턴스의 인스턴스 변수의 변수 명이 Player이면 Player.start()로 기술한다.
(입체 시 대화 화면의 기술)
2개의 버튼 부재를 갖는 입체 시 대화 화면을 작성하는 경우의 바이트코드 애플리케이션은 이하의 (h-1) (h-2) (h-3) (h-4)????와 같이 기술해도 좋다.
(h-1) 그래픽스 디바이스의 인스턴스를 인수로 이용하여 그래픽스 디바이스의 풀 스크린 씬의 인스턴스를 생성한다. 구체적으로는 Hscreen.getDefaultHscreen(). getDefaultHGraphicsDevice()의 인스턴스를 인수로 이용하여 HsceneFactory.getinstance(). getFullScreenScene의 인스턴스를 생성한다. HsceneFactory.getinstance(). getFullScreenScene 인스턴스의 인스턴스 변수 명을“hs”로 한 경우,
 Hscene hs=HsceneFactory.getinstance(). getFullScreenScene(Hscreen.getDefaultHscreen(). getDefaultHGraphicsDevice());로 기술한다.
(h-2) java.awt의 Flowlayout()의 인스턴스를 인수로 Hscene의 setLayout 메소드를 콜 한다. Hscene 클래스 인스턴스의 인스턴스 변수 명을“hs”로 한 경우, hs.setLayout(new FlowLayout());로 기술한다.
(h-3) Hscreen 클래스의 인스턴스 변수를 인수로 이용하여 java.awt의 MediaTracker 클래스의 인스턴스를 생성한다. Hscreen 클래스 인스턴스의 인스턴스 변수 명을“hs”로 하고, MediaTracker 클래스의 인스턴스 변수를“mt”로 한 경우,
MediaTracker mt=newMediaTracker(hs);로 기술한다.
(h-4) 좌측 눈 용 이미지 파일 및 우측 눈 용이미지 파일의 파일명을 인수로 이용하여 StereoGraphics#drawImage를 콜함으로써 노멀 상태의 이미지 클래스의 인스턴스, 포커스 상태의 이미지 클래스의 인스턴스, 액션 상태의 이미지 클래스의 인스턴스를 작성한다.
예를 들어, 버튼 부재의 노멀 상태의 이미지 클래스의 인스턴스 변수의 변수 명을 normal로 하고, 좌측 눈 용 이미지 파일의 파일명을“NormalButton1.bmp”, 우측 눈 용이미지 파일의 파일명을“NormalButton2.bmp”로 한 경우,
Image normal = StereoGraphics#drawImage(x1, y1, x2, y2, NormalButton1.bmp, x3, y3, x4, y4, NormalButton2.bmp);
로 기술한다.
예를 들어, 버튼 부재의 포커스 상태의 이미지 클래스의 인스턴스 변수의 변수 명을 focused로 하고, 좌측 눈 용 이미지 파일의 파일명을“FocusedButton1.bmp”, 우측 눈 용이미지 파일의 파일명을“FocusedButton2.bmp”로 한 경우,
Image focused = StereoGraphics#drawImage(x1, y1, x2, y2, FocusedButton1.bmp, x3, y3, x4, y4, FocusedButton2.bmp);
로 기술한다.
예를 들어, 버튼 부재의 액션 상태의 이미지 클래스의 인스턴스 변수의 변수 명을 actioned로 하고, 좌측 눈 용 이미지 파일의 파일명을“actionedButton1.bmp”, 우측 눈 용이미지 파일의 파일명을“actionedButton2.bmp”로 한 경우,
Image actioned = StereoGraphics#drawImage(x1, y1, x2, y2, actionedButton1.bmp, x3, y3, x4, y4, actionedButton2.bmp);
로 기술한다.
(h-5) 상태 이미지를 인수로 MediaTracker 클래스의 addImage 메소드를 콜함으로써 MediaTracker 클래스의 인스턴스에 노멀 상태의 상태 이미지, 포커스 상태의 상태 이미지, 액션 상태의 상태 이미지를 추가한다.
MediaTracker 클래스 인스턴스의 인스턴스 변수 명을 mt로 한 경우,
mt.addImage(normal, 0);
mt.addImage(focused, 0);
mt.addImage(actioned, 0);로 기술한다.
(h-6) java.awt의 HGraphicsButton 클래스의 인스턴스를 생성한다. HGraphicsButton 클래스 인스턴스의 인스턴스 변수 명을“hgb1, hgb2”로 하고, 버튼 부재의 상태가“normal”, “focused”, “actioned”인 경우,
hgb1 = new HGraphicsButton(normal, focused, actioned);
hgb2 = new HGraphicsButton(normal, focused, actioned);
로 기술한다.
(h-7) setLayout 클래스의 멤버 함수인 add()를 사용하여 setLayout 클래스의 인스턴스에 HGraphicsButton 클래스의 인스턴스를 추가한다. setLayout 클래스의 인스턴스 변수의 변수 명을“hs”로 하고, 추가해야 할 HGraphicsButton 클래스의 인스턴스의 인스턴스 명을“hgb1, hgb2”로 한 경우, hs.add(hgb1); hs.add(hgb1);로 기술한다.
(h-8) setLayout 클래스의 멤버 함수인 setVisible 메소드를 사용하여 setLayout 클래스의 인스턴스를 가시화한다. setLayout 클래스의 인스턴스 변수의 변수 명을“hs”로 한 경우, hs.setVisible(true);로 기술한다.
(h-9) HGraphicsButton 클래스의 멤버 함수인 requestFocus 메소드를 사용하여 HGraphicsButton 클래스의 인스턴스를 포커스 상태로 한다. HGraphicsButton 클래스의 인스턴스의 변수 명을“hgb1”로 한 경우, hgb1.requestFocus();로 기술한다.
(재생장치(200)와 텔레비전(400)의 접속)
재생장치(200)와 텔레비전(400)의 접속은 고 밴드 폭 전송 기능을 갖는 디지털 인터페이스를 개재하여 이루어지는 것이 바람직하다.
고 밴드 폭 전송 기능을 갖는 디지털 인터페이스는 홈시어터 시스템에서의 다른 기기와 인터페이스를 개재하여 접속되었을 때, 네고시에이션 페이즈(negotiation phase)를 거쳐서 데이터 전송 페이즈로 이행하여 데이터 전송을 실행한다.
이 네고시에이션 페이즈는 디지털 인터페이스의 텔레비전의 케이퍼빌리티(디코드 능력, 재생 능력, 표시 주파수를 포함한다)를 파악하여 플레이어 설정 레지스터에 설정해 두고, 이후의 전송을 위한 전송 방식을 정하는 것이며, 상호 장치의 정당성을 서로 확인하는 상호 인증 페이즈를 포함한다. 이 네고시에이션 페이즈를 거쳐서 레이어 합성이 이루어진 픽처 데이터에서의 1 라인 분의 비 압축?평문 형식의 화소 데이터를 텔레비전에서의 수평 동기 기간에 따라서 텔레비전에 높은 전송 레이트로 전송한다. 한편, 텔레비전에서의 수평 귀선 기간, 및, 수직 귀선 기간에 재생장치와 접속된 다른 장치(텔레비전뿐만 아니라 앰프, 스피커를 포함한다)에 비 압축?평문 형식의 오디오 데이터를 전송한다. 이렇게 함으로써 텔레비전, 앰프, 스피커와 같은 기기는 비 압축?평문 형식의 픽처 데이터, 비 압축?평문 형식의 오디오 데이터를 수신할 수 있어서 재생 출력을 실현할 수 있다. 또, 상대 측 기기에 디코드 능력이 존재하는 경우, 비디오 스트림, 오디오 스트림의 패스 스르(pass-through) 전송이 가능해진다. 패스 스르 전송에서는 비디오 스트림, 오디오 스트림을 압축?암호화 형식인 채로 전송할 수 있다. 이와 같은 고 밴드 폭 전송 기능을 갖는 디지털 인터페이스에는 HDMI나 USB가 존재한다.
(집적회로의 실시형태)
본 발명에 관한 집적회로는 시스템 LSI이며, 재생장치의 하드웨어 구성 중 기록매체의 드라이브부나 외부와의 커넥터 등 기구적인 부분을 배제하고, 논리회로나 기억소자에 해당하는 부분, 즉, 논리회로의 핵심 부분을 내장한 것이다. 시스템 LSI란 고밀도 기판상에 베어 칩을 실장하여 패키징한 것을 말한다. 복수 개의 베어 칩을 고밀도 기판상에 실장하여 패키징함으로써 마치 1개의 LSI와 같은 외형 구조를 복수 개의 베어 칩에 가지게 한 것은 멀티 칩 모듈로 불리며, 이러한 것이 시스템 LSI에 포함된다.
여기서 패키지의 종별에 착안하면 시스템 LSI에는 QFP(Quad Flat Package), PGA(Pin Grid Array)라고 하는 종별이 있다. QFP는 패키지의 4 측면에 핀이 장착된 시스템 LSI이다. PGA는 밑면 전체에 많은 핀이 장착된 시스템 LSI이다.
이들 핀은 전원 공급이나 접지, 다른 회로와의 인터페이스로서의 역할을 담당하고 있다. 시스템 LSI에서의 핀에는 이러한 인터페이스의 역할이 존재하므로, 시스템 LSI에서의 이들 핀에 다른 회로를 접속함으로써 시스템 LSI는 재생장치의 핵심으로서의 역할을 담당한다.
도 37은 집적회로의 아키텍처를 나타내는 도면이다. 본 도면에 나타내는 것과 같이 시스템 LSI인 집적회로(70)의 아키텍처는 프론트 엔드부(71), 신호 처리부(72), 백 엔드부(73), 미디어 인터페이스(74), 메모리 컨트롤러(75), 호스트 마이콘(76)으로 구성되며, 미디어 인터페이스(74), 메모리 컨트롤러(75)를 통해서 재생장치에서의 드라이브나 메모리, 송수신부와 접속되어 있다. 재생장치에서의 드라이브에는 BD-ROM의 드라이브, 로컬 스토리지의 드라이브, 리무버블 미디어의 드라이브 등이 있다.
프론트 엔드 처리부(71)는 프리 프로그램된 DMA 마스터 회로나 I/O 프로세서 등으로 구성되며, 패킷 처리 전반을 실행한다. 이 패킷 처리에는 입체 시 인터리브드 스트림 파일에서 ATC 시퀀스를 복원하는 처리, 다중 분리부에 의한 소스패킷 디패킷다이저의 처리, PID 필터의 처리가 해당한다. 재생장치의 메모리에 확보된 트랙 버퍼, 각종 플레인 메모리, 비디오 디코더에서의 코디드 데이터 버퍼, 디코디드 데이터 버퍼 간에 DMA 전송을 실현함으로써 상술한 것과 같은 스트림 처리를 실현한다.
신호 처리부(72)는 신호 처리 프로세서나 SIMD 프로세서 등으로 구성되며, 신호 처리 전반을 실행한다. 신호 처리에는 비디오 디코더에 의한 디코드나 오디오 디코더에 의한 디코드가 있다.
백 엔드부(73)는 가산기, 필터로 구성되며, AV출력 처리 전반을 실행한다. AV출력 처리에는 화소 처리가 있으며, 이러한 화소 처리에 의해 레이어 합성을 위한 화상 중첩, 리사이즈, 화상 포맷 변환이 이루어진다. 또, 디지털/아날로그 변환 등을 아울러 실행한다.
미디어 인터페이스(74)는 드라이브, 네트워크와의 인터페이스이다.
메모리 컨트롤러(75)는 메모리 액세스를 위한 슬레이브 회로이며, 프론트 엔드부, 신호 처리부, 백 엔드부의 요구에 따라서 패킷이나 픽처 데이터의 메모리의 판독 기입을 실현한다. 이 메모리 컨트롤러(75)를 통한 메모리의 판독 기입에 의해 메모리는 트랙 버퍼나 비디오 플레인, 그래픽스 플레인, 비디오 디코더에서의 코디드 데이터 버퍼, 디코디드 데이터 버퍼, 엘리멘터리 버퍼, 그래픽스 디코더에서의 코디드 데이터 버퍼, 콤포지션 데이터 버퍼, 오브젝트 버퍼로서 기능을 하게 된다.
호스트 마이콘(76)은 CPU, ROM, RAM으로 구성되며, 미디어 인터페이스, 프론트엔드부, 신호 처리부, 백 엔드부에 대해서 전체 제어를 실행한다. 이 전체 제어에는 제어부, BD-J모듈, HDMV 모듈, 모듈 매니저로서의 제어가 있다. 이 호스트 마이콘에서의 CPU는 명령 페치부, 디코더, 실행 유닛, 레지스터 파일, 프로그램 카운터를 갖고 있다. 그리고 지금까지의 실시형태에서 설명한 각종 처리를 실행하는 프로그램은 내장 프로그램으로, 기본 입출력 프로그램(BIOS), 다양한 미들웨어(오퍼레이션 시스템)와 함께, 이 호스트 마이콘에서의 마이콘 내의 ROM에 기억되어 있다. 따라서 재생장치의 주된 기능은 이 시스템 LSI 내에 포함시켜 둘 수 있다.
(프로그램의 실시형태)
각 실시형태에 설명한 프로그램은 이하와 같이 해서 만들 수 있다. 먼저, 소프트웨어 개발자는 프로그래밍 언어를 이용하여 각 플로차트나 기능적인 구성요소를 실현하는 것과 같은 소스 프로그램을 기술한다. 이 기술시에 소프트웨어 개발자는 프로그래밍 언어의 구문에 따라서 클래스 구조체나 변수, 배열 변수, 외부 함수의 콜을 이용하여 각 플로차트나 기능적인 구성요소를 구현하는 소스 프로그램을 기술한다.
기술된 소스 프로그램은 파일로 컴파일러에 부여된다. 컴파일러는 이들 소스 프로그램을 번역하여 오브젝트 프로그램을 생성한다.
컴파일러에 의한 번역은 구문 분석, 최적화, 자원 할당, 코드 생성이라고 하는 과정으로 이루어진다. 구문 분석에서는 소스 프로그램의 자구(字句)분석, 구문 분석 및 의미 해석을 하여 소스 프로그램을 중간 프로그램으로 변환한다. 최적화에서는 중간 프로그램에 대해서 기본 블록화, 제어 플로 해석, 데이터 플로 해석이라고 하는 작업을 실행한다. 자원 할당에서는 타깃이 되는 프로세서의 명령 세트로의 적합을 도모하기 위하여 중간 프로그램 중의 변수를 타깃이 되는 프로세서의 프로세서가 가지고 있는 레지스터 또는 메모리에 할당한다. 코드 생성에서는 중간 프로그램 내의 각 중간 명령을 프로그램 코드로 변환하여 오브젝트 프로그램을 얻는다.
여기서 생성된 오브젝트 프로그램은 각 실시형태에 나타낸 플로차트의 각 스텝이나 기능적 구성요소의 개개의 순서를 컴퓨터에 실행시키는 것과 같은 1개 이상의 프로그램 코드로 구성된다. 여기서 프로그램 코드는 프로세서의 네이티브 코드, JAVA 바이트코드와 같이 여러 종류가 있다. 프로그램 코드에 의한 각 스텝의 실현에는 여러 형태가 있다. 외부 함수를 이용하여 각 스텝을 실현할 수 있는 경우, 이 외부 함수를 콜 하는 콜 문이 프로그램 코드가 된다. 또, 1개의 스텝을 실현하는 것과 같은 프로그램 코드가 각각의 오브젝트 프로그램에 귀속하는 경우도 있다. 명령종이 제한되어 있는 RISC 프로세서에서는 산술 연산 명령이나 논리 연산 명령, 분기 명령 등을 조합함으로써 플로차트의 각 스텝을 실현해도 좋다.
오브젝트 프로그램이 생성되면 프로그래머는 이것들에 대해서 링커를 기동한다. 링커는 이들 오브젝트 프로그램이나 관련하는 라이브러리 프로그램을 메모리 공간에 할당하고, 이들을 1개로 결합하여 로드 모듈을 생성한다. 이렇게 해서 생성되는 로드 모듈은 컴퓨터에 의한 판독을 전제로 한 것이며, 각 플로차트에 나타낸 처리순서나 기능적인 구성요소의 처리순서를 컴퓨터에 실행시키는 것이다. 이러한 프로그램을 비 일시적인 컴퓨터 프로그램으로 컴퓨터 판독 가능한 기록매체에 기록해서 사용자에게 제공해도 좋다.
(기록매체의 변형)
각 실시형태에서의 기록매체는 광디스크, 반도체 메모리카드 등 패키지 미디어 전반을 포함하고 있다. 본 실시형태의 기록매체는 미리 필요한 데이터가 기록된 광디스크(예를 들어, BD-ROM, DVD-ROM 등의 기존의 판독 가능한 광디스크)를 예로 설명을 하지만, 이에 한정될 필요는 없으며, 예를 들어, 방송 또는 네트워크를 경유하여 배신(transmit)된 본 발명의 실시에 필요한 데이터를 포함하는 3D콘텐츠를 광디스크에 기입하는 기능을 갖는 단말장치(예를 들어, 이들 기능은 재생장치에 포함되어 있어도 좋고, 재생장치와는 다른 장치여도 좋다)를 이용하여 기입 가능한 광디스크(예를 들어, BD-RE, DVD-RAM 등의 기존의 기입 가능한 광디스크)에 기록하고, 이 기록한 광디스크를 본 발명의 재생장치에 적용해도 본 발명의 실시는 가능하다.
(재생장치의 필수의 구성)
좌측 눈 용 비디오 플레인, 우측 눈 용 비디오 플레인은 재생장치의 필수의 구성은 아니며, 재생장치의 구성으로는 좌측 눈 용 그래픽스 플레인, 우측 눈 용 그래픽스 플레인이 존재하면 충분하다. 그래픽스 플레인으로 표시해야 할 묘화 이미지에는 동화상의 것이 있으며, 이러한 묘화 이미지를 그래픽스 플레인에 기입하면 비디오 디코더나 비디오 플레인이 재생장치에 존재하지 않아도 본원의 과제 해결을 도모할 수 있기 때문이다.
(홈시어터 시스템의 필수의 구성)
셔터안경(500)은 필수의 구성요소는 아니며, 임의적인 것이다. 왜냐하면 텔레비전(400)이 직접영상방식(integral imaging method) (광학재생방식)이고, 나안(裸眼) 입체 시가 가능한 것이라면 셔터안경(500)은 필요가 없어지기 때문이다. 텔레비전(400)과 재생장치(200)를 일체의 구성으로 해도 좋다.
(반도체 메모리카드 기록장치 및 재생장치의 실시형태)
각 실시형태에서 설명한 데이터구조를 반도체 메모리에 기록하는 기록장치, 및 재생하는 재생장치의 실시형태에 대해서 설명한다.
우선, 전제가 되는 기술로 BD-ROM에 기록되어 있는 데이터의 저작권 보호의 구조에 대해서 설명한다.
BD-ROM에 기록된 데이터 중 예를 들어 저작권의 보호, 데이터의 비닉성의 향상의 관점으로부터 데이터의 일부가 필요에 따라서 암호화되어 있는 경우가 있다.
예를 들어, BD-ROM에 기록된 데이터 중 암호화되어 있는 데이터는 예를 들어 비디오 스트림에 대응하는 데이터, 오디오 스트림에 대응하는 데이터, 또는 이들을 포함하는 스트림에 대응하는 데이터이다.
이후, BD-ROM에 기록된 데이터 중 암호화되어 있는 데이터의 해독에 대해서 설명한다.
반도체 메모리카드 재생장치에서는 BD-ROM 내의 암호화된 데이터를 해독하기 위해서 필요한 키에 대응하는 데이터(예를 들어 디바이스 키)가 미리 재생장치에 기억되어 있다.
한편, BD-ROM에는 암호화된 데이터를 해독하기 위해서 필요한 키에 대응하는 데이터(예를 들어 상술의 디바이스 키에 대응하는 MKB(미디어 키 블록))와 암호화된 데이터를 해독하기 위한 키 자체를 암호화한 데이터(예를 들어 상술의 디바이스 키 및 MKB에 대응하는 암호화 타이틀 키)가 기록되어 있다. 여기서, 디바이스 키, MKB, 및 암호화 타이틀 키는 쌍으로 되어 있으며, BD-ROM상의 통상 카피할 수 없는 영역(BCA로 불리는 영역)에 기입된 식별자(예를 들어 볼륨 ID)와도 대응부여가 이루어지고 있다. 이 조합이 정당하지 않으면 암호의 해독을 할 수 없는 것으로 한다. 조합이 정당한 경우에만 암호 해독에 필요한 키(예를 들어 상술의 디바이스 키, MKB 및 볼륨 ID를 기초로 암호화 타이틀 키를 복호 해서 얻어지는 타이틀 키)를 도출할 수 있으며, 이 암호 해독에 필요한 키를 이용하여 암호화된 데이터의 해독이 가능해진다.
장전된 BD-ROM을 재생장치에서 재생하는 경우, 예를 들어 BD-ROM 내의 암호화 타이틀 키, MKB와 쌍으로 되어 있는(또는 대응한다) 디바이스 키가 재생장치 내에 없으면 암호화된 데이터는 재생이 이루어지지 않는다. 왜냐하면 암호화된 데이터의 해독에 필요한 키(타이틀 키)는 키 자체가 암호화되어서(암호화 타이틀 키) BD-ROM상에 기록되어 있으며, MKB와 디바이스 키의 조합이 정당하지 않으면 암호의 해독에 필요한 키를 도출할 수 없기 때문이다.
반대로 암호화 타이틀 키, MKB, 디바이스 키 및 볼륨 ID의 조합이 정당하면 예를 들어 상술의 암호 해독에 필요한 키(디바이스 키, MKB 및 볼륨 ID를 기초로 암호화 타이틀 키를 복호 해서 얻어지는 타이틀 키)를 이용하여 비디오 스트림이 디코더에서 디코드되고, 오디오 스트림이 오디오 디코더에서 디코드되도록 재생장치는 구성되어 있다.
이상이 BD-ROM에 기록되어 있는 데이터의 저작권 보호의 구조이지만, 이 구조는 BD-ROM에 반드시 한정되는 것은 아니며, 예를 들어 판독/기입 가능한 반도체 메모리(예를 들어 SD카드 등의 휴대성을 갖는 반도체 메모리카드)에 적용한 경우에도 실시가 가능하다.
반도체 메모리카드 재생장치의 재생 순서에 대해서 설명한다. 광디스크에서는 예를 들어 광디스크 드라이브를 개재하여 데이터를 판독하도록 구성하고 있던 것에 대해, 반도체 메모리카드를 이용한 경우에는 반도체 메모리카드 내의 데이터를 판독하기 위한 I/F를 개재하여 데이터를 판독하도록 구성하면 좋다.
더 상세하게는 재생장치의 슬롯에 반도체 메모리카드가 삽입되, 반도체 메모리카드 I/F를 경유하여 재생장치와 반도체 메모리카드가 전기적으로 접속된다. 반도체 메모리카드에 기록된 데이터는 반도체 메모리카드 I/F를 개재하여 판독하도록 구성하면 좋다.
(수신장치로서의 실시형태)
각 실시형태에서 설명한 재생장치는 본 실시형태에서 설명한 데이터에 상응하는 데이터(배신 데이터)를 전자 배신 서비스의 배신 서버로부터 수신하고, 반도체 메모리카드에 기록하는 단말장치로도 실현할 수 있다.
이러한 단말장치는 각 실시형태에서 설명한 재생장치가 그러한 동작을 실행할 수 있도록 구성되어 있어도 좋고, 본 실시형태의 재생장치와는 별도로 반도체 메모리에 배신 데이터를 기억하는 것을 실시하는 전용의 단말장치로 실행하는 것과 같은 형태여도 좋다. 여기에서는 재생장치가 실행하는 예에 대해서 설명한다. 또, 기록 처의 반도체 메모리로 SD카드를 예로 설명한다.
재생장치가 구비하는 슬롯에 삽입된 SD메모리카드에 배신 데이터를 기록하는 경우, 먼저 배신 데이터를 축적하는 배신 서버에 배신 데이터의 송신을 요구한다. 이때, 재생장치는 삽입한 SD메모리카드를 고유하게 식별하기 위한 식별정보(예를 들어, 개개의 SD메모리카드 고유의 식별번호, 보다 구체적으로는 예를 들어 SD메모리카드의 시리얼 번호 등)를 SD 메모리카드로부터 판독하고, 판독한 식별정보를 배신 요구와 함께 배신 서버에 송신한다.
이 SD메모리카드를 고유하게 식별하기 위한 식별정보는 예를 들어 상술의 볼륨 ID에 상당한다.
한편, 배신 서버에서는 배신하는 데이터 중 필요한 데이터(예를 들어 비디오 스트림, 오디오 스트림 등)가 암호 해독에 필요한 키(예를 들어 타이틀 키)를 이용하여 암호의 해제를 할 수 있도록 암호화가 이루어져서 서버상에 저장되어 있다.
예를 들어 배신 서버는 비밀키를 보유하고 있으며, 반도체 메모리카드의 고유의 식별번호의 각각에 대해 다른 공개키 정보가 동적으로 생성할 수 있도록 구성되어 있다.
또, 배신 서버는 암호화된 데이터의 해독에 필요한 키(타이틀 키) 자신에 대해 암호화를 할 수 있도록 구성되어 있다(즉, 암호화 타이틀 키를 생성할 수 있도록 구성되어 있다).
생성되는 공개키 정보는 예를 들어 상술의 MKB, 볼륨 ID 및 암호화 타이틀 키에 상당하는 정보를 포함한다. 암호화된 데이터는 예를 들어 반도체 메모리 고유의 식별번호, 후술하는 공개키 정보에 포함되는 공개키 본체, 및 재생장치에 미리 기록된 디바이스 키의 조합이 정당하면 암호 해독에 필요한 키(예를 들어 디바이스 키, MKB 및 반도체 메모리 고유의 식별번호를 기초로 암호화 타이틀 키를 복호 해서 얻어지는 타이틀 키)를 얻을 수 있으며, 이 얻어진 암호 해독에 필요한 키(타이틀 키)를 이용하여 암호화된 데이터의 해독을 할 수 있는 것이다.
다음에, 재생장치는 수신한 공개키 정보와 배신 데이터를 슬롯에 삽입한 반도체 메모리카드의 기록영역에 기록한다.
다음에, 반도체 메모리카드의 기록영역에 기록한 공개키 정보와 배신 데이터에 포함되는 데이터 중 암호화한 데이터를 복호 해서 재생하는 방법의 일 예에 대해서 설명한다.
수신한 공개키 정보는 예를 들어 공개키 본체(예를 들어 상술의 MKB 및 암호화 타이틀 키), 서명 정보, 반도체 메모리카드의 고유의 식별번호, 및 무효로 해야 할 디바이스에 관한 정보를 나타내는 디바이스 리스트가 기록되어 있다.
서명 정보에는 예를 들어 공개키 정보의 해시치를 포함한다.
디바이스 리스트에는 예를 들어 부정하게 재생이 이루어질 가능성이 있는 디바이스에 관한 정보가 기재되어 있다. 이는 예를 들어 재생장치에 미리 기록된 디바이스 키, 재생장치의 식별번호, 또는 재생장치가 구비하는 디코더의 식별번호와 같이 부정하게 재생될 가능성이 있는 장치, 장치에 포함되는 부품, 또는 기능(프로그램)이라고 하는 것을 고유하게 특정하기 위한 정보이다.
반도체 메모리카드의 기록영역에 기록한 배신 데이터 중ㄴ, 암호화된 데이터의 재생에 관해 설명한다.
먼저, 공개키 본체를 이용하여 암호화한 데이터를 복호 하기 전에 복호키 본체를 기능하게 해도 좋은지 여부에 관한 체크를 실행한다.
구체적으로는, (1) 공개키 정보에 포함되는 반도체 메모리 고유의 식별정보와 반도체 메모리카드에 미리 기억되어 있는 고유의 식별번호가 일치하는지 여부의 체크, (2) 재생장치 내에서 산출한 공개키 정보의 해시치와 서명 정보에 포함되는 해시치가 일치하는가의 체크, (3) 공개키 정보에 포함되는 디바이스 리스트에 나타나는 정보에 의거하여 재생을 실행하는 재생장치가 부정한 재생이 가능한가 여부의 체크(예를 들어 공개키 정보에 포함되는 디바이스 리스트에 나타나는 디바이스 키와 재생장치에 미리 기억된 디바이스 키가 일치하는지 여부의 체크)를 한다. 이와 같은 체크를 하는 차례는 어떠한 순서로 해도 좋다.
상술의 (1)~(3)의 체크에서 공개키 정보에 포함되는 반도체 메모리 고유의 식별정보와 반도체 메모리에 미리 기억되어 있는 고유의 식별번호가 일치하지 않거나, 재생장치 내에서 산출한 공개키 정보의 해시치와 서명 정보에 포함되는 해시치가 일치하지 않거나, 또는 재생을 실행하는 재생장치가 부정하게 재생될 가능성이 있다고 판단한 것 중 어느 하나를 만족하면 재생장치는 암호화된 데이터의 해독이 이루어지지 않도록 제어한다.
또, 공개키 정보에 포함되는 반도체 메모리카드의 고유의 식별정보와 반도체 메모리카드로 미리 기억되어 있는 고유의 식별 번호가 일치하고, 또 재생장치 내에서 산출한 공개키 정보의 해시치와 서명 정보에 포함되는 해시치가 일치하며, 또한 재생을 실행하는 재생장치가 부정하게 재생될 가능성이 없다고 판단하면 반도체 메모리 고유의 식별번호, 공개키 정보에 포함되는 공개키 본체, 및 재생장치에 미리 기록된 디바이스 키의 조합이 정당하다고 판단하고, 암호 해독에 필요한 키(디바이스 키, MKB 및 반도체 메모리 고유의 식별번호를 기초로 암호화 타이틀 키를 복호 해서 얻어지는 타이틀 키)를 이용하여 암호화된 데이터의 해독을 행한다.
예를 들어 암호화된 데이터가 비디오 스트림, 오디오 스트림인 경우, 비디오 디코더는 상술의 암호 해독에 필요한 키(암호화 타이틀 키를 복호 해서 얻어지는 타이틀 키)를 이용하여 비디오 스트림을 복호 하고(디코드하고), 오디오 디코더는 상술의 암호 해독에 필요한 키를 이용하여 오디오 스트림을 복호 한다(디코드한다).
이와 같이 구성을 함으로써 전자 배신시에 부정하게 이용될 가능성이 있는 재생장치, 부품, 기능(프로그램) 등을 알고 있는 경우, 이것들을 식별하기 위한 정보를 디바이스 리스트에 나타내고, 배신하도록 하면 재생장치 측이 디바이스 리스트에 나타나 있는 것을 포함하는 것과 같은 경우에는 공개키 정보(공개키 본체)를 이용한 복호를 억제할 수 있도록 할 수 있으므로 반도체 메모리 고유의 식별번호, 공개키 정보에 포함되는 공개키 본체, 및 재생장치에 미리 기록된 디바이스 키의 조합이 비록 정당하더라도 암호화된 데이터의 해독이 이루어지지 않도록 제어할 수 있으므로 부정1매치상에서의 배신 데이터의 이용을 억제하는 것이 가능해진다.
본 발명은 입체 시 영상을 재생하는 재생기기에서 출력 영상의 플리커링을 억제하는 기술에 관한 것으로, 특히 평면적인 영상 재생 모드와 입체적인 영상 재생 모드의 전환 기능을 갖는 재생장치에 적용 가능하다.
1  BD-ROM 드라이브
4  비디오 디코더
5  좌측 눈 용 비디오 플레인
6  우측 눈 용 비디오 플레인
7  이미지 메모리
8  이미지 디코더
9  좌측 눈 용 그래픽스 플레인
10  우측 눈 용 그래픽스 플레인
15  BD-J모듈
20  플레인 합성기
22  렌더링 엔진
28  좌측 눈 용 백그라운드 플레인
29  우측 눈 용 백그라운드 플레인
30  좌측 눈 용 자막 플레인
31  우측 눈 용 자막 플레인
100  BD-ROM
200  재생장치
300  리모컨
400  디스플레이
500  셔터/편광 안경

Claims (14)

  1. 재생장치로,
    바이트코드 애플리케이션을 동작시키는 플랫폼부와,
    좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인을 구비하고,
    상기 플랫폼부는 바이트코드 애플리케이션으로부터의 그래픽스 묘화 요구를 접수하여 그래픽스 묘화를 실행하는 묘화부를 포함하며,
    상기 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인의 컨피규레이션에는, 평면 시 재생시 및 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인만을 사용하는 1 플레인 구성과, 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인을 사용하는 2 플레인 구성이 있고,
    상기 그래픽스 묘화 요구에는 2D 그래픽스의 묘화 요구와 3D 그래픽스의 묘화 요구가 있으며,
    상기 컨피규레이션 중, 1 플레인 구성에서 2 플레인 구성으로의 전환은 지금까지 바이트코드 애플리케이션에 의해 이루어진 2D 그래픽스의 묘화 요구를 무효화하는 처리와 좌측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 그래픽스 플레인에 카피하는 처리를 포함하고, 당해 카피가 이루어진 후에 묘화부는 3D 그래픽스의 묘화 요구를 수용하는 것을 특징으로 하는 재생장치.
  2. 제 1 항에 있어서,
    상기 재생장치는,
    상기 기록매체에 기록되어 있는 입체 시 비디오 스트림을 디코드하는 디코더와,
    입체 시 비디오 스트림을 디코드함으로써 얻어지는 좌측 눈 용 픽처 데이터를 저장하는 좌측 눈 용 비디오 플레인과,
    입체 시 비디오 스트림을 디코드함으로써 얻어지는 우측 눈 용 픽처 데이터를 저장하는 우측 눈 용 비디오 플레인과,
    좌측 눈의 출력계통의 합성 및 우측 눈의 출력계통의 합성을 실행하는 합성부를 구비하며,
    상기 좌측 눈의 출력계통의 합성은 좌측 눈 용 그래픽스 플레인의 저장내용과 좌측 눈 용 비디오 플레인의 저장내용을 합성하는 것이고,
    상기 우측 눈의 출력계통의 합성은 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인 중 어느 하나의 저장내용을 우측 눈 용 비디오 플레인의 저장내용과 합성하는 것이며,
    상기 합성부는 상기 1 플레인 구성에서 2 플레인 구성으로의 전환시에 좌측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 그래픽스 플레인에 카피한 후에, 우측 눈 용 출력계통에서의 우측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 비디오 플레인의 저장내용에 합성하는 처리를 개시하고,
    상기 묘화부에 의한 3D 그래픽스 묘화의 요구의 수용은 우측 눈 용 그래픽스 플레인의 저장내용과 우측 눈 용 비디오 플레인의 저장내용의 합성 후에 이루어지는 것을 특징으로 하는 재생장치.
  3. 제 2 항에 있어서,
    상기 컨피규레이션 중, 2 플레인 구성에서 1 플레인 구성으로 전환은,
    3D 그래픽스 묘화의 요구를 금지하는 처리와, 좌측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 비디오 플레인의 저장내용에 합성하는 처리와, 바이트코드 애플리케이션에 의해 이루어진 2D 그래픽스의 묘화 요구를 수용하는 처리로 구성되는 것을 특징으로 하는 재생장치.
  4. 제 3 항에 있어서,
    상기 1 플레인 구성에서 2 플레인 구성으로의 전환 및 2 플레인 구성에서 1 플레인 구성으로의 전환은 바이트코드 애플리케이션에 의한 컨피규레이션 설정 요구의 발행으로 이루어지며,
    상기 무효화의 대상이 되는 2D 그래픽스 묘화 요구는 상기 컨피규레이션 설정 요구에 후속하는 2D 그래픽스 묘화 요구인 것을 특징으로 하는 재생장치.
  5. 제 4 항에 있어서,
    상기 컨피규레이션 설정 요구는 컨피규레이션 설정 API를 콜 하는 코드이며, 컨피규레이션 설정 API의 콜은 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인을 1 플레인 구성으로 하는가, 2 플레인 구성으로 하는가 인수로 지정할 수 있으며,
    상기 2D 그래픽스의 묘화 요구란 2D 그래픽스의 묘화 API를 콜 하는 코드이며,
    상기 2D 그래픽스의 묘화 요구의 무효화는 컨피규레이션 설정 API의 콜 후에 이루어진 2D 그래픽스의 묘화 API의 콜을 예외 종료시킴으로써 이루어지는 것을 특징으로 하는 재생장치.
  6. 제 5 항에 있어서,
    상기 플랫폼부는 바이트코드 애플리케이션 및 묘화부를 멀티 슬레드로 처리하는 것이며,
    상기 2D 그래픽스의 묘화 요구 및 컨피규레이션 설정 요구는 API를 콜 하는 코드를 슬레드 간 통신에 의해 바이트코드 애플리케이션에서 그래픽스 묘화 모듈로 인계함으로써 이루어지며,
    상기 2D 그래픽스 묘화 요구의 무효화는 슬레드 간 통신의 도중에 2D 그래픽스 묘화의 묘화 요구를 소거함으로써 이루어지는 것을 특징으로 하는 재생장치.
  7. 제 5 항에 있어서,
    상기 2D 그래픽스 묘화 API는 java.awt.Graphics#drawImage API이며,
    상기 컨피규레이션 설정 API는 HAVi 그래픽스 디바이스에서의 HAVi 스크린 컨피규레이션 설정 API인 것을 특징으로 하는 재생장치.
  8. 제 3 항에 있어서,
    상기 묘화부는 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인에 동시에 묘화를 실행하는 3D 재생 모드 전용의 좌우 플레인 묘화 모듈을 포함하고,
    상기 3D 그래픽스 묘화의 요구 수용은 3D 재생 모드 전용의 좌우 플레인 묘화 모듈을 기동함으로써 이루어지며,
    상기 묘화부에 의한 3D 그래픽스 묘화의 요구 금지는 당해 3D 재생 모드 전용의 좌우 플레인 묘화 모듈을 종료시킴으로써 이루어지는 것을 특징으로 하는 재생장치.
  9. 제 1 항에 있어서,
    기록매체에는 복수의 콘텐츠가 기록되어 있고,
    상기 플랫폼부는,
    복수의 콘텐츠 중 특정의 콘텐츠가 재생 대상이 된 때, 상기 재생 대상의 콘텐츠에 대응하는 애플리케이션 관리테이블에 따라서 바이트코드 애플리케이션을 기동하여 실행하고,
    상기 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인의 컨피규레이션은,
    콘텐츠 재생의 개시시에 동작 모드 오브젝트 내의 컨피규레이션 정보에 따라서 설정되는 것을 특징으로 하는 재생장치.
  10. 제 9 항에 있어서,
    상기 컨피규레이션 정보는 해상도 코드를 포함하고, 해상도 코드는 종 화소 수 및 횡 화소 수를 나타내는 것을 특징으로 하는 재생장치.
  11. 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인을 구비하는 재생장치에 탑재할 수 있는 집적회로로,
    바이트코드 애플리케이션을 동작시키는 플랫폼부를 구비하고,
    상기 플랫폼부는 바이트코드 애플리케이션으로부터의 그래픽스 묘화 요구를 접수하여 그래픽스 묘화를 실행하는 묘화부를 포함하며,
    상기 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인의 컨피규레이션에는, 평면 시 재생시 및 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인만을 사용하는 1 플레인 구성과, 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인을 사용하는 2 플레인 구성이 있으며,
    상기 그래픽스 묘화 요구에는 2D 그래픽스의 묘화 요구와 3D 그래픽스의 묘화 요구가 있고,
    상기 컨피규레이션 중, 1 플레인 구성에서 2 플레인 구성으로의 전환은 지금까지 바이트코드 애플리케이션에 의해 이루어진 2D 그래픽스의 묘화 요구를 무효화하는 처리와 좌측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 그래픽스 플레인에 카피하는 처리를 포함하고, 당해 카피가 이루어진 후에 묘화부는 3D 그래픽스의 묘화 요구를 접수하는 것을 특징으로 하는 집적회로.
  12. 바이트코드 애플리케이션을 동작시키는 플랫폼부와 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인을 구비하는 컴퓨터에서의 재생방법으로,
    상기 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인의 컨피규레이션에는, 평면 시 재생시 및 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인만을 사용하는 1 플레인 구성과, 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인을 사용하는 2 플레인 구성이 있으며,
    상기 그래픽스 묘화 요구에는 2D 그래픽스의 묘화 요구와 3D 그래픽스의 묘화 요구가 있고,
    상기 컨피규레이션 중, 1 플레인 구성에서 2 플레인 구성으로의 전환이 바이트코드 애플리케이션으로부터 요구된 경우, 지금까지 바이트코드 애플리케이션에 의해 이루어진 2D 그래픽스의 묘화 요구를 무효화하는 처리와 좌측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 그래픽스 플레인에 카피하는 처리를 실행하고, 당해 카피가 이루어진 후에 3D 그래픽스의 묘화 요구를 수용하는 것을 특징으로 하는 재생방법.
  13. 바이트코드 애플리케이션을 동작시키는 플랫폼부와 좌측 눈 용 그래픽스 플레인과 우측 눈 용 그래픽스 플레인을 구비하는 컴퓨터상에서 동작하는 프로그램으로,
    상기 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인의 컨피규레이션에는, 평면 시 재생시 및 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인만을 사용하는 1 플레인 구성과, 입체 시 재생시에 그래픽스 묘화에 좌측 눈 용 그래픽스 플레인 및 우측 눈 용 그래픽스 플레인을 사용하는 2 플레인 구성이 있고,
    상기 그래픽스 묘화 요구에는 2D 그래픽스의 묘화 요구와 3D 그래픽스의 묘화 요구가 있으며,
    상기 컨피규레이션 중, 1 플레인 구성에서 2 플레인 구성으로의 전환이 바이트코드 애플리케이션으로부터 요구된 경우, 상기 프로그램은 지금까지 바이트코드 애플리케이션에 의해 이루어진 2D 그래픽스의 묘화 요구를 무효화하는 처리와, 좌측 눈 용 그래픽스 플레인의 저장내용을 우측 눈 용 그래픽스 플레인에 카피하는 처리를 컴퓨터에 실행시키고, 당해 카피가 이루어진 후에 3D 그래픽스의 묘화 요구를 수용하는 것을 특징으로 하는 프로그램.
  14. 청구항 13에 기재된 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
KR1020127007836A 2009-10-02 2010-09-27 입체 시 영상을 재생할 수 있는 재생장치, 집적회로, 재생방법, 프로그램 KR20120091007A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009230394 2009-10-02
JPJP-P-2009-230394 2009-10-02

Publications (1)

Publication Number Publication Date
KR20120091007A true KR20120091007A (ko) 2012-08-17

Family

ID=43825838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127007836A KR20120091007A (ko) 2009-10-02 2010-09-27 입체 시 영상을 재생할 수 있는 재생장치, 집적회로, 재생방법, 프로그램

Country Status (7)

Country Link
US (1) US8558871B2 (ko)
EP (1) EP2485497B1 (ko)
JP (2) JP5097297B2 (ko)
KR (1) KR20120091007A (ko)
CN (1) CN102577409B (ko)
TW (1) TWI435592B (ko)
WO (1) WO2011039990A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010095403A1 (ja) * 2009-02-17 2010-08-26 パナソニック株式会社 再生装置、再生方法、プログラム
JP4875127B2 (ja) * 2009-09-28 2012-02-15 パナソニック株式会社 三次元画像処理装置
JP5891426B2 (ja) * 2011-03-31 2016-03-23 パナソニックIpマネジメント株式会社 全周囲立体画像の描画を行う画像描画装置、画像描画方法、画像描画プログラム
JP5891388B2 (ja) 2011-03-31 2016-03-23 パナソニックIpマネジメント株式会社 立体視画像の描画を行う画像描画装置、画像描画方法、画像描画プログラム
US9247298B2 (en) * 2012-05-31 2016-01-26 Zapple Inc. Television screen control apparatus and system including the same
US9584573B2 (en) * 2012-08-29 2017-02-28 Ericsson Ab Streaming policy management system and method
RU2012138174A (ru) * 2012-09-06 2014-03-27 Сисвел Текнолоджи С.Р.Л. Способ компоновки формата цифрового стереоскопического видеопотока 3dz tile format
CN103347193B (zh) * 2013-07-23 2015-03-11 深圳市华星光电技术有限公司 快门眼镜、控制快门眼镜的控制系统及方法
US10935788B2 (en) * 2014-01-24 2021-03-02 Nvidia Corporation Hybrid virtual 3D rendering approach to stereovision
WO2016080066A1 (ja) * 2014-11-21 2016-05-26 富士フイルム株式会社 時系列データ表示制御装置、その作動方法及びプログラム、並びにシステム
CN106303493B (zh) * 2015-05-27 2018-06-29 深圳超多维光电子有限公司 图像处理方法及装置
US9520002B1 (en) * 2015-06-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual place-located anchor
US11150915B2 (en) * 2019-09-13 2021-10-19 International Business Machines Corporation Deferred bytecode class verification in managed runtime environments
US11403075B2 (en) 2019-11-25 2022-08-02 International Business Machines Corporation Bytecode verification using class relationship caching
CN113268302B (zh) * 2021-05-27 2023-08-11 杭州灵伴科技有限公司 一种头戴式显示设备的显示模式切换方法、装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3109846B2 (ja) 1991-02-20 2000-11-20 ホーチキ株式会社 消火設備の給水圧力制御システム
EP1098244A3 (en) 1999-11-02 2001-06-13 CANAL + Société Anonyme Graphical user interface
US20020154214A1 (en) 2000-11-02 2002-10-24 Laurent Scallie Virtual reality game system using pseudo 3D display driver
US7002618B2 (en) 2001-06-01 2006-02-21 Stereographics Corporation Plano-stereoscopic DVD movie
GB0129992D0 (en) 2001-12-14 2002-02-06 Ocuity Ltd Control of optical switching apparatus
US7319720B2 (en) 2002-01-28 2008-01-15 Microsoft Corporation Stereoscopic video
US6924799B2 (en) 2002-02-28 2005-08-02 Hewlett-Packard Development Company, L.P. Method, node, and network for compositing a three-dimensional stereo image from a non-stereo application
WO2003092303A1 (en) 2002-04-25 2003-11-06 Sharp Kabushiki Kaisha Multimedia information generation method and multimedia information reproduction device
JP2004127255A (ja) * 2002-08-02 2004-04-22 Renesas Technology Corp 情報処理装置
JP4251907B2 (ja) * 2003-04-17 2009-04-08 シャープ株式会社 画像データ作成装置
JP4266774B2 (ja) 2003-10-29 2009-05-20 シャープ株式会社 立体画像表示装置及び立体画像表示方法
JP3746506B2 (ja) 2004-03-08 2006-02-15 一成 江良 立体視化パラメータ埋込装置及び立体視画像再生装置
JP2005321953A (ja) 2004-05-07 2005-11-17 Hitachi Ltd ストレージ制御装置、その動作プログラム、及びアクセス制御方法
DE602005023672D1 (de) 2004-06-18 2010-10-28 Panasonic Corp Wiedergabevorrichtung, Programm und Wiedergabeverfahren
JP2008512012A (ja) 2004-08-30 2008-04-17 テレコム・イタリア・エッセ・ピー・アー デジタルテレビで双方向サービスを提供する方法及びシステム
WO2007052736A1 (ja) * 2005-11-02 2007-05-10 Matsushita Electric Industrial Co., Ltd. デジタル放送システム、受信装置、及び送出装置
JP2010510558A (ja) 2006-10-11 2010-04-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 三次元グラフィックスのデータの作成
US20080201695A1 (en) 2007-02-16 2008-08-21 Qing Zhou Computer graphics rendering
JP4689639B2 (ja) 2007-04-25 2011-05-25 キヤノン株式会社 画像処理システム
JP4854582B2 (ja) 2007-04-25 2012-01-18 キヤノン株式会社 画像処理装置、画像処理方法
HUE029122T2 (en) * 2008-12-01 2017-02-28 Sharp Kk Content reproduction tool, reproduction process, program and media
WO2010095403A1 (ja) 2009-02-17 2010-08-26 パナソニック株式会社 再生装置、再生方法、プログラム
JP4962821B1 (ja) * 2009-04-03 2012-06-27 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
TW201130289A (en) * 2009-07-14 2011-09-01 Panasonic Corp Image reproducing apparatus
US20110080462A1 (en) 2009-10-02 2011-04-07 Panasonic Corporation Playback device, integrated circuit, playback method, and program for stereoscopic video playback
JP5454444B2 (ja) * 2010-10-01 2014-03-26 ソニー株式会社 立体画像データ送信装置、立体画像データ送信方法、立体画像データ受信装置および立体画像データ受信方法

Also Published As

Publication number Publication date
CN102577409A (zh) 2012-07-11
EP2485497A4 (en) 2013-01-09
JP5097297B2 (ja) 2012-12-12
JP5457513B2 (ja) 2014-04-02
EP2485497B1 (en) 2014-11-05
TW201138427A (en) 2011-11-01
CN102577409B (zh) 2014-12-10
TWI435592B (zh) 2014-04-21
EP2485497A1 (en) 2012-08-08
JPWO2011039990A1 (ja) 2013-02-21
US8558871B2 (en) 2013-10-15
JP2012257260A (ja) 2012-12-27
WO2011039990A1 (ja) 2011-04-07
US20120169729A1 (en) 2012-07-05

Similar Documents

Publication Publication Date Title
JP5457513B2 (ja) 立体視映像を再生することができる再生装置
JP5480948B2 (ja) 再生装置、再生方法、プログラム
US8306387B2 (en) Play back apparatus, playback method and program for playing back 3D video
US20110080462A1 (en) Playback device, integrated circuit, playback method, and program for stereoscopic video playback
US8737811B2 (en) Playback device, integrated circuit, playback method, and program
KR20110095128A (ko) 특수재생을 고려한 재생장치, 집적회로, 재생방법
WO2010032403A1 (ja) 映像コンテンツを立体視再生する再生装置、再生方法、および再生プログラム
JP5469125B2 (ja) 記録媒体、再生装置、再生方法、プログラム
US20100303437A1 (en) Recording medium, playback device, integrated circuit, playback method, and program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right