FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
rv40vlc2.h File Reference

RV40 VLC tables used for macroblock information decoding. More...

#include <stdint.h>

Go to the source code of this file.

Macros

#define PBTYPE_ESCAPE   0xFF
 
#define AIC_TOP_BITS   8
 codes used for the first four block types
 
#define AIC_TOP_SIZE   16
 
static const uint8_t rv40_aic_top_vlc_codes [AIC_TOP_SIZE]
 
static const uint8_t rv40_aic_top_vlc_bits [AIC_TOP_SIZE]
 
#define AIC_MODE2_NUM   20
 codes used for determining a pair of block types
 
#define AIC_MODE2_SIZE   81
 
#define AIC_MODE2_BITS   9
 
static const uint16_t aic_mode2_vlc_codes [AIC_MODE2_NUM][AIC_MODE2_SIZE]
 
static const uint8_t aic_mode2_vlc_bits [AIC_MODE2_NUM][AIC_MODE2_SIZE]
 
#define AIC_MODE1_NUM   90
 Codes used for determining block type.
 
#define AIC_MODE1_SIZE   9
 
#define AIC_MODE1_BITS   7
 
static const uint8_t aic_mode1_vlc_codes [AIC_MODE1_NUM][AIC_MODE1_SIZE]
 
static const uint8_t aic_mode1_vlc_bits [AIC_MODE1_NUM][AIC_MODE1_SIZE]
 
#define NUM_PTYPE_VLCS   7
 tables used for P-frame macroblock type decoding
 
#define PTYPE_VLC_SIZE   8
 
#define PTYPE_VLC_BITS   7
 
static const uint8_t ptype_vlc_codes [NUM_PTYPE_VLCS][PTYPE_VLC_SIZE]
 
static const uint8_t ptype_vlc_bits [NUM_PTYPE_VLCS][PTYPE_VLC_SIZE]
 
static const uint8_t ptype_vlc_syms [PTYPE_VLC_SIZE]
 
static const uint8_t block_num_to_ptype_vlc_num [12]
 reverse of ptype_vlc_syms
 
#define NUM_BTYPE_VLCS   6
 tables used for P-frame macroblock type decoding
 
#define BTYPE_VLC_SIZE   7
 
#define BTYPE_VLC_BITS   6
 
static const uint8_t btype_vlc_codes [NUM_BTYPE_VLCS][BTYPE_VLC_SIZE]
 
static const uint8_t btype_vlc_bits [NUM_BTYPE_VLCS][PTYPE_VLC_SIZE]
 
static const uint8_t btype_vlc_syms [BTYPE_VLC_SIZE]
 
static const uint8_t block_num_to_btype_vlc_num [12]
 reverse of btype_vlc_syms
 

Detailed Description

RV40 VLC tables used for macroblock information decoding.

Definition in file rv40vlc2.h.

Macro Definition Documentation

#define AIC_TOP_BITS   8

codes used for the first four block types

Definition at line 36 of file rv40vlc2.h.

Referenced by rv40_decode_intra_types(), and rv40_init_tables().

#define AIC_TOP_SIZE   16

Definition at line 37 of file rv40vlc2.h.

Referenced by rv40_init_tables().

#define AIC_MODE2_NUM   20

codes used for determining a pair of block types

Definition at line 52 of file rv40vlc2.h.

Referenced by rv40_init_tables().

#define AIC_MODE2_SIZE   81

Definition at line 53 of file rv40vlc2.h.

Referenced by rv40_init_tables().

#define AIC_MODE2_BITS   9

Definition at line 54 of file rv40vlc2.h.

Referenced by rv40_decode_intra_types(), and rv40_init_tables().

#define AIC_MODE1_NUM   90

Codes used for determining block type.

Definition at line 427 of file rv40vlc2.h.

Referenced by rv40_init_tables().

#define AIC_MODE1_SIZE   9

Definition at line 428 of file rv40vlc2.h.

Referenced by rv40_init_tables().

#define AIC_MODE1_BITS   7

Definition at line 429 of file rv40vlc2.h.

Referenced by rv40_decode_intra_types(), and rv40_init_tables().

#define PBTYPE_ESCAPE   0xFF

Definition at line 635 of file rv40vlc2.h.

Referenced by rv40_decode_mb_info().

#define NUM_PTYPE_VLCS   7

tables used for P-frame macroblock type decoding

Definition at line 639 of file rv40vlc2.h.

Referenced by rv40_init_tables().

#define PTYPE_VLC_SIZE   8

Definition at line 640 of file rv40vlc2.h.

Referenced by rv40_init_tables().

#define PTYPE_VLC_BITS   7

Definition at line 641 of file rv40vlc2.h.

Referenced by rv40_decode_mb_info(), and rv40_init_tables().

#define NUM_BTYPE_VLCS   6

tables used for P-frame macroblock type decoding

Definition at line 675 of file rv40vlc2.h.

Referenced by rv40_init_tables().

#define BTYPE_VLC_SIZE   7

Definition at line 676 of file rv40vlc2.h.

Referenced by rv40_init_tables().

#define BTYPE_VLC_BITS   6

Definition at line 677 of file rv40vlc2.h.

Referenced by rv40_decode_mb_info(), and rv40_init_tables().

Variable Documentation

const uint8_t rv40_aic_top_vlc_codes[AIC_TOP_SIZE]
static
Initial value:
= {
0x01, 0x05, 0x01, 0x00, 0x03, 0x3D, 0x1D, 0x02,
0x04, 0x3C, 0x3F, 0x1C, 0x0D, 0x3E, 0x0C, 0x01
}

Definition at line 38 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint8_t rv40_aic_top_vlc_bits[AIC_TOP_SIZE]
static
Initial value:
= {
1, 4, 5, 5, 5, 7, 6, 5, 4, 7, 7, 6, 5, 7, 5, 3
}

Definition at line 43 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint16_t aic_mode2_vlc_codes[AIC_MODE2_NUM][AIC_MODE2_SIZE]
static

Definition at line 56 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint8_t aic_mode2_vlc_bits[AIC_MODE2_NUM][AIC_MODE2_SIZE]
static

Definition at line 239 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint8_t aic_mode1_vlc_codes[AIC_MODE1_NUM][AIC_MODE1_SIZE]
static

Definition at line 431 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint8_t aic_mode1_vlc_bits[AIC_MODE1_NUM][AIC_MODE1_SIZE]
static

Definition at line 532 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint8_t ptype_vlc_codes[NUM_PTYPE_VLCS][PTYPE_VLC_SIZE]
static
Initial value:
= {
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
{ 0x0D, 0x05, 0x01, 0x04, 0x01, 0x00, 0x07, 0x0C },
{ 0x09, 0x11, 0x01, 0x00, 0x05, 0x03, 0x21, 0x20 },
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 }
}

Definition at line 643 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint8_t ptype_vlc_bits[NUM_PTYPE_VLCS][PTYPE_VLC_SIZE]
static
Initial value:
= {
{ 1, 2, 3, 6, 5, 4, 7, 7 },
{ 3, 1, 2, 7, 6, 5, 4, 7 },
{ 5, 4, 1, 4, 3, 3, 4, 5 },
{ 4, 5, 2, 2, 3, 2, 6, 6 },
{ 5, 6, 1, 4, 2, 3, 7, 7 },
{ 5, 6, 1, 4, 3, 2, 7, 7 },
{ 6, 3, 2, 7, 5, 4, 1, 7 }
}

Definition at line 653 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint8_t ptype_vlc_syms[PTYPE_VLC_SIZE]
static
Initial value:
= {
0, 1, 2, 3, 8, 9, 11, PBTYPE_ESCAPE
}

Definition at line 663 of file rv40vlc2.h.

Referenced by rv40_init_tables().

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
}

reverse of ptype_vlc_syms

Definition at line 668 of file rv40vlc2.h.

Referenced by rv40_decode_mb_info().

const uint8_t btype_vlc_codes[NUM_BTYPE_VLCS][BTYPE_VLC_SIZE]
static
Initial value:
= {
{ 0x01, 0x05, 0x00, 0x03, 0x11, 0x09, 0x10 },
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
{ 0x09, 0x01, 0x00, 0x01, 0x05, 0x03, 0x08 },
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 }
}

Definition at line 679 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint8_t btype_vlc_bits[NUM_BTYPE_VLCS][PTYPE_VLC_SIZE]
static
Initial value:
= {
{ 2, 3, 2, 2, 5, 4, 5 },
{ 4, 1, 3, 2, 6, 5, 6 },
{ 6, 4, 1, 2, 5, 3, 6 },
{ 5, 3, 3, 1, 4, 3, 5 },
{ 6, 5, 3, 2, 4, 1, 6 },
{ 6, 5, 3, 1, 4, 2, 6 }
}

Definition at line 688 of file rv40vlc2.h.

Referenced by rv40_init_tables().

const uint8_t btype_vlc_syms[BTYPE_VLC_SIZE]
static
Initial value:
= {
0, 1, 4, 5, 10, 7, PBTYPE_ESCAPE
}

Definition at line 697 of file rv40vlc2.h.

Referenced by rv40_init_tables().

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
}

reverse of btype_vlc_syms

Definition at line 702 of file rv40vlc2.h.

Referenced by rv40_decode_mb_info().