US-12627807-B2 - Magnitude coding and decoding using prediction
Abstract
Encoding and/or decoding a block of a video frame may be based on a previously decoded reference block in the same frame or a different frame. The reference block may be indicated by a block vector (BV). A block vector (BV) may be based on a block vector predictor (BVP) and a block vector difference (BVD). The BVD may be indicated based on a prediction about the magnitude of the BVD, which may improve the compression efficiency of one or more magnitude symbols of a BVD and reduce signaling overhead required for indicating the BVD. The disclosures described herein and used to indicate a BVD also may be used to indicate a motion vector difference (MVD).
Inventors
- Alexey Konstantinovich Filippov
- Vasily Alexeevich Rufitskiy
- Esmael Hejazi Dinan
Assignees
- COMCAST CABLE COMMUNICATIONS, LLC
Dates
- Publication Date
- 20260512
- Application Date
- 20230808
Claims (20)
- 1 . A method comprising: determining, by a computing device, a plurality of costs for a plurality of block vector difference (BVD) candidates associated with a current block of content, wherein a value of a magnitude symbol of a first BVD candidate is different from a value of the magnitude symbol of a second BVD candidate; selecting, based on the plurality of costs determined for the plurality of BVD candidates, one of the plurality of BVD candidates as a BVD predictor; decoding an entropy-encoded indication of whether a value of a magnitude symbol of a BVD matches a value of a magnitude symbol of the BVD predictor; determining, based on the value of the magnitude symbol of the BVD predictor and the decoded indication, the value of the magnitude symbol of the BVD; decoding, based on the BVD, the current block of content.
- 2 . The method of claim 1 , wherein the determining the plurality of costs comprises determining a cost based on a difference between: a template of a current block; and a template of a candidate reference block that is displaced relative to the current block by a sum of the BVD candidate and a block vector predictor (BVP).
- 3 . The method of claim 1 , wherein the BVD is the first BVD candidate or the second BVD candidate.
- 4 . The method of claim 1 , wherein the difference between the value of the magnitude symbol of the first BVD candidate and the value of the magnitude symbol of the second BVD candidate is the only difference between the first BVD candidate and the second BVD candidate.
- 5 . The method of claim 1 , wherein either a horizontal component or a vertical component of the first BVD candidate comprises the magnitude symbol.
- 6 . The method of claim 1 , wherein the selecting the BVD candidate as the BVD predictor comprises selecting the BVD candidate as the BVD predictor based on a cost associated with the BVD candidate being a lowest cost of the plurality of costs.
- 7 . The method of claim 1 , wherein the BVD predictor is the first BVD candidate or the second BVD candidate.
- 8 . The method of claim 1 , further comprising: selecting, based on a position of the magnitude symbol of the BVD and from a plurality of probability models, a probability model indicating a probability of a least probable symbol for the indication and a value indicating the most probable symbol for the indication; wherein the decoding the entropy-encoded indication comprises arithmetically decoding the entropy-encoded indication based on the selected probability model.
- 9 . The method of claim 1 , further comprising: selecting, based on a change in value of the BVD satisfying one or more thresholds and from a plurality of probability models, a probability model indicating a probability of a least probable symbol for the indication and a value indicating the most probable symbol for the indication; wherein the decoding the entropy-encoded indication comprises arithmetically decoding the entropy-encoded indication based on the selected probability model.
- 10 . The method of claim 1 , further comprising: determining, based on the indication indicating that the value of the magnitude symbol of the BVD matches the value of the magnitude symbol of the BVD predictor, that the value of the magnitude symbol of the BVD is equal to the value of the magnitude symbol of the BVD predictor; or determining, based on the indication indicating that the value of the magnitude symbol of the BVD does not match the value of the magnitude symbol of the BVD predictor, that the value of the magnitude symbol of the BVD is not equal to the value of the magnitude symbol of the BVD predictor.
- 11 . The method of claim 1 , further comprising representing the first BVD candidate in binary form using an exponential-Golomb code word that comprises an indication of the value of the magnitude symbol of the first BVD candidate in a suffix of the exponential-Golomb code word.
- 12 . A method comprising: receiving, by a computing device, an entropy-encoded indication of whether a value of a magnitude symbol of a block vector difference (BVD) predictor matches a value of a magnitude symbol of a BVD associated with a current block of content; decoding the entropy-encoded indication; determining, based on the value of the magnitude symbol of the BVD predictor and the decoded indication, the value of the magnitude symbol of the BVD; determining, based on the BVD and a block vector predictor (BVP), a block vector (BV); and decoding, based on the BV, the current block of content.
- 13 . The method of claim 12 , further comprising: determining a plurality of template matching costs at least by calculating, for each BVD candidate of a plurality of BVD candidates that comprises the BVD predictor, a template matching cost associated with a difference between a template of a current block and a template of a candidate reference block that is displaced relative to the current block by a sum of the BVD candidate and a block vector predictor (BVP); and selecting the BVD predictor based on a template matching cost of the BVD predictor being a lowest template matching cost of the plurality of template matching costs.
- 14 . The method of claim 12 , further comprising: selecting, from a plurality of probability models, a probability model that indicates a probability of the least probable symbol for the decoded indication and a value indicating the most probable symbol for the decoded indication; wherein the decoding the entropy-encoded indication comprises arithmetically decoding the entropy-encoded indication based on the selected probability model.
- 15 . The method of claim 12 , further comprising selecting, from a plurality of BVD candidates comprising a BVD candidate for each possible value of the magnitude symbol of the BVD, the BVD predictor.
- 16 . A method comprising: receiving, by a computing device, an entropy-encoded indication of whether a value of a magnitude symbol of a block vector difference (BVD) predictor matches a value of a magnitude symbol of a BVD associated with a current block of content; arithmetically decoding, based on a probability model that indicates a probability of the least probable symbol for the indication and a value indicating the most probable symbol for the indication, the entropy-encoded indication; determining, based on the value of the magnitude symbol of the BVD predictor and the decoded indication, the value of the magnitude symbol of the BVD; and decoding, based on the BVD, the current block of content.
- 17 . The method of claim 16 , further comprising: determining a plurality of template matching costs at least by calculating, for each BVD candidate of a plurality of BVD candidates that includes the BVD, a template matching cost; and selecting, from the plurality of BVD candidates and as the BVD predictor, a BVD that is associated with a lowest template matching cost of the plurality of template matching costs.
- 18 . The method of claim 16 , wherein a difference between a first magnitude symbol of the BVD predictor and a second magnitude symbol of the BVD is the only difference between the BVD predictor and the BVD.
- 19 . The method of claim 16 , further comprising: selecting, from a plurality of probability models, the probability model; wherein the selecting the probability model is based on: a position of the magnitude symbol in the BVD; or a change in value of the BVD satisfying one or more thresholds.
- 20 . The method of claim 16 , wherein the BVD is a motion vector difference (MVD) and the BVD predictor is an MVD predictor.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Application No. 63/396,061 filed on Aug. 8, 2022. The above referenced application is hereby incorporated by reference in its entirety. BACKGROUND A computing device processes video for storage, transmission, reception, and/or display. Processing a video comprises encoding and/or decoding, for example, to reduce a data size associated with the video. SUMMARY The following summary presents a simplified summary of certain features. The summary is not an extensive overview and is not intended to identify key or critical elements. A video may comprise a sequence of frames (pictures) displayed consecutively. Predictive encoding and decoding may involve the use of information associated with blocks, within a frame, to encode and/or decode other blocks in the same frame or between frames (e.g., consecutive frames) in a sequence of frames. For example, information associated with a block (e.g., luma and/or chroma components of the block) may be encoded using previously decoded information associated with a reference block in the same frame or a previous frame. A reference block may be indicated in the form of a block vector (BV) that represents the location of the reference block with respect to a current block being encoded or decoded. The BV may be indicated as a function of certain syntax elements including, for example, a block vector predictor (BVP) and block vector difference (BVD) for reducing signaling overhead required for directly indicating the BV. Compressing the symbols of such syntax elements may be limited, for example, if those symbols have a uniform probability distribution. Rather than directly signaling the magnitude of the BVD, an indication may be signaled that indicates whether a value of a magnitude symbol of the selected BVD predictor matches a value of a magnitude symbol of the BVD, which may have a non-uniform probability distribution. Using an indication of whether a value of a magnitude symbol of a BVD predictor matches a value of a magnitude symbol of a BVD may improve the compression efficiency of one or more magnitude symbols of a BVD. Improving the compression efficiency of one or more magnitude symbols of a BVD may provide additional advantages such as reduced signaling overhead required for indicating the BVD. The disclosures described herein and used to indicate a BVD also may be used to indicate a motion vector difference (MVD) for providing similar benefits and advantages as described herein. These and other features and advantages are described in greater detail below. BRIEF DESCRIPTION OF THE DRAWINGS Some features are shown by way of example, and not by limitation, in the accompanying drawings. In the drawings, like numerals reference similar elements. FIG. 1 shows an example video coding/decoding system. FIG. 2 shows an example encoder. FIG. 3 shows an example decoder. FIG. 4 shows an example quadtree partitioning of a coding tree block (CTB). FIG. 5 shows an example quadtree corresponding to the example quadtree partitioning of the CTB in FIG. 4. FIG. 6 shows example binary tree and ternary tree partitions. FIG. 7 shows an example of combined quadtree and multi-type tree partitioning of a CTB. FIG. 8 shows a tree corresponding to the combined quadtree and multi-type tree partitioning of the CTB shown in FIG. 7. FIG. 9 shows an example set of reference samples determined for intra prediction of a current block. FIGS. 10A and 10B show example intra prediction modes. FIG. 11 shows a current block and corresponding reference samples. FIG. 12 shows an example application of an intra prediction mode for prediction of a current block. FIG. 13A shows an example of inter prediction. FIG. 13B shows an example motion vector. FIG. 14 shows an example of bi-prediction. FIG. 15A shows example spatial candidate neighboring blocks for a current block. FIG. 15B shows example temporal, co-located blocks for a current block. FIG. 16 shows an example of intra block copy (IBC) for encoding. FIG. 17 shows an example of a context-based adaptive binary arithmetic coding (CABAC) encoder. FIG. 18A shows an example of IBC. FIG. 18B shows example BVD candidates that may be used to entropy encode a magnitude symbol of a BVD. FIG. 18C shows an example of entropy encoding an indication of whether a value of a magnitude symbol of a BVD matches a value of the magnitude symbol of a BVD candidate used as a predictor of the BVD. FIG. 18D shows an example of entropy decoding an indication of whether a value of a magnitude symbol of a BVD matches a value of the magnitude symbol of a BVD candidate used as a predictor of the BVD and using the indication to determine a magnitude symbol of the BVD. FIG. 19 shows an example method of entropy encoding an indication of whether a value of a magnitude symbol of a BVD matches a value of the magnitude symbol of a BVD candidate used as a predictor of the BVD. FIG. 20 shows an ex