19.02.2013 Views

2010318163752818

2010318163752818

2010318163752818

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ISO/IEC 14496-3:2005(E)<br />

Unit groups are collected ascending in spectral direction. For one long window, that gives the original<br />

codeword order, but for eight short windows a unit based window interleaving has been applied.<br />

Using this scheme, the codewords representing the lowest frequencies are the first codewords within<br />

spectral data for both, long and short blocks.<br />

Table 4.150 shows an example output of the first pre-sorting step for short blocks, assuming two-dimensional<br />

codebooks for window 0, 1, 6, and 7 and four-dimensional codebooks for window 2, 3, 4, and 5.<br />

Second pre-sorting step:<br />

The more energy a spectral line contains, the more audible is its distortion. The energy within spectral lines<br />

is related to the used codebook. Codebooks with low numbers can represent only low values and allow only<br />

small errors, while codebooks with high numbers can represent high values and allow large errors.<br />

Therefore, the codewords are pre-sorted depending on the used codebook. If the error resilient section data<br />

is used, the order is 11, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 9/10, 7/8, 5/6, 3/4, 1/2. If<br />

the normal section data is used, the order is 11, 9/10, 7/8, 5/6, 3/4, 1/2. This order is based on the largest<br />

absolute value of the tables. This second pre-sorting step is done on the described unit by unit base used in<br />

the first pre-sorting step. The output of the first pre-sorting step is scanned in a consecutive way for each<br />

codebook.<br />

Assigning numbers to units according the following metric can perform these two pre-sorting steps:<br />

codbookPriority[32] =<br />

{x,21,21,20,20,19,19,18,18,17,17,0,x,x,x,x,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}<br />

assignedUnitNr = ( codebookPriority[cb] * maxNrOfLinesInWindow<br />

+ nrOfFirstLineInUnit ) * MaxNrOfWindows + window<br />

with:<br />

codebookPriority[cb] codebook priority according the second pre-sorting step.<br />

maxNrOfLinesInWindow constant number: f in case of one long window and 128 in case of eight<br />

short windows<br />

nrOfFirstLineInUnit a number between 0 and 1020 in case of one long window and between 0<br />

and 124 in case of eight short windows (this number is always a multiple of<br />

four)<br />

maxNrOfWindows constant number: 1 in case of one long window and 8 in case of eight short<br />

windows<br />

window always 0 in case of one long window, a number between 0 and 7 in case of<br />

eight short windows and sort the units in ascending order using these<br />

assigned unit numbers.<br />

Encoder note: In order to reduce audible artifacts in case of errors within spectral data it is strongly recommended to use<br />

codebook 11 only if necessary!<br />

4.6.16.3.3.2 Segment width and segment instantiation<br />

The segment widths depend on the Huffman codebook used. They are derived as the minimums of the (codebook<br />

dependent) maximum codeword length and the transmitted longest codeword length:<br />

segmentWidth = min (maxCwLen, length_of_longest_codeword)<br />

Table 4.151 shows the values of maxCwLen depending on the Huffman codebook.<br />

Segments are instantiated until the available buffer is exhausted, whereas the size of this buffer is given by the<br />

data element length_of_reordered_spectral_data. The remaining bits at the end of the buffer increase the size of<br />

the last segment.<br />

4.6.16.3.3.3 Order of Huffman codewords in spectral data<br />

Figure 4.34 shows the general scheme of the segmentation and the arrangement of the PCWs. In this Figure 4.34,<br />

five segments can be provided to protect codewords from section 0 and section 1 against error propagation.<br />

194 © ISO/IEC 2005 — All rights reserved

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!