PNX1311EH NXP Semiconductors, PNX1311EH Datasheet - Page 79

PNX1311EH

Manufacturer Part Number
PNX1311EH
Description
Manufacturer
NXP Semiconductors
Datasheet

Specifications of PNX1311EH

Lead Free Status / RoHS Status
Not Compliant

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
PNX1311EH
Manufacturer:
NANYA
Quantity:
5 000
Philips Semiconductors
Figure 4-6. Re-grouped code of
Figure 4-7. Using the custom operation dspquadaddui to speed up the loop of
4.4
Another part of the MPEG coding algorithm is motion es-
timation. The purpose of motion estimation is to reduce
the cost of storing a frame of video by expressing the
contents of the frame in terms of adjacent frames. A giv-
en frame is reduced to small blocks, and a subsequent
frame is represented by specifying how these small
blocks change position and appearance; usually, storing
the difference information is cheaper than storing a
EXAMPLE 3: MOTION-ESTIMATION
KERNEL
void reconstruct (unsigned char *back,
{
}
int i, temp0, temp1, temp2, temp3;
for (i = 0; i < 64; i += 4)
{
}
void reconstruct (unsigned char *back,
{
}
temp0 = ((back[i+0] + forward[i+0] + 1) >> 1);
temp1 = ((back[i+1] + forward[i+1] + 1) >> 1);
temp2 = ((back[i+2] + forward[i+2] + 1) >> 1);
temp3 = ((back[i+3] + forward[i+3] + 1) >> 1);
temp0 += idct[i+0];
if (temp0 > 255) temp0 = 255;
else if (temp0 < 0) temp0 = 0;
temp1 += idct[i+1];
if (temp1 > 255) temp1 = 255;
else if (temp1 < 0) temp1 = 0;
temp2 += idct[i+2];
if (temp2 > 255) temp2 = 255;
else if (temp2 < 0) temp2 = 0;
temp3 += idct[i+3];
if (temp3 > 255) temp3 = 255;
else if (temp3 < 0) temp3 = 0;
destination[i+0] = temp0;
destination[i+1] = temp1;
destination[i+2] = temp2;
destination[i+3] = temp3;
int i, temp;
int *i_back
int *i_forward = (int *) forward;
int *i_idct
int *i_dest
for (i = 0; i < 16; i += 1)
{
}
Figure
temp = QUADAVG(i_back[i], i_forward[i]);
temp = DSPUQUADADDUI(temp, i_idct[i]);
i_dest[i] = temp;
4-5.
unsigned char *forward,
unsigned char *destination)
unsigned char *forward,
unsigned char *destination)
= (int *) back;
= (int *) idct;
= (int *) destination;
char *idct,
char *idct,
whole block. For example, in a video sequence where
the camera pans across a static scene, some frames can
be expressed simply as displaced versions of their pre-
decessor frames. To create a subsequent frame, most
blocks are simply displaced relative to the output screen.
The code in this example is for a match-cost calculation,
a small kernel of the complete motion-estimation code.
As with the previous example, this code provides an ex-
cellent example of how to transform source code to make
the best use of PNX1300’s custom operations.
PRELIMINARY SPECIFICATION
Custom Operations for Multimedia
Figure
4-6.
4-7

Related parts for PNX1311EH