JP2007258807A - Code processing apparatus, program, and information recording medium - Google Patents

Code processing apparatus, program, and information recording medium Download PDF

Info

Publication number
JP2007258807A
JP2007258807A JP2006077206A JP2006077206A JP2007258807A JP 2007258807 A JP2007258807 A JP 2007258807A JP 2006077206 A JP2006077206 A JP 2006077206A JP 2006077206 A JP2006077206 A JP 2006077206A JP 2007258807 A JP2007258807 A JP 2007258807A
Authority
JP
Japan
Prior art keywords
code
tile
jpeg2000
file
tile part
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2006077206A
Other languages
Japanese (ja)
Other versions
JP4748672B2 (en
Inventor
Hiroyuki Sakuyama
宏幸 作山
Original Assignee
Ricoh Co Ltd
株式会社リコー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd, 株式会社リコー filed Critical Ricoh Co Ltd
Priority to JP2006077206A priority Critical patent/JP4748672B2/en
Publication of JP2007258807A publication Critical patent/JP2007258807A/en
Application granted granted Critical
Publication of JP4748672B2 publication Critical patent/JP4748672B2/en
Application status is Expired - Fee Related legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Abstract

A desired tile part of a JPEG2000 code can be easily and efficiently selected.
In an apparatus for generating a JPEG2000 code or a JPEG2000 family format (JP2, JPX, JPM) file, a method of dividing the code into tile parts and arranging the tile parts is shown in FIG. The tile part division / arrangement information is recorded in the code COM marker segment or the UUIDDBox or XMLBox of the file. When processing such a code or file, it is possible to easily detect a tile part division method and arrangement method from tile part division / arrangement information, and to perform a desired tile part selection process and the like efficiently. .
[Selection] Figure 3

Description

  The present invention relates to generation and processing of a JPEG2000 code or a JPEG2000 family format file including the same. The present invention can be suitably applied to a JPIP server or the like.

  In recent years, in the field of image compression, the use of wavelet transform is increasing as a frequency transform replacing DCT (discrete cosine transform) employed in JPEG (Joint Photographic Coding Experts Group). A typical example is JPEG2000, which became an international standard in 2001.

  JPEG2000 encoding processing is generally performed according to the flow shown in the block diagram of FIG. The image is divided into rectangular tiles (number of divisions ≧ 1) and processed for each tile.

  First, each tile is color-converted into components such as luminance and color difference (block 1). In the case of data represented by a positive number such as RBG data, a DC level shift that reduces half of the dynamic range is also performed. The transformed component (referred to as a tile component) is divided into subbands by applying wavelet transformation (block 2). The signal is divided into four subbands abbreviated as LL, HL, LH, and HH by one wavelet transform (decomposition). When the wavelet transform is repeated recursively for the LL subband, one LL subband and a plurality of HL, LH, and HH subbands are finally generated.

  FIG. 16 shows subbands when wavelet transform (decomposition) is performed three times. A prefix number (for example, “3” of “3LL”) of each subband name in FIG. 16 indicates a decomposition level (the number of wavelet transforms performed). Further, for later explanation, the relationship between the decomposition level and the resolution level is shown in FIG.

  When an irreversible wavelet transform called 9 × 7 transform is used, the wavelet coefficients are subjected to linear quantization (including normalization) for each subband (block 3), and then entropy coded ( Block 4). In this entropy coding, each subband is divided into rectangles called precincts. The precinct is a subband divided into rectangles, and three precincts corresponding to the three subbands HL, LH, and HH are treated as one unit. However, one precinct obtained by dividing the LL subband is handled as one unit. The precinct roughly represents a position in the image. The precinct can be the same size as the subband. A code block is obtained by further dividing the precinct into rectangles. FIG. 15 shows the relationship among tiles, subbands, precincts, and code blocks. Therefore, the physical size order is image ≧ tile> subband ≧ precinct ≧ code block. After the above division, coefficient entropy coding (bit-plane coding) is performed for each code block and in order of bit-plane.

  Next, necessary entropy codes are collected to generate a packet (block 5). A packet is a header (packet header) in which all code blocks included in a precinct collect a part of the code of a bit plane (for example, the code from the MSB to the third bit plane of all code blocks). It is a thing attached. Since the “part” may be “empty” (from), the content of the packet may be “empty” in terms of code. The packet header includes information regarding codes included in the packet. Each packet can be handled independently. In other words, a packet is a unit of code.

  When packets of all precincts (= all code blocks = all subbands) are collected, a part of the code of the entire image area (for example, wavelet coefficients of the entire image area of the bit planes from the MSB to the third frame) This is called a layer. Since the layer is roughly a part of the code of the bit plane of the entire image, the image quality increases as the number of layers to be decoded increases. That is, a layer is a unit of image quality. If all the layers are collected, it becomes the sign of all the bit planes throughout the image.

  An example of the layer when the number of decomposition levels = 2 and the precinct size = subband size is shown in the upper part of FIG. Packets included in several layers are shown in thick boxes in the lower part of FIG.

  The final JPEG2000 code (code stream) is formed by arranging packets and adding necessary tags and tag information according to the packet and layer breaks generated as described above (block 6). .

As can be understood from the above description, the component to which the packet belongs (symbol C),
-Which resolution level (symbol R) belongs to
-Which precinct ("location", symbol P) belongs to
・ Which layer (symbol L) belongs to
(In the present application, these attributes are referred to as “progression attributes”). However, such attributes themselves are not described in the packet header.

  Packet arrangement means the order in which attributes packets (packet header and packet data) are arranged hierarchically. This arrangement order is called a progression order, and five patterns shown in FIG. 18 are defined.

  Here, the manner in which the encoder arranges packets in the order of the progression order and the manner in which the decoder interprets the attributes of the packets in the order of the progression order are shown below.

For example, in the case of LRCP progression order, the following for loop
for (layer) {
for (resolution) {
for (component) {
for (Precinct) {
Encoding: Place packet
When decoding: Interpret packet attributes}
}
}
}
Thus, the packet is arranged (when encoded) or interpreted (when decoded).

In the packet header of each packet,
Whether the packet is empty,
Which code block is included in the packet,
The number of zero bit planes for each code block included in the packet,
-The number of coding passes (number of bit planes) of each code block code included in the packet,
The code length of each code block included in the packet,
Is described. However, the layer number and resolution level are not described in the packet header at all. At the time of decoding, in order to determine which layer and which resolution level the packet is, a for loop as described above is formed from the progression order described in the COD marker segment (FIG. 30) etc. in the main header, What is necessary is to determine the break of the packet from the sum of the code lengths of the respective code blocks included in the packet, and to determine at which position in the for loop each packet is handled. This means that as long as the code length in the packet header is read, the next packet can be detected without decoding the packet data (entropy code), that is, any packet can be accessed.

  In the present application, the outermost nesting of the for loop as described above is referred to as “the highest order of the progression order”.

  FIG. 19 is a conceptual diagram of a layer progressive code in which the layer (L) is at the top of the progression order, such as the code of the LRCP progression order. However, the number of tile parts (described later) is 1.

  In FIG. 20, image size = 100 × 100 pixels, no tile division (1 tile), 2 layers, number of resolution levels = 3 (0 to 2), 3 components (0 to 2), precinct size = 32 An arrangement example of 36 packets in the LRCP progression order code in the case of × 32 is shown. However, the number of tile parts (described later) is 1.

  FIG. 21 is a conceptual diagram of a resolution progressive code with a resolution level at the top of the progression order, such as a code of an RLCP progression order. However, the number of tile parts is 1.

  In FIG. 22, image size = 100 × 100 pixels, no tile division (1 tile), 2 layers, number of resolution levels = 3 (0 to 2), 3 components (0 to 2), precinct size = 32 An arrangement example of 36 packets in the RLCP progression order code in the case of × 32 is shown. However, the number of tile parts (described later) is 1.

  Now, the codes constituting each tile can be further divided into a plurality of parts at packet breaks, and the divided parts are called tile parts. As mentioned above, FIGS. 20 and 22 show the case where the number of tile parts = 1.

  In addition to the packet, each tile part has a header that starts with an SOT (start of tile-part) marker segment and ends with an SOD (start of data) marker. This header is called a tile part header (FIGS. 19 and 21). reference).

  FIG. 23 shows the configuration of the SOT marker segment. A marker segment (SOT marker in this example) and parameters related to the marker is called a marker segment. The contents of the parameters of the SOT marker segment are shown in FIG. As understood from FIG. 24, the length of the tile part can be known by reading the contents of the parameter Psot in the SOT marker segment. Therefore, if the SOT marker segment is read, the code can be accessed in units of tile parts without decoding the packet header. That is, when searching for the number of tile parts, the first SOT marker segment is searched, the tile part length is detected from the SOT marker segment, the inside of the code is searched, and the next tile part is reached by repeating the procedure. The desired tile part can be reached.

  When it is desired to omit the decoding of the packet header, the length of each packet can be recorded in the PLT marker segment in the tile part header or the PLM marker segment in the main header.

  Further, when it is desired to omit the process of sequentially searching for the SOT marker segment when searching for the tile part of which number, the length of each tile part can be recorded in the TLM marker segment in the main header. The TLM marker segment is configured as shown in FIG. 25, and the contents of the parameters are as shown in FIG. By reading Ptml (i) in the TLM marker segment, the length of the i-th tile part can be known. That is, the procedure of detecting and integrating the tile part length from the TLM marker segment is repeated, and when the predetermined number of tile parts is reached, the seek length to the desired tile part (that is, the offset from the first tile part) is As a result, a desired tile part can be accessed at high speed based on the seek length.

  As described above, the JPEG2000 code can be accessed in packet units, and more easily in tile part units. This means that a new code can be generated by extracting only necessary packets and tile parts from the original code without decoding it. It also means that only packets or tile parts that require original codes can be decoded.

  For example, when a large image stored on the server is to be displayed on the client side, a code with only the required image quality, a code with only the required resolution, a code with only the desired location, and a code with only the desired component Can be received from the server and decrypted.

  In this way, a protocol for receiving only a necessary part of the JPEG2000 code in the server is called JPIP (JPEG2000 Interactive Protocol) and is currently in the process of standardization. Protocols for partially accessing such hierarchical images can be found in the past from FlashPix, which is a multi-resolution representation of images, and IIP (Internet Imaging Protocol), which is a protocol for accessing it. (For example, refer to Patent Document 1). The IIP standard is provided on the web site http://www.i3a.org/i_iip.html. Further, as a prior art document related to JPIP, for example, there is Patent Document 2 relating to a JPIP cache model.

JP-A-11-205786 JP 2003-23630 A

  In JPIP, it is proposed to specify a resolution to be drawn and a window size to be actually drawn from the client to the server. When such a designation is received, the server transmits a precinct packet covering the area of the resolution, or transmits a tile part covering the area more simply.

  Hereinafter, a JPIP system that transmits the latter tile part (this is referred to as a JPT system) will be described as an example.

  In the case of the JPT system, a procedure for extracting a tile part covering the area from tile parts constituting the entire image is as follows. It is assumed that the server knows how the codes it manages are divided into tile parts.

  Now, when the packet of the one-tile, two-layer RLCP progression order code shown in FIG. 22 is divided into tile parts at all resolution level boundary positions (resolution level switching positions), as shown in FIG. Three tile parts (0, 1, 2) are created. Further, when a packet of the same RLCP progression order code is divided into tile parts at all the boundary positions of the resolution level and all the boundary positions of the layer, six tile parts (0 to 5) as shown in FIG. it can. Further, when the same RLCP progression order code packet is divided into tile parts at all the boundary positions of the resolution level, all the boundary positions of the layer, and all the boundary positions of the components, 18 packets as shown in FIG. Tile parts (0 to 17).

  Here, it is assumed that there is a request from the client to the server “I want to display a resolution portion corresponding to 25 × 25 pixels with a window size of 20 × 20”. In the example of FIG. 22, the resolution corresponding to 25 × 25 pixels refers to the portion of resolution level 0, and the 20 × 20 window displays only the 20 × 20 portion of the pixels of resolution level 0. Means.

  Therefore, the server may extract a tile part that covers resolution level 0 from its own code (tile part 0 in the example of FIG. 27) and transmit it to the client together with information on the main header. Since there is always an SOT marker segment at the beginning of the tile part and the length of the tile part is also known, the boundary of the tile part itself can always be determined.

  However, as is clear from the examples of FIGS. 27, 28, and 29, the number of tile parts to be transmitted (from what number) depends on the method of dividing the code into a progression order and tile parts. It depends on two parameters (division position).

  Since the former progression order is described in the COD marker segment of the main header or tile part header, it can be known immediately.

  However, the latter method of dividing into tile parts is not recorded in a file of JPEG2000 code or JPEG2000 family format. Therefore, conventionally, unless the division method into tile parts is a known code, in order to select a desired tile part, it is necessary to count the code packets one by one, and there is a problem that the efficiency is extremely low. (Problem 1).

Now, as described above, the JPT server
・ Calculate the position of each tile part ・ Execute the two steps of transmitting the tile part if necessary.
(i) Calculate the position of all tile parts (regardless of the necessity of transmission) (scan the SOT marker segment)
(ii) Send the tile part if necessary. Therefore, in the configuration of such a normal JPT server, as (i) above,
for (for all tile parts) {
Scan next SOT marker segment and record tile part position and length}
Usually, this step (this is called “Step A” for convenience) is executed.

  This is because the tile parts that need to be transmitted change in chronological order depending on the window selection of the client-side user, etc., so the positions of all tile parts are calculated and held in advance before determining whether transmission is necessary. One of the reasons is that the implementation is simple. However, the main reason is related to the arrangement of tile parts in the code. This will be described below.

  For JPT, the order in which tile parts are arranged in the code is an important factor. For example, it is composed of two tiles, and each tile is an example of a monochrome image code (see FIG. 36) that is “divided into tile parts at the boundary position of the highest resolution level = 2, the number of layers = 1, and the resolution level. Consider how tile parts are arranged (arrangement method).

In this case, in addition to the progression attributes R, L, C, and P, an element called “tile number (tile index)” is added.
(1) “Tile Order → Resolution Level Order” as shown in FIG. 37 (hereinafter, the tile part arrangement method as if the tile number is at the top of the progression order is “the top of the tile order”. (2) "Resolution level order → tile order" as shown in FIG.
Can take.

  Now, if the tile parts required by JPT are only those having a resolution level of 0, for example, the tile part arrangement method as shown in FIG. 37 indicates the position and length up to “tile part A” shown in the figure. Therefore, it is sufficient to scan a total of four tile parts (as long as the required tile parts do not change). In the case of this example, even in the configuration as described in “Step A” (scanning all tile parts), only 6 tile parts are scanned in total, and so much SOT scan is performed. Do not mean.

  On the other hand, in the case of the tile part arrangement method as shown in FIG. 38, it is sufficient to know the position and length up to “tile part B” shown in the figure, so it is sufficient to scan a total of two tile parts (required). Unless the tile part changes). In the case of this example, if the configuration is the “step A”, two-thirds of the SOT scans are useless scans.

However, if it is known that the tile part arrangement method is as shown in FIG. 38, a for loop of “resolution level order → tile order” is configured,
for (resolution level = 0) {
for (0 ≦ tile index ≦ 1) {
Scan next SOT marker segment and record tile part position and length}
}
By taking this procedure, it is possible to scan only the two necessary tile parts and eliminate unnecessary scanning. In order to construct such a for loop (or to calculate the necessary number of tile parts from the beginning and limit the number of times the SOT marker segment is scanned), such a tile is assumed as a premise. It must be understood that this is the part arrangement method.

  However, there is a problem that the tile part arrangement method is not recorded in a JPEG2000 code or a JPEG2000 family format file (Problem 2).

  The present invention has been made in view of the above problems 1 and 2 relating to JPEG 2000 codes and JPEG 2000 family format files. The main object of the present invention is to efficiently perform required tile parts of JPEG 2000 codes in a JPT server or the like. It is also possible to generate a JPEG2000 code or a JPEG2000 family format file including the JPEG2000 code that enables efficient selection or access of such tile parts.

  In JPEG2000, there is no marker segment defined from the beginning to include a method for dividing a code into tile parts and a method for arranging tile parts. However, the JPEG2000 code format and the JPEG2000 family file format include marker segments and box information that are allowed to describe free information such as vendor information.

  As such a marker segment, there is a COM marker segment that can be used for a main header of a JPEG2000 code. The COM marker segment is configured as shown in FIG. 31, and arbitrary comment data can be recorded in Ccom (i) in units of bytes.

  The file formats of the JPEG2000 family are JP2, JPX, and JPM. FIG. 32 shows the file structure of the JP2 format. Arbitrary information can be recorded in UUIDBox and XMLBox in the figure. FIG. 33 shows the Box structure, and FIG. 34 shows the contents of the Box information. Arbitrary information can be recorded in the DATA field of UUIDBox and the DBbox position of XMLBox.

  JPX is an extended file format of JP2, and its structure is not shown, but UUIDBox and XMLBox are the same as JP2 format.

  FIG. 35 shows the file structure of the JPM (JPEG2000 Multi Layer) format. The MetadataBox indicated by “C.2” in the figure includes UUIDBox and XMLBox similar to those in FIG. 33, and arbitrary information can be recorded therein.

  In the above, the example of FIGS. 37 and 38 has been taken up as a way of arranging the tile parts. However, a mixed arrangement as shown in FIG. 39 is allowed in the specification of JPEG2000.

  However, in the JPT, as described above, the tile parts should be divided into tile parts at the attribute positions according to the use, and the tile parts should be arranged in accordance with the use. In the examples of FIGS. 37, 38, and 39, since the tile parts are divided into tile parts at the resolution level position, the tile parts should be arranged in the "resolution level order" as shown in FIG. This eliminates the need to detect the position and length of all tile parts prior to transmitting the tile parts.

  More specifically, in JPT, it is typical to place an attribute corresponding to the application at the top of the progression order. For example, if reduction display is the main application, the highest level of the progression order is the resolution level (R), and if the main application is color image monochrome display, the highest level is the component (C). In JPT, it is typical to divide into tile parts at attribute positions according to the application.

  Generally speaking, for example, among the progression attributes used as the tile part division position, the attribute located on the highest side of the progression order (the tile part is always divided at the position of the highest attribute of the progression order). Therefore, all tile parts having this value are assigned tile numbers and tiles. This means that they should be arranged in ascending order of part numbers. In order to detect whether or not such a tile part arrangement is used, different tile numbers are used with respect to the minimum value of the attribute located at the top of the progression order among the progression attributes used as the tile part division position. It is only necessary to detect whether or not tile parts are continuously arranged.

  The present invention is based on the above consideration and has the following characteristics.

The invention according to claim 1 is a code processing device for generating a JPEG2000 code or a JPEG2000 family format file including the code.
Means for generating tile part division / arrangement information in a predetermined format indicating a method of dividing the code into tile parts and an arrangement method of the tile parts, and the tile part division / arrangement information as a COM marker segment in the code or the file And a means for recording in UUIDBox or XMLBox. Note that the division method into tile parts is specifically which boundary position of each progression attribute (attribute value switching position) is divided into tile parts. The tile part arrangement method is how the tile parts in the code are arranged.

The invention according to claim 2 is a code processing device for generating a JPEG2000 code or a JPEG2000 family format file including the code.
Means for generating tile part division / arrangement information in a predetermined format indicating a method of dividing the code into tile parts and an arrangement method of tile parts, and the tile part division / arrangement information associated with the code or the file A code processing apparatus comprising means for recording in a database.

  The invention described in claim 3 is the code processing device according to the invention described in claim 1 or 2, wherein the code is located on the highest order side of the progression order among the progression attributes used as tile part division positions. With respect to each value of the attribute that is positioned, the code processing device is characterized in that all tile parts having the value are codes that are continuously arranged in the ascending order of tile numbers and tile part numbers.

  A fourth aspect of the present invention is the code processing device according to the third aspect of the present invention, wherein the attribute located on the uppermost side of the progression order is a resolution level.

According to the fifth aspect of the present invention, a JPEG2000 code (hereinafter referred to as an input code) or a JPEG2000 family format file (hereinafter referred to as an input file) including the input code is used as an input. A code processing device for generating a code (hereinafter referred to as an output code) or a JPEG2000 family format file (hereinafter referred to as an output file) including the output code,
Among the progression attributes used as the tile part division position, the input code is related to each value of the attribute located on the topmost side of the progression order, and all tile parts having the value are assigned tile numbers and tile part numbers. Means for converting to the output codes continuously arranged in ascending order; means for generating tile part division / arrangement information in a predetermined format indicating a method of dividing the output codes into tile parts and a method of arranging tile parts; and the tiles And a means for recording part division / array information in a COM marker segment in the output code or a UUIDBox or XMLBox in the output file.

According to the sixth aspect of the present invention, a JPEG2000 code (hereinafter referred to as an input code) or a JPEG2000 family format file (hereinafter referred to as an input file) including the input code is used as an input. A code processing device for generating a code (hereinafter referred to as an output code) or a JPEG2000 family format file (hereinafter referred to as an output file) including the output code,
Among the progression attributes used as the tile part division position, the input code is related to each value of the attribute located on the topmost side of the progression order, and all tile parts having the value are assigned tile numbers and tile part numbers. Means for converting to the output codes continuously arranged in ascending order; means for generating tile part division / arrangement information in a predetermined format indicating a method of dividing the output codes into tile parts and a method of arranging tile parts; and the tiles A code processing apparatus comprising: means for recording part division / array information in an external database in association with the output code or the output file.

  A seventh aspect of the present invention is the code processing device according to the fifth or sixth aspect of the present invention, wherein the attribute located on the highest side of the progression order is a resolution level. is there.

The invention according to claim 8 is a code processing device that inputs a JPEG2000 code or a JPEG2000 family format file including the code and selects a required tile part of the code,
By referring to the tile part division / arrangement information recorded in the COM marker segment of the code or the UUID Box or XML Box of the file, among the progression attributes used as the tile part division position in the code, the highest level of the progression order For each value of the attribute located on the side, the code processing apparatus includes means for determining whether all tile parts having the value are continuously arranged in the ascending order of the tile number and the tile part number.

The invention according to claim 9 is a code processing device that inputs a JPEG2000 code or a JPEG2000 family format file including the code and selects a required tile part of the code,
By referring to the tile part division / arrangement information recorded in the external database associated with the code or the file, among the progression attributes used as the tile part division position in the code, the highest order side of the progression order The code processing device includes means for determining whether or not all tile parts having the value are continuously arranged in ascending order of tile numbers and tile part numbers.

The invention according to claim 10 is a code processing apparatus that inputs a JPEG2000 code or a JPEG2000 family format file including the code and selects a required tile part of the code,
Among the progression attributes used as tile part division positions in the code, whether or not tile parts having tile numbers with different tile numbers are consecutively arranged is examined with respect to the minimum value of the attribute located on the highest side of the progression order. Thus, for each value of the attribute located on the most significant side, there is a means for determining whether all tile parts having the value are continuously arranged in the ascending order of the tile number and the tile part number. It is a code processing device.

The invention according to claim 11 is a program for causing a computer to perform processing for generating a JPEG2000 code or a JPEG2000 family format file including the code.
A step of generating on a memory tile part division / arrangement information in a predetermined format indicating a method of dividing the code into tile parts and an arrangement method of the tile parts, and the tile part division / arrangement information in the code in the code on the memory A program for executing a step of recording in a marker segment or a UUIDBox or XMLBox of the file.

The invention according to claim 12 is a program for causing a computer to perform processing for generating a JPEG2000 code or a JPEG2000 family format file including the code.
A step of generating on a memory tile part division / arrangement information in a predetermined format indicating a method of dividing the code into tile parts and an arrangement method of tile parts, and associating the tile part division / arrangement information with the code or the file A program for executing the process of recording in an external database.

According to the thirteenth aspect of the present invention, a JPEG 2000 code (hereinafter referred to as an input code) or a JPEG 2000 family format file (hereinafter referred to as an input file) including the input code is input to a computer, and the input code is separated from the input code. A program for generating a JPEG2000 code (hereinafter referred to as an output code) or a JPEG2000 family format file (hereinafter referred to as an output file) including the output code.
Among the progression attributes used as the tile part division position, the input code on the memory is related to each value of the attribute located on the most significant side of the progression order. The tile part division / arrangement information in a predetermined format indicating the step of converting to the output codes continuously arranged in the ascending order of the part number, the division method of the output codes into tile parts, and the arrangement method of tile parts is generated on the memory. And a step of recording the tile part division / arrangement information in a COM marker segment in the output code on the memory or a UUIDBox or XMLBox of the output file on the memory.

According to the fourteenth aspect of the present invention, a JPEG2000 code (hereinafter referred to as an input code) or a JPEG2000 family format file (hereinafter referred to as an input file) including the input code is input to a computer, and the input code is separated from the input code. A program for generating a JPEG2000 code (hereinafter referred to as an output code) or a JPEG2000 family format file (hereinafter referred to as an output file) including the output code.
Among the progression attributes used as the tile part division position, the input code on the memory is related to each value of the attribute located on the most significant side of the progression order. The tile part division / arrangement information in a predetermined format indicating the step of converting to the output codes continuously arranged in the ascending order of the part number, the division method of the output codes into tile parts, and the arrangement method of tile parts is generated on the memory. And a step of recording the tile part division / arrangement information in an external database in association with the output code or the output file.

The invention according to claim 15 is a program that causes a computer to input a JPEG2000 code or a JPEG2000 family format file including the code, and to perform a process of selecting a required tile part of the code.
By referring to the tile part division / arrangement information recorded in the COM marker segment of the code in the memory or the UUID Box or XML Box of the file, the progression order of the progression attributes used as the tile part division position in the code is displayed. A program for executing a step of determining whether all tile parts having the value are consecutively arranged in ascending order of tile numbers and tile part numbers with respect to each value of an attribute located on the uppermost side of is there.

The invention according to claim 16 is a program for causing a computer to input a JPEG2000 code or a JPEG2000 family format file including the code, and to perform a process of selecting a required tile part of the code.
By referring to the tile part division / arrangement information recorded in the external database in association with the code or the file in the memory, the progression order used as the tile part division position in the code is the progression order. A program for executing a step of determining whether all tile parts having the value are consecutively arranged in ascending order of tile numbers and tile part numbers for each value of the attribute located on the uppermost side. .

  A seventeenth aspect of the invention is a computer-readable information recording medium in which a program according to any one of the eleventh to sixteenth aspects is recorded.

  The invention according to claim 18 is a computer-readable information recording medium on which a JPEG2000 code or a JPEG2000 family format file including the code is recorded, and a method for dividing the code into tile parts and a tile part The information recording medium is characterized in that tile part division / arrangement information in a predetermined format indicating the arrangement method is recorded in the COM marker segment of the code or the UUIDBox or XMLBox of the file.

(1) According to the code processing device according to the invention of claims 1 to 7 and the program according to the invention of claims 11 to 14, the tile part recorded in the COM marker segment, UUIDBox or XMLBox, or an external database By referring to the division / arrangement information, it is possible to easily confirm how the tile parts are divided and how they are arranged, and it is possible to efficiently access the required tile parts and the like. Code or JPEG 2000 family format files can be generated. In particular, according to the code processing device or the program according to the inventions of claims 3 to 7, 13, and 14, of the progression attributes used as tile part division positions, the attributes located on the uppermost side of the progression order. For each value, all tile parts having the value are arranged in the ascending order of the tile number and tile part number. A JPEG 2000 code suitable for high-speed response in the JPIP server or a JPEG 2000 family format file including the JPEG 2000 code. Can be generated.
(2) According to the code processing device according to the invention described in claims 8 to 10 and the program according to the invention described in claims 15 and 16, among the progression attributes used as the tile part division position, the highest of the progression order. For each attribute value located on the upper side, it is determined whether all tile parts having the value are continuously arranged in the ascending order of tile numbers and tile part numbers. It is possible to select a very efficient processing method of sequentially accessing tile parts that are continuous from the top and selecting a required tile part. Therefore, if the code processing device or program is applied to a JPIP server, an extremely high-speed response to a request from a JPIP client is possible. In particular, in the code processing device according to the inventions according to claims 8 and 9, and the program according to the inventions according to claims 11 and 12, the determination can be performed simply and efficiently by referring to tile part division / arrangement information. it can.
(3) According to the information recording medium of the eighteenth aspect of the invention, a JPEG2000 code having the advantages as described in (1) above or a JPEG2000 family format file including the same is input to a computer, and a required tile This makes it possible to access parts efficiently, and so on.

  Embodiments of the present invention will be described below.

  The present invention can be implemented, for example, in a system as shown in FIG. In FIG. 1, reference numerals 100 and 101 denote personal computers (PCs), which can communicate via a network (LAN, intranet, Internet, etc.) 102.

  The PC 100 has a general configuration in which a CPU 110, a RAM 111, a hard disk device 112, a display device 113, an input device 114 such as a keyboard and a mouse, a network interface 115, and the like are connected to a bus 116. The PC 101 may have the same configuration.

  The present invention can take a form in which each of the PCs 100 and 101 is implemented independently, or a form of implementation on a client / server system in which the PC 101 is a client and the PC 100 is a server, for example. It is also possible to construct a client / server system by running client software and server software on a single PC 100 or 101, and the present invention may be implemented on such a system. It should be noted that each example described later can be implemented by dedicated hardware, and such an embodiment is naturally included in the present invention.

  FIG. 2 is a flowchart for explaining the first embodiment of the present invention. The procedure shown in this flowchart is assumed to be executed by software on the PC 100 (or 101) shown in FIG. 1 including JPEG2000 encoding processing. A program for this purpose is stored in the hard disk device 112, loaded into a RAM (main memory) 111, and executed by the CPU 110. However, when the PC 100 includes a JPEG2000 hardware encoder, the JPEG2000 encoding process itself can be executed by the encoder, and such an aspect is also included in the present embodiment. The same applies to Examples 2 and 3 below.

  Image data to be processed is stored in the hard disk device 112, and is transferred to the RAM 111 for processing. A JP2 file storing the JPEG 2000 code (code stream) as the processing result is generated on the RAM 111, and will be described as being transferred to the hard disk device 112 and stored. The same applies to Example 2 below.

  Please refer to FIG. First, the tile part arrangement method and the tile part division method are input by the user (step 1 and step 2), and tile part division / arrangement information corresponding to the arrangement method and the division method input in the PC 100 is generated on the RAM 111. (Step 3).

  In the present embodiment (and the following embodiments 2 and 3), tile part division / arrangement information having a format as shown in FIG. 3 is generated. Further, in this embodiment (and each of the following embodiments), for the sake of convenience, the division method into tile parts and the arrangement method of tile parts are the same for all tiles, and the same tile part division / arrangement information is applied to all tiles. Commonly applied. The maximum value of the resolution level is 15, the maximum number of layers is 32, and the maximum number of components is 16, but this is usually sufficient for practical use.

  The tile part division / arrangement information shown in FIG. 3 is a 9-byte fixed length format, the first bit relates to the tile part arrangement method, and the subsequent bits are divided into tile parts (which attribute At which boundary position to divide into tile parts). The contents indicated by each bit will be described below.

  (1) When the first bit is “0”, it means that the tile part arrangement method is “upper tile order” (see FIGS. 37 and 5). When this bit is “1”, the tile part arrangement method is “with respect to each value of the attribute (resolution level) located on the highest side of the progression order among the progression attributes used as the tile part division position. This means that all tile parts having values are successively arranged in the ascending order of tile numbers and tile part numbers (for convenience, this arrangement method is called “tile part order” for convenience) (FIG. 38, FIG. 38). (See FIG. 6). FIG. 5 shows an example of tile part arrangement based on the above “tile order”, and FIG. 6 shows an example of tile part arrangement based on the “tile part order”. However, in each case, the number of tiles = 2, the number of resolution levels = 3, the number of layers = 2, the number of components = 3, the number of precincts = 1 (maximum precinct), the progression order is RLCP, and the resolution level, layer, component -In the case of codes that are divided into tile parts at the boundary positions (switching positions) of all attributes of Nint and Precinct (position).

  (2) The next 4 bits ("dividing position (R, L, C)") divide the tile part at the boundary position (switching position) of the resolution level R, layer L, and component C, which are the attributes of the packet. Indicates whether or not.

  (3) The next 4 bits ("whether or not all positions") are specified when the previous "division position (R, L, C)" is designated to divide at the boundary position of a certain attribute. Or whether it is not divided (whether it is divided only at some boundary positions).

  (4) The next 16 bits ("resolution position") are divided at any boundary position of the resolution level when it is specified by "whether or not it is all positions" that all the boundary positions of the resolution level are not divided. Indicate.

  (5) The next 32 bits (“layer position”) indicate which boundary position of the layer to divide when it is specified not to divide at all boundary positions of the layer by “whether or not all positions” Show. However, the explanation example for the 16 bits is hexadecimal notation.

  (6) The next 16 bits ("component position") indicate which boundary position of the component should be divided when it is specified not to be divided at all the boundary positions of the component by "whether or not all positions" Show.

  In step 1 and step 2, for example, an input screen for the division method and arrangement method as shown in FIG. 4 is displayed on the screen of the display device 113, and radio buttons (circles) in the screen are displayed using the mouse of the input device 114 or the like. The user selects a tile part arrangement method and a tile part division method. This input information is stored in the RAM 111.

  The relationship between the radio buttons in the input screen and tile part division / arrangement information is as follows. The top two radio buttons are for specifying the first bit of the tile part division / arrangement method, that is, the tile part arrangement method. When the left radio button is selected, the corresponding bit is set to “1” (above “tile part”). Order "), and the bit for selecting the radio button on the right side is set to" 0 "(above" tile order higher "). The three radio buttons in the second row are for designating 4 bits of “division position (R, L, C)” in tile part division / arrangement information. The third-stage radio button is for designating 4 bits “whether or not all positions” in tile part division / arrangement information. The fourth radio button is for designating 16 bits of “resolution position” in tile part division / arrangement information. The fifth radio button is for designating 36 bits of “layer position” in tile part division / arrangement information. The sixth radio button is for designating 16 bits of “component position” in tile part division / arrangement information.

  Although not shown in the example of FIG. 4, a radio button for inputting a default division method is provided, and by selecting this, tile part division / array information corresponding to the default division method is generated, Alternatively, it is possible to generate tile part division / arrangement information corresponding to the default division method by the skip operation of step 2, and this aspect is also included in the present embodiment.

  Next, the PC 100 records the tile part division / array information generated in step 3 in the COM marker segment of the main header (step 4). Specifically, for example, a COM marker segment describing tile part division / array information is written in the main header area secured on the RAM 111. The COM marker segment has the structure shown in FIG. 31. Since tile part division / position information is binary data, Rcom = 0 is set, and nine-byte tile part division / array information is nine comments in units of one byte. It is written as data (Ccom (0) to Ccom (8)). Since the length of the marker segment excluding the COM marker itself is 13 bytes (= 2 + 2 + 9), Lcom = 13 is set.

  Next, the PC 100 reads image data from the hard disk device 112 into the RAM 111, and executes encoding processing (processing of blocks 1 to 5 in FIG. 14) until JPEG2000 packet generation is performed on the image data. A packet is generated above (step 5).

  Next, the PC 100 generates a tile part (tile part header and packet string) divided according to the designated division method on the RAM 111 (step 6).

  Next, the PC 100 arranges the tile parts according to the designated arrangement method (step 7), and generates a final JPEG2000 code (code stream) with the main header including the COM marker segment added on the RAM 111. (Step 8). Step 6 to step 8 correspond to the processing of block 6 in FIG. Finally, a JP2 format file storing this code is generated on the RAM 111 (step 9), and transferred to the hard disk device 112 and stored (step 10). Note that the generated JPEG2000 code can be transmitted to, for example, the PC 101 as it is without making it into a file, and this aspect is also included in the present embodiment.

  As is apparent from the above description, this embodiment corresponds to an embodiment of the invention described in claim 1 using a computer, and step 3 is used as means for generating tile part division / array information. Corresponds to means for recording tile part division information in the COM marker segment. Various computer-readable information recording media on which codes or files generated by this embodiment are recorded correspond to an embodiment of the invention described in claim 18. A program for this embodiment corresponds to an embodiment of the invention described in claim 11. Further, in the case of generating “tile part order” codes as shown in FIG. 6, this embodiment corresponds to an embodiment of the present invention described in claims 3 and 4.

  FIG. 7 is a flowchart for explaining the second embodiment of the present invention. Steps 11, 12, 13, 14, 15, 16, and 17 in the figure are steps corresponding to steps 1, 2, 3, 5, 6, 7, and 8 in FIG. 2 according to the first embodiment. Is omitted. Note that tile part division / arrangement information is not recorded in the COM marker segment in the main header of the JPEG2000 code generated in step 17 (however, it may be recorded, and such an aspect is also included in this embodiment).

  Next, the PC 100 opens a new file in the JP2 file format on the RAM 111, and records the 9-byte division information generated in step 13 in the DATA field of the UUID Box or the DB Box of the XML Box in a predetermined tag format ( step 18). Further, the JPEG2000 code generated in step 17 is stored in the file, and other necessary box information is recorded to generate a final JP2 format file (step 19), which is transferred to the hard disk device 112 and stored therein. (Step 20).

  As is apparent from the above description, this embodiment corresponds to an embodiment of the invention described in claim 1 using a computer, and step 18 is a means for recording tile part division information in UUIDBox or XMLBox. Correspond. Various computer-readable information recording media on which codes or files generated by this embodiment are recorded correspond to an embodiment of the invention described in claim 18. A program for this embodiment corresponds to an embodiment of the invention described in claim 11. Further, in the case of generating the code of “tile part order” as shown in FIG. 6, this embodiment corresponds to an embodiment of the invention described in claims 3 and 4.

  A third embodiment of the present invention will be described using FIG. 7 relating to the second embodiment for convenience. The processing contents in the present embodiment are the same as those in the second embodiment except for step 18 in FIG. In this embodiment, in step 18, the tile part division / arrangement information generated in step 13 corresponds to the file name (file name of the file to be generated) as shown in FIG. 10 in the database on the hard disk device 112, for example. It is recorded in the attached form. Therefore, by referring to the database by the file name of the generated file, it is possible to acquire tile part division / arrangement information relating to codes in the file.

  It is also possible to save the generated JPEG 2000 code without making it into a file. In such a case, tile part division / array information is recorded in the external database in association with the code.

  As is apparent from the above description, this embodiment corresponds to an embodiment of the invention described in claim 2 using a computer, and step 18 corresponds to means for recording tile part division information in an external database. To do. Various computer-readable information recording media on which codes or files generated by this embodiment are recorded correspond to an embodiment of the invention described in claim 18. A program for this embodiment corresponds to an embodiment of the invention described in claim 12. Further, in the case of generating “tile part order” codes as shown in FIG. 6, this embodiment corresponds to an embodiment of the present invention described in claims 3 and 4.

  FIG. 8 is a flowchart for explaining the fourth embodiment of the present invention. In this embodiment, it is assumed that the PC 100 operates as a JPT server and the PC 101 operates as a JPT client. The procedure shown in FIG. 8 is executed on the PC 100 side as the JPT server.

  The file to be processed is a JP2 format file generated by the processing according to the first or second embodiment, and is stored in the hard disk device 112 in the PC 100. However, a mode in which the JP2 format file is stored in an external hard disk device or the like managed by the JPT server is also included in this embodiment. It is also known whether the tile part division / arrangement information is recorded in the COM marker segment of the code stored in the file, or in the UUID Box or XML Box of the file.

In JPT, the resolution designation and display window designation are transmitted from the client to the server in addition to the file name to be displayed. The resolution is specified by a parameter called fsiz having a size fx in the x direction, a size fy in the y direction, and the display window is specified by a parameter called rsiz. For example
fsiz = "fsiz""=" size in x direction "," size in y direction [",""closest"]
rsiz = "rsiz""=" window size in the x direction "," Expressed like the window size in the x direction.

  However, here, it is assumed that the resolution level (image size) requested by the client matches the display window size. Also, the JPEG2000 code stored in the file is the number of tiles = 2, the number of resolution levels = 3, the number of layers = 2, the number of components = 3, and the precinct, as in the example shown in FIGS. It is assumed that the number is RLPC progression of 1 (maximum precinct), and the tile size is a power of 2 both vertically and horizontally.

  First, the PC 100 as the JPT server receives the file name and resolution level (as fsiz) to be displayed from the PC 101 as the JPT client (step 31).

  In the PC 100, the specified JP2 format file is opened (step 32), and the resolution level r required for transmission is calculated from the x-direction size (fx) and the y-direction size (fy) of fsiz (step 33).

FIG. 9 is a flowchart showing the processing contents of step 33. First, fx and fy of fsiz are fetched (step 51), and the horizontal size (Xziz) and vertical size (Ysiz) of the original image are detected from the SIZ marker segment in the main header of the JPEG2000 code in the designated file (step 52). The number of decomposition levels d is detected from the COD marker segment in the main header (step 53). Then, it is determined that the value obtained by dividing Xsiz by 2 to the power of d is fx or less, and the value obtained by dividing Ysiz by the power of 2 is fy or less (step 54). If (step 54, Yes), the resolution level r = 0 is set (step 55). If the condition is not satisfied (step 54, No),
Resolution level r = d−min [log2 (Xsiz / fx), log2 (Ysiz / yx)] + 1
(Step 55). Here, log2 () is a logarithm with 2 as the base, and mim [a, b] is a function that gives a small value of a and b.

  Refer to FIG. 8 again. After the processing of step 33, the PC 100 determines the coding conditions of the code, that is, the number of tiles, the progression order, the number of decomposition levels, the number of layers, the number of components, the number of precinct divisions, from the SIZ marker segment and the COD marker segment in the main header of the code. Is detected (step 34).

  Next, the PC 100 detects the division method and arrangement method of the tile part of the code (step 35), the code is “divided into tile parts at each of the boundary positions of R, L, C, and P” and “progression order For each value of resolution level R, which is the attribute located at the highest level, tile parts are continuously arranged in the ascending order of tile numbers and tile part numbers (that is, tile parts are arranged as shown in FIG. (In order 36) ”is confirmed (step 36). Here, since the tile part division / arrangement information shown in FIG. 3 is recorded in the COM marker segment in the main header of the code or the UUIDBox or XMLBox of the file, step 35 refers to this tile part division / arrangement information. Thus, the division method and the arrangement method can be detected, and therefore it is possible to immediately confirm whether or not the order is “tile part order” in step 36.

  If the determination result at step 36 is Yes, efficient tile part selection and transmission processing after step 37 can be performed, which is a major feature of this embodiment. In addition, when the determination result of step 36 is No, it becomes another processing procedure, but the description is omitted.

  Hereinafter, the processing after step 37 will be described. First, the PC 100 transmits information on the main header of the code as a main header data bin to the client PC 101 (step 37).

Next, the PC 100 calculates the total number N of tile parts to be transmitted by the following formula: N = number of tiles × required resolution level r × number of layers × number of components × number of precincts (step 38). And the process which selects the tile part from the first tile part of a code | symbol to the Nth tile part in order, and transmits to PC101 is performed.

  That is, seek the first SOT marker segment by searching for the code (step 39), detect the tile part length L from the SOT marker segment, and select the first tile part based on the tile part length L. It transmits to PC101 (step40). Based on the tile part length L detected and held immediately before, the code is sought to find the next SOT marker segment (step 42), and the tile part length L is continuously extracted from this SOT marker segment. One tile part is selected based on L and transmitted to the PC 101 (step 40). Similarly, tile parts are sequentially selected one by one and transmitted to the PC 101. Similar tile part scanning and transmission is repeated until the Nth tile part is transmitted. When the Nth tile part is transmitted (step 41, Yes), the PC 100 terminates such tile part search and transmission processing. Then, the file is closed (step 43), and a series of processing is ended.

  Although a description has been given here assuming that a file in the JP2 format is specified and processed, it is natural that the same processing can be performed on a bare JPEG2000 code that is not filed (however, tile part division / The sequence information is recorded only in the COM marker segment of the main header of the code).

  If the first bit of tile part division / arrangement information does not exist, “the progression attribute used as the tile part division position in the setp 36, the attribute located at the highest side of the progression order (the highest order number of the progression order). The tile part is tiled with respect to each value of the upper attribute (which means that it is not always tile part divided, meaning that it is the highest-order attribute among the attributes used for tile part division). “Is it arranged consecutively in ascending order of numbers and tile part numbers?” Refers to “the minimum value of the attribute (resolution level) located at the top of the progression order among the progression attributes used as the tile part division position, Tile parts with different tile numbers are arranged consecutively "It can be confirmed by examining the.

  In addition, for the sake of simplicity, it is assumed that the resolution level (image size) requested by the client matches the display window size. If the display window size is smaller than the image size of the required resolution level, it is only necessary to transmit the tile group existing at the position included in the display window at the required resolution level.

  As is apparent from the above description, this embodiment corresponds to an embodiment of the invention described in claim 8 using a computer, and steps 35 and 38 correspond to determination means. If the determination result by the determination means is affirmative, in steps 39 to 42, the tile parts continuous from the head of the code are efficiently accessed, and only the required tile parts are transmitted. A program for this embodiment corresponds to an embodiment of the invention described in claim 15. An information recording medium on which the program is recorded corresponds to an embodiment of the invention described in claim 17.

  According to the fifth embodiment of the present invention, selection and transmission in units of tile parts of codes in a file as generated by the third embodiment can be performed efficiently.

  A present Example is demonstrated using FIG. 8 regarding the said Example 4. FIG. According to the present embodiment, in step 35 of FIG. 8, the file name of the designated file is used and the tile part division / arrangement information relating to the code in the designated file recorded in the external database as shown in FIG. 10 is referred to. Thus, the method for dividing the code into tile parts and the method for arranging the tile parts are detected. The rest is the same as in Example 4.

  As is apparent from the above description, this embodiment corresponds to an embodiment of the invention described in claim 10 using a computer. A program for this embodiment corresponds to an embodiment of the invention described in claim 16. An information recording medium on which the program is recorded corresponds to an embodiment of the invention described in claim 17.

  A sixth embodiment of the present invention will be described with reference to FIGS. In the present embodiment, the JPEG 2000 code of the tile part division method / arrangement method as shown in FIG. 6 is stored from the JP2 format file storing the JPEG 2000 code of the tile part division method / arrangement method as shown in FIG. A JP2 format file is generated.

  11 and 12 are flowcharts for explaining the processing in this embodiment. The process shown here is executed in the PC 100 as a server, for example. Hereinafter, the processing contents will be described in order.

  In the PC 100, a file name is specified by inputting a file name from the input device 114 or the client PC 101 (step 61), and the specified file is opened (step 62).

  From the SIZ marker segment and the COD marker segment in the main header of the code in the file, the encoding condition of the code, that is, the number of tiles, the progression order, the number of decomposition levels, the number of layers, the number of components, and the number of precinct divisions are detected. (Step 63).

  Next, the division method and arrangement method of the tile part of the code are detected (step 64), and it is confirmed whether the code is “higher in tile order” as shown in FIG. 5 (step 65). In this embodiment, it is assumed that the tile part division / arrangement information shown in FIG. 3 is recorded in the COM marker segment in the main header of the code, and the division method and arrangement are referred to by referring to the tile part division / arrangement information. When the method is detected and the leading bit is “0”, it is immediately confirmed that the code is “upper tile order”.

  If it is confirmed that the code is “upper tile order” as shown in FIG. 5 (step 65, Yes), the process proceeds to step 66 and subsequent steps. However, when it is confirmed that it is not “upper tile order”, that is, when the code is confirmed to be “tile part order” (step 66, No), the designated file does not need to be converted, so a message, etc. Is displayed on the display device 113 and the processing is stopped, but further description is omitted.

  Hereinafter, processing after step 66 will be described. First, the PC 100 updates the first bit of the tile part division / arrangement information recorded in the COM marker segment in the main header of the code to “1” (step 66). A new file A is opened, and the main header including the COM marker segment updated in the previous step is output to the file A (step 67). Next, a five-dimensional array of tp structures held in the position and length members of the tile part shown in FIG. 13 is allocated (step 68). Then, the code in the designated file is sought to find the first SOT marker segment (step 69), and the process proceeds to step 70.

  In this step 70, among the progression attributes used as tile part division positions by the codes in the designated file, “TRLCP” in which “the number of tiles” is inserted before the resolution level positioned at the top of the progression order. A for loop (shown inside step 70) corresponding to the progression order is configured, and in this for loop, the positions and lengths L of all the tile parts are obtained and stored in the tp structure in order from the first tile part.

  Next, the process proceeds to step 71 (FIG. 12). In this step 71, a for loop (shown inside the step 71) corresponding to the progression order such as “RTLCP” corresponding to the “tile part order” as shown in FIG. 6 is configured, and in this for loop, the tp structure All the tile parts stored in the file are sequentially output to the file A, whereby the JPEG 2000 format code in which the tile parts are arranged according to the “tile part order” is stored in the file A. Then, a final JP2 format file A is generated (step 72) and stored in the hard disk device 112 (step 73). Finally, the specified file is closed (step 74), and the process is terminated.

  Although a JP2 format file is specified here, a bare JPEG2000 code that is not filed is specified, and a JP2 format file that stores JPEG2000 code in accordance with “tile part order” is generated by the same process. Obviously, it is possible. It is also possible to generate a bare JPEG2000 code that is not filed by similar processing.

  The same applies when tile part division / arrangement information is not recorded in the COM marker segment in the main header of the code in the designated file and tile part division / arrangement information is recorded in the UUIDBox or XMLBox of the designated file. Processing is possible. In this case, the tile part division / arrangement method is detected and confirmed by referring to the tile part division / arrangement information recorded in the UUIDBox or XMLBox of the designated file. Then, instead of updating the COM marker segment of the main header of the code, the first bit of the tile part division / array information recorded in the UUIDBox or XMLBox of the specified file is updated to “1”, and the updated UUIDBox or XMLBox is updated. Is output to the new file A. Although the detailed description beyond this is omitted, this embodiment is also included in this embodiment.

  The tile part division / arrangement information is not recorded in the designated file, but the same processing is possible when the tile part division / arrangement information is recorded in the external database in association with the file name. In this case, the tile part division / arrangement method is detected and confirmed by referring to the tile part division / arrangement information recorded in the database using the file name of the designated file. Then, the first bit of the tile part division / arrangement information is updated to “1”, and the updated tile part division / arrangement information is recorded in the database in association with the file name of the new file A. Although the detailed description beyond this is omitted, this aspect is also included in this embodiment.

  As is apparent from the above description, the present embodiment corresponds to an embodiment of the invention described in claims 5 and 6 using a computer. A program for the present embodiment corresponds to an embodiment of the invention described in claims 13 and 14. An information recording medium on which the program is recorded corresponds to an embodiment of the invention described in claim 17. An information recording medium on which a code or a file generated by this embodiment is recorded corresponds to an embodiment of the invention described in claim 18.

It is a block diagram which shows the system configuration example which concerns on embodiment of this invention. It is a flowchart for demonstrating Example 1 of this invention. It is a figure which shows the example of a format of tile part division | segmentation and arrangement | sequence information. It is a schematic diagram which shows the example of a screen for a user to specify the division | segmentation method to a tile part. It is a figure which shows the example of tile part arrangement | positioning of "tile order high order". It is a figure which shows the example of tile part arrangement | sequence of "a tile part order." It is a flowchart for demonstrating Example 2, 3 of this invention. It is a flowchart for demonstrating Example 4, 5 of this invention. It is a flowchart of step33 in FIG. It is explanatory drawing of the database with which tile part division | segmentation and arrangement | sequence information were recorded in relation with the file name. It is a flowchart for demonstrating Example 6 of this invention. It is a flowchart following FIG. It is explanatory drawing of tp structure name and its 5-dimensional array. It is a block diagram for demonstrating the encoding algorithm of JPEG2000. It is a figure which shows the relationship between an image, a tile, a subband, a precinct, and a code block. It is a figure which shows the example of a subband division | segmentation, and the relationship between a decomposition level and a resolution level. It is a figure which shows the example of a layer division | segmentation. It is a figure which shows the progression order of JPEG2000 specification. It is a schematic diagram of a layer progressive code. It is a figure which shows the example of a packet arrangement | sequence in the code | symbol of LRCP progression order. It is a schematic diagram of a resolution progressive code. It is a figure which shows the example of a packet arrangement | sequence in the code | symbol of RLCP progression order. It is a block diagram of a SOT marker segment. It is content explanatory drawing of a SOT marker segment. It is a block diagram of a TLM marker segment. It is content explanatory drawing of a TLM marker segment. It is a figure which shows the example divided | segmented into the tile part in the boundary position of all the resolution levels. It is a figure which shows the example divided | segmented into the tile part in the boundary position of all the resolution levels, and the boundary position of all the layers. It is a figure which shows the example divided | segmented into the tile part in the boundary position of all the resolution levels, the boundary position of all the layers, and the boundary position of all the components. It is a block diagram of a COD marker segment. It is a block diagram of a COM marker segment. It is a figure which shows the structure of a JP2 file. It is a figure which shows the information structure of Box. It is explanatory drawing of the information content of Box. It is a figure which shows the structure of a JPM file. It is explanatory drawing of the code | symbol of the monochrome image of 2 tiles. It is a figure which shows an example of the tile part arrangement | sequence of the code | symbol of the monochrome image of FIG. It is a figure which shows an example of the tile part arrangement | sequence of the code | symbol of the monochrome image of FIG. It is a figure which shows an example of the tile part arrangement | sequence of the code | symbol of the monochrome image of FIG.

Explanation of symbols

100 Personal computer (JPT server)
101 Personal computer (JPT client)
102 network 110 CPU
111 RAM
112 Hard Disk Device 113 Display Device 114 Input Device 115 Network Interface

Claims (18)

  1. A code processing device for generating a JPEG2000 code or a JPEG2000 family format file including the code,
    Means for generating tile part division / arrangement information in a predetermined format indicating a method of dividing the code into tile parts and an arrangement method of the tile parts, and the tile part division / arrangement information as a COM marker segment in the code or the file And a means for recording in UUIDBox or XMLBox.
  2. A code processing device for generating a JPEG2000 code or a JPEG2000 family format file including the code,
    Means for generating tile part division / arrangement information in a predetermined format indicating a method of dividing the code into tile parts and an arrangement method of tile parts, and the tile part division / arrangement information associated with the code or the file A code processing apparatus comprising means for recording in a database.
  3.   The code is the progression attribute used as the tile part division position, and for each value of the attribute located on the most significant side of the progression order, all tile parts having the value are the tile number and the tile part number. The code processing apparatus according to claim 1, wherein the codes are continuously arranged in ascending order.
  4.   4. The code processing apparatus according to claim 3, wherein the attribute located on the uppermost side of the progression order is a resolution level.
  5. A JPEG2000 code (hereinafter referred to as an input code) or a JPEG2000 family format file (hereinafter referred to as an input file) containing the input code is used as an input, and the JPEG2000 code (hereinafter referred to as an output code) different from the input code. ) Or a JPEG2000 family format file (hereinafter referred to as an output file) including the output code,
    Among the progression attributes used as the tile part division position, the input code is related to each value of the attribute located on the topmost side of the progression order, and all tile parts having the value are assigned tile numbers and tile part numbers. Means for converting to the output codes continuously arranged in ascending order; means for generating tile part division / arrangement information in a predetermined format indicating a method of dividing the output codes into tile parts and a method of arranging tile parts; and the tiles A code processing apparatus comprising: means for recording part division / arrangement information in a COM marker segment in the output code or a UUIDBox or XMLBox of the output file.
  6. A JPEG2000 code (hereinafter referred to as an input code) or a JPEG2000 family format file (hereinafter referred to as an input file) including the input code is used as an input, and the JPEG2000 code (hereinafter referred to as an output code) different from the input code. ) Or a JPEG2000 family format file (hereinafter referred to as an output file) including the output code,
    Among the progression attributes used as the tile part division position, the input code is related to each value of the attribute located on the topmost side of the progression order, and all tile parts having the value are assigned tile numbers and tile part numbers. Means for converting to the output codes continuously arranged in ascending order; means for generating tile part division / arrangement information in a predetermined format indicating a method of dividing the output codes into tile parts and a method of arranging tile parts; and the tiles A code processing apparatus comprising: means for recording part division / array information in an external database in association with the output code or the output file.
  7.   The code processing device according to claim 5 or 6, wherein the attribute located on the uppermost side of the progression order is a resolution level.
  8. A code processing device that inputs a JPEG2000 code or a JPEG2000 family format file including the code and selects a required tile part of the code,
    By referring to the tile part division / arrangement information recorded in the COM marker segment of the code or the UUID Box or XML Box of the file, among the progression attributes used as the tile part division position in the code, the highest level of the progression order A code processing apparatus comprising: means for determining whether all tile parts having the attribute value are continuously arranged in ascending order of tile numbers and tile part numbers with respect to each attribute value located on the side.
  9. A code processing device that inputs a JPEG2000 code or a JPEG2000 family format file including the code and selects a required tile part of the code,
    By referring to the tile part division / arrangement information recorded in the external database associated with the code or the file, among the progression attributes used as the tile part division position in the code, the highest order side of the progression order A code processing apparatus comprising: means for determining whether all tile parts having the value of the attribute located at the position are consecutively arranged in ascending order of tile numbers and tile part numbers.
  10. A code processing device that inputs a JPEG2000 code or a JPEG2000 family format file including the code and selects a required tile part of the code,
    Among the progression attributes used as tile part division positions in the code, whether or not tile parts having tile numbers with different tile numbers are consecutively arranged is examined with respect to the minimum value of the attribute located on the highest side of the progression order. Thus, for each value of the attribute located on the most significant side, there is a means for determining whether all tile parts having the value are continuously arranged in the ascending order of the tile number and the tile part number. Code processing device.
  11. A program for causing a computer to generate a JPEG2000 code or a JPEG2000 family format file including the code,
    A step of generating on a memory tile part division / arrangement information in a predetermined format indicating a method of dividing the code into tile parts and an arrangement method of the tile parts, and the tile part division / arrangement information in the code in the code on the memory A program which causes a marker segment or a step of recording in a UUIDBox or XMLBox of the file to be executed.
  12. A program for causing a computer to generate a JPEG2000 code or a JPEG2000 family format file including the code,
    A step of generating on a memory tile part division / arrangement information in a predetermined format indicating a method of dividing the code into tile parts and an arrangement method of tile parts, and associating the tile part division / arrangement information with the code or the file And executing a process of recording in an external database.
  13. A JPEG2000 code (hereinafter referred to as an input code) or a JPEG2000 family format file (hereinafter referred to as an input file) including the input code is input to a computer, and the JPEG2000 code (hereinafter referred to as an output) is different from the input code. A program for generating a JPEG2000 family format file (hereinafter referred to as an output file) including the output code,
    Among the progression attributes used as the tile part division position, the input code on the memory is related to each value of the attribute located on the most significant side of the progression order. The tile part division / arrangement information in a predetermined format indicating the step of converting to the output codes continuously arranged in the ascending order of the part number, the division method of the output codes into tile parts, and the arrangement method of tile parts is generated on the memory. And a step of recording the tile part division / array information in a COM marker segment in the output code on the memory or a UUIDBox or XMLBox of the output file on the memory.
  14. A JPEG2000 code (hereinafter referred to as an input code) or a JPEG2000 family format file (hereinafter referred to as an input file) including the input code is input to a computer, and the JPEG2000 code (hereinafter referred to as an output) is different from the input code. A program for generating a JPEG2000 family format file (hereinafter referred to as an output file) including the output code,
    Among the progression attributes used as the tile part division position, the input code on the memory is related to each value of the attribute located on the most significant side of the progression order. The tile part division / arrangement information in a predetermined format indicating the step of converting to the output codes continuously arranged in the ascending order of the part number, the division method of the output codes into tile parts, and the arrangement method of tile parts is generated on the memory. A program for executing a step of recording the tile part division / arrangement information in an external database in association with the output code or the output file.
  15. A program that causes a computer to input a JPEG2000 code or a JPEG2000 family format file that includes the code, and to select a required tile part of the code.
    By referring to the tile part division / arrangement information recorded in the COM marker segment of the code on the memory or the UUID Box or XML Box of the file, the progression order used as the tile part division position in the code is displayed. A program for executing a step of determining whether all tile parts having the value are consecutively arranged in the ascending order of tile numbers and tile part numbers with respect to each value of the attribute positioned on the uppermost side of the program.
  16. A program that causes a computer to input a JPEG2000 code or a JPEG2000 family format file that includes the code, and to select a required tile part of the code.
    By referring to the tile part division / arrangement information recorded in the external database in association with the code or the file in the memory, the progression order used as the tile part division position in the code is the progression order. A program for executing a step of determining whether all tile parts having the value are consecutively arranged in ascending order of tile numbers and tile part numbers with respect to each value of an attribute located on the uppermost side.
  17.   A computer-readable information recording medium in which the program according to any one of claims 11 to 16 is recorded.
  18.   A computer-readable information recording medium on which a JPEG2000 code or a JPEG2000 family format file including the code is recorded, and having a predetermined format indicating a method of dividing the code into tile parts and a method of arranging tile parts An information recording medium, wherein tile part division / arrangement information is recorded in a COM marker segment of the code or a UUIDBox or XMLBox of the file.
JP2006077206A 2006-03-20 2006-03-20 Code processing apparatus, program, and information recording medium Expired - Fee Related JP4748672B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006077206A JP4748672B2 (en) 2006-03-20 2006-03-20 Code processing apparatus, program, and information recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006077206A JP4748672B2 (en) 2006-03-20 2006-03-20 Code processing apparatus, program, and information recording medium

Publications (2)

Publication Number Publication Date
JP2007258807A true JP2007258807A (en) 2007-10-04
JP4748672B2 JP4748672B2 (en) 2011-08-17

Family

ID=38632652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006077206A Expired - Fee Related JP4748672B2 (en) 2006-03-20 2006-03-20 Code processing apparatus, program, and information recording medium

Country Status (1)

Country Link
JP (1) JP4748672B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004186929A (en) * 2002-12-03 2004-07-02 Canon Inc Image processing apparatus
JP2004274760A (en) * 2003-03-07 2004-09-30 Ricoh Co Ltd Communication method for compressed digital image, and product
JP2004274758A (en) * 2003-03-07 2004-09-30 Ricoh Co Ltd Method and apparatus for converting jpp-stream into jpeg-2000 code stream

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004186929A (en) * 2002-12-03 2004-07-02 Canon Inc Image processing apparatus
JP2004274760A (en) * 2003-03-07 2004-09-30 Ricoh Co Ltd Communication method for compressed digital image, and product
JP2004274758A (en) * 2003-03-07 2004-09-30 Ricoh Co Ltd Method and apparatus for converting jpp-stream into jpeg-2000 code stream

Also Published As

Publication number Publication date
JP4748672B2 (en) 2011-08-17

Similar Documents

Publication Publication Date Title
US7006099B2 (en) Cache system and method for generating uncached objects from cached and stored object components
USRE42185E1 (en) Image retrieval system and image retrieval method
CN101079716B (en) Adaptive selection of image streaming mode
JP3800551B2 (en) Data processing apparatus and method
EP1024444A2 (en) Image information describing method, video retrieval method, video reproducing method, and video reproducing apparatus
US9123092B2 (en) Method of creating or updating a container file for storing image files
US6999626B2 (en) Memory management of compressed image data
JP3271985B2 (en) Data compression using adaptive bit allocation and hybrid lossless entropy coding
CN1256839C (en) ROI set-up method and equipment, electronic camera equipment
US20080201736A1 (en) Using Triggers with Video for Interactive Content Identification
US6778709B1 (en) Embedded block coding with optimized truncation
US20020159653A1 (en) System and method for the lossless progressive streaming of images over a communication network
US7382926B2 (en) Transcoding a JPEG2000 compressed image
JP3989362B2 (en) Image processing method based on header information
US6546143B1 (en) Efficient wavelet-based compression of large images
US20040136598A1 (en) Method and device for selecting data in a communication network
JP2015516748A (en) Scalable data streams and network entities
US20030133617A1 (en) Coder matched layer separation and interpolation for compression of compound documents
US8769395B2 (en) Layout objects as image layers
EP1533993A2 (en) Image processing apparatus for generating vector data and control method therefor
US8150179B2 (en) Image processing apparatus
CN100584022C (en) Method and system for streaming documents, e-mail attachments and maps to wireless devices
KR100524566B1 (en) Image processing apparatus and method
US20020018597A1 (en) Image processing system, image processing apparatus, image input apparatus, image output apparatus and method, and storage medium
JP2003099358A (en) Method and system for improving on-line interactivity via server-client network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090212

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110511

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110512

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees