HDMV

 
HDMV (High Definition Movie) mode is one of the interactive modes used in BD applications. It is similar to the interactivity used on DVD, but has more advanced features. 
Indie and Boutique labels (and some major studios like Warner Bros.) often prefer using HDMV for their Blu-ray development projects due to its simplicity, quick loading, and ease of running on computers without requiring a runtime environment. For those interested in Blu-ray development, HDMV is a "beginner-friendly" framework to consider due to its standardization and straightforward programming.




Features

 
The HDMV mode is an vast improvement over basic DVD interactivity:
  • The 2006 release of Memento uses a fancy HDMV menu with 
    animated graphics and sound effects that fit the movie's theme.

    Picture-in-picture – Secondary video can be overlaid on the Primary video.
  • Audio Mixing - Secondary audio can be mixed with the Primary audio.
  • Multi-page Menus - Menu presentations can be changed with no interruption to AV playback.
  • Pop-up Menus – Menus can be shown or removed from display based on User request with no interruption to AV playback.
  • Browsable Slideshow: Navigate still-images without interrupting background audio playback
  • Full color High Definition animated Buttons and animated Menu transition effects.
  • Interactive Audio: Provides sounds effects for menu buttons when selected or activated 
 
 

 
 
 

Virtual Machine

 
The execution process of HDMV mode 
The HDMV Virtual Machine is a lightweight, software-based execution environment in Blu-ray’s HDMV mode, designed for static menu navigation and playback control. It processes navigation commands from MovieObject.bdmv files using 4,096 General Purpose Registers (GPRs) for temporary data and 128 Player Status Registers (PSRs) for tracking playback state. Operating with a minimal ~100 MHz clock, it executes a fixed instruction set (e.g., Jump, Set) for simple, pre-authored menus, lacking the dynamic capabilities of BD-J’s Java Virtual Machine. Its virtual registers ensure compatibility across Blu-ray players but limit developers to linear navigation logic. The HDMV module is the main body in performing HDMV mode.
 
The Illustration on the right shows the execution process of HDMV Mode: 
    ⭗1: Reads PlayList information via the virtual file system
    ⭗2: Decodes PlayItem information that constitutes the PlayList information
    ⭗3: Reads Clip information via the virtual file system
    ⭗4: Decodes Clip information
 
    ⛛0: Executes a JumpTitle command. 
    ⛛1: The module manager referring to Index.bdmv file; and sends a notification to activate a Movie Object that constitutes the branch destination Title (⛛2).
    ⛛2: Receives “activate (mobj_id)" from the module manager. 
    ⛛3: Decodes the navigation commands written in the Movie Object file.
    ⛛4: Issues a function call to the play back control engine.
 
    ★ 1 & ★ 2:  Reading the TS packets that constitute the AV Clips 
    ★ 3: Transferring the TS packets from the virtual file system to the presentation engine
    ★ 4: Outputs the TS packets to the decoder
    ★ 5: Outputs decoding results from the decoder to the planes (layers) 
 
 
 
 
 

Graphics

         
        Main Article: Interactive Graphics
 
HDMV supports two types of raster bitmap graphics streams for menus and interactive content, the Presentation Graphics stream (available in HDMV and BD-J) is for subtitles and decorative/animated graphics, and the Interactive Graphics stream (available only in HDMV) is for interactive menu graphics. 
Example of a menu that uses Interactive Graphics (on the right)
and AVC video for the background.
 
 
Both streams are limited to 8-bit 256 colors and alpha transparency, and sprites cannot overlap. They support simple animations such as scrolls, wipes, cuts, fades (transparency changes), and color changes with frame rates up to 30Hz. Supported resolutions are 1920x1080 / 1280x720 / 720x480 / 720x576.
 
Interactive Graphics uses a 16 MB memory buffer for graphics and Presentation Grapghics use a 4 MB memory buffer. They're stored into the preloading memory buffer before loading the main video, audio, and subtitle streams into the primary memory buffer. HDMV provides multi-stream handling called Out-of-Mux. Out-of-Mux is when the primary stream with individual streams is stored separately but decoded simultaneously in a 27 Mhz clock.



Interactivity Framework

 
Popup Menu 
Example of a Popup menu with multiple pages
The Popup Menu appears whenever a user pushes the appropriate button on the remote (usually the "Popup" button, this does not interrupt audio/video playback. The user can navigate through various menu pages such as audio/subtitle selection, browse different scenes/chapters, or other content. Once the user is done, the user pushes the same button again on the remote or through a timer, the Popup menu disappears.
 
 
Always-On Menus
HDMV's Interactive Graphics support an “Always-On” Menu Interface; the Interactive Graphics content that cannot be removed from the screen by user request is called “Always-On”. This is one of the methods provided by HDMV to present interactivity to the user and is similar to that provided by DVD-Video. For example, a Menu implemented with the Always-On interface may be presented to the user when the disc is inserted into the player (e.g. Main Menu).
 
Menus that support an “Always-On” Menu Interface is usually pre-loaded or multiplexed with the Primary video. If the Interactive Graphics stream is multiplexed with video, PTS/DTS timestamps can frame accurately determine when the Always-On Menu shall appear and disappear (at a frequency of 90KHz).
 
Multipage Menus 
Menus can be composed to multiple pages. The user can browse these pages without interrupting audio/video playback. Besides displaying static pages, HDMV's Interactive Graphics also provides the ability for effects and animations. Each page can have a in- and out-effect associated with it that plays prior before loading the page or right before transitioning the page into the active state. The effects supported are scrolls, wipes, cuts, fades, and color changes.

Button enabling and disabling 
The Interactive Graphics framework supports dynamic button control, allowing content creators to instantly show or hide specific buttons on a page at any time. For instance, a menu can display initial option buttons, and upon selecting one, new related buttons can smoothly appear without any flicker or disruption to the screen. When a button is enabled, it becomes visible and selectable through navigation; when disabled, it is removed from the display. The author can choose to either keep previously displayed buttons active and accessible or disable them entirely for a cleaner interface. This provides a fluid and seamless user experience.
 
A Browsable Slideshow is in an interactive framework for the user to navigate still-images of galleries or text information. HDMV enables simultaneous decoding of still-picture data and audio data. Since the decoding process of each is independent, the decoder enables the user to freely navigate (skip next or skip back) the slideshow without interrupting the audio presentation.
 
Unlike DVD-Video, HDMV provides interactive sounds effects for menu buttons when selected or activated. Both the Select and Activate actions may be associated with short sound effects which are mixed with the Primary audio.
 
 
 

Picture-in-picture

 
Example of Picture-in-Picture
Picture-in-Picture is the presentation of the Secondary video stream overlaid on the Primary video stream. It is supported both in HDMV mode and BD-J mode, but only with 2D video.
 
 The Blu-ray specification defines two types of Picture-in-Picture (PiP):  
  • Synchronous PiP presents a secondary video stream that is tightly synchronized with the main (primary) video stream, such as a director’s commentary that plays in perfect timing with the movie.  
  • Asynchronous PiP offers a secondary video presentation that can be started, stopped, or positioned independently at any point on the primary video’s timeline, typically used for interactive features like pop-up menus or supplementary video content.


Programming

         
        Main Article: HDMV Navigation Commands
 
HDMV mode uses a simple navigation command language for menu navigation logic, the code is stored in the MovieObject file that is read by the HDMV Virtual Machine.

Example Code
Move [ 4075 ] { Title ( 4 ) }
Move [ 2599 ] 4075
Move [ 4075 ] 2599
Move [ 4076 ] 65535 /*0xffff*/
If [ 4075 ] != 4076
GoTo 7
GoTo 9
GoTo 2005 /*0x7d5*/
Move [ 4075 ] 0
Move [ 2552 ] 4075

 


Storage

 
HDMV mode only supports Persistent Storage (68 KB) for storing user-settings such as language and subtitle preferences, and resume play. It is common for BD players to delete old data that is unused. 
 
 


Author(s) : Æ Firestone

on Friday, February 23, 2024 | | A comment?
0 responses to “HDMV”

Leave a Reply

Popular Pages