SAA7115HLBE NXP Semiconductors, SAA7115HLBE Datasheet - Page 79

Video ICs ADV DGTL VIDEO DECODR

SAA7115HLBE

Manufacturer Part Number
SAA7115HLBE
Description
Video ICs ADV DGTL VIDEO DECODR
Manufacturer
NXP Semiconductors
Datasheet

Specifications of SAA7115HLBE

Operating Supply Voltage
3.3 V
Maximum Operating Temperature
+ 70 C
Package / Case
SOT-407
Minimum Operating Temperature
0 C
Mounting Style
SMD/SMT
Number Of Channels
2
Resolution
8 bit
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Other names
SAA7115HL/V1,557 SAF7115HLBE
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 SAA7115HLBE