


MPEG_PLAY(1)             USER COMMANDS               MPEG_PLAY(1)



NAME
     mpeg_play - plays mpeg-1 encoded bitstreams using X11

SYNOPSIS
     mpeg_play [ -nob ] [ -nop ] [ [ -display display_name ] [  -
     quality  [on|off]  ] [ -dither dither_option ] [ -loop ] [ -
     eachstat ] [ -seek offset ] [ -start num ] [ -end num ] [  -
     gamma  gamma_correction_value  ]  [  -framerate  num  ]  [ -
     no_display ] [ -shmem_off ] [ -l_range num ] [ -cr_range num
     ] [ -cb_range num ] [ -quiet ] file_name

DESCRIPTION
     mpeg_play decodes and displays mpeg-1 encoded bitstreams  on
     systems  running  X11.  The player will create a new window,
     display the bitstream, and  exit.   Any  error  messages  or
     notices are sent to stderr.

OPTIONS
     -nob : causes the player to ignore and  not  display  any  B
          frames.

     -nop : causes the player to ignore and  not  display  any  P
          frames.

     -display display_name : causes the player to open the window
          on the display _d_i_s_p_l_a_y__n_a_m_e.

     -quality [on|off] : forces player to choose  output  quality
          over  speed  when  on,  and  vice versa when off.  When
          quality is on, the player uses a computationally expen-
          sive  IDCT  and also improves playback through improved
          handling of half pixel motion vectors.  The default can
          be  set  to  on  if you compile mpeg_play with the flag
          -DQUALITY.

     -dither dither_option : selects from  a  variety  of  dither
          options. The possible values are:

          ordered - ordered dither.

          ordered2  -  a  faster  ordered  dither.  This  is  the
               default.

          mbordered - ordered dithering at the macroblock  level.
               Although  there is a noticeable decrease in dither
               quality, this is the fastest dither available.

          fs4 - Floyd-Steinberg dithering  with  4  error  values
               propagated.

          fs2 - Floyd-Steinberg dithering  with  2  error  values
               propagated.



Sun Release 4.1    Last change: 21 April 1995                   1






MPEG_PLAY(1)             USER COMMANDS               MPEG_PLAY(1)



          fs2fast - Fast Floyd-Steinberg dithering with  2  error
               values propagated.

          hybrid - Hybrid dithering,  a  combination  of  ordered
               dithering  for  the  luminance  channel and Floyd-
               Steinberg 2 error dithering  for  the  chrominance
               channels.  Errors  are NOT propagated properly and
               are dropped  all  together  every  two  pixels  in
               either direction.

          hybrid2 - Hybrid dithering as  above,  but  with  error
               propagation among pixels.

          2x2 - A dithering technique using a 2x2 pixel area  for
               each  pixel. The image displayed is 4 times larger
               than the  original  image  encoded.  Random  error
               terms are added to each pixel to break up contours
               and gradients.

          gray - Grayscale dithering. The image is dithered  into
               128  grayscales. Chrominance information is thrown
               away.

          gray256 - Grayscale dithering. The  image  is  dithered
               into  256  grayscales (requires private colormap).
               Chrominance information is thrown away.

          color - Full color display (only available  on  24  bit
               color displays).

          color2 - Full color display with increased  size  (only
               available on 24 bit color displays).

          none - no dithering is done,  no  image  is  displayed.
               Used to time decoding process.

          mono  -  Floyd-Steinberg   dithering   for   monochrome
               displays.

          threshold  -  Floyd-simple  dithering  for   monochrome
               displays.

          ppm - Write a PPM file for each frame.

     -loop : makes the player loop back to  the  beginning  after
          reaching the end.

     -owncm : makes the player use a  private  colormap  for  the
          window.

     -step : requires the user  to  press  return  for  each  new
          frame.



Sun Release 4.1    Last change: 21 April 1995                   2






MPEG_PLAY(1)             USER COMMANDS               MPEG_PLAY(1)



     -seek offset : before playing the movie, seek to  the  given
          offset  in the file (useful for large movies).  In this
          case -end is redefined to give the number of frames  to
          play,  and  -start  has  no meaning.  The offset should
          point to a Sequence or (closed) GOP  header,  but  data
          will  be  discarded  until  one  is found.  The initial
          sequence header will be parsed before  the  seek.   The
          skipped  sections  must  not  change  the  quantization
          matrices or the results are undefined.

     -start num : Waits to start display until this frame  number
          (previous frames are parsed).

     -end num : ends display at this frame  number  (except  when
          -seek is used).

     -gamma gamma_correction_param  :  specifies  the  amount  of
          gamma  correction.  Default is 0.  Use higher values if
          movie looks dark and hard to see.

     -framerate num : sets the framerate of the playback  to  num
          frames  per  second.   A  value of 0 indicates that the
          stream should be  played  as  fast  as  possible.   The
          default  is to play at the rate specified in the stream
          (if possible).  Note this is merely  a  framerate  lim-
          iter, it will not discard frames to meet the rate.

     -quiet : suppresses printing of frame numbers, timing infor-
          mation, and most error messages.

     -eachstat : causes statistics to  be  displayed  after  each
          frame. Only valid when compiled with -DANALYSIS.

     -shmem_off : turns shared memory off.

     -l_range num_colors : sets the number of colors assigned  to
          the  luminance component when dithering the image.  The
          product of l_range, cr_range  and  cb_range  should  be
          less than the number of colors on the display.

     -cr_range num_colors : sets the number of colors assigned to
          the red component of the chrominance range when dither-
          ing the image.  The product of  l_range,  cr_range  and
          cb_range  should  be  less than the number of colors on
          the display.

     -cb_range num_colors : sets the number of colors assigned to
          the  blue component of the chrominance range when dith-
          ering the image.  The product of l_range, cr_range  and
          cb_range  should  be  less than the number of colors on
          the display.




Sun Release 4.1    Last change: 21 April 1995                   3






MPEG_PLAY(1)             USER COMMANDS               MPEG_PLAY(1)



     -no_display : dithers, but does not  display,  usually  used
          for testing and timing purposes.

NOTES
     The player expects video streams only. It can handle  multi-
     plexed  MPEG streams (video+audio streams) by discarding the
     audio.

     Some streams do not end with the proper  sequence  end  code
     and  will probably generate an "Improper sequence end code."
     error when done playing.

     This player can play XING data files.  Be  aware  that  XING
     makes  no use of temporal redundancy or motion vector infor-
     mation. In other words, they do not use any P or B frames in
     their  streams. Instead, XING data is simply a sequence of I
     frames. Since I frames take significantly longer to  decode,
     performance of the player using XING data is not representa-
     tive of the player's ability.

     The player does not play MPEG-1 D-frame  streams,  but  they
     are a rarity.

VERSION
     This is version 2.1, containing some new features since 2.0,
     and  several  bug fixes.  It is a major change since version
     1.0.

BUGS
     The only known bug is that multiple mpeg_plays  cannot  seem
     to  be  run  simultaneously on a multiprocessor SPARC 20 (in
     particular: On a bi-processor Sparc 20 running  Solaris  2.3
     or  2.4, it is not possible to run two concurrent "mpeg_play
     -loop" on the same bitstream.  One  of  the  mpeg_play  dies
     when it loops.  )

AUTHORS
     Ketan  Patel   -   University   of   California,   Berkeley,
          kpatel@cs.berkeley.edu

     Brian  Smith   -   University   of   California,   Berkeley,
          bsmith@cs.berkeley.edu

     Henry  Chi-To  Ma  -  University  of  California,  Berkeley,
          cma@cs.berkeley.edu

     Kim  Man  Liu  -   University   of   California,   Berkeley,
          kliu@cs.berkeley.edu

     Steve  Smoot   -   University   of   California,   Berkeley,
          smoot@cs.berkeley.edu




Sun Release 4.1    Last change: 21 April 1995                   4






MPEG_PLAY(1)             USER COMMANDS               MPEG_PLAY(1)



     Eugene  Hung   -   University   of   California,   Berkeley,
          eyhung@cs.berkeley.edu





















































Sun Release 4.1    Last change: 21 April 1995                   5



