This is some rather basic information on the organizational structures of
a DVD. I collected this info over time from various sources, the most
valuable being an article in the German c't computer magazine.
Some of the info might be wrong according to the DVD standard (which I do
not know), but they are practically proven in libdvdnav.

						Michael Roitzsch


1. physical structure - MPEG stream level
   - blocks, sectors
       * smallest addressable unit on disc
   - GOP (group of pictures)
       * contains multiple sectors
       * smallest self-contained MPEG unit
   - VOBU (video object unit)
       * contains multiple GOPs + audio and SPU blocks + NAV packet
       * smallest unit in seek and resume operations, always starts with a
         NAV packet used for menu button highlight and command information
         and to detect PTS discontinuities
   - ILVU (interleaved video unit)
       * contains multiple VOBUs (ususally only one)
       * blocking multiple VOBUs of multiple interleaved MPEG streams for
         multiangle features
   - VOB (video object)
       * contains multiple ILVUs (usually quite a lot)
       * each NAV packet has a CellID, so VOBs are divided into physical Cells
   - VOBS (video object set)
       * contains multiple VOBs (addressed by VOB_ID)
       * a VOBS is the physical analogy to the playback domains below,
	 therefore, a VMGM_VOBS, a VTSM_VOBS and a VTS_VOBS exist
2. navigational structure - logical playback control
   - Cell
       * smallest unit which is layed out in sequence physically
       * points to a first and last VOBU (by sector)
       * also points to the corresponding CellID and VOB_ID
       * smallest unit to execute VM commands (cell_post commands)
       * smallest unit accesible by VM commands (apart from LinkRSM)
   - PG (program)
       * points to a Cell
       * usually the mapping between PG and Cells is 1:1, but not always
	 (multiple Cells inside one PG can occur when special VM commands
	 have to be executed in the middle of a PG, for example to switch
	 SPU channels or to provide a branching target for special
	 features that need access to parts of the movie)
       * unit for user skip operations
       * libdvdnav's default unit for seeking
   - PGC (program chain)
       * contains multiple programs and cells
       * logical playback chain
       * VM commands at start and stop (PGC_pre and PGC_post commands)
       * might be used for seeking (see dvdnav_set_PGC_positioning())
3. title structure - high level navigation
   - PTT (part of title track)
       * points to a PG in a PGC
       * usually what you select in a "chapter menu" are parts
       * usually the mapping between PTT and PG is 1:1, but not always
	 (this is similar to the distinction between track and index marks
	 on audio CDs: PTT = track mark, PG = index mark)
   - TT (title track)
       * contains multiple PTTs
       * logical partitioning of the content
         (multiple episodes of a TV series on one DVD: one TT per episode)
       * the display of DVD players show title and part number
   - VTS (video title set)
       * contains multiple TTs with a local numbering (to emphasize the
	 local scope of the number, these are also called VTS_TT)
       * high level partitioning of the content (movie / bonus material)
       * video, audio and spu attributes are common inside a whole VTS
4. domain structure - bringing it all together
   - FP (first play)
       * one special PGC in the VMGM domain run on start of the disc
   - VMGM (video manager menu) - files video_ts.{vob,ifo,bup}
       * the menu which allows you to select between title sets
       * physically corresponds to the VMGM_VOBS (video_ts.vob) and
	 the VMGI (video_ts.ifo)
       * contains sets of PGCs, differentiated by language
       * contains a global table of TTs each pointing to a VTS and a local VTS_TT
       * contains parental management information
       * contains attribute lists for the VTS'es
       * contains text data (?)
       * contains a Cell and a VOBU lists with physical sector info (for seeking)
   - VTSM (video title set menu) - files vts_<vtsN>_0.{vob,ifo,bup}
       * the menu which allows you to select between the TTs of a VTS
       * physically corresponds to the VTSM_VOBS (vts_<vtsN>_0.vob) and
	 the VTSI (vts_<vtsN>_0.ifo)
       * contains sets of PGCs, differentiated by language
       * contains a Cell and a VOBU lists with physical sector info (for seeking)
   - VTS (video title set) - files vts_<vtsN>_[1-x].vob, vts_<vtsN>_0.{ifo,bup}
       * regular playback domain
       * physically corresponds to the VTS_VOBS (vts_<vtsN>_[1-x].vob) and
	 the VTSI (vts_<vtsN>_0.ifo)
       * contains one VTS with its VTS_TTs and PGCs
       * contains a time map (for time-based seeking)
       * contains a Cell and a VOBU lists with physical sector info (for seeking)
   - STOP
       * 'nuff said
