An image hierarchy generation unit reads image data stored in a hard disk drive, generate images with a plurality of resolutions, and hierarchizes the images. An image dividing unit divides the image in each layer into tile images. A redundancy detection unit analyzes the image in each layer so as to detect redundancy between images within the same layer or images from different layers. A tile image reference table creates a tile image reference table that maps area numbers to tile numbers, in view of the redundancy. An image file generation unit creates an image file that should be ultimately output and includes image data and the tile image reference table.
|
13. An image file generation method comprising:
reading image data from a memory, generating a plurality of pieces of image data with different resolutions, and generate hierarchical data formed by hierarchizing the plurality of pieces of data as layers according to resolution;
dividing image data at each layer of the hierarchical data into tile images of a predetermined size;
creating a tile image reference table that maps post-division areas in the image data at each layer of the hierarchical data to data for tile images used to render the areas; and
generating an image file that includes data for the tile image and the tile image reference table and outputting the table to the memory.
20. A data structure of an image file read from a storage device to display at least a part of an image on a display, the data structure mapping data for tile images to a tile image reference table, the data for tile images being produced by dividing image data into a predetermined size, the image data representing a single image with different resolutions, and
the tile image reference table mapping post-division areas in the image data in a hierarchical structure produced by hierarchizing the image data according to resolution to data for tile images used to render the post-division areas,
wherein the tile image reference table maps data for a given tile image to a plurality of areas, and the image file does not include data for a tile image that is not mapped in the tile image reference table.
1. An image file generation device comprising:
an image hierarchy generation unit configured to generate a plurality of pieces of image data with different resolutions from input image data and generate hierarchical data formed by hierarchizing the plurality of pieces of data as layers according to resolution;
an image division unit configured to divide image data at each layer of the hierarchical data into tile images of predetermined sizes;
a tile image reference table creation unit configured to create a tile image reference table that maps post-division areas in the image data at each layer of the hierarchical data to data for tile images used to render the areas; and
an image file generation unit configured to generate an image file that includes data for the tile image and the tile image reference table.
18. A non-transitory computer readable recording medium containing a computer program, the computer program comprising:
a module configured to read image data from a memory, generate a plurality of pieces of image data with different resolutions, and generate hierarchical data formed by hierarchizing the plurality of pieces of data as layers according to resolution;
a module configured to divide image data at each layer of the hierarchical data into tile images of a predetermined size;
a module configured to create a tile image reference table that maps post-division areas in the image data at each layer of the hierarchical data to data for tile images used to render the post-division areas; and
a module configured to generate an image file that includes data for the tile image and the tile image reference table and output the table to the memory.
15. An image processing method comprising:
reading, from a memory, an image file that includes data for tile images produced by dividing image data into a predetermined size, the image data representing a single image with different resolutions, and includes a tile image reference table that maps post-division areas in the image data in a hierarchical structure produced by hierarchizing the image data according to resolution, to data for tile images used to render the post-division areas;
acknowledging a user request to change a display area including shift on an image plane and change in resolution;
identifying data for a tile image necessary to render an area that should be newly displayed in response to the request to change a display area, by referring to the tile image reference table; and
rendering the area that should be newly displayed based on the data for the identified tile image.
19. A non-transitory computer readable recording medium containing a computer program, the computer program comprising:
a module configured to read, from a memory, an image file that includes data for tile images produced by dividing image data into a predetermined size, the image representing a single image with different resolutions, and includes a tile image reference table that maps post-division areas in the image data in a hierarchical structure produced by hierarchizing the image data according to resolution, to data for tile images used to render the post-division areas;
a module configured to acknowledge a user request to change a display area including shift on an image plane and change in resolution;
a module configured to identify data for a tile image necessary to render an area that should be newly displayed in response to the request to change a display area, by referring to the tile image reference table; and
a module configured to render the area that should be newly displayed based on the data for the identified tile image.
7. An image processing device comprising:
a storage device configured to store an image file that includes data for tile images produced by dividing image data into a predetermined size, the image data representing a single image with different resolutions, and includes a tile image reference table that maps post-division areas in the image data in a hierarchical structure produced by hierarchizing the image data according to resolution, to data for tile images used to render the post-division areas;
an input information acquisition unit configured to acknowledge a user request to change a display area including shift on an image plane and change in resolution;
a tile image identification unit configured to identify data for a tile image necessary to render an area that should be newly displayed in response to the request to change a display area, by referring to the tile image reference table; and
a displayed image processing unit configured to read the data for the identified tile image from the storage device and to render the area that should be newly displayed.
2. The image file generation device according to
3. The image file generation device according to
a redundancy detection unit configured to analyze an image in a layer of a given resolution so as to identify an area in an image in a layer of a higher resolution that can be rendered using data for a tile image included in the image of the given resolution,
wherein the tile image reference table creation unit maps the area identified by the redundancy detection unit to the data for the tile image used for rendering.
4. The image file generation device according to
5. The image file generation device according to
6. The image file generation device according to
8. The image processing device according to
9. The image processing device according to
10. The image processing device according to
wherein the tile image reference table maps an area in an image of a given resolution to the data for the tile image included in the image of the lower resolution and further defines a magnification factor referred to when the tile image is used to render the area, and
the displayed image processing unit renders the area by enlarging the tile image by the magnification factor.
11. The image processing device according to
a tile image generation unit configured to newly generate data for a tile image for an area that should be updated and store resultant data in a storage area in the storage device different from an area for pre-update tile image data included in the image file; and
a tile image reference table update unit configured to update data for a tile image mapped in the tile image reference table to the area that should be updated with the newly generated data for the tile image,
wherein the displayed image processing unit reads the newly generated data for the tile image in accordance with the updating of the tile image reference table and refreshes the displayed image.
12. The image processing device according to
the input information acquisition unit acknowledges a request to cancel the request to update a part of an image,
the tile image reference table update unit returns the newly-generated data for the tile image mapped in the tile image reference table to the area that should be updated to the data for the tile image previously mapped to the area that should be updated, and
the displayed image processing unit renders the displayed image afresh in accordance with the updating of tile image reference table.
14. The image file generation method according to
16. The image processing method according to
17. The image processing method according to
acknowledging a request to change a part of an image that should be displayed;
newly generating data for a tile image for an area that should be updated and storing resultant data in a storage area in the memory different from an area for pre-update tile image data included in the image file;
updating data for a tile image mapped in the tile image reference table to the area that should be updated with the newly generated data for the tile image; and
reading the newly generated data for the tile image in accordance with the updating of the tile image reference table and refreshing the displayed image.
|
The present invention relates to an image processing technology for enlarging/reducing an image displayed on a display, or moving the image upward, downward, leftward, or rightward.
Home entertainment systems are proposed capable of playing back moving images as well as running game programs. In home entertainment systems, a GPU generates three-dimensional images using polygons (see, for example, patent document No. 1).
Regardless of the purpose of image display, improvement in efficiency of displaying images is an important and constant challenge. High-speed rendering of high-definition images requires various efforts. For example, there is proposed a method of storing texture data separately to make the process of mapping efficient (e.g., non-patent document Nos. 1 and 2).
For responsive display of high-definition images, reduction in data size and high-speed rendering are important and constant challenges. Techniques designed to address these challenges by devising a data structure such as texture mapping as described above involve a problem in that, once the data for a displayed image is built, complex processes are required when a need arises to update a part of an image
The present invention addresses the problem as described above and a purpose thereof is to provide image processing technology capable of generating and displaying highly efficiently compressed image data.
One embodiment of the present invention relates to an image file generation device. The image file generation device comprises: an image hierarchy generation unit configured to generate a plurality of pieces of image data with different resolutions from input image data and generate hierarchical data formed by hierarchizing the plurality of pieces of data as layers according to resolution; an image division unit configured to divide image data at each layer of the hierarchical data into tile images of a predetermined size; a tile image reference table creation unit configured to create a tile image reference table that maps post-division areas in the image data at each layer of the hierarchical data to data for tile images used to render the post-division areas; and an image file generation unit configured to generate an image file that includes data for the tile image and the tile image reference table.
Another embodiment of the present invention relates to an image processing device. The image processing device comprises: a storage device configured to store an image file that includes data for tile images produced by dividing image data into a predetermined size, the image data representing a single image with different resolutions, and includes a tile image reference table that maps post-division areas in the image data in a hierarchical structure produced by hierarchizing the image data according to resolution, to data for tile images used to render the post-division areas; an input information acquisition unit configured to acknowledge a user request to change a display area including shift on an image plane and change in resolution; a tile image identification unit configured to identify data for a tile image necessary to render an area that should be newly displayed in response to the request to change a display area, by referring to the tile image reference table; and a displayed image processing unit configured to read the data for the identified tile image from the storage device and to render the area that should be newly displayed.
Still another embodiment of the present invention relates to an image file generation method. The image processing method comprises: reading image data from a memory, generating a plurality of pieces of image data with different resolutions, and generate hierarchical data formed by hierarchizing the plurality of pieces of data as layers according to resolution; dividing image data at each layer of the hierarchical data into tile images of a predetermined size; creating a tile image reference table that maps post-division areas in the image data at each layer of the hierarchical data to data for tile images used to render the areas; and generating an image file that includes data for the tile image and the tile image reference table and outputting the table to the memory.
Yet another embodiment of the present invention relates to an image processing method. The image processing method comprises: reading, from a memory, an image file that includes data for tile images produced by dividing image data into a predetermined size, the image data representing a single image with different resolutions, and includes a tile image reference table that maps post-division areas in the image data in a hierarchical structure produced by hierarchizing the image data according to resolution, to data for tile images used to render the post-division areas; acknowledging a user request to change a display area including shift on an image plane and change in resolution; identifying data for a tile image necessary to render an area that should be newly displayed in response to the request to change a display area, by referring to the tile image reference table; and rendering the area that should be newly displayed based on the data for the identified tile image.
Still another embodiment of the present invention relates to a data structure of an image file. The data structure is for an image file read from a storage device to display at least a part of an image on a display, the data structure mapping data for tile images to a tile image reference table, the data for tile images being produced by dividing image data into a predetermined size, the image data representing a single image with different resolutions, and the tile image reference table mapping post-division areas in the image data in a hierarchical structure produced by hierarchizing the image data according to resolution to data for tile images used to render the post-division areas, wherein the tile image reference table maps data for a given tile image to a plurality of areas, and the image file does not include data for a tile image that is not mapped in the tile image reference table.
Optional combinations of the aforementioned constituting elements, and implementations of the invention in the form of methods, apparatuses, systems, computer programs, data structures, and recording mediums may also be practiced as additional modes of the present invention.
According to the present invention, an image processing device capable of building image data for showing an image in a wide range of resolutions is provided.
Image data subject to processing according to this embodiment has a hierarchical structure comprising images of different resolutions generated by reducing the size of an original image in a plurality of stages. An image in each layer is divided into one or a plurality of tile images. For example, the image with the lowest resolution comprises one tile image. The original image with the highest resolution comprises the largest number of tile images. Images are displayed such that an enlarged view or reduced view is presented efficiently by switching an image currently used for rendering to a tile image of a different layer when the displayed image reaches a predetermined resolution.
A description will be given of the basic mode of displaying an image having a hierarchical structure such as that described above.
The image processing device 10 may be a game device so that image processing functionality is achieved by loading an application for image processing. The image processing device 10 may be a personal computer so that image processing functionality is achieved by loading an application for image processing.
The image processing device 10 changes a display area by enlarging/reducing an image displayed on the display of the display device 12 or moving the image upward, downward, leftward, or rightward, in accordance with a user request. When the user manipulates an input device by viewing an image displayed on the display, the input device transmits a request signal to change a display area to the image processing device 10.
The user control means of the input device 20 in the information processing system 1 is assigned the function of entering a request for enlarging/reducing a displayed image, and entering a request for scrolling upward, downward, leftward, or rightward. For example, the function of entering a request for enlarging/reducing a displayed image may be allocated to the right analog stick 27b. The user can enter a request to reduce a displayed image by pulling the analog stick 27b toward the user and can enter a request to enlarge a displayed image by pushing it away from the user. The function of entering a request for moving a display area may be allocated to the directional keys 21. By pressing the directional keys 21, the user can enter a request for movement in the direction in which the directional keys 21 is pressed. The function of entering a request to change an image may be allocated to alternative user control means. For example, the function of entering a request for scrolling may be allocated to the analog stick 27a.
The input device 20 has the function of transferring an input signal requesting change of a display area to the image processing device 10. In the embodiment, the input device 20 is configured to be capable of communicating with the image processing device 10 wirelessly. The input device 20 and the image processing device 10 may establish communication using the Bluetooth (registered trademark) protocol or the IEEE802.11 protocol. The input device 20 may be connected to the image processing device 10 via a cable so as to transfer a signal requesting change of a display area to the image processing device 10 accordingly.
The hierarchical image data shown in
The hierarchical image data is compressed in a predefined compression format and is stored in a storage device and is read from the storage device and decoded before being displayed on the display. The image processing device 10 according to the embodiment is provided with the decoding function compatible with a plurality of compression formats. For example, the device is capable of decoding compressed data in the S3TC format, JPEG format, JPEG2000 format. Compression may be performed for each tile image. Alternatively, a plurality of tile images included in the same layer or a plurality of layers may be compressed at a time.
As shown in
The switch 42 is an Ethernet switch (Ethernet is a registered trademark), a device connected to an external device by cable or wirelessly so as to transmit and receive data. The switch 42 is connected to an external network via the cable 14 so as to receive hierarchized compressed image data from an image server. The switch 42 is connected to the air interface 40. The air interface 40 is connected to the input device 20 using a predefined wireless communication protocol. A signal requesting change of a display area as input by the user via the input device 20 is supplied to the control unit 100 via the air interface 40 and the switch 42.
The hard disk drive 50 functions as a storage device for storing data. The compressed image data received via the switch 42 is stored in the hard disk drive 50. When a removable recording medium such as a memory card is mounted, the recording medium loader unit 52 reads data from the removable recording medium. When a ROM disk is mounted, the disk drive 54 drives and recognizes the ROM disk so as to read data. The ROM disk may be an optical disk or a magneto-optical disk. The compressed image data may be stored in the recording medium.
The main controller 100 is provided with a multicore CPU. One general-purpose processor core and a plurality of simple processor cores are provided in a single CPU. The general-purpose processor core is referred to as a power processing unit (PPU) and the other processor cores are referred to as synergistic-processing units (SPU).
The main controller 100 is provided with a memory controller connected to the main memory 60 and the buffer memory 70. The PPU is provided with a register and a main processor as an entity of execution. The PPU efficiently allocates tasks as basic units of processing in applications to the respective SPUs. The PPU itself may execute a task. The SPU is provided with a register, a subprocessor as an entity of execution, and a local memory as a local storage area. The local memory may be used as the buffer memory 70.
The main memory 60 and the buffer memory 70 are storage devices and are formed as random access memories (RAM). The SPU is provided with a dedicated direct memory access (DMA) controller and is capable of high-speed data transfer between the main memory 60 and the buffer memory 70. High-speed data transfer is also achieved between the frame memory in the display processing unit 44 and the buffer memory 70. The control unit 100 according to the embodiment implements high-speed image processing by operating a plurality of SPUs in parallel. The display processing unit 44 is connected to the display device 12 and outputs a result of image processing in accordance with user request.
The image processing device 10 according to the embodiment is configured to previously load part of the compressed image data from the hard disk drive 50 into the main memory 60 in order to change a displayed image smoothly as the displayed image is enlarged/reduced or the display area is moved. Further, the device 10 is configured to previously decode part of the compressed image data loaded into the main memory 60 and store the decoded data in the buffer memory 70. This allows instant switching of images used for creation of displayed image when the switching is required later.
Of the hierarchical data, part of the image data is loaded into the main memory 60, maintaining a compressed state (S10). An area to be loaded is determined according to a predefined rule. For example, an area close to the currently displayed image in the virtual space, or an area predicted to be frequently requested for display, from a viewpoint of the content of image or the history of browsing by the user, is loaded. The data is loaded not only when a request to change an image is originated but also at predefined time intervals. This prevents heavy traffic for loading processes from occurring in a brief period of time.
Compressed image data is loaded in units of blocks having a substantially regular size. For this reason, the hierarchical data stored in the hard disk drive 50 is divided into blocks according to a predefined rule. In this way, data management in the main memory 60 can be performed efficiently. Even if the compressed image data is compressed in a variable-length format, the data as loaded would have an approximately equal size if the image is loaded in units of blocks (hereinafter, referred to as “image blocks”). Therefore, a new loading operation is completed basically by overwriting one of the blocks already stored in the main memory 60. In this way, fragmentation is unlikely to occur, the memory is used efficiently, and address management is easy.
Of the compressed image data stored in the main memory 60, data for an image of an area required for display, or data for an image of an area predicted to be necessary is decoded and stored in the buffer memory 70 (S12). The buffer memory 70 includes at least two buffer areas 72 and 74. The size of the buffer areas 72 and 74 is configured to be larger than the size of the frame memory 90 so that, when the signal entered via the input device 20 requests a change, in the display area, of a certain degree or less, the image data loaded in the buffer areas 72 and 74 is sufficient to create a displayed image.
One of the buffer areas 72 and 74 is used to store an image for creation of displayed image and the other is used to make available an image predicted to become necessary subsequently. Hereinafter, the former buffer will be referred to as “display buffer” and the latter will be referred to as “decoding buffer”. In the example of
Of the images stored in the buffer area 72, i.e., the display buffer, the image of the display area 68 is rendered in the frame memory 90 (S14). Meanwhile, the image of a new area is decoded as necessary and stored in the buffer area 74. The display buffer and the decoding buffer are switched depending on the timing of completion of storage or the amount of change of the display area 68 (S16). This allows smooth switching between displayed images in the event of the movement of a display area or change in the scale.
Therefore, if the displayed image changes in the depth direction away from L0 toward L3, the displayed image is enlarged. If the displayed image changes in the direction away from L3 toward L0, the displayed image is reduced. An arrow 80 indicates that a signal requesting a change in the display area input by a user requests reduction in the displayed image and shows that reduction occurs across the scale ¼(L2). In the image processing device 10, the position of L1, L2, which are made available as tile images 38, in the direction of depth is defined as the boundary of prefetching in the depth direction. When a signal requesting a change in the image indicates crossing the prefetch boundary, the prefetch process is started.
When the scale of the displayed image is close to L2, the displayed image is generated by using the tile image in L2 (second layer). More specifically, the L2 image is used when the scale of the displayed image is between a switching boundary 82 and a switching boundary 84, the boundary 82 being between the image in L1 and the image in L2, and the boundary 84 being between the image in L2 and the image in L3. Therefore, when reduction of an image is requested as indicated by an arrow 80, the enlarged version of the tile image in L2 is turned into a reduced version and displayed. Meanwhile, the image processing device 10 also identifies the tile image 38 expected to be necessary in the future based on the signal requesting a change in the image and decodes the identified image. In the example of
Prefetching in the upward, downward, leftward, or rightward direction in the identical layer is also processed in a similar manner. More specifically, the prefetch boundary is set in the image data stored in the buffer memory 70 so that, when the display position indicated by the signal requesting a change in the image exceeds the prefetch boundary, the prefetch process is started.
The elements depicted in
The input information acquisition unit 102 acquires an instruction entered by the user via the input device 20 to start/terminate displaying an image, move the display area, enlarge or reduce the displayed image, etc. The tile image identification unit 110 identifies a tile image including an area that should be displayed, in accordance with the frame coordinates of the current display area and the information on the request to change the display area input by the user. If the tile image is already loaded in the main memory 60, the tile image identification unit 110 supplies the information obtained as a result of the identification to the decoding unit 112. If not, the tile image identification unit 110 supplies the information to the loaded block determination unit 106. In addition to the image necessary to render the current displayed image, the tile image identification unit 110 may identify a tile image predicted to be necessary subsequently.
The loaded block determination unit 106 identifies an image block that should be newly loaded from the hard disk 50 into the main memory 60 by referring to the information from the tile image identification unit 110 and issues a load request to the loading unit 108. While the loading unit 108 is not performing loading process, the loaded block determination unit 106 may issue a load request according to a predetermined timing schedule. For example, the loaded block determination unit 106 may issue a load request at predetermined time intervals or when the user issues a request to change the display area. The loading unit 108 performs an actual loading process in accordance with a request from the loaded block determination unit 106.
The decoding unit 112 reads and decodes the data for the tile image from the main memory 60 by referring to the information on the tile image acquired from the tile image identification unit 110 and stores the decoded data in the decoding buffer or the display buffer. The displayed image processing unit 114 refers to the frame coordinates of the new displayed image, reads the corresponding image data from the display buffer in the buffer memory 70, and renders the data in the frame memory of the display processing unit 44.
A description will now be given of the structure of tile images and image blocks in the hierarchical data.
In the illustrated example, tile images with the tile numbers “0” through “5” are organized as an image block 2, tile images “6” through “8” are organized as an image block 4, etc. Tile images “17” through “20” are organized as the last image block 6. Each image block is identified by the tile number of the start tile image in the block and the number of tile images included. Therefore, the image block 2 has identification information “(0, 6)”, the image block 4 has identification information “(6, 3)”, and the image block 6 has identification information “(17, 4)”. By defining identification information thus, it is easy to determine whether a given tile image is included in an image block. In practice, all image blocks are arranged in series in an image file containing image data.
Identification information on image blocks is stored in the hard disk drive 50 by associating the identification information with information on an area in the hard disk drive 50 storing the corresponding compressed image data. Division of compressed hierarchical data into image blocks of about the same size is advantageous in that, given the image blocks loaded and stored in continuous areas in the main memory 60, blocks can be stored by overwriting an image block by a subsequently loaded image block. The likelihood of fragmentation is reduced and the main memory 60 can be used efficiently.
A description will be given of an embodiment in which the technique of displaying image data having a hierarchical structure is elaborated so that image data is efficiently built and output. In the above-described basic method of displaying images, the tile number of a tile image necessary for display is uniquely identified from the post-change frame coordinates known from a request to change a display area. In this procedure, the tile number is equivalent to a parameter indicating the position in an image in each layer. Therefore, data for a tile image is directly identified from the frame coordinates, as shown in
Meanwhile, the embodiment provides flexibility in designation of data for a tile image by isolating the parameter indicating the position in an image from the data for a tile image, thereby achieving efficient data structure and image updating. For this purpose, a table describing correspondence between the position in an image and the data for a tile image is appended to the image data. To display image data built as described above, the parameter indicating the position in an image is obtained from the frame coordinates occurring after the displayed area is changed, and the identification number for the data for a tile image, i.e. the tile number, is obtained by referring to the above-mentioned table, using the obtained parameter as a key. The “parameter indicating the position in an image” is an identification number assigned to areas produced when an image is divided into tile images as shown in
The control unit 100b includes an image hierarchy generation unit 120 configured to read image data stored in the hard disk drive 50 and hierarchize the data, an image division unit 122 configured to divide the image in each layer into tile images, a redundancy detection unit 124 configured to analyze the image in each layer and detect redundancy, a tile image reference table creation unit 126 configured to create a tile image reference table that maps area numbers to tile numbers, in view of redundancy, and an image file generation unit 128 configured to generate an image file that should be ultimately output and that includes image data and a tile image reference table.
The image hierarchy generation unit 120 reads from the hard disk drive 50 data for an image for which a file should be created. The image data read may be a single item of image data of a certain resolution or higher. The image data subject to processing may be designated by the user via the input device 20 as shown. Alternatively, a request may be acknowledged from another functional block (not shown) that obtained the original image. The image hierarchy generation unit 120 then generates image data of a hierarchical structure including the original image, by reducing the data for the read image in stages defined by respective resolutions to generate data for reduced image data.
The image division unit 122 generates data for tile images by dividing an image in each layer into predetermined sizes. A tile number is assigned to generated tile image. The data of each time image is temporarily stored in the main memory 60 and the area of storage is managed by the tile number. The tile number assigned in this process may reflect the position in the image as shown in
The redundancy detection unit 124 detects the redundancy between images within the same layer or images from different layers, by analyzing the tile images in the respective layers. For example, redundancy within the same layer may occur when the same image data can be used as a plurality of tile images. Redundancy across different layers may occur when an image produced from enlarging an image in a low-resolution layer does not look so different from an image in a high-resolution layer. Areas with redundancy as described above can be displayed by consistently using a given tile image and without maintaining individual tile images. This will make it possible to compress image data. A specific method will be described later.
The tile image reference table creation unit 126 creates a tile image reference table that maps area numbers in the image in each layer in the hierarchical data to tile numbers used to display the areas. In an image where redundancy is not detected, the area number corresponds one-to-one to the identification number of a tile image. For example, the same numeral is used for the area number and the tile number. Meanwhile, in an image area having redundancy, a single tile number is mapped to a plurality of area numbers so that the data for the tile image is shared.
The image file generation unit 128 reads the data for the tile image referred to in the tile image reference table and generates ultimate image data by concatenating the data sequentially. In this process, image blocks are formed by organizing tile images until a certain size is reached as described above. The data is managed block by block, by mapping the identification information of an image block to an offset value indicating an offset from the start address of the image data. The image file generation unit 128 forms the ultimate output data by generating an image file including the image data and the tile image reference table.
Thus, the size of image data can be efficiently reduced by detecting redundancy between images and using a single tile image to render a plurality of areas. The image data according to the embodiment is such that images with different resolutions are included in the same image. Therefore, the data can be compressed at a high rate by using data for a given tile image to represent images from different layers.
It will be assumed that an ellipse 136 and a triangle 138 are drawn in the image 32b and the image 34b and the other areas are filled with a single color to represent the background. Data 240 for tile images extracted from the areas in the images is stored in the main memory 60 independent of the initial arrangement of images. Tile numbers are assigned to the data 240 for the tile images. The tile image reference table maps area numbers in the images 32b and 34b to tile numbers. The table shows the correspondence indicated by the arrows in the figure.
The area number “4” in the image 32b, which is an area filled with a single color, is mapped to the data for the tile image extracted from that area, i.e., the tile number “4”. Since the image 34b is an enlarged version of the image 32b, the correspondence between area numbers in the two images can be derived easily based on the magnification factor. In the illustrated example, the area number “4” in the image 32b corresponds to area numbers “15”, “16”, “19”, and “20” in the image 34b. It is known therefore that the areas in the image 34b identified by those area numbers are automatically known to be areas filed with a single color. By mapping these image areas to the tile number “4” mapped to the area number “4”, the data for tile images extracted from the source areas (e.g., the data for the tile numbers “15”, “16”, “19”, and “20”) can be excluded from the ultimate image data.
Similarly, by scanning the image 32b to identify areas corresponding to those areas in the enlarged image 34b that are filled with a single color, the lower half of the area number “3”, i.e., the area numbers “17” and “18” in the image 34b are found to be areas filled with a single color. Therefore, by also mapping these areas to the tile image with the tile number “4”, the data for tile images extracted from the source area (e.g., the data for the tile numbers “17” and “18”) can be excluded from the ultimate image data.
According to the embodiment, image data representing the same image with different resolutions is subject to processing. Therefore, by sequentially repeating the above step, beginning with the image with the lowest resolution, redundant areas in a large-sized, high-resolution image can be identified with minimum computational load. Further, as described above, using low-resolution image data where high-resolution image data should otherwise be used produces the likelihood that the original image data can be discarded. Accordingly, high compression rate is expected. In the embodiment described above, an area filled with a single color is detected so that data for tile images covering the identified area is shared. A similar process may also be useful in areas virtually filled with a single color, a random pattern, or a pattern comprising only repetition. Detection of these areas is performed using area-by-area color histogram or frequency analysis, proceeding from a low-resolution image.
However, there may be cases that the areas with the area numbers “7”, “8”, “11”, and “12” in the image 34b are no different from an enlarged version of the tile image with the tile number “2” such as when the original image is a photo and the four areas are out of focus. In such a case, the tile image reference table maps the area numbers of the four areas in the high-resolution image 34b to the tile number “2” extracted from the corresponding area in the low-resolution image 32b collectively. In this process, the data for the tile image with the tile number “2” is not used directly to generate a displayed image from the image 34b. Instead, the tile image reference table defines the correspondence between the magnification factor and the area so that the data is enlarged and only a part thereof is used. For example, redundancy across layers such as this is identified when the difference between an enlarged version of the low-resolution image and a high-resolution image is equal to or below a threshold value, or when frequency analysis of a high-resolution image reveals only a frequency band equal to or lower than a threshold value.
In the example illustrated in
In the examples illustrated in
A description will now be given of the operation of the control unit 100b having the function of generating an image file.
The tile number may be identical to the area number defined in the image from which the tile image is extracted. Since the data for a tile image according to the embodiment is independent of positional information, however, the tile number may be assigned independent of the area number.
Subsequently, the redundancy detection unit 124 examines redundancy between image within the same layer and redundancy across different layers (S58). More specifically, the redundancy detection unit 124 scans the N-th layer image to identify whether there is any area of a size commensurate with the size of a tile image in the N+1-th layer and containing only a single color. The step is repeated toward higher hierarchies. In addition, the redundancy detection unit 124 attempts to identify an area in the N+1-th layer image containing substantially the same amount of information as the N-th layer image, by examining a differential image produced between an image produced by enlarging the N-th layer image to the size of the N+1-th layer and the N+1-th layer image or by frequency analysis of the N+1-layer image. Any method ordinarily practiced in the field of image processing may be employed for examination.
When the redundancy detection unit 124 detects an area having redundancy (Y in S58), the tile image reference table unit 126 updates the tile image reference table so that a single tile image or a part of a tile image is used to display a plurality of areas in an image, as shown in
Subsequently, the image file generation unit 128 generates an image file that should be ultimately output (S62). If the redundancy detection unit 124 does not detect redundancy (N in S58), the image file generation unit 128 reads all of the data for tile images generated by division in S54 from the main memory 60, arranging the tile images in the order of tile numbers, organizing the tile images into image blocks in the arranged order, and assigning identification information to the image blocks. The image file generation unit 126 creates an image file that also contains the tile image reference table generated in S56.
If the redundancy detection unit 124 detects redundancy (Y in S58), the image file generation unit 128 reads only the data for the tile images with the tile numbers entered in the tile number fields 204 in the ultimate tile image reference table updated in S60, arranging the tile image in the order of tile numbers, organizing the tile image into image blocks in the arranged order, and assigning identification information to the image blocks. The image file generation unit 126 creates an image file that also contains the tile image reference table generated in S60.
A description will be given of the operation of displaying an image using the image file thus generated.
Initially, when the user enters a request to change a displayed image via the input device 20 while a part of an image is displayed on the display device 12, the input information acquisition unit 102 acknowledges the request (S70). The tile image identification unit 110 derives the amount of requested change in the displayed image and determines the coordinates of the frame that should be displayed newly (S72). The amount of change in the displayed image represents the amount of movement in the vertical or horizontal direction in the virtual space and the amount of movement in the depth direction. The coordinates of the frame that should be displayed are determined by the frame coordinates of the display area that have been displayed and the amount of change derived.
The tile image identification unit 110 acquires the area number of the area including the post-change displayed image indicated by the frame coordinates (S74). The tile image identification unit 110 refers to the tile image reference table so as to acquire the tile number mapped to the acquired area number (S76). If the buffer memory 70 does not store data produced by decoding the tile image (N in S78), the decoding unit 112 reads the data for the tile image based on the tile number and decodes the tile image (S80, S82).
As shown in
As described above, according to the embodiment, data is efficiently compressed by not only examining redundancy within the same layer but also examining redundancy between images from different layers, and by sharing the data for a tile image. The method takes advantage of the feature of the embodiment whereby image data with different resolutions produced from a single image are subject to processing. The feature may be further taken advantage of to compress the tile image reference table efficiently.
If a tile image reference table is created from the hierarchical data like this, in view of redundancy, the area numbers of the entire areas included in the areas 250a, 252a, and 254a will be mapped to the same tile number. The tile image reference table 200 shown in
In grouping areas, it is desirable that corresponding areas in a plurality of images from different layers be included in a single group rather than delimiting a series of area numbers arranged in order at certain locations. This is because it is highly likely that these areas can share a tile image.
Representing the areas 250a, 252a, and 254a in the hierarchical image data with lines 250b, 252b, and 254b in a side view 260 of the hierarchical data, it is known that, by grouping an area 262 indicated by a shade, all of the areas included in the group can be rendered by using a single tile image. Therefore, the table need only map the identification number of the group to the identification number of the tile image referred to. As a result, the efficiency of compression is improved. By grouping areas across layers and build a tile image reference table accordingly, the data compression rate is further improved. Boundaries for grouping expected to produce high compression rate are determined in advance, in view of the content or type of the image.
In the description above, it is assumed that a high-resolution image is rendered by referring to a low-resolution tile image by identifying an area filled with a single color etc. in the low to high order of resolution. Meanwhile, there may be cases where a high-resolution image does not inherit a low-resolution image. For example, an area in a low-resolution image may be substantially filled with a single color of blue sky but a high-resolution image shows a small bird.
Therefore, a low-resolution tile image, which is a candidate of mapping, may be enlarged and compared with a corresponding area in a high-resolution image to see whether there are any objects displayed only in the high-resolution image. If such an object is identified in an image with a certain resolution, images with the higher resolution may be rendered by reducing the tile image with the highest resolution in the hierarchal data. In this case, the tile image reference table is also as shown in
In the above-described example, a plurality of areas are represented by a single tile image in case that an image contains redundancy. Alternatively, a single tile image may be referred to from an area designated by the user even if the image does not contain redundancy. For example, the system may acknowledge user designation of an area that should be replaced by a low-resolution tile image and use a low resolution image consistently to display the area, so as to intentionally prevent an object captured in a high-resolution image from being displayed. Alternatively, areas that need not be enlarged for display (e.g., the background of an image) may be rendered using a low-resolution tile image so as to further reduce the data size, even when a high-resolution image is displayed. In any case, the tile image reference data is as shown in
According to the embodiment described above, an image file is created from hierarchical data comprising image data with different resolutions produced from a single image such that the data for a tile image is made independent of information on the position in an image. For this purpose, a tile image reference table that maps area numbers indicating positions in an image to tile numbers identifying data for tile images is made available. With this, a single item of image data can be consistently used to render a plurality of areas. Therefore, part of the original data can be discarded so that the image data is compressed.
The original hierarchical data is a presentation of the same image with different resolutions. Therefore, there is high likelihood that that a tile image can be used to represent different layers so that high compression rate is expected. For example, areas filled with a single color, for which a tile image can be used consistently, can be identified easily from a low-resolution image. Thus, the processing load is reduced as compared to a case where the images are scanned independently.
Further, areas for which a single tile image can be used consistently are characterized by high spatial locality. Therefore, the data size is further reduced by grouping areas so as to compress the data for the tile image reference table itself. By grouping areas in a virtual space defined by an image plane and an axis representing resolution, efficient compression across images with different resolutions is possible.
In the first embodiment, the function of using a single image as input data and creating an image file including a tile image reference table, and the function of using the image file to display an image are described. In the second embodiment, a description will be given of the function of modifying or revising an image file including a tile image reference table created according to the first embodiment. The second embodiment can be implemented by using the image processing system 1 shown in
The image file acquisition unit 318 acknowledges a user input designating an image subject to modification, reads the relevant image file from the hard disk drive 50, and stores the read file in the main memory 60. The image file includes image data and a tile image reference table, as described in the first embodiment. The update information acquisition unit 320 acquires update information that the user enters via the input device 20 while viewing an image subject to modification displayed on the display device 12. As described above, the update information includes the area that should be updated and the post-updated image data for that area.
The tile image generation unit 322 identifies a tile image that need be updated when the post-update image is applied to the area that should be updated, and generates a new tile image. If the area that should be updated includes only a part of a given tile image, the original tile image is read from the main memory 60 and a new tile image is generated by overwriting only the area that should be updated. If the entirety of a given tile image is included in the area that should be updated, a new tile image is generated by extracting the post-update image. A tile number is assigned to the tile image thus generated. In this case, numbers other than the numbers already assigned to the tile images of the original image are used as the tile numbers assigned.
The tile image generation unit 322 stores the data for the generated tile image in the main memory 60. In this process, the original image data stored by the image file acquisition unit 318 in the main memory 60 is maintained as it is. The newly generated tile image is stored in another storage area. The data for tile images additionally stored form an image block in itself. Subsequently, the tile image reference table update unit 324 replaces the tile number mapped in the tile image reference table stored in the main memory 60 to an area number included in the area that should be updated by the tile number of the newly generated tile image.
The displayed image control unit 326 may comprise functional blocks included in the control unit 100a shown in
As described above, image data included in an image file represents a series of data for tile images. For efficient loading from the hard disk drive 50 to display the image, the series of data is organized to produce image blocks. When a part of the image represented by the image data is updated, a tile image in an existent image block may be overwritten. However, the sizes of the pre-update tile image and the post-update tile image may not necessarily be identical. Therefore, the following steps are necessary to update a tile image.
To update the tile image with the tile number “4” in the image blocks of
According to the second embodiment, however, the original image data is not updated. A newly generated tile image is added to a separate storage area and the tile image reference table is updated accordingly. This allows a displayed image to be updated though steps far fewer than in the aforementioned modification steps so that modification can be performed smoothly.
The image file generation unit 328 overwrites the original tile image data with the newly generated tile image data when, for example, the user completes modification. In this process, a series of image data where few storage areas are wasted is generated by rebuilding the data, including saving of subsequent tile images, overwriting of the data with updating tile images, and restoring of the saved tile images as mentioned above. The updated tile image reference table is added to form an image file.
A description will be given of the operation implemented by the above-described configuration.
When the user enters update information while viewing the image displayed on the display device 12 (Y in S114), the update information acquisition unit 320 acknowledges the information. The tile image generation unit 322 generates a new tile image for the updated portion, assigns a tile number to the generated tile image, and stores the generated tile image in the main memory 60 (S116). The user may enter update information by, for example, dragging an image desired to be pasted which is displayed in the neighborhood of the image displayed on the display device 12 toward a desired area using a pointing device. Alternatively, the user may directly draw a character or a picture in the image using a pointing device.
Subsequently, the tile image reference table update unit 324 maps the area corresponding to the newly generated tile image to a new tile number in the tile image reference table (S118). This causes the displayed image control unit 326 to update the display on the display device 12 by reading the data for the tile image newly referred to and decoding the read data (S120). The steps S114 through S120 are repeated until the modification is completed and update information is no longer available.
If the tile image for the same area as the data for the tile image previously stored in the main memory 60 in S116 is updated again, the main memory 60 is prevented from becoming heavily loaded with data temporarily by overwriting the previously generated and stored tile image. In anticipation of a case where the size of overwriting data is larger than that of the data for the tile image previously stored, a newly created tile image for a different area is stored in the main memory 60 such that the newly created tile image is stored at an address removed from the storage area of the data for the tile image already stored by a predetermined space.
When the completion of modification is detected from user input, etc. (N in S114), the image file generation unit 328 rebuilds the image data by incorporating the newly generated tile image stored in the main memory 60 into the image data in the original image file (S122). More specifically, the data for the pre-update tile image is discarded and the data for the new tile image is inserted at the same position, whereupon all pieces of tile image data are concatenated. The image data thus rebuilt and the ultimate tile image reference table updated in S118 are used to form an image file (S124).
In S122, data may be compressed by examining redundancy in the image data resulting from incorporating the new tile image data, using the same method as described in the first embodiment, and by further updating the tile image reference table. The tile image reference table may be compressed as in the first embodiment.
When the user initiates an operation of undoing the immediately preceding updating of an image, the tile image reference table update unit 324 maps the relevant area to the pre-update tile number again. Since the data for the tile image itself is not updated, the image can be returned to the initial state easily. Mapping in the tile image reference table is similarly changed in redo of an operation.
If an area represented by the same tile image is modified several times, the tile image previously generated and stored in the main memory 60 may not be overwritten and the newly generated data may be stored in another memory area. With this, Undo or Redo may be performed in multiple stages by only changing the mapping in the tile image reference table when an area represented by the same tile image is modified several times.
If modification to an image is such that an image is enlarged and pasted to another image, the tile image reference table may be updated so as to refer to the source data for the image that should be pasted instead of generating data for an enlarged image data. As described with reference to
In this embodiment, a description will be given of the function of creating an image by applying the function of modifying an image described in the second embodiment. The third embodiment is configured similarly as the second embodiment, using the image processing system 1 shown in
In the second embodiment, an image file containing existent hierarchical data is modified. In the third embodiment, an image is created from a scratch where no existent hierarchical data is available. The user creates an image by, for example, drawing a picture on a white display screen as a canvas, using a pointing device. Alternatively, the user may paste data for a photo or a picture available in advance.
When the user draws something on the canvas of the displayed image 350, creating a displayed image 356, there is created the notion of enlargement or reduction. An image 360 in a layer with a higher resolution is introduced in the hierarchical data in addition to the lowest-layer image 358. Two or more layers may be introduced. Introduction of new layers may be predefined depending on the maximum resolution permitted, or, alternatively, may be adaptively determined by the detail of drawing done by the user.
Areas not touched upon remain all-white areas even if the number of layers in the hierarchical data is increased associated with the drawing. Data for a new tile image is generated and added only for an area where drawing is done. Referring to
The operation of the control unit 100 having the function of creating an image according to the third embodiment is similar to the operation according to the second embodiment described with reference to
Described above is an explanation based on an exemplary embodiment. The embodiment is intended to be illustrative only and it will be obvious to those skilled in the art that various modifications to constituting elements and processes could be developed and that such modifications are also within the scope of the present invention.
In the first embodiment, the tile image reference table is basically formed such that a single item of data for a tile number is determined from an area number. An image obtained by using the data for the tile image is applied to the necessary area. Alternatively, animation may be presented by mapping a single area number to data for a plurality of tile images in the tile image reference table and displaying the plurality of corresponding tile images sequentially to display the area. By using this mode only in a limited area in the image such that, for example, a mark flashes in a newly updated portion or an important portion in the image, the user's attention can be drawn to the area.
The entire image displayed on the screen may be switched by preparing a plurality of sets of hierarchical data and mapping all area numbers to data for a plurality of tile images that represent the same area in the respective hierarchical data. For example, three sets of hierarchical data comprising images of scenery taken by a camera fixed in a rooftop in the morning, in the afternoon, and at night, respectively, may be prepared and the aforementioned mapping may be defined in the tile image reference table. By using, for example, cross fading to smoothly switch between images for display, changes in the scenery in a day can be displayed in such a manner that enlargement or reduction is possible.
Normally, in a polygon model used in a display system in game devices, a plurality of textures are prepared for a single model. An ultimate image is created by processing the texture by a shader. Creation of a single ultimate image by using data a plurality of items of texture data is facilitated by mapping the plurality of items of texture data to each area number. For example, in creating an image file for an oil painting, each area number is mapped to a tile image showing a plane picture and a tile image as a bump map representing concavity and convexity. The tile image for a picture and the tile image as a bump map each presents a hierarchical structure. By using a shader to create an image for each area based on the mapping as described above, bump mapping can be easily achieved in an image that can be enlarged or reduced. It will also be easy to use hierarchical data as a texture applied to a polygon model.
Further, voxel data can be formed by using a plurality of tile images mapped to each area number as images that represent variation in the direction of depth in the image. Generally, areas at the edge of a box in voxel data are characterized by small amount of information, allowing sharing of tile images for display, as in the first embodiment. Therefore, benefit of data compression is profound. By including a plurality of tile images in each of a plurality of images mapped to each area number and representing the direction of depth, animation or CG effects in voxel display can be created.
When data is acquired via a network while an image is being displayed, the mapping in the tile image reference table may be modified real time. For example, each time an image of news or an image of a score in a sports event is acquired via a network, the tile image mapped to a portion of an image may be updated with the newly acquired data. This makes it easy to additionally display real time information while an image is being displayed.
1 image processing system, 10 image processing device, 12 display device, 20 input device, 30 0-th layer, 32 first layer, 34 second layer, 36 third layer, 38 tile image, 44 display processing unit, 50 hard disk drive, 60 main memory, 70 buffer memory, 72 buffer area, 74 buffer area, 90 frame memory, 100 control unit, 102 input information acquisition unit, 106 load block determination unit, 108 loading unit, 110 tile image identification unit, 112 decoding unit, 114 displayed image processing unit, 120 image hierarchy generation unit, 122 image division unit, 124 redundancy detection unit, 126 tile image reference table creation unit, 128 image file generation unit, 200 tile image reference table, 318 image file acquisition unit, 320 update information acquisition unit, 322 tile image generation unit, 324 tile image reference table update unit, 326 displayed image control unit, 328 image file generation unit
As described above, the present invention is applicable to information processing devices such as computers, game devices, image display devices, and image rendering devices.
Inada, Tetsugo, Ohba, Akio, Segawa, Hiroyuki
Patent | Priority | Assignee | Title |
10019969, | Mar 14 2014 | Apple Inc. | Presenting digital images with render-tiles |
10089331, | Oct 25 2011 | The Government of the United States of America, as represented by the Secretary of the Navy | System and method for storing a dataset of image tiles |
8933936, | Dec 27 2011 | SONY INTERACTIVE ENTERTAINMENT INC | Image processing system, image provider server, information processing device, and image processing method, adapted to change in resolution |
Patent | Priority | Assignee | Title |
6563999, | Mar 27 1997 | SONY NETWORK ENTERTAINMENT PLATFORM INC ; Sony Computer Entertainment Inc | Method and apparatus for information processing in which image data is displayed during loading of program data, and a computer readable medium and authoring system therefor |
6763139, | Jul 03 1998 | Canon Kabushiki Kaisha | Image coding method and apparatus for localized decoding at multiple resolutions |
JP2006042117, | |||
JP2006304345, | |||
JP7131658, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 12 2010 | Sony Corporation | (assignment on the face of the patent) | / | |||
Mar 12 2010 | Sony Computer Entertainment Inc. | (assignment on the face of the patent) | / | |||
Mar 27 2012 | INADA, TETSUGO | Sony Computer Entertainment Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028040 | /0166 | |
Mar 27 2012 | OHBA, AKIO | Sony Computer Entertainment Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028040 | /0166 | |
Mar 29 2012 | SEGAWA, HIROYUKI | Sony Computer Entertainment Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028040 | /0166 | |
Jul 08 2013 | Sony Computer Entertainment Inc | Sony Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030761 | /0328 | |
Apr 01 2016 | Sony Computer Entertainment Inc | SONY INTERACTIVE ENTERTAINMENT INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 043761 | /0577 | |
Aug 25 2017 | Sony Corporation | SONY INTERACTIVE ENTERTAINMENT INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 043761 | /0975 |
Date | Maintenance Fee Events |
Dec 18 2014 | ASPN: Payor Number Assigned. |
Apr 13 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 14 2021 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Oct 29 2016 | 4 years fee payment window open |
Apr 29 2017 | 6 months grace period start (w surcharge) |
Oct 29 2017 | patent expiry (for year 4) |
Oct 29 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 29 2020 | 8 years fee payment window open |
Apr 29 2021 | 6 months grace period start (w surcharge) |
Oct 29 2021 | patent expiry (for year 8) |
Oct 29 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 29 2024 | 12 years fee payment window open |
Apr 29 2025 | 6 months grace period start (w surcharge) |
Oct 29 2025 | patent expiry (for year 12) |
Oct 29 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |