OhioLINK Seeks Student Applicants for Google Summer Of Code

Peter Murray writes “Student applications for the Google Summer of Code program are being accepted starting on May 1st. In preparation for that date, OhioLINK has finished up its list of ideas and other supporting documentation. We welcome student applications seeking to further the development of information technology in academic libraries in Ohio and around the world. Questions about the program? Take a look at Google’s participant FAQ. Questions about the suggested projects or about OhioLINK? See OhioLINK’s program page or contact Peter Murray.

This is the list of project ideas so far. Please take a look at the project ideas page on the DRC-Dev wiki for updates.

Peter Murray writes “Student applications for the Google Summer of Code program are being accepted starting on May 1st. In preparation for that date, OhioLINK has finished up its list of ideas and other supporting documentation. We welcome student applications seeking to further the development of information technology in academic libraries in Ohio and around the world. Questions about the program? Take a look at Google’s participant FAQ. Questions about the suggested projects or about OhioLINK? See OhioLINK’s program page or contact Peter Murray.

This is the list of project ideas so far. Please take a look at the project ideas page on the DRC-Dev wiki for updates.

JPIP Streaming Disseminator for Fedora

JPIP is Part 9 of the JPEG 2000 specification and is used to stream image codestream blocks to a client on demand. For instance, a JPIP client on a desktop may ask for a certain quality level and resolution of a region of an image. Using the JPIP protocol, the client makes such requests to a server and the server responds with only the image codestream blocks needed by the client. This saves the overhead of transmitting the entire image file when, say, only a thumbnail version is required.

Fedora is the “Flexible Extensible Digital Object Repository Architecture”, an open source digital object repository created by Cornell University and the University of Virginia. A key aspect of the Fedora software is its use of “disseminators” to create derivatives on-demand of datastreams stored in the digital object package.

For this project, the idea is have a JPIP client (outside the scope of this project) request an image of a specified quality/resolution/clip and have the FEDORA/JPIP plug-in retrieve and copy out only the precincts/packets directly from an archived master plus metadata needed for the quality specified. In theory, no image processing on the server would be required.

Extensions to this disseminator to enforce XACML policies (a capability built into Fedora now) to determine maximum quality available for different end-user types are desired.

You can imagine how useful a plugin like this would be. There would be no need to retrieve the full master and create derivatives, nor stockpile limited sets of derivatives outside of the archive against possible end-user requests.

JPIP Image Viewer Applet

In tandem with the “JPIP Streaming Disseminator for Fedora” proposed above is a JPIP browser applet. Most browser-based JPEG 2000 plugins must be licensed from a software vendor and are not freely distributable. In order to deliver imagery in JPEG 2000 format to standard browsers, one must use a server-side transformations of the JPEG 2000 codestreams into JPEG chunks that are delivered to the browser. Based on the user’s requests — to pan, zoom, select a new region of the image, etc. — the browser must make a new request to the server and the server render a new JPEG image for the browser. This is an inefficient use of server resources and forces a less-than-desirable responsiveness in the user interface.

In addition, these general-purpose viewers do not have features, such as the display of metadata boxes, important to the application of JPEG 2000 in the museum, library and archival communities. What is desired instead is a cross-platform (Java, flash, etc.) JPIP (streaming JPEG 2000) viewer with these characteristics:

  • web distributable, browser compliant, and broadly available
  • ability to see the entire image and parts of an image with acceptable performance over narrow-band connections
  • manipulation functionality such as pan, zoom, rotate, invert, and mirror
  • ability to put the image in its context with metadata that is either textual or in other media and can be made visible or suppressed
  • dynamic retrieve the contextual information
  • meets identified image quality requirements
  • transformative tools (i.e. the ability to save the image into a file format selected by the user)

Video Snapshot Tool

OhioLINK’s content repository includes approximately 1,900 educational videos on various topics. These videos range in length from 20 minutes to 80 minutes, and minimal description is provided for the video content. We would like to add a capability for users browsing the collection to see “snapshots” of what the video contains. In its simplest form, the tool would pull out frames from the video in equally-spaced increments. In a more advanced form, the tool would scan the video looking for characteristics of scene changes and pull out the nth frame after the scene change. These frames would be stored as individual images — or possibly as index pointers into the video itself — in the object containing the video, and subsequently displayed to users on the full-record view of the video.

Bulk Video Conversion Using a Computational Grid

The 1,900 educational videos in OhioLINK’s content repository are in Realmedia format. We would like to have a tool that converts the Realmedia format into a new streaming format. This tool would also be used to convert incoming MPEG-2 videos into a streaming video format. Since OhioLINK does not have a computational grid set up now, the proposal must include assistance in setting up that grid (so long as the grid setup is not a substantial part of the proposal — it is the Summer of Code after all). Note that some background research has been done using the University of Wisconsin Condor cluster software.

Prototype Motion JPEG2000 to Flash Video Transcoder / Viewer

OhioLINK is very interested in Motion JPEG2000 as an archival format for moving image objects. We would like to explore the possibility of transcoding Motion JPEG2000 to Flash Video (FLV) — possibly in realtime, otherwise in batch — for access by users through a Flash player.

(Note: OhioLINK is a licensee of the Kakadu toolkit for JPEG2000. Although we would prefer an end-to-end open source solution, Kakadu is available for OhioLINK JPEG2000-related projects.)

Sakai-related Projects

On behalf of the Sakai community, OhioLINK is interested in mentoring these projects (culled from a list provided by Charles Severance through his blog posting) that are related to our own work of large-scale content management and services. When considering these project ideas, please note Chuck’s preface:

Here is a list of projects in Sakai that coudl be done by a talented individual in a fixed period. All of these efforts are on Sakai’s long-term roadmap but none are on the short-term roadmap. Generally these are not in the “Sakai core” areas – they add functionality rather than trying to refactor existing mature technology so they can be done without requiring much coordination with the rest of Sakai.

Each of the tasks would be useful even if partially completed. Each of the tasks would naturally fit in a Sakai contrib area. Each of the tasks are relatively simple to describe at a high level but would require any individual to do a lot of research to figure things out. That individual should not expect to be “spoon fed” all the decisions and design – and just sit and code. Part of the challenge is to truly figure out “what to do” and “how to do it”.

The individual should expect reasonable mentoring to get high level questions answered but should expect to be looking at a lot of code in the beginning of the effort. A key aspect of the sumer of code is that people taking these tasks cannot be a “drag” on existing resources executing the short-term roadmap. High level mentoring can come from me and others and tactical mentoring should come from the Programmer’s Cafe group.

If folks want more detail – let me know – I am perfectly happy to have an hour-long phone call with anyone who is ready to spend a sumer or more working on any of these tasks – but until a resource shows up – these will continue to sit on the back-burner.

Please contact us before submitting a project proposal to Google for an item not on this list.

  • Build a set of HTTPUnitTests for Sakai Functionality (in OhioLINK’s interest, particularly related to ContentHostingService.java)
  • Integrate JackRabbit’s WebDav in Sakai
  • Add Pluto to Sakai (JSR-168 Support)
  • Extend the Sakai JSR-168 portlets to implement delegated security
  • A Sakai Portal that does HTTP Proxy (i.e. eliminates iFrames)
  • Build support for IMS Tool Interoperability Producer into Sakai