Commit d9f73a70 authored by Michel Lespinasse's avatar Michel Lespinasse

Modification mineure MotionComponent : changement d'une boucle imbriquee

sur i_y et i_y1 en une boucle simple sur i_y... Le changement en vitesse comme
en taille est chouillatique mais neanmoins positif. Ca n'a pas d'effet sur
l'unrolling de boucle car celui-ci est effectue sur une boucle plus interne...
parent 02752c7c
...@@ -54,7 +54,7 @@ static __inline__ void MotionComponent( ...@@ -54,7 +54,7 @@ static __inline__ void MotionComponent(
boolean_t b_average /* (explicit) averaging of several boolean_t b_average /* (explicit) averaging of several
* predictions */ ) * predictions */ )
{ {
int i_x, i_y, i_x1, i_y1; int i_x, i_y, i_x1;
unsigned int i_dummy; unsigned int i_dummy;
if( !b_average ) if( !b_average )
...@@ -65,10 +65,8 @@ static __inline__ void MotionComponent( ...@@ -65,10 +65,8 @@ static __inline__ void MotionComponent(
{ {
case 0: case 0:
/* !xh, !yh, !average */ /* !xh, !yh, !average */
for( i_y = 0; i_y < i_height; i_y += 4 ) for( i_y = 0; i_y < i_height; i_y ++ )
{ {
for( i_y1 = 0; i_y1 < 4; i_y1++ )
{
for( i_x = 0; i_x < i_width; i_x += 8 ) for( i_x = 0; i_x < i_width; i_x += 8 )
{ {
for( i_x1 = 0; i_x1 < 8; i_x1++ ) for( i_x1 = 0; i_x1 < 8; i_x1++ )
...@@ -78,16 +76,13 @@ static __inline__ void MotionComponent( ...@@ -78,16 +76,13 @@ static __inline__ void MotionComponent(
} }
p_dest += i_stride; p_dest += i_stride;
p_src += i_stride; p_src += i_stride;
}
} }
break; break;
case 1: case 1:
/* xh, !yh, !average */ /* xh, !yh, !average */
for( i_y = 0; i_y < i_height; i_y += 4 ) for( i_y = 0; i_y < i_height; i_y ++ )
{ {
for( i_y1 = 0; i_y1 < 4; i_y1++ )
{
for( i_x = 0; i_x < i_width; i_x += 8 ) for( i_x = 0; i_x < i_width; i_x += 8 )
{ {
for( i_x1 = 0; i_x1 < 8; i_x1++ ) for( i_x1 = 0; i_x1 < 8; i_x1++ )
...@@ -99,16 +94,13 @@ static __inline__ void MotionComponent( ...@@ -99,16 +94,13 @@ static __inline__ void MotionComponent(
} }
p_dest += i_stride; p_dest += i_stride;
p_src += i_stride; p_src += i_stride;
}
} }
break; break;
case 2: case 2:
/* !xh, yh, !average */ /* !xh, yh, !average */
for( i_y = 0; i_y < i_height; i_y += 4 ) for( i_y = 0; i_y < i_height; i_y ++ )
{ {
for( i_y1 = 0; i_y1 < 4; i_y1++ )
{
for( i_x = 0; i_x < i_width; i_x += 8 ) for( i_x = 0; i_x < i_width; i_x += 8 )
{ {
for( i_x1 = 0; i_x1 < 8; i_x1++ ) for( i_x1 = 0; i_x1 < 8; i_x1++ )
...@@ -120,16 +112,13 @@ static __inline__ void MotionComponent( ...@@ -120,16 +112,13 @@ static __inline__ void MotionComponent(
} }
p_dest += i_stride; p_dest += i_stride;
p_src += i_stride; p_src += i_stride;
}
} }
break; break;
case 3: case 3:
/* xh, yh, !average (3) */ /* xh, yh, !average (3) */
for( i_y = 0; i_y < i_height; i_y += 4 ) for( i_y = 0; i_y < i_height; i_y ++ )
{ {
for( i_y1 = 0; i_y1 < 4; i_y1++ )
{
for( i_x = 0; i_x < i_width; i_x += 8 ) for( i_x = 0; i_x < i_width; i_x += 8 )
{ {
for( i_x1 = 0; i_x1 < 8; i_x1++ ) for( i_x1 = 0; i_x1 < 8; i_x1++ )
...@@ -145,7 +134,6 @@ static __inline__ void MotionComponent( ...@@ -145,7 +134,6 @@ static __inline__ void MotionComponent(
} }
p_dest += i_stride; p_dest += i_stride;
p_src += i_stride; p_src += i_stride;
}
} }
break; break;
} }
...@@ -158,10 +146,8 @@ static __inline__ void MotionComponent( ...@@ -158,10 +146,8 @@ static __inline__ void MotionComponent(
{ {
case 0: case 0:
/* !xh, !yh, average */ /* !xh, !yh, average */
for( i_y = 0; i_y < i_height; i_y += 4 ) for( i_y = 0; i_y < i_height; i_y ++ )
{ {
for( i_y1 = 0; i_y1 < 4; i_y1++ )
{
for( i_x = 0; i_x < i_width; i_x += 8 ) for( i_x = 0; i_x < i_width; i_x += 8 )
{ {
for( i_x1 = 0; i_x1 < 8; i_x1++ ) for( i_x1 = 0; i_x1 < 8; i_x1++ )
...@@ -172,16 +158,13 @@ static __inline__ void MotionComponent( ...@@ -172,16 +158,13 @@ static __inline__ void MotionComponent(
} }
p_dest += i_stride; p_dest += i_stride;
p_src += i_stride; p_src += i_stride;
}
} }
break; break;
case 1: case 1:
/* xh, !yh, average */ /* xh, !yh, average */
for( i_y = 0; i_y < i_height; i_y += 4 ) for( i_y = 0; i_y < i_height; i_y ++ )
{ {
for( i_y1 = 0; i_y1 < 4; i_y1++ )
{
for( i_x = 0; i_x < i_width; i_x += 8 ) for( i_x = 0; i_x < i_width; i_x += 8 )
{ {
for( i_x1 = 0; i_x1 < 8; i_x1++ ) for( i_x1 = 0; i_x1 < 8; i_x1++ )
...@@ -194,16 +177,13 @@ static __inline__ void MotionComponent( ...@@ -194,16 +177,13 @@ static __inline__ void MotionComponent(
} }
p_dest += i_stride; p_dest += i_stride;
p_src += i_stride; p_src += i_stride;
}
} }
break; break;
case 2: case 2:
/* !xh, yh, average */ /* !xh, yh, average */
for( i_y = 0; i_y < i_height; i_y += 4 ) for( i_y = 0; i_y < i_height; i_y ++ )
{ {
for( i_y1 = 0; i_y1 < 4; i_y1++ )
{
for( i_x = 0; i_x < i_width; i_x += 8 ) for( i_x = 0; i_x < i_width; i_x += 8 )
{ {
for( i_x1 = 0; i_x1 < 8; i_x1++ ) for( i_x1 = 0; i_x1 < 8; i_x1++ )
...@@ -216,16 +196,13 @@ static __inline__ void MotionComponent( ...@@ -216,16 +196,13 @@ static __inline__ void MotionComponent(
} }
p_dest += i_stride; p_dest += i_stride;
p_src += i_stride; p_src += i_stride;
}
} }
break; break;
case 3: case 3:
/* xh, yh, average */ /* xh, yh, average */
for( i_y = 0; i_y < i_height; i_y += 4 ) for( i_y = 0; i_y < i_height; i_y ++ )
{ {
for( i_y1 = 0; i_y1 < 4; i_y1++ )
{
for( i_x = 0; i_x < i_width; i_x += 8 ) for( i_x = 0; i_x < i_width; i_x += 8 )
{ {
for( i_x1 = 0; i_x1 < 8; i_x1++ ) for( i_x1 = 0; i_x1 < 8; i_x1++ )
...@@ -242,7 +219,6 @@ static __inline__ void MotionComponent( ...@@ -242,7 +219,6 @@ static __inline__ void MotionComponent(
} }
p_dest += i_stride; p_dest += i_stride;
p_src += i_stride; p_src += i_stride;
}
} }
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment