WO2019191811A1 - A further improved method and apparatus for image compression - Google Patents

A further improved method and apparatus for image compression Download PDF

Info

Publication number
WO2019191811A1
WO2019191811A1 PCT/AU2019/050299 AU2019050299W WO2019191811A1 WO 2019191811 A1 WO2019191811 A1 WO 2019191811A1 AU 2019050299 W AU2019050299 W AU 2019050299W WO 2019191811 A1 WO2019191811 A1 WO 2019191811A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
stream
groups
samples
group
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.)
Ceased
Application number
PCT/AU2019/050299
Other languages
English (en)
French (fr)
Inventor
David Scott Taubman
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.)
Kakadu R&D Pty Ltd
Original Assignee
Kakadu R&D Pty 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
Priority claimed from AU2018901112A external-priority patent/AU2018901112A0/en
Application filed by Kakadu R&D Pty Ltd filed Critical Kakadu R&D Pty Ltd
Priority to EP19781011.2A priority Critical patent/EP3777187B1/en
Priority to JP2020554294A priority patent/JP7834306B2/ja
Priority to US17/044,637 priority patent/US11265550B2/en
Priority to AU2019247481A priority patent/AU2019247481B2/en
Publication of WO2019191811A1 publication Critical patent/WO2019191811A1/en
Anticipated expiration legal-status Critical
Priority to AU2023241351A priority patent/AU2023241351B2/en
Priority to JP2024108539A priority patent/JP2024150498A/ja
Ceased 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Definitions

  • the present invention relates to an improved method and apparatus for image compression and particularly, but not exclusively, to an improved block coding apparatus and method for image compression.
  • JPEG and JPEG2000 are popular standards for image compression.
  • JPEG 2000 provides a rich set of features that find application in many diverse fields. Some of the most important features are as follows:
  • JPEG 2000 suite of standards provide good support for the following applications:
  • JPEG 2000 The one significant drawback of the JPEG 2000 standards is computational complexity. It is not immediately clear how significant a limitation this is for hardware implementations, since JPEG 2000 provides many modes that can be used to target efficient hardware solutions. Also, software implementations are sufficiently efficient that images of just about any displayable size can be rendered nearly instantaneously on modern platforms, including mobile devices. However, for video applications and for applications that are especially power conscious, compression and rendering complexity can become a problem.
  • the present invention provides a method for coding blocks of subband sample values, derived from still images, video frames or related media, involving three bit-streams and the partitioning of samples from the block into defined groups, wherein:
  • a first bit-stream encodes the significance of whole groups (AZC groups] whose causal neighbours are all insignificant, where samples with non-zero magnitude are identified as significant, and those with zero magnitude as insignificant;
  • VLC bit-stream encodes the significance of individual samples within each group that is either a significant AZC group or not an AZC group;
  • said second bit-stream (VLC bit-stream] also encodes an unsigned residual value for each significant group, that when added to a set of exponent predictors, provides an upper bound on the magnitude exponent of each significant sample in the group;
  • Magnetic bit-stream provides a sign bit and any additional magnitude bits required to represent the significant sample values, given the corresponding exponent bounds
  • exponent predictors are computed using both exponent bounds and the additional magnitude bits associated with previous samples in the block, except where such previous samples would lie outside the boundaries of the block.
  • the present invention provides a method for decoding blocks of subband samples, producing still image, video frames or related media, such samples being arranged into defined groups and represented using three bit-streams, wherein:
  • a first bit-stream (MEL bit-stream] is decoded to discover the significance of whole groups (AZC groups] whose causal neighbours are all insignificant, where samples with non-zero magnitude are identified as significant, and those with zero magnitude as insignificant;
  • VLC bit-stream is decoded to discover the significance of individual samples within each group that is either a significant AZC group or not an AZC group;
  • VLC bit-stream VLC bit-stream
  • MagneticSgn bit-stream is unpacked to discover a sign bit and any additional magnitude bits that are used to deduce the value of each significant sample, given the corresponding exponent bounds;
  • exponent predictors are computed using both exponent bounds and the additional magnitude bits associated with previously decoded samples in the block, except where such previous samples would lie outside the boundaries of the block.
  • the present invention provides an apparatus for coding blocks of subband sample values, comprising a processing apparatus which is arranged to implement the method of the first aspect of the invention.
  • the apparatus may comprise a processor, memory and operating system implementing software processes for implementing the method of the first aspect of the invention.
  • the apparatus may comprise hardware implementing the method or a mixture of hardware and software implementing the method.
  • the present invention provides an apparatus for decoding blocks of subband samples, comprising a processing apparatus arranged to implement a method in accordance with the second aspect of the invention.
  • the apparatus may comprise a processor, memory and operating system implementing software processes for implementing the method of the second aspect of the invention.
  • the apparatus may comprise hardware implementing the method or a mixture of hardware and software implementing the method.
  • the present invention provides a computer program, comprising instructions for controlling a computer to implement a method in accordance with the first aspect of the invention.
  • the present invention provides a non-volatile computer readable medium, providing a computer program in accordance with the fifth aspect of the invention.
  • the present invention provides a data signal, comprising a computer program in accordance with the fifth aspect of the invention.
  • the present invention provides a computer program, comprising instructions for controlling a computer to implement the method of the second aspect of the invention.
  • the present invention provides a non-volatile computer readable media, providing a computer program in accordance with the eighth aspect of the invention.
  • the present invention provides a data signal, comprising a computer program in accordance with the eighth aspect of the invention.
  • Figure 1 is a diagram showing FAST coding passes showing the codeword segments that are produced with/without the TERMINATION mode flag, as well as examples of coding passes that might be generated by an encoder and ultimately emitted to the code stream, in accordance with an embodiment
  • Figure 2 is a diagram showing an overview of a FAST Cleanup pass and coding process, according to an embodiment
  • FIG. 3 is a diagram showing an overview of the FAST Cleanup pass decoding process, in accordance with an embodiment
  • Figure 4 is a diagram showing a Codeword structure for the FAST Block Coder’s Cleanup pass, with three byte-streams, in accordance with an embodiment
  • Figure 6 is a diagram illustrating significance neighborhood information used to form coding contexts for 2x2 groups found in non-initial and initial line-pairs within a code block, respectively, in accordance with an embodiment
  • Figure 7 is a diagram illustrating formation of exponent predictors within non initial group rows, in accordance with an embodiment
  • Figure 8 is a diagram illustrating interleaving of VLC bits from a pair of groups. Bit-count ranges are applicable to non-initial group rows of the code block. Arrows at the bottom of the figure reveal decoding dependencies, and Figure 9 illustrates possible coding pass contributions recorded in JPEG2000 packet headers, where use of the FAST Block Coding Algorithm is indicated.
  • An embodiment of the present invention relates to a drop-in replacement for the original JPEG 2000 block coding algorithm that is described in Annexes C and D of IS 15444-1 (JPEG 2000 Part-1]
  • J2K-1 block coder and "J2K-1 algorithm” shall be used to identify this block coding algorithm, which is also central to other JPEG 2000 standards, including IS 15444-2 (JPEG 2000 Part-2], IS15444-3 (Motion JPEG 2000], IS 15444-6 (Compound Document Compression] and IS 15444-9 (JPIP].
  • the block coding algorithm described in this embodiment is able to be used in conjunction with these other standards to dramatically increase throughput, while retaining most existing features.
  • the block coding algorithm described in this document allows completely lossless transcoding to/from codestreams that have been generated using the J2K-1 algorithm.
  • Quality scalability is important, especially for interactive browsing applications via JPIP, where quality scalability essentially translates into large savings in communication and/or increase in responsiveness of the browsing application.
  • Quality scalability can also be important in distribution systems; it provides an elegant solution for progressive degradation of image /video archives if required; and it also enables selective protection and/or encryption of content, all of which are important for many applications.
  • the transcoding feature of the proposed algorithm in this embodiment means that quality scalability can be retrieved or temporarily surrendered at will, by selectively transcoding the block bit streams associated with images, video frames, volumes, or even individual regions within an image or volume, in order to manage performance and power consumption objectives within media systems.
  • FBCOT FAST Block Coder with Optimized Truncation
  • the rate control aspects of the FBCOT algorithm are largely described elsewhere, allowing this document to focus on a detailed description of the FAST block coder itself.
  • the algorithm described in this embodiment represents an evolution from the FBCOT algorithm that was originally proposed in response to the JPEG-XS CfP, where its objective performance was significantly higher than other approaches, especially at low bit-rates.
  • JPEG-XS evaluation process it was decided that JPEG 2000 extensions for high throughput would be best managed through a separate activity, known as High Throughput JPEG 2000 (HTJ2KJ, which is expected to become Part-15 of the JPEG 2000 family of standards.
  • HTJ2KJ High Throughput JPEG 2000
  • the motivation behind the FBCOT algorithm and, in particular, its FAST block coder align precisely with those of the HTJ2K activity.
  • the objectives of this embodiment are:
  • the HTJ2K block coding algorithm should support reversible transcoding to/from J2K-1 block bit-streams.
  • the HTJ2K block decoder should on average be at least lOx faster than the J2K-1 block decoder implementation within the popular commercial KakaduTM toolkit 1 over a range of conditions that are important in practical applications, including transcoded content as well as content encoded directly using HTJ2K.
  • the HTJ2K block encoder should on average be at least lOx faster than the J2K-1 block encoder implementation within KakaduTM, over a range of conditions that are important in practical applications.
  • the coding efficiency of the HTJ2K block coding algorithm should on average be no more than 15% worse than that of the J2K-1 block coding algorithm, over a range of conditions that are important in practical applications.
  • a FAST block coding option addresses this problem by allowing compressed streams to be produced in real time and then later transcoded to the J2K-1 representation if quality scalability attributes are important - e.g. for efficient interactive browsing via JPIP. While transcoding is possible between any two compression formats, the advantages of the FBCOT algorithm described in this document are:
  • Transcoding can be done selectively, as the need arises, even on a code block by code-block basis.
  • JPEG 2000 content is rendered multiple times. For example, large images are viewed interactively, by resolution or region of interest, so that successive rendered views contain many code-blocks in common. It is rarely practical to cache fully decompressed code-blocks in memory, but the availability of a FAST block coding option means that intelligent content caches can choose to transcode code-blocks that are being repeatedly accessed to a representation that can be decoded more quickly, or with less energy consumption.
  • the advantage of the algorithm described in this document is that transcoding of J2K-1 block bit-streams to FAST block bit-streams is both computationally efficient and entirely lossless; all aspects of the original JPEG 2000 representation are preserved exactly.
  • JPEG 2000 provides an excellent framework as an intermediate distribution format for video content, allowing the resolution (or even region] of interest to be extracted efficiently, close to the point of delivery, whereupon it may be transcoded into any of a number of common streaming video formats. While this use is already viable and potentially favourable over other approaches, such applications can further benefit from the availability of a light weight block coder, which preserves all other relevant functionality.
  • the J2K-1 block coder processes the subband samples within each code-block through a sequence of coding passes. It is helpful to briefly revise this in order to explain the different, yet related coding pass structure of the FAST block coding algorithm in the next section.
  • Each coding pass belongs to a bit-plane index p > 0, with respect to which the quantized magnitude of sample X[ri ⁇ is given by
  • D is the quantization step size, that is not present for reversible coding procedures.
  • sample A[n] is "significant” with respect to bit-plane p if M p [n] 1 0.
  • a parameter Mstart is communicated via the relevant JPEG 2000 packet headers, which is interpreted as the number of missing bit-planes in the code-block’s representation.
  • the J2K-1 block decoder is entitled to expect that all samples in the code-block are insignificant in bit planes p 3 K— M start . Equivalently, the total number of bit-planes that may contain significant samples is given by
  • SigProp Visits insignificant neighbours of known significant samples, coding their significance (and sign], in plane p.
  • MagRef (p P-2]: Visits samples that were already significant with respect to plane p + 1, coding the least significant bit of M p [n].
  • the encoder may drop any number of trailing coding passes from the information included in the final codestream. In fact, the encoder need not generate such coding passes in the first place if it can reasonably anticipate that they will be dropped.
  • All coding passes of the J2K-1 block coder adopt a stripe oriented scanning pattern, with 4 line stripes.
  • the columns of each stripe are visited from left to right before moving to the next stripe, while inside each stripe column the 4 samples of the stripe column are scanned from top to bottom.
  • the block coder employs arithmetic coding for all symbols in the cleanup pass, but can optionally emit raw (uncoded] bits for certain SigProp and MagRef coding passes.
  • This mode in which raw bits are emitted for non-cleanup passes, is identified as the "arithmetic coder bypass” mode, or just the "BYPASS” mode for short, as identified by bit-0 (LSB] of the code-block style field within the relevant COD/COC marker segment. 0 ⁇ er ⁇ lew of the FAST Block
  • the FAST block coder also adopts a coding pass structure, with Cleanup, SigProp and MagRef coding passes, defined with respect to bit-planes p.
  • Cleanup pass associated with each bit-plane p fully encodes the magnitudes M p [n] and the signs of those samples for which M p [n] 1 0. This information completely subsumes that associated with all previous (larger p] coding passes, so that there is no point in emitting them to the codestream.
  • Figure 1 illustrates the coding passes that might be generated by the FAST block encoder and/or emitted to the final codestream.
  • a FAST cleanup pass necessarily involves at least 2 bytes. It can be convenient to allow codestream writers to generate packet headers that identify initial coding passes with zero length, since these can be associated with coding passes from a J2K-1 coded code-block that has been transcoded to use the FAST block coder. This allows the transcoded representation to be transcoded back to the original J2K-1 representation without losing the original relationships between quality layers and code-block truncation points.
  • the SigProp and MagRef coding passes generated by the FAST block coder do not depend on each other; they depend only on the immediately preceding Cleanup pass.
  • the SigProp and MagRef coding passes generated by the FAST block coder encode exactly the same information as the corresponding coding passes of the J2K-1 block coder, so that the effective quantization associated with truncating the representation at the end of a Cleanup, SigProp or MagRef pass is the same, regardless of whether the FAST block coding algorithm or the J2K-1 algorithm is used.
  • All significance and associated sign information from the SigProp pass is emitted as raw binary digits and all magnitude refinement information from the MagRef pass is emitted as raw binary digits, where these raw bit-streams are subjected only to the bit-stuffing procedure used by the J2K-1 algorithm, to avoid the appearance of false marker codes in the range FF90h to FFFFh 2 .
  • the MagRef pass adopted by the FAST block coding algorithm is identical to that of the J2K-1 algorithm, operating in the BYPASS mode, except that code bits are packed into bytes with a little-endian bit order. That is, the first code bit in a byte appears in its LSB, as opposed to its MSB.
  • the SigProp coding pass adopted by the FAST block coding algorithm is also very similar to that of the J2K-1 block coder, operating in the BYPASS mode, with the following two differences:
  • Code bits are again packed into bytes of the raw bit-stream with a little- endian bit order, whereas the J2K-1 block coder uses a big-endian bit packing order.
  • the significance bits associated with one or more stripe columns are emitted first, followed by the associated sign bits, before advancing to the next set of stripe columns, whereas the J2K-1 block coder inserts any required sign bit immediately after the same sample’s magnitude bit.
  • the FAST block coder has no impact on other JPEG 2000 codestream constructs or their interpretation. Precincts, packets, tiles, transforms, and all other JPEG 2000 elements remain unchanged. In particular, the construction of JPEG 2000 packets depends upon the codeword segments that are produced by the block coder.
  • a codeword segment is a sequence of bytes, whose length is necessarily identified via the packet header.
  • the J2K-1 block coder may pack all coding passes into a single codeword segment (default mode]; in the TERMINATION mode, however, each coding pass is assigned its own codeword segment, while in the BYPASS mode(s] without TERMINATION, consecutive SigProp and MagRef coding passes are assigned to a single codeword segment.
  • the FAST cleanup pass is always assigned its own codeword segment, so the BYPASS mode has no impact. However the TERMINATION mode is respected.
  • the CAUSAL mode flag is also supported by the FAST block coder to ensure completely reversible transcoding to/from J2K-1 block bit-streams, since it affects the information that is represented by the SigProp coding pass.
  • SEGMARK, ERTERM, RESET and BYPASS mode flags are ignored when found in conjunction with the FAST block coder, but the flags can all be preserved to support truly reversible transcoding from codestreams based on the J2K-1 block coder to those based on the FAST block coder, and back again.
  • bit-stuffing in JPEG 2000 raw codeword segments avoids the appearance of byte pairs whose big-endian hex value lies in the range FF80h to FFFFh, but the block coding algorithm in general is only required to avoid marker codes in the range FF90h to FFFFh. Cleanup Pass Overview
  • the storage element in these figures represents a buffer that can store the code block’s samples, as well as some deduced state information.
  • the storage element is populated with subband samples, after which the derived quantities (significance flags and magnitude exponents] can be found immediately.
  • the storage element is progressively populated with subband samples and the derived quantities (significance flags and magnitude exponents] as the decoding progresses.
  • the storage element need not necessarily accommodate all samples or derived quantities for the entire code-block, but it is easiest to conceptualize things this way.
  • This triple bit-stream arrangement has distinct advantages over a single interleaved bit-stream.
  • it provides important decoupling between different elements of the encoding and decoding algorithms, allowing these elements to be executed in parallel or in an order that is most beneficial for the implementation platform.
  • registers and vector processing blocks can be optimized much more aggressively than would be possible without the 3 bit-stream organization.
  • the 3 bit-stream organization provides better concurrency and allows the actual amount of local storage to be reduced very aggressively, down to as little as 2 or 3 code-block lines.
  • the optimal ordering for different elements of the algorithm is different for encoding and decoding and different in hardware and software deployments, depending also on vector processing lengths.
  • a tightly interleaved bit-stream cannot accommodate any more than one processing order, while the 3 bit-stream organization provides the flexibility needed to create highly efficient implementations on a wide range of platforms.
  • MEL bit-stream or simply MEL-stream
  • VLC bit-stream or simply the VLC-stream
  • MagSgn bit-stream or simply MagSgn-stream
  • N is the set of natural numbers.
  • Table 1 provides a detailed elaboration of the relationship between sample magnitude M p and exponent E p . Note that the JPEG 2000 family of standards support subband samples with magnitudes up to (but not including] 2 37 , so exponents need never exceed 38.
  • Non-zero exponents are coded via so-called "unsigned residuals" with respect to a set of exponent predictors k r [h]
  • the nature of this residual coding process is that the coded information may only provide a bound
  • Subband samples within a code-block are processed in 2x2 groups g, each of which is assigned a 4-bit significance pattern p g that indicates the significance of each sample in the group.
  • Significance patterns are coded using a combination of two different techniques: an adaptive MELCODE and a set of non-adaptive VLC codes.
  • the predictors k h are derived from magnitude exponents of certain previously coded samples, which themselves depend upon the MagSgn values of earlier samples in the code-block.
  • the significance pattern p g and unsigned prediction residuals u g for a group 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 c g and best suited to table-lookup approaches, while the other (U-VLC code] is amenable to direct computation if required.
  • VLC code bits for pairs of 2x2 groups are interleaved in a manner that facilitates joint encoding or decoding of 8 samples at a time, while allowing 4-sample groups to be encoded or decoded individually if desired.
  • the FAST block coder Cleanup pass produces a single codeword segment whose length is communicated for the relevant packet header(s] via the existing methods.
  • this codeword segment is divided into three byte-streams, which are derived by bit-stuffing and packing bits from the following three bit-streams:
  • bit-stream consists of the string of bits produced by the coding algorithm, whereas the corresponding byte-stream consists of the bytes into which those bits are packed, subject to a bit-stuffing algorithm that serves to avoid the appearance of false marker codes within the final codeword segment.
  • bit-streams The arrangement of forward and backward growing byte-streams is illustrated in Figure 4.
  • Bits from the MagSgn bit-stream are packed into bytes of the MagSgn bit-stream in little-endian order, so that the first bit from the MagSgn bit-stream appears in the LSB (bit-0] of the first byte from the MagSgn byte-stream.
  • the MSB (bit-7] of the next byte becomes a stuffing bit, with value 0, so that byte has only 7 bits available and cannot exceed 7Fh in value. This means that no pair of consecutive bytes can form a 16-bit big-endian unsigned integer in the range FF80h to FFFFh, and at most one stuffing bit is introduced for every 15 bits that are packed from the MagSgn bit-stream.
  • Decoders shall extend the MagSgn byte stream with an FFh byte prior to unpacking bits and removing stuffing bits.
  • Encoders can, and generally should discard any terminal FFh that would otherwise be emitted to the MagSgn byte-stream.
  • Bits from the MEL bit-stream are packed into bytes of the MEL byte-stream in big-endian order, so that the first bit from the MEL bit-stream is found in the MSB (bit-7] of the first byte from the MEL byte-stream. Once a byte has been filled, if the value of the byte is FFh, the MSB (bit-7] of the next byte becomes a stuffing bit, with value 0, and the next MEL bit is packed into bit-6 of that byte.
  • Bits from the VLC bit-stream are packed into bytes of the VLC byte-stream in little-endian order, although the bytes themselves work backwards from the end of the codeword segment.
  • the fact that bytes are emitted and consumed in reverse order, means that a different bit-stuffing procedure is required.
  • B c ur denote a current byte to which bits are being packed during encoding or from which they are being unpacked during decoding
  • B pre v denote the previous byte emitted during encoding or consumed during decoding. If Bprev > 8Fh and the 7 LSBs of B cur are all 1 then the MSB of Bcur is a stuffing bit which shall be 0.
  • this bit-stuffing procedure ensures that no pair of consecutive bytes from the VLC byte-stream can form a 16-bit big-endian unsigned integer with value in the range FF90h to FFFFh, which is the range of marker codes that must not appear within a JPEG 2000 codestream outside of any marker segment
  • the length L of the FAST Cleanup pass’s codeword segment is always communicated within the associated JPEG 2000 packet header.
  • the part of this codeword segment that contains the MEL byte-stream and VLC byte-stream is identified as the codeword suffix, consisting of S bytes.
  • the value of S is encoded within 12 bits that are set aside as an Interface Locator Word (ILWJ, since L-S identifies the interface between the forward growing MagSgn and MEL byte- stream portions of the codeword segment.
  • ILWJ Interface Locator Word
  • the 12 ILW bits correspond to the 8 bits of the last byte in the codeword segment, together with the 4 LSBs of the second last byte in the codeword segment, and all LAST Cleanup codeword segments shall have length L and suffix length S no smaller than 2.
  • the ILW bits are considered to lie within the VLC byte-stream itself. Decoders shall read the ILW bits, decode the value of S, and then overwrite the ILW bits with l’s, including the modified last 2 bytes of the codeword segment within the VLC byte-stream from which VLC bits are extracted, but discarding the first 12 such extracted bits.
  • Encoders should pack 12 l’s to the VLC byte-stream before packing actual VLC bits; then, after the byte- streams have been combined into a Cleanup codeword segment, the 12 ILW bit positions are certain to hold l’s, which shall be replaced with the encoded suffix length S. These procedures ensure that bit-stuffing and bit-unstuffing procedures associated with the VLC byte-stream operate in a way that has no dependence on the suffix length itself.
  • the unpacking of actual VLC bits from the VLC byte-stream can commence from bit-4 of the second last byte in the codeword segment, taking the 4 LSB’s of that byte (Bcur] to be l’s and taking Bprev to be LLh.
  • the suffix length S is encoded within the 12 ILW bits as
  • B L® and B L-2 are the last and second last bytes in the codeword segment, respectively, and (B L-2 & OFh) isolates the 4 LSB’s of B L-2 .
  • B h® shall not be equal to LLh.
  • Variation 1 It can be shown that the suffix length need never violate the bound s ⁇ 2048 x— , so the 4 LSB’s of B,_ ? cannot all be 1.
  • B L® is certain not to exceed 8Fh so that no stuffing bit is required in B L-2 , and it is safe to replace all 12 ILW bits with Os during the unpacking of VLC bits from the VLC byte-stream. This is a desirable modification to the original algorithm.
  • Decoders shall consider all S suffix bytes of the FAST cleanup codeword segment to belong both to the MEL byte-stream and to the VLC byte-stream when unpacking bits. This means that some bits from the suffix might be unpacked to both bit-streams.
  • Encoders are at liberty to adopt termination procedures that result in overlap between the MEL and VLC byte-streams, so long as this results in correct decoding. In practice, it is valuable and relatively simple for encoders to explore overlaps of 1 byte between these streams.
  • a false marker code is a pair of consecutive bytes that form a 16-bit big-endian unsigned integers in the range FF90h to FFFFh. Avoiding false marker codes between the MEL and VLC byte-streams may require an encoder to insert an additional byte (e.g., an OOh byte].
  • encoders generally should eliminate any terminal FFh byte that would be emitted to the MagSgn byte-stream, since the decoder always synthesizes one trailing FFh. This approach both helps efficiency and avoids any possibility that false marker codes arise at the interface between the prefix and suffix of the FAST Cleanup codeword segment
  • Each group g has a binary significance state a g that is 1 if any sample in the group is significant, else 0. Additionally, group g has a 4-bit significance pattern p g , in the range 0 to 15, each bit of which (from LSB to MSB, in scanning order] is 1 if the corresponding sample in the group is significant.
  • Each group is assigned a coding context c g that depends only on the significance information associated with previous groups, visited in the scanning order. This allows significance to be decoded ahead of the magnitude and sign information, which improves computational throughput, at least in software implementations of both the encoder and decoder, and also allows SigProp and MagRef coding passes to be encoded and decoded in parallel with the Cleanup pass.
  • AZC All-Zero-Context
  • Adaptive coding is employed only to code the significance o g of AZC groups.
  • the binary symbols a g associated with each AZC group in sequence are concatenated to form a variable length binary string a AZC [i], which is coded within the MEL bit-stream.
  • the encoding and decoding of this AZC symbol string need not be synchronized with any other encoding or decoding steps.
  • the AZC symbol stream a AZC [i] is first converted to a sequence of run lengths ⁇ AZC D where each run represents the number of 0’s that precede the next 1. Since there is at most one AZC symbol for every group of 4 code-block samples, and no code-block may have more than 4096 samples, the maximum run-length that need be coded is 1024, corresponding to an entirely insignificant code-block.
  • the MEL coding procedure is a variant of the adaptive run-length coding algorithm in the JPEG-LS standard, that is known as the MELCODE.
  • the MEL code is a type of adaptive Golomb code for the run lengths f? AZC [/], where the threshold r MEL [/ ] plays the role of the Golomb parameter. Ignoring the adaptation for the moment, the coding procedure can be summarized as:
  • the optimal Golomb parameter for an exponentially distributed information source is a little over half of its mean value.
  • a typical run R should be coded by one hit followed by a miss. This implies that the adaptive state machine should experience one hit and one miss for each run, which is achieved by incrementing the state after each hit and decrementing the state after each miss, as shown in Table 2.
  • the complete MEL coding algorithm is as follows:
  • the bits emitted by the MEL coder constitute the MEL bit-stream. Where the last AZC symbol in a code-block is 0, the final run is considered to be "open,” meaning that the encoded run value may have any value that is at least as large as Siast, being the number of zeros at the tail of the AZC symbol string.
  • Encoders can take advantage of the flexibility of "open” runs to terminate the MEL byte-stream in such a way as to maximize the opportunity for overlap with the backward-growing VLC byte-stream.
  • the significance pattern p g is coded, along with other information, using variable length codes that operate on individual 2x2 groups.
  • Two types of codes are employed, which are identified here as CxtVLC codes and U-VLC codes.
  • the resulting code-bits are interleaved on a group-pair basis, as explained later, and form the FAST block coder’s VLC bit-stream.
  • Variation 2 The context labels here take values from 0 to 7, both for initial and non-initial group rows. Since separate CxtVLC code tables are used for each case, it may be preferable to use a smaller set of contexts for the first row of groups, which have less impact on the overall performance of the coder, so as to reduce the footprint of an implementation. In particular, we could use:
  • Table 3 provides the codeword lengths for each valid combination of context and codeword. The mapping of codeword lengths to actual codewords is described later in this section.
  • Variation 3 The CxtVLC codeword tables provided here may be subject to further modification to optimize coding efficiency across a range of imagery types. In particular, it may be desirable to provide distinct codeword tables for different subband orientations.
  • Variation ml An opportunity exists to extend the information that is encoded for ( p g , U g fi ) combinations whose codeword length is less than 7.
  • b g denote the 4-bit word (bit-pattern] that captures the most significant magnitude bit of each sample in group g that, as determined by the corresponding bounds U n . That is, writing n ; for the location of the sample that corresponds to bit-j in the 4-bit pattern words b g and p g , bit -j of b g is bit -[U n. — 1] of v n. unless bit-j of p g is 0, meaning t at o n.
  • bit-7 °f 3 ⁇ 4 is 0
  • bit-7 °f 3 ⁇ 4 is 0
  • b g is the "msb-pattern” for group g.
  • VLC decoding complexity is driven almost entirety by the maximum codeword length, so we only provide msb-pattern information for some codewords - those whose underlying probabilities are large enough to accommodate the extra diversity introduced by msb- pattern coding without requiring codewords longer than 7 bits for the representation to be efficient. Moreover, in general only some of the msb- pattern information is coded within the CxtVLC.
  • This variation constitutes a variable-to-variable length coding scheme, where both the length of each codeword and the amount of information represented by each codeword are variable.
  • the FAST block coding algorithm in this case remains substantially unaltered, except that the MagSgn bit-counts are reduced by 1 for each sample whose ⁇ p g bit is 1, and the implicit- 1 value i n for each such sample is set to the corresponding bit of b g .
  • the (modest 3 ] coding efficiency improvements associated with CxtVLC-based coding of the msb-pattern data without significantly altering the VLC decoding process or changing the MagSgn packing/unpacking processes.
  • CxtVLC encoding can be expected to become somewhat more complex under this variation, but can be achieved with lookup tables of manageable size, especially noting that CxtVLC lookup latency has almost no impact on encoder throughput (unlike decoder throughput].
  • the main impact on software throughput for this modification is an increase in the complexity of the computation of m n and i n values for each sample. We note, however, that this is entirely vectorizable in both the encoder and decoder.
  • An even simpler variation involves reducing the information associated with ( b g , ⁇ p g ) to just a single 2-bit quantity that identifies the number of initial entries of b g are known to be 0.
  • Variation 4 It may be preferable to increase the similarity between the coding procedure used in initial and non-initial group rows, so we may later adopt a coding table for the initial row of groups that does involve u g ff values. This is discussed further in the notes found in the Section "Coding Techniques Employed within the First Group Row” below.
  • TiibSs 4 CxtVI.C sdissg nst.Ces, fo issiffaS grossp rsws.
  • VLC codewords c w associated with the entries in each of Table 3 and Table 4 are obtained via the MacMillan assignment procedure, which yields a prefix code for each context.
  • the codewords are first sorted from shortest to longest using an index table idx[], as follows:
  • condition (i mod 2 1 0) in this sorting procedure is not all that important, but only for consistency with the procedure used to generate the codewords employed during the evaluation of the FAST block coder’s coding efficiency.
  • each codeword is assigned an Z max -bit unsigned integer
  • VLC actual codeword c w is formed from the l w most significant bits of I w written in big-endian order. That is, the first bit of c w is the MSB (bit Z max — 1] of / w , while the last bit of codeword c w is bit Z max — l w of / w . As noted already, this is the well-known MacMillan assignment The assignment is unique up to a permutation of the codewords which have identical lengths, for which the order is defined by the explicit sorting procedure above.
  • a first step in the formation of predictors is to form estimated exponents P g , P g , P g X and P g Y from E g W , E g , E g e and E g ⁇ .
  • the assignment employed is simply
  • y g is equal to 1 if group g has more than one significant sample, and 0 otherwise.
  • the y g value can be interpreted as a "multiple significance” mask.
  • the estimated exponents are converted to predictors using
  • Z g is a prediction offset for the group g to which location n belongs, which is 1 if all significant samples in the group have estimated exponents of 2 or more, else 0.
  • the offset Z g effectively allows u g to represent prediction residuals as small as -1; it can be written formally as
  • a single unsigned residual u g E (0,1, ... ,36 ⁇ is coded jointly via CxtVLC and U-VLC codes. Specifically, the CxtVLC code is used to communicate the binary value
  • decoders From k h and the u g value for the group that contains location n, decoders derive the exponent bound U n according to
  • the binary significance value s h forces U n to zero for all insignificant samples.
  • the U-VLC code that is used to represent non-zero values of u g consists of prefix and suffix components that are designed to be interleaved on a group-pair basis.
  • the prefix uniquely determines the length of the suffix, if any, and is small enough to allow prefixes for a pair of groups to be decoded together using a modest table lookup.
  • Table 5 provides all relevant details of the code. Tbbie S; U-VSX «Kb; wS S:b Sos sbiK svis iseso wsssigsssii sssisbisb. w . ; , wbhsss sisssi-hvtsai grossp rows.
  • Hs.-rs;, asftd assd iTa) saiits S e bisjgbhs siftb;; ps ibix asW sW.bx ars ⁇ ? ai die eosiewos for ⁇ w, aoie ps sdx ro ewos' s here are . ead as 'sfrisags &OS. « Sed Ps right.
  • the alternate mechanism developed here again involves predictors and unsigned residuals u g , but prediction is formed relative to a base value B g , which is adapted from group to group and can be interpreted as a state variable.
  • a single exponent bound U g is decoded for each group g, having the value
  • encoders are required to choose the smallest value for U g that is consistent with the above equations while ensuring that U g 3 E n for each location n in group g.
  • T ihSe is; fo foigKsfoeiii U-VLC WR3 ⁇ 4; ssssid for sfoRg ssssisgKiisJ s'e-fo.fofo-s svjfofo foe fofoai row of gs isag.-s fo a «Kfo-food;.. Hers, B) assd l s (u,S) fosswsi:; fh « prefix assfi s&fiix ssgths..
  • ssofe prsbx i-isde viir a bers as a read as xfri3 ⁇ 4gs fi isas fob fo right, i.aeaai.ag fisat Sfos first hit esfofoed fo> foe Mfo streasa is.
  • Variation 5 The different treatment of the initial and non-initial group rows, as described here, imposes a cost on hardware implementations in particular. In most applications, the initial group row contributes relatively little to overall coding efficiency, so it may be preferable to modify the approach to one that is more similar to that used for all non initial group rows.
  • Variation 6 After the above simplification, a valuable improvement involves using the MEL coding machinery to communicate offsets to certain unsigned prediction residuals u g in an adaptive way.
  • Variation kl In the interest of simplification and further enhancing throughput, it is valuable to reduce the number of potential non-AZC symbols associated with Variation 6.
  • Variation 6 is that there is no need to introduce a dependence on whether or not a group is an AZC group. Instead the presence of the K g ⁇ g symbol and its implications for the coding of unsigned residual values for each quad depends only on the and u° f z values that are already involved in efficient pair-wise U-VLC encoding and decoding implementations.
  • the VLC bit-stream is comprised of bits from the CxtVLC codes and the U-VLC codes, which are interleaved on a group-pair basis.
  • each row of groups is padded with an extra 2x2 group that has no CxtVLC codeword or AZC symbol, and is always insignificant, so that it also has no U-VLC codeword. In this way, each group row is partitioned into a whole number of group pairs, from left to right.
  • the VLC bit-stream is formed by emitting first the (possibly empty 5 ] significance CxtVLC codewords associated with a pair of groups, then any U-VLC code prefix for each group in the pair, and finally any U-VLC code suffix for each group in the
  • interleaving One benefit of interleaving is that a pair of U-VLC prefixes can be decoded together, after which the U-VLC suffix lengths are known and CxtVLC decoding can commence immediately within the next group pair.
  • encoders can generate both CxtVLC and U-VLC bits using a total of only two table lookups per pair of groups.
  • the MagSgn bit-stream is formed by concatenating the LSBs from each sample’s MagSgn value v n , following the scanning order shown in Figure 5, where
  • V n Xn + 2(M réelle - 1)
  • ⁇ c h is the sample’s sign bit, being 1 if the sample is negative and 0 otherwise.
  • Decoders generally need to reconstruct at least some of the magnitude exponents E n from the decoded magnitudes M n , in order to form exponent predictors k h for samples within the next row of 2x2 groups, so that r i n values can be deduced for those samples.
  • VLC decoding depends only on MEL decoding
  • MagSgn decoding depends only upon VLC and MEL decoding
  • VLC decoding and MagSgn decoding processes each have internal dependencies on the completion of previous VLC and MagSgn decoding steps, respectively.
  • the FAST MagRef coding pass is identical to the J2K-1 algorithm’s Magnitude Refinement pass when the BYPASS mode is used, except that the raw magnitude refinement bits are packed into bytes in little-endian order, as opposed to big- endian order.
  • a FAST MagRef pass provides an additional bit of precision to refine the magnitudes of significant samples from the preceding FAST Cleanup pass. Let p denote the bit-plane associated with that Cleanup pass. A MagRef pass may only be present if p > 0. The MagRef pass provides the value of
  • r p [n] ( M p® [n] mod 2) e ⁇ 0,1 ⁇ for each sample location that is significant with respect to bit-plane p - i.e., each location for which M p [n] 1 0.
  • the FAST MagRef pass uses the same 4-line stripe-oriented scanning pattern as the J2K-1 block coder, skipping over insignificant locations and emitting the r p [n] bits from all other locations to a MagRef bit-stream.
  • Bits from the MagRef bit-stream are packed into bytes in little-endian order, starting from the LSB of each byte. Once a complete byte is assembled, if the value of that byte is FFh, a stuffing bit (0] is introduced into the MSB (bit-7] of the next byte, which is able to accommodate only 7 bits from the MagRef bit- stream. Decoders extract bits progressively from bytes, starting from the LSB of each byte and working towards the MSB, which is skipped if the previous byte (if any] in the MagRef byte-stream had value FFh.
  • the last byte in a FAST MagRef byte-stream shall not have the value FFh, meaning that encoders are required to emit the byte that contains any stuffing bit produced via the procedure described above. Unused bits within a final byte of the MagRef byte-stream may take any value so long as this does not leave the last byte equal to FFh.
  • the FAST SigProp coding pass is the same as the J2K-1 algorithm’s Significance Propagation pass when the BYPASS mode is used, except that significance and sign bits are rearranged and packed into bytes in little-endian order, as opposed to big-endian order.
  • a FAST SigProp pass provides refined magnitude information for samples that were coded as insignificant within the preceding FAST Cleanup pass, so long as these samples have significant neighbours, based on the information coded previously within either the FAST Cleanup pass or the FAST SigProp pass.
  • a SigProp pass may only be present if p > 0.
  • the SigProp pass encodes a magnitude bit
  • JV ⁇ is a full neighbourhood that contains all 8 immediate neighbours of location n that lie within the code-block, except where the CAUSAL mode flag is set within the relevant COD/COC marker segment, in which case JV ⁇ omits any neighbours that are found in the next 4-line stripe (i.e., the one that follows the stripe that contains location n).
  • N n is a neighbourhood similar to N n , except that it contains only those neighbours that precede location n within the 4-line stripe- oriented scanning pattern.
  • the J2K-1 Significance Propagation pass interleaves magnitude and sign bits on a sample-by-sample basis.
  • magnitude and sign bits are also interleaved on a column-by-column basis within that stripe, but of course there are at most three member locations within each such column.
  • magnitude and sign bits are interleaved on a column-pair basis within that stripe, meaning that the magnitude bits from all members within the first pair of stripe columns (4 samples] are emitted to the SigProp bit-stream before the signs of any newly significant members in that pair of stripe columns, and the same is done for each subsequent pair of stripe columns in the code-block. Only those locations that actually lie within the code-block can be members.
  • magnitude and sign bits are interleaved on a column-quad basis, meaning that the magnitude bit from all members within a collection of 4 columns (4 samples in this case] are emitted to the SigProp bit-stream before the signs from that collection of columns. Again, only those locations that actually lie within the code-block can be members.
  • Variation 7 For hardware implementations in particular, it is preferable to adopt a more unified treatment of stripes with 1, 2, 3 or 4 lines.
  • the magnitude bits from all members within a collection of 4 stripe columns would be emitted to the SigProp bit-stream before the signs from the newly significant samples within that collection of 4 stripe columns.
  • this variation would result in the emission of up to 16 magnitude bits to the SigProp pass, followed by up to 16 sign bits corresponding to newly significant samples.
  • stripes of height 1 there is no difference between this variation of the SigProp pass and the one described above.
  • Bits from the FAST SigProp bit-stream are packed into bytes in little-endian order and subjected to exactly the same bit-stuffing procedure as the FAST MagRef bit-stream, resulting in a SigProp byte-stream.
  • any FAST SigProp byte-stream shall commence from the start of the codeword segment that immediately follows a FAST Cleanup codeword segment If the TERMINATION mode flag is set in the relevant COD/COC marker segment, the SigProp byte-stream shall occupy its own codeword segment and the last byte in that codeword segment shall not be equal to FFh. In this case, the FAST MagRef byte-stream (if any] shall occupy the following codeword segment and also not terminate with an FFh, as explained previously.
  • the SigProp bit-stream and MagRef bit- stream (if any] are concatenated and the resulting bit-stream is packed into a single byte-stream following the little-endian convention, yielding a single codeword segment which again shall not finish with an FFh.
  • Variation 8 To allow concurrent processing of the SigProp and MagRef coding passes when the TERMINATION flag is not set, a desirable modification to the current approach is to arrange for the MagSgn byte- stream to grow backwards, rather than forwards, so that the start of both the SigProp and MagRef byte-streams can be immediately identified within the single codeword segment that they share.
  • code-blocks are organized into precincts and each precinct is represented by a sequence of packets, one per quality layer.
  • Each packet has a header, which identifies the contributions made by each code block of the precinct to that packet, and a body that holds the relevant coded bytes from the precinct’s code-blocks.
  • the packet headers identify the number of initial missing most significant magnitude bit-planes for each code-block that makes a contribution, along with the number of coding passes and associated coded length information for each contributing code-block.
  • the coded bytes from each code-block are partitioned into one or more codeword segments. If a code-block contributes coding passes from multiple codeword segments to a packet, the packet header includes sufficient length information to identify the boundaries between codeword segments. In particular, if the TERMINATION mode flag (bit-2 of the code-block style field] is set within the relevant COD/COC marker segment, each coding pass occupies its own codeword segment and so the number of lengths that are communicated by the packet header is identical to the number of included coding passes.
  • each bypass Significance Propagation must appear at the start of a codeword segment, and each bypass Magnitude Refinement pass must appear at the end of a codeword segment, which will be the same codeword segment initiated by the preceding Magnitude Refinement pass, unless the TERMINATION mode flag is set
  • the FAST Cleanup pass must occupy its own codeword segment
  • the FAST SigProp pass must occupy appear at the start of a codeword segment
  • each FAST MagRef pass must appear at the end of a codeword segment, regardless of whether the BYPASS mode flag is set or not.
  • FAST SigProp and MagRef coding passes occupy their own codeword segments.
  • the relevant COD/COC marker segment identifies that the FAST block coder, the coding pass contributions that are recorded in packet headers shall conform to the structure shown in Figure 9.
  • the first coding pass contribution will be a FAST Cleanup pass.
  • the FAST Cleanup pass is preceded by a set of "empty coding passes”, all identified as having zero length. These shall not be interpreted by a decoder as FAST coding passes, since the FAST Cleanup pass must have at least 2 bytes.
  • the number of empty coding passes, if any, shall be 3 Z, where Z is a non-negative integer.
  • the bit-plane index p associated with the first FAST Cleanup pass is given by
  • K is the maximum number of magnitude bit-planes associated with the subband
  • M start is the number of missing MSBs, as signaled in the packet header that identifies the code-block’s first contribution
  • Z is the number of empty triplets of coding passes that are identified prior to the first contribution with non-zero length.
  • Note 1 The reason for allowing 3Z empty coding passes to precede the first FAST Cleanup pass is to allow J2K-1 based codestreams to be transcoded to use the FAST block coder, while still preserving all information related to quality layer boundaries from the original codestream. This information may be used to reconstruct the original codestream that was transcoded.
  • the CAP marker segment is used to advise decoders as to whether or not code-blocks might contribute empty coding passes before the first FAST Cleanup pas.
  • the codeword segments associated with the 3Z empty coding passes shall be determined based on the mode flags found in the code block style field of the relevant COD/COC marker segment, as if these coding passes had been encoded using the J2K-1 block coding algorithm.
  • the BYPASS mode flag is set, empty SigProp passes in which the arithmetic coder would have been bypassed shall appear at the start of their codeword segment, and empty MagRef passes in which the arithmetic coder would have been bypassed shall appear at the end of their codeword segment, which will be the same codeword segment as the preceding SigProp pass unless the TERMINATION mode flag is set
  • a code-block contributes any non-empty coding passes, or indeed any coding passes at all, to the codestream. It is possible that more than three FAST coding passes are contributed by a code-block, in which case each successive FAST cleanup pass has bit-plane index p that is one less than the previous one, and hence encodes all information embodied by all previous coding passes.
  • Decoders are recommended to process the last available FAST Cleanup pass for a code-block, along with the FAST SigProp pass (if any] and FAST MagRef pass (if any] which follow.
  • Note 2 The CAP marker segment is used to advise decoders as to whether or not code-blocks might contribute more than 3 FAST coding passes.
  • a mixture of block coding types is permitted only where this is signaled within the relevant COD/COC marker segment, as explained below. Moreover, in this case, the CAP marker segment is used to advise decoders that Mixed coding types is a possibility, as explained in Section 0.
  • the block coding type that is used for a code-block is identified indirectly through the signaling of length information within packet headers.
  • lengths associated with code-block contributions are signaled using a number of bits that depends on an "Lblock” state variable, that is specific to each code-block, and adjusted progressively during packet header parsing. If the length of the first non-empty contribution to a code-block is signaled using an Lblock value that is larger than it need be, that FAST block coding algorithm has been used, and the structure of all code-block contributions is the one illustrated in Figure 9. Otherwise, if Lblock is no larger than it need be, then the J2K-1 block coding algorithm has been used, and all included coding passes for the code-block shall be processed in accordance with the J2K-1 algorithm.
  • Codestreams that use the FAST block coder shall contain a CAP marker segment in the main header, which advertises dependence on Part- 15 capabilities. If the FAST block coder is used within code-blocks belonging to a given tile- component, then the FAST mode flag (bit-7 of the code-block style field] shall be set (equal to 1] within the relevant COD or COC marker.
  • Table 7 summarizes the role played by the code-block style field, identifying the impact that the FAST block coding algorithm has on the interpretation of all mode flags.
  • the COD/COC marker segment also contains a 16-bit SXcod field whose MSB (bit-15] indicates whether or not code-blocks might be coded using the J2K-1 block coding algorithm. This is the "Mixed Coding” mode flag. If the Mixed Coding flag is set, the decoder shall check whether the "Lblock” packet parsing state variable, used to encode the length of the first contribution with non-zero length for a code-block ,is larger than it need be to encode that length. As explained above, if Lblock is larger than it need be, the FAST block decoder shall be employed to process that code-block; otherwise, the J2K-1 block decoder shall be used.
  • the SXcod field is also used in IS15444-2/AMD4, where bit-5 of the SXcod field is also used to signal its presence.
  • bit-7 of the code-block style field is set, but bit-5 of the Scod or Scoc field is not set, the 16-bit SXcod field shall not be present within the COD/COC marker segment, and the code-blocks of all affected tile-components are coded using only the FAST block coding algorithm.
  • An "Empty Passes” flag indicates that the codestream may contain Z > 0 empty coding passes before a FAST Cleanup pass. If this flag is not set (i.e., 0], the first packet contribution from any code-block that uses the FAST block coding algorithm shall be a FAST Cleanup pass.
  • a "Multiple FAST Cleanup” flag indicates that the codestream may contain more than one FAST Cleanup pass for a code-block. If this flag is not set (i.e., 0], at most one FAST Cleanup pass shall be contributed by any code block to its precinct’s packets.
  • a "Mixed Coding” flag indicates that more than one type of coding technology may be possible for a code-block, being indicated in the manner described above. If this flag is not set (i.e., 0], all code-blocks whose COD/COC marker segment has the FAST mode flag (bit-7 of the code-block style field] set shall be decoded using the FAST block coding algorithm, and the SXcod field shall either not be present, or its "Mixed Coding” mode flag shall be 0.
  • bit-5 may be set within the codestream’s COD and/or COC marker segments, identifying the inclusion of the 16-bit SXcod field, as explained above.
  • processing apparatus which may be configured by software, a mixture of software and hardware, programmed gate array (PGAs] or FPGAs, or any other architecture.
  • the software may be provided in the form of modules. Routines and sub routines, or any software architecture, where software is used to implement embodiments of the invention. Where software is used to implement the invention, the software can be provided on computer readable media, such as discs or as data signals on a network, such as the internet, or any other way.
  • Embodiments of the invention relate to use within JPEG2000 format Embodiments of the invention are not limited to this. Some embodiments maybe used in other image processing formats. Embodiments may find application in other image processing contexts.
  • embodiments of the invention are not limited to images or video frames but may be used in any other type of media.
  • embodiments may be utilised with depth coding for multi view imaging and video, or any other visual media.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
PCT/AU2019/050299 2018-04-04 2019-04-04 A further improved method and apparatus for image compression Ceased WO2019191811A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
EP19781011.2A EP3777187B1 (en) 2018-04-04 2019-04-04 A further improved method and apparatus for image compression
JP2020554294A JP7834306B2 (ja) 2018-04-04 2019-04-04 画像圧縮のためのさらに改善された方法及び装置
US17/044,637 US11265550B2 (en) 2018-04-04 2019-04-04 Further improved method and apparatus for image compression
AU2019247481A AU2019247481B2 (en) 2018-04-04 2019-04-04 A further improved method and apparatus for image compression
AU2023241351A AU2023241351B2 (en) 2018-04-04 2023-10-05 A Further Improved Method and Apparatus for Image Compression
JP2024108539A JP2024150498A (ja) 2018-04-04 2024-07-05 画像圧縮のためのさらに改善された方法及び装置

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
AU2018901112 2018-04-04
AU2018901112A AU2018901112A0 (en) 2018-04-04 An Improved Method and Apparatus for Image Compression
AU2018901249 2018-04-13
AU2018901249A AU2018901249A0 (en) 2018-04-13 An Improved Method and Apparatus for Image Compression
AU2018901512A AU2018901512A0 (en) 2018-05-03 A Further Improved Method and Apparatus for Image Compression
AU2018901512 2018-05-03

Publications (1)

Publication Number Publication Date
WO2019191811A1 true WO2019191811A1 (en) 2019-10-10

Family

ID=68099677

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2019/050299 Ceased WO2019191811A1 (en) 2018-04-04 2019-04-04 A further improved method and apparatus for image compression

Country Status (5)

Country Link
US (1) US11265550B2 (https=)
EP (1) EP3777187B1 (https=)
JP (2) JP7834306B2 (https=)
AU (2) AU2019247481B2 (https=)
WO (1) WO2019191811A1 (https=)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113965761A (zh) * 2021-10-22 2022-01-21 长安大学 基于gpu实现的htj2k图像压缩方法、装置及设备
US11265550B2 (en) 2018-04-04 2022-03-01 Kakadu R & D Pty Ltd Further improved method and apparatus for image compression
WO2022077071A1 (en) 2020-10-14 2022-04-21 Kakadu R & D Pty Ltd Enhanced method and apparatus for image compression
JP2023501909A (ja) * 2019-10-25 2023-01-20 カカデゥ アール アンド ディー ピーティーワイ リミテッド 高スループットjpeg2000(htj2k)符号化における複雑度制御のための方法および装置
JP2023546039A (ja) * 2020-10-15 2023-11-01 クゥアルコム・インコーポレイテッド 並列コーディングのための双方向データブロックの共同終端

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11290575B2 (en) * 2020-02-06 2022-03-29 International Business Machines Corporation Connecting computer processing systems and transmitting data
US11357020B2 (en) 2020-02-06 2022-06-07 International Business Machines Corporation Connecting computer processing systems and transmitting data
US11405766B2 (en) 2020-02-06 2022-08-02 International Business Machines Corporation Connecting computer processing systems and transmitting data
CN116527904B (zh) * 2023-07-03 2023-09-12 鹏城实验室 熵编码方法、熵解码方法及相关装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678419B1 (en) * 1999-03-26 2004-01-13 Microsoft Corporation Reordering wavelet coefficients for improved encoding
JP4135617B2 (ja) * 2003-09-08 2008-08-20 ソニー株式会社 画像符号化装置及び方法
CA2807919C (en) * 2012-08-31 2016-06-14 Research In Motion Limited Methods and devices for entropy coding in scalable video compression
US9930348B2 (en) * 2014-03-14 2018-03-27 Qualcomm Incorporated Coefficient level coding in a video coding process
US10362310B2 (en) * 2015-10-21 2019-07-23 Qualcomm Incorporated Entropy coding techniques for display stream compression (DSC) of non-4:4:4 chroma sub-sampling
JP7037554B2 (ja) 2016-05-23 2022-03-16 カカドゥ アール アンド ディー ピーティーワイ リミテッド 画像を圧縮する方法および装置
US10609367B2 (en) * 2016-12-21 2020-03-31 Qualcomm Incorporated Low-complexity sign prediction for video coding
WO2019191811A1 (en) 2018-04-04 2019-10-10 Kakadu R & D Pty Ltd A further improved method and apparatus for image compression

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
D. TAUBMAN ET AL.: "HIGH THROUGHPUT JPEG 2000: NEW ALGORITHMS AND OPPORTUNITIES", 26 October 2017 (2017-10-26), Sydney, Australia, XP030082648, Retrieved from the Internet <URL:https://www.ibc.org/download?ac=3808> *
DAVID TAUBMAN: "FBCOT: a fast block coding option for JPEG", PROCEEDINGS OF SPIE, 2000
DAVID TAUBMAN: "FBCOT: A Fast Block Coding option for JPEG2000", 72. JPEG MEETING OF ISO/IEC JTC1/SC29/WG1
DAVID TAUBMAN: "FBCOT: A Fast Block Coding option for JPEG2000", 73. JPEG MEETING OF ISO/IEC JTC1/SC29/WG1
DAVID TAUBMAN: "High Throughput JPEG 2000 - New Algorithms And Opportunities Final", INTERNATIONAL BROADCASTING CONFERENCE 2017

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11265550B2 (en) 2018-04-04 2022-03-01 Kakadu R & D Pty Ltd Further improved method and apparatus for image compression
JP2023501909A (ja) * 2019-10-25 2023-01-20 カカデゥ アール アンド ディー ピーティーワイ リミテッド 高スループットjpeg2000(htj2k)符号化における複雑度制御のための方法および装置
US12273534B2 (en) 2019-10-25 2025-04-08 Kakadu R & D Pty Ltd Method and apparatus for complexity control in high throughput JPEG 2000 (HTJ2K) encoding
JP7691752B2 (ja) 2019-10-25 2025-06-12 カカデゥ アール アンド ディー ピーティーワイ リミテッド 高スループットjpeg2000(htj2k)符号化における複雑度制御のための方法および装置
WO2022077071A1 (en) 2020-10-14 2022-04-21 Kakadu R & D Pty Ltd Enhanced method and apparatus for image compression
JP2023546091A (ja) * 2020-10-14 2023-11-01 カカドゥ アール アンド ディー ピーティーワイ リミテッド 画像圧縮のための改善された方法および装置
EP4229872A4 (en) * 2020-10-14 2024-11-20 Kakadu R & D Pty Ltd IMPROVED METHOD AND APPARATUS FOR IMAGE COMPRESSION
US12452426B2 (en) 2020-10-14 2025-10-21 Kakadu R & D Pty Ltd Enhanced method and apparatus for image compression
JP2023546039A (ja) * 2020-10-15 2023-11-01 クゥアルコム・インコーポレイテッド 並列コーディングのための双方向データブロックの共同終端
JP7815230B2 (ja) 2020-10-15 2026-02-17 クゥアルコム・インコーポレイテッド 並列コーディングのための双方向データブロックの共同終端
CN113965761A (zh) * 2021-10-22 2022-01-21 长安大学 基于gpu实现的htj2k图像压缩方法、装置及设备

Also Published As

Publication number Publication date
US11265550B2 (en) 2022-03-01
JP2024150498A (ja) 2024-10-23
EP3777187A4 (en) 2021-12-22
US20210112250A1 (en) 2021-04-15
EP3777187B1 (en) 2025-12-10
AU2023241351A1 (en) 2023-10-26
AU2023241351B2 (en) 2025-11-06
EP3777187A1 (en) 2021-02-17
AU2019247481B2 (en) 2023-07-06
EP3777187C0 (en) 2025-12-10
AU2019247481A1 (en) 2020-10-01
JP7834306B2 (ja) 2026-03-24
JP2021520728A (ja) 2021-08-19

Similar Documents

Publication Publication Date Title
AU2023241351B2 (en) A Further Improved Method and Apparatus for Image Compression
US11470322B2 (en) Method and apparatus for image compression
US7095900B2 (en) Method and apparatus for performing scalar quantization with a power of two step size
US8013766B2 (en) Device and method for coding a data signal and device and method for decoding a data signal
AU2019356526B2 (en) A method and apparatus for image compression
Taubman et al. High throughput block coding in the HTJ2K compression standard
Taubman et al. High throughput JPEG 2000 (HTJ2K): Algorithm, performance and potential

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19781011

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2019247481

Country of ref document: AU

ENP Entry into the national phase

Ref document number: 2019247481

Country of ref document: AU

Date of ref document: 20190404

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2020554294

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019781011

Country of ref document: EP

Effective date: 20201104

WWG Wipo information: grant in national office

Ref document number: 2019781011

Country of ref document: EP