TUT HEVC Encoder
Macros | Functions | Variables
scalinglist.c File Reference
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "scalinglist.h"
#include "rdo.h"
#include "tables.h"
Include dependency graph for scalinglist.c:

Macros

#define LINE_BUFSIZE   1024
 

Functions

void kvz_scalinglist_init (scaling_list_t *const scaling_list)
 Initialize scaling lists. More...
 
void kvz_scalinglist_destroy (scaling_list_t *const scaling_list)
 Destroy scaling list allocated memory. More...
 
int kvz_scalinglist_parse (scaling_list_t *const scaling_list, FILE *fp)
 
const coeff_tkvz_scalinglist_get_default (const uint32_t size_id, const uint32_t list_id)
 
static void scalinglist_process_dec (const coeff_t *const coeff, coeff_t *dequantcoeff, int32_t inv_quant_scales, uint32_t height, uint32_t width, uint32_t ratio, int32_t size_num, uint32_t dc, uint8_t flat)
 get scaling list for decoder More...
 
void kvz_scalinglist_process_enc (const coeff_t *const coeff, coeff_t *quantcoeff, const int32_t quant_scales, const uint32_t height, const uint32_t width, const uint32_t ratio, const int32_t size_num, const uint32_t dc, const uint8_t flat)
 get scaling list for encoder More...
 
static void scalinglist_set_err_scale (uint8_t bitdepth, scaling_list_t *const scaling_list, uint32_t list, uint32_t size, uint32_t qp)
 set error scale coefficients More...
 
void kvz_scalinglist_set (scaling_list_t *const scaling_list, const coeff_t *const coeff, uint32_t listId, uint32_t sizeId, uint32_t qp)
 set scaling lists More...
 
void kvz_scalinglist_process (scaling_list_t *const scaling_list, uint8_t bitdepth)
 

Variables

const uint8_t kvz_g_scaling_list_num [4] = { 6, 6, 6, 2}
 
const uint16_t kvz_g_scaling_list_size [4] = { 16, 64, 256,1024}
 
static const uint8_t g_scaling_list_size_x [4] = { 4, 8,16,32}
 
static const coeff_t g_quant_default_4x4 [16]
 
static const coeff_t g_quant_intra_default_8x8 [64]
 
static const coeff_t g_quant_inter_default_8x8 [64]
 
const coeff_t kvz_g_quant_scales [6] = { 26214,23302,20560,18396,16384,14564 }
 
const coeff_t kvz_g_inv_quant_scales [6] = { 40,45,51,57,64,72 }
 

Macro Definition Documentation

◆ LINE_BUFSIZE

#define LINE_BUFSIZE   1024

Function Documentation

◆ kvz_scalinglist_destroy()

void kvz_scalinglist_destroy ( scaling_list_t *const  scaling_list)
Here is the caller graph for this function:

◆ kvz_scalinglist_get_default()

const coeff_t * kvz_scalinglist_get_default ( const uint32_t  size_id,
const uint32_t  list_id 
)
Here is the caller graph for this function:

◆ kvz_scalinglist_init()

void kvz_scalinglist_init ( scaling_list_t *const  scaling_list)
Here is the caller graph for this function:

◆ kvz_scalinglist_parse()

int kvz_scalinglist_parse ( scaling_list_t *const  scaling_list,
FILE *  fp 
)
Here is the caller graph for this function:

◆ kvz_scalinglist_process()

void kvz_scalinglist_process ( scaling_list_t *const  scaling_list,
uint8_t  bitdepth 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kvz_scalinglist_process_enc()

void kvz_scalinglist_process_enc ( const coeff_t *const  coeff,
coeff_t quantcoeff,
const int32_t  quant_scales,
const uint32_t  height,
const uint32_t  width,
const uint32_t  ratio,
const int32_t  size_num,
const uint32_t  dc,
const uint8_t  flat 
)

< height ratio for NSQT

< width ratio for NSQT

Here is the caller graph for this function:

◆ kvz_scalinglist_set()

void kvz_scalinglist_set ( scaling_list_t *const  scaling_list,
const coeff_t *const  coeff,
uint32_t  listId,
uint32_t  sizeId,
uint32_t  qp 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ scalinglist_process_dec()

static void scalinglist_process_dec ( const coeff_t *const  coeff,
coeff_t dequantcoeff,
int32_t  inv_quant_scales,
uint32_t  height,
uint32_t  width,
uint32_t  ratio,
int32_t  size_num,
uint32_t  dc,
uint8_t  flat 
)
static
Here is the caller graph for this function:

◆ scalinglist_set_err_scale()

static void scalinglist_set_err_scale ( uint8_t  bitdepth,
scaling_list_t *const  scaling_list,
uint32_t  list,
uint32_t  size,
uint32_t  qp 
)
static
Parameters
listList ID
uiSizeSize
uiQPQuantization parameter
Here is the caller graph for this function:

Variable Documentation

◆ g_quant_default_4x4

const coeff_t g_quant_default_4x4[16]
static
Initial value:
=
{
16,16,16,16,
16,16,16,16,
16,16,16,16,
16,16,16,16
}

◆ g_quant_inter_default_8x8

const coeff_t g_quant_inter_default_8x8[64]
static
Initial value:
=
{
16,16,16,16,17,18,20,24,
16,16,16,17,18,20,24,25,
16,16,17,18,20,24,25,28,
16,17,18,20,24,25,28,33,
17,18,20,24,25,28,33,41,
18,20,24,25,28,33,41,54,
20,24,25,28,33,41,54,71,
24,25,28,33,41,54,71,91
}

◆ g_quant_intra_default_8x8

const coeff_t g_quant_intra_default_8x8[64]
static
Initial value:
=
{
16,16,16,16,17,18,21,24,
16,16,16,16,17,19,22,25,
16,16,17,18,20,22,25,29,
16,16,18,21,24,27,31,36,
17,17,20,24,30,35,41,47,
18,19,22,27,35,44,54,65,
21,22,25,31,41,54,70,88,
24,25,29,36,47,65,88,115
}

◆ g_scaling_list_size_x

const uint8_t g_scaling_list_size_x[4] = { 4, 8,16,32}
static

◆ kvz_g_inv_quant_scales

const coeff_t kvz_g_inv_quant_scales[6] = { 40,45,51,57,64,72 }

◆ kvz_g_quant_scales

const coeff_t kvz_g_quant_scales[6] = { 26214,23302,20560,18396,16384,14564 }

◆ kvz_g_scaling_list_num

const uint8_t kvz_g_scaling_list_num[4] = { 6, 6, 6, 2}

◆ kvz_g_scaling_list_size

const uint16_t kvz_g_scaling_list_size[4] = { 16, 64, 256,1024}