Ltr frame updating in video encoding
US-2024414352-A1 · Dec 12, 2024 · US
US9237355B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9237355-B2 |
| Application number | US-94517010-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 12, 2010 |
| Priority date | Feb 19, 2010 |
| Publication date | Jan 12, 2016 |
| Grant date | Jan 12, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A video encoder may encode video data by adaptively selecting between one-eighth-pixel and one-quarter-pixel precision motion vectors, and signal the selected precision. In one example, an apparatus includes a video encoder to encode a block of video data using a one-eighth-pixel precision motion vector when use of the one-eighth-pixel precision motion vector is determined to be preferable for the block over a one-quarter-pixel precision motion vector, and to generate a signal value indicative of the use of the one-eighth-pixel precision motion vector for the block, and an output interface to output the encoded block and the signal value. A video decoder may be configured to receive the signal value and the encoded block, analyze the signal value to determine whether the block was encoded using one-eighth-pixel precision or one-quarter-pixel precision, and decode the block based on the determination.
Opening claim text (preview).
The invention claimed is: 1. A method of encoding video data, the method comprising: encoding a block of video data relative to a portion of a reference frame using a first precision motion vector when use of the first precision motion vector is determined to be preferable for the block over the use of a second precision motion vector; determining an encoding context for the block based, at least in part, on whether neighboring blocks to the block are encoded using motion vectors having the same sub-integer precision of the first precision motion vector or the second precision motion vector; generating, based on selecting a variable length code, a signal value indicative of both the use of the first precision motion vector for the block and a reference frame index value that identifies the reference frame, the variable length code being selected from a set of codes corresponding to the determined encoding context, a length of the selected code being shorter than a length of another code in the set of codes that is indicative of the use of the second precision motion vector with respect to the reference frame, and the use of the first precision motion vector being determined to be preferable for the block based, at least in part, on whether the reference frame is a latest reference frame from a list of reference frames as indicated by the reference frame index value; and outputting the encoded block and the signal value. 2. The method of claim 1 , wherein generating the signal value comprises setting a value for a flag associated with the block to indicate the use of the first precision motion vector. 3. The method of claim 1 , wherein the block comprises a partition of a macroblock, and wherein generating the signal value comprises setting a value for a flag associated with the macroblock to indicate the use of the first precision motion vector, the method further comprising encoding each of the partitions of the macroblock using a respective motion vector having the same sub-integer pixel precision as the first precision motion vector when the flag indicates the use of the first precision motion vector for the block. 4. The method of claim 1 , wherein encoding the block comprises: calculating the first precision motion vector for the block; and calculating a motion vector difference value comprising a difference between the first precision motion vector and a motion predictor for the block. 5. The method of claim 4 , wherein calculating the motion vector difference value comprises: quantizing the motion predictor to have the same sub-integer pixel precision as the first precision motion vector; and calculating the difference between the first precision motion vector for the block and the quantized motion predictor. 6. An apparatus for encoding video data, the apparatus comprising: a video encoder configured to: encode a block of video data relative to a portion of a reference frame using a first precision motion vector when use of the first precision motion vector is determined to be preferable for the block over the use of a second precision motion vector, determine an encoding context for the block based, at least in part, on whether neighboring blocks to the block are encoded using motion vectors having the same sub-integer pixel precision as the first precision motion vector or the second precision motion vector, generate, based on selecting a variable length code, a signal value indicative of both the use of the first precision motion vector for the block and a reference frame index value that identifies the reference frame, the variable length code being selected from a set of codes corresponding to the determined encoded context, a length of the selected code being shorter that a length of another code in the set of codes that is indicative of the use of the second precision motion vector with respect to the reference frame, and the use of the first precision motion vector being determined to be preferable for the block based, at least in part, on whether the reference frame is a latest reference frame from a list of reference frames as indicated by the reference frame index value; and a transmitter configured to output the encoded block and the signal value. 7. The apparatus of claim 6 , wherein to generate the signal value, the video encoder is configured to set a value for a flag associated with the block to indicate the use of the first precision motion vector. 8. The apparatus of claim 6 , wherein the block comprises a partition of a macroblock, and wherein to generate the signal value, the video encoder is configured to set a value for a flag associated with the macroblock to indicate the use of the first precision motion vector, and wherein the video encoder is configured to encode each of the partitions of the macroblock using a respective motion vector having the same sub-integer pixel precision as the first precision motion vector when the flag indicates the use of the first precision motion vector for the block. 9. An apparatus for encoding video data, the apparatus comprising: means for encoding a block of video data relative to a portion of a reference frame using a first precision motion vector when use of the first precision motion vector is determined to be preferable for the block over the use of a second precision motion vector; means for determining an encoding context for the block based on whether neighboring blocks to the block are encoded using motion vectors having the same sub-integer pixel precision as the first precision motion vector or the second precision motion vector; means for generating, based on selecting a variable length code, a signal value indicative of both the use of the first precision motion vector for the block and a reference frame index value that identifies the reference frame, the variable length code being selected from a set of codes corresponding to the determined encoded context, and the use of the first precision motion vector being determined to be preferable for the block based, at least in part, on whether the reference frame is a latest reference frame from a list of reference frames as indicated by the reference frame index value; and means for outputting the encoded block and the signal value. 10. The apparatus of claim 9 , wherein the block comprises a partition of a macroblock, wherein the means for generating the signal value comprises means for setting a value for a flag associated with the macroblock to indicate the use of the first precision motion vector, and wherein the means for encoding the block further comprises means for encoding each of the partitions of the macroblock using a respective motion vector having the same sub-integer pixel precision as the first precision motion vector when the flag indicates the use of the first precision motion vector for the block. 11. The apparatus of claim 9 , wherein the means for encoding the block comprises: means for calculating the first precision motion vector for the block; and means for calculating a motion vector difference value comprising a difference between the first precision motion vector and a motion predictor for the block. 12. The apparatus of claim 11 , wherein the means for calculating the motion vector difference value comprises: means for quantizing the motion predictor to have the same sub-integer pixel precision as the first precision motion vector; and means for calculating the difference between the first precision motion vector for the block and the quantized motion predictor. 13. A non-transitory computer-readable storage medium comprising instructions that, when executed, cause a processor to: encod
in combination with predictive coding · CPC title
Embedding additional information in the video signal during the compression process (H04N19/517, H04N19/68, H04N19/70 take precedence) · CPC title
Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one (H04N19/23 takes precedence) · CPC title
characterised by the element, parameter or selection affected or controlled by the adaptive coding · CPC title
with sub-pixel accuracy · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.