WO1990015379A2 - Apparatus and method for image procession - Google Patents

Apparatus and method for image procession Download PDF

Info

Publication number
WO1990015379A2
WO1990015379A2 PCT/US1990/002889 US9002889W WO9015379A2 WO 1990015379 A2 WO1990015379 A2 WO 1990015379A2 US 9002889 W US9002889 W US 9002889W WO 9015379 A2 WO9015379 A2 WO 9015379A2
Authority
WO
WIPO (PCT)
Prior art keywords
image
band
abstracted
pixels
format
Prior art date
Application number
PCT/US1990/002889
Other languages
English (en)
French (fr)
Other versions
WO1990015379A3 (en
Inventor
Joel Isaacson
Original Assignee
Joel Isaacson
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Joel Isaacson filed Critical Joel Isaacson
Publication of WO1990015379A2 publication Critical patent/WO1990015379A2/en
Publication of WO1990015379A3 publication Critical patent/WO1990015379A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame

Definitions

  • the present invention relates to image storage methods generally and to permutations of pixel storage order in particular.
  • Digitized images are rectangular arrays of pixel data which are usually acquired serially from a scanning device. Some color scanning devices present a complete pixel at a time, comprising three colors, typically cyan, yellow and magenta; other scanning devices present, at one time, a single row of partial pixels of one of the three colors, and alternate rows among the three colors.
  • Computer memory is random access; sequential access and random access to computer memory each takes generally the same length of time which is typically much less than disk access time.
  • Computer memory storage is much smaller than disk storage and thus, cannot be used to store and to access digitized images of many Mbytes.
  • Digitized images are usually displayed on Cathode Ray Tube (CRT) devices having a resolution of 75 - 100 pixels per inch. Since most scanners scan at a resolution of about 300 pixels per inch, displaying a digitized image requires a reduction of the volume of information by a factor typically varying between 9 and 16.
  • CTR Cathode Ray Tube
  • an image processing system comprising image acquisition apparatus for acquiring pixels of a digital image, permutation apparatus for receiving the pixels subsequent to their acquisition by the image acquisition apparatus and for ordering the pixels, thereby to reorder the digital image and storage apparatus for receiving and for storing the multiplicity of abstracted images.
  • an image processing system comprising an image acquisition apparatus for acquiring pixels of a digital image, permutation apparatus for receiving the pixels subsequent to their acquisition by the image acquisition apparatus and for ordering the pixels thereby to reorder the digital image into a multiplicity of abstracted images at a reduction factor and storage apparatus for receiving and for storing the multiplicity of abstracted images.
  • an image processing system comprising image acquisition apparatus for acquiring pixels of a digital image, permutation apparatus for receiving the pixels subsequent to their acquisition by the image acquisition apparatus, for ordering the pixels thereby to reorder the digital image into a plurality of abstracted images at a relatively large reduction factor and for combining the abstracted images into a multiplicity of sets of the abstracted images combinable into a plurality of abstracted images at a plurality of different relatively small reduction factors and storage apparatus for receiving and for storing the digital image in the multiplicity of sets.
  • the permutation apparatus may comprise an apparatus for dividing the digital image into a plurality of bands comprising a predetermined number of rows of the digital image and apparatus for operating on the plurality of bands in a band by band manner.
  • the apparatus for operating operates separately on each band.
  • portions of the bands are written by the apparatus for operating to the storage apparatus when the portions of the band fill at least one file system block.
  • an image processing method including the steps of acquiring pixels of a digital image, receiving the pixels subsequent to their acquisition in the step of acquiring and ordering the pixels thereby to reorder the digital image into a multiplicity of abstracted images and storing the multiplicity of abstracted images.
  • an image processing method including the steps of acquiring pixels of a digital image, receiving the pixels subsequent to their acquisition in the step of acquiring and ordering the pixels thereby to reorder the digital image into a plurality of abstracted images at a relatively large reduction factor and combining said abstracted image into a multiplicity of sets of the abstracted images combinable into a plurality of abstracted images at a plurality of different relatively small reduction factors and storing the digital image in the multiplicity of sets.
  • an image processing method including the steps of of sequentially acquiring pixels of a digital image, sequentially receiving the pixels subsequent to their acquisition in the step of sequentially acquiring and ordering the pixels thereby to reorder the digital image into a multiplicity of abstracted images at a reduction factor and of storing the multiplicity of abstracted images.
  • an image transformation and rotation method including the steps of receiving an image stored in a permuted format, transforming the image in a permuted format to a tile format via an inverse transformation of the permuted format to a sequential format and via a forward transformation from the sequential format to the tile format, of rotating the tile format image by rotating the location of each tile of the tile format irr e, utilizing an amount of computer memory less than the image size and retransforming the rotated tile format image to the permuted format via an inverse transformation from the tile format to the sequential format and via a forward transformation from the sequential format to the permuted format.
  • the step of rotation includes the steps of receiving and buffering a number of tiles of a source image to be rotated, of writing to a storage medium a different number of tiles of a destination image that are fully defined by rotations of the buffered tiles of a source image, and repeating the steps of receiving and writing until the source image no longer contains tiles.
  • an image rotation method including the steps of receiving and buffering a number of tiles of a source image to be rotatec and of writing to a storage medium a different number of tiles of a destination image that are fully defined by rotations of the buffered tiles of a source image, and repeating the steps of receiving and writing until the source image no longer contains tiles.
  • an image processing system comprising an image acquisition apparatus for acquiring pixels of a digital image, apparatus for dividing the digital image into a plurality of bands each comprising k predetermined number of rows, and permutation apparatus for operating on the plurality of bands in a band by band manner and for reordering the location of the pixels.
  • an image processing system comprising a storage apparatus for receiving and for storing the bands in a band by band manner.
  • Fig. 1 is a block diagram illustration of an image storage system using the image storage method of Fig. 2B;
  • Fig. 2A is a pictorial illustration of a sequentially stored image
  • Fig. 2B is a pictorial illustration of a permutation based image storage method constructed and operative in accordance with the present invention
  • Fig. 2C is a pictorial illustration of an alternative view of the permutation based image storage method of Fig.2B.
  • Fig. 3 is. a Venn diagram illustration of the regions of overlap between multiple abstraction levels useful in an alternate embodiment of Fig. 2;
  • Fig. 4 is a pictorial illustration of an order for storing the regions of overlap of Fig. 3;
  • Fig. 5 is a pictorial illustration of an alternative order for storing the regions of overlap of Fig. 3;
  • Fig. 6 is a pictorial illustration of a method for transforming an image stored in one format, or permutation, to an image stored in another format;
  • Fig. 7 is a pictorial illustration of a tile format permutation useful for rotating stored images
  • Fig. 8 is a pictorial illustration of a method for rotating images 90° using the tile format of Fig. 7;
  • Fig. 9 is a pictorial illustration of a method for rotating images 45° using the tile format of Fig. 7;
  • Fig. 10 is a pictorial illustration of a band permutation image storage method useful in the image storage method of Figs. 2.
  • Fig. 1 illustrates an image acquisition and storage system using the image storage method of the present invention.
  • the system is based on a variation of standard direct memory address (DMA) techniques and comprises an image acquisition unit 110, typically a scanner or a CCD camera, for acquiring a digitized image and a scanner acquisition unit 112, similar in operation to a DMA controller, for receiving pixels of the digitized image, for permuting the addresses of the pixels within the digitized image according to the method of the present invention, and for transmitting the permuted pixels to temporary storage in a computer memory 114.
  • the system additionally comprises a Central Processing Unit (CPU) 116, such as the 80386 microprocessor from Intel Corp., for directing the scanner acquisition unit 112.
  • CPU Central Processing Unit
  • the computer memory 114 Since the computer memory 114 has a limited size, typically less than 10 Megabytes, which is generally significantly smaller than the size of the digitized image, typically in the tens of Megabytes, the memory 114 cannot hold the entirety of the permuted image. Thus, the permuted pixels temporarily stored in memory 114 are typically periodically transferred to a storage medium 118, via a storage medium DMA controller 119, in parallel with the entering of other permuted pixels into memory 114.
  • the storage medium 118 is operative for generally longer term storage.
  • Scanner acquisition unit 112 permutes the addresses of the pixels according to a mapping transformation which typically is chosen to optimize frequent operations on the digitized image, such as reducing the size of the image in order to display it on a display device.
  • a permutation P is denoted i ⁇ p; where i is an element of the set of initial pixel addresses, Pi is a pixel address to which the ith initial pixel is permuted, known as a permuted pixel address, and N is the number of pixels in the image. Equation 1 presents a representation for the permutation P.
  • the upper row of the notation typically indicates the initial pixel addresses i and is denoted T(P); the lower row of the notation typically indicates the permuted pixel addresses A.
  • T(C) accordingly contains the addresses ⁇ 20,35 ⁇ and the band b(C) is the interval [20 etc.
  • a further example of a band b(P) is shown in Fig. 10 which illustrates a digitized image, denoted 120, organized into bands, denoted 122a-e.
  • Each band 122 is typically comprised of a predetermined interval of pixel addresses of the image 120.
  • the bands 122 do not overlap with each other.
  • non-overlapping transformations P j whose bands, for the example shown in Fig. 10, are 122a-e. It will be appreciated that the number of non-overlapping transformations depends on the number of bands 122 chosen and is typically denoted by n b .
  • a transformation P for the entire image 120 is the product of the non- overlapping transformations P j as defined in equation 3.
  • the transformations P j are typically related to the transformation P 1 by the addition of a base value c j . If P 1 is defined by i ⁇ pli, then P j is defined by
  • each transformation P j is the transformation P 1 shifted by the base value c j .
  • the bands associated with each permutation E j are the intervals
  • the permutation is typically performed according to a transformation Py by an address generating routine G(Pj), described in more detail hereinbelow.
  • the remaining portion of the permuted band is typically written to storage medium 118 only upon termination of the permutation of the next band 122. It is a feature of the present invention that the system of Fig. 1 writes a block of data to the storage medium 118 typically only when the block of data is full. It is an additional feature of the present invention that the permutation operation does not significantly slow down the writing to the storage medium versus writing in a unpermuted manner.
  • the acquisition and permutation of a second band 122 of pixel values can be performed in parallel with the write operation for a first already permuted band.
  • This parallel reading and writing is known as double buffering.
  • memory 114 is typically divided into two buffers. Each buffer is minimally the size of one permutation P j .
  • the size of a permutation is defined as the number of elements in a band.
  • the minimum size of memory 114 for a double buffering scheme is typically twice the size of the permutations P j plus twice the size B of one block.
  • the addition of 2B is necessary because the bands may not be block aligned.
  • the maximum data buffer size is principally dependent on the size of the band 122 and secondarily dependent on both the block size, B, and the anticipated location of the band on storage medium 118. It is not dependent on the complexity of the transformation.
  • an address generating routine G(P) which generates the permuted location p, in memory 114 for each pixel as it arrives sequentially.
  • the address generating routine G(P) is less general than the permutation P in that the address generating routine G(P) is a routine which produces the permuted addresses sequentially, on successive routine executions, whereas the permutation P is a transformation which will produce any permuted address given its address as an argument.
  • the definition of the permutation P, and accordingly of permutation P 1 is typically chosen to reduce the number of i/o operations necessary to perform common processing operations on the digitized image 120.
  • the resolution of a typical CRT monitor is 75 pixels per inch whereas the typical resolution of a digitized 8 1/2 in. by 11 in. image is 300 pixels per inch.
  • typically only 1/16 of a stored image 120 can be displayed at one time on an 8 1/2 in. by 11 in. CRT monitor.
  • the image 120 In order to display the image 120, it is typically abstracted by a reduction factor r, that is, the displayed image includes every r th pixel of every r th row.
  • the reduction factor r is set to 4.
  • the permutation P is typically defined such that the full-size image is stored as r 2 smaller images, known as abstracted images, that each have 1/r the number of both rows and columns.
  • the full-size image is stored in the band structure described hereinabove where every band is organized into r 2 abstracted bands and where each abstracted band is written to the storage medium 118 as a continuous whole.
  • An abstracted image can thus be read by reading only those blocks belonging to the abstracted bands comprising the abstracted image. It will be appreciated that the abovementioned embodiment presents a savings of generally r 2 , neglecting disk granularity, over reading the entirety of the image and subsequently abstracting it.
  • Each abstracted image comprises every r th pixel of every r th row of the full-size image, but the initial pixel of each abstracted image differs among abstracted images. If the leftmost and topmost pixel is defined two-dimensionally as pixel (0,0) where the location numbers increase to the right and down, the initial pixels are chosen from the pixels belonging to the square whose comers are the pixels (0,0), (0,r-1), (r-1,0) and (r-1,r-1)- In other words, the abstractions differ by a two- dimensional phase.
  • each band 122 of the digitized image 120 is typically divided into r 2 abstracted bands where an abstracted band comprises only those elements of the band 122 belonging to one of the r 2 abstractions. Moreover, the number of rows and columns of the band 122 are typically multiples nr and mr, respectively, of r. The size of the abstracted band is mn and the size of band 122 is r 2 times the size of the abstracted band, or mnr 2 . If enough memory 114 exists to store the entire image, n can be chosen so the entire image will occupy one band. For each band, the incoming pixels belonging to a single abstracted band are located, in order, in a single continuous area of memory 114.
  • Equations (10a-e) present the permutation equation P 1 of the first band 122 of image 120.
  • Equations (11a-e) comprise the inversion formula for converting permuted indices into sequential indices.
  • Annex A Software for the address generating routine, the permutation formula, and the inversion formula, written in the C++ language, are found in Annex A.
  • the address generating routine is called next and the routine that produces the permutation function is called q.
  • the address inversion generating routine is called inext and the inversion permutation function is presented in qinv.
  • a test program, called gatest, to check the the equality of the address generating routines and the address permutation functions, and code to check that the address inversion permutation function correctly invert the address permutation function, are also included in Annex A.
  • Fig. 2A illustrates a sequentially received image
  • Fig. 2B illustrates the abovedescribed permutation definition for some abstractions of one 12x16 band of an image 130 abstracted by 4.
  • the number of rows nr in a single band is 12, where n is 3, and the number of columns mr is 16, where m is 4.
  • the size mn of an abstracted band is 12 pixeis.
  • the band 131 will be abstracted into 16 abstracted bands where each of the 16 abstracted bands is referred to by two indices x,y representing its initial pixel, or geometric phase. If each abstracted image is denoted by A, then A(0,0) is the abstracted image which includes the pixels (0,0), (0,4), (4,0), etc..
  • Fig. 2B shows some of the 16 abstracted bands. Five of the abstracted bands are labelled according to the abstracted images A(x,y) to which they belong and the pixels stored in them are indicated. In the interests of darity, the remaining abstracted bands are not filled in nor are they labelled.
  • Fig. 2B illustrates the storage order of the abstracted bands on the storage medium 118.
  • Fig 2C illustrates an alternative view of the abstracted bands shown in Fig. 2B wherein each abstracted band is shown as a rectangle corresponding to the original full scale image shown in Fig. 2A.
  • the pixels belonging to an abstracted band are stored in a continuous area of memory 114. If the pixel 0, the first pixel of the abstracted band belonging to A(0,0), is stored in memory location 0 labelled 0, then the second pixel of the abstracted band of A(0,0), pixel 4, is stored in memory location 1 labelled 1.
  • the memory locations for some indicative pixels are marked on Fig. 2B. if pixels are stored in more than 1 memory location then the memory locations indicated is understood to be multiplied by the number of memory locations needed to store a pixel in actual memory address calculations.
  • the first pixel of the abstracted band of A(1,0), pixel 1 is typically stored in the first location after the end of the abstracted band belonging to A(0,0). Since the size of each abstracted band is 12, the first location of the abstracted band belonging to A(1,0) is location 12. Accordingly, the abstracted band of A(2,0) begins in location 24, and the abstracted band belonging to A(0,1) begins in location 48.
  • abstracted images A(x,y) each comprise 1/r 2 of the pixels in image 130 but differ by a two-dimensional phase. It can be seen from Fig. 2B that the pixels of abstracted band A(0,0) come from the first, fifth, ninth and thirteenth columns of the first, fifth and ninth rows of band 130 whereas the pixels of abstracted band A(3,2) come from the fourth, eighth, twelfth and sixteenth columns of the third, seventh and twelfth rows of band 130.
  • Pixel 73 is in fact in the abstraction having the phase (1,0) and within its abstracted it is in column 2, row 1 (see Fig.3C).
  • Pixel 73 is in the 18th location sequentially from the first stored pixel stored at location 0.
  • image 130 comprised more than one band
  • the pixels belonging to the other bands would be stored in memory 114 in a manner similar to that described hereinabove. If double buffering is used, the pixels belonging to a second band are stored in the second buffer of memory 114 while the pixels already stored in the first buffer are being written to storage medium 118.
  • A(x,y) comprises more than the one abstracted band shown with respect to Fig.2B.
  • An alternative embodiment of the invention defines the permutation P such that the digitized image is organized according to a multiplicity of reduction factors. For example, it may be desired to be able to abstract an image at a range of small reduction factors 2, 3, 4, 5, and 6, rather than the fixed factor 4 in the previous embodiment. To do so, a large reduction factor is found which is the least common multiple of the entirety of small reduction factors. For the example given, the large reduction factor might be 60 since each of 2, 3, 4, 5, and 6 are factors of 60. If it is desired to store the image according to the previous embodiment, the image would have to be stored as 3600 abstracted images. However the abstracted images of the different small reduction factors are not disjoint with respect to each other. Thus, an alternative embodiment of the present invention discloses a permutation P which facilitates access to the multiplicity of abstracted images at the small reduction factors by utilizing regions of overlap between them.
  • An abstraction set S r is defined such that its elements are pixels belonging to an abstracted image at reduction factor r which begins at the (0,0) pixel.
  • FIG. 3 A multiplicity of regions or subsets, denoted S a . . . . S k on Fig. 3, are shown.
  • Subsets S a , S b , S c , S d , S e , S f , S g and S h are regions of overlap and belong to a multiplicity of sets; the remaining subsets, S i , S j and S k , are independent regions which belong to the sets S 3 , S 5 and S 2 , respectively.
  • Subsets S a , . . . ,S k are defined as follows:
  • the size of a subset is typically the number of abstracted images A(x,y) at the large reduction factor which belong to it. It will be appreciated that the S a , . . . ,S k are not of equal size, nor do they as a whole include the entirety of pixels of the in 3 120. Table 1 presents the sizes of the subsets.
  • the subsets S a , . . . ,S k enable the Venn diagram to be be ordered in a linear fashion to allow fast access to specific abstraction sets.
  • a variety of permutations utilizing the subsets S a , . . . ,S k can be performed; the optimal one will depend on the expected frequency of access to the various abstraction sets.
  • One such ordering ensures that abstraction sets at smaller reduction factors which have more elements to them be less fragmented than the ones at larger reduction factors.
  • the multiplicity of abstraction sets, S 2 , . . . ,S 6 in the example are stored in the band structure described hereinabove.
  • the band size is typically at least mnr 2 where r is the least common multiple used to create the abstracted images A(x,y).
  • Fig. 4A illustrates an example permutation of a band 122 which typically enables abstracted bands of the example abstraction sets S 2 , S 3 , S 4 and S 6 to be read sequentially.
  • the bold lines specify the subsets to be read to create abstracted sets S 2 , . . . ,S 6 respectively.
  • Abstraction set S 5 typicaly cannot be read sequentially.
  • An alternative embodiment of the invention, shown in Fig. 5, enables abstracted bands of abstraction set S 5 to be read in one sequential read.
  • the approximation to the abstracted image A(0,0) is the abstracted image A(1,0) which is in the subset S 1 .
  • the entirety of the image 120 is stored in bands 122.
  • the abstracted band belonging to subset S 1 for each band 122 is typically stored in an area of both a buffer of memory 114 and of the storage medium 118 after the abstracted bands of subsets S a , . . . ,S k .
  • the abstracted band of subset S 1 can be used to block align the abstracted bands of subsets S a , . . . ,S k .
  • elements in one abstracted band of subset S 1 are located before and after the elements of the abstracted band subsets S a , . . . ,S k , located according to either of Figs. 4 or 5, such that at least one frequently accessed abstracted band begins at the beginning of a storage medium block.
  • the image typically contains a multiple of r rows and r columns. An image that does not conform to these constraints typically is expanded to conform.
  • the minimal number of rows for the example given herein needed to make a band is 60 rows.
  • the resultant band typically occupies 597K bytes.
  • the maximal expansion of the image due to the abovementioned constraint is 1/5 inch (60 pixels) in height and width and the average expansion is half this amount.
  • an abstracted image with reduction factor n can be read by reading the subsets which are common to the factors which make up n.
  • the abstracted image at reduction factor 10 comprises the subsets S a , S c , S t , and S g .
  • n is a multiple of one of the factors r
  • its abstracted image can be read by reading the abstraction set S r of which n is an integral multiple and further abstracting S r .
  • the abstracted image with reduction factor 9 is read by reading the abstracted image S 3 and further abstracting it by a factor of 3.
  • An abstracted image with a reduction factor of n can be obtained by reading an abstracted image with a smaller reduction factor and the resampling the lower order abstracted image to obtain the desired abstracted image.
  • the abstracted image with a reduction factor of 7 can be obtained by reading the abstracted image S 4 interpolating by 7/4.
  • Annex B contains a program to generate the permutation and its inverse for the multiple abstracted image permutation described hereinabove. This program makes use of the base class GABS defined in Annex A.
  • each pixel in the reduced order image of the pyramid transformation may be a complex mathematical transformation of the full resolution image data.
  • the abovedescribed embodiment derives the reduced image pixels from a simple subsampling of the original image.
  • Equation (11e) for the inverse is replaced by three new equations (17a-c).
  • the digitized image 120 is stored in a format defined by either of the permutations disclosed hereinabove, or in any other non-sequential format, it typically can be transformed to another, more common, format for additional processing.
  • a typical processing format is the sequential format.
  • the image 120 may be stored as abstracted images of reduction factor 4 and it may be desired to perform a convolution on the entirety of the image 120.
  • the sequential format is the natural format for this calculation.
  • the stored abstracted image is typically transformed into the sequential format. This can be accomplished by simply transforming the data read from the storage medium 118 via the inverse of the transformation by which it was stored, as shown in equation 18.
  • P -1 is typically performed on a first band of data in parallel with the reading of a subsequent band of stored data from the storage medium 118. Since the time to transform the data is typically less than the time to read the stored data from the storage medium 118, the conversion from one format to the other generally does not take longer than reading the stored data without any format conversion.
  • the size of memory 114 needed to transform the data for a double buffering scheme is bounded by twice the size of the largest band of the transformed image.
  • an image can be transformed from one band structure format F 1 to another band structure format F 2 .
  • the method comprises the following steps:
  • step f Return to step a. and continue until no more data is available.
  • Fig. 6 illustrates an example of the method of transforming between two formats as described hereinabove.
  • An image 150 is stored in format F 1 whose band structure comprises equal bands of 100K pixels each.
  • An image 152 is stored in format F 2 whose band structure comprises equal bands of 150K pixels each. To transform image 150 to image 152, the following steps are typically followed.
  • the maximum space in memory 114 required for the method of converting between two formats described hereinabove, when using a double buffering scheme, is typically twice the sum of the band size required for each of the formats. It is a feature of the invention that the pixels of image 150 are read only once.
  • the data can be easily transformed without first transforming the data into the sequential format.
  • the permutation is ⁇ -P F1 where is the transformation from format F 2 to sequential format and P F1 is the transformation from sequential format to format F 1 .
  • the permutation can be precomputed, thus reducing the complexity of the transformation and the time needed to execute the transformation.
  • the maximum space in memory 114 required for this alternative method when using a double buffering scheme is typically twice the size of the band.
  • the image data can be rotated at an arbitrary angle using a tile transformation which is well known in the art.
  • the tile transformation is described in the PixarTM manual, Scope, Release 1.1, Genera 7.1 by The Graphics Division of Symbolics Inc., p. TU 2, which is incorporated herein by reference.
  • the tile transformation consecutively stores pixels which are elements of a square section of the image in a single block on the storage medium 118.
  • a tile of size u 2 comprises u rows of pixels each having u columns. Typically, a tile will occupy a block. For a block size of 4096 bytes and pixels of 4 bytes each, a 32x32 tile is typically chosen.
  • Fig. 7 illustrates the transformation for sequential format image 130 of Fig. 2A. Shown are 5 of the 124x4 tiles in which the first 192 pixels are stored.
  • the first tile 160 comprising the first four pixels of the first four rows, is stored consecutively in an area of memory 114.
  • the second tile 162, comprising the second four pixels of the first four rows, is stored after the end of the first tile 160. Thus, if first tile 160 begins at memory location 0, then second tile 162 begins at memory location 16. If pixels are stored in more than 1 memory location then the memory locations indicated is understood to be multiplied by the number of memory locations needed to store a pixel in actual memory address calculations.
  • m is the number of tiles in a row of the image.
  • a block size tile is read into a buffer of memory 114, moved to the block it will occupy when it is rotated, and then ' rotated.
  • the operation is shown in Fig. 8.
  • the operation can alternatively be performed in one read/write pass of the image by reading a tile is read into a buffer of memory 114 and directly writing it to the corresponding destination rotated by 90°.
  • This alternative method typically requires enough space in memory 114 to hold two tiles, the tile read in and the rotated tile. If double buffering is desired, to increase the speed of the computation, four buffers are typically allocated.
  • rotation at an arbitrary angle using a tile transformation can be performed. Rotation by 45°, being the rotation which typically uses the most buffer space in memory 114, is illustrated in Fig. 9 for an image organized into a 5x5 tile format.
  • the resultant rotated image is non-rectangular is irrelevant to the current discussion.
  • Well know techniques can be used to convert the rotated image to a rectangular form.
  • the rotated image can either be clipped to rectangular form, or expanded to contain the rotated image.
  • the rotation operation takes a 5x5 image 172, shown rotated in Fig. 9, rotates it and writes it to storage 118 as a 5x5 image 174.
  • the tiles of .source image 172 are denoted with the double capital letters AA-YY, those of destination image 174 are denoted with the double small letters aa-yy.
  • Image 172 is organixed into bands 176, 178, 180, 182 and 184 where each band comprises five tiles.
  • the function D is dependent on the details of the calculation of each destination pixel since each destination pixel typically is dependent on a multiplicity of source image pixels.
  • An example of the abovementioned embodiment reads from the storage medium 118 bands of tiles labelled 176, 178, 180 from image 172 and writes out all rotated tiles that are fully defined by the tiles of image 172 currently in memory 114, being tiles ee, dd, jj, cc, ii, oo, bb, hh, nn, and tt.
  • the buffers for the first band of tiles 176 can then be freed and the band 182 read from the storage medium 118 into the location previously occupied by band 176. All previously unwritten rotated tiles that are fully defined by the unrotated tiles currently in memory 114, being tiles ⁇ , gg, mm, ss and yy, are written to storage medium 118.
  • the last recently unrotated band 178 is freed and the next unrotated band 184 is read in from storage medium 118.
  • the total memory 114 requirements for this method is 3 bands of tiles, to buffer the unrotated tiles, plus one tile to hold the rotated tile. If double buffering is to be used the total memory 114 requirements is 4 bands of tiles to buffer the unrotated tiles, plus 2 tiles for the space to store rotated tiles before they are written to storage medium 118.
  • An alternative embodiment of the rotation operation utilizes virtual memory to store the entirety of the rotated image 174.
  • a Least Recently Used (LRU) page replacement policy causes the last three bands to remain resident in memory 114. If there are at least enough pages available to store 4 bands concurrently, on the order of 0(f) page faults typically occur, where f is the number of pages in the rotated image 172.
  • LRU Least Recently Used
  • the entirety of the rotated image 172 is written to storage medium 118.
  • the rotating system of CPU 116 supports direct memory mapped disk files, the rotated image can be directly mapped to the virtual memory of CPU 116 and the rotated image written to storage medium 118 via standard virtual memory mechanisms. This alternative embodiment saves system swap area and the final writing of the image from virtual memory to the storage medium 118.
  • images stored in any band format can be rotated.
  • the steps 1-6 are as follows.
  • the scanner 110 is connected to the scanner acquisition unit 112 via a parallel interface, such as a Digital Equipment Corporation (DEC) DR11 interface defined by DEC and documented in the reference Microcomputer Interface Handbook, Digital Equipment Corporation, 1980.
  • the CPU 116, memory 114 and scanner acquisition unit 112 are connected together on a CPU data and address buses 202.
  • a similar CPU bus structure and DMA scheme is described in Intel technical manual 82380 High Performance 32-bit DMA Controller with Integrated System Support Peripherals, Intel Corp 1988.
  • the system illustrated in Fig. 1 is a variant of standard DMA architectures.
  • a NEW_DATA_READY line of the scanner 110 strobes, indicating to the scanner acquisition unit 112 that a valid pixel value l i (or a color separated pixel value representing one color of a color separated pixel) is available on the DATA lines of the scanner 110. Since there is typically no handshake between the scanner 110 and the scanner acquisition unit 112, the acquisition unit 112 must be able to receive the pixel value at a rate greater than or equal to the rate that the scanner 110 acquires the pixel value.
  • the HOLD control line typically is asserted, thus requesting control of the data and address buses 202 from the CPU 116, or other permanent bus master.
  • CPU 116 When CPU 116 relinquishes control of the data and the address buses 202, it asserts the HLDA control line and -enters a hold-state until the scanner acquisition unit 112 drives the HOLD signal false.
  • the scanner acquisition unit 112 places an address on the address bus and the valid pixel value on the data bus 202.
  • the address is the permuted memory location z. for the pixel value and is calculated according to any of the methods of the present invention.
  • the scanner acquisition unit 112 generates a memory write signal and the pixel value l i is written to the proper address in memory 114.
  • the permutations described hereinabove are implemented as address generator routines typically stored in the scanner acquisition unit 112 as microcode programs.
  • the programs in Annex A and B are typically compiled into microcode to implement an address generator routine G(P).
  • the permutations are generated by precomputed lookup tables stored in ROM (read only memory) or lookup tables computed just prior to the image acquisition. The lookup tables are computed by the address generator routine G(P).
  • address generator routine G(P) of the present invention is significantly different from those of standard DMA controllers which merely generate a new address by incrementing the previous address by a predetermined value.
  • the scanner acquisition unit 112 deasserts the HOLD signal.
  • the CPU 116 deasserts the HLDA signal and continues processing. The above described process is repeated for each new pixel value l i .
  • the scanner acquisition unit 112 signals this fact to the CPU 116 via the EOP signal which typically causes a CPU 116 interrupt.
  • the CPU 116 then instructs the scanner acquisition unit 112, by writing to i/o or memory mapped registers on the scanner acquisition unit 112, to switch the base address to a second buffer of memory 114, containing the location of the next buffer.
  • the band of data stored in the first buffer is transferred to storage medium 118 via the storage medium DMA controller 119, which may typically contain an 82380 DMA controller from Intel corporation.
  • the storage medium DMA controller 119 and the storage medium 118 are typically chosen to transfer the band of data at a faster rate than that by which the scanner 110 acquires image data.
  • the first buffer will be emptied before the second buffer is completely filled.
  • gabs .cc defines a base class GABS that is used in both Annex A and Annex B.
  • phase 131 // having the phase (phase_row,phase_col)
  • This routine computes the base location of first pixel of the abstracted
  • phase_col is the column phase of the pixel.
  • phase_row is the row phase of the pixel.
  • abs_col is the column number within the abstracted band.
  • abs_row is the row number within the abstracted band.
  • phase_col scanner_row_index%r
  • phase_row (scanner_row_index/ (r*m) ) %r;
  • phase_col abs_format_index% (r*m*n) / (m*n);
  • phase_row abs_format_index/ (r*m*n) ;
  • Class GA is derived from class GABS it defines an ordering
  • the array abs_bases is a table that gives the
  • the array iabs_bases is a table that gives the
  • mapping-generator 20 20 / / Reinitialize the instance of the mapping-generator
  • the foltowing file named gm.cc defines a derived class of GABS called GM that implements the multiple size reduction embodiment.
  • Class GM is derived from class GABS it defines an ordering
  • set.hh defines the basic operations on sets.
  • AbsSet operator I (AbsSet& x)
  • AbsSet AbsSet :: operator
  • AbsSet AbsSet ::operator - (AbsSet& x) 84 ⁇ 85 return (AbsSet ((*bs) - * (x.bs)));
  • cluster defines the data structure that allows the program to access the linear ordering of the sets S a , . ... ,S k .
  • ma .cc calculates the subsets S a , . . . ,S k .
  • 66 is_scaled_image (image, e1, 1, nn, mm);
  • 67 is_scaled_image (image, c2, 2, nn, mm);
  • 68 is_scaled_image (image, c3, 3, nn, mm);
  • 69 is_scaled_image (image, c4, 4, nn, mm);
  • 70 is_scaled_image (image, c5, 5, nn, mm);
  • 71 is_scaled_image (image, c6, 6, nn, mm);

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
PCT/US1990/002889 1989-05-23 1990-05-15 Apparatus and method for image procession WO1990015379A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IL90385 1989-05-23
IL90385A IL90385A0 (en) 1989-05-23 1989-05-23 Apparatus and method for image processing

Publications (2)

Publication Number Publication Date
WO1990015379A2 true WO1990015379A2 (en) 1990-12-13
WO1990015379A3 WO1990015379A3 (en) 1991-04-04

Family

ID=11059994

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1990/002889 WO1990015379A2 (en) 1989-05-23 1990-05-15 Apparatus and method for image procession

Country Status (3)

Country Link
EP (1) EP0473713A4 (de)
IL (1) IL90385A0 (de)
WO (1) WO1990015379A2 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0725952A1 (de) * 1994-08-25 1996-08-14 Wright Technologies Pty. Ltd. Datendarstellung und zugriffsverfahren
US7606717B2 (en) * 2000-09-29 2009-10-20 International Business Machines Corporation Isolating user interface design from business object design using Java interface concepts
WO2018077096A1 (en) * 2016-10-31 2018-05-03 Huawei Technologies Co., Ltd. Image storage and reconstruction based on sub-images

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4661987A (en) * 1985-06-03 1987-04-28 The United States Of America As Represented By The Secretary Of The Navy Video processor
US4790025A (en) * 1984-12-07 1988-12-06 Dainippon Screen Mfg. Co., Ltd. Processing method of image data and system therefor
US4850028A (en) * 1985-09-04 1989-07-18 Canon Kabushiki Kaisha Image processing method and apparatus therefor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3995253A (en) * 1975-03-03 1976-11-30 International Business Machines Corporation Method and apparatus for accessing horizontal sequences, vertical sequences, and rectangular subarrays from an array stored in a modified word organized random access memory system
CA1272312A (en) * 1987-03-30 1990-07-31 Arthur Gary Ryman Method and system for processing a two-dimensional image in a microprocessor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4790025A (en) * 1984-12-07 1988-12-06 Dainippon Screen Mfg. Co., Ltd. Processing method of image data and system therefor
US4661987A (en) * 1985-06-03 1987-04-28 The United States Of America As Represented By The Secretary Of The Navy Video processor
US4850028A (en) * 1985-09-04 1989-07-18 Canon Kabushiki Kaisha Image processing method and apparatus therefor

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
(BARNSLEY et al) "A Better Way to Compress Images", BYTE, January 1988, 8 pages. *
(BARNSLEY et al) "Fractal Modelling of Real World Images", SIGGRAPH 1987, pp. 1-39. *
See also references of EP0473713A1 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0725952A1 (de) * 1994-08-25 1996-08-14 Wright Technologies Pty. Ltd. Datendarstellung und zugriffsverfahren
EP0725952A4 (de) * 1994-08-25 1997-04-09 Wright Technologies Pty Ltd Datendarstellung und zugriffsverfahren
US7606717B2 (en) * 2000-09-29 2009-10-20 International Business Machines Corporation Isolating user interface design from business object design using Java interface concepts
WO2018077096A1 (en) * 2016-10-31 2018-05-03 Huawei Technologies Co., Ltd. Image storage and reconstruction based on sub-images
US10257525B2 (en) 2016-10-31 2019-04-09 Futurewei Technologies, Inc. Image storage and reconstruction based on sub-images
CN109952595A (zh) * 2016-10-31 2019-06-28 华为技术有限公司 基于子图像的图像存储和重建
CN109952595B (zh) * 2016-10-31 2021-10-26 华为技术有限公司 基于子图像的图像存储和重建

Also Published As

Publication number Publication date
EP0473713A1 (de) 1992-03-11
IL90385A0 (en) 1989-12-15
EP0473713A4 (en) 1993-06-16
WO1990015379A3 (en) 1991-04-04

Similar Documents

Publication Publication Date Title
US6954204B2 (en) Programmable graphics system and method using flexible, high-precision data formats
US7551806B2 (en) Two stage interpolation apparatus and method for up-scaling an image on display device
US7242811B2 (en) Method and apparatus for compressing data and decompressing compressed data
US6104415A (en) Method for accelerating minified textured cache access
US5644758A (en) Bitmap block transfer image conversion
US6512517B1 (en) Volume rendering integrated circuit
US7492376B2 (en) Graphics resampling system and method for use thereof
KR19980703654A (ko) 종방향 배향의 디스플레이를 위하여 화상을 회전시키는 하드 웨어
KR950014979B1 (ko) 이미지 계산 시스템
US6847369B2 (en) Optimized packing of loose data in a graphics queue
JPH0394296A (ja) 情報処理方法
US5930407A (en) System and method for efficiently generating cubic coefficients in a computer graphics system
US5604852A (en) Method and apparatus for displaying a parametric curve on a video display
US5848199A (en) Apparatus and method for performing fast and precise spatial transformations of images
EP0752694B1 (de) Verfahren zum schnellen Ausmalen und Kopieren von Bildelementen kurzer Wortlänge in einem breiteren Rasterpufferspeicher
WO1990015379A2 (en) Apparatus and method for image procession
US6784894B2 (en) Mapping time-sorted to direction-sorted triangle vertices
EP0775978A2 (de) System und Verfahren zum Filtrieren eines Datenstromes
CA2220547A1 (en) Semiconductor memory having arithmetic function, and processor using the same
US5627956A (en) Run slice line draw engine with stretching capabilities
US5559532A (en) Method and apparatus for parallel pixel hardware cursor
US5745123A (en) Method for resizing an image by a factor of two
US20240331081A1 (en) Image processing method, chip, electronic device, and storage medium
JP3084729B2 (ja) デジタルオシロスコープ
JPH06102842A (ja) 分割シリアルレジスタ及び動作カウンタの付いたビデオランダムアクセスメモリを含むグラフィックディスプレイシステム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CA JP US

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH DE DK ES FR GB IT LU NL SE

AK Designated states

Kind code of ref document: A3

Designated state(s): CA JP US

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH DE DK ES FR GB IT LU NL SE

CFP Corrected version of a pamphlet front page

Free format text: ABSTRACT AND DRAWING SUBSTITUTED FOR CORRECT ABSTRACT AND DRAWING

WWE Wipo information: entry into national phase

Ref document number: 1990909238

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1990909238

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: CA

WWW Wipo information: withdrawn in national office

Ref document number: 1990909238

Country of ref document: EP