WO2018159105A1 - 画像復号化装置 - Google Patents

画像復号化装置 Download PDF

Info

Publication number
WO2018159105A1
WO2018159105A1 PCT/JP2018/000260 JP2018000260W WO2018159105A1 WO 2018159105 A1 WO2018159105 A1 WO 2018159105A1 JP 2018000260 W JP2018000260 W JP 2018000260W WO 2018159105 A1 WO2018159105 A1 WO 2018159105A1
Authority
WO
WIPO (PCT)
Prior art keywords
code data
unit
data
length code
variable length
Prior art date
Application number
PCT/JP2018/000260
Other languages
English (en)
French (fr)
Inventor
晃一 古谷
真吾 柴田
Original Assignee
株式会社シキノハイテック
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社シキノハイテック filed Critical 株式会社シキノハイテック
Priority to US16/489,237 priority Critical patent/US11251808B2/en
Publication of WO2018159105A1 publication Critical patent/WO2018159105A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only

Definitions

  • the present invention relates to an image decoding apparatus for decoding image data (code data) compressed using a Huffman code.
  • the image encoding device includes a DCT unit, a quantization unit, a zigzag scan unit, and a Huffman encoding unit.
  • the DCT unit divides image data converted from RGB color data into YUV luminance color difference data into 8 ⁇ 8 pixel blocks, and for each of the divided blocks, the image data corresponding to each pixel has a frequency component ( Conversion to DCT (referred to as “Discrete Cosine Transform” coefficient) is performed to generate coefficient data composed of one DC (Direct Current) coefficient and 63 AC (Alternating Current) coefficients.
  • the quantization unit converts each 8 ⁇ 8 coefficient data (numerical value) generated for each block by the DCT unit according to each numerical value corresponding to a previously prepared quantization table (8 ⁇ 8 numerical value). Each of them is divided and quantized. Further, the zigzag scanning unit linearly arranges the 8 ⁇ 8 coefficient data quantized for each block in the quantization unit by scanning zigzag from the DC coefficient to the AC coefficient ( That is, a process of generating 64 coefficient data (one-dimensionally arranged) is performed, and the Huffman encoding unit uses the Huffman code for each piece of coefficient data arranged one-dimensionally by the zigzag scanning unit. A process for generating and outputting encoded data encoded in this manner is performed.
  • FIG. 7 shows a data structure of general code data (JPEG stream) generated by this image encoding device.
  • the code data includes a front marker group composed of various markers, encoded compressed image data, and an EOI (End (Of Image) marker that defines the end of the code data. It has an arranged structure.
  • an SOI Start Of Image
  • DQT Define Quantization Table
  • SOS Start Of Scan
  • the compressed image data represents each coefficient data for each block by a Huffman code obtained by encoding zero-run information and group number information, and a variable-length code having an additional bit representing a coefficient value as a unit.
  • the variable-length code data is continuously connected.
  • the image decoding apparatus 100 includes a Huffman decoding unit 110, an inverse zigzag scanning unit 130, an inverse quantization unit 140, and an IDCT unit 150 (see Patent Document 1 below).
  • the Huffman decoding unit 110 generally includes a code input unit 111, an internal buffer 112, a front marker analysis unit 113, a final marker analysis unit 114, a code analysis unit 115, and a frequency as shown in FIG.
  • the conversion unit 125 is configured.
  • the code input unit 111 performs processing for receiving the code data input from the outside and storing the code data in the internal buffer 112. From the internal buffer 112, a front marker analysis unit 113, a final marker analysis unit 114, and a code analysis unit Code data is transmitted to each of 115.
  • the front marker analysis unit 113 extracts the front marker group included in the code data, transmits the extracted front marker group to the inverse zigzag scanning unit 130, and the final marker analysis unit 114 A process of detecting an EOI marker in the code data transmitted from the buffer 112 and transmitting the detection signal to the inverse zigzag scanning unit 130 is performed.
  • the code analysis unit 115 includes an input control unit 116, a code word detection unit 117, a zero run number / group number recognition unit 118, and an additional bit output unit 119.
  • the input control unit 116 controls the input of code data input from the internal buffer 112. Specifically, the input control unit 116 sequentially inputs the data related to the marker, and the maximum data that can be taken by the variable length code data that is one unit for the variable length code data after the SOS marker. A data amount slightly exceeding the amount is input, and a shift signal corresponding to the bit length of the variable-length code data processed by the codeword detection unit 117, the zero run number / group number recognition unit 118, and the additional bit output unit 119 is input. Transmit to the internal buffer 112.
  • the internal buffer 112 deletes data (processed variable length code data) corresponding to the received shift signal from the beginning of the stored data, and the next variable length code.
  • the data is cued by shifting it to the beginning.
  • the internal buffer 112 has a sufficient storage capacity for storing a plurality of variable-length code data, and deletes the processed variable-length code data to find the next variable-length code data. Then, subsequent code data is sequentially input from the outside to the internal buffer 112 under the control of the code input unit 111.
  • the codeword detection unit 117 recognizes (detects) a codeword, that is, data related to a Huffman code for each variable-length code data based on a Huffman code table recognized from a DHT marker in the input front marker group. Then, a process of transmitting the recognized Huffman code data and the variable length code data to the zero run number / group number recognition unit 118 is performed.
  • the zero run number / group number recognition unit 118 recognizes the zero run number and group number defined by the Huffman code based on the Huffman code data detected by the codeword detection unit 117, and recognizes the recognized zero run number and group number.
  • the variable length code data is output to the additional bit output unit 119.
  • the additional bit output unit 119 recognizes the additional bit length corresponding to the group number based on the data related to the group number received from the zero run number / group number recognition unit 118, and from the input variable length code data.
  • the data corresponding to the additional bit length after the Huffman code data is recognized as an additional bit, and the data related to the zero run number and the data related to the recognized additional bit are output to the frequency converter 125.
  • the additional bit output unit 119 outputs a signal related to the bit length of the processed variable length code data, that is, the bit length obtained by adding the additional bit length to the bit length of the Huffman code detected by the codeword detection unit 117.
  • the input control unit 116 transmits the shift signal corresponding to the bit length of the variable-length code data to the internal buffer 112 as described above.
  • the frequency conversion unit 125 generates quantized coefficient data (DCT coefficient data) in a one-dimensional array for each block based on the data relating to the number of zero runs transmitted from the code analysis unit 115 and the additional bits. The data is restored and transmitted to the reverse zigzag scanning unit 130.
  • DCT coefficient data quantized coefficient data
  • the marker information of the front marker group included in the code data is analyzed by the marker analysis unit 113 and transmitted to the inverse zigzag scanning unit 130, and then the code analysis unit 115 and the frequency conversion unit 125 restore the one-dimensional array coefficient data from the compressed image data for each block and transmit it to the inverse zigzag scanning unit 130, which processes all the code data and the EOI marker as the final marker analysis
  • the marker information of the EOI marker is transmitted from the final marker analysis unit 114 to the inverse zigzag scanning unit 130.
  • the inverse zigzag scanning unit 130 performs an inverse process on the coefficient data decoded by the Huffman decoding unit 110 to the above zigzag scanning, thereby converting the coefficient data of the one-dimensional array into an 8 ⁇ 8 two-dimensional array. Performs processing for conversion into array coefficient data.
  • the inverse quantization unit 140 outputs the 8 ⁇ 8 coefficient data output from the inverse zigzag scanning unit 130 and transmits the coefficient data defined by the DQT marker that is also transmitted from the inverse zigzag scanning unit 130.
  • the IDCT (Inverse Discrete Cosine Transform) unit 150 performs a process of converting into coefficient data before quantization by multiplying each corresponding numerical value in the quantization table.
  • the coefficient data converted by the inverse quantization unit 140 Is converted into 8 ⁇ 8 pixel YUV luminance color difference data, and the YUV luminance color difference data is finally converted into RGB color data.
  • the Huffman codes for defining the number of zero runs and the group number have 12 group numbers of 0 to B for DC coefficients and zero run numbers of 0 to F for AC coefficients.
  • the combination of 16 pieces and 10 pieces of group numbers 1 to A plus the combination of zero run number 0 and group number 0, and zero run number F and group number 0 is 162, for a total of 174 pieces Necessary.
  • the codeword detection unit 117 of the conventional image decoding apparatus 100 described above detects the Huffman code data from the variable length code data, there are 174 data groups positioned sequentially from the beginning of the variable length code data.
  • a match detection process for sequentially comparing the Huffman code data and detecting a data group that matches the Huffman code data is repeatedly executed 174 times.
  • the appearance frequency of Huffman codes obtained by encoding coefficient data in units of 8 ⁇ 8 pixel blocks is equal to all Huffman codes.
  • the frequency of appearance of a plurality of Huffman codes is high.
  • the matching detection process is performed for a Huffman code having a high appearance frequency
  • the Huffman code data in the variable-length code data can be detected with a very high probability with a short detection processing time.
  • the processing in the code analysis unit 115 of the Huffman decoding unit 110 needs to be realized within one clock, but the processing in the code analysis unit 115 Can be executed within one clock with a sufficient margin. Therefore, also in this sense, conventionally, the processing time in the code analysis unit 115 can be shortened.
  • the present invention has been made in view of the above circumstances, and provides an image decoding apparatus capable of reducing the decoding time as a whole by reducing the processing time in the Huffman decoding unit. For that purpose
  • the present invention for solving the above problems is as follows.
  • Compressed image data compressed by Huffman encoding processing having a structure in which Huffman code obtained by encoding zero-run information and group number information, and variable-length code data in units of additional bits following this are continuously connected
  • a Huffman decoding unit for decoding the compressed image data The Huffman decoding unit analyzes the variable length code data sequentially input, and sequentially recognizes and outputs zero run information and group number information related to the variable length code data, and the code analysis unit.
  • an image decoding device configured to include a frequency conversion unit that sequentially generates and outputs coefficient information
  • the code analysis unit includes: An input control unit for collectively inputting a plurality of variable length code data; The first variable length code data that has been input is processed without any restrictions, and the zero run information, group number information, and additional bit information are recognized, and the recognized zero run information and additional bit information are output to the frequency converter.
  • a primary analysis processing unit One or more variable length code data subsequent to the variable length code data processed by the primary analysis processing unit is processed, and when the variable length code data is variable length code data to be processed in advance, the variable length code data
  • the zero-run information, group number information and additional bit information related to the long code data are recognized, and the recognized zero-run information and additional bit information are output to the frequency conversion unit, while the variable-length code data is a variable to be processed. If it is not long code data, a process for discarding the data after the variable length code data is performed, and then a signal for inputting the data after the variable length code data for which the recognition process has been completed is sent to the input control unit.
  • the present invention relates to an image decoding apparatus including a continuous analysis processing unit for transmission.
  • variable-length code data is collectively input by the input control unit.
  • the first input variable-length code data is The zero run information, the group number information, and the additional bit information are recognized without being restricted, and the recognized zero run information and additional bit information are output to the frequency converter.
  • the primary analysis processing unit inputs the total of 174 Huffman codes including the 12 Huffman codes set for the DC coefficient data and the 162 Huffman codes set for the AC coefficient.
  • the Huffman code (code word) existing in the variable length code data is recognized by detecting which Huffman code matches the code data existing in the first variable length code data.
  • the primary analysis processing unit recognizes the number of zero runs and the group number (only the group number in the case of a DC coefficient) corresponding to the recognized Huffman code and adds the bit length from the recognized group number. Is recognized from this additional bit length, and each piece of information related to the recognized number of zero runs and additional bits is output to the frequency converter.
  • variable length code data subsequent to the variable length code data processed by the primary analysis processing unit is processed by the continuous analysis processing unit, and the variable length code data is processed in a predetermined variable length.
  • code data zero-run information, group number information and additional bit information related to the variable-length code data are sequentially recognized, and the recognized zero-run information and additional bit information are output to the frequency conversion unit. If the long code data is not the variable length code data to be processed, the data after the variable length code data is discarded.
  • the continuation analysis processing unit After executing these processes, the continuation analysis processing unit performs a process of transmitting a signal for inputting data after the variable length code data for which the recognition process has been completed to the input control unit.
  • variable-length code data to be processed in this continuous analysis processing unit is set empirically in advance.
  • the appearance frequency of Huffman codes obtained by coding coefficient data in units of 8 ⁇ 8 pixel blocks is not uniform in all Huffman codes, or The appearance frequency of a plurality of Huffman codes is high.
  • variable-length code data that is likely to be processed in the continuous analysis processing unit is variable-length code data related to the Huffman code having a high appearance frequency as described above. Therefore, the continuous analysis processing unit processes only the Huffman codes selected from those having a high appearance frequency, that is, variable length code data related to zero run information and group number information.
  • variable length code data if variable length code data is all processed, it is necessary to perform 174 matching detection processes in order to detect the Huffman code, but the processing target is related to a Huffman code having a specific appearance frequency.
  • variable-length code data By focusing on variable-length code data, the time required for the coincidence detection process for detecting the Huffman code can be shortened, and the time required for the process can be shortened without causing waste in the process. Can do.
  • variable-length code data that is not a processing target in the continuous analysis processing unit is processed again in the primary analysis processing unit again, so as to ensure that the compressed image data is reliably decoded,
  • the processing time can be shortened.
  • the input processing by the input control unit, the primary analysis processing unit, and the continuous analysis processing unit are repeatedly executed until the processing of a batch of compressed image data is completed.
  • coefficient information is sequentially generated based on the zero-run information and additional bit information sequentially output from the code analysis unit.
  • the continuous analysis processing unit is configured to sequentially process a plurality of variable length code data, and the variable length code data to be processed is limited as the subsequent variable length code data.
  • the variable-length code data to be processed may be configured to be gradually reduced in stages.
  • the image decoding apparatus is generally composed of an electronic circuit. In this case, a series of processes of an input control unit, a primary analysis processing unit, and a continuous analysis processing unit constituting the code analysis unit are performed within one clock. Although it is necessary to complete, if the time required for the coincidence detection processing in the continuous analysis processing unit is gradually shortened, the number of variable length code data that can be processed within one clock can be increased, and the processing time can be shortened. Can be planned.
  • the processing target in the continuous analysis processing unit, can be narrowed down to variable-length code data related to a specific high-frequency Huffman code.
  • the time can be shortened, and the time required for the processing can be shortened without causing waste of processing.
  • variable-length code data that is not a processing target in the continuous analysis processing unit is reliably processed again in the primary analysis processing unit, so that the compressed image data is reliably decoded while ensuring that The processing time can be shortened.
  • FIG. 1 is a block diagram showing a schematic configuration of an image decoding apparatus according to the present embodiment.
  • the image decoding apparatus 1 of the present example is different from the conventional image decoding apparatus 100 shown in FIG. 8 only in the configuration of the Huffman decoding unit 10, and an inverse zigzag scan.
  • the unit 130, the inverse quantization unit 140, and the IDCT unit 150 have the same configuration as that of the conventional image decoding device 100. Therefore, in FIG. 1, the same components are denoted by the same reference numerals, and detailed description thereof is omitted below.
  • the code data (JPEG stream) handled in this example has a data structure similar to that of the code data shown in FIG.
  • the Huffman decoding unit 10 of this example includes a code input unit 111, an internal buffer 112, a front marker analysis unit 113, a final marker analysis unit 114, a code analysis unit 20, and a frequency conversion unit 125.
  • the code input unit 111, the internal buffer 112, the front marker analysis unit 113, the final marker analysis unit 114, and the frequency conversion unit 125 are the same as those in the conventional image decoding device 100.
  • the same reference numerals are assigned and detailed description thereof is omitted.
  • the image decoding device 1 of this example is realized by hardware such as an electronic device provided with an appropriate electronic circuit for executing each process.
  • it can be realized by a general-purpose computer including a CPU, a ROM, a RAM, and the like.
  • the code input unit 111, the front marker analysis unit 113, the final marker analysis unit 114, the code analysis unit 20 and the frequency conversion unit 125, the zigzag scan unit 130, the inverse quantization unit 140, and the IDCT unit 150 Each function is realized by a computer program.
  • the code analysis unit 20 includes an input control unit 21, a primary analysis processing unit 31, a secondary analysis processing unit 41, a tertiary analysis processing unit 51, and a quaternary analysis processing unit 61.
  • the secondary analysis processing unit 41, the tertiary analysis processing unit 51, and the quaternary analysis processing unit 61 constitute a continuous analysis processing unit.
  • the input control unit 21 controls the input of code data input from the internal buffer 112. Specifically, the input control unit 21 sequentially inputs the data related to the marker, and the maximum data that can be taken by the variable length code data that is one unit for the variable length code data after the SOS marker. In consideration of the amount, the amount of data including at least four variable length code data is input.
  • the shift signal corresponding to the bit length of the variable-length code data processed by the primary analysis processing unit 31, the secondary analysis processing unit 41, the tertiary analysis processing unit 51, and the quaternary analysis processing unit 61 is sent to the internal buffer. 112.
  • the primary analysis processing unit 31 includes a codeword detection unit 32, a zero-run number / group number recognition unit 33, and an additional bit output unit 34.
  • the secondary analysis processing unit 41 includes a codeword detection unit 42, It consists of a zero run number / group number recognition unit 43 and an additional bit output unit 44.
  • the tertiary analysis processing unit 51 includes a code word detection unit 52, a zero run number / group number recognition unit 53, and an additional bit output unit 54.
  • the fourth analysis processing unit 61 includes a code word detection unit 62, It comprises a zero run number / group number recognition unit 63 and an additional bit output unit 64. Each part will be described below.
  • the codeword detection unit 32 based on the Huffman code table recognized from the DHT marker in the code data, for the input first variable length code data, data related to the Huffman code (codeword) (hereinafter, (“Huffman code data”) is detected.
  • the codeword detection unit 32 has 12 group numbers with respect to DC coefficients of 0 to B, 16 zero run numbers with respect to AC coefficients of 0 to F, and group numbers of 1 to A. 174 Huffman codes in total (combinations of 10 combinations of the above) plus a combination of zero run number 0, group number 0, and zero run number F, group number 0 are detected (recognized). ) Process is executed to recognize the Huffman code data present in the first variable length code data.
  • the codeword detection unit 32 transmits the detected Huffman code data and the plurality of input variable length code data to the zero run number / group number recognition unit 33.
  • the zero run number / group number recognition unit 33 recognizes the zero run number and the group number corresponding to the Huffman code data transmitted from the codeword detection unit 32, and then adds the bit length corresponding to the recognized group number. And the data related to the recognized zero-run number, the group number and the additional bit length, the data related to the bit length of the Huffman code transmitted from the codeword detection unit 32, and the plurality of variable length code data to the additional bit output unit The process which transmits to 34 is performed.
  • the additional bit output unit 34 converts the first variable length code data from the first variable length code data to the additional bit length based on the data related to the bit length of the Huffman code and the additional bit length transmitted from the zero run number / group number recognition unit 33. Data related to the corresponding additional bits is extracted.
  • the additional bit output unit 34 transmits the data related to the zero run number transmitted from the zero run number / group number recognition unit 33 and the data related to the extracted additional bits to the frequency conversion unit 125 and the first A process of transmitting data relating to the bit length of the variable-length code data and the second and subsequent variable-length code data from which the first variable-length code data is deleted to the codeword detection unit 42 is performed.
  • the codeword detection unit 42 determines whether the second variable length code data of the second and subsequent variable length code data transmitted from the additional bit output unit 34 is Huffman code data. Perform detection processing.
  • the codeword detection unit 42 performs grouping with a zero run number for the AC coefficient of 0, a group number of 0 to 7, a zero run number of 1, a group number of 1 to 3, and a zero run number of 2.
  • the matching detection processing is executed for 19 Huffman codes with a total of 19 and the group number 1, and the Huffman code data existing in the second variable length code data is recognized.
  • the codeword detection unit 42 converts the Huffman code data and the input second and subsequent variable length code data into the zero run number / It transmits to the group number recognition part 43.
  • the data related to the bit length of the first variable length code data transmitted from the additional bit output unit 34 is input to the input control unit. 21 and a process of discarding all input data. Thereby, the subsequent processing is stopped.
  • the input control unit 21 When the input control unit 21 receives data related to the bit length of the first variable length code data, the input control unit 21 transmits a signal related to the received bit length to the internal buffer 112 as a shift signal.
  • the next variable length code data is cued by deleting the data (bit variable length code data) corresponding to the received shift signal from the head of the stored data.
  • the zero run number / group number recognition unit 43 recognizes the zero run number and group number corresponding to the Huffman code data transmitted from the codeword detection unit 42, and then adds the bit length corresponding to the recognized group number. And the data related to the recognized zero run number, the group number and the additional bit length, the data related to the bit length of the Huffman code transmitted from the codeword detection 42, and the second and subsequent variable length code data are output as the additional bits. To the unit 44.
  • the additional bit output unit 44 converts the second variable length code data from the second variable length code data to the additional bit length based on the data relating to the bit length of the Huffman code and the additional bit length transmitted from the zero run number / group number recognition unit 43. Data related to the corresponding additional bits is extracted.
  • the additional bit output unit 44 transmits the data related to the zero run number transmitted from the zero run number / group number recognizing unit 43 and the data related to the extracted additional bits to the frequency conversion unit 125, and the first and Data relating to the total bit length of the second variable length code data and the third and subsequent variable length code data from which the second variable length code data has been deleted are transmitted to the codeword detection unit 52.
  • the codeword detection unit 52 determines the Huffman code data of the third variable length code data among the third and subsequent variable length code data transmitted from the additional bit output unit 44. Perform detection processing.
  • the codeword detection unit 52 performs grouping with a zero run number for the AC coefficient of 0, a group number of 0-7, a zero run number of 1, a group number of 1-2, and a zero run number of 2.
  • the coincidence detection process is executed for 13 types of Huffman codes in which the number is 1, the number of zero runs is 3, the group number is 1, the number of zero runs is 4, and the group number is 1, and there is present in the third variable length code data. Recognizes Huffman code data.
  • the codeword detection unit 52 converts the Huffman code data and the input third and subsequent variable length code data into the zero run number / It transmits to the group number recognition part 53.
  • the codeword detection unit 52 converts the Huffman code data and the input third and subsequent variable length code data into the zero run number / It transmits to the group number recognition part 53.
  • data relating to the total bit length of the first and second variable length code data transmitted from the additional bit output unit 44 is obtained. While transmitting to the said input control part 21, the process which discards all the input data is performed. Thereby, the subsequent processing is stopped.
  • the input control unit 21 When the input control unit 21 receives data related to the total bit length of the first and second variable length code data, the input control unit 21 transmits a signal related to the received bit length to the internal buffer 112 as a shift signal. In the buffer 112, the next variable length code data is cued by deleting the data of the bit length corresponding to the received shift signal from the head of the stored data.
  • the zero run number / group number recognition unit 53 recognizes the zero run number and group number corresponding to the zero run number and group number from the Huffman code data transmitted from the codeword detection unit 52, and then adds the number corresponding to the recognized group number. Recognizes the bit length, adds the data related to the recognized number of zero runs, the group number and the additional bit length, the data related to the bit length of the Huffman code transmitted from the codeword detection 52, and the third and subsequent variable length code data. It transmits to the bit output part 54.
  • the additional bit output unit 54 adds the third variable length code data from the third variable length code data based on the data related to the bit length of the Huffman code and the data related to the additional bit length transmitted from the zero run number / group number recognition unit 53. Data related to additional bits corresponding to the bit length is extracted.
  • the additional bit output unit 54 transmits the data related to the zero run number transmitted from the zero run number / group number recognizing unit 53 and the data related to the extracted additional bits to the frequency converting unit 125 and the first to Data relating to the total bit length of each third variable-length code data and the fourth and subsequent variable-length code data from which the third variable-length code data has been deleted are transmitted to the codeword detection unit 62.
  • the codeword detection unit 62 determines the Huffman code data of the fourth variable length code data among the fourth and subsequent variable length code data transmitted from the additional bit output unit 64. Perform detection processing.
  • the codeword detection unit 62 performs grouping with a zero run number for the AC coefficient of 0, a group number of 0 to 7, a zero run number of 1, a group number of 1 to 2, a zero run number of 2
  • the coincidence detection process is executed for 11 types of Huffman codes in total of 1, and Huffman code data existing in the fourth variable length code data is recognized.
  • the codeword detection unit 62 converts the Huffman code data and the input fourth and subsequent variable length code data into the zero run number / It transmits to the group number recognition part 63.
  • the codeword detection unit 62 converts the Huffman code data and the input fourth and subsequent variable length code data into the zero run number / It transmits to the group number recognition part 63.
  • data relating to the total bit length of the first to third variable length code data transmitted from the additional bit output unit 54 is obtained. While transmitting to the said input control part 21, the process which discards all the input data is performed. Thereby, the subsequent processing is stopped.
  • the input control unit 21 When receiving the data related to the total bit length of the first to third variable length code data, the input control unit 21 transmits the received bit length signal to the internal buffer 112 as a shift signal, and In the buffer 112, the next variable length code data is cued by deleting the data of the bit length corresponding to the received shift signal from the head of the stored data.
  • the zero run number / group number recognizing unit 63 recognizes the zero run number and the group number corresponding thereto from the Huffman code data transmitted from the code word detecting unit 62, and then adds the number corresponding to the recognized group number. Recognizes the bit length, adds the data related to the recognized zero-run number, the group number and the additional bit length, the data related to the bit length of the Huffman code transmitted from the codeword detection 62, and the fourth and subsequent variable length code data. Transmit to the bit output unit 64.
  • the additional bit output unit 64 adds the additional variable length code data from the fourth variable length code data based on the data related to the bit length of the Huffman code and the data related to the additional bit length transmitted from the zero run number / group number recognition unit 43. Data related to additional bits corresponding to the bit length is extracted. Then, the additional bit output unit 64 transmits the data related to the zero run number transmitted from the zero run number / group number recognition unit 63 and the data related to the extracted additional bits to the frequency conversion unit 125 to transmit the first to fourth data Data relating to the total bit length of the second variable length code data is transmitted to the input control unit 21 and a process of discarding all input data is performed.
  • FIG. 5 shows the number of zero runs and group numbers related to AC coefficients that appear when image data is compressed at a general compression rate of 20%, in other words, the appearance frequency of Huffman codes.
  • the appearance frequency of the number of zero runs and the group number is not uniform in all combinations, and the appearance frequency of the number of zero runs and the group number relating to a plurality of combinations is high.
  • the appearance frequency is high for the group numbers 0 to 7, and when the number of zero runs is 1, the group number is 1
  • the appearance frequency is high for 3 and the number of zero runs is 2 and 3
  • the appearance frequency is high for the group numbers 1 and 2, respectively, and when the number of zero runs is 4, 5, 6, and 7, the group numbers are respectively Appearance frequency is high for 1.
  • variable-length code data that is likely to be processed in the secondary analysis processing unit 41, the tertiary analysis processing unit 51, and the quaternary analysis processing unit 61 is related to the Huffman code having a high appearance frequency as described above.
  • Variable length code data Therefore, the secondary analysis processing unit 41, the third analysis processing unit 51, and the fourth analysis processing unit 61 select Huffman codes selected from those having a high appearance frequency, that is, variable lengths related to zero-run information and group number information. Only code data was processed.
  • variable length code data if variable length code data is all processed, it is necessary to perform 174 matching detection processes in order to detect the Huffman code, but the processing target is related to a Huffman code having a specific appearance frequency.
  • the processing target is related to a Huffman code having a specific appearance frequency.
  • the secondary analysis processing unit 41 sets the variable length code data related to 19 types of Huffman code data as a processing target, and the tertiary analysis processing unit 51 sets the variable length code data related to 13 types of Huffman code data as a processing target.
  • variable-length code data related to 11 types of Huffman code data is a processing target, and the processing targets are gradually narrowed down step by step, so the secondary analysis processing unit 41 to the fourth-order analysis processing unit. 61, the processing time is gradually shortened. Since the image decoding apparatus 1 of this example is generally composed of an electronic circuit, in this case, the processing from the input control unit 21 to the additional bit output unit 64 of the code analysis unit 20 is completed within one clock. There is a need to. Therefore, if the processing time is gradually shortened, the number of variable length code data that can be processed within one clock can be increased, and the processing time can be shortened.
  • variable length code data that is not processed in the secondary analysis processing unit 41 to the fourth analysis processing unit 61 is reliably processed again in the primary analysis processing unit 31, so that the compressed image data is processed.
  • the processing time can be shortened while ensuring that decoding is performed reliably.
  • code data is input from the internal buffer 112 under the control of the input control unit 21, and variable-length code data after the SOS marker is input.
  • an amount of data including at least four variable length code data is input at a time, and the input variable length code data is first transmitted to the primary analysis processing unit 31 for processing.
  • the code word detection unit 32 executes detection processing for 174 Huffman codes with respect to the first variable length code data, and the first variable length code data is included in the first variable length code data.
  • Existing Huffman code data is recognized.
  • the zero run number / group number corresponding to the recognized Huffman code data and the additional bit length corresponding to the group number are recognized by the zero run number / group number recognition unit 33.
  • the additional bit output unit 34 based on the data relating to the additional bit length, data relating to the additional bit corresponding to the additional bit length is extracted from the first variable length code data, and the data relating to the zero run number , And the data related to the extracted additional bits are transmitted from the additional bit output unit 34 to the frequency conversion unit 125, and the second and subsequent variable-length code data is the code word detection unit 42 of the secondary analysis processing unit 41. Sent to.
  • the code word detection unit 42 executes the detection process for the 19 Huffman codes described above for the second variable length code data, and when any of the 19 Huffman code data is detected.
  • the zero run number / group number recognition unit 43 recognizes the zero run number and group number corresponding to the next recognized Huffman code data, and the additional bit length corresponding to the group number.
  • the additional bit output unit 44 based on the data relating to the additional bit length, data relating to the additional bit corresponding to the additional bit length is extracted from the second variable length code data, and the data relating to the zero run number , And the data related to the extracted additional bits are transmitted to the frequency conversion unit 125, and the third and subsequent variable length code data are transmitted to the code word detection unit 52 of the tertiary analysis processing unit 51.
  • variable length code data is cued.
  • the code word detection unit 52 executes the detection process for the 13 Huffman codes described above for the third variable length code data, and when any of the 13 Huffman code data is detected.
  • the zero run number / group number recognition unit 53 recognizes the zero run number and group number corresponding to the next recognized Huffman code data and the additional bit length corresponding to the group number.
  • the additional bit output unit 54 based on the data relating to the additional bit length, data relating to the additional bit corresponding to the additional bit length is extracted from the third variable length code data, and the data relating to the zero run number And the data related to the extracted additional bits are transmitted to the frequency conversion unit 125, and the fourth and subsequent variable-length code data are transmitted to the codeword detection unit 62 of the quaternary analysis processing unit 61.
  • the total bit length of the first and second variable length code data transmitted from the additional bit output unit 44 is set. Such data is transmitted to the input control unit 21 and the subsequent processing is stopped. Then, the input control unit 21 transmits the received signal related to the bit length to the internal buffer 112 as a shift signal, and the internal buffer 112 deletes data corresponding to the received shift signal for the next time.
  • the variable length code data is cued.
  • the detection processing is executed for the 11 Huffman codes described above for the fourth variable length code data, and any one of the 11 Huffman code data is detected.
  • the zero run number / group number recognition unit 63 recognizes the zero run number and group number corresponding to the next recognized Huffman code data, and the additional bit length corresponding to the group number.
  • the additional bit output unit 64 based on the data relating to the additional bit length, data relating to the additional bit corresponding to the additional bit length is extracted from the fourth variable length code data, and the data relating to the zero run number The data relating to the extracted additional bits is transmitted to the frequency converter 125, and the data relating to the total bit length of the first to fourth variable length code data is transmitted to the input controller 21.
  • the total bit length of the first to third variable length code data transmitted from the additional bit output unit 64 is set. Such data is transmitted to the input control unit 21 and the subsequent processing is stopped.
  • the input control unit 21 transmits the received signal related to the bit length to the internal buffer 112 as a shift signal, and the internal buffer 112 deletes data corresponding to the received shift signal for the next time.
  • the variable length code data is cued.
  • the input control unit 21 is processed in the same manner until the processing of the batch of compressed image data is finished. And the primary analysis processing unit 31 to the fourth analysis processing unit 61 are repeatedly executed.
  • the secondary analysis processing unit 41, the tertiary analysis processing unit 51, and the quaternary analysis processing unit 61 are selected from those having a high appearance frequency. Since only Huffman codes, that is, variable length code data related to zero-run information and group number information are processed, detection of Huffman codes in the secondary analysis processing unit 41, the tertiary analysis processing unit 51, and the quaternary analysis processing unit 61 is performed. Processing can be performed in a short time.
  • FIG. 6A shows the processing in the code analysis unit 115 of the conventional image decoding apparatus 100
  • FIG. 6B shows the processing in the code analysis unit 20 of the image decoding apparatus 1 of this example.
  • the code analysis unit 115 of the conventional image decoding apparatus 100 needs to perform 174 matching detection processes in the detection process of the Huffman code data. It took a long time. Therefore, as shown in FIG. 6A, the processing (A) in the codeword detection unit 117, the processing (B) in the zero run number / group number recognition unit 118, the processing (C) in the additional bit output unit 119, and the input Even if the series of processes (D) in the control unit 116 can be processed within one clock, if a considerable remaining time occurs, the series of processes must be executed again within the remaining time. In this case, this remaining time becomes a complete dead time.
  • the primary analysis is performed to perform 174 Huffman code data coincidence detection processes within one clock as in the conventional case.
  • secondary analysis processing to quaternary analysis processing with a processing time much shorter than this, so that it is possible to process four variable length code data within one clock, and
  • the processing in the Huffman decoding unit 10 can be significantly shortened compared to the conventional case.
  • the time of the process A 2 in the code word detection unit 42 of the secondary analysis processing unit 41 is equal to the process A in the code word detection unit 32 of the primary analysis processing unit 31. 1 (equal to the conventional process A) is about 11/100, and the time of the process A 3 in the codeword detection unit 52 of the tertiary analysis processing unit 51 is about 7/100 of the time of the process A 1. Yes, the time of the processing A 4 in the code word detection unit 62 of the quaternary analysis processing unit 61 is about 6/10 of the time of the processing A 1 .
  • variable-length code data to be processed is gradually narrowed down from the secondary analysis processing unit 41 to the quaternary analysis processing unit 61. Since the processing time can be gradually shortened from the secondary analysis processing unit 41 to the fourth analysis processing unit 61, the number of variable length code data that can be processed within one clock can be increased more effectively. Further, the processing time can be shortened.
  • the relationship between the processing times is A 1 > A 2 > A 3 > A 4 .
  • variable length code data that is not processed in the secondary analysis processing unit 41 to the fourth analysis processing unit 61 is reliably processed again in the primary analysis processing unit 31, so that the compressed image data is processed.
  • the processing time can be shortened while ensuring that decoding is performed reliably.
  • the continuation analysis processing unit is composed of the three processing units of the secondary analysis processing unit 41, the tertiary analysis processing unit 51, and the quaternary analysis processing unit 61.
  • the number of units is not limited to this, and it is sufficient that the number of units is composed of one or more analysis processing units. In short, it is sufficient if the target time can be shortened.
  • the narrowing down of processing targets in the continuous analysis processing unit is not limited to the above example, It can be set as appropriate so as to shorten the time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

ハフマン復号化部の符号解析部(20)は、複数の可変長符号データを一括して入力する入力制御部(21)と、1番目の可変長符号データについて処理し、そのゼロラン情報、グループ番号情報及び付加ビット情報を認識して周波数変換部に出力する1次解析処理部(31)と、1番目以降の1以上の可変長符号データを処理する継続解析処理部(41,51,61)とを備える。継続解析処理部(41,51,61)は、予め定めた処理対象の可変長符号データの場合には、そのゼロラン情報、グループ番号情報及び付加ビット情報を認識して周波数変換部に出力し、処理対象の可変長符号データで無い場合には、これ以降のデータを破棄するとともに、認識処理を完了した可変長符号データ以降のデータを入力するための信号を入力制御部(21)に送信する。

Description

画像復号化装置
 本発明は、ハフマン符号を用いて圧縮した画像データ(符号データ)を復号化する画像復号化装置に関する。
 従来より、写真などの画像を取り扱う分野では、通信における負担等の軽減を目的として、原データである画像データをJPEG(Joint Photographic Experts Group)規格に従って圧縮し、符号化する画像符号化装置と、符号化した圧縮画像データを伸長して元の画像に復元する画像復号化装置が用いられている。
 一般的に、前記画像符号化装置は、DCT部、量子化部、ジグザグスキャン部及びハフマン符号化部を備えて構成される。前記DCT部は、RGBの色データからYUVの輝度色差データに変換された画像データを8×8画素のブロックに分割し、分割した各ブロックについて、各画素に対応する画像データをそれぞれ周波数成分(DCT(Discrete Cosine Transform)係数と呼ばれる)に変換して、1個のDC(Direct Current)係数と63個のAC(Alternating Current)係数からなる係数データを生成する処理を行う。
 また、前記量子化部は、前記DCT部によってブロック毎に生成された8×8の各係数データ(数値)を、予め用意された量子化テーブル(8×8の数値)の対応した各数値によりそれぞれ除算して量子化する処理を行う。また、前記ジグザグスキャン部は、前記量子化部において、ブロック毎に量子化された8×8個の係数データを、DC係数からAC係数に亘ってジグザグにスキャンすることにより直線状に並べた(即ち、1次元に配列した)64個の係数データを生成する処理を行い、前記ハフマン符号化部は、前記ジグザグスキャン部によって1次元に配列されたブロック毎の各係数データを、ハフマン符号を用いて符号化した符号データを生成して出力する処理を行う。
 この画像符号化装置によって生成される一般的な符号データ(JPEGストリーム)のデータ構造を図7に示す。図7に示すように、この符号データは、各種マーカから構成される前部マーカ群と、符号化された圧縮画像データと、符号データの末尾を定義するEOI(End Of Image)マーカとを順次配置した構造を有する。
 前記前部マーカ群には、符号データの先頭を定義するSOI(Start Of Image)マーカ、前記量子化テーブルを定義するDQT(Define Quantization Table)マーカ、フレームの開始を定義するとともに画像サイズを定義するSOF(Start Of Frame)マーカ、ハフマン符号テーブルを定義するDHT(Define Huffman Table)マーカ、及び以降に圧縮画像データが存在することを定義するSOS(Start Of Scan)マーカが含まれる。
 また、圧縮画像データは、前記ブロック毎の各係数データを、ゼロラン情報及びグループ番号情報を符号化したハフマン符号、並びにこれに続く係数値を表す付加ビットを一単位とする可変長符号によって表したものであり、この可変長符号データが連続的に繋がった構造を有する。
 一方、図8に示すように、画像復号化装置100は、ハフマン復号化部110、逆ジグザグスキャン部130、逆量子化部140及びIDCT部150から構成される(下記特許文献1参照)。そして、前記ハフマン復号化部110は、一般的には、図9に示すように、符号入力部111、内部バッファ112、前部マーカ解析部113、最終マーカ解析部114、符号解析部115及び周波数変換部125から構成される。
 前記符号入力部111は、外部から入力される前記符号データを受信して前記内部バッファ112に格納する処理を行い、内部バッファ112から前部マーカ解析部113、最終マーカ解析部114及び符号解析部115にそれぞれ符号データが送信される。そして、前部マーカ解析部113は、符号データに含まれる前部マーカ群を抽出し、抽出した前部マーカ群を前記逆ジグザグスキャン部130に送信し、前記最終マーカ解析部114は、前記内部バッファ112から送信される符号データ中のEOIマーカを検出して、その検出信号を前記逆ジグザグスキャン部130に送信する処理を行う。
 前記符号解析部115は、図10に示すように、入力制御部116、符号語検出部117、ゼロラン数/グループ番号認識部118及び付加ビット出力部119から構成される。
 前記入力制御部116は、前記内部バッファ112から入力する符号データの当該入力を制御する。具体的には、入力制御部116は、前記マーカに係るデータについては、順次これを入力し、SOSマーカ以降の可変長符号データについては、1単位である可変長符号データが採り得る最大のデータ量を少し超えるデータ量を入力し、また、前記符号語検出部117、ゼロラン数/グループ番号認識部118及び付加ビット出力部119で処理された可変長符号データのビット長に応じたシフト信号を前記内部バッファ112に送信する。
 これにより、前記内部バッファ112では、記憶したデータの内、その先頭から、受信したシフト信号に応じたビット長分のデータ(処理済みの可変長符号データ)を削除して、次の可変長符号データを先頭側にシフトすることでその頭出しを行う。尚、内部バッファ112は複数の可変長符号データを記憶することができる十分な記憶容量を有しており、処理済みの可変長符号データを削除して、次の可変長符号データの頭出しを行うと、内部バッファ112には、後続の符号データが前記符号入力部111の制御の下で、順次外部から入力される。
 前記符号語検出部117は、入力される前部マーカ群の内、DHTマーカから認識されるハフマン符号テーブルに基づき、各可変長符号データについて、符号語、即ちハフマン符号に係るデータを認識(検出)して、認識したハフマン符号データ及び当該可変長符号データを前記ゼロラン数/グループ番号認識部118に送信する処理を行う。
 前記ゼロラン数/グループ番号認識部118は、符号語検出部117によって検出されたハフマン符号データを基に、当該ハフマン符号によって定義されたゼロラン数及びグループ番号を認識し、認識したゼロラン数及びグループ番号、並びに当該可変長符号データを前記付加ビット出力部119に出力する。
 前記付加ビット出力部119は、前記ゼロラン数/グループ番号認識部118から受信したグループ番号に係るデータを基に、当該グループ番号に対応した付加ビット長を認識し、入力された可変長符号データからハフマン符号データ以降の、当該付加ビット長に対応したデータを付加ビットとして認識し、前記ゼロラン数に係るデータ、及び認識した付加ビットに係るデータを前記周波数変換部125に出力する処理を行う。
 また、付加ビット出力部119は、処理した可変長符号データのビット長、即ち、前記符号語検出部117によって検出されたハフマン符号のビット長に付加ビット長を加えたビット長に係る信号を前記入力制御部116に送信し、入力制御部116は、上述したように、可変長符号データのビット長に応じたシフト信号を前記内部バッファ112に送信する。
 また、前記周波数変換部125では、前記符号解析部115から送信されるゼロラン数に係るデータ及び付加ビットを基に、ブロック毎に、1次元配列の量子化された係数データ(DCT係数データ)を復元して、前記逆ジグザグスキャン部130に送信する。
 斯くして、このハフマン復号化部110では、符号データ中に含まれる前部マーカ群のマーカ情報が前記マーカ解析部113により解析されて前記逆ジグザグスキャン部130に送信され、ついで、符号解析部115及び周波数変換部125により、圧縮画像データから1次元配列の係数データがブロック毎に復元されて前記逆ジグザグスキャン部130に送信され、全ての符号データが処理されてEOIマーカが前記最終マーカ解析部114によって検出されると、EOIマーカのマーカ情報が最終マーカ解析部114から前記逆ジグザグスキャン部130に送信される。
 また、前記逆ジグザグスキャン部130は、前記ハフマン復号化部110により復号された係数データに対して上記ジグザグスキャンとは逆処理を行うことによって、1次元配列の係数データを8×8の2次元配列の係数データに変換する処理を行う。そして、前記逆量子化部140は、前記逆ジグザグスキャン部130から出力され、送信される8×8の各係数データを、同じく前記逆ジグザグスキャン部130から送信されるDQTマーカによって定義される量子化テーブルの対応した各数値でそれぞれ乗算することによって量子化前の係数データに変換する処理を行い、前記IDCT(Inverse Discrete Cosine Transform)部150は、前記逆量子化部140によって変換された係数データを8×8画素のYUV輝度色差データに変換する処理を行い、このYUV輝度色差データは最終的にRGB色データに変換される。
特開平7-99579号公報
 ところで、図11に示すように、ゼロラン数及びグループ番号を定義するためのハフマン符号は、DC係数については、グループ番号が0~Bの12個、AC係数については、ゼロラン数が0~Fの16個とグループ番号が1~Aの10個との組み合わせに、ゼロラン数が0でグループ番号が0、及びゼロラン数がFでグループ番号が0の組み合わせを加えて162個、合計で174個が必要となる。
 したがって、上述した従来の画像復号化装置100の前記符号語検出部117では、可変長符号データからハフマン符号データを検出する際に、可変長符号データの先頭から順に位置するデータ群と174通りのハフマン符号データとを順次比較して、ハフマン符号データと一致したデータ群を検出する一致検出処理を174回繰り返して実行するようにしていた。
 ところが、本発明者等の知見によると、一般的な圧縮率で画像データを圧縮した場合に、8×8画素のブロック単位で係数データを符号化したハフマン符号の出現頻度は、全てのハフマン符号において均等ではなく、或る複数のハフマン符号の出現頻度が高いものとなっている。
 したがって、所定の出現頻度の高いハフマン符号について、前記一致検出処理を行えば、短い検出処理時間により、しかもかなりの高い確率で、可変長符号データ中のハフマン符号データを検出することができ、このような処理を採用することで、前記符号語検出部116における処理時間の短縮化を図ることができる。
 また、前記画像復号化装置100を電子回路によって実現する場合、前記ハフマン復号化部110の符号解析部115における処理は、1クロック内で実現される必要があるが、前記符号解析部115における処理は、十分余裕をもって1クロック内で実行可能であった。したがって、この意味においても、従来、前記符号解析部115における処理時間の短縮化が可能であった。
 本発明は、以上の実情に鑑みなされたものであって、ハフマン復号化部における処理時間の短縮化を図ることで、全体としての復号時間を短縮することができる画像復号化装置の提供を、その目的とする
 上記課題を解決するための本発明は、
 ハフマン符号化処理により圧縮された圧縮画像データであって、ゼロラン情報及びグループ番号情報を符号化したハフマン符号、並びにこれに続く付加ビットを単位とする可変長符号データが連続的に繋がった構造の圧縮画像データを復号化するハフマン復号化部を備え、
 前記ハフマン復号化部は、順次入力される前記可変長符号データを解析し、該可変長符号データに係るゼロラン情報及びグループ番号情報を順次認識して出力する符号解析部と、前記符号解析部から順次出力される前記ゼロラン情報及びグループ番号情報を基に、係数情報を順次生成して出力する周波数変換部とを備えて構成される画像復号化装置において、
 前記符号解析部は、
 複数の可変長符号データを一括して入力する入力制御部と、
 入力された最初の可変長符号データについて制限を加えることなく処理して、そのゼロラン情報、グループ番号情報及び付加ビット情報を認識し、認識したゼロラン情報及び付加ビット情報を前記周波数変換部に出力する1次解析処理部と、
 前記1次解析処理部によって処理された可変長符号データに続く1以上の可変長符号データを処理し、該可変長符号データが予め定めた処理対象の可変長符号データの場合には、当該可変長符号データに係るゼロラン情報、グループ番号情報及び付加ビット情報を認識し、認識したゼロラン情報及び付加ビット情報を前記周波数変換部に出力する処理を行う一方、該可変長符号データが処理対象の可変長符号データで無い場合には、該可変長符号データ以降のデータを破棄する処理を行い、ついで、認識処理を完了した可変長符号データ以降のデータを入力するための信号を前記入力制御部に送信する継続解析処理部とを備えた画像復号化装置に係る。
 この画像復号化装置によれば、前記入力制御部により、複数の可変長符号データが一括して入力され、まず、入力された最初の可変長符号データについて、前記1次解析処理部において、特に制限を加えることなく処理されて、そのゼロラン情報、グループ番号情報及び付加ビット情報が認識され、認識されたゼロラン情報及び付加ビット情報が前記周波数変換部に出力される。
 具体的には、前記1次解析処理部は、上述したDC係数データについて設定される12通りのハフマン符号、及びAC係数について設定される162通りのハフマン符号の合計174通りのハフマン符号について、入力された最初の可変長符号データ中に存在する符号データが、どのハフマン符号に一致するかを検出して、当該可変長符号データ中に存在するハフマン符号(符号語)を認識する。
 そして、1次解析処理部は、認識されたハフマン符号から、これに対応したゼロラン数及びグループ番号(DC係数の場合にはグループ番号のみ)を認識するとともに、認識されたクループ番号から付加ビット長を認識した後、この付加ビット長から当該可変長符号データ中の付加ビットを認識し、認識されたゼロラン数及び付加ビットに係る各情報を前記周波数変換部に出力する。
 次に、継続解析処理部により、前記1次解析処理部によって処理された可変長符号データに続く1以上の可変長符号データが処理され、可変長符号データが予め定められた処理対象の可変長符号データの場合には、当該可変長符号データに係るゼロラン情報、グループ番号情報及び付加ビット情報が順次認識され、認識されたゼロラン情報及び付加ビット情報が前記周波数変換部に出力され、一方、可変長符号データが処理対象の可変長符号データで無い場合には、当該可変長符号データ以降のデータが破棄される。
 そして、これらの処理を実行した後、継続解析処理部は、認識処理を完了した可変長符号データ以降のデータを入力するための信号を、前記入力制御部に送信する処理を行う。
 ここで、この継続解析処理部において処理対象となる可変長符号データは、予め経験的に設定される。上述したように、一般的な圧縮率で画像データを圧縮した場合に、8×8画素のブロック単位で係数データを符号化したハフマン符号の出現頻度は、全てのハフマン符号において均等ではなく、或る複数のハフマン符号の出現頻度が高いものとなっている。
 したがって、継続解析処理部において処理対象となる可能性が高い可変長符号データは、上記のような出現頻度の高いハフマン符号に係る可変長符号データである。そこで、この継続解析処理部では、このような出現頻度の高いものから選定されたハフマン符号、即ちゼロラン情報及びグループ番号情報に係る可変長符号データのみを処理するようにした。
 このようにすることで、可変長符号データ中に存在するハフマン符号の検出処理を短時間で行うことができる。即ち、上述したように全て可変長符号データを処理対象にすると、ハフマン符号を検出するために174通りの一致検出処理を行う必要があるが、処理対象を特定の出現頻度の高いハフマン符号に係る可変長符号データに絞ることで、ハフマン符号を検出するための一致検出処理に係る時間を短縮することができ、処理に無駄を生じさせることなく、当該処理のために必要な時間を短縮することができる。
 また、当該継続解析処理部における処理対象ではない可変長符号データについては、再度、1次解析処理部において確実に処理されるので、当該圧縮画像データを確実に復号化することを担保しつつ、その処理時間の短縮化を図ることができる。
 以後上記と同様にして、一纏まりの圧縮画像データの処理を終えるまで、前記入力制御部による入力処理、前記1次解析処理部及び継続解析処理部による処理が繰り返して実行される。
 そして、前記周波数変換部では、前記符号解析部から順次出力される前記ゼロラン情報及び付加ビット情報を基に係数情報が順次生成される。
 尚、本発明における前記継続解析処理部は、複数の可変長符号データを順次処理するように構成されるとともに、後続の可変長符号データほど、前記処理対象の可変長符号データが制限されるように、言い換えれば、処理対象の可変長符号データを徐々に段階的に絞るように構成されていても良い。
 前記画像復号化装置は一般的に電子回路から構成され、この場合には、前記符号解析部を構成する入力制御部、1次解析処理部及び継続解析処理部の一連の処理を1クロック内で完了する必要があるが、継続解析処理部における前記一致検出処理に要する時間を徐々に短くすれば、1クロック内で処理できる可変長符号データの数を増やすことができ、処理時間の短縮化を図ることができる。
 以上のように本発明によれば、継続解析処理部において、その処理対象を特定の出現頻度の高いハフマン符号に係る可変長符号データに絞ることができるので、ハフマン符号を検出するための一致検出時間を短縮することができ、処理の無駄を生じることなく、当該処理のために必要な時間を短縮することができる。
 また、継続解析処理部における処理対象ではない可変長符号データについては、再度、1次解析処理部において確実に処理されるので、当該圧縮画像データを確実に復号化することを担保しつつ、その処理時間の短縮化を図ることができる。
本発明の一実施形態に係る画像復号化装置の概略構成を示したブロック図である。 本実施形態に係るハフマン復号化部の構成を示したブロック図である。 本実施形態に係る符号解析部の構成を示したブロック図である。 本実施形態に係る符号解析部における処理を説明するための説明図である。 画像データを圧縮した場合に出現するゼロラン数及びグループ番号の出現頻度を示した説明図である。 本実施形態に係る符号解析部における処理を説明するための説明図である。 画像符号化装置によって生成される符号データの構造を示した説明図である。 従来の画像復号化装置の概略構成を示したブロック図である。 従来のハフマン復号化部の構成を示したブロック図である。 従来の符号解析部の構成を示したブロック図である。 従来の符号解析部における処理を説明するための説明図である。
 以下、本発明の具体的な実施の形態について、図面を参照しながら説明する。図1は、本実施形態に係る画像復号化装置の概略構成を示したブロック図である。同図1に示すように、本例の画像復号化装置1は、上述した、図8に示した従来の画像復号化装置100とハフマン復号化部10の構成が異なるのみであり、逆ジグザグスキャン部130、逆量子化部140及びIDCT部150については、従来の画像復号化装置100と同じ構成である。したがって、図1において、同じ構成部分については同じ符号を付すとともに、以下では、その詳しい説明を省略する。また、本例において取り扱われる符号データ(JPEGストリーム)は、図7に示した符号データと同様のデータ構造を備えている。
 また、図2に示すように、本例のハフマン復号化部10は、符号入力部111、内部バッファ112、前部マーカ解析部113、最終マーカ解析部114、符号解析部20及び周波数変換部125から構成されるが、符号入力部111、内部バッファ112、前部マーカ解析部113、最終マーカ解析部114及び周波数変換部125については、従来の画像復号化装置100におけるものと同じ構成であるので、同じ符号を付して、その詳しい説明を省略する。
 尚、本例の画像復号化装置1は、それぞれの処理を実行するための適宜電子回路を備えた電子ディバイスなどのハードウエアによって実現される。或いは、CPU、ROM、RAMなどを備えた汎用のコンピュータによって実現することができる。コンピュータによって実現する場合、前記符号入力部111、前部マーカ解析部113、最終マーカ解析部114、符号解析部20及び周波数変換部125や、ジグザグスキャン部130、逆量子化部140並びにIDCT部150は、それぞれコンピュータプログラムによってその機能が実現される。
 図3に示すように、前記符号解析部20は、入力制御部21、1次解析処理部31、2次解析処理部41、3次解析処理部51及び4次解析処理部61から構成され、これらの内、2次解析処理部41、3次解析処理部51及び4次解析処理部61が継続解析処理部を構成する。
 前記入力制御部21は、前記内部バッファ112から入力する符号データの当該入力を制御する。具体的には、入力制御部21は、前記マーカに係るデータについては、順次これを入力し、SOSマーカ以降の可変長符号データについては、1単位である可変長符号データが採り得る最大のデータ量を考慮し、少なくとも4つの可変長符号データが含まれる量のデータを入力する。また、前記1次解析処理部31、2次解析処理部41、3次解析処理部51及び4次解析処理部61で処理された可変長符号データのビット長に応じたシフト信号を前記内部バッファ112に送信する。
 また、前記1次解析処理部31は、符号語検出部32、ゼロラン数/グループ番号認識部33及び付加ビット出力部34から構成され、前記2次解析処理部41は、符号語検出部42、ゼロラン数/グループ番号認識部43及び付加ビット出力部44から構成される。また、前記3次解析処理部51は、符号語検出部52、ゼロラン数/グループ番号認識部53及び付加ビット出力部54から構成され、前記4次解析処理部61は、符号語検出部62、ゼロラン数/グループ番号認識部63及び付加ビット出力部64から構成される。以下各部について説明する。
A.1次解析処理部31
 前記符号語検出部32は、前記符号データ中の前記DHTマーカから認識されるハフマン符号テーブルに基づき、入力された1番目の可変長符号データについて、ハフマン符号(符号語)に係るデータ(以下、「ハフマン符号データ」という)を検出する処理を行う。
 その際、符号語検出部32は、図4に示すように、DC係数に関するグループ番号が0~Bの12通り、並びにAC係数に関するゼロラン数が0~Fの16個とグループ番号が1~Aの10個との組み合わせに、ゼロラン数が0でグループ番号が0、及びゼロラン数がFでグループ番号が0の組み合わせを加えた162通りの、合計で174通りのハフマン符号についてその一致検出(認識)処理を実行して、1番目の可変長符号データに存在するハフマン符号データを認識する。
 そして、符号語検出部32は、検出されたハフマン符号データ、及び入力された複数の可変長符号データを前記ゼロラン数/グループ番号認識部33に送信する。
 前記ゼロラン数/グループ番号認識部33は、前記符号語検出部32から送信されたハフマン符号データからこれに対応したゼロラン数及びグループ番号を認識し、ついで認識されたグループ番号に対応した付加ビット長を認識し、認識したゼロラン数、グループ番号及び付加ビット長に係るデータ、並びに符号語検出部32から送信されたハフマン符号のビット長に係るデータ及び複数の可変長符号データを前記付加ビット出力部34に送信する処理を行う。
 前記付加ビット出力部34は、前記ゼロラン数/グループ番号認識部33から送信されたハフマン符号のビット長及び付加ビット長に係るデータに基づいて、1番目の可変長符号データから前記付加ビット長に応じた付加ビットに係るデータを抽出する。そして、付加ビット出力部34は、前記ゼロラン数/グループ番号認識部33から送信されたゼロラン数に係るデータ、及び抽出した付加ビットに係るデータを前記周波数変換部125に送信するとともに、1番目の可変長符号データのビット長に係るデータ、及び1番目の可変長符号データを削除した2番目以降の可変長符号データを前記符号語検出部42に送信する処理を行う。
B.2次解析処理部41
 前記符号語検出部42は、前記ハフマン符号テーブルに基づき、前記付加ビット出力部34から送信された2番目以降の可変長符号データの内、当該2番目の可変長符号データについて、ハフマン符号データの検出処理を行う。
 その際、符号語検出部42は、図4に示すように、AC係数に関するゼロラン数が0でグループ番号が0~7、ゼロラン数が1でグループ番号が1~3、ゼロラン数が2でグループ番号が1~2、ゼロラン数が3でグループ番号が1~2、ゼロラン数が4でグループ番号が1、ゼロラン数が5でグループ番号が1、ゼロラン数が6でグループ番号が1、ゼロラン数が7でグループ番号が1の合計で19通りのハフマン符号についてその一致検出処理を実行して、2番目の可変長符号データに存在するハフマン符号データを認識する。
 そして、符号語検出部42は、前記19通りの内のいずれかのハフマン符号データが検出された場合には、当該ハフマン符号データ及び入力された2番目以降の可変長符号データを前記ゼロラン数/グループ番号認識部43に送信する。一方、前記19通りの内のいずれのハフマン符号データも検出されなかった場合には、前記付加ビット出力部34から送信された1番目の可変長符号データのビット長に係るデータを前記入力制御部21に送信するとともに、入力された全てのデータを破棄する処理を行う。これにより、以降の処理が中止される。
 尚、入力制御部21は、1番目の可変長符号データのビット長に係るデータを受信すると、受信したビット長に係る信号をシフト信号として前記内部バッファ112に送信し、前記内部バッファ112では、記憶したデータの内、その先頭から、受信したシフト信号に応じたビット長分のデータ(処理済みの可変長符号データ)を削除することで、次の可変長符号データの頭出しを行う。
 前記ゼロラン数/グループ番号認識部43は、前記符号語検出部42から送信されたハフマン符号データからこれに対応したゼロラン数及びグループ番号を認識し、ついで認識されたグループ番号に対応した付加ビット長を認識し、認識したゼロラン数、グループ番号及び付加ビット長に係るデータ、並びに符号語検出42から送信されたハフマン符号のビット長に係るデータ及び2番目以降の可変長符号データを前記付加ビット出力部44に送信する。
 前記付加ビット出力部44は、前記ゼロラン数/グループ番号認識部43から送信されたハフマン符号のビット長及び付加ビット長に係るデータに基づいて、2番目の可変長符号データから前記付加ビット長に応じた付加ビットに係るデータを抽出する。そして、付加ビット出力部44は、前記ゼロラン数/グループ番号認識部43から送信されたゼロラン数に係るデータ、及び抽出した付加ビットに係るデータを前記周波数変換部125に送信するとともに、1番目及び2番目の可変長符号データの総ビット長に係るデータ、及び2番目の可変長符号データを削除した3番目以降の可変長符号データを前記符号語検出部52に送信する。
C.3次解析処理部51
 前記符号語検出部52は、前記ハフマン符号テーブルに基づき、前記付加ビット出力部44から送信された3番目以降の可変長符号データの内、当該3番目の可変長符号データについて、ハフマン符号データの検出処理を行う。
 その際、符号語検出部52は、図4に示すように、AC係数に関するゼロラン数が0でグループ番号が0~7、ゼロラン数が1でグループ番号が1~2、ゼロラン数が2でグループ番号が1、ゼロラン数が3でグループ番号が1、ゼロラン数が4でグループ番号が1の合計で13通りのハフマン符号についてその一致検出処理を実行し、3番目の可変長符号データに存在するハフマン符号データを認識する。
 そして、符号語検出部52は、前記13通りの内のいずれかのハフマン符号データが検出された場合には、当該ハフマン符号データ及び入力された3番目以降の可変長符号データを前記ゼロラン数/グループ番号認識部53に送信する。一方、前記13通りの内のいずれのハフマン符号データも検出されなかった場合には、前記付加ビット出力部44から送信された1番目及び2番目の可変長符号データの総ビット長に係るデータを前記入力制御部21に送信するとともに、入力された全てのデータを破棄する処理を行う。これにより、以降の処理が中止される。
 そして、入力制御部21は、1番目及び2番目の可変長符号データの総ビット長に係るデータを受信すると、受信したビット長に係る信号をシフト信号として前記内部バッファ112に送信し、前記内部バッファ112では、記憶したデータの内、その先頭から、受信したシフト信号に応じたビット長分のデータを削除することで、次の可変長符号データの頭出しを行う。
 また、前記ゼロラン数/グループ番号認識部53は、前記符号語検出部52から送信されたハフマン符号データからこれに対応したゼロラン数及びグループ番号を認識し、ついで認識されたグループ番号に対応した付加ビット長を認識し、認識したゼロラン数、グループ番号及び付加ビット長に係るデータ、並びに符号語検出52から送信されたハフマン符号のビット長に係るデータ及び3番目以降の可変長符号データを前記付加ビット出力部54に送信する。
 前記付加ビット出力部54は、前記ゼロラン数/グループ番号認識部53から送信されたハフマン符号のビット長に係るデータ及び付加ビット長に係るデータに基づいて、3番目の可変長符号データから前記付加ビット長に応じた付加ビットに係るデータを抽出する。そして、付加ビット出力部54は、前記ゼロラン数/グループ番号認識部53から送信されたゼロラン数に係るデータ、及び抽出した付加ビットに係るデータを前記周波数変換部125に送信するとともに、1番目~3番目の各可変長符号データの総ビット長に係るデータ、及び3番目の可変長符号データを削除した4番目以降の可変長符号データを前記符号語検出部62に送信する。
D.4次解析処理部61
 前記符号語検出部62は、前記ハフマン符号テーブルに基づき、前記付加ビット出力部64から送信された4番目以降の可変長符号データの内、当該4番目の可変長符号データについて、ハフマン符号データの検出処理を行う。
 その際、符号語検出部62は、図4に示すように、AC係数に関するゼロラン数が0でグループ番号が0~7、ゼロラン数が1でグループ番号が1~2、ゼロラン数が2でグループ番号が1の合計で11通りのハフマン符号についてその一致検出処理を実行し、4番目の可変長符号データに存在するハフマン符号データを認識する。
 そして、符号語検出部62は、前記11通りの内のいずれかのハフマン符号データが検出された場合には、当該ハフマン符号データ及び入力された4番目以降の可変長符号データを前記ゼロラン数/グループ番号認識部63に送信する。一方、前記11通りの内のいずれのハフマン符号データも検出されなかった場合には、前記付加ビット出力部54から送信された1番目~3番目の可変長符号データの総ビット長に係るデータを前記入力制御部21に送信するとともに、入力された全てのデータを破棄する処理を行う。これにより、以降の処理が中止される。
 そして、入力制御部21は、1番目~3番目の可変長符号データの総ビット長に係るデータを受信すると、受信したビット長に係る信号をシフト信号として前記内部バッファ112に送信し、前記内部バッファ112では、記憶したデータの内、その先頭から、受信したシフト信号に応じたビット長分のデータを削除することで、次の可変長符号データの頭出しを行う。
 また、前記ゼロラン数/グループ番号認識部63は、前記符号語検出部62から送信されたハフマン符号データからこれに対応したゼロラン数及びグループ番号を認識し、ついで認識されたグループ番号に対応した付加ビット長を認識し、認識したゼロラン数、グループ番号及び付加ビット長に係るデータ、並びに符号語検出62から送信されたハフマン符号のビット長に係るデータ及び4番目以降の可変長符号データを前記付加ビット出力部64に送信する。
 前記付加ビット出力部64は、前記ゼロラン数/グループ番号認識部43から送信されたハフマン符号のビット長に係るデータ及び付加ビット長に係るデータに基づいて、4番目の可変長符号データから前記付加ビット長に応じた付加ビットに係るデータを抽出する。そして、付加ビット出力部64は、前記ゼロラン数/グループ番号認識部63から送信されたゼロラン数に係るデータ、及び抽出した付加ビットに係るデータを前記周波数変換部125に送信し、1番目~4番目の可変長符号データの総ビット長に係るデータを前記入力制御部21に送信するとともに、入力された全てのデータを破棄する処理を行う。
 尚、上述した符号語検出部42,52,62のそれぞれにおける検出対象としてのハフマン符号は予め経験的に設定されるものである。図5は、画像データを一般的な圧縮率である20%で圧縮したときに、出現するAC係数に係るゼロラン数及びグループ番号、言い換えれば、ハフマン符号の出現頻度を示したものである。同図5に示すように、ゼロラン数及びグループ番号の出現頻度は、全ての組み合わせにおいて均等ではなく、或る複数の組み合わせに係るゼロラン数及びグループ番号の出現頻度が高いものとなっている。
 具体的には、図5において太い実線で囲んだように、ゼロラン数が0の場合には、グループ番号が0~7について出現頻度が高く、ゼロラン数が1の場合には、グループ番号が1~3について出現頻度が高く、ゼロラン数が2及び3の場合には、それぞれグループ番号が1~2について出現頻度が高く、ゼロラン数が4、5、6、7の場合には、それぞれグループ番号1について出現頻度が高い。
 したがって、前記2次解析処理部41、3次解析処理部51及び4次解析処理部61において処理対象となる可能性が高い可変長符号データは、上記のような出現頻度の高いハフマン符号に係る可変長符号データである。そこで、2次解析処理部41、3次解析処理部51及び4次解析処理部61では、このような出現頻度の高いものから選定されたハフマン符号、即ちゼロラン情報及びグループ番号情報に係る可変長符号データのみを処理するようにした。
 このようにすることで、可変長符号データ中に存在するハフマン符号の検出処理を短時間で行うことができる。即ち、上述したように全て可変長符号データを処理対象にすると、ハフマン符号を検出するために174通りの一致検出処理を行う必要があるが、処理対象を特定の出現頻度の高いハフマン符号に係る可変長符号データに絞ることで、ハフマン符号を検出するための一致検出時間を短縮することができるので、処理に無駄を生じさせることなく、当該処理のために必要な時間を短縮することができる。
 また、2次解析処理部41では19通りのハフマン符号データに係る可変長符号データを処理対象とし、3次解析処理部51では13通りのハフマン符号データに係る可変長符号データを処理対象とし、4次解析処理部61では11通りのハフマン符号データに係る可変長符号データを処理対象としており、徐々に段階的に処理対象を絞っているので、2次解析処理部41から4次解析処理部61に掛けて徐々に処理時間が短くなっている。本例の画像復号化装置1は一般的に電子回路から構成されるため、この場合には、符号解析部20の入力制御部21から付加ビット出力部64までの処理を、1クロック内で完了する必要がある。したがって、徐々に処理時間を短くすれば、1クロック内で処理できる可変長符号データの数を増やすことができ、処理時間の短縮化を図ることができる。
 また、2次解析処理部41~4次解析処理部61において処理対象となっていない可変長符号データについては、再度、1次解析処理部31において確実に処理されるので、当該圧縮画像データを確実に復号化することを担保しつつ、その処理時間の短縮化を図ることができる。
 以上の構成を備えた本例の画像復号化装置1によれば、まず、前記入力制御部21の制御の下で、前記内部バッファ112から符号データが入力され、SOSマーカ以降の可変長符号データについては、少なくとも4つの可変長符号データが含まれる量のデータが一度に入力され、入力された可変長符号データが、まず、前記1次解析処理部31に送信されて処理される。
 即ち、1次解析処理部31では、符号語検出部32により、1番目の可変長符号データに関し、174通りのハフマン符号についてその検出処理が実行されて、当該1番目の可変長符号データ中に存在するハフマン符号データが認識される。ついで、認識されたハフマン符号データに対応するゼロラン数及びグループ番号、並びにグループ番号に対応した付加ビット長がゼロラン数/グループ番号認識部33によって認識される。そして、付加ビット出力部34において、この付加ビット長に係るデータを基に、1番目の可変長符号データから当該付加ビット長に応じた付加ビットに係るデータが抽出され、前記ゼロラン数に係るデータ、及び抽出された付加ビットに係るデータが当該付加ビット出力部34から前記周波数変換部125に送信され、また、2番目以降の可変長符号データが2次解析処理部41の符号語検出部42に送信される。
 次に、符号語検出部42では、2番目の可変長符号データに関し、上述した19通りのハフマン符号についてその検出処理が実行され、19通りのハフマン符号データの内いずれかが検出された場合には、次に認識されたハフマン符号データに対応するゼロラン数及びグループ番号、並びにグループ番号に対応した付加ビット長がゼロラン数/グループ番号認識部43によって認識される。そして、付加ビット出力部44において、この付加ビット長に係るデータを基に、2番目の可変長符号データから当該付加ビット長に応じた付加ビットに係るデータが抽出され、前記ゼロラン数に係るデータ、及び抽出された付加ビットに係るデータが周波数変換部125に送信され、また、3番目以降の可変長符号データが3次解析処理部51の符号語検出部52に送信される。
 一方、符号語検出部42において、19通りのハフマン符号データのいずれも検出されなかった場合には、付加ビット出力部34から送信される1番目の可変長符号データのビット長に係るデータが入力制御部21に送信されるとともに、以降の処理が中止される。そして、入力制御部21は、受信したビット長に係る信号をシフト信号として内部バッファ112に送信し、内部バッファ112では、受信したシフト信号に応じたビット長分のデータを削除することで、次の可変長符号データの頭出しが行なわれる。
 次に、符号語検出部52では、3番目の可変長符号データに関し、上述した13通りのハフマン符号についてその検出処理が実行され、13通りのハフマン符号データの内いずれかが検出された場合には、次に認識されたハフマン符号データに対応するゼロラン数及びグループ番号、並びにグループ番号に対応した付加ビット長がゼロラン数/グループ番号認識部53によって認識される。そして、付加ビット出力部54において、この付加ビット長に係るデータを基に、3番目の可変長符号データから当該付加ビット長に応じた付加ビットに係るデータが抽出され、前記ゼロラン数に係るデータ、及び抽出された付加ビットに係るデータが周波数変換部125に送信され、また、4番目以降の可変長符号データが4次解析処理部61の符号語検出部62に送信される。
 一方、符号語検出部52において、13通りのハフマン符号データのいずれも検出されなかった場合には、付加ビット出力部44から送信される1番目及び2番目の可変長符号データの総ビット長に係るデータが入力制御部21に送信されるとともに、以降の処理が中止される。そして、入力制御部21は、受信したビット長に係る信号をシフト信号として内部バッファ112に送信し、内部バッファ112では、受信したシフト信号に応じたビット長分のデータを削除することで、次の可変長符号データの頭出しが行なわれる。
 次に、符号語検出部62では、4番目の可変長符号データに関し、上述した11通りのハフマン符号についてその検出処理が実行され、11通りのハフマン符号データの内いずれかが検出された場合には、次に認識されたハフマン符号データに対応するゼロラン数及びグループ番号、並びにグループ番号に対応した付加ビット長がゼロラン数/グループ番号認識部63によって認識される。そして、付加ビット出力部64において、この付加ビット長に係るデータを基に、4番目の可変長符号データから当該付加ビット長に応じた付加ビットに係るデータが抽出され、前記ゼロラン数に係るデータ、及び抽出された付加ビットに係るデータが周波数変換部125に送信され、また、1番目~4番目の可変長符号データの総ビット長に係るデータが前記入力制御部21に送信される。
 一方、符号語検出部62において、11通りのハフマン符号データのいずれも検出されなかった場合には、付加ビット出力部64から送信される1番目~3番目の可変長符号データの総ビット長に係るデータが入力制御部21に送信されるとともに、以降の処理が中止される。
 そして、入力制御部21は、受信したビット長に係る信号をシフト信号として内部バッファ112に送信し、内部バッファ112では、受信したシフト信号に応じたビット長分のデータを削除することで、次の可変長符号データの頭出しが行なわれる。
 以上のようにして、一度に入力された少なくとも4つの可変長符号データが含まれるデータが処理されると、以後同様にして、一纏まりの圧縮画像データの処理を終えるまで、前記入力制御部21による入力処理、前記1次解析処理部31~4次解析処理部61による処理が繰り返して実行される。
 斯くして、この画像復号化装置1によれば、上述したように、2次解析処理部41、3次解析処理部51及び4次解析処理部61において、出現頻度の高いものから選定されたハフマン符号、即ちゼロラン情報及びグループ番号情報に係る可変長符号データのみを処理するようにしたので、2次解析処理部41、3次解析処理部51及び4次解析処理部61におけるハフマン符号の検出処理を短時間で行うことができる。
 従来の画像復号化装置100の符号解析部115における処理を図6(a)に示し、本例の画像復号化装置1の符号解析部20における処理を図6(b)に示す。
 図6(a)に示すように、従来の画像復号化装置100の符号解析部115では、そのハフマン符号データの検出処理において、174通りの一致検出処理を行う必要があることから、当該検出処理に長時間を要していた。したがって、同図6(a)に示すように、符号語検出部117における処理(A)、ゼロラン数/グループ番号認識部118における処理(B)、付加ビット出力部119における処理(C)及び入力制御部116における処理(D)の一連の処理を1クロック内で処理できたとしても、相当な時間の残り時間が生じるような場合には、当該残り時間内で再度一連の処理を実行できなければ、この残り時間が全くの無駄時間となる。
 一方、本例の画像復号化装置1の符号解析部20では、図6(b)に示すように、1クロック内において、従来と同じく174通りのハフマン符号データの一致検出処理を行う1次解析処理の後に、これより格段に処理時間が短い2次解析処理~4次解析処理を行うことができるので、1クロック内で4つの可変長符号データを処理することができ、画像復号化に係るハフマン復号化部10における処理を従来に比べて格段に短縮することができる。
 尚、一致検出処理の回数における単純な比較によれば、2次解析処理部41の符号語検出部42における処理Aの時間は、1次解析処理部31の符号語検出部32における処理A(従来の処理Aに等しい)の時間の11/100程度であり、3次解析処理部51の符号語検出部52における処理Aの時間は、処理Aの時間の7/100程度であり、4次解析処理部61の符号語検出部62における処理Aの時間は、処理Aの時間の6/10程度である。
 また、本例の符号解析部20では、処理対象の可変長符号データを2次解析処理部41から4次解析処理部61に掛けて徐々に段階的に絞っており、このようにすることで、2次解析処理部41から4次解析処理部61に掛けて徐々に処理時間を短くすることができるため、1クロック内で処理できる可変長符号データの数をより効果的に増やすことができ、更に処理時間の短縮化を図ることができる。尚、各処理時間の関係は、A>A>A>Aとなっている。
 また、2次解析処理部41~4次解析処理部61において処理対象となっていない可変長符号データについては、再度、1次解析処理部31において確実に処理されるので、当該圧縮画像データを確実に復号化することを担保しつつ、その処理時間の短縮化を図ることができる。
 以上、本発明の一実施の形態について説明したが、本発明が採り得る具体的な態様は、何らこれに限定されるものではない。
 例えば、上例では、継続解析処理部を2次解析処理部41、3次解析処理部51、4次解析処理部61の3の処理部から構成したが、継続解析処理部を構成する解析処理部の数はこれに限られるものではなく、1以上の解析処理部から構成されていれば良い。要は、目的とする時間短縮が図れるような構成であれば良い。
 また、前記継続解析処理部(上例では2次解析処理部41、3次解析処理部51、4次解析処理部61)における処理対象の絞り込みは上例のものに限られるものではなく、目的とする時間短縮が図れるように適宜設定することができる。
 1  画像復号化装置
 10 ハフマン復号化部
 20 符号解析部
 21 入力制御部
 31 1次解析処理部
 32 符号解析部
 33 ゼロラン数/グループ番号認識部
 34 付加ビット出力部
 41 2次解析処理部
 42 符号解析部
 43 ゼロラン数/グループ番号認識部
 44 付加ビット出力部
 51 3次解析処理部
 52 符号解析部
 53 ゼロラン数/グループ番号認識部
 54 付加ビット出力部
 61 4次解析処理部
 62 符号解析部
 63 ゼロラン数/グループ番号認識部
 64 付加ビット出力部
 111 符号入力部
 112 内部バッファ
 113 前部マーカ解析部
 114 最終マーカ解析部
 125 周波数変換部
 130 逆ジグザグスキャン部
 140 逆量子化部
 150 IDCT部

Claims (2)

  1.  ハフマン符号化処理により圧縮された圧縮画像データであって、ゼロラン情報及びグループ番号情報を符号化したハフマン符号、並びにこれに続く付加ビットを単位とする可変長符号データが連続的に繋がった構造の圧縮画像データを復号化するハフマン復号化部を備え、
     前記ハフマン復号化部は、順次入力される前記可変長符号データを解析し、該可変長符号データに係るゼロラン情報及びグループ番号情報を順次認識して出力する符号解析部と、前記符号解析部から順次出力される前記ゼロラン情報及びグループ番号情報を基に、係数情報を順次生成して出力する周波数変換部とを備えて構成される画像復号化装置において、
     前記符号解析部は、
     複数の可変長符号データを一括して入力する入力制御部と、
     入力された最初の可変長符号データについて制限を加えることなく処理して、そのゼロラン情報、グループ番号情報及び付加ビット情報を認識し、認識したゼロラン情報及び付加ビット情報を前記周波数変換部に出力する1次解析処理部と、
     前記1次解析処理部によって処理された可変長符号データに続く1以上の可変長符号データを処理し、該可変長符号データが予め定めた処理対象の可変長符号データの場合には、当該可変長符号データに係るゼロラン情報、グループ番号情報及び付加ビット情報を認識し、認識したゼロラン情報及び付加ビット情報を前記周波数変換部に出力する処理を行う一方、該可変長符号データが処理対象の可変長符号データで無い場合には、該可変長符号データ以降のデータを破棄する処理を行い、ついで、認識処理を完了した可変長符号データ以降のデータを入力するための信号を前記入力制御部に送信する継続解析処理部とを備えて構成されることを特徴とする画像復号化装置。
  2.  前記継続解析処理部は、複数の可変長符号データを順次処理するように構成されるとともに、後続の可変長符号データほど、前記処理対象の可変長符号データが制限されるように構成されていることを特徴とする請求項1記載の画像復号化装置。
     
PCT/JP2018/000260 2017-02-28 2018-01-10 画像復号化装置 WO2018159105A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/489,237 US11251808B2 (en) 2017-02-28 2018-01-10 Image decoding device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017035769A JP6821184B2 (ja) 2017-02-28 2017-02-28 画像復号化装置
JP2017-035769 2017-02-28

Publications (1)

Publication Number Publication Date
WO2018159105A1 true WO2018159105A1 (ja) 2018-09-07

Family

ID=63371186

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/000260 WO2018159105A1 (ja) 2017-02-28 2018-01-10 画像復号化装置

Country Status (3)

Country Link
US (1) US11251808B2 (ja)
JP (1) JP6821184B2 (ja)
WO (1) WO2018159105A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002237754A (ja) * 2001-02-07 2002-08-23 Canon Inc 可変長復号化装置及び方法
JP2004179752A (ja) * 2002-11-25 2004-06-24 Kawasaki Microelectronics Kk ハフマンデコーダ
JP2011114525A (ja) * 2009-11-26 2011-06-09 Dainippon Printing Co Ltd 数値データ列の符号化/復号化の方法および装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3292221B2 (ja) * 1993-09-14 2002-06-17 ソニー株式会社 画像圧縮符号化方法
JP3260925B2 (ja) 1993-09-28 2002-02-25 キヤノン株式会社 画像処理装置
WO1999044368A1 (en) * 1998-02-27 1999-09-02 Kanebo Limited Image data processing device and processing method
US6603413B2 (en) 2001-02-07 2003-08-05 Canon Kabushiki Kaisha Variable-length decoding apparatus and method
JP4434155B2 (ja) * 2006-02-08 2010-03-17 ソニー株式会社 符号化方法、符号化プログラムおよび符号化装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002237754A (ja) * 2001-02-07 2002-08-23 Canon Inc 可変長復号化装置及び方法
JP2004179752A (ja) * 2002-11-25 2004-06-24 Kawasaki Microelectronics Kk ハフマンデコーダ
JP2011114525A (ja) * 2009-11-26 2011-06-09 Dainippon Printing Co Ltd 数値データ列の符号化/復号化の方法および装置

Also Published As

Publication number Publication date
JP6821184B2 (ja) 2021-01-27
US11251808B2 (en) 2022-02-15
JP2018142843A (ja) 2018-09-13
US20200014400A1 (en) 2020-01-09

Similar Documents

Publication Publication Date Title
JP6195997B2 (ja) シンボル圧縮を伴うデータのソース符号化・復号方法及び装置
RU2417518C2 (ru) Эффективное кодирование и декодирование блоков преобразования
JP6923677B2 (ja) ビデオ圧縮におけるエントロピーコーディングのための選択的ミキシング
US8588540B2 (en) Arithmetic encoding apparatus executing normalization and control method
US8483500B2 (en) Run length coding with context model for image compression using sparse dictionaries
WO2007056657A2 (en) Extended amplitude coding for clustered transform coefficients
JP4522199B2 (ja) 画像符号化装置及び画像処理装置及びそれらの制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US20060039615A1 (en) Joint amplitude and position coding for photographic image and video coding
Dheemanth LZW data compression
US10116328B2 (en) Encoders, decoders and methods utilizing mode symbols
Sangeetha et al. A biometrie iris image compression using LZW and hybrid LZW coding algorithm
KR102219133B1 (ko) 컴팩트한 비트 평면(bit-plane) 데이터 압축을 위한 인코더, 디코더 및 부호화 방법
WO2018159105A1 (ja) 画像復号化装置
US11265544B2 (en) Apparatus and method for image compression based on optimal sequential encoding scheme
US8446299B2 (en) Method and device for encoding and decoding of data in unique number values
CN105991895A (zh) 用于数据解码的装置和方法
WO2018154982A1 (ja) 画像復号化装置
US20140205199A1 (en) Storage Area and Temporal Based Optimized Run Length Codec For Classic JPEG Image Compression (SAT-BORL CODEC)
JP2018201143A (ja) 画像符号化装置
KR20150072853A (ko) 가변길이코딩을 이용한 인코딩 방법, 디코딩 방법, 및 그 시스템
JP2002016501A (ja) 可変長復号化装置
JPH0884260A (ja) 2次元画像データの圧縮方式および伸長方式
JPH10163880A (ja) データ復号化器
Abbas et al. Locational image compression based on chain code representation
Cinque et al. Speeding up Lossless Image Compression: Experimental Results on a Parallel Machine.

Legal Events

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

Ref document number: 18760304

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18760304

Country of ref document: EP

Kind code of ref document: A1