Patent US4658430A successfully refreshed from Google Patents.
← Back to Patent Explorer
US4658430A Expired / Lapsed US ⏱️ 0.0 years remaining

System for rotating binary images

Assignee: International Business Machines Corp
•
Filing: 1984-12-27
•
Granted: 1987-04-14
•
Expires: 2004-12-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for converting an image in run representation form into a raster image which is rotated by some multiple of 90° from the orientation of the original image is disclosed wherein the original image data which is stored in run end or run length form may be divided and stored in discontiguous blocks. In implementing a 90° rotation, the image data is conceptually divided into vertical strips, each of which is independently rotated to create a horizontal strip of the output image. The rotation process is carried out by firstly converting the run representation image data to raster form, dividing the data in each row among a number of intermediate buffers, each of which contains the data from one vertical strip of the original image. The contents of each buffer are rotated and rearranged in an available buffer to form a horizontal strip of the rotated image ready for raster readout. Similarly, a convenient method of rotating the input image 180° is also described wherein the original image is read in run representation form a row at a time and the rows are converted to raster form and placed in storage in reverse order, with the order of the bits in each row also reversed.

Inventors

  • 👤 Karen L. Anderson
  • 👤 Joan L. Mitchell

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 14:28
CPC Classifications
G; G06; G06T; G06T3/00; G06T3/60; G06T3/602; G06T3/606

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 173 words
A method for rotation of an image in run end or run length form by 180° from the orientation of the original image to create an image in raster form, comprising the steps of: beginning at a first end of an original image representation and a second end of an output image area; storing a plurality of run representations of a line of said original image in a buffer; initializing a line of output data; converting each run representation in said buffer to a picture element representation in which the bits read in the opposite direction from the line described by the run representations; storing said picture element representation of said line; repeating the steps of storing, initializing, converting, and storing for remaining lines of said original image, progressing from said second end of the output image to said first end and from said first end of the original image to said second end, until said original image has been converted to a bit map representation rotated 180° in the output image area.
Claim 2
Independent Claim 173 words
A method for rotation of an image in run end or run length form by 180° from the orientation of the original image to create an image in raster form, comprising the steps of: beginning at a first end of an original image representation and a second end of an output image area; storing a plurality of run representations of a line of said original image in a buffer; initializing a line of output data; converting each run representation in said buffer to a picture element representation in which the bits read in the opposite direction from the line described by the run representations; storing said picture element representation of said line; repeating the steps of storing, initializing, converting, and storing for remaining lines of said original image, progressing from said second end of the output image to said first end and from said first end of the original image to said second end, until said original image has been converted to a bit map representation rotated 180° in the output image area.
Claim 3
Dependent Claim 24 words
A method as in claim 1, in which said initializing step includes the step of setting all bits in the output area to zero.
Claim 4
Dependent Claim 50 words
A method as in claim 1, in which said initializing step includes the step of testing an output pointer to determine whether a discontinuity in the output image storage area has been reached, and in that case resetting said pointer to address the next section of the output image area.
Claim 5
Dependent Claim 45 words
A method as in claim 1, in which said first end of said original image is the upper left hand corner of said original image and said second end of the output image area is the lower right hand corner of said output image area.
Claim 6
Independent Claim 285 words
A method for converting an image in run end or run length form into an image in raster form rotated 90° from the orientation of the original image, comprising the steps of: initially storing a plurality of run representations of a first bit row of said original image in a first buffer; converting said run representations to data in raster form; distributing the data obtained by said conversion into at least one other buffer; repeating said steps of storing, converting, and distributing on successive contiguous bit rows of said original image until all the bit rows of the original image have been converted and stored in raster representation in said at least one other buffer; rotating a first block containing a portion of each of a plurality of bit columns of said original image from said stored data in a first one of said at least one other buffer into a first available buffer; repeating said step of rotating on successive blocks containing additional portions of each of a plurality of bit columns of said original image until all of the data stored in said first one of said at least one other buffer has been rotated such that a plurality of contiguous bit columns of said original image are stored as contiguous bit rows of the rotated image in said first available buffer; and repeating said steps of rotating and repeating on successive blocks into successive available buffers until all the stored data in said at least one buffer has been rotated such that contiguous bit rows of said original image are stored as contiguous bit columns, whereby said original image can be read out oriented 90° with respect to its initial stored orientation.
Claim 7
Independent Claim 285 words
A method for converting an image in run end or run length form into an image in raster form rotated 90° from the orientation of the original image, comprising the steps of: initially storing a plurality of run representations of a first bit row of said original image in a first buffer; converting said run representations to data in raster form; distributing the data obtained by said conversion into at least one other buffer; repeating said steps of storing, converting, and distributing on successive contiguous bit rows of said original image until all the bit rows of the original image have been converted and stored in raster representation in said at least one other buffer; rotating a first block containing a portion of each of a plurality of bit columns of said original image from said stored data in a first one of said at least one other buffer into a first available buffer; repeating said step of rotating on successive blocks containing additional portions of each of a plurality of bit columns of said original image until all of the data stored in said first one of said at least one other buffer has been rotated such that a plurality of contiguous bit columns of said original image are stored as contiguous bit rows of the rotated image in said first available buffer; and repeating said steps of rotating and repeating on successive blocks into successive available buffers until all the stored data in said at least one buffer has been rotated such that contiguous bit rows of said original image are stored as contiguous bit columns, whereby said original image can be read out oriented 90° with respect to its initial stored orientation.
Claim 8
Dependent Claim 29 words
A method as in claim 5, including the further step of zeroing said at least one other buffer used by said conversion step before any run representations are converted.
Claim 9
Dependent Claim 68 words
A method as in claim 5, in which said distributing step creates said blocks by storing consecutive horizontally adjacent original image bytes at intervals of N bytes within each said at least one other buffer, where N is the number of bits in a line of the original image, and storing consecutive vertically adjacent original image bytes in consecutive bytes within each said at least one other buffer.
Claim 10
Dependent Claim 156 words
A method as in claim 7, in which said rotating and repeating steps comprise positioning a first pointer at one end of a buffer containing stored data and a second pointer at the same end of an available buffer; rotating the 8×8 bit block formed by the eight consecutive bytes addressed by said first pointer; storing the bytes of the rotated block at intervals of M bytes beginning at the point addressed by said second pointer, where M is the number of bytes in a line of the output image; incrementing said first and second pointers by 8 and 1, respectively; testing said second pointer to determine whether it has reached an offset of some multiple of M bytes from the beginning of the available buffer, and in that case incrementing said second pointer by 7M; repeating said rotating, storing, incrementing, and testing steps until all blocks in the buffer containing stored data have been rotated.
Claim 11
Dependent Claim 29 words
A method as in claim 8, in which said rotating step further comprises setting all bits in said available buffer to zero before rotating data into said available buffer.
Claim 12
Dependent Claim 34 words
A method as in claim 9, in which said rotating step further comprises scanning for long fields of zero input bytes and omitting the rotation of 8×8 bit blocks which contain all zero bits.
Claim 13
Independent Claim 205 words
A system for rotation of an image in run end or run length form by 180° from the orientation of the original image to create an image in raster form, comprising: buffer means for containing run representation data of an original image; means for providing an output image area; means for beginning at a first end of an original image representation and a second end of said output image area; means for storing a plurality of run representations of a line of said original image in said buffer means; means for initializing a lineof output data; means for converting each run representation in said buffer means to a picture element representation in which the bits read in the opposite direction from the line described by the run representations and storing said picture element representation of said line in said output image area; means for repeating the steps of storing, initializing, converting, and storing for remaining lines of said original image, progressing from said second end of the output image to said first end and from said first end of the original image to said second end, until said original image has been converted to a bit map representation rotated 180° in the output image area.
Claim 14
Independent Claim 205 words
A system for rotation of an image in run end or run length form by 180° from the orientation of the original image to create an image in raster form, comprising: buffer means for containing run representation data of an original image; means for providing an output image area; means for beginning at a first end of an original image representation and a second end of said output image area; means for storing a plurality of run representations of a line of said original image in said buffer means; means for initializing a lineof output data; means for converting each run representation in said buffer means to a picture element representation in which the bits read in the opposite direction from the line described by the run representations and storing said picture element representation of said line in said output image area; means for repeating the steps of storing, initializing, converting, and storing for remaining lines of said original image, progressing from said second end of the output image to said first end and from said first end of the original image to said second end, until said original image has been converted to a bit map representation rotated 180° in the output image area.
Claim 15
Dependent Claim 24 words
A system as in claim 11, in which said means for initializing comprises means for setting all bits in the output area to zero.
Claim 16
Dependent Claim 50 words
A system as in claim 11, in which said means for initializing comprises means for testing an output pointer to determine whether a discontinuity in the output image storage area has been reached, and in that case resetting said pointer to address the next section of the output image area.
Claim 17
Dependent Claim 45 words
A system as in claim 11, in which said first end of said original image is the upper left hand corner of said original image and said second end of the output image area is the lower right hand corner of said output image area.
Claim 18
Independent Claim 323 words
A system for converting an image in run end or run length form into an image in raster form rotated 90° from the orientation of the original image, comprising: a first buffer; at least one other buffer; at least one available buffer; means for initially storing a plurality of run representations of a first bit row of said original image in said first buffer; means for converting said run representations to data in raster form; means for distributing the data obtained by said conversion into said at least one other buffer; means for repeating said steps of storing, converting, and distributing on successive contiguous bit rows of said original image until all the bit rows of the original image have been converted and stored in raster representation in said at least one other buffer; means for rotating a first block containing a portion of each of a plurality of bit columns of said original image from said stored data in a first one of said at least one other buffer into a first one of said at least one available buffer; means for repeating said step of rotating on successive blocks containing additional portions of each of a plurality of bit columns of said original image until all of the data stored in said first one of said at least one other buffer has been rotated such that a plurality of contiguous bit columns of said original image are stored as contiguous bit rows of the rotated image in said first one of said at least one available buffer; and means for repeating said steps of rotating and repeating on successive blocks into successive available buffers until all the stored data in said at least one other buffer has been rotated such that contiguous bit rows of said original image are stored as contiguous bit columns, whereby said original image can be read out oriented 90° with respect to its initial stored orientation.
Claim 19
Independent Claim 323 words
A system for converting an image in run end or run length form into an image in raster form rotated 90° from the orientation of the original image, comprising: a first buffer; at least one other buffer; at least one available buffer; means for initially storing a plurality of run representations of a first bit row of said original image in said first buffer; means for converting said run representations to data in raster form; means for distributing the data obtained by said conversion into said at least one other buffer; means for repeating said steps of storing, converting, and distributing on successive contiguous bit rows of said original image until all the bit rows of the original image have been converted and stored in raster representation in said at least one other buffer; means for rotating a first block containing a portion of each of a plurality of bit columns of said original image from said stored data in a first one of said at least one other buffer into a first one of said at least one available buffer; means for repeating said step of rotating on successive blocks containing additional portions of each of a plurality of bit columns of said original image until all of the data stored in said first one of said at least one other buffer has been rotated such that a plurality of contiguous bit columns of said original image are stored as contiguous bit rows of the rotated image in said first one of said at least one available buffer; and means for repeating said steps of rotating and repeating on successive blocks into successive available buffers until all the stored data in said at least one other buffer has been rotated such that contiguous bit rows of said original image are stored as contiguous bit columns, whereby said original image can be read out oriented 90° with respect to its initial stored orientation.
Claim 20
Dependent Claim 28 words
An apparatus as in claim 15, further comprising means for zeroing said at least one other buffer used by said conversion step before any run representations are converted.
Claim 21
Dependent Claim 71 words
A system as in claim 15, in which said distributing means comprises means for creating said blocks by storing consecutive horizontally adjacent original image bytes at intervals of N bytes within each said at least one other buffer, where N is the number of bits in a line of the original image, and storing consecutive vertically adjacent original image bytes in consecutive bytes within each said at least one other buffer.
Claim 22
Dependent Claim 183 words
A system as in claim 17, in which said means for rotating and repeating comprises means for positioning a first pointer at one end of one of said at least one other buffer containing stored data and means for positioning a second pointer at the same end of said one of said at least one available buffer; means for rotating the 8×8 bit block formed by the eight consecutive bytes addressed by said first pointer and storing the bytes of the rotated block at intervals of M bytes beginning at the point addressed by said second pointer, where M is the number of bytes in a line of the output image; means for incrementing said first and second pointers by 8 and 1, respectively; means for testing said second pointer to determine whether it has reached an offset of some multiple of M bytes from the beginning of the available buffer, and in that case incrementing said second pointer by 7M; means for repeating said rotating, storing, incrementing, and testing steps until all blocks in said buffer containing stored data have been rotated.
Claim 23
Dependent Claim 34 words
A system as in claim 18, in which said means for rotating and repeating further comprises means for setting all bits in said available buffer to zero before rotating data into said available buffer.
Claim 24
Dependent Claim 39 words
A system as in claim 19, in which said means for rotating and repeating further comprises means for scanning for long fields of zero input bytes and omitting the rotation of 8×8 bit blocks which contain all zero bits.

References Cited (Backward Citations)

US4052699A Cited
US4168488A Cited
US4225929A Cited
EP0137147A2 Cited
EP0149119A2 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1990-04-13 1990-10-13 1991-04-14 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1994-04-13 1994-10-13 1995-04-14 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1998-04-13 1998-10-13 1999-04-14 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag