Find JSRs
Submit this Search

Ad Banner

Summary  |  Proposal  |  Detail (Summary & Proposal)
JSRs: Java Specification Requests
JSR 34: JavaTM Advanced Imaging API 1.1

Stage Access Start Finish
Final Release Download page 11 Mar, 2002  
Final Approval Ballot View results 16 Oct, 2001 29 Oct, 2001
Proposed Final Draft Download page 06 Apr, 2001  
Public Review Download page 06 Jan, 2001 05 Feb, 2001
Community Draft Ballot View results 07 Nov, 2000 13 Nov, 2000
Community Review Login page 14 Oct, 2000 13 Nov, 2000
CAFE   31 Aug, 1999 27 Oct, 1999
JSR Approval   24 Aug, 1999 30 Aug, 1999
Status: Final
JCP version in use: 2.1
Java Specification Participation Agreement version in use: 1.0

Revision of the JavaTM Advanced Imaging API specification to version 1.1. Java Advanced Imaging supports sophisticated image processing in Java 2.

Please direct comments on this JSR to the Spec Lead(s)

Specification Leads
  John Zimmerman Sun Microsystems, Inc.
Expert Group
  Eastman Kodak Company General Dynamics Hildebrandt, John
  JPL MITRE Corporation Phipps, Robert
  Sun Microsystems, Inc.

Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1: Identification

Submitting Participant: Sun Microsystems
Name of Contact Person: John Zimmerman
E-Mail Address:
Telephone Number: +1 650 786 7047
Fax Number: +1 650 786 7334

Section 2: Request

2.1 Please describe the proposed Specification:
The Java Advanced Imaging API is a standard extension to the Java platform, and is currently in public release at version 1.0. The Java Advanced Imaging API allows the implementation of applications which perform complex, high-performance digital imaging operations.

This JSR proposes the revision of the Java Advanced Imaging API 1.0 specification to version 1.1. The purpose of this revision is to add functionality which has been requested by customers, revise existing functionality in the light of customer feedback, and improve the interoperability of the Java Advanced Imaging API with other Java standard extensions (e.g., Java 3D).

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)
Desktop and server.
2.3 What need of the Java community will be addressed by the proposed specification?
This revision will provide new imaging capabilities requested by customers beyond those of the first release.
2.4 Why isn't this need met by existing specifications?
The Java Advanced Imaging API is the current standard for high-performance digital imaging on the Java platform.
2.5 Please give a short description of the underlying technology or technologies:
In the 1.1 revision, the following functional areas will be addressed:

  • Volumetric imaging. True three-dimensional images and data structures will be added to the API. A standard mechinism for implementing operators for processing three-dimensional images will be defined. A number of sample operators will be specified and included as part of the core functionality.
  • Image analysis. Image analysis is a subset of the discipline generally known as image understanding, machine vision, or pattern recognition. Image analysis provides the fundamental framework for extracting features of interest from an image, creating data structures to describe those features, and operating on those data structures to extract meaningful information. It excludes the higher-level processes which are used for formulating an overall synthesis of image content based on the feature information extracted.

    The 1.1 specification will standardize a framework for the development of image analysis prototypes and applications, allowing workers in this area to count on a standard set of concepts, terminology, and features. Developing a more detailed description of the work to be done in this area will be part of the architectural process.

  • Interoperabilty between the Java Advanced Imaging API and the Java 3D API. Although the 1.0 API was designed with interoperability with Java 2D and Java 3D in mind, the integration of the Java Advanced Imaging API and the Java 3D API is incomplete. In the 1.1 API, the necessary architectural concepts and operators will be introduced to allow Java 3D and the Java Advanced Imaging API to smoothly interoperate.

    In particular, it is assumed that the Java Advanced Imaging API will most often be used as a 'back-end' engine by Java 3D to process an image data set for inclusion in a Java 3D scene graph. Joint work between the Java Advanced Imaging API and Java 3D API teams will define the necessary architectural features.

  • Enhanced Network imaging. The 1.0 API provides for distributed processing of image data sets and operators anywhere on the network. In the 1.1 API, these capabilities will be enhanced to include the ability to more easily utilize additional compute resources and to define arbitrary wire protocols and compression techniques for the exchange of image tiles. These additions will also ease the implementation requirements for the input/output of certain image file formats. This work will be carried out in close coordination with the image file i/o standard extension work.
  • New image operator specifications. New image operators. The core image operator functionality in the 1.0 API was chosen to address the most common and widely useful methods. In the 1.1 API, additional operators will be added to the core and some previous operators modified in light of the feedback we have received from customers.
  • Core modifications. Some aspects of the 1.0 API core architecture may need to be modified in light of the new 1.1 functionality. Feedback from customers has also indicated some desirable additions to the architecture which will enhance potential performance and ease the implementation of new operators by application developers and third parties. Backward compatibility of 1.1 with 1.0 is a major goal; imcompatible changes will be made only when their advantages are overwhelming.

This JSR specifically excludes modifications to areas of the architecture not named above.

2.6 Is there a proposed package name for the API Specification?
The Java Advanced Imaging 1.0 API uses the package name The proposed 1.1 revision will lie entirely within this package tree.
2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?
The 1.1 specification has no software or hardware dependencies.
2.8 Are there any security issues that cannot be addressed by the current security model?
2.9 Are there any internationalization or localization issues?
There are no I18N issues. The localization strategy has not yet been determined.
2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?
It is anticipated that this revision will be done in close cooperation with the teams for the Java 3D API and the proposed Image File I/O standard extension (currently in the specification process). Any necessary revisions of those APIs to increase interoperability will be negotiated directly with the teams.

It is possible that the revisions to the Java Advanced Imaging API may make revisions in the Java 2D API desirable; any such revisions will be negotiated with the Java 2D API team in the proper timeframe.

Section 3: Contributions

The starting point for this revision is the current Java Advanced Imaging API 1.0 specification, which can be found at the Java Advanced Imaging API Home Page. For those new to the Java Advanced Imaging API, the white paper at the home page gives a useful overview.