Rolling shutter blur reduction using motion data
AssigneeOculus VR, LLC
InventorsDov Katz, Simon Hallam
Life of this patent
Estimating the term…
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.
Claims18
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.
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.
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.
Dependencies are inferred from the claim text.