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

Audio

开发平台:

Visual C++

  1. /*!
  2.  ************************************************************************
  3.  * file block.h
  4.  *
  5.  * brief
  6.  *    constant arrays for single block processing
  7.  *
  8.  * author
  9.  *    Inge Lille-Langoy               <inge.lille-langoy@telenor.com>    n
  10.  *    Telenor Satellite Services                                         n
  11.  *    P.O.Box 6914 St.Olavs plass                                        n
  12.  *    N-0130 Oslo, Norway
  13.  *
  14.  ************************************************************************
  15.  */
  16. #ifndef _BLOCK_H_
  17. #define _BLOCK_H_
  18. //! single scan pattern
  19. const byte SNGL_SCAN[16][2] =
  20. {
  21.   {0,0},{1,0},{0,1},{0,2},
  22.   {1,1},{2,0},{3,0},{2,1},
  23.   {1,2},{0,3},{1,3},{2,2},
  24.   {3,1},{3,2},{2,3},{3,3}
  25. };
  26. //! field scan pattern
  27. const byte FIELD_SCAN[16][2] =
  28. {
  29.   {0,0},{0,1},{1,0},{0,2},
  30.   {0,3},{1,1},{1,2},{1,3},
  31.   {2,0},{2,1},{2,2},{2,3},
  32.   {3,0},{3,1},{3,2},{3,3}
  33. };
  34. //! array used to find expencive coefficients
  35. const byte COEFF_COST4x4[2][16] =
  36. {
  37.   {3,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0},
  38.   {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9}
  39. };
  40. const byte SCAN_YUV420  [4][2] =
  41. {
  42.   {0,0},
  43.   {0,1},
  44.   {0,2},
  45.   {0,3}
  46. };
  47. //! single scan pattern
  48. const byte SCAN_YUV422  [8][2] =
  49. {
  50.   {0,0},{0,1},
  51.   {1,0},{0,2},
  52.   {0,3},{1,1},
  53.   {1,2},{1,3}
  54. };
  55. //! look up tables for FRExt-chroma support
  56. const unsigned char hor_offset[4][4][4] =  {
  57.   {
  58.     {0, 0, 0, 0},
  59.     {0, 0, 0, 0},
  60.     {0, 0, 0, 0},
  61.     {0, 0, 0, 0}
  62.   },
  63.   {
  64.     {0, 4, 0, 4},
  65.     {0, 0, 0, 0},
  66.     {0, 0, 0, 0},
  67.     {0, 0, 0, 0}
  68.   },
  69.   {
  70.     {0, 4, 0, 4},
  71.     {0, 4, 0, 4},
  72.     {0, 0, 0, 0},
  73.     {0, 0, 0, 0}
  74.   },
  75.   {
  76.     {0, 4, 0, 4},
  77.     {8,12, 8,12},
  78.     {0, 4, 0, 4},
  79.     {8,12, 8,12}
  80.   }
  81. };
  82. const unsigned char ver_offset[4][4][4] =  { 
  83.   {
  84.     {0, 0, 0, 0},
  85.     {0, 0, 0, 0},
  86.     {0, 0, 0, 0},
  87.     {0, 0, 0, 0}
  88.   },
  89.   {
  90.     {0, 0, 4, 4},
  91.     {0, 0, 0, 0},
  92.     {0, 0, 0, 0},
  93.     {0, 0, 0, 0}
  94.   },
  95.   {
  96.     {0, 0, 4, 4},
  97.     {8, 8,12,12},
  98.     {0, 0, 0, 0},
  99.     {0, 0, 0, 0}
  100.   },
  101.   {
  102.     {0, 0, 4, 4},
  103.     {0, 0, 4, 4},
  104.     {8, 8,12,12},
  105.     {8, 8,12,12}
  106.   }
  107. };
  108. static const int A[4][4] = {
  109.   { 16, 20, 16, 20},
  110.   { 20, 25, 20, 25},
  111.   { 16, 20, 16, 20},
  112.   { 20, 25, 20, 25}
  113. };
  114. static unsigned char cbp_blk_chroma[8][4] = {
  115.   {16, 17, 18, 19},
  116.   {20, 21, 22, 23},
  117.   {24, 25, 26, 27},
  118.   {28, 29, 30, 31},
  119.   {32, 33, 34, 35},
  120.   {36, 37, 38, 39},
  121.   {40, 41, 42, 43},
  122.   {44, 45, 46, 47} 
  123. };
  124. #endif