US2023308679A1PendingUtilityA1
Motion prediction coding with coframe motion vectors
Est. expirySep 14, 2038(~12.1 yrs left)· nominal 20-yr term from priority
H04N 19/176H04N 19/577H04N 19/52H04N 19/513H04N 19/51
62
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
Video coding using motion prediction coding with coframe motion vectors includes generating a reference coframe spatiotemporally concurrent with a current frame from a sequence of input frames, wherein each frame from the sequence of input frames has a respective sequential location in the sequence of input frames, and wherein the current frame has a current sequential location in the sequence of input frames, generating an encoded frame by encoding the current frame using the reference coframe, including the encoded frame in an encoded bitstream, and outputting the encoded bitstream.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A non-transitory computer-readable storage medium having stored thereon an encoded bitstream, wherein the encoded bitstream is organized for decoding by operations comprising:
generating a reconstructed frame by decoding a current frame from the encoded bitstream, wherein decoding includes:
identifying a current block from the current frame;
identifying a previously decoded block based on coding information for the current block;
determining whether motion information for the previously decoded block includes a coframe motion vector for the previously decoded block;
determining whether to identify a prediction block for decoding the current block based on a reference coframe;
in response to a determination to omit identifying the prediction block for decoding the current block based on the reference coframe:
in response to a determination that the motion information for the previously decoded block includes the coframe motion vector for the previously decoded block:
identifying an alignment block in the reference coframe based on a spatial location of the previously decoded block and the coframe motion vector for the previously decoded block;
determining a motion vector for the alignment block based on motion field information for the alignment block;
determining a motion vector prediction for the current block based on the motion vector for the alignment block and the coframe motion vector for the previously decoded block;
determining a motion vector for the current block based on the motion vector prediction for the current block; and
identifying the prediction block based on a reference frame indicated by the motion vector for the current block;
in response to a determination to identify the prediction block for decoding the current block based on the reference coframe:
in response to a determination that the motion information for the previously decoded block includes the coframe motion vector for the previously decoded block:
determining a coframe motion vector prediction for the current block based on the coframe motion vector for the previously decoded block;
in response to a determination that the motion information for the previously decoded block omits the coframe motion vector for the previously decoded block:
identifying a forward motion vector from the motion information for the previously decoded block;
identifying a backward motion vector from the motion information for the previously decoded block;
determining a coframe motion vector prediction for the current block based on the forward motion vector and the backward motion vector;
determining a coframe motion vector for the current block based on the coframe motion vector prediction for the current block; and
identifying the prediction block based on the reference coframe and the coframe motion vector for the current block;
generating a decoded block corresponding to the current block based on the prediction block; and
including the decoded block in a decoded frame; and
outputting the reconstructed frame based on the decoded frame.
2 . The method of claim 1 , wherein decoding includes:
generating the reference coframe for the current frame based on a motion field at a spatiotemporal location corresponding to a spatiotemporal location of the current frame such that the reference coframe is indicative of linear motion at the spatiotemporal location among a sequence of frames, wherein the sequence of frames includes the current frame.
3 . The method of claim 1 , wherein:
the coframe motion vector for the previously decoded block indicates a spatial displacement between a location of the previously decoded block in the current frame and a location in the reference coframe; and the coframe motion vector for the current block indicates a spatial displacement between a location of the current block in the current frame and a location in the reference coframe.
4 . The method of claim 1 , wherein determining whether to identify the prediction block for decoding the current block based on the reference coframe includes:
decoding the coding information for the current block from the encoded bitstream; and determining whether to identify the prediction block for decoding the current block based on the reference coframe based on the coding information for the current block.
5 . The method of claim 1 , wherein determining the motion vector for the alignment block includes:
obtaining the motion vector for the alignment block by averaging the motion field information corresponding to the alignment block.
6 . The method of claim 1 , wherein determining the motion vector prediction for the current block based on the motion vector for the alignment block and the coframe motion vector for the previously decoded block includes:
determining a motion vector prediction for the previously decoded block based on the motion vector for the alignment block and the coframe motion vector for the previously decoded block; and identifying the motion vector prediction for the previously decoded block as the motion vector prediction for the current block.
7 . The method of claim 1 , wherein:
determining the motion vector for the alignment block includes:
determining a first motion vector for the alignment block; and
determining a second motion vector for the alignment block; and
determining the motion vector prediction for the current block includes:
determining a first motion vector prediction for the current block as a sum of the first motion vector for the alignment block and the coframe motion vector; and
determining a second motion vector prediction for the current block as a sum of the second motion vector for the alignment block and the coframe motion vector.
8 . The method of claim 1 , wherein:
the current frame is a frame from a sequence of frames, wherein each frame from the sequence of frames has a respective sequential location in the sequence of frames, wherein the current frame has a current sequential location in the sequence of frames; the backward motion vector indicates a backward reference frame at a first sequential location preceding the current sequential location; the forward motion vector indicates a forward reference frame at a second sequential location subsequent to the current sequential location; and determining the coframe motion vector prediction for the current block includes:
determining a sum of a product of a quotient of the second sequential location and a sum of the first sequential location and the second sequential location and the backward motion vector and a product of a quotient of the first sequential location and the sum of the first sequential location and the second sequential location and the forward motion vector.
9 . A non-transitory computer-readable storage medium having stored thereon an encoded bitstream, the encoded bitstream generated by performing operations comprising:
generating a reference coframe spatiotemporally concurrent with a current frame from a sequence of input frames, wherein each frame from the sequence of input frames has a respective sequential location in the sequence of input frames, and wherein the current frame has a current sequential location in the sequence of input frames; generating an encoded frame by encoding the current frame using the reference coframe; including the encoded frame in the encoded bitstream; and outputting the encoded bitstream.
10 . The non-transitory computer-readable storage medium of claim 9 , wherein encoding the current frame using the reference coframe includes:
generating a prediction block for encoding a current block in the current frame based on a reconstructed reference frame, wherein the reconstructed reference frame has a sequential location in the sequence of input frames that differs from the current sequential location; determining a motion vector prediction for the current block based on a coframe motion vector for a previously coded block neighboring the current block in the current frame; and including an indication of the motion vector prediction for the current block in the encoded bitstream.
11 . The non-transitory computer-readable storage medium of claim 10 , wherein determining the motion vector prediction for the current block includes:
identifying an alignment block in the reference coframe based on a spatial location of the previously coded block and the coframe motion vector for the previously coded block; determining a motion vector for the alignment block based on motion field information for the alignment block; determining the motion vector prediction for the current block based on the motion vector for the alignment block and the coframe motion vector for the previously coded block includes: determining a motion vector prediction for the previously coded block based on the motion vector for the alignment block and the coframe motion vector for the previously coded block; and identifying the motion vector prediction for the previously coded block as the motion vector prediction for the current block.
12 . The non-transitory computer-readable storage medium of claim 9 , wherein encoding the current frame using the reference coframe includes:
generating a prediction block for encoding a current block in the current frame based on the reference coframe; determining a coframe motion vector prediction for the current block, wherein determining the coframe motion vector prediction for the current block includes:
in response to a determination that motion information for a previously coded block neighboring the current block in the current frame includes a coframe motion vector for the previously coded block, determining the coframe motion vector prediction for the current block based on the coframe motion vector for the previously coded block; and
in response to a determination that the motion information for the previously coded block includes a compound motion vector for the previously coded block, determining the coframe motion vector prediction for the current block based on the compound motion vector for the previously coded block; and
including an indication of the coframe motion vector prediction for the current block in the encoded bitstream.
13 . The non-transitory computer-readable storage medium of claim 12 , wherein determining the coframe motion vector prediction for the current block based on the compound motion vector for the previously coded block includes:
identifying a forward motion vector from the motion information for the previously coded block; identifying a backward motion vector from the motion information for the previously coded block; and determining a coframe motion vector prediction for the current block based on the forward motion vector and the backward motion vector.
14 . A non-transitory computer-readable storage medium having stored thereon an encoded bitstream, the encoded bitstream generated by performing operations comprising:
generating an encoded frame by encoding a current frame from an input bitstream, wherein encoding includes:
identifying a current block from the current frame;
identifying a previously coded block;
determining whether motion information for the previously coded block includes a coframe motion vector for the previously coded block;
determining whether to identify a prediction block for encoding the current block based on a reference coframe;
in response to a determination to omit identifying the prediction block for encoding the current block based on the reference coframe:
in response to a determination that the motion information for the previously coded block includes the coframe motion vector for the previously coded block:
identifying an alignment block in the reference coframe based on a spatial location of the previously coded block and the coframe motion vector for the previously coded block;
determining a motion vector for the alignment block based on motion field information for the alignment block;
determining a motion vector prediction for the current block based on the motion vector for the alignment block and the coframe motion vector for the previously coded block; and
including an indication of the motion vector prediction for the current block in the encoded bitstream; and
in response to a determination to identify the prediction block for encoding the current block based on the reference coframe, determining a coframe motion vector prediction for the current block, wherein determining the coframe motion vector prediction for the current block includes:
in response to a determination that the motion information for the previously coded block includes the coframe motion vector for the previously coded block:
determining the coframe motion vector prediction for the current block based on the coframe motion vector for the previously coded block;
in response to a determination that the motion information for the previously coded block omits the coframe motion vector for the previously coded block:
identifying a forward motion vector from the motion information for the previously coded block;
identifying a backward motion vector from the motion information for the previously coded block; and
determining the coframe motion vector prediction for the current block based on the forward motion vector and the backward motion vector; and
including the indication of the coframe motion vector prediction for the current block in the encoded bitstream; and
outputting the encoded bitstream.
15 . The method of claim 14 , wherein encoding includes:
generating the reference coframe for the current frame based on a motion field at a spatiotemporal location corresponding to a spatiotemporal location of the current frame such that the reference coframe is indicative of linear motion at the spatiotemporal location among a sequence of frames, wherein the sequence of frames includes the current frame.
16 . The method of claim 14 , wherein:
the coframe motion vector for the previously coded block indicates a spatial displacement between a location of the previously coded block in the current frame and a location in the reference coframe; and the coframe motion vector for the current block indicates a spatial displacement between a location of the current block in the current frame and a location in the reference coframe.
17 . The method of claim 14 , wherein determining the motion vector for the alignment block includes:
obtaining the motion vector for the alignment block by averaging the motion field information corresponding to the alignment block.
18 . The method of claim 14 , wherein determining the motion vector prediction for the current block based on the motion vector for the alignment block and the coframe motion vector for the previously coded block includes:
determining a motion vector prediction for the previously coded block based on the motion vector for the alignment block and the coframe motion vector for the previously coded block; and identifying the motion vector prediction for the previously coded block as the motion vector prediction for the current block.
19 . The method of claim 14 , wherein:
determining the motion vector for the alignment block includes:
determining a first motion vector for the alignment block; and
determining a second motion vector for the alignment block; and
determining the motion vector prediction for the current block includes:
determining a first motion vector prediction for the current block as a sum of the first motion vector for the alignment block and the coframe motion vector; and
determining a second motion vector prediction for the current block as a sum of the second motion vector for the alignment block and the coframe motion vector.
20 . The method of claim 14 , wherein:
the current frame is a frame from a sequence of input frames, wherein each frame from the sequence of input frames has a respective sequential location in the sequence of input frames, wherein the current frame has a current sequential location in the sequence of input frames; the backward motion vector indicates a backward reference frame at a first sequential location preceding the current sequential location; the forward motion vector indicates a forward reference frame at a second sequential location subsequent to the current sequential location; and determining the coframe motion vector prediction for the current block includes:
determining a sum of a product of a quotient of the second sequential location and a sum of the first sequential location and the second sequential location and the backward motion vector and a product of a quotient of the first sequential location and the sum of the first sequential location and the second sequential location and the forward motion vector.Join the waitlist — get patent alerts
Track US2023308679A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.