BD-J, or Blu-ray Disc Java, is a specification supporting
Java ME
Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices (micro-controllers, sensors, gateways, mobile phones, personal digital assistants, TV set-top ...
(specifically the Personal Basis Profile of the
Connected Device Configuration The Connected Device Configuration (CDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CDC is combined with one or more pr ...
or CDC)
Xlet An Xlet is very similar to a Java applet and is originally introduced in Sun Microsystems's Java TV specification to support applications for Digital TV. Though Xlet looks superficially different from other application models in Java such as applet ...
s for advanced content on
Blu-ray Disc
The Blu-ray Disc (BD), often known simply as Blu-ray, is a Digital media, digital optical disc data storage format. It was invented and developed in 2005 and released on June 20, 2006 worldwide. It is designed to supersede the DVD format, and c ...
and the Packaged Media profile of
Globally Executable MHP
Globally Executable MHP (GEM) is a Digital Video Broadcasting, DVB specification of a Java (programming language), Java based middleware for TV broadcast receivers, IPTV terminals and Blu-ray players. GEM is an ETSI standard (ETSI TS 102 819, ETSI ...
(GEM).
BD-J allows bonus content on Blu-ray Disc titles to be far more sophisticated than bonus content provided by standard
DVD
The DVD (common abbreviation for Digital Video Disc or Digital Versatile Disc) is a digital optical disc data storage format. It was invented and developed in 1995 and first released on November 1, 1996, in Japan. The medium can store any kind ...
, including network access, picture-in-picture and access to expanded
local storage. Collectively, these features (other than internet access) are referred to as "Bonus View", and the addition of internet access is called "BD Live". BD-J was developed by the
Blu-ray Disc Association. All Blu-ray Disc players supporting video content are required by the specification to support BD-J. Starting on October 31, 2007, all ''new'' players are required to have hardware support for the "Bonus View" features, but the players may require future firmware updates to enable the features. "BD Live" support is always optional for a BD player.
Sony's
PlayStation 3
The PlayStation 3 (PS3) is a home video game console developed by Sony Interactive Entertainment, Sony Computer Entertainment. The successor to the PlayStation 2, it is part of the PlayStation brand of consoles. It was first released on Novemb ...
has been the ''de facto'' leader in compliance and support of BD-J. The PlayStation 3 added Blu-ray Profile 1.1 support with a firmware upgrade and was used to showcase BD-Live at CES 2008 in January.
BD-J Xlet capabilities
* The invocation of BD-J
Xlet An Xlet is very similar to a Java applet and is originally introduced in Sun Microsystems's Java TV specification to support applications for Digital TV. Though Xlet looks superficially different from other application models in Java such as applet ...
s are triggered by events occurring around them—for example, by the selection of a film title, or by the insertion of a new disc. Xlets in turn can then call other Xlets into play.
* Security in BD-J is based on the Java platform security model. That is, signed applications in JARs can perform more tasks than non-signed, such as Read/Write access to local storage, network access, selection of other titles on the BD-ROM disc, and control of other running BD-J applications.
* Xlets (as part of the CDC Personal Basis Profile) have no GUI (i.e. no
AWT widgets such as ), so additional classes are called into play for generating animation and GUI. The BD-J uses the
Havi UI Havi may refer to:
*''Hávi'', a variant form of '' Hár'', one of the names of Odin, the chief god in Norse mythology
* HAVi, the Home Audio Video Interoperability standard
{{disambiguation ...
device model and widget set for remote control use, but it is extended to allow for the BD supported resolutions and BD supported A/V controls.
* BD-J has classes that allow the user to synchronize accurately to specific frames in the film.
* There are two types of video synchronizations allowed, one called "loose synchronization", which uses a call back method and is accurate to within several frames of the event, and the other being "tight synchronization", which uses the package . Tight synchronization allows applications to synchronize accurately to the exact frame using timecodes from the package of JMF (
Java Media Framework
The Java Media Framework (JMF) is a Java library that enables audio, video and other time-based media to be added to Java applications and applets. This optional package, which can capture, play, stream, and transcode multiple media formats, exte ...
).
* A BD-J application's GUI can be operated with a remote control with a required set of keys and an optional pointing device. The set of required keys includes at least the keys needed to support the User Operations in HDMV applications.
* The GUI framework in BD-J includes the
HAVi Havi may refer to:
*''Hávi'', a variant form of '' Hár'', one of the names of Odin, the chief god in Norse mythology
* HAVi, the Home Audio Video Interoperability standard
{{disambiguation ...
(6) UI framework mandated by
GEM
A gemstone (also called a fine gem, jewel, precious stone, or semiprecious stone) is a piece of mineral crystal which, in cut and polished form, is used to make jewelry or other adornments. However, certain rocks (such as lapis lazuli, opal, a ...
; it is not a desktop GUI framework like
Swing or
AWT. The GUI framework is based on the core of AWT as specified by PBP, but the widget set includes mechanisms for remote control navigation from GEM and easy customization of look and feel from HAVi.
* BD-J includes a media framework similar to JMF for the playback of media content related to the BD-ROM disc. It is assumed that the BD-ROM disc will be the prime source for media files, but it will not be the only one; other sources could be the studio's web server and local storage.
* BD-J includes standard Java libraries for decoding and displaying images in
JFIF
The JPEG File Interchange Format (JFIF) is an image file format standard published as ITU-T Recommendation T.871 and ISO/IEC 10918-5. It defines supplementary specifications for the container format that contains the image data encoded with the J ...
(
JPEG
JPEG ( ) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and imag ...
),
PNG and other image formats. These images can be displayed on the Java graphics plane using standard Java graphics functions. An image can also be rendered in the background plane using a BD-J specific package.
* Text can be rendered using standard Java text functions. These text-rendering functions are extended with a more advanced text layout manager that integrates with the BD-J UI framework. The text is rendered using a vector-based font either coming from the disc, the player (default font) or downloaded from the network.
* Button sounds from
HDMV can also be used by the Java UI framework. Sound files can be loaded and rendered as a reaction to the user pressing a key, or as a reaction on a marked event related to the film—or as a reaction to any event generated by a BD-J Application.
* Authenticated applications can use a (signed) permission request file to acquire permissions that go beyond the BD-J sandbox. Permissions can be acquired for:
** Reading and writing to local and system storage
** Using the network connection (to connect to defined servers)
** Access of the file system on the BD-ROM disc
** Title selection of other titles on the BD-ROM disc
** Control of other running BD-J applications
* BD-J applications can use the
package to connect to servers on the Internet. The physical connection might differ between implementations e.g. Ethernet, telephone line, etc. At the network level,
TCP/IP
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
is supported and the
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
protocol may be used. Moreover, the Java package for secure connections is included (
JSSE
In computing, the Java Secure Socket Extension (JSSE) is a Java API and a provider implementation named SunJSSE that enable secure Internet communications in the Java Runtime Environment. It implements a Java technology version of the Secure Socket ...
) as part of the BD-J platform. Before a BD-J application can use the network connection, it must be authenticated and have suitable permission to use the network.
* The websites to which the application will go are under full control of the Content Provider. This control is guaranteed in two ways:
** Only (disc) authenticated BD-J applications are allowed to run when the disc is played. The application controls the use of the network connection.
** In addition, permissions defined on the disc can restrict the use of the (TCP/IP) network connection to certain sites.
* BD-J will include support for storage. Two flavors of storage are included: mandatory System Storage and optional Local Storage. All storage is accessed using methods from the Java IO package. The path for local storage is as specified by
EM
* System storage is storage that will be present in all BD-J players. The required minimum size of this system storage will permit storage of application data like settings, high-scores etc. It will not be big enough to store downloaded AV material. For this purpose, optional local storage is available. Typically system storage will be implemented using Flash memory and the optional local storage will be implemented on a HDD.
* Since storage is a shared resource between all discs played on the player, Java access control is part of BD-J. BD-J applications can only access a disc specific part of the storage space and cannot access the part belonging to other discs.
Content development
Content authors have a variety of development strategies available, including the use of traditional
Integrated Development Environments
Integration may refer to:
Biology
*Multisensory integration
*Path integration
* Pre-integration complex, viral genetic material used to insert a viral genome into a host genome
*DNA integration, by means of site-specific recombinase technology, ...
(IDEs) like
NetBeans
NetBeans is an integrated development environment (IDE) for Java (programming language), Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Microsoft Windows, Windows, ...
or
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
, non-programming graphical environments similar to Macromedia Director, or via rendering engines which consume standard data formats such as HTML, XML, or SVG. Having a full programming environment available on every Blu-ray Disc player provides developers with a platform for creating content types not bound by the restrictions of standard DVD. In addition to the standard BD-J APIs, developers may make use of existing Java libraries and application frameworks, assuming they do not use features outside the constraints of the BD-J platform, include that Java ME only supports
Java version 1.3 class files.
A set of freely available tools that allow Java developers to produce complete disc images incorporating BD-J is available from the HD Cookbook Project. In order to test content in a typical development environment (MS Windows), one needs either a PlayStation 3 or a third-party software player for Windows, paying attention to player versions to ensure that the player supports BD-J.
Because of the many different standards and components involved, creating unified documentation on BD-J has proven to be a challenge.
Sample code
The BD-J environment is designed to run
Xlet An Xlet is very similar to a Java applet and is originally introduced in Sun Microsystems's Java TV specification to support applications for Digital TV. Though Xlet looks superficially different from other application models in Java such as applet ...
s with non- packages available to take advantage of the features particular to this platform beyond that defined by
Java TV Java TV is a Java-based software framework designed for use on TV set-top boxes, based on components called Xlets. It is currently used only on the Connected Device Configuration, specifically for iTV applications development.
The API includes t ...
.
Even a simple example such as FirstBDJApp.
Blu-ray Disc Application Development with Java ME, Part 1: Creating Your First Application
Bruce Hopkins, September 2008
A developer might choose to use not packages and instead use:
# HAVi Havi may refer to:
*''Hávi'', a variant form of '' Hár'', one of the names of Odin, the chief god in Norse mythology
* HAVi, the Home Audio Video Interoperability standard
{{disambiguation ...
classes in package tree : alternative classes to obtain, for example, an far beyond what is provided by (they are both extensions of )
# Digital Video Broadcasting
Digital Video Broadcasting (DVB) is a set of international open standards for digital television. DVB standards are maintained by the DVB Project, an international industry consortium, and are published by a Joint Technical Committee (JTC) ...
(DVB) classes in package tree : alternative classes to, for example, the interface rather than for support for key presses and keycodes specific to popular CDC devices.
# Blu-ray Disc classes in the package tree : the DAVIC and DVB classes depend upon to recognize additional events peculiar to the BD-J platform such as popup menus and to locate media on the Blu-ray disc.
# DAVIC DAVIC, Digital Audio Video Council, was founded in 1994 with the aim of promoting the success of interactive digital audio-visual applications and services by promulgating specifications of open interfaces and protocols that maximise interoperabilit ...
API classes in package tree : A small set of classes wrapping or extending other network and media resources peculiar to interactive TV the HAVi, DVB and Blu-ray classes use for locators and specialized exceptions beyond the realm of JMF (such as content authorization).
A working example of a program using some features from each of the class trees would be the BdjGunBunny Xlet (a very simple version of Space Invaders
is a 1978 shoot 'em up arcade game developed by Tomohiro Nishikado. It was manufactured and sold by Taito in Japan, and licensed to the Midway division of Bally for overseas distribution. ''Space Invaders'' was the first fixed shooter and set ...
using an image of a rabbit as the shooter and turtles as the targets) provided as an example in th
Java ME 3.0 SDK
import javax.tv.xlet.XletContext;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import java.awt.Container;
import javax.tv.graphics.TVContainer;
// Getting a container for the screen could be
public void initXlet(XletContext context)
and the same for the other non- packages. Likewise, when trying to play a video, one might call the Blu-ray and DAVIC utility rather than using generic JMF:
import javax.media.Player;
import org.bluray.net.BDLocator;
import org.davic.media.MediaLocator;
MediaLocator stars = new MediaLocator(new BDLocator("bd://0.PLAYLIST:00003"));
Player player = Manager.createPlayer(stars);
// Rather than traditional and portable but more limited pure JMF
import java.net.URL;
import javax.media.Manager;
import javax.media.Player;
Player mediaPlayer = Manager.createRealizedPlayer( new URL("file:/mymovie.mov" ));
Related publication
* ''Programming HD DVD and Blu-ray Disc The HD Cookbook'' (2008) by Michael Zink, Philip C. Starner, Bill Foote -
book website
See also
* Advanced Content Advanced Content provides interactivity in the HD DVD optical disc format.
Advanced Content is used to provide interactive menus and "special features" such as additional bonus/extras content and games for HD DVD (one of the high-definition vide ...
, BD-J's counterpart on HD DVD
HD DVD (short for High Definition Digital Versatile Disc) is an obsolete high-density optical disc format for storing data and playback of high-definition video. Supported principally by Toshiba, HD DVD was envisioned to be the successor to th ...
References
External links
Official java.net BD-J Forums
- Official Sun java.net Forums for Blu-ray Disc Java.
bdjforum.com
- Unofficial forum for BD-J developers and issues surround HD authoring.
JavaOne 2007 Technical Sessions: Producing Blu-ray Java Software Titles for Hollywood
Official website for DVB-MHP and DVB-GEM - Open Middleware for Interactive TV
TV Without Borders
- MHP/OCAP Website from Steven Morris.
HD Cookbook
- Code and other recipes for Blu-ray Java, GEM, MHP and OCAP
Alticast BD-J Solutions
{{DEFAULTSORT:Bd-J
Blu-ray Disc
Interactive television
Java platform
120 mm discs
High-definition television
Video storage