WO2010095403A1 - 再生装置、再生方法、プログラム - Google Patents

再生装置、再生方法、プログラム Download PDF

Info

Publication number
WO2010095403A1
WO2010095403A1 PCT/JP2010/000883 JP2010000883W WO2010095403A1 WO 2010095403 A1 WO2010095403 A1 WO 2010095403A1 JP 2010000883 W JP2010000883 W JP 2010000883W WO 2010095403 A1 WO2010095403 A1 WO 2010095403A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
plane
playback
application
view plane
Prior art date
Application number
PCT/JP2010/000883
Other languages
English (en)
French (fr)
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 パナソニック株式会社
Priority to EP10743533.1A priority Critical patent/EP2400772B1/en
Priority to JP2011500496A priority patent/JP5155441B2/ja
Priority to CN201080006819.9A priority patent/CN102308589B/zh
Publication of WO2010095403A1 publication Critical patent/WO2010095403A1/ja

Links

Images

Classifications

    • 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/189Recording image signals; Reproducing recorded image signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8227Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being at least another television signal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • 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/00094Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers
    • G11B20/00123Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers the record carrier being identified by recognising some of its unique characteristics, e.g. a unique defect pattern serving as a physical signature of the 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
    • 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
    • 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/1062Data buffering arrangements, e.g. recording or playback buffers
    • 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/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/213Read-only discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2541Blu-ray discs; Blue laser DVR discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • H04N9/8715Regeneration of colour television signals involving the mixing of the reproduced video signal with a non-recorded signal, e.g. a text signal

Definitions

  • the present invention belongs to the technical field of stereoscopic reproduction.
  • Stereoscopic playback is a technology that realizes stereoscopic viewing by preparing two viewpoint images for right view and left view.
  • There are various methods for realizing a stereoscopic display but by displaying different display images to the left and right eyes of the viewer and using the parallax between the two eyes, a stereoscopic image can be simulated.
  • the basic principle is to make it.
  • one of the methods for realizing stereoscopic display is a method using shutter glasses.
  • the video on the display is updated at high speed for the left eye and for the right eye.
  • the viewer's left and right eye fields are alternately closed at high speed with glasses, so that the image for the left eye displayed on the display can be seen only by the left eye with the shutter glasses, and vice versa.
  • package media such as BD-ROM has not only video but also background images, subtitles, and drawing images as separate planes, and the display device can display the superimposed video.
  • Stereoscopic reproduction with rich interactivity can be realized by stereoscopically viewing each of the image, caption, and drawing image.
  • video and subtitles a system that synchronizes with the video output signal of the playback device in units of frames is adopted, and thus beautiful video playback without flickering is realized.
  • Drawing by an application is a process of generating a bitmap pattern and writing the bitmap pattern pixel by pixel to the left and right plane memories. By repeating such drawing, a visual effect by animation can be introduced when the menu is opened.
  • the video content during pixel writing is provided for display. “Tearing” refers to the occurrence of flickering on the screen due to the display of the video content during writing when the frame period to be displayed arrives during pixel writing.
  • the tearing is within the allowable range of the user, but in the stereoscopic reproduction, the tearing causes serious discomfort.
  • the stereoscopic effect is produced at the location where both the drawing is completed, but the stereoscopic effect is not produced at the undrawn portion by the tearing. This is because a completely different image can be seen with the eyes, which is impossible in reality. For example, if the drawing of the menu for the left eye is completed, but the lower half of the menu for the right eye is not yet drawn, there will be a video mismatch between the left and right eyes in the lower half of the menu during stereoscopic playback. This will cause visual discomfort to the user.
  • a playback apparatus provides: A playback unit that decodes a video stream recorded on a recording medium and plays back a stereoscopic image; A platform for running the application, Multiple plain memories, A drawing unit that writes drawing images to a plurality of plane memories in response to an application program interface call from an application;
  • the multiple plane memories include left view plane memory and right view plane memory.
  • the argument of the application program interface includes a pair of a designation for writing to the left view plane memory and a designation for writing to the right view plane memory.
  • a pair of a write specification to the left view plane memory and a write specification to the right view plane memory is handed over from the bytecode application, so pixel writing to the plane memory for the right eye and the left eye It is possible to implement such that pixel writing to the plane memory is alternately performed. In this case, even if a frame period for display is reached during pixel writing, the progress of pixel writing is substantially the same for the right eye and for the left eye. Even if tearing occurs, tearing in the right eye and tearing in the left eye are the same, so it is possible to avoid the occurrence of inconsistencies in the video content that does not match the video content reflected in both eyes. It is within an acceptable range that does not cause discomfort.
  • the delay due to the parameter not being passed from the application can be avoided.
  • the probability of completing writing to the left image plane and the right image plane at the same time by the arrival of the frame period to be performed can be increased.
  • FIG. 9 is a specific example of a drawing request that can be defined using the application program interface of FIG. 8.
  • FIG. 9C schematically shows what kind of writing is executed by calling StereoGraphics # drawImage when an argument is specified as shown in FIG.
  • the write contents of the left and right image memories and the left and right image planes in each of the frames i, j, and k are shown.
  • the written contents of the image plane in the frames i, j, and k are those shown in FIG. 11, what effect is reproduced is shown.
  • the drawing procedure using a double buffer when StereoGraphics # drawImage is called. It is a figure which shows an example of an internal structure of an operation mode object. It is a flowchart which shows an example of the process sequence of the resolution setting of a plane memory at the time of title switching.
  • 2 is a diagram showing an internal configuration of a BD-ROM 100.
  • FIG. It is a block diagram which shows the internal structure of the reproducing
  • FIG. 1 is a diagram showing an example of a usage behavior of a recording medium and a playback device.
  • the recording medium 100 and the playback device 200 constitute a home theater system together with the remote controller 300, the television 400, and the shutter glasses 500, and are used by the user.
  • the recording medium 100 supplies, for example, a movie work to the home theater system.
  • the playback device 200 is connected to the television 400 and plays back the recording medium 100. Such reproduction is performed by alternately repeating video output of a left-eye video (L image) and video output of a right-eye video (R image).
  • the reproduced video reproduced in this way includes 2D video and 3D video.
  • the 2D video is an image expressed by pixels at the display position of the display screen located on the XY plane, for example, by regarding the plane including the display screen of the display device as the XY plane, and is also called a planar view image.
  • a 3D image has a straight line perpendicular to the plane captured as the XY plane described above as an axis (in this embodiment, a straight line perpendicular to the XY plane is defined as an axis (Z axis)), and display on the display device
  • the remote controller 300 is a device that accepts an operation on a hierarchical GUI from a user, and in order to accept such an operation, the remote controller 300 moves a menu key for calling a menu constituting the GUI and a focus of a GUI component constituting the menu.
  • An arrow key, a determination key for performing a confirmation operation on a GUI component constituting the menu, a return key for returning a hierarchical menu to a higher level, and a numerical key are provided.
  • the display device 400 receives the video output from the playback device 200, and alternately outputs the L image and the R image as they are at the same timing.
  • the same timing is realized by making the frame rate of video output and display switching the same.
  • the display display 400 accumulates the set of the L image and the subsequently output R image, and displays these images at a high frame rate by switching these images at high speed on the display display side.
  • the description will be made on the assumption that images output in the order of L image and R image are handled as a set on the display display side. However, the same configuration can be adopted even in the reverse order.
  • the shutter glasses 500 are composed of a liquid crystal shutter and a control unit, and realize stereoscopic viewing using parallax between both eyes of the user.
  • the liquid crystal shutter of the shutter glasses 500 is a shutter using a liquid crystal lens having a property that light transmittance is changed by changing an applied voltage.
  • the control unit of the shutter glasses 500 receives the synchronization signal for switching between the output of the R image and the L image sent from the playback device, and switches between the first state and the second state in accordance with the synchronization signal.
  • the first state is a state in which the applied voltage is adjusted so that the liquid crystal lens corresponding to the right eye does not transmit light, and the applied voltage is adjusted so that the liquid crystal lens corresponding to the left eye transmits light. , The L image is incident on the left eye and the L image is not incident on the right eye.
  • the second state is a state in which the applied voltage is adjusted so that the liquid crystal lens corresponding to the right eye transmits light, and the applied voltage is adjusted so that the liquid crystal lens corresponding to the left eye does not transmit light. , The R image is incident on the right eye and the R image is not incident on the left eye.
  • an R image and an L image are images in which there is a slight difference in appearance between an image seen from the right view and an image seen from the left view due to the difference in the photographing position.
  • the image seen from the human eye can be recognized as a three-dimensional image. It is. Therefore, if the shutter glasses 500 synchronize the switching between the first state and the second state as described above with the switching timing of the output of the R image and the L image, the user can make a planar display three-dimensional. The illusion that it looks like. Next, a time interval for displaying the R image and the L image will be described.
  • the frame period indicating the display cycle for the television 400 to play back the video stream is divided into two, and each period obtained by the division is set as a time interval for switching the right eye and the left eye. . Of the periods obtained by dividing the frame period, the period for viewing with the left eye is called a “left-view period”.
  • the period for viewing with the right eye is referred to as the “light view period”.
  • the frame period is 1/24 seconds
  • the left view period and the right view period are each 1/48 seconds.
  • the frame period is 1/60 seconds
  • the left view period and the right view period are each 1/120 seconds.
  • FIG. 2 shows the basic internal configuration of a playback apparatus equipped with the problem solving means of the present application.
  • the playback apparatus 200 includes a reading unit 101, a video decoder 102, a plane memory set 103 (including video planes 104a and 104b and image planes 104c and 104d), a synthesis unit 105, an image memory 106, and a rendering engine 107.
  • a platform unit 110 a heap memory 111, a byte code interpreter 112, a class loader 113, an application manager 114, and middleware 115.
  • the reading unit 101 reads a video stream, a drawing image data structure, a bytecode application class structure, and an application management table from the recording medium 100, and supplies the video stream to the video decoder 102.
  • the video decoder 102 decodes the read video stream and writes a non-compressed picture in the plane memory set 103.
  • the plane memory set 103 is composed of a plurality of plane memories.
  • the plane memory is a memory for storing pixel data for one screen in units of lines and outputting the pixel data along the horizontal synchronization signal and the vertical synchronization signal.
  • Each plane memory stores pixel data for one screen obtained by decoding video, subtitles, GUI, and background images.
  • plane memories constitute a layer model, and the contents stored in each plane memory are used for layer synthesis.
  • this layer synthesis in the layer model of the plane memory, the process of superimposing the pixel values of the pixel data stored in the plane memory of the two layers is executed for all combinations of the two layers in the layer model. That is done.
  • the left video plane 104a and the right video plane 104b are one of plane memory sets and store a left-eye video picture and a right-eye video picture, respectively.
  • the left image plane 104c and the right image plane 105d are one of the plane memory sets, and store an image to be superimposed on the video plane in an uncompressed format.
  • the left image plane 104c is a left view plane memory that stores image data for the left eye.
  • the right image plane 104d is a right view plane memory that stores image data for the right eye.
  • a drawing image stored in each image plane, which is a current display target is newly drawn.
  • the screen of each image plane is updated by overwriting the image. Since the drawing image which is the previous display target in the image plane is directly overwritten with the drawing image which is the new display target, the drawing image which is the previous display target and the new display target are in the process of overwriting. Tiering that is mixed with drawing images occurs.
  • the synthesizing unit 105 performs layer synthesis of a plurality of plane memories.
  • the image memory 106 is a memory for storing an image object which is an instance of the data structure when an instance of the data structure recorded on the recording medium 100 is generated.
  • an image object is a bitmap of RGB values, and is indicated by an instance variable from the bytecode application.
  • the image object for the right and the image object for the left eye can be stored separately.
  • the rendering engine 107 performs a drawing process on the left image plane 104c and the right image plane 104d.
  • Image rendering by the rendering engine 107 is performed by copying an image object on the image memory 106 from the image memory 106 to the image planes 104c and 104d.
  • the image object to be copied is specified by an instance variable.
  • the platform unit 110 includes a built-in program stored in a nonvolatile memory such as a ROM and hardware (including an MPU, a register, and a peripheral circuit) that executes the built-in program, and is recorded in the recording medium 100.
  • a bytecode application that is an instance of a structure.
  • a bytecode application is an executable program obtained by compiling a class structure described using an object-oriented programming language, and is described by device-independent code (bytecode). Say things.
  • a typical bytecode application is a Java application.
  • the heap memory 111 is a stack area in which byte codes constituting the byte code application and system parameters used by the byte code application are arranged. Drawing by a bytecode application operating on the heap memory 111 is performed at a variable frame rate such as 1/30 seconds, 1/15 seconds, and 1/5 seconds. Since this frame rate does not become an integral multiple of 1/24 seconds and 1/60 seconds, which are the video playback frame rates, whether the bytecode application has reached its own drawing timing using the playback device clock. When the drawing timing comes, writing is performed.
  • the byte code interpreter 112 converts the byte code constituting the byte code application stored in the heap memory 111 into a native code and causes the MPU to execute it.
  • the class loader 113 loads the bytecode application by generating an instance of the class structure of the application recorded in the recording medium 100 in the heap memory 111.
  • the application manager 114 verifies the validity of the bytecode application based on the application management table, and then performs application signaling of the bytecode application such as starting the bytecode application or ending the bytecode application.
  • the middleware 115 is an operating system for embedded devices that provides various functions to the bytecode application running on the platform.
  • the function is provided by calling the member function of the package implemented by the middleware.
  • the package implemented by the middleware performs drawing processing such as drawing of a line or rectangle with color designation, filling of a designated area, copy / paste of a designated image, etc. through the rendering engine 107 and the left image plane 104c.
  • the middleware 115 includes a drawing unit that executes image drawing by the function of the library.
  • the bytecode application can implement various graphics drawing processes by continuously issuing these drawing process requests.
  • Such a package includes a java.awt package, and an image program application program interface is a method of the java.awt package.
  • Other extension methods that are not in the java.awt package are also APIs for image drawing.
  • the contents of image drawing include drawing of lines and rectangles, filling of designated areas, copying / pasting of designated images, and the like, and these image drawing are identified by information indicating the type of drawing contents.
  • the middleware requires an execution cycle corresponding to n frames to write a drawing image of an image plane for one screen when drawing an image according to a request from a bytecode application.
  • This is the turnaround time from when the API is called by the bytecode application to when the middleware returns its response, and includes the overhead between the platform part, middleware and hardware.
  • a drawing command is issued on the spot (for example, k frame), and display is performed after a predetermined frame delay time from the issue.
  • Java applications do not care about the delay time at the time of display.
  • a delay time corresponding to 2 ⁇ n frames is necessarily generated for writing a drawing image in both the left image plane and the right image plane.
  • a delay time corresponding to 2 ⁇ n frames is necessarily generated for writing a drawing image in both the left image plane and the right image plane.
  • FIG. 3 shows how the picture data stored in the video planes 104a and 104b looks by the user wearing the shutter glasses 500.
  • the arrow vw1 in the figure indicates video input to the viewpoint in the left view period
  • the arrow vw2 in the figure indicates video input to the viewpoint in the right view period.
  • the left view period as shown by the arrow vw1
  • the right view period as indicated by the arrow vw2
  • the stored content of the right video plane enters the right eye of the user through the shutter glasses 500.
  • FIG. 4 shows the internal configuration of the image planes 104c and 104d.
  • the image planes 104c and 104d are composed of storage elements of horizontal 1920 ⁇ vertical 1080 bits of 32 bits as shown in FIG.
  • the image planes 104c and 104d have a memory allocation capable of storing 32-bit R, G, B, and ⁇ values per pixel at a resolution of 1920 ⁇ 1080.
  • the 32-bit R, G, B, ⁇ values stored in the storage element are composed of an 8-bit R value, an 8-bit G value, an 8-bit B value, and an 8-bit transparency ⁇ .
  • the scale of the plane memory for one screen is 8 Mbytes, and if a double buffer is configured by both the left and right plane memories, a memory scale of 8 Mbytes ⁇ 4 is required.
  • the double buffer transfer from the buffer to the buffer is required at the time of screen switching, and data transfer on the scale of 8 Mbytes frequently occurs, so that the required memory bandwidth becomes large.
  • the image plane is configured by a single buffer.
  • (B) in the figure shows pixel data stored in the image planes 104c and 104d.
  • the graphics data stored in the image planes 104c and 104d is composed of pixel data corresponding to the foreground portion and pixel data corresponding to the background portion.
  • the alpha value indicating the transparent color is stored in the memory element corresponding to the background portion, and the subtitle of the image plane and the moving image on the video plane can be seen through this portion at the time of synthesis with the video plane. become.
  • the storage element corresponding to the foreground portion stores R, G, and B values indicating colors other than the transparent color, and a drawing image is drawn by the R, G, and B values other than the transparent color.
  • the stored contents of other plane memories can be seen through the portion corresponding to the transparent pixel, and the presence of the transparent portion enables plane synthesis.
  • FIG. 5 shows that when the sign of the plane offset is positive (the drawing image writing position in the left view period is shifted to the right and the drawing image writing position in the right view period is shifted to the left), the image is displayed on the display screen. It is a figure for demonstrating the principle which seems to be in this side.
  • the image that can be seen by the left eye is shifted and displayed so that it can be seen at the right position compared to the case where the plane offset is zero. At this time, nothing is visible to the right eye by the shutter glasses 500. On the other hand, the image visible to the right eye is displayed so as to be shifted so that it can be seen on the left side as compared with the case where the plane offset is zero. At this time, nothing is visible to the left eye by the shutter glasses 500 (FIG. 5B).
  • ⁇ Human uses both eyes to focus and recognizes that there is an image at the focal position. Therefore, when the shutter glasses 500 alternately switch between a state in which an image can be seen by the left eye and a state in which the image can be seen by the right eye at short time intervals, both eyes of the human will try to adjust the focal position to a position in front of the display screen. As a result, an illusion is caused so that an image is present at the focal position located in front of the display screen (FIG. 5C).
  • FIG. 6 is a diagram for explaining the principle that an image appears to be behind the display screen.
  • FIG. 6 what is indicated by a circle is an image displayed on the display screen.
  • the image that can be seen by the right eye and the image that can be seen by the left eye are at the same position, so the focal position when viewing this image using both eyes is located on the display screen (FIG. 6A). .
  • the resulting image is located on the display screen.
  • the image visible to the left is made to appear on the left side as compared with the case where the plane offset is zero. At this time, nothing is visible to the right eye by the shutter glasses 500.
  • the image that can be seen by the right eye is made to appear on the right side as compared with the case where the offset is 0, and at this time, nothing is seen by the shutter glasses 500 by the left eye (FIG. 6B).
  • the human eyes try to adjust the focal position to a position deeper than the display screen.
  • An illusion is caused so that there is an image at a position behind the display screen (FIG. 6C).
  • FIG. 7 is a diagram illustrating an example of a difference in appearance between positive and negative plane offsets.
  • FIG. 9A shows a case where the drawing image writing position in the left view period is shifted to the right and the drawing image writing position in the right view period is shifted to the left.
  • the caption at the time of left view output can be seen at the right position from the caption at the time of right view output. That is, since the convergence point (focus position) comes to the front of the screen, the subtitles can also be seen to the front.
  • FIG. 6 shows a case where the drawing image writing position in the left-view period is shifted to the left and the drawing image writing position in the right-view period is shifted to the right.
  • the caption at the time of outputting the left view becomes visible to the left of the caption at the time of outputting the right view.
  • the convergence point (focus position) goes deeper than the screen, the subtitles can also be seen deeper.
  • FIG. 8 shows an application program interface used for writing a drawing image.
  • the java.awt.Graphics # fillRect method in (a) of the figure shows the rectangular range specified by the position of the first argument as the color specified by the second argument (exactly the java.awt.Graphics # setColor method).
  • This is an application program interface that calls the function of filling in the specified current color but will be described as the second argument below for the sake of simplicity.
  • a drawing area (BufferedImage) for temporary processing uniquely generated by the BD-J application can also be targeted.
  • the position of the rectangular range is represented by a combination of the upper left coordinates (x1, y1) and the lower right coordinates (x2, y2) of the rectangular area to be rendered.
  • a drawing target plane in addition to the left image plane 104c and the right image plane 105d, a drawing area (BufferedImage) for temporary processing uniquely generated by the BD-J application can be targeted.
  • the java.awt.Graphics # drawImage method is an API for calling a function for writing the drawing image specified by the second argument to the drawing position specified by the position of the first argument. To be exact, it is possible to pass an argument for designating a rectangular position for trimming the designated drawing image into a rectangle and drawing it, but it is omitted here.
  • the StereoGraphics # drawImage method writes the drawing image specified by the second argument to the rectangular range specified by the position of the first argument in the left image plane, and is specified by the position of the third argument in the left image plane.
  • This API calls a function for writing a drawing image designated by the fourth argument in a rectangular area.
  • the rectangular range is represented by a combination of the upper left coordinates (x1, y1) and the lower right coordinates (x2, y2) of the rectangular area to be rendered.
  • BufferedImage can be used in addition to an instance (bitmap image) generated from a data structure in JPEG or PNG format.
  • the java.awt.Graphics # drawImage method specifies image copy processing, but only one rectangular area copy can be specified in this processing.
  • simultaneous left and right image copying by the StereoGraphics # drawImage method includes a pair of a drawing position and a drawing image.
  • the drawing destination planes are fixed to the left image plane 104c and the right image plane 105d, respectively, and the designation of the image plane is excluded from the arguments of the StereoGraphics # drawImage method.
  • StereoGraphics # drawImage When implementing the StereoGraphics # drawImage method on a BD-ROM playback device, add an extension method such as StereoGraphics # drawImage, for example, because there is no left-right simultaneous image copy processing using the StereoGraphics # drawImage method in the BD-Java standard. There is a need.
  • FIG. 9 is a specific example of a drawing request that can be defined using the application program interface of FIG. FIG. 4A shows in tabular form what specific rectangular range and drawing color can be set when the API type is java.awt.Graphics # fillRect method.
  • the drawing request notation defined by the API is the same as that in this figure.
  • FIG. 4B shows, in a tabular form, the rectangular range to be drawn and the drawing image are specifically set in a tabular form when the API type is the java.awt.Graphics # drawImage method. .
  • the drawing image is expressed using an instance variable given to an instance of the data structure.
  • “Bitmap image 1” in the figure is an instance variable given to an instance composed of 200 pixels wide ⁇ 70 pixels high.
  • (C) in the table shows, in a tabular form, when the API type is the StereoGraphics # drawImage method, the rectangular range to be drawn and the drawing image are specifically set.
  • “Bitmap image 1” in the figure is an instance variable given to an instance composed of 200 pixels wide ⁇ 70 pixels high.
  • the drawing image is expressed using an instance variable given to an instance of the data structure.
  • “Bitmap image 2” in the figure is an instance variable given to an instance composed of 200 pixels wide ⁇ 70 pixels high.
  • FIG. 10 schematically shows what kind of writing is executed by calling StereoGraphics # drawImage when an argument is specified as shown in FIG. 9C.
  • the front side in the figure shows an image memory storing a drawing image.
  • the back side in the figure shows a set of a left image plane and a left video plane, and a set of a right image plane and a right video plane that are superimposed on each other.
  • Specific XY coordinates shown as a rectangular range to be drawn in FIG. 5 are plotted on the left image plane and the right image plane.
  • FIG. 11 shows the writing contents of the left and right video planes and the left and right image planes in each of the frames i, j, and k.
  • the written content of the frame i is one button member
  • the written content of the frame j is three button members
  • the written content of the frame k is three button members to which character strings such as subtitles, sounds, and privileges are added. .
  • FIG. 12 shows what effect is reproduced when the written contents of the image plane in frames i, j, and k are those in FIG.
  • FIG. 13 shows how writing to the left and right image planes is performed.
  • the first row shows the time axis of the operation of the bytecode application
  • the second row is the left image memory
  • the third row is the right image memory
  • the fourth row is the left video plane
  • the fifth row is the right Indicates a video plane.
  • a frame k + 1 and a frame k + 2 immediately after the file k are frames in which a drawing image is written.
  • Line 1, line 2, and line 3 to line 70 in the figure indicate a process in which pixel data of each line constituting the drawing image is sequentially written on the image plane.
  • This writing is performed in line units such as writing line 1 to the left image plane, writing line 1 to the right image plane, writing line 2 to the left image plane, and writing line 2 to the right image plane. It turns out that it is done alternately.
  • FIG. 14 shows what the display contents look like when writing individually to the left image plane and the right image plane without using StereoGraphics # drawImage.
  • FIG. 4A shows the difference in writing progress with respect to the left and right image planes. Since the writing to the left image plane was performed first, there are button members for "subtitles”, “sounds” and “privileges” on the left image plane, but since the writing to the right image plane was later, the right image plane There are only “subtitle” button members.
  • the image plane is configured by a single buffer, and by overwriting the drawing image to be displayed in the frame k on the drawing image to be displayed in the frame j on the image plane,
  • the image plane screen is being updated. Therefore, in this figure, a part of the drawing image to be displayed in the frame j remains on the left image plane (see the hatched portion). Since the remaining portion of the drawing image to be displayed in the frame j exists only in the right image plane and does not exist in the left image plane, inconsistency between the left and right eyes occurs in the remaining portion.
  • FIG. 5B shows a stereoscopic image that can be viewed when the image plane of FIG.
  • the button member of “caption” exists in common in the left and right image planes, it appears to appear in front from the screen due to the stereoscopic effect.
  • the “voice” and “privilege” button members do not exist in common in the left and right image planes, so it is not possible to obtain a stereoscopic effect, and it is actually possible to see completely different images with the left and right eyes. There will be no situation. Such inconsistency of the images between the left and right eyes gives the user a visual discomfort.
  • FIG. 15 shows the display contents when pixels are alternately written to the left image plane and the right image plane in units of lines using StereoGraphics # drawImage.
  • FIG. 4A shows the difference in writing progress with respect to the left and right image planes. Since writing in units of lines to the left and right image planes is alternately performed, the writing progress in the left and right image planes is approximately the same.
  • the screen of the image plane is updated by overwriting the drawing image to be displayed in the frame k on the drawing image to be displayed in the frame j on the image plane, also in this figure, as in the previous figure. A part of the drawing image to be displayed in the frame k remains (see the hatched portion).
  • FIG. 5B shows a stereoscopic image that can be viewed when the image plane of FIG.
  • the button members of “subtitles” and “sound” exist in common in the left and right image planes, they appear to appear on the near side from the screen due to the stereoscopic effect. Even if writing to the left and right image planes is incomplete, the contents of the left and right image planes are almost the same. Further, even if left and right inconsistencies occur, the level of occurrence will be at the level of the line pixels, so there will be no visual discomfort to the user.
  • FIG. 16 is a flowchart of menu display by the bytecode application.
  • step S1 the frame in which the drawing image is to be displayed first is “frame t”, and the process proceeds to a loop of steps S2 to S7.
  • steps S2 to S7 an instance of the left image to be displayed in frame t is generated as image 1 (step S2), and an instance of the right image to be displayed in frame t is generated as image 2 (step S2).
  • S3 Wait for the start of frame t to arrive (step S4). If the start of arrival, specify the rectangular range for drawing the left image plane and the rectangular range for drawing the right image plane (step S4). S5).
  • step S6 After specifying the rectangular range for drawing the left image plane and the rectangular range for drawing the right image plane as arguments, the StereoGraphics # drawImage method is called (step S6), and then the image is displayed. The process of setting the power frame as the frame t (step S7) is repeated.
  • FIG. 17 is a flowchart showing a line drawing procedure when the StereoGraphics # drawImage method is called.
  • a variable Y indicating a drawing target line of the drawing image is initialized to “1” (step S11), and the process proceeds to a loop of steps S12 to S14.
  • step S12 the RGB value of the Y line of the drawing image specified as the second argument is written from (x1, y1 + Y-1) to (x2, y1 + Y-1) of the left image plane
  • step S13 the process of writing the RGB value of the fourth argument of the Y-th line from (x3, y3 + Y-1) to (x4, y3 + Y-1) in the right image plane
  • the line pixels that make up Image1 are written to the rectangular area to be drawn on the left image plane
  • the line pixels that make up Image2 are written to the rectangular area to be drawn on the right image plane. go.
  • a pair of a write designation to the plane memory for the left eye and a designation to write to the plane memory for the right eye is delivered from the bytecode application.
  • pixel writing to the plane memory for the right eye and pixel writing to the plane memory for the left eye are alternately performed.
  • the progress of pixel writing is substantially the same for the right eye and for the left eye.
  • FIG. 18 depicts only the improved parts (image memory, image plane, rendering engine, synthesis unit) of the playback apparatus according to the second embodiment.
  • the image memory 105, the rendering engine 106, and the synthesis unit 110 are the same as those in the first embodiment, but the image planes 104c and 104d are replaced with the left image plane 121 and the right image plane 122, and the left A switch 123 and a switch 124 exist between the image plane 121, the right image plane 122, and the combining unit 110.
  • the left image plane 121 is composed of two plane memories. Among these, one becomes a left display object buffer, and the other becomes a left drawing object buffer.
  • the left display target buffer is a buffer to be combined by the combining unit.
  • the left drawing target buffer is a buffer to be written by the bytecode application.
  • Each of these buffers has a capacity capable of storing pixel data (RGB ⁇ value) for one screen.
  • the right image plane 122 is composed of two plane memories. Among these, one is a right display target buffer and the other is a right drawing target buffer.
  • the right display target buffer is a buffer to be combined by the combining unit.
  • the right drawing target buffer is a buffer to be written by the bytecode application.
  • Each of these buffers has a capacity capable of storing pixel data (RGB ⁇ value) for one screen.
  • the switch 123 outputs the pixel contents of the two plane memories constituting the left image plane 121 that are the display target buffer to the combining unit 110.
  • the switch 124 outputs the pixel contents of the two plane memories constituting the right image plane 122 that are the display target buffer to the combining unit 110.
  • FIG. 19 shows switching by the switch 123 and the switch 124.
  • FIG. 4A shows the output state of a drawing image to be displayed in the frame i.
  • the upper buffer of the left image plane 121 and the right image plane 122 is the display target buffer, and the drawing image of the frame i is stored.
  • the lower buffer is set as the drawing target buffer, and the drawing image of the frame j to be displayed next is being written here.
  • FIG. 4B shows a state where writing of a drawing image to be displayed in the frame j has been completed. Since the writing to the lower plane memory is completed, the drawing image of the frame j is output by switching the switch 123 and the switch 124 to the lower side. By doing so, the drawn image of the frame j is provided for display.
  • (C) indicates a copy from the display target buffer to the drawing target buffer.
  • the contents of the left image plane 121 are all drawn images to be displayed in the frame j
  • the contents of the right image plane 122 are all drawn images to be displayed in the frame j.
  • (D) shows a state in which a drawing image to be displayed in the frame k is written in the upper plane memory.
  • FIG. 20 shows what kind of writing should be performed in order to complete writing to the left and right image planes.
  • the first row shows the time axis of the operation of the bytecode application
  • the second row is the left drawing target buffer
  • the third row is the right drawing target buffer
  • the fourth row is the left video plane
  • the fifth row Indicates the right video plane.
  • a frame k + 1 immediately after the frame k is a frame in which writing to the right drawing target buffer is performed
  • a frame k + 2 is a frame in which writing to the left drawing target buffer is performed.
  • the drawing process is completed at frame k + 2 after two frames have elapsed.
  • the start time of frame k + 2 is reached, the left drawing object buffer and the right drawing object buffer are switched to the left display object buffer and the right display object buffer, and a new drawing image is provided for display.
  • FIG. 21 shows a drawing procedure using a double buffer when StereoGraphics # drawImage is called.
  • the variable Y indicating the drawing target line of the drawing image is initialized to “1” (step S21), and the process proceeds to a loop of steps S22 to S24.
  • the RGB value of the Y line of the drawing image specified as the second argument is written from (x1, y1 + Y-1) to (x2, y1 + Y-1) of the left image plane ( The process of step S22) is repeated until step S23 is determined as Yes.
  • Step S23 is a determination as to whether or not y1 + Y-1 satisfies the condition y2. If this condition is not satisfied, the variable Y is incremented in step S24, and the process proceeds to step S22.
  • the line pixels constituting Image1 are written in the rectangular range to be drawn on the left image plane.
  • step S25 the variable Y is initialized to 1 (step S25), and the process proceeds to a loop composed of steps S26 to S28.
  • step S26 the process of writing the RGB value of the fourth argument Y line from (x3, y3 + Y-1) to (x4, y3 + Y-1) of the right image plane (step S26) It repeats until it determines with step S27 being Yes.
  • step S29 display switching is performed by simultaneously executing replacement of the left drawing target buffer and the left display target buffer and replacement of the right drawing target buffer and the right display target buffer in step S29. I do.
  • the present embodiment relates to an improvement that causes a playback apparatus to execute application signaling using a title in a recording medium as a life cycle, and to specify the size of an image plane when executing the application signaling.
  • the following index table and operation mode object are recorded on the recording medium.
  • the index table is management information relating to the entire recording medium, and the recording medium is uniquely recognized in the reproducing apparatus by first reading the index table after the recording medium is inserted into the reproducing apparatus.
  • the index table defines a correspondence between a plurality of title numbers that can be stored in the title number register in the playback device and an operation mode object that specifies an operation mode of the playback device.
  • the title recorded on the recording medium is a set of an operation mode object specified by the title number and a play list reproduced from the operation mode object.
  • the playlist is a playback unit specified by defining the playback order for a digital stream including a video stream.
  • the title number in the title number register is 0, 1 to 999, and an undefined value (0xFFFF).
  • Title number 0 is the title number of the top menu title.
  • the top menu title is a title that can be called by a menu call operation by the user.
  • the title number of indefinite value (0xFFFF) is the title number of the first play title.
  • the first play title is a title that displays a warning to a viewer, a logo display by a content provider, or the like immediately after loading a recording medium.
  • the index table has an entry (index table entry) corresponding to each title number, and the operation mode object that defines the operation mode is described in each index table entry.
  • the operation mode is specified in detail.
  • the value of the title number register changes from 0 to FFFF ⁇ 1 to 999 ⁇ 0 after loading the recording medium.
  • This change in the title number starts playing the first play title when the recording medium is loaded, and after playing the first play title, plays the title indicated by the title number of the title number register from 1 to 999,
  • the top menu title is reproduced and the user waits for selection.
  • the title having title numbers 1 to 999 the title having the same title number as the title number stored in the title number register becomes the current reproduction target, that is, the current title.
  • the number to be set in the title number register is determined by the user operation on the top menu title or the setting of the title number register by the program.
  • the operation mode object is information that defines a title by associating a playlist with an application.
  • FIG. 22 is a diagram illustrating an example of the internal configuration of the operation mode object.
  • the operation mode object includes an “application management table”, “terminal management table”, “application cache information”, “playlist access information”, and “key interest table”.
  • the “application management table” includes a plurality of entries.
  • a lead line bj1 shows a close-up entry in the application management table. As shown in this leader line, the application management table entry indicates whether the application should be automatically started in the title (AutoStart) or whether it should be started after waiting for a call from another application (Present).
  • a lead line bj2 shows a close-up of the internal configuration of the “application detailed information”.
  • “application detailed information” includes “priority” when the application is loaded and “binding” indicating whether the application is title unbound or discbound.
  • Information, a character string indicating the name of the application, a “language code” indicating the language attribute of the application, and an “icon locator” indicating the location of the icon associated with the application are stored for each application.
  • the application management table can manage the consumption of memory resources and the like by each application by managing the title as a life cycle by dividing the playback unit of the title. As a result, even if the use of resources by multiple applications competes during playback of a title and falls into a deadlock state, if a different title is selected by the user, all those applications will be terminated. The deadlock state is forcibly eliminated. Even if a runaway application occupies memory during playback of a title, if the user selects another title, the application is forcibly terminated. Will be resolved. In this way, stable memory resource management can be realized without consuming unnecessary memory resources. Since stable memory resource management can be realized, the present invention is more effective in the implementation of home appliances with limited memory resource capacity.
  • the “terminal management table” is a management table that defines the processing when displaying a GUI using the HAVi interface, such that the active application is realized by a European digital broadcasting terminal (DVB-MHP).
  • DVD-MHP European digital broadcasting terminal
  • This configuration information is a memory in which the playback device includes a graphics plane having a scale corresponding to the resolution of a video stream to be played when an application to be started by the application management table in the operation mode object draws graphics.
  • a lead line bj3 shows a close-up of the internal configuration of the terminal management table.
  • the terminal management table should be set to one of HD3D_1920 ⁇ 1080, HD3D_1280 ⁇ 720, HD_1920 ⁇ 1080, HD_1280 ⁇ 720, QHD_960 ⁇ 540, SD, SD_50HZ_720 ⁇ 576, SD_60HZ_720 ⁇ 480. Can do.
  • “Application cache information” indicates which application file should be read into the cache in the platform before AV playback starts for the title corresponding to the operation mode object. And includes an entry associated with an application whose life cycle is defined by the application management table. Each entry is information for instructing the playback device to load each application whose life cycle is specified by the application management table into the cache in the platform, and the rank assigned to each entry is the entry with the highest rank. Instructs the playback device to first load the application corresponding to, into the platform cache, and then sequentially load the applications corresponding to the remaining entries into the platform cache until the cache is full, in descending order. To do. In this way, even when class loading of a bytecode application is performed from a low-speed optical disk medium, startup delay due to long class loading can be reduced.
  • “Playlist access information” includes designation of an automatic playback playlist to be automatically played when the title corresponding to the operation mode object becomes the current title.
  • the playlist access information includes designation of a playlist that can be selected by an application that can be operated when the title corresponding to the operation mode object becomes the current title.
  • a lead line bj4 shows a close-up of the internal structure of the information specifying the automatic playback playlist. As shown in the leader line bj4, 3D playlist 1920 ⁇ 1080, 3D playlist 1280 ⁇ 720, 2D playlist 1920 ⁇ 1080, 2D playlist 1280 ⁇ 720, 2D playlist 720 are used to specify the automatic playback playlist. * 576 and 2D playlist 720 * 480 can be specified.
  • the playback device When any title is selected, the playback device starts playback of the playlist specified by the playlist access information corresponding to the selected current title without waiting for a playback instruction from the application. If the bytecode application execution ends before the end of list playback, playback of the playlist is continued.
  • the application is terminated abnormally due to resource depletion and the GUI of the application is automatically deleted, if the playlist playback screen continues to be displayed as it is, the playback video of the playlist will be displayed. Is output to the display device. Even if the bytecode application terminates abnormally due to such output continuation, the display device is in a state where something is reflected for the time being, and it is possible to prevent the screen from being blacked out due to the abnormal termination of the application. .
  • Key Interest Table is a remote control for playback devices such as playback key entry, stop key entry, fast forward key entry, rewind key entry, up key entry, down key entry, right key entry, left key entry, etc. It consists of an entry for each key provided. These key entries are set to generate or not generate a key event when the target key is pressed. When an event occurs in response to a user operation, the event manager of the playback device determines whether the generated event is listed in the key interest table. If so, it outputs a key event to let the bytecode application process the event.
  • the operation manager of the playback device causes the playback control engine to execute the AV function corresponding to the event.
  • the operation manager performs playback control on the playback control engine unit. Even if there is a bug in the application, it is guaranteed from the key interest table side that control that does not feel strange, so software houses that develop applications do not hesitate to generate bugs, No reproduction control can be realized.
  • FIG. 23 is a flowchart showing an example of a processing procedure for setting the resolution of the plane memory at the time of title switching.
  • the processes of step S34, step S35, and step S37 are selectively executed according to the determination results of step S31, step S32, step S33, and step S36.
  • Step S31 is a determination as to whether or not an auto play playlist exists
  • Step S32 is a determination as to whether or not the previous display mode is 3D
  • Step S33 is a determination as to whether or not the automatic playback playlist of the selected title is a 1920 ⁇ 1080 3D playlist or a 1280 ⁇ 720 3D playlist.
  • step S36 it is determined in step S36 whether the default resolution of the operation mode object is HD3D — 1920 ⁇ 1080, HD3D — 1280 ⁇ 720. If yes, the display mode is set to 3D in step S35. Then, it is set to 1920 ⁇ 1080 or 1280 ⁇ 720 according to the default resolution in the operation mode object. If No, in step S37, the display mode is set to 2D, and the resolution is set to the default resolution in the operation mode object.
  • step S32 If there is no automatic playback playlist, whether or not the previous display mode is 2D in step S32, or whether or not the playlist is a 3D playlist in step S33 and the resolution is 1920 ⁇ 1080, 1280 ⁇ 720. Determine. If either step S32 or step S33 is No, the display mode is set to 2D in step S34, and the resolution is set to the resolution of the automatic playback playlist.
  • step S35 the display mode is set to 3D, and the resolution is set to 1920 ⁇ 1080 or 1280 ⁇ 720 depending on the resolution of the automatic playback playlist.
  • the bytecode application can use the getCurrentConfiguration method, the getBestConfigurarion method, the setConfiguration method, and the setCoherentConfigurarion method for accessing the plane memory including the image plane.
  • GetCurrentConfiguration is an API that allows the bytecode application to acquire the display setting of the plain memory.
  • the getBestConfiguration method returns the best setting information of each plane in the playback device to the bytecode application.
  • the setConfiguration method is for changing only the settings for the plane specified in the argument.
  • the setCoherentConfigurations method is set in common for multiple plane memories. For example, if the resolution is specified as an argument and the setCoherentConfigurations method is called, the resolution of each plane memory can be made the same.
  • the resolution of the image plane set in the terminal management table of the operation mode object or the playlist access information is acquired using the getCurrentConfiguration method, and the left and right image planes are acquired using the acquired resolution. Issue the StereoGraphics # drawImage method after adjusting the drawing generation of the drawing image to be displayed and positioning it.
  • the StereoGraphics # drawImage method is issued as it is.
  • Bytecode application can acquire the resolution of the image plane specified in the above process via the application program interface, so it is possible to specify the optimal rectangular range when calling the StereoGraphics # drawImage method.
  • a rectangular range in which a drawing image is to be drawn can be determined in the coordinate system of the image plane specified in the terminal management table and the playlist management table in the operation mode object.
  • This embodiment is an integration of the previous embodiments, and is a form in which the recording medium 100 is configured as a BD-ROM and the playback device 200 is configured as a BD-ROM playback device.
  • the target video to be stereoscopically displayed is played back and viewed on a BD-ROM recording medium.
  • BD-ROM BD-ROM
  • a mode in which stereoscopic video display is performed by the playback apparatus 200 including these will be described.
  • the target image to be stereoscopically displayed may be provided via radio such as broadcast waves, wired such as a cable, or other recording medium.
  • FIG. 24 shows the internal structure of the BD-ROM 100. As shown in FIG.
  • BD-ROM is shown in the 4th row of this figure, and tracks on the BD-ROM are shown in the 3rd row.
  • the track in this figure is drawn by extending the track formed in a spiral shape from the inner periphery to the outer periphery of the BD-ROM in the horizontal direction.
  • This track includes a lead-in area, a volume area, and a lead-out area.
  • BCA Burst Cutting Area
  • the volume area in this figure has a layer model of a physical layer, a file system layer, and an application layer, and application data such as video data is recorded in the volume area starting with file system information (volume).
  • the file system is UDF, ISO9660, etc., and logical data recorded in the same way as a normal PC can be read out using a directory and file structure, and a 255 character file name.
  • the directory name can be read out.
  • the application layer format (application format) of BD-ROM When the application layer format (application format) of BD-ROM is expressed using the directory structure, it becomes like the first row in the figure.
  • the BD-ROM In the first stage, the BD-ROM has a CERTIFICATE directory and a BDMV directory under the Root directory.
  • the BDMV directory is a directory in which data such as AV content and management information handled by the BD-ROM is recorded.
  • BDMV directory Under the BDMV directory, there are a PLAYLIST directory, CLIPINF directory, STREAM directory, BDJO directory, JAR directory, META directory
  • INDEX.BDMV which is a file storing the index table described in the previous embodiment
  • MovieObject.bdmv which stores a program that realizes control compatible with DVD Is arranged.
  • the STREAM directory is a directory that stores the file that is the main part of the transport stream, and there is a file (00001.m2ts) with the extension “m2ts”.
  • the CLIPINF directory contains a file (00001.clpi) with the extension “clpi”.
  • the BDJO directory contains a file (XXXXX.bdjo) with the extension “bdjo”.
  • the XML file (ZZZZZ.xml) exists in the META directory.
  • the file with the extension “m2ts” is a stream file that stores a digital AV stream in the MPEG-TS (TransportStream) format.
  • the video stream, one or more audio streams, and graphics described in the previous embodiments It is obtained by multiplexing streams, text subtitle streams, and the like.
  • the video stream indicates the moving image portion of the movie
  • the audio stream indicates the audio portion of the movie.
  • the file with the extension “mpls” is a file that stores information for causing the playback device to play back the playlist.
  • a “playlist” is a playback path that is defined by specifying playback sections on the time axis of the transport stream (TS) and logically specifying the playback order between the playback sections. Among them, it plays a role of specifying which part is played back and in what order, and the playlist information defines the “type” of the playlist.
  • the playback path defined by the playlist information is a so-called “multipath”. Multipath is a bundle of a playback path (main path) defined for a main TS and a playback path (subpath) defined for a subordinate stream. If the playback path of the video stream for the left eye is defined in this multi-path, and the playback path of the video stream for the right eye is defined in the sub-path, the combination of video streams for stereoscopic viewing can be suitably defined. it can.
  • a chapter position is defined on the multipath playback time axis. By making the playback device refer to this chapter position, the playback device can realize random access to an arbitrary time point on the multipath time axis.
  • Multi-path AV playback can be started by a Java TM application for playback control instructing the Java TM virtual machine to generate a JMF player instance that plays back this playlist information.
  • a JMF (Java Media Frame work) player instance is actual data generated on a heap memory of a virtual machine based on a JMF player class.
  • a file with the extension “clpi” is a Clip information file corresponding to each of the MPEG2 format stream files on a one-to-one basis. Through this Clip information file, the stream file is managed as “AVClip”.
  • a file with the extension BDJO is a file storing a BD-J object.
  • the BD-J object is an operation mode object described in the previous embodiment, and includes various information used when executing a BD-Java application.
  • Java registered trademark
  • Java is used as the application platform standard in BD-ROM
  • the Java (registered trademark) platform adopted in the BD-ROM standard is called BD-Java or BD-J.
  • the execution application is called a BD-Java application or a BD-J application.
  • the JAR file is a file obtained by archiving a class structure file (class file) of a BD-J application together with a digital certificate manifest file, a disk signature signature file, a disk signature encryption key file, and a permission request file. The loading to the cache by the application cache information as described above is performed as a batch of this JAR file.
  • the BD-J application defined in the class structure file is a Java (TM) Xlet controlled by the application manager in the platform through the Xlet interface.
  • the Xlet interface has four states, "loaded”, “paused”, “active”, and “destroyed”, and is event-driven, that is, performs state transition and control by event.
  • key events that trigger application operations are registered in advance. In this way, registration of a key event serving as an operation trigger is performed by an event listener.
  • the digital certificate manifest file corresponds to the digital certificate, and describes the attributes of the Java (TM) archive file and the hash value of the class file and data file in the Java (TM) archive file. It is a manifest file.
  • the disk signature signature file is a signature file that describes the hash value of the manifest file.
  • the disk signature encryption key file is a file in which “digital certificate chain” and “signature information” of the signature file are described.
  • Signature information is obtained by applying signature processing to a digital signature signature file.
  • signature processing a private key corresponding to the public key in the digital certificate chain in the digital signature signature file is used.
  • Digital certificate chain means that the first certificate (root certificate) signs the second certificate, and the nth certificate signs the n + 1st certificate. It is a group of multiple certificates with the following shape.
  • the last certificate in the digital certificate chain is called a “leaf certificate”.
  • the permission request file stores information on what permissions are granted to the executed Java (TM) application. Specifically, it includes credentials (digital credentials) and permission information for inter-application communication.
  • “Credentials” is information for sharing files in an organization directory belonging to a certain organization. This sharing is achieved by providing the authority to use the application file belonging to a certain organization to the application belonging to another organization. Therefore, the credential includes a provider organization ID that indicates the organization that provides the authority, and a recipient organization ID that indicates the identity of the organization that receives the authority.
  • a PNG file is a data structure that defines a drawing image.
  • a data structure that defines a drawing image can be stored in a JAR file together with a class structure of a BD-J application and loaded.
  • BD-J applications can be signed using a manifest file, digital certificate chain, and permission request file.
  • a BD-J application signed using a manifest file, a digital certificate chain, and a permission request file in this way is referred to as a “Signed application”.
  • a BD-J application that is not signed and whose authority is partially or wholly restricted is referred to as an “Un-Signed application”.
  • the metafile (ZZZZZ.xml) stored in the META directory stores various information related to the video work on the disc.
  • Information stored in the metafile includes a disc name and an image of the disc, information on the name of the disc creator, a title name related to each title, and the like.
  • the disk root certificate file (app.discroot.cert) exists under the CERTIFICATE directory.
  • BD-ROM 100 This completes the explanation of the BD-ROM 100. Some files such as metafiles are not necessarily required by the BD-ROM standard, and even if some files do not exist, the BD-ROM 100 can be played back as a video recording medium under the BD-ROM standard. .
  • FIG. 25 is a block diagram showing an internal configuration of a playback apparatus according to the fourth embodiment.
  • the playback device includes a BD drive 1, a track buffer 2, a demultiplexer 3, a video decoder 4, a left video plane 5, a right video plane 6, an image memory 7, an image decoder 8, a left image plane 9, Right image plane 10, static scenario memory 11, dynamic scenario memory 12, control unit 13, HDMV module 14, BD-J module 15, mode management module 16, dispatcher 17, AV playback control engine 18, application data association module 19 , Plane synthesis unit 20, UO detection module 21, rendering engine 22, network interface 23, local storage 24, virtual file system 25, audio decoder 26, removable media 27, dimension determination unit 28, dimension mode storage unit 2 , Composed of right and left drawing processing arbitration unit 30.
  • BD drive 1 loads / ejects BD-ROM and executes access to BD-ROM.
  • the track buffer 2 is a FIFO memory, and the source packets constituting the digital stream read from the BD-ROM are stored in a first-in first-out manner.
  • the demultiplexer 3 demultiplexes the transport stream stored on the BD-ROM loaded in the BD drive 1 or on the local storage 24 or on the removable medium 27 through the virtual file system 25.
  • the video frames constituting the GOP obtained by demultiplexing are output to the video decoder 4, and the audio frames to be reproduced simultaneously with the GOP are output to the audio decoder 26.
  • a graphic stream obtained by demultiplexing is stored in the image memory 7, and scenario information obtained by demultiplexing is also stored in the dynamic scenario memory 12.
  • Demultiplexing by the demultiplexer 3 includes a conversion process of converting TS packets into PES packets. Further, the demultiplexer 3 uses the dimension determination unit 28 to switch between performing a stereoscopic (3D) process and a 2D process.
  • the video decoder 4 is a decoder conforming to the MPEG-4 AVC / H.264 modified standard called Multiview Video Coding (MVC), and compresses a compressed video stream encoded based on MPEG-4 AVC. Decoding is performed by performing motion prediction based on temporal similarity and similarity between viewpoints.
  • MVC Multiview Video Coding
  • the left video plane 5 and the right video plane 6 are memories for storing uncompressed pictures obtained by the decoding of the video decoder 4, and the left-eye video picture and the right-eye video picture, respectively. Is stored.
  • the image memory 7 is a buffer for storing image data such as graphic streams, subtitle data, or image images read from the virtual file system 25 in the BD-J terminal.
  • the image decoder 8 decodes the graphic stream, subtitle data, or image data stored in the image memory 7 and writes them to the left image plane 9 and the right image plane 10.
  • the left image plane 9 and the right image plane 10 are plane memories called GFX planes in the BD-J terminal, and store image data for the left eye and image data for the right eye, respectively, in an uncompressed format.
  • GFX planes plane memories
  • a plurality of images corresponding to image planes are prepared, and each can be independently superimposed on the video plane.
  • the graphic stream, subtitle data, and image data output from the image decoder 8, the image data generated as a result of the rendering process performed by the rendering engine 22, and the background (still image not shown) ) Plane the graphic stream, subtitle data, and image data output from the image decoder 8, the image data generated as a result of the rendering process performed by the rendering engine 22, and the background (still image not shown) Plane.
  • the static scenario memory 11 is a memory for storing a current playlist and current stream management information.
  • the current playlist is a PL that can be read from the virtual file system 25 and that is a processing target at that time.
  • the current stream management information refers to a plurality of stream management information that can be read from the virtual file system 25 and that is to be processed at that time.
  • the dynamic scenario memory 12 is a memory that stores the current dynamic scenario and is used for processing by the HDMV module 14 and the BD-J module 15.
  • the current dynamic scenario is a piece of scenario information that can be read from the virtual file system 25 and that is to be executed at that time.
  • the control unit 13 is a microcomputer system including a ROM, a RAM, and a CPU.
  • a program for controlling the playback device is recorded in the ROM, and the program in the ROM is read into the CPU, and the program and hardware resources cooperate.
  • the functions of the HDMV module 14, the BD-J module 15, the mode management module 16, the dispatcher 17, the AV playback control engine 18, the application data association module 19, and the left / right drawing processing arbitration unit 30 are realized.
  • the HDMV module 14 is a DVD video virtual player.
  • HDMV High Definition Movie Mode
  • HDMV is a video playback format that is compatible with DVD.
  • the BD-J module 15 is a functional module corresponding to a part constituted by the heap memory 111, the byte code interpreter 112, the class loader 113, and the application manager 114 among the components of the platform unit shown in the first embodiment. Execute the BD-J app.
  • the mode management module 16 holds the mode management table read from the virtual file system 25 and performs mode management and branch control.
  • the mode management by the mode management module 16 is a process of assigning a module, which HDMV module 14 and BD-J module 15 execute a dynamic scenario.
  • the dispatcher 17 selects only the UO appropriate for the mode in the current playback device from the user operation (user operation, also referred to as UO hereinafter) received by the UO detection module 21, and passes it to the module that executes the mode. For example, when the UMV such as up / down / left / right and activate is accepted during execution of the HDMV mode, the dispatcher 17 processes outputting these UOs to the HDMV mode module.
  • the AV playback control engine 18 executes an AV playback function and a playlist playback function in response to a call from the HDMV module 14 or the BD-J module 15.
  • the AV playback function is a function group defined by the BD-ROM that follows the DVD player and CD player.
  • the playlist playback function is a start / stop playback of the AV playback function according to the playlist information.
  • the application data association module 19 has a function of generating and updating application association information based on information read from the virtual file system 25, a result calculated in the device, and attribute information set by the application. .
  • the UO detection module 21 receives a user operation (UO) input by the viewer of the device to the playback device. This may be input by a remote device such as a remote controller, or may be input directly by an interface such as a button installed on the device.
  • UO user operation
  • the plane combining unit 20 combines the uncompressed video picture data stored in the left video plane 5 or the right video plane 6 with the image data stored in the left image plane 9 or the right image plane 10. And output the result as video. Also, the plane compositing unit 20 sends a compositing process completion notification for notifying which of the left and right planes the compositing process has been completed to the left and right drawing processing arbitration unit 30 when the compositing process for one plane is completed. Do it.
  • the rendering engine 22 performs a drawing process on the left image plane 9 and the right image plane 10.
  • the BD-J module 15 performs drawing processing such as drawing of lines and rectangles with color designation, filling of a designated area, copying and pasting of a designated image, and the like through the rendering engine 22 and the left image plane 9 and the right image.
  • a library for the plane 10 is provided, and the BD-J application can implement various graphics drawing processes by continuously issuing these drawing process requests.
  • the network interface 23 is used for downloading BD-ROM additional content published on the Internet.
  • the BD-ROM additional content is content that does not exist in the original BD-ROM, and includes, for example, additional sub audio, subtitles, privilege video, and applications.
  • the network interface 23 can be controlled from the BD-J module 15, and additional content published on the Internet can be downloaded to the local storage 24 and the removable medium 27.
  • the local storage 24 is a magnetic recording device such as a hard disk built in the playback device.
  • a magnetic recording device such as a hard disk built in the playback device.
  • various data used for transport stream and reproduction are recorded.
  • the virtual file system 25 is a file system that provides a read / write mechanism for files recorded on the BD-ROM 100, the local storage 24, or the removable medium 27.
  • the file access required for playback of the BD-ROM is normally performed on the BD-ROM 100.
  • the virtual file system 25 records the file existing in the local storage 24 or the removable medium 27 as if it was recorded on the BD-ROM 100.
  • the audio decoder 26 decodes the audio frame output from the demultiplexer 3 and outputs uncompressed audio data.
  • the removable medium 27 is a storage medium inserted from an external slot attached to the playback device.
  • a flash medium such as an SD card is used as the type of storage medium, but it may be a USB memory, a removable hard disk, or any other type of storage medium.
  • the dimension determination unit 28 determines whether the video to be reproduced is for stereoscopic viewing (3D) or 2D, and outputs the result to the dimension mode storage unit 29. The determination may be made when the current playlist or current stream includes a flag indicating whether the video corresponds to stereoscopic (3D) or not, or may be used. Switching may be performed according to the designation of a user who views the playback device.
  • the dimension mode storage unit 29 stores whether the video being played back at that time is for stereoscopic (3D) or normal 2D.
  • the left / right drawing processing arbitration unit 30 is a component of the middleware 115, and from among the drawing requests continuously issued from the BD-J module 15, a drawing request to the left image plane 9 and a drawing request to the right image plane 10. Extract a set of In a typical BD-J app that draws stereoscopic graphics, the shape viewed from the left-eye viewpoint is drawn on the left image plane 9 for one drawing target object, and the shape viewed from the right-eye viewpoint is It is assumed that a set process of drawing on the image plane 10 is often performed continuously.
  • a rendering engine is extracted so that a pair of drawing requests corresponding to the drawing processing forming these sets is extracted, and the plane synthesis unit 20 does not output a video image that causes visual inconsistency between the left eye and the right eye.
  • the playlist has a dimension identification flag for identifying whether it is for 3D or 2D.
  • the stream for the right eye and the stream for the left eye may be recorded separately, or may be embedded in a single stream file with a rule. This form is described on the assumption that the stream for the right eye and the stream for the left eye are embedded in one stream file in advance.
  • the demultiplexer 3 sorts the left eye stream and the right eye stream from the stream header information.
  • the playback apparatus 200 has a set of video decoders, a left video plane 5 that is a left-eye video plane, and a right video plane 6 that is a right-eye video plane, and outputs a stereoscopic video.
  • the video decoder alternately processes the left-eye video and the right-eye video, and outputs them alternately to the left video plane 5 and the right video plane 6, respectively.
  • a playback instruction is given to the playback device 200, the processing shown in FIG. 26 is started.
  • This playback instruction itself is performed in accordance with a user's playback specification (for example, pressing of a playback button), automatically performed by insertion of the BD-ROM 100 into a playback device, or other BD-J modules.
  • a user's playback specification for example, pressing of a playback button
  • the instruction is started, for example, when it is automatically performed according to the setting in the apparatus. In this embodiment, it may be considered that the process is started in an arbitrary format.
  • FIG. 26 is a flowchart showing a processing procedure of frame processing when realizing alternate output of left and right planes.
  • Frame processing is processing in which data is read from a video plane or an image plane and superimposed and output during a frame period of a video signal. That is, since writing of the drawing image from the middleware to the image plane has been described in the first to third embodiments, in this embodiment, data reading from the image plane and the video plane to the synthesis unit is performed. The explanation will be centered.
  • step S401 from one or more playlists and multiple streams read from the virtual file system 25, a playlist and a transport stream designated as playback processing targets are extracted, and current playlist (PL) information and current Set in stream management information.
  • PL current playlist
  • the demultiplexer 3 refers to the current playlist information in the static scenario memory 11 and acquires a transport stream to be processed.
  • step S402 the demultiplexer 3 acquires a dimension identification flag from the current playlist information in the static scenario memory 11, passes it to the dimension determination unit 28, and determines whether the stream to be played is for 2D or 3D stereoscopic viewing. Get.
  • 2D video output processing is performed.
  • the L image and the R image are the same image in the first place, or even if there are separate images, either image is discarded and not displayed, and as a result, the same as in conventional BD-ROM playback It becomes processing of.
  • 2D video output is always output to the left video plane 5
  • the image decoder 8 and the rendering engine 22 always output image data only to the left image plane 9
  • the plane composition unit 20 always outputs the left video plane 5 and left.
  • step S402 If the determination in step S402 is 3D, playback of 3D video is started.
  • the playback device 200 alternately repeats the video output of the left-eye video (L image) and the video output of the right-eye video (R image) through the plane synthesis unit 20.
  • the playback device 200 when the playback of 3D video is started, the playback device 200 generates left and right output videos according to the processing from step S403L.
  • the L image generation process corresponds to Step S403L, Step S404L, Step S405L, and Step S406L
  • the R image generation process corresponds to Step S403, Step S404R, Step S405R, and Step S406R.
  • step S403L the video picture for the left eye is extracted from the transport stream to be processed by the video decoder and output to the left video plane 5.
  • step S404L and step S405L the plane combining unit 20 performs a process of combining the video picture of the left video plane 5 and the image data of the left image plane 9 over the entire plane.
  • the left video plane 5 and the left image plane 9 have the same resolution, and both have a width W pixel and a height H pixel.
  • the y-th line data of the L image is generated by superimposing the y-th line data of the left image plane 9, and is output as the final video output.
  • the plane compositing unit 20 sends a compositing process completion notification that the compositing process of the L image is completed to the left and right drawing processing arbitrating unit 30 in the process of step S406L.
  • Step S403R Step S404R, Step S405R, and Step S406R.
  • Step S403L Step S403L
  • Step S404L Step S405L
  • Step S406L Step S406L
  • the image data of the left image plane 9 and then the image of the right image plane 10 are alternately sent to the plane composition unit 20.
  • the rendering engine 22 rewrites the images of the left image plane 9 and the right image plane 10 at the timing of step S406L when all the image data of the left image plane 9 is sent.
  • step S403R is subsequently executed, the R image sent to the plane synthesis unit becomes the stored content of the right image plane 10 after rewriting.
  • the L image sent to the plane composition unit is an image that has already been sent before rewriting
  • the L image and R image that are output as a result are inconsistent in that only the R image reflects the rewriting. turn into.
  • the left and right drawing processing arbitration unit 30 adjusts the processing timing of the rendering engine 22 by the processing of the flowchart shown in FIG.
  • FIG. 27 is a flowchart showing the processing procedure of the left and right drawing processing arbitration unit 30 when adjustment of the drawing request issuance timing is involved.
  • the left-right drawing processing arbitration unit 30 first waits for a drawing request issued from the BD-J module 15 based on a drawing instruction from the BD-J application in step S501. In step S502, it is determined whether or not the type information of the drawing request received in step S501 is “simultaneous left and right image copy” described in the first embodiment.
  • the drawing request is issued as it is to the rendering engine 22 in the process of step S503. Since this is the same processing as that of the conventional BD-J module 15, a description thereof will be omitted.
  • the process proceeds to step S504L and subsequent steps.
  • the BD-J app draws a shape as seen from the left eye viewpoint and a shape seen from the right eye viewpoint for a single drawing target object. It is predicted that they are going to try. For this reason, the results of these two image copy processes must be reliably processed as video output of the same frame in the plane synthesizing unit 20, otherwise the left and right display will be inconsistent.
  • step S504L after waiting for the L image composition completion notification (issued in step S406L of FIG. 26) from the plane composition unit 20, the rendering engine is processed in step S505L. 22 issues a drawing request for image copy processing related to the left image plane 9.
  • the rendering engine is processed in step S505L. 22 issues a drawing request for image copy processing related to the left image plane 9.
  • step S504R after waiting for the R image composition completion notification (issued in step S406R of FIG. 26) from the plane composition unit 20, the process proceeds to step S505R.
  • a rendering request for image copy processing related to the right image plane 10 is issued to the rendering engine 22.
  • forced copy when switching from 3D to 2D may be executed. That is, if the determination in step S402 is 2D, as described above, for example, the video output in 2D mode is always output to the left video plane 5, and the rendering engine 22 always draws only on the left image plane 9, The plane synthesizing unit 20 always performs only the synthesis of the left video plane 5 and the left image plane 9.
  • the playback of the 2D stream is once finished and then the playback of the 3D stream is started.
  • the BD-J application also operates as a 2D drawing application, so only the left image plane 9 is drawn and nothing is drawn on the right image plane. It remains.
  • the plane composition unit 20 outputs an image of the right image plane 10 on which nothing has been drawn in the processes of steps S404R and S405R.
  • the BD-J app will also start operating as a 3D rendering application. However, if there is a time lag at the timing of these switchings, only an R image will be output in black for a moment. , Flickering will occur.
  • the contents of the left image plane 9 may be forcibly copied to the right image plane 10 at the timing when the operation of the plane synthesis unit 20 switches from 2D to 3D. Not only when the stream is switched from 2D to 3D, but also when there is a function to switch only the operation mode of the BD-J module from 2D to 3D, for example, by performing the same copy at the switching timing, The same kind of flicker can be prevented regardless of the implementation of the BD-J app.
  • the BD-J module supports 1 plane + Offset mode in which 3D rendering is performed using only the left image plane 9, the left and right inconsistencies can be resolved by executing copy processing and shift processing. .
  • the 1 plane + Offset mode is a mode in which the entire left image plane 9 is shifted by n pixels to the left as an L image and output by n pixels to the right as an R image, so that the entire plane is displayed in front or behind. .
  • the shifted image is copied to the right image plane 10. Thereafter, if the entire left image plane 9 is shifted to the left by n pixels, flickering can be suppressed because the outputs of the L image and R image before and after the transition to the drawing mode match.
  • This shift and copy process can be applied even when transitioning from the 1 plane + Offset mode to the 3D drawing mode using both the left and right image planes.
  • FIG. 28 is a flowchart showing frame processing in the case of realizing alternate output of lines.
  • Step S701 and step S702 are the same as step S401 and step S402 of FIG. 26, respectively, and when the determination result of step S702 is 3D, playback of 3D video is started.
  • the playback device 200 When the playback of 3D video is started, the playback device 200 generates left and right output videos according to the processing from step S703L.
  • the video picture for the left eye and the video picture for the right eye are extracted from the transport stream to be processed by the video decoder, and the left video plane 5 and the right video plane 6 are respectively obtained. Output to.
  • the plane combining unit 20 performs processing for combining the entire left and right planes.
  • the left and right video planes and the left and right image planes have the same resolution and both have a width of W pixels and a height of H pixels.
  • step S705L the y-th video of the left image plane 9 is superimposed on the y-th video of the left video plane 5 to generate the y-th row of the output L image. And output as the final video output.
  • step S705R the y-th row image of the right image plane 10 is superimposed on the y-th row image of the right video plane 6 to generate the y-th row of the output R image.
  • Output as output.
  • the processing is performed one line at a time from the top, but the processing may be performed in another order, such as from the bottom to the top.
  • the video plane and the image plane have the same resolution, a configuration in which these resolutions are different may be employed.
  • the plane compositing unit 20 sends a compositing process completion notification that the compositing process of both the L image and the R image has been completed to the left and right drawing processing arbitrating unit 30 in the process of step S706. Against.
  • the above is the processing flow when projecting a stereoscopic video in the present embodiment.
  • the image data of the left image plane 9 and then the image of the right image plane 10 are alternately sent one line at a time, that is, when viewed as one frame, both images are sent to the plane synthesizing unit 20 in parallel.
  • the rendering engine 22 when trying to draw a shape viewed from the left eye viewpoint and a shape viewed from the right eye viewpoint for one drawing target object with a BD-J application in this order, the rendering engine 22 first performs the left image plane. Rewrite 9 images. However, when left and right image output is executed at this timing, the L image to be generated reflects the rewriting of the left image plane 9, but the right image plane 10 is not yet rewritten for the R image. Therefore, the L image and the R image that are output as a result are inconsistent in that only the L image reflects the rewriting.
  • the left-right drawing processing arbitration unit 30 controls the processing order of the rendering engine 22 by the processing of the flowchart shown in FIG. 29, thereby avoiding inconsistent display as described above.
  • FIG. 29 is a flowchart showing a processing procedure of the left / right drawing processing arbitration unit 30 with integration of drawing requests.
  • step S801 it waits for a drawing request A to be issued from the BD-J module 15 based on a drawing instruction from the BD-J application.
  • the issued drawing request is expressed by the same structure as the previous embodiment.
  • step S802 it is determined whether or not the type information of the drawing request A received in step S801 is “image copy” and the drawing target plane is the left image plane 9.
  • step S802 If the condition of step S802 is not satisfied, the rendering request A is issued as it is to the rendering engine 22 in the process of step S803. Since this is the same processing as that of the conventional BD-J module 15, a description thereof will be omitted.
  • step S802 If the condition of step S802 is satisfied, the processing of the drawing request A is not performed at this timing but is suspended, and the next drawing request B from the BD-J module 15 is issued in the next step S804. wait.
  • step S805 it is determined whether or not the type information of the drawing request B received in step S804 is “image copy” and the drawing target plane is the right image plane 10.
  • step S805 the drawing position of the image copy of drawing request A and the drawing position of the image copy of drawing request B are compared in the subsequent process of step S809. Specifically, it is determined whether or not the values of y1 and y2, which mean the Y coordinate of both drawing destination rectangular areas, match.
  • the shape viewed from the left-eye viewpoint is drawn on the left image plane 9 for one drawing target object, and the shape viewed from the right-eye viewpoint is It is assumed that a set process of drawing on the image plane 10 is often performed continuously. Furthermore, since the difference between the left and right drawing is due to the difference in viewpoint, it is assumed that the Y coordinate is the same and the drawing is performed by shifting only the X coordinate by the amount of parallax.
  • the drawing request A and the drawing request B are image copies to the left image plane 9 and the right image plane 10, respectively, and that the difference between the drawing positions is only the X coordinate. It is predicted that a certain drawing target object is to be drawn as a set of a shape viewed from the left eye viewpoint and a shape viewed from the right eye viewpoint. Therefore, the results of these two image copy processes need to be processed reliably as video output of the same frame in the plane synthesis unit 20.
  • step S809 the left and right drawing processing arbitration unit 30 integrates the drawing requests A and B with the rendering engine 22 instead of the drawing request A and the drawing request B by the processing of step S810. Issue simultaneous drawing request C.
  • FIG. 30 (a) is a diagram showing a simultaneous left / right drawing request C obtained by the above integration.
  • 30A drawing request C
  • One drawing request is combined into one.
  • the rendering engine 22 that has received the simultaneous right and left drawing request C does not perform the image copy process to the left image plane 9 and the image copy process to the right image plane 10 in order, but performs, for example, left and right copy processes as a bitmap image. Alternate from bottom to top speed conversion lines. As a result, drawing processing on the left and right image planes is executed in parallel, so that any timing of the synthesis processing steps S704, S705L, and S705R of the plane synthesis unit 20 in FIG. Inconsistency in display of the L image and the R image as the output video can be minimized.
  • the rendering engine 22 gives an example of processing the left and right one line at a time.
  • the unit of processing to switch alternately is not limited to one line at a time, and it is possible to completely parallel processing by providing two rendering engines.
  • step S805 or step S809 it is determined that the drawing request A and the drawing request B are not a set of drawing from the left and right viewpoints for one object.
  • processing that allows the occurrence of display flickering is performed.
  • the BD-J application may flicker for the developer of the BD-J application or the user of the playback device 200. Can be notified.
  • the BD-J application developer may be notified by throwing an Exception message in the BD-Java specification, or by displaying the warning message on the display 400, A configuration may be adopted in which a warning is given to the developer of the J application or the user of the playback device 200.
  • step S807 and step S808 the pending drawing request A and drawing request B are issued to the rendering engine 22 as they are, thereby executing the same drawing process as in the previous embodiments.
  • step S802 the results of the two image copies that satisfy the conditions of step S802, step S805, and step S809 are simultaneously reflected in the video output of the same frame by the plane composition unit 20. Therefore, although there is a possibility that flickering (tearing) may occur, it is possible to suppress flickering accompanied by left-right visual inconsistency due to display mismatch between the L image and the R image.
  • the following may be adopted as a variation of the determination target.
  • image copy is set as the object of the determination processing in step S802 and step S805
  • other processes such as “rectangular filling” may be added to the determination target.
  • the range of drawing processing types that can suppress flickering can be expanded.
  • the simultaneous right / left drawing request is issued immediately in step S810.
  • the configuration may be such that the left / right simultaneous drawing request is issued after waiting for the compositing process completion notification in step S706 of FIG.
  • the image copy process can be completed before the processes of steps S705L and S705R of the next frame are executed in FIG. It is possible to realize a higher quality screen update without tearing.
  • the L image and the R image are alternately processed one line at a time from the top so that the L image and the R image are generated in parallel in a pseudo manner.
  • the unit is not limited to one line.
  • the configuration diagram of FIG. 25 has one set each of a video decoder, an image decoder, and a plane synthesizing unit. For example, in hardware having two of these configurations, images for the left eye and right eye are displayed. Can be processed in separate systems. That is, the left-eye video decoder stores video pictures in the left video plane 5, the left-eye image decoder stores image data in the left image plane 9, and the left-eye plane combining unit stores the left video plane 5. And the image of the left image plane 9 are combined and the processing for the right eye is processed in a separate system as well, so that the L image generation processing and the R image generation processing are performed in parallel. May be.
  • the video output of the plane synthesis unit 20 is configured to alternately output the L image and the R image one line at a time, but the video output is not limited to this format.
  • the video output is not limited to this format.
  • a configuration having two systems of video output for the left eye and video output for the right eye can be used as the video output.
  • the video output of the left-eye video (L image) and the video for the right eye (the same as the first embodiment) (R image) video output can be repeated alternately.
  • FIG. 30D shows a screen update request 904.
  • This screen update request 904 is defined as a java.awt.Toolkit # sync method in the BD-Java standard.
  • the screen update process is intended to guarantee from the BD-J app side that the image of the current image plane is reliably sent to the display display side. This is particularly meaningful in an implementation that suppresses tearing by having a target buffer and a display target buffer separately.
  • FIG. 31 is a flowchart showing a processing procedure of the left-right drawing processing arbitration unit 30 triggered by a screen update request.
  • step S1001, step S1002, step S1003, step S1004, step S1005, step S1006, step S1007, and step S1008 of this flowchart is respectively step S801, step S802, step S803, step S804, step S805, step S806, This is the same as step S807, step S808, and step S809.
  • step S1002 If the conditions of step S1002, step S1005, and step S1008 are satisfied, that is, if it is determined that the drawing request A and the drawing request B correspond to a set for drawing from the left and right viewpoints for one object, Processing corresponding to request A and drawing request B is not performed at this timing. That is, the drawing requests A and B are held, and the next drawing request C is issued from the BD-J module 15 in the next step S1009.
  • step S1010 it is determined whether or not the type of the drawing request C is “screen update”. If the drawing request C is “updating screen”, the left and right drawing processing arbitration unit 30 issues a left and right simultaneous drawing request to the rendering engine 22 instead of the drawing request A and the drawing request B by the processing in step S1013. To do.
  • step S1011 If the drawing request C is not “updating screen”, a warning message is output in step S1011, and then the drawing request A, drawing request B, and drawing request C that have been suspended are sent to the rendering engine 22 in step S1012. Thus, the same drawing processing as in the previous embodiments is executed.
  • the image plane has a single buffer configuration
  • the image of the image plane is reflected in the video output according to the operation timing of the plane compositing unit 20 regardless of the presence or absence of the screen update request. Not necessarily meaningful.
  • the screen update request is important.
  • the BD-J application does not call “image copy” to the left image plane 9, “image copy” to the right image plane 10, and “update screen” in this order, a warning message is displayed. Therefore, it is possible to encourage a BD-J application developer to develop a BD-J application with high playback compatibility on various playback devices.
  • the left image plane 9 and the right image plane 10 are separate image planes, and drawing is performed from the viewpoint of a drawing request from the BD-J app. It was assumed that the target planes were handled separately. In the present embodiment, the left image plane 9 and the right image plane 10 are treated as the same plane from the viewpoint of the BD-J application.
  • FIG. 32A shows a connected image plane (hereinafter referred to as a side-by-side format) configured by connecting the left image plane 9 and the right image plane 10 side by side.
  • a connected image plane (hereinafter referred to as a side-by-side format) configured by connecting the left image plane 9 and the right image plane 10 side by side.
  • the connected image plane is W ⁇ 2 pixels high and H pixels high.
  • This side-by-side image plane connection can be realized by configuring the left and right image planes as the same physically continuous memory.
  • the left image plane 9 and the right image plane 10 are configured by separate memories, and can be realized by adopting a configuration in which only the BD-J application can be viewed as one connected image plane.
  • FIG. 32 (b) shows a concatenated image plane (hereinafter referred to as a top-and-bottom format) in which the left image plane 9 and the right image plane 10 are arranged one above the other and concatenated.
  • the resolution of the left and right image planes is W pixels wide and H pixels high
  • the connected image plane is W pixels wide and H ⁇ 2 pixels high.
  • the left image plane 9 and the right image plane 10 may be configured by separate memories so that only the BD-J application can be seen as one connected image plane.
  • the BD-J application sets a rectangular area that extends vertically between the left image plane and the right image plane in FIG. Can do.
  • FIG. 33 is a flowchart of the process of the left-right drawing process arbitration 30 in the present embodiment.
  • step S1101 the BD-J module 15 waits for a drawing request to be issued based on a drawing instruction from the BD-J application. If a drawing request is issued, in S1102, whether or not the drawing request type information received in step S1101 is “image copy” and the drawing position extends over both the left image plane and the right image plane. judge.
  • step S1103 the drawing request is issued to the rendering engine 22 as it is, thereby executing the same drawing process as in the previous embodiments.
  • step S1102 When the condition of step S1102 is satisfied, the process proceeds to step S1104L.
  • the BD-J app uses the shape and right eye of a single drawing target object as seen from the left eye viewpoint. It is predicted that the shape viewed from the viewpoint is going to be drawn as a set. Therefore, in the present embodiment, the left and right drawing processing arbitration unit 30 adjusts the processing timing of the rendering engine 22 by the processing after step S1104L, thereby trying to avoid inconsistencies in the display of the L image and the R image.
  • step S1104L it waits for an L image composition completion notification (issued in step S406L in FIG. 26) from the plane composition unit 20.
  • step S1105L a rendering request for image copy processing in which only the portion included in the left image plane 9 is cut out as a rendering position is issued to the rendering engine 22.
  • a rendering request for image copy processing in which only the portion included in the left image plane 9 is cut out as a rendering position is issued to the rendering engine 22.
  • an image copy for a rectangular area designated by (x1, y1) in the upper left and (W, y2) in the lower right may be issued.
  • step S1104R it waits for an R image composition completion notification (issued in step S406R in FIG. 26) from the plane composition unit 20.
  • an R image composition completion notification (issued in step S406R in FIG. 26) from the plane composition unit 20.
  • step S1105R a rendering request for image copy processing in which only a portion included in the right image plane 10 is cut out as a rendering position is issued to the rendering engine 22.
  • an image copy for a rectangular area designated by (W, y1) at the upper left and (x2, y2) at the lower right may be issued.
  • the image copy result for the left image plane 9 is reflected in the video output in the processes of steps S404L and S405L of the next frame in FIG.
  • the result of image copy for the right image plane 10 can be guaranteed to be reflected in the video output in the processing of steps S404R and S405R of the next frame. Since it is reflected in the video output of the same frame at 20, it is possible to prevent flickering due to display mismatch between the L image and the R image.
  • (Eighth embodiment) 10 is an embodiment for realizing separation of a drawing request for a connected image plane.
  • the drawing request separation is performed by separating a drawing request for a certain rectangular range into an image copy process in which only a part included in the left image plane 9 is cut out and an image copy process in which only a part included in the right image plane 10 is cut out. These image copy processes are executed simultaneously.
  • FIG. 34 shows a drawing request and a right and left simultaneous drawing request.
  • the left and right simultaneous drawing request 1402 is a right and left simultaneous drawing request obtained by converting the drawing request 1401, and an image copy process in which only a portion included in the left image plane 9 is cut out and a portion included in the right image plane 10 The image copy process with only the cutout is requested at the same time on the left and right.
  • FIG. 35 is a flowchart of the process of the left-right drawing process arbitration unit 30 in the present embodiment.
  • step S1201 the process waits for a drawing request issued from the BD-J module 15 based on a drawing instruction from the BD-J application.
  • step S1202 whether or not the drawing request type information received in step S1201 is “image copy” and the drawing range extends to the left and right regions, or whether the drawing range extends to the upper and lower regions. Determine whether.
  • the BD-J application can request image copy processing using a rectangular area extending vertically as a drawing range.
  • the BD-J app can request image copy processing using a rectangular area that spans the left and right as the drawing range.
  • step S1202 If the condition of step S1202 is not satisfied, the drawing process similar to the above is executed by issuing the drawing request as it is to the rendering engine 22 in the process of step S1203.
  • step S1204 the accepted drawing request is cut out of only the part included in the left image plane 9 and only the part included in the right image plane 10 is cut out. It is converted into a simultaneous left / right drawing request for simultaneously executing image copy processing and issued to the rendering engine 22.
  • the BD-J app uses the shape and right eye of a single drawing target object as seen from the left eye viewpoint. It is predicted that the shape viewed from the viewpoint is going to be drawn as a set. Therefore, in step S1204, the rendering request for one image copy process is converted into a right and left simultaneous rendering request for simultaneously requesting two image copy processes, thereby controlling the processing order of the rendering engine 22, Avoid inconsistencies in R image display.
  • the rendering engine 22 that has received the right-and-left simultaneous drawing request 1402 sequentially performs the image copy process to the left image plane 9 and the image copy process to the right image plane 10 as described in the fifth embodiment. Instead, for example, the left and right copy processing is alternately performed from the top of the bitmap image to the bottom speed conversion line, thereby minimizing the display mismatch of the L image and R image as output video. Can do.
  • the Y coordinate of the drawing position on the left image plane 9 may not match the Y coordinate of the drawing position on the right image plane 10. Therefore, the copy process is not simply performed alternately line by line from the top, but for example, a copy process to the y-th line of the left image plane 9 is performed, and then to the y-th line of the right image plane 10 as well. It is desirable to perform copying in the order in which the copying process is performed.
  • image copy is a target of the determination process in step S1202
  • a drawing request other than image copy is the same as the conventional process, that is, a display flicker is allowed.
  • processing other than image copying for example, “rectangular filling” or the like may be added to the target of determination as to whether or not to make a right and left simultaneous drawing request. In this case, the range of drawing processing types that can suppress flickering can be expanded.
  • Steposcopic method In the parallax image method assumed in the description of each embodiment, in order to display the left and right images alternately in the time axis direction, for example, in the case of a normal two-dimensional movie, 24 images are displayed per second. On the other hand, it is necessary to display 48 images per second including left and right images. Therefore, this method is suitable for a display device in which rewriting of one screen is relatively quick. Stereoscopic viewing using this parallax image is already commonly used in amusement park playground equipment and the like, and since it has been established technically, it can be said that it is the closest to practical application at home. In addition to these, various techniques such as a two-color separation method have been proposed for stereoscopic viewing using parallax images. In the present embodiment, the sequential separation method or the polarized glasses method has been described as an example, but the present invention is not limited to these two methods as long as a parallax image is used.
  • the television 400 not only a lenticular lens but also a device having a similar function, such as a liquid crystal element, may be used.
  • the left eye pixel is equipped with a vertically polarized filter
  • the right eye pixel is equipped with a horizontally polarized filter
  • the viewer is provided with polarized glasses with a vertically polarized filter for the left eye and a horizontally polarized filter for the right eye.
  • the stereoscopic view may be realized by viewing the screen of the display device using.
  • the application program shown in each embodiment can be created as follows. First, a software developer uses a programming language to write a source program that implements each flowchart and functional components. In this description, the software developer describes a source program that embodies each flowchart and functional components using a class structure, a variable, an array variable, and an external function call according to the syntax of the programming language.
  • the described source program is given to the compiler as a file.
  • the compiler translates these source programs to generate an object program.
  • Translator translation consists of processes such as syntax analysis, optimization, resource allocation, and code generation.
  • syntax analysis lexical analysis, syntax analysis, and semantic analysis of the source program are performed, and the source program is converted into an intermediate program.
  • optimization operations such as basic block formation, control flow analysis, and data flow analysis are performed on the intermediate program.
  • resource allocation in order to adapt to the instruction set of the target processor, a variable in the intermediate program is allocated to a register or memory of the processor of the target processor.
  • code generation each intermediate instruction in the intermediate program is converted into a program code to obtain an object program.
  • the object program generated here is composed of one or more program codes that cause a computer to execute the steps of the flowcharts shown in the embodiments and the individual procedures of the functional components.
  • program codes such as a processor native code and a JAVA byte code.
  • a call statement that calls the external function becomes a program code.
  • a program code that realizes one step may belong to different object programs.
  • each step of the flowchart may be realized by combining arithmetic operation instructions, logical operation instructions, branch instructions, and the like.
  • the programmer activates the linker for these.
  • the linker allocates these object programs and related library programs to a memory space, and combines them into one to generate a load module.
  • the load module generated in this manner is premised on reading by a computer, and causes the computer to execute the processing procedures and the functional component processing procedures shown in each flowchart.
  • Such a program may be recorded on a computer-readable recording medium and provided to the user.
  • the recording medium in each embodiment includes all package media such as an optical disk and a semiconductor memory card.
  • the recording medium of the present embodiment will be described by taking an example of an optical disc (for example, an existing readable optical disc such as a BD-ROM or DVD-ROM) in which necessary data is recorded in advance.
  • a terminal device having a function of writing 3D content including data necessary for carrying out the present invention distributed via broadcasting or a network to an optical disc (for example, the function described on the left may be incorporated in a playback device)
  • an optical disc for example, the function described on the left may be incorporated in a playback device
  • the present invention can be carried out even if is applied to the reproducing apparatus of the present invention.
  • Video decoder configuration In each embodiment, it has been described that the video decoders of the left-eye video decoder 5a and the right-eye video decoder 5b exist, but these may be integrated.
  • Embodiments of Semiconductor Memory Card Recording Device and Playback Device Embodiments of a recording apparatus that records the data structure described in each embodiment in a semiconductor memory and a reproducing apparatus that reproduces the data structure will be described.
  • a part of the data may be encrypted as necessary from the viewpoint of protecting the copyright and improving the confidentiality of the data.
  • the encrypted data may be, for example, data corresponding to a video stream, data corresponding to an audio stream, or data corresponding to a stream including these.
  • data for example, a device key
  • a key necessary for decrypting the encrypted data in the BD-ROM is stored in advance in the playback device.
  • the BD-ROM decrypts the data corresponding to the key necessary for decrypting the encrypted data (for example, MKB (media key block) corresponding to the above-mentioned device key) and the encrypted data.
  • Data for encrypting the key itself (for example, the above-described device key and encrypted title key corresponding to MKB) is recorded.
  • the device key, the MKB, and the encrypted title key are paired, and are also associated with an identifier (for example, a volume ID) written in an area that cannot be normally copied (an area called BCA) on the BD-ROM. Has been. If this combination is not correct, the code cannot be decrypted.
  • the key necessary for decryption (for example, the title key obtained by decrypting the encrypted title key based on the above-mentioned device key, MKB and volume ID) can be derived.
  • the encrypted data can be decrypted using the necessary key.
  • the loaded BD-ROM When the loaded BD-ROM is played back on a playback device, for example, if the device key that is paired with (or corresponding to) the encrypted title key and MKB in the BD-ROM is not in the playback device, it is encrypted. The data is not played back. This is because the key (title key) required to decrypt the encrypted data is recorded on the BD-ROM with the key itself encrypted (encrypted title key), and a combination of MKB and device key. If is not correct, the key necessary for decryption cannot be derived.
  • the playback apparatus is configured such that the video stream is decoded by the decoder using the title key, and the audio stream is decoded by the audio decoder.
  • the above is the mechanism for protecting the copyright of the data recorded on the BD-ROM.
  • this mechanism is not necessarily limited to the BD-ROM.
  • a readable / writable semiconductor memory for example, SD
  • the present invention can be implemented even when applied to a portable semiconductor memory card such as a card.
  • an optical disk is configured to read data via an optical disk drive, whereas when a semiconductor memory card is used, data is read via an I / F for reading data in the semiconductor memory card. What is necessary is just to comprise so that it may read.
  • the playback device and the semiconductor memory card are electrically connected via the semiconductor memory card I / F. What is necessary is just to comprise so that the data recorded on the semiconductor memory card may be read via the semiconductor memory card I / F.
  • data recorded on the recording medium 100 shown in FIGS. 1 and 24 for example, data corresponding to the original content recorded on the recording medium 100 (for example, video stream, audio All or part of a stream, subtitle data, subtitle data, background image, GUI, application, application management table, etc. (for example, update data of data necessary for playback) or additional content is recorded in semiconductor memory as distribution data The operation will be described.
  • the above-described operation may be configured such that the playback device described in the present embodiment can perform an operation of recording in the semiconductor memory, or distributed to the semiconductor memory separately from the playback device of the present embodiment. It may be configured to be performed by a dedicated terminal device that stores data.
  • a dedicated terminal device that stores data.
  • an example performed by the playback apparatus will be described.
  • an SD memory card will be described as an example of the recording destination semiconductor memory.
  • the playback device When recording distribution data on an SD memory card inserted in a slot provided in the playback device, first, transmission of distribution data is requested to a distribution server (not shown) that stores the distribution data. At this time, the playback device uses identification information for uniquely identifying the inserted SD memory card (for example, an identification number unique to each SD memory card, more specifically, for example, a serial number of the SD memory card). And the read identification information is transmitted to the distribution server together with the distribution request.
  • identification information for uniquely identifying the inserted SD memory card for example, an identification number unique to each SD memory card, more specifically, for example, a serial number of the SD memory card.
  • the identification information for uniquely identifying the SD memory card corresponds to, for example, the volume ID described above.
  • necessary data for example, a video stream, an audio stream, etc.
  • a key for example, a title key
  • the distribution server holds a secret key and is configured so that different public key information can be dynamically generated for each unique identification number of the semiconductor memory card.
  • the distribution server is configured to be able to encrypt the key (title key) necessary for decrypting the encrypted data (that is, configured to generate an encrypted title key).
  • the generated public key information includes, for example, information corresponding to the above-described MKB, volume ID, and encrypted title key.
  • the encrypted data is, for example, a key necessary for decryption (for example, Based on the device key, MKB, and the identification number unique to the semiconductor memory, a title key obtained by decrypting the encrypted title key) is obtained, and using the obtained key (title key) necessary for decryption, Encrypted data can be decrypted.
  • the playback device records the received public key information and distribution data in the recording area of the semiconductor memory card inserted in the slot.
  • the received public key information includes, for example, a public key body (for example, the above-mentioned MKB and encrypted title key), signature information, a unique identification number of the semiconductor memory card, and a device list indicating information on devices to be invalidated. Yes.
  • the signature information includes, for example, a hash value of public key information.
  • This may be a device that is likely to be played illegally, such as a device key pre-recorded on the playback device, an identification number of the playback device, or an identification number of a decoder included in the playback device, or a component included in the device, or This is information for uniquely identifying a function (program).
  • the following describes the playback of encrypted data among the distribution data recorded in the recording area of the semiconductor memory card.
  • (1) Check whether the identification information unique to the semiconductor memory included in the public key information matches the unique identification number stored in advance in the semiconductor memory card. (2) The public key information calculated in the playback device. Check whether hash value and hash value included in signature information match (3) Check whether playback device that performs playback is capable of unauthorized playback based on information shown in device list included in public key information (For example, check whether the device key shown in the device list included in the public key information matches the device key stored in advance in the playback device) To do. These checks may be performed in any order.
  • the identification information unique to the semiconductor memory included in the public key information does not match the unique identification number stored in advance in the semiconductor memory, and is calculated by the playback device. If the hash value of the key information and the hash value included in the signature information do not match or if it is determined that there is a possibility that the playback device that performs playback may be played back illegally, the playback device Control to prevent decryption of encrypted data.
  • the identification number unique to the semiconductor memory, the public key body included in the public key information, And the device key pre-recorded on the playback device is determined to be correct, and is obtained by decrypting the encrypted title key based on the key necessary for decryption (device key, MKB and identification number unique to the semiconductor memory)
  • the encrypted data is decrypted using the title key.
  • the video decoder decrypts the video stream by using the above-described key necessary for decryption (the title key obtained by decrypting the encrypted title key).
  • the audio decoder decodes (decodes) the audio stream using the key necessary for the above-described decryption.
  • a recording area for recording highly confidential data such as a unique identifier of the semiconductor memory card is used as a recording area for storing normal data (the first area).
  • a control circuit for accessing the second recording area Provided in a different recording area (referred to as a second recording area), a control circuit for accessing the second recording area, and a second recording area. Access to the access point is configured so that it can be accessed only through the control circuit.
  • the data recorded in the second recording area is encrypted and recorded
  • the control circuit includes, for example, a circuit for decrypting the encrypted data.
  • the encryption is decrypted and the decrypted data is returned.
  • the control circuit holds information on the storage location of the data recorded in the second recording area, and if there is a data access request, specifies the storage location of the corresponding data, and specifies the specified storage location It may be configured to return the data read from the.
  • An application that operates on a playback device and requests to record on a semiconductor memory card using electronic distribution is used to transmit data recorded in the second recording area to the control circuit via the memory card I / F (eg, semiconductor).
  • the control circuit that has received the request reads the data recorded in the second recording area and returns it to the application operating on the playback device. It is configured to request a distribution server for a required data distribution request together with a unique identification number of the semiconductor memory card, and record the public key information sent from the distribution server and the corresponding distribution data in the first recording area. That's fine.
  • an application that operates on the playback device and requests recording to the semiconductor memory card using electronic distribution is used to record data (in the second recording area) to the control circuit via the memory card I / F.
  • the application before issuing an access request to an identification number unique to a semiconductor memory, it is desirable to check in advance whether the application has been tampered with.
  • a check using a digital certificate compliant with the existing X.509 specification may be used.
  • the present invention relates to a technology for suppressing flicker at the timing of drawing update in a playback device that plays back stereoscopic video, and in particular, to a stereoscopic video playback device having a function of updating an image asynchronously with video output of the playback device. Is possible.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Transforming Electric Information Into Light Information (AREA)
  • Processing Or Creating Images (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

 ビデオストリームの再生時間軸における複数のフレーム期間のうち、i番目のフレーム期間において表示されるべき立体視映像に描画イメージを合成する場合、i番目のフレーム期間が開始されるまでに、レフトビュープレーンメモリへの描画イメージの書き込み、及び、ライトビュープレーンメモリへの描画イメージの書き込みを完了する必要がある。この書き込みの指示を同時に命じるべく、アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む。

Description

再生装置、再生方法、プログラム
 本発明は、立体視再生の技術分野に属する発明である。
 立体視再生とは、ライトビュー用とレフトビュー用の2つの視点の映像を準備することにより、立体視を実現する技術である。立体視ディスプレイの実現にはさまざまな方式があるが、視聴者の左眼と右眼とに、異なる表示画像を見せ、その両眼間の視差を利用することにより、立体的な映像を擬似的に作ることが基本原理である。
 例えば、立体視表示の実現方式の一つにシャッター眼鏡を利用した方式がある。この方式では、表示ディスプレイの映像を左眼用と右眼用とで高速で更新する。この更新タイミングと同期させて、視聴者の左眼と右眼の視野をメガネによって交互に高速に塞ぐことで、ディスプレイで表示される左眼用の画像はシャッター眼鏡により左眼だけによって見え、逆に右眼用の画像は右眼によってだけ見える仕組みを実現できる。
 現状、ビデオストリームの立体視再生を利用する形態は、劇場等での応用が主流であるが、今後は家庭設置用の再生装置で立体視ビデオストリームを再生して楽しむ利用形態も普及が予想される。
 特にBD-ROM等のパッケージメディアでは、ビデオだけでなく、背景イメージ、字幕、そして描画イメージを別々のプレーンとして持ち、表示機器にはこれらを重ね合わせた映像を表示することができるので、これら背景イメージ、字幕、そして描画イメージのそれぞれで立体視を行えば、対話性の富んだ、立体視再生を実現することができる。これらのうち、ビデオおよび字幕については、再生装置の映像出力信号とフレーム単位で同期する方式が採用されているため、ちらつきのない美しい動画再生が実現されている。
特開平9-139957号公報 特開2000-102037号公報
 ところで立体視コンテンツの再生時に、アプリケーションを起動して、動画再生に同期したGUIをアプリケーションに描画させることで、立体視コンテンツの再生時におけるユーザ操作を容易に行わせたいという要望がある。これは、既存のBD-ROMコンテンツにおいて、コンテンツと、アプリケーションとを連動させて、アプリケーションにGUI処理を行わせるという高度な処理が実現されており、これを立体視コンテンツでも実現したいというコンテンツ制作者側からの要望による。
 アプリケーションによる描画は、ビットマップパターンを生成して、そのビットマップパターンを1画素ずつ、左右のプレーンメモリに書き込むという処理になる。このような描画を繰り返すことにより、メニューのオープンにあたって、アニメーションによる視覚効果を導入することができる。ところが、画素書き込みの途中で、表示を行うべきフレーム期間が到来した場合、画素の書込途中の映像内容が、表示に供されることになる。画素書き込みの途中で、表示を行うべきフレーム期間が到来し、書込途中の映像内容が表示されることで画面のちらつきが生じることを、"ティアリング"という。
 平面視再生においてティアリングは、ユーザの許容範囲となるが、立体視再生の場合、ティアリングは、深刻な不快感をもたらす。右目用プレーンメモリ、左目用プレーンメモリのうち、双方の描画が完了している箇所では立体視効果が生じるものの、ティアリングによって未描画になっている部分では立体視効果が生じないばかりか、左右の目で全く異なる映像が見えるという、現実には起こり得ない状況となるからである。例えば、左目におけるメニューの描画が完了したが、右目におけるメニューの下半分の描画が未完である場合、立体視再生時において、メニューの下半分の部分では左右両眼の間で映像の不整合が生じることになり、ユーザに視覚的な不快感を与える。
 立体視再生時におけるティアリングは、左右の映像の不整合という現象が顕在化するので、かかる不整合を確実に防ぐ手だてがないと、立体視再生を行うような再生装置の商品化は難しい。かかる技術的障壁に対しては、左右のイメージプレーンに対する書き込みを完全並列化することが考えられる。しかし再生装置プレーヤモデルの策定にあたって、このようなイメージプレーン書き込みの完全並列化を強制するのは再生装置の実装の自由度を奪うことになり望ましくない。また、ハードウエアの簡易化の余地を奪うので、低コスト競争の足かせになることは明確である。
 本発明の目的は、再生装置の実装の自由度を奪うことなく、ティアリングに起因する左右の映像の不整合の発生を、最低限に抑えることができる再生装置を提供することである。
 上記課題を解決するため、本発明にかかる再生装置は、
 記録媒体に記録されているビデオストリームをデコードして、立体視映像の再生を行う再生部と、
 アプリケーションを動作させるプラットフォーム部と、
 複数のプレーンメモリと、
 アプリケーションからのアプリケーションプログラムインターフェイスの呼び出しに応じて、複数のプレーンメモリに対する描画イメージの書き込みを行う描画部とを備え、
 複数のプレーンメモリには、レフトビュープレーンメモリと、ライトビュープレーンメモリとがあり、
 前記アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む
 ことを特徴とする。
 アプリケーションプログラムインターフェイスの呼び出し時において、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアがバイトコードアプリケーションから引き渡されるので、右目用のプレーンメモリへの画素書き込みと、左目用プレーンメモリへの画素書き込みとを交互に行うような実装が可能になる。この場合、画素書き込みの途中で、表示を行うべきフレーム期間が到来したとしても、画素書き込みの進捗は、右目用と、左目用とで大体同じになる。たとえティアリングが生じたとしても、右目におけるティアリングと、左目におけるティアリングとは同一になるから、両目に映じる映像内容が一致しない映像の不整合の発生は避けられるか、発生したとしても、ユーザに不快を感じさせない許容範囲になる。
 左イメージプレーン、左イメージプレーンのうち、どちらか一方の書き込みを先に行い、他方を後にするとの実装であっても、パラメータがアプリケーションから引き渡されないことによる遅延を避けることができるので、表示を行うべきフレーム期間の到来までに、左イメージプレーン、右イメージプレーンへの書き込みを同時に完了させる確率を高めることができる。
 イメージプレーンに対する書き込みをライン単位で行う場合であっても、左イメージプレーン→右イメージプレーンの順に行う場合であっても、両目に映じる映像内容が一致しない映像の不整合の発生確率を低下させうるので、再生装置の実装の自由度を奪うことなく、ティアリングに起因する左右の映像の不整合の発生を、最低限に抑えることができる。
再生装置の使用行為についての形態の一例を示す図である。 本願の課題解決手段を具備した再生装置の基本的な内部構成を示す。 ビデオプレーン104a,104bに格納されたピクチャデータが、シャッター眼鏡500を着用したユーザによってどのように見えるかを示す。 イメージプレーン104c,104dの内部構成を示す。 プレーンオフセットの符号が正(レフトビュー期間における描画イメージの書き込み位置を右方向へずらし、ライトビュー期間における描画イメージの書き込み位置を左方向へずらす)である場合、像が表示画面よりも手前にあるように見える原理を説明するための図である。 像が表示画面よりも奥にあるように見える原理を説明するための図である。 正と負のプレーンオフセットの見え方の違いの一例を示す図である。 描画イメージの書き込みに用いられるアプリケーションプログラムインターフェイスを示す。 図8のアプリケーションプログラムインターフェイスを用いて規定することができる描画要求の具体例である。 図9(c)のように引数が指定された場合、StereoGraphics#drawImageの呼び出しによって、どのような書き込みが実行されるかを模式的に示す。 フレームi,j,kのそれぞれにおける、左右イメージメモリ、左右のイメージプレーンの書き込み内容を示す。 フレームi,j,kにおけるイメージプレーンの書き込み内容が図11のものである場合、どのようなエフェクトが再生されるかを示す。 左右のイメージプレーンへの書き込みをどのように行うべきかを示す。 StereoGraphics#drawImageを用いず、左イメージプレーン、右イメージプレーンのそれぞれに対して、個別に、書き込みを行う場合、表示内容がどのようになるかを示す。 StereoGraphics#drawImageを用いて、左イメージプレーン、右イメージプレーンのそれぞれに対して、画素の書き込みをライン単位に交互に行う場合、表示内容がどのようになるかを示す。 バイトコードアプリケーションによるメニュー表示のフローチャートである。 StereoGraphics#drawImageがコールされた際のライン描画手順を示すフローチャートである。 第2実施形態に係る再生装置のうち、改良が施された部分(イメージメモリ、イメージプレーン、レンダリングエンジン、合成部)のみを描く。 スイッチ123、スイッチ124による切り替えを示す。 左右のイメージプレーンへの書き込みをどのように行うべきかを示す。 StereoGraphics#drawImageがコールされた際のダブルバッファを用いた描画手順を示す。 動作モードオブジェクトの内部構成の一例を示す図である。 タイトル切り替え時におけるプレーンメモリの解像度設定の処理手順の一例を示すフローチャートである。 BD-ROM100の内部構成を示す図である。 第4実施形態に係る再生装置の内部構成を示すブロック図である。 左右プレーンの交互出力を実現する場合のフレーム処理の処理手順を示すフローチャートである。 描画要求の発行タイミングの調整を伴う場合の左右描画処理調停部30の処理手順を示すフローチャートである。 ラインの交互出力を実現する場合の、フレーム処理を示すフローチャートである。 描画要求の統合を伴う左右描画処理調停部30の処理手順を示すフローチャートである。 左右同時描画要求Cと、描画要求A,Bを示す図である。 画面更新要求をトリガとした左右描画処理調停部30の処理手順を示すフローチャートである。 左イメージプレーン9と右イメージプレーン10とを連結することで構成される連結イメージプレーンを示す。 描画要求の切り抜きを伴う左右描画処理調停30の処理のフローチャートである。 描画要求と、左右同時描画要求とを示す。 描画要求の変換を伴う左右描画処理調停部30の処理のフローチャートである。
 図面を参照しながら、上記課題解決手段を具備した記録媒体、及び、再生装置の実施形態について説明する。
 図1は、記録媒体、再生装置の、使用行為についての形態の一例を示す図である。本図に示すように、記録媒体100、再生装置200は、リモコン300、テレビ400、シャッター眼鏡500と共にホームシアターシステムを構成し、ユーザによる使用に供される。
 記録媒体100は、上記ホームシアターシステムに、例えば映画作品を供給する。
 再生装置200は、テレビ400と接続され、記録媒体100を再生する。かかる再生は、左眼用映像(L画像)の映像出力と、右眼用映像(R画像)の映像出力を交互に繰り返すことでなされる。こうして再生される再生映像には、2D映像、3D映像が存在する。2D映像とは、例えば表示装置の表示画面を含む平面をX-Y平面として捉えて、このX-Y平面上に位置する表示画面の表示位置における画素にて表現される画像であり、平面視画像とも呼ばれる。
 対照的に3D映像とは、上述のX-Y平面として捉えた平面と直交する直線を軸とし(本実施の形態ではX-Y平面に垂直な直線を軸(Z軸)として定義する)、表示装置の表示画面におけるX-Y平面上の画素に、本実施の形態で説明する構成を採用することにより、人の目には立体的に見えるようにした、または表示画面よりも手前または奥に見えるようにした映像である。
リモコン300は、階層化されたGUIに対する操作をユーザから受け付ける機器であり、かかる操作受け付けのため、リモコン300は、GUIを構成するメニューを呼び出すメニューキー、メニューを構成するGUI部品のフォーカスを移動させる矢印キー、メニューを構成するGUI部品に対して確定操作を行う決定キー、階層化されたメニューをより上位のものにもどってゆくための戻りキー、数値キーを備える。
 表示機器400は、再生装置200からの映像出力を受け取って、L画像とR画像とを同じタイミングでそのまま交互に出力する。タイミングの同一化は、映像出力と表示切り替えのフレームレートを同一とすることで実現される。視聴者の眼の負担を軽減するため、表示切り替え側のフレームレートのみを逓倍する構成をとることもできる。この場合は、L画像および続いて出力されたR画像のセットを表示ディスプレイ400が蓄積し、表示ディスプレイ側でこれらの画像を高速に切り替えることで、高フレームレートの表示を行うこととなる。以降の説明においては、L画像、R画像の順番で出力された画像が表示ディスプレイ側でセットとして扱われることを前提として説明を行う。但し、逆順であっても同様の構成を取ることができる。
 シャッター眼鏡500は、液晶シャッターと、制御部とから構成され、ユーザの両目における視差を用いて立体視を実現する。シャッター眼鏡500の液晶シャッターは、印加電圧を変えることにより、光の透過率が変化する性質を有する液晶レンズを用いたシャッターである。シャッター眼鏡500の制御部は、再生装置から送られるR画像とL画像の出力の切り替えの同期信号を受け、この同期信号に従って、第1の状態、第2の状態の切り替えを行う。
 第1の状態とは、右目に対応する液晶レンズが光を透過しないように印加電圧を調節し、左目に対応する液晶レンズが光を透過するように印加電圧を調節した状態であり、この状態において、左目にL画像が入射し、右目にはL画像が入射されない状態となる。
 第2の状態とは、右目に対応する液晶レンズが光を透過するように印加電圧を調節し、左目に対応する液晶レンズが光を透過しないように印加電圧を調節した状態であり、この状態において、右目にR画像が入射し、左目にはR画像が入射されない状態となる。
 一般にR画像と、L画像とは、その撮影位置の差に起因して、ライトビューから見える像とレフトビューから見える像には見え方に若干の差があるような画像である。
 この像の見え方の差の程度を人間の左目/右目のそれぞれから見える像の差の程度(つまり、視差の程度)とすることにより、利用して人間の目から見える像を立体として認識できるのである。そこで、シャッター眼鏡500が、以上のような第1の状態、第2の状態の切り替えを、R画像とL画像の出力の切り替えタイミングに同期させれば、ユーザは、平面的な表示が立体的に見えると錯覚する。次に、R画像、L画像を表示するにあたっての時間間隔について説明する。
 具体的には、平面表示の画像において、R画像とL画像には人間の視差に相当する見え方の差に相当する程度の差があり、これらの画像を短い時間間隔で切り替えて表示することにより、あたかも立体的な表示がなされているように見えるのである。この短い時間間隔というのは、上述の切り替え表示により人間が立体的に見えると錯覚する程度の時間であれば足りる。本実施形態では、テレビ400がビデオストリームを再生するための表示周期を示すフレーム期間を2つに分割して、分割により得られたそれぞれの期間を、右目、左目を切り替えるための時間間隔とする。フレーム期間を分割することで得られた期間のうち、左目で視聴させるための期間を"レフトビュー期間"という。また右目で視聴させるための期間を"ライトビュー期間"という。ここでフレーム周期が1/24秒であれば、レフトビュー期間、ライトビュー期間はそれぞれ、1/48秒となる。フレーム周期が1/60秒であれば、レフトビュー期間、ライトビュー期間はそれぞれ、1/120秒となる。
 (第1実施形態)
 以下、本願明細書の課題解決手段を具備した再生装置の実施形態のうち、イメージプレーンに、シングルバッファを用いた再生装置の実施形態について説明する。図2は、本願の課題解決手段を具備した再生装置の基本的な内部構成を示す。本図に示すように、再生装置200は、読出部101、ビデオデコーダ102、プレーンメモリセット103(ビデオプレーン104a,104b、イメージプレーン104c,104dを含む)合成部105、イメージメモリ106、レンダリングエンジン107、プラットフォーム部110、ヒープメモリ111、バイトコードインタプリタ112、クラスローダ113、アプリケーションマネージャ114、ミドルウェア115から構成される。
 読出部101は、記録媒体100からビデオストリーム、描画イメージのデータ構造体、バイトコードアプリケーションのクラス構造体、アプリケーション管理テーブルを読み出し、ビデオストリームについてはビデオデコーダ102に供給する。
 ビデオデコーダ102は、読み出されたビデオストリームを復号して非圧縮形式のピクチャをプレーンメモリセット103に書き込む。
 プレーンメモリセット103は、複数のプレーンメモリから構成される。プレーンメモリとは、一画面分の画素データをライン単位で格納しておき、水平同期信号、垂直同期信号に沿ってこれらの画素データを出力するためのメモリである。個々のプレーンメモリは、ビデオ、字幕、GUI、背景画像のデコードによって得られた1画面分の画素データを格納する。
 これらのプレーンメモリは、レイヤモデルを構成しており、個々のプレーンメモリの格納内容は、レイヤ合成に供される。このレイヤ合成は、プレーンメモリのレイヤモデルにおいて、2つの階層のプレーンメモリに格納されている画素データの画素値を重畳させるという処理を、レイヤモデルにおける2つの階層の全ての組合せに対して実行することでなされる。
 左ビデオプレーン104aおよび右ビデオプレーン104bは、プレーンメモリセットの1つであり、それぞれ左眼用のビデオのピクチャ、右眼用のビデオのピクチャが格納される。
 左イメージプレーン104cおよび右イメージプレーン105dは、プレーンメモリセットのうちの1つであり、ビデオプレーンの上の重畳させるべきイメージを非圧縮形式で格納する。左イメージプレーン104cは、左眼用のイメージデータを格納するレフトビュープレーンメモリである。右イメージプレーン104dは、右眼用のイメージデータを格納するライトビュープレーンメモリである。本実施形態において左イメージプレーン及び右イメージプレーンは、それぞれシングルバッファから構成されているので、各イメージプレーンに格納されている描画イメージであって、現在表示対象になっているものに、新たな描画イメージを上書きすることにより、各イメージプレーンの画面更新を行う。イメージプレーンにおける直前の表示対象である描画イメージに、新たな表示対象である描画イメージを直接上書きするので、上書き処理の途上においては、直前の表示対象である描画イメージと、新たな表示対象である描画イメージとが混在したようなティアリングが発生する。
 合成部105は、複数のプレーンメモリのレイヤ合成を行う。
 イメージメモリ106は、記録媒体100に記録されたデータ構造体のインスタンスが生成された場合、データ構造のインスタンスであるイメージオブジェクトを格納しておくためのメモリである。かかるイメージオブジェクトは、RGB値のビットマップであり、バイトコードアプリケーションからはインスタンス変数によって指示される。3Dモードでは、右用のイメージオブジェクト、左目用のイメージオブジェクトを個別に格納することができる。
 レンダリングエンジン107は、左イメージプレーン104cおよび右イメージプレーン104dに対する描画処理を行う。レンダリングエンジン107によるイメージ描画は、イメージメモリ106上のイメージオブジェクトを、イメージメモリ106からイメージプレーン104c,104dにコピーすることでなされる。コピーの対象になるイメージオブジェクトは、インスタンス変数で指示される。
 プラットフォーム部110は、ROM等の不揮発性メモリに記憶された組込みプログラムと、この組込みプログラムを実行するハードウエア(MPU、レジスタ、周辺回路を含む)とから構成され、記録媒体100に記録されたクラス構造体のインスタンスであるバイトコードアプリケーションを動作させる。ここでバイトコードアプリケーションとは、オブジェクト指向プログラミング言語を用いて記述されたクラス構造体をコンパイルすることで得られた実行形式のプログラムであり、機器に依存しないコード(バイトコード)によって記述されているものをいう。バイトコードアプリケーションとして典型的なものにはJavaアプリケーションがある。
 ヒープメモリ111は、バイトコードアプリケーションを構成するバイトコードやバイトコードアプリケーションが利用するシステムパラメータが配置されるスタック領域である。ヒープメモリ111上で動作するバイトコードアプリケーションによる描画は、1/30秒、1/15秒、1/5秒などのように、可変のフレームレートでなされる。このフレームレートは、ビデオ再生のフレームレートである1/24秒、1/60秒と整数倍にならないので、バイトコードアプリケーションは、再生装置のクロックを用いて、自身の描画タイミングに到来したかどうかを検知し、描画タイミングが到来すれば、書き込みを行う。
 バイトコードインタプリタ112は、ヒープメモリ111に格納されているバイトコードアプリケーションを構成するバイトコードをネィティブコードに変換して、MPUに実行させる。
 クラスローダ113は、記録媒体100に記録されたアプリケーションのクラス構造体のインスタンスをヒープメモリ111に生成することにより、バイトコードアプリケーションのロードを行う。
 アプリケーションマネージャ114は、アプリケーション管理テーブルに基づき、バイトコードアプリケーションの正当性を検証した上で、バイトコードアプリケーションを起動したりバイトコードアプリケーションを終了したりする等、バイトコードアプリケーションのアプリケーションシグナリングを行う。
 ミドルウェア115は、プラットフォーム部で動作しているバイトコードアプリケーションに対して、各種機能を提供する組込み機器用のオペレーティングシステムである。機能提供は、ミドルウェアが実装しているパッケージのメンバー関数を呼び出すことでなされる。ミドルウェアが実装しているパッケージは、色指定を伴った線や矩形等図形の描画、指定領域の塗りつぶし、指定されたイメージのコピー・ペースト等の描画処理を、レンダリングエンジン107を通じて左イメージプレーン104cおよび右イメージプレーン104dに対して行うライブラリを含む。そしてミドルウェア115は、このライブラリの機能によって、イメージ描画を実行する描画部を具備している。バイトコードアプリケーションはこれらの描画処理の要求を連続的に発行することで、様々なグラフィクス描画処理を実現することができる。かかるパッケージには、java.awtパッケージがあり、イメージ描画のアプリケーションプログラムインターフェイスは、このjava.awtパッケージのメソッドになる。他、java.awtパッケージにはない拡張メソッドも、イメージ描画のAPIとなる。イメージ描画の内容には、線や矩形の描画、指定領域の塗りつぶし、指定されたイメージのコピー・ペースト等があり、これらのイメージ描画は、描画内容の種別を示す情報によって識別される。
 本実施形態では、バイトコードアプリケーションからの要求によるイメージ描画にあたって、ミドルウェアは、1画面分のイメージプレーンの描画イメージの書き込みに、nフレームに相当する実行サイクルを必要とすると仮定する。これは、バイトコードアプリケーションによってAPIがコールされてから、ミドルウェアがそのレスポンスを返すまでのターンアラウンド時間であり、プラットフォーム部-ミドルウェア-ハードウエア間のオーバーヘッドを含む。一般にJavaアプリケーションの実装において、ある画像を描画したくなったら、その場(例えばkフレーム)で描画命令を発行し、その発行から所定のフレームの遅延時間後に表示がなされることになる。この表示時における遅延時間について、Javaアプリケーションはケアしないことが一般的である。
  そうすると、左イメージプレーン、右イメージプレーンの双方への描画イメージの書き込みのために、2×nフレームに相当する遅延時間が必ず発生することになる。例えば、任意のフレームkにおいて、立体視のための描画イメージを表示させたい場合、フレームkでStereoGraphics#drawImageメソッドを発行すれば、このフレームkから"2×nフレーム"だけ遅れて、描画イメージが表示されることになる。
 以下、これらの構成要素の処理内容を、参考図を交えてより更に詳しく説明する。
 図3は、ビデオプレーン104a,104bに格納されたピクチャデータが、シャッター眼鏡500を着用したユーザによってどのように見えるかを示す。
 図中の矢印vw1は、レフトビュー期間における視点への映像入力を示し、図中の矢印vw2は、ライトビュー期間における視点への映像入力を示す。レフトビュー期間では、矢印vw1に示すように、レフトビュー期間では、左ビデオプレーンの格納内容がシャッター眼鏡500を通じてユーザの左目に入射する。ライトビュー期間では、この矢印vw2に示すように、右ビデオプレーンの格納内容がシャッター眼鏡500を通じてユーザの右目に入射する。
 図4は、イメージプレーン104c,104dの内部構成を示す。解像度が1920×1080に設定されている場合、同図(a)に示すように、イメージプレーン104c,104dは横1920×縦1080の32ビット長の記憶素子からなる。イメージプレーン104c,104dは、1920×1080の解像度で、1画素当たり32ビットのR,G,B,α値を格納できるメモリアロケーションをもつ。記憶素子に記憶される32ビットのR,G,B,α値は、8ビットのR値、8ビットのG値、8ビットのB値、8ビットの透明度αから構成される。1画面分のプレーンメモリの規模は、8Mバイトであり、左右のプレーンメモリの双方でダブルバッファを構成しようとすると、8Mバイト×4ものメモリ規模が必要になる。そしてダブルバッファでは、画面切り替え時にバッファからバッファへの転送が必要になり、この8Mバイトという規模のデータ転送が頻発するので、必要となるメモリ帯域が多大になる。このような事情から本実施形態では、イメージプレーンをシングルバッファによって構成している。
 同図(b)は、イメージプレーン104c,104dに格納されている画素データを示す。本図に示すように、イメージプレーン104c,104dに格納されているグラフィクスデータは、前景部分にあたる画素データ、背景部分にあたる画素データから構成される。ここで背景部分にあたる記憶素子には、透明色を示すα値が格納されており、この部分には、ビデオプレーンとの合成時において、イメージプレーンの字幕やビデオプレーンにおける動画像が透けて見えるようになる。一方、前景部分にあたる記憶素子には、透明色以外を示すR,G,B値が格納されており、この透明色以外のR,G,B値によって、描画イメージが描かれることになる。
 合成部105によるプレーン合成時において、透明画素にあたる部分には、他のプレーンメモリの格納内容が透けて見えるようになり、かかる透明部分の存在によって、プレーン合成が可能になる。
 図5は、プレーンオフセットの符号が正(レフトビュー期間における描画イメージの書き込み位置を右方向へずらし、ライトビュー期間における描画イメージの書き込み位置を左方向へずらす)である場合、像が表示画面よりも手前にあるように見える原理を説明するための図である。
 本図において、丸で示したものは、表示画面上に表示される像である。まず、2Dモードである場合、右目に見える像も左目に見える像も同じ位置であるため、両目を用いて、この像を見たときの焦点位置は、表示画面上に位置する(図5(a))。結果として表示される像は表示画面上に位置する。
 レフトビュー期間において、左目に見える像はプレーンオフセットが0の場合に比べて右側の位置に見えるようシフトして表示する。このとき右目にはシャッター眼鏡500により何も見えないようにする。一方、右目に見える像は、プレーンオフセットが0の場合に比べて左側の位置に見えるようにシフトして表示する。このとき左目にはシャッター眼鏡500により何も見えないようにする(図5(b))。
 人間は両目を用いて焦点をあわせてその焦点位置に像があるように認識する。従って、シャッター眼鏡500により左目に像が見える状態と、右目に像が見える状態とを交互に短い時間間隔で切り替えると、人間の両目は表示画面よりも手前の位置に焦点位置を、合わせようとし、結果として表示画面よりも手前に位置する焦点位置に像があるように錯覚を起こす(図5(c))。
 図6は、像が表示画面よりも奥にあるように見える原理を説明するための図である。
 図6において、丸で示したものは、表示画面上に表示される像である。まず2Dモードにおいて、右目に見える像も左目に見える像も同じ位置であるため、両目を用いて、この像を見たときの焦点位置は、表示画面上に位置する(図6(a))。結果として表示される像は表示画面上に位置する。
 一方、レフトビュー期間において、左目に見える像はプレーンオフセットが0の場合に比べて左側の位置に見えるようにする。このとき右目にはシャッター眼鏡500により何も見えないようにする。一方、右目に見える像は、オフセットが0の場合に比べて右側の位置に見えるようにする、このとき左目にはシャッター眼鏡500により何も見えないようにする(図6(b))。
 シャッター眼鏡500により左目に像が見える状態と、右目に像が見える状態と互に短い時間間隔で切り替えると、人間の両目は表示画面よりも奥の位置に焦点位置を、合わせようとし、結果として表示画面よりも奥の位置に像があるように錯覚を起こす(図6(c))。
 図7は、正と負のプレーンオフセットの見え方の違いの一例を示す図である。
 本図(a)は、レフトビュー期間における描画イメージの書き込み位置を右方向へずらし、ライトビュー期間における描画イメージの書き込み位置を左方向へずらす場合を示す。図5に示したようにレフトビュー出力時の字幕がライトビュー出力時の字幕より右の位置に見えるようになる。つまり、輻輳点(焦点位置)がスクリーンより手前にくるので、字幕も手前に見えるようになる。
 本図(b)は、レフトビュー期間における描画イメージの書き込み位置を左方向へずらし、ライトビュー期間における描画イメージの書き込み位置を右方向へずらす場合を示す。図6に示したように、レフトビュー出力時の字幕がライトビューの出力時の字幕より左の位置に見えるようになる。つまり、輻輳点(焦点位置)がスクリーンより奥にゆくので、字幕も奥に見えるようになる。
 図8は、描画イメージの書き込みに用いられるアプリケーションプログラムインターフェイスを示す。
 同図(a)におけるjava.awt.Graphics#fillRectメソッドは、第1引数の位置で指定された矩形範囲を、第2引数で指定された色(正確にはjava.awt.Graphics#setColorメソッドで指定されたカレント色であるが、簡略化のため、以下では第2引数として説明を行う)で塗り潰す機能を呼び出すアプリケーションプログラムインターフェイスである。描画対象プレーンとしては、左イメージプレーン104cおよび右イメージプレーン104dの他に、BD-Jアプリが独自に生成した一時処理用の描画領域(BufferedImage)を対象とすることもできる。矩形範囲の位置は、描画先となる矩形領域の左上の座標(x1,y1)と右下の座標(x2,y2)の組み合わせで表現される。描画対象プレーンとしては、左イメージプレーン104cおよび右イメージプレーン105dの他に、BD-Jアプリが独自に生成した一時処理用の描画領域(BufferedImage)を対象とすることもできる。
 同図(b)におけるjava.awt.Graphics#drawImageメソッドは、第1引数の位置で指定された描画位置に、第2引数で指定された描画イメージを書き込む機能を呼び出すためのAPIである。正確には、指定された描画イメージを矩形にトリミングしてから描画するための、矩形位置を指定する引数を渡すことも可能であるが、ここでは省略する。
 StereoGraphics#drawImageメソッドは、左イメージプレーンにおいて、第1引数の位置で指定された矩形範囲に、第2引数で指定された描画イメージを書き込み、左イメージプレーンにおいて、第3引数の位置で指定された矩形範囲に、第4引数で指定された描画イメージを書き込む機能を呼び出すAPIである。
 矩形範囲は、描画先となる矩形領域の左上の座標(x1,y1)と右下の座標(x2,y2)の組み合わせで表現される。また、イメージオブジェクトとしては、JPEGやPNG形式のデータ構造から生成したインスタンス(ビットマップ画像)の他に、BufferedImageを用いることができる。
 前述したようにjava.awt.Graphics#drawImageメソッドではイメージコピー処理が規定されているが、この処理では1つの矩形領域のコピーしか指定することができない。一方、StereoGraphics#drawImageメソッドによる左右同時イメージコピーは、描画位置と描画イメージとのペアを含む。描画先プレーンはそれぞれ左イメージプレーン104cと右イメージプレーン105dに固定されているものとし、イメージプレーンの指定は、StereoGraphics#drawImageメソッドの引数から除外されている。BD-ROM再生装置にStereoGraphics#drawImageメソッドを実装しようとする場合、StereoGraphics#drawImageメソッドによる左右同時イメージコピー処理はBD-Java規格上は存在しないため、例えばStereoGraphics#drawImageのような拡張メソッドを追加する必要がある。
 図9は、図8のアプリケーションプログラムインターフェイスを用いて規定することができる描画要求の具体例である。同図(a)は、APIの種別がjava.awt.Graphics#fillRectメソッドである場合、描画すべき矩形範囲、描画色が、具体的にどのようなものに設定できるかを表形式で示す。以降の説明において、APIで規定される描画要求の表記には、本図のものを用いる。java.awt.Graphics#fillRectメソッドの場合、描画すべき矩形範囲は、(X1=50,Y1=100),(X2=250,Y2=170)という、イメージプレーン座標系におけるXY座標で表現される。また、描画色は、(R=255,G=0,B=0)というRGB値によって表現される。
 同図(b)は、APIの種別がjava.awt.Graphics#drawImageメソッドである場合、描画すべき矩形範囲、描画イメージが、具体的にどのようなものに設定されるかを表形式で示す。java.awt.Graphics#drawImageメソッドの場合、描画すべき矩形範囲は、(X1=50,Y1=100),(X2=250,Y2=170)という、プレーン座標系におけるXY座標で表現される。また、描画イメージは、データ構造体のインスタンスに与えられるインスタンス変数を用いて表現される。本図の"ビットマップイメージ1"とは、横200画素×高さ70画素から構成されるインスタンスに与えられたインスタンス変数である。
 同図(c)は、APIの種別がStereoGraphics#drawImageメソッドである場合、描画すべき矩形範囲、描画イメージが、具体的にどのようなものに設定されるかを表形式で示す。APIの種別がStereoGraphics#drawImageメソッドである場合、左イメージプレーンにおける描画すべき矩形範囲は、(X1=50,Y1=100),(X2=250,Y2=170)という、プレーン座標系におけるXY座標で表現される。また、描画イメージは、データ構造体のインスタンスに与えられる変数名を用いて表現される。本図の"ビットマップイメージ1"とは、横200画素×高さ70画素から構成されるインスタンスに与えられたインスタンス変数である。
 右イメージプレーンにおける描画すべき矩形範囲は、(X3=55,Y3=100),(X4=255,Y4=170)という、プレーン座標系におけるXY座標で表現される。また、描画イメージは、データ構造体のインスタンスに与えられるインスタンス変数を用いて表現される。本図の"ビットマップイメージ2"とは、横200画素×高さ70画素から構成されるインスタンスに与えられたインスタンス変数である。
 図10は、図9(c)のように引数が指定された場合、StereoGraphics#drawImageの呼び出しによって、どのような書き込みが実行されるかを模式的に示す。図中の手前側は、描画イメージを格納したイメージメモリを示す。図中の奥手側は、互いに重ね合わされた左イメージプレーン及び左ビデオプレーンの組み、右イメージプレーン及び右ビデオプレーンの組みを示す。この左イメージプレーン、右イメージプレーンに、図5で描画すべき矩形範囲として示した、具体的なXY座標をプロットしている。
 本図によると、左右のイメージプレーンでは、X座標がわずかにずれているため、描画イメージがそれぞれ横方向に少しずれた位置にコピーされることになる。図中の矢印ig1,ig2は、左右イメージメモリから左右のイメージメモリへのコピーを示す。この場合はR画像の描画位置がL画像の描画位置よりも5ピクセル分右にずれているため、視聴者にはディスプレイの奥に引っ込んでいるような表示として感じられることになる。左右それぞれの視点向けに用意した異なるビットマップを指定しているので立体視としての効果は向上しているが、描画イメージとして同一のビットマップを用いることもできる。
 図11は、フレームi,j,kのそれぞれにおける、左右のビデオプレーン、左右のイメージプレーンの書き込み内容を示す。フレームiの書き込み内容は、1つのボタン部材であり、フレームjの書き込み内容は3つのボタン部材、フレームkの書き込み内容は、字幕、音声、特典といった文字列が付加された3つのボタン部材である。
 図12は、フレームi,j,kにおけるイメージプレーンの書き込み内容が図11のものである場合、どのようなエフェクトが再生されるかを示す。上述したような書き込みを行うことにより、フレームiにおいて1つのボタン部材が表示された後に、フレームjにおいて1つのボタン部材が3つに増え、フレームkにおいて3つのボタン部材に文字列が付加されることでメニューが完成する様子が描かれる。
 かかるイメージプレーンの書き込みにあたって、上から1ラインずつ、左右交互に描画することで、最悪でも左右同じ場所にティアリングが発生するようにする。
 図13は、左右のイメージプレーンへの書き込みがどのように行われるかを示す。第1段目は、バイトコードアプリケーションの動作の時間軸を示し、第2段目は左イメージメモリ、第3段目は右イメージメモリ、第4段目は左ビデオプレーン、第5段目は右ビデオプレーンを示す。ファイルkの直後であるフレームk+1、フレームk+2は、描画イメージの書き込みが行われるフレームである。図中のライン1、ライン2、ライン3~ライン70は、描画イメージを構成する各ラインの画素データが順次、イメージプレーンに書き込まれてゆく過程を示す。この書き込みは、左イメージプレーンへのライン1の書き込み、右イメージプレーンへのライン1の書き込み、左イメージプレーンへのライン2の書き込み、右イメージプレーンへのライン2の書き込みというように、ライン単位で交互になされていることがわかる。
 ここでバイトコードアプリケーションによる左右のイメージプレーンへの書き込みに、2フレーム期間が必要であるものと仮定する。この場合、第1段目におけるバイトコードアプリケーションは、フレームkにてStereoGraphics#drawImageを呼び出すと、2フレーム期間後のフレームk+2に描画が完了することになる。
 図14は、StereoGraphics#drawImageを用いず、左イメージプレーン、右イメージプレーンのそれぞれに対して、個別に、書き込みを行う場合、表示内容がどのようになるかを示す。同図(a)は、左右イメージプレーンに対する書き込み進捗の違いを示す。左イメージプレーンへの書き込みを先に行ったため、左イメージプレーンでは、「字幕」「音声」「特典」のボタン部材が存在するが、右イメージプレーンへの書き込みは後であったので、右イメージプレーンには「字幕」のボタン部材しか存在しない。
 上述したように、本実施形態ではイメージプレーンがシングルバッファで構成されており、イメージプレーン上のフレームjに表示されるべき描画イメージに、フレームkに表示されるべき描画イメージを上書きすることにより、イメージプレーンの画面更新を行っている。よって本図では、左イメージプレーンにフレームjに表示されるべき描画イメージの一部が残存している(ハッチング部参照)。フレームjに表示されるべき描画イメージの残存部は、右イメージプレーンにのみ存在し、左イメージプレーンには存在しないため、かかる残存部において、左右両眼の間での不整合が発生する。
 同図(b)は、シャッター眼鏡500を通じて、(a)のイメージプレーンを視聴した場合に視聴することができる立体視映像を示す。本図において「字幕」のボタン部材は、左右イメージプレーンに共通に存在するから、立体視効果により画面から手前に出現しているように見える。対照的に「音声」「特典」のボタン部材は、左右イメージプレーンに共通に存在しないので、立体視効果が得られないばかりか、左右の目で全く異なる映像が見えるという、現実にはあり得ない状況となる。このような左右両眼の間での映像の不整合は、ユーザに視覚的な不快感を与える。
 図15は、StereoGraphics#drawImageを用いて、左イメージプレーン、右イメージプレーンのそれぞれに対して、画素の書き込みをライン単位に交互に行う場合、表示内容がどのようになるかを示す。同図(a)は、左右イメージプレーンに対する書き込み進捗の違いを示す。左右イメージプレーンへのライン単位の書き込みを交互行うため、左右イメージプレーンにおける書き込みの進捗は同程度となる。
 イメージプレーン上のフレームjに表示されるべき描画イメージに、フレームkに表示されるべき描画イメージを上書きすることにより、イメージプレーンの画面更新を行っているので、本図でも、前図と同様、フレームkに表示されるべき描画イメージの一部が残存している(ハッチング部参照)。
 具体的にいうと、左右イメージプレーンには、それぞれ「字幕」「音声」のボタン部材しか存在しない。イメージプレーンの書込内容が未完成のまま表示に供されることでティアリングが発生する。しかしフレームkに表示されるべき描画イメージの残存部は、右イメージプレーンにも、左イメージプレーンにも存在するため、かかる残存部で、左右の映像の不整合は発生しない。
 同図(b)は、シャッター眼鏡500を通じて、(a)のイメージプレーンを視聴した場合に視聴することができる立体視映像を示す。本図において「字幕」「音声」のボタン部材は、左右イメージプレーンに共通に存在するから、立体視効果により画面から手前に出現しているように見える。左右のイメージプレーンに対する書き込みが未完であっても、左右のイメージプレーンの内容は大体同じものになる。また、左右の不整合が発生したとしても、その発生の程度は、ライン画素のレベルになるので、ユーザに視覚的な不快感を与えることはない。
 StereoGraphics#drawImageを用いた描画処理を再生装置に実行させるため、どのようなプログラムを作成すべきかについて説明する。
 図16は、バイトコードアプリケーションによるメニュー表示のフローチャートである。ステップS1において、描画イメージを最初に表示すべきフレームを"フレームt"とし、ステップS2~ステップS7のループに移行する。ステップS2~ステップS7は、フレームtに表示すべき左イメージのインスタンスを生成して、イメージ1とし(ステップS2)、フレームtに表示すべき右イメージのインスタンスを生成して、イメージ2として(ステップS3)、フレームtの始期が到来するのを待ち(ステップS4)、始期が到来すれば、左イメージプレーンの描画を行うべき矩形範囲、右イメージプレーンの描画を行うべき矩形範囲を特定する(ステップS5)。そして、左イメージプレーンの描画を行うべき矩形範囲、右イメージプレーンの描画を行うべき矩形範囲を引数で指定した上で、StereoGraphics#drawImageメソッドのコールを行い(ステップS6)、次にイメージを表示すべきフレームをフレームtとする処理(ステップS7)を、繰り返すものである。
 図17は、StereoGraphics#drawImageメソッドがコールされた際のライン描画手順を示すフローチャートである。描画イメージの描画対象行を示す変数Yを「1」に初期化して(ステップS11)、ステップS12~ステップS14のループに移行する。このループでは、第2引数として指示される描画イメージのYライン目のRGB値を、左イメージプレーンの(x1,y1+Y-1)から、(x2,y1+Y-1)までに書き込み(ステップS12)、第4引数のYライン目のRGB値を、右イメージプレーンの(x3,y3+Y-1)から(x4,y3+Y-1)までに書き込む(ステップS13)という処理を、ステップS14がYesと判定されるまで繰り返す。ステップS14は、y1+Y-1がy2であり、尚且つ、y3+Y-1=y4という条件を満たすかどうかの判定であり、この条件を満たさない場合、ステップS15において変数Yをインクリメントした上、ステップS12に移行する。このループの繰り返しによって、左イメージプレーンにおける描画を行うべき矩形範囲にImage1を構成するライン画素が書き込まれてゆき、右イメージプレーンにおける描画を行うべき矩形範囲にImage2を構成するライン画素が書き込まれてゆく。
 以上のように本実施形態によれば、アプリケーションプログラムインターフェイスの呼び出し時において、左目用のプレーンメモリへの書き込み指定と、右目用のプレーンメモリへの書き込み指定とのペアがバイトコードアプリケーションから引き渡されるので、右目用のプレーンメモリへの画素書き込みと、左目用プレーンメモリへの画素書き込みとを交互に行うような実装が可能になる。この場合、画素書き込みの途中で、表示を行うべきフレーム期間が到来したとしても、画素書き込みの進捗は、右目用と、左目用とで大体同じになる。たとえティアリングが生じたとしても、右目におけるティアリングと、左目におけるティアリングとは同一になるから、両目に映じる映像内容が一致しない左右の映像の不整合の発生は避けられる。
 (第2実施形態)
 本実施形態は、左イメージプレーン、右イメージプレーンのそれぞれに、ダブルバッファモデルを採用する実施形態である。図18は、第2実施形態に係る再生装置のうち、改良が施された部分(イメージメモリ、イメージプレーン、レンダリングエンジン、合成部)のみを描く。
 本図において、イメージメモリ105、レンダリングエンジン106、合成部110は、第1実施形態と同じであるが、イメージプレーン104c、104dが、左イメージプレーン121、右イメージプレーン122に置き換えられており、左イメージプレーン121、右イメージプレーン122と、合成部110との間に、スイッチ123、スイッチ124が存在する。
 左イメージプレーン121は、2つのプレーンメモリから構成される。これらのうち、一方は左表示対象バッファとなり、他方は左描画対象バッファになる。左表示対象バッファは、合成部による合成の対象となるバッファである。左描画対象バッファは、バイトコードアプリケーションによる書き込みの対象になるバッファである。これらのバッファは何れも、1画面分の画素データ(RGBα値)を格納しうる容量をもつ。
 右イメージプレーン122は、2つのプレーンメモリから構成される。これらのうち、一方は右表示対象バッファとなり、他方は右描画対象バッファになる。右表示対象バッファは、合成部による合成の対象となるバッファである。右描画対象バッファは、バイトコードアプリケーションによる書き込みの対象になるバッファである。これらのバッファは何れも、1画面分の画素データ(RGBα値)を格納しうる容量をもつ。
 スイッチ123は、左イメージプレーン121を構成する2つのプレーンメモリのうち、表示対象バッファになっているものの画素内容を合成部110に出力する。
 スイッチ124は、右イメージプレーン122を構成する2つのプレーンメモリのうち、表示対象バッファになっているものの画素内容を合成部110に出力する。

 図19は、スイッチ123、スイッチ124による切り替えを示す。同図(a)は、フレームiに表示すべき描画イメージの出力状態を示す。同図(a)では、左イメージプレーン121、右イメージプレーン122のうち、上側のバッファが表示対象バッファになっており、フレームiの描画イメージが格納されている。そして下側のバッファが描画対象バッファに設定され、ここに次に表示すべきフレームjの描画イメージが書き込まれつつある。同図(b)は、フレームjに表示されるべき描画イメージの書き込みが完了した状態を示す。下側のプレーンメモリに対する書き込みが完了したので、スイッチ123、スイッチ124を下側に切り替えることにより、フレームjの描画イメージを出力する。こうすることで、フレームjの描画イメージが表示に供される。
 (c)は、表示対象バッファから描画対象バッファへのコピーを示す。これにより左イメージプレーン121の内容は、何れもフレームjに表示されるべき描画イメージとなり、右イメージプレーン122の内容は、何れもフレームjに表示されるべき描画イメージになる。これにより、フレームの一部だけを描きかえてフレームkの描画イメージを生成する場合にも、描きかえられない部分について前のフレームjと整合することが保証される。(d)は、フレームkに表示されるべき描画イメージが、上側のプレーンメモリに書き込まれている状態を示す。この上側のバッファへの書き込みが完了すると、スイッチ123、スイッチ124は上側に通され、上側のバッファが表示対象バッファになる。
 図20は、左右のイメージプレーンへの書き込みを完成させるために、どのような書き込みを行うべきかを示す。第1段目は、バイトコードアプリケーションの動作の時間軸を示し、第2段目は左描画対象バッファ、第3段目は右描画対象バッファ、第4段目は左ビデオプレーン、第5段目は右ビデオプレーンを示す。フレームkの直後であるフレームk+1は、右描画対象バッファへの書き込みが行われるフレーム、フレームk+2は、左描画対象バッファへの書き込みが行われるフレームである。左右のイメージプレーンへの書き込みに2フレーム期間が必要である場合、バイトコードアプリケーションがフレームkにてStereoGraphics#drawImageメソッドを呼び出すと、2フレームが経過した後のフレームk+2で描画処理が完結する。そして、フレームk+2の開始時点になれば、左描画対象バッファ、右描画対象バッファが左表示対象バッファ、右表示対象バッファに切り替えられて、新たな描画イメージが表示に供される。
 図21は、StereoGraphics#drawImageがコールされた際のダブルバッファを用いた描画手順を示す。本フローチャートでは、描画イメージの描画対象行を示す変数Yを「1」に初期化して(ステップS21)、ステップS22~ステップS24のループに移行する。このループでは、第2引数として指示される描画イメージのYライン目のRGB値を、左イメージプレーンの(x1,y1+Y-1)から、(x2,y1+Y-1)までに書き込む(ステップS22)という処理を、ステップS23がYesと判定されるまで繰り返す。ステップS23は、y1+Y-1がy2という条件を満たすかどうかの判定であり、この条件を満たさない場合、ステップS24において変数Yをインクリメントした上、ステップS22に移行する。このループの繰り返しによって、左イメージプレーンにおける描画を行うべき矩形範囲にImage1を構成するライン画素が書き込まれてゆく。
 その後、変数Yを1に初期化して(ステップS25)、ステップS26~ステップS28からなるループに移行する。このループでは、第4引数のYライン目のRGB値を、右イメージプレーンの(x3,y3+Y-1)から(x4,y3+Y-1)までに書き込む(ステップS26)という処理を、ステップS27がYesと判定されるまで繰り返す。ステップS27は、y3+Y-1=y4という条件を満たすかどうかの判定であり、満たさない場合、ステップS28において変数YをインクリメントしてステップS26に戻る。以降、ステップS26~ステップS28が繰り返されることにより、右イメージプレーンにおける描画を行うべき矩形範囲にImage2を構成するライン画素が書き込まれてゆく。ステップS26~ステップS28のループを終了した後、ステップS29において左描画対象バッファと、左表示対象バッファとの交替及び右描画対象バッファと右表示対象バッファとの交替を同時実行することにより、表示切り替えを行う。
 以上のように本実施形態によれば、イメージプレーンにダブルバッファを採用することで、左右の映像の不整合の発生の回避が可能になる。
 (第3実施形態)
 本実施形態は、記録媒体におけるタイトルを生存区間としたアプリケーションシグナリングを再生装置に実行させて、このアプリケーションシグナリングの実行の際、イメージプレーンの規模を指定する改良に関する。
 本実施形態では、記録媒体に以下のインデックステーブル、動作モードオブジェクトが記録されている。
 インデックステーブルは記録媒体全体に関する管理情報であり、再生装置への記録媒体挿入後に、インデックステーブルが最初に読み出されることで、再生装置において記録媒体が一意に認識される。
 インデックステーブルは、再生装置におけるタイトル番号レジスタに格納され得る複数のタイトル番号と、再生装置の動作モードを規定する動作モードオブジェクトとの対応付けを規定する。記録媒体に記録されているタイトルとは、タイトル番号によって特定される動作モードオブジェクトと、この動作モードオブジェクトから再生されるプレイリストとの組みをいう。ここでプレイリストは、ビデオストリームを含むデジタルストリームに再生順序を規定することで特定される再生単位である。
 ここで、タイトル番号レジスタにおけるタイトル番号は、0、1~999、不定値(0xFFFF)という番号がある。タイトル番号0は、トップメニュータイトルのタイトル番号である。トップメニュータイトルとは、ユーザによるメニューコール操作によって呼び出すことができるタイトルである。不定値(0xFFFF)のタイトル番号は、ファーストプレイタイトルのタイトル番号である。ファーストプレイタイトルとは、記録媒体の装填直後に、視聴者への警告やコンテンツプロバイダによるロゴ表示等を行うタイトルである。
 インデックステーブルは、各タイトル番号のそれぞれに対応したエントリー(インデックステーブルエントリー)を有し、個々のインデックステーブルエントリーに、動作モードを規定する動作モードオブジェクトを記述することで、各々のタイトルが、どのような動作モードで動作するのかを詳細に規定する。
 再生装置においてタイトル番号レジスタの値は、記録媒体の装填後、不定値0xFFFF→1~999→0というように変化する。このタイトル番号の変化は、記録媒体の装填時に、ファーストプレイタイトルの再生を開始し、ファーストプレイタイトルの再生後、1から999までのタイトル番号レジスタのタイトル番号で指示されるタイトルの再生を行い、タイトル番号で指示されるタイトルの再生が終了すれば、トップメニュータイトルを再生してユーザによる選択待ちを行うというものである。1~999のタイトル番号をもつタイトルのうち、タイトル番号レジスタに格納されているタイトル番号と、同じタイトル番号をもつものが、現在の再生対象、つまりカレントタイトルになる。タイトル番号レジスタにどのような番号を設定するかは、トップメニュータイトルに対するユーザ操作や、プログラムによるタイトル番号レジスタの設定によって決定される。
 以上がインデックステーブルについての説明である。続いて、動作モードオブジェクトの詳細について説明する。
 動作モードオブジェクトは、プレイリストと、アプリケーションとの関連付けにより、タイトルを定義する情報である。図22は、動作モードオブジェクトの内部構成の一例を示す図である。本図に示すように、動作モードオブジェクトは、「アプリケーション管理テーブル」、「端末管理テーブル」、「アプリケーションキャッシュ情報」、「プレイリストアクセス情報」、「キーインタレストテーブル」から構成される。

 「アプリケーション管理テーブル」は、複数のエントリーを含む。引き出し線bj1は、アプリケーション管理テーブルにおけるエントリーをクローズアップして示している。この引き出し線に示すように、アプリケーション管理テーブルのエントリーは、タイトルにおいて、アプリケーションを自動的に起動させるべきか(AutoStart)、他のアプリケーションからの呼出しを待って起動すべきか(Present)という起動の仕方を示す「制御コード」と、JARファイルのファイル名となる5桁の数値を用いて、対象となるアプリケーションを示す「アプリケーションID」と、「アプリケーション詳細情報」を含む。引き出し線bj2は、「アプリケーション詳細情報」の内部構成をクローズアップして示している。本引出線に示すように、「アプリケーション詳細情報」は、アプリケーションがロードされる場合の「優先度」と、アプリケーションがタイトルアンバウンドであるか否か、ディスクバウンドであるか否かを示す「バインディング情報」と、アプリケーションの名称を示す文字列と、アプリケーションの言語属性を示す「言語コード」と、アプリケーションに対応づけるアイコンの所在を指し示す「アイコンロケータ」とを、アプリケーション毎にして格納している。
 アプリケーション管理テーブルは、タイトルを生存区間として管理することで、各アプリケーションによるメモリリソースなどの消費を、タイトルという再生単位を区切りにて管理することができる。これによりたとえ、あるタイトルの再生中に複数のアプリケーションによるリソースの利用が競合して、デッドロック状態に陥ったとしても、ユーザによって別のタイトルが選択されれば、それらアプリケーションは全て終了させられるので、デッドロック状態は、強制的に解消することになる。また、あるタイトルの再生中に暴走したアプリケーションがメモリを占有したとしても、ユーザによって別のタイトルが選択されれば、そのアプリケーションは強制的に終了させられるので、メモリ容量の圧迫は、強制的に解消することになる。こうすることで不要なメモリリソースを消費しない、安定したメモリリソースの管理を実現することができる。安定したメモリリソースの管理を実現することができるので、メモリリソースの容量が限られた家電機器の実装において、より真価を発揮する。
 「端末管理テーブル」は、動作中のアプリケーションが、欧州デジタル放送端末(DVB-MHP)が実現しているような、HAViインターフェイスによるGUIを表示する際の処理を規定する管理テーブルであり、GUI表示を実行するにあたってのコンフィグレーション情報や、GUIに用いるフォントデータ、GUIに対するメニューコール、タイトルコールがユーザによってなされた場合、これらのコールをマスクするかどうかを規定するマスクフラグを含む。このコンフィグレーション情報は、動作モードオブジェクト内のアプリケーション管理テーブルによって起動されるべきアプリケーションがグラフィクスを描画するにあたって、再生されるビデオストリームの解像度に対応付けられた規模のグラフィクスプレーンを前記再生装置が備えるメモリデバイス上に確保するよう前記再生装置に指示する情報である。引き出し線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の何れかに設定することができる。
 「アプリケーションキャッシュ情報」は、動作モードオブジェクトに対応するタイトルがカレントタイトルになった際、当該タイトルにおけるAV再生が開始されるまでに、どのアプリケーションを構成するファイルを、プラットフォーム内のキャッシュに読み込むべきかを示す情報であり、アプリケーション管理テーブルにより生存区間が規定されたアプリケーションに対応付けられたエントリーを含む。各エントリーは、アプリケーション管理テーブルにより生存区間が規定されたアプリケーションのそれぞれをプラットフォームにおけるキャッシュに読み込ませる旨を再生装置に指示する情報であり、各エントリーに付与された順位は、その順位がもっとも高いエントリーに対応するアプリケーションを最初にプラットフォームのキャッシュに読み込ませ、それ以降、順位が高い順に、残りのエントリーに対応するアプリケーションを、キャッシュフルになるまで、順次プラットフォームのキャッシュに読み込ませる旨を再生装置に指示する。こうすることで、低速な光ディスク媒体からバイトコードアプリケーションのクラスロードを行う場合でも、クラスロードが長くかかることによるスタートアップディレイを低減することができる。
 「プレイリストアクセス情報」は、動作モードオブジェクトに対応するタイトルがカレントタイトルになった際、自動的に再生されるべき自動再生プレイリストの指定を含む。また、プレイリストアクセス情報は、動作モードオブジェクトに対応するタイトルがカレントタイトルになった際、動作させることができるアプリケーションが選択できるプレイリストの指定を含む。引き出し線bj4は、自動再生プレイリストを指定する情報の内部構成をクローズアップして示している。引出線bj4に示すように、自動再生プレイリストを指定する情報として、3Dプレイリスト1920×1080、3Dプレイリスト1280×720、2Dプレイリスト1920×1080、2Dプレイリスト1280×720、2Dプレイリスト720×576、2Dプレイリスト720×480の指定が可能になる。
 何れかのタイトルが選択された際、再生装置は、選択されたカレントタイトルに対応するもののプレイリストアクセス情報により指定されたプレイリストの再生を、アプリケーションからの再生指示を待つことなく開始し、プレイリスト再生の終了よりも、バイトコードアプリケーション実行が先に終了した場合、プレイリストの再生を継続して行う。
 こうした先行再生により、アプリケーションのクラスロードに時間がかかり、描画イメージが表示されないため、対話画面がなかなか出力されないような場合、プレイリスト再生による再生映像がそのまま出力させるので、アプリケーションにおける起動遅延が顕著な場合でも、とりあえずプレイリストの再生映像をユーザに視聴させることができる。アプリケーションのスターティングディレィの間、何かが写っている状態にしておくことができるので、ユーザに安心感を与えることができる。
 また終了が同時でないため、リソースの枯渇によってアプリケーションが異常終了し、アプリケーションのGUIが自動的に消去されたとしても、プレイリスト再生画面の表示をそのまま継続していれば、プレイリストの再生映像が、表示装置に出力される。かかる出力継続によって、たとえバイトコードアプリケーションが異常終了したとしても、表示装置は、とりあえず何かが写っているという状態になり、アプリケーションの異常終了によって、画面がブラックアウトするという事態を防ぐことができる。
 「キーインタレストテーブル」は、再生キーエントリー、停止キーエントリー、早送りキーエントリー、巻戻しキーエントリー、上方向キーエントリー、下方向キーエントリー、右方向キーエントリー、左方向キーエントリーなど、再生装置におけるリモコンに備え付けられているそれぞれのキーについてのエントリから構成される。これらのキーエントリーは、対象となるキーが押下された際、キーイベントを発生させるか、発生させないかが設定される。ユーザ操作に応じてイベントが発生した場合、再生装置のイベントマネージャは、発生したイベントがキーインタレストテーブルに記載されているかどうかを判定する。そして記載されているなら、そのイベントをバイトコードアプリケーションに処理させるべく、キーイベントを出力する。
 一方、発生したイベントがキーインタレストテーブルに記載されていない場合、再生装置のオペレーションマネージャは、そのイベントに対応するAV機能を再生制御エンジンに実行させる。こうすることで、バイトコードアプリケーションにイベントの対応漏れや、バグがあったとしても、オペレーションマネージャにより、再生制御エンジン部に対する再生制御が行われることになる。アプリケーションにバグがあったとしても違和感がない制御がなされることは、キーインタレストテーブル側から保証されているので、アプリケーションを開発するソフトハウスは、バグの発生等に躊躇することなく、他社にはない再生制御を実現することができる。
 図23は、タイトル切り替え時におけるプレーンメモリの解像度設定の処理手順の一例を示すフローチャートである。本フローチャートは、ステップS31、ステップS32、ステップS33、ステップS36の判定結果に応じて、ステップS34、ステップS35、ステップS37の処理を選択的に実行する。
 ステップS31は、自動再生プレイリストが存在するかどうかの判定であり、ステップS32は、直前の表示モードは3Dであるか否かの判定である。ステップS33は、選択されたタイトルの自動再生プレイリストが、1920×1080の3Dプレイリスト又は1280×720の3Dプレイリストであるかどうかの判定である。
 自動再生プレイリストが存在しない場合、ステップS36において動作モードオブジェクトのデフォルト解像度がHD3D_1920×1080、HD3D_1280×720であるかどうかが判定され、もしYesであれば、ステップS35において、表示モードを3Dに設定し、動作モードオブジェクトにおけるデフォルト解像度に応じて1920×1080、あるいは1280×720に設定する。もしNoであれば、ステップS37において表示モードを2Dに設定し、解像度を動作モードオブジェクトにおけるデフォルト解像度に設定する。
 自動再生プレイリストが存在しない場合、ステップS32において直前の表示モードが2Dであるかどうか、又は、ステップS33においてプレイリストが3Dプレイリストで、その解像度が1920×1080、1280×720であるがどうかを判定する。ステップS32、ステップS33のどちらかがNoであれば、ステップS34において表示モードを2Dに設定し、解像度を、自動再生プレイリストの解像度に設定する。
 ステップS32がYes、ステップS33もYesと判定された場合、ステップS35において、表示モードを3Dに設定し、解像度を、自動再生プレイリストの解像度に応じて1920×1080、又は、1280×720に設定する。

 本実施形態では、イメージプレーンを含むプレーンメモリのアクセスのため、バイトコードアプリケーションは、getCurrentConfigurationメソッド、getBestConfigurarionメソッド、setConfigurationメソッド、setCoherentConfigurarionメソッドを利用することができる。
 getCurrentConfigurationは、プレーンメモリの表示設定をバイトコードアプリケーションに取得させるためのAPIである。
 getBestConfigurationメソッドは、バイトコードアプリケーションに、再生装置における個々のプレーンの最善の設定情報を返す。
 setConfigurationメソッドは引数に指定したプレーンに対する設定のみを変更するためのものである。
 setCoherentConfigurationsメソッドは、複数のプレーンメモリに共通に設定される。例えば引数として解像度を指定し、setCoherentConfigurationsメソッドを呼出せば、個々のプレーンメモリの解像度を同一にすることができる。
 よって、タイトル起動時に、動作モードオブジェクトの端末管理テーブル、又は、プレイリストアクセス情報にて設定されたイメージプレーンの解像度を、getCurrentConfigurationメソッドを用いて取得して取得した解像度を用いて左右のイメージプレーンに表示すべき描画イメージの描画発生を調整し、位置決めを行ってからStereoGraphics#drawImageメソッドを発行する。
 または、getCurrentConfigurationメソッドを用いて取得した解像度が、描画イメージに適合した解像度であるか否かを判定して、描画イメージに適合した解像度であればそのままStereoGraphics#drawImageメソッドを発行する。
 描画イメージに不適合な解像度であれば、setConfigurationメソッドを用いてイメージプレーンを適切な解像度に設定した上でStereoGraphics#drawImageメソッドをコールする。
 バイトコードアプリケーションは、以上の過程で指定されたイメージプレーンの解像度を、アプリケーションプログラムインターフェイスを介して取得することができるので、StereoGraphics#drawImageメソッドの呼び出しにあたって、最適な矩形範囲の指定が可能になる。
 以上のように本実施形態によれば、動作モードオブジェクトにおける端末管理テーブル、及び、プレイリスト管理テーブルにて指定されたイメージプレーンの座標系において、描画イメージを描画すべき矩形範囲を定めることができる。
 (第4実施形態)
 本実施形態は、これまでの実施形態の統合であり、記録媒体100をBD-ROMとして構成し、再生装置200をBD-ROM再生装置として構成する場合の形態である。
 本実施の形態では、立体表示を行う対象映像は、BD-ROM記録媒体に記録されているものを再生して視聴することを前提にする。BD-ROM規格では、BD-ROM規格に準拠した形式でローカルストレージ内あるいは、リムーバブルメディアに記録されているデータを再生することも可能である。これらを含めて再生装置200によって立体視映像表示が実施される形態を説明する。もちろん本実施例の変形としては、立体表示を行う対象映像は例えば放送波などの無線、ケーブルなどの有線、あるいは他の記録媒体を介して提供されていても構わない。
 続いて再生装置200が再生の対象としている、BD-ROM100の内部構成について説明する。図24は、BD-ROM100の内部構成を示す図である。
 本図の第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と、DVDと互換がある制御を実現するプログラムを格納したMovieObject.bdmvの2種類のファイルが配置されている。
 STREAMディレクトリには、いわばトランスポートストリーム本体となるファイルを格納しているディレクトリであり、拡張子"m2ts"が付与されたファイル(00001.m2ts)が存在する。
 PLAYLISTディレクトリには、拡張子"mpls"が付与されたファイル(00001.mpls)が存在する。
 CLIPINFディレクトリには、拡張子"clpi"が付与されたファイル(00001.clpi)が存在する。
 BDJOディレクトリには、拡張子"bdjo"付与されたファイル(XXXXX.bdjo)が存在する。
 JARディレクトリには、拡張子"jar"が付与されたファイル(YYYYY.jar)が存在する。
 METAディレクトリには、XMLファイル(ZZZZZ.xml)が存在する。
 以下、これらのファイルについて説明する。

 先ず初めに、拡張子"m2ts"が付与されたファイルについて説明する。拡張子"m2ts"が付与されたファイルは、MPEG-TS(TransportStream)形式のデジタルAVストリームを格納したストリームファイルであり、これまでの実施形態で説明したビデオストリーム、1つ以上のオーディオストリーム、グラフィクスストリーム、テキスト字幕ストリーム等を多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分をそれぞれ示している。

 拡張子"mpls"が付与されたファイルは、再生装置にプレイリストを再生させるための情報を格納したファイルである。"プレイリスト"とは、トランスポートストリーム(TS)の時間軸上で再生区間を規定するとともに、この再生区間同士の再生順序を論理的に指定することで規定される再生経路であり、TSのうち、どれをどの部分だけ再生して、どのような順序でシーン展開してゆくかを規定する役割をもち、プレイリスト情報は、かかるプレイリストの"型"を定義する。プレイリスト情報によって定義される再生経路は、いわゆる"マルチパス"である。マルチパスとは、主となるTSに対して定義された再生経路(メインパス)と、従となるストリームに対して定義された再生経路(サブパス)とを束ねたものである。このマルチパスにおいて左目用のビデオストリームの再生経路を規定し、サブパスにおいて右目用のビデオストリームの再生経路を規定すれば、立体視を再生するためのビデオストリームの組合せを、好適に規定することができる。
 かかるマルチパスの再生時間軸には、チャプター位置が定義される。このチャプター位置を再生装置に参照させることにより、マルチパスの時間軸に対する任意の時点に対するランダムアクセスを再生装置に実現させる。再生制御のためのJava(TM)アプリケーションが、このプレイリスト情報を再生するJMFプレーヤインスタンスの生成をJava(TM)仮想マシンに命じることで、マルチパスによるAV再生を開始させることができる。JMF(JavaMedia Frame work)プレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。


 拡張子"clpi"が付与されたファイルは、MPEG2形式のストリームファイルのそれぞれに1対1に対応するClip情報ファイルである。このClip情報ファイルを通じることにより、ストリームファイルは"AVClip"として管理されることになる。Clip情報は、AVClipにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すEP_mapをもっているので、ストリームファイルのアクセスに先立ち、このクリップ情報をメモリにロードしておけば、アクセスしようとするストリームファイル中のトランスポートストリームがどのようなものであるのかを把握することができる。以上のClip情報及びPL情報は、"静的シナリオ"に分類される。

 拡張子BDJOを付したファイルは、BD-Jオブジェクトを格納したファイルである。BD-Jオブジェクトとは、先の実施形態で述べた動作モードオブジェクトのことであり、BD-Javaアプリケーションを実行する際に使用される各種の情報を含んでいる。BD-ROM規格では、映像の再生中にアプリケーションプログラムを実行することによって、動的な再生制御や、再生中のユーザとのインタラクション等、映像の再生を行いながら任意の計算機処理を行わせることが可能である。BD-ROMではこのアプリケーションプラットフォーム規格としてJava(登録商標)が用いられており、BD-ROM規格上で採用されるJava(登録商標)プラットフォームは、BD-Java、あるいはBD-Jと呼ばれ、その実行アプリケーションはBD-Javaアプリ、あるいはBD-Jアプリと呼ばれる。

 JARファイルは、BD-Jアプリケーションのクラス構造体のファイル(クラスファイル)を、デジタル証明書マニフェストファイル、ディスク署名シグネチャファイル、ディスク署名暗号鍵ファイル、パーミッションリクエストファイルとひとまとめにしてアーカイブしたファイルである。上述したようなアプリケーションキャッシュ情報によるキャッシュへのロードは、このJARファイルをひとまとめにしてなされる。
 以下、JARファイルにアーカイブされているデータ要素について説明する。
 (i)クラス構造体のファイルにて定義されるBD-Jアプリケーションは、Xletインターフェイスを通じて、プラットフォーム内のアプリケーションマネージャにより、制御されるJava(TM)Xletである。Xletインターフェイスは、"loaded","paused"、"active","destroyed"といった4つの状態をもち、イベントドリブンつまり、イベントによって状態遷移を行うとともに制御を実行する。xletインターフェイスでは、アプリケーションの動作のトリガとなるキーイベントが予め登録される。このように、動作のトリガとなるキーイベントの登録は、イベントリスナによってなされる。
 (ii)デジタル証明書マニュフェストファイルは、デジタル証明書に対応するものであり、Java(TM)アーカイブファイルの属性、Java(TM)アーカイブファイル内のクラスファイルやデータファイルのハッシュ値が記載されているマニフェストファイルである。
 (iii)ディスク署名シグネチャファイルは、マニフェストファイルのハッシュ値が記載されているシグネチャファイルである。
 (iv)ディスク署名暗号鍵ファイルは、「デジタル証明書チェーン」と、シグネチャファイルの「署名情報」とが記載されているファイルである。
 「署名情報」は、署名処理をデジタル署名シグネチャファイルに施すことで得られる。これらの署名処理には、デジタル署名シグネチャファイル内のデジタル証明書チェーンにおける公開鍵に対応する秘密鍵が用いられる。
 「デジタル証明書チェーン」とは、一つ目の証明書(ルート証明書)が二つ目の証明書を署名し、また同じようにn番目の証明書がn+1番目の証明書を署名している形をもつ複数の証明書群である。デジタル証明書チェーンの最後の証明書を「リーフ証明書」と呼ぶ。この構成を利用することにより、ルート証明書から順番に次の証明書を保障していくことにより、デジタル証明書チェーンの最後の証明書までを保障することができる。
 (v)パーミッションリクエストファイルは、実行されるJava(TM)アプリケーションにどのパーミッションを与えるのかの情報を格納する。具体的に、クレデンシャル(デジタル信用証明書)、アプリ間通信の許可情報を含む。
 "クレデンシャル"とは、ある組織に帰属する組織ディレクトリ内のファイルを共有化するための情報である。この共有化は、ある組織に属するアプリケーション用ファイルを利用する権限を、他の組織に属するアプリケーションに提供することでなされる。そのためクレデンシャルは、権限を提供する側の組織を示す提供者組織ID、権限を受領する側の組織の識別を示す受領者組織IDを含む。
 (vi)これらのファイル以外にも、PNGファイルが格納される。PNGファイルは描画イメージを定義するデータ構造体であり、本実施形態では、描画イメージを定義するデータ構造体をBD-Jアプリケーションのクラス構造体と共にJARファイルに格納して、ロードすることができる。
 BD-Jアプリケーションを規定するクラスファイルは、以上のシグネチャファイル、マニフェストファイル、デジタル証明書チェーン、パーミッションリクエストファイルとひとまとめにされて、ロードされるので、再生装置は、BD-Jアプリケーションを動作させるにあたって、マニフェストファイル、デジタル証明書チェーン、パーミッションリクエストファイルを用いて、BD-Jアプリケーションを署名することができる。このように、マニフェストファイル、デジタル証明書チェーン、パーミッションリクエストファイルを用いて署名されたBD-Jアプリケーションを、"Signedアプリケーション"という。一方、署名がなされず、その権能の一部又は全部が制限されたBD-Jアプリケーションを"Un-Signedアプリケーション"という。以上の署名により、BD-Jアプリケーションの動作は、コンテンツの作りにとって不利にならないものに制限される。以上のパーミッションリクエストファイルを用いれば、StereoGraphics#drawImageメソッドによる描画やその他、立体視再生を実現するためのプレーンメモリへの書き込みを、ある特定の権限が付与されたBD-Jアプリケーションに限定することができる。

 METAディレクトリに格納されたメタファイル(ZZZZZ.xml)には、ディスクに入っている映像作品に関する様々な情報が格納されている。メタファイルに格納されている情報としては、ディスクのディスク名及び画像、ディスクの作成主体者の名称の情報、各タイトルに関わるタイトル名等がある。
 以上がBDMVディレクトリの説明である。
 CERTIFICATEディレクトリの下には、ディスクのルート証明書のファイル(app.discroot.cert)が存在する。
 これはBD-Jアプリを実行する際に、アプリケーションが改竄されていないか、及びアプリケーションの身元確認を行なうプロセス(以下、署名検証という)に用いられるデジタル証明書の情報が含まれている。
 以上がBD-ROM100についての説明である。メタファイルなど一部のファイルはBD-ROM規格では必ずしも必須とされておらず、一部のファイルが存在していなくともBD-ROM100は映像記録媒体としてBD-ROM規格のもと再生可能である。
 次に本実施形態に係る再生装置200の詳細について説明する。
 図25は、第4実施形態に係る再生装置の内部構成を示すブロック図である。図25に示すように、再生装置は、BDドライブ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から構成される。
 BDドライブ1は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する。
 トラックバッファ2は、FIFOメモリであり、BD-ROMから読み出されたデジタルストリームを構成するソースパケットが先入れ先出し式に格納される。
 デマルチプレクサ3は、仮想ファイルシステム25を通じて、BDドライブ1にローディングされているBD-ROM、またはローカルストレージ24上、またはリムーバブルメディア27に保存されているトランスポートストリームの多重分離を行う。多重分離によって得られる、GOPを構成するビデオフレームは、ビデオデコーダ4に出力され、同じくGOPと同時に再生されるべきオーディオフレームはオーディオデコーダ26に出力される。同じく多重分離によって得られるグラフィックストリームは、イメージメモリ7に格納され、同じく多重分離によって得られるシナリオ情報は動的シナリオメモリ12に格納される。デマルチプレクサ3による多重分離は、TSパケットをPESパケットに変換するという変換処理を含む。また、デマルチプレクサ3は、次元判定部28を用いて、立体視(3D)用の処理を行うか2D用の処理を行うかを切り替える。
 ビデオデコーダ4は、Multiview Video  Coding(MVC)と呼ばれるMPEG-4 AVC/H.264の修正規格に準拠したデコーダであり、MPEG-4 AVCに基づき符号化された圧縮状態のビデオストリームを、映像の時間方向の類似性、視点間の類似性に基づき動き予測を行うことで、デコードする。
 左ビデオプレーン5および右ビデオプレーン6は、ビデオデコーダ4のデコードによって得られた非圧縮形式のピクチャを格納するためのメモリであり、それぞれ左眼用のビデオのピクチャ、右眼用のビデオのピクチャが格納される。
 イメージメモリ7は、BD-J端末において仮想ファイルシステム25から読み出されたグラフィックストリームや字幕データ、あるいは画像イメージ等のイメージデータを格納するバッファである。
 イメージデコーダ8は、イメージメモリ7に格納されたグラフィックストリーム、あるいは字幕データ、あるいはイメージデータをデコードして左イメージプレーン9および右イメージプレーン10に書き込む。
 左イメージプレーン9および右イメージプレーン10は、BD-J端末においてGFXプレーンと呼ばれるプレーンメモリであり、それぞれ左眼用のイメージデータ、右眼用のイメージデータを非圧縮形式で格納する。BD-ROMにおいては、イメージプレーンに相当するものは複数用意されており、それぞれを独立させてビデオプレーンに重畳させることができる。具体的には、イメージデコーダ8から出力されたグラフィックストリーム・字幕データ・イメージデータや、レンダリングエンジン22によって行われる描画処理の結果生成されるイメージデータ、さらに図には記載していないが背景(スチル)用プレーンが挙げられる。しかし本実施の形態の中では、説明を簡単にするためにイメージプレーンを1枚として説明するものとし、以降では特にレンダリングエンジン22によって行われる描画処理を中心とした記載を行う。
 静的シナリオメモリ11は、カレントプレイリストやカレントのストリーム管理情報を格納しておくためのメモリである。カレントプレイリストとは、仮想ファイルシステム25から読み出すことのできるPLのうち、その時点での処理対象になっているものをいう。カレントストリーム管理情報とは、仮想ファイルシステム25から読み出すことのできる複数ストリーム管理情報のうち、その時点での処理対象になっているものをいう。
 動的シナリオメモリ12は、カレント動的シナリオを格納し、HDMVモジュール14、BD-Jモジュール15による処理に供されるメモリである。カレント動的シナリオとは、仮想ファイルシステム25から読み出すことのできる複数シナリオ情報のうち、その時点での実行対象になっているものをいう。
 制御部13は、ROM、RAM、CPUからなるマイコンシステムであり、ROMには再生装置を制御するプログラムが記録されており、ROM内のプログラムがCPUに読み込まれ、プログラムとハードウエア資源とが協動することにより、HDMVモジュール14、BD-Jモジュール15、モード管理モジュール16、ディスパッチャ17、AV再生制御エンジン18、アプリデータ関連付けモジュール19、左右描画処理調停部30の機能を実現する。
 HDMVモジュール14は、DVD映像仮想プレーヤである。HDMV(High Definition Movie  Mode)とは、DVDとの親和性のある映像再生形式である。
 BD-Jモジュール15は、第1実施形態に示したプラットフォーム部の構成要素のうち、ヒープメモリ111、バイトコードインタプリタ112、クラスローダ113、アプリケーションマネージャ114によって構成される部分に対応する機能モジュールであり、BD-Jアプリを実行する。
 モード管理モジュール16は、仮想ファイルシステム25から読み出されたモード管理テーブルを保持して、モード管理及び分岐制御を行う。モード管理モジュール16によるモード管理とは、動的シナリオをどのHDMVモジュール14、BD-Jモジュール15に実行させるかという、モジュールを割り当てる処理を実施する。
 ディスパッチャ17は、UO検知モジュール21により受け取ったユーザの操作(ユーザオペレーション、以下UOとも記す)から、現在の再生装置におけるモードに適切なUOのみを選んで、そのモードを実行するモジュールに渡す。例えばHDMVモードの実行中に、上下左右、アクティベートといったUOを受け付けた場合、HDMVモードのモジュールにこれらのUOを出力するのがディスパッチャ17の処理である。
 AV再生制御エンジン18は、HDMVモジュール14、あるいはBD-Jモジュール15からの呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とはBD-ROMにて定義されている、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、副映像切り替え、アングル切り替えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をプレイリスト情報に従って行う。
 アプリデータ関連付けモジュール19は、仮想ファイルシステム25から読み出される情報と、機器内で計算した結果、及びアプリケーションが設定する属性情報を元に、アプリケーション関連付け情報を生成、及び更新する機能を有している。
 UO検知モジュール21は、装置の視聴者が再生装置に対して入力を実施したユーザの操作(UO)を受け取る。これは例えばリモコン・コントローラのような遠隔機器で入力されるものである場合もあるし、機器に対して設置されるボタンのようなインタフェースによって直接入力されるものである場合もある。
 プレーン合成部20は、左ビデオプレーン5または右ビデオプレーン6に格納されている非圧縮形式のビデオのピクチャデータと、左イメージプレーン9または右イメージプレーン10に格納されているイメージデータとの合成処理を行い、結果を映像として出力する。またプレーン合成部20は、1プレーン分の合成処理が完了した時点で、左右どちらのプレーンを対象とする合成処理が完了したかを通知する合成処理完了通知を、左右描画処理調停部30に対して行う。
 レンダリングエンジン22は、左イメージプレーン9および右イメージプレーン10に対する描画処理を行う。BD-Jモジュール15は、色指定を伴った線や矩形等図形の描画、指定領域の塗りつぶし、指定されたイメージのコピー・ペースト等の描画処理を、レンダリングエンジン22を通じて左イメージプレーン9および右イメージプレーン10に対して行うライブラリを有しており、BD-Jアプリはこれらの描画処理の要求を連続的に発行することで、様々なグラフィクス描画処理を実現することができる。
 ネットワークインターフェース23は、インターネット上に公開されたBD-ROM追加コンテンツのダウンロードに用いられる。BD-ROM追加コンテンツとは、オリジナルのBD-ROMにないコンテンツで、例えば追加の副音声、字幕、特典映像、アプリケーションなどである。BD-Jモジュール15からネットワークインターフェース23を制御することができ、インターネット上に公開された追加コンテンツをローカルストレージ24やリムーバブルメディア27にダウンロードすることができる。
 ローカルストレージ24は、再生装置に内蔵されているハードディスク等の磁気記録装置である。BD-ROM100に記録されているファイル形式またはそれに準ずる形で、トランスポートストリームや再生に使用する各種のデータを記録する。
 仮想ファイルシステム25は、BD-ROM100あるいは、ローカルストレージ24あるいは、リムーバブルメディア27に記録されているファイルに対するリード・ライト機構を提供するファイルシステムである。
 BD-ROMの再生時に必要とされるファイルアクセスは、通常BD-ROM100に対して行われるが、仮想ファイルシステム25はローカルストレージ24あるいはリムーバブルメディア27に存在するファイルを、あたかもBD-ROM100上に記録されているファイルであるかのように仮想的にファイルのアドレス変換を行う機構を備える。すなわち本仮想ファイルシステム25はファイルの物理的な記録先を抽象化する機構を提供する。
 オーディオデコーダ26は、デマルチプレクサ3から出力されたオーディオフレームを復号して、非圧縮形式のオーディオデータを出力する。
 リムーバブルメディア27は再生装置に装着された外部スロットから挿入される記憶媒体である。記憶媒体の種類は典型的にはSDカードなどのフラッシュメディアが利用されるが、USBメモリ、リムーバブルハードディスク、その他任意の種類の記憶媒体であってもよい。
 次元判定部28は、再生対象の映像が、立体視(3D)用のものであるか、2D用のものであるかを判定し、その結果を次元モード記憶部29に出力する。判定は、カレントプレイリストあるいはカレントストリームの中に、立体視(3D)に対応する映像か対応しない映像かのフラグが含まれている場合には、これを使用することにしてもよいし、あるいは再生装置を鑑賞するユーザの指定によって切り替えが行われるようになっていてもよい。
 次元モード記憶部29は、その時点で再生されている映像が、立体視(3D)用のものであるか、通常の2D用のものであるかを記憶する。
 左右描画処理調停部30は、ミドルウェア115の構成要素であり、BD-Jモジュール15から連続的に発行される描画要求の中から左イメージプレーン9への描画要求と右イメージプレーン10への描画要求のセットを抽出する。立体視のグラフィックスを描画する典型的なBD-Jアプリでは、ある一つの描画対象オブジェクトについて、左眼視点から見た形状を左イメージプレーン9に描画し、右眼視点から見た形状を右イメージプレーン10に描画するというセットの処理を連続して行うことが多いと想定される。そこで、これらセットを成す描画処理に対応している描画要求の対を抽出し、プレーン合成部20が左眼と右眼の視覚の不整合を生じさせるような映像を出力しないように、レンダリングエンジン22の描画処理のタイミングおよび描画順序を制御することで、立体視映像のちらつきを抑制することが可能となる。
 描画要求のセットの抽出およびレンダンリングエンジン22の描画処理の制御に関する具体的な方法については後述する。
 本実施の形態では以下、プレイリスト中に3D用か2D用かを識別する次元識別フラグを有しているものとして説明する。
 先ず、本再生装置がどのようにして3D映像を作り出すかを図25に示される構成図をもとに説明する。BD-ROM上に配置されたストリームは、右眼用ストリームと左眼用ストリームを別々に記録していても良いし、一つのストリームファイルに規則を持って埋め込んでおいても良いが、本実施の形態においては、予め一つのストリームファイルに右眼用ストリームと左眼用ストリームが埋め込まれていることを前提に記載する。
 デマルチプレクサ3はストリームのヘッダ情報から左眼用ストリームと右眼用ストリームの振り分けを行う。
 本実施の形態における再生装置200は、一組のビデオデコーダと左眼用のビデオプレーンである左ビデオプレーン5と右眼用のビデオプレーンである右ビデオプレーン6を持ち、立体視映像を出力する際にはこのビデオデコーダが左眼用の映像と右眼用の映像の処理を交互に行い、それぞれ左ビデオプレーン5と右ビデオプレーン6に交互に出力する。
 再生装置200に対して再生指示が行われると、図26に示した処理が開始される。この再生指示自体は、ユーザの再生時の指定(例えば再生ボタンの押下)に従って行われる場合、BD-ROM100の再生装置への挿入によって自動的に行われる場合、その他BD-Jモジュールを含む、何らかの装置内の設定によって自動的に行われる場合等、指示の開始はさまざまなケースが考えられる。本実施の形態では、任意の形式によって開始されたものと考えてよい。
 図26は、左右プレーンの交互出力を実現する場合のフレーム処理の処理手順を示すフローチャートである。フレーム処理とは、映像信号のフレーム期間において、ビデオプレーンやイメージプレーンからデータを読み出し、重畳して出力するという処理である。つまり、ミドルウェアからイメージプレーンへの描画イメージの書き込みについては、第1実施形態から第3実施形態までで説明を終えているので、本実施形態ではイメージプレーン及びビデオプレーンから合成部へのデータ読み出しを中心にして説明を行う。
 ステップS401において、仮想ファイルシステム25から読み出される1つ以上のプレイリスト、複数ストリームの中から、再生処理対象として指定されたプレイリストとトランスポートストリームを抽出し、カレントプレイリスト(PL)情報とカレントストリーム管理情報に設定する。
 またデマルチプレクサ3は静的シナリオメモリ11のカレントプレイリスト情報を参照し、処理対象となるトランスポートストリームを取得する。
 ステップS402においては、デマルチプレクサ3は静的シナリオメモリ11のカレントプレイリスト情報から次元識別フラグを取得し、次元判定部28に引き渡し、再生対象のストリームが2D用か3D立体視用かの判定結果を得る。
 判定結果が2Dであった場合は、2Dの映像出力処理を行う。この場合、そもそもL画像とR画像は同一の画像であるか、もし別々の映像が存在していたとしても、どちらかの映像が破棄され表示されず、その結果従来のBD-ROM再生と同様の処理となる。一例として、2Dの映像出力が常に左ビデオプレーン5に出力され、イメージデコーダ8やレンダリングエンジン22は常に左イメージプレーン9にのみイメージデータを出力し、プレーン合成部20は常に左ビデオプレーン5と左イメージプレーン9の合成のみを行う構成が挙げられる。
 ステップS402の判定が3Dであった場合は、3D映像の再生を開始する。
 本実施の形態では、再生装置200は、プレーン合成部20を通して、左眼用映像(L画像)の映像出力と、右眼用映像(R画像)の映像出力とを交互に繰り返すものとする。
 さて、3D映像の再生が開始されると、再生装置200はステップS403L以降の処理に従って、左右の出力映像を生成する。L画像の生成処理は、ステップS403L、ステップS404L、ステップS405L、ステップS406Lに相当し、R画像の生成処理は、ステップS403、ステップS404R、ステップS405R、ステップS406Rに相当する。
 ステップS403Lの処理は、処理対象となるトランスポートストリームから、ビデオデコーダにより、左眼用のビデオピクチャを取り出し、左ビデオプレーン5に出力する。
 続いてステップS404LおよびステップS405Lにおいて、プレーン合成部20は、左ビデオプレーン5のビデオピクチャと左イメージプレーン9のイメージデータについて、プレーン全体にわたって合成する処理を行う。
 ここでは、左ビデオプレーン5と左イメージプレーン9の解像度が同じで、いずれも幅Wピクセル、高さHピクセルであるものとする。この場合、合成の処理は1番上の行(y=0)から1番下の行(y=H-1)の方向に向かって順番に、左ビデオプレーン5のy行目のラインデータの上に左イメージプレーン9のy行目のラインデータを重畳して、L画像のy行目が生成され、最終的な映像出力として出力される。
 プレーン全体に対して合成処理が完了すると、プレーン合成部20はステップS406Lの処理にて、L画像の合成処理が完了したという合成処理完了通知を、左右描画処理調停部30に対して行う。
 続いて、ステップS403R、ステップS404R、ステップS405R、ステップS406Rの各処理により、R画像の生成が行われるが、これらの処理はそれぞれ、ステップS403L、ステップS404L、ステップS405L、ステップS406Lと同様のものであるため、ここでは説明を省略する。
 以上が、本実施の形態におけるL画像とR画像の生成および出力である。
 この構成においては、左イメージプレーン9のイメージデータ、続いて右イメージプレーン10の画像が、交互にプレーン合成部20に送られることとなる。
 そのため、例えば左イメージプレーン9のイメージデータが全て送られたステップS406Lのタイミングで、レンダリングエンジン22が左イメージプレーン9および右イメージプレーン10の画像を書き換えたものとする。この場合、その後にステップS403Rが実行されることにより、プレーン合成部に送られるR画像は、書き換え後の右イメージプレーン10の格納内容となる。
 一方、プレーン合成部に送られたL画像は、既に送られた書き換え前の画像であるから、結果として出力されるL画像とR画像は、R画像だけが書き換えを反映した不整合なものとなってしまう。
 そこで、本実施の形態においては、左右描画処理調停部30が図27に示したフローチャートの処理によってレンダリングエンジン22の処理タイミングを調整する。
 図27は、描画要求の発行タイミングの調整を伴う場合の左右描画処理調停部30の処理手順を示すフローチャートである。
 左右描画処理調停部30は、まずステップS501により、BD-Jアプリからの描画指示に基づいてBD-Jモジュール15から描画要求が発行されるのを待つ。ステップS502において、ステップS501で受け取った描画要求の種別情報が、第1実施形態で説明した「左右同時イメージコピー」であるか否かを判定する。
 描画要求の種別が「左右同時イメージコピー」でなかった場合には、ステップS503の処理にて、レンダリングエンジン22に対して描画要求をそのまま発行する。これは従来のBD-Jモジュール15と同様の処理になるため、説明は省略する。
 描画要求の種別が「左右同時イメージコピー」だった場合は、ステップS504L以降の処理に移る。「左右同時イメージコピー」の描画要求が発行される場合は、BD-Jアプリとしては、ある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をセットで描画しようとしていることが予測される。そのため、これら2つのイメージコピー処理の結果は、プレーン合成部20において確実に同一フレームの映像出力として処理される必要があり、さもなくば左右の表示の不整合を引き起こすこととなる。
 そこで、まずステップS504Lの処理にて、プレーン合成部20からL画像の合成完了通知(図26のステップS406Lにて発行されたもの)が来るのを待ってから、ステップS505Lの処理にてレンダリングエンジン22に対して左イメージプレーン9に関連するイメージコピー処理の描画要求を発行する。これらの処理により、イメージコピー処理が十分高速なハードウエア(具体的には、プレーン合成部20がR画像の合成を行っている約0.5フレーム期間内にイメージコピーが完了する場合)においては、「左右同時イメージコピー」のうち左イメージプレーン9に対するイメージコピーの結果は、次のフレーム期間において、映像出力に反映されることを保証することができる。
 続いてR画像についても同様に、ステップS504Rの処理にて、プレーン合成部20からR画像の合成完了通知(図26のステップS406Rにて発行されたもの)が来るのを待ってから、ステップS505Rの処理にてレンダリングエンジン22に対して右イメージプレーン10に関連するイメージコピー処理の描画要求を発行する。これらの処理により、「左右同時イメージコピー」のうち右イメージプレーン10に対するイメージコピーの結果は、図26においては次のフレームにおいて、映像出力に反映されることを保証することができる。
 以上の処理により、「左右同時イメージコピー」を構成する2つのイメージコピーの結果が、プレーン合成部20にて同一フレームの映像出力に反映されるため、L画像とR画像の表示不整合に伴うちらつきを抑止することが可能となる。

 また、本実施の形態においては、ステップS504LおよびステップS504Rにて合成処理完了通知を待つ。尚、「左右同時イメージコピー」は1フレームあたり1回に制約されることになるが、複数の描画要求を組み合わせて1フレームの描画を構成する必要がある場合には、まず前述のBufferedImage上に描画結果を生成しておき、最後に1回の「左右同時イメージコピー」で左右のイメージプレーンにコピーを行う実装とすればよい。これは、従来のBD-Jアプリにおいても、ちらつき防止のために頻繁に用いられている手法である。
 また、「左右同時イメージコピー」のみをステップS504L以降の処理の対象とし、それ以外の描画要求については従来と同様の処理、すなわち表示のちらつきの発生も許容する構成をとったが、それ以外の処理、例えば「左右同時矩形塗り潰し」等を新たに導入し、ステップS504L以降の処理対象としてもよい。この場合は、ちらつきを抑止しうる描画処理種別の範囲を拡げることができる。
 更に3D→2D切り替え時の強制コピーを実行してもよい。即ち、ステップS402の判定が2Dであった場合は、前述の通り、例えば、2Dモードの映像出力は常に左ビデオプレーン5に出力され、レンダリングエンジン22は常に左イメージプレーン9にのみ描画を行い、プレーン合成部20は常に左ビデオプレーン5と左イメージプレーン9の合成のみを行うことになる。
 ここで、2Dのストリームの再生が一旦終了し、続いて3Dのストリームの再生が開始される場合を考える。2Dのストリームの再生中は、BD-Jアプリも2D描画のアプリとして動作するため、左イメージプレーン9に対してのみ描画を行い、右イメージプレーンには何も描画を行わず、例えば全面黒色のままとなっている。ところが、この状態のままで3Dのストリームの再生に切り替わると、プレーン合成部20はステップS404R、ステップS405Rの処理にて、何も描画がなされていない右イメージプレーン10の画像を出力してしまう。3Dストリームに切り替わると、BD-Jアプリも3D描画のアプリとして動作を開始することが期待されるが、これらの切り替わりのタイミングにタイムラグが存在すると、一瞬R画像のみ全面黒色の出力がなされるため、ちらつきが発生してしまう。
 このようなちらつきを回避するには、プレーン合成部20の動作が2Dから3Dに切り替わるタイミングで、左イメージプレーン9の内容を右イメージプレーン10に強制的にコピーするようにすればよい。

 ストリームが2Dから3Dに切り替わる場合だけではなく、例えばBD-Jモジュールの動作モードのみを2Dから3Dに切り替える機能が存在する場合についても、切り替えのタイミングで同様のコピーを行うようにすることで、BD-Jアプリの実装如何に関わらず、同種のちらつきを防止することができる。
 さらに、BD-Jモジュールが左イメージプレーン9のみを用いて3D描画を行う1plane+Offsetモードに対応している場合、コピー処理とシフト処理とを実行することで、左右の不整合を解消することができる。
 1plane+Offsetモードとは、左イメージプレーン9全体をL画像としては左にnピクセル分、R画像としては右にnピクセル分シフトして出力することで、プレーン全体を手前あるいは奥まって表示させるモードである。かかる1plane+Offsetモードにおいて、左イメージプレーン9全体が右にnピクセル分シフトされた後に、シフト後の画像を右イメージプレーン10にコピーする。その後、左イメージプレーン9全体を左にnピクセル分シフトさせれば、描画モードの遷移前と遷移後のL画像およびR画像の出力が一致するため、ちらつきを抑止することが可能となる。
 この1plane+Offsetモードから左右両方のイメージプレーンを使用する3D描画モードに遷移する場合においても、かかるシフト及びコピー処理を適用することができる。
 以上が、本発明にかかる立体視ビデオ再生方式の実施形態である。
 (第5実施形態)
 本実施形態では、プレーン合成部20および左右描画処理調停部30の別の実施形態について説明する。
 プレーン合成部20、左右描画処理調停部30以外の構成要素については第4実施形態と同様であるためここでは説明を省略し、異なる部分についてのみ説明を行う。
 図28は、ラインの交互出力を実現する場合の、フレーム処理を示すフローチャートである。
 ステップS701およびステップS702は、それぞれ図26のステップS401、ステップS402と同様であり、ステップS702の判定結果が3Dであった場合は、3D映像の再生を開始する。
 3D映像の再生が開始されると、再生装置200はステップS703L以降の処理に従って、左右の出力映像を生成する。まず、ステップS703LおよびステップS703Rの処理により、処理対象となるトランスポートストリームから、ビデオデコーダにより、左眼用のビデオピクチャおよび右眼用のビデオピクチャを取り出し、それぞれ左ビデオプレーン5、右ビデオプレーン6に出力する。
 続いてステップS704のループ処理で、プレーン合成部20は、左右のプレーン全体にわたって合成する処理を行う。
 ここでは、左右のビデオプレーンと左右のイメージプレーンの解像度が同じで、いずれも幅Wピクセル、高さHピクセルであるものとする。この場合、合成の処理は1番上の行(y=0)から1番下の行(y=H-1)の方向に向かって1ラインずつ順番に行われる。

 1ライン毎の処理としては、まずステップS705Lにおいて、左ビデオプレーン5のy行目の映像の上に左イメージプレーン9のy行目の映像を重畳して、出力L画像のy行目が生成され、最終的な映像出力として出力する。
 続いて、ステップS705Rにおいて、右ビデオプレーン6のy行目の映像の上に右イメージプレーン10のy行目の映像を重畳して、出力R画像のy行目が生成され、最終的な映像出力として出力する。ここでは上から順番に1ラインずつ処理する構成をとったが、下から上への順番など、他の順番に処理を行ってもよい。また、ビデオプレーンとイメージプレーンの解像度を同一としたが、これらの解像度が異なる構成をとってもよい。
 プレーン全体に対して合成処理が完了すると、プレーン合成部20はステップS706の処理にて、L画像とR画像の両方の合成処理が完了したという合成処理完了通知を、左右描画処理調停部30に対して行う。
 以上が、本実施の形態において立体視映像を映し出す際の処理の流れである。
 この構成においては、左イメージプレーン9のイメージデータ、続いて右イメージプレーン10の画像が1ラインずつ交互に、すなわち1フレームとして見れば両画像が並行でプレーン合成部20に送られることとなる。
 そのため、例えばBD-Jアプリがある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をこの順番で描画しようとした場合、レンダリングエンジン22は、まず左イメージプレーン9の画像を書き換える。しかし、このタイミングで、左右イメージ出力が実行されると、生成されるL画像については左イメージプレーン9の書き換えを反映したものになるが、R画像についてはまだ右イメージプレーン10は書き換え前であるため、結果として出力されるL画像とR画像は、L画像だけが書き換えを反映した不整合なものとなってしまう。
 そこで、本実施の形態においては、左右描画処理調停部30が図29に示したフローチャートの処理によってレンダリングエンジン22の処理順序を制御することで、前述のような不整合な表示の回避を行う。図29は、描画要求の統合を伴う左右描画処理調停部30の処理手順を示すフローチャートである。
 まずステップS801により、BD-Jアプリからの描画指示に基づいてBD-Jモジュール15から描画要求Aが発行されるのを待つ。発行される描画要求は、先の実施の形態と同様の構造で表現される。
 次にステップS802において、ステップS801で受け取った描画要求Aの種別情報が「イメージコピー」で、かつ描画対象プレーンが左イメージプレーン9であるか否かを判定する。
 ステップS802の条件を満たさなかった場合は、ステップS803の処理にて、レンダリングエンジン22に対して描画要求Aをそのまま発行する。これは従来のBD-Jモジュール15と同様の処理になるため、説明は省略する。
 ステップS802の条件を満たした場合、描画要求Aの処理はこのタイミングでは行わずに保留しておき、次のステップS804において、BD-Jモジュール15からの次の描画要求Bが発行されるのを待つ。
 次にステップS805において、ステップS804で受け取った描画要求Bの種別情報が「イメージコピー」で、かつ描画対象プレーンが右イメージプレーン10であるか否かを判定する。
 ステップS805の条件を満たした場合は、続くステップS809の処理にて、描画要求Aのイメージコピーの描画位置と、描画要求Bのイメージコピーの描画位置との比較を行う。具体的には両者の描画先矩形領域のY座標を意味するy1およびy2の値がともに一致するか否かを判定する。
 立体視のグラフィックスを描画する典型的なBD-Jアプリでは、ある一つの描画対象オブジェクトについて、左眼視点から見た形状を左イメージプレーン9に描画し、右眼視点から見た形状を右イメージプレーン10に描画するというセットの処理を連続して行うことが多いと想定される。さらに、左右の描画の違いは視点の差に起因するものであるため、Y座標は同じでX座標のみ視差の分だけずらした描画であることが想定される。そこで、描画要求Aおよび描画要求Bがそれぞれ左イメージプレーン9、右イメージプレーン10へのイメージコピーで、その描画位置の差がX座標のみであることを判定することで、BD-Jアプリとしては、ある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をセットで描画しようとしていることが予測される。したがって、これら2つのイメージコピー処理の結果は、プレーン合成部20において確実に同一フレームの映像出力として処理を行う必要がある。
 そこで、ステップS809の条件を満たした場合、左右描画処理調停部30はステップS810の処理により、レンダリングエンジン22に対して描画要求Aおよび描画要求Bの代わりに、描画要求A,Bを統合した左右同時描画要求Cを発行する。
 図30(a)は、上記統合によって得られた左右同時描画要求Cを示す図である。図30(a)における左右同時描画要求903(描画要求C)は、図30(b)における描画要求901(描画要求A)と、図30(c)における描画要求902(描画要求B)の2つの描画要求を1つにまとめたものである。
 左右同時描画要求Cを受けたレンダリングエンジン22は、左イメージプレーン9へのイメージコピー処理と右イメージプレーン10へのイメージコピー処理を、順番に行うのではなく、例えば左右のコピー処理をビットマップイメージの上から下速度変換ラインずつ交互に行うようにする。これにより、左右イメージプレーンへの描画処理が同時並行的に実行されることになるため、図28におけるプレーン合成部20の合成処理ステップS704、ステップS705L、ステップS705Rがどのタイミングで動作していても、出力映像としてのL画像とR画像の表示の不整合は最小限に抑えることが可能となる。
 ここではレンダリングエンジン22は左右を1ラインずつ処理する例を挙げたが、交互に切り替える処理の単位は1ラインずつに限定されるものではなく、また2つのレンダリングエンジンを備えることで完全な並列処理を行う構成をとってもよい。
 一方で、ステップS805またはステップS809の条件が満たされなかった場合は、描画要求Aと描画要求Bは一つのオブジェクトについて左右の視点から見た描画を行うという、セットではなかったと判断され、以降は従来と同様の処理、すなわち表示のちらつきの発生も許容する処理が行われることになる。
 そこで次のステップS806の処理にて、警告メッセージを出力することで、BD-Jアプリの開発者あるいは再生装置200のユーザに対して、本BD-Jアプリではちらつきが発生する可能性がある旨を通知することができる。警告メッセージの出力としては、例えばBD-Java仕様におけるExceptionメッセージをスローすることで、BD-Jアプリの開発者に警告を知らせてもよいし、表示ディスプレイ400に警告メッセージを表示することで、BD-Jアプリの開発者あるいは再生装置200のユーザに対して警告を知らせる構成をとってもよい。
 続いてステップS807およびステップS808の処理にて、保留されていた描画要求Aおよび描画要求Bをレンダリングエンジン22に対してそのまま発行することで、これまでの実施形態と同様の描画処理を実行する。
 以上の処理により、ステップS802、ステップS805、ステップS809の条件を満たす2つのイメージコピーの結果が、プレーン合成部20にて同一フレームの映像出力の中で同時に反映されることになる。したがって、ちらつき(ティアリング)が発生する可能性はあるものの、L画像とR画像の表示不整合に伴う左右の視覚の不整合を伴うちらつきは抑制することが可能となる。
 尚、判定対象のバリエーションとして以下のものを採用してもよい。つまり本実施の形態においては、「イメージコピー」のみをステップS802、ステップS805の判定処理の対象とし、それ以外の描画要求については従来と同様の処理、すなわち表示のちらつきの発生も許容する構成をとったが、それ以外の処理、例えば「矩形塗り潰し」等についても判定の対象に加えてもよい。この場合は、ちらつきを抑止しうる描画処理種別の範囲を拡げることができる。
 また本実施例ではステップS810において即時に左右同時描画要求を発行しているが、図28のステップS706による合成処理完了通知を待ってから、左右同時描画要求を発行するような構成としてもよい。この構成をとった場合、イメージコピー処理が十分高速なハードウエアにおいては、図28においては次フレームのステップS705L、ステップS705Rの処理が実行される前にイメージコピー処理を完了させることができるため、ティアリングも発生しない、より高品位な画面の更新を実現することが可能となる。
 更に、本実施の形態ではL画像とR画像の処理を上から1ラインずつ交互に行うことで、擬似的にL画像とR画像の生成を並行で行う構成をとるものとしているが、処理の単位は1ラインに限るものではない。
 出力の2系統にしてもよい。つまり再生装置のハードウエアの構成によっては、デマルチプレクサ3は別の出力方式を実施しても良い。図25の構成図にはビデオデコーダとイメージデコーダ、プレーン合成部を各一組ずつ有しているが、例えばこれらの構成を2つずつ持つハードウエアでは、左眼用と右眼用の映像を別々の系統で処理することができる。すなわち、左眼用のビデオデコーダが左ビデオプレーン5にビデオピクチャを格納し、左眼用のイメージデコーダが左イメージプレーン9にイメージデータを格納し、左眼用のプレーン合成部が左ビデオプレーン5と左イメージプレーン9のピクチャを合成し、右眼用についても同様に別系統で処理するような構成をとることで、L画像の生成処理とR画像の生成処理を完全に並列で行うようにしてもよい。
 また本実施形態においては、プレーン合成部20の映像出力は、L画像とR画像を1ラインずつ交互に出力する構成をとっているが、映像出力についてもこの形式に限定するものではない。例えば、前述の左眼用と右眼用の二系統のハードウエアを持つ構成においては、映像出力としても左眼用映像出力と右眼用映像出力の二系統を有する構成もとることができる。また、プレーン合成部20の映像出力の先に出力映像の一時保存用バッファを設けることにより、実施の形態1と同様の、左眼用映像(L画像)の映像出力と、右眼用映像(R画像)の映像出力を交互に繰り返すような構成をとることもできる。
 (第6実施形態)
 描画要求に加え、画面更新要求を発行することで映像出力を実現する改良である。
 図30(d)は、画面更新要求904を示す。この画面更新要求904は、BD-Javaの規格においてjava.awt.Toolkit#syncメソッドとして規定される。画面更新処理は、現在のイメージプレーンの画像を確実に表示ディスプレイ側に送ることをBD-Jアプリ側から保証するためのものであり、イメージプレーンとしてダブルバッファ構成を導入している実装、すなわち描画対象バッファと表示対象バッファとを個別に持つことでティアリングを抑える実装において、特に意味を持つものである。
 図31は、画面更新要求をトリガとした左右描画処理調停部30の処理手順を示すフローチャートである。
 本フローチャートのステップS1001、ステップS1002、ステップS1003、ステップS1004、ステップS1005、ステップS1006、ステップS1007、ステップS1008の各処理は、それぞれステップS801、ステップS802、ステップS803、ステップS804、ステップS805、ステップS806、ステップS807およびステップS808、ステップS809と同様である。
 ステップS1002、ステップS1005、ステップS1008の各条件が満たされた場合、すなわち、描画要求Aと描画要求Bが一つのオブジェクトについて左右の視点から見た描画を行うセットに該当すると判断された場合、描画要求Aおよび描画要求Bに相当する処理はこのタイミングでは行わない。つまり、描画要求A,Bを保留しておき、次のステップS1009において、BD-Jモジュール15からの次の描画要求Cが発行されるのを待つ。
 次のステップS1010において、描画要求Cの種別が「画面更新」であるか否かを判断する。描画要求Cが「画面更新」であった場合は、左右描画処理調停部30はステップS1013の処理により、レンダリングエンジン22に対して描画要求Aおよび描画要求Bの代わりに、左右同時描画要求を発行する。
 描画要求Cが「画面更新」でなかった場合は、ステップS1011において、警告メッセージを出力した後、ステップS1012において、保留されていた描画要求A、描画要求B、描画要求Cをレンダリングエンジン22に対して順番にそのまま発行することで、これまでの実施形態と同様の描画処理を実行する。
 以上が、本実施の形態における左右描画処理調停部30の処理の流れである。
 イメージプレーンがシングルバッファ構成をとっている場合は、画面更新要求の有無に関わらず、イメージプレーンの画像がプレーン合成部20の動作タイミングに応じて映像出力に反映されるため、画面更新要求自体は必ずしも意味を持たない。一方、イメージプレーンがダブルバッファ構成をとっている場合は、画面更新要求が重要な意味を持つ。本実施の形態では、BD-Jアプリが左イメージプレーン9への「イメージコピー」、右イメージプレーン10への「イメージコピー」、「画面更新」の3つをこの順番で呼び出さなければ、警告メッセージが出力されることになるため、BD-Jアプリ開発者に様々な再生装置において再生互換性が高いBD-Jアプリの開発を促すことができる。
 (第7実施形態)
 前述の第4実施形態、第5実施形態および第6実施形態においては、左イメージプレーン9と右イメージプレーン10はそれぞれ別個のイメージプレーンとしており、BD-Jアプリからの描画要求の観点では、描画対象プレーンが別々のものとして扱うことを前提としていた。本実施形態においては、左イメージプレーン9および右イメージプレーン10を、BD-Jアプリの観点では同一のプレーンとして扱うものとする。
 図32(a)は、左イメージプレーン9と右イメージプレーン10とを左右に並べて連結することで構成される連結イメージプレーン(以降、サイドバイサイド形式と呼ぶ)を示す。この構成においては、左右のイメージプレーンの解像度がそれぞれ幅Wピクセル、高さHピクセルであるとすると、連結イメージプレーンは幅W×2ピクセル、高さHピクセルとなる。
 このサイドバイサイド形式のイメージプレーンの連結は、左右のイメージプレーンを、物理的に連続する同一のメモリとして構成することで実現可能となる。
 左イメージプレーン9と右イメージプレーン10は別々のメモリによって構成し、BD-Jアプリに対してのみ一つの連結イメージプレーンとして見せるような構成を採用することでも実現可能である。
 図32(b)は、左イメージプレーン9と右イメージプレーン10を上下に並べて連結したものを一つの一般として扱う連結イメージプレーン(以降、トップアンドボトム形式と呼ぶ)を示す。この構成においては、左右のイメージプレーンの解像度が幅Wピクセル、高さHピクセルであるとすると、連結イメージプレーンは幅Wピクセル、高さH×2ピクセルとなる。
 このトップアンドボトム形式におけるイメージプレーンの連結にあたっても、左右のイメージプレーンを、物理的に連続する同一のメモリとして構成するのが望ましい。左イメージプレーン9と右イメージプレーン10は別々のメモリによって構成し、BD-Jアプリに対してのみ一つの連結イメージプレーンとして見せるような構成としてもよい。
 トップアンドボトム形式の連結イメージプレーンを持つ場合、BD-Jアプリケーションは、図32(b)において、左イメージプレーンと右イメージプレーンとを上下にまたがるような矩形領域をイメージコピー処理の対象にすることができる。
 さて、本実施形態に係る再生装置200がディスプレイ400に立体視映像を映し出す際の処理は、図33に示される処理によって実現されるものとする。
 図33は、本実施の形態における左右描画処理調停30の処理のフローチャートである。
 まずステップS1101において、BD-Jアプリからの描画指示に基づいてBD-Jモジュール15から描画要求が発行されるのを待つ。描画要求が発行されれば、S1102において、ステップS1101で受け取った描画要求の種別情報が「イメージコピー」で、かつ描画位置が左イメージプレーンと右イメージプレーンの双方にまたがるものであるか否かを判定する。
 ステップS1102の条件を満たさない場合は、ステップS1103において、レンダリングエンジン22に対して描画要求をそのまま発行することで、これまでの実施形態と同様の描画処理を実行する。
 ステップS1102の条件を満たした場合には、ステップS1104Lに移行する。
 描画位置が左イメージプレーンと右イメージプレーンの双方にまたがるような描画要求が発行される場合は、BD-Jアプリとしては、ある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をセットで描画しようとしていることが予測される。そのため、本実施の形態においては、ステップS1104L以降の処理によって、左右描画処理調停部30がレンダリングエンジン22の処理タイミングを調整することで、L画像とR画像の表示の不整合の回避を試みる。
 まず、ステップS1104Lにおいて、プレーン合成部20からL画像の合成完了通知(図26のステップS406Lにて発行されたもの)が来るのを待つ。
 次に、ステップS1105Lにおいて、描画位置として左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理の描画要求をレンダリングエンジン22に対して発行する。例えば図32(a)における矩形領域1301の場合は、左上が(x1,y1)、右下が(W,y2)で指定される矩形領域を対象としたイメージコピーを発行すればよい。
 R画像についても同様に、ステップS1104Rにおいて、プレーン合成部20からR画像の合成完了通知(図26のステップS406Rにて発行されたもの)が来るのを待つ。そして合成完了通知が発行されれば、ステップS1105Rにおいて、描画位置として右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理の描画要求をレンダリングエンジン22に対して発行する。図32(a)における矩形領域1301の場合は、左上が(W,y1)、右下が(x2,y2)で指定される矩形領域を対象としたイメージコピーを発行すればよい。
 これらの処理により、イメージコピー処理が十分高速なハードウエアにおいては、左イメージプレーン9に対するイメージコピーの結果は、図26においては次のフレームのステップS404L、ステップS405Lの処理にて映像出力に反映され、右イメージプレーン10に対するイメージコピーの結果は、次のフレームのステップS404R、ステップS405Rの処理にて映像出力に反映されることを保証することができ、2つのイメージコピーの結果が、プレーン合成部20にて同一フレームの映像出力に反映されるため、L画像とR画像の表示不整合に伴うちらつきを防止することが可能となる。
 尚、本実施の形態においては、「イメージコピー」のみをステップS1102の判定処理の対象とし、それ以外の描画要求については従来と同様の処理、すなわち表示のちらつきの発生も許容する構成をとったが、それ以外の処理、例えば「矩形塗り潰し」等についても判定の対象に加えてもよい。この場合は、ちらつきを抑止しうる描画処理種別の範囲を拡げることができる。
 (第8実施形態)
 連結イメージプレーンに対する描画要求の分離を実現する実施形態である。描画要求の分離は、ある矩形範囲に対する描画要求を、左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理と、右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理とに分離して、これらのイメージコピー処理を同時に実行させるものである。
 図34は、描画要求と、左右同時描画要求とを示す。
 図中の描画要求1401は、解像度が幅1000ピクセル、高さ1500ピクセルの描画イメージである"ビットマップイメージ1"を、トップアンドボトム形式のイメージプレーンにおける(x1,y1)=(200,300),(x2,y2)=(1200,1800)の矩形範囲に、書き込むことを要求するイメージコピーの要求である。
 左右同時描画要求1402は、描画要求1401を変換することで得られる左右同時描画要求であり、左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理、及び、右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理を左右同時に要求するものである。
 左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理は、"ビットマップイメージ1"のx1=0,y1=0,x2=1000,y2=780の矩形領域を、イメージプレーンにおける(x1,y1)=(200,300),(x2,y2)=(1200,1080)の矩形範囲に、書き込むことを要求するイメージコピーの要求である。
 右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理は、"ビットマップイメージ1"のx1=0,y1=780,x2=1000,y2=1500の矩形領域を、イメージプレーンにおける(x1,y1)=(200,0),(x2,y2)=(1200,720)の矩形範囲に、書き込むことを要求するイメージコピーの要求である。
 図35は本実施の形態における左右描画処理調停部30の処理のフローチャートである。まずステップS1201の処理により、BD-Jアプリからの描画指示に基づいてBD-Jモジュール15から描画要求が発行されるのを待つ。
 次に、ステップS1202において、ステップS1201で受け取った描画要求の種別情報が「イメージコピー」で、かつ描画範囲が左右の領域にまたがるものであるか、又は、上下の領域にまたがるものであるか否かを判定する。トップアンドボトム形式の連結イメージプレーンを持つ場合、BD-Jアプリは、上下にまたがるような矩形領域を描画範囲としてイメージコピー処理を要求することができる。
 サイドバイサイド形式の連結イメージプレーンを持つ場合、BD-Jアプリは、左右にまたがるような矩形領域を描画範囲としてイメージコピー処理を要求することができる。
 ステップS1202の条件を満たさない場合は、ステップS1203の処理にて、レンダリングエンジン22に対して描画要求をそのまま発行することで、これまでと同様の描画処理が実行される。
 ステップS1202の条件を満たした場合には、ステップS1204において、受け付けた描画要求を、左イメージプレーン9に含まれる部分のみを切り抜いたイメージコピー処理と、右イメージプレーン10に含まれる部分のみを切り抜いたイメージコピー処理とを同時に実行させる左右同時描画要求に変換して、レンダリングエンジン22に発行する。
 描画位置が左イメージプレーンと右イメージプレーンの双方にまたがるような描画要求が発行される場合は、BD-Jアプリとしては、ある一つの描画対象オブジェクトについて、左眼視点から見た形状と右眼視点から見た形状をセットで描画しようとしていることが予測される。そのため、ステップS1204において、1つのイメージコピー処理を要求する描画要求を、2つのイメージコピー処理を同時に要求する左右同時描画要求に変換することにより、レンダリングエンジン22の処理順序を制御し、L画像とR画像の表示の不整合の回避を行う。
 尚、左右同時描画要求1402を受けたレンダリングエンジン22は、前述の5実施形態2で説明したように、左イメージプレーン9へのイメージコピー処理と右イメージプレーン10へのイメージコピー処理を順番に行うのではなく、例えば左右のコピー処理をビットマップイメージの上から下速度変換ラインずつ交互に行うようにすることで、出力映像としてのL画像とR画像の表示の不整合を最小限に抑えることができる。
 ただし、本実施の形態においては、左イメージプレーン9への描画位置のY座標と右イメージプレーン10への描画位置のY座標が一致しない場合がある。そのため、コピー処理は単純に上から1ラインずつ交互に行うのではなく、例えば左イメージプレーン9のy行目へのコピー処理を行い、その次には、右イメージプレーン10の同じくy行目へのコピー処理を行うような順序でコピーを行うのが望ましい。
 また本実施の形態においては、「イメージコピー」のみをステップS1202の判定処理の対象とし、イメージコピー以外の描画要求については従来と同様の処理、すなわち表示のちらつきの発生も許容する構成をとった。しかしイメージコピー以外の処理でも、例えば「矩形塗り潰し」等を、左右同時描画要求を行うかどうか判定の対象に加えてもよい。この場合は、ちらつきを抑止しうる描画処理種別の範囲を拡げることができる。
 (備考)
 以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
 (立体視方式)
 各実施形態で説明の前提とした視差画像方式は、左右の映像を時間軸方向で交互に表示させるために、例えば、通常の2次元の映画であれば1秒に24枚の映像を表示させるのに対して、左右の映像合わせて1秒に48枚の映像を表示させる必要がある。従って、この方式では、一画面の書き換えが比較的早い表示装置において好適である。この視差画像を用いた立体視は、既に遊園地の遊具などで一般的に使用されており、技術的にも確立されているため、家庭における実用化に最も近いものと言える。視差画像を用いた立体視のための方法はこれらの他にも、2色分離方式などさまざまな技術が提案されている。本実施形態においては、継時分離方式あるいは偏光メガネ方式を例として用いて説明したが、視差画像を用いる限りこれら2方式に限定するものではない。
 テレビ400についても、レンチキュラーレンズだけでなく、同様の機能を持たせたデバイス、例えば液晶素子を用いてもよい。また左目用の画素には縦偏光のフィルター、右目用の画素には横偏光のフィルターを設置し、視聴者は、左目用には縦偏光、右目用には横偏光のフィルターを設置した偏光メガネを用いて表示装置の画面を見ることによって立体視を実現させてもよい。
 (プログラムの実施形態)
 各実施形態に示したアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
 記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
 コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
 ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVAバイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
 オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるプログラムをコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。
 (記録媒体のバリエーション)
 各実施の形態における記録媒体は、光ディスク、半導体メモリーカード等、パッケージメディア全般を含んでいる。本実施の形態の記録媒体は予め必要なデータが記録された光ディスク(例えばBD-ROM、DVD-ROMなどの既存の読み取り可能な光ディスク)を例に説明をするが、これに限定される必要はなく、例えば、放送またはネットワークを経由して配信された本発明の実施に必要なデータを含んだ3Dコンテンツを光ディスクへ書き込む機能を有する端末装置(例えば左記の機能は再生装置に組み込まれていてもよいし、再生装置とは別の装置であってもよい)を利用して書き込み可能な光ディスク(例えばBD-RE、DVD-RAMなどの既存の書き込み可能な光ディスク)に記録し、この記録した光ディスクを本発明の再生装置に適用しても本発明の実施は可能である。
 (ビデオデコーダの構成)
 各実施形態において、ビデオデコーダは、左目用のビデオデコーダ5a、右目用のビデオデコーダ5bのそれぞれのものが存在すると説明したが、これらを一体にしてもよい。
 (半導体メモリカード記録装置及び再生装置の実施形態)
 各実施の形態で説明をしたデータ構造を半導体メモリーに記録する記録装置、及び、再生する再生装置の実施形態について説明する。
 まず、前提となる技術として、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を介して読み出すように構成すればよい。

 次に、例えば電子配信を利用して、図1、図24に示した記録媒体100に記録されたデータ、例えば記録媒体100に記録されたオリジナルのコンテンツに対応するデータ(例えば、ビデオストリーム、オーディオストリーム、字幕データ、字幕データ、背景画像、GUI、アプリケーション、アプリケーション管理テーブルなど)の全部若しくは一部(例えば再生に必要なデータのアップデートデータ)、または追加コンテンツを配信データとして、半導体メモリーに記録する動作について説明をする。
 上述の動作は本実施の形態において説明をした再生装置がその半導体メモリーに記録する動作を行なえるように構成をされていても良いし、本実施の形態の再生装置とは別に半導体メモリーに配信データを記憶することを行う専用の端末装置にて行なうような形態であっても良い。ここでは再生装置が行なう例について説明をする。また記録先の半導体メモリーとしてSDメモリーカードを例に説明をする。
 再生装置が備えるスロットに挿入されたSDメモリーカードに配信データを記録する場合、まず配信データを蓄積する配信サーバ(図示せず)へ配信データの送信を要求する。このとき再生装置は挿入したSDメモリーカードを一意に識別するための識別情報(例えば個々のSDメモリーカード固有の識別番号、より具体的には、例えばSDメモリーカードのシリアル番号等)をSDメモリーカードから読み出して、読み出した識別情報を配信要求とともに、配信サーバへ送信する。
 この、SDメモリーカードを一意に識別するための識別情報は例えば上述のボリュームIDに相当する。
 一方、配信サーバでは、配信するデータのうち必要なデータ(例えばビデオストリーム、オーディオストリーム等)が暗号解読に必要な鍵(例えばタイトルキー)を用いて暗号の解除ができるように暗号化がなされてサーバ上に格納されている。
 例えば配信サーバは、秘密鍵を保持しており、半導体メモリーカードの固有の識別番号のそれぞれに対して異なる公開鍵情報が動的に生成できるように構成されている。
 また、配信サーバは、暗号化されたデータの解読に必要な鍵(タイトルキー)自身に対して暗号化ができるように構成されている(つまり暗号化タイトルキーを生成できるように構成されている)。

 生成される公開鍵情報は例えば上述のMKB、ボリュームID及び暗号化タイトルキーに相当する情報を含む。暗号化されたデータは例えば半導体メモリー固有の識別番号、後述する公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しければ、暗号解読に必要な鍵(例えばデバイスキー、MKB及び半導体メモリー固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)が得られ、この得られた暗号解読に必要な鍵(タイトルキー)を用いて、暗号化されたデータの解読ができるものである。

 次に、再生装置は、受信した公開鍵情報と配信データをスロットに挿入した半導体メモリーカードの記録領域に記録する。
 次に、半導体メモリーカードの記録領域に記録した公開鍵情報と配信データに含まれるデータのうち暗号化したデータを復号して再生する方法の一例について説明をする。
 受信した公開鍵情報は例えば公開鍵本体(例えば上述のMKB及び暗号化タイトルキー)、署名情報、半導体メモリーカードの固有の識別番号、および無効にすべきデバイスに関する情報を示すデバイスリストが記録されている。
 署名情報には例えば、公開鍵情報のハッシュ値を含む。
 デバイスリストには例えば、不正に再生がなされる可能性があるデバイスに関する情報が記載されている。これは例えば再生装置に予め記録されたデバイスキー、再生装置の識別番号、または再生装置が備えるデコーダの識別番号といったように、不正に再生される可能性がある装置、装置に含まれる部品、または機能(プログラム)といったものを一意に特定するための情報である。
 半導体メモリーカードの記録領域に記録した配信データのうち、暗号化されたデータの再生に関し、説明をする。
 まず、公開鍵本体を利用して暗号化したデータを復号する前に復号鍵本体を機能させてよいかどうかに関するチェックを行う。
 具体的には、
(1) 公開鍵情報に含まれる半導体メモリー固有の識別情報と半導体メモリーカードに予め記憶されている固有の識別番号とが一致するかどうかのチェック
(2) 再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致するかのチェック
(3) 公開鍵情報に含まれるデバイスリストに示される情報に基づいて、再生を行う再生装置が不正な再生が可能かどうかのチェック(例えば公開鍵情報に含まれるデバイスリストに示されるデバイスキーと、再生装置に予め記憶されたデバイスキーが一致するかどうかのチェック)
 を行なう。これらのチェックを行なう順番どのような順序で行なってもよい。
 上述の(1)~(3)のチェックにおいて、公開鍵情報に含まれる半導体メモリー固有の識別情報と半導体メモリーに予め記憶されている固有の識別番号とが一致しない、再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致しない、または、再生を行う再生装置が不正に再生される可能性があると判断した、のいずれかを満足すれば、再生装置は、暗号化されたデータの解読がなされないように制御する。

 また、公開鍵情報に含まれる半導体メモリーカードの固有の識別情報と半導体メモリーカードに予め記憶されている固有の識別番号とが一致し、かつ再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致し、かつ再生を行う再生装置が不正に再生される可能性がないと判断したのであれば、半導体メモリー固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しいと判断し、暗号解読に必要な鍵(デバイスキー、MKB及び半導体メモリー固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)を用いて、暗号化されたデータの解読を行なう。

 例えば暗号化されたデータがビデオストリーム、オーディオストリームである場合、ビデオデコーダは上述の暗号解読に必要な鍵(暗号化タイトルキーを復号して得られるタイトルキー)を利用してビデオストリームを復号し(デコードし)、オーディオデコーダは、上述の暗号解読に必要な鍵を利用してオーディオストリームを復号する(デコードする)。
 このように構成をすることにより、電子配信時において不正利用される可能性がある再生装置、部品、機能(プログラム)などが分っている場合、これらを識別するための情報をデバイスリストに示して、配信するようにすれば、再生装置側がデバイスリストに示されているものを含むような場合には公開鍵情報(公開鍵本体)を用いた復号を抑止できるようにできるため、半導体メモリー固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが、たとえ正しくても、暗号化されたデータの解読がなされないように制御できるため、不正な装置上での配信データの利用を抑止することが可能となる。

 また半導体メモリーカードに予め記録されている半導体メモリーカードの固有の識別子は秘匿性の高い記録領域に格納するような構成を採用するのが望ましい。何故ならば、半導体メモリーカードに予め記録されている固有の識別番号(例えばSDメモリーカードを例にすればSDメモリーカードのシリアル番号等)は改竄がなされると、違法コピーが容易になされてしまう。何故ならば複数の半導体メモリーカードには、それぞれ異なる固有の識別番号が割り当てられているが、この固有の識別番号が同一となるように改竄がなされてしまえば、上述の(1)の判定が意味を成さなくなり、改竄がなされた数に相当する違法コピーがなされてしまう可能性があるからである。
 従って、半導体メモリーカードの固有の識別番号といった情報は秘匿性が高い記録領域に記録するような構成を採用するのが望ましい。
 このような構成を実現するために、例えば半導体メモリーカードは、半導体メモリーカードの固有の識別子と言った秘匿性の高いデータを記録するための記録領域を通常のデータを格納する記録領域(第1の記録領域と称す)とは別の記録領域(第2の記録領域と称す)に設けること、およびこの第2の記録領域へのアクセスをするための制御回路を設けるとともに、第2の記録領域へのアクセスには制御回路を介してのみアクセスできるような構成とする。
 例えば、第2の記録領域に記録されているデータは暗号化がなされて、記録されており、制御回路は、例えば暗号化されたデータを復号するための回路が組み込まれている。制御回路へ第2の記録領域へのデータのアクセスが合った場合には、暗号を復号し、復号したデータを返すように構成すれば良い。または、制御回路は第2の記録領域に記録されているデータの格納場所の情報を保持しており、データのアクセスの要求があれば、対応するデータの格納場所を特定し、特定した格納場所から読み取ったデータを返すような構成としても良い。

 再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリーカードに記録する要求するアプリケーションは、メモリーカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行すると、要求を受けた制御回路は第2の記録領域に記録されたデータを読み出して再生装置上で動作するアプリケーションへ返す。この半導体メモリーカードの固有の識別番号とともに必要なデータの配信要求を配信サーバに要求し、配信サーバから送られる公開鍵情報、および対応する配信データを第1の記録領域に記録するように構成すればよい。
 また、再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリーカードに記録を要求するアプリケーションは、メモリーカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行する前に、アプリケーションの改竄がされていないかを事前にチェックすることが望ましい。改竄のチェックには例えば既存のX.509仕様に準拠したデジタル証明書を利用したチェックなどを利用しても良い。
 また、半導体メモリーカードの第1の記録領域に記録された配信データへのアクセスは半導体メモリーカードが有する制御回路を介してアクセスする必要は必ずしもない。
 本発明は、立体視映像を再生する再生機器において、描画更新のタイミングにおけるちらつきを抑止する技術に関し、特に、再生機器の映像出力と非同期に画像を更新する機能を持つ立体視映像再生装置に適用可能である。
 100 記録媒体
 200 再生装置
 300 リモコン
 400 テレビ
 500 シャッター眼鏡

Claims (9)

  1. 再生装置であって、
     記録媒体に記録されているビデオストリームをデコードして、立体視映像の再生を行う再生部と、
     アプリケーションを動作させるプラットフォーム部と、
     複数のプレーンメモリと、
     アプリケーションからのアプリケーションプログラムインターフェイスの呼び出しに応じて、複数のプレーンメモリに対する描画イメージの書き込みを行う描画部とを備え、
     複数のプレーンメモリには、レフトビュープレーンメモリと、ライトビュープレーンメモリとがあり、
     前記アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む
     ことを特徴とする再生装置。
  2. 前記プレーンメモリに書き込まれる描画イメージは、記録媒体に記録されたデータ構造体のインスタンスであり、
     レフトビュープレーンメモリへの書き込み指定及びライトビュープレーンメモリへの書き込み指定は、
     書き込みの対象となるインスタンスの指定と、
     レフトビュープレーンメモリ及びライトビュープレーンメモリにおける座標の指定とを含む
     ことを特徴とする請求項1記載の再生装置。
  3. 前記描画イメージは、複数のラインデータからなり、
     前記レフトビュープレーンメモリ及びライトビュープレーンメモリのうち、何れか一方にラインデータが書き込まれれば、
     前記描画部は、レフトビュープレーンメモリ及びライトビュープレーンメモリのうち他方のプレーンメモリに対して、当該ラインデータと同じ行のラインデータの書き込みを行う
     ことを特徴とする請求項1記載の再生装置。
  4. 前記レフトビュープレーンメモリ及びライトビュープレーンメモリのそれぞれは、ダブルバッファであり、ダブルバッファを構成する2つのバッファのうち一方のものは表示対象バッファに割り当てられ、他方のものは描画対象バッファに割り当てられ、
     前記描画部による描画イメージの書き込み先は、描画対象バッファであり、
     表示対象バッファには、既に書き込みが完了した描画イメージであって、現在表示に供されている描画イメージが格納され、
     描画対象バッファへの書き込みが完了した際、これまで描画対象バッファに割り当てらえていたバッファを表示対象バッファに変更し、これまで表示対象バッファに割り当られていたバッファを描画対象バッファに変更することで、描画イメージの立体視再生の更新を行う
     ことを特徴とする請求項1記載の再生装置。
  5. アプリケーションプログラムインターフェイスの呼び出しがなされた場合、レフトビュープレーンメモリを構成する描画対象バッファ、及び、ライトビュープレーンメモリを構成する描画対象バッファのうち、何れか一方の書き込みを先に行い、当該書き込みが完了した後、レフトビュープレーンメモリを構成する描画対象バッファ、及び、ライトビュープレーンメモリを構成する描画対象バッファのうち、他方の書き込みを行う
     ことを特徴とする請求項4記載の再生装置。
  6. 記録媒体には複数のコンテンツが記録されており、
     前記ビデオストリームは、特定のコンテンツに含まれており、
     前記プラットフォーム部は、
     複数のコンテンツのうち、特定のコンテンツが再生対象になった際、前記再生対象のコンテンツに対応するアプリケーション管理テーブルに従ってアプリケーションを起動して実行し、
     レフトビュープレーンメモリ及びライトビュープレーンメモリは、
     動作モードオブジェクト内のコンフィグレーション情報に従って、メモリデバイス上に確保される
     ことを特徴とする請求項1記載の再生装置。
  7. 前記コンフィグレーション情報は、解像度コードを含み、解像度コードは、縦画素数及び横画素数を示す
     ことを特徴とする請求項6記載の再生装置。
  8. コンピュータ上で再生処理を行う再生方法であって、
     記録媒体に記録されているビデオストリームをデコードして、立体視映像の再生を行う再生ステップと、
     アプリケーションを動作させるプラットフォームステップと、
     アプリケーションからのアプリケーションプログラムインターフェイスの呼び出しに応じて、コンピュータにおける複数のプレーンメモリに対する描画イメージの書き込みを行う描画ステップとを備え、
      前記複数のプレーンメモリには、レフトビュープレーンメモリと、ライトビュープレーンメモリとがあり、
     前記アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む
     ことを特徴とする再生方法。
  9. コンピュータに再生処理を実行させるプログラムであって、
     記録媒体に記録されているビデオストリームをデコードして、立体視映像の再生を行う再生ステップと、
     アプリケーションを動作させるプラットフォームステップと、
     アプリケーションからのアプリケーションプログラムインターフェイスの呼び出しに応じて、コンピュータにおける複数のプレーンメモリに対する描画イメージの書き込みを行う描画ステップとをコンピュータに実行させ、
     前記複数のプレーンメモリには、レフトビュープレーンメモリと、ライトビュープレーンメモリとがあり、
     前記アプリケーションプログラムインターフェイスの引数は、レフトビュープレーンメモリへの書き込み指定と、ライトビュープレーンメモリへの書き込み指定とのペアを含む
     ことを特徴とするプログラム。
PCT/JP2010/000883 2009-02-17 2010-02-12 再生装置、再生方法、プログラム WO2010095403A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP10743533.1A EP2400772B1 (en) 2009-02-17 2010-02-12 Playback device, playback method, and program
JP2011500496A JP5155441B2 (ja) 2009-02-17 2010-02-12 再生方法、再生装置
CN201080006819.9A CN102308589B (zh) 2009-02-17 2010-02-12 再现装置和再现方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009033573 2009-02-17
JP2009-033573 2009-02-17
US15369709P 2009-02-19 2009-02-19
US61/153,697 2009-02-19

Publications (1)

Publication Number Publication Date
WO2010095403A1 true WO2010095403A1 (ja) 2010-08-26

Family

ID=42633693

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/000883 WO2010095403A1 (ja) 2009-02-17 2010-02-12 再生装置、再生方法、プログラム

Country Status (5)

Country Link
US (2) US8351758B2 (ja)
EP (1) EP2400772B1 (ja)
JP (2) JP5155441B2 (ja)
CN (1) CN102308589B (ja)
WO (1) WO2010095403A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011039990A1 (ja) * 2009-10-02 2011-04-07 パナソニック株式会社 立体視映像を再生することができる再生装置、集積回路、再生方法、プログラム
WO2012157585A1 (ja) * 2011-05-19 2012-11-22 株式会社東芝 医用画像診断装置及び画像処理装置
JPWO2012123982A1 (ja) * 2011-03-11 2014-07-17 日立コンシューマエレクトロニクス株式会社 記録装置/方法/媒体、再生装置/方法
WO2015064169A1 (ja) * 2013-10-28 2015-05-07 ソニー株式会社 画像処理装置、画像処理方法およびプログラム
JP2018147536A (ja) * 2017-03-07 2018-09-20 三菱電機株式会社 コンテンツ再生装置およびコンテンツ再生プログラム

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008146476A1 (ja) * 2007-05-24 2008-12-04 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びアクセス装置
JP5285517B2 (ja) * 2009-06-30 2013-09-11 パナソニック株式会社 映像信号処理装置、映像処理システム及び半導体集積回路並びに映像信号処理方法
KR20110024642A (ko) * 2009-09-02 2011-03-09 삼성전자주식회사 디스플레이장치 및 그 제어 방법
US20110080462A1 (en) * 2009-10-02 2011-04-07 Panasonic Corporation Playback device, integrated circuit, playback method, and program for stereoscopic video playback
JP5172958B2 (ja) * 2009-10-19 2013-03-27 パナソニック株式会社 映像表示システム、映像表示方法および表示装置
WO2012017603A1 (ja) 2010-08-06 2012-02-09 パナソニック株式会社 再生装置、集積回路、再生方法、プログラム
EP2426931A1 (en) * 2010-09-06 2012-03-07 Advanced Digital Broadcast S.A. A method and a system for determining a video frame type
DE112010005945B4 (de) 2010-10-19 2018-06-21 Mitsubishi Electric Corporation Stereoskopische Dreidimensionen-Anzeigevorrichtung
US8610759B2 (en) * 2010-10-26 2013-12-17 Verizon Patent And Licensing Inc. Methods and systems for presenting adjunct content during a presentation of a media content instance
US8553071B2 (en) * 2010-10-26 2013-10-08 Verizon Patent And Licensing, Inc. Methods and systems for presenting adjunct content during a presentation of a media content instance
TWI449407B (zh) * 2011-01-28 2014-08-11 Realtek Semiconductor Corp 顯示器、影像處理裝置以及影像處理方法
US9020241B2 (en) 2011-03-03 2015-04-28 Panasonic Intellectual Property Management Co., Ltd. Image providing device, image providing method, and image providing program for providing past-experience images
WO2012132234A1 (ja) 2011-03-31 2012-10-04 パナソニック株式会社 全周囲立体画像の描画を行う画像描画装置、画像描画方法、画像描画プログラム
WO2012132237A1 (ja) 2011-03-31 2012-10-04 パナソニック株式会社 立体視画像の描画を行う画像描画装置、画像描画方法、画像描画プログラム
KR101260610B1 (ko) * 2011-06-10 2013-05-03 애니포인트 미디어 그룹 시맨틱 애플리케이션 제공 방법
US9829715B2 (en) 2012-01-23 2017-11-28 Nvidia Corporation Eyewear device for transmitting signal and communication method thereof
JP2014200074A (ja) * 2013-03-15 2014-10-23 株式会社リコー 配信制御システム、配信制御方法、及びプログラム
TWI545942B (zh) * 2013-04-30 2016-08-11 杜比實驗室特許公司 從單一容器輸出多語言音訊和相關的音訊之系統及方法
US10935788B2 (en) * 2014-01-24 2021-03-02 Nvidia Corporation Hybrid virtual 3D rendering approach to stereovision
US10298546B2 (en) * 2014-03-07 2019-05-21 Toshiba Memory Corporation Asymmetrical encryption of storage system to protect copyright and personal information
US10114939B1 (en) * 2014-09-22 2018-10-30 Symantec Corporation Systems and methods for secure communications between devices
JP6488221B2 (ja) 2015-03-30 2019-03-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 再生方法及び再生装置
US9894342B2 (en) 2015-11-25 2018-02-13 Red Hat Israel, Ltd. Flicker-free remoting support for server-rendered stereoscopic imaging
US10846918B2 (en) * 2017-04-17 2020-11-24 Intel Corporation Stereoscopic rendering with compression
GB2565282B (en) * 2017-08-02 2021-12-22 Vnc Automotive Ltd Remote control of a computing device
CN109358830B (zh) * 2018-09-20 2022-04-22 京东方科技集团股份有限公司 消除ar/vr画面撕裂的双屏显示方法及ar/vr显示设备
CN111435545B (zh) * 2019-04-16 2020-12-01 北京仁光科技有限公司 标绘处理方法、共享图像标绘方法及标绘再现方法
US11997339B2 (en) * 2020-01-15 2024-05-28 Dolby International Ab Adaptive streaming of media content with bitrate switching

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06113340A (ja) * 1992-09-09 1994-04-22 Fujita Corp 立体視画像の合成表示装置
JPH09139957A (ja) 1995-11-14 1997-05-27 Mitsubishi Electric Corp グラフィック表示装置
JP2000102037A (ja) 1998-09-25 2000-04-07 Canon Inc 撮像装置及び画像生成方法
JP2002073003A (ja) * 2000-08-28 2002-03-12 Namco Ltd 立体視画像生成装置及び情報記憶媒体
JP2004356789A (ja) * 2003-05-28 2004-12-16 Sanyo Electric Co Ltd 立体映像表示装置及びプログラム
JP2006244654A (ja) * 2005-03-04 2006-09-14 Matsushita Electric Ind Co Ltd ディスクプレーヤからの印刷方法
WO2009157159A1 (ja) * 2008-06-24 2009-12-30 パナソニック株式会社 記録媒体、再生装置、集積回路、再生方法、プログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4562463A (en) * 1981-05-15 1985-12-31 Stereographics Corp. Stereoscopic television system with field storage for sequential display of right and left images
US4523226A (en) * 1982-01-27 1985-06-11 Stereographics Corporation Stereoscopic television system
US6111598A (en) * 1993-11-12 2000-08-29 Peveo, Inc. System and method for producing and displaying spectrally-multiplexed images of three-dimensional imagery for use in flicker-free stereoscopic viewing thereof
US5612735A (en) * 1995-05-26 1997-03-18 Luncent Technologies Inc. Digital 3D/stereoscopic video compression technique utilizing two disparity estimates
JPH08331601A (ja) * 1995-06-02 1996-12-13 Sony Corp 立体映像信号生成装置、立体映像信号生成方法、立体映像信号記録媒体、立体映像表示制御装置及び立体映像表示制御方法
DE19806547C2 (de) * 1997-04-30 2001-01-25 Hewlett Packard Co System und Verfahren zur Erzeugung von stereoskopischen Anzeigesignalen von einer Einzelcomputergraphikpipeline
JPH1139507A (ja) * 1997-07-23 1999-02-12 Sanyo Electric Co Ltd 立体画像表示装置
US6188442B1 (en) * 1997-08-01 2001-02-13 International Business Machines Corporation Multiviewer display system for television monitors
JPH11164328A (ja) * 1997-11-27 1999-06-18 Toshiba Corp 立体映像表示装置
US6587112B1 (en) * 2000-07-10 2003-07-01 Hewlett-Packard Development Company, L.P. Window copy-swap using multi-buffer hardware support
US20020154214A1 (en) * 2000-11-02 2002-10-24 Laurent Scallie Virtual reality game system using pseudo 3D display driver
US6831648B2 (en) * 2000-11-27 2004-12-14 Silicon Graphics, Inc. Synchronized image display and buffer swapping in a multiple display environment
US7002618B2 (en) * 2001-06-01 2006-02-21 Stereographics Corporation Plano-stereoscopic DVD movie
US7319720B2 (en) * 2002-01-28 2008-01-15 Microsoft Corporation Stereoscopic video
JP2004274125A (ja) * 2003-03-05 2004-09-30 Sony Corp 画像処理装置および方法
US8531448B2 (en) 2003-05-28 2013-09-10 Sanyo Electric Co., Ltd. Stereoscopic image display apparatus, text data processing apparatus, program, and storing medium
JP2005049668A (ja) * 2003-07-30 2005-02-24 Sharp Corp データ変換装置、表示装置、データ変換方法、プログラム及び記録媒体
CN101814310B (zh) 2004-07-22 2012-11-28 松下电器产业株式会社 重放装置和重放方法
US8004558B2 (en) * 2005-04-07 2011-08-23 Axis Engineering Technologies, Inc. Stereoscopic wide field of view imaging system
US20070091174A1 (en) * 2005-09-30 2007-04-26 Topcon Corporation Projection device for three-dimensional measurement, and three-dimensional measurement system
JP4792127B2 (ja) 2008-07-24 2011-10-12 パナソニック株式会社 立体視再生が可能な再生装置、再生方法、プログラム
US20100128973A1 (en) * 2008-11-25 2010-05-27 Nec System Technologies, Ltd. Stereo image processing apparatus, stereo image processing method and computer-readable recording medium
EP2485497B1 (en) * 2009-10-02 2014-11-05 Panasonic Corporation Playback device that can play stereoscopic video, integrated circuit, playback method and program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06113340A (ja) * 1992-09-09 1994-04-22 Fujita Corp 立体視画像の合成表示装置
JPH09139957A (ja) 1995-11-14 1997-05-27 Mitsubishi Electric Corp グラフィック表示装置
JP2000102037A (ja) 1998-09-25 2000-04-07 Canon Inc 撮像装置及び画像生成方法
JP2002073003A (ja) * 2000-08-28 2002-03-12 Namco Ltd 立体視画像生成装置及び情報記憶媒体
JP2004356789A (ja) * 2003-05-28 2004-12-16 Sanyo Electric Co Ltd 立体映像表示装置及びプログラム
JP2006244654A (ja) * 2005-03-04 2006-09-14 Matsushita Electric Ind Co Ltd ディスクプレーヤからの印刷方法
WO2009157159A1 (ja) * 2008-06-24 2009-12-30 パナソニック株式会社 記録媒体、再生装置、集積回路、再生方法、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2400772A4

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011039990A1 (ja) * 2009-10-02 2011-04-07 パナソニック株式会社 立体視映像を再生することができる再生装置、集積回路、再生方法、プログラム
JP2012257260A (ja) * 2009-10-02 2012-12-27 Panasonic Corp 立体視映像を再生することができる再生装置
US8558871B2 (en) 2009-10-02 2013-10-15 Panasonic Corporation Playback device that can play stereoscopic video, integrated circuit, playback method and program
JPWO2012123982A1 (ja) * 2011-03-11 2014-07-17 日立コンシューマエレクトロニクス株式会社 記録装置/方法/媒体、再生装置/方法
WO2012157585A1 (ja) * 2011-05-19 2012-11-22 株式会社東芝 医用画像診断装置及び画像処理装置
JP2012254288A (ja) * 2011-05-19 2012-12-27 Toshiba Corp 医用画像診断装置及び画像処理装置
CN102893306A (zh) * 2011-05-19 2013-01-23 株式会社东芝 医用图像诊断装置及图像处理装置
US9282324B2 (en) 2011-05-19 2016-03-08 Kabushiki Kaisha Toshiba Medical image diagnosis apparatus and image processing apparatus
WO2015064169A1 (ja) * 2013-10-28 2015-05-07 ソニー株式会社 画像処理装置、画像処理方法およびプログラム
JPWO2015064169A1 (ja) * 2013-10-28 2017-03-09 ソニーセミコンダクタソリューションズ株式会社 画像処理装置、画像処理方法およびプログラム
US10810916B2 (en) 2013-10-28 2020-10-20 Sony Semiconductor Solutions Corporation Image processing apparatus and image processing method
JP2018147536A (ja) * 2017-03-07 2018-09-20 三菱電機株式会社 コンテンツ再生装置およびコンテンツ再生プログラム

Also Published As

Publication number Publication date
US20130188028A1 (en) 2013-07-25
US8351758B2 (en) 2013-01-08
CN102308589B (zh) 2014-07-30
EP2400772A4 (en) 2013-06-12
US20100226628A1 (en) 2010-09-09
JP5480948B2 (ja) 2014-04-23
JPWO2010095403A1 (ja) 2012-08-23
JP5155441B2 (ja) 2013-03-06
JP2013059036A (ja) 2013-03-28
EP2400772B1 (en) 2016-04-13
EP2400772A1 (en) 2011-12-28
CN102308589A (zh) 2012-01-04

Similar Documents

Publication Publication Date Title
JP5480948B2 (ja) 再生装置、再生方法、プログラム
JP4772163B2 (ja) 立体視再生を行う再生装置、再生方法、プログラム
JP5457513B2 (ja) 立体視映像を再生することができる再生装置
JP5395117B2 (ja) 立体視再生が可能な再生装置、再生方法、プログラム
JP5469125B2 (ja) 記録媒体、再生装置、再生方法、プログラム
WO2010032403A1 (ja) 映像コンテンツを立体視再生する再生装置、再生方法、および再生プログラム
US20100303437A1 (en) Recording medium, playback device, integrated circuit, playback method, and program

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080006819.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10743533

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2834/KOLNP/2011

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2011500496

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2010743533

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE