UW ICL                               Conference

UWICL Consortium Home Page

Japanese NEW

---------------------------

Welcome to UWICL!

University of Washington Image Computing Library on Texas Instruments TMS320C80 (MVP). ---------------------------

* What is UWICL?
* Goals of UWICL.
* Architecture of UWICL.
* UWICL 3.0 function list and performance figures. NEW
* New on Release 3.1. NEW
* Benefits of the UWICL consortium.
* The consortium.
* How to join the consortium? (fees and licence)
* History of UWICL.
* The UWICL Team
* The UWICL guides (design, style...) ICSL access only.
* Miscellaneous Information

? Questions?

Copyright © 1995 Image Computing Systems Laboratory, University of Washington
cdeforge@icsl.ee.washington.edu
. . .
---------------------------

What is UWICL?

The library provides a portable infrastructure of low-level C80 routines so that higher level algorithms and applications can be developed and quickly integrated on the target C80-based system with minimal custom coding by using the the library routi nes as building blocks. A highly modularized design is used for all the functions supported by the UWICL. The UWICL Design Guide documents this architecture in detail while the UWICL Style Guides specify the coding standards. Also, the Quality Assurance G uide establishes the QA program and bug handling procedures for the UWICL.

Each function has its own README file in which we describe how to make the file, how to use the simulator, what are the restrictions, what are the performance on MediaStation 5000 (GSP5). It has also a UNIX MAN page including the algorithm specifics, synopsis, server to MP parameters, MP to PP-C parameters, path, author, bug report. We provide also a server.c and a Script file to test the function on GSP5 hardware.

* Top * Next

---------------------------

Goals of UWICL.

The goal in developing the UWICL is to provide a portable and efficient library of core image computing algorithms to the MVP user community. The UWICL project attempts to provide many low-level image processing functions. The long-term goal is to pr ovide an infrastructure of low-level MVP routines so that higher-level algorithms and applications can be developed and quickly integrated on the MVP using the UWICL routines and minimal custom code. This way, a system integrator or application programmer can mix and match different data flows with different image processing functions in various architectures based on the MVP(s). Currently, UWICL is actively expanding, upgrading and supporting the library to facilitate the widespread use of the C80.

* Top * Next

---------------------------

Architecture of UWICL.

A UWICL function is to be divided into 3 hierarchical segments, the MP-module, the PP-C module, and the PP tight-loop module. The overall program structure is shown in Figure 1. Such a modular design provides the UWICL user with a very flexible archi tecture. The user may choose to use the functions provided by the UWICL by calling any of these hierarchical modules depending on the required application and on the user's familiarity with MVP programming. A novice user may choose to use a packaged MP mo dule which uses all the MVP resources in a predetermined way and with little modification in C language apply it to his application. A more experienced user who would like to customize the use of some of the MVP resources may choose to use the PP-C module only. Still, a more advanced user of the MVP who understands the intricacies of the MVP's data transfer protocol and PP programming may choose to use only the PP tight-loop module or even modify it to optimize the PP tight-loop further. This approach wil l give the greatest flexibility in the usage of the MVP's resources, but the greatest knowledge and understanding of the MVP is required.

Figure 1

* Top * Next

---------------------------

UWICL 3.0 function list and performance figures.

*Arithmetic

    Offset              3.5 ms    Scale             5.5 ms    Normalize             6.4 ms
    Floor               3.6 ms    Clip              3.6 ms    Invert                3.5 ms
    Addition(8)         5.4 ms    Addition(16)     17.2 ms    Signed Addition(8)    7.5 ms
    Subtraction(8)      5.4 ms    Subtraction(16)  17.2 ms    Signed Subtraction(8) 7.5 ms
    Multiplication      7.5 ms    Division         16.3 ms    Absolute Value        3.6 ms
    Absolute Difference 5.4 ms    Right Shift       3.5 ms    Left Shift            3.6 ms
    Maximum Image       5.2 ms
    Matrix Mult.        1.1 ms    
    Matrix x Vector     1.1 ms  ( matrix 256 x 256, vector 256 with 32 or 64-bit output. Fixed point reprentation of floats  )

*Logical

    AND         5.4 ms    OR               5.4 ms    XOR                  5.4 ms

*Morphology

    Binary:
    Erosion    12.7 ms    Dilation        12.7 ms    Opening             21.2 ms
    Closing    21.2 ms

    Grayscale:
    Erosion    32.7 ms    Dilation        32.7 ms    Opening             65.2 ms
    Closing    65.2 ms

*Spatial Filters

    Median                 10.7 ms     Sobel                    18.9 ms
    Gradient               28.3 ms     Laplacian                16.1 ms
    Unsharp masking        19.4 ms     Correlation              19.4 ms 
  
    8-Bit Convolution
    2D Convolution(NxN)        19.4 ms (112.1 ms for 9x9)    
    2D Signed Convolution(NxN) 19.4 ms (112.1 ms for 9x9) 
    2D Convolution(MxN)        19.4 ms (112.1 ms for 9x9)   
    2D Padded Convolution(MxN) 20.0 ms (114.6 ms for 9x9)
    Boxcar Filter              21.4 ms ( 46.1 ms for 9x9)

    16-Bit Convolution
    2D convolution             20.7 ms (16 bit output)


*Signal Processing

    FIR Filters                  13.0 ms

*Transforms

    FFT/IFFT (16-bit)            85.0 ms   FFT/IFFT (32-bit, 256x256)    35.0 ms
    General FFT/IFFT (16-bit)    95.0 ms   Real FFT/IFFT (16-bit)        50.0 ms
    FFT Shift/Inverse FFT Shift  14.3 ms   General Freq. Domain Filter  200.0 ms
    DCT/IDCT (8x8 blocks)         9.5 ms   Frequency-Domain Filters     187.5 ms
    Wavelets (D4)                18.1 ms   Wavelets (D6)                 26.2 ms


*Compression

    Full-Search VQ Enccode  574.5 ms       VQ Decode            9.3 ms    
    Huffman Encode           24.4 ms       Huffman Decode      40.5 ms
    Run-Length Encode        12.1 ms       Run-Length Decode    2.3 ms


*Histograms

    Equalize           8.3 ms              Stretch             9.0 ms    
    Normalize          6.4 ms              Histogram Generate  4.3 ms
    Auto Threshold(8)  0.5 ms              Auto Threshold(12)  5.8 ms 


*Geometric Manipulation

    Shrink Image (by 2)           2.2 ms   Arbitrary Shrink               3.0 ms (for 128x128 output)
    Arbitrary Magnify (1 factor) 20.9 ms   Arbitrary Magnify (2 factors) 21.0 ms
    Zoom Image (by 2)             9.3 ms   Translate Image                9.4 ms (VRAM To VRAM)
    90 Degree Rotate              3.5 ms   Flip Image                     3.5 ms   
    Interpolate 2 Images (8-bit)  5.3 ms
    Orthogonal Slicing of Volume 16.1 ms (256x256xz256)
    Volume Rotation by 90 deg.  265.0 ms (256x256xz256)

    Warping
    General Warp         34.3 ms (with 4 control points on 8-bit image)
                         41.9 ms (with 4 control points on 16-bit image)
                         56.6 ms (color with 4 control points)

    Perspective Warp     46.2 ms ( 8-bit image, bilinear interpolation)
                         46.3 ms (16-bit image, bilinear interpolation)
                         37.1 ms ( 8-bit image, nearest neighbor interpolation)
                         37.2 ms (16-bit image, nearest neighbor interpolation)

    Affine Warp          14.0 ms (on 8-bit image)
                         14.8 ms (on 16-bit image)
                         26.8 ms (color)

    Rotate               29.0 ms (on 8-bit image)
                         36.3 ms (on 16-bit image)
                         50.8 ms (color)
   


*Statistics

    Mean                          1.8 ms   Variance                       3.8 ms
    Moments (1, 2, 3)             3.8 ms   Contrast                       4.4 ms
    Entropy                       5.9 ms   Image Correlation            105.4 ms (with 9x9)
    Mean square error             3.5 ms   Count Pixels of Gray Level     3.3 ms
    Min/Max Gray Level Search     2.0 ms
    Image Statistics ( 1st, 2nd moment, bounding box)	  4.2 ms, 3.2 ms, 4.9 ms 

*Features  

    Gray Level Difference stat   14.6 ms   Gray Level Co-occurrence stat  78.4 ms
    Hurst                         5.8 ms   Range                          5.8 ms
    Projection Histogram          8.9 ms   
    Template Matching		115.4 ms (for 9x9 kernel)
    Template Matching           283.0 ms (for 9x9 kernel, with normalized correlation coefficient)

*Graphics

    Line Drawing                 18.0 ms   Drawing Filled Rectangles      4.4 ms
    Filled Circle Drawing         2.8 ms   Drawing Filled Polygons        5.3 ms 
    Meshplot                     23.6 ms

Nota bene: The graphics timing represent the drawing of several objects.

*Image Registration

    with Coincident Bit Counting		  47.1 ms (with 100x100 ROI)
    with Absolute Difference Criterion		1079.0 ms
    with rotation and Absolute Difference   	1246.0 ms
    with Outlier Minimal Number Estimator         68.3 ms (with 100x100 ROI)
    with full search                              75.0 s  ( two 512 x 512 images)
    with multiresolution full search            3954.8 ms ( two 512 x 512 images)
    with multiresolution translate and rotate    569.0 ms ( two 512 x 512 images)
 
*Color Image Processing

    Color Conversions : 
      RGB to HSI                     15.1 ms   HSI to RGB                   7.6 ms (720 x 200 x 32-bit image)
      kYCbCr to RGB                  10.4 ms   Color Format Conversion      4.3 ms
      Pack YUV -> YUYV                9.5 ms   Unpack YUYV -> YUV           7.5 ms
      32-bit RGB -> 16-bit 565 RGB    5.9 ms   16-bit 565 RGB -> 32-bit RGB 5.7 ms
      32-bit RGB -> 16-bit 555 RGB    5.9 ms   16-bit 555 RGB -> 32-bit RGB 5.7 ms

    Color Geometric Manipulation :
      Affine Warp of Color Image     26.8 ms   Rotate RGB Image          50.9 ms
      Affine Mapping of RGB image    50.9 ms   General Warp of RGB Image 56.6 ms (4 control points)
      Perspective Warp of RGB image  67.6 ms

    Color Segmentation :
      Color Format Conversion        4.3 ms
      HSV Color Segmentation        23.4 ms (on 700 x 200 x 32-bit)


*Other Image Processing

    Contouring                   12.0 ms   Connected Components          35.0 ms
    Distance Transform           40.0 ms   Canny's Edge Detection       152.5 ms
    Arithmetic Encoder          110.0 ms   Arithmetic Decoder           200.0 ms
    Image Composition             7.3 ms   YUV to (X) RGB                10.4 ms (for 720x240)
    Image Threshold               3.6 ms
    Segmentation with Snakes    250.0 ms   
    Pack                          2.2 ms   Unpack                         2.0 ms
    Quadratic Facet Model        51.9 ms (produces 6 images)
    Radial Search                 2.4 ms (on a 110 x 128 area 16-bit)
    Convex Hull                   3.5 ms

All Numbers are based on a 50 Mhz MVP and 2 cycles/column DRAM with 8-bit 512 x 512 Images (Unless Specified).

* Top * Next

---------------------------

New on release 3.1.

Release 3.1 of the UW Image Computing Library was made available on October 17, 1997. There are now a total of 194 functions contained in the library, including twenty new functions in the current release. The new functions and key features in this release include:

* Top * Next

---------------------------

Benefits of the UWICL consortium.

Fast implementation using the UWICL routines as building blocks. Programmers do not need to understand the details of the DSP architecture to be able to maximize the DSP's processing power.

Easy customized development

University of Washington


* Top * Next

---------------------------

The consortium.

The Consortium Advisory Board (CAB) provides advice regarding the choice of algorithms, recommends areas of interest, and gives feedback on the overall Consortium operation. Each Company will have one vote. The CAB meeting wil be held twice a year at the University of Washington.

Bianual (April and October) expansion and upgrade
Consortium will cease its operation on Dec. 31, 1999

Dr. Yongmin Kim
Director of the UWICL Consortium
Department of Electrical Engineering
University of Washington, Box 352500
Seattle, WA 98195-2500 U.S.A.
(206) 685-2271 FAX: (206) 543-3842 Email: kim@ee.washington.edu

* Top * Next

---------------------------

How to join the consortium? (fees and licence)

There is an Annual Sponsorship Fee of $20,000 to support the Consortium. The Company gets the software site license to use the UWICL source code right away in R&D.

When the company is ready to introduce products using the UWICL, they have two solutions for the Commercial License:

1 to 1000: $30
1001 to 10000: $10
More than 10000: $4

The sooner the company joins, the more advantageous the licensing terms become. For every year Company has been a member of the Consortium before a license agreement is executed, there is 20% reduction in paid-up license fee or royalty. The maximum r eduction is 80%.

* Top * Next

---------------------------

History of UWICL.

June 1994, the ICSL started the project UWICL.

January 1995, the pre-release of the UWICL is ready.

March 1995, release 1.0 with about 60 functions.

August 1995, pre-release 1.1 of UWICL with improved functions, more flexibility.

September 1995, UWICL successfully hosts a conference for the TMS320C80 Developers.

October 1995, release 1.1 of UWICL with about 94 functions. In the release 1.1 the functions are more robust, handle a very large variety of image sizes and have be through a tough Quality Assurance program. An online support has been created.

* Top

Copyright © 1995 Image Computing Systems Laboratory, University of Washington
cdeforge@icsl.ee.washington.edu
---------------------------