Please note that this book is in no way a reference documentation
on how DVDs work. Its only purpose is to describe the API
available for programmers in VideoLAN Client. It is assumed that
you have basic knowledge of what MPEG is. The following paragraph
is just here as a reminder :
AC3 :
Digital Audio Compression Standard
Specification for coding audio data, used in DVD.
The documentation is
freely available .
B (bi-directional) picture
Picture decoded from its own data,
and from the data of the previous and next (that
means in the future) reference
pictures (I or P pictures). It is the most compressed picture
format, but it is less fault-tolerant.
DVD :
Digital Versatile Disc
Disc hardware format, using the UDF file system,
an extension of the ISO 9660 file system format and a video format
which is an extension of the MPEG-2 specification.
It basically uses MPEG-2 PS files, with subtitles and sound
tracks encoded as private data and fed into non-MPEG decoders,
along with .ifo files describing the contents of the DVD. DVD
specifications are very hard to get, and it takes some
time to reverse-engineer it. Sometimes DVD are zoned and
scrambled, so we use a brute-force algorithm to find the key.
ES : Elementary Stream
Continuous stream of data fed into a decoder,
without any multiplexing layer. ES streams can be MPEG video
MPEG audio, AC3 audio, LPCM audio, SPU subpictures...
Field picture
Picture split in two fields, even and odd, like
television does. DVDs coming from TV shows typically use field
pictures.
Frame picture
Picture without even/odd discontinuities, unlike
field pictures. DVDs coming from movies typically use frame
pictures.
I (intra) picture
Picture independantly coded. It can be
decoded without any other reference frame. It is regularly
sent (like twice a second) for resynchronization purposes.
IDCT : Inverse Discrete
Cosinus Transform
IDCT is a classical mathematical algorithm
to convert from a space domain to a frequency domain. In a
nutshell, it codes differences instead of coding all absolute
pixels. MPEG uses an 2-D IDCT in the video decoder, and a 1-D
IDCT in the audio decoder.
LPCM :
Linear Pulse Code Modulation
LPCM is a non-compressed audio encoding,
available in DVDs.
MPEG :
Motion Picture Expert Group
Specification describing a standard syntax of files
and streams for carrying motion pictures and sound. MPEG-1 is
ISO/IEC 11172 (three books), MPEG-2 is ISO/IEC 13818. MPEG-4
version 1 is out, but this player doesn't support it. It is
relatively easy to get an MPEG specification from ISO or
equivalent, drafts are even freely available on the Internet.
P (predictive) picture
Picture decoded from its own data
and data from a reference picture, which is the
last I or P picture received.
PES :
Packetized Elementary Stream
A chunk of elementary stream. It often corresponds
to a logical boundary of the stream (for instance a picture
change), but it is not mandatory. PES carry the synchronization
information.
PTS :
Presentation Time Stamp
Time at which the content of a PES packet is supposed
to be played. It is used for A/V synchronization.
PS : Program Stream
File format obtained by concatenating PES packets
and inserting Pack headers and System headers (for timing
information). It is the only format described in MPEG-1, and
the most used format in MPEG-2.
RGB : Red Green Blue
Picture format where every pixel is calculated in a
vector space whose coordinates are red, green, and blue. This
is natively used by monitors and TV sets.
SPU : Sub Picture Unit
Picture format allowing to do overlays, such
as subtitles or DVD menus.
SCR :
System Clock Reference
Time at which the first byte of a particular pack
is supposed to be fed to the decoder. VLC uses it to read the
stream at the right pace.
SDL :
Simple DirectMedia Layer
SDL
is a cross-platform multimedia library
designed to provide fast access to the video framebuffer and
the audio device. Since version 1.1, it features YUV overlay
support, which reduces decoding times by a third.
TS : Transport Stream
Stream format constituted of fixed size packets
(188 bytes), defined by ISO/IEC 13818-1. PES packets are
split among several TS packets.
A TS stream can contain several programs. It is used in
streaming applications, in particular for satellite or cable
broadcasting.
YUV :
Luminance/Chrominance
Picture format with 1 coordinate of luminance (black
and white) and 2 coordinates of chrominance (red and blue).
This is natively used by PAL video system, for backward
compatibility with older black and white TV sets. Your eyes
distinguish luminance variations much better than chrominance
variations, so you can compress them more. It is therefore
well suited for image compression, and is used by the MPEG
specification. The RGB picture can be obtained from the YUV one
via a costly matrix multiply operation, which can be done in
hardware by most modern video cards ("YUV acceleration").