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

Audio

开发平台:

Visual C++

  1. /*!
  2.  **************************************************************************
  3.  *  file elements.h
  4.  *  brief  Header file for elements in H.264 streams
  5.  *  date 6.10.2000,
  6.  *  version
  7.  *      1.1
  8.  *
  9.  * note
  10.  *    Version 1.0 included three partition modes, no DP, 2 partitionsper slice
  11.  *      and 4 partitions per slice.  As per document VCEG-N72 this is changed
  12.  *      in version 1.1 to only two partition modes, one without DP and one with
  13.  *      3 partition per slice
  14.  *
  15.  *  author Sebastian Purreiter     <sebastian.purreiter@mch.siemens.de>
  16.  *  author Stephan Wenger          <stewe@cs.tu-berlin.de>
  17.  *
  18.  **************************************************************************
  19.  */
  20. #ifndef _ELEMENTS_H_
  21. #define _ELEMENTS_H_
  22. /*!
  23.  *  definition of H.264 syntax elements
  24.  *  order of elements follow dependencies for picture reconstruction
  25.  */
  26. #define MAXPARTITIONMODES 2 //!< maximum possible partition modes as defined in assignSE2partition[][]
  27. /*!
  28.  *  brief  lookup-table to assign different elements to partition
  29.  *
  30.  *  note here we defined up to 6 different partitions similar to
  31.  *      document Q15-k-18 described in the PROGFRAMEMODE.
  32.  *      The Sliceheader contains the PSYNC information. par
  33.  *
  34.  *      Elements inside a partition are not ordered. They are
  35.  *      ordered by occurence in the stream.
  36.  *      Assumption: Only partitionlosses are considered. par
  37.  *
  38.  *      The texture elements luminance and chrominance are
  39.  *      not ordered in the progressive form
  40.  *      This may be changed in image.c par
  41.  *
  42.  *  -IMPORTANT:
  43.  *      Picture- or Sliceheaders must be assigned to partition 0. par
  44.  *      Furthermore partitions must follow syntax dependencies as
  45.  *      outlined in document Q15-J-23.
  46.  */
  47. // A note on this table:
  48. //
  49. // While the assignment of values in enum data types is specified in C, it is not
  50. // very ood style to have an "elementnumber", not even as a comment.
  51. //
  52. // Hence a copy of the relevant structure from global.h here
  53. /*
  54. typedef enum {
  55.  0  SE_HEADER,
  56.  1  SE_PTYPE,
  57.  2  SE_MBTYPE,
  58.  3  SE_REFFRAME,
  59.  4  SE_INTRAPREDMODE,
  60.  5  SE_MVD,
  61.  6  SE_CBP
  62.  7  SE_LUM_DC_INTRA,
  63.  8  SE_CHR_DC_INTRA,
  64.  9  SE_LUM_AC_INTRA,
  65. 10  SE_CHR_AC_INTRA,
  66. 12  SE_LUM_DC_INTER,
  67. 13  SE_CHR_DC_INTER,
  68. 14  SE_LUM_AC_INTER,
  69. 15  SE_CHR_AC_INTER,
  70. 16  SE_DELTA_QUANT,
  71. 18  SE_BFRAME,
  72. 19  SE_EOS,
  73. 20  SE_MAX_ELEMENTS */ // number of maximum syntax elements
  74. //} SE_type;
  75. extern int * assignSE2partition[2];
  76. extern int assignSE2partition_NoDP[SE_MAX_ELEMENTS];
  77. extern int assignSE2partition_DP[SE_MAX_ELEMENTS];
  78. #endif