Search

EP-4633043-B1 - CODING METHODS AND SYSTEMS

EP4633043B1EP 4633043 B1EP4633043 B1EP 4633043B1EP-4633043-B1

Inventors

  • ECOB, STEPHEN EDWARD

Dates

Publication Date
20260513
Application Date
20250408

Claims (14)

  1. A computer-implemented method for compressing data involving transforming an nth symbol of a first data sequence into an mth symbol of a second data sequence, the computer-implemented method comprising: receiving the nth symbol of the first data sequence; generating the mth symbol of the second data sequence from the nth symbol of the first data sequence using a transformation belonging to a predetermined set of transformations mapping a first data type comprising a library of first symbols having a first code length to a second data type comprising a library of second symbols having a second code length that is shorter than said first code length; said predetermined set of transformations comprising a plurality of subsets of transformations, wherein each subset of transformations map the first data type to the second data type, and include a group of lossless transformations that losslessly map certain symbols of the first data type to symbols of the second data type, and at least one group of lossy transformations between remaining symbols of the first data type and the second data type; the method being characterized in that said transformation used to generate the mth symbol of the second data sequence from the nth symbol of the first data sequence is a member of a subset of transformations in which an n-1th symbol of the first data sequence is amongst the certain symbols that are losslessly mapped to a second symbol in said subset's group of lossless transformations.
  2. The computer implemented method of claim 1 wherein in each subset of transformations the certain symbols of the first data type that are losslessly mapped to symbols of the second data type, represent a contiguous group of data values.
  3. The computer implemented method of claim 2 wherein in each subset of transformations the, or each, group of remaining symbols of the first data type that are transformed with a lossy transformation into said the second data type represent a contiguous group of data values.
  4. The computer implemented method of any one of the preceding claims wherein in each subset of transformations the second data type comprises a first number of symbols to which said certain symbols of the first data type are mapped losslessly and a second number of symbols to which the other symbols of the first data type are mapped lossily, wherein the first number of symbols and second number of symbols in the library of the second data are equal.
  5. The computer implemented method as claimed in any one of the preceding claims which further includes, determining a next subset of transformations, for use in transforming the n+1th symbol of the first sequence of data, based on the nth symbol of the first data sequence; and transforming the n+1th symbol of the first sequence of data into the m+1th symbol of the second data sequence using a transformation from the next subset of transformations.
  6. The computer implemented method as claimed in claim 5 wherein in the next subset of transformations the nth symbol is losslessly mapped to a symbol of the second data type.
  7. The computer implemented method of claim 6 wherein the method further includes performing an inverse transformation of the mth symbol of the second sequence of data into the first data type using an inverse transformation that corresponds to a transformation in the same subset of transformations used to generate the mth symbol of the second sequence.
  8. A computer implemented method for decompressing data involving decoding an mth symbol, of a second data sequence having a second data type comprising a library of second symbols having a second code length, that was created by encoding the nth symbol of a first data sequence having a first data type comprising a library of first symbols having a first code length, wherein the second code length is shorter than the first code length, said decoding generating an output symbol having said first data type, the computer implemented method comprising: receiving the mth symbol of the second data sequence; generating the output symbol using a transformation belonging to a predetermined set of transformations mapping the second data type to the first data type; said predetermined set of transformations comprising a plurality of subsets of transformations, wherein each subset of transformations map the second data type to the first data type; and the method being characterized in that said transformation used to generate the output symbol is a member of a subset of transformations selected on the basis of an output symbol corresponding to the m-1th symbol.
  9. A computer implemented method as claimed in claim 8 wherein each subset of predetermined set of transformations correspond to a subset of predetermined transformations that are able to be used during encoding the second data sequence.
  10. A computer implemented method as claimed in claim 8 or 9 wherein each subset of predetermined set of transformations include: a group of transformations which are the direct reverses of a corresponding group of lossless transformations that may be used to encode the first data sequence into the second data sequence, and a plurality of remaining transformations that correspond to a plurality of groups of lossy transformations between the first data type and second data type that may be used to encode the first data sequence into the second data sequence.
  11. A computer implemented method as claimed in any one of claims 8 to 10 which further includes setting a predetermined subset of transformations mapping the second data type to the first data type for use in decoding the m+1th symbol of the second data sequence.
  12. An encoding device comprising: an input on which a first data sequence is received; said first data sequence comprising a first data symbols of a first data type and having a first code length, an output on which a second data sequence is transmitted; said second data sequence comprising a second data symbols of a second data type and having a second code length that is different to said first code length; a processing system configured to process received symbols of the first data sequence in series and output symbols of the second data sequence; wherein the processing system is configured to perform a method as claimed in any one of claims 1 to 7.
  13. An encoding device as claimed in claim 12 wherein the device is further adapted to perform a method of decoding an mth symbol of a second data sequence having a second data type and being created by encoding the nth symbol of a first data sequence having a first data type, said decoding generating an output symbol having said first data type, the method comprising: receiving the mth symbol of the second data sequence; generating the output symbol using a transformation belonging to a predetermined set of transformations mapping the second data type to the first data type; said predetermined set of transformations comprising a plurality of subsets of transformations, wherein each subset of transformations map the second data type to the first data type; and wherein said transformation used to generate the output symbol is a member of a subset of transformations selected on the basis of an output symbol corresponding to the m-1th symbol.
  14. A decoding device comprising: an input on which a second data sequence is received; said second data sequence comprising a second data symbols of a second data type and having a second code length, an output on which output symbols are transmitted, said output symbols having a first data type corresponding to a first data type of a first data sequence that was encoded to form the second data sequence; a processing system configured to process received symbols of the second data sequence in series and output symbols of the third data sequence with the same data type as the first data sequence; wherein the processing system is configured to perform a method as claimed in any one of claims 8 to 11.

Description

Field The present disclosure relates to methods of encoding a data sequence to compress it, and methods of decoding such an encoded data sequence, as well as systems for encoding data and/or decoding data using such methods. Embodiments will generally be described in connection with encoding sequences of data representing video or audio, but the present invention should not be considered to be limited to such applications. Background There are a great number of different codecs available for encoding and/or decoding sequences of data such as video or audio data, but occasionally a particular set of requirements emerge that are not well catered to by an existing codec. One such set of requirements is the need for relatively low compression that is preferably able to be performed with simple hardware. The article from Kuldip K. Ade et al "ROI based near lossless hybrid image compression technique", ICECCT, 2015, XP033210325, discloses an hybrid image compression method which proposes lossless compression for a region of interest and near lossless compression for the rest of an image. This niche is addressed by codecs such as PNG, T81 lossless JPEG and T87 JPEG-LS, which each provide light compression with a small hardware size. All three achieve the small hardware size by using a pixel prediction algorithm, where a given pixel is transmitted as the difference of the pixel from a neighbouring pixel (or a value derived from a combination of multiple neighbouring pixels). These codecs utilise variable length codes (VLC). Variable length codes achieve data compression by using short codes for frequently transmitted differences and longer codes for infrequently transmitted differences. Although encoded data from such codecs is generally smaller than the source data, most source data (e.g. images) produce short bursts of encoded data that is larger than the source data. This necessitates the use of VLC data buffers such as FIFOs, which add to the hardware resource requirements and thus increase hardware cost. The present inventor has identified that it would be desirable to further simplify hardware requirements or at least provide an alternative to such codecs. The systems, devices, methods and approaches described in this section, and components thereof are known to the inventor. Therefore, unless otherwise indicated, it should not be assumed that any of such systems, devices, methods, approaches or their components described are citable as prior art merely by virtue of their inclusion in this section, or that such systems, devices, methods, approaches and components would ordinarily be known to a person of ordinary skill in the art. Summary Aspects and embodiments of the present invention are set out in the appended claims. These and other aspects and embodiments of the invention are also described herein. Disclosed herein are methods of transforming an nth symbol of a first data sequence into an mth symbol of a second data sequence. Also disclosed is a method of decoding an mth symbol of a second data sequence having a second data type and being created by encoding the nth symbol of a first data sequence having a first data type, said decoding generating an output symbol having said first data type. There is also disclosed encoding and decoding devices. For example, the encoding device comprises an input on which a first data sequence is received, an output on which a second data sequence is transmitted and a processing system configured to process received symbols of the first data sequence in series and output symbols of the second data sequence. In a first aspect of the present disclosure there is provided a computer-implemented method for compressing data involving transforming an nth symbol of a first data sequence into an mth symbol of a second data sequence, the computer-implemented method comprising: receiving the nth symbol of the first data sequence; generating the mth symbol of the second data sequence from the nth symbol of the first data sequence using a transformation belonging to a predetermined set of transformations mapping a first data type comprising a library of first symbols having a first code length to a second data type comprising a library of second symbols having a second code length that is shorter than said first code length; said predetermined set of transformations comprising a plurality of subsets of transformations, wherein each subset of transformations map the first data type to the second data type, and include a group of lossless transformations that losslessly map certain symbols of the first data type to symbols of the second data type, and at least one group of lossy transformations between remaining symbols of the first data type and the second data type; wherein said transformation used to generate the mth symbol of the second data sequence from the nth symbol of the first data sequence is a member of a subset of transformations in which an n-1th symbol of the first data