mirror of
https://github.com/ultravideo/uvg266.git
synced 2024-11-28 03:34:06 +00:00
Changed duplicate scaled QP calculations to use a function
This commit is contained in:
parent
f1f293ae0c
commit
11bf11f33a
14
src/rdo.c
14
src/rdo.c
|
@ -286,19 +286,7 @@ void rdoq(encoder_control *encoder, coefficient *coef, coefficient *dest_coeff,
|
||||||
int32_t scalinglist_type= (block_type == CU_INTRA ? 0 : 3) + (int8_t)("\0\3\1\2"[type]);
|
int32_t scalinglist_type= (block_type == CU_INTRA ? 0 : 3) + (int8_t)("\0\3\1\2"[type]);
|
||||||
int32_t qp_base = encoder->QP;
|
int32_t qp_base = encoder->QP;
|
||||||
|
|
||||||
int32_t qp_scaled;
|
int32_t qp_scaled = get_scaled_qp(type, encoder->QP, 0);
|
||||||
int32_t qp_offset = 0;
|
|
||||||
|
|
||||||
if(type == 0) {
|
|
||||||
qp_scaled = qp_base + qp_offset;
|
|
||||||
} else {
|
|
||||||
qp_scaled = CLIP(-qp_offset, 57, qp_base);
|
|
||||||
if(qp_scaled < 0) {
|
|
||||||
qp_scaled = qp_scaled + qp_offset;
|
|
||||||
} else {
|
|
||||||
qp_scaled = g_chroma_scale[qp_scaled] + qp_offset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
{
|
||||||
int32_t q_bits = QUANT_SHIFT + qp_scaled/6 + transform_shift;
|
int32_t q_bits = QUANT_SHIFT + qp_scaled/6 + transform_shift;
|
||||||
|
|
|
@ -169,6 +169,25 @@ const int16_t g_inv_quant_scales[6] = { 40,45,51,57,64,72 };
|
||||||
// FUNCTIONS
|
// FUNCTIONS
|
||||||
//
|
//
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Get scaled QP used in quantization
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
int32_t get_scaled_qp(int8_t type, int8_t qp, int8_t qp_offset)
|
||||||
|
{
|
||||||
|
int32_t qp_scaled = 0;
|
||||||
|
if(type == 0) {
|
||||||
|
qp_scaled = qp + qp_offset;
|
||||||
|
} else {
|
||||||
|
qp_scaled = CLIP(-qp_offset, 57, qp);
|
||||||
|
if(qp_scaled < 0) {
|
||||||
|
qp_scaled = qp_scaled + qp_offset;
|
||||||
|
} else {
|
||||||
|
qp_scaled = g_chroma_scale[qp_scaled] + qp_offset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return qp_scaled;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Initialize scaling lists
|
* \brief Initialize scaling lists
|
||||||
|
@ -799,18 +818,7 @@ void quant(encoder_control *encoder, int16_t *coef, int16_t *q_coef, int32_t wid
|
||||||
#endif
|
#endif
|
||||||
int32_t qp_base = encoder->QP;
|
int32_t qp_base = encoder->QP;
|
||||||
|
|
||||||
int32_t qp_scaled;
|
int32_t qp_scaled = get_scaled_qp(type, encoder->QP, 0);
|
||||||
int32_t qp_offset = 0;
|
|
||||||
if(type == 0) {
|
|
||||||
qp_scaled = qp_base + qp_offset;
|
|
||||||
} else {
|
|
||||||
qp_scaled = CLIP(-qp_offset, 57, qp_base);
|
|
||||||
if(qp_scaled < 0) {
|
|
||||||
qp_scaled = qp_scaled + qp_offset;
|
|
||||||
} else {
|
|
||||||
qp_scaled = g_chroma_scale[qp_scaled] + qp_offset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//New block for variable definitions
|
//New block for variable definitions
|
||||||
{
|
{
|
||||||
|
@ -937,19 +945,9 @@ void dequant(encoder_control *encoder, int16_t *q_coef, int16_t *coef, int32_t w
|
||||||
int32_t shift,add,coeff_q,clip_q_coef;
|
int32_t shift,add,coeff_q,clip_q_coef;
|
||||||
int32_t n;
|
int32_t n;
|
||||||
int32_t transform_shift = 15 - g_bitdepth - (g_convert_to_bit[ width ] + 2);
|
int32_t transform_shift = 15 - g_bitdepth - (g_convert_to_bit[ width ] + 2);
|
||||||
int32_t qp_scaled;
|
|
||||||
int32_t qp_base = encoder->QP;
|
int32_t qp_base = encoder->QP;
|
||||||
|
|
||||||
if (type == 0) {
|
int32_t qp_scaled = get_scaled_qp(type, encoder->QP, 0);
|
||||||
qp_scaled = qp_base;
|
|
||||||
} else {
|
|
||||||
qp_scaled = CLIP( 0, 57, qp_base);
|
|
||||||
if (qp_scaled < 0) {
|
|
||||||
qp_scaled = qp_scaled;
|
|
||||||
} else {
|
|
||||||
qp_scaled = g_chroma_scale[qp_scaled];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
shift = 20 - QUANT_SHIFT - transform_shift;
|
shift = 20 - QUANT_SHIFT - transform_shift;
|
||||||
|
|
||||||
|
|
|
@ -68,4 +68,6 @@ void scalinglist_destroy();
|
||||||
int32_t *scalinglist_get_default(uint32_t size_id, uint32_t list_id);
|
int32_t *scalinglist_get_default(uint32_t size_id, uint32_t list_id);
|
||||||
int scalinglist_parse(FILE *fp);
|
int scalinglist_parse(FILE *fp);
|
||||||
|
|
||||||
|
int32_t get_scaled_qp(int8_t type, int8_t qp, int8_t qp_offset);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue