1 |
14 |
jamey.hick |
|
2 |
|
|
/*!
|
3 |
|
|
*************************************************************************************
|
4 |
|
|
* \file context_ini.c
|
5 |
|
|
*
|
6 |
|
|
* \brief
|
7 |
|
|
* CABAC context initializations
|
8 |
|
|
*
|
9 |
|
|
* \author
|
10 |
|
|
* Main contributors (see contributors.h for copyright, address and affiliation details)
|
11 |
|
|
* - Detlev Marpe <marpe@hhi.de>
|
12 |
|
|
* - Heiko Schwarz <hschwarz@hhi.de>
|
13 |
|
|
**************************************************************************************
|
14 |
|
|
*/
|
15 |
|
|
|
16 |
|
|
#define CONTEXT_INI_C
|
17 |
|
|
|
18 |
|
|
#include "defines.h"
|
19 |
|
|
#include "global.h"
|
20 |
|
|
#include "biaridecod.h"
|
21 |
|
|
#include "ctx_tables.h"
|
22 |
|
|
|
23 |
|
|
|
24 |
|
|
#define BIARI_CTX_INIT2(ii,jj,ctx,tab,num) \
|
25 |
|
|
{ \
|
26 |
|
|
for (i=0; i<ii; i++) \
|
27 |
|
|
for (j=0; j<jj; j++) \
|
28 |
|
|
{ \
|
29 |
|
|
if ((img->type==I_SLICE)||(img->type==SI_SLICE)) biari_init_context (img, &(ctx[i][j]), &(tab ## _I[num][i][j][0])); \
|
30 |
|
|
else biari_init_context (img, &(ctx[i][j]), &(tab ## _P[num][i][j][0])); \
|
31 |
|
|
} \
|
32 |
|
|
}
|
33 |
|
|
#define BIARI_CTX_INIT1(jj,ctx,tab,num) \
|
34 |
|
|
{ \
|
35 |
|
|
for (j=0; j<jj; j++) \
|
36 |
|
|
{ \
|
37 |
|
|
if ((img->type==I_SLICE)||(img->type==SI_SLICE)) biari_init_context (img, &(ctx[j]), &(tab ## _I[num][0][j][0])); \
|
38 |
|
|
else biari_init_context (img, &(ctx[j]), &(tab ## _P[num][0][j][0])); \
|
39 |
|
|
} \
|
40 |
|
|
}
|
41 |
|
|
|
42 |
|
|
|
43 |
|
|
void
|
44 |
|
|
init_contexts (struct img_par* img)
|
45 |
|
|
{
|
46 |
|
|
MotionInfoContexts* mc = img->currentSlice->mot_ctx;
|
47 |
|
|
TextureInfoContexts* tc = img->currentSlice->tex_ctx;
|
48 |
|
|
int i, j;
|
49 |
|
|
|
50 |
|
|
//printf("%d -", img->model_number);
|
51 |
|
|
|
52 |
|
|
//--- motion coding contexts ---
|
53 |
|
|
BIARI_CTX_INIT2 (3, NUM_MB_TYPE_CTX, mc->mb_type_contexts, INIT_MB_TYPE, img->model_number);
|
54 |
|
|
BIARI_CTX_INIT2 (2, NUM_B8_TYPE_CTX, mc->b8_type_contexts, INIT_B8_TYPE, img->model_number);
|
55 |
|
|
BIARI_CTX_INIT2 (2, NUM_MV_RES_CTX, mc->mv_res_contexts, INIT_MV_RES, img->model_number);
|
56 |
|
|
BIARI_CTX_INIT2 (2, NUM_REF_NO_CTX, mc->ref_no_contexts, INIT_REF_NO, img->model_number);
|
57 |
|
|
BIARI_CTX_INIT1 ( NUM_DELTA_QP_CTX, mc->delta_qp_contexts, INIT_DELTA_QP, img->model_number);
|
58 |
|
|
BIARI_CTX_INIT1 ( NUM_MB_AFF_CTX, mc->mb_aff_contexts, INIT_MB_AFF, img->model_number);
|
59 |
|
|
BIARI_CTX_INIT1 ( NUM_TRANSFORM_SIZE_CTX, mc->transform_size_contexts, INIT_TRANSFORM_SIZE, img->model_number);
|
60 |
|
|
|
61 |
|
|
|
62 |
|
|
//--- texture coding contexts ---
|
63 |
|
|
BIARI_CTX_INIT1 ( NUM_IPR_CTX, tc->ipr_contexts, INIT_IPR, img->model_number);
|
64 |
|
|
BIARI_CTX_INIT1 ( NUM_CIPR_CTX, tc->cipr_contexts, INIT_CIPR, img->model_number);
|
65 |
|
|
BIARI_CTX_INIT2 (3, NUM_CBP_CTX, tc->cbp_contexts, INIT_CBP, img->model_number);
|
66 |
|
|
BIARI_CTX_INIT2 (8, NUM_BCBP_CTX, tc->bcbp_contexts, INIT_BCBP, img->model_number);
|
67 |
|
|
BIARI_CTX_INIT2 (NUM_BLOCK_TYPES, NUM_MAP_CTX, tc->map_contexts, INIT_MAP, img->model_number);
|
68 |
|
|
BIARI_CTX_INIT2 (NUM_BLOCK_TYPES, NUM_LAST_CTX, tc->last_contexts, INIT_LAST, img->model_number);
|
69 |
|
|
BIARI_CTX_INIT2 (NUM_BLOCK_TYPES, NUM_ONE_CTX, tc->one_contexts, INIT_ONE, img->model_number);
|
70 |
|
|
BIARI_CTX_INIT2 (NUM_BLOCK_TYPES, NUM_ABS_CTX, tc->abs_contexts, INIT_ABS, img->model_number);
|
71 |
|
|
BIARI_CTX_INIT2 (NUM_BLOCK_TYPES, NUM_MAP_CTX, tc->fld_map_contexts, INIT_FLD_MAP, img->model_number);
|
72 |
|
|
BIARI_CTX_INIT2 (NUM_BLOCK_TYPES, NUM_LAST_CTX, tc->fld_last_contexts,INIT_FLD_LAST, img->model_number);
|
73 |
|
|
}
|
74 |
|
|
|