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

Audio

开发平台:

Visual C++

  1. /*!
  2.  ************************************************************************
  3.  * file
  4.  *    macroblock.h
  5.  *
  6.  * brief
  7.  *    Arrays for macroblock processing
  8.  *
  9.  * author
  10.  *    Inge Lille-Langoy               <inge.lille-langoy@telenor.com>     n
  11.  *    Telenor Satellite Services                                          n
  12.  *    P.O.Box 6914 St.Olavs plass                                         n
  13.  *    N-0130 Oslo, Norway
  14.  *
  15.  ************************************************************************/
  16. #ifndef _MACROBLOCK_H_
  17. #define _MACROBLOCK_H_
  18. void  proceed2nextMacroblock(Macroblock* currMB);
  19. void  start_macroblock(Slice *currSlice, Macroblock** currMB, int mb_addr, byte mb_field);
  20. void  reset_macroblock(Macroblock *currMB, int prev_mb);
  21. void  terminate_macroblock(Slice *currSlice, Macroblock* currMB, Boolean *end_of_slice, Boolean *recode_macroblock);
  22. void  write_one_macroblock(Macroblock* currMB, int eos_bit, Boolean prev_recode_mb);
  23. int  LumaResidualCoding8x8 (Macroblock* currMB, int*, int64*, int, short, int, int, short, short, int);
  24. void LumaResidualCoding (Macroblock *currMB, int is_cavlc);
  25. void ChromaResidualCoding (Macroblock *currMB, int is_cavlc);
  26. void IntraChromaPrediction (Macroblock *currMB, int*, int*, int*);
  27. void IntraChromaRDDecision (Macroblock *currMB, RD_PARAMS);
  28. int  TransformDecision(Macroblock *currMB, int, int*);
  29. int  B8Mode2Value (short b8mode, short b8pdir);
  30. int  writeMBLayer (Macroblock *currMB, int rdopt, int *coeff_rate);
  31. void write_terminating_bit (short bit);
  32. int  writeReferenceFrame  (Macroblock *currMB, int mode, int i, int j, int fwd_flag, int  ref);
  33. int  writeMotionVector8x8 (Macroblock *currMB, int  i0, int  j0, int  i1, int  j1, int  refframe, int  list_idx, int  mv_mode, short bipred_me);
  34. int  writeCoeff4x4_CABAC (Macroblock *currMB, ColorPlane, int, int, int);
  35. int  writeCoeff8x8_CABAC (Macroblock* currMB, ColorPlane, int, int);
  36. int  writeCoeff8x8       (Macroblock* currMB, ColorPlane, int, int, int);
  37. int  writeCoeff16x16     (Macroblock* currMB, ColorPlane, int);
  38. int  writeCoeff4x4_CAVLC (Macroblock* currMB, int block_type, int b8, int b4, int param);
  39. int distortion_sad(imgpel **img_org, imgpel pred_img[16][16]);
  40. int distortion_sse(imgpel **img_org, imgpel pred_img[16][16]);
  41. int distortion_hadamard(imgpel **img_org, imgpel pred_img[16][16]);
  42. double (*find_sad_16x16) (Macroblock *currMB, int *intra_mode);
  43. double find_sad_16x16_JM (Macroblock *currMB, int *intra_mode);
  44. void SetLagrangianMultipliersOn();
  45. void SetLagrangianMultipliersOff();
  46. void (*SetLagrangianMultipliers)();
  47. int   predict_nnz(Macroblock *currMB, int block_type, int i,int j);
  48. int   predict_nnz_chroma(Macroblock *currMB, int i,int j);
  49. #endif