Image encoding apparatus and method

Abstract: An image processing apparatus is provided which can shape codes and omit buffers at a decoding side as well as omit an image memory at an encoding side by providing code buffers for respective encoders. An image encoding apparatus for encoding image information in a hierarchical form includes encoders provided for respective hierarchies and code buffers provided after the respective encoders. Furthermore, it is possible to use a common code buffer memory for respective hierarchies at the encoding side. In such a case, by arranging so that a hierarchical tag can identify to which hierarchy a code belongs, a simplified encoding apparatus is provided.

Description: BACKGROUND OF THE INVENTION Field of the Invention This invention relates to an image encoding apparatus and a method for encoding image information in a hierarchical form, and more particularly, to an image encoding apparatus and method which are suitable for hierarchical image encoding in, for example, a static-image filing apparatus or a transmission apparatus. Description of the Related Art A conventional hierarchical image encoding method is described in, for example, "International Standard for Multimedia Encoding" edited by Hiroshi Yasuda (ISBN4-621-036149C3055). When transmitting an image using the conventional encoding method, rough image information is transmitted first, followed by transmission of additional information that is used by a receiving device to gradually generate a detailed image. Conventionally, for performing hierarchical image encoding, an image filing apparatus as shown in FIG. 5 has been used. In such an apparatus, no consideration is given to, for example, the order of generating detailed image information (detailed codes) 114, intermediate image information (intermediate detailed codes) 113, and rough image information (rough codes) 112 shown in FIG. 5. However, for standard codes, only codes having the structures shown in FIGS. 6, 7, 8, 9, 10 and 11 are permitted. In FIGS. 6 through 11, reference numerals 111, 121, 131, 141 and 151 represent headers, and reference numeral 161 represents an interruption code. Accordingly, for example, when a code includes only an intermediate detailed code 113 as shown in FIG. 11, the same header is used as in the case when a code also includes a detailed code 114, as shown in FIG. 8. Hence, interruption code 161 is provided in code 160 of FIG. 11 to indicate that code 114 is absent. Accordingly, codes 130 and 160 cannot be discriminated from each other by examining only header 131. Further, the decoding side cannot determine whether transmitted information comprises code 130 or a combination of codes 160 and 150 until the entire code is transmitted. In order to prevent such problems, the conventional method preserves information in the form of code 110 or 120. However, as can be understood from the configuration of encoders shown in FIG. 5, the generation of each of codes 113 and 114 requires two images having different resolution values. Hence, for generating code 110, the generation of codes 113 and 114 must be delayed and the images having various resolutions must be stored in memory while the generation of code 112 is completed. Such processing requires a large-capacity image memory. On the other hand, when transmitting code 120, a memory is not needed at the encoding side for separately storing an image having the highest resolution while encoding of an image having the lowest resolution is completed, and the memory therefore can be sequentially cleared for storing an image of low resolution. However, since the decoding side must first perform decoding from data for an image of low resolution, it is necessary to provide a memory to temporarily store data received for an image of high resolution, and therefore to perform complicated processing. The present invention is concerned with solving the above-described problems. An embodiment of the present invention provides an image encoding apparatus and method capable of performing high-speed hierarchical encoding. European Patent Specification No. EP-A-0,152,355 discloses an image information retrieval display apparatus in which an original image is represented by a hierarchical structure from a global image at a high level to a local image of low level. According to one aspect, the present invention comprises apparatus as set out in claim 1. In accordance with a second aspect, the present invention comprises an image encoding method as set out in claim 12. Thus an embodiment of the present invention generates encoded data which can be easily handled. A further embodiment of the present invention reduces the required capacity of a memory for storing data, and can perform efficient data transmission. In order that the present invention may be more readily understood, embodiments thereof will now be described by way of example and with reference to the accompanying drawings, in which: Fig. 1 is a block diagram showing the configuration of a first preferred embodiment of the present invention; Fig. 2 is a timing chart showing the operational timing of the first embodiment; FIG. 3 is a block diagram showing the configuration of a second preferred embodiment of the present invention; FIG. 4 is a timing chart showing the operational timing of the second embodiment; FIG. 5 is a diagram illustrating an encoding method and apparatus for conventional hierarchical image encoding; and FIGS. 6 through 11 are diagrams illustating standard specifications of the structure of encoded data used in encoding processing of image data. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention for solving the above-described problems have the following configurations. That is, an image encoding apparatus for encoding image information in a hierarchical form includes encoders provided for respective hierarchies, and code buffers provided after the respective encoders. Another image encoding apparatus for encoding image information in a hierarchical form includes encoders provided for respective hierarchies, and code buffer memories provided after and used for the respective encoders. Still another encoding apparatus for encoding image information in a hierarchical form includes encoders provided for respective hierarchies, and code buffer memories provided after the respective encoders and commonly used for the respective hierarchies. Still another encoding apparatus for encoding image information in a hierarchical form includes encoders provided for respective hierarchies, and code buffer memories provided after the respective encoders and commonly used for the respective hierarchies. The apparatus uses hierarchical tags for identifying codes within the code buffer memories. In any of the above-described configurations, by providing code buffers for respective encoders, it is possible to shape codes and to omit buffers at the decoding side as well as to omit.an image memory in the encoding side. In such cases, code buffer memories at the encoding side can be commonly used for respective hierarchies. By arranging so that a hierarchy tag can identify to which hierarchy a code belongs, it is possible to provide a simplified encoding apparatus. Preferred embodiments of the present invention will now be specifically described with reference to the drawings. First Embodiment FIG. 1 is a block diagram showing the configuration of a first embodiment of the present invention. In FIG. 1, when reading of an original by image scanner 11, comprising a CCD (charge-coupled device) line sensor, has been started for respective sequential pixels (picture elements), read image data (original data "Org") are sequentially transferred to and stored in line buffer 12. Line buffer 12 has a capacity of a few lines. When read image data Org have been sequentially transferred to and stored in line buffer 12, the image data are sequentially output from line buffer 12 in the order of reading after a delay corresponding to a reading time for a predetermined number of lines, and are input to image reducer 13. Image reducer 13 sequentially reduces the image data Org from line buffer 12, and outputs reduced data r 0 to line buffer 14. The reduced data r 0 are sequentially stored in line buffer 14. Line buffer 14 also has a capacity of a few lines. When the reduced data r 0 have been sequentially transferred to line buffer 14, the reduced data r 0 are sequentially output from line buffer 14 in the order of storage after a delay corresponding to a reading time for a predetermined number of lines, and are input to image reducer 15. Image reducer 15 further reduces the reduced data r 0 from line buffer 14, and outputs reduced data r 1 to line buffer 16. The reduced data r 1 are sequentially stored in line buffer 16. Line buffer 16 has a capacity of at least the number of lines required when performing encoding by encoder 19. The read data Org from line buffer 12 are also transferred to encoder 17, along with the reduced data r 0 from line buffer 14. Data for encoding the highest resolution image with respect to the intermediate resolution image are generated by encoder 17, and the encoded data are stored in code buffer 21 as encoded data a 2 . The reduced data r 0 from line buffer 14 are also transmitted to encoder 18, along with the reduced data r 1 from line buffer 16. Data for encoding the intermediate resolution image with respect to the low resolution image are generated by encoder 18, and the encoded data are stored in code buffer 22 as encoded data a 1 . The reduced data r 1 from line buffer 16 are also transmitted to encoder 19. Data for encoding the lowest resolution image are generated by encoder 19, and encoded data are stored in code buffer 23 as code a 0 . In the above-described embodiment, encoders 17, 18 and 19 use an arithmetic encoding method. Thus, the original data from scanner 11 are sequentially encoded, and are sequentially stored in code buffers 21 - 23 as encoded data a 0 , a 1 and a 2 . After the completion of encoding of a predetermined amount of data Org, the encoded data a 0 , a 1 and a 2 stored in code buffers 23, 22 and 21, are sequentially read as encoded data b 0 , b 1 and b 2 , respectively, and are transferred to communication apparatus 24 connected to network 50. Before the transmission of encoded data b 0 , b 1 and b 2 , communication apparatus 24 generates, for example, header 111 for code 110 as shown in FIG. 6, and transmits the generated header 111 to a communication partner's apparatus, for example, communication apparatus 60, which is also connected to network 50. After header 111, encoded data b 0 , b 1 and b 2 stored in buffers 23, 22 and 21, respectively, are sequentially read, and are transmitted to communication apparatus 60. Since other communication control procedures including the above-described header communication are known, a detailed description thereof is omitted. FIG. 2 shows the output timing of respective data in the foregoing description. In FIG. 2, data b 0 for the lowest resolution image, additional data b 1 for the intermediate resolution image, and additional data b 2 for the highest resolution image are communicated. As shown in FIG. 2, in the present embodiment, all encoding processing is completed by time t 1 after starting the input of read data Org of the original image, and encoded data are then output to the communication partner's apparatus. In FIG. 2, reduced data r 0 are sequentially generated with a delay corresponding to y lines based on image data Org sequentially input for every pixels. The y lines are the number of lines required for reduction by image reducer 13. Similarly, reduced data r 1 are sequentially generated with a delay corresponding to y lines based on the sequentially-generated reduced data r 0 . When image data Org for m lines and reduced data r 0 for n lines have been generated, encoding by encoder 17 is begun, and encoded data a 2 are sequentially generated, where m and n represent the numbers of lines required for encoding by encoder 17. Similarly, encoded data a 1 and a 0 are sequentially generated. In parallel with the generation of encoded data a 0 , encoded data b 0 are sequentially transmitted from code buffer 23 followed by the transmission of encoded data b 1 and b 2 . Thus, in the present embodiment, the generation of image data by image scanner 11, the image reduction by image reducers 13 and 15, and encoding by encoders 17, 18 and 19 are simultaneously performed for different pixels, and line buffers 12, 14 and 16 are provided to enable such processing. As described above, according to the present embodiment, by providing the configuration shown in FIG. 1 and performing the above-described control, a binary-image encoding apparatus can be provided in which it is unnecessary to provide a large-capacity image memory capable of storing all read data of an original in a non-compressed state, and in which it is unnecessary to rearrange encoded data by another apparatus. Although in the foregoing description a buffer device (code buffer 23) is provided for encoding data having the lowest resolution, the same effect may be obtained by omitting such a buffer device, that is, code buffer 23 is not a necessary component. Second Embodiment In the above-described embodiment shown in FIG. 1, as shown in the timing chart shown in FIG. 2, encoded data b 1 buffered at the final stage correspond to encoded data a 1 written in the buffer immediately after the start of the input of original image data Org. Accordingly, the above-described first embodiment has, for example, the following problems. (1) Original image data Org cannot be input for time period t 2 , which runs from the end of the generation of original image data Org until the start of transmission of encoded data b 2 . The efficiency of encoding is reduced due to this time period. (2) Each code buffer must have the capacity to store data of the estimated longest code length. A description will now be provided with reference to FIGS. 3 and 4 of a second embodiment of the present invention which overcomes such problems of the first embodiment. In the second embodiment, a code buffer memory is used in common, and a code is identified using a tag. FIG. 3 is a diagram showing the configuration of the second embodiment. In FIG. 3, the same components as in the first embodiment shown in FIG. 1 are indicated by the same reference numerals, and a detailed description thereof will be omitted. In FIG. 3, a tag indicating data for the highest resolution image is output from tag generator 25 and is added to encoded data a 2 output from encoder 17 to provide encoded data a 5 , which are stored in code buffer 28. Similarly, a tag indicating data for the intermediate resolution image is output from tag generator 26 and is added to encoded data a 1 output from encoder 18 to provide encoded data a 4 , which are stored in code buffer 28. Similarly, a tag indicating data for the lowest resolution image is output from tag generator 27 and is added to encoded data a 0 output from encoder 19 to provide encoded data a 3 , which are stored in code buffer 28. After the completion of encoding processing for a predetermined amount of data, communication apparatus 24 first reads and transmits encoded data having a tag indicating that the data corresponds to the lowest resolution image. The communication apparatus 24 then reads and transmits encoded data having a tag indicating that the data corresponds to the intermediate resolution image, and finally reads and transmits encoded data having a tag indicating that the data corresponds to the highest resolution image. FIG. 4 is the output timing of the respective data in the foregoing description. As shown in FIG. 4, by performing the above-described control, encoders 17, 18 and 19 can read the next original to be transmitted and perform encoding processing of read image data when encoded data b 4 stored in code buffer 28 have begun to be output. For example, in the above-described first embodiment, encoder 17 cannot begin encoding processing of data for the next read original until all encoded data a 2 output from encoder 17 are stored in code buffer 21, and the encoded data a 2 subjected to buffering start to be output as output signal b 2 , that is, until time t 2 after read data Org have been transmitted. To the contrary, in the second embodiment, the encoding processing can be started when encoded data a 0 from encoder 19 have begun to be output from code buffer 28. The time difference between the second and first embodiments corresponds to the transmission time of encoded data a 0 and a 1 (corresponding to data of codes 112 and 113 shown in FIG. 11 if indicated in the transmission control procedure format). This difference is a significant value. As described above, according to the present embodiment, by using a common buffer and providing encoded data with a tag, it is possible to reduce an idle time in the encoding processing. According to the above-described embodiments, by providing code buffers after respective encoders, the rearrangement of codes for the respective hierarchies necessary for communication can be performed without providing a memory for storing non-compressed image data of the entire original. Furthermore, by temporarily adding a tag representing a hierarchy to a code of each hierarchy necessary for communication, a code buffer can be shared, whereby an idle time for encoders can be reduced. As described above, according to the present invention, by providing code buffers for respective encoders, it is possible to shape codes and to omit buffers at the decoding side as well as to omit an image memory at the encoding side. Furthermore, it is possible to commonly use a code buffer memory for respective hierarchies at the encoding side. In such a case, by arranging so that a tag representing a hierarchy can identify to which hierarchy a code belongs, it is possible to provide a simplified encoding apparatus. Although in the above-described image reducers 13 and 15, image reduction is performed using image data of a block comprising N pixels x M pixels, the image reduction method is not limited to such a method. Although in the above-described encoders 17, 18 and 19, encoding is performed according to a so-called arithmetic encoding method, any other method, such as an entropy encoding method, a vector quantization method or an orthogonal transmform method, may also be used. Furthermore, image data Org may be input not from an image scanner, but from a host computer. The individual components shown in outline or designated by blocks in the drawings are all well-known in the image encoding arts and their specific construction and operation are not critical to the operation or best mode for carrying out the invention. While the present invention has been described with respect to what is presently considered to be the preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments.

Claims: An image encoding apparatus comprising: input means (11) for inputting original image data having a first resolution; first reduction means (13) for converting the resolution of the original image data and for generating first image data having a second resolution, the second resolution being lower than the first resolution; first encoding means (17) for receiving the original image data and the first image data and encoding the original image data by using the first image data and for outputting first code data; second reduction means (15) for converting the resolution of the first image data and for generating second image data having a third resolution, the third resolution being lower than the second resolution; and second encoding means (18) for receiving the first image data and the second image data and encoding the first image data by using the second image data and for outputting second code data, characterized in that said first encoding means (17) performs the encoding operation on the original image data in parallel with the reduction operation on the original image data by said first reduction means (13), said second reduction means (15) performs the reduction operation on the first image data in parallel with the encoding operation on the original image data by said first encoding means (17), said second encoding means (18) performs the encoding operation on the first image data in parallel with the reduction operation on the first image data by said second reduction means (15), and transmitting means (21, 22, 24, 28) is provided for transmitting the first code data and the second code data, the transmission of the first code data being performed after the transmission of the second code data. An apparatus according to claim 1, further comprising: first delay means (12) for delaying the original image data input by said input means (11) and for supplying the delayed original image data to said first reduction means (13) and said first encoding means (17); and second delay means (14) for delaying the first image data generated by said first reduction means (13) and for supplying the delayed first image data to said second reduction means (15) and said second encoding means (18). An apparatus according to claim 1, wherein said transmitting means (21, 22, 24, 28) comprises memory means (21, 22, 28) for storing the first code data and the second code data. An apparatus according to claim 3, wherein said memory means (28) comprises a common buffer memory for storing the first code data and the second code data. An apparatus according to claim 1, wherein said transmitting means (21, 22, 24, 28) sequentially transmits the second code data and the first code data. An apparatus according to claim 1, wherein said first reduction means (13) and said second reduction means (15) converts the resolutions of the original image data and the first image data with reference to a plurality of pixels on a plurality of lines of an image. An apparatus according to claim 1, wherein said first encoding means (17) and said second encoding means (18) encodes the original image data and the first image data in accordance with an arithmetic coding method. An apparatus according to claim 1, further comprising tag means (25, 26) for adding tags indicating the resolution of an associated image to the first code data and the second code data. An apparatus according to any preceding claim, wherein said input means (11) comprises an image scanning apparatus for scanning an original image with a photoelectric conversion device and for generating the original image data. An apparatus according to claim 2 and any one of claims 3 to 9 when dependent on claim 2, wherein said first delay means (12) and said second delay means (14) comprises a line buffer having a capacity of a few lines of image data. An apparatus according to any preceding claim, further comprising third encoding means (19) for receiving the second image data and encoding the second image data and for outputting third code data, wherein said third encoding means (19) performs the encoding operation on the second image data in parallel with the reduction operation on the first image data by said second reduction means (15). An image encoding method comprising: an input step of inputting original image data (Org) having a first resolution; a first reduction step of converting the resolution of the original image data and generating first image data (r 0 ) having a second resolution, the second resolution being lower than the first resolution; a first encoding step of receiving the original image data (Org) and the first image data (r 0 ) and encoding the original image data by using the first image data, and outputting first code data (b 2 ); a second reduction step of converting the resolution of the first image data (r 0 ) and generating second image data (r 1 ) having a third resolution, the third resolution being lower than the second resolution; and a second encoding step of receiving the first image data (r 0 ) and the second image data (r 1 ) and encoding the first image data by using the second image data, and outputting second code data (b 1 ); characterized in that in said first encoding step, the encoding operation on the original image data is performed in parallel with the reduction operation on the original image data in said first reduction step, in said second reduction step, the reduction operation on the first image data is performed in parallel with the encoding operation on the original image data in said first encoding step, in said second encoding step, the encoding operation on the first image data is performed in parallel with the reduction operation on the first image data in said second reduction step, and by said method comprising a transmitting step of transmitting the first code data (b 2 ) and the second code data (b 1 ), the transmission of the first code data being performed after the transmission of the second code data. A method according to claim 12, further comprising: a first delay step of delaying the original image data input in said input step and supplying the delayed original image data for the reduction operation in said first reduction step and the encoding operation in said first encoding step; and a second delay step of delaying the first image data generated in said first reduction step and supplying the delayed first image data for the reduction operation in said second reduction step and the encoding operation in said second encoding step. A method according to claim 12, wherein in said transmitting step the first code data and the second code data are stored and then transmitted. A method according to claim 14, wherein in said transmitting step the first code data and the second code data are stored in a common buffer memory. A method according to claim 12, wherein in said transmitting step the second code data and the first code data are sequentially transmitted. A method according to claim 12, wherein in said first reduction step and said second reduction step the resolutions of the original image data and the first image data are converted with reference to a plurality of pixels on a plurality of lines of an image. A method according to any one of claims 12 to 17, wherein in said first encoding step and said second encoding step the original image data and the first image data are encoded in accordance with an arithmetic coding method. A method according to any one of claims 12 to 18, further comprising a tagging step of adding tags indicating the resolution of an associated image to the first code data and the second code data. A method according to any one of claims 12 to 19, wherein in said first delay step and said second delay step a few lines of image data is stored and delayed. A method according to any one of claims 12 to 20, further comprising a third encoding step of receiving the second image data and encoding the second image data and outputting third code data, wherein in said third encoding step the encoding operation on the second image data is performed in parallel with the reduction operation on the first image data in said second reduction step. A method according to any one of claims 12 to 21, wherein in said input step an original image is scanned with a photoelectric conversion device for generating the original image data.

Inventors: OSAWA HIDEFUMI, SATO MAMORU, OSAWA, HIDEFUMI, SATO, MAMORU, OSAWA, HIDEFUMI, C/O CANON KABUSHIKI KAISHA, Sato, Mamoru, c/o Canon Kabushiki Kaisha
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1993
Main classification: H04N1
IPC codes: H04N1, H04B14, H03M7