context_ini.c
上传用户:hjq518
上传日期:2021-12-09
资源大小:5084k
文件大小:3k
源码类别:

Audio

开发平台:

Visual C++

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