FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
aaccoder.c File Reference

AAC coefficients encoder. More...

#include "libavutil/libm.h"
#include <float.h>
#include "libavutil/mathematics.h"
#include "avcodec.h"
#include "put_bits.h"
#include "aac.h"
#include "aacenc.h"
#include "aactab.h"
#include "aacenctab.h"
#include "aacenc_utils.h"
#include "aacenc_quantization.h"
#include "aac_tablegen_decl.h"
#include "aacenc_is.h"
#include "aacenc_tns.h"
#include "aacenc_pred.h"

Go to the source code of this file.

Data Structures

struct  BandCodingPath
 structure used in optimal codebook search More...
 
struct  TrellisPath
 

Macros

#define NOISE_LOW_LIMIT   4500
 Frequency in Hz for lower limit of noise substitution. More...
 
#define NOISE_SPREAD_THRESHOLD   0.5f
 
#define NOISE_LAMBDA_NUMERATOR   252.1f
 
#define TRELLIS_STAGES   121
 
#define TRELLIS_STATES   (SCALE_MAX_DIFF+1)
 

Functions

static void encode_window_bands_info (AACEncContext *s, SingleChannelElement *sce, int win, int group_len, const float lambda)
 Encode band info for single window group bands. More...
 
static void codebook_trellis_rate (AACEncContext *s, SingleChannelElement *sce, int win, int group_len, const float lambda)
 
static void set_special_band_scalefactors (AACEncContext *s, SingleChannelElement *sce)
 
static void search_for_quantizers_anmr (AVCodecContext *avctx, AACEncContext *s, SingleChannelElement *sce, const float lambda)
 
static void search_for_quantizers_twoloop (AVCodecContext *avctx, AACEncContext *s, SingleChannelElement *sce, const float lambda)
 two-loop quantizers search taken from ISO 13818-7 Appendix C More...
 
static void search_for_quantizers_faac (AVCodecContext *avctx, AACEncContext *s, SingleChannelElement *sce, const float lambda)
 
static void search_for_quantizers_fast (AVCodecContext *avctx, AACEncContext *s, SingleChannelElement *sce, const float lambda)
 
static void search_for_pns (AACEncContext *s, AVCodecContext *avctx, SingleChannelElement *sce)
 
static void search_for_ms (AACEncContext *s, ChannelElement *cpe)
 

Variables

AACCoefficientsEncoder ff_aac_coders [AAC_CODER_NB]
 

Detailed Description

AAC coefficients encoder.

Definition in file aaccoder.c.

Macro Definition Documentation

#define NOISE_LOW_LIMIT   4500

Frequency in Hz for lower limit of noise substitution.

Definition at line 52 of file aaccoder.c.

Referenced by search_for_pns().

#define NOISE_SPREAD_THRESHOLD   0.5f

Definition at line 56 of file aaccoder.c.

Referenced by search_for_pns().

#define NOISE_LAMBDA_NUMERATOR   252.1f

Definition at line 61 of file aaccoder.c.

Referenced by search_for_pns().

#define TRELLIS_STAGES   121

Definition at line 322 of file aaccoder.c.

Referenced by search_for_quantizers_anmr().

#define TRELLIS_STATES   (SCALE_MAX_DIFF+1)

Definition at line 323 of file aaccoder.c.

Referenced by search_for_quantizers_anmr().

Function Documentation

static void encode_window_bands_info ( AACEncContext s,
SingleChannelElement sce,
int  win,
int  group_len,
const float  lambda 
)
static

Encode band info for single window group bands.

Definition at line 75 of file aaccoder.c.

static void codebook_trellis_rate ( AACEncContext s,
SingleChannelElement sce,
int  win,
int  group_len,
const float  lambda 
)
static

Definition at line 185 of file aaccoder.c.

static void set_special_band_scalefactors ( AACEncContext s,
SingleChannelElement sce 
)
static

Definition at line 325 of file aaccoder.c.

static void search_for_quantizers_anmr ( AVCodecContext avctx,
AACEncContext s,
SingleChannelElement sce,
const float  lambda 
)
static

Definition at line 362 of file aaccoder.c.

static void search_for_quantizers_twoloop ( AVCodecContext avctx,
AACEncContext s,
SingleChannelElement sce,
const float  lambda 
)
static

two-loop quantizers search taken from ISO 13818-7 Appendix C

Definition at line 515 of file aaccoder.c.

static void search_for_quantizers_faac ( AVCodecContext avctx,
AACEncContext s,
SingleChannelElement sce,
const float  lambda 
)
static

Definition at line 662 of file aaccoder.c.

static void search_for_quantizers_fast ( AVCodecContext avctx,
AACEncContext s,
SingleChannelElement sce,
const float  lambda 
)
static

Definition at line 830 of file aaccoder.c.

static void search_for_pns ( AACEncContext s,
AVCodecContext avctx,
SingleChannelElement sce 
)
static

Definition at line 864 of file aaccoder.c.

static void search_for_ms ( AACEncContext s,
ChannelElement cpe 
)
static

Definition at line 896 of file aaccoder.c.

Variable Documentation

Definition at line 958 of file aaccoder.c.

Referenced by aac_encode_init().