The present invention relates to a method and apparatus for image compression, and particularly, but not exclusively, to an enhancement to the HT block coding method described in ISO/IEC 15444-15:2019, known as High Throughput JPEG 2000.
The High Throughput JPEG 2000 standard documented in ISO/IEC 15444-15:2016 describes a block coding algorithm consisting of Cleanup, SigProp and MagRef coding passes, of which the most distinctive feature is the HT Cleanup pass. The applicant's earlier patent applications, published as WO2017/201574, WO2019/191811 and WO2020/073098 also provide explanation of the high throughput block encoding technology. These documents provide explanation of the applicant's earlier technology for which the present document discloses enhancements.
The HT Cleanup pass involves three bit-streams, known as the MagSgn, VLC and MEL bit-streams, that collectively encode a rectangular block of sample values of width Wblk and height Hblk, where samples indexed by n have sign sn and magnitude μn. Samples are encoded or decoded in 2×2 blocks, and samples are traversed in a quad-based scanning pattern, such that consecutive indices n address the top-left, bottom-left, top-right and bottom-right samples of each 2×2 quad before advancing to the next quad within a pair of lines, and then on to subsequent line-pairs.
Each quad q is assigned a 4-bit significance pattern pq that indicates the significance a σn of each sample n in the quad, where a σn=1 means that the sample is significant, which is true if and only if μn#0, while σn=0 means that the sample is insignificant. Each sample is represented indirectly via its MagSgn value vn, together with its significance σn, where
Significance patterns are coded using a combination of two different techniques: an adaptive run-length code (MEL code) and a set of non-adaptive variable length coding (VLC) codes (CxtVLC codes).
Each sample has an exponent En which corresponds to the smallest number of least significant bits from vn that are required to capture all of its non-zero bits. That is, En is the smallest non-negative integer E such that vn<2E.
An exponent upper bound Uq is coded for each quad q, via a predictor Kq and an “unsigned prediction residual” uq≥0, where the predictor Kq for quad q is derived from previous coded sample magnitudes. Specifically, Uq≥E, where 25 is the largest exponent E n amongst all samples in the quad. We note that the value of ET' need not be explicitly computed by an encoder or decoded by a decoder, but it provides a convenient means to explain the present invention.
The significance pattern ρq and unsigned prediction residuals uq for a quad are coded jointly, using a VLC coding scheme that involves two sub-codes, one of which (CxtVLC code) is dependent on a neighbourhood significance context Cq and best suited to table-lookup approaches, while the other (U-VLC code) is amenable to direct computation if required.
The CxtVLC also encodes a variable amount of additional information about the magnitude exponents of each sample in the quad. This information, known as EMB pattern information, is combined with the exponent bound Uq and significance pattern ρq to determine the number of sign and least significant magnitude bits from each sample of each quad that are packed into a MagSgn bit stream.
Specifically, the CxtVLC encodes the 4-bit quantity ρq, a 1-bit quantity uqoff that is 1 if and only if uq#0, and 0 to 4 bits of the EMB pattern ϵq, whose 4 bits correspond to the quantities en for each sample in the quad, where
The exponent bound Uq is an upper bound for the exponent En associated with each sample in quad q, so the en values produced by the above equation are certain to be binary valued—i.e., enϵ{1,1}.
The set of bits from the EMB pattern ϵq that are actually coded with the CxtVLC codeword for quad q is data dependent, being constrained in part by the maximum length of CxtVLC codewords, which is 7 in the HT Cleanup algorithm of ISO/IEC 15444-15:2019. Binary value kn identify whether or not en is coded in the CxtVLC codeword. Decoders can deduce the kn values, along with quantities in=kn·en, from the CxtVLC codewords.
The CxtVLC mechanism can thus be understood as a variable-to-variable coding scheme, whereby a variable number of bits (e.g. 0 to 7 bits) are used to encode a variable amount of information about each quad (0 to 4 EMB bits, in addition to ρq and uqoff). A separate set of codewords is used for each context cq, which depends upon the significance of samples neighbouring the quad that have already been coded.
The least significant mn=σn·(Uqkn) bits of vn are packed into the MagSgn bit-stream. Decoders can readily combine these bits with the values σn, kn and in to recover vn and hence the magnitude μn and sign sn of each sample.
The HT Cleanup algorithm described in ISO/IEC 15444-15:2019 allows EMB pattern information to be coded via CxtVLC codewords only when uqoff=1. This restriction was because it simplifies the encoding procedure, since when uqoff=1 ,the encoder can always arrange for Uq to be equal to Eqmax, so that at least one of the en values is non-zero. This allows the encoder to avoid passing uqoff explicitly to the lookup table used to implement CxtVLC encoding. Instead, it can look up CxtVLC codewords using only cq, ρq and the 4-bit modified EMB pattern
There is an ongoing need to provide methods which can improve coding efficiency in a manner compatible with standards compliant decoders. In particular, it is desirable to increase the amount of information that is jointly coded using redundancy-exploiting techniques such as variable length coding and it is desirable to do this without significantly altering the standardised decoding procedures themselves.
There can be benefits to allowing at least some EMB pattern information to be communicated via CxtVLC codes even when uqoff=0. One important example where this can improve coding efficiency is when ρq=15 and Uq=Eqmax. In this case, all samples in a quad are significant and the EMB pattern ϵq can be interpreted as the most significant magnitude bit-plane associated with the quantities max{0,μn-1} for the quad's 4 samples. The predictor Kq is designed to be one less than the number of bits we would expect to require to represent vn, so it is quite likely that all four samples in the quad have en=1 when ρq=15 and Uq=Kq; this can be efficiently captured via suitable CxtVLC codes.
This invention describes a mechanism to overcome the encoder complexity related limitations to coding EMB pattern information when uqoff=0, allowing the development of CxtVLC codebooks with potentially higher coding efficiency.
An aspect provides method of image compression involving a variable-to-variable coding scheme, whereby a variable number of bits are used to encode a variable amount of information from a bounding magnitude bit-plane (EMB pattern) within a group of samples (hereinafter identified as a quad), in addition to encoding the significance of each sample in the quad (significance pattern) and a 1-bit unsigned residual offset value that indicates whether said bounding bit-plane is greater than a reference value (offset=1) or equal to the reference value (offset=0), the method involving a lookup table that the encoder addresses using a potentially modified version of the EMB pattern, a potentially modified version of the significance pattern, and any additional context information, in order to find the associated variable length codeword, wherein the modified significance pattern and modified EMB pattern, each consisting of 1 bit per sample in the quad, implicitly identify the quad's original significance pattern and the quad's 1-bit unsigned residual offset value, together with some or all of the quad's original EMB pattern, both when the unsigned residual offset value is 1 and, for specific values of the significance pattern, when the unsigned residual offset value is 0.
Another aspect provides a method of image compression providing an extension of a HT Cleanup encoding algorithm, as described in ISO/IEC 15444-15:2019, wherein context dependent variable length code (CxtVLC) lookup tables are indexed using a modified significance pattern, a modified EMB pattern and a context value, where the modified significance pattern and modified EMB pattern, each consisting of 4 bits, implicitly identify a quad's original 4-bit significance pattern and the quad's 1-bit unsigned residual offset value, together with some or all of the quad's original 4-bit EMB pattern, both when the unsigned residual offset value is 1 and, for specific values of the significance pattern, when the unsigned residual offset value is 0.
Another aspect provides a method of image wherein the context dependent variable length (CxtVLC) code includes codewords that communicate EMB pattern information for specific values of a quad's significance pattern when an unsigned residual offset value is 0.
In some embodiments the modified significance and modified EMB pattern values identify the original EMB pattern when the unsigned residual offset value is 0 and all samples in the quad are significant.
In some embodiments a quad's modified EMB pattern and modified significance pattern depend on whether or not the following three conditions hold:
In some embodiments, the CxtVLC code includes multiple codewords for which the unsigned residual offset value is 0 and the significance pattern has all bits equal to 1, indicating that all samples in the quad are significant, at least one such codeword serving to communicate EMB pattern information for the quad.
In some embodiments a quad's modified EMB pattern is the same as its original EMB pattern, while the quad's modified significance pattern is set to either its original significance pattern or the bit-wise exclusive OR of its original significance and EMB patterns, the latter being the case if the quad's unsigned residual offset value is 0.
Embodiments also provide a method for decompression of images compressed in accordance with the embodiments above.
An aspect provides method of image decompression involving a variable-to-variable coding scheme, whereby a variable number of bits are used to encode a variable amount of information from a bounding magnitude bit-plane (EMB pattern) within a group of samples (hereinafter identified as a quad), in addition to encoding the significance of each sample in the quad (significance pattern) and a 1-bit unsigned residual offset value that indicates whether said bounding bit-plane is greater than a reference value (offset=1) or equal to the reference value (offset=0), the method involving a lookup table that the encoder addresses using a potentially modified version of the EMB pattern, a potentially modified version of the significance pattern, and any additional context information, in order to find the associated variable length codeword,
Embodiments can provide an extension of the HT Cleanup encoding and decoding algorithm, as described in ISO/IEC 15444-15:2019.
Embodiments of the present invention relate to a modified coder implementation providing an extension for the High Throughput JPEG 2000 standard block coding algorithm described in the background section (the HTJ2K standard). Embodiments also provide an enhanced decoding method by virtue of the enhanced encoding.
In the method of embodiments of this invention, an enhanced block encoder addresses the CxtVLC table using context cq, a modified significance pattern
Importantly, in this invention the encoder uses the same number of index bits to address the CxtVLC table as it did in the original HT block coding algorithm—4 bits from
The decoding procedure is not actually changed at all by the method of this invention. CxtVLC decoding still produces values for ρq, uqoff and the kn and in values, from which the decoder knows the number of bits mn=σn·(Uq-kn) to unpack from the MagSgn bit-stream, combining them with σn and in to recover vn and thence μn and sn. However, the CxtVLC table itself will be different, since it can now include codewords corresponding to uqoff=0, in which one or more of the kn are non-zero.
In a preferred embodiment, the encoder constructs p q and E q as follows:
This works because in the case where ϵq#0, the significance pattern ρq cannot possibly be 0. It can be deduced, therefore, that when
More generally, embodiments of the invention can exploit the fact that whenever any EMB bit en=1, the corresponding significance bit must be a σn=1, so that the corresponding bit within
In one general embodiment of the invention, that exploits this principle, the encoder constructs
Here ⊕ denotes bit-wise “exclusive OR.” In this embodiment, uqoff is implicitly identified as 0 if
To summarise key points described above:
The key to this is to address the lookup table using a modified EMB pattern and a modified significance pattern, having the same number of bits as the original EMB and significance patterns.
The terminology of relevance to the description above is summarised as follows:
“EMB pattern” is a term in the HTJ2K standard, where it is a 4-bit word for each 22 quad being coded, that consists of the bits en. This is the most significant bit-position that can contain non-zero bits. The EMB pattern is statistically skewed and in the context of the present invention presents an opportunity for coding efficiency gains through variable length coding methods, which is why it is desirable to include EMB pattern information in the variable length CxtVLC codewords whenever possible, subject to the constraint that CxtVLC codewords should exceed a given maximum length.
It will be understood to persons skilled in the art of the invention that many modifications may be made without departing from the spirit and scope of the invention.
In the claims which follow and in the preceding description of the invention, except where the context requires otherwise due to express language or necessary implication, the word “comprise” or variations such as “comprises” or “comprising” is used in an inclusive sense, i.e. to specify the presence of the stated features but not to preclude the presence or addition of further features in various embodiments of the invention.
It is to be understood that, if any prior art publication is referred to herein, such reference does not constitute an admission that the publication forms a part of the common general knowledge in the art, in Australia or any other country.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2020903733 | Oct 2020 | AU | national |
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/AU2021/051206 | 10/14/2021 | WO |