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.

 

 

 

 

Features

BD-J supports all the default features from HDMV but has additional exclusive ones:

  • The 2010 release of Alien contains an Java interactive feature 
    called MU-TH-UR Mode that runs when the movie is playing.
    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 256MB. 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. 

 

 

Java Runtime and Virtual Machine

BD-J System Overview
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 (U.S. 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

Overview of Java application tables
A BD-J program is called 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. 

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.

xlet Loading and Activation Control

 

 

 


Memory

    Main Article: Memory & Limitations

BD-J's graphics, data, and sounds are loaded into their separate memory, 45.5 MB for graphics, 4 MB for app cache, and 5 MB for interactive sounds. The bigger memory size is necessary for advanced multimedia applications. Optionally, Profile 2.0 (BD-Live and Blu-ray3D) 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.

Developers must be conservative and creative when handling BD-J's limited memory buffers.

 


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 uses JavaScript in their BD titles using Mozilla's Rhino, an open-source implementation of JavaScript written entirely in Java.

 

BD-J Graphics

    Main Article: 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. Java Graphics supports, PNG, JPEG, and GIF and has a memory buffer of 45.5 MB.

BD-J supports victor-based text font rendering using the OpenType format (called BD-J Text). For subtitles, BD-J can use the Presentation Graphics Stream. Both OpenType and Presentation Graphics share the same buffer of 4MB, and both formats cannot be used at the same time.

 

BD-J Background

Example of a BD-J Background
Exclusive to BD-J, a background can be applied behind the Primary Video, it can display a single image or a single color. It shares the same 45.5MB graphics buffer.

 

 

 

 

 

Networking

    Main Article: Networking

BD-J is capable of accessing a local or online network connection using secure HTTPS and TCP/IP protocols when connecting to servers and URLs.

 

Local Storage

    Main Article: Local Storage

Unlike HDMV's limited Persistent Storage, BD-J has access of Local Storage of 256MB (or more). This storage is used for BD-J apps to read/write/install content.

 

Video Games

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

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


 

 

 

 

 

 

 

Sources


Author(s) : Γ† Firestone

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

Leave a Reply

Popular Pages