phpMyVisites

Unequal Error Protection for JPEG 2000



Table des matières

1. Introduction to the concept of unequal error protection (UEP)

Unequal error protection relies on the assumption that there are more important and less important bit-stream elements, either in terms of visibility or in terms error resilience features in the decoder. Unequal error protection tries to protect important bit stream elements more than other. In the context of a video transmission over IP wireless networks, the focus is put on transmitting data on packet basis and therefore we will have to recover from packet losses.

To use UEP features it is reasonable to define importance classes for the bit stream elements or to reorganise the bit-stream in a manner that most important elements are leading.


2. A tool for protection: the insertion of Error Protection Fields (EPB)


2.1 EPB principle and syntax

A tool has been proposed within JPEG 2000 Part 11 standard based on the consideration that the set of error resilience tools that have selected during the establishment of JPEG 2000 standard [1] to combat the effect of error prone environments rely on the hypothesis that the headers (Main Header and Tile-part(s) header(s)) of the codestream are guaranteed to be error free.

In practice, it appears that the codestream is often not decodable in a proper way when an error occurs in one header, which might conduct to a decoder application crash or complete loss of the data. The worse is that, generally, it might not be possible to guarantee that the headers will be kept free of errors in many applications. In order to extend the error resilience to headers, it was proposed to define an error protection mechanism that will be embedded within the JPEG 2000 syntax. As a matter of fact, using an internal scheme will allow not to transmit the SSI to an UEP external module, at the cost that the protection shall be integrated by the source encoder itself, or a source transcoder somewhere in the transmission chain.

In order to remain compliant with the JPEG 2000 codestream syntax (ensuring backward compatility), it was chosen to insert the redundant information in a dedicated marker segment. Denoted by EPB for Error Protection Block, this marker will be skipped by a JPEG 2000 Part 1 compliant decoder as it will be recognised as an (from itself) unknown marker segment whereas a JPEG 2000 Part 11 compliant decoder will be able to interpret and use the redundancy for header protection and Unequal Error protection. To ensure full backward compatibility conditions and good error protection capabilities,

  • the decoder must able to locate the redundant information data block in the codestream
    • without generating complex data indexing mechanism (that would also have to be protected against errors)
    • nor with modifying the first marker segments imposed for the backward compatibility;
  • the marker itself and its length must be included in the data range to be protected;
  • a pre-defined block error code shall be used to protect at least up to the Error Protection Block marker segment parameters data (which, as later are proposed to be the marker, Length, index, EPB parameters), allowing the recovery of the marker boundaries.

This leads to:

  • place the marker segment with the redundant information immediately after the mandatory markers, that is to say the SOC and SIZ marker segments for the Main header; and the SOT marker for the Tile-part header;
  • use a systematic error correction mechanism, to ensure that the original data is kept intact;
  • separate the redundancy contained by the EPB in two sets, the first being to protect the mandatory bytes (SOC+SIZ or SOT)marker and length fields to ensure their decidability, and the second to protect the other fields.

Figure 1 illustrates the EPB disposition in the Main header case. The JPEG 2000 stream first mandatory bytes, together with the beginning of the EPB (in practice, the marker and its length information) constitutes the first set of data, whose L1 bytes is protected by L2 redundancy bytes placed immediately after (in the EPB marker data). This way, the bitstream remains compliant to JPEG 2000 Part 1 and if the error-correcting code used for protection is fixed, the decoding can take place without requiring the transfer of an extra (and unprotected) information. This L1+L2 byte section can for instance be generated by a Reed-Solomon RS(L1+L2,L1) code.


Figure 1 - Position of the EPB marker in the JPEG 2000 codestream in the Main Header case.

The remaining marker segments (L4 bytes) can then be protected by the remaining L3 bytes of the EPB marker segment, for instance with a Reed-Solomon RS(L3+L4,L4) code. The Error Protection Block (EPB) marker segment contains information about the error protection parameters and data used to protect the headers against errors. Figure 2 describes the syntax proposed for the EPB marker segment, where the various fields of the marker are defined as follows:

EPB: marker code (Length 16 bits);
Lepb: length of marker segment in bytes (not including the marker) (Length 16 bits);
Depb: EPB style (for example defines if the current EPB is the latest in the current header) (Length 8 bits);
LDPepb: length of the data to be protected by the redundant information (EPB data) carried within the current EPB (Length 32 bits);
Pepb: EPB Parameters: This defines the next Error correction code to be used for protecting the remaining data. (Length 32 bits);
EPB data: contains the data enabling the correction (typically redundancy bits) for the chosen RS code.

Figure 2 - Description of the proposed Error Protection Block syntax.

It is to be noted that the error-correcting code settings (i.e. the definition of the code protecting the remaining marker segments) can be specified in the beginning of the EPB marker segment in the Pepb parameter. The only restriction is that these parameters have then to be of fixed size, as they will have to be protected by the first (fixed) code. For efficiency reasons, it is necessary to consider that there could be more that only one EPB in the header. In fact, the Main Header or Tile-part Header size can be quite large when optional markers such as PPM are included. As a consequence, it is useful to include within the EPB syntax an EPB index (in Depb) which will enable the presence of several EPBs in the header. By default, one could consider that if the index is set to 0, the EPB block is the only one present, otherwise the EPBs are grouped together.

Another element to be considered is the large variations of the mandatory fields size, in particular in the Main Header. As a matter of fact, the number of components in the image may vary very much, even though most of the images used have in practice up to three or four components. Considering that this number of components directly impacts the size of field SIZ, which itself must be protected by the first fixed code, the dimensioning of the first code to the maximal possible size of SIZ field would lead to dramatic compression efficiency losses. As a consequence, it is useful to consider that by default the EPB will be dimensioned to match the most common cases, typically up to three components. Should the image contain more components, a second or more EPB marker placed immediately after the first one will protect the rest of the mandatory fields (typically the end of SIZ). At the decoding side, an hypothesis test on the number of image components will be carried out using the expected associated redundancy. The decoded number of components will be the one with the lowest error detection test.


2.2 Examples of application of EPB for header protection and data protection


Figure 3 - EPB for Main Header protection.

Figure 3, the first EPB marker segment included in the Main Header is located immediately after the SIZ marker segment. This one being of a size that depends on the number of image component, it is necessary at the beginning of the error correction process to synchronise using error detection in order to find the location of the first EPB marker segment. The Main Header can contain several EPB marker segments, that may be unpacked or packed, which mean that they appear one after each other, before the remaining Main Header information. Unpacked PEBs means that they will appear just before the data part they refer to. An example of packed and unpacked EPBs is given hereafter. In the example, one sees that L5 field can be left not protected if it is chosen to protect only the first marker segments (up to length L4) of the header.

One can also consider the protection of Tile-Part Headers against errors.Figure 4 shows the case where a single EPB marker segment is used to protect the Tile Part header. In this case, L1 data are protected by the L2 part of the EPB data, using the default Tile-Part header error correction code. L4 data are protected using L3, with the error correction code specified in the Pepb parameter.


Figure 4 - EPB for Tile-Part Header protection (single EPB case).

As illustrated by Figure 5, unpacked two EPB marker segments can be used to protect the Tile Part header. In this case, L1 data are protected by the L2 part of the first EPB data, and L'1 data are protected by the L'2 part of the second EPB data , using the default Tile-Part header error correction code. L4 data are protected using L3, with the error correction code specified in the Pepb parameter of the first EPB marker segment. L'4 data are protected using L'3, with the error correction code specified in the Pepb parameter of the second EPB marker segment. This structure allow to protect differently fundamental marker segments, such as QCD, whereas optional marker segments like PLT can be protected with less redundancy or even not protected at all. In the cas of Unpacked EPBs, the data to be protected are restricting to full marker segments.


Figure 5 - EPB for Tile-Part Header protection (two unpacked EPB case).

It is also possible to pack two EPB marker segments to protect the Tile Part header, as illustrated by Figure 6. In this case, L1 data are protected by the L2 part of the first EPB data, and L'1 data are protected by the L'2 part of the second EPB data, using the default Tile-Part header error correction code. L4 data are protected using L3, with the error correction code specified in the Pepb parameter of the first EPB marker segment. L'4 data are protected using L'3, with the error correction code specified in the Pepb parameter of the second EPB marker segment. This structure allow to protect differently fundamental marker segments, such as QCD, whereas optional marker segments like PLT can be protected with less redundancy or even not protected at all. In the case of Packed EPBs, the data to be protected can refer to one EPB or another at any location.


Figure 6 - EPB for Tile-Part Header protection (two packed EPB case).

3. Packet data protection and Unequal Error Protection through EPB for JPEG 2000 codestreams


3.1 Using EPB markers to perform protection of the JPEG 2000 codestream data

It is also possible to consider not only header protection, but also protection of the Tile-Part data. Naturally, this will lead us to the possibility of performing Unequal Error Protection in the sense where headers are more important than data (loss of header leads to the loss of the whole codestream, whereas a loss of some data packets leads to partial recovery of the image). The interest will then be to protect the whole codestream thanks to EPB if deemed necessary by the user due to the transmission conditions.

Figure 7 shows that the redundant data placed in EPB marker segments can also protect packet data. In the previous example, the first EPB marker segment protects the Tile Part header data, whereas the second EPB marker segment protects the packet data which follow immediately the Tile Part Header (section L4').


Figure 7 - EPB for header and data protection (EEP for data case).

The Packet data can however be of different sensitivity to errors. As illustrated by Figure 8, it is possible to define several EPB marker segments in the Tile Part Header, each of them protecting a subset of the packets data, with the same error correction code or with different error correction codes, depending on the EPBs parameters. The invention allow then to realise an Unequal error Protection of JPEG 2000 codestream.


Figure 8 - EPB for header and data protection (UEP for data case).

3.2 A practical application: UEP over a three refinement layer JPEG 2000 codestream

Having established the possible use of EPB marker segment for UEP protection of a JPEG 2000 codestream, one has applied it by inserting in the Tile-Part header additional EPBs that will protect data packets. Once again, it should be noted that this error correction capability is offered while providing a stream backward compatible with JPEG 2000 syntax. The used error correction codes parameters are then set by one EPB marker segment for the next one, which offers the different parts of the codestream data protection by different codes. As an application, let us consider image 'Woman' with three different layers for an overall quality of 0,5 bpp, as illustrated in Figure 9.


Figure 9 - Layers repartition for use case Image 'Woman'.

Applying an overall protection rate R=2/3 for both EEP and UEP with RS codes over a BSC channels for 500 realisations gives us the results presented in Figure 10. The Reed-Solomon code RS(30,20) was used for the three layers of EEP case while the UEP case was simulated using a Reed-Solomon code RS(50,20) for first layer, RS(30,20) for second layer and and no protection for the last layer. It can be observed that as soon as the error rate on the channel is above the EEP code capacity, EEP performances quickly degrade, whereas the stronger protection level provided by upper layer code allows to keep an acceptable PSNR up until BER=10-2.


Figure 10 - PSNR results for EEP and UEP on Image 'Woman'.

Figure 11 illustrates this visually for an average BER=10-2, either with equal error protection or unequal error protection embedded with JPWL EPB error correction tool are presented.


Figure 11 - Effect of JPWL error protection technique EPB for 'Woman' image transmitted over a BSC (p=10-2) with EEP or UEP for global redundancy R=2/3 (source: [2]).

4. References

[1] JPEG 2000 image coding system. ISO/IEC 15444-1/ITU-T T.800
[2] D. Nicholson, C. Lamy-Bergot, X. Naturel and C. Poulliat, "JPEG 2000 backward compatible error protection with Reed-Solomon codes," IEEE Transactions on Consumer Electronics, vol. 49, n. 4, pp.855-860, Nov. 2003.