mpeg4data.h
上传用户:jxp0626
上传日期:2007-01-08
资源大小:102k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Unix_Linux

  1. /* Coeffs for last = 0, run = 0. Indexed by [level-1] */
  2. static const UINT8 coeff_tab4[27][2] =
  3. {
  4.     /* run = 0 */
  5.     {0x02, 2}, {0x06, 3}, {0x0f, 4}, {0x0d, 5},
  6.     {0x0c, 5}, {0x15, 6}, {0x13, 6}, {0x12, 6}, 
  7.     {0x17, 7}, {0x1f, 8}, {0x1e, 8}, {0x1d, 8},
  8.     {0x25, 9}, {0x24, 9}, {0x23, 9}, {0x21, 9},
  9.     {0x21,10}, {0x20,10}, {0x0f,10}, {0x0e,10},
  10.     {0x07,11}, {0x06,11}, {0x20,11}, {0x21,11},
  11.     {0x50,12}, {0x51,12}, {0x52,12}
  12. };
  13. /* Coeffs for last = 0, run = 1. Indexed by [level-1] */
  14. static const UINT8 coeff_tab5[10][2] =
  15. {
  16.     {0x0e, 4}, {0x14, 6}, {0x16, 7}, {0x1c, 8},
  17.     {0x20, 9}, {0x1f, 9}, {0x0d,10}, {0x22,11},
  18.     {0x53,12}, {0x55,12}
  19. };
  20. /* Coeffs for last = 0, run = 2 -> 9. Indexed by [run-2][level-1] */
  21. static const UINT8 coeff_tab6[8][5][2] =
  22. {
  23.     /* run = 2 */
  24.     {
  25. {0x0b, 5}, {0x15, 7}, {0x1e, 9}, {0x0c,10},
  26. {0x56,12}
  27.     },
  28.     /* run = 3 */
  29.     {
  30. {0x11, 6}, {0x1b, 8}, {0x1d, 9}, {0x0b,10},
  31. {0x00, 0}
  32.     },
  33.     /* run = 4 */
  34.     {
  35. {0x10, 6}, {0x22, 9}, {0x0a,10}, {0x00, 0},
  36. {0x00, 0}
  37.     },
  38.     /* run = 5 */
  39.     {
  40. {0x0d, 6}, {0x1c, 9}, {0x08,10}, {0x00, 0},
  41. {0x00, 0}
  42.     },
  43.     /* run = 6 */
  44.     {
  45. {0x12, 7}, {0x1b, 9}, {0x54,12}, {0x00, 0},
  46. {0x00, 0}
  47.     },
  48.     /* run = 7 */
  49.     {
  50. {0x14, 7}, {0x1a, 9}, {0x57,12}, {0x00, 0},
  51. {0x00, 0}
  52.     },
  53.     /* run = 8 */
  54.     {
  55. {0x19, 8}, {0x09,10}, {0x00, 0}, {0x00, 0},
  56. {0x00, 0}
  57.     },
  58.     /* run = 9 */
  59.     {
  60. {0x18, 8}, {0x23,11}, {0x00, 0}, {0x00, 0},
  61. {0x00, 0}
  62.     }
  63. };
  64. /* Coeffs for last = 0, run = 10 -> 14. Indexed by [run-10] */
  65. static const UINT8 coeff_tab7[5][2] =
  66. {
  67.     {0x17, 8}, {0x19, 9}, {0x18, 9}, {0x07,10},
  68.     {0x58,12}
  69. };
  70. /* Coeffs for last = 1, run = 0. Indexed by [level-1] */
  71. static const UINT8 coeff_tab8[8][2] =
  72. {
  73.     {0x07, 4}, {0x0c, 6}, {0x16, 8}, {0x17, 9},
  74.     {0x06,10}, {0x05,11}, {0x04,11}, {0x59,12}
  75. };
  76. /* Coeffs for last = 1, run = 1 -> 6. Indexed by [run-1][level-1] */
  77. static const UINT8 coeff_tab9[6][3][2] =
  78. {
  79.     /* run = 1 */
  80.     {
  81. {0x0f, 6}, {0x16, 9}, {0x05,10}
  82.     },
  83.     /* run = 2 */
  84.     {
  85. {0x0e, 6}, {0x04,10}, {0x00, 0}
  86.     },
  87.     /* run = 3 */
  88.     {
  89. {0x11, 7}, {0x24,11}, {0x00, 0}
  90.     },
  91.     /* run = 4 */
  92.     {
  93. {0x10, 7}, {0x25,11}, {0x00, 0}
  94.     },
  95.     /* run = 5 */
  96.     {
  97. {0x13, 7}, {0x5a,12}, {0x00, 0}
  98.     },
  99.     /* run = 6 */
  100.     {
  101. {0x15, 8}, {0x5b,12}, {0x00, 0}
  102.     }
  103. };
  104. /* Coeffs for last = 1, run = 7 -> 20. Indexed by [run-7] */
  105. static const UINT8 coeff_tab10[14][2] =
  106. {
  107.     {0x14, 8}, {0x13, 8}, {0x1a, 8}, {0x15, 9},
  108.     {0x14, 9}, {0x13, 9}, {0x12, 9}, {0x11, 9},
  109.     {0x26,11}, {0x27,11}, {0x5c,12}, {0x5d,12},
  110.     {0x5e,12}, {0x5f,12}
  111. };
  112. /* dc encoding for mpeg4 */
  113. static const UINT8 DCtab_lum[13][2] =
  114. {
  115.     {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
  116.     {1,8}, {1,9}, {1,10}, {1,11},
  117. }; 
  118. static const UINT8 DCtab_chrom[13][2] =
  119. {
  120.     {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
  121.     {1,9}, {1,10}, {1,11}, {1,12},
  122. }; 
  123. static const UINT8 intra_max_level[2][64] = 
  124. {
  125. {
  126. 27, 10,  5,  4,  3,  3,  3,  3, 
  127. 2,  2,  1,  1,  1,  1,  1,  0,
  128. 0,  0,  0,  0,  0,  0,  0,  0,
  129. 0,  0,  0,  0,  0,  0,  0,  0,
  130. 0,  0,  0,  0,  0,  0,  0,  0,
  131. 0,  0,  0,  0,  0,  0,  0,  0,
  132. 0,  0,  0,  0,  0,  0,  0,  0,
  133. 0,  0,  0,  0,  0,  0,  0,  0,
  134. },
  135. {
  136. 8,  3,  2,  2,  2,  2,  2,  1, 
  137. 1,  1,  1,  1,  1,  1,  1,  1,
  138. 1,  1,  1,  1,  1,  0,  0,  0,
  139. 0,  0,  0,  0,  0,  0,  0,  0,
  140. 0,  0,  0,  0,  0,  0,  0,  0,
  141. 0,  0,  0,  0,  0,  0,  0,  0,
  142. 0,  0,  0,  0,  0,  0,  0,  0,
  143. 0,  0,  0,  0,  0,  0,  0,  0
  144. }
  145. };
  146. static const UINT8 inter_max_level[2][64] = 
  147. {
  148. {
  149. 12,  6,  4,  3,  3,  3,  3,  2, 
  150. 2,  2,  2,  1,  1,  1,  1,  1,
  151. 1,  1,  1,  1,  1,  1,  1,  1,
  152. 1,  1,  1,  0,  0,  0,  0,  0,
  153. 0,  0,  0,  0,  0,  0,  0,  0,
  154. 0,  0,  0,  0,  0,  0,  0,  0,
  155. 0,  0,  0,  0,  0,  0,  0,  0,
  156. 0,  0,  0,  0,  0,  0,  0,  0
  157. },
  158. {
  159. 3,  2,  1,  1,  1,  1,  1,  1, 
  160. 1,  1,  1,  1,  1,  1,  1,  1,
  161. 1,  1,  1,  1,  1,  1,  1,  1,
  162. 1,  1,  1,  1,  1,  1,  1,  1,
  163. 1,  1,  1,  1,  1,  1,  1,  1,
  164. 1,  0,  0,  0,  0,  0,  0,  0,
  165. 0,  0,  0,  0,  0,  0,  0,  0,
  166. 0,  0,  0,  0,  0,  0,  0,  0
  167. }
  168. };
  169. static const UINT16 intra_max_run[2][28] = 
  170.     {
  171. 999, 14,  9,  7,  3,  2,  1,   
  172. 1,  1,  1,  1,  0,  0,  0, 
  173. 0,  0,  0,  0,  0,  0,  0,
  174. 0,  0,  0,  0,  0,  0,  0
  175.     },
  176.     {
  177. 999, 20,  6,  
  178. 1,  0,  0,  
  179. 0,  0,  0
  180.     },
  181. };
  182. static const UINT16 inter_max_run[2][13] = 
  183. {
  184.     { 
  185.         999, 
  186. 26, 10,  6,  2,  1,  1,   
  187.         0,  0,  0,  0,  0,  0
  188.     },
  189.     {
  190. 999, 40,  1,  0
  191.     },
  192. };