| mpeg2encode / mpeg2decode |
| ========================= |
| MPEG-2 Encoder / Decoder, Version 1.2, July 19, 1996 |
| |
| Copyright (c) 1996 |
| MPEG Software Simulation Group |
| |
| E-mail: mssg@mpeg.org (author contact) |
| Web: http://www.mpeg.org/MSSG/ |
| FTP: ftp://ftp.mpeg.org/pub/mpeg/mssg/ |
| |
| |
| Contents: |
| 1. Overview |
| 2. Introduction |
| 3. Contacting the MPEG Software Simulation Group |
| 4. Availability |
| 5. Installation |
| 6. Acknowledgements |
| 7. History of the technical report |
| |
| |
| 1. Overview |
| =========== |
| |
| This directory contains our implementation of an ISO/IEC DIS 13818-2 |
| codec. It converts uncompressed video frames into MPEG-1 and MPEG-2 |
| video coded bitstream sequences, and vice versa. |
| |
| The files mpeg2enc.doc and mpeg2dec.doc in the doc/ directory contain |
| further information about the codec. The directory verify/ contains |
| a small set of verification pictures, a small bitstream, and Unix |
| shell script to automatically test the output of the encoder and decoder. |
| |
| A precompiled version of the programs for Win32s (Windows NT/95) will |
| be made available later date, although it is trivial to make a console |
| application from the encoder and decoder with most Win32s compilers |
| (such as Microsoft Visual C++). |
| |
| Subdirectories src/mpeg2enc and src/mpeg2dec contain the source code |
| for the encoder and decoder, subdirectory par/ contains a couple of |
| example encoder parameter files for 25 and 30 frames/sec MPEG-2 and |
| MPEG-1 video. |
| |
| Summary of changes since July 4, 1994 release: |
| |
| This is only the second official release of our MPEG-2 video software. |
| Only minor bug corrections have been added to the encoder. We still do |
| not implement scalable encoding, as this is mostly useful only for |
| academic research. |
| |
| The decoder has been updated to meet the final MPEG specification, |
| although the old decoder will still reconstruct Main Profile and MPEG-1 |
| bitstreams just fine. The current decoder implements the most |
| important case of Spatial scalability, as well as SNR and Data |
| Partitioning. Temporal scalability is not implemented. |
| |
| 2. Introduction |
| =============== |
| |
| MPEG-2 Video is a generic method for compressed representation of video |
| sequences using a common coding syntax defined in the document ISO/IEC |
| 13818 Part 2 by the International Organization for Standardization |
| (ISO) and the International Electrotechnical Commission (IEC), in |
| collaboration with the International Telecommunications Union (ITU) as |
| Recommendation H.262. The MPEG-2 concept is similar to MPEG-1, but |
| includes extensions to cover a wider range of applications. |
| |
| The primary application targeted during the MPEG-2 definition process |
| was the all-digital transmission of interlaced broadcast TV quality |
| video at coded bitrates between 4 and 9 Mbit/sec. However, the MPEG-2 |
| syntax has been found to be efficient for other applications such as |
| those at higher bit rates and sample rates (e.g. HDTV). |
| |
| The most significant enhancement over MPEG-1 is the addition of syntax |
| for efficient coding of interlaced video (e.g. 16x8 block sizes for |
| motion compensation, field dct organization, Dual Prime prediction, et |
| al). Several other more subtle enhancements (e.g. 10-bit DCT DC |
| precision, non-linear macroblock scale quantizer, intra VLC tables, |
| improved IDCT mismatch control) were adopted which have a moderate |
| improvement in coding efficiency.... even for progressive video sequences. |
| |
| Other key features of MPEG-2 are the scalable extensions which permit |
| the division of a continuous video signal into two or more coded bitstreams |
| representing the video at different resolutions (spatial scalability), |
| picture quality (SNR scalability and data partioning), or frame |
| rates (temporal scalability). |
| |
| The MPEG Software Simulation Group is currently developing MPEG |
| software with the purpose of providing aid in understanding the various |
| algorithms which comprise an encoder and decoder, and giving a sample |
| implementation based on advanced encoding models. The MPEG-2 software |
| project is an on-going development. Since the current version of the |
| encoder already employs a reasonable (and the most popular) subset of |
| the MPEG-2 signal coding toolkit (MPEG-1 and MPEG-2 Main Profile), and |
| there appears to be sufficient public interest, we have decided to make |
| a public release of the code. |
| |
| The encoder can also be used for generating good quality constant |
| bitrate MPEG-1 sequences and is (to our knowledge) the first publicly |
| available encoder based on the relatively sophisticated TM5 coding model. |
| |
| |
| 3. Contacting the MPEG Software Simulation Group |
| ================================================ |
| |
| We welcome any project-specific questions, comments, suggestions, bug |
| reports etc. They should be sent to the Internet E-mail address: |
| |
| mssg@mpeg.org |
| |
| which automatically forwards to the software authors. |
| |
| 4. Availability |
| =============== |
| |
| The most recent version of the codec source code is available by anonymous |
| ftp from: |
| |
| ftp://ftp.mpeg.org/pub/mpeg/mssg/ |
| |
| The directory contains the following files: |
| |
| mpeg2vidcodec_v12.tar.gz codec source code and documentation |
| mpeg2v12.zip source code and Win32s executables |
| |
| You need gunzip (GNU zip/unzip) to uncompress the .gz and .zip archives. |
| |
| 5. Installation |
| =============== |
| |
| mpeg2decode and mpeg2encode have been compiled and tested on the following |
| platforms: |
| |
| - SUN SPARCstation 10, SunOS 4.1.3, (gcc compiler) |
| - '386-PC, MSDOS 5.0, djgpp v1.11, gcc v2.5.7 and MS Visual C++ 4.0 |
| |
| The source code should compile without major modifications on other 32 |
| bit systems with ANSI C compliant compilers. Systems with 16 bit 'int' |
| variables or segmented memory models are not supported. |
| |
| Please report any modifications you had to apply in order to install the |
| programs on your system to the address mssg@mpeg.org |
| |
| The encoder and decoder are kept in separate sub-directories, |
| src/mpeg2dec contains the decoder, while src/mpeg2enc contains the |
| encoder sources. The following installation procedure applies to both |
| the encoder and the decoder: |
| |
| |
| Step 1: edit Makefile |
| --------------------- |
| |
| You may have to set CC to your C compiler and CFLAGS to the flags required |
| by the compiler. It is sufficient to set these variables in the top directory |
| Makefile. They are propagated to the individual Makefiles of the encoder |
| and decoder. Any other changes have to be applied to the individual Makefiles, |
| however. |
| |
| You can compile the decoder with or without X11 output. Please follow the |
| instructions in the top-level Makefile to activate X Window System support. |
| |
| Step 2: edit src/mpeg2dec/config.h |
| ---------------------------------- |
| |
| In most cases, no modification should be required. If your C library |
| doesn't accept "rb" / "wb" parameters in fopen() (required to disable |
| LF <-> CR/LF conversion on MSDOS systems), change the #defines RB and WB |
| to "r" and "w". |
| |
| |
| Step 3: make |
| ------------ |
| |
| Type 'make' from the top directory (mpeg2). On a PC with DJGPP installed you |
| have to enter 'make pc' in the individual source directories to produce |
| .exe files. |
| |
| |
| Step 4: verification |
| -------------------- |
| |
| In the mpeg/verify directory, you can verify correct compilation of the |
| codec by typing 'make test'. No differences should be reported. The |
| only comparison which is allowed to fail is between test.m2v and |
| new.m2v, caused by floating point accuracy dependencies in the forward |
| DCT. |
| |
| |
| 6. Acknowledgements |
| =================== |
| Authors of the current release are: |
| |
| Stefan Eckart <stefan@chromatic.com> |
| Chad Fogg <cfogg@chromatic.com> |
| |
| 420to422, 422to444 scaling filters: |
| Cheung Auyeung <auyeung@mot.com> |
| |
| Windows 32s port: |
| Sorin Papuc <sop@compcore.com> |
| |
| Special thanks are due to |
| |
| - J. Steurer, M. Oepen, IRT (Institut fuer Rundfunktechnik, Muenchen): |
| for contributing motion estimation speed improvements (distance |
| computation short-circuit in conjunction with spiral search, cf. |
| dist1(), fullsearch()) |
| |
| - Tristan Savatier <tristan@mpeg.org> for his help on numerous |
| improvements, suggestions, and features. |
| |
| Numerous users: |
| for providing bug reports and Makefiles |
| |
| 7. History of Technical Report Project |
| ====================================== |
| |
| The Technical Report, a document which primarily consists of |
| a C source code program, was initiated by the MPEG committee to: |
| |
| - Provide an example of MPEG video syntax being intelligently employed |
| to generate good quality video bitstreams. |
| - A reference tool for implementors |
| - Aid in understanding the MPEG specification |
| - decoder which employs full arithmetic accuracy. |
| |
| ---- |
| End of Readme file |