Forward and inverse transformation of data for video compression
AssigneeNVIDIA Corporation
InventorsPankaj Chaurasia, Shankar Moni
Life of this patent
Estimating the term…
Abstract
A video processor is described, which is useful for implementing a forward transform process, in compliance with the H.264 standard. The video processor includes an input, for receiving a block of image data. The image data is loaded into an internal register. In response to receiving a SIMD instruction, a multiplier, which incorporates the H.264 forward transform matrix in its associated hardware, processes the block of image data, and writes the resulting partially transformed pixel data back to the internal register, transposing the data during the process.
Claims19
A video processor for implementing forward transform, in compliance with a version of the H.264 standard, said video processor comprising:
- an input for receiving a block of image data, said data comprising a plurality of pixel data;
- an internal register for storing said plurality of pixel data;
- a multiplier, comprising a register storing fixed values representing a transform matrix, wherein said multiplier is configured to receive Single Instruction Multiple Data (SIMD) instructions from a software control structure, wherein in response to receiving a first transform SIMD instruction, said multiplier operable to perform a 1-D transform of said plurality of pixel data using said transform matrix, operable to produce a partially transformed plurality of pixel data, and further operable to write said partially transformed plurality of pixel data directly in a transposed manner to said internal register as transposed plurality of pixel data, and wherein said multiplier is operable to transpose said partially transformed plurality of pixel data during said write to save processor cycles;
- and
- wherein upon receiving a second transform SIMD instruction, said multiplier is operable to perform a 1-D transform of said transposed plurality of pixel data using said transform matrix, producing a transformed plurality of pixel data, and is operable to write said transformed plurality of pixel data directly in a transposed manner to said internal register to save processor cycles.
A method of performing a forward transform operation, said forward transform operation related to a video compression standard, said method comprising:
- loading a plurality of pixel data into a single register, said plurality of pixel data corresponding to a block of image data;
- and
- in response to receiving a first forward transform Single Instruction Multiple Data (SIMD) instruction from a software controller, processing said plurality of pixel data in a hardware processor, said processing comprising multiplying said plurality of pixel data by fixed values stored in a hardware-implemented forward transform matrix to produce a plurality of partially transformed pixel data and writing said plurality of partially transformed pixel data directly in a transposed form into said single register as a plurality of transposed intermediary data, wherein said fixed values represent a forward transform matrix, wherein said plurality of partially transformed pixel data is transposed during said writing to save processor cycles;
- and
- in response to receiving a second forward transform SIMD instruction from a software controller, further processing said plurality of transposed intermediary data in said hardware processor, said further processing comprising multiplying said plurality of transposed intermediary data by said fixed values representing said forward transform matrix to produce a result and writing the result directly in a transposed form into said single register as a plurality of forward transformed data to save processor cycles.
A computing system comprising:
- a bus;
- a processor, coupled to said bus;
- a memory, coupled to said bus;
- and
- a video processor, coupled to said bus, said video processor comprising:
- an input for receiving a block of image data, said data comprising a plurality of pixel data;
- an internal register for storing said plurality of pixel data;
- and
- a multiplier, comprising a register storing fixed values representing a transform matrix and, wherein said multiplier is configured to receive Single Instruction Multiple Data (SIMD) instructions from a software control structure, wherein in response to receiving a forward transform SIMD instruction, said multiplier is operable to perform a 1-D transform of said plurality of pixel data using said transform matrix, producing a partially transformed plurality of pixel data, is operable to write said partially transformed plurality of pixel data directly in a transposed manner to said internal register as transposed plurality of pixel data, wherein said multiplier is operable to transpose said partially transformed plurality of pixel data during said write to save processor cycles, is operable to perform a 1-D transform of said transposed plurality of pixel data using said transform matrix, producing a forward transformed plurality of pixel data, is operable to write said forward transformed plurality of pixel data directly in a transposed manner to said internal register to save processor cycles.
Dependencies are inferred from the claim text.