WO1990015379A2 - Apparatus and method for image procession - Google Patents
Apparatus and method for image procession Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0007—Image acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-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)
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)
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)
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)
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 |
-
1989
- 1989-05-23 IL IL90385A patent/IL90385A0/xx unknown
-
1990
- 1990-05-15 WO PCT/US1990/002889 patent/WO1990015379A2/en not_active Application Discontinuation
- 1990-05-15 EP EP19900909238 patent/EP0473713A4/en not_active Withdrawn
Patent Citations (3)
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)
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)
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 |