USRE37507E1 - Variable length coding/decoding method of image data and apparatus thereof - Google Patents
Variable length coding/decoding method of image data and apparatus thereof Download PDFInfo
- Publication number
- USRE37507E1 USRE37507E1 US08/820,812 US82081297A USRE37507E US RE37507 E1 USRE37507 E1 US RE37507E1 US 82081297 A US82081297 A US 82081297A US RE37507 E USRE37507 E US RE37507E
- Authority
- US
- United States
- Prior art keywords
- run
- data
- level
- block
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
-
- 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/46—Conversion 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
- H03M7/48—Conversion 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 alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
-
- 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/115—Selection of the code volume for a coding unit prior to coding
-
- 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/146—Data rate or code amount at the encoder output
- H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
-
- 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
- H04N19/176—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 the region being a block, e.g. a macroblock
-
- 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/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
-
- 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/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- 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/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/197—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
-
- 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
-
- 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
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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/90—Methods 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/93—Run-length coding
-
- 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/124—Quantisation
-
- 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/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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/146—Data rate or code amount at the encoder output
-
- 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/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Definitions
- the present invention relates to a coding and decoding method of a digital image data and an apparatus thereof, and more particularly to a variable length coding/decoding method of an image data and an apparatus thereof which can vary the length of an escape sequence during a variable length coding to thereby reduce the amount of a transmitting data to transmit and similarly to thereafter reduce the amount of received data to decode.
- encoding transformations such as Differential Pulse Code Modulation DPCM, vector quantization, Variable Length Coding and the like are performed in order to reduce the large amount of data by removing redundant data contained in the digital image signal.
- FIG. 1 is a block diagram for schematically illustrating a conventional digital signal coding apparatus, the apparatus comprising the means for: performing a transform by Discrete Cosine Transform DCT method on an N ⁇ N block to thereby quantize a transform coefficient; performing a variable length coding on quantized data to thereby compress the data amount substantially; and performing an inverse quantization and inverse transform on the quantized data to thereby perform a motion compensation.
- the image signal is input through an input terminal 10 and is transformed to a signal of a frequency region on an N ⁇ N block unit at an N ⁇ N transform unit 11 and an energy of coefficient thus transformed is mainly gathered towards low frequency components.
- a data transformation is performed on each block by methods such as a DCT, Walsh-Hadamard Transform WHT, Discrete Fourier Transform DFT, Discrete Sine Transform and the like.
- a quantization unit 12 transforms the transform coefficients to representative values of certain levels through a predetermined quantization process.
- variable length coding unit 13 based on statistical characteristics of the representative values, performs the variable length coding, so that the data can be markedly compressed.
- a transformed quantization step size Qss controls the quantization unit to thereby adjust a transmission bit ratio.
- the quantization step size Qss can be transmitted to a receiving end to thereby be utilized by a decoding apparatus.
- the motion is estimated to thereby calculate a vector thereof, and if a data is compensated by utilizing the vector, and because a difference signal between neighboring screens is very small, the transmission data can be substantially compressed.
- an inverse quantization unit 15 and an N ⁇ N inverse transform unit 16 in FIG. 1 perform an inverse quantization on the quantized data output from the quantization unit 12 to thereafter inversely transform the same, so that the same can be transformed to an image signal within a spatial region.
- the image signal output from the inverse transform unit 16 is stored per frame unit on a frame memory 17 and a motion estimating unit 18 seeks a block pattern most similar to the N ⁇ N block data of the input terminal 10 from the frame data stored in the frame memory 17 to thereby calculate a motion vector MV representing a motion between the two blocks.
- the motion vector is transmitted to the receiving end to thereby be utilized by a decoding apparatus and at the same time to thereby be transmitted to a motion compensating unit 19 .
- the motion compensating unit 19 receives the motion vector MV from a motion estimating unit 18 and reads out an N ⁇ N block corresponding to the motion vector MV from a prior frame data outputted from the frame memory 17 to thereby supply the same to an adder A 1 connected to the input terminal 10 .
- the adder A 1 calculates a difference between an N ⁇ N block supplied to the input terminal 10 and an N ⁇ N block of similar pattern supplied from the motion compensating unit 19 , and the output data of the adder A 1 is coded to thereby be transmitted to the receiving end.
- the whole image signals are transmitted and then only a difference signal corresponding to the motion, is transmitted.
- the data whose motion has been compensated at the motion compensating unit 19 is added together with the image signal output to the N ⁇ N inverse transform unit 16 by an adder A 2 and this sum is stored on the frame memory 17 .
- a refresh switch (not shown) is occasionally rendered off by a control means, and because the input image signal is coded by Pulse-Count Modulation PCM mode to thereby be transmitted, only the difference signal is coded, so that an accumulation of codes resulting from the transmission can be refreshed after a predetermined time interval and a transmission error on a channel can be removed at the receiving end within a predetermined period of time.
- the coded image data is transmitted to the receiving end to thereby be input to the decoding apparatus as indicated in FIG. 2 .
- the coded image data is decoded at a variable length decoding unit 21 via an inverse coding process.
- the data input from the variable length decoding unit 21 is inversely quantized at an inverse quantization unit 22 .
- the magnitude of an output transform coefficient is adjusted by the quantization step size Qss supplied from the coding apparatus.
- An N ⁇ N inverse transform unit 23 transforms a frequency region transform coefficient supplied from the inverse quantization unit 22 into image data within a spatial region.
- the motion vector MV transmitted from the coding apparatus as illustrated in FIG. 1 is supplied to a motion compensating unit 24 of the decoding apparatus, which reads out an N ⁇ N block corresponding to the motion vector MV from a frame data stored on a frame memory 25 to thereafter compensate for the motion and to thereby supply the same to an adder A 3 .
- the adder A 3 adds an inversly transformed DPCM data to an N ⁇ N block of data supplied from the motion compensating unit 24 to thereby output the same to a display unit.
- FIGS. 3A-3C are schematic drawings for illustrating a quantization process of an image data.
- a sampling of image data of an N ⁇ N block as indicated in FIG. 3A is transformed to a transform coefficient of a frequency region as illustrated in FIG. 3B by a DCT and the like.
- the transform coefficient is quantized, the same is scanned in a zig-zag pattern as illustrated in FIG. 3C to thereby be coded in a formal.
- a low frequency component is started first as illustrated in FIG. 3 C and then a high frequency component is scanned to thereby be coded as a “run” and “level” pair.
- the “run” corresponds to a number of “0's” existing among the non-zero quantized coefficients of the N ⁇ N block and the “level” corresponds to an absolute value of the coefficients which are not “0”.
- the “run” can have a value ranging from “0” to “63”.
- the “level” varies according to a data value output from the quantization unit, for example, if a quantization output value is expressed as an integer from “ ⁇ 255” to “+255”, the “level” comes to have a value from “1” to “255”.
- a regular region and escape region are partitioned according to the occurring frequency of the symbols so that a Huffman code is utilized to thereby code the image data for the regular region where the occurring frequency is relatively high, and the image data is coded utilizing an escape sequence for the symbols in the escape region where the occurring frequency is low.
- the Huffman code allocates a short-length code when the occurring frequency of symbol is high and a long length code is allocated when the occurring frequency of symbol is low.
- the escape sequence which has coded a data of escape region comprises an escape code ESC, run, level and sign data respectively having predetermined bits as indicated in the following formula (1)
- the escape sequence has an escape code data ESC of 6-bit, a run data of 6-bit, a level data L of 8-bit and a sign data RUN S of 1-bit, totalling 21-bit of fixed data length.
- variable length coding/decoding method image data and an apparatus thereof which can variably adjust a length of an escape data using a variable length coding method encoding a transmission signal to thereby improve markedly a data compression efficiency.
- a variable length coding/decoding method of an image data comprising the processes of: transforming sampled image data to a transform coefficient of frequency region, quantizing and scanning the same in a predetermined direction, so at symbol data having a “run” and a “level” as a pair can be calculated (first process); coding and transmitting the symbol data calculated from the first process by Huffman code when the data belongs to a regular region, and when the data belongs to an escape region, coding the turn up to the maximum run length in a bit number which can express the run, and coding and transmitting the “level” by determining the bit numbers necessary for an expression in accordance with a quantization step size (second process); and discriminating the coded data transmitted from the second process by a data length of the run and level to thereafter decode the same (third process).
- a variable length coding/decoding apparatus for encoding/decoding image data, the apparatus comprising the means of: dividing an image data into blocks having predetermined numbers of sampling data, transforming the sampled data to a transform coefficient of frequency region, quantizing and scanning the same in a predetermined direction and calculating a symbol having the “run” and “level” as a pair (first means); coding the symbol data calculated from the first means by Huffman code when the data belongs to a regular region (second means); the “run” in a bit number which can express the run up to a maximum run length when the symbol calculated from the first means belongs to an escape region, and coding and transmitting the “level” by determining the bit numbers necessary for an expression in accordance with a quantization step size (third means); and discriminating the coded data transmitted from the third means by a data length of the run and level to thereafter decode the same (fourth means).
- FIG. 1 is a block diagram for illustrating one embodiment of a conventional image data coding apparatus
- FIG. 2 is a block diagram for illustrating one embodiment of a conventional image data decoding apparatus
- FIGS. 3A-3C are schematic drawings for illustrating a conventional quantization process of the image data
- FIG. 4 is a region diagram in accordance with an occurring frequency of a symbol during a conventional two dimentional Huffman coding
- FIG. 5 is a block diagram for illustrating a preferred embodiment of a variable length coding apparatus in accordance with the present invention
- FIG. 6 is a flow chart of one embodiment of a variable length coding method in accordance with the present invention.
- FIG. 7 is a flow chart of another embodiment of an improved variable length coding method in accordance with the present invention.
- FIG. 8 is a flow chart of a preferred embodiment of a variable length decoding method in accordance with the present invention.
- the apparatus in FIG. 5 comprises: a delayer 51 which is loaded with a predetermined value when a variable length coding operation on each block is started, and is supplied with a run value of [run, level] symbol capable of expressing a maximum run length; a run coded length determining unit 52 for determining a bit number NBr necessary for coding data in accordance with the maximum potential run value supplied from the delayer 51 ; a run coding unit 53 for coding the run data in accordance with the bit number NBr determined by the run coded length determining unit 52 ; a level coded length determining unit 54 for determining a bit number NB 1 necessary for expressing a level value by receiving a quantization step size Qss; and a level coding unit 55 for coding the level data in accordance with the bit number NB 1 determined by the level coded length determining unit 54 .
- a block start signal BST is inputted to the delayer 51 to thereby load an initial value.
- a delayer 51 outputs the decreased new maximum potential run value.
- the run coded length determining unit 52 determines the number of bits NBr necessary for coding the run data in accordance with the maximum potential run value supplied from the delayer 51 .
- the run coding unit 53 codes the run data in a substantially smaller number of bits to thereby output coded run data in accordance with the bit number NBr determined from the run coded length determining unit 52 .
- the level coded length determining unit 54 determines the number of bits NB 1 necessary for expressing the level in accordance with an incoming quantization step size Qss.
- a number of values which a quantization output level can possess can be determined when the maximum potential value of the transform coefficient is divided by the quantization step size, Qss so that the number of bits NB 1 necessary for expressing the level can be determined.
- the level coding unit codes the level data into a substantially smaller number of bits to thereby output the same in accordance with the number of bits NB 1 determined by the level coded length determining unit 54 .
- a run value of “000011” is added with “1” at the first adder A 1 to thereby be supplied to the second adder A 2 , and the second adder A 2 subtracts an input run value from the current maximum potential run value.
- a result thereof is utilized in order to process the subsequent [run, level], and as for the currently-inputted run data, in accordance with the maximum potential run stored in the delayer 51 , the run coded length is determined to thereby be run-coded.
- the run coded length determining unit 52 determines the run coded length NBr to be 6-bits to thereby output the same.
- the value “63” is inputted to the adder A 2 , and “1” is added to the run data to thereby subtract that sum from the value “63” and to input that difference to the delayer 51 .
- the run coded length determining unit 52 determines the run coded length NBr to be 3-bits and thereby outputs the number of bits NBr as “3”.
- the run coding unit 53 finally codes “000011” of the run data as “011” to thereby output the same.
- the quantization step size Qss supplied to the level coded length determining unit 54 is relatively a large value and the number of potential quantized values is 50, then 50 quantized values can be expressed in 6-bits, and the level coded length determining unit 54 determines 6-bits as the level coded NB 1 to thereby output a value of “6”.
- the level coded unit 55 finally codes “00001010” of level data as “001010” in 6-bits of level data to thereby output the same.
- the escape sequence adds the escape code data of “6-bit”, the run data from “0-bit” to “6-bit”, the level data from “0-bit” to “8-bit” and “1-bit” of sign data to thereby make a variable length of “7-bit” to “21-bit”.
- variable length corresponds to a data length wherein unnecessary leading “0's” are removed from the run data and level data of the escape sequence.
- the quantization step size is transmitted to a decoding apparatus for an inverse quantization, the number of bits necessary for expressing the level can be synchronized by utilizing the quantization step size, so that no additional information is needed.
- FIG. 6 is a flow chart of one embodiment of a variable length coding method in accordance with the present invention.
- a block start signal BST is generated, step 601 , and an initial value is loaded on the delayer, step 602 .
- the block is scanned and the initial value is set to correspond to a maximum potential run value among the coded run values.
- the block 8 ⁇ 8 is thus having “63” as an initial value, the number of the run coded length is established as “6”, step 603 , and the level coded length is determined by the quantization step size, step 604 .
- step 605 the flow discriminates whether the symbol data belongs to the regular region, step 606 .
- a regular Huffman code is allocated in accordance with a probability distribution to thereby be coded, step 607 , and if the data does not belong to the regular region, the same is coded by the escape sequence, step 608 .
- the escape sequence can be obtained.
- the run coded length is determined by the new maximum potential run value, step 610 .
- the run coded length is utilized for determining a run data length in a coding process of subsequent symbol data.
- the coded symbol belongs to the regular region, the symbol is coded by the regular Huffman code to thereby be outputted, and if the symbol belongs to the escape region, the symbol is coded by the escape sequence to thereby be outputted.
- the coded data is discriminated as to whether the same is the end of the block, step 611 , and if the data is not the end of the block, next [run, level+ ⁇ code] symbol data is inputted, step 605 , and if the data is the end of the block, a Huffman code corresponding to the end of the block is generated, step 612 , and a notice is given that a variable length coding on one block has been finished.
- the run data and level data have variable lengths and subsequently the escape sequence has variable lengths ranging from “7-bit” to “21-bit”.
- the coded data length can be markedly shortened by coding of the escape data instead of by a coding of the Huffman code.
- FIG. 7 shows a process wherein variable length coding is performed on one block in accordance with a variable length coding method thus improved.
- a block start signal is generated, step 701 , so that an initial maximum potential run value is loaded, step 702 .
- an initial run coded length (6-bit, as the 8 ⁇ 8 block is presented in the present embodiment to thereby have a maximum potential run of “63”) is established, step 703 , and according to the quantization step size, the level coded length is determined, step 704 .
- step 705 After a symbol data of [run, level+code] is inputted, step 705 , a step leading to a discrimination step as to whether the inputted symbol data belongs to the regular region is identical to the example indicated in FIG. 6 .
- the run data and level data are coded according to the run coded length and level coded length determined in the preceding steps to thereby output the escape sequence, step 709 .
- the symbol data is coded by the regular Huffmam code, step 708 and at the same time, the escape sequence is coded, step 707 .
- step 710 the length of the resulting Huffman code and the escape length are compared, step 710 , and the shorter data length of the two is outputted, steps 711 and 712 .
- the resulting Huffman code or escape data is outputted according to the region where the symbol belongs or to the data length to thereafter calculate the maximum potential run value, step 713 , so that the run coded length can be determined, step 714 .
- step 715 a discrimination is made as to whether or not the coded symbol is an end of the block, step 715 , and if the symbol is not the end of the block, subsequent symbol data is supplied to thereby perform the aforesaid coded process.
- a Huffman code corresponding to the block end signal is generated, step 716 .
- FIG. 8 is a flow chart for explaining a preferred embodiment of the variable length decoding method in accordance with the present invention.
- a block start signal is generated, step 801 , so that an initial maximum potential run value is loaded, step 802 .
- the run coded length is set at 6-bit as an initial value, step 803 , and the level coded length is determined according to the quantization step size transmitted from the coding apparatus, step 802 .
- step 805 when the coded data is inputted from the coding apparatus, step 805 , the coded data is checked as to whether the data is the escape sequence, step 806 .
- step 807 If the checked result shows that the coded data is the escape sequence, a decoding process is performed on the escape sequence, step 807 .
- the escape data is classified to fit to a respective data number of bits and is thereby interpreted as the run data and level data, so that a decoding can be realized.
- the discrimination result shows that the coded data is the regular Huffman code
- the regular Huffman code is decoded, step 808 .
- step 809 the decoded run data and “1” are subtracted from the current maximum potential run value, so that a new maximum potential run value can be calculated, step 810 .
- the new run coded length is determined, step 811 , and the run coded length is utilized in the decoding process of next coded data.
- a discrimination is made as to whether the currently decoded symbol data is an end of the block, step 812 , and if not a decoding process identical to the one explained in the aforesaid is again performed by receiving the coded data transmitted from the coding apparatus. If the symbol data is the end of the block, a block end signal is generated, notifying a decoding process that one block has been finished, step 813 .
- variable length coding and decoding methods and apparatuses in accordance with the present invention can be characterized in that adaptively different coding and decoding methods can be performed in accordance with the frequency of occurrence of quantized symbol data to thereby compress the data.
- the length of run data and level data of the data coded at the escape sequence can be variably controlled to thereby be coded, and the transmitted data can be substantially compressed by receiving the coded data to thereby decode in the same manner.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
A method of variable length coding/decoding of image data and an apparatus thereof can vary the length of an escape sequence during variable length coding to thereby reduce the amount of transmitted data.
The method of variable length coding/decoding includes the steps of loading an initial potential maximum run length; determining a number of bits necessary to express the potential maximum run length, coding a run length using the necessary number of bits and decreasing the potential maximum ran length by an amount equal to the previously coded run length to arrive at a new potential maximum ran length until an end of a block to be encoded has been reached.
Description
1. Field of the Invention
The present invention relates to a coding and decoding method of a digital image data and an apparatus thereof, and more particularly to a variable length coding/decoding method of an image data and an apparatus thereof which can vary the length of an escape sequence during a variable length coding to thereby reduce the amount of a transmitting data to transmit and similarly to thereafter reduce the amount of received data to decode.
2. Description of the Prior Art
Recently, in order to improve picture quality, a method has become popular an image in which signal is coded and processed by digital data.
However, when an image signal is digitally encoded, the amount of data become voluminous.
Therefore, encoding transformations such as Differential Pulse Code Modulation DPCM, vector quantization, Variable Length Coding and the like are performed in order to reduce the large amount of data by removing redundant data contained in the digital image signal.
FIG. 1 is a block diagram for schematically illustrating a conventional digital signal coding apparatus, the apparatus comprising the means for: performing a transform by Discrete Cosine Transform DCT method on an N×N block to thereby quantize a transform coefficient; performing a variable length coding on quantized data to thereby compress the data amount substantially; and performing an inverse quantization and inverse transform on the quantized data to thereby perform a motion compensation.
In FIG. 1, the image signal is input through an input terminal 10 and is transformed to a signal of a frequency region on an N×N block unit at an N×N transform unit 11 and an energy of coefficient thus transformed is mainly gathered towards low frequency components.
A data transformation is performed on each block by methods such as a DCT, Walsh-Hadamard Transform WHT, Discrete Fourier Transform DFT, Discrete Sine Transform and the like.
A quantization unit 12 transforms the transform coefficients to representative values of certain levels through a predetermined quantization process.
A variable length coding unit 13 based on statistical characteristics of the representative values, performs the variable length coding, so that the data can be markedly compressed.
Meanwhile, in accordance with a state of a buffer 14 where a variable-length-coded data is stored, a transformed quantization step size Qss controls the quantization unit to thereby adjust a transmission bit ratio. The quantization step size Qss can be transmitted to a receiving end to thereby be utilized by a decoding apparatus.
Furtheremore, because there are usually many similarities between portions of screens, and in the case of a screen containing motion, the motion is estimated to thereby calculate a vector thereof, and if a data is compensated by utilizing the vector, and because a difference signal between neighboring screens is very small, the transmission data can be substantially compressed.
In order to perform a motion compensation, an inverse quantization unit 15 and an N×N inverse transform unit 16 in FIG. 1 perform an inverse quantization on the quantized data output from the quantization unit 12 to thereafter inversely transform the same, so that the same can be transformed to an image signal within a spatial region.
The image signal output from the inverse transform unit 16 is stored per frame unit on a frame memory 17 and a motion estimating unit 18 seeks a block pattern most similar to the N×N block data of the input terminal 10 from the frame data stored in the frame memory 17 to thereby calculate a motion vector MV representing a motion between the two blocks.
The motion vector is transmitted to the receiving end to thereby be utilized by a decoding apparatus and at the same time to thereby be transmitted to a motion compensating unit 19.
The motion compensating unit 19 receives the motion vector MV from a motion estimating unit 18 and reads out an N×N block corresponding to the motion vector MV from a prior frame data outputted from the frame memory 17 to thereby supply the same to an adder A1 connected to the input terminal 10.
Then, the adder A1 calculates a difference between an N×N block supplied to the input terminal 10 and an N×N block of similar pattern supplied from the motion compensating unit 19, and the output data of the adder A1 is coded to thereby be transmitted to the receiving end.
In other words, at first, the whole image signals are transmitted and then only a difference signal corresponding to the motion, is transmitted.
Meanwhile, the data whose motion has been compensated at the motion compensating unit 19 is added together with the image signal output to the N×N inverse transform unit 16 by an adder A2 and this sum is stored on the frame memory 17.
A refresh switch (not shown) is occasionally rendered off by a control means, and because the input image signal is coded by Pulse-Count Modulation PCM mode to thereby be transmitted, only the difference signal is coded, so that an accumulation of codes resulting from the transmission can be refreshed after a predetermined time interval and a transmission error on a channel can be removed at the receiving end within a predetermined period of time.
In this manner, the coded image data is transmitted to the receiving end to thereby be input to the decoding apparatus as indicated in FIG. 2.
The coded image data is decoded at a variable length decoding unit 21 via an inverse coding process.
The data input from the variable length decoding unit 21 is inversely quantized at an inverse quantization unit 22.
Within the inverse quantization unit 22, the magnitude of an output transform coefficient is adjusted by the quantization step size Qss supplied from the coding apparatus.
An N×N inverse transform unit 23 transforms a frequency region transform coefficient supplied from the inverse quantization unit 22 into image data within a spatial region.
Furthermore, the motion vector MV transmitted from the coding apparatus as illustrated in FIG. 1 is supplied to a motion compensating unit 24 of the decoding apparatus, which reads out an N×N block corresponding to the motion vector MV from a frame data stored on a frame memory 25 to thereafter compensate for the motion and to thereby supply the same to an adder A3.
Then, the adder A3 adds an inversly transformed DPCM data to an N×N block of data supplied from the motion compensating unit 24 to thereby output the same to a display unit.
FIGS. 3A-3C are schematic drawings for illustrating a quantization process of an image data.
A sampling of image data of an N×N block as indicated in FIG. 3A is transformed to a transform coefficient of a frequency region as illustrated in FIG. 3B by a DCT and the like.
After the transform coefficient is quantized, the same is scanned in a zig-zag pattern as illustrated in FIG. 3C to thereby be coded in a formal.
When the N×N block is scanned, a low frequency component is started first as illustrated in FIG. 3C and then a high frequency component is scanned to thereby be coded as a “run” and “level” pair.
Here, the “run” corresponds to a number of “0's” existing among the non-zero quantized coefficients of the N×N block and the “level” corresponds to an absolute value of the coefficients which are not “0”.
By way of example, in the case of an 8×8 block, the “run” can have a value ranging from “0” to “63”.
The “level” varies according to a data value output from the quantization unit, for example, if a quantization output value is expressed as an integer from “−255” to “+255”, the “level” comes to have a value from “1” to “255”.
The reference symbols, “+” or “−” are expressed by separate sign bits.
As seen from the foregoing, it is utilized as a symbol, and if the Run is large or Level is large, an occurring frequency of the symbols is very low statistically.
Accordingly, as illustrated in FIG. 4, a regular region and escape region are partitioned according to the occurring frequency of the symbols so that a Huffman code is utilized to thereby code the image data for the regular region where the occurring frequency is relatively high, and the image data is coded utilizing an escape sequence for the symbols in the escape region where the occurring frequency is low.
Here, the Huffman code allocates a short-length code when the occurring frequency of symbol is high and a long length code is allocated when the occurring frequency of symbol is low.
Furthermore, the escape sequence which has coded a data of escape region comprises an escape code ESC, run, level and sign data respectively having predetermined bits as indicated in the following formula (1)
For example, as mentioned in the aforesaid, when the quantized value at the 8×8 block ranges “from −255 to 255”, the escape sequence has an escape code data ESC of 6-bit, a run data of 6-bit, a level data L of 8-bit and a sign data RUN S of 1-bit, totalling 21-bit of fixed data length.
In this way, in a conventional variable length coding method, various additional information was transmitted along with coded data, and furthermore because the escape data has a predetermined fixed length, there has been a limit to coding the transmission data to thereby compress the data amount.
Accordingly, it is an object of the present invention to provide a variable length coding/decoding method image data and an apparatus thereof which can variably adjust a length of an escape data using a variable length coding method encoding a transmission signal to thereby improve markedly a data compression efficiency.
In accordance with one aspect of the present invention there is provided a variable length coding/decoding method of an image data, the method comprising the processes of: transforming sampled image data to a transform coefficient of frequency region, quantizing and scanning the same in a predetermined direction, so at symbol data having a “run” and a “level” as a pair can be calculated (first process); coding and transmitting the symbol data calculated from the first process by Huffman code when the data belongs to a regular region, and when the data belongs to an escape region, coding the turn up to the maximum run length in a bit number which can express the run, and coding and transmitting the “level” by determining the bit numbers necessary for an expression in accordance with a quantization step size (second process); and discriminating the coded data transmitted from the second process by a data length of the run and level to thereafter decode the same (third process).
In accordance with another aspect of the present invention, there is provided a variable length coding/decoding apparatus for encoding/decoding image data, the apparatus comprising the means of: dividing an image data into blocks having predetermined numbers of sampling data, transforming the sampled data to a transform coefficient of frequency region, quantizing and scanning the same in a predetermined direction and calculating a symbol having the “run” and “level” as a pair (first means); coding the symbol data calculated from the first means by Huffman code when the data belongs to a regular region (second means); the “run” in a bit number which can express the run up to a maximum run length when the symbol calculated from the first means belongs to an escape region, and coding and transmitting the “level” by determining the bit numbers necessary for an expression in accordance with a quantization step size (third means); and discriminating the coded data transmitted from the third means by a data length of the run and level to thereafter decode the same (fourth means).
For fuller understanding of the nature and objects of the invention, reference should be made to the following detailed description taken in conjunction with the accompanying drawings in which:
FIG. 1 is a block diagram for illustrating one embodiment of a conventional image data coding apparatus;
FIG. 2 is a block diagram for illustrating one embodiment of a conventional image data decoding apparatus;
FIGS. 3A-3C are schematic drawings for illustrating a conventional quantization process of the image data;
FIG. 4 is a region diagram in accordance with an occurring frequency of a symbol during a conventional two dimentional Huffman coding;
FIG. 5 is a block diagram for illustrating a preferred embodiment of a variable length coding apparatus in accordance with the present invention;
FIG. 6 is a flow chart of one embodiment of a variable length coding method in accordance with the present invention;
FIG. 7 is a flow chart of another embodiment of an improved variable length coding method in accordance with the present invention; and
FIG. 8 is a flow chart of a preferred embodiment of a variable length decoding method in accordance with the present invention.
Hereinafter, a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.
The apparatus in FIG. 5 comprises: a delayer 51 which is loaded with a predetermined value when a variable length coding operation on each block is started, and is supplied with a run value of [run, level] symbol capable of expressing a maximum run length; a run coded length determining unit 52 for determining a bit number NBr necessary for coding data in accordance with the maximum potential run value supplied from the delayer 51; a run coding unit 53 for coding the run data in accordance with the bit number NBr determined by the run coded length determining unit 52; a level coded length determining unit 54 for determining a bit number NB1 necessary for expressing a level value by receiving a quantization step size Qss; and a level coding unit 55 for coding the level data in accordance with the bit number NB1 determined by the level coded length determining unit 54.
When variable length coding is started on each block, a block start signal BST is inputted to the delayer 51 to thereby load an initial value.
For example, in the case of an 8×8 block, “63” is loaded into the delayer 51.
When the [run, level] symbol is applied, the run data and “1” are added together by the first adder A1, and the second adder A2 subtracts the value thereof from the maximum potential rum value stored on the delayer 51.
Subsequently, a delayer 51 outputs the decreased new maximum potential run value.
The run coded length determining unit 52 determines the number of bits NBr necessary for coding the run data in accordance with the maximum potential run value supplied from the delayer 51.
Then, the run coding unit 53 codes the run data in a substantially smaller number of bits to thereby output coded run data in accordance with the bit number NBr determined from the run coded length determining unit 52.
Furthermore, the level coded length determining unit 54 determines the number of bits NB1 necessary for expressing the level in accordance with an incoming quantization step size Qss.
In other words, a number of values which a quantization output level can possess can be determined when the maximum potential value of the transform coefficient is divided by the quantization step size, Qss so that the number of bits NB1 necessary for expressing the level can be determined.
Then, the level coding unit codes the level data into a substantially smaller number of bits to thereby output the same in accordance with the number of bits NB1 determined by the level coded length determining unit 54.
For example, an explanation is given below in a case where the run value of the [run, level] symbol supplied to the apparatus of FIG. 5 is “000011” using 6-bits, and the level value is “00001010” of 8-bit.
First, a run value of “000011” is added with “1” at the first adder A1 to thereby be supplied to the second adder A2, and the second adder A2 subtracts an input run value from the current maximum potential run value.
A result thereof is utilized in order to process the subsequent [run, level], and as for the currently-inputted run data, in accordance with the maximum potential run stored in the delayer 51, the run coded length is determined to thereby be run-coded.
In other words, in case of the 8×8 block, because the maximum potential “run” at the initial stage is “63” which is stored in the delayer 51, the run coded length determining unit 52 determines the run coded length NBr to be 6-bits to thereby output the same.
The value “63” is inputted to the adder A2, and “1” is added to the run data to thereby subtract that sum from the value “63” and to input that difference to the delayer 51.
In this way, the maximum potential “run” is decreased, so that the number of bits representing the “run” is decreased.
If the maximum potential run stored on the delayer 51 is assumed as “6” because the “6” can be expressed in 3-bits, then the run coded length determining unit 52 determines the run coded length NBr to be 3-bits and thereby outputs the number of bits NBr as “3”.
Then, the run coding unit 53 finally codes “000011” of the run data as “011” to thereby output the same.
Furthermore, if the quantization step size Qss supplied to the level coded length determining unit 54 is relatively a large value and the number of potential quantized values is 50, then 50 quantized values can be expressed in 6-bits, and the level coded length determining unit 54 determines 6-bits as the level coded NB1 to thereby output a value of “6”.
Then, the level coded unit 55 finally codes “00001010” of level data as “001010” in 6-bits of level data to thereby output the same.
Accordingly, because the escape sequence run data has a data length from “0-bit” to “6-bit” and the level data has a data length from “0-bit” to “8-bit” the escape sequence adds the escape code data of “6-bit”, the run data from “0-bit” to “6-bit”, the level data from “0-bit” to “8-bit” and “1-bit” of sign data to thereby make a variable length of “7-bit” to “21-bit”.
In other words, the variable length corresponds to a data length wherein unnecessary leading “0's” are removed from the run data and level data of the escape sequence.
Meanwhile, because a pointer position under a current scan of the coding apparatus automatically corresponds to that of a decoding apparatus, the numbers of bits necessary for expressing the run value can be synchronized even though additional information is not sent.
Furthermore, even in the case of the level, because the quantization step size is transmitted to a decoding apparatus for an inverse quantization, the number of bits necessary for expressing the level can be synchronized by utilizing the quantization step size, so that no additional information is needed.
FIG. 6 is a flow chart of one embodiment of a variable length coding method in accordance with the present invention.
First of all, when a variable length coding on random block is started, a block start signal BST is generated, step 601, and an initial value is loaded on the delayer, step 602.
The block is scanned and the initial value is set to correspond to a maximum potential run value among the coded run values.
In the present invention, because the block 8×8 is thus having “63” as an initial value, the number of the run coded length is established as “6”, step 603, and the level coded length is determined by the quantization step size, step 604.
Then, when a symbol data of [run, level+code] is inputted, step 605, the flow discriminates whether the symbol data belongs to the regular region, step 606.
If the symbol data belongs to the regular region as a result of the discrimination, a regular Huffman code is allocated in accordance with a probability distribution to thereby be coded, step 607, and if the data does not belong to the regular region, the same is coded by the escape sequence, step 608.
In other words, because the run data and level data are coded in accordance with the run coded length and level coded length determined in the previous step, the escape sequence can be obtained.
Then, the current run data and “1” are subtracted from the current maximum potential run value to thereby calculate a new maximum potential run value, step 609.
The run coded length is determined by the new maximum potential run value, step 610.
The run coded length is utilized for determining a run data length in a coding process of subsequent symbol data.
In this manner, if the coded symbol belongs to the regular region, the symbol is coded by the regular Huffman code to thereby be outputted, and if the symbol belongs to the escape region, the symbol is coded by the escape sequence to thereby be outputted.
Thereinafter, the coded data is discriminated as to whether the same is the end of the block, step 611, and if the data is not the end of the block, next [run, level+−code] symbol data is inputted, step 605, and if the data is the end of the block, a Huffman code corresponding to the end of the block is generated, step 612, and a notice is given that a variable length coding on one block has been finished.
In this way, the run data and level data have variable lengths and subsequently the escape sequence has variable lengths ranging from “7-bit” to “21-bit”.
Therefore, in some cases, even in the case of a symbol of the regular region, the coded data length can be markedly shortened by coding of the escape data instead of by a coding of the Huffman code.
FIG. 7 shows a process wherein variable length coding is performed on one block in accordance with a variable length coding method thus improved.
A block start signal is generated, step 701, so that an initial maximum potential run value is loaded, step 702.
Then, an initial run coded length (6-bit, as the 8×8 block is presented in the present embodiment to thereby have a maximum potential run of “63”) is established, step 703, and according to the quantization step size, the level coded length is determined, step 704.
After a symbol data of [run, level+code] is inputted, step 705, a step leading to a discrimination step as to whether the inputted symbol data belongs to the regular region is identical to the example indicated in FIG. 6.
If the discrimination result shows that the symbol data does not belong to the regular region, the run data and level data are coded according to the run coded length and level coded length determined in the preceding steps to thereby output the escape sequence, step 709.
If the discrimination result shows that the symbol belongs to the regular region, the symbol data is coded by the regular Huffmam code, step 708 and at the same time, the escape sequence is coded, step 707.
Then, the length of the resulting Huffman code and the escape length are compared, step 710, and the shorter data length of the two is outputted, steps 711 and 712.
In this manner, the resulting Huffman code or escape data is outputted according to the region where the symbol belongs or to the data length to thereafter calculate the maximum potential run value, step 713, so that the run coded length can be determined, step 714.
Then, a discrimination is made as to whether or not the coded symbol is an end of the block, step 715, and if the symbol is not the end of the block, subsequent symbol data is supplied to thereby perform the aforesaid coded process.
If the symbol is the end of the block, a Huffman code corresponding to the block end signal is generated, step 716.
FIG. 8 is a flow chart for explaining a preferred embodiment of the variable length decoding method in accordance with the present invention.
First of all, when decoding is started on a block, a block start signal is generated, step 801, so that an initial maximum potential run value is loaded, step 802.
Furthermore, the run coded length is set at 6-bit as an initial value, step 803, and the level coded length is determined according to the quantization step size transmitted from the coding apparatus, step 802.
Then, when the coded data is inputted from the coding apparatus, step 805, the coded data is checked as to whether the data is the escape sequence, step 806.
If the checked result shows that the coded data is the escape sequence, a decoding process is performed on the escape sequence, step 807.
In other words, after the respective number of bits of the run data and level data are determined according to the run coded length and level coded length determined in the preceding steps, the escape data is classified to fit to a respective data number of bits and is thereby interpreted as the run data and level data, so that a decoding can be realized.
Meanwhile, if the discrimination result shows that the coded data is the regular Huffman code, the regular Huffman code is decoded, step 808.
After the decoded symbol data is outputted in this way, step 809, the decoded run data and “1” are subtracted from the current maximum potential run value, so that a new maximum potential run value can be calculated, step 810.
According to the calculated maximum potential run value, the new run coded length is determined, step 811, and the run coded length is utilized in the decoding process of next coded data.
A discrimination is made as to whether the currently decoded symbol data is an end of the block, step 812, and if not a decoding process identical to the one explained in the aforesaid is again performed by receiving the coded data transmitted from the coding apparatus. If the symbol data is the end of the block, a block end signal is generated, notifying a decoding process that one block has been finished, step 813.
As mentioned in the foregoing, a series of coding and decoding methods have been described here in terms of two dimentional data, however the coding and decoding methods having one-dimensional data or data having 2 levels “0” and “1” can be applied as well, so that the length of the escape sequence to be coded can be variable.
As seen from the aforesaid, the variable length coding and decoding methods and apparatuses in accordance with the present invention can be characterized in that adaptively different coding and decoding methods can be performed in accordance with the frequency of occurrence of quantized symbol data to thereby compress the data. The length of run data and level data of the data coded at the escape sequence can be variably controlled to thereby be coded, and the transmitted data can be substantially compressed by receiving the coded data to thereby decode in the same manner.
The foregoing description and drawings are illustrative and are not to be taken as limiting. Still other variations and modifications are possible without departing from the spirit and scope of the present invention.
Claims (17)
1. A method of variable length coding of image data, the method comprising the steps of:
dividing the image data into a plurality of blocks, each said block formed of N×N pixels, wherein N is an integer;
transforming each said block to obtain transform coefficients of each said block;
quantizing said transform coefficients of each said block;
scanning said quantized transform coefficients in a predetermined pattern within each said block to arrange the quantized transform coefficients into a one-dimensional sequence of transform coefficients;
converting said one-dimensional sequence into symbol data having a run component and a level component;
determining a potential maximum run value;
(1) determining whether said symbol data is found within a regular region or an escape region;
(2) assigning a Huffman code to said symbol data if said symbol data is within said regular region and outputting said Huffman code of said symbol;
(3) if said symbol data is within said escape region,
a) determining an escape code number of bits necessary to represent sod potential maximum run value;
b) assigning a run code having the escape code number of bits to the run component of said symbol data and outputting said assigned run code of said ran length;
c) decrementing said maximum run potential value by a value equal to said run component plus one;
d) determining a number of level bits based upon a quantization step size value;
e) assigning a code to said level component using said number of determined level bits and outputting said assigned level code of said level component;
(4) determining if an end of the block has been reached, and asserting an end of block signal if the end of the block has been determined; and
if the end of the block has not been reached, repeating steps (1)-(4).
2. A method of variable length coding of image data as recited in claim 1 wherein,
said potential maximum run value is equal to N2−1 for the N×N block.
3. A method of variable length coding of image data, the method comprising the steps of:
dividing the image data into a plurality of blocks, each said block formed of N×N pixels, wherein N is an integer;
transforming each said block to obtain transform coefficients of each said block;
quantizing said transform coefficients of each said block;
scanning said quantized transform coefficients in a predetermined pattern within each said block to arrange the quantized transform coefficients into a one-dimensional sequence of transform coefficients;
converting said one dimensional sequence into symbol data having a run component and a level component;
determining a potential maximum run value;
(1) determining whether said symbol data is found within a regular region or an escape region;
(2) if said symbol data is found in the regular region, assigning a Huffman code to said symbol data,
(3) if said symbol data is found in the regular region,
a) determining an escape code number of bits necessary to represent said potential maximum run value;
b) assigning a run code having the escape code number of bits to the run component of said symbol data;
c) decrementing said potential maximum run value by a value equal to said run component plus one;
d) determining a number of level bits based upon a quantization step size value;
e) assigning a code using said number of determined level bits to said level component;
f) outputting said assigned Huffman code if a number of bits of said assigned Huffman code is less than a number of bits of said escape codes of said run length and level codes together;
g) outputting said escape codes of said run length and level codes together if the number of bits of said escape code of said run length and level codes together is less than the length of the assigned Huffman code;
(4) if said symbol data is within said escape region,
a) determining an escape code number of bits necessary to represent said potential maximum run value;
b) assigning a run code having the escape code number of bits to the run component of said symbol data and outputting said assigned run code of said run length;
c) decrementing said maximum run potential value by a value equal to said run component plus one;
d) determining a number of level bits based upon a quantization step size value;
e) assigning a code using said number of determined level bits to said level component and outputting said assigned level code of said level component;
(5) determining if an end of the block has been reached, and asserting an end of block signal if the end of the block has been reached; and
if the end of the block has not been reached, then repeating steps (1)-(5).
4. A method of variable length coding of image data as recited in claim 3 wherein,
said potential maximum run value is equal to N2−1 for the N×N block.
5. An apparatus for variable length coding of image data, the apparatus comprising:
first means for dividing the image data into a plurality of blocks, each said block formed of N×N pixels, wherein N is an integer;
second means for transforming each said block to obtain transform coefficients of each said block;
third means for quantizing said transform coefficients of each said block;
fourth means for scanning said quantized transform coefficients in a predetermined pattern within each said block to arrange the quantized transform coefficients into a one-dimensional sequence of transform coefficients;
fifth means for converting said one dimensional sequence into symbol data having a run component and a level component;
sixth means for determining a potential maximum run value;
seventh means for determining whether said symbol data is found within a regular region or an escape region, assigning a Huffman code to said symbol data if said symbol data is within said regular region and outputting said Huffman code of said symbol;
eighth means for determining an escape code number of bits necessary to represent said potential maximum run value, assigning a run code having the escape code number of bits to the run component of said symbol data and outputting said assigned run code of said run length, and decrementing said potential maximum run value by a value equal to said run component plus one;
ninth means for determining a number of level bits based upon a quantization step size value, assigning a code to said level component using said number of determined level bits and outputting said assigned level code of said level component;
tenth means for determining if an end of the block has been reached, and for outputting an end of block signal.
6. An apparatus for variable length coding of image data as recited in claim 5 , wherein
said sixth means determines that said potential maximum run value is N2−1 for an N×N block.
7. An apparatus for variable length coding of image data as recited in claim 5 , wherein said eighth means comprises:
a delaying means for loading, storing and outputting the potential maximum run value when coding on the block is started;
a subtracting means for subtracting from the potential maximum run value a value of a run length plus one;
a run coding length determining means for determining a run coded length, which is a number of bits necessary for expressing the potential maximum run value supplied from the delaying means;
a run coding means for coding the run data in accordance with the run coded length determined by the run coding length determining means;
a level coding length determining means for determining a level coded length, which is a number of bits necessary for expressing a quantized value calculated according to a quantization step size; and
a level coding means for coding the level data in accordance with the level coded length determined by the level coding length determining means.
8. A method of coding a data signal by means of runlength encoding, comprising the steps of:
(a) storing a maximum potential runlength;
(b) producing a runlength signal, having the number of bits required to express the stored maximum potential runlength from an input signal representing run data based on whether symbol data corresponding to the input signal is found in a regular region or an escape region, wherein a Huffman code is assigned if the symbol data is within said regular region and a run code corresponding to an escape sequence is assigned if the symbol data is within said escape region;
(c) producing a new maximum potential runlength by subtracting said run data from a predetermined factor from the stored maximum potential runlength;
(d) storing the new maximum potential runlength; and
(e) repeating steps (b) to (d).
9. A method of decoding a data signal, coded according to claim 8 comprising the steps of:
(a) storing a maximum potential runlength;
(b) extracting run data from an input coded data signal, the extracted run data having the same number of bits as the stored maximum potential runlength;
(c) producing a new maximum potential runlength by subtracting said run data and a predetermined factor from the stored maximum potential runlength;
(d) storing the new maximum potential runlength; and
(e) repeating steps (b) to (d).
10. A data signal decoding apparatus comprising:
storage means for storing a maximum potential runlength;
input means for receiving a coded data signal;
decoding means responsive to the necessary bit length of a maximum potential runlength stored in a storage means to output the runlength data of the coded data signal as a run signal having the same number of bits as the stored maximum runlength; and
means to generate a new potential runlength in dependence on the run signal and the stored maximum runlength.
11. A method of decoding a digital data signal, comprising:
(a) loading a maximum potential run value;
(b) decoding run data from an input compressed data signal, the decoded run data having the same number of bits as the maximum potential run value of (a);
(c) producing a new maximum potential run value by subtracting said run data and a predetermined factor from the maximum potential run value of (a);
(d) determining whether the data signal is an end of the block; and
(e) repeating (b) to (d) using the new maximum run value in place of maximum run value if it is determined in (d) that the data signal is not the end of the block.
12. A method of decoding a digital data signal according to claim 11 further comprising:
(f) setting a run coded length to a predetermined value; and
(g) determining a level coded length according to a quantization step size, wherein (a) is performed in response to a block start signal.
13. A variable length coded signal decoding method comprising:
(a) determining the number of bits of a symbol of an input signal which convey run length data;
(b) decoding said run length data;
(c) decoding level data in said symbol; and
(d) producing an output signal based on the decoded run length data and the decoded level data.
14. A variable length coded signal decoding method comprising:
(a) determining whether an input signal is one of a first signal according to a first code and a second signal produced by:
(a1 ) storing a maximum potential run value;
(a2 ) producing from an input run data signal a run length signal having a number of bits required for the stored maximum potential run value;
(a3 ) producing a new maximum potential run value by subtracting said run length signal produced in (a2 ) and a predetermined factor from said maximum potential run value of (a1 );
(a4 ) storing the new maximum potential run value; and
(a5 ) repeating (a2 ) through (a5 ) using the new maximum potential run value in place of the maximum potential run value of (a1 ) and
(b) decoding the input signal in response to a result of (a).
15. The variable length coded signal decoding method according to claim 14 , wherein the second signal is further produced by;
(a6 ) determining number of bits required to represent a level signal based on a quantization step signal; and
(a7 ) producing a level signal having the number of bits determined in (a6 ), wherein (a6 ) and (a7 ) are performed prior to performing (a5 ).
16. The variable length coded signal decoding method according to claim 15 , wherein said first code is a Huffman code.
17. The variable length coded signal decoding method according to claim 14 , wherein said first code is a Huffman code.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/820,812 USRE37507E1 (en) | 1992-05-30 | 1997-03-28 | Variable length coding/decoding method of image data and apparatus thereof |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019920009397A KR0162197B1 (en) | 1992-05-30 | 1992-05-30 | Image data variable length coding and decoding method and device |
KR92-9397 | 1992-05-30 | ||
US08/069,914 US5402123A (en) | 1992-05-30 | 1993-06-01 | Variable length coding/decoding method of image data and apparatus thereof |
US08/820,812 USRE37507E1 (en) | 1992-05-30 | 1997-03-28 | Variable length coding/decoding method of image data and apparatus thereof |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/069,914 Reissue US5402123A (en) | 1992-05-30 | 1993-06-01 | Variable length coding/decoding method of image data and apparatus thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
USRE37507E1 true USRE37507E1 (en) | 2002-01-15 |
Family
ID=19333953
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/069,914 Ceased US5402123A (en) | 1992-05-30 | 1993-06-01 | Variable length coding/decoding method of image data and apparatus thereof |
US08/820,812 Expired - Lifetime USRE37507E1 (en) | 1992-05-30 | 1997-03-28 | Variable length coding/decoding method of image data and apparatus thereof |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/069,914 Ceased US5402123A (en) | 1992-05-30 | 1993-06-01 | Variable length coding/decoding method of image data and apparatus thereof |
Country Status (4)
Country | Link |
---|---|
US (2) | US5402123A (en) |
JP (1) | JP2633793B2 (en) |
KR (1) | KR0162197B1 (en) |
GB (1) | GB2267410B (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463103B1 (en) * | 1998-01-16 | 2002-10-08 | Ess Technology, Inc. | Frame-based sign inversion method and system for spectral shaping for pulse-coded-modulation modems |
US20030048953A1 (en) * | 2001-09-13 | 2003-03-13 | Kerofsky Louis J. | Fast image decompression via look up table |
US20030146858A1 (en) * | 2002-02-05 | 2003-08-07 | Yen-Kuang Chen | Method and apparatus for variable length coding |
US20040021592A1 (en) * | 2002-01-22 | 2004-02-05 | Marta Karczewicz | Adaptive variable length coding of digital video |
US7538697B1 (en) * | 2008-02-27 | 2009-05-26 | Red Hat, Inc. | Heuristic modeling of adaptive compression escape sequence |
US8988257B2 (en) | 2011-10-21 | 2015-03-24 | International Business Machines Corporation | Data compression utilizing variable and limited length codes |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3235903B2 (en) * | 1992-06-11 | 2001-12-04 | 株式会社リコー | Still camera |
KR0155784B1 (en) | 1993-12-16 | 1998-12-15 | 김광호 | Adaptable variable coder/decoder method of image data |
KR0141875B1 (en) * | 1994-11-30 | 1998-06-15 | 배순훈 | Run length decoder |
EP1802141A2 (en) * | 1995-03-15 | 2007-06-27 | Kabushiki Kaisha Toshiba | Moving picture coding and/or decoding systems |
WO1996033558A1 (en) * | 1995-04-18 | 1996-10-24 | Advanced Micro Devices, Inc. | Method and apparatus for hybrid vlc bitstream decoding |
US5864637A (en) * | 1995-04-18 | 1999-01-26 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by selective reduction of spatial resolution |
US5872866A (en) * | 1995-04-18 | 1999-02-16 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by predetermination of IDCT results based on image characteristics |
US6002801A (en) * | 1995-04-18 | 1999-12-14 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics |
US5764168A (en) * | 1995-11-30 | 1998-06-09 | Daewoo Electronics Co., Ltd. | Runlength coding method and apparatus for use in a video signal encoding system |
US5991340A (en) * | 1996-06-25 | 1999-11-23 | Seiko Epson Corporation | Method and system for encoding and decoding data using run prediction |
JP3410629B2 (en) * | 1997-05-21 | 2003-05-26 | シャープ株式会社 | Variable length coding circuit and variable length coding method |
US6549671B1 (en) * | 1998-02-19 | 2003-04-15 | Matsushita Electric Industrial Co., Ltd. | Picture data encoding apparatus with bit amount adjustment |
US6594398B1 (en) * | 1998-03-06 | 2003-07-15 | Divio, Inc. | Method and apparatus for run-length encoding video data |
JP2000261803A (en) | 1999-03-04 | 2000-09-22 | Sega Enterp Ltd | Coding and decoding method for image information |
JP2002094992A (en) * | 2000-09-19 | 2002-03-29 | Sony Corp | Encoded data length detector and its method and image encoder |
EP1304885A3 (en) * | 2001-09-14 | 2005-04-20 | Siemens Aktiengesellschaft | Method and computer program product for the encoding and decoding of video signal |
KR100992246B1 (en) | 2001-11-22 | 2010-11-05 | 파나소닉 주식회사 | Coding method and coding apparatus |
AU2003219198A1 (en) * | 2002-04-02 | 2003-10-13 | Nokia Corporation | Coding transform coefficients in image / video encoder and/or decoders |
EP1590767A1 (en) * | 2003-01-23 | 2005-11-02 | Koninklijke Philips Electronics N.V. | Embedding a watermark in a coded signal |
WO2006032167A1 (en) * | 2004-09-24 | 2006-03-30 | Huawei Technologies Co., Ltd. | Video encoding/decoding method |
CN101419495B (en) * | 2007-10-22 | 2012-05-30 | 国际商业机器公司 | Method and device for reducing I /O power in computer system and the computer system |
US9264707B2 (en) * | 2013-02-04 | 2016-02-16 | Google Inc. | Multi-symbol run-length coding |
US10448058B2 (en) | 2015-05-21 | 2019-10-15 | Qualcomm Incorporated | Grouping palette index at the end and index coding using palette size and run value |
US9712828B2 (en) * | 2015-05-27 | 2017-07-18 | Indian Statistical Institute | Foreground motion detection in compressed video data |
US9614546B2 (en) * | 2015-08-09 | 2017-04-04 | Armoya Yuksek Teknoloji Arastirmalari Elektronik Sanayi Ve Ticaret Anonim Sirketi | Data compression and decompression method |
CN112703738B (en) * | 2018-08-03 | 2024-07-16 | V-诺瓦国际有限公司 | Upsampling for signal enhancement coding |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4121259A (en) * | 1975-11-25 | 1978-10-17 | Dr.-Ing. Rudolf Hell Gmbh | Method for digital run-length coding with redundance reduction for transmission of binarily coded picture informations |
US4626829A (en) * | 1985-08-19 | 1986-12-02 | Intelligent Storage Inc. | Data compression using run length encoding and statistical encoding |
US4646061A (en) * | 1985-03-13 | 1987-02-24 | Racal Data Communications Inc. | Data communication with modified Huffman coding |
US4819079A (en) * | 1983-02-14 | 1989-04-04 | Canon Kabushiki Kaisha | Data processing apparatus |
US5140322A (en) * | 1990-08-28 | 1992-08-18 | Ricoh Company, Ltd. | Coder unit for variable word length code |
US5289190A (en) * | 1990-12-27 | 1994-02-22 | Kabushiki Kaisha Toshiba | Recording/reproducing apparatus including control signal indicating high-efficiency coding |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0260748B1 (en) * | 1986-09-13 | 1994-07-13 | Philips Patentverwaltung GmbH | Bitrate reduction method and circuitry |
JPH0377476A (en) * | 1989-08-19 | 1991-04-03 | Victor Co Of Japan Ltd | Method and apparatus for variable length coding |
GB2260458B (en) * | 1991-10-04 | 1995-03-22 | Sony Broadcast & Communication | Data decoder |
-
1992
- 1992-05-30 KR KR1019920009397A patent/KR0162197B1/en not_active IP Right Cessation
-
1993
- 1993-05-28 GB GB9311105A patent/GB2267410B/en not_active Expired - Lifetime
- 1993-05-31 JP JP12898693A patent/JP2633793B2/en not_active Expired - Lifetime
- 1993-06-01 US US08/069,914 patent/US5402123A/en not_active Ceased
-
1997
- 1997-03-28 US US08/820,812 patent/USRE37507E1/en not_active Expired - Lifetime
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4121259A (en) * | 1975-11-25 | 1978-10-17 | Dr.-Ing. Rudolf Hell Gmbh | Method for digital run-length coding with redundance reduction for transmission of binarily coded picture informations |
US4819079A (en) * | 1983-02-14 | 1989-04-04 | Canon Kabushiki Kaisha | Data processing apparatus |
US4646061A (en) * | 1985-03-13 | 1987-02-24 | Racal Data Communications Inc. | Data communication with modified Huffman coding |
US4626829A (en) * | 1985-08-19 | 1986-12-02 | Intelligent Storage Inc. | Data compression using run length encoding and statistical encoding |
US5140322A (en) * | 1990-08-28 | 1992-08-18 | Ricoh Company, Ltd. | Coder unit for variable word length code |
US5289190A (en) * | 1990-12-27 | 1994-02-22 | Kabushiki Kaisha Toshiba | Recording/reproducing apparatus including control signal indicating high-efficiency coding |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463103B1 (en) * | 1998-01-16 | 2002-10-08 | Ess Technology, Inc. | Frame-based sign inversion method and system for spectral shaping for pulse-coded-modulation modems |
US20030048953A1 (en) * | 2001-09-13 | 2003-03-13 | Kerofsky Louis J. | Fast image decompression via look up table |
US7046852B2 (en) * | 2001-09-13 | 2006-05-16 | Sharp Laboratories Of America, Inc. | Fast image decompression via look up table |
US20040021592A1 (en) * | 2002-01-22 | 2004-02-05 | Marta Karczewicz | Adaptive variable length coding of digital video |
US6690307B2 (en) * | 2002-01-22 | 2004-02-10 | Nokia Corporation | Adaptive variable length coding of digital video |
US6879268B2 (en) | 2002-01-22 | 2005-04-12 | Nokia Corporation | Adaptive variable length coding of digital video |
US20030146858A1 (en) * | 2002-02-05 | 2003-08-07 | Yen-Kuang Chen | Method and apparatus for variable length coding |
US6798364B2 (en) * | 2002-02-05 | 2004-09-28 | Intel Corporation | Method and apparatus for variable length coding |
US7538697B1 (en) * | 2008-02-27 | 2009-05-26 | Red Hat, Inc. | Heuristic modeling of adaptive compression escape sequence |
US8988257B2 (en) | 2011-10-21 | 2015-03-24 | International Business Machines Corporation | Data compression utilizing variable and limited length codes |
Also Published As
Publication number | Publication date |
---|---|
KR930024507A (en) | 1993-12-22 |
US5402123A (en) | 1995-03-28 |
JP2633793B2 (en) | 1997-07-23 |
JPH0677843A (en) | 1994-03-18 |
GB2267410B (en) | 1996-05-01 |
KR0162197B1 (en) | 1998-12-15 |
GB9311105D0 (en) | 1993-07-14 |
GB2267410A (en) | 1993-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE37507E1 (en) | Variable length coding/decoding method of image data and apparatus thereof | |
US5654706A (en) | System for variable length decoding digital transmission data which has been compressed by selecting a scanning pattern | |
EP0519962B1 (en) | Digital image coding using a random scanning of image frames | |
JP2661985B2 (en) | Digital video signal encoding device and corresponding decoding device | |
US5714950A (en) | System for variable-length-coding and variable-length-decoding digitaldata | |
US6912318B2 (en) | Method and system for compressing motion image information | |
US9544599B2 (en) | Context adaptive data encoding | |
KR100496774B1 (en) | Method and apparatus for recompressing with data efficient quantization table for a digital video signal processor | |
JPH08242378A (en) | Method for efficiently and repeatedly decompressing standardadct compressed image | |
US6011499A (en) | Encoding/decoding video signals using multiple run-val mapping tables | |
US5561422A (en) | Method and apparatus for variable length coding with reduced memory requirement | |
KR100233536B1 (en) | Run-level symbol decoder and the method | |
JP2988825B2 (en) | Variable length encoding method and apparatus using small memory | |
JP2785209B2 (en) | Data transmission equipment | |
KR0134359B1 (en) | Coding and decoding system of variable scan region | |
KR100233537B1 (en) | Run-level symbol decoding method and the apparatus | |
KR100233538B1 (en) | Run-level symbol decoder and the method | |
KR100245788B1 (en) | Video coding apparatus | |
EP0419141A2 (en) | Bit-rate reduction | |
KR0134358B1 (en) | Coding and decoding system of variable scan method | |
JP3016805B2 (en) | Image data compression method | |
JPH1188191A (en) | Coding method, decoding method, coder and decoder | |
KR19980030781A (en) | Quantization Interval Level Shift Method of Digital VR | |
JPH07123275A (en) | Picture coding unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Fee payment |
Year of fee payment: 8 |
|
SULP | Surcharge for late payment |
Year of fee payment: 7 |
|
FPAY | Fee payment |
Year of fee payment: 12 |