WMAVoiceContext Struct Reference

WMA Voice decoding context. More...


Data Fields

Global values specified in the stream header / extradata or used all over.
GetBitContext gb
 packet bitreader.
int8_t vbm_tree [25]
 converts VLC codes to frame type
int spillover_bitsize
 number of bits used to specify spillover_nbits in the packet header = ceil(log2(ctx->block_align << 3))
int history_nsamples
 number of samples in history for signal prediction (through ACB)
int do_apf
 whether to apply the averaged projection filter (APF)
int denoise_strength
 strength of denoising in Wiener filter [0-11]
int denoise_tilt_corr
 Whether to apply tilt correction to the Wiener filter coefficients (postfilter).
int dc_level
 Predicted amount of DC noise, based on which a DC removal filter is used.
int lsps
 number of LSPs per frame [10 or 16]
int lsp_q_mode
 defines quantizer defaults [0, 1]
int lsp_def_mode
 defines different sets of LSP defaults [0, 1]
int frame_lsp_bitsize
 size (in bits) of LSPs, when encoded per-frame (independent coding)
int sframe_lsp_bitsize
 size (in bits) of LSPs, when encoded per superframe (residual coding)
int min_pitch_val
 base value for pitch parsing code
int max_pitch_val
 max value + 1 for pitch parsing
int pitch_nbits
 number of bits used to specify the pitch value in the frame header
int block_pitch_nbits
 number of bits used to specify the first block's pitch value
int block_pitch_range
 range of the block pitch
int block_delta_pitch_nbits
 number of bits used to specify the delta pitch between this and the last block's pitch value, used in all but first block
int block_delta_pitch_hrange
 1/2 range of the delta (full range is from -this to +this-1)
uint16_t block_conv_table [4]
 boundaries for block pitch unit/scale conversion
Packet values specified in the packet header or related to a packet.
A packet is considered to be a single unit of data provided to this decoder by the demuxer.

int spillover_nbits
 number of bits of the previous packet's last superframe preceeding this packet's first full superframe (useful for re-synchronization also)
int has_residual_lsps
 if set, superframes contain one set of LSPs that cover all frames, encoded as independent and residual LSPs; if not set, each frame contains its own, fully independent, LSPs
int skip_bits_next
 number of bits to skip at the next call to wmavoice_decode_packet() (since they're part of the previous superframe)
uint8_t sframe_cache [SFRAME_CACHE_MAXSIZE+FF_INPUT_BUFFER_PADDING_SIZE]
 cache for superframe data split over multiple packets
int sframe_cache_size
 set to >0 if we have data from an (incomplete) superframe from a previous packet that spilled over in the current packet; specifies the amount of bits in sframe_cache
PutBitContext pb
 bitstream writer for sframe_cache
Frame and superframe values
Superframe and frame data - these can change from frame to frame, although some of them do in that case serve as a cache / history for the next frame or superframe.

double prev_lsps [MAX_LSPS]
 LSPs of the last frame of the previous superframe.
int last_pitch_val
 pitch value of the previous frame
int last_acb_type
 frame type [0-2] of the previous frame
int pitch_diff_sh16
 ((cur_pitch_val - last_pitch_val) << 16) / MAX_FRAMESIZE
float silence_gain
 set for use in blocks if ACB_TYPE_NONE
int aw_idx_is_ext
 whether the AW index was encoded in 8 bits (instead of 6)
int aw_pulse_range
 the range over which aw_pulse_set1() can apply the pulse, relative to the value in aw_first_pulse_off.
int aw_n_pulses [2]
 number of AW-pulses in each block; note that this number can be negative (in which case it basically means "zero")
int aw_first_pulse_off [2]
 index of first sample to which to apply AW-pulses, or -0xff if unset
int aw_next_pulse_off_cache
 the position (relative to start of the second block) at which pulses should start to be positioned, serves as a cache for pitch-adaptive window pulses between blocks
int frame_cntr
 current frame index [0 - 0xFFFE]; is only used for comfort noise in pRNG()
float gain_pred_err [6]
 cache for gain prediction
float excitation_history [MAX_SIGNAL_HISTORY]
 cache of the signal of previous superframes, used as a history for signal generation
float synth_history [MAX_LSPS]
 see excitation_history
Postfilter values
Variables used for postfilter implementation, mostly history for smoothing and so on, and context variables for FFT/iFFT.

RDFTContext rdft
RDFTContext irdft
 contexts for FFT-calculation in the postfilter (for denoise filter)
DCTContext dct
DCTContext dst
 contexts for phase shift (in Hilbert transform, part of postfilter)
float sin [511]
float cos [511]
 8-bit cosine/sine windows over [-pi,pi] range
float postfilter_agc
 gain control memory, used in adaptive_gain_control()
float dcf_mem [2]
 DC filter history.
float zero_exc_pf [MAX_SIGNAL_HISTORY+MAX_SFRAMESIZE]
 zero filter output (i.e.
float denoise_filter_cache [MAX_FRAMESIZE]
int denoise_filter_cache_size
 samples in denoise_filter_cache
float tilted_lpcs_pf [0x80]
 aligned buffer for LPC tilting
float denoise_coeffs_pf [0x80]
 aligned buffer for denoise coefficients
float synth_filter_out_buf [0x80+MAX_LSPS_ALIGN16]
 aligned buffer for postfilter speech synthesis


Detailed Description

WMA Voice decoding context.

Definition at line 129 of file wmavoice.c.


Field Documentation

index of first sample to which to apply AW-pulses, or -0xff if unset

Definition at line 241 of file wmavoice.c.

Referenced by aw_parse_coords(), aw_pulse_set1(), and aw_pulse_set2().

whether the AW index was encoded in 8 bits (instead of 6)

Definition at line 230 of file wmavoice.c.

Referenced by aw_parse_coords(), and aw_pulse_set1().

number of AW-pulses in each block; note that this number can be negative (in which case it basically means "zero")

Definition at line 238 of file wmavoice.c.

Referenced by aw_parse_coords(), aw_pulse_set1(), and aw_pulse_set2().

the position (relative to start of the second block) at which pulses should start to be positioned, serves as a cache for pitch-adaptive window pulses between blocks

Definition at line 243 of file wmavoice.c.

Referenced by aw_pulse_set2().

the range over which aw_pulse_set1() can apply the pulse, relative to the value in aw_first_pulse_off.

The exact position of the first AW-pulse is within [pulse_off, pulse_off + this], and depends on bitstream values; [16 or 24]

Definition at line 232 of file wmavoice.c.

Referenced by aw_parse_coords(), aw_pulse_set1(), and aw_pulse_set2().

boundaries for block pitch unit/scale conversion

Definition at line 178 of file wmavoice.c.

Referenced by synth_frame(), and wmavoice_decode_init().

1/2 range of the delta (full range is from -this to +this-1)

Definition at line 176 of file wmavoice.c.

Referenced by synth_frame(), and wmavoice_decode_init().

number of bits used to specify the delta pitch between this and the last block's pitch value, used in all but first block

Definition at line 172 of file wmavoice.c.

Referenced by check_bits_for_superframe(), synth_frame(), and wmavoice_decode_init().

number of bits used to specify the first block's pitch value

Definition at line 169 of file wmavoice.c.

Referenced by check_bits_for_superframe(), synth_frame(), and wmavoice_decode_init().

range of the block pitch

Definition at line 171 of file wmavoice.c.

Referenced by synth_frame(), and wmavoice_decode_init().

8-bit cosine/sine windows over [-pi,pi] range

Definition at line 270 of file wmavoice.c.

Referenced by calc_input_response(), and wmavoice_decode_init().

Predicted amount of DC noise, based on which a DC removal filter is used.

Definition at line 153 of file wmavoice.c.

Referenced by postfilter(), and wmavoice_decode_init().

DC filter history.

Definition at line 274 of file wmavoice.c.

Referenced by postfilter(), and wmavoice_flush().

Definition at line 268 of file wmavoice.c.

Referenced by calc_input_response(), wmavoice_decode_end(), and wmavoice_decode_init().

aligned buffer for denoise coefficients

Definition at line 283 of file wmavoice.c.

Referenced by wiener_denoise().

Definition at line 278 of file wmavoice.c.

Referenced by wiener_denoise(), and wmavoice_flush().

samples in denoise_filter_cache

Definition at line 279 of file wmavoice.c.

Referenced by wiener_denoise().

strength of denoising in Wiener filter [0-11]

Definition at line 149 of file wmavoice.c.

Referenced by calc_input_response(), and wmavoice_decode_init().

Whether to apply tilt correction to the Wiener filter coefficients (postfilter).

Definition at line 151 of file wmavoice.c.

Referenced by calc_input_response(), and wmavoice_decode_init().

whether to apply the averaged projection filter (APF)

Definition at line 147 of file wmavoice.c.

Referenced by synth_frame(), synth_superframe(), wmavoice_decode_end(), wmavoice_decode_init(), and wmavoice_flush().

contexts for phase shift (in Hilbert transform, part of postfilter)

Definition at line 268 of file wmavoice.c.

Referenced by calc_input_response(), wmavoice_decode_end(), and wmavoice_decode_init().

float WMAVoiceContext::excitation_history[MAX_SIGNAL_HISTORY]

cache of the signal of previous superframes, used as a history for signal generation

Definition at line 253 of file wmavoice.c.

Referenced by synth_superframe(), and wmavoice_flush().

current frame index [0 - 0xFFFE]; is only used for comfort noise in pRNG()

Definition at line 249 of file wmavoice.c.

Referenced by synth_block_hardcoded(), and synth_frame().

size (in bits) of LSPs, when encoded per-frame (independent coding)

Definition at line 160 of file wmavoice.c.

Referenced by check_bits_for_superframe(), and wmavoice_decode_init().

cache for gain prediction

Definition at line 251 of file wmavoice.c.

Referenced by synth_block_fcb_acb(), synth_block_hardcoded(), and wmavoice_flush().

packet bitreader.

During decoder init, it contains the extradata from the demuxer. During decoding, it contains packet data.

Definition at line 134 of file wmavoice.c.

Referenced by parse_packet_header(), synth_superframe(), wmavoice_decode_init(), and wmavoice_decode_packet().

if set, superframes contain one set of LSPs that cover all frames, encoded as independent and residual LSPs; if not set, each frame contains its own, fully independent, LSPs

Definition at line 194 of file wmavoice.c.

Referenced by check_bits_for_superframe(), parse_packet_header(), and synth_superframe().

number of samples in history for signal prediction (through ACB)

Definition at line 143 of file wmavoice.c.

Referenced by synth_frame(), synth_superframe(), wmavoice_decode_init(), and wmavoice_flush().

contexts for FFT-calculation in the postfilter (for denoise filter)

Definition at line 266 of file wmavoice.c.

Referenced by calc_input_response(), wiener_denoise(), wmavoice_decode_end(), and wmavoice_decode_init().

frame type [0-2] of the previous frame

Definition at line 225 of file wmavoice.c.

Referenced by synth_frame(), and wmavoice_decode_init().

pitch value of the previous frame

Definition at line 224 of file wmavoice.c.

Referenced by synth_block_fcb_acb(), synth_frame(), and wmavoice_decode_init().

defines different sets of LSP defaults [0, 1]

Definition at line 158 of file wmavoice.c.

Referenced by synth_superframe(), and wmavoice_decode_init().

defines quantizer defaults [0, 1]

Definition at line 157 of file wmavoice.c.

Referenced by synth_superframe(), and wmavoice_decode_init().

number of LSPs per frame [10 or 16]

Definition at line 156 of file wmavoice.c.

Referenced by postfilter(), synth_block(), synth_frame(), synth_superframe(), wiener_denoise(), wmavoice_decode_init(), and wmavoice_flush().

max value + 1 for pitch parsing

Definition at line 166 of file wmavoice.c.

Referenced by kalman_smoothen(), synth_frame(), and wmavoice_decode_init().

base value for pitch parsing code

Definition at line 165 of file wmavoice.c.

Referenced by kalman_smoothen(), synth_frame(), and wmavoice_decode_init().

bitstream writer for sframe_cache

Definition at line 211 of file wmavoice.c.

Referenced by wmavoice_decode_packet().

((cur_pitch_val - last_pitch_val) << 16) / MAX_FRAMESIZE

Definition at line 226 of file wmavoice.c.

Referenced by synth_block_fcb_acb(), and synth_frame().

number of bits used to specify the pitch value in the frame header

Definition at line 167 of file wmavoice.c.

Referenced by check_bits_for_superframe(), synth_frame(), and wmavoice_decode_init().

gain control memory, used in adaptive_gain_control()

Definition at line 272 of file wmavoice.c.

Referenced by postfilter(), and wmavoice_flush().

double WMAVoiceContext::prev_lsps[MAX_LSPS]

LSPs of the last frame of the previous superframe.

Definition at line 222 of file wmavoice.c.

Referenced by synth_superframe(), wmavoice_decode_init(), and wmavoice_flush().

uint8_t WMAVoiceContext::sframe_cache[SFRAME_CACHE_MAXSIZE+FF_INPUT_BUFFER_PADDING_SIZE]

cache for superframe data split over multiple packets

Definition at line 204 of file wmavoice.c.

Referenced by synth_superframe(), and wmavoice_decode_packet().

set to >0 if we have data from an (incomplete) superframe from a previous packet that spilled over in the current packet; specifies the amount of bits in sframe_cache

Definition at line 206 of file wmavoice.c.

Referenced by synth_superframe(), wmavoice_decode_packet(), and wmavoice_flush().

size (in bits) of LSPs, when encoded per superframe (residual coding)

Definition at line 162 of file wmavoice.c.

Referenced by check_bits_for_superframe(), and wmavoice_decode_init().

set for use in blocks if ACB_TYPE_NONE

Definition at line 228 of file wmavoice.c.

Referenced by synth_block_hardcoded(), and synth_frame().

Definition at line 270 of file wmavoice.c.

Referenced by calc_input_response(), and wmavoice_decode_init().

number of bits to skip at the next call to wmavoice_decode_packet() (since they're part of the previous superframe)

Definition at line 199 of file wmavoice.c.

Referenced by wmavoice_decode_packet(), and wmavoice_flush().

number of bits used to specify spillover_nbits in the packet header = ceil(log2(ctx->block_align << 3))

Definition at line 140 of file wmavoice.c.

Referenced by parse_packet_header(), and wmavoice_decode_init().

number of bits of the previous packet's last superframe preceeding this packet's first full superframe (useful for re-synchronization also)

Definition at line 190 of file wmavoice.c.

Referenced by parse_packet_header(), and wmavoice_decode_packet().

float WMAVoiceContext::synth_filter_out_buf[0x80+MAX_LSPS_ALIGN16]

aligned buffer for postfilter speech synthesis

Definition at line 285 of file wmavoice.c.

Referenced by postfilter(), and wmavoice_flush().

see excitation_history

Definition at line 256 of file wmavoice.c.

Referenced by synth_superframe(), and wmavoice_flush().

aligned buffer for LPC tilting

Definition at line 281 of file wmavoice.c.

Referenced by wiener_denoise().

converts VLC codes to frame type

Definition at line 138 of file wmavoice.c.

Referenced by check_bits_for_superframe(), synth_frame(), and wmavoice_decode_init().

float WMAVoiceContext::zero_exc_pf[MAX_SIGNAL_HISTORY+MAX_SFRAMESIZE]

zero filter output (i.e.

excitation) by postfilter

Definition at line 276 of file wmavoice.c.

Referenced by synth_frame(), synth_superframe(), and wmavoice_flush().


The documentation for this struct was generated from the following file:

Generated on Fri Oct 26 02:38:25 2012 for FFmpeg by  doxygen 1.5.8