- Number
- 10834413
- Published
- 2020-11-10
- Filed
- 2018-08-24
- Assignee
- Disney Enterprises, Inc.
- Inventors
- Farre Guiu; Miquel Angel, Junyent Martin; Marc
- CPC
- H04N19/649; H04N19/27; G06T9/001; G06T17/10; H04N19/52
- Verdict
- Set aside video codec block-matching, plumbing
- Source
- Google Patents · FreePatentsOnline
Abstract
A set of software applications configured to perform interframe and/or intraframe encoding operations based on data communicated between a graphics application and a graphics processor. The graphics application transmits a 3D model to the graphics processor to be rendered into a 2D frame of video data. The graphics application also transmits graphics commands to the graphics processor indicating specific transformations to be applied to the 3D model as well as textures that should be mapped onto portions of the 3D model. Based on these transformations, an interframe module can determine blocks of pixels that repeat across sequential frames. Based on the mapped textures, an intraframe module can determine blocks of pixels that repeat within an individual frame. A codec encodes the frames of video data into compressed form based on blocks of pixels that repeat across frames or within frames.
Background
BACKGROUNDField of the Various Embodiments(1) Embodiments of the present invention relate generally to video processing and, more specifically, to fast and accurate block matching for computer-generated content.DESCRIPTION OF THE RELATED ART(2) The term “video codec” typically refers to a software application capable of encoding frames of video data into a compressed form. A conventional video codec may implement interframe encoding and/or intraframe encoding to encode frames of video data.(3) When implementing interframe encoding, the video codec analyzes sequential frames of the video data to identify blocks of pixels that reside in a first frame and repeat in a subsequent frame. Once a given block of repeating pixels has been identified, the video codec generates a vector indicating where in the subsequent frame the block of pixels repeats. The video codec generates a compressed representation of the first frame and the subsequent frame based on each block of repeated pixels and the vectors corresponding to each block of repeated pixels. This approach reduces the size of two or more frames because each repeated block of pixels is stored only once for both frames, as opposed to multiple times.(4) The video codec can implement a variety of different interframe block matching algorithms to identify blocks of pixels that repeat across frames. In practice, any given interframe block matching algorithm uses only a limited number of available block dimensions and a limited number
Claims
1. A computer-implemented method for encoding video data, the method comprising: obtaining a first command that has been transmitted to a processor, wherein the first command indicates a first transformation that is to be applied to a three-dimensional (3D) model prior to when a second video frame is rendered, or a first texture that is to be mapped to the 3D model prior to when a first video frame is rendered; identifying a first pixel that resides in the first video frame; identifying a second pixel that resides in either the first video frame or the second video frame based on the first pixel and either the first transformation or the first texture; generating a first vector based on a first location associated with the first pixel and a second location associated with the second pixel; and generating encoded video data based on the first pixel, the second pixel, and the first vector.
8. A non-transitory computer-readable medium storing program instructions that, when executed by a processor, cause the processor to encode video data by performing the steps of: obtaining a first command that has been transmitted to a processor, wherein the first command indicates a first transformation that is to be applied to a set of polygons prior to when a second video frame is rendered, or a first texture that is to be mapped to the set of polygons prior to when a first video frame is rendered; identifying a first pixel that resides in the first video frame, identifying a second pixel that resides in either the first video frame or the second video frame based on the first pixel and either the first transformation or the first texture; generating a first vector based on a first location associated with the first pixel and a second location associated with the second pixel; and generating encoded video data based on the first pixel, the second pixel, and the first vector.
15. A system, comprising: a memory storing one or more software applications; and a processor that, when executing the one or more software applications, is configured to perform the steps of: obtaining a first command that has been transmitted to a processor, wherein the first command indicates a first transformation that is to be applied to a three-dimensional (3D) model prior to when a second video frame is rendered, or a first texture that is to be mapped to the 3D model prior to when a first video frame is rendered, identifying a first pixel that resides in the first video frame, identifying a second pixel that resides in either the first video frame or the second video frame based on the first pixel and either the first transformation or the first texture, generating a first vector based on a first location associated with the first pixel and a second location associated with the second pixel, and generating encoded video data based on the first pixel, the second pixel, and the first vector.