BD-J

 BD-J is an interactive mode intended for advanced interactivity, such as fancy menus and video games. It is more advanced than HDMV mode as it supports object-orientated programming, complex animations, true-color graphics, more memory, and networking capabilities. Major and mini-major studios often use BD-J for their custom programming framework that suits their needs without the restrictions of HDMV.

Java Programming

BD-J is based on Java ME and it's core computing platform is built upon Personal Basis Profile 1.0., which consists of Foundation Profile 1.0 and Connected Device Configuration 1.0. This mode uses a high-level programming language called Java for Java Programs. The Java Virtual Machine is inside the Java Runtime Environment, a software platform that provides an environment (runtime libraries) required to run Java applications. Since BD-J is based on Java ME, programming classes are restricted to Java 1.3, meaning anything above that is incompatible.

 BD-J is also based on the GEM and MHP standards. MHP is an open middleware system standard designed by Europe's DVB for interactive digital television. The MHP enables the reception and execution of interactive, Java-based applications on a TV set. Globally Executable MHP (GEM) is an international standard based on MHP for the non-European TV markets often used on terrestrial, satellite, and cable set-top boxes and TV sets for interactive content. BD-J is based on GEM 1.0.2 which in turn is based on MHP 1.0.3. Other GEM platforms equivalent to BD-J are DVB-J (Europe), OCAP-J (Cable), ACAP-J (N. America), ARIB-J (Japan), and Ginga-J (S. America). Since all these platforms are based on the common GEM-core, it made it possible for developers to write Java applications that will run interoperably on all these systems.

    See: Java Language


Features

Just like HDMV, BD-J supports all the default features but has additional exclusive ones:

  • Bookmarks - Bookmarks allow you to bookmark your favorite scenes in the movie. They are saved in the player's local storage or persistent storage.
  • Virtual File System - The Virtual File System is to access content in the player's local storage.
  • Local Storage - Local storage is used to install content from the disc or download content from a network. Profile 1.1 players have a mandatory storage of 215MB. Additional storage can be added.
  • Network Access - BD-J applications can access a local network or an internet connection (examples: RSS feeds, multiplayer, upload high-scores, downloads, local transfers, etc.)
  • Colored Buttons - All Blu-ray remotes have Red, Green, Blue, and Yellow colored buttons for additional interactivity.
  • Object-Orientated Programming - BD-J provides an open and flexible programming environment for BD-ROMs.
  • BD-J Background - Adds a background behind the Primary Video layer.

 

A BD-J program is written in an Xlet (similar to Applet). A BD-J Object file (BD-J's equivalent to a Movie Object) is a "table" of Java applications (Xlets) that trigger playlist playback, other Movie or BD-J Objects and Java programs. 

 

The 2010 release of Alien contains an Java interactive feature called MU-TH-UR Mode that runs when the movie is playing

Java classes and assets are stored inside a JAR file in the JAR directory. A JAR file size limit is only 4 MB. However, assets can be stored outside the JAR file as the Xlet can control everything in the disc's directory (video, audio, objects, files), GPRs/PSRs, persistent storage, and the virtual file system that reads/writes/installs content in the player's local storage. The Xlet can also control the video playlists, multi-angle, and playback speed.

For the Xlet to have access to everything, a BD-J Blu-ray disc must come with a Security Certificate. Since Java is a robust programming environment (that includes the ability to access the internet), it is vital to protect the player from unintended content and malicious code such as a virus.

 

Memory

BD-J's graphics, data, and sounds are loaded into their separate memory, 45.5 MB for graphics, 32 MB for heap data, and 8 MB for interactive sounds. The bigger memory size is necessary for advanced multimedia applications. Optionally, BD-Live and 3D-enabled players have an additional 15MB of graphics memory (61.5MB total) for networking and 3D content. Ultra HD BD has 131 MB of graphics memory for 4K graphics.

BD-J Xlet's can also use the primary memory buffer to control the Primary Video: 5 MB/40 Mbps, Secondary Video: 5 MB/40 Mbps, Primary Audio: 3.456 MB/ 27.648 Mbps, and Secondary Audio: 32 KB/256 Kbps.

 

A Pinball BD-J video game from Surf's Up; the controls are suitable for the remote, controller, or keyboard.

APIs

 Unlike, HDMV, BD-J uses APIs. An API (Application programming interface) is a set of rules or protocols that let software applications communicate with each other to exchange data, features and functionality. BD-J has two types of APIs, mandatory and optional. Mandatory APIs must be used in order of BD-J programs to work.

    See: List of BD-J APIs

 

Other Computer Languages

While Java is the primary and mandatory programing language for BD-J, other languages can be used alongside Java.

XML, a markup language, can also be used with Java programs (parser) to bound files and assets together.

It is possible to use other programming languages like C using Cybil compiler, but performance will be slower. 

The Criterion Collection have used Javascript in their BD titles using Mozilla's Rhino, an open-source implementation of JavaScript written entirely in Java.

 

BD-J Graphics

HDMV's 8-bit Interactive Graphics is replaced with 32-bit Java Graphics. It supports 24-bit true-color and 8-bit (256 level) alpha (transparent). The graphics are usually for interactive elements, buttons, sprites, fonts, backgrounds, and decorations. Java Graphics is more advanced as it can be scaled, overlapped, and have smooth frame-by-frame animations.

    See: Graphics

 

Video Games 

BD-J mode is capable of making complex 2D or 2.5D video games.

    See: Video Games 

 

 

Sources


Author(s) : Æ Firestone

on Friday, April 19, 2024 | , | A comment?
0 responses to “BD-J”

Leave a Reply

Popular Pages