PPL: A whole-image processing language

https://doi.org/10.1016/j.cl.2006.07.003Get rights and content

Abstract

This paper presents the design and implementation of the picture processing language (PPL) that extends the syntax and semantics of traditional image processing libraries. PPL provides a rich set of features to support the development of imaging systems. A main aspect is that many of these features treat a whole-image as an individual operand. An efficient memory management scheme is included that allows “in-place operation” with high memory efficiency.

The PPL compiler together with an interpreter can work in two modes. The PPL compiler can convert the source code into C files that can be used as macros within a client program. The program can also be executed at run-time by an interpreter. The dual-execution modes make it possible to be used by both imaging researchers and equipment developers.

The extended set of PPL instructions can communicate with digital sensors and 3D displays, and store image data into databases across the Internet. The wavelet-based reverse prediction algorithm can speed up the image loading process approximately three times faster than JPEG. The application programming interface (API) of PPL provides all the building blocks for programmers.

Introduction

There are many image processing software programs and libraries. Java 3D, MatLab and Mathematica are some of the commonly used among them. However, the majority of them are designed for engineering professionals. They can only be used in laboratories for research purposes and are not suitable for the general medical scientist. Furthermore, many current image processing software does not have features that enable the imaging systems to directly interface with different hardware systems. When imaging software programs have hardware interfaces, they are rarely compatible with each other and are not easy to program [1].

To solve this problem, we have implemented an image processing computer language called picture processing languages (PPL). PPL is designed for imaging systems that can deal with real-time [2] image processing and support for digital sensors. It can be used in simulation systems or 3D diagnostic systems. PPL incorporates the most commonly used image processing algorithms. This means that all statements in PPL are highly abstract, and can be executed using the interpreter that we developed.

We also discuss an extension [3] of PPL instructions, which widely expand the capability and versatility of the language.

Section snippets

Background

Digital image processing has become increasingly important in many areas, such as digital telecommunication, remote sensing, robotics, graphic printing, and medical imaging. Images are often deteriorated by noise due to various sources of interference and other phenomena that affect the measurement processes in imaging and data acquisition systems. Proper image processing can improve image contrast, reduce noise, sharpen edges, remove artifacts, and recognize image patterns [4].

There are many

Design and implementation

There are two issues which are most important to the design and implementation of this language: one is the syntax design of the language and implementation of the operational semantics, and the other is the design of the compiler [6] and the interpreter.

PPL overview

PPL incorporates most of the common imaging algorithms and new algorithms that we developed to form a general image programming language/software. It has instructions to communicate with sensors, network protocols to transmit data over the Internet, database interfaces to store/retrieve data, and application programming interfaces to build controlling consoles and highly efficient data compression and transmission features to speed up an animation or simulation process.

Conclusions

We have described the syntax and semantics of PPL [14]. The implementation of the PPL compiler, interpreter, image index table, and application program interfaces, along with the fast wavelet-based reverse prediction image compression method are discussed in detail. We also discussed the PPL compiler's two execution modes: the direct-execution as an interpreter and the in-direct execution which compiles PPL codes into C macros [1]. Using an I2T to achieve advanced memory management, together

References (18)

  • Hammes J, Rinker B, Bohm W, Najjar W, Draper B, Beveridge R. Cameron: high level language compilation for...
  • Wu D, Guan L, Lau G, Rahija D. Design and implementation of a distributed real-time image processing system. IEEE...
  • Baker J, Hsieh W. Maya: multiple-dispatch syntax extension in Java. Proceeding of the ACM SIGPLAN 2002 conference on...
  • R. Ledley et al.

    Pictorial pattern recognition

    (1968)
  • Ciampolini A, Lamma E, Mello P, Torroni P. LAILA: a language for coordination abductive reasoning among logic agents....
  • Kumar S, Mandelbaum Y, Yu X, Li K. ESP, A language for programmable devices. Proceedings of the ACM SIGPLAN’01...
  • Bamberger R. Portable tools for image processing instruction. IEEE Image Processing. 1994;...
  • Active MIL-Lite 6.1, Matrox Imaging,...
  • Vieira R. Professional SQL Server 2000 Programming, Wrox,...
There are more references available in the full text version of this article.

Cited by (5)

View full text