|
FFmpeg
|
Common code between the AC-3 and E-AC-3 decoders. More...
Go to the source code of this file.
Data Structures | |
| struct | AC3DecodeContext |
Functions | |
| static av_unused int | ff_eac3_parse_header (AC3DecodeContext *s, const struct AC3HeaderInfo *hdr) |
| Parse the E-AC-3 frame header. | |
| static av_unused void | ff_eac3_decode_transform_coeffs_aht_ch (AC3DecodeContext *s, int ch) |
| Decode mantissas in a single channel for the entire frame. | |
| static av_unused void | ff_eac3_apply_spectral_extension (AC3DecodeContext *s) |
| Apply spectral extension to each channel by copying lower frequency coefficients to higher frequency bins and applying side information to approximate the original high frequency signal. | |
Variables | |
| float | ff_ac3_heavy_dynamic_range_tab [256] |
Common code between the AC-3 and E-AC-3 decoders.
Summary of MDCT Coefficient Grouping: The individual MDCT coefficient indices are often referred to in the (E-)AC-3 specification as frequency bins. These bins are grouped together into subbands of 12 coefficients each. The subbands are grouped together into bands as defined in the bitstream by the band structures, which determine the number of bands and the size of each band. The full spectrum of 256 frequency bins is divided into 1 DC bin + 21 subbands = 253 bins. This system of grouping coefficients is used for channel bandwidth, stereo rematrixing, channel coupling, enhanced coupling, and spectral extension.
+-+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+-+ |1| |12| | [12|12|12|12] | | | | | | | | | | | | |3| +-+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+-+ ~~~ ~~~~ ~~~~~~~~~~~~~ ~~~ | | | | | | | 3 unused frequency bins–+ | | | | | +–1 band containing 4 subbands | | | +–1 subband of 12 frequency bins | +–DC frequency bin */
#ifndef AVCODEC_AC3DEC_H #define AVCODEC_AC3DEC_H
#include "libavutil/tx.h" #include "libavutil/float_dsp.h" #include "libavutil/fixed_dsp.h" #include "libavutil/lfg.h" #include "libavutil/mem_internal.h"
#include "ac3.h" #include "ac3dsp.h" #include "avcodec.h" #include "bswapdsp.h" #include "get_bits.h"
#define AC3_OUTPUT_LFEON 8
#define SPX_MAX_BANDS 17
/** Large enough for maximum possible frame size when the specification limit is ignored
Definition in file ac3dec.h.
|
static |
Parse the E-AC-3 frame header.
This parses both the bit stream info and audio frame header.
Referenced by parse_frame_header().
|
static |
Decode mantissas in a single channel for the entire frame.
This is used when AHT mode is enabled.
Referenced by decode_transform_coeffs_ch().
|
static |
Apply spectral extension to each channel by copying lower frequency coefficients to higher frequency bins and applying side information to approximate the original high frequency signal.
Referenced by decode_audio_block().
|
extern |
Definition at line 53 of file ac3dec.c.
Referenced by ac3_float_tables_init(), and ff_eac3_apply_spectral_extension().