vlc.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. #ifndef VLC_H
  2. #define VLC_H
  3. /* variable length code tables                                    */
  4. typedef struct {
  5.   char val, len;
  6. } mpeg3_VLCtab_t;
  7. typedef struct {
  8.   char run, level, len;
  9. } mpeg3_DCTtab_t;
  10. /* Added 03/38/96 by Alex de Jong : avoid IRIX GNU warning */
  11. #ifdef ERROR
  12. #undef ERROR
  13. #define ERROR 99
  14. #endif
  15. /* Table B-3, mb_type in P-pictures, codes 001..1xx */
  16. extern mpeg3_VLCtab_t mpeg3_PMBtab0[8];
  17. /* Table B-3, mb_type in P-pictures, codes 000001..00011x */
  18. extern mpeg3_VLCtab_t mpeg3_PMBtab1[8];
  19. /* Table B-4, mb_type in B-pictures, codes 0010..11xx */
  20. extern mpeg3_VLCtab_t mpeg3_BMBtab0[16];
  21. /* Table B-4, mb_type in B-pictures, codes 000001..00011x */
  22. extern mpeg3_VLCtab_t mpeg3_BMBtab1[8];
  23. /* Table B-5, mb_type in spat. scal. I-pictures, codes 0001..1xxx */
  24. extern mpeg3_VLCtab_t mpeg3_spIMBtab[16];
  25. /* Table B-6, mb_type in spat. scal. P-pictures, codes 0010..11xx */
  26. extern mpeg3_VLCtab_t mpeg3_spPMBtab0[16];
  27. /* Table B-6, mb_type in spat. scal. P-pictures, codes 0000010..000111x */
  28. extern mpeg3_VLCtab_t mpeg3_spPMBtab1[16];
  29. /* Table B-7, mb_type in spat. scal. B-pictures, codes 0010..11xx */
  30. extern mpeg3_VLCtab_t mpeg3_spBMBtab0[14];
  31. /* Table B-7, mb_type in spat. scal. B-pictures, codes 0000100..000111x */
  32. extern mpeg3_VLCtab_t mpeg3_spBMBtab1[12];
  33. /* Table B-7, mb_type in spat. scal. B-pictures, codes 00000100x..000001111 */
  34. extern mpeg3_VLCtab_t mpeg3_spBMBtab2[8];
  35. /* Table B-8, mb_type in spat. scal. B-pictures, codes 001..1xx */
  36. extern mpeg3_VLCtab_t mpeg3_SNRMBtab[8];
  37. /* Table B-10, motion_code, codes 0001 ... 01xx */
  38. extern mpeg3_VLCtab_t mpeg3_MVtab0[8];
  39. /* Table B-10, motion_code, codes 0000011 ... 000011x */
  40. extern mpeg3_VLCtab_t mpeg3_MVtab1[8];
  41. /* Table B-10, motion_code, codes 0000001100 ... 000001011x */
  42. extern mpeg3_VLCtab_t mpeg3_MVtab2[12];
  43. /* Table B-9, coded_block_pattern, codes 01000 ... 111xx */
  44. extern mpeg3_VLCtab_t mpeg3_CBPtab0[32];
  45. /* Table B-9, coded_block_pattern, codes 00000100 ... 001111xx */
  46. extern mpeg3_VLCtab_t mpeg3_CBPtab1[64];
  47. /* Table B-9, coded_block_pattern, codes 000000001 ... 000000111 */
  48. extern mpeg3_VLCtab_t mpeg3_CBPtab2[8];
  49. /* Table B-1, macroblock_address_increment, codes 00010 ... 011xx */
  50. extern mpeg3_VLCtab_t mpeg3_MBAtab1[16];
  51. /* Table B-1, macroblock_address_increment, codes 00000011000 ... 0000111xxxx */
  52. extern mpeg3_VLCtab_t mpeg3_MBAtab2[104];
  53. /* Table B-12, dct_dc_size_luminance, codes 00xxx ... 11110 */
  54. extern mpeg3_VLCtab_t mpeg3_DClumtab0[32];
  55. /* Table B-12, dct_dc_size_luminance, codes 111110xxx ... 111111111 */
  56. extern mpeg3_VLCtab_t mpeg3_DClumtab1[16];
  57. /* Table B-13, dct_dc_size_chrominance, codes 00xxx ... 11110 */
  58. extern mpeg3_VLCtab_t mpeg3_DCchromtab0[32];
  59. /* Table B-13, dct_dc_size_chrominance, codes 111110xxxx ... 1111111111 */
  60. extern mpeg3_VLCtab_t mpeg3_DCchromtab1[32];
  61. /* Table B-14, DCT coefficients table zero,
  62.  * codes 0100 ... 1xxx (used for first (DC) coefficient)
  63.  */
  64. mpeg3_DCTtab_t mpeg3_DCTtabfirst[12];
  65. /* Table B-14, DCT coefficients table zero,
  66.  * codes 0100 ... 1xxx (used for all other coefficients)
  67.  */
  68. mpeg3_DCTtab_t mpeg3_DCTtabnext[12];
  69. /* Table B-14, DCT coefficients table zero,
  70.  * codes 000001xx ... 00111xxx
  71.  */
  72. mpeg3_DCTtab_t mpeg3_DCTtab0[60];
  73. /* Table B-15, DCT coefficients table one,
  74.  * codes 000001xx ... 11111111
  75. */
  76. mpeg3_DCTtab_t mpeg3_DCTtab0a[252];
  77. /* Table B-14, DCT coefficients table zero,
  78.  * codes 0000001000 ... 0000001111
  79.  */
  80. mpeg3_DCTtab_t mpeg3_DCTtab1[8];
  81. /* Table B-15, DCT coefficients table one,
  82.  * codes 000000100x ... 000000111x
  83.  */
  84. mpeg3_DCTtab_t mpeg3_DCTtab1a[8];
  85. /* Table B-14/15, DCT coefficients table zero / one,
  86.  * codes 000000010000 ... 000000011111
  87.  */
  88. mpeg3_DCTtab_t mpeg3_DCTtab2[16];
  89. /* Table B-14/15, DCT coefficients table zero / one,
  90.  * codes 0000000010000 ... 0000000011111
  91.  */
  92. mpeg3_DCTtab_t mpeg3_DCTtab3[16];
  93. /* Table B-14/15, DCT coefficients table zero / one,
  94.  * codes 00000000010000 ... 00000000011111
  95.  */
  96. mpeg3_DCTtab_t mpeg3_DCTtab4[16];
  97. /* Table B-14/15, DCT coefficients table zero / one,
  98.  * codes 000000000010000 ... 000000000011111
  99.  */
  100. mpeg3_DCTtab_t mpeg3_DCTtab5[16];
  101. /* Table B-14/15, DCT coefficients table zero / one,
  102.  * codes 0000000000010000 ... 0000000000011111
  103.  */
  104. mpeg3_DCTtab_t mpeg3_DCTtab6[16];
  105. #endif