home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 August / Chip_2004-08_cd2.bin / prevodniky / download / AVI2MPG / avi2mpg1.exe / PARAM.TXT < prev    next >
Text File  |  1997-07-21  |  13KB  |  321 lines

  1.   The contents of this file were edited from the original MSSG
  2.   ditribution. The parameter file is a subset of the MSSG version
  3.   since avi2mpg1 only generates MPEG-1, and since many of the
  4.   encoding parameters can be determined from the avi file format.
  5.   The file "TEMPLATE.PAR" should be used as a template for any
  6.   changes. TEMPLATE.PAR contains the same parameters that are used
  7.   by default by avi2mpg1 if no parameter file is specified. The main
  8.   use of a parameter file will probably be to experiment with different
  9.   motion etsimation search vectors.
  10.  
  11.   DO NOT ADD OR DELETE LINES FROM THE PARAMETER FILE, the input
  12.   routines depend on the exact ordering of the parameter lines!
  13.   Use the template.par provided and edit the given parameters.
  14.  
  15.   The first line of the parameter file is a comment which is inserted near
  16.   the beginning of the MPEG bitstream as a user_data field, and can be 
  17.   used for arbitrary purposes.
  18.  
  19.   The remaining lines are described below:
  20.  
  21.  /* name of intra quant matrix file     ("-": default matrix) */ 
  22.  
  23.   Setting this to a value other than  -  specifies a file containing
  24.   a custom intra quantization matrix to be used instead of the default 
  25.   matrix specified in ISO/IEC 13818-2 and 11172-2. This file has to contain 
  26.   64 integer values (range 1...255) separated by white space (blank, tab, 
  27.   or newline), one corresponding  to each of the 64 DCT coefficients. They 
  28.   are ordered line by line, i.e. v-u frequency matrix order (not by the 
  29.   zig-zag pattern used for transmission). The file intra.mat contains the 
  30.   default matrix as a starting point for customization. It is neither 
  31.   necessary or recommended to specify the default matrix explicitly.
  32.  
  33.   Large values correspond to coarse quantization and consequently more
  34.   noise at that particular spatial frequency.
  35.  
  36.   For the intra quantization matrix, the first value in the file (DC value)
  37.   is ignored. Use the parameter intra_dc_precision (see below) to define
  38.   the quantization of the DC value.
  39.     
  40.  /* name of non intra quant matrix file ("-": default matrix) */
  41.  
  42.   This parameter field follows the same rules as described for the above 
  43.   intra quant matrix parameter, but specifies the file for the NON-INTRA 
  44.   coded (predicted / interpolated) blocks. In this case the first 
  45.   coefficient of the matrix is NOT ignored.    
  46.  
  47.   The default matrix uses a constant value of 16 for all 64 coefficients.
  48.   (a flat matrix is thought to statistically minimize mean square error). 
  49.   The file inter.mat contains an alternate matrix, used in the MPEG-2 test
  50.   model.
  51.  
  52.  /* timecode of first frame */
  53.  
  54.   This line is used to set the timecode encoded into the first 'Group of
  55.   Pictures' header. The format is based on the SMPTE style:
  56.  
  57.   hh:mm:ss:ff (hh=hour, mm=minute, ss=second, ff=frame (0..picture_rate-1)
  58.  
  59.  /* N (# of frames in GOP) */
  60.  
  61.   This defines the distance between I frames (and 'Group of Pictures'
  62.   headers). Common values are 15 for 30 Hz video and 12 for 25 Hz video.
  63.  
  64.  /* M (I/P frame distance) */
  65.  
  66.   Distance between consecutive I or P frames. Usually set to 3.
  67.   N has to be a multiple of M.   M = 1 means no B frames in the sequence.
  68.   (in a future edition of this program, M=0 will mean only I frames).
  69.  
  70.  /* aspect_ratio_information */
  71.  
  72.   Defines the display aspect ratio. Legal values are:
  73.  
  74.   Code    Meaning
  75.   ----    --------------
  76.   1       square pels
  77.   2       4:3 display
  78.   3       16:9 display
  79.   4       2.21:1 display
  80.  
  81.   MPEG-1 uses a different coding of aspect ratios. In this cases codes
  82.   1 to 14 are valid.
  83.  
  84.  /* vbv_buffer_size (in multiples 16 kbit) */
  85.  
  86.   Specifies, according to the Video Buffering Verifier decoder model,  
  87.   the size of the bitstream input buffer required in downstream 
  88.   decoders in order for the sequence to be decoded without underflows or 
  89.   or overflows.  You probably will wish to leave this value at
  90.   20 for Constrained Parameters Bitstreams MPEG-1.
  91.  
  92.  /* constrained_parameters_flag */
  93.  
  94.   You may set this to 1 if you encode an MPEG-1 
  95.   sequence which meets the parameter limits defined in ISO/IEC 11172-2 
  96.   for constrained parameter bitstreams:
  97.  
  98.     horizontal_size <= 768
  99.     vertical_size   <= 576
  100.     picture_area    <= 396 macroblocks
  101.     pixel_rate      <= 396x25 macroblocks per second
  102.     vbv_buffer_size <= 20x16384 bit
  103.     bitrate         <= 1856000 bits/second
  104.     motion vector range <= -64...63.5
  105.  
  106.  /* Profile ID */
  107.  
  108.   Specifies the subset of the MPEG-2 syntax required for decoding the 
  109.   sequence. All MPEG-2 sequences generated by the current version of 
  110.   the encoder are either Main Profile or Simple Profile sequences.
  111.  
  112.   Code  Meaning                       Typical use
  113.   ----  --------------------------    ------------------------
  114.   1     High Profile                  production equipment requiring 4:2:2
  115.   2     Spatially Scalable Profile    Simulcasting 
  116.   3     SNR Scalable Profile          Simulcasting
  117.   4     Main Profile                  95 % of TVs, VCRs, cable applications
  118.   5     Simple Profile                Low cost memory, e.g. no B pictures
  119.  
  120.  /* Level ID */
  121.  
  122.   Specifies coded parameter constraints, such as bitrate, sample rate, and 
  123.   maximum allowed motion vector range.
  124.  
  125.   Code  Meaning         Typical use
  126.   ----  --------------- -----------------------------------------------
  127.   4     High Level      HDTV production rates: e.g. 1920 x 1080 x 30 Hz
  128.   6     High 1440 Level HDTV consumer rates: e.g. 1440 x 960 x 30 Hz
  129.   8     Main Level      CCIR 601 rates: e.g. 720 x 480 x 30 Hz
  130.   10    Low Level       SIF video rate: e.g. 352 x 240 x 30 Hz
  131.  
  132.  /* video_format: 0=comp., 1=PAL, 2=NTSC, 3=SECAM, 4=MAC, 5=unspec. */
  133.  
  134.  /* color_primaries */
  135.  
  136.   Specifies the x, y chromaticity coordinates of the source primaries.
  137.  
  138.   Code   Meaning
  139.   ----   -------
  140.   1      ITU-R Rec. 709 (1990)
  141.   2      unspecified
  142.   4      ITU-R Rec. 624-4 System M
  143.   5      ITU-R Rec. 624-4 System B, G
  144.   6      SMPTE 170M
  145.   7      SMPTE 240M (1987)
  146.  
  147.  /* transfer_characteristics */
  148.  
  149.   Specifies the opto-electronic transfer characteristic of the source picture.
  150.  
  151.   Code   Meaning
  152.   ----   -------
  153.   1      ITU-R Rec. 709 (1990)
  154.   2      unspecified
  155.   4      ITU-R Rec. 624-4 System M
  156.   5      ITU-R Rec. 624-4 System B, G
  157.   6      SMPTE 170M
  158.   7      SMPTE 240M (1987)
  159.   8      linear transfer characteristics
  160.  
  161.  /* matrix_coefficients */
  162.  
  163.   Specifies the matrix coefficients used in deriving luminance and chrominance
  164.   signals from the green, blue, and red primaries.
  165.  
  166.   Code   Meaning
  167.   ----   -------
  168.   1      ITU-R Rec. 709 (1990)
  169.   2      unspecified
  170.   4      FCC
  171.   5      ITU-R Rec. 624-4 System B, G
  172.   6      SMPTE 170M
  173.   7      SMPTE 240M (1987)
  174.  
  175.  /* intra_dc_precision */
  176.  
  177.   Specifies the effective precision of the DC coefficient in MPEG-2 
  178.   intra coded macroblocks. 10-bits usually achieves quality saturation.
  179.  
  180.   Code    Meaning
  181.   ----    -----------------
  182.   0       8 bit
  183.   1       9 bit
  184.   2       10 bit
  185.   3       11 bit
  186.  
  187.  /* frame_pred_frame_dct (I P B) */
  188.  
  189.   Setting this parameter to 1 restricts motion compensation to frame 
  190.   prediction and DCT to frame DCT. You have to specify this separately for 
  191.   I, P and B picture types.
  192.  
  193.  /* q_scale_type (I P B) */
  194.   
  195.   These flag sets linear (0) or non-linear (1) quantization scale type 
  196.   for the three respective picture types.
  197.  
  198.  /* intra_vlc_format (I P B) */
  199.  
  200.   Selects one of the two variable length coding tables for intra coded blocks.
  201.   Table 1 is considered to be statistically optimized for Intra coded 
  202.   pictures coded within the sweet spot range (e.g. 0.3 to 0.6 bit/pixel)
  203.   of MPEG-2.
  204.   
  205.   Code  Meaning
  206.   ----  -----------------
  207.   0     table 0 (= MPEG-1) 
  208.   1     table 1
  209.  
  210.  /* alternate_scan (I P B) */
  211.  
  212.   Selects one of two entropy scanning patterns defining the order in 
  213.   which quantized DCT coefficients are run-length coded.  The alternate 
  214.   scanning pattern is considered to be better suited for interlaced video 
  215.   where the encoder does not employ sophisticated forward quantization 
  216.   (as is the case in our current encoder).
  217.   
  218.   Code  Meaning
  219.   ----  -----------------
  220.   0     Zig-Zag scan (= MPEG-1)
  221.   1     Alternate scan 
  222.  
  223.  /* repeat_first_field */
  224.  
  225.   If set to one, the first field of a frame is repeated after the second by
  226.   the display process. The exact function depends on progressive_sequence
  227.   and top_field_first.  repeat_first_field is mainly intended to serve as 
  228.   a signal for the Decoder's Display Process to perform 3:2 pulldown.
  229.  
  230.  /* intra_slice refresh picture period (P factor) */
  231.    
  232.    This value indicates the number of successive P pictures in which  
  233.    all slices (macroblock rows in our encoder model) are refreshed 
  234.    with intra coded macroblocks.  This feature assists low delay mode
  235.    coding.  It is currently not implemented.
  236.  
  237.  /* rate control: r (reaction parameter) */
  238.  /* rate control: avg_act (initial average activity) */
  239.  /* rate control: Xi (initial I frame global complexity measure) */
  240.  /* rate control: Xp (initial P frame global complexity measure) */
  241.  /* rate control: Xb (initial B frame global complexity measure) */
  242.  /* rate control: d0i (initial I frame virtual buffer fullness) */
  243.  /* rate control: d0p (initial P frame virtual buffer fullness) */
  244.  /* rate control: d0b (initial B frame virtual buffer fullness) */
  245.  
  246.   These parameters modify the behavior of the rate control scheme. Usually
  247.   set them to 0, in which case default values are computed by the encoder.
  248.  
  249.  /* P:  forw_hor_f_code forw_vert_f_code search_width/height */
  250.  /* B1: forw_hor_f_code forw_vert_f_code search_width/height */
  251.  /* B1: back_hor_f_code back_vert_f_code search_width/height */
  252.  /* B2: forw_hor_f_code forw_vert_f_code search_width/height */
  253.  /* B2: back_hor_f_code back_vert_f_code search_width/height */
  254.  
  255.   This set of parameters specifies the maximum length of the motion
  256.   vectors. If this length is set smaller than the actual movement
  257.   of objects in the picture, motion compensation becomes ineffective
  258.   and picture quality drops. If it is set too large, an excessive
  259.   number of bits is allocated for motion vector transmission, indirectly
  260.   reducing picture quality, too.
  261.  
  262.   All f_code values have to be in the range 1 to 9 (1 to 7 for MPEG-1),
  263.   which translate into maximum motion vector lengths as follows:
  264.  
  265.   code  range (inclusive)  max search width/height
  266.   ================================================
  267.   1        -8 ...    +7.5       7
  268.   2       -16 ...   +15.5      15
  269.   3       -32 ...   +31.5      31
  270.   4       -64 ...   +63.5      63
  271.   5      -128 ...  +127.5     127
  272.   6      -256 ...  +255.5     255
  273.   7      -512 ...  +511.5     511
  274.   8     -1024 ... +1023.5    1023
  275.   9     -2048 ... +2047.5    2047
  276.  
  277.   f_code is specified individually for each picture type (P,Bn), direction
  278.   (forward prediction, backward prediction) and component (horizontal,
  279.   vertical). Bn is the n'th B frame surrounded by I or P frames
  280.   (e.g.: I B1 B2 B3 P B1 B2 B3 P ...).
  281.  
  282.   For MPEG-1 sequences, horizontal and vertical f_code have to be
  283.   identical and the range is restricted to 1...7.
  284.  
  285.   P frame values have to be specified if N (N = # of frames in GOP) is
  286.   greater than 1 (otherwise the sequences contains only I frames).
  287.  
  288.   M - 1 (M = distance between I/P frames) sets (two lines each) of values
  289.   have to specified for B frames. The first line of each set defines
  290.   values for forward prediction (i.e. from a past frame), the second
  291.   line those for backward prediction (from a future frame).
  292.  
  293.   search_width and search_height set the (half) width of the window used
  294.   for motion estimation. The encoder currently employs exhaustive
  295.   integer vector block matching. Execution time for this algorithm depends
  296.   on the product of search_width and search_height and, too a large extent,
  297.   determines the speed of the encoder. Therefore these values have to be
  298.   chosen carefully.
  299.  
  300.   Here is an example of how to set these values, assuming a maximum
  301.   motion of 10 pels per frame in horizontal and 5 pels per frame in
  302.   vertical direction and M=3 (I B1 B2 P):
  303.  
  304.   search width / height:
  305.  
  306.   forward  hor.  vert.     backward  hor.  vert.
  307.   I -> B1  10     5        B1 <- P   20    10
  308.   I -> B2  20    10        B2 <- P   10     5
  309.   I -> P   30    15
  310.  
  311.   f_code values are then selected as the smallest ones resulting in a range
  312.   larger than the search widths / heights:
  313.  
  314.   3 2  30 15 /* P:  forw_hor_f_code forw_vert_f_code search_width/height */
  315.   2 1  10  5 /* B1: forw_hor_f_code forw_vert_f_code search_width/height */
  316.   3 2  20 10 /* B1: back_hor_f_code back_vert_f_code search_width/height */
  317.   3 2  20 10 /* B2: forw_hor_f_code forw_vert_f_code search_width/height */
  318.   2 1  10  5 /* B2: back_hor_f_code back_vert_f_code search_width/height */
  319.  
  320.  
  321.