BD-J
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
- Programming HD-DVD and Blu-ray Disc: The HD Cookbook
- Doom9 Forums
- Scenarist BD-J
- Blu-play.com
Author(s) : Æ Firestone
Popular Pages
-
Clip Information File Type of format Data format First released 2006 Developer Blu-ray Disc Association Filename...
-
INI Type of format Configuration file First released 1985? Developer Microsoft? Filename extension .ini Op...
-
HDMV (High Definition Movie) mode is an interactive framework with the well-known features of DVD, but it's more advanced than DVD m...