GB2368248A - Image compression using iterative intraframe predictive coding - Google Patents

Image compression using iterative intraframe predictive coding Download PDF

Info

Publication number
GB2368248A
GB2368248A GB0025790A GB0025790A GB2368248A GB 2368248 A GB2368248 A GB 2368248A GB 0025790 A GB0025790 A GB 0025790A GB 0025790 A GB0025790 A GB 0025790A GB 2368248 A GB2368248 A GB 2368248A
Authority
GB
United Kingdom
Prior art keywords
data symbol
range
prediction
data
reconstructed
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.)
Withdrawn
Application number
GB0025790A
Other versions
GB0025790D0 (en
Inventor
Jason Charles Pelly
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Europe Ltd
Original Assignee
Sony United Kingdom Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony United Kingdom Ltd filed Critical Sony United Kingdom Ltd
Priority to GB0025790A priority Critical patent/GB2368248A/en
Publication of GB0025790D0 publication Critical patent/GB0025790D0/en
Publication of GB2368248A publication Critical patent/GB2368248A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

Method and apparatus are disclosed for producing an encoded symbol stream to provide a compressed representation of an image frame. Each pixel is encoded by generating a predicted value p(x, y) of the actual pixel value c(x, y), based on stored previously reconstructed values, r, of other pixels in the frame. The predicted value may be calculated using DPCM. The predicted value is constrained to lie within a prediction range u to 1. A test range a to b encapsulates the predicted value but lies within the prediction range. The 'position' of the test range relative to the prediction range and the actual value is determined and used to (1) provide at least one encoded data symbol of the encoded symbol stream, and (2) refine both the reconstructed value r(x, y) associated with the pixel and the prediction range upper and lower limits, u and 1, for use in future iterations of the method. The reconstructed image improves with each iteration (compare Figures 8a and 8b). A corresponding decoding method is also disclosed. The invention may be implemented in a video recorder.

Description

DATA PROCESSOR AND METHOD OF ENCODING DATA
Field of Invention The present invention relates to data processors operable to process data symbols from a source to produce encoded data symbols.
The present invention also relates to methods of encoding data symbols from a data source to produce encoded data symbols.
Background of Invention There are many applications in which it is beneficial to transform source data symbols into another form in which the transformed data symbols have. for example, a different probability of occurrence, whilst still representing the information content of the original source data. A process in which data symbols from a source are transformed into data symbols having a different probability of occurrence is known as modelling or pre-processing, but will be referred to in the following description as encoding. Typically the encoded data symbols have a reduced redundancy in comparison to the original source data symbols. As such, the encoded data symbols may be, for example, compression encoded with greater efficiency.
Examples of encoding processes which are used for data compression encoding digital images are the Discrete Cosine Transform (DCT) and the Wavelet or Integer Wavelet Transform. These encoding processes serve to transform the data representing digital images from the spatial domain into the frequency or transform domain. The DCT, for example, is used in the Motion Picture Experts Group II (MPEG-II) video compression encoding standard. In MPEG-II, digital images are divided into macro-blocks comprising groups of pixels and the pixels corresponding to each macro-block are then DCT-ed. The DCT has an effect of de-correlating the data representing the image. As a result, the DCT encoded symbols have a different probability of occurrence than the original source data symbols with an effect that the transformed image may be more efficiently compression encoded. Generally, the DCT coefficients are generated iteratively for each macro-block of the image. As such, at a receiver a first estimate of the complete decoded image can be formed, from the result of a first iteration, and used to re-construct an approximation of the original source
image, albeit with reduced definition. As the subsequent DCT coefficients are decoded for each macro-block, according to further iterations, the representation for each macro-block can be refined, so that a more detailed version of the decoded image can be formed.
Co-pending UK Patent application serial number 0017379. 9 proposes to use an encoding and decoding process in which the encoded data remains in the spatial domain. For certain target compression ratios an improvement in the quality of the reproduced image can be provided, with respect to other modelling processes such as the DCT. An example of an encoding process in which the data is transformed into encoded data symbols representing the source data symbols in the spatial domain by predicting the data symbols from preceding data symbols is Differential Pulse Code Modulation (DPCM). However, such encoding processes in which the encoded data remains in the original pixel or spatial domain suffer a perceived disadvantage because in contrast to processes in which the data is transformed into the frequency or transform domain, a representation of a complete image cannot be recovered. albeit with reduced resolution, if the modelled data symbols representing the image have not been fully received.
Summarv of Invention According to the present invention there is provided a data processor operable to represent data symbols from a data source as encoded data symbols, the data processor comprising - a source data store for storing a frame of a plurality of source data symbols, - a reconstruct data store containing for each of the source data symbols in the source data store a corresponding reconstructed data symbol initialised to a predetermined value, - a prediction processor operable to generate a prediction for each source data symbol from the reconstructed data symbols in the reconstruct data store, the prediction for each source data symbol being constrained to be within a prediction range for each predicted data symbol variable within the maximum and the minimum values of the source data symbols,
- an encoder operable to determine, for each source data symbol, whether the prediction range is less than a predetermined minimum accuracy range. and if not, determining whether said prediction range is equal to two, and if so. forming an encoded data symbol indicative of whether or not the prediction of the data symbol is equal to the original data symbol, and otherwise to form, for each of the original data symbols, a test range around the predicted
data symbol, within the prediction range, and - to generate, for each of the original data symbols, at least one encoded data symbol for the source data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol, and - to refine the reconstructed data symbol corresponding to the each original data symbol and the prediction range for a subsequent prediction of the original data
symbol in dependence upon a relative position of the test range with respect to the c : l prediction range and the original data symbol.
The data processor according to the present invention provides an improved encoding process, because an approximation of the complete data frame can be formed, even though not all of the encoded data symbols have been received. This is because the encoded data symbols produced for each original data symbol are representative of a further improvement in an approximation of the original source data symbol, referred to as a reconstructed data symbol, the approximation becoming more accurate for each generated encoded data symbol. If the reconstruction of the data symbol is refined further, then this refinement is further represented as at least one further encoded data symbol indicative of the way in which the reconstructed data symbol has been further refined. As such the encoding process performs an iterative process which produces better approximations to the original source data symbol until the prediction range for the reconstructed data symbol is less than a predetermined minimum accuracy range, in which case no further encoded data symbols are generated for this data symbol.
It is conceivable that a single pass through the source data is sufficient to produce an acceptable reconstruction of the original source data. However, as will be appreciated from the above explanation, in preferred embodiments, the data processor performs an iterative process to the effect that each reconstructed data symbol is
further refined for each of a plurality of stages, until the original data symbol can be reconstructed from the encoding decisions represented as the encoded data symbols. Accordingly, the prediction processor may be operable for each of a plurality of stages (s) - to refine the prediction of each source data symbol using the reconstructed data symbols refined by the encoder, and the encoder may be operable for each of the plurality of stages - to determine, for each source data symbol, whether the refined prediction range is less than a predetermined minimum accuracy range, and if not, determining whether the prediction range is equal to two, and if so forming a final encoded data
symbol indicative of whether or not the prediction is equal to the original data symbol, zn and otherwise - to form, for each of the original data symbols, a refined test range around the predicted data symbol, within the prediction range, and - to generate, for each of the original data symbols, at least one further encoded data symbol for the source data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol, and - to refine the reconstructed data symbol corresponding to the each original data symbol and the prediction range for a subsequent prediction of the original data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol.
The data processor is arranged to generate encoded data symbols which are representative of the original data frame. The encoded data symbols may be bits, the data processor being arranged to generate the encoded data symbols which have, as far as possible, predominantly the same bit value (ones or zeros), so that the encoded data may be more easily compressed, using, for example, Golomb or Binary Arithmetic Coding. The data processor may therefore include a compression encoder which is operable to compression encode the encoded data symbols.
Although the method of predicting the original data symbol from the other reconstructed data symbols may be performed using any of the other reconstructed data symbols, in preferred embodiments the prediction processor may be operable to generate the prediction symbol for each of the original source data symbols from a
sum of preceding reconstructed symbols each weighted by a corresponding weighting factor. The prediction processor may therefore provide an improved prediction of the original data symbols by utilising a correlation between the data symbols of the source data. As such, for example, the prediction for each source data symbol may be generated by the prediction processor in accordance with Differential Pulse Code Modulation (DPCM) or the Variable Weight Differential Pulse Code Modulation modelling process as disclosed in co-pending UK Patent application serial number 0014890.8.
The encoder may be operable to divide the source data frame into a plurality of
blocks, each block containing a plurality of symbols, the encoder being arranged to g c--e encode the source data symbols for each of the blocks separately. An advantage is provided by dividing the source data frame into a plurality of blocks because as explained, the prediction of the original data symbols depends on others of the reconstructed data symbols. As such, an error in any reconstructed data symbol can be propagated through out the reconstructed data frame. Therefore, by dividing the data frame into blocks, the effects of errors will be limited to those blocks.
As will be appreciated, the data processor according to the present invention finds application in several fields, including, for example, recording data onto a recording medium such as a disc or a tape. A fast recovery or shuttle mode is an example of a situation in which the data recovered from the recording medium may be incomplete. As such, an approximation of an image which has been encoded using the data processor according to an embodiment of the present invention may be reproduced, even though the modelled data representative of the complete image may not be completely recovered as a result of the shuttle mode. Similarly, if an image is to be communicated, for example via the internet, a receiver may form an approximation to the image before all of the encoded data representing the image has been received.
It will be appreciated that the present invention finds application in encoding any form of data. However in preferred embodiments, the frame of data is representative of an image.
Various further aspects and features of the present invention are defined in the appended claims.
Brief Description of the Drawings Figure 1 and 2 are schematic representations illustrating how processing of an image is conventionally performed by the DPCM modelling process; Figure 3 is a schematic block diagram of an encoding data processor according to an embodiment of the present invention; Figure 4 is a schematic block diagram of a decoding data processor according to an embodiment of the present invention; Figure 5 is a flow diagram illustrating the steps in the operation of the encoding and decoding data processor of figures 3 and 4; Figure 6 is a schematic illustration showing the interval known to contain the original pixel value, the prediction of the pixel value and the generated test range containing the prediction; Figure 7a, 7b, 7c and 7d are schematic illustrations showing the relative position of an interval known to contain the original pixel value with respect to the generated test range; and Figure 8a, 8b, 8c and 8d provide an example test image which has been encoded and decoded according to an embodiment of the present invention, at a first, second, third and fourth iterative stages respectively.
Description of Preferred Embodiments An example embodiment of the present invention will now be described, in which DPCM is used as a prediction process to encode data in the spatial domain. It will be appreciated however that DPCM is one example of a prediction process, and also that DPCM could be replaced with for example Variable Weight DPCM which as already mentioned is disclosed in co-pending UK patent application number 0014890.8.
Generally, embodiments of the present invention overcome a particular problem with prediction techniques, such as DPCM, which will now be explained with reference to figures 1 and 2. Figures 1 and 2 represent data which is representative of an image I and is therefore formed into a frame comprising data symbols representative of the pixels of the image. Conventionally when DPCM modelling is applied to the image, the image is scanned in some predefined order, as illustrated by a
scanning line SL. For the DPCM process the pixels are processed once and only once in the order represented by the scan line SL. Conventionally, data compression is then applied to the modelled data. However a problem with DPCM modelling is that only a fraction of the image can be reconstructed if the decoder is only provided with data representative of that fraction of the image. This is illustrated in figure 2. in which only the shaded part of the image I can be reproduced from the encoded data provided from the DPCM prediction process according to the scan line SL. This problem can be avoided with other forms of decorrelation such as Wavelet processing or DCT or discrete Fourier transform processors. This is because for other types of decorrelators, the image data can be processed iteratively. For a first iteration, the whole image is processed to generate encoded data symbols which are representative of an approximation of the image. For each iteration further encoded data symbols are generated which serve to refine further the components of the image with the effect that if only part of the data is received then a representation of the image can be reconstructed albeit with a reduced resolution.
Embodiments of the present invention serve to provide a prediction type encoding process in which a representation of the entire image can be recovered even if only part of the encoded data produced by encoding the image has been received. Furthermore, embodiments of the invention can be arranged to generate a bit stream which comprises predominantly of either zeros or ones. This bit stream can be subsequently efficiently compression encoded, using for example Golomb coding or Binary Arithmetic coding, because the bit stream created is comprised of predominantly the same bit value (one or zero).
An example embodiment of the present invention is shown in Figure 3. In Figure 3 a data processor 10 is arranged to receive a frame of data symbols within a first data store 12. As already explained the frame of data symbols could be representative of any type of data. However in the example embodiment the data frame is representative of an image. Also shown in the data processor 10 is a second data store 14 which is arranged to include a data symbol corresponding to each of the data symbols in the first data store 12. The data symbols in the second data store are representative of reconstructed data symbols as they would be formed by a decoding data processor. The reconstructed data symbols in the second data store 14 are
initialised to a predetermined value such as, for example, half the value which can be represented with the word length corresponding to that of the original data symbols. A prediction processor 18 is arranged to receive the reconstructed data symbols from the data store 14. As will be explained shortly the prediction processor 18 generates a
prediction for each of the original data symbols 12 using preceding reconstructed data 1- z : l symbols by applying the DPCM modelling process. However this prediction is constrained to being within a prediction range. The prediction range for each original data symbol is stored in a bound store 16.
The predictions for each original data symbol are generated by the prediction processor 18. These predictions are then fed to an encoder 20. The encoder 20 also receives the original data symbols from the data store 12 and the prediction range of the current data symbol from the bound store 16. The encoder 20 may generate data bits which are determined in dependence upon the success of the prediction of the original data symbol and the size of the prediction range. This will be explained shortly. The encoded data bits are output from the encoder 20 on an output channel 22. The encoder 20 may then further operate to refine the reconstructed data symbols within the second data store 14 and the prediction range for the original data symbol in the bound store 16 in dependence upon where the original data symbol lies with respect to a refined test range generated by the encoder 20. The data processor 10 thus produces an encoded bit stream which is indicative of the success of the prediction processor in predicting the original frame of data held in the first data store 12, the reconstructed data symbols being stored in a second data store 14. In an iterative process the encoding data processor 10 refines the reconstructed data symbols. and the prediction ranges so that subsequent predictions for the original data symbols are improved.
The encoded bit stream represents the decisions made by the encoder for each iteration of the prediction process. A decoder for reconstructing an estimate of the original source data symbols from the received encoded bit stream is shown in figure 4. In figure 4 a data processor 40 is shown to comprise a decoder 42 connected to a data store 46 in which the reconstructed image is formed. The decoder 42 is provided with a bound store 48 in which the prediction range associated with each reconstructed data symbol in the data store 46 is stored. Generally, the data processor 40 shown in
figure 4 is arranged to reconstruct the image by processing the encoded bit stream and following the operation of the encoder 20 in accordance with the decisions which the encoded data stream represents. Thus, in effect, the second data store 14 provides the encoder 20 with an indication of the effect that the decisions taken by the encoder will have on the decoder. The reconstructed data symbols formed in the second data store 14 therefore correspond with the reconstructed data symbols formed in the decoder in which corresponding decisions are taken as indicated by the encoded bit stream. The process performed by the encoding processor shown in figure 3 will now be described in more detail with reference to a flow diagram shown in figure 5.
In order to explain the operation of the encoding and decoding data processors, the original image will be represented as C = c (x, y) for 1 < < M and I < /V, which is stored in the first data store 12 of the data processor 10 of Figure 3. At any given stage in the processing, the reconstructed image so far is represented as R = r (x, y) for 1 x M and 1 s ! A" ; R then represents the image which the decoder will have reconstructed so that at the end of the algorithm R and C should be identical.
Thus, the reconstructed image R is that formed in the second data store 14, in the data processor 10 shown in figure 3, and the data store 46 of the decoding data processor 40 shown in figure 4.
Let the image consist of n-bit data, so that the algorithm will then consist of n stages. At each stage, the algorithm passes through C held in the first data store 12, and refines R held in the second data store 14 to obtain a closer approximation. Each location within the image has two values associated with it, I (x, y) and u (x, y), representing a lower and an upper bound respectively on the possible pixel value at that location. This is the prediction range stored in the bound store 16 of the encoding data processor 10, and the bound store 48 of the decoding data processor 40. The
decoder will therefore know that each original pixel value satisfies c (x, y) E [lex, y), u (x, y)]. As the algorithm proceeds, lex, y) and u (x, y) become closer and closer.
Initially, the encoder and decoder set l (x, y) = 0, u (x, y) = 2n 1 and rex, y) = 2n-1 at all pixel locations.
Let s be the stage number. For ease of notation later, it is assumed that the algorithm begins at stage s = n and decrements the stage number until the last stage, when s = 1.
The operation of the encoding data processor will now be described with reference to the flow diagram shown in Figure 5 which illustrates the steps of the operation. Each of the n stages of the algorithm is performed in the same way. Figure 6 provides an illustrative representation of a general form of a refinement process which is performed for each reconstructed data symbol at each stage. The prediction
of the original data symbol p (x, y) is shown within the prediction range [lex, y), lI (X, y) ], with the original data symbol c (x,y). A shaded area TR represents a test range [a, b] formed by the encoder 20 when refining the reconstructed data symbol and the prediction range.
The algorithm generates a predication for the pixel value at a given location : an interval containing the actual pixel value is known, i. e. [l(x,y), u(x,y)]; and from the prediction, a sub-interval of half the size is formed which is the test range TR containing values closest to the prediction, as shown in Figure 6.
If the actual value of the original data symbol representing the pixel lies in this general sub-interval formed by the test range, a 0 is added to the bit stream; otherwise a 1 is added to the bit stream. Since predictions are generally quite accurate, the subinterval around the prediction will contain the actual pixel value in the majority of cases. Consequently, long runs of Os can be formed, providing an easy method of compression, for example by binary arithmetic coding or Golomb coding. After the bit stream has been updated, the value lex, y) and u (x, y) can be changed to represent a smaller region.
At each stage, the encoding processor passes through C in some predetermined manner, such as for example a Raster scan. The operations performed at each pixel location are described below with reference to the flow diagram of Figure 5. The steps performed by the encoding data processor are as follows: S. 2. The encoder 20 calculates the size of the interval within which it is known that
c (x, y) lies, that is : size = u (x, y)-I (x, y) + 1 The encoder 20 then calculates the value lowSize (S. 2) according to lowSize = max (2'', 2)
S. 4. Accordingly at a decision step S. 4, the encoder determines whether si=e < lowsize. If true then r (x, y) is considered to be accurate enough and no further processing is performed for this pixel location at this stage and processing ends for this c t : l data symbol at step S. 6. This stage of the algorithm will only refine (x,y) and proceed to step S8 provided that size lowSize.
S. 8. The prediction processor 18 forms a prediction p (x, y) for the pixel value c (x, y) using a standard DPCM technique, by forming a prediction of the original data symbol from preceding reconstructed data symbols from the second data store 14 from the image R, which corresponds to step S. 8. However, as it is known that the pixel value lies in the interval [lex, y), u (x, y) ], the prediction formed by the prediction processor is arranged to lie in this range. Note that it is the currently reconstructed image R which is used to form the prediction in this way, the decoder can create the same prediction as the encoder.
S. 10. At decision step S. 10 the encoder 20 determines that if size = 2 processing continues at step S. 12 ; otherwise, processing continues at step S. 14.
S. 12. Since the size of interval [I (x, y), u (x, y)] is two, there are only two possible
remaining values for c (x, y) and the encoder 20 adds a 0 to the bit stream if p (x, y) = c (x, y) (decision step S. 16) or a I ifp p (x, y) w c (x, y) (decision step S. 18). The values of r (x, y), I (x, y) and u (x, y) are all set to be c (x, y) (step S. 19) and the processing for this pixel location is now finished.
S. 14. The encoder 20, then forms a test range sub-interval, [a, b] which is generated such that : (i) p (x, y) is contained in [a, b] (ii) [a, b] is a subset of [lex, y), u (x, y)] (iii) the size of [a, b] is size (rounding up if necessary)
The test range interval then contains half of the possible of values for c (x, y) (by (ii) and (iii)) and includes the prediction p (x, y) (by (i)). If the interval is made to be as symmetrical as possible around p (x, y), subject to (ii), then the interval can be considered to represent the most likely interval to contain the actual pixel value c (x. y).
This is illustrated in Figure 6.
S. 20. The encoder 20 then operates to refine the reconstructed data symbol in the second data store 14 for each of the original data symbols in the first data store 12.
The prediction range stored in the bound store 16 is also refined in accordance with the relationship of the test range with the original data symbol. It is expected that the pixel value c (x, y) will lie in the interval [a, b], which is determined at decision step S. 20. If this is so, the processing continues at step S. 22; otherwise, processing continues at step S. 24.
S. 22. The original data symbol representing the actual pixel value from the first data store 12 lies in the sub-interval around the prediction. Therefore, the encoder 20 adds a 0 to the bit stream. The values r (x, y), I (x, y) and u (x, y) are then altered by the encoder as follows at step S. 26:
r (x, y) p (x, y) I (x, y) = a u (x, y) = b Processing for this pixel location at this stage is now finished, and so processing terminates, for this stage, at step S. 6.
S. 24. If the actual pixel value does not lie in the sub-interval around the prediction, which was determined at step S. 20, then at step S. 24 the encoder adds a I to the bit stream. There are now three cases to consider: (S. 28) if a = I (x, y), which is determined at decision step S. 28, then the interval
[a, b] lies at the very left of the interval [I (x, y), u (x, y)], so the pixel value c (x, y) lies to the right of the interval [a, b], which is shown in Figure 7a.
The values rex, y) and lex, y) are altered by the encoder 20, at step S. 30 as follows:
, ) =+1 / (. Y. X) =+1 (S. 32) if b = u (x, y) which follows from decision step S. 28 to S. 32, then the interval [a, b] lies at the very right of the interval [I (x,y), u(x,y)], so the pixel value c (x,y) lies to the left of the interval [a, b], which is shown in figure 7b.
The values r(x, y) and ll (X, y) are altered by the encoder 20, at step S. 34 as follows : r(x,y) = a - 1
u (x, y) = a-1 (S. 36) Otherwise, we have l (x, y) < a and b < u (x, y), so the test range subinterval [a, b] splits the interval [lex, (x, y), u (x, y)] into two parts. Therefore at decision step S. 38, it is determined whether the left region of the split interval is larger than the right region.
(S. 42) If the left side is smaller, as shown in figure 7d, decision step S. 42 determines whether the original pixel data symbol value c (x, y) is to the left of the test range sub-interval [a, b] (c (x, y) < a). If no, the encoder adds a 0 to the bit stream and
updates the lower bound I (x, y) = b + 1, and r (x, y) = b + 1 (steps S. 44 and S. 54) ; Otherwise, if the part containing the pixel value is to the left of [a, b], which is determined at decision step S. 42, then the values r (x, y) and u (x, y) are altered by the encoder 20 at S. 34 and the encoder adds a 1 to the bit stream: u (x, y) = a-I and r (x, y) = a-I (steps S. 48 and S. 34).
On the other hand, if the left side is not smaller than the right side, as determined at decision step S. 38 and shown in figure 7c, then at decision step S. 40 it is determined whether the part containing the original pixel symbol value is to the right of [a, b]. If the original pixel value c (x, y) is to the right of the test range [a, b], then the encoder 20 adds a 1 into the encoded bit stream (S. 46) and the values r (x, y) and lex, y) are altered at step S. 30 as follows:
/ () +1 l (x, = & +1 u (x, y) = b + I
Otherwise the encoder 20 adds a 0 to the encoded bit stream at step S. 50. and updates the values r (x, y) and u (x, y) at step S. 52, as follows : u () = -1 and r (x, y) ==a-I It can be shown that at the end of stage s the size of the interval [1 (. y), u (x. y)] is at most 2s-'. Consequently, by the end of the algorithm, with stage s = 1. the intervals of possible values for each reconstructed data symbol contain only one value, namely c (x, y). Hence, at the end of the algorithm, R is identical to C.
As an illustration of the result of the operation of the encoding and decoding data processors, Figures 8a, 8b, 8c and 8d show a reconstructed image after first, second, third and fourth iterative stages of the algorithm respectively. The image was divided into blocks having a block size 16x16. Typically, if the data from the first four stages is available, the reconstructed image is barely discernible from the original.
As can be seen from figure 8a, even after the first stage of the algorithm an approximation of the image is formed. Furthermore the algorithm provides an encoded data stream which is comprised predominantly of 0's, which can be more efficiently compression encoded. A table presented below illustrates the proportion 0's in the encoded bit stream:
Figure Number Percentage of 0's in the encoded bit stream Fig 8a 98. 8% Fig 8b 97. 0% Fig 8c 94. 5% Fig 8d 91. 4% The encoding and decoding data processors provide a particular technical advantage in improving the form of an image which can be recovered, when for example the encoded data is read from a video tape recorder in shuttle mode where not all of the data representing an image can be recovered. This is as a result of the iterative way the image is encoded. Furthermore the fields of a video image may be divided into macro blocks and each macro-block encoded separately. During shuttle play, only a fraction of the data for a given macro block may be retrieved from tape.
However an approximation of each macro-block may be recovered. An improvement in the reconstructed image quality during shuttle play back is therefore provided since a representation of the entire image may be reproduced during shuttle mode.
The algorithm may be enhanced by specifying that only the first m (where 1 m < n) stages are performed. After m stages, the range of possible values of c (x, y) has been reduced to be of size at most 2"''. It is then possible to use a normal DPCM method, whereby the prediction is made (and is constrained to lie within the range of possible values) and the error is encoded in a normal manner, for example by a Huffman code.
A further possible improvement can be provided to the prediction process performed by the prediction processor 18 of the encoding data processor 10 shown in figure 3. When the predictions are being made at, for example, the fourth iterative step, it is possible to use all values in of the reconstructed image surrounding a current pixel position being processed, not just values which have already been processed during the current stage. In doing so, more importance may be placed on locations which have already been processed during the current stage, since the reconstructed values at these locations are likely to be better approximations of the actual pixel values.
Various modifications of the example embodiments can be made without departing from the scope of the present invention as defined in the appended claims. For example, it will be appreciated from the foregoing explanation that a further aspect of the present invention is to provide a compression encoder or decoder in combination with the encoding and decoding data processors in order to compression encode and decode respectively the symbol stream provided by the encoding data processor.
Furthermore, an aspect of the present invention provides a video recorder having an encoding and decoding data processor for encoding and decoding video images before being recorded on, or reproduced from, a readable recording medium respectively.
Accordingly, a further aspect includes a recording medium having recorded thereon data encoded using the encoding data processor as herein before described.

Claims (24)

  1. CLAIMS 1. A data processor operable to represent data symbols from a data source as encoded data symbols, said data processor comprising - a source data store for storing a frame of a plurality of source data symbols, - a reconstruct data store containing for each of said source data symbols a corresponding reconstructed data symbol initialised to a predetermined value, - a prediction processor operable to generate a prediction for each source data symbol within said source data store, from the reconstructed data symbols in said reconstruct data store, said prediction for each source data symbol being constrained to be within a prediction range for each predicted data symbol, variable within the maximum and the minimum values of said source data symbols, - an encoder operable to determine, for each source data symbol, whether said
    prediction range is less than a predetermined minimum accuracy range. and if not, determining whether said prediction range is equal to two, and if so. forming an encoded data symbol indicative of whether or not the prediction of the data symbol is equal to the original data symbol, and otherwise - to form, for each of said original data symbols, a test range around the predicted data symbol, within said prediction range, and - to generate, for each of said original data symbols, at least one encoded data symbol for said source data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol, and - to refine the reconstructed data symbol corresponding to said each original data symbol and the prediction range for a subsequent prediction of said original data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol.
  2. 2. A data processor as claimed in Claim 1, wherein said prediction processor is operable for each of a plurality of stages (s) - to refine said prediction of each source data symbol using the reconstructed data symbols refined by said encoder, and said encoder is operable for each of said plurality of stages
    - to determine, for each source data symbol, whether said refined prediction range is less than a predetermined minimum accuracy range and if not. determining whether said prediction range is equal to two, and if so forming a final encoded data symbol indicative of whether or not said prediction is equal to said original data symbol. and otherwise - to form. for each of said original data symbols, a refined test range around the predicted data symbol, within said prediction range, and - to generate, for each of said original data symbols, a further encoded data symbol for said source data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol, and - to refine the reconstructed data symbol corresponding to said each original data symbol and the prediction range for a subsequent prediction of said original data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol.
  3. 3. A data processor as claimed in Claim I or 2, wherein for each stage and for each original source data symbol, the test range is constrained to be half that of the prediction range.
  4. 4. A data processor as claimed in any of Claims 1,2 or 3, wherein said encoder is operable, consequent upon said original data symbol not being within said test range, to set the lower bound of said prediction range and said reconstructed data symbol to one more than the upper bound of said test range, if the lower bound of said test range is equal to the lower bound of said prediction range, or to set the upper bound of said prediction range and said reconstructed data symbol to one less than the lower bound of said test range, if the upper bound of said test range is equal to the upper bound of said prediction range, or if neither said lower bound of said test range is equal to the lower bound of said prediction range, nor said upper bound of said test range is equal to the upper bound of said prediction range,
    to determine whether the value of the original data symbol lies above or below said test range, and if below said test range, to set said upper bound of said prediction range and said reconstructed data symbol to one less than said lower bound of said test range, and otherwise to set said lower bound of said prediction range and said reconstructed data symbol to one more than the upper bound of said test range.
  5. 5. A data processor as claimed in any preceding Claim, wherein said encoder is operable, consequent upon said original data symbol being within said test range, to set the lower bound of said prediction range to the lower bound of said test range, and the upper bound of said prediction range to be equal to the upper bound of said test range, and said reconstructed data symbol equal to said predicted data symbol.
  6. 6. A data processor as claimed in any preceding Claim, wherein said encoder is operable to generate said prediction symbol for each of said reconstructed source data symbols from a sum of reconstructed symbols each weighted by a corresponding weighting factor.
  7. 7. A data processor as claimed in Claim 6, wherein said prediction for each source data symbol is generated by said prediction processor in accordance with Differential Pulse Code Modulation (DPCM).
  8. 8. A data processor as claimed in any preceding Claim, wherein said encoder is operable to divide said source data frame into a plurality of blocks, each block containing a plurality of symbols, said encoder being arranged to encode said source data symbols for each of said blocks separately.
  9. 9. A data processor as claimed in any preceding Claim, wherein said encoder is operable to select said encoded data symbols so that the encoded data symbols have predominantly the same value.
  10. 10. A data processor operable to reconstruct source data symbols from the encoded data symbols generated by the data processor claimed in any preceding Claim, comprising - a data store (R) operable to store reconstructed source data symbols corresponding to original source data symbols, said reconstructed data symbols being initialised to a predetermined value, - a decoder operable to generate a prediction for each original data symbol from reconstructed symbols in said data store, said prediction for each original source
    data symbol being constrained to be within a prediction range variable within t : l predetermined maximum and the minimum values, - to determine, for each data symbol, whether said prediction range is less than a predetermined accuracy range, and if not
    - to form, for each reconstructed data symbol, a test range around the predicted t : l data symbol, and - to adjust the prediction range and the corresponding reconstructed data symbol, in dependence upon the corresponding received encoded data symbols, and the position of said test range with respect to said prediction range.
  11. 11. A data processor as claimed in Claim 10, wherein for each original source data symbol, the test range is constrained to be half that of the prediction range.
  12. 12. A data processor as claimed in Claim 11, wherein said decoder is operable, consequent upon said original data symbol not being within said test range, to set the lower bound of said prediction range and said reconstructed data symbol to one more than the upper bound of said test range, if the lower bound of said test range is equal to the lower bound of said prediction range, or - to set the upper bound of said prediction range and said reconstructed data symbol to one less than the lower bound of said test range, if the upper bound of said test range is equal to the upper bound of said prediction range, or if neither said lower bound of said test range is equal to the lower bound of said prediction range, nor said upper bound of said test range is equal to the upper bound of said prediction range,
    - to determine whether the value of the original data symbol lies above or below said test range, and - if below said test range, to set said upper bound of said prediction range and 1. ZL said reconstructed data symbol to one less than said lower bound of said test range. al s and otherwise to set said lower bound of said prediction range and said reconstructed data symbol to one more than the upper bound of said test range.
  13. 13. A data processor as claimed in any Claim, wherein said decoder processor is operable, consequent upon said original data symbol being within said test range, to set the lower bound of said prediction range to the lower bound of said test range, and the upper bound of said prediction range to be the upper bound of said test
    range, and said reconstructed data symbol equal to said predicted data symbol. t : l
  14. 14. A method of encoding data symbols from a data source as encoded data symbols, said method comprising - generating for each original source data symbol, a reconstructed data symbol initialised to a predetermined value, - generating a prediction for each source data symbol from the reconstructed data symbols in said reconstruct data store, said prediction for each source data symbol being constrained to be within a prediction range for each predicted data symbol, variable within the maximum and the minimum values of said source data symbols, - determining, for each source data symbol, whether said prediction range is less than a predetermined minimum accuracy range, and if not, determining whether said prediction range is equal to two, and if so, forming an encoded data symbol indicative of whether or not the prediction of the data symbol is equal to the original data symbol, and otherwise - forming for each of said original data symbols, a test range around the predicted data symbol, within said prediction range, and - generating for each of said original data symbols, at least one encoded data symbol for said source data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol, and
    - refining the reconstructed data symbol corresponding to said each original data symbol and the prediction range for a subsequent prediction of said original data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol.
  15. 15. A method of encoding as claimed in Claim 14, wherein said method comprises for each of a plurality of stages (s) - refining said prediction of each source data symbol using the reconstructed data symbol, - determining, for each source data symbol, whether said refined prediction range is less than a predetermined minimum accuracy range, and if not, determining whether said prediction range is equal to two, and if so, - forming a final encoded data symbol indicative of whether or not said predicted data symbol is equal to said original data symbol, and otherwise - forming for each of said original data symbol, a refined test range around the predicted data symbol, within said prediction range, and - generating for each of said original data symbols, a further encoded data symbol for said source data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol, - refining the reconstructed data symbol corresponding to said each original data symbol and the prediction range for a subsequent prediction of said original data symbol in dependence upon a relative position of the test range with respect to the prediction range and the original data symbol.
  16. 16. A method of encoding as claimed in Claims 14 or 15, wherein said encoded data symbols are selected to the effect that said encoded data symbols have predominantly the same value.
  17. 17. A method of reconstructing data symbols from encoded data symbols generated by the methods according to Claims 14,15 or 16 said method comprising
    - generating a reconstructed source data symbol for each of said original source data symbols, said reconstructed data symbols being initialised to a predetermined value, - generating a prediction for each original data symbol, from reconstructed symbols in said data store, said prediction for each reconstructed source data symbol being constrained to be within a prediction range variable within predetermined maximum and the minimum values, - determining, for each data symbol, whether said prediction range is less than a predetermined accuracy range, and if not - forming, for each reconstructed data symbol, a test range around the predicted data symbol, and - adjusting the prediction range and the corresponding reconstructed data symbol, in dependence upon the corresponding received encoded data symbols and the position of said test range with respect to said prediction range.
  18. 18. A signal representing encoded data symbols, said data symbols having been encoded by the data processor or the method of encoding according to any of Claims 1 to 9, and Claims 14, 15 or 16 respectively.
  19. 19. A carrier comprising a recording/reproducing medium having a signal according to any of Claim 18 recorded thereon.
  20. 20. A computer program providing computer executable instructions, which when loaded onto a computer configures the computer to operate as a data processor as claimed in any of Claims I to 10 or Claim 10 to 14 respectively.
  21. 21. A computer program providing computer executable instructions, which when loaded on to a computer causes the computer to perform the method according to Claims 14, 15, or 16, or 17 respectively.
  22. 22. A computer program product having a computer readable medium recorded thereon information signals representative of the computer program claimed z : l in any of Claims 20 or 21.
  23. 23. A data processor as herein before described with reference to the accompanying drawings.
  24. 24. A method of data processing substantially as herein before described with reference to the accompanying drawings.
GB0025790A 2000-10-20 2000-10-20 Image compression using iterative intraframe predictive coding Withdrawn GB2368248A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0025790A GB2368248A (en) 2000-10-20 2000-10-20 Image compression using iterative intraframe predictive coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0025790A GB2368248A (en) 2000-10-20 2000-10-20 Image compression using iterative intraframe predictive coding

Publications (2)

Publication Number Publication Date
GB0025790D0 GB0025790D0 (en) 2000-12-06
GB2368248A true GB2368248A (en) 2002-04-24

Family

ID=9901714

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0025790A Withdrawn GB2368248A (en) 2000-10-20 2000-10-20 Image compression using iterative intraframe predictive coding

Country Status (1)

Country Link
GB (1) GB2368248A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2190813A (en) * 1986-05-19 1987-11-25 British Broadcasting Corp Improvements in predictors for video signals
US4941053A (en) * 1988-04-06 1990-07-10 U.S. Philips Corp. Predictive encoder for still pictures
WO1998027735A1 (en) * 1996-12-17 1998-06-25 Thomson Consumer Electronics, Inc. Memory efficient compression apparatus and quantizer in an image processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2190813A (en) * 1986-05-19 1987-11-25 British Broadcasting Corp Improvements in predictors for video signals
US4941053A (en) * 1988-04-06 1990-07-10 U.S. Philips Corp. Predictive encoder for still pictures
WO1998027735A1 (en) * 1996-12-17 1998-06-25 Thomson Consumer Electronics, Inc. Memory efficient compression apparatus and quantizer in an image processing system

Also Published As

Publication number Publication date
GB0025790D0 (en) 2000-12-06

Similar Documents

Publication Publication Date Title
US6031940A (en) System and method for efficiently encoding video frame sequences
US8208543B2 (en) Quantization and differential coding of alpha image data
Celik et al. Lossless generalized-LSB data embedding
TWI521890B (en) Image coding apparatus, method and program, and image decoding apparatus, method and program
JP4102841B2 (en) Computer-implemented method for processing video images
US11109051B2 (en) Motion compensation using temporal picture interpolation
US5917609A (en) Hybrid waveform and model-based encoding and decoding of image signals
US8285064B2 (en) Method for processing images and the corresponding electronic device
JPH11168633A (en) Reconstruction execution method, reconstruction execution device, record medium, inverse conversion execution method, inverse conversion execution device, suitable reconstruction generating method, suitable reconstruction generator, coding data processing method, coding data processing unit and data processing system
US6804405B2 (en) Method and a system for coding rois
JP2013507794A (en) How to decode a bitstream
US8050329B2 (en) Method and apparatus for generic scalable shape coding
KR100294890B1 (en) Digital video coder and decoder using watermarking and method therefor
KR100989686B1 (en) A method and a device for processing bit symbols generated by a data source, a computer readable medium, a computer program element
KR100242635B1 (en) A system for variable-length-coding and variable-length-decoding digital data
JP2002064821A (en) Method for compressing dynamic image information and its system
GB2368248A (en) Image compression using iterative intraframe predictive coding
KR101979379B1 (en) Method and apparatus for encoding image, and method and apparatus for decoding image
JP2000165873A (en) Compression method for moving picture information and its system
EP0930788A1 (en) Method and device for compressing and expanding image
JP3958033B2 (en) Method and system for compressing moving picture information
JP3310633B2 (en) Decryption device
CN113228674A (en) Video encoding and video decoding
JP2008131526A (en) Moving image coding apparatus, and moving image coding program
Torres Urgell et al. Svq: a proposal for still image coding in mpeg 4-snhc

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)