IP Library › Granted Patent US 9,854,170
Granted Patent B2
US 9,854,170 · App. 14/983,430 · Granted Dec 26, 2017

Rolling shutter blur reduction using motion data

Inventors: Dov Katz (Irvine, CA); Simon Hallam (San Jose, CA)
Assignee: Oculus VR, LLC
H04N5/23267H04N5/23258
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 9,854,170
App. No.
14/983,430
Filed
Dec 29, 2015
Granted
Dec 26, 2017
Kind
B2
Art Unit
2664
USPC
348/208.2
Abstract

Embodiments relate to adjusting an image frame based on motion sensor data. An image frame including image data for a plurality of rows of the image frame is captured sequentially row-by-row. Motion sensor data corresponding to the image frame is also captured. Motion vectors describing motion between each row of the image frame are determined based on the motion sensor data. An image data translation is calculated for each row of image frame based on the motion vector for the row. The image frame is adjusted based on the image data translation for each row of the image frame to generate an adjusted image frame.

Claims (38)

1. A method comprising:

capturing an image frame by an image capture device, the image frame including image data for all of the plurality of rows of the image frame captured by the image capture device, the image data captured sequentially row-by-row, wherein capturing the image frame comprises providing a timestamp for each row of the plurality of rows;

capturing motion sensor data corresponding to the image frame, wherein capturing the motion sensor data comprises providing a timestamp for the motion sensor data;

determining motion vectors based on the motion sensor data, the motion vectors describing motion between each row of the plurality of rows of the image frame;

calculating an image data translation for each row of the plurality of rows based on the motion vector for the row; and

adjusting the image frame based on the image data translation for each row of the plurality of rows to generate an adjusted image frame.

2. The method of claim 1 further comprising synchronizing the image frame and motion sensor data based on the timestamp of one or more rows of the plurality of rows and the timestamp of the motion sensor data.

3. The method of claim 1 , further comprising identifying that the motion sensor data varies above a threshold stability; and wherein determining the motion vectors is performed responsive to the identifying that the motion sensor data varies above the threshold stability.

4. The method of claim 1 , wherein the image data translation for each row describes an amount and a direction image data of the row is to be translated.

5. The method of claim 1 , wherein adjusting the image frame comprises:

adjusting image data for a row and rows sequentially following the row based on the image data translation of the row.

6. The method of claim 5 , wherein adjusting the image data for the row and the rows sequentially following the row comprises translating the image data for the row and the rows sequentially following the row.

7. A non-transitory computer-readable storage medium storing executable computer instructions that, when executed by a processor, cause the processor to perform steps comprising:

capturing an image frame by an image capture device, the image frame including image data for all of the plurality of rows of the image frame captured by the image capture device, the image data captured sequentially row-by-row, wherein capturing the image frame comprises providing a timestamp for each row of the plurality of rows;

capturing motion sensor data corresponding to the image frame, wherein capturing the motion sensor data comprises providing a timestamp for the motion sensor data;

determining motion vectors based on the motion sensor data, the motion vectors describing motion between each row of the plurality of rows of the image frame;

calculating an image data translation for each row of the plurality of rows based on the motion vector for the row; and

adjusting the image frame based on the image data translation for each row of the plurality of rows to generate an adjusted image frame.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions that, when executed by the processor, cause the processor to perform steps comprising synchronizing the image frame and motion sensor data based on the timestamp of one or more rows of the plurality of rows and the timestamp of the motion sensor data.

9. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions that, when executed by the processor, cause the processor to perform steps comprising identifying that the motion sensor data varies above a threshold stability, and wherein determining the motion vectors is performed responsive to the identifying that the motion sensor data varies above the threshold stability.

10. The non-transitory computer-readably storage medium of claim 7 , wherein the image data translation for each row describes an amount and a direction image data of the row is to be translated.

11. The non-transitory computer readable storage medium of claim 7 , wherein adjusting the image frame comprises:

adjusting image data for a row and rows sequentially following the row based on the image data translation of the row.

12. The non-transitory computer readable storage medium of claim 11 , wherein adjusting the image data for the row and the rows sequentially following the row comprises translating the image data for the row and the rows sequentially following the row.

13. A system comprising:

a non-transitory computer-readable storage medium storing executable computer instructions that, when executed, perform steps comprising:

capturing an image frame by an image capture device, the image frame including image data for all of the plurality of rows of the image frame captured by the image capture device, the image data captured sequentially row-by-row, wherein capturing the image frame comprises providing a timestamp for each row of the plurality of rows;

capturing motion sensor data corresponding to the image frame, wherein capturing the motion sensor data comprises providing a timestamp for each row of the plurality of rows;

determining motion vectors based on the motion sensor data, the motion vectors describing motion between each row of the plurality of rows of the image frame;

calculating an image data translation for each row of the plurality of rows based on the motion vector for the row; and

adjusting the image frame based on the image data translation for each row of the plurality of rows to generate an adjusted image frame; and

a processor configured to execute the computer instructions.

14. The system of claim 13 , wherein the instructions that, when executed, perform steps comprising synchronizing the image frame and motion sensor data based on the timestamp of one or more rows of the plurality of rows and the timestamp of the motion sensor data.

15. The system of claim 13 , wherein the instructions that, when executed, perform steps comprising identifying that the motion sensor data varies above a threshold stability, wherein determining the motion vectors is performed responsive to the identifying that the motion sensor data varies above the threshold stability.

16. The system of claim 13 , wherein the image data translation for each row describes an amount and a direction image data of the row is to be translated.

17. The system of claim 13 , wherein adjusting the image frame comprises:

adjusting image data for a row and rows sequentially following the row based on the image data translation of the row.

18. The system of claim 17 , wherein adjusting the image data for the row and the rows sequentially following the row comprises translating the image data for the row and the rows sequentially following the row.

Assignments (3)
CHANGE OF NAME Recorded Jun 8, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060315/0224 →
CHANGE OF NAME Recorded Sep 12, 2018
From: OCULUS VR, LLC
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 047178/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2016
From: KATZ, DOV; HALLAM, SIMON
To: OCULUS VR, LLC
Reel/Frame 038388/0935 →
Continuity (1)
Related Publication 20170187961A1 · Jun 29, 2017