WO2017026230A1 - 情報処理装置、および情報処理方法、並びにプログラム - Google Patents
情報処理装置、および情報処理方法、並びにプログラム Download PDFInfo
- Publication number
- WO2017026230A1 WO2017026230A1 PCT/JP2016/071112 JP2016071112W WO2017026230A1 WO 2017026230 A1 WO2017026230 A1 WO 2017026230A1 JP 2016071112 W JP2016071112 W JP 2016071112W WO 2017026230 A1 WO2017026230 A1 WO 2017026230A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- buffer
- unit
- display
- information processing
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims description 86
- 238000003672 processing method Methods 0.000 title claims description 11
- 238000000034 method Methods 0.000 claims abstract description 215
- 239000000872 buffer Substances 0.000 claims abstract description 213
- 230000008569 process Effects 0.000 claims abstract description 181
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000006243 chemical reaction Methods 0.000 claims description 181
- 239000012536 storage buffer Substances 0.000 claims description 9
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 238000009877 rendering Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000002730 additional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/399—Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/02—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/02—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
- G09G5/04—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using circuits for interfacing with colour displays
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/10—Intensity circuits
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/37—Details of the operation on graphic patterns
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/391—Resolution modifying circuits, e.g. variable screen formats
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
- G09G5/397—Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G2340/0428—Gradation resolution change
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/06—Colour space transformation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/04—Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
- H04N9/67—Circuits for processing colour signals for matrixing
Definitions
- the present disclosure relates to an information processing apparatus, an information processing method, and a program. More specifically, the present invention relates to an information processing apparatus, an information processing method, and a program for performing image drawing processing and further performing image conversion on a drawn image.
- a UHD compatible display device that can display a UHD image and a conventional display device are mixed.
- a conventional display device for example, when image data is read from a BD (Blu-ray (registered trademark) Disc) and displayed on a display unit, either a conventional display device or a UHD compatible display device is used.
- the display device is also required to be able to display an image corresponding to each display function.
- an SDR Standard Dynamic Range
- an image such as resolution conversion, dynamic range conversion, or color space conversion, if necessary. It is necessary to adopt a configuration in which conversion is performed and displayed on a UHD compatible display device.
- Patent Document 1 Japanese Patent No. 4962744
- this disclosed document merely discloses a control configuration of processing timing for ensuring the consistency between the image for the left eye and the right eye constituting the 3D image.
- the present disclosure has been made in view of, for example, the above-described problems.
- image conversion such as resolution conversion, dynamic range conversion, or color space conversion
- rendering processing is performed. It is an object of the present invention to provide an information processing apparatus, an information processing method, and a program that execute an image conversion and output a display image after detecting the completion timing.
- the first aspect of the present disclosure is: An application execution unit that executes drawing processing and stores a drawing result in a storage unit; A display image generation unit that performs an image conversion process on the drawing image of the storage unit and generates a display image to be output to the display unit; A buffer management unit that executes switching processing of a plurality of buffers set in the storage unit; The application execution unit After completion of the drawing process by the drawing command, a calling process of a drawing completion notification API (Application Programming Interface) is executed, The buffer management unit In response to the call of the drawing completion notification API, a buffer switching process for switching a drawing image storage buffer by the application execution unit is executed. The display image generation unit The information processing apparatus executes an image conversion process on an image stored in a buffer different from the buffer in which the drawing process is being executed by the application execution unit.
- a drawing completion notification API Application Programming Interface
- the second aspect of the present disclosure is: An information processing method executed in an information processing apparatus,
- the information processing apparatus includes: An application execution unit that executes drawing processing and stores a drawing result in a storage unit; A display image generation unit that performs an image conversion process on the drawing image of the storage unit and generates a display image to be output to the display unit; A buffer management unit that executes switching processing of a plurality of buffers set in the storage unit;
- the application execution unit After completion of the drawing process by the drawing command, a calling process of a drawing completion notification API (Application Programming Interface) is executed,
- the buffer management unit In response to the call of the drawing completion notification API, a buffer switching process for switching a drawing image storage buffer by the application execution unit is executed.
- the display image generation unit The present invention is an information processing method for executing an image conversion process on an image stored in a buffer different from a buffer in which a drawing process is being executed by the application execution unit.
- the third aspect of the present disclosure is: A program for executing information processing in an information processing apparatus;
- the information processing apparatus includes: An application execution unit that executes drawing processing and stores a drawing result in a storage unit;
- a display image generation unit that performs an image conversion process on the drawing image of the storage unit and generates a display image to be output to the display unit;
- a buffer management unit that executes switching processing of a plurality of buffers set in the storage unit;
- the program is In the application execution unit, After the drawing process by the drawing command is completed, a calling process of a drawing completion notification API (Application Programming Interface) is executed, In the buffer manager, In response to the call of the drawing completion notification API, the application execution unit executes a buffer switching process for switching a drawing image storage buffer, In the display image generation unit, A program for executing an image conversion process on an image stored in a buffer different from a buffer that is executing a drawing process by the application execution unit.
- a drawing completion notification API Application Programming Interface
- the program of the present disclosure is a program that can be provided by, for example, a storage medium or a communication medium provided in a computer-readable format to an information processing apparatus or a computer system that can execute various program codes.
- a program in a computer-readable format, processing corresponding to the program is realized on the information processing apparatus or the computer system.
- system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.
- an application execution unit that executes drawing processing and stores drawing results in a storage unit
- a display image generation unit that executes conversion processing on a drawing image in the storage unit
- switching of a plurality of buffers in the storage unit are executed.
- a buffer management unit The application execution unit calls a drawing completion notification API (Application Programming Interface) after completion of the drawing processing by the drawing command, and the buffer management unit executes buffer switching processing according to the call of the drawing completion notification API.
- drawing completion notification API Application Programming Interface
- the display image generation unit performs image conversion on a stored image in a buffer different from the buffer being drawn by the application execution unit.
- FIG. 3 is a diagram illustrating an example of a reproduction process of data read from a recording medium 10.
- FIG. It is a partial structure of the information processing apparatus 20, and is a figure which shows the structural example for outputting an image.
- 6 is a diagram illustrating a specific example of image conversion processing executed by a data processing unit 30.
- FIG. 6 is a diagram illustrating a specific example of image conversion processing executed by a data processing unit 30.
- FIG. 1 is a diagram illustrating a configuration and processing of an information processing apparatus according to a first embodiment.
- FIG. 3 is a diagram illustrating a flowchart for describing processing executed by the information processing apparatus according to the first embodiment.
- FIG. 10 is a diagram illustrating a configuration and processing of an information processing apparatus according to a second embodiment.
- FIG. 10 is a diagram illustrating a flowchart for describing processing executed by the information processing apparatus according to the second embodiment. It is a figure which shows the hardware structural example of information processing apparatus.
- a management structure (hereinafter also referred to as a BDMV format) of content recorded on a BD-ROM, which is a read-only BD, that is, AV (Audio / Video) data, will be described.
- a bit stream encoded by an encoding method such as MPEG (Moving Picture Experts Group) video or MPEG audio and multiplexed according to the MPEG2 system is called a clip AV stream (or AV stream).
- a clip AV stream is recorded on a BD as a file by a file system defined by “Blu-ray (registered trademark) Disc Read-Only Format part 2”, which is one of the standards related to BD. It is called a clip AV stream file (or AV stream file).
- the clip AV stream file is a management unit on the file system, and information necessary for reproducing the clip AV stream file (the clip AV stream) is recorded on the BD as a database.
- This database is defined in “Blu-ray (registered trademark) Disc Read-Only Format part 3” which is one of the BD standards.
- FIG. 1 is a diagram for explaining the outline of the BDMV format.
- the BDMV format is composed of four layers.
- the lowest layer is a layer to which the clip AV stream belongs, and is hereinafter also referred to as a clip layer as appropriate.
- the layer immediately above the clip layer is a layer to which a play list (Movie PlayList) belongs for designating a playback position for the clip AV stream, and is also referred to as a play list layer hereinafter.
- a play list Movie PlayList
- the layer immediately above the playlist layer is a layer to which a movie object (Movie Object) or the like including a command for designating a reproduction order for the playlist belongs, and is also referred to as an object layer hereinafter.
- a movie object Movie Object
- object layer hereinafter.
- the layer above the object layer is a layer to which an index table for managing titles stored in the BD belongs, and is hereinafter also referred to as an index layer.
- a clip AV stream, clip information (Clip Information), and the like belong to the clip layer.
- the clip AV stream is a stream in which video data, audio data, and the like as content data are in the form of TS (MPEG2 TS (Transport Stream)).
- Clip information is information related to the clip AV stream, and is recorded on the BD as a file.
- the clip AV stream includes graphics streams such as subtitles and menus as necessary.
- the subtitle (graphics) stream is called a presentation graphics (PG (Presentation Graphics)) stream
- the menu (graphics) stream is called an interactive graphics (IG (Interactive Graphics)) stream.
- PG Presentation Graphics
- IG Interactive Graphics
- a set of a clip AV stream file and a file (clip information file) of corresponding clip information (clip information related to the clip AV stream of the clip AV stream file) is called a clip.
- a clip is one object composed of a clip AV stream and clip information.
- a plurality of positions including the first and last positions (time) when the content corresponding to the clip AV stream constituting the clip is expanded on the time axis are set as access points.
- the access point is mainly specified by a time-stamp and a higher layer playlist (PlayList).
- the clip information constituting the clip includes the address (logical address) of the position of the clip AV stream represented by the access point designated by the play list with the time stamp.
- a playlist belongs to the playlist layer.
- the playlist is composed of a play item (PlayItem) including an AV stream file to be played back, a playback start point (IN point) for specifying a playback position of the AV stream file, and a playback end point (OUT point).
- the Therefore, the playlist is composed of a set of play items.
- the reproduction of the play item means reproduction of a section of the clip AV stream specified by the IN point and the OUT point included in the play item.
- Movie objects (Movie Objects) and BD-J objects (Blu-ray (registered trademark) Disc Java (registered trademark) Objects) belong to the object layer.
- the movie object includes terminal information that links the HDMV (High Definition Movie) navigation command program (navigation command) and the movie object.
- HDMV High Definition Movie
- the navigation command is a command for controlling playback of the playlist.
- the terminal information includes information for permitting a user's interactive operation on a BD player that reproduces a BD.
- user operations such as menu call and title search are controlled based on terminal information.
- the BD-J object is a Java (registered trademark) program, and can provide a user with a more advanced (sophisticated) interactive function than a navigation command.
- An index table belongs to the index layer.
- the index table is a top level table that defines the title of the BD-ROM disc.
- An entry (column) in the index table corresponds to a title, and each entry is linked to an object (movie object, BD-J object) of a title (HDMV title, BD-J title) corresponding to the entry. .
- FIG. 2 is a diagram for explaining a file management structure of the recording medium (BD) 10.
- BD files are managed hierarchically by a directory structure.
- the directory of the highest hierarchy of the BD is a root directory.
- a directory “BDMV” exists immediately under the root directory.
- the directory “BDMV” stores files in the BDMV format described with reference to FIG.
- the file “index.bdmv” includes the index table described with reference to FIG. 1 as information regarding a menu for playing back a BD.
- the BD player for example, displays an initial menu (screen) including items such as playing all the contents of the BD, playing only a specific chapter, repeatedly playing, displaying a predetermined menu, etc. "index.bdmv”.
- a movie object (Movie Object) to be executed when each item is selected can be set.
- the BD The player executes the Movie Object command set in the file “index.bdmv”.
- the file “MovieObject.bdmv” is a file including information on Movie Object.
- Movie Object includes a command for controlling playback of the PlayList recorded on the BD.
- the BD player records on the BD by selecting and executing one of the Movie Objects recorded on the BD. Play the content (title) that has been played.
- a playlist database is stored in the directory “PLAYLIST”.
- the file “xxxxxxxx.mpls” of the playlist is stored in the directory “PLAYLIST”.
- the file name of the file “xxxxxxxx.mpls” a file name including a 5-digit number “xxxx” and an extension “mpls” is used.
- the directory “CLIPINF” stores a database of clips. That is, the directory CLIPINF ”stores the clip information file“ xxxx.clpi ”for each of the clip AV stream files. As the file name of the clip information file “xxxx.clpi”, a file name including a five-digit number “xxxx” and an extension “clpi” is used.
- a clip AV stream file “xxxx.m2ts” is stored in the directory “STREAM”.
- the clip AV stream file “xxxx.m2ts” stores TS.
- the directory “AUXDATA” stores a sound file, a font file, a font index file, a bitmap file, and the like used for displaying a menu.
- the directory “META” stores metadata files.
- the directory “BDJO” and the directory “JAR” store files of BD-J objects.
- a file such as a BD-J application that stores JAVA (registered trademark) programs, commands, and the like.
- the directory “BACKUP” stores a backup of the file recorded on the BD.
- FIG. 3 is a diagram showing an example of a reproduction process of data read from the recording medium 10 having the recording data described with reference to FIGS.
- the recording medium 10 is mounted on the information processing apparatus 20 such as the PC 21, the playback apparatus 22, the TV 23, and is played back.
- the information processing device 20 such as the PC 21, the playback device 22, and the TV 23 is provided with a BD drive and has a configuration capable of reading data from the BD.
- the information processing apparatus 20 acquires content read from the recording medium 10, specifically, image and audio data stored in a clip AV stream file, and performs content playback processing according to a playback control information file such as a playlist file. Execute. As shown in FIG. 3, the image included in the reproduction data is displayed and output on a display unit (display) such as a device having a display unit, such as a PC or a TV.
- the information processing apparatus 20 includes a data processing unit including a CPU or the like having a program data execution function.
- the data processing unit executes a Java (registered trademark) virtual machine on the Java (registered trademark) virtual machine. Then, the BD-J application is executed.
- FIG. 4 is a diagram illustrating an example of a configuration for outputting an image, which is a partial configuration of the information processing apparatus 20.
- the data processing unit 30 of the information processing apparatus 20 executes the BD-J application, sequentially draws and stores each image frame in the storage unit 40.
- the storage unit 30 that stores image data is also called a graphics plane. Various image conversions can be performed on the image data stored in the graphics plane.
- the storage unit (graphics plane) 40 is configured by a RAM in terms of hardware.
- the data processing unit 30 further executes an image conversion process on the image stored in the storage unit 40.
- the image conversion is, for example, an image conversion process corresponding to the display function of the display unit 50, and specifically, for example, a conversion process in which any one or a combination of the following is combined.
- a. Resolution conversion processing b. Dynamic range conversion processing c. Color space conversion processing
- the data processing unit 30 executes at least one of the image conversion processes a to c according to the display function of the display unit 50, for example.
- the resolution conversion is, for example, conversion processing from a 2K image (1920 ⁇ 1080 pixels) to a 4K image (3840 ⁇ 2160 pixels).
- the dynamic range conversion process is, for example, a conversion process from an SDR (Standard Dynamic Range) image to an HDR (High Dynamic Range) image.
- the color space conversion process is, for example, BT. From the 709 color space, BT. For example, conversion to 2020 color space. BT. The 2020 color space is BT. The color range that can be expressed is wider than that of the 709 color space, and natural color expression almost comparable to the color space observed with the naked eye is possible.
- the data processing unit 30 performs an image conversion process according to the specifications of the display unit 50 on the image stored in the storage unit 40.
- the data processing unit 30 outputs the image data subjected to the image conversion to the display unit 50.
- the image displayed on the display unit 50 is an image converted by a predetermined image conversion process.
- the display unit 50 outputs a UHD (Ultra High Definition) image with a high resolution, a wide dynamic range, and a wide output color space. If possible, a UHD image is displayed.
- UHD Ultra High Definition
- FIG. 5 is a diagram illustrating a functional configuration for executing processing relating to an image in the data processing unit 30.
- the data processing unit 30 executes processing using the following functions shown in FIG. (A) BD-J application 31 (B) Image conversion processing API (Application Programming Interface) 33 (C) Presentation engine 34 (D) Image decoder 35 (E) Display control unit (Display processor) 36
- Display control unit (Display processor) 36 These configurations are distinguished from the BD-J application 31 and are referred to as a display image generation unit 32.
- the display image generation unit 32 executes conversion processing and display control on the image drawn by the BD-J application 31 on the storage unit (graphics plane) 40.
- the BD-J application 31 executes image drawing processing on the storage unit (graphics plane) 40.
- the image conversion processing API 33 includes a. Resolution conversion processing; b. Dynamic range conversion processing, c. A color space conversion process and an image conversion process to which an API for executing the image conversion process is applied are executed. For example, when executing the resolution conversion process, the BD-J application 31 calls the resolution conversion API and requests a change (setting) of the resolution or the like.
- the resolution setting API changes the resolution by directly or indirectly controlling a necessary one of the presentation engine, the image decoder, and the display control unit in response to a request from the BD-J application. . Even when dynamic range conversion processing or color space conversion processing is performed, processing is performed using an API that performs each conversion processing.
- the presentation engine controls the playback of the BD by using a decoding function and a presentation function (Presentation functions) of audio, video, and HDMV graphics, and a playback control engine (Playback) (not shown).
- a decoding function and a presentation function Presentation functions
- Playback playback control engine
- a video decoder decodes an image. Further, the display control unit (Display processor) outputs an image or a converted image stored in the storage unit (graphics plane) 40 to the display unit 50.
- the display control unit Display processor
- FIG. 6 is an example of image conversion when the dynamic range conversion process (conversion from an SDR image to an HDR image) is not performed.
- the graphics source 51 is an image drawn in the storage unit 30 by the BD-J application.
- the graphics source 51 is It is an image of 1920 ⁇ 1080 pixels, and is an SDR image in which RGB is represented by 8 bits for each pixel unit.
- step S21 the data processing unit 30 performs color space conversion to generate either the image 52, the image 53, or the image 54 illustrated in FIG.
- the image 52 is an image of 1920 ⁇ 1080 pixels, and the color space BT. This is an SDR image having color information corresponding to 709 and 8-bit representation for each pixel.
- the image 53 is an image of 1920 ⁇ 1080 pixels, and the color space BT. This is an SDR image having color information corresponding to 709 and 10-bit representation for each pixel.
- the image 54 is an image of 1920 ⁇ 1080 pixels, and the color space BT. This is an SDR image having 2020-compliant color information and 10-bit representation for each pixel.
- the data processing unit 30 performs color space conversion in step S21 to generate either the image 52, the image 53, or the image 54 shown in FIG.
- step S22 shown in FIG. 6 is a resolution conversion process for the image 53 described above.
- the data processing unit 30 performs resolution conversion on the image 53.
- the image 53 is an image of 1920 ⁇ 1080 pixels, and the color space BT. This is an SDR image having color information corresponding to 709 and 10-bit representation for each pixel.
- the data processing unit 30 performs resolution conversion on the image 53 to generate an image 55.
- the image 55 is an image of 3840 ⁇ 2160 pixels, and the color space BT. This is an SDR image having color information corresponding to 709 and 10-bit representation for each pixel.
- the data processing unit 30 executes resolution conversion for the image 54.
- the image 54 is an image of 1920 ⁇ 1080 pixels, and the color space BT. This is an SDR image having 2020-compliant color information and 10-bit representation for each pixel.
- the data processing unit 30 performs resolution conversion on the image 54 and generates an image 56.
- the image 56 is an image of 3840 ⁇ 2160 pixels, and the color space BT. This is an SDR image having 2020-compliant color information and 10-bit representation for each pixel.
- FIG. 6 shows three conversion processing examples as image conversion processing examples executed by the data processing unit 30.
- A Conversion processing example in which only the color space conversion in step S21 is performed on the graphics source 51 drawn by the BD-J application to generate the output image 52.
- B Drawing by the BD-J application Example of Conversion Process for Generating Output Image 55 by Performing Color Space Conversion at Step S21 and Resolution Conversion at Step S22 for Graphics Source 51
- C Graphics Source 51 Rendered by BD-J Application An example of conversion processing for generating the output image 56 by executing the color space conversion in step S21 and the resolution conversion in step S23
- the data processing unit 30 executes any of these conversion processes according to, for example, the image modes that can be output by the display unit 50.
- FIG. 7 shown next is an example of image conversion when the dynamic range conversion process (conversion from an SDR image to an HDR image) is performed.
- the graphics source 51 is an image drawn in the storage unit 40 by the BD-J application.
- the graphics source 51 is the same as described with reference to FIG. It is an image of 1920 ⁇ 1080 pixels, and is an SDR image in which RGB is represented by 8 bits for each pixel unit.
- step S31 the data processing unit 30 performs color space conversion to generate an image 72 shown in FIG.
- the image 72 is an image of 1920 ⁇ 1080 pixels, and the color space BT. This is an SDR image having 2020-compliant color information and 10-bit representation for each pixel.
- the data processing unit 30 thus performs color space conversion in step S31 to generate the image 72 shown in FIG.
- the process in step S32 shown in FIG. 7 is a dynamic range conversion process for the image 72 described above.
- the data processing unit 30 executes dynamic range conversion processing for the image 72.
- the image 72 is an image of 1920 ⁇ 1080 pixels, and the color space BT. This is an SDR image having 2020-compliant color information and 10-bit representation for each pixel.
- the data processing unit 30 executes a dynamic range conversion process on the image 72 to generate an image 73.
- the image 73 is an image of 1920 ⁇ 1080 pixels, and the color space BT. This is an HDR image having 2020-compliant color information and 10-bit representation for each pixel.
- step S33 shown in FIG. 7 is a resolution conversion process for the image 73 described above.
- the data processing unit 30 performs resolution conversion on the image 73.
- the image 73 is an image of 1920 ⁇ 1080 pixels, and the color space BT. This is an HDR image having 2020-compliant color information and 10-bit representation for each pixel.
- the data processing unit 30 performs resolution conversion on the image 73 to generate an image 74.
- the image 74 is an image of 3840 ⁇ 2160 pixels, and the color space BT. This is an HDR image having 2020-compliant color information and 10-bit representation for each pixel.
- FIG. 7 shows the following one conversion processing example as an image conversion processing example executed by the data processing unit 30.
- D Generate the output image 74 by executing the color space conversion in step S31, the dynamic range conversion process in step S32, and the resolution conversion in step S33 on the graphics source 71 drawn by the BD-J application.
- Example of Conversion Processing to be Performed The data processing unit 30 executes the above-described conversion processing according to, for example, an image mode that can be output by the display unit 50.
- the data processing unit 30 executes the conversion process of the image drawn in the storage unit by executing the BD-J application, and generates an image to be output to the display unit 50.
- the data processing unit 30 draws an image in the storage unit (graphics plane) 40 by executing the BD-J application 31 shown in FIG.
- the storage unit (graphics plane) 40 is also a storage area used for performing various image conversions on a drawn image (BD-J graphics) by execution of the BD-J application 31. That is, A storage area that has a function of enlarging the resolution of an image, It is a storage area that supports dynamic range conversion of images, In addition, it has a function of converting a plurality of color spaces.
- the color space conversion is, for example, BT. 709 compliant data to BT. This is a process of converting to 2020 compliant data.
- the BD-J application 31 performs a process to which one of the following two methods is applied.
- Drawing technique 1 Direct drawing (Direct drawing)
- the BD-J application 31 issues a drawing command and executes a drawing process.
- Java registered trademark
- "DrawLine () method” The method like this is provided, and drawing (drawing) by an application is possible.
- the BD-J application 31 executes the drawing process using any of the above drawing processes. For example, even in a conventional device (legacy device) capable of reproducing only an SDR image, the BD-J application can perform drawing using only the SDR graphics source in order to enable the reproduction processing of the SDR image. It is preferable that only a playback device capable of playing back an HDR image converts the drawn image into an HDR image. A problem that occurs when image conversion is performed by a playback device will be described.
- screen tearing will be described as a problem.
- BD-J graphics screen tearing is performed because the graphics command is executed by a processor such as a CPU and rendered, and the monitor that reads and displays the completed graphics plane operates asynchronously. There is a problem that occurs.
- Screen tearing is a phenomenon in which a plurality of image frames are displayed overlapping each other on the display unit.
- the screen tearing occurs when the process of generating a display image cannot keep up with the frame display speed.
- the display timing of the frame (fn) the generation of the display image of a part of the frame (fn) is not in time, and the previous display frame (fn ⁇ 1) is displayed on a part of the screen. It is a phenomenon that ends up.
- screen tearing itself appears to be a malfunction and should be avoided.
- a double buffering method or a triple buffering method in which a plurality of drawn images are created in advance and stored in a plurality of buffers may be used.
- screen tearing if double buffering or triple buffering is introduced, the occurrence of screen tearing can be avoided.
- the BD-J application when the BD-J application generates a drawing image (BD-J graphics), for example, when drawing one frame image, the BD-J application executes drawing processing by sequentially executing a plurality of drawing commands. .
- a display control unit or the like that displays an image cannot know the inseparable rendering command (interval between frames) in the rendering processing of each frame image. That is, there is no way for the graphics system such as the display control unit to know whether or not the drawing on the graphics plane by the BD-J application is “completed”, which is a problem.
- the display image generation unit 32 shown in FIG. 5 can know whether or not the drawing process for the storage unit (graphics plane) 40 by the BD-J application 31 shown in FIG. 5 is “completed”. It is to be configured. If the display image generating unit 32 can know the timing of completion of drawing by the BD-J application 31, the display image generating unit 32 can perform a process of executing conversion and displaying and outputting from that point.
- the above-mentioned problem can be avoided in drawing a bitmap image by specifying the number of pixels that can be drawn by the application per second.
- the BD-J application 31 executes drawing using a plurality of commands, and in order to control this command application type drawing, it is difficult to quantitatively control the drawing amount similar to bitmap drawing. .
- the BD-J application 31 performs processing to which one of the following two methods is applied in the rendering processing on the storage unit (graphics plane) 40.
- (Drawing technique 1) Direct drawing (Direct drawing)
- the BD-J application 31 itself issues a drawing command and executes a drawing process.
- (Drawing method 2) Repaint A drawing process using a widget provided by the system (a widget common to a plurality of applications called an AWT (Abstract Winding toolkit) component) is executed.
- AWT Abstract Winding toolkit
- the BD-J application 31 performs processing to which one of these two methods is applied.
- a drawing process using a widget provided by the system a widget common to a plurality of applications called AWT (Abstract Windowing toolkit components)
- AWT Abstract Windowing toolkit components
- the repaint () method of the root container calls the update () method of each component, and drawing processing by the called method is performed. Therefore, the display image generation unit 32 shown in FIG. 5 can control the output timing of the display image by waiting for the display output until the execution of the update () method is completed.
- the BD-J application 31 when the BD-J application 31 performs the drawing process by executing the above (Drawing technique 1) direct drawing (Direct drawing), the BD-J application 31 itself issues a drawing command to perform the drawing process. Execute. In this case, the display image generation unit 32 shown in FIG. 5 has no way of knowing whether or not the issuance of the drawing command by the BD-J application 31 has been completed.
- the BD-J application 31 sequentially executes a plurality of drawing commands in one image frame drawing process. That is, when the BD-J application 31 issues drawing commands # 1, # 2,..., #N and image drawing is performed according to the drawing commands # 1 to #N, the BD-J application 31 The display image generation unit 32 cannot recognize whether or not a drawing command is issued from the application 31, that is, whether or not the issuing of the drawing command by the BD-J application is completed.
- FIG. 9 is a diagram illustrating a setting example and execution mode of a drawing command for each image frame.
- the horizontal axes a and b correspond to a drawing command queue storage area corresponding to one image frame.
- the vertical axis indicates image frames (frame numbers 20 to 24) that are sequentially displayed as time passes from the bottom.
- the image frame with the image frame number 20 is in a stage where drawing by all the drawing commands is completed and the display process is accompanied by the decoding process and the conversion process.
- drawing commands to be executed that are necessary for drawing each image frame are shown.
- the number of drawing commands required for each image frame and the time required for command execution differ.
- the image frame 22 needs to execute a drawing command that exceeds the command queue for each frame. This excess portion is set in the queue for the next frame (image frame 23). If such a setting is made, execution completion of the drawing command will be delayed. On the other hand, since the display period of each image frame is constant, if the execution period of the drawing command extends over the drawing process periods of a plurality of image frames, the image being drawn is sent to the display as it is.
- a drawing completion notification API call command that notifies the BD-J application 31 that performs image drawing by a drawing command as one of the drawing commands that the drawing processing by one certain drawing command is ended.
- the BD-J application 31 calls a drawing completion notification API call command when a drawing process by a certain drawing command is completed, for example, when a drawing process by a series of drawing commands for drawing one image frame is completed. Execute.
- the display image generation unit 32 can detect the completion of the drawing process by one drawing command by detecting the execution of the calling command of the drawing completion notification API.
- the display image generation unit 32 detects that the drawing completion notification API calling process by the BD-J application 31 has been executed, and recognizes the drawing completion timing by the drawing command for the storage unit (graphics plane) 40. it can.
- the drawing completion notification API for example, "Java.awt.Toolkit # sync () method” can be adopted.
- the display image generation unit 32 outputs the image drawn in the storage unit (graphics plane) 40 as long as the drawing completion notification API, that is, the “java.awt.Toolkit # sync () method” is not called. Not performed.
- a drawing completion notification API that is, a “java.awt.Toolkit # sync () method”
- a drawing completion notification API that is, a “java.awt.Toolkit # sync () method”
- a drawing completion notification API that is, a “java.awt.Toolkit # sync () method”
- a drawing completion notification API that is, a “java.awt.Toolkit # sync () method”
- a drawing completion notification API that is issued with a command with a small drawing amount is issued, that is, “java.
- the continuous execution of the call of “awt.Toolkit # sync () method” is prohibited.
- the above command setting example is a setting for executing the drawing command # 1 to the drawing command #N atomically, that is, continuously. During this time, the progress is not output to the end user.
- the BD-J application is configured to execute a drawing completion notification API, that is, a calling process of “java.awt.Toolkit # sync () method” upon completion of a drawing command sequence corresponding to one image frame
- the display image generation unit can know the completion of the drawing process in units of image frames, and can thereafter perform image conversion on the image frames.
- a storage unit (graphics plane) 40 for storing drawing target data by the BD-J application 31 is provided.
- a double buffer or triple buffer may be used. The following two embodiments will be described sequentially.
- Example 1 Regarding an embodiment in which a configuration in which a storage unit (graphics plane) is a double buffer is applied.
- FIG. 10 is a diagram illustrating the configuration and processing of the information processing apparatus 100 according to the first embodiment. Note that FIG. 10 shows only components used for image processing.
- the information processing apparatus 100 includes a data processing unit 200, a storage unit (graphics plane) 220, and a display unit 250. Note that the display unit 250 is not an essential configuration of the information processing apparatus 100, and may be configured to use a display device connected via an output unit (not shown).
- the data processing unit 200 BD-J application execution unit 210, Display image generator 230, Buffer manager 240, Have
- the BD-J application execution unit 210 corresponds to the BD-J application 31 in the configuration described above with reference to FIG.
- the display image generation unit 230 corresponds to the display image generation unit 32 having the configuration described above with reference to FIG. 5 and performs processing executed by the image conversion processing API 33, the presentation engine 34, the image decoder 35, and the display control unit 36. Execute.
- the buffer management unit 240 executes switching processing between the back buffer 221 and the front buffer 222 in the storage unit (graphics plane) 220.
- the display image generation unit 230 a Resolution conversion processing b. Dynamic range conversion processing c. Color space conversion process At least one of the image conversion processes a to c is executed. That is, the display image generation unit 230 determines an image conversion mode according to the display function of the display unit 250 that outputs an image, and executes at least one of the image conversion processes a to c.
- the storage unit (graphics plane) 220 is Back buffer 221, Front buffer 222, It has a double buffer configuration having these two buffers.
- Processing is executed in the order of processing steps S101 to S106 shown in FIG.
- the flowchart shown in FIG. 11 shows the processing steps S101 to S106 shown in FIG. 10 as a flow.
- the data processing unit shown in FIG. 10 has a CPU having a program execution function, reads a program stored in a memory (not shown), and executes processing according to the flow shown in FIG.
- a CPU having a program execution function
- reads a program stored in a memory not shown
- details of each processing of steps S101 to S106 shown in FIGS. 10 and 11 will be sequentially described.
- Step S101 the BD-J application execution unit 210 of the data processing unit 200 of the information processing apparatus 100 executes a drawing command defined in the BD-J application.
- Step S102 the BD-J application execution unit 210 stores the image as the execution result of the drawing command defined in the BD-J application in the back buffer 221 of the storage unit 220.
- Step S103 the display image generation unit 230 of the data processing unit of the information processing apparatus 100 is stored in the front buffer 222 in parallel with the execution of the drawing command executed in steps S101 to S102 and the back buffer storage processing of the execution result.
- the image conversion process (at least one of resolution, dynamic range, and color conversion) is executed, and the converted image is output to the display unit 250.
- Step S104 the display image generation unit 230 determines whether or not a drawing completion API is called from the BD-J application execution unit 210 in step S104. It is determined whether or not the drawing completion notification API, that is, “java.awt.Toolkit # sync () method” is called from the BD-J application execution unit 210.
- step S101 to S103 are repeated. If there is an API call, the processing from step S105 is executed.
- Step S105 When it is confirmed that the drawing completion notification API from the BD-J application execution unit 210, that is, the “java.awt.Toolkit # sync () method” has been called, the buffer of the data processing unit 200 of the information processing apparatus 100
- the management unit 240 performs a switching process between the back buffer 221 and the front buffer 222 of the storage unit 220. That is, the back buffer 221 is set as a front buffer, and the front buffer 222 is set as a back buffer.
- Step S106 the buffer management unit 240 of the data processing unit 200 copies the stored image in the front buffer (back buffer before switching) to the back buffer (front buffer before switching). Note that the drawing process for the back buffer is stopped during the copy process period.
- the drawing commands # 1 to #N are executed for the back buffer 221. afterwards, When the display image generation unit 230 detects the issuance of the drawing completion notification API (java.awt.Toolkit # sync ()), The buffer management unit 240 switches between the back buffer 221 and the front buffer 222, and further draws the drawing data stored in the front buffer (the back buffer 221 before switching) into the back buffer (the front buffer 222 before switching). To copy. At this time, the back buffer after the buffer switching (the front buffer 222 before the switching) is in a state where the drawing results by the drawing commands # 1 to #N are stored.
- the drawing completion notification API java.awt.Toolkit # sync ()
- the BD-J application executes drawing commands # N + 1 to # N + M, and the execution results of the drawing commands # N + 1 to # N + M are stored in the back buffer after switching the buffer (the front buffer 222 before switching).
- drawing completion notification API java.awt.Toolkit # sync ()
- drawing of one buffer storing drawing results before API issuance (execution results of drawing commands # 1 to #N)
- execution results of drawing commands # 1 to #N The data is copied to the other buffer, and then the subsequent drawing commands (drawing commands # N + 1 to # N + M) are executed by the BD-J application on the copied drawing data. Command execution is possible.
- the buffer that stores the execution results of the drawing commands (drawing commands # N + 1 to # N + M) is switched to the front buffer by issuing the drawing completion notification API (java.awt.Toolkit # sync ()).
- An image conversion process and an image output process are executed for the image stored in the buffer.
- FIG. 12 is a diagram illustrating a configuration example of the information processing apparatus 300 according to the second embodiment.
- FIG. 12 shows only the components used for image processing.
- the information processing apparatus 300 includes a data processing unit 400, a storage unit (graphics plane) 420, and a display unit 450.
- the display unit 450 is not an essential configuration of the information processing apparatus 300, and may be configured to use a display device connected via an output unit (not shown).
- the data processing unit 400 BD-J application execution unit 410, Display image generation unit 430, Buffer manager 440, Have
- the BD-J application execution unit 410 corresponds to the BD-J application 31 in the configuration described above with reference to FIG.
- the display image generation unit 430 corresponds to the display image generation unit 32 having the configuration described above with reference to FIG. 5 and performs processing executed by the image conversion processing API 33, the presentation engine 34, the image decoder 35, and the display control unit 36.
- the buffer management unit 440 executes a switching process between the front buffers 1 and 422-1 and the front buffers 2 and 422-2 in the storage unit (graphics plane) 420.
- the display image generation unit 430 a Resolution conversion processing b. Dynamic range conversion processing c. Color space conversion process At least one of the image conversion processes a to c is executed. That is, the display image generation unit 430 determines an image conversion mode according to the display function of the display unit 250 that outputs an image, and executes at least one of the image conversion processes a to c.
- the storage unit (graphics plane) 420 is Back buffer 421, Front buffer 1, 422-1, Front buffer 2, 422-2, It has a triple buffer configuration having these three buffers.
- Processing is executed in the order of processing steps S301 to S306 shown in FIG.
- the flowchart shown in FIG. 13 shows the processing steps S301 to S306 shown in FIG. 12 as a flow.
- the data processing unit shown in FIG. 12 has a CPU having a program execution function, reads a program stored in a memory (not shown), and executes processing according to the flow shown in FIG.
- a CPU having a program execution function
- reads a program stored in a memory not shown
- details of each processing in steps S301 to S306 shown in FIGS. 12 and 13 will be described in order.
- Step S301 the BD-J application execution unit 410 of the data processing unit 400 of the information processing apparatus 300 executes a drawing command defined in the BD-J application.
- Step S302 the BD-J application execution unit 410 stores the image as the execution result of the drawing command defined in the BD-J application in the back buffer 421 of the storage unit 420.
- Step S303 Next, the buffer management unit 440 of the data processing unit of the information processing device 300 is stored in the back buffer 421 in parallel with the execution of the drawing command executed in steps S301 to S302 and the back buffer storage processing of the execution result. A process of copying the image data to the front buffers 1 and 422-1 is executed.
- Step S304 the display image generation unit 430 of the data processing unit of the information processing device 300 performs the conversion process of the image stored in the front buffer 2 and 422-2 in step S304 in parallel with the processes in steps S301 to S303. (At least one of resolution, dynamic range, and color conversion) is executed, and the converted image is output to the display unit 450.
- Step S305 the display image generation unit 430 determines whether or not a drawing completion API is called from the BD-J application execution unit 410 in step S305. It is determined whether or not the drawing completion notification API, that is, the “java.awt.Toolkit # sync () method” is called from the BD-J application execution unit 410.
- step S306 is executed.
- Step S306 When it is confirmed that the drawing completion notification API from the BD-J application execution unit 410, that is, the “java.awt.Toolkit # sync () method” has been called, the buffer of the data processing unit 400 of the information processing apparatus 300
- the management unit 440 performs switching processing between the front buffers 1 and 422-1 and the front buffers 2 and 422-2 of the storage unit 420. That is, the front buffers 1 and 422-1 are set to the front buffer 2, and the front buffers 2 and 422-2 are set to the front buffer 1. Thereafter, the processing of steps S301 to S306 is repeated.
- the drawing commands # 1 to #N are executed for the back buffer 421, and at the same time, copy data is also stored in the front buffers 1 and 422-1. afterwards,
- the display image generation unit 430 detects the issuance of the drawing completion notification API (java.awt.Toolkit # sync ())
- the buffer management unit 440 executes switching between the front buffers 1 and 422-1 and the front buffers 2 and 422-2. At this time, the drawing results of the drawing commands # 1 to #N are stored in the front buffer 2 after the buffer switching (the front buffer 1 before the switching).
- drawing commands # N + 1 to # N + M are executed by the BD-J application, and the drawing commands # N + 1 to # N + M are applied to the back buffer and the front buffer 2 after buffer switching (the front buffer 1 before switching).
- the execution result is stored.
- the drawing buffer before the API issuance (the execution results of the drawing commands # 1 to #N) is stored in one front buffer.
- the drawing buffer before the API issuance (the execution results of the drawing commands # 1 to #N) is stored in one front buffer.
- the drawing completion notification API (java.awt.Toolkit # sync ())
- the buffer storing the execution results of the drawing commands (drawing commands # N + 1 to # N + M) is displayed in the output front buffer.
- the image conversion process and the image output process are executed for the image stored in the output target front buffer.
- a CPU (Central Processing Unit) 501 functions as a data processing unit that executes various processes according to a program stored in a ROM (Read Only Memory) 502 or a storage unit 508. For example, the process according to the flowchart described above is executed.
- a RAM (Random Access Memory) 503 stores programs executed by the CPU 501 and data.
- the CPU 501, ROM 502, and RAM 503 are connected to each other by a bus 504.
- the CPU 501 is connected to an input / output interface 505 via a bus 504.
- the input / output interface 505 is connected to an input unit 506 including various switches, a keyboard, a mouse, and a microphone, and an output unit 507 including a display and a speaker. Yes.
- the CPU 501 executes various processes in response to a command input from the input unit 506 and outputs a processing result to the output unit 507, for example.
- the storage unit 508 connected to the input / output interface 505 includes, for example, a hard disk and stores programs executed by the CPU 501 and various data.
- a drive 510 connected to the input / output interface 505 drives a removable medium 511 such as a semiconductor memory such as a magnetic disk, an optical disk, a magneto-optical disk, or a memory card, and records various data such as recorded contents and key information. To get. For example, using the acquired content and key data, the content is decrypted and played back according to the playback program executed by the CPU.
- a removable medium 511 such as a semiconductor memory such as a magnetic disk, an optical disk, a magneto-optical disk, or a memory card
- An application execution unit that executes drawing processing and stores a drawing result in a storage unit;
- a display image generation unit that performs an image conversion process on the drawing image of the storage unit and generates a display image to be output to the display unit;
- a buffer management unit that executes switching processing of a plurality of buffers set in the storage unit;
- the application execution unit After completion of the drawing process by the drawing command, a calling process of a drawing completion notification API (Application Programming Interface) is executed, The buffer management unit In response to the call of the drawing completion notification API, a buffer switching process for switching a drawing image storage buffer by the application execution unit is executed.
- the display image generation unit An information processing apparatus that executes an image conversion process on an image stored in a buffer different from a buffer that is executing a drawing process by the application execution unit.
- the storage unit It is a double buffer configuration consisting of a front buffer and a back buffer
- the application execution unit The drawing processing result by the drawing command is stored in the back buffer
- the buffer management unit The information processing apparatus according to (1), wherein a switching process between a front buffer and a back buffer is executed in response to the call of the drawing completion notification API.
- the storage unit A triple buffer configuration comprising a back buffer, a first front buffer, and a second front buffer;
- the application execution unit The drawing processing result by the drawing command is stored in the back buffer,
- the first front buffer is configured to store copy data of the back buffer;
- the buffer management unit The information processing apparatus according to (1), wherein a switching process between the first front buffer and the second front buffer is executed in response to the call of the drawing completion notification API.
- the display image generation unit The information processing apparatus according to (4), wherein an image conversion process is performed on an image stored in the second front buffer.
- Color space conversion process The information processing apparatus according to any one of (1) to (5), which executes at least one of the image conversion processes a to c.
- the display image generation unit The information processing apparatus according to any one of (1) to (6), wherein an image conversion mode is determined according to a display function of a display unit that outputs an image.
- the information processing apparatus includes: An application execution unit that executes drawing processing and stores a drawing result in a storage unit; A display image generation unit that performs an image conversion process on the drawing image of the storage unit and generates a display image to be output to the display unit; A buffer management unit that executes switching processing of a plurality of buffers set in the storage unit; The application execution unit After completion of the drawing process by the drawing command, a calling process of a drawing completion notification API (Application Programming Interface) is executed, The buffer management unit In response to the call of the drawing completion notification API, a buffer switching process for switching a drawing image storage buffer by the application execution unit is executed.
- the display image generation unit An information processing method for executing an image conversion process on an image stored in a buffer different from a buffer that is executing a drawing process by the application execution unit.
- a program for executing information processing in an information processing device includes: An application execution unit that executes drawing processing and stores a drawing result in a storage unit; A display image generation unit that performs an image conversion process on the drawing image of the storage unit and generates a display image to be output to the display unit; A buffer management unit that executes switching processing of a plurality of buffers set in the storage unit;
- the program is In the application execution unit, After the drawing process by the drawing command is completed, a calling process of a drawing completion notification API (Application Programming Interface) is executed, In the buffer manager, In response to the call of the drawing completion notification API, the application execution unit executes a buffer switching process for switching a drawing image storage buffer, In the display image generation unit, A program for executing an image conversion process on an image stored in a buffer different from a buffer that is executing a drawing process by the application execution unit.
- a drawing completion notification API Application Programming Interface
- the series of processes described in the specification can be executed by hardware, software, or a combined configuration of both.
- the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run.
- the program can be recorded in advance on a recording medium.
- the program can be received via a network such as a LAN (Local Area Network) or the Internet and installed on a recording medium such as a built-in hard disk.
- the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary.
- the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
- a configuration for detecting the completion of a drawing process by a drawing command executed by an application and performing a conversion process and a display process for a drawing process completion image is realized. Is done. Specifically, an application execution unit that executes drawing processing and stores drawing results in a storage unit, a display image generation unit that executes conversion processing on a drawing image in the storage unit, and switching of a plurality of buffers in the storage unit are executed. A buffer management unit. The application execution unit calls a drawing completion notification API (Application Programming Interface) after completion of the drawing processing by the drawing command, and the buffer management unit executes buffer switching processing according to the call of the drawing completion notification API.
- drawing completion notification API Application Programming Interface
- the display image generation unit performs image conversion on a stored image in a buffer different from the buffer being drawn by the application execution unit.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
- Picture Signal Circuits (AREA)
- Transforming Electric Information Into Light Information (AREA)
- Processing Of Color Television Signals (AREA)
Abstract
アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成を実現する。描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、記憶部の描画画像の変換を行う表示画像生成部と、記憶部の複数バッファの切り替えを行うバッファ管理部を有する。アプリ実行部は、描画コマンドによる描画完了後、描画完了通知API(Application Programming Interface)を呼び出す。バッファ管理部はこのAPI呼び出しに応じてバッファを切り替える。表示画像生成部はアプリ実行部の描画中のバッファと異なるバッファの格納画像に対する画像変換を実行する。
Description
本開示は、情報処理装置、および情報処理方法、並びにプログラムに関する。さらに詳細には、画像の描画処理を行ない、さらに描画画像に対する画像変換を実行する情報処理装置、および情報処理方法、並びにプログラムに関する。
昨今、テレビその他の表示装置として、高解像度画像や、広ダイナミックレンジ画像、あるいは、より広い色空間の色を出力可能な表示装置が開発され、利用が広がりつつある。
なお、高解像度、広ダイナミックレンジ、出力色空間の広い画像は、例えばUHD(Ultra High Definition)画像と呼ばれ、このUHD画像を表示するUHD対応表示装置の利用も普及段階にある。
なお、高解像度、広ダイナミックレンジ、出力色空間の広い画像は、例えばUHD(Ultra High Definition)画像と呼ばれ、このUHD画像を表示するUHD対応表示装置の利用も普及段階にある。
しかし、現時点では、UHD画像を表示可能な表示装置であるUHD対応表示装置と、従来型の表示装置が混在する。
このような現状において、例えばBD(Blu-ray(登録商標)Disc)から画像データを読み出して、表示部に表示する処理を実行する場合、従来型の表示装置、およびUHD対応表示装置のいずれの表示装置でも、それぞれの表示機能に応じた画像を表示可能とすることが要求される。
このような現状において、例えばBD(Blu-ray(登録商標)Disc)から画像データを読み出して、表示部に表示する処理を実行する場合、従来型の表示装置、およびUHD対応表示装置のいずれの表示装置でも、それぞれの表示機能に応じた画像を表示可能とすることが要求される。
このためには、まず、従来型の表示装置において表示可能な、例えばSDR(Standard Dynamic Range)画像を生成し、その後、必要に応じて、解像度変換、ダイナミックレンジ変換、あるいは色空間変換などの画像変換を実行して、UHD対応表示装置に表示する構成をとる必要がある。
この場合、例えば、画像描画アプリケーションによる画像描画処理と、描画画像に対する画像変換処理、さらに、画像表示処理という異なるフェーズの処理を順次、実行することが必要となる。
このような複数の異なる処理を実行する場合、例えば1つの画像描画コマンドの完了前に画像変換や表示処理が開始されると、不完全な画像が表示されとしまう。
完全な変換画像を表示するためには、描画処理の完了後に変換処理や表示処理を実行することが必要であり、各処理の実行タイミングを何らかの手法で制御することが必要となる。
このような複数の異なる処理を実行する場合、例えば1つの画像描画コマンドの完了前に画像変換や表示処理が開始されると、不完全な画像が表示されとしまう。
完全な変換画像を表示するためには、描画処理の完了後に変換処理や表示処理を実行することが必要であり、各処理の実行タイミングを何らかの手法で制御することが必要となる。
なお、特許文献1(特許第4962674号公報)には、3D画像を構成する左眼用画像と右眼の整合性を確保し、描画の完了した画像を表示するための表示タイミングを決定する構成を開示している。
しかし、この開示文献は、3D画像を構成する左眼用画像と右眼の整合性を確保するための処理タイミングの制御構成を開示しているに過ぎない。
しかし、この開示文献は、3D画像を構成する左眼用画像と右眼の整合性を確保するための処理タイミングの制御構成を開示しているに過ぎない。
本開示は、例えば上記問題点に鑑みてなされたものであり、解像度変換、ダイナミックレンジ変換、あるいは色空間変換などの画像変換を実行して、表示装置に表示する処理を行なう構成において、描画処理の完了タイミングを検知した上で、画像変換を実行して表示画像の出力を行う情報処理装置、および情報処理方法、並びにプログラムを提供することを目的とする。
本開示の第1の側面は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理装置にある。
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理装置にある。
さらに、本開示の第2の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理方法にある。
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理方法にある。
さらに、本開示の第3の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記プログラムは、
前記アプリケーション実行部に、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行させ、
前記バッファ管理部に、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行させ、
前記表示画像生成部に、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行させるプログラムにある。
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記プログラムは、
前記アプリケーション実行部に、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行させ、
前記バッファ管理部に、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行させ、
前記表示画像生成部に、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行させるプログラムにある。
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本開示の一実施例の構成によれば、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
具体的には、描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、記憶部の描画画像に対する変換処理を実行する表示画像生成部と、記憶部の複数バッファの切り替えを実行するバッファ管理部を有する。アプリケーション実行部は、描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出しを実行し、バッファ管理部は、描画完了通知APIの呼び出しに応じてバッファ切り替え処理を実行する。表示画像生成部は、アプリ実行部の描画中のバッファと異なるバッファの格納画像に対する画像変換を実行する。
本構成により、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
具体的には、描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、記憶部の描画画像に対する変換処理を実行する表示画像生成部と、記憶部の複数バッファの切り替えを実行するバッファ管理部を有する。アプリケーション実行部は、描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出しを実行し、バッファ管理部は、描画完了通知APIの呼び出しに応じてバッファ切り替え処理を実行する。表示画像生成部は、アプリ実行部の描画中のバッファと異なるバッファの格納画像に対する画像変換を実行する。
本構成により、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
以下、図面を参照しながら本開示の情報処理装置、および情報処理方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
1.情報記録媒体の記録データと再生処理例について
2.情報処理装置におけるBD-Jアプリケーションを利用した画像出力処理例について
3.画像変換を伴う画像出力処理における問題点について
3-1.スクリーンティアリングについて
3-2.画像変換処理の負荷について
4.本開示の情報処理装置の実行する処理の概要について
5.(実施例1)記憶部(グラフィックスプレーン)をダブルバッファとした構成を適用した実施例について
6.(実施例2)記憶部(グラフィックスプレーン)40をトリプルバッファとした構成を適用した実施例について
7.情報処理装置のハードウェア構成例について
8.本開示の構成のまとめ
1.情報記録媒体の記録データと再生処理例について
2.情報処理装置におけるBD-Jアプリケーションを利用した画像出力処理例について
3.画像変換を伴う画像出力処理における問題点について
3-1.スクリーンティアリングについて
3-2.画像変換処理の負荷について
4.本開示の情報処理装置の実行する処理の概要について
5.(実施例1)記憶部(グラフィックスプレーン)をダブルバッファとした構成を適用した実施例について
6.(実施例2)記憶部(グラフィックスプレーン)40をトリプルバッファとした構成を適用した実施例について
7.情報処理装置のハードウェア構成例について
8.本開示の構成のまとめ
[1.情報記録媒体の記録データと再生処理例について]
まず、情報記録媒体の記録データと再生処理例について説明する。
以下では、情報記録媒体の一例として、Blu-ray(登録商標) Discの記録データと、再生処理例を説明する。
まず、情報記録媒体の記録データと再生処理例について説明する。
以下では、情報記録媒体の一例として、Blu-ray(登録商標) Discの記録データと、再生処理例を説明する。
図1以下を参照して、読み出し専用タイプのBDであるBD-ROMに記録されたコンテンツ、すなわち、AV(Audio/Video)データ等の管理構造(以下、BDMVフォーマットともいう)について説明する。
例えば、MPEG(Moving Picture Experts Group)ビデオや、MPEGオーディオ等の符号化方式で符号化され、MPEG2システムに従って多重化されたビットストリームは、クリップAVストリーム(またはAVストリーム)と呼ばれる。クリップAVストリームは、BDに関する規格の一つである「Blu-ray(登録商標) Disc Read-Only Format part2で定義されたファイルシステムにより、ファイルとしてBDに記録される。クリップAVストリームのファイルは、クリップAVストリームファイル(またはAVストリームファイル)と呼ばれる。
クリップAVストリームファイルは、ファイルシステム上での管理単位であり、クリップAVストリームファイル(のクリップAVストリーム)を再生に必要な情報等は、データベースとしてBDに記録される。このデータベースについては、BD規格の一つである「Blu-ray(登録商標) Disc Read-Only Format part3で規定されている。
図1は、BDMVフォーマットの概要を説明する図である。
BDMVフォーマットは、4層のレイヤから構成される。
BDMVフォーマットは、4層のレイヤから構成される。
最下位のレイヤは、クリップAVストリームが属するレイヤであり、以下、適宜、クリップレイヤともいう。
クリップレイヤの1つ上のレイヤは、クリップAVストリームに対する再生箇所を指定するための、プレイリスト(Movie PlayList)が属するレイヤで、以下、プレイリストレイヤともいう。
プレイリストレイヤの1つ上のレイヤは、プレイリストに対して再生順等を指定するコマンドからなるムービーオブジェクト(Movie Object)等が属するレイヤで、以下、オブジェクトレイヤともいう。
オブジェクトレイヤの1つ上のレイヤ(最上位のレイヤ)は、BDに格納されるタイトル等を管理するインデックステーブルが属するレイヤで、以下、インデクスレイヤともいう。
クリップレイヤ、プレイリストレイヤ、オブジェクトレイヤ、および、インデクスレイヤについて、さらに説明する。
クリップレイヤには、クリップAVストリームや、クリップ情報(Clip Information)等が属する。
クリップレイヤには、クリップAVストリームや、クリップ情報(Clip Information)等が属する。
クリップAVストリームは、コンテンツのデータとしてのビデオデータやオーディオデータ等をTS(MPEG2 TS(Transport Stream))の形にしたストリームである。
クリップ情報(Clip Information)は、クリップAVストリームに関する情報であり、ファイルとして、BDに記録される。
クリップ情報(Clip Information)は、クリップAVストリームに関する情報であり、ファイルとして、BDに記録される。
なお、クリップAVストリームには、字幕やメニュー等のグラフィクスのストリームも、必要に応じて含まれる。
字幕(のグラフィクス)のストリームは、プレゼンテーショングラフィクス(PG(Presentation Graphics))ストリームと呼ばれ、メニュー(のグラフィクス)のストリームは、インタラクティブグラフィクス(IG(Interactive Graphics))ストリームと呼ばれる。
また、クリップAVストリームファイルと、対応するクリップ情報(そのクリップAVストリームファイルのクリップAVストリームに関するクリップ情報)のファイル(クリップ情報ファイル)とのセットは、クリップ(Clip)と呼ばれる。
クリップは、クリップAVストリームとクリップ情報とから構成される、1つのオブジェクトである。
クリップを構成するクリップAVストリームに対応するコンテンツを時間軸上に展開したときの最初と最後の位置(時刻)を含む複数の位置は、アクセスポイントに設定される。アクセスポイントは、主に、タイムスタンプで、上位のレイヤのプレイリスト(PlayList)により指定される。
クリップを構成するクリップ情報は、プレイリストがタイムスタンプで指定したアクセスポイントが表す、クリップAVストリームの位置のアドレス(論理アドレス)を含む。
プレイリストレイヤには、プレイリスト(Movie PlayList)が属する。
プレイリストは、再生を行うAVストリームファイルと、そのAVストリームファイルの再生箇所を指定する再生開始点(IN点)、および、再生終了点(OUT点)とを含むプレイアイテム(PlayItem)から構成される。
したがって、プレイリストは、プレイアイテムの集合で構成される。
プレイリストは、再生を行うAVストリームファイルと、そのAVストリームファイルの再生箇所を指定する再生開始点(IN点)、および、再生終了点(OUT点)とを含むプレイアイテム(PlayItem)から構成される。
したがって、プレイリストは、プレイアイテムの集合で構成される。
ここで、プレイアイテムの再生とは、そのプレイアイテムに含まれるIN点とOUT点とによって特定される、クリップAVストリームの区間の再生を意味する。
オブジェクトレイヤには、ムービーオブジェクト(Movie Object)や、BD-Jオブジェクト(Blu-ray(登録商標) Disc Java(登録商標) Object)が属する。
ムービーオブジェクトは、HDMV(High Definition Movie)ナビゲーションコマンドプログラム(ナビコマンド)と、ムービーオブジェクトとを連携するターミナルインフォメーションを含む。
ナビコマンドは、プレイリストの再生を制御するためのコマンドである。ターミナルインフォメーションは、BDを再生するBDプレーヤに対するユーザのインタラクティブな操作を許可するための情報を含む。BDプレーヤでは、ターミナルインフォメーションに基づき、メニューの呼び出しや、タイトルサーチといったユーザオペレーションが制御される。
BD-Jオブジェクトは、Java(登録商標)プログラムであり、ナビコマンドよりも、より高度な(洗練された)インタラクティブ機能を、ユーザに提供することができる。
インデクスレイヤには、インデクステーブル(Index table)が属する。
インデクステーブルは、BD-ROMディスクのタイトルを定義する、トップレベルのテーブルである。
インデクステーブルは、BD-ROMディスクのタイトルを定義する、トップレベルのテーブルである。
インデクステーブルのエントリ(欄)は、タイトルに対応し、各エントリからは、そのエントリに対応するタイトル(HDMVタイトル、BD-Jタイトル)のオブジェクト(ムービーオブジェクト、BD-Jオブジェクト)にリンクがはられる。
図2は、記録メディア(BD)10のファイルの管理構造を説明する図である。
BDでは、ファイルは、ディレクトリ構造により階層的に管理される。
BDでは、ファイルは、ディレクトリ構造により階層的に管理される。
BDの最上位階層のディレクトリは、ルート(root)ディレクトリになっている。
ルートディレクトリの直下には、ディレクトリ「BDMV」が存在する。
ディレクトリ「BDMV」には、図1で説明したBDMVフォーマットのファイルが格納される。
ルートディレクトリの直下には、ディレクトリ「BDMV」が存在する。
ディレクトリ「BDMV」には、図1で説明したBDMVフォーマットのファイルが格納される。
ディレクトリ「BDMV」の直下には、ファイル「index.bdmv」、および「MovieObject.bdmv」の2つのファイルが格納される。なお、ディレクトリ「BDMV」の直下には、ファイル「index.bdmv」、および「MovieObject.bdmv」以外のファイル(ディレクトリを除く)は、格納することができない。
ファイル「index.bdmv」は、BDを再生するメニューに関する情報としての、図1で説明したインデクステーブルを含む。
BDプレーヤは、例えば、BDのコンテンツを全て再生する、特定のチャプタのみを再生する、繰り返し再生をする、所定のメニューを表示する等の内容の項目を含む初期メニュー(の画面)を、ファイル「index.bdmv」に基づいて再生する。
また、ファイル「index.bdmv」には、各項目が選択されたときに実行するムービーオブジェクト(Movie Object)を設定することができ、ユーザにより初期メニュー画面から1つの項目が選択された場合、BDプレーヤは、ファイル「index.bdmv」に設定されているMovie Objectのコマンドを実行する。
ファイル「MovieObject.bdmv」は、Movie Objectの情報を含むファイルである。Movie Objectは、BDに記録されているPlayListの再生を制御するコマンドを含み、例えば、BDプレーヤは、BDに記録されているMovieObjectの中から1つを選択して実行することにより、BDに記録されているコンテンツ(タイトル)を再生する。
ディレクトリ「BDMV」の直下には、ディレクトリ「PLAYLIST」,「CLIPINF」,「STREAM」,「AUXDATA」,「META」,「BDJO」,「JAR」、および「BACKUP」が設けられる。
ディレクトリ「PLAYLIST」には、プレイリストのデータベースが格納される。すなわち、ディレクトリ「PLAYLIST」には、プレイリストのファイル「xxxxx.mpls」が格納される。ファイル「xxxxx.mpls」のファイル名には、5桁の数字「xxxxx」と、拡張子「mpls」とからなるファイル名が用いられる。
ディレクトリ「CLIPINF」は、クリップのデータベースが格納される。すなわち、ディレクトリCLIPINF」には、クリップAVストリームファイルのそれぞれに対するクリップインフォメーションファイル「xxxxx.clpi」が格納される。クリップインフォメーションファイル「xxxxx.clpi」のファイル名には、5桁の数字「xxxxx」と、拡張子「clpi」とからなるファイル名が用いられる。
ディレクトリ「STREAM」には、クリップAVストリームファイル「xxxxx.m2ts」が格納される。クリップAVストリームファイル「xxxxx.m2ts」には、TSが格納される。クリップAVストリームファイル「xxxxx.m2ts」のファイル名には、5桁の数字「xxxxx」と、拡張子「m2ts」とからなるファイル名が用いられる。
なお、あるクリップを構成するクリップインフォメーションファイル「xxxxx.clpi」と、クリップAVストリームファイル「xxxxx.m2ts」のファイル名としては、拡張子を除き、一致するファイル名が用いられる。これにより、あるクリップを構成するクリップインフォメーションファイル「xxxxx.clpi」と、クリップAVストリームファイル「xxxxx.m2ts」とを、容易に特定することができる。
ディレクトリ「AUXDATA」には、メニューの表示等に用いられる、サウンドファイル、フォントファイル、フォントインデクスファイルおよびビットマップファイル等が格納される。
ディレクトリ「META」には、メタデータのファイルが格納される。ディレクトリ「BDJO」およびディレクトリ「JAR」は、BD-Jオブジェクトのファイルが格納される。JAVA(登録商標)プログラム、コマンド等を格納したBD-Jアプリケーション等のファイルである。
ディレクトリ「BACKUP」は、BDに記録されたファイルのバックアップが格納される。
ディレクトリ「BACKUP」は、BDに記録されたファイルのバックアップが格納される。
図3は、図1、図2を参照して説明した記録データを持つ記録メディア10から読み取られたデータの再生処理例を示す図である。
記録メディア10は、例えばPC21、再生装置22、TV23等の情報処理装置20に装着され、再生される。
PC21、再生装置22、TV23等の情報処理装置20にはBDドライブが設けられ、BDからのデータ読み取りが可能な構成を持つ。
記録メディア10は、例えばPC21、再生装置22、TV23等の情報処理装置20に装着され、再生される。
PC21、再生装置22、TV23等の情報処理装置20にはBDドライブが設けられ、BDからのデータ読み取りが可能な構成を持つ。
情報処理装置20は、記録メディア10から読み取ったコンテンツ、具体的には、クリップAVストリームファイルに格納された画像や音声データを取得し、プレイリストファイル等の再生制御情報ファイルに従って、コンテンツ再生処理を実行する。
再生データに含まれる画像は、図3に示すように、表示部を持つ機器、例えばPCやTV等の表示部(ディスプレイ)に表示出力される。
再生データに含まれる画像は、図3に示すように、表示部を持つ機器、例えばPCやTV等の表示部(ディスプレイ)に表示出力される。
[2.情報処理装置におけるBD-Jアプリケーションを利用した画像出力処理例について]
次に、図1、図2を参照して説明した記録データを持つ記録メディア10からのデータ再生処理を行なう情報処理装置20の実行するBD-Jアプリケーションを利用した画像出力処理例について説明する。
次に、図1、図2を参照して説明した記録データを持つ記録メディア10からのデータ再生処理を行なう情報処理装置20の実行するBD-Jアプリケーションを利用した画像出力処理例について説明する。
図2を参照して説明したように、記録メディア10には、BD-Jアプリケーションが記録されている。
情報処理装置20には、プログラムデータ実行機能を持つCPU等を備えたデータ処理部を有し、データ処理部において、Java(登録商標)仮想マシンを実行し、そのJava(登録商標)仮想マシン上で、BD-Jアプリケーションを実行する。
情報処理装置20には、プログラムデータ実行機能を持つCPU等を備えたデータ処理部を有し、データ処理部において、Java(登録商標)仮想マシンを実行し、そのJava(登録商標)仮想マシン上で、BD-Jアプリケーションを実行する。
図4は、情報処理装置20の一部構成であり、画像を出力するための構成例を示す図である。
情報処理装置20のデータ処理部30は、BD-Jアプリケーションを実行し、記憶部40に各画像フレームを順次、描画し、格納する。
なお、画像データを格納する記憶部30は、グラフィクスプレーンとも呼ばれる。グラフィクスプレーンに格納された画像データに対して、様々な画像変換を施すことができる。なお、記憶部(グラフィクスプレーン)40は、ハードウェア的にはRAMによって構成される。
情報処理装置20のデータ処理部30は、BD-Jアプリケーションを実行し、記憶部40に各画像フレームを順次、描画し、格納する。
なお、画像データを格納する記憶部30は、グラフィクスプレーンとも呼ばれる。グラフィクスプレーンに格納された画像データに対して、様々な画像変換を施すことができる。なお、記憶部(グラフィクスプレーン)40は、ハードウェア的にはRAMによって構成される。
データ処理部30は、さらに、記憶部40に格納された画像に対する画像変換処理を実行する。画像変換は、例えば表示部50の表示機能に応じた画像変換処理であり、具体的には、例えば、以下のいずれか1つ、または複数を組み合わせた変換処理である。
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
データ処理部30は、例えば表示部50の表示機能に応じて上記a~cの少なくともいずれかの画像変換処理を実行する。
a.解像度変換は、具体的には例えば2K画像(1920×1080画素)から4K画像(3840×2160画素)への変換処理等である。
b.ダイナミックレンジ変換処理は、具体的には例えば、SDR(Standard Dynamic Range)画像から、HDR(High Dynamic Range)画像への変換処理等である。
c.色空間変換処理は、具体的には例えば、BT.709色空間から、BT.2020色空間への変換処理等である。
なお、BT.2020色空間は、BT.709色空間より、表現可能な色範囲が広く、肉眼で観察される色空間にほぼ匹敵する自然な色彩表現が可能である。
a.解像度変換は、具体的には例えば2K画像(1920×1080画素)から4K画像(3840×2160画素)への変換処理等である。
b.ダイナミックレンジ変換処理は、具体的には例えば、SDR(Standard Dynamic Range)画像から、HDR(High Dynamic Range)画像への変換処理等である。
c.色空間変換処理は、具体的には例えば、BT.709色空間から、BT.2020色空間への変換処理等である。
なお、BT.2020色空間は、BT.709色空間より、表現可能な色範囲が広く、肉眼で観察される色空間にほぼ匹敵する自然な色彩表現が可能である。
これらの画像変換は、表示部の出力可能な画素数、ダイナミックレンジ、色空間に応じて行われるものである。
データ処理部30は、記憶部40に格納された画像に対して、表示部50の仕様に応じた画像変換処理を実行することになる。
データ処理部30は、記憶部40に格納された画像に対して、表示部50の仕様に応じた画像変換処理を実行することになる。
データ処理部30は、画像変換された画像データを表示部50に出力する。
表示部50に表示される画像は、所定の画像変換処理によって変換された画像であり、例えば表示部50が、高解像度、広ダイナミックレンジ、出力色空間の広いUHD(Ultra High Definition)画像を出力可能な表示部であれはUHD画像が表示される。
表示部50に表示される画像は、所定の画像変換処理によって変換された画像であり、例えば表示部50が、高解像度、広ダイナミックレンジ、出力色空間の広いUHD(Ultra High Definition)画像を出力可能な表示部であれはUHD画像が表示される。
次に、図5を参照してBD-Jアプリケーション等を実行するデータ処理部30の具体的な構成例について説明する。
図5は、データ処理部30において画像に関する処理を実行する機能構成を示す図である。
データ処理部30は、図5に示す以下の機能を利用した処理を実行する。
(a)BD-Jアプリケーション31
(b)画像変換処理API(Application Programming Interface)33
(c)プレゼンテーションエンジン(Presentation engine)34
(d)画像デコーダ(Video decoder)35
(e)表示制御部(Display processor)36
図5は、データ処理部30において画像に関する処理を実行する機能構成を示す図である。
データ処理部30は、図5に示す以下の機能を利用した処理を実行する。
(a)BD-Jアプリケーション31
(b)画像変換処理API(Application Programming Interface)33
(c)プレゼンテーションエンジン(Presentation engine)34
(d)画像デコーダ(Video decoder)35
(e)表示制御部(Display processor)36
なお、上記(a)~(e)の構成中、
(b)画像変換処理API33
(c)プレゼンテーションエンジン(Presentation engine)34
(d)画像デコーダ(Video decoder)35
(e)表示制御部(Display processor)36
これらの構成をBD-Jアプリケーション31と区別して、表示画像生成部32と呼ぶ。
表示画像生成部32は、BD-Jアプリケーション31が記憶部(グラフィックスプレーン)40に描画した画像に対する変換処理や表示制御を実行する。
(b)画像変換処理API33
(c)プレゼンテーションエンジン(Presentation engine)34
(d)画像デコーダ(Video decoder)35
(e)表示制御部(Display processor)36
これらの構成をBD-Jアプリケーション31と区別して、表示画像生成部32と呼ぶ。
表示画像生成部32は、BD-Jアプリケーション31が記憶部(グラフィックスプレーン)40に描画した画像に対する変換処理や表示制御を実行する。
図5に示す各構成の実行する処理について説明する。
(a)BD-Jアプリケーション31は、記憶部(グラフィクスプレーン)40に対する画像の描画処理を実行する。
(a)BD-Jアプリケーション31は、記憶部(グラフィクスプレーン)40に対する画像の描画処理を実行する。
(b)画像変換処理API33は、a.解像度変換処理、b.ダイナミックレンジ変換処理、c.色空間変換処理、これらの画像変換処理を実行するAPIを適用した画像変換処理を実行する。
例えば、解像度変換処理を実行する場合、BD-Jアプリケーション31は、解像度変換APIを呼び出し、解像度等の変更(設定)を要求する。
例えば、解像度変換処理を実行する場合、BD-Jアプリケーション31は、解像度変換APIを呼び出し、解像度等の変更(設定)を要求する。
解像度設定APIは、BD-Jアプリケーションからの要求に応じて、プレゼンテーションエンジン、画像デコーダ、表示制御部のうちの必要なものを、直接的に、または間接的に制御することで、解像度を変更する。
ダイナミックレンジ変換処理や、色空間変換処理を行なう場合も、それぞれの変換処理を行なうAPIを利用して処理が行われる。
ダイナミックレンジ変換処理や、色空間変換処理を行なう場合も、それぞれの変換処理を行なうAPIを利用して処理が行われる。
なお、図5において、プレゼンテーションエンジン(Presentation Engine)は、オーディオ、ビデオ、および、HDMVグラフィクスのデコード機能とプレゼンテーション機能(Presentation functions)を、BDの再生を制御する、図示せぬプレイバックコントロールエンジン(Playback Control Engine)に提供する。
また、図5において、ビデオデコーダ(Video decoder)は、画像のデコードを行う。さらに、表示制御部(Display processor)は、記憶部(グラフィクスプレーン)40に格納された画像や変換画像を表示部50に出力する。
データ処理部30の実行する画像変換処理の具体例について、図6、図7を参照して説明する。
図6は、ダイナミックレンジ変換処理(SDR画像からHDR画像への変換)を実施しない場合の画像変換例である。
図6は、ダイナミックレンジ変換処理(SDR画像からHDR画像への変換)を実施しない場合の画像変換例である。
グラフィックス・ソース51は、BD-Jアプリケーションによって記憶部30に描画される画像である。
図6に示す例において、グラフィックス・ソース51は、
1920×1080画素の画像であり、各画素単位でRGB各8ビット表現のなされたSDR画像である。
図6に示す例において、グラフィックス・ソース51は、
1920×1080画素の画像であり、各画素単位でRGB各8ビット表現のなされたSDR画像である。
データ処理部30は、ステップS21において色空間変換を実行して、図6に示す画像52、または画像53、または画像54のいずれかを生成する。
画像52は、1920×1080画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で8ビット表現のなされたSDR画像である。
画像53は、1920×1080画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
画像54は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
画像52は、1920×1080画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で8ビット表現のなされたSDR画像である。
画像53は、1920×1080画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
画像54は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、このように、ステップS21において、色空間変換を実行して、図6に示す画像52、または画像53、または画像54のいずれかを生成する。
図6に示すステップS22の処理は、上記の画像53に対する解像度変換処理である。データ処理部30は、画像53に対する解像度変換を実行する。
画像53は、1920×1080画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、この画像53に対する解像度変換を実行して画像55を生成する。
画像55は、3840×2160画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
画像53は、1920×1080画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、この画像53に対する解像度変換を実行して画像55を生成する。
画像55は、3840×2160画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
また、図6に示すステップS23の処理は、上記の画像54に対する解像度変換処理である。データ処理部30は、画像54に対する解像度変換を実行する。
画像54は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、この画像54に対する解像度変換を実行して画像56を生成する。
画像56は、3840×2160画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
画像54は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、この画像54に対する解像度変換を実行して画像56を生成する。
画像56は、3840×2160画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
図6には、データ処理部30の実行する画像変換処理例として3つの変換処理例を示している。
(A)BD-Jアプリケーションによって描画されたグラフィックス・ソース51に対してステップS21の色空間変換のみを実行して出力画像52を生成する変換処理例
(B)BD-Jアプリケーションによって描画されたグラフィックス・ソース51に対してステップS21の色空間変換と、ステップS22の解像度変換を実行して出力画像55を生成する変換処理例
(C)BD-Jアプリケーションによって描画されたグラフィックス・ソース51に対してステップS21の色空間変換と、ステップS23の解像度変換を実行して出力画像56を生成する変換処理例
(A)BD-Jアプリケーションによって描画されたグラフィックス・ソース51に対してステップS21の色空間変換のみを実行して出力画像52を生成する変換処理例
(B)BD-Jアプリケーションによって描画されたグラフィックス・ソース51に対してステップS21の色空間変換と、ステップS22の解像度変換を実行して出力画像55を生成する変換処理例
(C)BD-Jアプリケーションによって描画されたグラフィックス・ソース51に対してステップS21の色空間変換と、ステップS23の解像度変換を実行して出力画像56を生成する変換処理例
データ処理部30は、例えば表示部50の出力可能な画像態様に応じて、これらのいずれかの変換処理を実行する。
次に示す図7は、ダイナミックレンジ変換処理(SDR画像からHDR画像への変換)を実施する場合の画像変換例である。
グラフィックス・ソース51は、BD-Jアプリケーションによって記憶部40に描画される画像である。
図7に示す例において、グラフィックス・ソース51は、図6を参照して説明したと同様、
1920×1080画素の画像であり、各画素単位でRGB各8ビット表現のなされたSDR画像である。
図7に示す例において、グラフィックス・ソース51は、図6を参照して説明したと同様、
1920×1080画素の画像であり、各画素単位でRGB各8ビット表現のなされたSDR画像である。
データ処理部30は、ステップS31において色空間変換を実行して、図7に示す画像72を生成する。
画像72は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
画像72は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、このように、ステップS31において、色空間変換を実行して、図7に示す画像72を生成する。
図7に示すステップS32の処理は、上記の画像72に対するダイナミックレンジ変換処理である。データ処理部30は、画像72に対するダイナミックレンジ変換処理を実行する。
画像72は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、この画像72に対するダイナミックレンジ変換処理を実行して画像73を生成する。
画像73は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたHDR画像である。
画像72は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、この画像72に対するダイナミックレンジ変換処理を実行して画像73を生成する。
画像73は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたHDR画像である。
また、図7に示すステップS33の処理は、上記の画像73に対する解像度変換処理である。データ処理部30は、画像73に対する解像度変換を実行する。
画像73は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたHDR画像である。
データ処理部30は、この画像73に対する解像度変換を実行して画像74を生成する。
画像74は、3840×2160画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたHDR画像である。
画像73は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたHDR画像である。
データ処理部30は、この画像73に対する解像度変換を実行して画像74を生成する。
画像74は、3840×2160画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたHDR画像である。
図7には、データ処理部30の実行する画像変換処理例として以下の1つの変換処理例を示している。
(D)BD-Jアプリケーションによって描画されたグラフィックス・ソース71に対してステップS31の色空間変換と、ステップS32のダイナミックレンジ変換処理と、ステップS33の解像度変換を実行して出力画像74を生成する変換処理例
データ処理部30は、例えば表示部50の出力可能な画像態様に応じて、上記の変換処理を実行する。
(D)BD-Jアプリケーションによって描画されたグラフィックス・ソース71に対してステップS31の色空間変換と、ステップS32のダイナミックレンジ変換処理と、ステップS33の解像度変換を実行して出力画像74を生成する変換処理例
データ処理部30は、例えば表示部50の出力可能な画像態様に応じて、上記の変換処理を実行する。
このように、データ処理部30は、BD-Jアプリケーションの実行によって、記憶部に描画された画像の変換処理を実行して、表示部50に出力する画像を生成する。
[3.画像変換を伴う画像出力処理における問題点について]
次に、図4、図5を参照して説明した構成を有する情報処理装置における画像出力処理、すなわち画像変換処理を伴う画像出力処理における問題点について説明する。
上述した説明から理解されるように、4K画像や広ダイナミックレンジ画像、あるいはBT.2020色空間を持つような、高画質画像、いわゆるUHD画像の出力を行う場合、図4に示す記憶部(グラフィックスプレーン)40は、解像度変換や、ダイナミックレンジ変換、色空間変換等の各種の画像変換処理をサポートする記憶領域として利用される。
次に、図4、図5を参照して説明した構成を有する情報処理装置における画像出力処理、すなわち画像変換処理を伴う画像出力処理における問題点について説明する。
上述した説明から理解されるように、4K画像や広ダイナミックレンジ画像、あるいはBT.2020色空間を持つような、高画質画像、いわゆるUHD画像の出力を行う場合、図4に示す記憶部(グラフィックスプレーン)40は、解像度変換や、ダイナミックレンジ変換、色空間変換等の各種の画像変換処理をサポートする記憶領域として利用される。
データ処理部30は、図5に示すBD-Jアプリケーション31の実行によって記憶部(グラフィックスプレーン)40に画像を描画する。
記憶部(グラフィックスプレーン)40は、BD-Jアプリケーション31の実行による描画画像(BD-Jグラフィックス)に対する様々な画像変換を行うために利用される記憶領域でもある。
すなわち、
画像の解像度を拡大する機能を有する記憶領域であり、
また、画像のダイナミックレンジ変換をサポートする記憶領域であり、
また、複数の色空間を変換する機能を有する。色空間の変換は、例えば、BT.709準拠データをBT.2020準拠データに変換する処理である。
記憶部(グラフィックスプレーン)40は、BD-Jアプリケーション31の実行による描画画像(BD-Jグラフィックス)に対する様々な画像変換を行うために利用される記憶領域でもある。
すなわち、
画像の解像度を拡大する機能を有する記憶領域であり、
また、画像のダイナミックレンジ変換をサポートする記憶領域であり、
また、複数の色空間を変換する機能を有する。色空間の変換は、例えば、BT.709準拠データをBT.2020準拠データに変換する処理である。
このような記憶部(グラフィックスプレーン)40への描画処理に際して、BD-Jアプリケーション31は、以下の2つのいずれかの手法を適用した処理を行なう、
(描画手法1)ダイレクト・ドローイング(Direct drawing)
ダイレクト・ドローイング(Direct drawing)を適用した描画手法では、BD-Jアプリケーション31自身が描画コマンドを発行して描画処理を実行する。Java(登録商標)では、
「drawLine()メソッド」
のようなメソッドが提供されており、アプリケーションによる描画(ドローイング)が可能になっている。
(描画手法1)ダイレクト・ドローイング(Direct drawing)
ダイレクト・ドローイング(Direct drawing)を適用した描画手法では、BD-Jアプリケーション31自身が描画コマンドを発行して描画処理を実行する。Java(登録商標)では、
「drawLine()メソッド」
のようなメソッドが提供されており、アプリケーションによる描画(ドローイング)が可能になっている。
(描画手法2)リペイント(Repaint)
リペイント(Repaint)を適用した描画手法では、システムが提供するウィジェットを使用した描画処理を実行する。Java(登録商標)ではAWT(Abstract Windowing toolkit)コンポーネントと呼ばれる複数のアプリケーションで共通のウィジェットが提供されている。このウィジェットを使用した描画処理を実行する手法である。
リペイント(Repaint)を適用した描画手法では、システムが提供するウィジェットを使用した描画処理を実行する。Java(登録商標)ではAWT(Abstract Windowing toolkit)コンポーネントと呼ばれる複数のアプリケーションで共通のウィジェットが提供されている。このウィジェットを使用した描画処理を実行する手法である。
BD-Jアプリケーション31は、上記の描画処理のいずれかを利用して描画処理を実行する。
なお、例えばSDR画像のみを再生可能な従来型の機器(レガシー機器)においても、SDR画像の再生処理を可能とするため、BD-Jアプリケーションは、SDRのグラフィックス・ソースだけを用いた描画を行い、HDR画像の再生可能な再生機器のみがその描画画像をHDR画像に変換するといった態様とすることが好ましい。
このように、再生機器によって、画像変換が実施される場合に発生する問題点について説明する。
なお、例えばSDR画像のみを再生可能な従来型の機器(レガシー機器)においても、SDR画像の再生処理を可能とするため、BD-Jアプリケーションは、SDRのグラフィックス・ソースだけを用いた描画を行い、HDR画像の再生可能な再生機器のみがその描画画像をHDR画像に変換するといった態様とすることが好ましい。
このように、再生機器によって、画像変換が実施される場合に発生する問題点について説明する。
[3-1.スクリーンティアリングについて]
以下においては、問題点として、「スクリーンティアリング」について説明する。
そもそも、BD-Jグラフィックスでは、グラフィックスのコマンドをCPUなどプロセッサで実行して描画する処理と、完成したグラフィックスプレーンを読み出して表示するモニタとが、非同期に動作しているためにスクリーンティアリングが発生するという問題がある。
以下においては、問題点として、「スクリーンティアリング」について説明する。
そもそも、BD-Jグラフィックスでは、グラフィックスのコマンドをCPUなどプロセッサで実行して描画する処理と、完成したグラフィックスプレーンを読み出して表示するモニタとが、非同期に動作しているためにスクリーンティアリングが発生するという問題がある。
スクリーンティアリングとは、表示部に複数の画像フレームが重なって表示される現象であり、例えば表示画像を生成する処理がフレーム表示速度に追いつかない場合等に発生する。
例えば図8に示すように、フレーム(fn)の表示タイミングにおいて、フレーム(fn)の一部の表示画像生成が間に合わず、画面の一部に前の表示フレーム(fn-1)が表示されてしまうといった現象である。
例えば図8に示すように、フレーム(fn)の表示タイミングにおいて、フレーム(fn)の一部の表示画像生成が間に合わず、画面の一部に前の表示フレーム(fn-1)が表示されてしまうといった現象である。
このようなスクリーンティアリングについては、1)パーソナルコンピューター等でも同様の問題が発生しており、BD-Jアプリケーションに限った問題ではなく、また、2)何らかのデータ変換処理をサポートしているグラフィックスプレーンに特有の問題でもない。
しかしながら、スクリーンティアリング自体は動作不良のように見えるため回避すべきである。
このスクリーンティアリングを回避するための手段として、描画画像を、事前に複数作成して複数のバッファに格納するダブルバッファリングやトリプルバッファリング手法が用いられる場合がある。
一般的なスクリーンティアリングは、このダブルバッファリングやトリプルバッファリングを導入すればスクリーンティアリングの発生を回避できる。
このスクリーンティアリングを回避するための手段として、描画画像を、事前に複数作成して複数のバッファに格納するダブルバッファリングやトリプルバッファリング手法が用いられる場合がある。
一般的なスクリーンティアリングは、このダブルバッファリングやトリプルバッファリングを導入すればスクリーンティアリングの発生を回避できる。
しかし、BD-Jアプリケーションが描画画像(BD-Jグラフィックス)を生成する場合、例えばBD-Jアプリケーションは、1つのフレーム画像を描画する場合、複数の描画命令を順次実行して描画処理を行なう。
この各フレーム画像の描画処理において不可分な描画命令の区切り(フレーム間の区切り)を、画像表示を行う表示制御部等は、知ることができない。
つまり、BD-Jアプリケーションによるグラフィックスプレーンへの描画が「完了した」か否かを表示制御部等のグラフィックスシステム側が知る術がなく、その点が課題となる。
この各フレーム画像の描画処理において不可分な描画命令の区切り(フレーム間の区切り)を、画像表示を行う表示制御部等は、知ることができない。
つまり、BD-Jアプリケーションによるグラフィックスプレーンへの描画が「完了した」か否かを表示制御部等のグラフィックスシステム側が知る術がなく、その点が課題となる。
[3-2.画像変換処理の負荷について]
上記のスクリーンティアリングの問題点に加えて、記憶部(グラフィックスプレーン)40に格納した画像の変換処理を実行する場合、この変換処理の負荷が過大になり、各フレームの表示処理に間に合わなくなる場合があるという問題がある。
上記のスクリーンティアリングの問題点に加えて、記憶部(グラフィックスプレーン)40に格納した画像の変換処理を実行する場合、この変換処理の負荷が過大になり、各フレームの表示処理に間に合わなくなる場合があるという問題がある。
例えば、記憶部(グラフィックスプレーン)40に格納した画像の色空間を変換する処理を行なう場合について説明する。
例えば、表示部(モニタ)が60Hzのリフレッシュレートを有する場合、1/60秒ごとにグラフィックスプレーンの色空間を変換して表示出力するプロセスは、ハードウェア負荷が高く合理的ではない。
例えば、表示部(モニタ)が60Hzのリフレッシュレートを有する場合、1/60秒ごとにグラフィックスプレーンの色空間を変換して表示出力するプロセスは、ハードウェア負荷が高く合理的ではない。
1/60秒ごとに記憶部(グラフィックスプレーン)40の格納画像の全ピクセルを書き換えなければならないことは非常にまれであり、グラフィックスの更新された領域のみを変換対象とすることで負荷を軽減できる。しかし、このような領域限定処理を行なうと、今度は、ピクセル単位で、色空間情報やダイナミックレンジ情報などを保持しなければならなくなるという問題が発生する。
最良の方法は、図5に示すBD-Jアプリケーション31による記憶部(グラフィックスプレーン)40に対する描画処理が「完了した」か否かを、図5に示す表示画像生成部32が知ることができる構成とすることである。表示画像生成部32が、BD-Jアプリケーション31による描画完了タイミングを知ることができれば、表示画像生成部32は、その時点から変換を実行して表示出力する処理を行なうことができる。
なお、ビットマップ画像の描画については、アプリケーションが1秒間に描画可能なピクセル数を規定することで上記の課題を回避可能である。しかし、BD-Jアプリケーション31は、複数のコマンドを適用した描画を実行し、このコマンド適用型の描画を制御するためには、ビットマップ描画と同様の描画量の定量的な制御は困難である。
[4.本開示の情報処理装置の実行する処理の概要について]
次に、上述した問題点を解決する本開示の情報処理装置の実行する処理の概要について説明する。
先に説明したように、BD-Jアプリケーション31は、記憶部(グラフィックスプレーン)40への描画処理に際して、以下の2つのいずれかの手法を適用した処理を行なう、
(描画手法1)ダイレクト・ドローイング(Direct drawing)
BD-Jアプリケーション31自身が描画コマンドを発行して描画処理を実行する。
(描画手法2)リペイント(Repaint)
システムが提供するウィジェット(AWT(Abstract Windowing toolkit)コンポーネントと呼ばれる複数のアプリケーションで共通のウィジェット)を使用した描画処理を実行する。
次に、上述した問題点を解決する本開示の情報処理装置の実行する処理の概要について説明する。
先に説明したように、BD-Jアプリケーション31は、記憶部(グラフィックスプレーン)40への描画処理に際して、以下の2つのいずれかの手法を適用した処理を行なう、
(描画手法1)ダイレクト・ドローイング(Direct drawing)
BD-Jアプリケーション31自身が描画コマンドを発行して描画処理を実行する。
(描画手法2)リペイント(Repaint)
システムが提供するウィジェット(AWT(Abstract Windowing toolkit)コンポーネントと呼ばれる複数のアプリケーションで共通のウィジェット)を使用した描画処理を実行する。
BD-Jアプリケーション31は、これら2つのいずれかの手法を適用した処理を行なう。
上記の(描画手法2)リペイント(Repaint)が利用される場合、システムが提供するウィジェット(AWT(Abstract Windowing toolkit)コンポーネントと呼ばれる複数のアプリケーションで共通のウィジェット)を使用した描画処理が実行される。
AWTペイントモデルにより、ルートコンテナのrepaint()メソッドが各コンポーネントのupdate()メソッドを呼び出し、呼び出さたメソッドによる描画処理が行われる。
従って、図5に示す表示画像生成部32側は、update()メソッドの実行が完了するまで表示出力を待機することで、表示画像の出力タイミングを制御することができる。
上記の(描画手法2)リペイント(Repaint)が利用される場合、システムが提供するウィジェット(AWT(Abstract Windowing toolkit)コンポーネントと呼ばれる複数のアプリケーションで共通のウィジェット)を使用した描画処理が実行される。
AWTペイントモデルにより、ルートコンテナのrepaint()メソッドが各コンポーネントのupdate()メソッドを呼び出し、呼び出さたメソッドによる描画処理が行われる。
従って、図5に示す表示画像生成部32側は、update()メソッドの実行が完了するまで表示出力を待機することで、表示画像の出力タイミングを制御することができる。
しかし、BD-Jアプリケーション31が、上記の(描画手法1)ダイレクト・ドローイング(Direct drawing)を実行して描画処理を行なう場合は、BD-Jアプリケーション31自身が描画コマンドを発行して描画処理を実行する。
この場合、図5に示す表示画像生成部32側は、BD-Jアプリケーション31による描画コマンドの発行が完了したかどうかを知る術がない。
この場合、図5に示す表示画像生成部32側は、BD-Jアプリケーション31による描画コマンドの発行が完了したかどうかを知る術がない。
BD-Jアプリケーション31は、1つの画像フレームの描画処理において、複数の描画コマンドを順次、実行する。
すなわち、BD-Jアプリケーション31が、描画コマンド#1,#2,・・・,#Nを発行し、その描画コマンド#1ないし#Nに従って画像描画が行われた場合に、その後、BD-Jアプリケーション31から、さらに、描画コマンドが発行されるかどうか、つまり、BD-Jアプリケーションによる描画コマンドの発行が完了したのかどうかを、表示画像生成部32は、認識することができない。
すなわち、BD-Jアプリケーション31が、描画コマンド#1,#2,・・・,#Nを発行し、その描画コマンド#1ないし#Nに従って画像描画が行われた場合に、その後、BD-Jアプリケーション31から、さらに、描画コマンドが発行されるかどうか、つまり、BD-Jアプリケーションによる描画コマンドの発行が完了したのかどうかを、表示画像生成部32は、認識することができない。
図9は、各画像フレーム単位の描画コマンドの設定例と実行態様を示す図である。
横軸a~bは、1つの画像フレーム対応の描画コマンドキュー格納領域に相当する。
縦軸に下から、順次時間経過に伴って表示される画像フレーム(フレーム番号20~24)を示している。
画像フレーム番号20の画像フレームが、全ての描画コマンドによる描画を完了し、デコード処理や変換処理を伴う表示処理に移行している段階にある。
横軸a~bは、1つの画像フレーム対応の描画コマンドキュー格納領域に相当する。
縦軸に下から、順次時間経過に伴って表示される画像フレーム(フレーム番号20~24)を示している。
画像フレーム番号20の画像フレームが、全ての描画コマンドによる描画を完了し、デコード処理や変換処理を伴う表示処理に移行している段階にある。
画像フレーム21~24には、各画像フレームの描画に必要となる実行予定の描画コマンドを示している。
描画コマンドは、各画像フレーム毎に必要となる数や、コマンド実行に必要となる時間が異なる。
描画コマンドは、各画像フレーム毎に必要となる数や、コマンド実行に必要となる時間が異なる。
画像フレーム22は、フレーム単位のコマンドキユーを超過した描画コマンドを実行する必要がある。この超過部分は、次のフレーム(画像フレーム23)用のキューに設定される。
このような設定がなされると、描画コマンドの実行完了が遅れてしまう、
一方、画像フレームの個々の表示期間は一定であるため、描画コマンドの実行期間が複数の画像フレームの描画処理期間にまたがると、描画途中の画像がそのままディスプレイに送り出されるということになる。
このような設定がなされると、描画コマンドの実行完了が遅れてしまう、
一方、画像フレームの個々の表示期間は一定であるため、描画コマンドの実行期間が複数の画像フレームの描画処理期間にまたがると、描画途中の画像がそのままディスプレイに送り出されるということになる。
このような問題を解消するため、描画コマンドによる画像描画を行うBD-Jアプリケーション31に、描画コマンドの1つとして、ある1つの描画コマンドによる描画処理の終了を通知する描画完了通知APIの呼び出しコマンドを設定する。
BD-Jアプリケーション31は、例えば、1つの画像フレームの描画を行うための一連の描画コマンドによる描画処理が完了した時点など、ある描画コマンドによる描画処理の完了時点で、描画完了通知APIの呼び出しコマンドを実行する。
BD-Jアプリケーション31は、例えば、1つの画像フレームの描画を行うための一連の描画コマンドによる描画処理が完了した時点など、ある描画コマンドによる描画処理の完了時点で、描画完了通知APIの呼び出しコマンドを実行する。
表示画像生成部32は、この描画完了通知APIの呼び出しコマンドの実行を検出することで、1つの描画コマンドによる描画処理が完了したことを検出することができる。
表示画像生成部32は、BD-Jアプリケーション31による描画完了通知APIの呼び出し処理が実行されたことを検出して、記憶部(グラフィックスプレーン)40に対する描画コマンドによる描画完了タイミングを認識することができる。
表示画像生成部32は、BD-Jアプリケーション31による描画完了通知APIの呼び出し処理が実行されたことを検出して、記憶部(グラフィックスプレーン)40に対する描画コマンドによる描画完了タイミングを認識することができる。
ここで、描画完了通知APIとしては、例えば、
「java.awt.Toolkit#sync()メソッド」
を採用することができる。
表示画像生成部32は、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しが行われない限りは、記憶部(グラフィックスプレーン)40に描画された画像の出力は行わない。
「java.awt.Toolkit#sync()メソッド」
を採用することができる。
表示画像生成部32は、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しが行われない限りは、記憶部(グラフィックスプレーン)40に描画された画像の出力は行わない。
なお、1つの画像フレームの間に、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しが、複数回行われると、画像フレームがコマ落ちする可能性がある。従って、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しを連続で複数回行うことや、描画量が少ないコマンドの発行をはさんだ描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しの連続実行は禁止する設定とする。
描画コマンドと、描画完了通知API「java.awt.Toolkit#sync()メソッド」の呼び出しコマンドの実行シーケンスの例を以下に示す。
描画コマンド#1
描画コマンド#2
・・・
描画コマンド#N
java.awt.Toolkit#sync()
描画コマンド#N+1
描画コマンド#N+2
・・・
描画コマンド#N+M
java.awt.Toolkit#sync()
描画コマンド#1
描画コマンド#2
・・・
描画コマンド#N
java.awt.Toolkit#sync()
描画コマンド#N+1
描画コマンド#N+2
・・・
描画コマンド#N+M
java.awt.Toolkit#sync()
上記コマンド設定例は、描画コマンド#1から描画コマンド#Nまでをアトミック、すなわち連続して実行する設定である。なお、この間、途中経過はエンドユーザに対して出力されない。
例えば、BD-Jアプリケーションが、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出し処理を1つの画像フレームに対応する描画コマンド列の完了時に実行する構成とすれば、表示画像生成部は、画像フレーム単位の描画処理の完了を知ることが可能となり、その後、その画像フレームに対して画像変換を実行することができる。
例えば、BD-Jアプリケーションが、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出し処理を1つの画像フレームに対応する描画コマンド列の完了時に実行する構成とすれば、表示画像生成部は、画像フレーム単位の描画処理の完了を知ることが可能となり、その後、その画像フレームに対して画像変換を実行することができる。
上記のようなコマンド列を実行して、描画コマンドによる描画完了後の画像に対する画像変換を実行するためには、BD-Jアプリケーション31による描画対象データを格納する記憶部(グラフィックスプレーン)40をダブルバッファ、あるいはトリプルバッファ等の構成とすればよい。
以下に示す2つの実施例について、順次、説明する。
(実施例1)記憶部(グラフィックスプレーン)40をダブルバッファとした構成
(実施例2)記憶部(グラフィックスプレーン)40をトリプルバッファとした構成
以下に示す2つの実施例について、順次、説明する。
(実施例1)記憶部(グラフィックスプレーン)40をダブルバッファとした構成
(実施例2)記憶部(グラフィックスプレーン)40をトリプルバッファとした構成
[5.(実施例1)記憶部(グラフィックスプレーン)をダブルバッファとした構成を適用した実施例について]
まず、実施例1として、記憶部(グラフィックスプレーン)をダブルバッファとした構成を適用した実施例について説明する。
まず、実施例1として、記憶部(グラフィックスプレーン)をダブルバッファとした構成を適用した実施例について説明する。
図10は、本実施例1の情報処理装置100の構成と処理について説明する図である。
なお、図10には、画像処理に利用される構成部のみを示している。
情報処理装置100は、データ処理部200、記憶部(グラフィックスプレーン)220、表示部250を有する。
なお、表示部250は、情報処理装置100の必須構成ではなく、図示しない出力部を介して接続される表示装置を利用する構成としてもよい。
なお、図10には、画像処理に利用される構成部のみを示している。
情報処理装置100は、データ処理部200、記憶部(グラフィックスプレーン)220、表示部250を有する。
なお、表示部250は、情報処理装置100の必須構成ではなく、図示しない出力部を介して接続される表示装置を利用する構成としてもよい。
データ処理部200は、
BD-Jアプリケーション実行部210、
表示画像生成部230、
バッファ管理部240、
を有する。
BD-Jアプリケーション実行部210、
表示画像生成部230、
バッファ管理部240、
を有する。
BD-Jアプリケーション実行部210は、先に図5を参照して説明した構成におけるBD-Jアプリケーション31に相当する。
表示画像生成部230は、先に図5を参照して説明した構成における表示画像生成部32に相当し、画像変換処理API33、プレゼンテーションエンジン34、画像デコーダ35、表示制御部36の実行する処理を実行する。
バッファ管理部240は、記憶部(グラフィックスプレーン)220内のバックバッファ221、フロントバッファ222の切り替え処理等を実行する。
表示画像生成部230は、先に図5を参照して説明した構成における表示画像生成部32に相当し、画像変換処理API33、プレゼンテーションエンジン34、画像デコーダ35、表示制御部36の実行する処理を実行する。
バッファ管理部240は、記憶部(グラフィックスプレーン)220内のバックバッファ221、フロントバッファ222の切り替え処理等を実行する。
なお、表示画像生成部230は、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a~cの少なくともいずれかの画像変換処理を実行する。すなわち、表示画像生成部230は、画像を出力する表示部250の表示機能に応じて画像変換態様を決定して、上記a~cの少なくともいずれかの画像変換処理を実行する。
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a~cの少なくともいずれかの画像変換処理を実行する。すなわち、表示画像生成部230は、画像を出力する表示部250の表示機能に応じて画像変換態様を決定して、上記a~cの少なくともいずれかの画像変換処理を実行する。
記憶部(グラフィックスプレーン)220は、
バックバッファ221、
フロントバッファ222、
これら2つのバッファを有するダブルバッファ構成となっている。
バックバッファ221、
フロントバッファ222、
これら2つのバッファを有するダブルバッファ構成となっている。
図10に示す処理ステップS101~S106の順に処理を実行する。
図11に示すフローチャートは、図10に示す処理ステップS101~S106の処理をフローとして示したものである。
図11に示すフローチャートは、図10に示す処理ステップS101~S106の処理をフローとして示したものである。
図10に示すデータ処理部は、プログラム実行機能を持つCPUを有し、図示しないメモリに格納されたプログラムを読み出して、図11に示すフローに従った処理を実行する。
以下、図10、図11に示すステップS101~S106の各処理の詳細について、順次、説明する。
以下、図10、図11に示すステップS101~S106の各処理の詳細について、順次、説明する。
(ステップS101)
情報処理装置100のデータ処理部200のBD-Jアプリケーション実行部210は、ステップS101において、BD-Jアプリケーションに規定された描画コマンドを実行する。
情報処理装置100のデータ処理部200のBD-Jアプリケーション実行部210は、ステップS101において、BD-Jアプリケーションに規定された描画コマンドを実行する。
(ステップS102)
次に、BD-Jアプリケーション実行部210は、ステップS102において、BD-Jアプリケーションに規定された描画コマンドの実行結果としての画像を記憶部220のバックバッファ221に格納する。
次に、BD-Jアプリケーション実行部210は、ステップS102において、BD-Jアプリケーションに規定された描画コマンドの実行結果としての画像を記憶部220のバックバッファ221に格納する。
(ステップS103)
次に、情報処理装置100のデータ処理部の表示画像生成部230は、ステップS101~S102において実行される描画コマンドの実行および実行結果のバックバッファ格納処理に並行して、フロントバッファ222に格納された画像の変換処理(解像度、ダイナミックレンジ、色変換の少なくともいずれか)を実行して、変換画像を表示部250に出力する。
次に、情報処理装置100のデータ処理部の表示画像生成部230は、ステップS101~S102において実行される描画コマンドの実行および実行結果のバックバッファ格納処理に並行して、フロントバッファ222に格納された画像の変換処理(解像度、ダイナミックレンジ、色変換の少なくともいずれか)を実行して、変換画像を表示部250に出力する。
(ステップS104)
次に、表示画像生成部230は、ステップS104において、BD-Jアプリケーション実行部210からの描画完了APIの呼び出しがあったか否かを判定する。
BD-Jアプリケーション実行部210から描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しがあったか否かを判定する。
次に、表示画像生成部230は、ステップS104において、BD-Jアプリケーション実行部210からの描画完了APIの呼び出しがあったか否かを判定する。
BD-Jアプリケーション実行部210から描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しがあったか否かを判定する。
API呼び出しがない場合は、ステップS101~S103の処理を繰り返す。
API呼び出しがあった場合は、ステップS105以下の処理を実行する。
API呼び出しがあった場合は、ステップS105以下の処理を実行する。
(ステップS105)
BD-Jアプリケーション実行部210からの描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しのあったことが確認された場合、情報処理装置100のデータ処理部200のバッファ管理部240は、ステップS104において、記憶部220のバックバッファ221と、フロントバッファ222の切り替え処理を行なう。
すなわち、バックバッファ221をフロントバッファに設定し、フロントバッファ222をバックバッファに設定する。
BD-Jアプリケーション実行部210からの描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しのあったことが確認された場合、情報処理装置100のデータ処理部200のバッファ管理部240は、ステップS104において、記憶部220のバックバッファ221と、フロントバッファ222の切り替え処理を行なう。
すなわち、バックバッファ221をフロントバッファに設定し、フロントバッファ222をバックバッファに設定する。
(ステップS106)
次に、データ処理部200のバッファ管理部240は、フロントバッファ(切り替え前のバックバッファ)の格納画像を、バックバッファ(切り替え前のフロントバッファ)にコピーする。
なお、このコピー処理期間内は、バックバッファに対する描画処理は停止する。
次に、データ処理部200のバッファ管理部240は、フロントバッファ(切り替え前のバックバッファ)の格納画像を、バックバッファ(切り替え前のフロントバッファ)にコピーする。
なお、このコピー処理期間内は、バックバッファに対する描画処理は停止する。
以降、ステップS101~S106の処理を繰り返す。
この図10、および図11を参照して説明したダブルバッファ構成を用いた場合の描画処理対象バッファの切り替えについて説明する。
例えば、BD-Jアプリケーションによる描画コマンドが以下のようなシーケンスで設定されているとする。
描画コマンド#1
描画コマンド#2
・・・
描画コマンド#N
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#N+1
描画コマンド#N+2
・・・
描画コマンド#N+M
描画完了通知API(java.awt.Toolkit#sync())
例えば、BD-Jアプリケーションによる描画コマンドが以下のようなシーケンスで設定されているとする。
描画コマンド#1
描画コマンド#2
・・・
描画コマンド#N
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#N+1
描画コマンド#N+2
・・・
描画コマンド#N+M
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#1~#Nは、バックバッファ221に対して実行される。
その後、
表示画像生成部230が、描画完了通知API(java.awt.Toolkit#sync())の発行を検出すると、
バッファ管理部240が、バックバッファ221とフロントバッファ222の切り替えを実行して、さらに、フロントバッファ(切り替え前のバックバッファ221)に格納されていた描画データをバックバッファ(切り替え前のフロントバッファ222)にコピーする。
この時点で、バッファ切り替え後のバックバッファ(切り替え前のフロントバッファ222)には、描画コマンド#1~#Nによる描画結果が格納された状態になる。
その後、
表示画像生成部230が、描画完了通知API(java.awt.Toolkit#sync())の発行を検出すると、
バッファ管理部240が、バックバッファ221とフロントバッファ222の切り替えを実行して、さらに、フロントバッファ(切り替え前のバックバッファ221)に格納されていた描画データをバックバッファ(切り替え前のフロントバッファ222)にコピーする。
この時点で、バッファ切り替え後のバックバッファ(切り替え前のフロントバッファ222)には、描画コマンド#1~#Nによる描画結果が格納された状態になる。
その後、BD-Jアプリケーションによって、描画コマンド#N+1~#N+Mが実行され、バッファ切り替え後のバックバッファ(切り替え前のフロントバッファ222)に対して、描画コマンド#N+1~#N+Mの実行結果が格納される。
このように、描画完了通知API(java.awt.Toolkit#sync())の発行前後において、API発行前の描画結果(描画コマンド#1~#Nの実行結果)を格納した一方のバッファの描画データが他方のバッファにコピーされ、その後、そのコピーされた描画データに対して、BD-Jアプリケーションによる、その後の描画コマンド(描画コマンド#N+1~#N+M)が実行され、途切れのない継続的なコマンド実行が可能となる。
さらに、その後の、描画完了通知API(java.awt.Toolkit#sync())の発行によって、描画コマンド(描画コマンド#N+1~#N+M)の実行結果を格納したバッファがフロントバッファに切り替えられ、フロントバッファの格納画像に対して画像変換処理、画像出力処理が実行されることになる。
このように、本実施例により、BD-Jアプリケーションによる描画コマンドを各画像フレーム単位で全て実行することが可能となる。
また、表示画像生成部230による画像変換、すなわち、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
これらの処理をBD-Jアプリケーションによる描画処理の完了した画像フレームに対して実行することが可能となり、その後の画像出力処理も、画像フレーム単位で完成された変換画像として出力することが可能となる。
また、表示画像生成部230による画像変換、すなわち、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
これらの処理をBD-Jアプリケーションによる描画処理の完了した画像フレームに対して実行することが可能となり、その後の画像出力処理も、画像フレーム単位で完成された変換画像として出力することが可能となる。
[6.(実施例2)記憶部(グラフィックスプレーン)40をトリプルバッファとした構成を適用した実施例について]
次に、実施例2として、記憶部(グラフィックスプレーン)をトリプルバッファとした構成を適用した実施例について説明する。
次に、実施例2として、記憶部(グラフィックスプレーン)をトリプルバッファとした構成を適用した実施例について説明する。
図12は、本実施例2の情報処理装置300の構成例を示す図である。
なお、図12には、画像処理に利用される構成部のみを示している。
情報処理装置300は、データ処理部400、記憶部(グラフィックスプレーン)420、表示部450を有する。
なお、表示部450は、情報処理装置300の必須構成ではなく、図示しない出力部を介して接続される表示装置を利用する構成としてもよい。
なお、図12には、画像処理に利用される構成部のみを示している。
情報処理装置300は、データ処理部400、記憶部(グラフィックスプレーン)420、表示部450を有する。
なお、表示部450は、情報処理装置300の必須構成ではなく、図示しない出力部を介して接続される表示装置を利用する構成としてもよい。
データ処理部400は、
BD-Jアプリケーション実行部410、
表示画像生成部430、
バッファ管理部440、
を有する。
BD-Jアプリケーション実行部410、
表示画像生成部430、
バッファ管理部440、
を有する。
BD-Jアプリケーション実行部410は、先に図5を参照して説明した構成におけるBD-Jアプリケーション31に相当する。
表示画像生成部430は、先に図5を参照して説明した構成における表示画像生成部32に相当し、画像変換処理API33、プレゼンテーションエンジン34、画像デコーダ35、表示制御部36の実行する処理を実行する。
バッファ管理部440は、記憶部(グラフィックスプレーン)420内のフロントバッファ1,422-1、フロントバッファ2,422-2の切り替え処理等を実行する。
表示画像生成部430は、先に図5を参照して説明した構成における表示画像生成部32に相当し、画像変換処理API33、プレゼンテーションエンジン34、画像デコーダ35、表示制御部36の実行する処理を実行する。
バッファ管理部440は、記憶部(グラフィックスプレーン)420内のフロントバッファ1,422-1、フロントバッファ2,422-2の切り替え処理等を実行する。
なお、表示画像生成部430は、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a~cの少なくともいずれかの画像変換処理を実行する。すなわち、表示画像生成部430は、画像を出力する表示部250の表示機能に応じて画像変換態様を決定して、上記a~cの少なくともいずれかの画像変換処理を実行する。
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a~cの少なくともいずれかの画像変換処理を実行する。すなわち、表示画像生成部430は、画像を出力する表示部250の表示機能に応じて画像変換態様を決定して、上記a~cの少なくともいずれかの画像変換処理を実行する。
記憶部(グラフィックスプレーン)420は、
バックバッファ421、
フロントバッファ1,422-1、
フロントバッファ2,422-2、
これら3つのバッファを有するトリプルバッファ構成となっている。
バックバッファ421、
フロントバッファ1,422-1、
フロントバッファ2,422-2、
これら3つのバッファを有するトリプルバッファ構成となっている。
図12に示す処理ステップS301~S306の順に処理を実行する。
図13に示すフローチャートは、図12に示す処理ステップS301~S306の処理をフローとして示したものである。
図13に示すフローチャートは、図12に示す処理ステップS301~S306の処理をフローとして示したものである。
図12に示すデータ処理部は、プログラム実行機能を持つCPUを有し、図示しないメモリに格納されたプログラムを読み出して、図13に示すフローに従った処理を実行する。
以下、図12、図13に示すステップS301~S306の各処理の詳細について、順次、説明する。
以下、図12、図13に示すステップS301~S306の各処理の詳細について、順次、説明する。
(ステップS301)
情報処理装置300のデータ処理部400のBD-Jアプリケーション実行部410は、ステップS301において、BD-Jアプリケーションに規定された描画コマンドを実行する。
情報処理装置300のデータ処理部400のBD-Jアプリケーション実行部410は、ステップS301において、BD-Jアプリケーションに規定された描画コマンドを実行する。
(ステップS302)
次に、BD-Jアプリケーション実行部410は、ステップS302において、BD-Jアプリケーションに規定された描画コマンドの実行結果としての画像を記憶部420のバックバッファ421に格納する。
次に、BD-Jアプリケーション実行部410は、ステップS302において、BD-Jアプリケーションに規定された描画コマンドの実行結果としての画像を記憶部420のバックバッファ421に格納する。
(ステップS303)
次に、情報処理装置300のデータ処理部のバッファ管理部440は、ステップS301~S302において実行される描画コマンドの実行および実行結果のバックバッファ格納処理に並行して、バックバッファ421に格納された画像データをフロントバッファ1,422-1にコピーする処理を実行する。
次に、情報処理装置300のデータ処理部のバッファ管理部440は、ステップS301~S302において実行される描画コマンドの実行および実行結果のバックバッファ格納処理に並行して、バックバッファ421に格納された画像データをフロントバッファ1,422-1にコピーする処理を実行する。
(ステップS304)
次に、情報処理装置300のデータ処理部の表示画像生成部430は、ステップS301~S303の各処理に並行して、ステップS304において、フロントバッファ2,422-2に格納された画像の変換処理(解像度、ダイナミックレンジ、色変換の少なくともいずれか)を実行して、変換画像を表示部450に出力する。
次に、情報処理装置300のデータ処理部の表示画像生成部430は、ステップS301~S303の各処理に並行して、ステップS304において、フロントバッファ2,422-2に格納された画像の変換処理(解像度、ダイナミックレンジ、色変換の少なくともいずれか)を実行して、変換画像を表示部450に出力する。
(ステップS305)
次に、表示画像生成部430は、ステップS305において、BD-Jアプリケーション実行部410からの描画完了APIの呼び出しがあったか否かを判定する。
BD-Jアプリケーション実行部410から描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しがあったか否かを判定する。
次に、表示画像生成部430は、ステップS305において、BD-Jアプリケーション実行部410からの描画完了APIの呼び出しがあったか否かを判定する。
BD-Jアプリケーション実行部410から描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しがあったか否かを判定する。
API呼び出しがない場合は、ステップS301~S304の処理を繰り返す。
API呼び出しがあった場合は、ステップS306の処理を実行する。
API呼び出しがあった場合は、ステップS306の処理を実行する。
(ステップS306)
BD-Jアプリケーション実行部410からの描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しのあったことが確認された場合、情報処理装置300のデータ処理部400のバッファ管理部440は、ステップS306において、記憶部420のフロントバッファ1,422-1と、フロントバッファ2,422-2の切り替え処理を行なう。
すなわち、フロントバッファ1,422-1をフロントバッファ2に設定し、フロントバッファ2,422-2をフロントバッファ1に設定する。
以降、ステップS301~S306の処理を繰り返す。
BD-Jアプリケーション実行部410からの描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しのあったことが確認された場合、情報処理装置300のデータ処理部400のバッファ管理部440は、ステップS306において、記憶部420のフロントバッファ1,422-1と、フロントバッファ2,422-2の切り替え処理を行なう。
すなわち、フロントバッファ1,422-1をフロントバッファ2に設定し、フロントバッファ2,422-2をフロントバッファ1に設定する。
以降、ステップS301~S306の処理を繰り返す。
この図12、および図13を参照して説明したトリプルバッファ構成を用いた場合の描画処理対象バッファの切り替えについて説明する。
例えば、BD-Jアプリケーションによる描画コマンドが以下のようなシーケンスで設定されているとする。
描画コマンド#1
描画コマンド#2
・・・
描画コマンド#N
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#N+1
描画コマンド#N+2
・・・
描画コマンド#N+M
描画完了通知API(java.awt.Toolkit#sync())
例えば、BD-Jアプリケーションによる描画コマンドが以下のようなシーケンスで設定されているとする。
描画コマンド#1
描画コマンド#2
・・・
描画コマンド#N
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#N+1
描画コマンド#N+2
・・・
描画コマンド#N+M
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#1~#Nは、バックバッファ421に対して実行され、同時に、コピーデータがフロントバッファ1,422-1にも格納される。
その後、
表示画像生成部430が、描画完了通知API(java.awt.Toolkit#sync())の発行を検出すると、
バッファ管理部440が、フロントバッファ1,422-1と、フロントバッファ2,422-2の切り替えを実行する。
この時点で、バッファ切り替え後のフロントバッファ2(切り替え前のフロントバッファ1)には、描画コマンド#1~#Nによる描画結果が格納された状態になる。
その後、
表示画像生成部430が、描画完了通知API(java.awt.Toolkit#sync())の発行を検出すると、
バッファ管理部440が、フロントバッファ1,422-1と、フロントバッファ2,422-2の切り替えを実行する。
この時点で、バッファ切り替え後のフロントバッファ2(切り替え前のフロントバッファ1)には、描画コマンド#1~#Nによる描画結果が格納された状態になる。
その後、BD-Jアプリケーションによって、描画コマンド#N+1~#N+Mが実行され、バックバッファ、およびバッファ切り替え後のフロントバッファ2(切り替え前のフロントバッファ1)に対して、描画コマンド#N+1~#N+Mの実行結果が格納される。
このように、描画完了通知API(java.awt.Toolkit#sync())の発行前後において、API発行前の描画結果(描画コマンド#1~#Nの実行結果)を格納した一方のフロントバッファに対して、BD-Jアプリケーションによる、その後の描画コマンド(描画コマンド#N+1~#N+M)の実行結果を格納することが可能となり、途切れのない継続的なコマンド実行結果の格納処理が可能となる。
さらに、その後の、描画完了通知API(java.awt.Toolkit#sync())の発行によって、描画コマンド(描画コマンド#N+1~#N+M)の実行結果を格納したバッファが出力対象となるフロントバッファに切り替えられ、出力対象フロントバッファの格納画像に対して画像変換処理、画像出力処理が実行されることになる。
このように、本実施例により、BD-Jアプリケーションによる描画コマンドを各画像フレーム単位で全て実行することが可能となる。
また、表示画像生成部430による画像変換、すなわち、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
これらの処理をBD-Jアプリケーションによる描画処理の完了した画像フレームに対して実行することが可能となり、その後の画像出力処理も、画像フレーム単位で完成された変換画像として出力することが可能となる。
また、表示画像生成部430による画像変換、すなわち、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
これらの処理をBD-Jアプリケーションによる描画処理の完了した画像フレームに対して実行することが可能となり、その後の画像出力処理も、画像フレーム単位で完成された変換画像として出力することが可能となる。
[7.情報処理装置のハードウェア構成例について]
最後に、図14を参照して、上述した処理を実行する情報処理装置のハードウェア構成例について説明する。
最後に、図14を参照して、上述した処理を実行する情報処理装置のハードウェア構成例について説明する。
CPU(Central Processing Unit)501は、ROM(Read Only Memory)502、または記憶部508に記憶されているプログラムに従って各種の処理を実行するデータ処理部として機能する。例えば、上述したフローチャートに従った処理を実行する。RAM(Random Access Memory)503には、CPU501が実行するプログラムやデータなどが記憶される。これらのCPU501、ROM502、およびRAM503は、バス504により相互に接続されている。
CPU501はバス504を介して入出力インタフェース505に接続され、入出力インタフェース505には、各種スイッチ、キーボード、マウス、マイクロホンなどよりなる入力部506、ディスプレイ、スピーカなどよりなる出力部507が接続されている。CPU501は、入力部506から入力される指令に対応して各種の処理を実行し、処理結果を例えば出力部507に出力する。
入出力インタフェース505に接続されている記憶部508は、例えばハードディスク等からなり、CPU501が実行するプログラムや各種のデータを記憶する。通信部509は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
入出力インタフェース505に接続されているドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア511を駆動し、記録されているコンテンツや鍵情報等の各種データを取得する。例えば、取得されたコンテンツや鍵データを用いて、CPUによって実行する再生プログラムに従ってコンテンツの復号、再生処理などが行われる。
[8.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) 描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理装置。
(1) 描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理装置。
(2) 前記記憶部は、
フロントバッファとバックバッファから構成されるダブルバッファ構成であり、
前記アプリケーション実行部は、
描画コマンドによる描画処理結果を前記バックバッファに格納し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、フロントバッファとバックバッファとの切り換え処理を実行する(1)に記載の情報処理装置。
フロントバッファとバックバッファから構成されるダブルバッファ構成であり、
前記アプリケーション実行部は、
描画コマンドによる描画処理結果を前記バックバッファに格納し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、フロントバッファとバックバッファとの切り換え処理を実行する(1)に記載の情報処理装置。
(3) 前記表示画像生成部は、
前記フロントバッファに格納された画像に対する画像変換処理を実行する(2)に記載の情報処理装置。
前記フロントバッファに格納された画像に対する画像変換処理を実行する(2)に記載の情報処理装置。
(4) 前記記憶部は、
バックバッファと、第1フロントバッファと、第2フロントバッファから構成されるトリプルバッファ構成であり、
前記アプリケーション実行部は、
描画コマンドによる描画処理結果を前記バックバッファに格納し、
前記第1フロントバッファは、前記バックバッファのコピーデータを格納する構成であり、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、第1フロントバッファと第2フロントバッファとの切り換え処理を実行する(1)に記載の情報処理装置。
バックバッファと、第1フロントバッファと、第2フロントバッファから構成されるトリプルバッファ構成であり、
前記アプリケーション実行部は、
描画コマンドによる描画処理結果を前記バックバッファに格納し、
前記第1フロントバッファは、前記バックバッファのコピーデータを格納する構成であり、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、第1フロントバッファと第2フロントバッファとの切り換え処理を実行する(1)に記載の情報処理装置。
(5) 前記表示画像生成部は、
前記第2フロントバッファに格納された画像に対する画像変換処理を実行する(4)に記載の情報処理装置。
前記第2フロントバッファに格納された画像に対する画像変換処理を実行する(4)に記載の情報処理装置。
(6) 前記表示画像生成部は、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a~cの少なくともいずれかの画像変換処理を実行する(1)~(5)いずれかに記載の情報処理装置。
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a~cの少なくともいずれかの画像変換処理を実行する(1)~(5)いずれかに記載の情報処理装置。
(7) 前記表示画像生成部は、
画像を出力する表示部の表示機能に応じて画像変換態様を決定する(1)~(6)いずれかに記載の情報処理装置。
画像を出力する表示部の表示機能に応じて画像変換態様を決定する(1)~(6)いずれかに記載の情報処理装置。
(8) 情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理方法。
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理方法。
(9) 情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記プログラムは、
前記アプリケーション実行部に、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行させ、
前記バッファ管理部に、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行させ、
前記表示画像生成部に、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行させるプログラム。
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記プログラムは、
前記アプリケーション実行部に、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行させ、
前記バッファ管理部に、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行させ、
前記表示画像生成部に、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行させるプログラム。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本開示の一実施例の構成によれば、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
具体的には、描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、記憶部の描画画像に対する変換処理を実行する表示画像生成部と、記憶部の複数バッファの切り替えを実行するバッファ管理部を有する。アプリケーション実行部は、描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出しを実行し、バッファ管理部は、描画完了通知APIの呼び出しに応じてバッファ切り替え処理を実行する。表示画像生成部は、アプリ実行部の描画中のバッファと異なるバッファの格納画像に対する画像変換を実行する。
本構成により、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
具体的には、描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、記憶部の描画画像に対する変換処理を実行する表示画像生成部と、記憶部の複数バッファの切り替えを実行するバッファ管理部を有する。アプリケーション実行部は、描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出しを実行し、バッファ管理部は、描画完了通知APIの呼び出しに応じてバッファ切り替え処理を実行する。表示画像生成部は、アプリ実行部の描画中のバッファと異なるバッファの格納画像に対する画像変換を実行する。
本構成により、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
10 記録メディア
20 情報処理装置
21 PC
22 再生装置
23 TV
30 データ処理部
31 BD-Jアプリケーション
32 表示画像生成部
33 画像変換処理API
34 プレゼンテーションエンジン
35 画像デコーダ
36 表示制御部
100 情報処理装置
200 データ処理部
210 BD-Jアプリケーション実行部
220 記憶部(グラフィックスプレーン)
221 バックバッファ
222 フロントバッファ
230 表示画像生成部
240 バッファ管理部
250 表示部
300 情報処理装置
400 データ処理部
410 BD-Jアプリケーション実行部
420 記憶部(グラフィックスプレーン)
421 バックバッファ
422 フロントバッファ
430 表示画像生成部
440 バッファ管理部
450 表示部
501 CPU
502 ROM
503 RAM
504 バス
505 入出力インタフェース
506 入力部
507 出力部
508 記憶部
509 通信部
510 ドライブ
511 リムーバブルメディア
20 情報処理装置
21 PC
22 再生装置
23 TV
30 データ処理部
31 BD-Jアプリケーション
32 表示画像生成部
33 画像変換処理API
34 プレゼンテーションエンジン
35 画像デコーダ
36 表示制御部
100 情報処理装置
200 データ処理部
210 BD-Jアプリケーション実行部
220 記憶部(グラフィックスプレーン)
221 バックバッファ
222 フロントバッファ
230 表示画像生成部
240 バッファ管理部
250 表示部
300 情報処理装置
400 データ処理部
410 BD-Jアプリケーション実行部
420 記憶部(グラフィックスプレーン)
421 バックバッファ
422 フロントバッファ
430 表示画像生成部
440 バッファ管理部
450 表示部
501 CPU
502 ROM
503 RAM
504 バス
505 入出力インタフェース
506 入力部
507 出力部
508 記憶部
509 通信部
510 ドライブ
511 リムーバブルメディア
Claims (9)
- 描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理装置。 - 前記記憶部は、
フロントバッファとバックバッファから構成されるダブルバッファ構成であり、
前記アプリケーション実行部は、
描画コマンドによる描画処理結果を前記バックバッファに格納し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、フロントバッファとバックバッファとの切り換え処理を実行する請求項1に記載の情報処理装置。 - 前記表示画像生成部は、
前記フロントバッファに格納された画像に対する画像変換処理を実行する請求項2に記載の情報処理装置。 - 前記記憶部は、
バックバッファと、第1フロントバッファと、第2フロントバッファから構成されるトリプルバッファ構成であり、
前記アプリケーション実行部は、
描画コマンドによる描画処理結果を前記バックバッファに格納し、
前記第1フロントバッファは、前記バックバッファのコピーデータを格納する構成であり、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、第1フロントバッファと第2フロントバッファとの切り換え処理を実行する請求項1に記載の情報処理装置。 - 前記表示画像生成部は、
前記第2フロントバッファに格納された画像に対する画像変換処理を実行する請求項4に記載の情報処理装置。 - 前記表示画像生成部は、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a~cの少なくともいずれかの画像変換処理を実行する請求項1に記載の情報処理装置。 - 前記表示画像生成部は、
画像を出力する表示部の表示機能に応じて画像変換態様を決定する請求項1に記載の情報処理装置。 - 情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理方法。 - 情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記プログラムは、
前記アプリケーション実行部に、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行させ、
前記バッファ管理部に、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行させ、
前記表示画像生成部に、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017534149A JP6812973B2 (ja) | 2015-08-11 | 2016-07-19 | 情報処理装置、および情報処理方法、並びにプログラム |
US15/742,201 US20180197509A1 (en) | 2015-08-11 | 2016-07-19 | Information processing device, information processing method, and program |
EP16834927.2A EP3336833A4 (en) | 2015-08-11 | 2016-07-19 | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING PROCESS AND PROGRAM |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015159089 | 2015-08-11 | ||
JP2015-159089 | 2015-08-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017026230A1 true WO2017026230A1 (ja) | 2017-02-16 |
Family
ID=57983106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/071112 WO2017026230A1 (ja) | 2015-08-11 | 2016-07-19 | 情報処理装置、および情報処理方法、並びにプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180197509A1 (ja) |
EP (1) | EP3336833A4 (ja) |
JP (1) | JP6812973B2 (ja) |
WO (1) | WO2017026230A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019122029A (ja) * | 2017-12-27 | 2019-07-22 | キヤノン株式会社 | 電子機器 |
EP3525203A1 (en) * | 2017-07-06 | 2019-08-14 | Channel One Holdings Inc. | Display buffering methods and systems |
US10929946B2 (en) | 2018-06-01 | 2021-02-23 | Channel One Holdings Inc. | Display buffering methods and systems |
US11164496B2 (en) | 2019-01-04 | 2021-11-02 | Channel One Holdings Inc. | Interrupt-free multiple buffering methods and systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010113728A1 (ja) * | 2009-04-03 | 2010-10-07 | ソニー株式会社 | 情報処理装置、情報処理方法、及び、プログラム |
WO2015005189A1 (ja) * | 2013-07-12 | 2015-01-15 | ソニー株式会社 | 再生装置、再生方法、および記録媒体 |
JP2015099340A (ja) * | 2013-11-20 | 2015-05-28 | シャープ株式会社 | 画像表示装置、テレビジョン受像機、画像表示方法、プログラム、及び、記録媒体 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5844569A (en) * | 1996-04-25 | 1998-12-01 | Microsoft Corporation | Display device interface including support for generalized flipping of surfaces |
WO1999040518A1 (en) * | 1998-02-10 | 1999-08-12 | Intel Corporation | Method and apparatus to synchronize graphics rendering and display |
US7586492B2 (en) * | 2004-12-20 | 2009-09-08 | Nvidia Corporation | Real-time display post-processing using programmable hardware |
TWI267036B (en) * | 2005-02-24 | 2006-11-21 | Asustek Comp Inc | Method and apparatus for capturing full-screen frames |
US8036469B2 (en) * | 2006-05-16 | 2011-10-11 | Canon Kabushiki Kaisha | Imaging apparatus including a separable monitor, and method for controlling the imaging apparatus |
JP4312238B2 (ja) * | 2007-02-13 | 2009-08-12 | 株式会社ソニー・コンピュータエンタテインメント | 画像変換装置および画像変換方法 |
FR2920631B1 (fr) * | 2007-08-30 | 2010-01-22 | Alstom Transport Sa | Systeme et procede de traitement d'un signal video |
US9053559B1 (en) * | 2007-11-16 | 2015-06-09 | Nvidia Corporation | Method and system for presenting image data to a video output device |
JP2009133956A (ja) * | 2007-11-29 | 2009-06-18 | Mitsubishi Electric Corp | 画像表示システム |
US8054316B2 (en) * | 2008-11-14 | 2011-11-08 | Nvidia Corporation | Picture processing using a hybrid system configuration |
US8730251B2 (en) * | 2010-06-07 | 2014-05-20 | Apple Inc. | Switching video streams for a display without a visible interruption |
US9384276B1 (en) * | 2011-05-03 | 2016-07-05 | Amazon Technologies, Inc. | Reducing latency for remotely executed applications |
EP2756408A4 (en) * | 2011-09-12 | 2015-02-18 | Intel Corp | MULTIPLE SIMULTANEOUS DISPLAYS ON A SCREEN |
US8847970B2 (en) * | 2012-04-18 | 2014-09-30 | 2236008 Ontario Inc. | Updating graphical content based on dirty display buffers |
US10388255B2 (en) * | 2018-06-29 | 2019-08-20 | Intel Corporation | Computers for supporting multiple virtual reality display devices and related methods |
-
2016
- 2016-07-19 WO PCT/JP2016/071112 patent/WO2017026230A1/ja active Application Filing
- 2016-07-19 US US15/742,201 patent/US20180197509A1/en not_active Abandoned
- 2016-07-19 EP EP16834927.2A patent/EP3336833A4/en not_active Withdrawn
- 2016-07-19 JP JP2017534149A patent/JP6812973B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010113728A1 (ja) * | 2009-04-03 | 2010-10-07 | ソニー株式会社 | 情報処理装置、情報処理方法、及び、プログラム |
WO2015005189A1 (ja) * | 2013-07-12 | 2015-01-15 | ソニー株式会社 | 再生装置、再生方法、および記録媒体 |
JP2015099340A (ja) * | 2013-11-20 | 2015-05-28 | シャープ株式会社 | 画像表示装置、テレビジョン受像機、画像表示方法、プログラム、及び、記録媒体 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3336833A4 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3525203A1 (en) * | 2017-07-06 | 2019-08-14 | Channel One Holdings Inc. | Display buffering methods and systems |
US11049211B2 (en) | 2017-07-06 | 2021-06-29 | Channel One Holdings Inc. | Methods and system for asynchronously buffering rendering by a graphics processing unit |
JP2019122029A (ja) * | 2017-12-27 | 2019-07-22 | キヤノン株式会社 | 電子機器 |
JP7191649B2 (ja) | 2017-12-27 | 2022-12-19 | キヤノン株式会社 | 電子機器 |
US10929946B2 (en) | 2018-06-01 | 2021-02-23 | Channel One Holdings Inc. | Display buffering methods and systems |
US11164496B2 (en) | 2019-01-04 | 2021-11-02 | Channel One Holdings Inc. | Interrupt-free multiple buffering methods and systems |
Also Published As
Publication number | Publication date |
---|---|
EP3336833A1 (en) | 2018-06-20 |
US20180197509A1 (en) | 2018-07-12 |
EP3336833A4 (en) | 2019-04-10 |
JPWO2017026230A1 (ja) | 2018-06-07 |
JP6812973B2 (ja) | 2021-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6484368B2 (ja) | 再生装置 | |
US9832440B2 (en) | Reproduction device, reproduction method, and recording medium that display graphics based on tone mapping | |
JP6134076B2 (ja) | 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム | |
US9706184B2 (en) | Reproduction device, reproduction method, and recording medium | |
JP4919122B2 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
WO2010113728A1 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
WO2010113729A1 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
JP4915458B2 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
JP6812973B2 (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
JP2017168181A (ja) | 記録媒体 | |
RU2490730C2 (ru) | Устройство для воспроизведения данных с носителя для хранения информации | |
JP2018129115A (ja) | 再生装置 | |
WO2010113731A1 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
JP4577409B2 (ja) | 再生装置、再生方法、プログラム、及び、データ構造 | |
JP6536914B2 (ja) | 再生装置、情報処理方法、およびプログラム | |
JP4962825B2 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
JP4962673B1 (ja) | 情報処理装置、情報処理方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16834927 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017534149 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2016834927 Country of ref document: EP |