IP Library › Granted Patent US 12,725,221
Granted Patent B2
US 12,725,221 · App. 18/760,316 · Granted Sep 1, 2026

System and method for rotating, scaling, cropping, and de-warping streamed video

Inventors: Micah W. TerHaar (Byron Center, MI); Dale M. Radcliff (Hudsonville, MI); Thomas A. Case, IV (Cedar Springs, MI); Andrew J. Oosterhouse (Hudsonville, MI)
Assignee: GENTEX CORPORATION
G06T3/4007G06T3/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,725,221
App. No.
18/760,316
Granted
Sep 1, 2026
Kind
B2
Abstract

A method for processing streamed video from an imager that provides raw image data including input image frames. The method including: a) selecting segment data for two segments for each row of the input image frames using parameters for a desired image transformation; b) selecting step data containing information on how far to move in an input image frame before generating an output pixel and the location for the output pixel; c) receiving the input image frames from the imager in a streaming fashion, the image processor buffering rows of one of the input image frames; d) processing each of the buffered rows of one of the input image frames using the segment data and step data to map and modify the input pixels, interpolating to create one of the output image frames having output pixels; and e) repeating steps a)-d) for each row of each input image frame.

Claims (41)

1 . An imaging system for processing streamed video images, the system comprising:

an imager providing raw image data including a plurality of input image frames each having a plurality of input pixels arranged in a number M of rows and a number N of columns;

a controller for selecting segment data for two segments for each row of the input image frames using parameters for a desired image transformation, wherein each of the two segments controls high-level details for each row, the controller also selecting step data containing information on how far to move in an input image frame before generating an output pixel and the location for the output pixel;

an image processor coupled to the imager and the controller, the image processor configured to:

a) receive the segment data and step data with which to process the input image frames to affect the desired image transformation;

b) receive the input image frames from the imager in a streaming fashion, the image processor buffering rows of one of the input image frames;

c) process each of the buffered rows of one of the input image frames using the segment data and step data to map and modify the input pixels, interpolating to create one of the output image frames having a plurality of output pixels arranged in a number P of rows and a number Q of columns, wherein the number of rows buffered in step b) is sufficient to perform interpolation; and

d) repeat steps a)-c) for each row of each input image frame and for each input image frame; and

a display for displaying a streamed video including at least the output image frames.

2 . The imaging system of claim 1 , wherein the image processor comprises a field-programmable gate array (FPGA).

3 . The imaging system of claim 1 , wherein the number of rows buffered in step b) is two rows of each input image frame.

4 . The imaging system of claim 1 , wherein the interpolation performed is bilinear interpolation.

5 . The imaging system of claim 1 , wherein the parameters represent at least one of a desired rotation angle, a scaling factor, a crop region, and dewarp of the desired image transformation.

6 . The imaging system of claim 1 , wherein the segment and step data are updated on a frame-by-frame basis.

7 . The imaging system of claim 1 , wherein the streamed video displayed by the display has a different resolution than the raw image data received from the imager.

8 . The imaging system of claim 1 , wherein P and Q have different values from N and M.

9 . A display system for processing streamed video images received from an imager, the imager providing raw image data including a plurality of input image frames each having a plurality of input pixels arranged in a number M of rows and a number N of columns, the display system comprising:

a controller for selecting segment data for two segments for each row of the input image frames using parameters for a desired image transformation, wherein each of the two segments controls high-level details for each row, the controller also selecting step data containing information on how far to move in an input image frame before generating an output pixel and the location for the output pixel, wherein the segment and step data are updated on a frame-by-frame basis;

an image processor coupled to the imager and the controller, the image processor configured to:

a) receive the segment data and step data with which to process the input image frames to affect the desired image transformation;

b) receive the input image frames from the imager in a streaming fashion, the image processor buffering rows of one of the input image frames;

c) process each of the buffered rows of one of the input image frames using the segment data and step data to map and modify the input pixels, interpolating to create one of the output image frames having a plurality of output pixels arranged in a number P of rows and a number Q of columns, wherein the number of rows buffered in step b) is sufficient to perform interpolation; and

d) repeat steps a)-c) for each row of each input image frame and for each input image frame; and

a display for displaying a streamed video including at least the output image frames.

10 . The display system of claim 9 , wherein the image processor comprises a field-programmable gate array (FPGA).

11 . The display system of claim 9 , wherein the number of rows buffered in step b) is two rows of each input image frame.

12 . The display system of claim 9 , wherein the interpolation performed is bilinear interpolation.

13 . The display system of claim 9 , wherein the parameters represent at least one of a desired rotation angle, a scaling factor, a crop region, and dewarp of the desired image transformation.

14 . The display system of claim 9 , wherein the streamed video displayed by the display has a different resolution than the raw image data received from the imager.

15 . The display system of claim 9 , wherein P and Q have different values from N and M.

16 . A method for processing streamed video images received from an imager, the imager providing raw image data including a plurality of input image frames each having a plurality of input pixels arranged in a number M of rows and a number N of columns, the method comprising:

a) selecting segment data for two segments for each row of the input image frames using parameters for a desired image transformation, wherein each of the two segments controls high-level details for each row;

b) selecting step data containing information on how far to move in an input image frame before generating an output pixel and the location for the output pixel;

c) receiving the input image frames from the imager in a streaming fashion, the image processor buffering rows of one of the input image frames;

d) processing each of the buffered rows of one of the input image frames using the segment data and step data to map and modify the input pixels, interpolating to create one of the output image frames having a plurality of output pixels arranged in a number P of rows and a number Q of columns, wherein the number of rows buffered in step b) is sufficient to perform interpolation;

e) repeating steps a)-d) for each row of each input image frame and for each input image frame; and

f) displaying a streamed video including at least the output image frames.

17 . The method of claim 16 , wherein the number of rows buffered in step c) is two rows of each input image frame.

18 . The method of claim 16 , wherein the interpolation performed is bilinear interpolation.

19 . The method of claim 16 , wherein the parameters represent at least one of a desired rotation angle, a scaling factor, a crop region, and dewarp of the desired image transformation.

20 . The method of claim 16 , wherein the segment and step data are updated on a frame-by-frame basis.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2024
From: TERHAAR, MICAH W.; OOSTERHOUSE, ANDREW J.; RADCLIFF, DALE M.; CASE, THOMAS A., IV
To: GENTEX CORPORATION
Reel/Frame 067883/0172 →
Continuity (2)
Provisional Application 63511383 · Jun 30, 2023
Related Publication 20250005706A1 · Jan 2, 2025
References Cited (7)
US 8265422B1 · Jin · 2012 [cited by examiner]
US 10110814B1 · Day · 2018 [cited by applicant]
US 20180108113A1 · Guo · 2018 [cited by examiner]
US 20180315170A1 · Mills · 2018 [cited by applicant]
US 20190281319A1 · Galpin et al. · 2019 [cited by applicant]
US 20190370930A1 · Dahlberg et al. · 2019 [cited by applicant]
US 20210209725A1 · Humbert et al. · 2021 [cited by applicant]