BDMV Application Format
BD-ROMs use the BDMV application format as a standard for commercial movies, music albums and video games.
There are two 32-bit interactive modes for BDMV Applications, HDMV mode, and BD-J mode. Both modes are powered by middleware; middleware is software that lies between an operating system and the applications running on it (Think of an emulator or web browser). As weird as this may sound, most BD-ROM titles, whether they are movies, music albums, or games, are all considered programmable software.
Blu-ray logo
|
|||||
Type |
|
||||
---|---|---|---|---|---|
Play modes | |||||
Developers |
| ||||
Video Encoding | |||||
Audio Encoding | |||||
Interactive Sound |
|
||||
Graphics | |||||
Programming Languages | |||||
Applications |
|
||||
Minimum CPU speed |
|
||||
Display |
|
||||
Local Storage |
|
Memory |
|
||
Media |
|
||||
Predecessor |
Successor |
|
Released |
|
Unlike BD's multimedia predecessors, the CD-i and CD-ROM, BDs are not
dependent on a specific hardware architecture or operating system,
making it platform-independent and future-proof.
Both modes are more advanced than DVD's basic primitive menus as BD interactivity supports:
- Picture-in-picture – The secondary video can be overlaid on the Primary video.
- Multi-Angle - View different angles and perspectives of a single video stream. Only 9 angles are allowed in a single stream using the angle buttons.
- Multi-Audio - Switch different audio streams without interrupting the video. Usually used for audio commentaries and isolated scores. Only 32 audio streams are allowed.
- Audio Mixing - Secondary audio can be mixed with Primary audio.
- Multi-page Menus - Browse through different multi-page menus.
- Pop-up Menus – Menus can be shown or removed from display based on user request without interrupting AV playback.
- Animated Buttons and Menu transition effects
- Button sounds – Interactive sounds can be presented when Menu Buttons are selected or activated. They can be used for sound effects in a game. They are usually stored in the "sound.bdmv" file.
- Browsable Slideshow - An interactive slideshow may be presented and changed without interruption to background music. Still-images are in MPEG-2 I-frame format for faster performance and quicker loading because it's in a single stream.
- Resume Play - This feature allows you to resume playback of a disc from the point where you last stopped. It is saved in the "temporary" persistent storage (68 KB). The stopping point is deleted when the Stop button is pressed more than once on the device or remote. BD-J discs do not support this feature by default - it's up to the studio to programably add that feature on a BD-J disc.
- Mouse Support - Navigating interactive content is supported by a mouse or mouse-like device. BD-J discs do not support this feature by default - it's up to the studio to programably add that feature on a BD-J disc.
Note: Ultra HD Blu-ray does not support Text subtitles, Secondary Video (PiP), and Secondary Audio. Graphics can be upscaled to 2160p and Browsable Slideshow is replaced with HEVC images.
Here's an example of a pop-up menu. It can be called at anytime without interruption to movie playback. |
Video & Audio Layers
An BDMV Application is divided into eight independent layers for video, audio, and graphics. All eight layers play together at the same time. There are five image layers with each image layer can go up to full HD resolution (1920×1080). It is also important to be conservative with memory usage for each layer.
Layers of a standard BD application |
- BD-J Background - Memory shared with BD-J Graphics
- Primary Video* - 5 MB (40 Mbps)
- Secondary Video† - 5 MB (40 Mbps)
- Presentation Graphics/Text Stream‡ - 4 MB
- Interactive Graphics Stream / BD-J Graphics** - 16 MB (HDMV) / 45.5 MB (BD-J)
There are also three audio layers.
- Primary Audio* - 3.456 MB (27.648 Mbps)
- Secondary Audio † - 128 KB (256 Kbps)
- Interactive Audio - 2 MB (each clip or group of sounds in a single sound.bdmv file)
* The maximum memory for simultaneous playback of Primary Video and Audio is 6 MB (48 Mbps).
** IGS is replaced by Java Graphics in BD-J mode.
† Secondary Video and Audio are not supported on Ultra HD Blu-ray.
‡ Text subtitles are not supported on Ultra HD Blu-ray.
File Directory
Commercial BD-ROMs uses the Universal Disk Format (UDF) 2.50 developed by the Optical Storage Technology Association (OSTA), an open, vendor-neutral file system for data storage for optical discs, and it's a compatible-friendly format for both Personal Computers and consumer electronics environments. A BDMV application has a standard hierarchical file structure of mandatory and optional file directories and sub-directories:
-
BDMV directory: contains the PLAYLIST, CLIPINF, STREAM, AUXDATA, and BACKUP directories.
-
PLAYLIST directory: contains the Database files for Movie PlayLists.
- xxxxx.mpls files: store information corresponding to Movie PlayLists. One file is created for each Movie PlayList. The filenames of these files are in the form "xxxxx.mpls", where "xxxxx" is a 5-digit number corresponding to the Movie PlayList.
-
CLIPINF directory: contains the Database files for Clips.
- zzzzz.clpi files: store Clip information associated with a Clip AV stream file. The filenames of these files are in the form "zzzzz.clpi", where "zzzzz" is a 5-digit number corresponding to the Clip.
-
STREAM directory: contains AV stream files.
- zzzzz.m2ts file: contains a BDAV MPEG-2 transport stream. The names of these files are in the form "zzzzz.m2ts", where "zzzzz" is a 5-digit number corresponding to the Clip. The same 5-digit number "zzzzz" is used for an AV stream file and its associated Clip information file.
-
SSIF directory: If used, 3D Stereoscopic Interleaved files shall be placed under this directory.
- zzzzz.ssif file: is a Stereoscopic Interleaved file that is composed of two BDAV MPEG-2 transport streams. Both streams include a MPEG-4 MVC view video stream for the left and right eye, respectively. This file is used only when a 3D video is played back. The 5-digit number "zzzzz" is the same as the number used for the AV stream file "zzzzz.m2ts" which includes the MPEG-4 MVC Base view video stream.
-
AUXDATA directory: contains Sound data, Image, Font, and asset files.
- sound.bdmv file: stores data relating to one or more interactive sounds. This file may or may not exist under the AUXDATA directory. If it exists, there shall be only one sound.bdmv file in this directory.
- aaaaa.otf file: stores the font information associated with Text subtitle applications. The names of these files are in the form "aaaaa.otf", where "aaaaa" is a 5-digit number corresponding to the Font.
- BACKUP directory: contains copies of the "index.bdmv" file, the "MovieObject.bdmv" file, all the files in the PLAYLIST directory, and all files in the CLIPINF directory.
- index.bdmv file: stores information describing the contents of the BDMV directory. There is only one index.bdmv file under the BDMV directory.
- MovieObject.bdmv file: stores information for one or more Movie Objects. There is only one MovieObject.bdmv under the BDMV directory.
- BD-J Object directory: contains BD-J objects.
- xxxxx.bdjo file: stores information for one or more BD-J objects.
-
JAR directory: contains Java Archive files (JAR) for BD-J mode.
- xxxxx.jar file: It's a package file format typically used to aggregate many Java class files and associated metadata and resources (text, images, etc.) into one file for Java programs. There can be many JAR files in the JAR directory. The max file size is 4 MB, but assets can be stored outside the file.
- META directory: Subdirectory containing disc metadata and information.
- DL directory contains the DL XML metadata file
- dlmt_000.xml file: which contains the metadata for the whole disc and would include the title of the movie (or regarding content as a whole), and the JPEG/PNG image thumbnail. Optionally, you can have multiple titles in a single disc with different thumbnails.
- xxxxx.jpeg: large 640x320 title thumbnail icon.
- xxxxx.jpeg: small 416x240 title thumbnail icon.
- ES directory contains the ES XML metadata file
- esmt_000_xxxxx.xml: which includes the information for Title Scene Search, this is where the names of titles would be located along with keywords for searching them. Also, individual thumbnails for each title would be stored here.
-
TN directory contains the TN XML metadata file
-
tnmt_000_xxxxx.xml: This is for Track/Chapter display where the names/text for individual tracks and chapters would be located. Usually used in music albums.
-
tnmt_000_xxxxx.xml: This is for Track/Chapter display where the names/text for individual tracks and chapters would be located. Usually used in music albums.
-
PLAYLIST directory: contains the Database files for Movie PlayLists.
-
CERTIFICATE: Directory containing BD-J security certificate information.
- app.discroot.crt: contains the BD-J root certificate.
- id.bdmv: contains the disc's ID information.
- BACKUP directory: contains copies of the "app.discroot.crt" file, and the "id.bdmv" file.
-
AACS: Directory containing the Blu-ray's DRM AACS decryption files.
- MKB_RW.inf file: Read/Write Media Key Block.
- Content001.cer
- Content002.cer
- ContentHash001.tbl
- ContentHash002.tbl
- ContentRevocation.lst
- CPSUnit0000x.cci: CPS Unit Usage files.
- mcmf.xml
- MKB_RO.inf
- MKB_RW.inf
- SKBx.inf
- Unit_Key_RO.inf: AACS CPS Unit Key.
- DUPLICATE: Directory of duplicated AACS files.
- BDSVM: Directory containing BD+ content code files (optional for studios, not part of the BD standard).
- xxxxx.svm: BD+ content code file.
- BACKUP: Directory of backup BD+ content code files.
Mandatory Data Files
In a BDMV application, there are four file types for managing M2TS streams in a linked hierarchy order: Index table, Objects, PlayList, and Clip. It is assumed that these files are preloaded into the player's memory before primary playback.
Clip Information files contain descriptive details and purpose for each M2TS AV stream, like type, sequence, program, and timing that communicates to each stream. The files use the same 5-digit number as the M2TS AV stream files. A combination of each M2TS AV stream and its associated Clip Information File is called a "Clip." Clip Information is located in the xxxx.clpi file under the CLIPINF directory and is written in binary. Only 4,000 Clip files are allowed.
Movie PlayList is a collection of playing intervals in Clips. The Clips in a Playlist are called a Playitem, each consisting of start and end pointers that determine specific playback times within any number of clips. A Movie PlayList is located in the xxxx.mpls file under the PLAYLIST directory and is written in binary. Only 2,000 Playlist files are allowed.
There are two types of programmable Objects, Movie Objects (HDMV mode) and BD-J Objects (BD-J mode). A Movie Object is an executable program with a set of navigation commands that start playlist playback upon user instruction or execute another Movie Object. A BD-J Object is a table of Java applications or command programs called Xlets, that trigger Playlist playback, other Movie or BD-J Objects, and Java programs. Both of these types of Objects can be mixed together in the same disc. Movie Objects are stored in the MovieObject.bdmv file and BD-J Objects are stored in the xxxx.bdjo file under the BDJO directory. Only 1,001 Objects are allowed.
The Index Table is a top-level table that defines a Blu-ray disc's Titles and Top Menu. This function depicts the Titles of various media - movies, video programs, music albums, and games. It also determines their entry points, including First Playback and Top Menu, which are linked to the connected Movie or BD-J object. The Player refers to this table whenever a Title or Menu is executed. For example, whenever the Title Search or Menu operation is called, the Player refers to this table to determine the corresponding Movie Object/BD-J Object that is to be executed. When the disc is inserted, it will automatically play the "First Playback" defined in the Index table, either a Movie Object or a BD-J object. The Index table is located in the index.bdmv file and is written in binary. There's only one Index Table file and only 999 Titles are allowed.
Interactive Modes
A developer must choose one of the following interactive modes for main playback:
HDMV mode is for basic programming and menus. Recommended for beginners for ease of use and without knowledge of Java.
To learn more about this mode see, HDMV
BD-J mode is for advanced programming for complex applications such as video games written in Java. This mode is for chad programmers who have experience with Java programming.
To learn more about this mode, BD-J
Footnotes
- [3] The maximum memory for simultaneous playback of Primary Video and Audio is 6 MB (48 Mbps).
- [4] Scenarist BD Development manual, Doom9 forums, and original research.
References and sources
- Scenarist BD Development manual, Doom9 forums, and original research.
- Hughnews.ca - The Authoritative Blu-ray Disc
Standards and specs
- Blu-ray Official White Paper Tech Specs and 3D specs (PDF) Version 2.5 - 2011 - Details of the BD platform standards (Up-to-date for standard BD development)
- Blu-ray Official White Paper Tech Specs and 3D specs (PDF) Version 2.4 - 2010 - Details of the BD platform standards
- BD-J Baseline Application and Logical Model Definition for BD-ROM (PDF) 2005 - Details of BDJ Application Software Standards on Figure 7.0
- White Paper Blu-ray Disc™ Format 1.C Physical Format Specifications for BD-ROM - 8th Edition December 2012
- White Paper Blu-ray Disc™ Format 1.C Physical Format Specifications for BD-ROM - 6th Edition October, 2010
- Blu-ray Official White Paper Tech Specs for Ultra HD BD (PDF) Version 3.2 - 2018
- Blu-ray Official White Paper Tech Specs (PDF) Draft Version 0.2 - 2005
- File System Specifications for BD-ROM (PDF) - 2004
- Other Official General Tech Info
- White paper Blu-ray Disc Format 3. File System Specifications for BD-RE, R, ROM - 2004
- White Paper Blu-ray Disc™ Format (PDF) - General 3rd Edition December, 2012
- White Paper Blu-ray Disc™ Format 1. B Physical Format Specifications for BD-R - 5th Edition October, 2010
- White Paper Blu-ray Disc™ Format 1.C Physical Format Specifications for BD-ROM - 6th Edition October, 2010
- White Paper Blu-ray Disc™ Format 1.C Physical Format Specifications for BD-ROM - 9th Edition August 2015
- White paper Blu-ray Disc Format General - August 2004
International Standards implemented on Blu-ray
- Advanced Video Coding (AVC) aka H.264 or MPEG-4 Part 10 | ISO - ITU - IEC
- MPEG-2 Part 2 aka H.262 | ISO- ITU
- Dolby Digital aka Dolby AC-3 | ATSC (N.A.) - ETSI (E.U.)
- Waveform Audio File Format (WAVE or WAV) | ITU
- M2TS is based on MPEG-2 Transport Stream | ITU
- BD-J is based on Global Executable MHP (GEM) | ITU
- Multichannel Surround Audio Standard | ITU
- XML aka Extensible Markup Language | W3C
- PNG aka Portable Network Graphics | ISO - IEC
- JPEG Image Format | ISO - ITU
- OpenType Font Format | ISO
- YCbCr Rec. 709 aka ITU-R BT.709, a standard for SDR HDTVs | ITU
- xvYCC (expands color of YCbCr Rec.709) | IEC
- Unicode (UTF-8) | ISO - IEC - Unicode
Other links
Author(s) : Æ Firestone
Popular Pages
-
Type Programming /scripting language Paradigm Multi-paradigm: event-driven, functional, imperative, procedural, object-orie...
-
HDMV (High Definition Movie) mode is an interactive framework with the well-known features of DVD, but it's more advanced than DVD m...
-
MPEG-2 Transport Stream Type of format Container format for video, audio, data First released August 2004 Latest relea...