[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2010038337A1 - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
WO2010038337A1
WO2010038337A1 PCT/JP2009/003043 JP2009003043W WO2010038337A1 WO 2010038337 A1 WO2010038337 A1 WO 2010038337A1 JP 2009003043 W JP2009003043 W JP 2009003043W WO 2010038337 A1 WO2010038337 A1 WO 2010038337A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
area
unit
display
data
Prior art date
Application number
PCT/JP2009/003043
Other languages
English (en)
French (fr)
Inventor
稲田徹悟
大場章男
勢川博之
Original Assignee
株式会社ソニー・コンピュータエンタテインメント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2008255655A external-priority patent/JP5331432B2/ja
Priority claimed from JP2008255563A external-priority patent/JP4809412B2/ja
Application filed by 株式会社ソニー・コンピュータエンタテインメント filed Critical 株式会社ソニー・コンピュータエンタテインメント
Priority to KR1020117009478A priority Critical patent/KR101401336B1/ko
Priority to EP09817381.8A priority patent/EP2330587B1/en
Priority to CN200980138067.9A priority patent/CN102165515B/zh
Priority to US13/120,785 priority patent/US8878869B2/en
Publication of WO2010038337A1 publication Critical patent/WO2010038337A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • G09G5/346Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling for systems having a bit-mapped display memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • G09G5/399Control 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

Definitions

  • the present invention relates to an image processing technique for enlarging / reducing an image displayed on a display, or moving the image vertically and horizontally.
  • a technique for enlarging / reducing a display image and moving in the vertical and horizontal directions using tile images having a plurality of resolutions generated from digital images such as high-definition photographs has been proposed.
  • an original image size is reduced in a plurality of stages to generate images with different resolutions, and images in each layer are divided into one or a plurality of tile images to represent the original image in a hierarchical structure.
  • the image with the lowest resolution is composed of one tile image
  • the original image with the highest resolution is composed of the largest number of tile images.
  • the image processing apparatus quickly performs enlarged display or reduced display by switching the tile image being used to a tile image of a different hierarchy at the time of enlargement processing or reduction processing of the display image.
  • image change when the user requests to move the display area or to enlarge or reduce the image (hereinafter collectively referred to as “image change”), processing such as reading of the tile image data and decoding is performed. Therefore, it may take time that cannot be overlooked before a new image is output.
  • image change processing such as reading of the tile image data and decoding is performed. Therefore, it may take time that cannot be overlooked before a new image is output.
  • a large-capacity memory is required especially for high-definition and high-resolution images, and the supported images are limited by the data size. There will also be a situation that must be done.
  • the present invention has been made in view of such problems, and an object thereof is to provide an image processing technique excellent in responsiveness to an image change request from a user.
  • the image processing apparatus is an image processing apparatus that displays at least a part of an image on a display, and a storage device that holds a plurality of image blocks obtained by dividing compressed data of an image to be processed according to a predetermined rule; Either a load unit that loads image blocks including necessary area data determined according to a predetermined rule in accordance with the area of the image being displayed from the storage device to the memory, and one of movement, enlargement, and reduction of the display area from the user And a display image processing unit that reads out and decodes at least a part of the image block loaded by the load unit from the memory and generates a new display image.
  • This image processing method is an image processing method for displaying at least a part of an image on a display, and generates a plurality of image blocks obtained by dividing compressed data of an image to be processed according to a predetermined rule, and stores it in a storage device.
  • the method includes a step of reading out and decoding at least a part of the loaded image block from the memory and generating a new display image.
  • Still another embodiment of the present invention relates to an image processing apparatus.
  • This image processing apparatus is an image processing apparatus that displays an area in an image on a display in accordance with a user's request.
  • the decoding section reads out and decodes compressed image data of a necessary area from a memory based on the request, and the decoding section decodes the image processing apparatus.
  • a display image processing unit that reads at least a part of the image stored in the buffer memory and draws a display area, and the decoding unit stores the new image in the buffer memory.
  • an overlapping area acquisition unit that identifies an overlapping area between the previously stored image and the new image, and a partial area decoding that decodes compressed image data of the area including the partial area excluding the overlapping area of the new image Part and the overlapping area of the images stored so far and the partial area decoded by the partial area decoding unit Characterized in that it comprises a decoding image storage unit for storing in the buffer memory.
  • Still another aspect of the present invention relates to an image processing method.
  • This image processing method is an image processing method for displaying an area in an image on a display in accordance with a user's request.
  • a step of identifying an overlapping area between the image stored up to and the new image a step of reading out the compressed image data of the area including the partial area excluding the overlapping area from the new image, and decoding the compressed image data
  • FIG. 1 shows a use environment of an image processing system 1 according to an embodiment of the present invention.
  • the image processing system 1 includes an image processing device 10 that executes image processing software, and a display device 12 that outputs a processing result by the image processing device 10.
  • the display device 12 may be a television having a display that outputs an image and a speaker that outputs sound.
  • the display device 12 may be connected to the image processing device 10 by a wired cable, or may be wirelessly connected by a wireless LAN (Local Area Network) or the like.
  • the image processing apparatus 10 may be connected to an external network such as the Internet via the cable 14 to download and acquire hierarchical compressed image data.
  • the image processing apparatus 10 may be connected to an external network by wireless communication.
  • the image processing device 10 may be a game device, for example, and may implement an image processing function by loading an application program for image processing.
  • the image processing apparatus 10 may be a personal computer, and may implement an image processing function by loading an image processing application program.
  • the image processing apparatus 10 performs a process of changing a display image, such as an enlargement / reduction process of an image displayed on the display of the display apparatus 12 or a movement process in the up / down / left / right directions, in response to a request from the user.
  • a display image change request signal When the user operates the input device while viewing the image displayed on the display, the input device transmits a display image change request signal to the image processing device 10.
  • FIG. 2 shows an external configuration of the input device 20.
  • the input device 20 includes a cross key 21, analog sticks 27a and 27b, and four types of operation buttons 26 as operation means that can be operated by the user.
  • the four types of operation buttons 26 include a circle button 22, a x button 23, a square button 24, and a triangle button 25.
  • a function for inputting a display image enlargement / reduction request and a vertical / left / right scroll request is assigned to the operation unit of the input device 20.
  • the input function of the display image enlargement / reduction request is assigned to the right analog stick 27b.
  • the user can input a display image reduction request by pulling the analog stick 27b forward, and can input a display image enlargement request by pressing the analog stick 27b from the front.
  • the input function of the display area movement request is assigned to the cross key 21.
  • the user can input a movement request in the direction in which the cross key 21 is pressed by pressing the cross key 21.
  • the image change request input function may be assigned to another operation means, for example, the scroll request input function may be assigned to the analog stick 27a.
  • the input device 20 has a function of transmitting the input image change request signal to the image processing device 10, and is configured to be capable of wireless communication with the image processing device 10 in the present embodiment.
  • the input device 20 and the image processing device 10 may establish a wireless connection using a Bluetooth (registered trademark) protocol, an IEEE802.11 protocol, or the like.
  • the input device 20 may be connected to the image processing apparatus 10 via a cable and transmit an image change request signal to the image processing apparatus 10.
  • FIG. 3 shows a hierarchical structure of image data used in the present embodiment.
  • the image data has a hierarchical structure including a 0th hierarchy 30, a first hierarchy 32, a second hierarchy 34, and a third hierarchy 36 in the depth (Z-axis) direction. Although only four layers are shown in the figure, the number of layers is not limited to this.
  • image data having such a hierarchical structure is referred to as “hierarchical data”.
  • the hierarchical data shown in Fig. 3 has a hierarchical structure of a quadtree, and each hierarchy is composed of one or more tile images 38. All the tile images 38 are formed in the same size having the same number of pixels, and have, for example, 256 ⁇ 256 pixels.
  • the image data of each layer expresses one image at different resolutions, and the original image of the third layer 36 having the highest resolution is reduced in a plurality of stages to obtain the second layer 34, the first layer 32, the 0th layer.
  • Image data of the hierarchy 30 is generated.
  • the resolution of the Nth layer (N is an integer greater than or equal to 0) may be 1 ⁇ 2 of the resolution of the (N + 1) th layer in both the left and right (X axis) direction and the up and down (Y axis) direction.
  • the hierarchical data is held in the storage device in a compressed state in a predetermined compression format, and is read from the storage device and decoded before being displayed on the display.
  • the image processing apparatus 10 has a decoding function corresponding to a plurality of types of compression formats, and can decode, for example, compressed data in the S3TC format, JPEG format, and JPEG2000 format.
  • the compression processing may be performed in units of tile images, or may be performed in units of a plurality of tile images included in the same layer or a plurality of layers.
  • the hierarchical structure of the hierarchical data is set with the horizontal direction as the X axis, the vertical direction as the Y axis, and the depth direction as the Z axis, thereby constructing a virtual three-dimensional space.
  • the image processing device 10 derives the change amount of the display image from the image change request signal supplied from the input device 20, the image processing device 10 derives the coordinates (frame coordinates) of the four corners of the frame in the virtual space using the change amount.
  • the frame coordinates in the virtual space are used for loading to a main memory and display image generation processing described later.
  • the image processing apparatus 10 may derive information for specifying the hierarchy and texture coordinates (UV coordinates) in the hierarchy.
  • the combination of the hierarchy specifying information and the texture coordinates is also referred to as frame coordinates.
  • FIG. 4 shows the configuration of the image processing apparatus 10.
  • the image processing apparatus 10 includes a wireless interface 40, a switch 42, a display processing unit 44, a hard disk drive 50, a recording medium mounting unit 52, a disk drive 54, a main memory 60, a buffer memory 70, and a control unit 100.
  • the display processing unit 44 has a frame memory that buffers data to be displayed on the display of the display device 12.
  • the switch 42 is an Ethernet switch (Ethernet is a registered trademark), and is a device that transmits and receives data by connecting to an external device in a wired or wireless manner.
  • the switch 42 may be connected to an external network via the cable 14 and receive the compressed image data layered from the image server.
  • the switch 42 is connected to the wireless interface 40, and the wireless interface 40 is connected to the input device 20 using a predetermined wireless communication protocol.
  • An image change request signal input from the user in the input device 20 is supplied to the control unit 100 via the wireless interface 40 and the switch 42.
  • the hard disk drive 50 functions as a storage device that stores data.
  • the compressed image data received via the switch 42 is stored in the hard disk drive 50.
  • the recording medium mounting unit 52 reads data from the removable recording medium.
  • the disk drive 54 drives and recognizes the ROM disk to read data.
  • the ROM disk may be an optical disk or a magneto-optical disk.
  • the compressed image data may be stored in these recording media.
  • the control unit 100 includes a multi-core CPU, and has one general-purpose processor core and a plurality of simple processor cores in one CPU.
  • the general-purpose processor core is called PPU (Power Processing Unit), and the remaining processor cores are called SPU (Synergistic-Processing Unit).
  • the control unit 100 includes a memory controller connected to the main memory 60 and the buffer memory 70.
  • the PPU has a register, has a main processor as an operation execution subject, and efficiently assigns a task as a basic processing unit in an application to be executed to each SPU. Note that the PPU itself may execute the task.
  • the SPU has a register, and includes a sub-processor as an operation execution subject 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 configured as a RAM (Random Access Memory).
  • the SPU has a dedicated DMA (Direct Memory Access) controller as a control unit, can transfer data between the main memory 60 and the buffer memory 70 at high speed, and the frame memory and the buffer memory 70 in the display processing unit 44 High-speed data transfer can be realized.
  • the control unit 100 according to the present embodiment realizes a high-speed image processing function by operating a plurality of SPUs in parallel.
  • the display processing unit 44 is connected to the display device 12 and outputs an image processing result according to a request from the user.
  • the image processing apparatus 10 uses a part of compressed image data determined according to a rule described later in order to smoothly change a display image when performing a display image enlargement / reduction process or a display area movement process. Is loaded from the hard disk drive 50 into the main memory 60. Further, a part of the compressed image data loaded in the main memory 60 is decoded and stored in the buffer memory 70. This makes it possible to instantaneously switch an image used for generating a display image at a necessary later timing.
  • FIG. 5 schematically shows the flow of image data in the present embodiment.
  • the hierarchical data is stored in the hard disk drive 50.
  • a recording medium mounted on the recording medium mounting unit 52 or the disk drive 54 may be held.
  • the hierarchical data may be downloaded from an image server connected by the image processing apparatus 10 via a network.
  • the hierarchical data here is subjected to fixed length compression in the S3TC format or the like, or variable length compression in the JPEG format or the like.
  • a part of the image data is loaded into the main memory 60 in a compressed state (S10).
  • the area to be loaded here is a predetermined rule such as the vicinity of the current display image in the virtual space, the area of the image, the area where a display request is predicted to be frequently made based on the user's browsing history, etc. Determined by.
  • the loading is performed not only when an image change request is made, but also at any given time interval, for example. This prevents the load process from being concentrated at one time.
  • the compressed image data to be loaded is a block unit having a substantially constant size. Therefore, the hierarchical data held by the hard disk drive 50 is divided into blocks according to a predetermined rule. By doing so, data management in the main memory 60 can be performed efficiently. That is, even if the compressed image data is variable-length compressed, the data size to be loaded is almost equal in units of blocks (hereinafter referred to as “image blocks”). A new load is completed by overwriting any of the stored blocks. As a result, fragmentation is unlikely to occur, the memory can be used efficiently, and address management is facilitated.
  • the buffer memory 70 includes at least two buffer areas 72 and 74.
  • the size of each buffer area 72, 74 is set larger than the size of the frame memory 90.
  • One of the buffer areas 72 and 74 is used for holding an image used for generating a display image, and the other is used for preparing an image predicted to be necessary thereafter.
  • the former is referred to as “display buffer”, and the latter is referred to as “decoding buffer”.
  • the buffer area 72 is a display buffer
  • the buffer area 74 is a decoding buffer
  • the display area 68 is displayed.
  • the image stored in the decoding buffer by the prefetching process may be an image in the same hierarchy as the image stored in the display buffer, or may be an image in a different hierarchy having a different scale.
  • the image in the display area 68 among the images stored in the buffer area 72, which is a display buffer, is drawn in the frame memory 90 (S14).
  • the image in the new area is decoded as necessary and stored in the buffer area 74.
  • the display buffer and the decoding buffer are switched according to the timing of completion of storage, the change amount of the display area 68, and the like (S16). Thereby, a display image can be smoothly switched with respect to a movement of a display area, a change of a scale ratio, or the like.
  • FIG. 6 shows the configuration of the control unit 100 in detail.
  • the control unit 100 includes an input information acquisition unit 102 that acquires information input by the user from the input device 20, a compressed data division unit 104 that divides hierarchical data into image blocks, and a load block determination unit that determines an image block to be newly loaded.
  • 106 includes a load unit 108 for loading necessary image blocks from the hard disk drive 50.
  • the control unit 100 further includes a display image processing unit 114 that draws a display image, a prefetch processing unit 110 that performs prefetch processing, and a decoding unit 112 that decodes compressed image data.
  • each element described as a functional block for performing various processes can be configured by a CPU (Central Processing Unit), a memory, and other LSIs in terms of hardware. This is realized by a program loaded on the computer.
  • the control unit 100 includes one PPU and a plurality of SPUs, and each functional block can be configured by the PPU and the SPU individually or in cooperation. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one.
  • the input information acquisition unit 102 acquires instruction contents such as start / end of image display, movement of the display area, enlargement / reduction of the display image, etc. input by the user to the input device 20.
  • the compressed data dividing unit 104 reads the hierarchical data from the hard disk drive 50, etc., generates an image block by dividing it according to a predetermined rule described later, and stores it in the hard disk drive 50. For example, when the user selects any one of the hierarchical data stored in the hard disk drive 50 with respect to the input device 20, the information is acquired from the input information acquisition unit 102, and the division process is started.
  • the compressed data dividing unit 104 may not be in the same apparatus as the other functions of the control unit 100, and may be divided at the stage of generating hierarchical data. Although a specific division method will be described in detail later, the block division method performed by the compressed data division unit 104 may be different depending on the hardware performance such as the speed of the hard disk drive 50 and the capacity of the main memory 60. Therefore, the compressed data dividing unit 104 is set in advance so as to perform optimal block division according to the hardware performance of the image processing apparatus 10.
  • the load block determination unit 106 confirms whether there is an image block to be newly loaded from the hard disk drive 50 to the main memory 60, determines the next image block to be loaded, and issues a load request to the load unit 108.
  • the load block determination unit 106 performs the above confirmation and determination processing at a predetermined time interval, for example, when the load unit 108 is not performing the load process, for example, when a user makes an image change request. .
  • the load unit 108 performs actual load processing in accordance with a request from the load block determination unit 106.
  • the image block including the image area to be changed is not stored in the main memory 60, the image block is loaded from the hard disk drive 50, the necessary area is decoded, and the display image is displayed. It is necessary to perform processing such as drawing at once. In this case, it is conceivable that the load process becomes a bottleneck, and the responsiveness to the user request is impaired.
  • (1) image blocks are loaded so as to cover regions that are likely to be displayed in the future, and (2) loading is performed as needed so that the loading process is not concentrated at one time. Load under policy. As a result, the load process is less likely to interfere with the display image changing process.
  • the procedure for determining the image block to be loaded will be described in detail later.
  • the prefetch processing unit 110 predicts an image area that will be required for drawing a display image in the future in accordance with the frame coordinates of the current display image and the display image change request information input by the user, and decodes the information. 112. However, immediately after the start of image display, or when the image to be changed cannot be drawn with the image already stored in the buffer memory 70, information on a predetermined area including an image necessary for drawing the display image at that time is not predicted. Is supplied to the decoding unit 112. Based on the image area information acquired from the prefetch processing unit 110, the decoding unit 112 reads and decodes a part of the compressed image data from the main memory 60, and stores the decoded data in the decoding buffer or the display buffer.
  • the display image processing unit 114 determines the frame coordinates of a new display image according to the display image change request input by the user, reads the corresponding image data from the display buffer of the buffer memory 70, and the frame memory 90 of the display processing unit 44. To draw.
  • FIG. 7 shows the configuration of the compressed data dividing unit 104 in detail.
  • the compressed data dividing unit 104 includes an identification number assigning unit 120 and an image block generating unit 122.
  • the identification number assigning unit 120 assigns identification numbers in order from 0 to the tile images of each layer constituting the hierarchical data in a predetermined order.
  • the image block generation unit 122 collects tile images in order of identification numbers until immediately before the total data size exceeds a predetermined size, and generates an image block.
  • FIG. 8 schematically shows an image of each layer in the layer data.
  • the hierarchical data is composed of images of the 0th hierarchy 30a, the first hierarchy 32a, the second hierarchy 34a, and the third hierarchy 36a.
  • a tile image is one of the sections separated by a solid line in the images of each layer.
  • the identification number assigning unit 120 assigns an identification number to each tile image as shown in FIG.
  • the image of the 0th hierarchy 30a is composed of one tile image, and the identification number is “0”.
  • the first hierarchy 32a, the second hierarchy 34a, and the third hierarchy 36a assign identification numbers “1” and “2”, “3” to “8”, and “9” to “44” to each tile image, respectively.
  • the order of assigning the identification numbers is shown as a raster order, but other orders may be used as will be described later.
  • FIG. 9 schematically shows how the image block generator 122 collects the hierarchical data of FIG. 8 into image blocks.
  • the image block generation unit 122 divides the tile image from the smaller identification number so that the image block is configured by the maximum number of tile images not exceeding a predetermined data size.
  • the “predetermined data size” at this time is represented by a “basic block size” in a range of arrows.
  • tile images with identification numbers “0” to “5” are grouped into image blocks 2
  • tile images with “6” to “8” are grouped into image blocks 4, and so on.
  • the tile image from “41” to “44” is the final image block 6.
  • Each image block is identified by the identification number of the leading tile image 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 “(41, 4)”.
  • the identification information is defined in this way, it can be easily determined whether or not a certain tile image is included in a certain image block. That is, regardless of the block division method, it is possible to specify the tile image included in the image block only by confirming the range of the identification number.
  • the identification information of the image block is stored in the hard disk drive 50 in association with the storage area information in the hard disk drive 50 of the corresponding compressed image data. In this way, if the compressed image data is divided into image blocks of approximately the same size, as described above, even if the loaded image block is stored in a continuous area in the main memory 60, one image block is thereafter stored.
  • the image data can be stored by overwriting with the image block loaded in the memory block, the occurrence of fragmentation can be suppressed, and the main memory 60 can be used efficiently.
  • FIG. 10 is an example of an original image for explaining the block division method in the present embodiment. Although FIGS. 10 to 14 show a gray scale, it may actually be full color.
  • the original image 200 has, for example, 92323 ⁇ 34630 pixels and is divided into 361 ⁇ 136 tile images.
  • FIG. 11 to 14 show a state in which the original image 200 in FIG. 10 is divided in the order of giving various identification numbers with the basic block size being 1 Mbyte. Each image has different gray scales for each image block so that the boundaries of the image blocks can be easily understood.
  • FIG. 11 shows a state of division when identification numbers are assigned to tile images in raster order as shown in FIG.
  • the raster order divided image 202 is divided into image blocks in a form in which tile images are grouped in the horizontal direction.
  • the width 206 shown in the enlarged image 204 is the length of the image block in the vertical direction.
  • the length in the horizontal direction varies depending on the data size after compression of the tile image included in the image block, and one image block may span a plurality of tile images.
  • FIG. 12 shows a state of division when identification numbers are assigned to tile images in the order of “Z”.
  • the “Z-shaped” order is incremented alternately in the horizontal direction (X direction) and the vertical direction (Y direction) of the image as shown in the scanning order 214 of the identification number assignment example 212 in FIG. Is in order.
  • an identification number is given like the number described in the figure.
  • the image blocks are grouped in this order, they are divided into image blocks such as a Z-shaped forward divided image 208.
  • one image block has a shape like an image block 216.
  • the image block 216 in this case has a shape close to a square.
  • the detailed shape and size depend on the data size after compression of the tile image included in each image block.
  • the information possessed by one image block has better spatial locality, and the image block necessary for generating the display image and the image in the vicinity thereof is different from the case of FIG. Less. Furthermore, it is difficult to load useless area information, and the use efficiency of the main memory 60 is improved.
  • FIG. 13 shows a state of division when identification numbers are assigned to tile images in the order of square macro tiles.
  • the “macro tile” is a rectangle composed of a plurality of tile images, and the number of tile images included vertically and horizontally is set in advance.
  • the example of FIG. 12 can be considered to recursively form macro tiles composed of 2 ⁇ 2 tile images.
  • a square composed of 8 ⁇ 8 tile images is defined as one macro tile.
  • identification numbers are assigned within the macro tile 222 in the direction of the arrow, that is, in raster order.
  • an identification number is assigned to each tile image like the numbers described in the figure.
  • the identification number has been assigned to one macro tile, the same assignment is performed on all macro tiles in raster order.
  • the image blocks are divided into image blocks such as square macro tile order divided image 218. That is, the image block in this case has a shape in which macroblocks are grouped in the horizontal direction.
  • the length of one side of the macro tile 222, or an integral multiple thereof is the length of the image block in the vertical direction.
  • the length in the horizontal direction varies depending on the data size after compression of the tile image included in each image block.
  • FIG. 14 shows a state of division when identification numbers are assigned to tile images in the order of strip-like macro tiles.
  • the strip-shaped macro tile is a macro tile in which only the number of tile images included in the horizontal direction is set and the vertical direction is unlimited.
  • the horizontal direction is composed of 16 tile images.
  • identification numbers are assigned within the macro tile 230 in the direction of the arrow, that is, in raster order. Thereby, an identification number is given to each tile image like the number described in FIG.
  • the identification number is assigned to the lower end of the original image, the same assignment is performed on all the macro tiles in raster order, such as the macro tile located to the right of the original image.
  • the image blocks are grouped in this order, they are divided into image blocks such as strip-like macro tile order divided images 224.
  • the image block in this case has a shape in which a vertical row of macro tiles is divided in the middle according to the compressed data size of the tile image. In some cases, it may span multiple rows of macro tiles.
  • the width 228 of the macro tile or an integral multiple thereof is the width in the horizontal direction of the image block.
  • the detailed shape of the boundary line at the image block delimiter also changes in accordance with the data size of the tile image after compression.
  • the shape, size, and information contained in the image block vary greatly depending on the order in which the identification numbers are assigned and the basic block size. Therefore, a condition that enables the most efficient data capture is determined according to the content and genre of the image, for example, whether it is a landscape photograph or a character image such as a newspaper, and is selected according to the actual image. You may do it. Further, as described above, an optimal method may be selected depending on the hardware configuration.
  • the area is the data size after compression of the tile image configured as described above.
  • the upper half of the image is an empty region and the color is relatively uniform, so that there are few high frequency components and the compression rate is high.
  • the color change is large near the center of the original image 200 because there are buildings, and the compression rate is low because there are many high frequency components. Accordingly, the compressed data size of the upper half tile image of the original image 200 tends to be smaller than the data size near the center.
  • the area of the upper half image block tends to be larger than the image block near the center.
  • the area of the image is not simply divided evenly, but is divided according to the data size.
  • the image block is made closer to a square by assigning an identification number to the Z-shape, and the spatial locality is improved.
  • an identification number is assigned from a new starting point. And arranged in a matrix.
  • the boundary lines of the image blocks have a lattice shape that is approximately orthogonal to each other.
  • FIG. 15 schematically shows the relationship between the image block and the display area of the display image when the boundary lines of the image block are configured in a grid pattern.
  • the image block 134a is in a matrix form of three horizontal and two vertical, and the boundary line is a grid.
  • the drawing area 136a is located at a position including the intersection of the grid as shown in the figure, four image blocks are required for drawing.
  • FIG. 16 schematically shows the relationship between the image block and the display area of the display image when the boundary of the image block is a T-junction shape.
  • the image block 134b is arranged so that the vertical boundary line is shifted by the row, and as a result, the boundary line has a T-shaped shape.
  • the maximum number of image blocks required for drawing is three, and the load efficiency is improved compared to the case of FIG. .
  • the starting points for assigning the identification numbers are not arranged in a matrix but may be shifted by rows.
  • the tile images of a plurality of layers may be simply compressed in the same manner and then combined as an image block, or one image is used as the other image by utilizing the redundancy of the same images having different resolutions. May be restored and the compression rate may be increased.
  • information included in one image block is always loaded as a set, such a method is possible. For example, a differential image between an image obtained by enlarging a low resolution image to a magnification of the high resolution image and an actual high resolution image is compressed and included in the image block together with the compressed data of the low resolution image.
  • the image blocks are grouped in the order of the low resolution image and the difference image, and when the maximum data size does not exceed the basic block size, the next image block is formed.
  • FIG. 17 is a diagram for explaining a technique for compressing a high-resolution image as a difference image from an enlarged image of a low-resolution image.
  • This process is performed by the compressed data dividing unit 104, but may be performed separately from other processes related to image display at the stage of generating hierarchical data.
  • the original images of the second hierarchy 34 and the third hierarchy 36 in the hierarchy data 139 are read out (S20, S22).
  • the third layer image 36b is an image obtained by doubling the second layer image 34b vertically and horizontally.
  • some of the tile images of the second layer image 34b are compressed as usual (S24).
  • the tile image to be compressed in the second layer image 34b is a tile image of an area obtained by dividing the original image so as to have approximately the same data size, as illustrated in FIGS. .
  • a predetermined number of tile images may be used, and the data size may be adjusted to be uniform at the stage of forming the image block as described above.
  • compressed data 140 of the second layer image 34b and compressed data 142 of the difference image are generated.
  • the compressed data is also represented by an image for easy understanding, and the compressed data 142 of the difference image is a shaded image to indicate that it is a difference.
  • These compressed data are included in one image block 144.
  • images of three or more layers may be included in the same manner. That is, the lowest resolution image is compressed as it is, and the high resolution image is expressed by a difference image from the image in the upper layer.
  • a plurality of sets of compressed data having such dependency relationships may be included in the image block 144.
  • the image block 144 generated in this way is stored in the hard disk drive 50. Then, the load unit 108 loads the main memory 60 as necessary. Thereafter, the data is decoded by the decoding unit 112 according to the determination of the prefetch processing unit 110 or the like. At this time, the compressed data 140 of the second layer image 34b is decoded by a normal process to become the second layer image 34b (S28). On the other hand, the compressed data 142 of the difference image is first decoded as usual (S30), and then the decoded second layer image 34b is added to the image enlarged by 2 ⁇ 2 (S32, S34), so that the third layer An image 36b is obtained.
  • the difference image between the enlarged image of the low resolution image and the high resolution image data is compressed, but conversely, the low resolution image may be created using the high resolution image.
  • the decoding unit 112 After the high resolution image is wavelet compressed and stored in the hard disk drive 50 and loaded into the main memory 60 as necessary, the decoding unit 112 generates a low pass image of the compressed image of the high resolution image. A low-resolution image may be used. Similarly, a high-resolution image may be JPEG-compressed and the high-frequency component may be cut to form a low-resolution image.
  • the differential image between the low-resolution image thus generated and the original low-resolution image is compressed and included in the same image block, and the low-resolution image is restored by adding the differential image in the same manner as described above. May be.
  • one pixel may be obtained from a 2 ⁇ 2 pixel group using a pyramid filter.
  • FIG. 18 is a flowchart showing a processing procedure for determining an image block to be loaded and performing loading. This process is performed as needed at predetermined time intervals, for example.
  • the load block determination unit 106 checks whether or not the load unit 108 is currently loading (S40). If it is being loaded, the process is terminated (Y in S40).
  • the determination target region may be one tile image or may include a plurality of tile images. Such an area is called a “necessary area”.
  • the image block including the area is identified from the identification number of the tile image included in the area and the identification information of the image block. Then, it is determined as a load target (S46). If it is necessary to load a plurality of image blocks at this time, an image block having a high priority is determined as a load target according to a predetermined rule. That is, in one loading process, many image blocks are not loaded at once.
  • the load block determination unit 106 determines image blocks to be loaded at any time, and limits the number of image blocks to be loaded at one time or within a predetermined number.
  • the load unit 108 reads the image block to be loaded from the hard disk drive 50 based on the table in which the identification information of the image block and the storage area are associated with each other, and the main memory 60 (S48). If all the necessary areas are stored in the main memory 60 in S44, the process is terminated (N in S44).
  • FIG. 19 is a conceptual diagram when determining a necessary area which is a target for determining whether or not data of a necessary area is stored in the main memory 60 in S42. It is desirable that the main memory 60 is basically loaded with compressed data of an image around the currently displayed area.
  • the “periphery” may include the periphery in the vertical and horizontal (X-axis, Y-axis) directions and the depth (Z-axis) direction of the hierarchical structure in an image of the same hierarchy.
  • the periphery in the Z-axis direction means a display image and an enlarged image and a reduced image including the vicinity thereof.
  • FIG. 19 shows a part of images of the (n ⁇ 1) th layer, the nth layer, and the (n + 1) th layer from the top, and a tile image is shown in each image.
  • the image shown in each layer displays the same part on the center line 154. If the region 150 near the center of the n-th layer image is the currently displayed region, the necessary region is, for example, a region including black circles 152a, 152b, and 152c.
  • the center (point of the center line 154) and the four corner points in the display image region 150, and the rectangular sides obtained by extending the region 150 vertically and horizontally A tile image including a point and four corner points is set as a necessary area.
  • a tile image including the point of the center line 154 and the four corners of a rectangle of a predetermined size centering on the center line 154 is necessary.
  • the rectangle in this case may be a size corresponding to the size of the rectangle of the display image. If an image block including such a point is always loaded into the main memory 60 even if the display area moves, decoding and drawing can be performed smoothly, and the response to an image change request by the user is improved.
  • the points shown in FIG. 19 are merely examples, and the number may be increased or decreased or the arrangement shape may be changed depending on the content of the image, the processing performance of the image processing apparatus 10, the capacity of the main memory 60, and the like.
  • areas that are important in the content of the image areas that have been displayed with high frequency in the past, and areas that seem to match the user's preferences from the display history of the same user are preferentially loaded regardless of changes in the displayed image. You may make it do.
  • the “important area” is, for example, a display area such as the vicinity of a face in the case of an image of a person and a feature product in the case of an electronic flyer.
  • the user's preference is a column that the user often browses if the image is a newspaper page. Such a region is loaded with a high priority even when it is necessary to load a plurality of image blocks in S46 of FIG. Alternatively, it may be loaded when image display is started.
  • the following rules may be prepared.
  • priority is given to image blocks in another layer, that is, an enlarged image and a reduced image, over an image block in the same layer as the display image. This is because, in the case of movement of the display area in the same hierarchy, there is a high possibility of being covered by the decoded images stored in the two buffer areas 72 and 74 in the buffer memory 70, whereas in the movement between the hierarchy, the buffer memory 70 This is because there is a high possibility that all the decoded images must be updated. However, the buffer memory 70 may be sufficient in the case of reciprocating between two layers.
  • FIG. 20 is a diagram for explaining prefetch processing performed by the prefetch processing unit 110.
  • FIG. 20 shows the structure of hierarchical data, and each hierarchy is expressed as L0 (0th hierarchy), L1 (1st hierarchy), L2 (2nd hierarchy), and L3 (3rd hierarchy).
  • An arrow 80 indicates that an image change request from the user requests reduction of the display image and straddles L2.
  • the positions in the depth direction of L1 and L2 where the original image data exists are set as the prefetch boundary in the depth direction, and the image change request from the input device 20 is the prefetch boundary.
  • the prefetching process is started at a timing exceeding.
  • a display image is created using an image of L2 (second layer).
  • the L2 image is reduced. Enlarge and generate a display image. Therefore, when image reduction processing is requested as indicated by the arrow 80, the L2 enlarged image is converted into a reduced image and displayed.
  • the image processing apparatus 10 identifies a future necessary image predicted from the image change request, reads out the image from the main memory 60, and decodes it. In the example of FIG. 20, when the requested scale ratio due to the image change request crosses L2, the image of L1 in the reduction direction is pre-read from the main memory 60, decoded, and written to the buffer memory 70.
  • a prefetch boundary is set for the image data stored in the buffer memory 70, and the prefetch process is started when the display position by the image change request crosses the prefetch boundary.
  • FIG. 21 is a flowchart showing a processing procedure when the prefetch processing unit 110 and the decoding unit 112 decode an image.
  • a required display image change amount is derived (S50).
  • the change amount of the display image is the amount of movement in the vertical and horizontal directions and the amount of movement in the depth direction.
  • the frame coordinates of the four corners of the display area of the movement destination are determined from the frame coordinates of the four corners of the display area in the hierarchical structure based on the derived change amount (S52).
  • the prefetch processing unit 110 instructs the decoding unit 112 to decode a necessary image area.
  • the decoding unit 112 acquires the data of the designated image area from the main memory 60, decodes it, and stores it in the buffer area 72 or the buffer area 74 (S60). Accordingly, a necessary image area can be developed in the buffer memory 70 before the display image processing unit 114 generates the display image.
  • the next required image in the decoding buffer is, for example, when the display area crosses the prefetch boundary when moving within the same hierarchy, It is an image in which the display area is included at the end on the start point side in the movement direction.
  • the images stored in the buffer area 72 and the buffer area 74 have at least an overlap area corresponding to the size of the display image, and the overlap area further increases depending on the setting position of the prefetch boundary.
  • the range of an image to be newly decoded when the prefetch boundary is exceeded is set in advance according to the processing speed or the like. Or you may change with the content of an image.
  • the decoding buffer When the decoding buffer is used as described above, a newly stored image and a part of the image previously stored in the decoding buffer may overlap. Utilizing such a property, in the present embodiment, the area to be newly decoded is reduced by the following process, thereby reducing the load of the decoding process.
  • FIG. 22 shows a functional block of the decoding unit 112 when the image to be newly stored in the decoding buffer of the buffer memory 70 has an overlapping portion with the previously stored image.
  • the decoding unit 112 includes an overlapping region acquisition unit 170 that identifies an overlapping region, a partial region decoding unit 172 that newly decodes a non-overlapping region and overwrites a part of the image that has been stored so far.
  • a repeat image generation unit 174 that generates an image in which the overwritten images are repeatedly arranged, and a decoded image storage unit 176 that extracts a part of the arranged images and stores them as a final decoded image in a decoding buffer.
  • FIG. 23 schematically shows a procedure in which the decoding unit 112 in FIG. 22 stores an image in the decoding buffer.
  • the decoding unit 112 in FIG. 22 stores an image in the decoding buffer.
  • the image already stored in the decoding buffer at this time is the image 160 in the upper left of the figure.
  • the image to be newly stored is the image 162 in the upper right of the figure.
  • the figure shows the situation where the display area has moved to the left, and the "star" figure on the left is expected to be displayed from the original "circle” or "triangle” figure. .
  • the image 160 and the image 162 have overlapping areas.
  • the region from x1 to x2 overlaps with the image 160 in the image 162 composed of regions from x0 to x2 in the horizontal direction (X axis).
  • the overlapping area from x1 to x2 is used as it is as a part of the image to be newly stored.
  • the partial region decoding unit 172 decodes only the region from x0 to x1 that does not overlap with the image 160 in the image 162 to be newly stored, and is no longer necessary in the stored image 160.
  • the area from x2 to x3 that is not present is overwritten (S70).
  • the buffer areas 72 and 74 of the buffer memory 70 are provided with areas for storing the lower left coordinates of the currently stored image. Then, the overlapping area acquisition unit 170 identifies the overlapping area by comparing with the lower left coordinates of the area to be newly stored. If a load of a predetermined value or more is applied to the process of specifying the overlapping area before decoding, only the non-overlapping area may be overwritten after decoding all the images 162 to be newly stored.
  • the repeat image generation unit 174 temporarily creates a repeat image 166 obtained by repeating the intermediate image 164 thus formed in the horizontal direction (S72).
  • An image obtained by repeating unit images in the vertical and horizontal directions can be generated by a technique generally used in image processing.
  • the decoded image storage unit 176 sets the coordinate of the boundary of the intermediate image to 0 in the repeat image 166, the area from ⁇ (x1 ⁇ x0) to x2 ⁇ x1 is extracted and newly stored in the decoding buffer (S74). ).
  • the image 162 to be newly stored is stored in the decoding buffer.
  • the repeat image 166 is an image obtained by repeating the intermediate image 164 twice in the vertical and horizontal directions.
  • the image stored in the decoding buffer may be the intermediate image 164.
  • the display image processing unit 114 reads the intermediate image 164 from the decoding buffer in accordance with an instruction input from the user, performs the above-described processing of S72 and S74, and displays the image 162 to be newly stored in the display processing unit 44. Drawing in the frame memory 90.
  • the above is the decoding method in the prefetch process for the movement of the display area in the same hierarchy.
  • a request for enlargement or reduction without changing the displayed center point is made. If the change is in one of the enlargement direction and the reduction direction, a new image is sequentially stored in the decoding image when the prefetch boundary is exceeded, but the two prefetch boundaries are exceeded.
  • a request to return to the original scale ratio is made, it is not necessary to store a new image in the decoding image, and the stored image can be used as it is.
  • the buffer areas 72 and 74 of the buffer memory 70 may be further provided with areas for storing the layer numbers of the currently stored images.
  • the prefetch boundary set in the depth direction of the hierarchy is exceeded, if the hierarchy to be stored in the decoding buffer is the same as the stored hierarchy, the stored image is left as it is without performing the decoding process. Leave it in a state. As a result, even when the display image is enlarged or reduced, the number of decoding processes can be minimized, and the processing load and latency can be reduced.
  • the data is transferred from the hard disk drive storing the compressed data to the main memory.
  • Load part By decoding and displaying the data loaded in the main memory, when a display image change request is made from the user, the time required to read out the necessary data from the hard disk drive can be saved and the responsiveness can be improved. Further, by adopting an aspect in which only a part of the data is loaded, even an image having a size larger than the capacity of the main memory can be set as a display target, and restrictions on an image that can be handled are reduced.
  • the image data is divided into blocks with approximately the same data size and stored in the hard disk drive, and loading to the main memory is performed in units of blocks.
  • the main memory can be used effectively, and address management becomes easy.
  • the information that each block has is given spatial locality.
  • the tile image included in one block is added so that the tile image of the starting point is expanded in the horizontal and vertical directions in the same manner, and the area of one block is immediately before reaching a predetermined data size.
  • the block is shaped like a square.
  • a tile image is added in the raster order to obtain a shape close to a rectangle having a predetermined width. In this way, the number of blocks necessary for display can be suppressed, the number of loads can be reduced, and data necessary for decoding can be easily read from the main memory.
  • the blocks may be divided so that the boundary between the blocks becomes a T-junction.
  • loading of the block into the main memory is performed as needed at predetermined time intervals even at timings other than when the display image is changed.
  • a point that is a peripheral region in terms of position and hierarchy is determined according to a predetermined rule, and an unloaded block including the point is loaded as needed.
  • areas that are important in image content and areas that have a display probability that can be predicted for each user based on the display history are higher than a predetermined threshold value are preferentially loaded. This makes it possible to reduce the possibility of a situation in which data must be loaded from the hard disk drive or downloaded over the network immediately after a display image change request from the user, and a large number of blocks need to be loaded at one time. And the occurrence of latency due to the load process can be suppressed.
  • the same area part of images in different layers should be included in one block.
  • the information held by the other image among the information necessary for restoring one image is not held twice in the block. For example, if a difference image between a low resolution image and an enlarged image obtained by enlarging the low resolution image and a high resolution image is included in one block and compressed, the high resolution image can be restored.
  • the redundancy between images can be used in this way. By doing so, the data compression rate is increased and the main memory can be used effectively.
  • an area that can be predicted to be displayed in the future is decoded in advance and stored in the decoding buffer.
  • an area overlapping with the previously stored image is used as it is.
  • an intermediate image is generated by overwriting a non-overlapping area of a stored image with a new image area, and a decoding process is performed by extracting a necessary portion from a repeat image formed by repeating the intermediate image.
  • a new image can be easily stored at a minimum.
  • the present invention can be used for information processing apparatuses such as image processing apparatuses, image display apparatuses, computers, and game machines.
  • 1 image processing system 10 image processing device, 12 display device, 20 input device, 30 0th layer, 32 1st layer, 34 2nd layer, 36 3rd 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, 104 compressed data division unit, 106 load block determination unit, 108 load unit, 110 prefetch processing Part, 112 decoding part, 114 display image processing part, 120 identification number giving part, 122 image block generating part, 170 overlapping area obtaining part, 172 partial area decoding part, 174 repeat Image generation unit, 176 decoded image storage unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Processing Or Creating Images (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

 ハードディスクドライブ(50)に格納されている異なる解像度の圧縮画像データは、およそ一定のデータサイズのブロックに分割しておく。そして所定の時間間隔で、必要なブロックがメインメモリ(60)に格納されているか確認し、格納されていなければメインメモリ(60)にロードする(S10)。次に、ロードした圧縮画像データのうち、表示に必要な領域の画像、または必要と予測される領域の画像のデータをデコードし、バッファメモリ(70)に格納する(S12)。表示用バッファであるバッファ領域(72)に格納された画像のうち表示領域(68)の画像を、フレームメモリ(90)に描画する(S14)。デコードが完了したタイミングや表示領域(68)の変更量などに応じて、表示用バッファとデコード用バッファを切り替える(S16)。

Description

画像処理装置および画像処理方法
 本発明は、ディスプレイに表示する画像を拡大/縮小、または上下左右に移動させる画像処理技術に関する。
 ゲームプログラムを実行するだけでなく、動画を再生できる家庭用エンタテインメント
システムが提案されている。この家庭用エンタテインメントシステムでは、GPUがポリ
ゴンを用いた三次元画像を生成する(例えば特許文献1参照)。
 一方、高精細な写真などのディジタル画像から生成された複数の解像度のタイル画像を用いて、表示画像の拡大/縮小処理や、上下左右方向の移動処理を行う技術が提案されている。この画像処理技術では、原画像サイズを複数段階に縮小して異なる解像度の画像を生成し、各階層の画像を一又は複数のタイル画像に分割して、原画像を階層構造で表現する。通常、最も解像度の低い画像は1つのタイル画像で構成され、最も解像度の高い原画像は、最も多い数のタイル画像で構成される。画像処理装置は、表示画像の拡大処理または縮小処理時に、使用しているタイル画像を、異なる階層のタイル画像に切り替えることで、拡大表示または縮小表示を迅速に行うようにしている。
米国特許第6563999号公報
 このような画像処理装置において、表示領域の移動や画像の拡大、縮小(以後、それらをまとめて「画像変更」と呼ぶ)をユーザが要求した場合、タイル画像のデータ読みだし、デコードなどの処理によって、新たな画像が出力されるまでに看過できない時間がかかる場合がある。また応答性をよくするためにアクセス速度の速いメモリに全画像データを格納しようとすると、高精細、高解像度の画像の場合は特に大容量メモリが必要となり、対応できる画像をデータサイズで制限しなければならない事態も発生する。
 本発明はこのような課題に鑑みてなされたものであり、その目的は、ユーザからの画像変更要求に対する応答性に優れた画像処理技術を提供することにある。
 本発明のある態様は画像処理装置に関する。この画像処理装置は、画像の少なくとも一部をディスプレイに表示する画像処理装置であって、処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを保持する記憶装置と、表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを、記憶装置からメモリにロードするロード部と、ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、ロード部がロードした画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成する表示画像処理部と、を備えることを特徴とする。
 本発明の別の態様は画像処理方法に関する。この画像処理方法は、画像の少なくとも一部をディスプレイに表示する画像処理方法であって、処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを生成し、記憶装置に格納するステップと、表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを記憶装置からメモリにロードするステップと、ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、ロードした画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成するステップと、を含むことを特徴とする。
 本発明のさらに別の態様は画像処理装置に関する。この画像処理装置は、ユーザの要求に従い画像内の領域をディスプレイに表示する画像処理装置であって、要求に基づき必要な領域の圧縮画像データをメモリより読み出しデコードするデコード部と、デコード部がデコードした画像を格納するバッファメモリと、バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画する表示画像処理部と、を備え、デコード部は、新たな画像をバッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定する重複領域取得部と、新たな画像のうち重複領域を除く部分領域を含む領域の圧縮画像データをデコードする部分領域デコード部と、それまで格納されていた画像のうち重複領域と、部分領域デコード部がデコードした部分領域とをつなげてバッファメモリに格納するデコード画像格納部と、を備えることを特徴とする。
 本発明のさらに別の態様は画像処理方法に関する。この画像処理方法は、ユーザの要求に従い画像内の領域をディスプレイに表示する画像処理方法であって、要求に基づき必要な領域の圧縮画像データを新たにデコードしてバッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定するステップと、新たな画像のうち重複領域を除く部分領域を含む領域の圧縮画像データをメインメモリより読み出しデコードするステップと、それまで格納されていた画像のうち重複領域と、新たにデコードした部分領域領域とをつなげてバッファメモリに格納するステップと、バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画するステップと、を含むことを特徴とする。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
 本発明によると、ユーザからの画像変更要求に対して優れた応答性を有する画像処理装置を提供することができる。
本発明の実施の形態にかかる画像処理システムの使用環境を示す図である。 図1の画像処理システムに適用できる入力装置の外観構成を示す図である。 本実施の形態において使用する画像データの階層構造を示す図である。 本実施の形態における画像処理装置の構成を示す図である。 本実施の形態における画像データの流れを模式的に示すである。 本実施の形態における制御部の構成を詳細に示す図である。 本実施の形態における圧縮データ分割部の構成を詳細に示す図である。 本実施の形態の階層データにおける各階層の画像を模式的に示す図である。 本実施の形態における画像ブロック生成部が、図8の階層データを画像ブロックにまとめる様子を模式的に示す図である。 本実施の形態におけるブロック分割の手法を説明するための原画像の例を示す図である。 本実施の形態においてタイル画像に対しラスタ順に識別番号を付与した場合の、分割の様子を示す図である。 本実施の形態において「Z状」の順でタイル画像に識別番号を付与した場合の、分割の様子を示す図である。 本実施の形態において正方形のマクロタイル順でタイル画像に識別番号を付与した場合の、分割の様子を示す図である。 本実施の形態において短冊状マクロタイル順でタイル画像に識別番号を付与した場合の、分割の様子を示す図である。 画像ブロックの境界線が格子状に構成されているときの、画像ブロックと表示画像の描画領域の関係を模式的に示す図である。 本実施の形態において画像ブロックの境界線をT字路形状としたときの、画像ブロックと表示画像の描画領域の関係を模式的に示す図である。 本実施の形態において高解像度画像を、低解像度画像の拡大画像との差分画像として圧縮する手法を説明するための図である。 本実施の形態においてロードすべき画像ブロックを決定してロードを実施する処理手順を示すフローチャートである。 図18のS42においてメインメモリ格納されているか否かを判定する対象である必要領域を決定するときの概念図である。 本実施の形態において先読み処理部が行う先読み処理を説明するための図である。 本実施の形態において先読み処理部およびデコード部が画像のデコードを行う際の処理手順を示すフローチャートである。 本実施の形態のバッファメモリのデコード用バッファにおいて、新たに格納すべき画像がそれまでに格納されていた画像と重複部分を有する場合の、デコード部の機能ブロックを示す図である。 図22のデコード部が画像をデコード用バッファに格納する手順を模式的に示す図である。
 図1は、本発明の実施の形態にかかる画像処理システム1の使用環境を示す。画像処理システム1は、画像処理ソフトウェアを実行する画像処理装置10と、画像処理装置10による処理結果を出力する表示装置12とを備える。表示装置12は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよい。表示装置12は、画像処理装置10に有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。画像処理システム1において、画像処理装置10は、ケーブル14を介してインターネットなどの外部ネットワークに接続し、階層化された圧縮画像データをダウンロードして取得してもよい。なお画像処理装置10は、無線通信により外部ネットワークに接続してもよい。
 画像処理装置10は、たとえばゲーム装置であってよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。なお画像処理装置10は、パーソナルコンピュータであってもよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。
 画像処理装置10は、ユーザからの要求に応じて、表示装置12のディスプレイに表示する画像の拡大/縮小処理や、上下左右方向への移動処理など、表示画像を変更する処理を行う。ユーザが、ディスプレイに表示された画像を見ながら入力装置を操作すると、入力装置が、表示画像の変更要求信号を画像処理装置10に送信する。
 図2は、入力装置20の外観構成を示す。入力装置20は、ユーザが操作可能な操作手段として、十字キー21、アナログスティック27a、27bと、4種の操作ボタン26を備える。4種の操作ボタン26は、○ボタン22、×ボタン23、□ボタン24および△ボタン25から構成される。
 画像処理システム1において、入力装置20の操作手段には、表示画像の拡大/縮小要求、および上下左右方向へのスクロール要求を入力するための機能が割り当てられる。たとえば、表示画像の拡大/縮小要求の入力機能は、右側のアナログスティック27bに割り当てられる。ユーザはアナログスティック27bを手前に引くことで、表示画像の縮小要求を入力でき、また手前から押すことで、表示画像の拡大要求を入力できる。また、表示領域の移動要求の入力機能は、十字キー21に割り当てられる。ユーザは十字キー21を押下することで、十字キー21を押下した方向への移動要求を入力できる。なお、画像変更要求の入力機能は別の操作手段に割り当てられてもよく、たとえばアナログスティック27aに、スクロール要求の入力機能が割り当てられてもよい。
 入力装置20は、入力された画像変更要求信号を画像処理装置10に伝送する機能をもち、本実施の形態では画像処理装置10との間で無線通信可能に構成される。入力装置20と画像処理装置10は、Bluetooth(ブルートゥース)(登録商標)プロトコルやIEEE802.11プロトコルなどを用いて無線接続を確立してもよい。なお入力装置20は、画像処理装置10とケーブルを介して接続して、画像変更要求信号を画像処理装置10に伝送してもよい。
 図3は、本実施の形態において使用する画像データの階層構造を示す。画像データは、深さ(Z軸)方向に、第0階層30、第1階層32、第2階層34および第3階層36からなる階層構造を有する。なお同図においては4階層のみ示しているが、階層数はこれに限定されない。以下、このような階層構造をもつ画像データを「階層データ」とよぶ。
 図3に示す階層データは4分木の階層構造を有し、各階層は、1以上のタイル画像38で構成される。すべてのタイル画像38は同じ画素数をもつ同一サイズに形成され、たとえば256×256画素を有する。各階層の画像データは、一つの画像を異なる解像度で表現しており、最高解像度をもつ第3階層36の原画像を複数段階に縮小して、第2階層34、第1階層32、第0階層30の画像データが生成される。たとえば第N階層の解像度(Nは0以上の整数)は、左右(X軸)方向、上下(Y軸)方向ともに、第(N+1)階層の解像度の1/2であってよい。
 画像処理装置10において、階層データは、所定の圧縮形式で圧縮された状態で記憶装置に保持されており、ディスプレイに表示される前に記憶装置から読み出されてデコードされる。本実施の形態の画像処理装置10は、複数種類の圧縮形式に対応したデコード機能を有し、たとえばS3TC形式、JPEG形式、JPEG2000形式の圧縮データをデコード可能とする。階層データにおいて、圧縮処理は、タイル画像単位に行われていてもよく、また同一階層または複数の階層に含まれる複数のタイル画像単位に行われていてもよい。
 階層データの階層構造は、図3に示すように、左右方向をX軸、上下方向をY軸、深さ方向をZ軸として設定され、仮想的な3次元空間を構築する。画像処理装置10は、入力装置20から供給される画像変更要求信号から表示画像の変更量を導出すると、その変更量を用いて仮想空間におけるフレームの4隅の座標(フレーム座標)を導出する。仮想空間におけるフレーム座標は、後述するメインメモリへのロードおよび表示画像の生成処理に利用される。なお、仮想空間におけるフレーム座標の代わりに、画像処理装置10は、階層を特定する情報と、その階層におけるテクスチャ座標(UV座標)を導出してもよい。以下、階層特定情報およびテクスチャ座標の組み合わせも、フレーム座標と呼ぶ。
 図4は画像処理装置10の構成を示している。画像処理装置10は、無線インタフェース40、スイッチ42、表示処理部44、ハードディスクドライブ50、記録媒体装着部52、ディスクドライブ54、メインメモリ60、バッファメモリ70および制御部100を有して構成される。表示処理部44は、表示装置12のディスプレイに表示するデータをバッファするフレームメモリを有する。
 スイッチ42は、イーサネットスイッチ(イーサネットは登録商標)であって、外部の機器と有線または無線で接続して、データの送受信を行うデバイスである。スイッチ42は、ケーブル14を介して外部ネットワークに接続し、画像サーバから階層化された圧縮画像データを受信してもよい。またスイッチ42は無線インタフェース40に接続し、無線インタフェース40は、所定の無線通信プロトコルで入力装置20と接続する。入力装置20においてユーザから入力された画像変更要求信号は、無線インタフェース40、スイッチ42を経由して、制御部100に供給される。
 ハードディスクドライブ50は、データを記憶する記憶装置として機能する。スイッチ42を介して受信された圧縮画像データは、ハードディスクドライブ50に格納される。記録媒体装着部52は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ54は、読出専用のROMディスクが装着されると、ROMディスクを駆動して認識し、データを読み出す。ROMディスクは、光ディスクや光磁気ディスクなどであってよい。圧縮画像データはこれらの記録媒体に格納されていてもよい。
 制御部100は、マルチコアCPUを備え、1つのCPUの中に1つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはPPU(Power Processing Unit)と呼ばれ、残りのプロセッサコアはSPU(Synergistic-Processing Unit)と呼ばれる。
 制御部100は、メインメモリ60およびバッファメモリ70に接続するメモリコントローラを備える。PPUはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各SPUに効率的に割り当てる。なお、PPU自身がタスクを実行してもよい。SPUはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。ローカルメモリは、バッファメモリ70として使用されてもよい。
 メインメモリ60およびバッファメモリ70は記憶装置であり、RAM(ランダムアクセスメモリ)として構成される。SPUは制御ユニットとして専用のDMA(Direct Memory Access)コントローラをもち、メインメモリ60とバッファメモリ70の間のデータ転送を高速に行うことができ、また表示処理部44におけるフレームメモリとバッファメモリ70の間で高速なデータ転送を実現できる。本実施の形態の制御部100は、複数のSPUを並列動作させることで、高速な画像処理機能を実現する。表示処理部44は、表示装置12に接続されて、ユーザからの要求に応じた画像処理結果を出力する。
 本実施の形態の画像処理装置10は、表示画像の拡大/縮小処理や表示領域の移動処理を行う際に表示画像をスムーズに変更させるために、後述する規則によって決定した圧縮画像データの一部をハードディスクドライブ50からメインメモリ60にロードしておく。また、メインメモリ60にロードした圧縮画像データのさらに一部をデコードしてバッファメモリ70に格納しておく。これにより、後の必要なタイミングで、表示画像の生成に使用する画像を瞬時に切り替えることが可能となる。
 図5は本実施の形態における画像データの流れを模式的に示している。まず階層データはハードディスクドライブ50に格納されている。ハードディスクドライブ50に代わり、記録媒体装着部52やディスクドライブ54に装着された記録媒体が保持していてもよい。あるいは、画像処理装置10がネットワークを介して接続した画像サーバから階層データをダウンロードするようにしてもよい。ここでの階層データは上述のとおり、S3TC形式などによる固定長圧縮、あるいはJPEG形式などによる可変長圧縮がなされている。
 この階層データのうち、一部の画像データを圧縮した状態のままメインメモリ60にロードする(S10)。ここでロードする領域は、現在の表示画像の仮想空間における近傍や、画像の内容、ユーザの閲覧履歴等に基づいて、高頻度で表示要求がなされると予測される領域など、あらかじめ定めた規則によって決定する。ロードは、画像変更要求がなされたときのみならず、例えば所定の時間間隔で随時行う。これによりロード処理が一時期に集中しないようにする。
 また、ロードする圧縮画像データはおよそ一定のサイズを有するブロック単位とする。そのためハードディスクドライブ50が保持する階層データは所定の規則でブロックに分割しておく。このようにすることでメインメモリ60におけるデータ管理が効率よく行える。すなわち、圧縮画像データが可変長圧縮されたものであっても、ブロック(以後、「画像ブロック」と呼ぶ)単位であればロードするデータサイズがほぼ等しいため、基本的にメインメモリ60にそれまで格納されていたブロックのいずれかを上書きすることによって新たなロードが完了する。そのためフラグメンテーションが発生しにくく、メモリを効率的に使用できるうえ、アドレス管理も容易になる。
 次に、メインメモリ60に格納されている圧縮画像データのうち、表示に必要な領域の画像、または必要と予測される領域の画像のデータをデコードし、バッファメモリ70に格納する(S12)。バッファメモリ70は、少なくとも2つのバッファ領域72、74を含む。各バッファ領域72、74のサイズは、フレームメモリ90のサイズよりも大きく設定され、入力装置20から画像変更要求信号が入力された場合に、ある程度の量の変更要求に対しては、バッファ領域72、74に展開した画像データで表示画像を生成できるようにする。
 バッファ領域72、74の一方は、表示画像の生成に用いる画像を保持するために利用され、他方は、以後、必要と予測される画像を準備するために利用される。以後、前者を「表示用バッファ」、後者を「デコード用バッファ」と呼ぶ。図5の例では、バッファ領域72が表示用バッファ、バッファ領域74がデコード用バッファで、表示領域68が表示されているものとする。先読み処理によってデコード用バッファに格納する画像は、表示用バッファに格納されている画像と同一階層の画像でもよいし、縮尺の異なる別階層の画像でもよい。
 次に、表示用バッファであるバッファ領域72に格納された画像のうち表示領域68の画像を、フレームメモリ90に描画する(S14)。この間に、新たな領域の画像が必要に応じてデコードされ、バッファ領域74に格納される。格納が完了したタイミングや表示領域68の変更量などに応じて、表示用バッファとデコード用バッファを切り替える(S16)。これにより、表示領域の移動や縮尺率の変更などに対し表示画像をスムーズに切り替えることができる。
 本実施の形態ではさらに、デコード用バッファへ新たな領域の画像を格納すべきときに、それまで格納されていたデコード済みの画像と重複する領域が存在するときは、当該領域を利用することにより新たにデコードする領域を最小限にする。具体的な手法については後に詳述する。
 図6は制御部100の構成を詳細に示している。制御部100は入力装置20からユーザが入力した情報を取得する入力情報取得部102、階層データを画像ブロックに分割する圧縮データ分割部104、新たにロードすべき画像ブロックを決定するロードブロック決定部106、必要な画像ブロックをハードディスクドライブ50からロードするロード部108を含む。制御部100はさらに、表示画像を描画する表示画像処理部114、先読み処理を行う先読み処理部110、および圧縮画像データをデコードするデコード部112を含む。
 図6において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、制御部100は1つのPPUと複数のSPUとを有し、PPUおよびSPUがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
 入力情報取得部102は、ユーザが入力装置20に対して入力した、画像表示の開始/終了、表示領域の移動、表示画像の拡大、縮小などの指示内容を取得する。
 圧縮データ分割部104は、ハードディスクドライブ50などから階層データを読み出し、後述する所定の規則により分割して画像ブロックを生成し、ハードディスクドライブ50に格納する。例えばユーザが入力装置20に対し、ハードディスクドライブ50に格納されている階層データのいずれかを選択すると、入力情報取得部102から当該情報を取得し、分割処理を開始する。
 一方、圧縮データ分割部104は制御部100の他の機能と同一の装置内になくてもよく、階層データを生成する段階で分割するようにしてもよい。具体的な分割手法は後に詳述するが、ハードディスクドライブ50の速度やメインメモリ60の容量などハードウェアの性能によって、圧縮データ分割部104が行うブロック分割の方法は異なっていていよい。そのため、圧縮データ分割部104にはあらかじめ、画像処理装置10が有するハードウェア性能に応じた最適なブロック分割を行うように設定しておく。
 ロードブロック決定部106は、ハードディスクドライブ50からメインメモリ60へ新たにロードすべき画像ブロックの有無の確認、および次にロードする画像ブロックの決定を行い、ロード部108にロード要求を発行する。ロードブロック決定部106は、ロード部108がロード処理中でない状態において、例えば所定の時間間隔、あるいは、ユーザが画像の変更要求を行った際など、所定のタイミングで上記確認、決定の処理を行う。ロード部108は、ロードブロック決定部106からの要求に従い、実際のロード処理を行う。
 ユーザが表示画像の変更要求を行った際、もし変更先の画像領域を含む画像ブロックがメインメモリ60に格納されていなかったら、ハードディスクドライブ50からの画像ブロックのロード、必要領域のデコード、表示画像の描画、といった処理を一度に行う必要がある。この場合、ロード処理がボトルネックとなり、ユーザの要求に対する応答性が損なわれることが考えられる。本実施の形態では、(1)今後表示される可能性の高い領域を網羅するように画像ブロックをロードしておく、(2)ロード処理が一時期に集中しないように随時ロードしていく、というポリシーの元でロードを行う。これによりロード処理が表示画像の変更処理の妨げになることが少なくなる。ロードする画像ブロックの決定手順については後に詳述する。
 先読み処理部110は、現在の表示画像のフレーム座標とユーザが入力した表示画像変更要求の情報に従い、将来表示画像の描画に必要とされるであろう画像領域を予測し、その情報をデコード部112に供給する。ただし画像表示開始直後や、バッファメモリ70に格納済みの画像では変更先の画像が描画できない場合などは、予測をせずに、その時点の表示画像の描画に必要な画像を含む所定領域の情報をデコード部112に供給する。デコード部112は、先読み処理部110から取得した画像領域の情報に基づき、メインメモリ60から圧縮画像データの一部を読み出しデコードし、デコード用バッファまたは表示用バッファにデコード後のデータを格納する。
 表示画像処理部114は、ユーザが入力した表示画像変更要求に従い新たな表示画像のフレーム座標を決定し、バッファメモリ70の表示用バッファから対応する画像データを読み出し、表示処理部44のフレームメモリ90に描画する。
 次に、階層データを画像ブロックに分割する手法について説明する。図7は圧縮データ分割部104の構成を詳細に示している。圧縮データ分割部104は、識別番号付与部120、画像ブロック生成部122を含む。識別番号付与部120は、階層データを構成する各階層のタイル画像に所定の順序で0から順に識別番号を付与していく。画像ブロック生成部122は、データサイズの合計が所定のサイズを超える直前まで識別番号順にタイル画像をまとめていき、画像ブロックを生成する。
 図8は、階層データにおける各階層の画像を模式的に示している。階層データは図3と同様、第0階層30a、第1階層32a、第2階層34a、および第3階層36aの画像からなるとする。そして各階層の画像のうち実線で区切られた区画のひとつひとつがタイル画像である。識別番号付与部120は、同図に示すように、各タイル画像に識別番号を付与する。例えば第0階層30aの画像は、1つのタイル画像で構成され、識別番号を「0」とする。第1階層32a、第2階層34a、第3階層36aはそれぞれ、「1」と「2」、「3」から「8」、「9」から「44」の識別番号を各タイル画像に付与する。図8の例では、識別番号を付与する順序をラスタ順として示しているが、後述するようにそれ以外の順序でもよい。
 図9は画像ブロック生成部122が、図8の階層データを画像ブロックにまとめる様子を模式的に示している。上述のように画像ブロック生成部122は、所定のデータサイズを超えない最大数のタイル画像で画像ブロックが構成されるように、識別番号の小さい方からタイル画像を区切っていく。同図では、このときの「所定のデータサイズ」を「基本ブロックサイズ」として矢印の範囲で表している。
 同図の例では、識別番号「0」から「5」のタイル画像が画像ブロック2、「6」から「8」のタイル画像が画像ブロック4、というようにそれぞれ画像ブロックにまとめられていき、「41」から「44」のタイル画像が最終の画像ブロック6となっている。各画像ブロックは、先頭のタイル画像の識別番号と含まれるタイル画像の数で識別する。したがって画像ブロック2は「(0,6)」、画像ブロック4は「(6,3)」、画像ブロック6は「(41,4)」なる識別情報を有する。このように識別情報を定義すると、あるタイル画像がある画像ブロックに含まれるか否かを容易に判定することができる。すなわち、ブロック分割方法に関わらず、識別番号の範囲を確認するのみで、画像ブロックに含まれるタイル画像を特定できる。
 画像ブロックの識別情報は、対応する圧縮画像データのハードディスクドライブ50における格納領域の情報と対応づけて、ハードディスクドライブ50に格納しておく。このように、圧縮画像データをおよそ同じサイズの画像ブロックに分割しておけば、上述のとおり、ロードした画像ブロックをメインメモリ60内の連続した領域に格納しても、一つの画像ブロックをその後にロードされた画像ブロックで上書きしていくことにより格納が可能であり、フラグメンテーションの発生を抑制できるとともに、メインメモリ60を効率的に使用できる。
 上記のように識別番号順に画像ブロックの区切りを設定していく場合、識別番号のタイル画像への付与順によって、原画像がどのように分割されるかが大きく異なる。以下、いくつかの例を説明する。図10は、本実施の形態におけるブロック分割の手法を説明するための原画像の例である。なお図10~14はグレースケールを示しているが、実際にはフルカラーでよい。原画像200は例えば92323×34630画素を有しそれを361×136個のタイル画像に分割する。
 図11~14は、基礎ブロックサイズを1Mバイトとして様々な識別番号の付与順で図10の原画像200を分割した様子を示している。各画像は、画像ブロックの境界がわかりやすいように、画像ブロックごとにグレースケールの濃淡を異ならせている。図11は、図8のようにタイル画像に対しラスタ順に識別番号を付与した場合の、分割の様子を示している。ラスタ順分割画像202は、タイル画像を横方向にまとめた形の画像ブロックに分割されている。拡大画像204において示した幅206が画像ブロックの縦方向の長さとなる。横方向の長さは画像ブロックに含まれるタイル画像の圧縮後のデータサイズによって変化し、一つの画像ブロックが複数行のタイル画像に渡る場合もある。
 図11のような識別番号の付与順であれば付与そのものの処理が容易である。また、このようにブロック分割すると、一つの画像ブロックが保持する情報は横方向について多くなる。そのため画像の内容上、横方向に表示領域を移動させることが多いような場合には、少ない回数のロードによって、移動後の表示領域を網羅できる画像ブロックがメインメモリ60に格納できる。一方、表示領域の移動にそのような特性がない場合は、一つの表示画像を生成するために多数の画像ブロックをロードする必要があるうえ、表示画像から遠い箇所の無駄な情報を多く取り込むことになり、効率が悪い。
 図12は、「Z状」の順でタイル画像に識別番号を付与した場合の分割の様子を示している。ここで「Z状」の順とは、同図の識別番号付与例212のスキャン順214に示すように、画像の横方向(X方向)と縦方向(Y方向)に交互にインクリメントしていく順序である。すると、同図に記載された数字のように識別番号が付与される。この順で画像ブロックにまとめていくと、Z状順分割画像208のような画像ブロックに分割される。拡大画像210において一つの画像ブロックは画像ブロック216のような形状を有する。
 すなわちこの手法では、あるタイル画像を始点に横方向、縦方向に同量ずつ拡大していくように識別番号を付与しているため、この場合の画像ブロック216は正方形に近い形となる。詳細な形状および大きさは、各画像ブロックに含まれるタイル画像の圧縮後のデータサイズに依存する。図12のようにブロック分割すると、1つの画像ブロックが有する情報は空間局所性がよくなり、表示画像やその近傍の領域の画像を生成するのに必要な画像ブロックが図11の場合と比べて少なくなる。さらに無駄な領域の情報がロードされにくく、メインメモリ60の使用効率がよくなる。
 図13は、正方形のマクロタイル順でタイル画像に識別番号を付与した場合の分割の様子を示している。ここで「マクロタイル」とは、複数のタイル画像で構成される矩形のことであり、縦、横に含まれるタイル画像の数はあらかじめ設定しておく。なお図12の例は2×2個のタイル画像で構成されるマクロタイルを再帰的に形成していると考えることもできる。図13の場合は、マクロタイル222に示すように、8×8個のタイル画像で構成される正方形を1つのマクロタイルとしている。そしてマクロタイル222内で矢印の方向、すなわちラスタ順に識別番号を付与する。これにより、同図に記載された数字のように、各タイル画像に識別番号が付与される。1つのマクロタイルに対し識別番号が付与し終わったら、同様の付与を全マクロタイルに対してラスタ順に行っていく。
 この順で画像ブロックにまとめていくと、正方形マクロタイル順分割画像218のような画像ブロックに分割される。すなわちこの場合の画像ブロックは、マクロブロックを横方向にまとめた形状を有する。拡大画像220においてマクロタイル222の一辺の長さ、あるいはその整数倍が画像ブロックの縦方向の長さとなる。横方向の長さは、各画像ブロックに含まれるタイル画像の圧縮後のデータサイズによって変化する。図13のようにブロック分割した場合も図12の場合と同様に、表示画像やその近傍の領域の画像を生成するために必要な画像ブロック数が抑えられ、ロードの効率がよくなる。
 図14は、短冊状マクロタイル順でタイル画像に識別番号を付与した場合の分割の様子を示している。短冊状マクロタイルは横方向に含まれるタイル画像の数のみを設定し、縦方向は無制限とするマクロタイルである。図14の場合はマクロタイル230に示すように、横方向が16個のタイル画像で構成されている。そしてマクロタイル230内で矢印の方向、すなわちラスタ順に識別番号を付与する。これにより、同図に記載された数字のように各タイル画像に識別番号が付与される。識別番号の付与が原画像の下端までなされたら、その右に位置するマクロタイル、というように、同様の付与を全マクロタイルに対してラスタ順に行っていく。
 この順で画像ブロックにまとめていくと、短冊状マクロタイル順分割画像224のような画像ブロックに分割される。すなわちこの場合の画像ブロックは、縦一列のマクロタイルを、タイル画像の圧縮後のデータサイズに応じて途中で区切った形状を有する。場合によっては複数列のマクロタイルに渡ることもある。拡大画像226においてマクロタイルの幅228、あるいはその整数倍が、画像ブロックの横方向の幅となる。画像ブロックの区切り部分における境界線の詳細な形状も、タイル画像の圧縮後のデータサイズに応じて変化する。図14のようにブロック分割した場合も図12、13の場合と同様に、表示画像やその近傍の領域の画像を生成するために必要な画像ブロック数が抑えられ、ロードの効率がよくなる。
 上述のように識別番号を付与する順序や、基本ブロックサイズによって、画像ブロックの形状、大きさ、含まれる情報が大きく異なる。したがって、画像の内容やジャンル、例えば風景写真であるか新聞などの文字の画像であるか、などによって最も効率的にデータの取り込みが可能な条件を求めておき、実際の画像に応じて選択するようにしてもよい。また前述のようにハードウェアの構成によって最適な手法を選択するようにしてよい。
 以上のように画像を分割した結果得られる画像ブロックは、ほぼ均一なデータサイズでタイル画像をまとめたものであるため、その面積は、上述のように構成するタイル画像の圧縮後のデータサイズに依存する。図10の原画像200において、画像の上半分は空の領域で色が比較的均一なため、高周波成分が少なく圧縮率が高い。一方、原画像200の中央付近は建造物などがあるため色の変化が大きく、高周波成分が多いため圧縮率が低い。したがって、原画像200のうち上半分のタイル画像の圧縮後のデータサイズは中央付近のデータサイズより小さい傾向を有する。
 これを踏まえて例えば図14の短冊状マクロタイル順分割画像124を見ると、上半分の画像ブロックの面積は、中央付近の画像ブロックより大きい傾向となっている。その他の分割画像でも同様である。すなわち本実施の形態では、画像の面積を単純に均等に分割するのではなく、データサイズによって分割している。このようにすることで、単位面積当たりのデータサイズが小さい領域は、一度のロードで広い面積の圧縮データをメインメモリ60に格納することができ、メモリ内で管理すべきブロック数が少なくなるため管理が容易になるうえ、ロードの効率がよくなる。
 図12に示したZ状順分割画像208の例では、Z状に識別番号を付与することにより画像ブロックを正方形に近づけ、空間局所性を向上させた。同図の例では、識別番号を付与済みのタイル画像が所定の大きさの正方形まで到達したら、新たな始点から識別番号を付与していくようにしており、このときの始点を原画像200内でマトリクス状に配置していた。そのため、画像ブロックの境界線はおよそ互いに直交する格子状になっている。一方、画像ブロックの境界線が格子状にならないように工夫してもよい。
 図15は画像ブロックの境界線が格子状に構成されているときの、画像ブロックと表示画像の描画領域の関係を模式的に示している。原画像の一領域132において、画像ブロック134aは横3つ、縦2つのマトリクス状になっており、その境界線は格子状となっている。このようにブロック分割を行うと、同図のように描画領域136aが格子の交点を含むような位置になると、描画に必要な画像ブロックが4つになる。
 図16は画像ブロックの境界線をT字路形状としたときの、画像ブロックと表示画像の描画領域の関係を模式的に示している。原画像の一領域238において、画像ブロック134bは縦方向の境界線が行によってずれるように配置され、結果として境界線がT字路形状になっている。このようにブロック分割を行うと、同図のように描画領域136bが境界線を跨いでも、描画に必要な画像ブロックは最大で3つとなり、図15の場合と比較してロードの効率がよくなる。このように画像ブロックが配置されるようにするには、例えば、上述の識別番号付与の始点をマトリクス状に配置するのではなく、行によってずらすようにすればよい。
 これまで述べたブロック分割の手法は全て、同一の階層にある画像に対するものであった。一方、複数の階層にまたがるように識別番号を付与していくことにより、一つの画像ブロックに複数の階層のタイル画像の情報が含まれるようにしてもよい。このようにすると、同一階層の画像上での表示領域の移動のみならず、表示画像の拡大、縮小に対しても、ロードの回数を軽減させることができる。
 このとき、複数の階層のタイル画像を単に同じように圧縮してから画像ブロックとしてまとめてもよいし、解像度の異なる同じ画像同士の冗長性を利用して、一方の画像を他方の画像を用いて復元するようにし、圧縮率を上げてもよい。本実施の形態では、一つの画像ブロックに含まれる情報は常にセットでロードされるため、このような手法が可能となる。例えば、低解像度画像を高解像度画像の倍率まで拡大した画像と、実際の高解像度画像との差分画像を圧縮して、低解像度画像の圧縮データとともに画像ブロックに含める。この場合、低解像度画像、差分画像の順で画像ブロックにまとめていき、基礎ブロックサイズを超えない最大のデータサイズとなったときに、次の画像ブロックを形成していくようにする。
 図17は高解像度画像を、低解像度画像の拡大画像との差分画像として圧縮する手法を説明するための図である。本処理は圧縮データ分割部104が行うが、階層データを生成する段階で、画像表示に係るその他の処理とは別に行ってよい。まず階層データ139における第2階層34および第3階層36の原画像をそれぞれ読み出す(S20、S22)。この例では同図に示すように、第3階層画像36bは第2階層画像34bを縦および横に2倍した画像となっている。これらの画像のうち、第2階層画像34bのタイル画像のいくつかを、通常通り圧縮する(S24)。次に第3階層画像36bの対応するタイル画像を圧縮する代わりに、当該タイル画像と、第2階層画像34bのタイル画像を2×2倍に拡大した画像との差分画像を圧縮する(S26)。
 このとき、第2階層画像34bにおける圧縮対象のタイル画像は、図11~14で例示したのと同様に、およそ同じデータサイズとなるように原画像を分割してなる領域のタイル画像などとする。あるいは、あらかじめ定めた数のタイル画像とし、上述したように画像ブロックを形成する段階でデータサイズが均一になるように調整してもよい。
 その結果、第2階層画像34bの圧縮データ140と差分画像の圧縮データ142が生成される。同図では理解を容易にするため圧縮データも画像で表現し、差分画像の圧縮データ142は差分であることを示すために網掛け画像としている。これらの圧縮データを一つの画像ブロック144に含ませる。なおこの例では第2階層画像34bと第3階層画像36bのひとつの組み合わせのみが画像ブロック144に入るように図示されているが、3つ以上の階層の画像を同様に含めてもよい。すなわち、最も低解像度の画像はそのまま圧縮し、高解像度の画像はひとつ上の階層の画像との差分画像によって表現する。また、そのような依存関係を有する圧縮データの組を複数、画像ブロック144に含めるようにしてもよい。
 このようにして生成した画像ブロック144は、ハードディスクドライブ50に格納しておく。そしてロード部108が必要に応じてメインメモリ60にロードする。その後、先読み処理部110などの判断によってデコード部112によってデコードされる。このとき、第2階層画像34bの圧縮データ140は通常通りの処理でデコードされ、第2階層画像34bとなる(S28)。一方、差分画像の圧縮データ142は、まず通常通りデコードした後(S30)、デコードした第2階層画像34bを2×2倍に拡大した画像と足し合わせることにより(S32、S34)、第3階層画像36bとなる。
 上記の例では低解像度画像の拡大画像との差分画像を高解像度画像のデータとして圧縮したが、逆に高解像度画像を利用して低解像度画像を作成するようにしてもよい。例えば高解像度画像をウェーブレット圧縮してハードディスクドライブ50に格納しておき、必要に応じてメインメモリ60にロードした後、デコード部112は、当該高解像度画像の圧縮画像のローパス画像を生成することで低解像度画像としてもよい。同様に、高解像度画像をJPEG圧縮し、その高周波成分をカットして低解像度画像としてもよい。あるいはそのようにして生成した低解像度画像と元の低解像度画像との差分画像を圧縮して同一の画像ブロックに含めておき、上述と同様に差分画像を加算することで低解像度画像を復元してもよい。またはピラミッドフィルタにより2×2のピクセル群から1ピクセルを求めてもよい。これらの手法により、メインメモリ60へのロード時間の短縮、メインメモリ60の領域の有効利用が実現できる。
 次に、ハードディスクドライブ50に格納された画像ブロックからメインメモリ60へロードすべき画像ブロックを決定し、ロードする手法について説明する。図18は、ロードすべき画像ブロックを決定してロードを実施する処理手順を示すフローチャートである。この処理は、例えば所定の時間間隔で随時行う。まずロードブロック決定部106は、ロード部108が現在ロード中であるか否かを確認する(S40)。ロード中であれば処理を終了する(S40のY)。
 ロード中でなければ(S40のN)、後述する画像上の領域についてメインメモリ60に該当するデータがあるか否かを判定する(S42)。このためには例えば、メインメモリ60に格納されている画像ブロックの識別情報、すなわち先頭のタイル画像の識別番号とタイル画像の数からなる情報と、その先頭アドレスとを対応させたテーブルをメインメモリ60に格納しておく。そして必要なタイル画像の識別番号に基づき当該テーブルを検索することにより、データの有無を判定することができる。ここで判定対象の領域は1つのタイル画像でもよいし、複数のタイル画像を含んでもよい。このような領域を「必要領域」と呼ぶ。
 もし必要領域のうちメインメモリ60にロードされていない領域が存在したら(S44のY)、当該領域を含む画像ブロックを、当該領域に含まれるタイル画像の識別番号と画像ブロックの識別情報とから特定し、それをロード対象として決定する(S46)。このとき複数の画像ブロックをロードする必要が生じた場合は、あらかじめ定めた規則に従い、優先度の高い画像ブロックをロード対象として決定する。すなわち1回のロード処理において、多くの画像ブロックを一度にロードしないようにする。
 一度にロードする画像ブロックが多くなるほど、ロードに要する時間が増加するが、その間に表示画像の変更要求がユーザよりなされると、必要領域が変化してしまい、そのときのロード処理が無駄になる可能性がある。このような事態を回避するため、ロードブロック決定部106は随時、ロードすべき画像ブロックを決定していき、1度にロードする画像ブロックは1つ、あるいは所定の数以内、と制限する。
 ロードブロック決定部106がロード対象を決定したら、ロード部108が、画像ブロックの識別情報と格納領域とを対応付けたテーブルに基づき、ロード対象である画像ブロックをハードディスクドライブ50から読み出して、メインメモリ60に格納する(S48)。S44において必要領域の全てがメインメモリ60に格納されていたら処理を終了する(S44のN)。
 図19はS42においてメインメモリ60に必要領域のデータが格納されているか否かを判定する対象である必要領域を決定するときの概念図である。メインメモリ60には、基本的には現在表示されている領域の周辺の画像の圧縮データがロードされていることが望ましい。ここで「周辺」とは、同一階層の画像における上下左右(X軸、Y軸)方向と、階層構造の深さ(Z軸)方向の周辺を含んでよい。Z軸方向の周辺とは、表示画像およびその近傍を含む拡大画像および縮小画像を意味する。
 図19は、上から第n-1階層、第n階層、第n+1階層の画像の一部を示しており、各画像内にタイル画像が示されている。各階層で示している画像は、中心線154において同一箇所を表示する。そして第n階層の画像の中央付近の領域150が現在表示されている領域であるとすると、必要領域は、例えば黒丸152a、152b、152cなどを含む領域とする。すなわち表示画像の階層である第n階層の画像においては、表示画像の領域150内の中心(中心線154の地点)および四隅の地点と、領域150を上下左右に伸張した矩形の各辺の中点と四隅の地点を含むタイル画像を必要領域とする。
 一方、表示画像と隣接する階層である第n-1階層と第n+1階層の画像においては、中心線154の地点と、それを重心とする所定サイズの矩形の四隅の地点を含むタイル画像を必要領域とする。この場合の矩形は、表示画像の矩形の大きさに相当する大きさでもよい。表示領域が移動しても常にこのような地点を含む画像ブロックがメインメモリ60にロードされていれば、円滑にデコードおよび描画を行え、ユーザによる画像変更要求に対する応答性がよくなる。
 なお図19に示した地点はあくまで例示であり、画像の内容や画像処理装置10の処理性能、メインメモリ60の容量などにより、数を増減させたり配置形状を変化させたりしてもよい。さらに、画像の内容上重要な領域や、同一ユーザによる表示履歴から、過去に高頻度で表示された領域やユーザの嗜好に合致すると思われる領域は、表示画像の変化に関わらず優先的にロードするようにしてもよい。ここで「重要な領域」とは、例えば人物の画像であれば顔付近、電子チラシであれば目玉商品などの表示領域である。また、ユーザの嗜好とは、新聞紙面の画像であればユーザがよく閲覧する欄などである。このような領域は、図18のS46において複数の画像ブロックをロードする必要が生じた場合でも、高い優先度を与えてロードされるようにする。あるいは画像表示を開始した段階でロードしておくようにしてもよい。
 図18のS46における優先度については、そのほかに、例えば次のような規則を用意してもよい。まず、表示画像と同一階層内の画像ブロックより、別の階層、すなわち拡大画像および縮小画像の画像ブロックを優先させる。これは、同一階層内での表示領域の移動の場合、バッファメモリ70における2つのバッファ領域72および74に格納したデコード画像で賄える可能性が高いのに対し、階層間の移動ではバッファメモリ70のデコード画像をすべて更新しなければいけない可能性が高いためである。ただし2つの階層間を往復するような場合はバッファメモリ70で充足する場合もある。
 また、階層が深い、すなわち拡大画像の画像ブロックより、階層が浅い、すなわち縮小画像の画像ブロックを優先させる。拡大画像はロード、デコードが間に合わなかったとしても、縮小画像を拡大することにより暫定的な対応が容易であるが、その逆は困難なためである。
 図20は先読み処理部110が行う先読み処理を説明するための図である。図20は、階層データの構造を示しており、各階層はL0(第0階層)、L1(第1階層)、L2(第2階層)、L3(第3階層)と表現されている。矢印80は、ユーザからの画像変更要求が、表示画像の縮小を要求しており、L2をまたいだ様子を示している。本実施の形態の画像処理装置10では、元の画像データが存在するL1、L2の深さ方向の位置を、深さ方向の先読み境界として設定し、入力装置20からの画像変更要求が先読み境界を超えたタイミングで先読み処理を開始する。
 表示画像の縮尺率がL2の近傍にある場合、L2(第2階層)の画像を用いて表示画像を作成する。具体的には、表示する画像の縮尺率が、L1の画像とL2の画像の切替境界82と、L2の画像とL3の画像の切替境界84の間にある場合に、L2の画像を縮小、拡大して表示画像を生成する。したがって、矢印80に示すように画像の縮小処理が要求されると、L2の拡大画像から、縮小画像に変換されて表示される。本実施の形態の画像処理装置10は、画像変更要求から予測される将来必要な画像を特定して、メインメモリ60から読み出し、デコードしておく。図20の例では、画像変更要求による要求縮尺率がL2をまたいだときに、縮小方向にあるL1の画像をメインメモリ60から先読みしてデコードし、バッファメモリ70に書き込む。
 同一階層における上下左右方向の先読み処理についても同様に処理される。具体的には、バッファメモリ70に格納されている画像データに先読み境界を設定しておき、画像変更要求による表示位置が先読み境界をまたいだときに、先読み処理が開始されるようにする。
 図21は先読み処理部110およびデコード部112が画像のデコードを行う際の処理手順を示すフローチャートである。まず入力装置20からの画像変更要求信号をもとに、要求される表示画像の変更量を導出する(S50)。表示画像の変更量は、上下左右方向の移動量および深さ方向の移動量である。次に、階層構造におけるそれまでの表示領域の四隅のフレーム座標から、導出された変更量により移動先の表示領域の四隅のフレーム座標を決定する(S52)。
 そして決定した四隅のフレーム座標で特定される領域を表示するための画像領域が既にデコードされて、バッファメモリ70のバッファ領域72またはバッファ領域74のいずれかに格納されているか判定する(S54)。既にバッファ領域72またはバッファ領域74に必要な画像領域が存在している場合には(S54のY)、要求される縮尺率が先読み境界を超えているか判定する(S56)。先読み境界を超えていなければ、バッファメモリ70はそのままに処理を終了する。
 S52で決定した四隅のフレーム座標で特定される領域を表示するための画像領域がバッファメモリ70に存在しない場合(S54のN)、および要求される縮尺率が先読み境界を超えている場合に(S56のY)、先読み処理部110はデコード部112に対して、必要な画像領域のデコードを指示する。デコード部112は、指示された画像領域のデータをメインメモリ60から取得してデコードし、バッファ領域72またはバッファ領域74に格納する(S60)。これにより、表示画像処理部114による表示画像の生成前に、必要な画像領域をバッファメモリ70に展開することができる。
 表示用バッファに格納された画像の一部が表示されているとき、デコード用バッファにおいて次に必要となる画像は、同一階層内での移動では、例えば、表示領域が先読み境界をまたいだ時、当該表示領域が移動方向の始点側の端に含まれるような画像である。この場合、バッファ領域72およびバッファ領域74に格納される画像は、少なくとも表示画像の大きさ分の重複領域を有し、さらに先読み境界の設定位置によって重複領域が増えることになる。先読み境界を超えたときに新たにデコードすべき画像の範囲は、あらかじめ処理速度などに応じて設定しておく。あるいは画像の内容によって変化させてもよい。
 上記のようにデコード用バッファを用いると、新たに格納する画像と、それまでにデコード用バッファに格納されていた画像の一部が重複することがあり得る。このような性質を利用して、本実施の形態では次に述べるような処理により、新たにデコードする領域を減らし、デコード処理の負荷を軽減する。
 図22はバッファメモリ70のデコード用バッファにおいて、新たに格納すべき画像がそれまでに格納されていた画像と重複部分を有する場合の、デコード部112の機能ブロックを示している。デコード部112は、重複部分の領域を特定する重複領域取得部170、重複していない領域を新たにデコードして、それまでに格納されていた画像の一部を上書きする部分領域デコード部172、上書きした画像を繰り返して並べた画像を生成するリピート画像生成部174、および並べた画像の一部を抜き出し最終的なデコード画像としてデコード用バッファに格納するデコード画像格納部176を含む。
 図23は、図22のデコード部112が画像をデコード用バッファに格納する手順を模式的に示している。上述のとおり、表示用バッファに格納された画像内で表示領域が先読み境界を超えるなどしたときに、デコード用バッファに新たな画像を格納する必要が生じる。この時点ですでにデコード用バッファに格納されている画像が、同図左上の画像160である。一方、新たに格納すべき画像は同図右上の画像162であるとする。すなわち同図は、表示領域が左に移動しており、元の「丸」や「三角」の図形から、その左にある「星」の図形を表示する見込みがある、という状況を示している。
 上述の理由から、画像160と画像162は重複領域を有する。同図の例では、横方向(X軸)がx0からx2までの領域で構成される画像162のうち、x1からx2までの領域が画像160と重複している。このような場合、格納済みの画像160のうち、重複しているx1からx2までの領域は新たに格納すべき画像の一部としてそのまま利用する。
 具体的には、部分領域デコード部172が、新たに格納すべき画像162のうち、画像160と重複していないx0からx1までの領域のみをデコードし、格納済みの画像160のうちもはや必要のないx2からx3までの領域を上書きする(S70)。ただし、例えば圧縮をタイル画像単位で行っている場合など圧縮単位の配置によっては、重複していないx0からx1までの領域のみをデコードすることができない場合がある。この場合は、当該領域を含み、デコードが可能な最小の領域をデコードしたあと、x0からx1までの領域のみを抽出してx2からx3までの領域を上書きする。
 S70の処理を行うため、バッファメモリ70のバッファ領域72、74には、現在格納されている画像の左下の座標を格納する領域を設ける。そして重複領域取得部170は、新たに格納すべき領域の左下の座標と比較することにより、重複領域を特定する。なおデコード前に重複領域を特定する処理に所定値以上の負荷がかかる場合は、新たに格納すべき画像162を全てデコードしたうえで重複していない領域のみを上書きするようにしてもよい。
 次にリピート画像生成部174が、そのようにしてできた中間画像164を横方向に繰り返したリピート画像166を仮に作成する(S72)。単位画像を縦方向、横方向に繰り返した画像は、画像処理において一般的に用いられる技術によって生成できる。そしてデコード画像格納部176が、リピート画像166において中間画像の境界の座標を0としたとき、-(x1-x0)からx2-x1までの領域を取り出し、デコード用バッファに新たに格納する(S74)。これにより、新たに格納すべき画像162がデコード用バッファに格納されたことになる。同図の例では横方向のみの移動に着目しているが、縦方向のみの移動や、縦方向、横方向の双方の移動でも同様に処理することにより重複領域以外の領域のみをデコードすればよくなる。ただし、縦方向、横方向の双方の移動の場合は、リピート画像166は縦横に2回ずつ中間画像164を繰り返した画像となる。
 このようにすることで、必要最低限のデコードのみで先読みした領域をデコード用画像に格納することができるため、デコード処理による画像表示のレイテンシーを抑えることができる。なおデコード用バッファに格納する画像は、中間画像164としてもよい。この場合、表示画像処理部114が、ユーザからの指示入力に従いデコード用バッファから当該中間画像164を読み出して上述のS72、S74の処理を行い、新たに格納すべき画像162を表示処理部44のフレームメモリ90に描画する。
 以上は、同一階層における表示領域の移動に対する先読み処理におけるデコード手法である。一方、表示されている中心地点を変えずに拡大したり縮小したりする要求がなされる可能性も高い。拡大方向、縮小方向のどちらか一方向への変更であれば、前述の先読み境界を超えた時点でデコード用画像に順次新たな画像を格納していくことになるが、2つの先読み境界を超えずにもとの縮尺率に戻す要求がなされた場合は、デコード用画像に新たに画像を格納する必要がなく、格納済みの画像をそのまま利用することができる。
 そのため、バッファメモリ70のバッファ領域72、74には、現在格納されている画像の階層の番号を格納する領域をさらに設けてもよい。そして階層の深さ方向に設定された先読み境界を越えたとき、デコード用バッファに格納されるべき階層と格納済みの階層が同一であれば、デコード処理を行わずに格納済みの画像をそのままの状態としておく。これにより表示画像の拡大、縮小においてもデコード処理を最低限の回数とすることができ、処理の負荷、レイテンシーを軽減できる。
 以上述べた本実施の形態によれば、圧縮された画像の少なくとも一部をユーザからの要求に応じて表示するための画像処理装置において、圧縮データを格納するハードディスクドライブからメインメモリへ、データの一部をロードする。メインメモリにロードしたデータをデコードして表示することにより、ユーザから表示画像変更要求がなされた際に、ハードディスクドライブから必要なデータを読み出すために要する時間が節約でき、応答性が向上する。また、データの一部のみをロードする態様とすることで、メインメモリの容量以上のサイズの画像であっても表示対象とすることができ、対応できる画像に対する制約が少なくなる。
 さらに、画像データはおよそ同一のデータサイズでブロックに分割してハードディスクドライブに格納しておき、メインメモリへのロードはブロック単位で行う。これにより、メインメモリの連続した領域にロードしたブロックを順次格納しても、新たにブロックをロードする際にフラグメンテーションを起こすことがなくなり、メインメモリを有効に使用できるうえ、アドレス管理が容易になる。
 また、画像データをブロックに分割する際は、各ブロックが有する情報に空間局所性を持たせる。具体的には、始点のタイル画像から横方向、縦方向に同様に拡張していくように、一ブロックに含まれるタイル画像を加えていき、所定のデータサイズに達する直前で一ブロックの領域を決定することにより、ブロックを正方形に近い形状とする。あるいは、あらかじめ設定した正方形や短冊状の区画の中で、ラスタ順にタイル画像を加えていくことにより、所定の幅を有する長方形に近い形状とする。このようにすることで、表示に必要なブロック数を抑えることができ、ロードの回数を減らせるとともに、デコードに必要なデータのメインメモリからの読み出しが容易に行える。同様の理由から、ブロック同士の境界がT字路になるように分割してもよい。
 また、ブロックのメインメモリへのロードは、表示画像の変更時以外のタイミングでも、所定の時間間隔などで随時行う。この際、現在の表示画像を起点に、位置的および階層的に周辺領域となる地点を所定の規則により決定し、当該地点を含むブロックのうちロードされていないものを随時ロードしていく。さらに画像の内容上、重要な領域や、表示履歴に基づきユーザごとに予測できる表示確率が、所定のしきい値より高い領域は、優先してロードしておく。これにより、ユーザからの表示画像変更要求後に急遽、データをハードディスクドライブからロードしたり、ネットワークを介してダウンロードしなければならない事態が起こる可能性を低くできるとともに、一度に多数のブロックをロードする必要がなくなり、ロード処理によるレイテンシーの発生を抑制できる。
 またブロック分割時に、異なる階層の画像の同一領域部分を一つのブロックに含ませるようにする。このとき、これらの画像が有する冗長性を利用し、一方の画像を復元するのに必要な情報のうち他方の画像が保持する情報については、ブロック内に2重に保持しないようにする。例えば低解像度の画像と、それを拡大して得られる拡大画像と高解像度の画像との差分画像を一つのブロックに含めて圧縮すれば、高解像度の画像は復元可能である。本実施の形態では上記のようにブロック単位でメインメモリへロードするため、このように画像同士の冗長性を利用できる。このようにすることでデータの圧縮率が上がり、メインメモリを有効に使用することができる。
 さらに、デコードした画像を格納するバッファ領域として、表示用バッファとデコード用バッファの2つのバッファを用意することで、将来表示されると予測できる領域をあらかじめデコードしてデコード用バッファに格納しておく。この場合、新たな画像をデコード用バッファに格納すべきときは、それまで格納されていた画像と重複する領域をそのまま利用する。具体的には、格納済みの画像のうち重複しない領域を新しい画像の領域で上書きした中間画像を生成し、それを繰り返して構成されるリピート画像のうち必要な部分を抜き出すことにより、デコード処理を最小限に、容易に新たな画像を格納することができる。
 また、バッファ領域を上記のような構成とすることにより、同一階層内での表示領域の移動は処理の負荷が少なくなるため、ユーザの表示画像変更要求に対する応答性を一定以上保持することが容易である。そのため、表示画像と異なる階層のデータを優先的にメインメモリへロードしておくことにより、バッファメモリとの組み合わせで、全体として応答性がよくなる。これらの形態は、装置の構成を複雑にしたり大規模にしたりすることなく実現できる。
 以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 以上のように本発明は画像処理装置、画像表示装置、コンピュータ、ゲーム機などの情報処理装置に利用可能である。
 1 画像処理システム、 10 画像処理装置、 12 表示装置、 20 入力装置、 30 第0階層、 32 第1階層、 34 第2階層、 36 第3階層、 38 タイル画像、 44 表示処理部、 50 ハードディスクドライブ、 60 メインメモリ、 70 バッファメモリ、 72 バッファ領域、 74 バッファ領域、 90 フレームメモリ、 100 制御部、 102 入力情報取得部、 104 圧縮データ分割部、 106 ロードブロック決定部、 108 ロード部、 110 先読み処理部、 112 デコード部、 114 表示画像処理部、 120 識別番号付与部、 122 画像ブロック生成部、 170 重複領域取得部、 172 部分領域デコード部、 174 リピート画像生成部、 176 デコード画像格納部。

Claims (27)

  1.  画像の少なくとも一部をディスプレイに表示する画像処理装置であって、
     処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを保持する記憶装置と、
     表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを、前記記憶装置からメモリにロードするロード部と、
     ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、前記ロード部がロードした前記画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成する表示画像処理部と、
     を備えることを特徴とする画像処理装置。
  2.  前記記憶装置は、処理対象の画像の、複数の解像度の画像のそれぞれの圧縮データを分割してなる画像ブロックを保持することを特徴とする請求項1に記載の画像処理装置。
  3.  処理対象の画像の圧縮データを分割して前記画像ブロックを生成し、前記記憶装置に格納する圧縮データ分割部をさらに備え、
     前記圧縮データ分割部は、画像を圧縮する最小単位であるタイル画像の圧縮データを、所定のデータサイズを超えない最大データサイズとなるようにまとめて、一の画像ブロックとすることを特徴とする請求項1または2に記載の画像処理装置。
  4.  前記圧縮データ分割部は、
     画像を構成する前記タイル画像に対し、ラスタ順に識別番号を付与する識別番号付与部と、
     前記識別番号付与部が付与した識別番号順にタイル画像の圧縮データをまとめて一の画像ブロックとする画像ブロック生成部と、
     を備えることを特徴とする請求項3に記載の画像処理装置。
  5.  前記圧縮データ分割部は、
     画像を構成する前記タイル画像に対し、横方向および縦方向に交互にインクリメントしていくように識別番号を付与する識別番号付与部と、
     前記識別番号付与部が付与した識別番号順にタイル画像の圧縮データをまとめて一の画像ブロックとする画像ブロック生成部と、
     を備えることを特徴とする請求項3に記載の画像処理装置。
  6.  前記圧縮データ分割部は、
     画像を構成するタイル画像を所定の間隔で区切ったマクロタイルに対しラスタ順に、かつ、各マクロタイルを構成するタイル画像に対しラスタ順に識別番号を付与する識別番号付与部と、
     前記識別番号付与部が付与した識別番号順にタイル画像の圧縮データをまとめて一の画像ブロックとする画像ブロック生成部と、
     を備えることを特徴とする請求項3に記載の画像処理装置。
  7.  前記圧縮データ分割部は、
     前記画像ブロックの画像上の境界線の少なくとも一部がT字形状となるように画像ブロックを生成することを特徴とする請求項3に記載の画像処理装置。
  8.  前記ロード部は、表示中の領域から所定の範囲内の領域、および表示中の画像を所定の縮尺率で拡大、または縮小した画像のうち表示中の領域を含む所定の領域、の少なくともいずれかを前記必要領域とすることを特徴とする請求項2に記載の画像処理装置。
  9.  前記必要領域のデータを含む画像ブロックがメモリに全て格納されているか否かを所定の時間間隔で判定し、格納されていない画像ブロックのロードを前記ロード部に要求するロードブロック決定部をさらに備え、
     前記ロード部は、前記ロードブロック決定部の要求に従い、前記画像ブロックをロードすることを特徴とする請求項1または2に記載の画像処理装置。
  10.  前記ロード部は、前記必要領域の他に、あらかじめ設定された画像内の領域、および、ユーザの表示履歴から推測される表示確率が所定のしきい値より高い領域のデータを含む画像ブロックをさらにロードすることを特徴とする請求項1または2に記載の画像処理装置。
  11.  前記記憶装置は、処理対象の画像のうち、共通領域を表す複数の解像度の画像の圧縮データを一の画像ブロックに含めて保持することを特徴とする請求項1または2に記載の画像処理装置。
  12.  前記記憶装置は、共通領域を表す2つの解像度の画像のうち、低解像度の画像と、当該低解像度の画像を拡大した画像と高解像度の画像との差分画像と、をそれぞれ圧縮したデータを一の画像ブロックに含めて保持し、
     前記表示画像処理部は、前記低解像度の画像と前記差分画像をそれぞれデコードして足し合わせることにより、前記高解像度の画像をデコードすることを特徴とする請求項1に記載の画像処理装置。
  13.  前記表示画像処理部は、前記画像ブロックの少なくとも一部をメモリから読み出しデコードするデコード部と、
     前記デコード部がデコードした画像を格納するバッファメモリと、
     前記バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画する描画部と、
     を備え、前記デコード部は、
     新たな画像を前記バッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定する重複領域取得部と、
     前記新たな画像のうち前記重複領域を除く部分領域を含む領域のデータをデコードする部分領域デコード部と、
     それまで格納されていた画像のうち前記重複領域と、前記部分領域デコード部がデコードした前記部分領域とをつなげて前記バッファメモリに格納するデコード画像格納部と、
     を備えることを特徴とする請求項1に記載の画像処理装置。
  14.  画像の少なくとも一部をディスプレイに表示する画像処理方法であって、
     処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを生成し、記憶装置に格納するステップと、
     表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを前記記憶装置からメモリにロードするステップと、
     ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、ロードした前記画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成するステップと、
     を含むことを特徴とする画像処理方法。
  15.  前記格納するステップは、画像を圧縮する最小単位であるタイル画像の圧縮データを、所定のデータサイズを超えない最大データサイズとなるようにまとめて、一の画像ブロックとすることを特徴とする請求項14に記載の画像処理方法。
  16.  前記格納するステップは、同一の領域を表す異なる解像度の画像の圧縮データを一の画像ブロックに含めることを特徴とする請求項14または15に記載の画像処理方法。
  17.  コンピュータに、画像の少なくとも一部をディスプレイに表示する機能を実現させるコンピュータプログラムであって、
     処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを生成し、記憶装置に格納する機能と、
     表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを前記記憶装置からメモリにロードする機能と、
     ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、ロードした前記画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成する機能と、
     をコンピュータに実現させることを特徴とするコンピュータプログラム。
  18.  画像の少なくとも一部をディスプレイに表示するために記憶装置から読み出される画像のデータ構造であって、
     画像を圧縮する最小単位であるタイル画像ごとの圧縮データを、所定のデータサイズを超えない最大データサイズとなるようにまとめた画像ブロックのデータと、各画像ブロックの識別情報とを対応付けた画像のデータ構造。
  19.  画像を構成する前記タイル画像に対し、ラスタ順に識別番号を付与し、当該識別番号順に前記タイル画像の圧縮データをまとめて一の画像ブロックとしたことを特徴とする請求項18に記載の画像のデータ構造。
  20.  画像を構成する前記タイル画像に対し、横方向および縦方向に交互にインクリメントしていくように識別番号を付与し、当該識別番号順に前記タイル画像の圧縮データをまとめて一の画像ブロックとしたことを特徴とする請求項18に記載の画像のデータ構造。
  21.  画像を構成するタイル画像を所定の間隔で区切ったマクロタイルに対しラスタ順に、かつ、各マクロタイルを構成するタイル画像に対しラスタ順に識別番号を付与し、当該識別番号順に前記タイル画像の圧縮データをまとめて一の画像ブロックとしたことを特徴とする請求項18に記載の画像のデータ構造。
  22.  ユーザの要求に従い画像内の領域をディスプレイに表示する画像処理装置であって、
     前記要求に基づき必要な領域の圧縮画像データをメモリより読み出しデコードするデコード部と、
     前記デコード部がデコードした画像を格納するバッファメモリと、
     前記バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画する表示画像処理部と、
     を備え、
     前記デコード部は、新たな画像を前記バッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定する重複領域取得部と、
     前記新たな画像のうち前記重複領域を除く部分領域を含む領域の圧縮画像データをデコードする部分領域デコード部と、
     それまで格納されていた画像のうち前記重複領域と、前記部分領域デコード部がデコードした前記部分領域とをつなげて前記バッファメモリに格納するデコード画像格納部と、
     を備えることを特徴とする画像処理装置。
  23.  前記部分領域デコード部はさらに、それまで前記バッファメモリに格納されていた画像のうち前記重複領域以外の領域を、新たにデコードした前記部分領域で上書きした中間画像を生成し、
     前記画像処理装置はさらに、
     前記部分領域デコード部が生成した中間画像を繰り返して並べたリピート画像を生成するリピート画像生成部を備え、
     前記デコード画像格納部は、前記リピート画像生成部が生成したリピート画像のうち、前記重複領域と前記部分領域とからなる領域を抽出して前記バッファメモリに格納することを特徴とする請求項22に記載の画像処理装置。
  24.  前記バッファメモリは、現在表示されている領域を描画するための画像を格納する表示用バッファ領域と、前記要求に基づき予測される、前記表示用バッファ領域に格納された画像の次に必要となる画像を新たにデコードして格納するためのデコード用バッファ領域を含み、
     前記デコード部は、前記デコード用バッファ領域に格納されていた画像のうち前記重複領域と、新たにデコードした前記部分領域とをつなげて、前記デコード用バッファ領域に格納することを特徴とする請求項22または23に記載の画像処理装置。
  25.  ユーザの要求に従い画像内の領域をディスプレイに表示する画像処理方法であって、
     前記要求に基づき必要な領域の圧縮画像データを新たにデコードしてバッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定するステップと、
     前記新たな画像のうち前記重複領域を除く部分領域を含む領域の圧縮画像データをメインメモリより読み出しデコードするステップと、
     それまで格納されていた画像のうち前記重複領域と、新たにデコードした前記部分領域とをつなげて前記バッファメモリに格納するステップと、
     前記バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画するステップと、
     を含むことを特徴とする画像処理方法。
  26.  それまで前記バッファメモリに格納されていた画像のうち前記重複領域以外の領域を、新たにデコードした前記部分領域で上書きした中間画像を生成するステップをさらに含み、
     前記バッファメモリに格納するステップは、前記中間画像を繰り返して並べたリピート画像を生成するステップと、
     前記リピート画像のうち、前記重複領域と前記部分領域とからなる領域を抽出して前記バッファメモリに格納するステップと、
     を含むことを特徴とする請求項25に記載の画像処理方法。
  27.  コンピュータに、ユーザの要求に従い画像内の領域をディスプレイに表示させる機能を実現させるコンピュータプログラムであって、
     前記要求に基づき必要な領域の圧縮画像データを新たにデコードしてバッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定する機能と、
     前記新たな画像のうち前記重複領域を除く部分領域を含む領域の圧縮画像データをメインメモリより読み出しデコードする機能と、
     それまで格納されていた画像のうち前記重複領域と、新たにデコードした前記部分領域とをつなげて前記バッファメモリに格納する機能と、
     前記バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画する機能と、
     をコンピュータに実現させるコンピュータプログラム。
PCT/JP2009/003043 2008-09-30 2009-06-30 画像処理装置および画像処理方法 WO2010038337A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020117009478A KR101401336B1 (ko) 2008-09-30 2009-06-30 화상처리장치 및 화상처리방법
EP09817381.8A EP2330587B1 (en) 2008-09-30 2009-06-30 Image processing device and image processing method
CN200980138067.9A CN102165515B (zh) 2008-09-30 2009-06-30 图像处理装置以及图像处理方法
US13/120,785 US8878869B2 (en) 2008-09-30 2009-06-30 Image processing device and image processing method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008-255655 2008-09-30
JP2008-255563 2008-09-30
JP2008255655A JP5331432B2 (ja) 2008-09-30 2008-09-30 画像処理装置および画像処理方法
JP2008255563A JP4809412B2 (ja) 2008-09-30 2008-09-30 画像処理装置および画像処理方法

Publications (1)

Publication Number Publication Date
WO2010038337A1 true WO2010038337A1 (ja) 2010-04-08

Family

ID=42073126

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/003043 WO2010038337A1 (ja) 2008-09-30 2009-06-30 画像処理装置および画像処理方法

Country Status (5)

Country Link
US (1) US8878869B2 (ja)
EP (1) EP2330587B1 (ja)
KR (1) KR101401336B1 (ja)
CN (1) CN102165515B (ja)
WO (1) WO2010038337A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102484674A (zh) * 2010-07-09 2012-05-30 索尼公司 图像处理装置和方法
WO2013099076A1 (ja) * 2011-12-27 2013-07-04 株式会社ソニー・コンピュータエンタテインメント 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
WO2013121735A1 (en) * 2012-02-16 2013-08-22 Canon Kabushiki Kaisha Image generating apparatus and method for controlling the same
CN103703785A (zh) * 2011-08-01 2014-04-02 索尼电脑娱乐公司 视频数据生成单元、图像显示设备、视频数据生成方法、视频图像显示方法、以及视频图像文件数据结构
CN104331213A (zh) * 2014-08-04 2015-02-04 联想(北京)有限公司 一种信息处理方法及电子设备

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5548671B2 (ja) * 2011-12-27 2014-07-16 株式会社ソニー・コンピュータエンタテインメント 画像処理システム、画像提供サーバ、情報処理装置、および画像処理方法
US9646564B2 (en) * 2012-01-20 2017-05-09 Canon Kabushiki Kaisha Information processing apparatus that controls display of display sections of contents, method of controlling the same, and storage medium
JP2014186196A (ja) 2013-03-25 2014-10-02 Toshiba Corp 映像処理装置および映像表示システム
US9971844B2 (en) * 2014-01-30 2018-05-15 Apple Inc. Adaptive image loading
US9563927B2 (en) * 2014-03-25 2017-02-07 Digimarc Corporation Screen watermarking methods and arrangements
US9813654B2 (en) 2014-08-19 2017-11-07 Sony Corporation Method and system for transmitting data
KR102155479B1 (ko) * 2014-09-01 2020-09-14 삼성전자 주식회사 반도체 장치
EP3001385B1 (en) * 2014-09-29 2019-05-01 Agfa Healthcare A system and method for rendering a video stream
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
CN105578194B (zh) * 2016-01-06 2018-12-25 珠海全志科技股份有限公司 Jpeg图像解码方法和解码器
CN109886861B (zh) * 2019-01-08 2023-04-11 北京城市网邻信息技术有限公司 一种高效率图档格式heif图像加载方法及装置
CN110519607B (zh) * 2019-09-27 2022-05-20 腾讯科技(深圳)有限公司 视频解码方法及装置,视频编码方法及装置
CN111538867B (zh) * 2020-04-15 2021-06-15 深圳计算科学研究院 一种有界增量图划分方法和系统
WO2022061723A1 (zh) * 2020-09-25 2022-03-31 深圳市大疆创新科技有限公司 一种图像处理方法、设备、终端及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114431A (ja) * 1995-10-18 1997-05-02 Sapiensu:Kk 静止画像再生表示方法および静止画像再生表示装置
JPH1188866A (ja) * 1997-07-18 1999-03-30 Pfu Ltd 高精細画像表示装置及びそのプログラム記憶媒体
US6563999B1 (en) 1997-03-27 2003-05-13 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
JP2005092007A (ja) * 2003-09-19 2005-04-07 Ricoh Co Ltd 画像処理システム、画像処理方法、プログラム及び情報記録媒体
JP2005181853A (ja) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd 画像供給装置
JP2005202327A (ja) * 2004-01-19 2005-07-28 Canon Inc 画像表示装置および画像表示方法
JP2006113801A (ja) * 2004-10-14 2006-04-27 Canon Inc 画像処理結果表示装置、画像処理結果表示方法およびプログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01188866A (ja) 1988-01-25 1989-07-28 Canon Inc 画像形成装置
JPH0314431A (ja) 1989-06-08 1991-01-23 Nippon Matai Co Ltd 化粧包装方法
JP4420415B2 (ja) * 1998-07-03 2010-02-24 キヤノン株式会社 符号化方法及び符号化装置
US6956667B2 (en) * 1999-12-24 2005-10-18 Agfa Gevaert N. V. Page composing method using stored page elements and apparatus for using the same
US7012576B2 (en) * 1999-12-29 2006-03-14 Intel Corporation Intelligent display interface
US6873343B2 (en) * 2000-05-11 2005-03-29 Zoran Corporation Scalable graphics image drawings on multiresolution image with/without image data re-usage
FR2816138B1 (fr) * 2000-10-27 2003-01-17 Canon Kk Decodage de donnees numeriques
FR2826227B1 (fr) * 2001-06-13 2003-11-28 Canon Kk Procede et dispositif de traitement d'un signal numerique code
JP3937841B2 (ja) * 2002-01-10 2007-06-27 キヤノン株式会社 情報処理装置及びその制御方法
JP2004214983A (ja) 2002-12-27 2004-07-29 Canon Inc 画像処理方法
JP4148462B2 (ja) * 2003-01-20 2008-09-10 株式会社リコー 画像処理装置、電子カメラ装置及び画像処理方法
JP4059802B2 (ja) * 2003-04-17 2008-03-12 株式会社サピエンス 画像表示方法
JP4382000B2 (ja) * 2005-03-11 2009-12-09 株式会社リコー 印刷制御システム及び印刷制御方法
US7768520B2 (en) * 2006-05-03 2010-08-03 Ittiam Systems (P) Ltd. Hierarchical tiling of data for efficient data access in high performance video applications
US7768516B1 (en) * 2006-10-16 2010-08-03 Adobe Systems Incorporated Image splitting to use multiple execution channels of a graphics processor to perform an operation on single-channel input
JP4958831B2 (ja) * 2008-04-02 2012-06-20 キヤノン株式会社 画像符号化装置及びその制御方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114431A (ja) * 1995-10-18 1997-05-02 Sapiensu:Kk 静止画像再生表示方法および静止画像再生表示装置
US6563999B1 (en) 1997-03-27 2003-05-13 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
JPH1188866A (ja) * 1997-07-18 1999-03-30 Pfu Ltd 高精細画像表示装置及びそのプログラム記憶媒体
JP2005092007A (ja) * 2003-09-19 2005-04-07 Ricoh Co Ltd 画像処理システム、画像処理方法、プログラム及び情報記録媒体
JP2005181853A (ja) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd 画像供給装置
JP2005202327A (ja) * 2004-01-19 2005-07-28 Canon Inc 画像表示装置および画像表示方法
JP2006113801A (ja) * 2004-10-14 2006-04-27 Canon Inc 画像処理結果表示装置、画像処理結果表示方法およびプログラム

Non-Patent Citations (1)

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

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102484674A (zh) * 2010-07-09 2012-05-30 索尼公司 图像处理装置和方法
US8953898B2 (en) 2010-07-09 2015-02-10 Sony Corporation Image processing apparatus and method
CN103703785A (zh) * 2011-08-01 2014-04-02 索尼电脑娱乐公司 视频数据生成单元、图像显示设备、视频数据生成方法、视频图像显示方法、以及视频图像文件数据结构
CN103703785B (zh) * 2011-08-01 2016-11-23 索尼电脑娱乐公司 视频数据生成单元、图像显示设备、视频数据生成方法、视频图像显示方法、以及视频图像文件数据结构
US9516310B2 (en) 2011-08-01 2016-12-06 Sony Corporation Moving image data generation device, moving image display device, moving image data generation method, moving image displaying method, and data structure of moving image file
WO2013099076A1 (ja) * 2011-12-27 2013-07-04 株式会社ソニー・コンピュータエンタテインメント 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
JP2013135463A (ja) * 2011-12-27 2013-07-08 Sony Computer Entertainment Inc 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
US9693072B2 (en) 2011-12-27 2017-06-27 Sony Corporation Moving picture compression apparatus, image processing apparatus, moving picture compression method, image processing method, and data structure of moving picture compression file
WO2013121735A1 (en) * 2012-02-16 2013-08-22 Canon Kabushiki Kaisha Image generating apparatus and method for controlling the same
JP2013167798A (ja) * 2012-02-16 2013-08-29 Canon Inc 画像生成装置及びその制御方法
CN104331213A (zh) * 2014-08-04 2015-02-04 联想(北京)有限公司 一种信息处理方法及电子设备

Also Published As

Publication number Publication date
US20110221780A1 (en) 2011-09-15
EP2330587A1 (en) 2011-06-08
US8878869B2 (en) 2014-11-04
CN102165515A (zh) 2011-08-24
KR20110074884A (ko) 2011-07-04
KR101401336B1 (ko) 2014-05-29
EP2330587A4 (en) 2012-02-01
CN102165515B (zh) 2014-05-28
EP2330587B1 (en) 2019-04-10

Similar Documents

Publication Publication Date Title
WO2010038337A1 (ja) 画像処理装置および画像処理方法
EP2464093B1 (en) Image file generation device, image processing device, image file generation method, and image processing method
CN103119543B (zh) 图像处理装置、内容制作装置、图像处理方法及内容文件的数据结构
JP5792607B2 (ja) 画像処理装置および画像処理方法
AU2010313045B2 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
JP5474887B2 (ja) 動画データ生成装置、動画像表示装置、動画データ生成方法、動画像表示方法、および動画像ファイルのデータ構造
JP5368254B2 (ja) 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造
JP5419822B2 (ja) 画像処理装置、画像表示装置、画像処理方法、および画像ファイルのデータ構造
JP5826730B2 (ja) 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
JP5296656B2 (ja) 画像処理装置および画像処理方法
US9047680B2 (en) Information processing apparatus, information processing method, and data structure of content files
JP5331432B2 (ja) 画像処理装置および画像処理方法
JP4809412B2 (ja) 画像処理装置および画像処理方法
JP5265306B2 (ja) 画像処理装置
JP5467083B2 (ja) 画像処理装置、画像処理方法、および画像のデータ構造
US8972877B2 (en) Information processing device for displaying control panel image and information image on a display
JP5520890B2 (ja) 画像処理装置、画像データ生成装置、画像処理方法、画像データ生成方法、および画像ファイルのデータ構造
JP5731816B2 (ja) 画像処理装置、画像処理方法

Legal Events

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

Ref document number: 200980138067.9

Country of ref document: CN

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

Ref document number: 09817381

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2009817381

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20117009478

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13120785

Country of ref document: US