xref: /aosp_15_r20/external/libxaac/encoder/ixheaace_sbr_code_envelope.c (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
1*15dc779aSAndroid Build Coastguard Worker /******************************************************************************
2*15dc779aSAndroid Build Coastguard Worker  *                                                                            *
3*15dc779aSAndroid Build Coastguard Worker  * Copyright (C) 2023 The Android Open Source Project
4*15dc779aSAndroid Build Coastguard Worker  *
5*15dc779aSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*15dc779aSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*15dc779aSAndroid Build Coastguard Worker  * You may obtain a copy of the License at:
8*15dc779aSAndroid Build Coastguard Worker  *
9*15dc779aSAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
10*15dc779aSAndroid Build Coastguard Worker  *
11*15dc779aSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*15dc779aSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*15dc779aSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*15dc779aSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*15dc779aSAndroid Build Coastguard Worker  * limitations under the License.
16*15dc779aSAndroid Build Coastguard Worker  *
17*15dc779aSAndroid Build Coastguard Worker  *****************************************************************************
18*15dc779aSAndroid Build Coastguard Worker  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*15dc779aSAndroid Build Coastguard Worker  */
20*15dc779aSAndroid Build Coastguard Worker 
21*15dc779aSAndroid Build Coastguard Worker #include <string.h>
22*15dc779aSAndroid Build Coastguard Worker 
23*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_type_def.h"
24*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_constants.h"
25*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_aac_constants.h"
26*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_basic_ops32.h"
27*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_basic_ops16.h"
28*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_basic_ops40.h"
29*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_basic_ops.h"
30*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_error_codes.h"
31*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_error_standards.h"
32*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_header.h"
33*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_def.h"
34*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_resampler.h"
35*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_rom.h"
36*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_common_rom.h"
37*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_main.h"
38*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_frame_info_gen.h"
39*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_hbe.h"
40*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_code_envelope.h"
41*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_qmf_enc.h"
42*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_tran_det.h"
43*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_env_est.h"
44*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_missing_harmonics_det.h"
45*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_inv_filtering_estimation.h"
46*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_noise_floor_est.h"
47*15dc779aSAndroid Build Coastguard Worker 
48*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr_ton_corr.h"
49*15dc779aSAndroid Build Coastguard Worker #include "iusace_esbr_pvc.h"
50*15dc779aSAndroid Build Coastguard Worker #include "iusace_esbr_inter_tes.h"
51*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_sbr.h"
52*15dc779aSAndroid Build Coastguard Worker #include "ixheaace_common_utils.h"
53*15dc779aSAndroid Build Coastguard Worker 
54*15dc779aSAndroid Build Coastguard Worker IA_ERRORCODE
ixheaace_init_sbr_huffman_tabs(ixheaace_pstr_sbr_env_data pstr_sbr_env,ixheaace_pstr_sbr_code_envelope pstr_code_env,ixheaace_pstr_sbr_code_envelope pstr_noise,ixheaace_amp_res amp_res,ixheaace_str_sbr_huff_tabs * pstr_sbr_huff_tabs)55*15dc779aSAndroid Build Coastguard Worker ixheaace_init_sbr_huffman_tabs(ixheaace_pstr_sbr_env_data pstr_sbr_env,
56*15dc779aSAndroid Build Coastguard Worker                                ixheaace_pstr_sbr_code_envelope pstr_code_env,
57*15dc779aSAndroid Build Coastguard Worker                                ixheaace_pstr_sbr_code_envelope pstr_noise,
58*15dc779aSAndroid Build Coastguard Worker                                ixheaace_amp_res amp_res,
59*15dc779aSAndroid Build Coastguard Worker                                ixheaace_str_sbr_huff_tabs *pstr_sbr_huff_tabs) {
60*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->init_sbr_amp_res = amp_res;
61*15dc779aSAndroid Build Coastguard Worker 
62*15dc779aSAndroid Build Coastguard Worker   switch (amp_res) {
63*15dc779aSAndroid Build Coastguard Worker     case IXHEAACE_SBR_AMP_RES_3_0:
64*15dc779aSAndroid Build Coastguard Worker 
65*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_lvl_time_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c11t;
66*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_lvl_time_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l11t;
67*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_bal_time_c = pstr_sbr_huff_tabs->book_sbr_env_bal_c11t;
68*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_bal_time_l = pstr_sbr_huff_tabs->book_sbr_env_bal_l11t;
69*15dc779aSAndroid Build Coastguard Worker 
70*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_lvl_freq_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c11f;
71*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_lvl_freq_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l11f;
72*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_bal_freq_c = pstr_sbr_huff_tabs->book_sbr_env_bal_c11f;
73*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_bal_freq_l = pstr_sbr_huff_tabs->book_sbr_env_bal_l11f;
74*15dc779aSAndroid Build Coastguard Worker 
75*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_time_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c11t;
76*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_time_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l11t;
77*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_freq_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c11f;
78*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_freq_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l11f;
79*15dc779aSAndroid Build Coastguard Worker 
80*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->code_book_scf_lav_balance = CODE_BCK_SCF_LAV_BALANCE11;
81*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->code_book_scf_lav = CODE_BCK_SCF_LAV11;
82*15dc779aSAndroid Build Coastguard Worker 
83*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->si_sbr_start_env_bits = SI_SBR_START_ENV_BITS_AMP_RES_3_0;
84*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->si_sbr_start_env_bits_balance = SI_SBR_START_ENV_BITS_BALANCE_AMP_RES_3_0;
85*15dc779aSAndroid Build Coastguard Worker       break;
86*15dc779aSAndroid Build Coastguard Worker 
87*15dc779aSAndroid Build Coastguard Worker     case IXHEAACE_SBR_AMP_RES_1_5:
88*15dc779aSAndroid Build Coastguard Worker 
89*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_lvl_time_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c10t;
90*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_lvl_time_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l10t;
91*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_bal_time_c = pstr_sbr_huff_tabs->book_sbr_env_bal_c10t;
92*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_bal_time_l = pstr_sbr_huff_tabs->book_sbr_env_bal_l10t;
93*15dc779aSAndroid Build Coastguard Worker 
94*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_lvl_freq_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c10f;
95*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_lvl_freq_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l10f;
96*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_bal_freq_c = pstr_sbr_huff_tabs->book_sbr_env_bal_c10f;
97*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_bal_freq_l = pstr_sbr_huff_tabs->book_sbr_env_bal_l10f;
98*15dc779aSAndroid Build Coastguard Worker 
99*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_time_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c10t;
100*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_time_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l10t;
101*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_freq_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c10f;
102*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->ptr_huff_tab_freq_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l10f;
103*15dc779aSAndroid Build Coastguard Worker 
104*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->code_book_scf_lav_balance = CODE_BCK_SCF_LAV_BALANCE10;
105*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->code_book_scf_lav = CODE_BCK_SCF_LAV10;
106*15dc779aSAndroid Build Coastguard Worker 
107*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->si_sbr_start_env_bits = SI_SBR_START_ENV_BITS_AMP_RES_1_5;
108*15dc779aSAndroid Build Coastguard Worker       pstr_sbr_env->si_sbr_start_env_bits_balance = SI_SBR_START_ENV_BITS_BALANCE_AMP_RES_1_5;
109*15dc779aSAndroid Build Coastguard Worker       break;
110*15dc779aSAndroid Build Coastguard Worker 
111*15dc779aSAndroid Build Coastguard Worker     default:
112*15dc779aSAndroid Build Coastguard Worker       return IA_EXHEAACE_EXE_FATAL_SBR_INVALID_AMP_RES;
113*15dc779aSAndroid Build Coastguard Worker       break;
114*15dc779aSAndroid Build Coastguard Worker   }
115*15dc779aSAndroid Build Coastguard Worker 
116*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_lvl_time_c = pstr_sbr_huff_tabs->v_huff_noise_lvl_c11t;
117*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_lvl_time_l = pstr_sbr_huff_tabs->v_huff_noise_lvl_l11t;
118*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_bal_time_c = pstr_sbr_huff_tabs->book_sbr_noise_bal_c11t;
119*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_bal_time_l = pstr_sbr_huff_tabs->book_sbr_noise_bal_l11t;
120*15dc779aSAndroid Build Coastguard Worker 
121*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_lvl_freq_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c11f;
122*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_lvl_freq_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l11f;
123*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_bal_freq_c = pstr_sbr_huff_tabs->book_sbr_env_bal_c11f;
124*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_bal_freq_l = pstr_sbr_huff_tabs->book_sbr_env_bal_l11f;
125*15dc779aSAndroid Build Coastguard Worker 
126*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_time_c = pstr_sbr_huff_tabs->v_huff_noise_lvl_c11t;
127*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_time_l = pstr_sbr_huff_tabs->v_huff_noise_lvl_l11t;
128*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_freq_c = pstr_sbr_huff_tabs->v_huff_env_lvl_c11f;
129*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->ptr_huff_tab_noise_freq_l = pstr_sbr_huff_tabs->v_huff_env_lvl_l11f;
130*15dc779aSAndroid Build Coastguard Worker 
131*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->si_sbr_start_noise_bits = SI_SBR_START_NOISE_BITS_AMP_RES_3_0;
132*15dc779aSAndroid Build Coastguard Worker   pstr_sbr_env->si_sbr_start_noise_bits_balance = SI_SBR_START_NOISE_BITS_BALANCE_AMP_RES_3_0;
133*15dc779aSAndroid Build Coastguard Worker 
134*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->code_book_scf_lav_bal_time = pstr_sbr_env->code_book_scf_lav_balance;
135*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->code_book_scf_lav_bal_freq = pstr_sbr_env->code_book_scf_lav_balance;
136*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->code_book_scf_lav_lvl_time = pstr_sbr_env->code_book_scf_lav;
137*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->code_book_scf_lav_lvl_freq = pstr_sbr_env->code_book_scf_lav;
138*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->code_book_scf_lav_time = pstr_sbr_env->code_book_scf_lav;
139*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->code_book_scf_lav_freq = pstr_sbr_env->code_book_scf_lav;
140*15dc779aSAndroid Build Coastguard Worker 
141*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->ptr_huff_tab_lvl_time_l = pstr_sbr_env->ptr_huff_tab_lvl_time_l;
142*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->ptr_huff_tab_bal_time_l = pstr_sbr_env->ptr_huff_tab_bal_time_l;
143*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->ptr_huff_tab_time_l = pstr_sbr_env->ptr_huff_tab_time_l;
144*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->ptr_huff_tab_lvl_freq_l = pstr_sbr_env->ptr_huff_tab_lvl_freq_l;
145*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->ptr_huff_tab_bal_freq_l = pstr_sbr_env->ptr_huff_tab_bal_freq_l;
146*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->ptr_huff_tab_freq_l = pstr_sbr_env->ptr_huff_tab_freq_l;
147*15dc779aSAndroid Build Coastguard Worker 
148*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->code_book_scf_lav_freq = pstr_sbr_env->code_book_scf_lav;
149*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->code_book_scf_lav_time = pstr_sbr_env->code_book_scf_lav;
150*15dc779aSAndroid Build Coastguard Worker 
151*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->start_bits = pstr_sbr_env->si_sbr_start_env_bits;
152*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->start_bits_balance = pstr_sbr_env->si_sbr_start_env_bits_balance;
153*15dc779aSAndroid Build Coastguard Worker 
154*15dc779aSAndroid Build Coastguard Worker   pstr_noise->code_book_scf_lav_bal_time = CODE_BCK_SCF_LAV_BALANCE11;
155*15dc779aSAndroid Build Coastguard Worker   pstr_noise->code_book_scf_lav_bal_freq = CODE_BCK_SCF_LAV_BALANCE11;
156*15dc779aSAndroid Build Coastguard Worker   pstr_noise->code_book_scf_lav_lvl_time = CODE_BCK_SCF_LAV11;
157*15dc779aSAndroid Build Coastguard Worker   pstr_noise->code_book_scf_lav_lvl_freq = CODE_BCK_SCF_LAV11;
158*15dc779aSAndroid Build Coastguard Worker   pstr_noise->code_book_scf_lav_time = CODE_BCK_SCF_LAV11;
159*15dc779aSAndroid Build Coastguard Worker   pstr_noise->code_book_scf_lav_freq = CODE_BCK_SCF_LAV11;
160*15dc779aSAndroid Build Coastguard Worker 
161*15dc779aSAndroid Build Coastguard Worker   pstr_noise->ptr_huff_tab_lvl_time_l = pstr_sbr_env->ptr_huff_tab_noise_lvl_time_l;
162*15dc779aSAndroid Build Coastguard Worker   pstr_noise->ptr_huff_tab_bal_time_l = pstr_sbr_env->ptr_huff_tab_noise_bal_time_l;
163*15dc779aSAndroid Build Coastguard Worker   pstr_noise->ptr_huff_tab_time_l = pstr_sbr_env->ptr_huff_tab_noise_time_l;
164*15dc779aSAndroid Build Coastguard Worker   pstr_noise->ptr_huff_tab_lvl_freq_l = pstr_sbr_env->ptr_huff_tab_noise_lvl_freq_l;
165*15dc779aSAndroid Build Coastguard Worker   pstr_noise->ptr_huff_tab_bal_freq_l = pstr_sbr_env->ptr_huff_tab_noise_bal_freq_l;
166*15dc779aSAndroid Build Coastguard Worker   pstr_noise->ptr_huff_tab_freq_l = pstr_sbr_env->ptr_huff_tab_noise_freq_l;
167*15dc779aSAndroid Build Coastguard Worker 
168*15dc779aSAndroid Build Coastguard Worker   pstr_noise->start_bits = pstr_sbr_env->si_sbr_start_noise_bits;
169*15dc779aSAndroid Build Coastguard Worker   pstr_noise->start_bits_balance = pstr_sbr_env->si_sbr_start_noise_bits_balance;
170*15dc779aSAndroid Build Coastguard Worker 
171*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->update = 0;
172*15dc779aSAndroid Build Coastguard Worker   pstr_noise->update = 0;
173*15dc779aSAndroid Build Coastguard Worker 
174*15dc779aSAndroid Build Coastguard Worker   return IA_NO_ERROR;
175*15dc779aSAndroid Build Coastguard Worker }
176*15dc779aSAndroid Build Coastguard Worker 
ixheaace_create_sbr_code_envelope(ixheaace_pstr_sbr_code_envelope pstr_code_env,WORD32 * num_sfb,WORD32 delta_t_across_frames,FLOAT32 df_edge_first_env,FLOAT32 df_edge_incr)177*15dc779aSAndroid Build Coastguard Worker VOID ixheaace_create_sbr_code_envelope(ixheaace_pstr_sbr_code_envelope pstr_code_env,
178*15dc779aSAndroid Build Coastguard Worker                                        WORD32 *num_sfb, WORD32 delta_t_across_frames,
179*15dc779aSAndroid Build Coastguard Worker                                        FLOAT32 df_edge_first_env, FLOAT32 df_edge_incr) {
180*15dc779aSAndroid Build Coastguard Worker   memset(pstr_code_env, 0, sizeof(ixheaace_str_sbr_code_envelope));
181*15dc779aSAndroid Build Coastguard Worker 
182*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->delta_t_across_frames = delta_t_across_frames;
183*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->df_edge_1st_env = df_edge_first_env;
184*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->df_edge_incr = df_edge_incr;
185*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->df_edge_incr_fac = 0;
186*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->update = 0;
187*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->num_scf[FREQ_RES_LOW] = num_sfb[FREQ_RES_LOW];
188*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->num_scf[FREQ_RES_HIGH] = num_sfb[FREQ_RES_HIGH];
189*15dc779aSAndroid Build Coastguard Worker 
190*15dc779aSAndroid Build Coastguard Worker   pstr_code_env->offset =
191*15dc779aSAndroid Build Coastguard Worker       2 * pstr_code_env->num_scf[FREQ_RES_LOW] - pstr_code_env->num_scf[FREQ_RES_HIGH];
192*15dc779aSAndroid Build Coastguard Worker }
193