Document not found! Please try again

SOFTWARE ARCHITECTURES FOR JPEG2000 David ... - Google Sites

1 downloads 147 Views 95KB Size Report
The paper is informed by the au- thor's own work on the ... JPEG2000 also supports .... transform involving finite suppo
SOFTWARE ARCHITECTURES FOR JPEG2000 David Taubman The University of New South Wales, Sydney, Australia [email protected] Abstract: This paper is concerned with software architectures for JPEG2000. The paper is informed by the author’s own work on the JPEG2000 VM (Veri¿cation Model) and the Kakadu implementation of the standard. The paper describes non-obvious implementation strategies, state machines, predictive algorithms and internal representation techniques which are used to minimize memory consumption and maximize the throughput of these implementations. 1. INTRODUCTION JPEG2000 [1] is the most recent image compression standard to emerge from the ISO working group commonly known as JPEG (Joint Photographic Experts Group). The new standard emphasizes scalable image representations. Portions of the compressed code-stream may be extracted and decompressed independently, to recover the image at a reduced resolution, at a reduced quality (SNR) within any given resolution, or within a reduced spatial region, at the desired resolution and quality. JPEG2000 also supports entirely lossless compression of images without sacri¿cing scalability. This means that an application is able to extract progressively higher quality representations of any given spatial region, leading eventually to a lossless representation of that region. These features provide applications and users with new paradigms for interacting with compressed imagery. JPEG2000 is inherently more complex than its predecessor, JPEG. Its reliance on the DWT (Discrete Wavelet Transform), and coding of wavelet coef¿cients in blocks, together imply a signi¿cantly higher cost in memory consumption than the baseline JPEG algorithm. The embedded entropy coding algorithm is far from trivial to implement and the code-stream parsing rules involve considerable conceptual complexity. On the other hand, whereas the JPEG standard describes a collection of related algorithms which often producing incompatible bit-streams, JPEG2000 is designed as a “monolithic” algorithm, to avoid interoperability problems between code-streams and implementations which exploit different features. A well-designed decoder, should be able to utilize its limited computational or memory resources to recover a meaningful image, possibly at a reduced resolution or quality, regardless of the size or bit-depth of the original image. The challenge for a good implementation is to exploit and expose as many of the standard’s bene¿cial features as possible, while consuming as little memory and computational resources as possible. Both hardware and software architectures are of interest, but this paper focuses exclusively on software solutions. Our goal is to offer insights gained by the author in creating the VM (Veri¿cation Model) and Kakadu4 implementations of JPEG2000. In particular, the paper addresses three central considerations for any implementation of the standard: 1) ef¿cient implementation of the DWT 2) ef¿cient implementation of the block coder and 3) ef¿cient management and ex Visit www.kakadusoftware.com for documents and downloads.

DWT Analysis

HH1 LH1 LL0

Stage 1

HL1LL1

LLD−1

HHD LHD LLD Stage D HLD

DWT Synthesis

Fig. 1. G stage DWT producing 6G . 4 subbands. ploitation of the compressed code-stream. It is worth noting that ef¿cient hardware architectures may look very different from their software counterparts. Some useful hardware design strategies may be found in [2, {17]. 2. EFFICIENT ARCHITECTURES FOR THE DWT For the sake of this discussion, we consider only one image component (e.g., one colour component), noting that image components are compressed independently in JPEG2000. We also restrict our attention to a single image tile, again noting that JPEG2000 can decompose an image into disjoint rectangular tiles, each compressed independently. The DWT is most easily described in terms of the iterative application of G processing stages. The gth stage, decomposes (analysis) its input image LLg4 , into four “subband” images, denoted LLg , HLg , LHg and LLg . Each subband image has essentially half the height and width of the input image. We label the original image LL3 and note that LL4 through LLG4 are intermediate results, each serving as input to a subsequent stage. Figure 1 represents this staged view of the DWT. Each stage may be inverted (synthesis), so the image is fully represented by 6G . 4 subbands. If the last u synthesis stages are omitted, LLu is recovered this is a low-resolution image having dimensions 5u times smaller than those of the original. This is the origin of resolution scalability in JPEG2000, since it is possible to reconstruct a reduced resolution version of the image using only a subset of the compressed subbands. Although the staged view in Figure 1 is convenient as a description of the DWT, it belies the fact that there is no need to ¿nish processing one stage before moving on to the next. A memory ef¿cient implementation need not buffer the original image or any of the intermediate LLg images in memory. By processing each stage incrementally, and pipelining the processing stages, it is possible to reduce the working memory requirements to a ¿xed multiple of either the image height or the image width. Each DWT stage is formed by the separable composi-

state 1

state 2

state 3

state 4

x [n−1]

x [n−2]

x [n−2]

xo3[n−3]

step 1

step 2

step 3

step 4

λ1

λ2

λ3

λ4

xo1 [n−1]

xe2 [n−1]

xo3[n−2]

xe4 [n−2] band

0 e

1 o

2 e

low band

even

x[2n − 1] odd

stripe

x[2n]

high

Fig. 2. Lifting state machine for

Suggest Documents