EP0473713A4 - Apparatus and method for image procession - Google Patents

Apparatus and method for image procession

Info

Publication number
EP0473713A4
EP0473713A4 EP19900909238 EP90909238A EP0473713A4 EP 0473713 A4 EP0473713 A4 EP 0473713A4 EP 19900909238 EP19900909238 EP 19900909238 EP 90909238 A EP90909238 A EP 90909238A EP 0473713 A4 EP0473713 A4 EP 0473713A4
Authority
EP
European Patent Office
Prior art keywords
image
band
abstracted
pixels
format
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP19900909238
Other languages
English (en)
Other versions
EP0473713A1 (de
Inventor
Joel Isaacson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of EP0473713A1 publication Critical patent/EP0473713A1/de
Publication of EP0473713A4 publication Critical patent/EP0473713A4/en
Withdrawn legal-status Critical Current

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 reso ⁇ lution 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 acquisi ⁇ tion 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 receiv ⁇ ing and for storing the digital image in the multiplicity of sets.
  • the permuta ⁇ tion 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 pro ⁇ cessing method including the steps of acquiring pixels of a digital image, receiving the pixels subse ⁇ quent 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 pro ⁇ cessing 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 ord ⁇ ering 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 for ⁇ mat 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 retransform- ing 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 rota ⁇ tion 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 con ⁇ structed 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 per ⁇ muting 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 tem ⁇ porarily 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 t where i is an element of the set of initial pixel addresses, / »- is a pixel address to which the z ' th 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 permuta ⁇ tion 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 .
  • 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 x by the addition of a base value c r - If P is defined by i ⁇ u , then P j is defined by
  • each transformation P is the transformation P x shifted by the base value c ⁇ .
  • the permutation is typically performed according to a transformation P by an address generating routine G ⁇ fj), described in more detail hereinbelow.
  • G ⁇ fj address generating routine
  • 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 ft arrives sequentially.
  • the address generating routine G(P) is less general than the permutation in that the address generating rou ⁇ tine 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 permu ⁇ tation P, and accordingly of permutation P t is typically chosen to reduce the number of i/o opera ⁇ tions 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 Mr 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-l), (r-1,0) and (r-l,r-l)- 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 belo n ging to one of the r 2 abstractions.
  • 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.
  • 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 x of the first band 122 of image 120.
  • ⁇ c ⁇ ' mod r (10a)
  • Equations (11a-e) comprise the inversion formula for converting permuted indices into sequential indices.
  • 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 con ⁇ tinuous 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 loca ⁇ tions 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 belong ⁇ ing 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 digi ⁇ tized 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 p ⁇ cels 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 ⁇ , ⁇ • ⁇ S k on Fig. 3, are shown.
  • Subsets S a , S b , S e , S d , S t , S f , S t and S h are regions of overlap and belong to a multiplicity of sets; the remaining subsets, _?,-, S j and S k , are independent regions which belong to the sets S 3 , S 5 and _> 2 , respectively.
  • Si Si — S 2 — S 3 — Ss
  • S a S a which is defined by equation 13
  • 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 f sets S a , • • • ,S k are not of equal size, nor do they as a whole include the entirety of pixels of the in 3120. Table 1 presents the sizes of the subsets.
  • the subsets S ⁇ , • • • ,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, _ 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 , ⁇ ⁇ • ,S 6 respectively. Abstraction set S s typicaly cannot be read sequentially.
  • the approximation to the abstracted image A(0,0) is the abstracted image A(1,0) which is in the subset Sj.
  • the entirety of the image 120 is stored in bands 122.
  • the abstracted band belonging to subset Si 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 can be used to block align the abstracted bands of subsets S a , • ⁇ ⁇ ,S k .
  • elements in one abstracted band of subset S t 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 con ⁇ form 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 reso ⁇ lution 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).
  • c M c ,Q r ) mod r (17a)
  • the digitized image 120 is stored in a format defined by either of the permutations dis ⁇ closed 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 x to another band structure format F 2 .
  • the method comprises the fol ⁇ lowing steps: a. Read as many bands of stored image data stored in the Pi format as necessary to produce enough data to fHf a band in format F 2 . b. Convert the data in format F i to sequential format. c. Convert the data in sequential format to format F 2 . Convert only as much data as necessary to produce an integral number of bands of format F 2 . d. Store the integral number of bands of F 2 on storage medium 118. e. Free the memory 114 of the integral number of bands in format F 2 . 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 x 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 for ⁇ mats 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 -PF 1 where is the transformation from format P 2 to sequential format and P F ⁇ is the transfor ⁇ mation from sequential format to format i.
  • 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 typ ⁇ ically 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 Symbol ⁇ ics Inc., p. TU 2, which is incorporated herein by reference.
  • the tile transformation consecu ⁇ tively 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 « 2 comprises u rows of pixels each having « 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 loca ⁇ tion 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 for ⁇ mat.
  • the resultant rotated image is non-rectangular is irrelevant to the current discus ⁇ sion.
  • 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 organized into bands 176, 178, 180, 182 and 184 where each band comprises five tiles.
  • a source image 172 tile affects number of destination image 174 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 unro ⁇ tated band 184 is read in from storage medium 118.
  • All previously unwritten rotated tiles that are fully defined by the unrotated tiles currently in memory 114, being tiles ff, 11, rr, xx, kk, qq, ww, pp, w, and mi, are written to 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 require ⁇ ments 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 /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 acquisi ⁇ tion 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 Equip ⁇ ment Corporation, 1980.
  • the CPU 116, memory 114 and scanner acquisition unit 112 are con ⁇ nected 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 illus ⁇ trated 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 /,- (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 /,- 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 / / .
  • 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, contain ⁇ ing 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.
  • next function is called to generate the next / / address when the next pixel value is presented // by the scanner.
  • 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(BitSet ⁇ b)
  • cluster 115 ⁇
  • cluster 115 ⁇
  • the following file named cluster. hh defines the data structure that allows the program to access the linear ordering of the sets S a , • • ⁇ ,S k .
  • mapping-generator 2 / / Reinitialize the instance of the mapping-generator

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
EP19900909238 1989-05-23 1990-05-15 Apparatus and method for image procession Withdrawn EP0473713A4 (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
EP0473713A1 EP0473713A1 (de) 1992-03-11
EP0473713A4 true EP0473713A4 (en) 1993-06-16

Family

ID=11059994

Family Applications (1)

Application Number Title Priority Date Filing Date
EP19900909238 Withdrawn EP0473713A4 (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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPM768794A0 (en) * 1994-08-25 1994-09-15 Wright Technologies Pty Ltd Data representation and access method
AU7606601A (en) * 2000-09-29 2002-04-11 International Business Machines Corporation Isolating UI design from business object design using java interface concepts
US10257525B2 (en) 2016-10-31 2019-04-09 Futurewei Technologies, Inc. Image storage and reconstruction based on sub-images

Citations (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
EP0288672A2 (de) * 1987-03-30 1988-11-02 International Business Machines Corporation Verfahren und Vorrichtung zur Bildmanipulation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3584718D1 (de) * 1984-12-07 1992-01-02 Dainippon Screen Mfg Bilddatenverarbeitungsverfahren und system dafuer.
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

Patent Citations (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
EP0288672A2 (de) * 1987-03-30 1988-11-02 International Business Machines Corporation Verfahren und Vorrichtung zur Bildmanipulation

Also Published As

Publication number Publication date
EP0473713A1 (de) 1992-03-11
IL90385A0 (en) 1989-12-15
WO1990015379A2 (en) 1990-12-13
WO1990015379A3 (en) 1991-04-04

Similar Documents

Publication Publication Date Title
US7551806B2 (en) Two stage interpolation apparatus and method for up-scaling an image on display device
US6104415A (en) Method for accelerating minified textured cache access
US5083119A (en) State machine controlled video processor
US4809065A (en) Interactive system and related method for displaying data to produce a three-dimensional image of an object
JP3255943B2 (ja) 画像作成方法
US5020115A (en) Methods and apparatus for dynamically scaling images
US7242811B2 (en) Method and apparatus for compressing data and decompressing compressed data
Wolberg et al. Separable image warping with spatial lookup tables
US6512517B1 (en) Volume rendering integrated circuit
US5345542A (en) Proportional replication mapping system
US5742272A (en) Accelerated full screen video playback
US9947078B2 (en) Image resampling with geometric transformation
US7492376B2 (en) Graphics resampling system and method for use thereof
KR950014979B1 (ko) 이미지 계산 시스템
KR19980703654A (ko) 종방향 배향의 디스플레이를 위하여 화상을 회전시키는 하드 웨어
JPH11505636A (ja) ダイナミック・イメージ・リサイジング
JPH0394296A (ja) 情報処理方法
US6847369B2 (en) Optimized packing of loose data in a graphics queue
US5930407A (en) System and method for efficiently generating cubic coefficients in a computer graphics system
US5848199A (en) Apparatus and method for performing fast and precise spatial transformations of images
EP0473713A4 (en) Apparatus and method for image procession
EP0752694B1 (de) Verfahren zum schnellen Ausmalen und Kopieren von Bildelementen kurzer Wortlänge in einem breiteren Rasterpufferspeicher
EP0519694A2 (de) Verfahren zur Zuteilung von Speicherplätzen ausserhalb des Bildschirms
US4970604A (en) Screen display enhancing system
US20030052886A1 (en) Transferring a digital video stream through a series of hardware modules

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19911125

AK Designated contracting states

Kind code of ref document: A1

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

A4 Supplementary search report drawn up and despatched

Effective date: 19930426

AK Designated contracting states

Kind code of ref document: A4

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

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 19941202