120 likes | 128 Views
Learn about streaming and JPEG2000 compression for use in uncompressed image archives, reducing transmission time and enabling progressive encoding. Ideal for fast networks.
E N D
Streaming and JPEG2000 Compression for use in Uncompressed Image Archives Lev Weisfeiler Aware, Inc.
Archives of Uncompressed Images • Data stored uncompressed in PACS • 2000x2500 CR • Total Image size: 10MB • 512x512 CT • Total Image size: 0.5 MB • Great for fast networks since no time spent on decoding • Lossless data quality
Viewing Images over Slower Networks • User connecting over slower link may prefer compressed data, to minimize time to display of full fidelity images • Total time to display = compression time on server + transmission time + decompression time on client
Streaming of Compressed Data • The total time can be reduced if any of these processes can be done in parallel • Streaming: decompression and transmission can be interleaved • data is decompressed and displayed progressively, as it is received, without waiting for full image data • Compression and transmission can be interleaved as well
JPEG Streaming • JPEG encodes data in blocks of 8x8 pixels; • Blocks can be transmitted as they are encoded, without waiting for the rest of the data. • Precludes the use of the progressive mode of JPEG • In progressive mode, the DC terms from each block are grouped at the front • Image can be progressively decoded in 8 row chunks, essentially appearing line-by-line from top to bottom. • A significant proportion of the image data is necessary for a meaningful first view
JPEG2000 Progressive Encoding • Progressive Encoding By Quality • Image is processed by the wavelet transform • First quality layer is produced by encoding some of the wavelet transform data; the layer is transmitted in a “tile part” • “tile part” is a JPEG2000 codestream unit • Process repeated for production of next layer • Progressive Encoding By Resolution • Image is processed by the wavelet transform • The lowest resolution data is encoded and transmitted in a tile part • Process repeated for production of next resolution data
JPEG2000 Progressive Encoding • Progressive Encoding By Color Channel • First color channel is processed by the wavelet transform, fully encoded, and transmitted in a tile part • Process repeated for production next channel • Progressive Encoding By Spatial Region • In a tiled image, each tile can be processed and transmitted independently • In an untiled image, precincts are defined for the image and are encoded in their proper order, with each one being transmitted once it is fully encoded • Precincts are a spatial division of the wavelet transform data
CR Example • Network: DSL 2Mb/sec, 50% utilization, 10% overhead • 2500x2048 CR 10MB Uncompressed • Transmit time ~ 90 seconds • Total time to display: 90 seconds • 2500x2048 CR Losslessly Compressed (4MB) • Compression:1.77 sec • Decompression: 1.44 sec • Transmit time ~35 seconds • Total Time to display: ~39 seconds
CR Example • 2500x2048 CR Losslessly Compressed with 3 Quality Layers • Thumbnail: 70KB • Visually lossless (20:1) : 540KB • Lossless: 3.4 MB • Progressive Encoding Time: • Layer 1: 0.42 sec • Layer 2: 0.41 sec • Layer 3: 1.08 sec • Decompression Time: • Layer 1 only: 0.14 sec • Layer 1 and 2: 0.35 sec • All three layers: 1.45 sec • Time to View: • Layer 1: (0.42 sec + 0.6 sec + 0.14 sec) ~= 1.2 seconds • Layer 1 and 2: (0.41 sec+ 5 sec +0.35 sec) ~= 6 seconds • All three layers: (1.08 sec + 30 sec +1.45 sec) ~= 33 seconds
CT Example • Network: DSL 2Mb/sec, 50% utilization, 10% overhead • 512x512 CT 500 KB Uncompressed • Transmit time ~ 4.5 seconds • Total time to display: 4.5 seconds • 512x512 CT Lossless Compressed 1 layer: 130 KB • Compression: 0.13 sec • Decompression: 0.10 sec • Transmit time 1.1 seconds • Total Time to display: 1.33 seconds
CT Example • 512x512 CT Lossless Compressed 3 Layers • Thumbnail: 10 KB • Visually lossless (25:1) : 20 KB • Lossless: 130 KB • Compression: • Layer 1: 0.08 sec (encoding + x-form time) • Layer 2: 0.02 sec (encoding only) • Layer 3: 0.03 sec (encoding only) • Decompression: • Layer 1: 0.05 sec • Layer 1+2: 0.06 sec • Layer 1+2+3: 0.10 sec • Time to View: • Layer 1: (0.08 sec + 0.09 sec + 0.05 sec) ~= 0.22 seconds • Layer 1+2: (0.02 sec+ 0.18 sec +0.06 sec) ~= 0.26 seconds • Layer 1+2+3: (0.03 sec + 1.17 sec +0.10 sec) ~= 1.3 seconds
Adaptable Process • JPEG2000 encoding progressions can be mixed • E.g.: First resolution and then quality progression orders would have the lowest resolution data progressively encoded by quality and transmitted, followed by the next resolution • Granularity of the interleaving of the compression process and the transmission process can be adapted for: • time to first image display • time to full image display. • Optimized based on: • application needs • relative loads on the processor • network speed