WO2010013290A1 - 圧縮処理装置および圧縮処理方法 - Google Patents
圧縮処理装置および圧縮処理方法 Download PDFInfo
- Publication number
- WO2010013290A1 WO2010013290A1 PCT/JP2008/002065 JP2008002065W WO2010013290A1 WO 2010013290 A1 WO2010013290 A1 WO 2010013290A1 JP 2008002065 W JP2008002065 W JP 2008002065W WO 2010013290 A1 WO2010013290 A1 WO 2010013290A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- encoding
- huffman
- data
- unit
- subsets
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
Definitions
- the present invention relates to a compression processing apparatus and a compression processing method for compressing data.
- Huffman coding is known as one of the most efficient lossless compression techniques among data compression techniques (D. A. Huffman, “A method for the construction of minimum redundancy codes,” Proc. IRE , No. 40, pp. 1098-1101, Sept. 1952.).
- Static Huffman coding is the most widely implemented form for both software and hardware.
- static Huffman coding in order to execute the coding process in real time, the appearance frequency of data is investigated in advance from a large number of sample data, and an existing table created based on this result is prepared. Encoding is performed.
- dynamic Huffman coding uses online compression, which is a problem with conventional Huffman coding, and compression that matches any symbol string that does not have an existing table, which is a problem with static Huffman coding. It was developed to improve.
- dynamic Huffman coding a Huffman tree is updated each time a symbol is processed, and coding is performed using a tree constructed at that time.
- the compression rate is often low for a certain time from the start of compression because the Huffman tree is not sufficient. The same can be said when the appearance distribution of data changes during compression.
- the compression processing device is a compression processing device that compresses input data and outputs compressed data, and includes a division unit and an encoding unit.
- the dividing unit divides a plurality of elements included in a population composed of input data into a plurality of subsets using the characteristics of each element.
- the encoding unit Huffman-encodes the data to be encoded for each subset using a plurality of Huffman encoding tables provided corresponding to the plurality of subsets, and outputs compressed data.
- the compression processing apparatus may further include a table creation unit.
- the table creation unit performs a process of checking the appearance frequency of the encoding target data included in one subset and creating a Huffman coding table corresponding to one subset for all of the plurality of subsets. Create a Huffman coding table.
- the encoding unit may perform Huffman encoding on the encoding target data for each subset while creating a plurality of Huffman encoding tables.
- the compression processing apparatus may further include a table holding unit and an update unit.
- the table holding unit holds first and second coding tables each consisting of a plurality of Huffman codes.
- the update unit encodes one of the first and second coding tables that is not used for the Huffman coding of the input data with the highest appearance frequency according to the appearance frequency of the encoding target data. Update so that the target data is converted to the shortest Huffman code.
- the encoding unit creates a plurality of Huffman encoding tables based on the other encoding table of the first and second encoding tables when the compression rate of the compressed data is equal to or less than the threshold value.
- Huffman coding is performed on the data to be encoded for each subset, and when the compression ratio becomes larger than the threshold value, a plurality of Huffman coding tables are created based on one coding table updated by the update unit.
- the encoding target data may be Huffman encoded for each subset.
- the update unit counts the appearance frequency for all the encoding target data, and every time the appearance frequency for one encoding target data reaches the maximum value, the shorter the order in which the appearance frequency reaches the maximum value is shorter.
- a process of assigning a new Huffman code having a length to one encoding target data may be executed for all the encoding target data, and one of the encoding tables may be updated.
- the update unit calculates a compression rate based on the compressed data output from the encoding unit, and when the calculated compression rate becomes greater than a threshold value or is new for all the encoding target data.
- a switching signal for switching the coding table may be generated and output to the coding unit.
- the encoding unit switches the encoding table according to the switching signal, and Huffman-encodes the data to be encoded for each subset while creating a plurality of Huffman encoding tables based on the encoded table after the switching. Also good.
- the compression processing apparatus may further include an image dividing unit.
- the image dividing unit divides the image into a plurality of images based on an object included in the image to generate a plurality of input data. Then, the dividing unit performs a process of dividing a plurality of elements included in a population composed of one input data among a plurality of input data into a plurality of subsets using features of each element. Run against.
- the encoding unit Huffman-encodes the data to be encoded for each subset using a plurality of Huffman encoding tables provided corresponding to the plurality of subsets divided from one input data, and compresses the compressed data.
- the output process may be executed for all of the plurality of input data.
- the compression processing method is a compression processing method for compressing input data and outputting compressed data, wherein the division unit uses a plurality of elements included in a population composed of input data to use a plurality of elements.
- a first step of dividing the data into subsets, and the encoding unit encodes the data to be encoded for each subset using a plurality of Huffman encoding tables provided corresponding to the plurality of subsets.
- a second step of outputting the compressed data is a compression processing method for compressing input data and outputting compressed data, wherein the division unit uses a plurality of elements included in a population composed of input data to use a plurality of elements.
- the table creation unit checks the appearance frequency of the encoding target data included in one subset and creates a Huffman coding table corresponding to one subset for all of the plurality of subsets.
- a third step of executing and creating a plurality of Huffman coding tables may be further included.
- the encoding unit may perform Huffman encoding on the encoding target data for each subset while creating a plurality of Huffman encoding tables.
- the update unit uses one of the first and second encoding tables each consisting of a plurality of Huffman codes, which is not used for Huffman encoding of the input data, as encoding target data.
- the coding unit further includes a third step of updating the encoding target data having the highest appearance frequency so as to be converted into the shortest Huffman code in accordance with the appearance frequency, and in the second step, the encoding unit Encoding target data for each subset while creating a plurality of Huffman encoding tables based on the other encoding table of the first and second encoding tables when the compression rate is equal to or less than the threshold value If the compression ratio becomes larger than the threshold value, a plurality of Huffman coding tables must be created based on one coding table.
- the coded data may be Huffman coding for each subset.
- the third step includes a first sub-step in which the update unit counts the appearance frequency for all encoding target data, and the update unit every time the appearance frequency for one encoding target data reaches a maximum value.
- a process of assigning a new Huffman code having a shorter length to one encoding target data is performed on all the encoding target data as the order in which the appearance frequency reaches the maximum value is earlier, and one of the codes
- a second sub-step of updating the data table is performed on all the encoding target data as the order in which the appearance frequency reaches the maximum value is earlier.
- the update unit calculates the compression rate based on the compressed data output from the encoding unit, and the update unit calculates the compression rate calculated in the third substep.
- a switching signal for switching the encoding table is generated and output to the encoding unit.
- the encoding unit switches the encoding table according to the switching signal, and creates a plurality of Huffman encoding tables based on the encoded table after the switching.
- the encoding target data may be Huffman encoded for each subset.
- the compression processing method further includes a third step in which the image division unit divides the image into a plurality of images based on an object included in the image and generates a plurality of input data.
- the unit performs a process for dividing a plurality of elements included in a population composed of one input data among a plurality of input data into a plurality of subsets using characteristics of each element for all of the plurality of input data.
- the encoding unit uses a plurality of Huffman encoding tables provided corresponding to the plurality of subsets divided from one input data to encode each subset.
- the process of Huffman encoding the data and outputting the compressed data may be executed for all of the plurality of input data.
- the compression processing device or the compression processing method divides input data into a plurality of subsets according to the difference in appearance frequency of each symbol string, and creates a Huffman coding table for each subset of the divided plurality of subsets. Huffman coding is performed for each subset using the created Huffman coding table.
- FIG. 1 It is a schematic block diagram which shows the structure of the compression processing apparatus by Embodiment 1 of this invention. It is a conceptual diagram which shows the conventional Huffman encoding. It is a conceptual diagram which shows the Huffman encoding in the compression processing apparatus shown in FIG. It is a conceptual diagram of the image compression in the compression processing apparatus shown in FIG. It is a figure for demonstrating the specific example of the division
- FIG. 9 is a configuration diagram of an encoder and an optimizer shown in FIG. 8. It is a block diagram of the allocation module shown in FIG. It is a block diagram of the exchange module shown in FIG.
- FIG. 10 is another configuration diagram of the replacement module shown in FIG. 9. It is a figure for demonstrating the operation
- FIG. 10 is a schematic block diagram of a compression processing apparatus according to Embodiment 3.
- FIG. 10 is a figure for demonstrating the division method of an image. It is a flowchart for demonstrating the image division
- 10 is a flowchart for illustrating a compression processing method according to Embodiment 3.
- FIG. 10 is a schematic block diagram showing another configuration of the compression processing device according to Embodiment 3.
- 12 is a flowchart for explaining another compression processing method according to the third embodiment.
- FIG. 1 is a schematic block diagram showing a configuration of a compression processing apparatus according to Embodiment 1 of the present invention.
- a compression processing apparatus 10 according to Embodiment 1 of the present invention includes a processing unit 1, a division unit 2, a table creation unit 3, and an encoding unit 4.
- the processing unit 1 divides an original image into a plurality of pixels, conversion / sampling from RGB to YCbCr, level shift, discrete cosine transform, quantization, and zigzag scan / run length in a compression method using a conventional Huffman code Perform processing. Then, the processing unit 1 outputs the data after the zigzag scan and the run length processing to the division unit 2 as input data.
- the division unit 2 divides the input data received from the processing unit 1 into a plurality of subsets according to the characteristics (appearance frequency) of each element included in the input data, and the divided plurality of subsets are converted into the table creation unit 3 and the code Output to the unit 4.
- the table creation unit 3 receives a plurality of subsets from the division unit 2. Then, the table creation unit 3 investigates the appearance frequency of the encoding target data included in one subset, and based on the examined appearance frequency, the conventional Huffman tree construction method is used for one subset. Create a Huffman coding table. The table creation unit 3 executes this process for all subsets of the plurality of subsets, and creates a plurality of Huffman coding tables for the plurality of subsets. Then, the table creation unit 3 outputs the created plurality of Huffman coding tables to the coding unit 4.
- the encoding unit 4 receives a plurality of subsets from the division unit 2 and receives a plurality of Huffman encoding tables from the table creation unit 3. Then, the encoding unit 4 performs Huffman encoding on the encoding target data included in the plurality of subsets using the plurality of Huffman encoding tables, and outputs the compressed data. In this case, the encoding unit 4 performs Huffman encoding on the encoding target data included in one subset using a Huffman encoding table created corresponding to one subset. Then, the encoding unit 4 performs this process on all the subsets of the plurality of subsets, and Huffman encodes all the encoding target data included in the plurality of subsets.
- FIG. 2 is a conceptual diagram showing conventional Huffman coding.
- FIG. 3 is a conceptual diagram showing Huffman coding in the compression processing apparatus 10 shown in FIG. Referring to FIG. 2, a population set U including input data includes a plurality of elements represented by white circles, white squares, and white triangles, and all of the plurality of elements belong to the subset A.
- a plurality of elements belonging to the mother set U are divided into respective features and divided into several subsets B, C, and D. Then, a Huffman coding table is created for each of the subsets B, C, and D, and Huffman coding is performed for each of the subsets B, C, and D using the created Huffman coding table.
- the compression rate can be improved.
- the Huffman coding table is created for each subset and compression processing is performed, even after the number of elements is large, the encoded data can be obtained immediately.
- FIG. 4 is a conceptual diagram of image compression in the compression processing apparatus 10 shown in FIG.
- the processing unit 1 of the compression processing apparatus 10 divides the original image into a plurality of elements, performs conversion from RGB to YCbCr for each of the divided elements, Sampling.
- the processing unit 1 of the compression processing apparatus 10 level-shifts the sampling result, and then performs discrete cosine transform (DCT: Discrete Cosine Transform).
- DCT discrete cosine Transform
- the processing unit 1 of the compression processing apparatus 10 performs quantization, performs zigzag scanning of the quantized data from the upper left to the lower right of the original image, and performs a run length process.
- the dividing unit 2 of the compression processing apparatus 10 divides the input data (“data after zigzag scanning and run-length processing”; the same applies hereinafter) into a plurality of subsets, and the table creation unit 3 A Huffman coding table is created for each of the plurality of subsets divided by the unit 2, and the coding unit 4 uses a plurality of Huffman coding tables created by the table creation unit 3 to generate a Huffman code for each subset. To output a compressed image.
- the “divide input data into subsets” block and the “Huffman coding for each subset” block are different from the conventional image compression method.
- the dividing unit 2 changes the symbol string “ATAACCCCGG” into the symbol string “ATAA” and the symbol string “CCCCGG” depending on the appearance frequency of each symbol. And split into
- the division unit 2 refers to the symbol string after the zigzag scan and the run length process, and divides the input data into a plurality of subsets by grouping similar symbol strings.
- the division unit 2 divides the data after the zigzag scan and the run length processing into a plurality of subsets according to the appearance frequency of each symbol string.
- FIG. 5 is a diagram for explaining a specific example of division into subsets.
- the original image is a landscape image including a sky part, a mountain part, and a ground part.
- the appearance frequency of each symbol string differs in the sky portion, the mountain portion, and the ground portion. Therefore, the dividing unit 2 divides the original image data into a subset A consisting of an empty portion, a subset B consisting of a mountain portion, and a subset C consisting of a ground portion, depending on the appearance frequency of each symbol string. To do.
- the table creation unit 3 scans the subset A composed of empty portions, creates a Huffman coding table A for the subset A, scans the subset B composed of mountain portions, and scans the subset B
- a Huffman coding table B is created for the sub-set C
- a subset C consisting of the ground portion is scanned
- a Huffman coding table C is created for the subset C.
- the encoding unit 4 uses the Huffman encoding table A to Huffman-encode the data to be encoded included in the empty subset A and uses the Huffman encoding table B to form the mountain portion.
- the encoding target data included in the set B is Huffman encoded
- the encoding target data included in the subset C including the ground portion is Huffman encoded using the Huffman encoding table C.
- Conventional Huffman coding is performed using a predetermined Huffman coding table regardless of data differences such as the sky portion, the mountain portion, and the ground portion. Or the conventional Huffman encoding performed Huffman encoding using the Huffman encoding table produced after scanning the whole image.
- Huffman coding is performed using the Huffman coding tables A, B, and C optimized for each sky, mountain, and ground. Huffman codes can be assigned. Therefore, the compression rate can be improved.
- FIG. 6 is a diagram for explaining another specific example of the division into subsets.
- the original image is a snapshot of a person composed of a background part and a person part.
- the appearance frequency of each symbol string differs in the background portion and the person portion. Therefore, the dividing unit 2 divides the data of the original image into a subset D consisting of the background portion and a subset E consisting of the person portion depending on the appearance frequency of each symbol string.
- the table creation unit 3 scans the subset D composed of the background parts, creates a Huffman coding table D for the subset D, scans the subset E composed of the person parts, and scans the subset E A Huffman coding table E is created.
- the encoding unit 4 Huffman-encodes the data to be encoded included in the subset D including the background portion using the Huffman encoding table D, and uses the Huffman encoding table E to form the portion including the person portion.
- Data to be encoded included in the set E is Huffman encoded.
- the method according to the present invention can improve the compression rate over the conventional Huffman coding for the same reason as described above.
- FIG. 7 is a flowchart for explaining the compression processing method according to the first embodiment.
- the processing unit 1 of the compression processing device 10 performs conversion from RGB to YCbCr, sampling, level shift, discrete cosine transform, quantization, and zigzag for the original image.
- the dividing unit 2 extracts a similar symbol string from the encoding target data group received from the processing unit 1, and generates a subset (step S2).
- the table creation unit 3 scans the subset generated by the division unit 2 and creates a Huffman coding table (step S3).
- the encoding unit 4 receives a subset from the division unit 2 and receives a Huffman encoding table from the table creation unit 3. Then, the encoding unit 4 performs Huffman encoding on the data to be encoded in the subset using the Huffman encoding table (step S4).
- step S5 it is determined whether or not the Huffman encoding has been completed for all the subsets. If the Huffman encoding has not been completed for all the subsets, the series of operations is performed in step S2. Returning to step S2, step S2 to step S5 described above are repeatedly executed.
- step S5 If it is determined in step S5 that Huffman coding has been completed for all the subsets, the series of operations ends.
- the compression processing apparatus 10 divides the input data into a plurality of subsets according to the difference in appearance frequency of each symbol string, and each subset of the divided plurality of subsets.
- a Huffman coding table is created for each, and Huffman coding is performed for each subset using the created Huffman coding table.
- FIG. 8 is a schematic block diagram of a compression processing apparatus according to the second embodiment.
- division unit 2 in compression processing apparatus 10A according to the second embodiment, division unit 2, table creation unit 3 and encoding unit 4 of compression processing apparatus 10 shown in FIG. The rest is the same as the compression processing apparatus 10.
- Encoder 11 holds two encoding tables each consisting of a Huffman code. When the encoder 11 does not receive the switching signal EXC for switching the coding table from the optimizer 12, the input data received from the processing unit 1 using one of the two coding tables. Is Huffman coded and compressed data is output. When the encoder 11 receives the switching signal EXC from the optimizer 12, the encoder 11 switches from one of the two encoding tables to the other encoding table, encodes the input data, and outputs the compressed data. To do.
- the optimizer 12 updates a coding table that the encoder 11 does not use for Huffman coding of input data in parallel with the Huffman coding in the encoder 11, and generates a switching signal EXC and outputs it to the encoder 11.
- FIG. 9 is a block diagram of the encoder 11 and the optimizer 12 shown in FIG.
- encoder 11 includes a CAM (Content Addressable Memory) 111, a selector 112, and encoding tables 113 and 114.
- the optimizer 12 includes an allocation module 121 and an exchange module 122.
- the CAM 111 stores a plurality of memory symbols and a plurality of addresses respectively associated with the plurality of memory symbols.
- the plurality of memory symbols are symbols that can be input to the CAM 111.
- the CAM 111 receives each input symbol constituting the input data from the processing unit 1, the CAM 111 searches for a plurality of stored symbols, detects a stored symbol that matches the input symbol, and corresponds to the detected stored symbol The assigned address is detected. Then, the CAM 111 outputs the detected address as a match address MAdd to the selector 112 and the assignment module 121 of the optimizer 12.
- the selector 112 When the selector 112 does not receive the switching signals EXC1 and EXC2 (a kind of switching signal EXC) from the allocation module 121 and the exchange module 122 of the optimizer 12, respectively, the selector 112 outputs the matching address MAdd received from the CAM 111 to the active table 113. When switching signals EXC 1 and EXC 2 are respectively received from allocation module 121 and exchange module 122, match address MAdd received from CAM 111 is output to shadow table 114.
- EXC1 and EXC2 a kind of switching signal EXC
- Each of the active tables 113 and 114 includes a plurality of addresses and a plurality of code words.
- the plurality of code words are respectively associated with the plurality of addresses.
- Each of the plurality of code words is composed of a Huffman code.
- the encoding table 113 plays the role of an active table when it receives the match address MAdd from the selector 112.
- the encoding table 113 reads the code word associated with the received matching address MAdd and outputs the read code word as compressed data.
- the encoding table 113 serves as a shadow table when it does not receive the coincidence address MAdd from the selector 112.
- the encoding table 114 has the same configuration as the encoding table 113 and performs the same function as the encoding table 113.
- each of the encoding tables 113 and 114 includes an SRAM (Static Random Access Memory).
- the exchange module 122 receives a new codeword from the assignment module 121 and is output as compressed data from the encoding table 113 (or the encoding table 114) serving as an active table (referred to as “old codeword”). The same shall apply hereinafter).
- the exchange module 122 calculates a compression ratio based on the new codeword and the old codeword, and when the calculated compression ratio becomes larger than the threshold value, the switching module EXC2 is generated to generate the selector 112 and the allocation. Output to module 121.
- FIG. 10 is a block diagram of the allocation module 121 shown in FIG.
- the allocation module 121 includes a decoder 1200, counters 1201 to 120n (n is an integer of 2 or more), an address encoder 1211, an address counter 1212, an address register 1213, and a multiplexer (MUX) 1214. Address pointer 1215, basic table 1216, and controller 1217.
- a decoder 1200 counters 1201 to 120n (n is an integer of 2 or more)
- MUX multiplexer
- the decoder 1200 decodes the coincidence address MAdd received from the CAM 111 of the encoder 11, and outputs the decoded coincidence address MAdd to a counter (one of the counters 1201 to 120n) provided corresponding to the coincidence address MAdd.
- Counters 1201 to 120n are provided corresponding to n addresses stored in the CAM 111. Each of the counters 1201 to 120n is preset with a maximum value Count_MAX. This maximum value Count_MAX is determined according to the type of data to be subjected to Huffman coding.
- Each of the counters 1201 to 120n receives the coincidence address MAdd from the decoder 1200, counts the number of times the coincidence address MAdd is received, and generates an overflow signal OFL when the count value reaches the maximum value Count_MAX.
- the overflow signal OFL is output to the address encoder 1211, the address counter 1212 and the controller 1217.
- each of the counters 1201 to 120n receives the reset signal RSET from the controller 1217, and resets the count value.
- the address encoder 1211 holds an address associated with each of the counters 1201 to 120n.
- the address encoder 1211 encodes the address associated with the counter (any of the counters 1201 to 120n) that outputs the overflow signal OFL,
- the encoded address is output to the address register 1213 and the multiplexer 1214 as the address Add_old to be updated in the shadow table 114.
- the address counter 1212 receives the overflow signal OFL from any of the counters 1201 to 120n, and receives the maximum address Add_old_MAX from the address register 1213 among the addresses Add_old to be updated.
- the address counter 1212 sequentially generates the update address Add_new within the range below the maximum address Add_old_MAX, and outputs the generated update address Add_new to the address pointer 1215.
- the update address Add_new indicates an address to be specified in the basic table 1216, and the basic table 1216 stores a plurality of codewords by assigning addresses in ascending order of codeword bit length, as will be described later.
- the address counter 1212 generates the update address Add_new in order from the smallest address within the range below the maximum address Add_old_MAX.
- the address counter 1212 upon receiving the switching signal EXC2 from the exchange module 122, the address counter 1212 generates addresses Add0 to Addn in order from “0”, and outputs the generated addresses Add0 to Addn to the multiplexer 1214 and the address pointer 1215.
- the address register 1213 holds only the maximum address Add_old_MAX among the addresses Add_old received from the address encoder 1211 and outputs the held maximum address Add_old_MAX to the address counter 1212.
- the multiplexer 1214 Upon receiving the address Add_old from the address encoder 1211, the multiplexer 1214 outputs the received address Add_old to the shadow table 113.
- the address pointer 1215 When the address pointer 1215 receives the update address Add_new from the address counter 1212, the address pointer 1215 designates an address in the basic table 1216 that matches the received update address Add_new.
- the address pointer 1215 receives addresses Add0 to Addn from the address counter 1212 and receives n addresses associated with the counters 1201 to 120n that output the overflow signal OFL from the controller 1217.
- Address pointer 1215 designates, in basic table 1216, an address that does not match the address from controller 1217 among addresses Add0 to Addn received from address counter 1212.
- the basic table 1216 stores a plurality of addresses and a plurality of code words. A plurality of code words are associated with a plurality of addresses, respectively. In this case, the basic table 1216 stores a plurality of codewords in ascending order of codeword bit length. Therefore, the code word with the shortest bit length is associated with the minimum address, and the code word with the longest bit length is associated with the maximum address.
- the controller 1217 When the controller 1217 receives the overflow signal OFL from all of the counters 1201 to 120n, the controller 1217 generates the switching signal EXC1, outputs the generated switching signal EXC1 to the selector 112 of the encoder 11, and outputs the overflow signal OFL.
- the n addresses associated with 1201 to 120n are sequentially output to the address pointer 1215.
- the controller 1217 when the controller 1217 outputs the switching signal EXC1 or receives the switching signal EXC2 from the exchange module 122, the controller 1217 generates a reset signal RSET and outputs it to the counters 1201 to 120n.
- FIG. 11 is a block diagram of the exchange module 122 shown in FIG. Referring to FIG. 11, exchange module 122 includes a subtractor 1221, an adder 1222, a comparator 1223, an accumulation register 1224, and a signal generator 1225.
- the subtractor 1221 receives the code word C_new from the assignment module 121 and receives the code word C_old from the encoding table 113 (or the encoding table 114) that plays the role of an active table. Then, the subtracter 1221 subtracts the code word C_new from the code word C_old, and outputs the subtraction result to the adder 1222.
- the adder 1222 receives the subtraction result from the subtractor 1221 and receives the accumulated value from the accumulation register 1224. Adder 1222 adds the subtraction result to the accumulated value, and outputs the addition result to accumulation register 1224.
- the comparator 1223 receives the code word C_new from the assignment module 121 and receives the code word C_old from the encoding table 113 (or the encoding table 114) serving as an active table.
- the comparator 1223 compares the bit length of the code word C_new with the bit length of the code word C_old, and activates the accumulation register 1224 when the bit length of the code word C_new is shorter than the bit length of the code word C_old.
- Enable signal EN is generated, and the generated enable signal EN is output to the accumulation register 1224. Note that the comparator 1223 does not output the enable signal EN to the accumulation register 1224 when the bit length of the code word C_new is greater than or equal to the bit length of the code word C_old.
- accumulating register 1224 When accumulating register 1224 receives enable signal EN from comparator 1223, accumulating register 1224 retains the addition result received from adder 1222 as an accumulated value and outputs the retained accumulated value to adder 1222 and signal generator 1225.
- the signal generator 1225 has a preset compression rate threshold. Then, the signal generator 1225 compares the accumulated value received from the accumulation register 1224 with a threshold value. When the accumulated value becomes larger than the threshold value, the signal generator 1225 generates the switching signal EXC2, and the generated switching signal EXC2 is encoded by the encoder. 11 selectors 112 and the controller 1217 of the assignment module 121.
- the accumulation register 1224 is activated by the enable signal EN only when the bit length of the code word C_new is shorter than the bit length of the code word C_old, and outputs the accumulated value to the signal generator 1225. Then, the signal generator 1225 generates the switching signal EXC2 when the accumulated value is larger than the compression rate threshold. Further, since the accumulated value is a value obtained by accumulating the subtraction result obtained by subtracting the code word C_new from the code word C_old, it indicates an accumulated value in which the bit length of the compressed data is shortened. In the present invention, this cumulative value is referred to as “compression rate”.
- the signal generator 1225 compares the compression rate with the threshold value, and generates the switching signal EXC2 when the compression rate is larger than the threshold value.
- FIG. 12 is another configuration diagram of the exchange module 122 shown in FIG.
- an arithmetic unit 1226 such as an ALU (Arithmic Logic Unit) is used instead of the subtractor 1221 without using the comparator 1223, the calculation of C_old and C_new is devised. By doing so, the value of the accumulation register can be finely adjusted. For example, when the bit length of C_new is longer than C_old, the subtraction result is negative, but by accumulating the value, it is possible to leave an efficient codeword. In addition to the subtraction, a better effect may be obtained by using addition or multiplication.
- FIG. 13 is a diagram for explaining the operation of Huffman coding using the one coding table 113.
- FIG. 14 is a diagram for explaining the operation of Huffman coding using the other coding table 114.
- the selector 112 is omitted.
- the selector 112 selects the encoding table 113 when it does not receive the switching signal EXC1 or EXC2. Therefore, the encoding table 113 serves as an active table, and the encoding table 114 serves as a shadow table.
- the encoding table 113 includes addresses [0000] to [1111] and codewords [00002] to [ffeff]. Each of the codewords [00002] to [fffef] is a Huffman code, and the plurality of codewords [00002] to [ffffef] are associated with the plurality of addresses [0000] to [1111], respectively. Yes.
- selector 112 when selector 112 receives switching signal EXC1 or EXC2, selector 112 switches the encoding table to be used from encoding table 113 to encoding table 114. Therefore, the encoding table 114 serves as an active table, and the encoding table 113 serves as a shadow table.
- the encoding table 114 includes addresses [0000] to [1111] and codewords [00023] to [fffef]. Each of the codewords [00023] to [ffffef] is a Huffman code, and the plurality of codewords [00023] to [ffffef] are associated with the plurality of addresses [0000] to [1111], respectively. Yes.
- the encoder 11 by configuring the encoder 11 with the CAM 111 and the two encoding tables 113 and 114, the input symbol can be easily Huffman encoded.
- FIG. 15 is a diagram for explaining the update of the encoding table 114 serving as a shadow table.
- the number in parentheses of the code word represents the bit length of the code word.
- the roles of the active table and the shadow table of the two encoding tables 113 and 114 are switched when all of the counters 1201 to 120n output the overflow signal OFL or when the compression ratio becomes larger than the threshold value.
- the same address and the same code word are initially set as default settings.
- the data is output to the register 1213 and the multiplexer 1214.
- the address counter 1212 receives the overflow signal OFL from the counter 1203 and the maximum address Add_old_MAX from the address register 1213. Then, the address counter 1212 generates update addresses Add_new in ascending order of address values within a range equal to or less than the maximum address Add_old_MAX, and outputs the generated update addresses Add_new to the address pointer 1215.
- the multiplexer 1214 outputs the address Add_old received from the address encoder 1211 to the encoding table 114 serving as a shadow table.
- Output to the encoding table 114 ( shadow table) and the exchange module 122 as C_new.
- the address counter 1212 receives the overflow signal OFL from the last counter (any of the counters 1201 to 120n) and outputs the update address Add_new to the address pointer 1215, or when receiving the switching signal EXC2 from the exchange module 122, Starting from 0 ′′, addresses are sequentially generated, and the generated addresses are output to the multiplexer 1214 and the address pointer 1215.
- the controller 1217 sequentially outputs n addresses associated with the counters 1201 to 120n that output the overflow signal OFL to the address pointer 1215.
- the code word received from the basic table 1216 is overwritten on the code word not overwritten.
- the encoding table 113 is updated by the above-described method.
- FIG. 16 is a flowchart for explaining operations in the encoder 11 and the optimizer 12 shown in FIG.
- CAM 111 of encoder 11 receives an input symbol (step S11), and compares the received input symbol with a stored symbol (step S12).
- the CAM 111 of the encoder 11 detects an address associated with a storage symbol that matches the input symbol
- the CAM 111 outputs the detected address to the selector 112 and the assignment module 121 as a match address MAdd.
- step S15 it is determined whether or not all input symbols have been converted to Huffman codes. If all input symbols have not been converted to Huffman codes, the series of operations returns to step S11, and the encoder 11 The above-described steps S11 to S15 are repeatedly executed.
- step S15 when it is determined in step S15 that all input symbols have been converted to Huffman codes, the series of operations ends.
- step S13 the counter (one of the counters 1201 to 120n) associated with the coincidence address MAdd increments the counter value by “1” (step S16), and the counter value reaches the maximum value. It is determined whether or not there is (step S17).
- step S17 When it is determined in step S17 that the counter value is not the maximum value, the exchange module 122 determines whether or not the compression rate is equal to or less than the threshold value by the method described above (step S18).
- step S18 When it is determined in step S18 that the compression ratio is equal to or less than the threshold value, the series of operations returns to step S16, and the above-described steps S16 to S18 are repeatedly executed.
- step S18 when it is determined in step S18 that the compression rate is greater than the threshold value, the series of operations proceeds to step S22.
- step S21 it is determined whether or not all counter values are maximum values. When all counter values are maximum values, the series of operations proceeds to step S22.
- step S21 when it is determined in step S21 that at least one of all the counter values is not the maximum value, the series of operations proceeds to step S16.
- step S18 When it is determined in step S18 that the compression ratio is greater than the threshold value, or when it is determined in step S21 that all counter values are maximum values, the coding table is switched (step S22). And a series of operation
- FIG. 17 is a diagram for specifically explaining Huffman coding in the compression processing apparatus 10A shown in FIG.
- encoder 11 receives input data after zigzag scan and run length processing are performed in processing unit 1.
- the data will be Huffman encoded.
- the encoding table 114 shadow table
- the Huffman coding is performed on the data to be encoded in the face portion while creating a Huffman coding table suitable for the Huffman coding of the face portion using the part of the codewords.
- the encoder 11 and the optimizer 12 perform Huffman coding on the input data input from the processing unit 1 to divide the person image into a subset of the background portion, the face portion, and the torso portion. Then, while creating a Huffman coding table suitable for each subset of the face part and the body part, the subsets of the background part, the face part, and the body part are Huffman coded.
- the encoder 11 constitutes the division unit 2 and the encoding unit 4 shown in FIG. 1, and the encoder 11 and the optimizer 12 constitute the table creation unit 3 shown in FIG.
- the compression processing apparatus 10A (see FIG. 8) according to the second embodiment has the same configuration as the compression processing apparatus 10 (see FIG. 1) according to the first embodiment.
- FIG. 18 is a flowchart for explaining the compression processing method according to the second embodiment.
- processing unit 1 of compression processing apparatus 10 ⁇ / b> A performs conversion from RGB to YCbCr, sampling, level shift, discrete cosine transformation, quantization, and zigzag for the original image.
- the detected address is detected, and the detected address is output to the optimizer 12 as the match address MAdd.
- the optimizer 12 counts the appearance frequency for each encoding target data by counting the number of times the matching address MAdd is received (step S33).
- the optimizer 12 determines that the number of new allocations of Huffman codes has exceeded the threshold value, and at least one of the counters 1201 to 120n outputs the overflow signal OFL If not, it is determined that the number of new allocations of Huffman codes does not exceed the threshold.
- step S36 When it is determined in step S36 that the number of new allocations of the Huffman code has exceeded the threshold value, the encoder 11 switches the active table from the encoding table 113 to the encoding table 114, and a new Huffman code is added in the switched encoding table 114.
- the data to be encoded is Huffman encoded while creating the encoding table (step S37).
- step S36 when it is determined in step S36 that the number of new allocations of the Huffman code does not exceed the threshold, the encoder 11 uses the Huffman encoding table already created using the encoding table 113 to encode data to be encoded. Is Huffman encoded (step S38).
- step S39 it is determined whether or not all the encoding target data has been encoded.
- step S39 it is determined that encoding of at least one encoding target data has not been completed.
- the series of operations returns to step S32, and encoding of all the encoding target data is completed in step S39. Steps S32 to S39 described above are repeatedly executed until it is determined that they have been performed.
- step S39 when it is determined in step S39 that all the encoding target data has been encoded, the series of operations ends.
- the compression processing apparatus 10A divides input data into subsets and creates encoding target data while creating a Huffman encoding table suitable for the divided subsets. Huffman encoding.
- the data to be encoded can be Huffman encoded at high speed and the compression rate can be improved.
- the encoding tables 113 and 114 constitute a “table holding unit”, and the optimizer 12 constitutes an “update unit”.
- FIG. 19 is a schematic block diagram of a compression processing apparatus according to the third embodiment.
- a compression processing apparatus 10B according to Embodiment 3 is the same as the compression processing apparatus 10 except that an image dividing unit 5 is added to the compression processing apparatus 10 shown in FIG.
- the image dividing unit 5 divides the original image data into a plurality of image data based on the object of the original image, and outputs the divided plurality of image data to the processing unit 1.
- the processing unit 1 processes the plurality of image data input from the image dividing unit 5 for each image data by the method described above, and divides the plurality of input data corresponding to the plurality of image data. Output to unit 2.
- the dividing unit 2 executes the process of dividing each input data into a plurality of subsets for all the input data of the plurality of input data
- the table creating unit 3 A process of creating a plurality of Huffman coding tables suitable for a plurality of subsets divided for each input data is executed for all the input data of the plurality of input data.
- the processing for performing Huffman coding for each subset using a plurality of Huffman coding tables suitable for the plurality of subsets is performed on all input data of the plurality of input data. Run against.
- the image division unit 5 divides an image into a plurality of images using, for example, a region growing type division division algorithm.
- a leader cell is determined from 3 ⁇ 3 pixels, and a region is grown from the determined leader cell region to a surrounding pixel region having a relatively large coupling weight. Is a method of dividing the image by repeating until no leader cell exists.
- FIG. 20 is a diagram for explaining an image dividing method.
- the image dividing unit 5 divides one frame into images of each object by a region growing type image dividing method.
- This region-growing image segmentation method is the LEGION model (D.DL. Wang, angand D. Terman, “Image segmentation based on oscillator correlation,” Neural Computation, Volume 9 (4), pp. 805-836 (1997). ) Is handled in four states: self-ignition (self-excitable), self-ignitable (excitable), and ignition (inhibition).
- This region-growing image segmentation method includes four steps of initialization, self-ignition, ignition, and suppression.
- the image dividing unit 5 receives an input image having a 3 ⁇ 3 configuration shown in FIG. Then, the image dividing unit 5 calculates eight coupling weights CW1 to CW8 between the pixels in the nine pixels constituting the input image, and corresponds the calculated eight coupling weights CW1 to CW8 between the pixels. In addition, it is held in a memory (built in the image division unit 5). In FIG. 20B, eight connection weights of the pixel (2, 2) and the surrounding pixels are illustrated.
- the image division unit 5 reads the eight connection weights CW1 to CW8 held in the memory, and calculates the sum SUM (CW) of the read eight connection weights CW1 to CW8.
- the image dividing unit 5 determines whether or not the calculated sum SUM (CW) is larger than the threshold value phi P for determining the leader cell.
- SUM means calculating a sum represented by a sigma symbol in mathematics.
- the image dividing unit 5, when the sum SUM (CW) is equal to or less than the threshold value phi P, without setting the pixels that are the center of the calculation of the coupling weights leader cell, the reader self-lag p ij Set to 0.
- the image dividing unit 5 executes this processing by setting each of the nine pixels of the input image as a pixel that is the center of calculation of the coupling weight, and determines a leader cell (see FIG. 20C).
- the image division unit 5 returns to the self-ignition process for dividing the next area again after the extinguishing process is completed. Then, the image division unit 5 repeatedly executes the above-described processing until no leader cell exists, and divides each area. Then, after all the reader cells have fired, the image division unit 5 labels all the areas and ends the division of one frame image (see (h) in FIG. 20).
- FIG. 21 is a flowchart for explaining an image segmentation method using the region growing segmentation algorithm.
- image segmentation unit 5 calculates a connection weight between pixels in a plurality of pixels constituting one frame, and determines a leader cell by the method described above. (Step S41).
- the image division unit 5 determines whether or not a self-ignitable cell has been detected (step S42). When it is determined that a self-ignitable cell has been detected, self-ignition is performed by the method described above (step S42). S43).
- step S44 determines whether or not the ignition cell exists (step S44), and when the ignition cell exists, performs ignition (region growth) to the surroundings by the method described above (step S45). And a series of operation
- step S44 If it is determined in step S44 that there is no ignition cell, the image segmentation unit 5 performs the end of ignition and area determination by the method described above, and performs labeling (extinguishing) (step S46). Thereafter, the series of operations returns to step S42, and steps S42 to S46 are repeatedly executed until it is determined in step S42 that no self-ignitable cell is detected.
- step S42 If it is determined in step S42 that no self-ignitable cell is detected, the series of operations ends.
- the image dividing unit 5 repeatedly executes the flowchart shown in FIG. 21 to divide each frame into images of the respective objects.
- FIG. 22 is a flowchart for explaining the compression processing method according to the third embodiment.
- the flowchart shown in FIG. 22 is the same as the flowchart shown in FIG. 7 except that steps S51 to S53 are added to steps S2 to S5 of the flowchart shown in FIG.
- the image dividing unit 5 of the compression processing apparatus 10B divides the original image into a plurality of images according to the flowchart shown in FIG. 21 (step S51).
- step S5 If it is determined in step S5 that the encoding has been completed for all the subsets, it is determined whether the encoding has been completed for all the images (step S53).
- step S53 When it is determined in step S53 that encoding has not been completed for all images, the series of operations returns to step S52, and in step S53, it is determined that encoding has been completed for all images. Steps S52, S2 to S5, and S53 described above are repeatedly executed until it is done.
- step S53 if it is determined in step S53 that encoding has been completed for all the images, a series of operations is completed.
- FIG. 23 is a schematic block diagram showing another configuration of the compression processing apparatus according to the third embodiment.
- the compression processing apparatus according to Embodiment 3 may be a compression processing apparatus 10C shown in FIG.
- the compression processing apparatus 10C is obtained by adding the image unit 5 to the compression processing apparatus 10A shown in FIG. 8, and the rest is the same as the compression processing apparatus 10A.
- the image dividing unit 5 is as described above. Accordingly, the compression processing apparatus 10C divides the original image into a plurality of images while paying attention to the object, and each of the divided plurality of images is suitable for division into a plurality of subsets and a plurality of subsets. While creating a plurality of Huffman encoding tables, a process for Huffman encoding all the encoding target data included in the plurality of subsets is executed to compress the original image data.
- FIG. 24 is a flowchart for explaining another compression processing method according to the third embodiment.
- the flowchart shown in FIG. 24 is the same as the flowchart shown in FIG. 18 except that steps S51 to S53 are added to steps S32 to S39 of the flowchart shown in FIG.
- step S51 and S52 are sequentially executed, and thereafter, the above-described steps S32 to S39 are sequentially executed.
- step S53 described above is executed, and in step S53, it is determined that encoding has been completed for all images. Then, the series of operations ends.
- the original image is divided into a plurality of images while paying attention to the object, and the compression processing method or the embodiment according to the first embodiment is performed on each of the divided plurality of images.
- the original image data is compressed using the compression processing method 2.
- each divided image is composed of similar image data. Therefore, data compression can be flexibly performed by applying the Huffman coding according to the first and second embodiments to these images.
- the landscape shown in FIG. 5 is divided into three images: an image made up of the sky, an image made up of the mountains, and an image made up of the ground.
- each of the three images is made up of symbol strings having similar appearance frequencies, so that a Huffman coding table that can flexibly correspond to each image can be created. Therefore, data compression can be performed flexibly.
- the image division is performed by using the region growing type image division method.
- the present invention is not limited to this, and the image division is performed in the following (1) to (4). It may be performed using the methods described.
- the present invention is not limited to this, and the compression processing apparatus and the compression processing method according to the present invention process text data and audio data. You may compress by the method mentioned above.
- the present invention is applied to a compression processing apparatus capable of improving compression efficiency.
- the present invention is also applied to a compression processing method capable of improving compression efficiency.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
Description
図1は、この発明の実施の形態1による圧縮処理装置の構成を示す概略ブロック図である。図1を参照して、この発明の実施の形態1による圧縮処理装置10は、処理部1と、分割ユニット2と、テーブル作成ユニット3と、符号化ユニット4とを備える。
図8は、実施の形態2による圧縮処理装置の概略ブロック図である。図8を参照して、実施の形態2による圧縮処理装置10Aは、図1に示す圧縮処理装置10の分割ユニット2、テーブル作成ユニット3および符号化ユニット4をエンコーダ11および最適器12に代えたものであり、その他は、圧縮処理装置10と同じである。
図19は、実施の形態3による圧縮処理装置の概略ブロック図である。図19を参照して、実施の形態3による圧縮処理装置10Bは、図1に示す圧縮処理装置10に画像分割ユニット5を追加したものであり、その他は、圧縮処理装置10と同じである。
(2)J. C. Russ, “The Image Processing Handbook,” CRC PRESS, pp. 371-429, 1999.36
(3)T. Braeunl, S. Feyrer, W. Rapf, and M. Reinhardt, “Parallel Image Processing,”Springer-Verlag, 2000.
(4)W. Y. Ma, and B. S. Manjunath, “Edgeflow: a technique for boundary detection and segmentation,” IEEE Transactions on Image Processing, vol. 9 (8), pp. 1375-1388, 2004.
その他は、実施の形態1,2と同じである。
Claims (14)
- 入力データを圧縮して圧縮データを出力する圧縮処理装置であって、
前記入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する分割ユニットと、
前記複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、前記圧縮データを出力する符号化ユニットとを備える圧縮処理装置。 - 1つの部分集合に含まれる符号化対象データの出現頻度を調べて前記1つの部分集合に対応するハフマン符号化テーブルを作成する処理を前記複数の部分集合の全てについて実行し、前記複数のハフマン符号化テーブルを作成するテーブル作成ユニットをさらに備える、請求の範囲第1項に記載の圧縮処理装置。
- 前記符号化ユニットは、前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、請求の範囲第1項に記載の圧縮処理装置。
- 各々が複数のハフマン符号からなる第1および第2の符号化テーブルを保持するテーブル保持ユニットと、
前記第1および第2の符号化テーブルのうち、前記入力データのハフマン符号化に用いられていない一方の符号化テーブルを前記符号化対象データの出現頻度に応じて出現頻度が最も多い符号化対象データが最も短いハフマン符号に変換されるように更新する更新ユニットとをさらに備え、
前記符号化ユニットは、前記圧縮データの圧縮率がしきい値以下であるとき、前記第1および第2の符号化テーブルのうちの他方の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化し、前記圧縮率が前記しきい値よりも大きくなると、前記更新ユニットによって更新された一方の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、請求の範囲第3項に記載の圧縮処理装置。 - 前記更新ユニットは、全ての符号化対象データに対して出現頻度をカウントするとともに、1つの符号化対象データに対する出現頻度が最大値に達する毎に、前記出現頻度が前記最大値に達した順番が早いほど短い長さを有する新しいハフマン符号を前記1つの符号化対象データに対して割り当てる処理を前記全ての符号化対象データに対して実行し、前記一方の符号化テーブルを更新する、請求の範囲第4項に記載の圧縮処理装置。
- 前記更新ユニットは、前記符号化ユニットから出力された圧縮データに基づいて前記圧縮率を演算するとともに、その演算した圧縮率が前記しきい値よりも大きくなったとき、または前記全ての符号化対象データに対して前記新しいハフマン符号を割り当てたとき、前記符号化テーブルを切換えるための切換信号を生成して前記符号化ユニットへ出力し、
前記符号化ユニットは、前記切換信号に応じて前記符号化テーブルを切換え、その切換え後の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、請求の範囲第5項に記載の圧縮処理装置。 - 画像に含まれる対象物に基づいて前記画像を複数の画像に分割して複数の入力データを生成する画像分割ユニットをさらに備え、
前記分割ユニットは、前記複数の入力データのうちの1つの入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する処理を前記複数の入力データの全てに対して実行し、
前記符号化ユニットは、前記1つの入力データから分割された複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、前記圧縮データを出力する処理を前記複数の入力データの全てに対して実行する、請求の範囲第1項に記載の圧縮処理装置。 - 入力データを圧縮して圧縮データを出力する圧縮処理方法であって、
分割ユニットが、前記入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する第1のステップと、
符号化ユニットが、前記複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、前記圧縮データを出力する第2のステップとを備える圧縮処理方法。 - テーブル作成ユニットが、1つの部分集合に含まれる符号化対象データの出現頻度を調べて前記1つの部分集合に対応するハフマン符号化テーブルを作成する処理を前記複数の部分集合の全てについて実行し、前記複数のハフマン符号化テーブルを作成する第3のステップをさらに備える、請求の範囲第8項に記載の圧縮処理方法。
- 前記第2のステップにおいて、前記符号化ユニットは、前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、請求項8に記載の圧縮処理方法。
- 更新ユニットが、各々が複数のハフマン符号からなる第1および第2の符号化テーブルのうち、前記入力データのハフマン符号化に用いられていない一方の符号化テーブルを符号化対象データの出現頻度に応じて出現頻度が最も多い符号化対象データが最も短いハフマン符号に変換されるように更新する第3のステップをさらに備え、
前記第2のステップにおいて、前記符号化ユニットは、前記圧縮データの圧縮率がしきい値以下であるとき、前記第1および第2の符号化テーブルのうちの他方の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化し、前記圧縮率が前記しきい値よりも大きくなると、前記一方の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、請求の範囲第10項に記載の圧縮処理方法。 - 前記第3のステップは、
前記更新ユニットが、全ての符号化対象データに対して出現頻度をカウントする第1のサブステップと、
前記更新ユニットが、1つの符号化対象データに対する出現頻度が最大値に達する毎に、前記出現頻度が前記最大値に達した順番が早いほど短い長さを有する新しいハフマン符号を前記1つの符号化対象データに対して割り当てる処理を前記全ての符号化対象データに対して実行し、前記一方の符号化テーブルを更新する第2のサブステップとを含む、請求の範囲第11項に記載の圧縮処理方法。 - 前記第3のステップは、
前記更新ユニットが、前記符号化ユニットから出力された圧縮データに基づいて前記圧縮率を演算する第3のサブステップと、
前記更新ユニットが、前記第3のサブステップにおいて演算された圧縮率が前記しきい値よりも大きくなったとき、または前記全ての符号化対象データに対して前記新しいハフマン符号を割り当てたとき、前記符号化テーブルを切換えるための切換信号を生成して前記符号化ユニットへ出力する第4のサブステップとをさらに含み、
前記第2のステップにおいて、前記符号化ユニットは、前記切換信号に応じて前記符号化テーブルを切換え、その切換え後の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、請求の範囲第12項に記載の圧縮処理方法。 - 画像分割ユニットが、画像に含まれる対象物に基づいて前記画像を複数の画像に分割して複数の入力データを生成する第3のステップをさらに備え、
前記第1のステップにおいて、前記分割ユニットは、前記複数の入力データのうちの1つの入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する処理を前記複数の入力データの全てに対して実行し、
前記第2のステップにおいて、前記符号化ユニットは、前記1つの入力データから分割された複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、前記圧縮データを出力する処理を前記複数の入力データの全てに対して実行する、請求の範囲第8項に記載の圧縮処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/002065 WO2010013290A1 (ja) | 2008-07-31 | 2008-07-31 | 圧縮処理装置および圧縮処理方法 |
JP2008552632A JP4303312B1 (ja) | 2008-07-31 | 2008-07-31 | 圧縮処理装置および圧縮処理方法 |
US12/664,946 US7860328B2 (en) | 2008-07-31 | 2008-07-31 | Compression processing apparatus and compression processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/002065 WO2010013290A1 (ja) | 2008-07-31 | 2008-07-31 | 圧縮処理装置および圧縮処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010013290A1 true WO2010013290A1 (ja) | 2010-02-04 |
Family
ID=40972393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2008/002065 WO2010013290A1 (ja) | 2008-07-31 | 2008-07-31 | 圧縮処理装置および圧縮処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7860328B2 (ja) |
JP (1) | JP4303312B1 (ja) |
WO (1) | WO2010013290A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012249280A (ja) * | 2011-04-14 | 2012-12-13 | Fujitsu Ltd | データ処理システム及びデータ処理方法 |
JP2022510733A (ja) * | 2019-02-22 | 2022-01-27 | グーグル エルエルシー | 複数の画像全体の圧縮 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2947069A1 (fr) * | 2009-06-19 | 2010-12-24 | Thomson Licensing | Procede de selection de versions d'un document parmi une pluralite de versions recues a la suite d'une recherche, et recepteur associe |
GB2489272B (en) * | 2011-03-23 | 2013-03-13 | Toshiba Res Europ Ltd | An image processing system and method |
US9792350B2 (en) | 2013-01-10 | 2017-10-17 | International Business Machines Corporation | Real-time classification of data into data compression domains |
US9564918B2 (en) * | 2013-01-10 | 2017-02-07 | International Business Machines Corporation | Real-time reduction of CPU overhead for data compression |
US9053121B2 (en) | 2013-01-10 | 2015-06-09 | International Business Machines Corporation | Real-time identification of data candidates for classification based compression |
US10423596B2 (en) | 2014-02-11 | 2019-09-24 | International Business Machines Corporation | Efficient caching of Huffman dictionaries |
US9337862B2 (en) * | 2014-06-09 | 2016-05-10 | Tidal Systems, Inc. | VLSI efficient Huffman encoding apparatus and method |
US10613797B2 (en) * | 2017-06-13 | 2020-04-07 | ScaleFlux, Inc. | Storage infrastructure that employs a low complexity encoder |
CN116193113A (zh) * | 2022-12-07 | 2023-05-30 | 辉羲智能科技(上海)有限公司 | 数据解压和压缩方法及装置 |
CN116074514B (zh) * | 2023-04-06 | 2023-06-02 | 深圳市银河通信科技有限公司 | 一种多媒体数据的安全通信云广播系统 |
CN116346940B (zh) * | 2023-05-29 | 2023-08-22 | 德州禹工环保设备有限公司 | 一种智慧海绵城市的监测管理系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06237448A (ja) * | 1993-02-12 | 1994-08-23 | Toshiba Corp | 可変長符号化及び復号化装置 |
JP2005012495A (ja) * | 2003-06-19 | 2005-01-13 | Olympus Corp | 画像処理装置、画像処理方法及び画像処理プログラム |
JP2006217145A (ja) * | 2005-02-02 | 2006-08-17 | Murata Mach Ltd | 画像処理装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5253078A (en) * | 1990-03-14 | 1993-10-12 | C-Cube Microsystems, Inc. | System for compression and decompression of video data using discrete cosine transform and coding techniques |
JPH10336647A (ja) * | 1997-06-04 | 1998-12-18 | Nikon Corp | 画像圧縮装置および画像圧縮処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
-
2008
- 2008-07-31 US US12/664,946 patent/US7860328B2/en not_active Expired - Fee Related
- 2008-07-31 WO PCT/JP2008/002065 patent/WO2010013290A1/ja active Application Filing
- 2008-07-31 JP JP2008552632A patent/JP4303312B1/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06237448A (ja) * | 1993-02-12 | 1994-08-23 | Toshiba Corp | 可変長符号化及び復号化装置 |
JP2005012495A (ja) * | 2003-06-19 | 2005-01-13 | Olympus Corp | 画像処理装置、画像処理方法及び画像処理プログラム |
JP2006217145A (ja) * | 2005-02-02 | 2006-08-17 | Murata Mach Ltd | 画像処理装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012249280A (ja) * | 2011-04-14 | 2012-12-13 | Fujitsu Ltd | データ処理システム及びデータ処理方法 |
JP2022510733A (ja) * | 2019-02-22 | 2022-01-27 | グーグル エルエルシー | 複数の画像全体の圧縮 |
JP7147075B2 (ja) | 2019-02-22 | 2022-10-04 | グーグル エルエルシー | 複数の画像全体の圧縮 |
Also Published As
Publication number | Publication date |
---|---|
JP4303312B1 (ja) | 2009-07-29 |
US7860328B2 (en) | 2010-12-28 |
US20100189351A1 (en) | 2010-07-29 |
JPWO2010013290A1 (ja) | 2012-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4303312B1 (ja) | 圧縮処理装置および圧縮処理方法 | |
US6597812B1 (en) | System and method for lossless data compression and decompression | |
JP3017380B2 (ja) | データ圧縮方法及び装置並びにデータ伸長方法及び装置 | |
US6028963A (en) | Image encoding based on judgement on prediction error | |
JPH0937271A (ja) | 画像圧縮方法 | |
US8600183B2 (en) | Optimized method and system for entropy coding | |
US10225569B2 (en) | Data storage control apparatus and data storage control method | |
US20060153443A1 (en) | Image compression usable with animated images | |
US7583849B2 (en) | Lossless image compression with tree coding of magnitude levels | |
US11595057B2 (en) | Reducing error in data compression | |
EP3343446A1 (en) | Method and apparatus for encoding and decoding lists of pixels | |
Constantinescu et al. | Improved techniques for single-pass adaptive vector quantization | |
KR19980081853A (ko) | 그래픽 이미지 압축 및 복원 방법 | |
CN105099460B (zh) | 字典压缩方法、字典解压缩方法与字典建构方法 | |
US10930020B2 (en) | Texture compression using a neural network | |
JPS63250277A (ja) | 状態入力生成装置 | |
US20050193022A1 (en) | Method and apparatus for lossless compression and decompression of data | |
CN114463450A (zh) | 基于人工智能的计算机图像压缩方法及系统 | |
JPH104557A (ja) | 画像処理装置、及び方法、及びその方法を記憶した記憶媒体 | |
CN117097905B (zh) | 一种无损图像分块压缩方法、设备、存储介质 | |
Makarichev et al. | Comparison of DAT with DCT in a Viewpoint of Current Image Processing and Analysis Trends | |
Kamal | Iteration free fractal image compression for color images using vector quantization, genetic algorithm and simulated annealing | |
CN111565317A (zh) | 图像压缩方法、编解码网络训练方法、装置及电子设备 | |
Tilki et al. | Image data compression using multiple bases representation | |
CN112200301B (zh) | 卷积计算装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2008552632 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12664946 Country of ref document: US |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08790329 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: 08790329 Country of ref document: EP Kind code of ref document: A1 |