SIMD four-pixel average instruction for imaging and video applications
First Claim
1. A method comprising:
- receiving image data; and
executing an averaging instruction to average a plurality of pixels of the image data;
wherein executing the averaging instruction generates a set of four-pixel averages, each four-pixel average generated from two pixels in a first source register and two pixels in a second source register; and
wherein executing the averaging instruction comprises;
adding successive pixels from the first source register to successive pixels of the second source register generating a plurality of intermediate results; and
adding two of the plurality of intermediate results and repeating with different combinations of the plurality of intermediate results generating a plurality of sum results.
1 Assignment
0 Petitions
Accused Products
Abstract
According to some embodiments, a Single-Instruction/Multiple-Data (SIMD) averaging instruction is used to process pixels of image data. The averaging instruction generates a set of four-pixel averages, where each average is generated from two pixels in a first source register and two pixels in a second source register. The first source register contains a plurality of pixels from a first row of pixels and the second source register contains a plurality of pixels from a second row. In one embodiment, the first and second rows are adjacent rows in an image and the averaging instruction is used, for example, to down-scale an image, perform color conversion, and the like. In another embodiment, the first and second rows are from different images and the averaging instruction is used, for example, in motion estimation for video encoding, in motion compensation for video decoding, and the like.
-
Citations
29 Claims
-
1. A method comprising:
-
receiving image data; and executing an averaging instruction to average a plurality of pixels of the image data; wherein executing the averaging instruction generates a set of four-pixel averages, each four-pixel average generated from two pixels in a first source register and two pixels in a second source register; and wherein executing the averaging instruction comprises; adding successive pixels from the first source register to successive pixels of the second source register generating a plurality of intermediate results; and adding two of the plurality of intermediate results and repeating with different combinations of the plurality of intermediate results generating a plurality of sum results. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
an addressable memory to store an instruction for an averaging operation; a processing core coupled to the addressable memory, the processor core comprising; an execution core to access and execute the instruction; a first source register to store a first plurality of pixels; a second source register to store a second plurality of pixels; and a destination register to store a plurality of results of the averaging operation; a wireless interface to receive a digital signal comprising a third plurality of pixels; and an I/O system to provide the first and second plurality of pixels to the first and second source registers from the third plurality of pixels; wherein to execute the instruction, the execution core is operative to; generate a set of four-pixel averages, each four-pixel average generated from two pixels in the first source register and two pixels in the second source register. - View Dependent Claims (20, 21, 22, 23, 24)
-
-
25. A system comprising:
-
an addressable memory to store an instruction for an averaging operation; a processing core coupled to the addressable memory, the processor core comprising; an execution core to access and execute the instruction; a first source register to store a first plurality of pixels; a second source register to store a second plurality of pixels; and a destination register to store a plurality of results of the averaging operation; a video capture interface to receive a digital signal comprising a third plurality of pixels; and an I/O system to provide the first and second plurality of pixels to the first and second source registers from the third plurality of pixels; wherein to execute the instruction, the execution core is operative to; generate a set of four-pixel averages, each four-pixel average generated from two pixels in the first source register and two pixels in the second source register. - View Dependent Claims (26, 27, 28, 29)
-
Specification