Return To Home Page

Is it easy to understand DVD format?

 

There are more than a dozen decent WEB sites putting pieces of DVD information together up to date. It is no doubt that you may extract more than what you need from the expertise. However it seems we still lack of a simple one describing a fundamental structure of DVD video unit. The following section, we have purposely composed in a form of tables, is to illustrate a basic structure of a DVD stream for the readers, especially for who are doing DVD authoring project.

 

The very basic individual segment written on a disc is called SECTOR. With CD-ROM similarity in mind, each DVD sector contains a total of 2064 bytes of raw data in the sector boundary, see table 1. The usable 2048-byte data size is fixed and located between sector header and Error Detection Code (EDC). This cooked data area actually holds all kinds of DVD stream contents.

 

Physical Sector

HEADER

DATA

EDC

12 Bytes

2048 Bytes

4 Bytes

Table 1

 

 The data area is also known as Logical Sector or Block. Logical Sectors are recorded or written continuously on the disc. The loaded data must be packed if it is a segment of Video Object stream, see table 2.

Logical Sector (Block)

PACK HEADER

PACK DATA (PACKETIZED)

14 Bytes

2034 Bytes

Table 2

 

We have also learnt that DVD Video Object consists of four different categories of data type: Video, Audio, Sub-picture and Navigation. To simplify the layout, you may select and pack video stream data into designated Packs called Video Pack. With the same approach, audio stream is packed in Audio Pack, Sub-picture stream is packed in Sub-picture Packs and Navigation stream is packed in Navigation Packs respectively, see table 3.

  

Video Pack

PACK HEADER

Packetized Video stream

Audio Pack

PACK HEADER

Packetized Audio stream

Sub-picture Pack

PACK HEADER

Packetized Sub-picture stream

Navigation Pack

PACK HEADER

Packetized Navigation stream

Table 3

 

You may notice that the data recorded within pack has to be packetized. It is a standard process in the MPEG world to slice the elementary stream to be Packetized Elementary Stream (PES), but it raises a bit of complexity level in the DVD format by using this process. The following tables illustrate the sizes for each type of packets.

 

Video Packet

PACKET HEADER

PACKET DATA

Up to 29 Bytes

2025 Bytes or less

Table 4

Audio Packet

PACKET HEADER

PACKET DATA

Up to 24 Bytes

2020 Bytes or less

Table 5

Sub-picture Packet

PACKET HEADER

PACKET DATA

Up to 24 Bytes

2024 Bytes or less

Table 6

PCI Packet

PACKET HEADER

PACKET DATA

7 Bytes

Up to 979 Bytes

Table 7

DSI Packet

PACKET HEADER

PACKET DATA

7 Bytes

Up to 1017 Bytes

Table 8

 

The most delicate packet data among five different data types is video. The video data we refer to in the DVD world is MPEG video stream. Before we try to understand the video packet structure, we had better examine the MPEG video specification. In both MPEG 1 and MPEG 2, the video streams consist of a large number of GOP's (Group of pictures). Each GOP holds less than or equal to 16 frames (pictures). According to the encoding process, there is only one I frame in the group. The rest are P frames and B frames. For typical example, a GOP can be constructed like the following sequence:

I B B P B B P B B P B B P B B

 

In the NTSC world we can assure this GOP take 0.5 sec based upon 30 fps standard.

The identification for a GOP and its frames is predefined and embedded within video stream during encoding. Therefore the decoder knows to seek and to decode the stream accordingly. The following table lists the start codes for a GOP in MPEG stream.

 

MPEG Video Bitstream

Sequence Sequence_Header_Code = 0x000001b3

Group Of Pictures

Group_Start_Code = 0x000001b8

I Frame

Picture_Start_Code = 0x00000100

Picture_Code_Type = 001 (3 bits)

P Frames

Picture_Start_Code = 0x00000100

Picture_Code_Type = 010 (3 bits)

B Frames

Picture_Start_Code = 0x00000100

Picture_Code_Type = 011 (3 bits)

Sequence End Sequence_End_Code = 0x000001be

Table 9

 

Unlike MPEG audio stream, the audio pack in DVD can hold more than one type of audio streams. Today, DVD can accept the following coded audio stream types:

  

Linear PCM
Dolby AC-3
MPEG Audio
DTS Audio (Digital Theater)
SDDS Audio (Sony Proprietary)

Table 10

 

The Sub-picture is much well specified in DVD standard. The sub-picture stream stores bitmapped data for sub-titles and navigation menus. The control commands and display duration is basically programmable. Nevertheless, users do not need any special programming skill for defining parameters because the authoring tool itself has to provide a friendly interface.

 

Lastly, both PCI (Presentation Control Information) packet and DSI ( Data Search Information) packet store navigation data for the video object unit in which they are included.

 

Now we have a better picture of what a video object unit may contain, see table 11.

 VOB Unit

Pack Types

Packet Types

Stream

Navigation PCI + DSI PCI stream and DSI stream
Video Video Only 1 video stream
Audio Audio Up to 8 audio streams
Sub-picture Sub-picture Up to 32 sub-picture streams

Table 11

 

The MPEG system stream also has a 24-byte System Header. The System header has to be located in the navigation pack. The same header data should be used in each VOB unit for the entire VOBS (Video Object Set). Now we have the revised navigation pack structure shown below,

 

The Navigation Pack

Pack Header

System Header

PCI Packet

DSI Packet

14 Bytes

24 Bytes

986 Bytes

1024 Bytes

Table 12

  

There is no fixed number of packs within a VOBU, but each VOBU must have at least one Navigation Pack. If there is no video pack or audio pack but sub-picture pack to follow, it must be a static menu. Vice versa a dynamic menu is a menu overlaid on the video. All packs within VOBU have been sequenced. The order of sequence is also the decoding order. Any of missing pack or incorrect pack order can result in corruption. The table 13 shows a chain of pack within VOBU.

 

Video Object Unit

Pack Sequence

Pack Type

Data In The Packet

First Pack Navigation System + PCI + DSI
First Video Pack Video Sequence Header + GOP Header + I Frame
Following Packs For I Frame Video I Frame
B Frame Packs Video B Frame
B Frame Packs Video B Frame
P Frame Packs Video P Frame
B Frame Packs Video B Frame
B Frame Packs Video B Frame

...

...

...
Audio Packs Audio Audio (Up to 8 audio streams)

...

...

...
P Frame Packs Video P Frame
B Frame Packs Video B Frame
B Frame Packs Video B Frame

...

...

...
Sub-picture Packs Sub-picture Sub-picture (Up to 32 sub-picture streams)

...

...

...
B Frame Packs Video B Frame
B Frame Packs Video Last B Frame + Sequence_End_Code

Table 13

The upper layer of Video Object Unit is defined as VOB (Video Object). VOB basically is a collection of VOBU's,

 

Video Object

VOB Unit (0)

VOB Unit (1)

..

VOB Unit (i)

..

VOB Unit (n)

Table 14

  

The upper layer of Video Object is defined as VOBS (Video Object Set). VOBS basically is a collection of VOB's,

 Video Object Set

VOB (0)

VOB (1)

..

VOB (i)

..

VOB (n)

Table 15

Readers may find further DVD information from the following sites,

 

http://janus.unik.no/~robert/hifi/dvd/

http://www.mpeg.org/~tristan/MPEG/dvd.html

http://www.ividea.com

http://www.dvdvideogroup.com

http://www.microsoft.com/hwdev/devdes/dvdwp.HTM#_Toc376909169

 

Return To Home Page