#include "global.h"
#include "memalloc.h"
#include "q_matrix.h"

Go to the source code of this file.
Defines | |
| #define | MAX_ITEMS_TO_PARSE 1000 |
Functions | |
| char * | GetConfigFileContent (char *Filename, int error_type) |
| int | CheckParameterName (char *s, int *type) |
| void | ParseMatrix (ImageParameters *p_Img, char *buf, int bufsize) |
| void | PatchMatrix (ImageParameters *p_Img, InputParameters *p_Inp) |
| void | allocate_QMatrix (QuantParameters *p_Quant, InputParameters *p_Inp) |
| void | free_QMatrix (QuantParameters *p_Quant) |
| void | Init_QMatrix (ImageParameters *p_Img, InputParameters *p_Inp) |
| void | CalculateQuant4x4Param (ImageParameters *p_Img) |
| void | CalculateQuant8x8Param (ImageParameters *p_Img) |
Variables | |
| static const int | quant_coef [6][4][4] |
| const int | dequant_coef [6][4][4] |
| static const int | quant_coef8 [6][8][8] |
| static const int | dequant_coef8 [6][8][8] |
| int | matrix4x4_check [6] = {0, 0, 0, 0, 0, 0} |
| int | matrix8x8_check [6] = {0, 0, 0, 0, 0, 0} |
| static const char | MatrixType4x4 [6][20] |
| static const char | MatrixType8x8 [6][20] |
| static const short | Quant_intra_default [16] |
| static const short | Quant_inter_default [16] |
| static const short | Quant8_intra_default [64] |
| static const short | Quant8_inter_default [64] |
Definition in file q_matrix.c.
| void allocate_QMatrix | ( | QuantParameters * | p_Quant, | |
| InputParameters * | p_Inp | |||
| ) |
Allocate Q matrix arrays.
Definition at line 494 of file q_matrix.c.
References get_mem5Dquant(), no_mem_exit(), and inp_par_enc::output.
Referenced by Init_QMatrix().

| void CalculateQuant4x4Param | ( | ImageParameters * | p_Img | ) |
For calculating the quantisation values at frame level.
Definition at line 578 of file q_matrix.c.
Referenced by code_a_plane().
| void CalculateQuant8x8Param | ( | ImageParameters * | p_Img | ) |
Calculate the quantisation and inverse quantisation parameters.
Definition at line 734 of file q_matrix.c.
Referenced by code_a_plane().
| int CheckParameterName | ( | char * | s, | |
| int * | type | |||
| ) |
Check the parameter name.
| s | parameter name string | |
| type | 4x4 or 8x8 matrix type |
Definition at line 247 of file q_matrix.c.
Referenced by ParseMatrix().
| void free_QMatrix | ( | QuantParameters * | p_Quant | ) |
Free Q matrix arrays.
Definition at line 523 of file q_matrix.c.
References free_mem5Dquant().
Referenced by free_global_buffers().

| void Init_QMatrix | ( | ImageParameters * | p_Img, | |
| InputParameters * | p_Inp | |||
| ) |
Initialise Q matrix values.
Definition at line 539 of file q_matrix.c.
References allocate_QMatrix(), errortext, GetConfigFileContent(), ParseMatrix(), PatchMatrix(), and inp_par_enc::QmatrixFile.
Referenced by init_encoder().

| void ParseMatrix | ( | ImageParameters * | p_Img, | |
| char * | buf, | |||
| int | bufsize | |||
| ) |
Parse the Q matrix values read from cfg file.
| p_Img | current image parameters | |
| buf | buffer to be parsed | |
| bufsize | buffer size of buffer |
Definition at line 285 of file q_matrix.c.
References CheckParameterName(), error(), errortext, and ET_SIZE.
Referenced by Init_QMatrix().

| void PatchMatrix | ( | ImageParameters * | p_Img, | |
| InputParameters * | p_Inp | |||
| ) |
Check Q Matrix values. If invalid values found in matrix, whole matrix will be patch with default value 16.
Definition at line 408 of file q_matrix.c.
Referenced by Init_QMatrix().
| const int dequant_coef[6][4][4] |
Initial value:
{
{{10, 13, 10, 13},{ 13, 16, 13, 16},{10, 13, 10, 13},{ 13, 16, 13, 16}},
{{11, 14, 11, 14},{ 14, 18, 14, 18},{11, 14, 11, 14},{ 14, 18, 14, 18}},
{{13, 16, 13, 16},{ 16, 20, 16, 20},{13, 16, 13, 16},{ 16, 20, 16, 20}},
{{14, 18, 14, 18},{ 18, 23, 18, 23},{14, 18, 14, 18},{ 18, 23, 18, 23}},
{{16, 20, 16, 20},{ 20, 25, 20, 25},{16, 20, 16, 20},{ 20, 25, 20, 25}},
{{18, 23, 18, 23},{ 23, 29, 23, 29},{18, 23, 18, 23},{ 23, 29, 23, 29}}
}
Definition at line 29 of file q_matrix.c.
const char MatrixType4x4[6][20] [static] |
Initial value:
{
"INTRA4X4_LUMA",
"INTRA4X4_CHROMAU",
"INTRA4X4_CHROMAV",
"INTER4X4_LUMA",
"INTER4X4_CHROMAU",
"INTER4X4_CHROMAV"
}
Definition at line 172 of file q_matrix.c.
const char MatrixType8x8[6][20] [static] |
Initial value:
{
"INTRA8X8_LUMA",
"INTER8X8_LUMA",
"INTRA8X8_CHROMAU",
"INTER8X8_CHROMAU",
"INTRA8X8_CHROMAV",
"INTER8X8_CHROMAV"
}
Definition at line 182 of file q_matrix.c.
const short Quant8_inter_default[64] [static] |
Initial value:
{
9,13,15,17,19,21,22,24,
13,13,17,19,21,22,24,25,
15,17,19,21,22,24,25,27,
17,19,21,22,24,25,27,28,
19,21,22,24,25,27,28,30,
21,22,24,25,27,28,30,32,
22,24,25,27,28,30,32,33,
24,25,27,28,30,32,33,35
}
Definition at line 221 of file q_matrix.c.
const short Quant8_intra_default[64] [static] |
Initial value:
{
6,10,13,16,18,23,25,27,
10,11,16,18,23,25,27,29,
13,16,18,23,25,27,29,31,
16,18,23,25,27,29,31,33,
18,23,25,27,29,31,33,36,
23,25,27,29,31,33,36,38,
25,27,29,31,33,36,38,40,
27,29,31,33,36,38,40,42
}
Definition at line 209 of file q_matrix.c.
const int quant_coef[6][4][4] [static] |
Initial value:
{
{{13107, 8066,13107, 8066},{ 8066, 5243, 8066, 5243},{13107, 8066,13107, 8066},{ 8066, 5243, 8066, 5243}},
{{11916, 7490,11916, 7490},{ 7490, 4660, 7490, 4660},{11916, 7490,11916, 7490},{ 7490, 4660, 7490, 4660}},
{{10082, 6554,10082, 6554},{ 6554, 4194, 6554, 4194},{10082, 6554,10082, 6554},{ 6554, 4194, 6554, 4194}},
{{ 9362, 5825, 9362, 5825},{ 5825, 3647, 5825, 3647},{ 9362, 5825, 9362, 5825},{ 5825, 3647, 5825, 3647}},
{{ 8192, 5243, 8192, 5243},{ 5243, 3355, 5243, 3355},{ 8192, 5243, 8192, 5243},{ 5243, 3355, 5243, 3355}},
{{ 7282, 4559, 7282, 4559},{ 4559, 2893, 4559, 2893},{ 7282, 4559, 7282, 4559},{ 4559, 2893, 4559, 2893}}
}
Definition at line 20 of file q_matrix.c.
const short Quant_inter_default[16] [static] |
Initial value:
{
10,14,20,24,
14,20,24,27,
20,24,27,30,
24,27,30,34
}
Definition at line 201 of file q_matrix.c.
const short Quant_intra_default[16] [static] |
Initial value:
{
6,13,20,28,
13,20,28,32,
20,28,32,37,
28,32,37,42
}
Definition at line 193 of file q_matrix.c.