1、 INTERNATIONAL STANDARD ISO/IEC 23003-3:2012 TECHNICAL CORRIGENDUM 1 Published 2012-09-01 INTERNATIONAL ORGANIZATION FOR STANDARDIZATION ORGANISATION INTERNATIONALE DE NORMALISATION INTERNATIONAL ELECTROTECHNICAL COMMISSION COMMISSION LECTROTECHNIQUE INTERNATIONALEInformation technology MPEG audio t
2、echnologies Part 3: Unified speech and audio coding TECHNICAL CORRIGENDUM 1 Technologies de linformation Technologies audio MPEG Partie 3: Discours unifi et codage audio RECTIFICATIF TECHNIQUE 1 Technical Corrigendum 1 to ISO/IEC 23003-3:2012 was prepared by Joint Technical Committee ISO/IEC JTC 1,
3、Information technology, Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia information. In 3.2 add at the end: v = a This expression indicates that all elements of the array v shall be set to the value a. ICS 35.040 Ref. No. ISO/IEC 23003-3:2012/Cor.1:2012(E) ISO/IEC 2012 All ri
4、ghts reserved Published in Switzerland ISO/IEC 23003-3:2012/Cor.1:2012(E) 2 ISO/IEC 2012 All rights reservedIn 4.1 replace the diagram: with: ISO/IEC 23003-3:2012/Cor.1:2012(E) ISO/IEC 2012 All rights reserved 3In 4.2. replace: The filterbank / block switching tool applies the inverse of the frequen
5、cy mapping that was carried out in the encoder. An inverse modified discrete cosine transform (IMDCT) is used for the filterbank tool. The IMDCT can be configured to support 120, 128, 240, 256, 480, 512, 960 or 1024 spectral coefficients. with: The filterbank / block switching tool applies the inver
6、se of the frequency mapping that was carried out in the encoder. An inverse modified discrete cosine transform (IMDCT) is used for the filterbank tool. The IMDCT can be configured to support 96, 128, 192, 256, 384, 512, 768, or 1024 spectral coefficients. In 5.2 in Table 6, replace: case: ID_USAC_EX
7、T UsacExtElementConfig(); break; NOTE: UsacSingleChannelElementConfig(), UsacChannelPairElementConfig(), UsacLfeElement- Config() and UsacExtElementConfig() signaled at position elemIdx refer to the corresponding elements in UsacFrame() at the respective position elemIdx. with case: ID_USAC_EXT Usac
8、ExtElementConfig(); break; NOTE: UsacSingleChannelElementConfig(), UsacChannelPairElementConfig(), UsacLfeElement- Config() and UsacExtElementConfig() signaled at position elemIdx refer to the corresponding elements in UsacFrame() at the respective position elemIdx. In 5.3.1 in Table 17 replace: cas
9、e: ID_USAC_EXT UsacExtElement(usacIndependencyFlag); break; with case: ID_USAC_EXT UsacExtElement(usacIndependencyFlag); break; ISO/IEC 23003-3:2012/Cor.1:2012(E) 4 ISO/IEC 2012 All rights reservedIn 5.3.1 in Table 21 replace: if (usacExtElementUseDefaultLength) usacExtElementPayloadLength = usacExt
10、ElementDefaultLength; else usacExtElementPayloadLength = escapedValue(8,16,0); with: if (usacExtElementUseDefaultLength) usacExtElementPayloadLength = usacExtElementDefaultLength; else usacExtElementPayloadLength; 8 uimsbf if (usacExtElementPayloadLength=255) valueAdd 16 uimsbf usacExtElementPayload
11、Length += valueAdd - 2; In 5.3.2 in Table 23 replace: if (nrChannels = 2) StereoCoreToolInfo(core_mode); with if (nrChannels = 2) StereoCoreToolInfo(core_mode, indepFlag); In 5.3.2 in Table 24 replace: Syntax No. of bits Mnemonic StereoCoreToolInfo(core_mode) if (core_mode0 = 0 1 uimsbf common_windo
12、w; 1 uimsbf if (common_window) ics_info(); common_max_sfb; 1 uimsbf if (common_max_sfb = 0) ISO/IEC 23003-3:2012/Cor.1:2012(E) ISO/IEC 2012 All rights reserved 5if (window_sequence = EIGHT_SHORT_SEQUENCE) max_sfb1; 4 uimsbf else max_sfb1; 6 uimsbf else max_sfb1 = max_sfb; max_sfb_ste = max(max_sfb,
13、max_sfb1); ms_mask_present; 2 uimsbf if ( ms_mask_present = 1 ) for (g = 0; g num_window_groups; g+) for (sfb = 0; sfb max_sfb; sfb+) ms_usedgsfb; 1 uimsbf if (ms_mask_present = 3) cplx_pred_data(); else alpha_q_regsfb = 0; alpha_q_imgsfb = 0; with Syntax No. of bits Mnemonic StereoCoreToolInfo(core
14、_mode, indepFlag) if (core_mode0 = 0 1 uimsbf common_window; 1 uimsbf if (common_window) ics_info(); common_max_sfb; 1 uimsbf if (common_max_sfb = 0) if (window_sequence = EIGHT_SHORT_SEQUENCE) max_sfb1; 4 uimsbf else max_sfb1; 6 uimsbf else max_sfb1 = max_sfb; max_sfb_ste = max(max_sfb, max_sfb1);
15、ms_mask_present; 2 uimsbf if ( ms_mask_present = 1 ) for (g = 0; g num_window_groups; g+) for (sfb = 0; sfb max_sfb_ste; sfb+) ms_usedgsfb; 1 uimsbf if (ms_mask_present = 3) cplx_pred_data(max_sfb_ste, indepFlag); else ISO/IEC 23003-3:2012/Cor.1:2012(E) 6 ISO/IEC 2012 All rights reservedalpha_q_re =
16、 0; alpha_q_im = 0; In 5.3.2 in Table 38 Syntax of arith_data, replace: pki = arith_get_pk(c + esc_nb17) with: pki = arith_get_pk(c + (esc_nb17); In 6.1.1.1 replace: usacSamplingFrequency Output sampling frequency of the decoder coded as unsigned integer value in case usacSamplingFrequencyIndex equa
17、ls zero. with: usacSamplingFrequency Output sampling frequency of the decoder coded as unsigned integer value in case usacSamplingFrequencyIndex is equal to the escape value. In 6.1.1.1 add definition of bs_pvc by replacing: bs_interTes This flag signals the usage of the inter-TES tool in SBR. with
18、bs_interTes This flag signals the usage of the inter-TES tool in SBR. bs_pvc This flag signals the usage of the PVC tool in SBR. In 6.1.1.2, replace: bsStereoSbr This flag signals the usage of the stereo SBR in combination with MPEG Surround decoding. with bsStereoSbr This flag signals the usage of
19、the stereo SBR in combination with MPEG Surround decoding. The value of bsStereoSbr is defined by stereoConfigIndex (see Table 72). ISO/IEC 23003-3:2012/Cor.1:2012(E) ISO/IEC 2012 All rights reserved 7In 6.2.9.2.1 and in the headline of 6.2.9.2.3 replace: scalefactor_data with scale_factor_data In 6
20、.2.9.2.4 replace fd_channelffeh_stream() with fd_channel_stream() In 6.2.9.4 replace: As explain in ISO/IEC 14496-3:2009, 4.5.2.3.4, the width of the scalefactor bands is built in imitation of the critical bands of the human auditory system. For that reason the number of scalefactor bands in a spect
21、rum and their width depend on the transform length and the sampling frequency. Table 4.129 to Table 4.147, in ISO/IEC 14496-3:2009, 4.5.4, list the offset to the beginning of each scalefactor band on the transform lengths 1024 (960) and 128 (120) and on the sampling frequencies. For a transform leng
22、th of 768 samples, the scale factor bands at equency samplingfr 3 / 4 are used. In case a shorter transform length (dependent on coreCoderFrameLength) is used, swb_offset_long_window and swb_offset_short_window are limited to the size of the transform length, and num_swb_long_window and num_swb_shor
23、t_window is determined according to the following pseudo code with: As explained in ISO/IEC 14496-3:2009, 4.5.2.3.4, the width of the scalefactor bands is built in imitation of the critical bands of the human auditory system. For that reason the number of scalefactor bands in a spectrum and their wi
24、dth depend on the transform length and the sampling frequency. Table 4.129 to Table 4.147, in ISO/IEC 14496-3:2009, 4.5.4, list the offset to the beginning of each scalefactor band on the transform lengths 1024 and 128 and on the sampling frequencies (window length of 2048 and 256). For a transform
25、length of 768 samples, the same 1024-based scalefactor band tables are used, but those corresponding to equency samplingfr 3 / 4 . In case a shorter transform length (dependent on coreCoderFrameLength) is used, swb_offset_long_window and swb_offset_short_window are limited to the size of the transfo
26、rm length, and num_swb_long_window and num_swb_short_window is determined according to the following pseudo code: In 6.2.13.2 replace the text block: bsOttBandsPhase defines the number of IPD parameter bands. If bsOttBandsPhasePresent=0, with: bsOttBandsPhase defines the number of MPS parameter band
27、s where phase coding is used. If bsOttBandsPhasePresent=0, ISO/IEC 23003-3:2012/Cor.1:2012(E) 8 ISO/IEC 2012 All rights reservedIn 7.4.3 replace the pseudo code: /*Input variables*/ c /* old state context */ i /* Index of the 2-tuple to decode in the vector */ N /* Window Length */ /*Output value*/
28、c /*updated state context*/ c = arith_get_context(c,i,N) c = c4; if (i0) c = c + (q1i-1); if (i 3) if (q1i-3 + q1i-2 + q1i-1) 4; if (i0) c = c + (q1i-1); if (i 3) if (q1i-3 + q1i-2 + q1i-1) 5) return(c+0x10000); return (c); Further in 7.4.3 replace the following pseudo code: /*input variables*/ offs
29、et /* number of decoded 2-tuples */ N /* Window length */ x_ac_dec /* vector of decoded spectal coefficients */ arith_finish(x_ace_dec,offset,N) for (i=offset ;iN/4;i+) x_ac_dec2*i = 0; x_ac_dec2*i+1 = 0; q1i = 1; with: /*helper function*/ void arith_rewind_bitstream(offset); /* move the bitstream p
30、osition indicator backward by offset bits*/ /*input variables*/ offset /* number of decoded 2-tuples */ N /* Window length */ x_ac_dec /* vector of decoded spectal coefficients */ ISO/IEC 23003-3:2012/Cor.1:2012(E) ISO/IEC 2012 All rights reserved 9arith_finish(x_ace_dec,offset,N) arith_rewind_bitst
31、ream(14); for (i=offset ;i14 1 with: high = low +(range*cum_freqsymbol-1)14) 1; In 7.4.3 replace: with the value c is always 16. In 7.5.1.4 replace: Within one SBR frame there can be either one or two noise floors. The noise floor time borders are derived from the SBR envelope time border vector acc
32、ording to: with: Independent of bs_pvc_mode within one SBR frame there can be either one or two noise floors. If bs_pvc_mode is zero, the noise floor time borders are derived from the SBR envelope time border vector according to: In 7.5.1.5.2 replace the following text: If bs_pvc_mode in not zero, t
33、he SBR envelope time border vector of the current SBR frame, t Eis calculated according to: 2 , 1 , bs_num_env lots , numTimeS , bs_num_env lots , numTimeS E bs_var_len osition bs_noise_p bs_var_len bs_var_len bs_var_len t where bs_var_len is of the previous SBR frame. bs_var_len otherwise 20 ositio
34、n bs_noise_p if 1 _ _ env num bs with: If bs_pvc_mode is not zero, the SBR envelope time border vector of the current SBR frame, t Eis calculated according to: ISO/IEC 23003-3:2012/Cor.1:2012(E) ISO/IEC 2012 All rights reserved 11is f the 1 if bs_noise_position 0 2 otherwise E L 2 , 1 , E E L lots ,
35、 numTimeS , L lots , numTimeS E bs_var_len osition bs_noise_p var_len bs_var_len var_len t where ts numTimeSlo L E E t var_len E Land is the time border vector of the previous SBR frame and is the number of envelopes of the previous frame respectively. Note that if bs_pvc_mode=1 (PVC active in previ
36、ous frame), it follows that var_len previous SBR frame. E t E t bs_var_len oIn the same subclause 7.5.1.5.2 replace: If bs_pvc_mode is not zero, the PVC SBR envelope time border vector of the current SBR frame, t EPVC , is calculated according to: , 1 bs_noise_position , 2 first EPVC first t , numTi
37、meSlots bs_num_env t, , numTimeSlotsbs_num_env t where , 0 and 0 0 , otherwise first bs_var_bord_1 bs_pvc_mode bs_pvc_mode t with: If bs_pvc_mode is not zero, the PVC SBR envelope time border vector of the current SBR frame, t EPVC , is calculated according to: E E , 1 bs_noise_position , 2 first EP
38、VC first t , numTimeSlots L t, , numTimeSlotsL t where , 0 and 0 , otherwise first bs_pvc_mode bs_pvc_mode t 0 var_lenand and is the time border vector of the previous SBR frame and is the number of envelopes of the previous frame respectively. ts numTimeSlo L E E t var_len E L E t E tIn the same su
39、bclause 7.5.1.5.2 replace: If bs_pvc_mode is not zero, the noise floor time borders vectors of the current SBR frame, t Qis calculated according to: 2 , ) 2 ( ), 1 ( ), 0 ( 1 , ) 1 ( ), 0 ( se bs_num_noi se bs_num_noi E E E E E Q t t t t t t where 1if 0 2o t h e r w i s e bs_noise_position bs_num_no
40、ise ISO/IEC 23003-3:2012/Cor.1:2012(E) 12 ISO/IEC 2012 All rights reservedwith: If bs_pvc_mode is not zero, the noise floor time borders vectors of the current SBR frame, t Qis calculated according to: QE LL 2 , ) 2 ( ), 1 ( ), 0 ( 1 , ) 1 ( ), 0 ( Q Q L L E E E E E Q t t t t t t In 7.5.1.5.2 on pag
41、e 96 replace equations as follows: else, bs_pvc_mode is not zero, (1 ,( ) ) (, )( , ) , , (, () ) i Mapped x s i i i uil mkt itlmu lil Fr S Fr for E E E L l l t l l i 0 ), 1 ( ) ( ), ( ( 0 t t r n where 1 , 1 ( ,) : (, () ) ( 1 , () ) , () ( 1 ) , 0 (,) 0 ,otherwise IndexMapped x E E E s j kt il j i
42、 l l t l lL it SF rF r ttwith: else, bs_pvc_mode is not zero, (1 ,( ) ) (, )( , ) , , (, () ) i Mapped x s i i i uil mkt itlmu lil Fr S Fr for E EPVC EPVC L l l t l l i 0 ), 1 ( ) ( ), ( ( 0 t t r n where 1 , 1 ( ,) : (, () ) ( 1 , () ) , () ( 1 ) , 0 (,) 0 ,otherwise IndexMapped x EPVC EPVC E s j k
43、t il j i l l t l lL it SF rF r ttIn 7.5.1.5.2 replace the equation of Mapped Q in case of pvc_mode is not zero as follows.Replace: E EE (, ) , 0 ( ) (, ) (, ) , ( 0 ) ( ) PreMapped x E Mapped x PreMapped x E m k t numTimeSlots t L numTimeSlots mkt mkt t L Q t Q Qt twith: E EE (, ) , 0 ( 0 ) (, ) (, ) , ( 0 ) ( PreMapped x Mapped x PreMapped x E m k t numTimeSlots t mkt mkt t L Q t Q Qt ) t