CA2726480C

Fragmented reference in temporal compression for video coding

Abstract

In general, this disclosure describes techniques for encoding and decoding sequences of video frames using frag-mentary reference pictures. The disclosure presents video encoding and decoding techniques for modified temporal compression based on fragmented references rather than complete reference pictures. In a typical sequence of video frames, only a portion (i.e., a tile) of each frame includes moving objects. Moreover, in each frame, the moving objects tend to be confined to specific areas that are common among each frame in the sequence of video frames. As described herein, such common areas of motion are iden-tified. Pictures are then extracted from the identified areas of the video frames. Because these pictures may represent only portions of the frames, this disclosure refers to these pictures as "fragments." It is then these fragments that are used as reference pictures for generating predicted frames during a motion compensation process, rather than the entire frame.

CA2726480C, drawing sheet 1
Sheet 1 of 21

Term

Projected expiry 24 June 2029.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Projected expiry

38 claims: 9 independent, 29 dependent

  1. 1
    CA 02726480 2012-11-01 74769-3229 CLAIMS:1. A method of coding video data, the method comprising: identifying a set of tiles within a plurality of video frames in a sequence of video frames, wherein each tile in the set of tiles represents a subset of partitions for the respective video frame;storing reference fragments comprising video data associated with the set of tiles identified within the plurality of video frames;and performing motion compensation for a current tile of a current video frame based on one or more of the reference fragments;wherein the current tile is co-located with the tiles in the set of tiles;wherein the method further comprises automatically identifying the set of tiles;and wherein automatically identifying the set of tiles comprises: identifying a set of active partitions in each of the video frames, wherein each of the active partitions comprises at least one of a motion vector indicating at least some displacement relative to a partition of a video frame of the reference fragments, and a nonzero residual value vis-à-vis a co-located partition of a video frame of the reference fragments;and for each given one of the video frames, identifying a tile of the given one of the video frames such that the tile includes the identified set of active partitions of the given one of the video frames and partitions of the given one of the video frames that are co-located with active partitions in the identified sets of active partitions of other ones of the video frames.
  2. 7
    A device for coding video data, the device comprising:a reference buffer that stores reference fragments comprising video data associated with a set of tiles, wherein each tile in the set of tiles is identified in a plurality of video frames in a sequence of video frames, and wherein each tile in the set of tiles represents a subset of partitions for the respective video frame;and CA 02726480 2012-11-01 74769-3229 a motion compensation unit that performs motion compensation for a current tile of a current video frame based on one or more of the reference fragments;wherein the current tile is co-located with the tiles in the set of tiles;and wherein the device further comprises a tile identification module that automatically identifies the set of tiles;and wherein the tile identification module comprises: a partition activity module that identifies a set of active partitions in each of the video frames, wherein each of the active partitions comprises a motion vector indicating at least some displacement relative to a partition of a video frame of the reference fragments, and wherein each of the active partitions comprises a non-zero residual value vis-à-vis a colocated partition of a video frame of the reference fragments;and a tile construction module that, for each given one of the video frames, identifies a tile of the given one of the video frames such that the tile includes the identified set of active partitions of the given one of the video frames and partitions of the given one of the video frames that are co-located with active partitions in the identified sets of active partitions of other ones of the video frames.
  3. 13
    A device for coding video data, the device comprising:means for identifying a set of tiles within a plurality of video frames in a sequence of video frames, wherein each tile in the set of tiles represents a subset of partitions for the respective video frame;means for storing reference fragments comprising video data associated with the set of tiles identified within the plurality of video frames;and means for performing motion compensation for a current tile of a current video frame based on one or more of the reference fragments;CA 02726480 2012-11-01 74769-3229 wherein the device further comprises means for automatically identifying the set of tiles;wherein the means for automatically identifying the set of tiles comprises: means for identifying a set of active partitions in each of the video frames wherein each of the active partitions comprises at least one of a motion vector indicating at least some displacement relative to a partition of a video frame of the reference fragments, and a non-zero residual value vis-à-vis a co-located partition of a video frame of the reference fragments;and means for identifying, for each given one of the video frames, a tile of the given one of the video frames such that the tile includes the identified set of active partitions of the given one of the video frames and partitions of the given one of the video frames that are co-located with active partitions in the identified sets of active partitions of other ones of the video frames;and wherein the current tile is co-located with the tiles in the set of tiles.
  4. 19
    A computer-readable medium comprising executable instructions that, when executed by one or more processors, cause one or more processors to:identify a set of tiles within a plurality of video frames in a sequence of video frames, wherein each tile in the set of tiles represents a subset of partitions for the respective video frame;store reference fragments comprising video data associated with a set of tiles identified within the plurality of video frames;and perform motion compensation for a current tile of a current video frame based on one or more of the reference fragments;wherein the instructions further cause the one or more processors to automatically identify the set of tiles;CA 02726480 2012-11-01 74769-3229 wherein the instructions cause the one or more processors to automatically identify the set of tiles at least in part by causing the one or more processors to: identify a set of active partitions in each of the video frames, wherein each of the active partitions comprises at least one of a motion vector indicating at least some displacement relative to a partition of a video frame of the reference fragments, and a nonzero residual value vis-à-vis a co-located partition of a video frame of the reference fragments;and for each given one of the video frames, identify a tile of the given one of the video frames such that the tile includes the identified set of active partitions of the given one of the video frames and partitions of the given one of the video frames that are co-located with active partitions in the identified sets of active partitions of other ones of the video frames;and wherein the current tile is co-located with the tiles in the set of tiles.
  5. 25
    An integrated circuit for coding video data, the integrated circuit comprising:circuitry that identifies a set of tiles within a plurality of video frames in a sequence of video frames, wherein each tile in the set of tiles represents a subset of partitions for the respective video frame;circuitry that stores reference fragments comprising video data associated with a set of tiles identified within the plurality of video frames;and circuitry that performs motion compensation for a current tile of a current video frame based on one or more of the reference fragments;wherein the integrated circuit further comprises circuitry that automatically identifies the set of tiles;CA 02726480 2012-11-01 74769-3229 wherein the circuitry that automatically identifies the set of tiles comprises: circuitry that identifies a set of active partitions in each of the video frames, wherein each of the active partitions comprises at least one of a motion vector indicating at least some displacement relative to a partition of a video frame of the reference fragments, and a non-zero residual value vis-à-vis a co-located partition of a video frame of the reference fragments;and circuitry that identifies, for each given one of the video frames, a tile of the given one of the video frames such that the tile includes the identified set of active partitions of the given one of the video frames and partitions of the given one of the video frames that are co-located with active partitions in the identified sets of active partitions of other ones of the video frames;and wherein the current tile is co-located with the tiles in the set of tiles.
  6. 31
    A method of coding video data, the method comprising:identifying a set of tiles within a plurality of video frames in a sequence of video frames, wherein each tile in the set of tiles represents a subset of partitions for the respective video frame;storing reference fragments comprising video data associated with the set of tiles identified within the plurality of video frames;and performing a video processing technique for a current tile of a current video frame based on one or more of the reference fragments;wherein the current tile is co-located with the tiles in the set of tiles;wherein the method further comprises automatically identifying the set of tiles;and CA 02726480 2012-11-01 74769-3229 wherein automatically identifying the set of tiles comprises: identifying a set of active partitions in each of the video frames, wherein each of the active partitions comprises at least one of a motion vector indicating at least some displacement relative to a partition of a video frame of the reference fragments, and a nonzero residual value vis-à-vis a co-located partition of a video frame of the reference fragments;for each given one of the video frames, identifying a tile of the given one of the video frames such that the tile includes the identified set of active partitions of the given one of the video frames and partitions of the given one of the video frames that are co-located with active partitions in the identified sets of active partitions of other ones of the video frames.
  7. 33
    A device for coding video data, the device comprising:a reference buffer that stores reference fragments comprising video data associated with a set of tiles, wherein each tile in the set of tiles is identified in a plurality of video frames in a sequence of video frames, and wherein each tile in the set of tiles represents a subset of partitions for the respective video frame;and a unit that performs a video processing technique for a current tile of a current video frame based on one or more of the reference fragments;CA 02726480 2012-11-01 74769-3229 wherein the current tile is co-located with the tiles in the set of tiles;and wherein the device further comprises a tile identification module that automatically identifies the set of tiles;and wherein the tile identification module comprises: a partition activity module that identifies a set of active partitions in each of the video frames, wherein each of the active partitions comprises a motion vector indicating at least some displacement relative to a partition of a video frame of the reference fragments, and wherein each of the active partitions comprises a non-zero residual value vis-à-vis a colocated partition of a video frame of the reference fragments;and a tile construction module that, for each given one of the video frames, identifies a tile of the given one of the video frames such that the tile includes the identified set of active partitions of the given one of the video frames and partitions of the given one of the video frames that are co-located with active partitions in the identified sets of active partitions of other ones of the video frames.
  8. 36
    37. A computer-readable medium comprising executable instructions that, when executed by one or more processors, cause one or more processors to:identify a set of tiles within a plurality of video frames in a sequence of video frames, wherein each tile in the set of tiles represents a subset of partitions for the respective video frame;store reference fragments comprising video data associated with a set of tiles identified within the plurality of video frames;and perform a video processing technique for a current tile of a current video frame based on one or more of the reference fragments;wherein the instructions further cause the one or more processors to automatically identify the set of tiles;wherein the instructions cause the one or more processors to automatically identify the set of tiles at least in part by causing the one or more processors to: identify a set of active partitions in each of the video frames, wherein each of the active partitions comprises at least one of a motion vector indicating at least some displacement relative to a partition of a video frame of the reference fragments, and a nonzero residual value vis-à-vis a co-located partition of a video frame of the reference fragments;and for each given one of the video frames, identify a tile of the given one of the video frames such that the tile includes the identified set of active partitions of the given one of the video frames and partitions of the given one of the video frames that are co-located with CA 02726480 2012-11-01 74769-3229 active partitions in the identified sets of active partitions of other ones of the video frames;and wherein the current tile is co-located with the tiles in the set of tiles.
  9. 38
    39. An integrated circuit for coding video data, the integrated circuit comprising:circuitry that identifies a set of tiles within a plurality of video frames in a sequence of video frames, wherein each tile in the set of tiles represents a subset of partitions for the respective video frame;circuitry that stores reference fragments comprising video data associated with a set of tiles identified within the plurality of video frames;and circuitry that performs a video processing technique for a current tile of a current video frame based on one or more of the reference fragments;wherein the integrated circuit further comprises circuitry that automatically identifies the set of tiles;wherein the circuitry that automatically identifies the set of tiles comprises: circuitry that identifies a set of active partitions in each of the video frames, wherein each of the active partitions comprises at least one of a motion vector indicating at CA 02726480 2012-11-01 74769-3229 least some displacement relative to a partition of a video frame of the reference fragments, and a non-zero residual value vis-à-vis a co-located partition of a video frame of the reference fragments;and circuitry that identifies, for each given one of the video frames, a tile of the 5 given one of the video frames such that the tile includes the identified set of active partitions of the given one of the video frames and partitions of the given one of the video frames that are co-located with active partitions in the identified sets of active partitions of other ones of the video frames;and wherein the current tile is co-located with the tiles in the set of tiles. 10 40. The integrated circuit of claim 39, wherein the circuitry that performs a video processing technique comprises one of: circuitry that performs motion compensation for a current tile of a current video frame based on one or more of the reference fragments;circuitry that performs scaling for a current tile of a current video frame based 15 on one or more of the reference fragments;and circuitry that performs edge enhancement for a current tile of a current video frame based on one or more of the reference fragments.