US2011170611A1PendingUtilityA1

Video encoding and decoding techniques

50
Assignee: QUALCOMM INCPriority: Jun 18, 2002Filed: Mar 28, 2011Published: Jul 14, 2011
Est. expiryJun 18, 2022(expired)· nominal 20-yr term from priority
H04N 19/156H04N 19/43H04N 19/61H04N 19/51
50
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

This disclosure describes video encoding techniques capable of reducing the number of processing cycles and memory transfers necessary to encode a video sequence. In this manner, the disclosed video encoding techniques may increase video encoding speed and reduce power consumption. In general, the video encoding techniques make use of a candidate memory that stores video blocks in columns corresponding to a search space for a motion estimation routine. A memory control unit addresses the candidate memory to retrieve multiple pixels in parallel for simultaneous comparison to pixels in a video block to be encoded, e.g., using Sum of Absolute Difference (SAD) or Sum of Squared Difference (SSD) techniques. A difference processor performs the parallel calculations. In addition, for subsequent video blocks to be encoded, the candidate memory can be incrementally updated by loading a new column of video blocks, rather than reloading the entire search space.

Claims

exact text as granted — not AI-modified
1 . A method of encoding video, comprising the steps of:
 performing difference computations between pixels of a macroblock to be encoded and pixels of a candidate macroblock within a search space;   generating a set of microblock difference values based on the computations, the microblock difference values respectively being indicative of differences between each of a plurality of microblocks that form the macroblock to be encoded and microblocks that form the candidate macroblock; and   generating a macroblock difference value based on the computations, the macroblock difference value being indicative of a difference between the macroblock to be encoded and the candidate macroblock, wherein the macroblock difference value comprises a summation of the plurality of microblock difference values,   wherein performing the difference computations includes performing a plurality of the difference computations in parallel,   wherein the plurality of difference computations performed in parallel correspond to a row of one of the microblocks, and   wherein the microblocks include a plurality of rows.   
     
     
         2 . The method of  claim 1 , wherein the macroblock comprises a 16 by 16 pixel macroblock and the microblocks comprise 8 by 8 pixel microblocks. 
     
     
         3 . A device for encoding video, comprising:
 an encoder that encodes video frames, the encoder being configured to perform difference computations between pixels of a macroblock to be encoded and pixels of a candidate macroblock within a search space, generate a set of microblock difference values based on the difference computations, the microblock difference values respectively being indicative of differences between each of a plurality of microblocks that form the macroblock to be encoded and microblocks that form the candidate macroblock, and generate a macroblock difference value based on the computations, the macroblock difference value being indicative of a difference between the macroblock to be encoded and the candidate macroblock, wherein the macroblock difference value comprises a summation of the plurality of microblock difference values, wherein the encoder performs a plurality of the difference computations in parallel, wherein the plurality of difference computations performed in parallel correspond to a row of one of the microblocks, and wherein the microblocks include a plurality of rows; and   a transmitter that transmits the encoded video frames.   
     
     
         4 . The device of  claim 3 , wherein the macroblock comprises a 16 by 16 pixel macroblock and the microblocks comprise 8 by 8 pixel microblocks. 
     
     
         5 . An apparatus for encoding video, comprising:
 a memory that stores computer readable instructions; and   a processor that executes the instructions to:
 perform difference computations between pixels of a macroblock to be encoded and pixels of a candidate macroblock within a search space; 
 generate a set of microblock difference values based on the computations, the microblock difference values respectively being indicative of differences between each of a plurality of microblocks that form the macroblock to be encoded and microblocks that form the candidate macroblock; and 
 generate a macroblock difference value based on the computations, the macroblock difference value being indicative of a difference between the macroblock to be encoded and the candidate macroblock, wherein the macroblock difference value comprises a summation of the plurality of microblock difference values, wherein performing the difference computations includes performing a plurality of the difference computations in parallel, wherein the plurality of difference computations performed in parallel correspond to a row of one of the microblocks, and wherein the microblocks include a plurality of rows. 
   
     
     
         6 . The apparatus of  claim 5 , wherein the macroblock comprises a 16 by 16 pixel macroblock and the microblocks comprise 8 by 8 pixel microblocks. 
     
     
         7 . An apparatus that encodes video blocks according to a video coding standard, the apparatus comprising:
 means for performing difference computations between pixels of a macroblock to be encoded and pixels of a candidate macroblock within a search space;   means for generating a set of microblock difference values based on the computations, the microblock difference values respectively being indicative of differences between each of a plurality of microblocks that form the macroblock to be encoded and microblocks that form the candidate macroblock; and   means for generating a macroblock difference value based on the computations, the macroblock difference value being indicative of a difference between the macroblock to be encoded and the candidate macroblock, wherein the macroblock difference value comprises a summation of the plurality of microblock difference values, wherein performing the difference computations includes performing a plurality of the difference computations in parallel, wherein the plurality of difference computations performed in parallel correspond to a row of one of the microblocks, and wherein the microblocks include a plurality of rows.   
     
     
         8 . The method of  claim 7 , wherein the macroblock comprises a 16 by 16 pixel macroblock and the microblocks comprise 8 by 8 pixel microblocks. 
     
     
         9 . A computer-readable medium comprising instructions that upon execution cause a processor to:
 perform difference computations between pixels of a macroblock to be encoded and pixels of a candidate macroblock within a search space;   generate a set of microblock difference values based on the computations, the microblock difference values respectively being indicative of differences between each of a plurality of microblocks that form the macroblock to be encoded and microblocks that form the candidate macroblock; and   generate a macroblock difference value based on the computations, the macroblock difference value being indicative of a difference between the macroblock to be encoded and the candidate macroblock, wherein the macroblock difference value comprises a summation of the plurality of microblock difference values, wherein performing the difference computations includes performing a plurality of the difference computations in parallel, wherein the plurality of difference computations performed in parallel correspond to a row of one of the microblocks, and wherein the microblocks include a plurality of rows.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.