FFmpeg
Data Structures | Functions | Variables
g726.c File Reference
#include <limits.h>
#include "libavutil/channel_layout.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "encode.h"
#include "internal.h"
#include "get_bits.h"
#include "put_bits.h"

Go to the source code of this file.

Data Structures

struct  Float11
 G.726 11-bit float. More...
 
struct  G726Tables
 
struct  G726Context
 

Functions

static Float11i2f (int i, Float11 *f)
 
static int16_t mult (Float11 *f1, Float11 *f2)
 
static int sgn (int value)
 
static uint8_t quant (G726Context *c, int d)
 Paragraph 4.2.2 page 18: Adaptive quantizer. More...
 
static int16_t inverse_quant (G726Context *c, int i)
 Paragraph 4.2.3 page 22: Inverse adaptive quantizer. More...
 
static int16_t g726_decode (G726Context *c, int I)
 
static av_cold int g726_reset (G726Context *c)
 

Variables

static const int quant_tbl16 []
 16kbit/s 2 bits per sample More...
 
static const int16_t iquant_tbl16 []
 
static const int16_t W_tbl16 []
 
static const uint8_t F_tbl16 []
 
static const int quant_tbl24 []
 24kbit/s 3 bits per sample More...
 
static const int16_t iquant_tbl24 []
 
static const int16_t W_tbl24 []
 
static const uint8_t F_tbl24 []
 
static const int quant_tbl32 []
 32kbit/s 4 bits per sample More...
 
static const int16_t iquant_tbl32 []
 
static const int16_t W_tbl32 []
 
static const uint8_t F_tbl32 []
 
static const int quant_tbl40 []
 40kbit/s 5 bits per sample More...
 
static const int16_t iquant_tbl40 []
 
static const int16_t W_tbl40 []
 
static const uint8_t F_tbl40 []
 
static const G726Tables G726Tables_pool []
 

Function Documentation

◆ i2f()

static Float11* i2f ( int  i,
Float11 f 
)
inlinestatic

Definition at line 46 of file g726.c.

Referenced by g726_decode(), and ict_float().

◆ mult()

static int16_t mult ( Float11 f1,
Float11 f2 
)
inlinestatic

◆ sgn()

static int sgn ( int  value)
inlinestatic

Definition at line 66 of file g726.c.

Referenced by g726_decode().

◆ quant()

static uint8_t quant ( G726Context c,
int  d 
)
inlinestatic

Paragraph 4.2.2 page 18: Adaptive quantizer.

Definition at line 158 of file g726.c.

◆ inverse_quant()

static int16_t inverse_quant ( G726Context c,
int  i 
)
inlinestatic

Paragraph 4.2.3 page 22: Inverse adaptive quantizer.

Definition at line 184 of file g726.c.

Referenced by g726_decode().

◆ g726_decode()

static int16_t g726_decode ( G726Context c,
int  I 
)
static

Definition at line 194 of file g726.c.

◆ g726_reset()

static av_cold int g726_reset ( G726Context c)
static

Definition at line 276 of file g726.c.

Variable Documentation

◆ quant_tbl16

const int quant_tbl16[]
static
Initial value:
=
{ 260, INT_MAX }

16kbit/s 2 bits per sample

Definition at line 102 of file g726.c.

◆ iquant_tbl16

const int16_t iquant_tbl16[]
static
Initial value:
=
{ 116, 365, 365, 116 }

Definition at line 104 of file g726.c.

◆ W_tbl16

const int16_t W_tbl16[]
static
Initial value:
=
{ -22, 439, 439, -22 }

Definition at line 106 of file g726.c.

◆ F_tbl16

const uint8_t F_tbl16[]
static
Initial value:
=
{ 0, 7, 7, 0 }

Definition at line 108 of file g726.c.

◆ quant_tbl24

const int quant_tbl24[]
static
Initial value:
=
{ 7, 217, 330, INT_MAX }

24kbit/s 3 bits per sample

Definition at line 111 of file g726.c.

◆ iquant_tbl24

const int16_t iquant_tbl24[]
static
Initial value:
=
{ INT16_MIN, 135, 273, 373, 373, 273, 135, INT16_MIN }

Definition at line 113 of file g726.c.

◆ W_tbl24

const int16_t W_tbl24[]
static
Initial value:
=
{ -4, 30, 137, 582, 582, 137, 30, -4 }

Definition at line 115 of file g726.c.

◆ F_tbl24

const uint8_t F_tbl24[]
static
Initial value:
=
{ 0, 1, 2, 7, 7, 2, 1, 0 }

Definition at line 117 of file g726.c.

◆ quant_tbl32

const int quant_tbl32[]
static
Initial value:
=
{ -125, 79, 177, 245, 299, 348, 399, INT_MAX }

32kbit/s 4 bits per sample

Definition at line 120 of file g726.c.

◆ iquant_tbl32

const int16_t iquant_tbl32[]
static
Initial value:
=
{ INT16_MIN, 4, 135, 213, 273, 323, 373, 425,
425, 373, 323, 273, 213, 135, 4, INT16_MIN }

Definition at line 122 of file g726.c.

◆ W_tbl32

const int16_t W_tbl32[]
static
Initial value:
=
{ -12, 18, 41, 64, 112, 198, 355, 1122,
1122, 355, 198, 112, 64, 41, 18, -12}

Definition at line 125 of file g726.c.

◆ F_tbl32

const uint8_t F_tbl32[]
static
Initial value:
=
{ 0, 0, 0, 1, 1, 1, 3, 7, 7, 3, 1, 1, 1, 0, 0, 0 }

Definition at line 128 of file g726.c.

◆ quant_tbl40

const int quant_tbl40[]
static
Initial value:
=
{ -122, -16, 67, 138, 197, 249, 297, 338,
377, 412, 444, 474, 501, 527, 552, INT_MAX }

40kbit/s 5 bits per sample

Definition at line 131 of file g726.c.

◆ iquant_tbl40

const int16_t iquant_tbl40[]
static
Initial value:
=
{ INT16_MIN, -66, 28, 104, 169, 224, 274, 318,
358, 395, 429, 459, 488, 514, 539, 566,
566, 539, 514, 488, 459, 429, 395, 358,
318, 274, 224, 169, 104, 28, -66, INT16_MIN }

Definition at line 134 of file g726.c.

◆ W_tbl40

const int16_t W_tbl40[]
static
Initial value:
=
{ 14, 14, 24, 39, 40, 41, 58, 100,
141, 179, 219, 280, 358, 440, 529, 696,
696, 529, 440, 358, 280, 219, 179, 141,
100, 58, 41, 40, 39, 24, 14, 14 }

Definition at line 139 of file g726.c.

◆ F_tbl40

const uint8_t F_tbl40[]
static
Initial value:
=
{ 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 6,
6, 6, 5, 4, 3, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }

Definition at line 144 of file g726.c.

◆ G726Tables_pool

const G726Tables G726Tables_pool[]
static
W_tbl16
static const int16_t W_tbl16[]
Definition: g726.c:106
iquant_tbl32
static const int16_t iquant_tbl32[]
Definition: g726.c:122
W_tbl32
static const int16_t W_tbl32[]
Definition: g726.c:125
iquant_tbl40
static const int16_t iquant_tbl40[]
Definition: g726.c:134
iquant_tbl16
static const int16_t iquant_tbl16[]
Definition: g726.c:104
quant_tbl24
static const int quant_tbl24[]
24kbit/s 3 bits per sample
Definition: g726.c:111
quant_tbl16
static const int quant_tbl16[]
16kbit/s 2 bits per sample
Definition: g726.c:102
F_tbl40
static const uint8_t F_tbl40[]
Definition: g726.c:144
quant_tbl40
static const int quant_tbl40[]
40kbit/s 5 bits per sample
Definition: g726.c:131
quant_tbl32
static const int quant_tbl32[]
32kbit/s 4 bits per sample
Definition: g726.c:120
W_tbl24
static const int16_t W_tbl24[]
Definition: g726.c:115
F_tbl16
static const uint8_t F_tbl16[]
Definition: g726.c:108
W_tbl40
static const int16_t W_tbl40[]
Definition: g726.c:139
iquant_tbl24
static const int16_t iquant_tbl24[]
Definition: g726.c:113
F_tbl32
static const uint8_t F_tbl32[]
Definition: g726.c:128
F_tbl24
static const uint8_t F_tbl24[]
Definition: g726.c:117