Ana səhifə

Contents Page


Yüklə 2.59 Mb.
səhifə14/35
tarix25.06.2016
ölçüsü2.59 Mb.
1   ...   10   11   12   13   14   15   16   17   ...   35

7.8 SNR scalability




Figure 7-15. Illustration of decoding process for SNR scalability

This clause describes the additional decoding process required for the SNR scalable extensions.

SNR scalability defines a mechanism to refine the DCT coefficients encoded in another (lower) layer of a scalable hierarchy. As illustrated in Figure 7-15 data from two bitstreams is combined after the inverse quantisation processes by adding the DCT coefficients. Until the data is combined, the decoding processes of the two layers are independent of one another.

7.8.1 defines how to identify these bitstreams in a scalable hierarchy, however they can be classified as follows.

The lower layer, derived from the first bitstream, can itself be either non-scalable, or require the spatial or temporal scalability decoding process (and hence the decoding of additional bitstreams) to be applied.

The enhancement layer, derived from the second bitstream, contains mainly coded DCT coefficients and a small overhead. The decoding process for this layer and the combination of the two layers are described in this clause.

NOTE - All information regarding prediction is contained in the lower layer bitstream only. Therefore it is not possible to reconstruct an enhancement layer without decoding the lower layer bitstream data in parallel.

Furthermore prediction and reconstruction of the pictures as described in 7.6, 7.7 and 7.9 for the combined lower and enhancement layer is identical to the respective steps for decoding of the lower layer bitstream only.

Semantics and decoding process described in this clause include a mechanism for “chroma simulcast”. This may be used (for instance) to enhance 4:2:0 in the lower layer to 4:2:2 after processing the enhancement layer data. While the luminance data is processed as described before, in this case the chrominance information retrieved from the lower layer bitstream (with exception of intra-DC values, see 7.8.3.4) shall be discarded and replaced by the new information with higher chrominance resolution decoded from the enhancement layer.

It is inherent in SNR scalability that the two layers are very tightly coupled to one another. It is a requirement that corresponding pictures in each layer shall be decoded at the same time as one another.

In the case that the lower layer bitstream conforms to ISO/IEC 11172-2 (and not this specification) then two different IDCT mismatch control schemes are being used in decoding. Care must be taken in the encoder to take account of this.

7.8.1 Higher syntactic structures


The two bitstreams layers in this clause are identified by their layer_id, decoded from the sequence_scalable_extension.

The two bitstreams shall have consecutive layer ids, with enhancement layer bitstream having layer_id = idenhance and the lower layer bitstream having layer_id = idenhance-1.

The syntax and semantics of the enhancement layer are as defined in 6.2 and 6.3, respectively.

In the case that the lower layer bitstream conforms to ISO/IEC 11172-2 (and not this specification) then both this lower and the enhancement layer shall use the “restricted slice structure” defined in this specification.

Semantic restrictions apply to several values in the headers and extensions of the enhancement layer as follows:

Sequence header

This header shall be identical to the one in the lower layer bitstream except for the values of bit_rate, vbv_buffer_size, load_intra_quantiser_matrix, intra_quantiser_matrix, load_non_intra_quantiser_matrix and non_intra_quantiser_matrix. These can be selected independently except for load_intra_quantiser_matrix which shall be zero.



Sequence extension

This extension shall be identical to the one in the lower layer bitstream except for the values of profile_and_level_indication, chroma_format, bit_rate_extension and vbv_buffer_size_extension. Those can be selected independently.

A different value of chroma_format in each layer will cause the chroma_simulcast flag to be set as specified by Table 7-26.

The chroma_format of the enhancement layer shall be higher or equal to the chroma_format of the lower layer bitstream.



Table 7-26 chroma_simulcast flag

chroma_format

(lower layer)

chroma_format

(enhancement layer)

chroma_simulcast

4:2:0

4:2:0

0

4:2:0

4:2:2

1

4:4:4


4:4:4

0

In the case that the lower layer bitstream conforms to ISO/IEC 11172-2 (and not this specification), sequence_extension() is not present in the lower layer bitstream, and the following values shall be assumed for the decoding process.

progressive_sequence = 1

chroma_format = “4:2:0”

horizontal_size_extension = 0

vertical_size_extension = 0

bit_rate_extension = 0

vbv_buffer_size_extension = 0

low_delay = 0

frame_rate_extension_n = 0

frame_rate_extension_d = 0

The sequence_extension() in the enhancement layer shall have the values shown above.

Sequence display extension

This extension shall not be present as there is no separate display process for the enhancement layer.



Sequence scalable extension

This extension shall be present with scalable_mode = “SNR scalability”.



GOP header

This header shall be identical to the one in the lower layer bitstream.

NOTE - The GOP header must be present in each layer in order that the temporal_reference in each layer are reset on the same frame.

Picture header

This header shall be identical to the one in the lower layer bitstream except for the value of vbv_delay. This can be selected independently.



Picture coding extension

This extension shall be identical to the one in the lower layer bitstream except for the value of q_scale_type and alternate_scan. These can be selected independently.

chroma_420_type shall be set to ‘0’ if chroma_simulcast is set. Else it shall have the same value as in the lower layer bitstream.

In the case that the lower layer bitstream conforms to ISO/IEC 11172-2 (and not this specification) then picture_coding_extension() is not present in the lower layer bitstream and the following values shall be assumed for the decoding process:

f_code[0][0] = forward_f_code in the lower layer bitstream or 15

f_code[0][1] = forward_f_code in the lower layer bitstream or 15

f_code[1][0] = backward_f_code in the lower layer bitstream or 15

f_code[1][1] = backward_f_code in the lower layer bitstream or 15

intra_dc_precision = 0

picture_structure = “Frame Picture”

top_field_first = 0

frame_pred_frame_dct = 1

concealment_motion_vectors = 0

intra_vlc_format = 0

repeat_first_field = 0

chroma_420_type = 1

progressive_frame = 1

composite_display_flag = 0

The picture_coding_extension() in the enhancement layer shall have the values shown above.

For the lower layer q_scale_type and alternate_scan shall be assumed to have the value zero.

NOTE - q_scale_type and alternate_scan can be set independently in the enhancement layer.

Quant matrix extension

This extension is optional. Semantics are described in 6.3.11.

load_intra_quantiser_matrix and load_chroma_intra_quantiser_matrix shall both be zero.

Note Only the non-intra matrices will be used in the subsequent decoding process.



Picture display extension

This extension shall not be present.

NOTE - There is no separate display process for the enhancement layer. If pan-scan functionality is desired it can be accomplished already by using the information conveyed by the pan-scan extension of the lower layer bitstream.

Slice header

Slices shall be coincident with those in the lower layer. The value of quantiser_scale_code can be set independently from the lower layer bitstream.


7.8.2 Macroblock


Subsequently the “current macroblock” denotes the currently processed macroblock. The “current macroblock of the lower layer” denotes the macroblock identified by having the same macroblock_address as the current macroblock.

The decoding of the macroblock header information is done according to semantics in 6.3.17.

NOTE - Table B-8 which is used if scalable_mode == “SNR scalability” will never set the macroblock_intra, macroblock_motion_forward or macroblock_motion_backward flags, since a macroblock in the enhancement layer contains only refinement data for the current macroblock of the lower layer.

However the corresponding syntax elements and flags of the current macroblock in the lower layer bitstream are relevant for the combined decoding process of lower and enhancement layer following the inverse DCT as described in 7.8.3.5.


7.8.2.1 dct_type


The syntax element dct_type may be present in none, one or both of the lower and enhancement layer macroblock_modes(), as indicated by the semantics in 6.3.17.

If dct_type is present in the macroblock_modes() in both layers it shall have identical values.


7.8.2.2 Skipped Macroblocks


Macroblocks can be skipped in the enhancement layer bitstream, meaning that no coefficient enhancement is done (F"enhance[v][u]=0, for all v, u). Regarding this, the decoding process detailed in 7.8.3 shall be applied.

When macroblocks are skipped in both, the lower and the enhancement layer bitstreams, the decoding process is exactly as specified in 7.6.6.

Macroblocks can also be skipped in the lower layer bitstream, while still being coded in the enhancement layer bitstream. In that case the decoding process detailed in the following has to be applied, but F"lower[v][u] = 0, for all v, u.

7.8.3 Block


The first part of the decoding process of the enhancement layer block is independent from the lower layer.

The second part of the decoding process of the enhancement layer block has to be done jointly with the decoding process of the coincident lower layer block.

Two sets of inverse quantised coefficients F"lower and F"enhance are added to form F" (see Figure 7-15).

F"lower is derived from the lower layer bitstream exactly as defined in 7.1 to 7.4.2.3.

F"enhance is derived as is defined in the clauses below.

The resulting F" is further processed, starting with saturation, as defined in 7.4.3 to 7.6 (7.7, 7.9)


7.8.3.1 Variable length decoding


In an enhancement layer block the VLC decoding shall be performed according to 7.2., as for a non-intra block (as indicated by macroblock_intra = 0).

7.8.3.2 Inverse scan


Inverse scan shall be done exactly as defined in 7.3

7.8.3.3 Inverse quantisation


In an enhancement layer block the inverse quantisation shall be performed according to 7.4.2 as for a non-intra block.

In the case that the lower layer bitstream conforms to ISO/IEC 11172-2 (and not this specification) then the “inverse quantisation arithmetic” used to derive F’’lower[v][u] (see Figure 7-14) shall include the IDCT mismatch control (oddification) and saturation specified in ISO/IEC 11172-2.


7.8.3.4 Addition of coefficients from the two layers


Corresponding coefficients from the blocks of each layer shall be added together to form F" (see Figure 7-15).

F"[v][u] = F"lower[v][u] + F"enhance[v][u], for all u, v

If chroma_simulcast = 1 is set only the luminance blocks are treated as described above.

For chrominance blocks the DC coefficient of the base layer is used as a prediction of the DC coefficient in the coincident block in the enhancement layer, whereas the AC coefficients of the base layer are discarded and AC coefficients of the enhancement layer form F" in Figure 7-14 according to the following formulae:

F"[0][0] = F"lower[0][0] + F"enhance[0][0]

F"[v][u] = F"enhance[v][u], for all u, v except u = v = 0

NOTE - Chroma simulcast blocks are inverse quantised like non-intra blocks and use the chrominance non-intra matrix.

Table 7-27 gives the index of the chrominance block whose DC coefficient (F"lower[0][0]) is to be used to predict the DC coefficient in the coincident chrominance block of the enhancement layer (F"enhance[0][0]).

Table 7-27. block index used to predict DC coefficient




block index






















chroma_format

4

5

6

7

8

9

10

11

base: 4:2:0

upper: 4:2:2



4

5

4

5













base: 4:2:0

upper: 4:4:4



4

5

4

5

4

5

4

5

base: 4:2:2

upper: 4:4:4



4

5

6

7

4

5

6

7


7.8.3.5 Remaining macroblock decoding steps


After addition of coefficients from the two layers, the remainder of the macroblock decoding steps is exactly as described in 7.4.3 to 7.6 (7.7, 7.9, if applicable), since there is now only one data stream F"[v][u] to be processed.

In this process, the spatio/temporal prediction p[y][x] is derived according to the macroblock type syntax elements and flags for the current macroblock known from the lower layer bitstream.


1   ...   10   11   12   13   14   15   16   17   ...   35


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət