System and method for image rotation
First Claim
Patent Images
1. A rotation processor for processing image data to generate rotated image data, comprising:
- a rotation buffer having a first end, a second end, and the rotation buffer having a number of storage locations equal to a buffer size; and
a direct memory access controller, the direct memory access controller configured to;
write, through direct memory access in a sequence of bursts of image data according to a fill order, a first set of image data into the rotation buffer starting at a first image start location within the rotation buffer and ending at a first image end location in the rotation buffer, the first set of image data having a first image size smaller than the buffer size, the fill order causing the first set of image data to fill the rotation buffer in a direction towards the second end of the rotation buffer, and first image end location being separated from the second end by an additional buffer region;
read, from the rotation buffer through direct memory access in a reverse order that is a reverse order of the fill order, an initial output portion of the first set of image data that was written in a first set of memory locations within the rotation buffer;
read, from the rotation buffer through direct memory access in the reverse order, a subsequent output portion of the first set of image data from a second set of memory locations within the rotation buffer, wherein the second set of memory locations are different from the first set of memory locations in the rotation buffer;
write, through direct memory access in the reverse order, subsequent to writing the first set of image data and prior to the reading of the initial output portion of the first set of image data, an initial input portion of a second set of image data into the additional buffer region; and
write, through direct memory access in the reverse order and contemporaneously with and prior to completing the reading the initial output portion the first set of image data from the first set of memory locations within the rotation buffer, a subsequent input portion of the second set of image data into the first set of memory locations within the rotation buffer, wherein the first set of memory locations within the rotation buffer contained the initial output portion of the first image data prior to the reading the subsequent output portion of the first set of image data.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method to provide 180-degree rotation of image data at full throughput. The system includes a memory access controller that writes bursts of image data into a rotation buffer. The image data is then read out of the rotation buffer in the reverse order from which it was written to thereby accomplish rotation. By alternating the position in the rotation buffer in which the image data is written such that an image is either written into the buffer from top and read from the bottom or written into the buffer from the bottom and read out from the top, a one page rotation buffer of can be used to concurrently process two pages.
-
Citations
12 Claims
-
1. A rotation processor for processing image data to generate rotated image data, comprising:
-
a rotation buffer having a first end, a second end, and the rotation buffer having a number of storage locations equal to a buffer size; and a direct memory access controller, the direct memory access controller configured to; write, through direct memory access in a sequence of bursts of image data according to a fill order, a first set of image data into the rotation buffer starting at a first image start location within the rotation buffer and ending at a first image end location in the rotation buffer, the first set of image data having a first image size smaller than the buffer size, the fill order causing the first set of image data to fill the rotation buffer in a direction towards the second end of the rotation buffer, and first image end location being separated from the second end by an additional buffer region; read, from the rotation buffer through direct memory access in a reverse order that is a reverse order of the fill order, an initial output portion of the first set of image data that was written in a first set of memory locations within the rotation buffer; read, from the rotation buffer through direct memory access in the reverse order, a subsequent output portion of the first set of image data from a second set of memory locations within the rotation buffer, wherein the second set of memory locations are different from the first set of memory locations in the rotation buffer; write, through direct memory access in the reverse order, subsequent to writing the first set of image data and prior to the reading of the initial output portion of the first set of image data, an initial input portion of a second set of image data into the additional buffer region; and write, through direct memory access in the reverse order and contemporaneously with and prior to completing the reading the initial output portion the first set of image data from the first set of memory locations within the rotation buffer, a subsequent input portion of the second set of image data into the first set of memory locations within the rotation buffer, wherein the first set of memory locations within the rotation buffer contained the initial output portion of the first image data prior to the reading the subsequent output portion of the first set of image data. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for generating duplex copies from hardcopy originals, comprising:
-
a scanning device capturing scanned image data from a multi-page document, the scanning device having a first scanning station for capturing image data from a first side of each page of the multi-page document and a second scanning station for capturing image data from a second side of each page of the multi-page document; a rotation processor generating rotated image data, the rotation processor including; a scanline buffer receiving the scanned image data from the second side of first and second pages of the multi-page document, the scanned image data of the second side of each of the first and second pages needing to be rotated 180-degrees, a rotation buffer having a first end, a second end, and the rotation buffer having a number of storage locations equal to a buffer size, and a direct memory access controller, the direct memory access controller operating to; write a first set of the scanned image data from the second side of the first page into the rotation buffer according to a fill order starting at a first image start location within the rotation buffer and ending at a first image end location in the rotation buffer, the first set of scanned image data having a first image size smaller than the buffer size, the fill order causing the first set of scanned image data to fill the rotation buffer in a direction towards the second end of the rotation buffer, and first image end location being separated from the second end by an additional buffer region; read a second set of image data that is less than a complete page of bursts of the scanned image data from the second side of the second page; read, from the rotation buffer in a reverse order that is a reverse order of the fill order, an initial output portion that is less than a complete page of bursts of the scanned image data from the second side of the first page that was written in a first set of memory locations within the rotation buffer; read, from the rotation buffer in the reverse order, a subsequent output portion of the scanned image data from a second set of memory locations within the rotation buffer, the subsequent portion comprising a remainder, relative to the less than a complete page of bursts, of the complete page of bursts of the scanned image data from the second side of the first page, wherein the second set of memory locations are different from the first set of memory locations in the rotation buffer; write in the reverse order, subsequent to writing the first set of scanned image data and prior to the reading of the initial output portion, an initial input portion of a second set of image data into the additional buffer region; and write, contemporaneously with and prior to completing the reading the initial output portion the first set of scanned image data from the first set of memory locations within the rotation buffer, a subsequent input portion of the second set of image data into the first set of memory locations within the rotation buffer, wherein the first set of memory locations within the rotation buffer contained the initial output portion prior to the reading the subsequent output portion; and an image output terminal connected to receive the rotated image data. - View Dependent Claims (7)
-
-
8. A method of processing image data to generate rotated image data, the method comprising:
-
receiving image data from a scanning device, the image data including first side data and second side data, both the first side data and the second side data comprise image data that needs to be rotated 180-degrees; writing, starting at a first image start location within a rotation buffer and ending at a first image end location in the rotation buffer, bursts of a first set of image data corresponding to the first side data into the rotation buffer according to a fill order, the rotation buffer having a first end, a second end, and the rotation buffer having a number of storage locations equal to a buffer size, the first set of image data having a first image size smaller than the buffer size, the fill order causing the first set of image data to fill the rotation buffer in a direction towards the second end of the rotation buffer, and first image end location being separated from the second end by an additional buffer region; reading a second set of image data corresponding to the second side data; reading, from the rotation buffer in a reverse order that is a reverse order of the fill order, an initial output portion of the first set of image data that was written in a first set of memory locations within the rotation buffer; reading, from the rotation buffer through direct memory access in the reverse order, a subsequent output portion of the first set of image data from a second set of memory locations within the rotation buffer, wherein the second set of memory locations are different from the first set of memory locations in the rotation buffer; writing in the reverse order, subsequent to writing the first set of image data and prior to the reading the initial output portion of the first set of image data, an initial input portion of a second set of image data into the additional buffer region; and writing, in the reverse order and contemporaneously with and prior to completing the reading the initial output portion the first set of image data from the first set of memory locations within the rotation buffer, a subsequent input portion of the second set of image data into the first set of memory locations within the rotation buffer, wherein the first set of memory locations within the rotation buffer contained the initial output portion of the first image data prior to the reading the subsequent output portion of the first set of image data. - View Dependent Claims (9, 10, 11, 12)
-
Specification