Technologies are presented that allow efficient pixel-based image and/or video warping and scaling. An image processing system may include a memory and an accelerator unit communicatively coupled with the memory. The accelerator unit may, based on configuration settings, receive, from a memory, at l
Technologies are presented that allow efficient pixel-based image and/or video warping and scaling. An image processing system may include a memory and an accelerator unit communicatively coupled with the memory. The accelerator unit may, based on configuration settings, receive, from a memory, at least a portion of an input image as an array of neighboring four-cornered shapes; and process each shape by: determining locations of an array of output pixels delineated by four corner locations of the shape via linearization; interpolating a value of each pixel of the array of output pixels; and storing the interpolated pixel values in the memory. For warping, the array of neighboring four-cornered shapes may include an array of neighboring distorted tetragons that approximate distortion of the input image, and the interpolated pixel values may represent a warped output image. For scaling, the array of neighboring four-cornered shapes may include an array of neighboring rectangles.
대표청구항▼
1. An image processing system, comprising: a memory to store a region of an input image; anda hardware accelerator unit communicatively coupled with the memory, wherein the hardware accelerator unit comprises a hardware accelerator unit local memory buffer and wherein the hardware accelerator unit i
1. An image processing system, comprising: a memory to store a region of an input image; anda hardware accelerator unit communicatively coupled with the memory, wherein the hardware accelerator unit comprises a hardware accelerator unit local memory buffer and wherein the hardware accelerator unit is to, based on configuration settings: receive, from the memory to the hardware accelerator unit local memory buffer, only a portion of the region of the input image comprising a portion of a four-cornered shape of the input image, wherein the portion of the region comprises an entirety of the four-cornered shape in one direction and only a portion of the four-cornered shape in a perpendicular direction;process, only after receiving the entire portion of the region of the input image into the hardware accelerator unit local memory buffer, the portion of the four-cornered shape by: determining locations of output pixels corresponding to the portion of the four-cornered shape;interpolating a value of each of the output pixels; andstoring the interpolated pixel values in the memory to generate a portion of an output image;prefetch, during processing of the portion of the four-cornered shape, a second portion of the region of the input image comprising a second portion of the four-cornered shape; andprocess the second portion of the four-cornered shape to generate a second portion of the output image. 2. The image processing system of claim 1, wherein the four-cornered shape comprises one of an array of neighboring distorted tetragons that approximate distortion of the input image, wherein each distorted tetragon is defined by four coordinates wherein a location of at least one of the four coordinates corresponds with a location of a corner of the distorted tetragon, wherein the locations of the output pixels are determined based on the four coordinates, and wherein the interpolated pixel values represent a warped output image. 3. The image processing system of claim 1, wherein the four-cornered shape comprises one of an array of neighboring rectangles, and wherein the interpolated pixel values represent a scaled output image based on fractional distances between output pixels. 4. The image processing system of claim 1, wherein the processing of the portion of the region of the input image includes: scanning the portion of the region of the input image by processing pixels within the portion of the region of the input image sequentially by row, wherein when a first address is reached, scanning is continued at a second address representing a first pixel of a first row below already-processed pixels, wherein the portion of the region comprises the entirety of the four-cornered shape in a horizontal direction. 5. The image processing system of claim 1, wherein the processing of the portion of the region of the input image includes: scanning the portion of the region of the input image by processing pixels within the portion of the region of the input image sequentially by column, wherein when a first address is reached, scanning is continued at a second address representing a first pixel of a first column to the right of already-processed pixels, wherein the portion of the region comprises the entirety of the four-cornered shape in a vertical direction. 6. The image processing system of claim 1, wherein the configuration settings include a processing mode, a scanning type, an interpolation type, a performance setting, a bit precision setting, block dimension settings, a source address of start of input region, an end address from which to wrap a scan, a wrap address to which to wrap the scan, an input stride setting for reading input pixels, a destination address of start of output region, and an output stride setting for storing output pixels. 7. The image processing system of claim 6, wherein the processing mode includes one of a scaling mode or a re-shaping mode. 8. The image processing system of claim 6, wherein the scanning type includes one of a slide down scan or a slide right scan. 9. The image processing system of claim 6, wherein the interpolation type includes one of nearest neighbor interpolation, bi-linear interpolation, bi-cubic interpolation, or a look-up table. 10. The image processing system of claim 6, wherein the interpolation type includes a poly-phase filter configurable in filter size and filter coefficients. 11. The image processing system of claim 6, wherein the performance setting relates to a number of output pixels per clock cycle and includes one of: one pixel per clock cycle (1×1);two pixels horizontally and one pixel vertically per clock cycle (2×1);one pixel horizontally and two pixels vertically per clock cycle (1×2); ortwo pixels horizontally and two pixels vertically per clock cycle (2×2). 12. The image processing system of claim 1, further comprising: at least one processor;a communication interface communicatively coupled with the at least one processor and a network;a user interface including a navigation device and display, the user interface communicatively coupled with the at least one processor; andstorage that stores application logic, the storage communicatively coupled with the at least one processor,wherein the at least one processor is to load and execute the application logic, wherein the execution of the application logic includes presenting graphics via the user interface. 13. At least one non-transitory computer program product for image processing, including at least one computer readable medium having computer program logic stored therein, the computer program logic including: logic to receive only a portion of a region an input image comprising a portion of a four-cornered shape of the input image, wherein the portion of the region comprises an entirety of the four-cornered shape in one direction and only a portion of the four-cornered shape in a perpendicular direction;logic to process, only after receiving the entire portion of the region of the input image into the hardware accelerator unit local memory buffer, the portion of the four-cornered shape, including: logic to determine locations of output pixels corresponding to the portion of the four-cornered shape;logic to interpolate a value of each of the output pixels;logic to store the interpolated pixel values to generate a portion of an output image;logic to prefetch, during processing of the portion of the four-cornered shape, a second portion of the region of the input image comprising a second portion of the four-cornered shape; andlogic to process the second portion of the four-cornered shape to generate a second portion of the output image. 14. The at least one computer program product of claim 13, wherein the four-cornered shape comprises one of an array of neighboring distorted tetragons that approximate distortion of the input image, wherein each distorted tetragon is defined by four coordinates wherein a location of at least one of the four coordinates corresponds with a location of a corner of the distorted tetragon, wherein the locations of the output pixels are determined based on the four coordinates, and wherein the interpolated pixel values represent a warped output image. 15. The at least one computer program product of claim 13, wherein the four-cornered shape comprises one of an array of neighboring rectangles, and wherein the interpolated pixel values represent a scaled output image based on fractional distances between output pixels. 16. The at least one computer program product of claim 13, wherein the logic to process the portion of the region of the input image includes logic to: scan the portion of the region of the input image by processing pixels within the portion of the region of the input image sequentially by row, wherein when a first address is reached, scanning is continued at a second address representing a first pixel of a first row below already-processed pixels, wherein the portion of the region comprises the entirety of the four-cornered shape in a horizontal direction. 17. The at least one computer program product of claim 13, wherein the logic to process the portion of the region of the input image includes logic to: scan the portion of the region of the input image by processing pixels within the portion of the region of the input image sequentially by column, wherein when a first address is reached, scanning is continued at a second address representing a first pixel of a first column to the right of already-processed pixels, wherein the portion of the region comprises the entirety of the four-cornered shape in a vertical direction. 18. A method of image processing, comprising: receiving, from a memory and by an accelerator unit, only a portion of a region of an input image comprising a portion of a four-cornered shape of the input image, wherein the portion of the region comprises an entirety of the four-cornered shape in one direction and only a portion of the four-cornered shape in a perpendicular direction;processing, by the accelerator unit and only after receiving the entire portion of the region of the input image into the hardware accelerator unit local memory buffer, the portion of the four-cornered shape by: determining locations of output pixels corresponding to the portion of the four-cornered shape;interpolating a value of each of the output pixels; andstoring the interpolated pixel values in the memory to generate a portion of an output image;prefetching, during processing of the portion of the four-cornered shape, a second portion of the region of the input image comprising a second portion of the four-cornered shape; andprocessing the second portion of the four-cornered shape to generate a second portion of the output image. 19. The method of claim 18, wherein the four-cornered shape comprises one of an array of neighboring distorted tetragons that approximate distortion of the input image, wherein each distorted tetragon is defined by four coordinates wherein a location of at least one of the four coordinates corresponds with a location of a corner of the distorted tetragon, wherein the locations of the of output pixels are determined based on the four coordinates, and wherein the interpolated pixel values represent a warped output image. 20. The method of claim 18, wherein the receiving the four-cornered shape comprises one of an array of neighboring rectangles, and wherein the interpolated pixel values represent a scaled output image based on fractional distances between output pixels. 21. The method of claim 18, wherein the processing of the portion of the region of the input image includes: scanning the portion of the region of the input image by processing pixels within the portion of the region of the input image sequentially by row, wherein when a first address is reached, scanning is continued at a second address representing a first pixel of a first row below already-processed pixels, wherein the portion of the region comprises the entirety of the four-cornered shape in a horizontal direction. 22. The method of claim 18, wherein the processing of the portion of the region of the input image includes: scanning the portion of the region of the input image by processing pixels within the portion of the region of the input image sequentially by column, wherein when a first address is reached, scanning is continued at a second address representing a first pixel of a first column to the right of already-processed pixels, wherein the portion of the region comprises the entirety of the four-cornered shape in a vertical direction.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (7)
Le Dinh, Chon Tam; Nguyen, Ngoc Lan, Content adaptive resizer.
Burks, Rickey Dale; Oakes, III, Charles Lee; Morlen, Randy Ray; Prasad, Bharat; Morris, Michael Frank; Hua, Xia, Systems and methods to use a digital camera to remotely deposit a negotiable instrument.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.