FFmpeg
Macros | Variables
rv40vlc2.h File Reference
#include <stdint.h>

Go to the source code of this file.

Macros

#define AIC_TOP_BITS   7
 codes used for the first four block types More...
 
#define AIC_TOP_SIZE   16
 
#define AIC_MODE2_NUM   20
 codes used for determining a pair of block types More...
 
#define AIC_MODE2_SIZE   81
 
#define AIC_MODE2_BITS   9
 
#define AIC_MODE1_NUM   90
 Codes used for determining block type. More...
 
#define AIC_MODE1_SIZE   9
 
#define AIC_MODE1_BITS   7
 
#define PBTYPE_ESCAPE   0xFF
 
#define NUM_PTYPE_VLCS   7
 tables used for P-frame macroblock type decoding More...
 
#define PTYPE_VLC_SIZE   8
 
#define PTYPE_VLC_BITS   7
 
#define NUM_BTYPE_VLCS   6
 tables used for P-frame macroblock type decoding More...
 
#define BTYPE_VLC_SIZE   7
 
#define BTYPE_VLC_BITS   6
 

Variables

static const uint8_t rv40_aic_top_vlc_tab [AIC_TOP_SIZE][2]
 
static const uint8_t aic_mode2_vlc_syms [AIC_MODE2_NUM][AIC_MODE2_SIZE]
 
static const uint8_t aic_mode2_vlc_bits [AIC_MODE2_NUM][AIC_MODE2_SIZE]
 
static const uint8_t aic_mode1_vlc_tabs [AIC_MODE1_NUM][AIC_MODE1_SIZE][2]
 
static const uint8_t ptype_vlc_tabs [NUM_PTYPE_VLCS][PTYPE_VLC_SIZE][2]
 
static const uint8_t block_num_to_ptype_vlc_num [12]
 
static const uint8_t btype_vlc_tabs [NUM_BTYPE_VLCS][BTYPE_VLC_SIZE][2]
 
static const uint8_t block_num_to_btype_vlc_num [12]
 

Detailed Description

RV40 VLC tables used for macroblock information decoding

Definition in file rv40vlc2.h.

Macro Definition Documentation

◆ AIC_TOP_BITS

#define AIC_TOP_BITS   7

codes used for the first four block types

Definition at line 36 of file rv40vlc2.h.

◆ AIC_TOP_SIZE

#define AIC_TOP_SIZE   16

Definition at line 37 of file rv40vlc2.h.

◆ AIC_MODE2_NUM

#define AIC_MODE2_NUM   20

codes used for determining a pair of block types

Definition at line 49 of file rv40vlc2.h.

◆ AIC_MODE2_SIZE

#define AIC_MODE2_SIZE   81

Definition at line 50 of file rv40vlc2.h.

◆ AIC_MODE2_BITS

#define AIC_MODE2_BITS   9

Definition at line 51 of file rv40vlc2.h.

◆ AIC_MODE1_NUM

#define AIC_MODE1_NUM   90

Codes used for determining block type.

Definition at line 384 of file rv40vlc2.h.

◆ AIC_MODE1_SIZE

#define AIC_MODE1_SIZE   9

Definition at line 385 of file rv40vlc2.h.

◆ AIC_MODE1_BITS

#define AIC_MODE1_BITS   7

Definition at line 386 of file rv40vlc2.h.

◆ PBTYPE_ESCAPE

#define PBTYPE_ESCAPE   0xFF

Definition at line 564 of file rv40vlc2.h.

◆ NUM_PTYPE_VLCS

#define NUM_PTYPE_VLCS   7

tables used for P-frame macroblock type decoding

Definition at line 568 of file rv40vlc2.h.

◆ PTYPE_VLC_SIZE

#define PTYPE_VLC_SIZE   8

Definition at line 569 of file rv40vlc2.h.

◆ PTYPE_VLC_BITS

#define PTYPE_VLC_BITS   7

Definition at line 570 of file rv40vlc2.h.

◆ NUM_BTYPE_VLCS

#define NUM_BTYPE_VLCS   6

tables used for P-frame macroblock type decoding

Definition at line 596 of file rv40vlc2.h.

◆ BTYPE_VLC_SIZE

#define BTYPE_VLC_SIZE   7

Definition at line 597 of file rv40vlc2.h.

◆ BTYPE_VLC_BITS

#define BTYPE_VLC_BITS   6

Definition at line 598 of file rv40vlc2.h.

Variable Documentation

◆ rv40_aic_top_vlc_tab

const uint8_t rv40_aic_top_vlc_tab[AIC_TOP_SIZE][2]
static
Initial value:
= {
{ 0x3, 5 }, { 0x2, 5 }, { 0x7, 5 }, { 0x4, 5 }, { 0xF, 3 }, { 0x8, 4 },
{ 0x1, 4 }, { 0xE, 5 }, { 0xC, 5 }, { 0xB, 6 }, { 0x6, 6 }, { 0x9, 7 },
{ 0x5, 7 }, { 0xD, 7 }, { 0xA, 7 }, { 0x0, 1 },
}

Definition at line 38 of file rv40vlc2.h.

Referenced by rv40_init_tables().

◆ aic_mode2_vlc_syms

const uint8_t aic_mode2_vlc_syms[AIC_MODE2_NUM][AIC_MODE2_SIZE]
static

Definition at line 53 of file rv40vlc2.h.

Referenced by rv40_init_tables().

◆ aic_mode2_vlc_bits

const uint8_t aic_mode2_vlc_bits[AIC_MODE2_NUM][AIC_MODE2_SIZE]
static

Definition at line 236 of file rv40vlc2.h.

Referenced by rv40_init_tables().

◆ aic_mode1_vlc_tabs

const uint8_t aic_mode1_vlc_tabs[AIC_MODE1_NUM][AIC_MODE1_SIZE][2]
static

Definition at line 388 of file rv40vlc2.h.

Referenced by rv40_init_tables().

◆ ptype_vlc_tabs

const uint8_t ptype_vlc_tabs[NUM_PTYPE_VLCS][PTYPE_VLC_SIZE][2]
static
Initial value:
= {
{ { PBTYPE_ESCAPE, 7 }, { 11, 7 }, { 3, 6 }, { 8, 5 },
{ 9, 4 }, { 2, 3 }, { 1, 2 }, { 0, 1 } },
{ { PBTYPE_ESCAPE, 7 }, { 3, 7 }, { 8, 6 }, { 9, 5 },
{ 11, 4 }, { 0, 3 }, { 2, 2 }, { 1, 1 } },
{ { 9, 3 }, { 8, 3 }, { 3, 4 }, { 1, 4 }, { PBTYPE_ESCAPE, 5 },
{ 0, 5 }, { 11, 4 }, { 2, 1 } },
{ { 3, 2 }, { 2, 2 }, { PBTYPE_ESCAPE, 6 }, { 11, 6 },
{ 1, 5 }, { 0, 4 }, { 8, 3 }, { 9, 2 } },
{ { PBTYPE_ESCAPE, 7 }, { 11, 7 }, { 1, 6 }, { 0, 5 },
{ 3, 4 }, { 9, 3 }, { 8, 2 }, { 2, 1 } },
{ { PBTYPE_ESCAPE, 7 }, { 11, 7 }, { 1, 6 }, { 0, 5 },
{ 3, 4 }, { 8, 3 }, { 9, 2 }, { 2, 1 } },
{ { PBTYPE_ESCAPE, 7 }, { 3, 7 }, { 0, 6 }, { 8, 5 },
{ 9, 4 }, { 1, 3 }, { 2, 2 }, { 11, 1 } },
}

Definition at line 572 of file rv40vlc2.h.

Referenced by rv40_init_tables().

◆ block_num_to_ptype_vlc_num

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

Definition at line 589 of file rv40vlc2.h.

Referenced by rv40_decode_mb_info().

◆ btype_vlc_tabs

const uint8_t btype_vlc_tabs[NUM_BTYPE_VLCS][BTYPE_VLC_SIZE][2]
static
Initial value:
= {
{ { 4, 2 }, { 0, 2 }, { PBTYPE_ESCAPE, 5 },
{ 10, 5 }, { 7, 4 }, { 1, 3 }, { 5, 2 } },
{ { PBTYPE_ESCAPE, 6 }, { 10, 6 }, { 7, 5 },
{ 0, 4 }, { 4, 3 }, { 5, 2 }, { 1, 1 } },
{ { PBTYPE_ESCAPE, 6 }, { 0, 6 }, { 10, 5 },
{ 1, 4 }, { 7, 3 }, { 5, 2 }, { 4, 1 } },
{ { 4, 3 }, { 1, 3 }, { PBTYPE_ESCAPE, 5 },
{ 0, 5 }, { 10, 4 }, { 7, 3 }, { 5, 1 } },
{ { PBTYPE_ESCAPE, 6 }, { 0, 6 }, { 1, 5 },
{ 10, 4 }, { 4, 3 }, { 5, 2 }, { 7, 1 } },
{ { PBTYPE_ESCAPE, 6 }, { 0, 6 }, { 1, 5 },
{ 10, 4 }, { 4, 3 }, { 7, 2 }, { 5, 1 } },
}

Definition at line 600 of file rv40vlc2.h.

Referenced by rv40_init_tables().

◆ block_num_to_btype_vlc_num

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

Definition at line 615 of file rv40vlc2.h.

Referenced by rv40_decode_mb_info().

PBTYPE_ESCAPE
#define PBTYPE_ESCAPE
Definition: rv40vlc2.h:564