GB2300537A - Differential JPEG encoder - Google Patents
Differential JPEG encoder Download PDFInfo
- Publication number
- GB2300537A GB2300537A GB9508788A GB9508788A GB2300537A GB 2300537 A GB2300537 A GB 2300537A GB 9508788 A GB9508788 A GB 9508788A GB 9508788 A GB9508788 A GB 9508788A GB 2300537 A GB2300537 A GB 2300537A
- Authority
- GB
- United Kingdom
- Prior art keywords
- block
- image data
- difference data
- function
- transformed image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/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
- H04N19/619—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop
Abstract
A transform operation (40) is performed on a block of image data to provide a block of transformed image data. A subtraction operation (41) is performed on the block of transformed image data relative to a stored block (44) of transformed image data to provide a block of difference data. A quantization operation (42) is performed on the block of difference data to provide a block of quantized difference data and the block of quantized difference data is encoded (43). A video encoder is also provided. The encoder performs a subtraction operation (41) to provide difference data in the transform domain which reduces the amount of computation required in prior art differential JPEG encoders.
Description
METHOD OF ENCODING IMAGES AND VIDEO ENCODER
Field of the Invention
This invention relates to a method of encoding images and is particularly applicable to, but not limited to, differential JPEG encoding.
Background of the Invention
JPEG is a standard for compression of still pictures. JPEG is designed for compression of either full-colour or grey-scale images of natural real world scenes and is designed to exploit known limitations of the human eye, mainly the fact that small colour changes are perceived less accurately than small changes in brightness. Therefore, it is intended to compress natural pictures (as opposed to cartoons or text) which will be viewed by humans.
JPEG is a "lossy" procedure (there is also a lossless procedure but the compression rate is significantly lower), meaning that the decoded picture will not be exactly the same as the original picture. A useful feature of JPEG is that the quality, or in other words the degree of lossiness can be varied by the setting of the compression parameters. Therefore, the user can trade off compression rate against image quality.
Differential JPEG is a variation on JPEG applicable to sequential image frames enabling much greater compression per frame. In differential JPEG the difference between two consecutive frames is encoded, using the JPEG algorithm. Since JPEG is a lossy procedure the difference between two consecutive frames is defined as the difference between the current frame and the decoded former frame.
Differential JPEG is used for video encoding at frame rates of typically 25 or 30 frames per second. Existing differential JPEG algorithms are highly computationally demanding.
When transmitting video over a radio link, typical current standard radio links (eg. 25 KHz) have insufficient bandwidth to carry 25 or 30 frames per second even with full differential JPEG coding. In practice, it is possible to transmit one frame every few seconds, but reduction of the frame rate does not reduce the computational requirement per frame.
There is a need for an improved computation method of encoding differential images.
Summarv of the Invention
According to the present invention, a method of encoding images is provided, comprising: performing a transform operation on a block of image data to provide a block of transformed image data; performing a subtraction operation on the block of transformed image data relative to a stored block of transformed image data to provide a block of difference data; performing a quantization operation on the block of difference data to provide a block of quantized difference data and encoding the block of quantized difference data.
By performing the subtraction operation to provide difference data in the transform domain, substantial simplification of the computation is achieved.
A preferred embodiment of the invention is now described, by way of example only.
Glossarv of terms
JPEG - A standardized image compression mechanism named after the Joint Photographic Experts Picture Group.
DCT - Discrete Cosine Transform.
FDCT - Forward Discrete Cosine Transform.
IDCT - Inverse Discrete Cosine Transform.
Pixel - A basic picture element. In the preferred embodiment each pixel is made up of 24 bits. These 24 bits represent 3 colour components, 8 bits represent a Y component, 8 bits represent a Cr component and the remaining 8 bits represent a Cb component.
Component Block - A group of pixels representing only one components made up 8 rows and 8 columns. (64 pixels 8 bits each).
MCU - Minimum Coded Unit. In the preferred embodiment an
MCU consists of two blocks of Y component, one block of Cb component and one block of Cr component (4:2:2).
Brief Description of the Drawings
FIG. 1 illustrates a prior art JPEG encoder.
FIG. 2 illustrates a prior art JPEG decoder.
FIG. 3 illustrates a theoretical simplified version of a prior art differential JPEG encoder and
FIG. 4 illustrates an encoder and encoding method in accordance with the preferred embodiment of the invention.
Detailed Description of the Drawings
DCT based JPEG coding is the procedure for compressing a still picture to the JPEG compressed format. The main procedures for the DCT based coding procedure are illustrated in FIG. 1. The procedure described is done for each colour component.
FIG. 1 illustrates that the prior art JPEG encoder 10 comprises an
FDCT function 11, a quantizer function 12 a Huffman encoder function 13.
The quantizer function 12 has associated quantization tables 14 and the
Huffman encoder 13 has associated Huffman tables 15.
In the encoding process the input component is divided into blocks of 8*8 samples. Each block is transformed by the FDCT function 11 to 64 DCT coefficients. These coefficients are then quantized using specific quantization tables 14. After quantization the quantized coefficients are compressed even further by going through an Entropy encoding procedure (Huffman coding function 13).
It is worth noting that the only lossy procedure in the encoding is the quantization function 12. The FDCT is not a lossy transform since it is a unitary transform and therefore Parsevals' Theorem applies. In addition
Huffman coding is also a lossless procedure. Since the only lossy procedure is the quantization procedure, each DCT coefficient is retrieved with an error proportional to its quantization step in the dequantization procedure.
DCT Based JPEG decoding is the procedure for decoding a compressed still picture back to a sampled picture. The main procedures for the DCT based decoding procedure are described in FIG. 2. In FIG. 2, a
JPEG decoder 20 is shown comprising a Huffman decoder function 23, a dequantizer function 22 and an IDCT function 21. Each procedure 21, 22, 23 in the decoder 20 is the inverse procedure for the corresponding procedure 11,12,13 in the encoder 10.
The Huffman decoder 23 uses the same tables 15 as the encoder 13.
The dequantizer function 22 uses the same quantization tables 14 as the quantizer 12.
The Huffman decoder 23 decodes the quantized DCT coefficients.
The dequantizer 22 dequantizes the DCT coefficients with an error related to the quantization step of each coefficient. After the dequantization the
DCT coefficient are transformed back to a block of 8*8 samples by the IDCT module 21.
A differential JPEG algorithm encodes the difference between two consecutive frames. Based on the assumption that there is little difference between two consecutive frames, the compressed data of the difference is significantly smaller than the compressed frame data.
Since JPEG is a lossy procedure the difference encoded is the difference between the current source image frame and the reconstructed former image frame. The reason that this difference is taken (and not the difference between two source frames) is because the compression is a lossy procedure. If the difference between two source frames is encoded and the current frame is decoded by adding the decoded difference to the former decoded frame, there is an accumulating error. On the other hand if the difference between the current source frame and the former decoded frame is encoded, there is still an error from the compression of the difference itself but since the difference is always measured in relation to the decoded picture it is not accumulative and is only related to the difference being decoded.
Differential JPEG encoding is actually implemented in video compression standards as MPEG and H.261. However, in these video compression standards additional control is applied in order to compensate for motion and blocks with no change are not encoded at all.
The main procedures of the Differential JPEG Encoder (disregarding motion compensation) are described in FIG. 3. The figure illustrates a theoretical differential JPEG encoding procedures, employing the encoder 10 of FIG. 1 and the decoder 20 of FIG. 2. FIG. 3 illustrates a theoretical direct application of differential JPEG encoding assuming that the JPEG encoder 10 and the JPEG decoder 20 are available as closed modules
A subtraction function 30 is provided, receiving source image data and providing differential data to the JPEG encoder 10. A delay or storing function 31 is provided at the output of the JPEG encoder 10, to store encoded difference data from one frame to the next. The JPEG decoder 20 receives the previous difference frame from the storing function 31. A further storing function 32 and an adding function 33 are provided.The adding function 33 sums the output of the storing function 32 to the output of the decoder 20 to provide reconstructed image data which is passed to the subtraction function 30 for subtraction from the incoming image.
Adding function 33 forms a reconstruction of the previous frame by adding the previous frame (retrieved from storing function 32) to the reconstructed difference data for the present frame from decoder 20. The reconstructed image is stored in storing function 32 for the next frame and at the same time is passed to the subtraction function 30 described.
By way of further explanation, it may be noted that for the first frame, storing function 31 stores a complete reconstructed image (rather than difference data), because there is no previous image to be subtracted in subtraction function 30. Upon the occurrence of the second frame being input to subtraction function 30, the complete image from storing function 31 is decoded in decoder 20 and stored in storing function 32, for later adding to the next reconstructed difference data from the decoder 20. Thus it is that the storing function 32 always stores a reconstructed image.
The reconstructed image fA(i1) is subtracted in subtraction function 30 from the source image f(i) and the difference DifF(i) is encoded by the
JPEG encoder 10. The reconstructed image is decoded from the former difference Diffr'(i-l) and the former reconstructed image fA(i2). The procedure of decoding the reconstructed image is the same procedure that is done in the decoder 20. This means that a decoder 20 must be included in the encoder. Notice that in order to encode the difference Diff(i) the encoded difference DiffA(i1) and the reconstructed image f^(i-2) are needed. These are saved in memory stores 31 and 32 respectively by the encoder. The frame needed for DiffA(i1) is not actually a complete frame.
Memory for a single MCU is sufficient.
FIG. 3 also illustrates the decoding procedure for the reconstructed frame f^(i-1). The encoded difference Diff^(i-1) is decoded using the JPEG decoder. The former reconstructed image fA(i2) is added in adder 33 to the decoded difference to receive the decoded frame f^(i-1).
Although it is not illustrated in FIG. 3, the existing differential
JPEG encoding procedure employs motion compensation. Motion compensation is a procedure in which the source image is compared with images in the vicinity of the previous frame, until the best match is found.
A motion vector is calculated between the present frame and the best match in the vicinity of the previous frame. The difference data calculated by subtraction function 30 is between the present frame and a transposed previous frame, that is to say a frame which is transposed by the motion vector. Motion compensation allows for a high rate of compression.
When encoding images at low frame rates, the search area necessary for calculating a motion compensation vector is large and the resultant benefit from employing algorithm has been found to be low. The inventors have identified that by removing motion compensation from an existing Differential JPEG encoder, and by rearrangement of the elements of FIG. 3, the improved algorithm of FIG. 4 can be provided.
The algorithm illustrated in FIG. 4 comprises a DCT function 40, a subtraction function 41, a quantization function 42 and Huffman decoder function 43. A storage function 44 receives the output of the quantization function 42 and stores the output for the next frame. Storing function 44 outputs a previous frame to an inverse quantization function 45 which provides its output to an adding function 46, which provides reconstructed difference frames to either storing function 47. Adding function 46 adds a previously stored reconstructed image frame from storing function 47 to a present reconstructed difference frame from inverse quantization function 45 and supplies a reconstructed image frame to subtraction function 41 for subtracting from a new source image from DCT function 40.
It may be noted that all of the operations 41 to 47 are carried out in the cosine transform domain.
Huffman coding is a lossless operation. Therefore the Huffman encoder and decoder pair of FIG. 3 can be eliminated from the loop and instead a single Huffman encoder 43 is placed at the output. The DCT and
IDCT pair 11 and 21 present in the feedback loop can be eliminated as well and replaced by a single DCT operator 40 at the input. The resultant block diagram shown in FIG. 4 implements the differential JPEG compression by saving the computation needed for one IDCT and one Huffman decoder.
The differentiation procedure is performed in the DCT coefficients domain.
Comparing Figs 1 and 4, it can be seen that the only computational addition to conventional JPEG is one dequantization unit and two addition units. The computational complexity added by these extra modules is less than 20% with respect to original JPEG compression.
The memory needed for DiffA(i1) actually is not a complete frame.
Memory for a single DCT coefficient is sufficient.
In addition, if this algorithm is implemented by a VLSI circuit,
silicon space can be saved due to the elimination of the IDCT and Huffman
decoding operation.
The encoder output of the algorithm of FIG. 4 is the same as in the
algorithm in FIG. 3, so the decoder is the same as decoder 20 shown the
lower part of FIG. 3.
Claims (6)
1. A method of encoding images comprising:
performing a transform operation on a block of image data to provide a block of transformed image data;
performing a subtraction operation on the block of transformed image data relative to a stored block of transformed image data to provide a block of difference data;
performing a quantization operation on the block of difference data to provide a block of quantized difference data and
encoding the block of quantized difference data.
2. A method according to claim 1, further comprising the steps of:
storing the block of quantized difference data to provide a block of stored quantized difference data;
inverse quantizing the block of stored quantized difference data at a later time to provide a block of reconstructed difference data; and
reconstructing a block of transformed image data from the block of reconstructed difference data for performing a subsequent subtraction operation on a subsequent block of transformed image data.
3. A method according to claim 2, comprising the further step of storing the block of reconstructed difference data and, at a later time, adding it to a new block of reconstructed difference data to provide a new block of reconstructed transformed image data.
4. A method according to any one of the preceding claims where the step of performing the transform operation comprises performing a discrete cosine transform operation.
5. A method according to any one of the preceding claims wherein the step of encoding comprises Huffman encoding.
6. A video encoder comprising an input for receiving blocks of image data;
a processor having a transform operation function for performing
transform operations on consecutive blocks of image data received at the
input, to provide consecutive blocks of transformed image data; and
a storage element for storing blocks of transformed image data;
the processor further having:
a subtraction function operatively coupled to the storage element for subtracting a stored block of transformed image data from a block of transformed image data from the transform operation function to provide a block of difference data;
a quantization function for performing quantization of the
block of difference data to provide a block of quantized difference data
and
an encoding function for encoding the block of quantized
difference data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9508788A GB2300537B (en) | 1995-04-29 | 1995-04-29 | Method of encoding images and video encoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9508788A GB2300537B (en) | 1995-04-29 | 1995-04-29 | Method of encoding images and video encoder |
Publications (3)
Publication Number | Publication Date |
---|---|
GB9508788D0 GB9508788D0 (en) | 1995-06-21 |
GB2300537A true GB2300537A (en) | 1996-11-06 |
GB2300537B GB2300537B (en) | 2000-02-16 |
Family
ID=10773772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB9508788A Expired - Fee Related GB2300537B (en) | 1995-04-29 | 1995-04-29 | Method of encoding images and video encoder |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2300537B (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0439624A1 (en) * | 1989-08-23 | 1991-08-07 | Fujitsu Limited | Control system for encoding image |
-
1995
- 1995-04-29 GB GB9508788A patent/GB2300537B/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0439624A1 (en) * | 1989-08-23 | 1991-08-07 | Fujitsu Limited | Control system for encoding image |
Also Published As
Publication number | Publication date |
---|---|
GB9508788D0 (en) | 1995-06-21 |
GB2300537B (en) | 2000-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5467086A (en) | Apparatus and method of coding/decoding video data | |
JP2618083B2 (en) | Image recovery method and apparatus | |
JP3496959B2 (en) | Digital signal encoding apparatus and decoding apparatus | |
US6628716B1 (en) | Hardware efficient wavelet-based video compression scheme | |
US6757438B2 (en) | Method and apparatus for video compression using microwavelets | |
US6130911A (en) | Method and apparatus for compressing reference frames in an interframe video codec | |
US6031937A (en) | Method and apparatus for video compression using block and wavelet techniques | |
EP0561593B1 (en) | Image compression apparatus | |
US20030185303A1 (en) | Macroblock coding technique with biasing towards skip macroblock coding | |
US20060171459A1 (en) | Quantization matrix for still and moving picture coding | |
CA2250284C (en) | A perceptual compression and robust bit-rate control system | |
US8059715B2 (en) | Video encoding and decoding methods and corresponding devices | |
US20080123748A1 (en) | Compression circuitry for generating an encoded bitstream from a plurality of video frames | |
US6160920A (en) | Cosine transforming and quantizing device, method of reducing multiplication operations in a video compressing apparatus | |
US6823015B2 (en) | Macroblock coding using luminance date in analyzing temporal redundancy of picture, biased by chrominance data | |
US6445829B1 (en) | Joint cosine transforming and quantizing device and joint inverse quantizing and inverse cosine transforming device | |
US7436889B2 (en) | Methods and systems for reducing requantization-originated generational error in predictive video streams using motion compensation | |
US20060159168A1 (en) | Method and apparatus for encoding pictures without loss of DC components | |
KR100598093B1 (en) | Apparatus and method with low memory bandwidth for video data compression | |
US5751357A (en) | Method and arrangement for coding and decoding a video data stream for all picture elements of the video data stream | |
JP2003520512A (en) | Transmission encoding method and transmission encoding device | |
GB2300537A (en) | Differential JPEG encoder | |
US20060181650A1 (en) | Encoding method and device | |
KR20040054749A (en) | Compression | |
JP3532440B2 (en) | Cosine transform and quantization device, multiplicative operation saving method of image compression device, inverse quantization and inverse cosine transform device, and multiplicative operation saving method of image decompression device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20080429 |