fieldanalysis: prefix orc functions

This commit is contained in:
Wim Taymans 2012-07-24 10:44:51 +02:00
parent c31950d3e8
commit f4220d35a5
4 changed files with 57 additions and 50 deletions

View file

@ -846,8 +846,8 @@ same_parity_sad (GstFieldAnalysis * filter, FieldAnalysisFields * fields)
sum = 0.0f;
for (j = 0; j < (filter->height >> 1); j++) {
guint32 tempsum = 0;
orc_same_parity_sad_planar_yuv (&tempsum, f1j, f2j, noise_floor,
filter->width);
fieldanalysis_orc_same_parity_sad_planar_yuv (&tempsum, f1j, f2j,
noise_floor, filter->width);
sum += tempsum;
f1j += stridex2;
f2j += stridex2;
@ -875,8 +875,8 @@ same_parity_ssd (GstFieldAnalysis * filter, FieldAnalysisFields * fields)
sum = 0.0f;
for (j = 0; j < (filter->height >> 1); j++) {
guint32 tempsum = 0;
orc_same_parity_ssd_planar_yuv (&tempsum, f1j, f2j, noise_floor,
filter->width);
fieldanalysis_orc_same_parity_ssd_planar_yuv (&tempsum, f1j, f2j,
noise_floor, filter->width);
sum += tempsum;
f1j += stridex2;
f2j += stridex2;
@ -915,7 +915,7 @@ same_parity_3_tap (GstFieldAnalysis * filter, FieldAnalysisFields * fields)
if (diff > noise_floor)
sum += diff;
orc_same_parity_3_tap_planar_yuv (&tempsum, f1j, &f1j[incr],
fieldanalysis_orc_same_parity_3_tap_planar_yuv (&tempsum, f1j, &f1j[incr],
&f1j[incr << 1], f2j, &f2j[incr], &f2j[incr << 1], noise_floor,
filter->width - 1);
sum += tempsum;
@ -972,8 +972,8 @@ opposite_parity_5_tap (GstFieldAnalysis * filter, FieldAnalysisFields * fields)
fjp2 = fj + stridex2;
tempsum = 0;
orc_opposite_parity_5_tap_planar_yuv (&tempsum, fjp2, fjp1, fj, fjp1, fjp2,
noise_floor, filter->width);
fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (&tempsum, fjp2, fjp1, fj,
fjp1, fjp2, noise_floor, filter->width);
sum += tempsum;
for (j = 1; j < (filter->height >> 1) - 1; j++) {
@ -985,8 +985,8 @@ opposite_parity_5_tap (GstFieldAnalysis * filter, FieldAnalysisFields * fields)
fjp2 += stridex2;
tempsum = 0;
orc_opposite_parity_5_tap_planar_yuv (&tempsum, fjm2, fjm1, fj, fjp1, fjp2,
noise_floor, filter->width);
fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (&tempsum, fjm2, fjm1,
fj, fjp1, fjp2, noise_floor, filter->width);
sum += tempsum;
}
@ -997,8 +997,8 @@ opposite_parity_5_tap (GstFieldAnalysis * filter, FieldAnalysisFields * fields)
fj = fjp2;
tempsum = 0;
orc_opposite_parity_5_tap_planar_yuv (&tempsum, fjm2, fjm1, fj, fjm1, fjm2,
noise_floor, filter->width);
fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (&tempsum, fjm2, fjm1, fj,
fjm1, fjm2, noise_floor, filter->width);
sum += tempsum;
return sum / ((6.0f / 2.0f) * filter->width * filter->height); /* 1 + 4 + 1 == 3 + 3 == 6; field is half height */

View file

@ -82,21 +82,22 @@ typedef union
#ifndef DISABLE_ORC
#include <orc/orc.h>
#endif
void orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
void fieldanalysis_orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
int p2, int n);
void orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
void fieldanalysis_orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
int p2, int n);
void orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
void fieldanalysis_orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
const orc_uint8 * ORC_RESTRICT s5, const orc_uint8 * ORC_RESTRICT s6,
int p2, int n);
void orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
const orc_uint8 * ORC_RESTRICT s5, int p2, int n);
void fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (guint32 *
ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1,
const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
const orc_uint8 * ORC_RESTRICT s4, const orc_uint8 * ORC_RESTRICT s5,
int p2, int n);
/* begin Orc C target preamble */
@ -143,10 +144,10 @@ void orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
/* orc_same_parity_sad_planar_yuv */
/* fieldanalysis_orc_same_parity_sad_planar_yuv */
#ifdef DISABLE_ORC
void
orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
fieldanalysis_orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
int p2, int n)
{
@ -199,7 +200,8 @@ orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
#else
static void
_backup_orc_same_parity_sad_planar_yuv (OrcExecutor * ORC_RESTRICT ex)
_backup_fieldanalysis_orc_same_parity_sad_planar_yuv (OrcExecutor *
ORC_RESTRICT ex)
{
int i;
int n = ex->n;
@ -250,7 +252,7 @@ _backup_orc_same_parity_sad_planar_yuv (OrcExecutor * ORC_RESTRICT ex)
}
void
orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
fieldanalysis_orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
int p2, int n)
{
@ -265,9 +267,9 @@ orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
OrcProgram *p;
p = orc_program_new ();
orc_program_set_name (p, "orc_same_parity_sad_planar_yuv");
orc_program_set_name (p, "fieldanalysis_orc_same_parity_sad_planar_yuv");
orc_program_set_backup_function (p,
_backup_orc_same_parity_sad_planar_yuv);
_backup_fieldanalysis_orc_same_parity_sad_planar_yuv);
orc_program_add_source (p, 1, "s1");
orc_program_add_source (p, 1, "s2");
orc_program_add_accumulator (p, 4, "a1");
@ -316,10 +318,10 @@ orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
#endif
/* orc_same_parity_ssd_planar_yuv */
/* fieldanalysis_orc_same_parity_ssd_planar_yuv */
#ifdef DISABLE_ORC
void
orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
fieldanalysis_orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
int p2, int n)
{
@ -369,7 +371,8 @@ orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
#else
static void
_backup_orc_same_parity_ssd_planar_yuv (OrcExecutor * ORC_RESTRICT ex)
_backup_fieldanalysis_orc_same_parity_ssd_planar_yuv (OrcExecutor *
ORC_RESTRICT ex)
{
int i;
int n = ex->n;
@ -417,7 +420,7 @@ _backup_orc_same_parity_ssd_planar_yuv (OrcExecutor * ORC_RESTRICT ex)
}
void
orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
fieldanalysis_orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
int p2, int n)
{
@ -432,9 +435,9 @@ orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
OrcProgram *p;
p = orc_program_new ();
orc_program_set_name (p, "orc_same_parity_ssd_planar_yuv");
orc_program_set_name (p, "fieldanalysis_orc_same_parity_ssd_planar_yuv");
orc_program_set_backup_function (p,
_backup_orc_same_parity_ssd_planar_yuv);
_backup_fieldanalysis_orc_same_parity_ssd_planar_yuv);
orc_program_add_source (p, 1, "s1");
orc_program_add_source (p, 1, "s2");
orc_program_add_accumulator (p, 4, "a1");
@ -481,10 +484,10 @@ orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
#endif
/* orc_same_parity_3_tap_planar_yuv */
/* fieldanalysis_orc_same_parity_3_tap_planar_yuv */
#ifdef DISABLE_ORC
void
orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
fieldanalysis_orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
const orc_uint8 * ORC_RESTRICT s5, const orc_uint8 * ORC_RESTRICT s6,
@ -589,7 +592,8 @@ orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
#else
static void
_backup_orc_same_parity_3_tap_planar_yuv (OrcExecutor * ORC_RESTRICT ex)
_backup_fieldanalysis_orc_same_parity_3_tap_planar_yuv (OrcExecutor *
ORC_RESTRICT ex)
{
int i;
int n = ex->n;
@ -690,7 +694,7 @@ _backup_orc_same_parity_3_tap_planar_yuv (OrcExecutor * ORC_RESTRICT ex)
}
void
orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
fieldanalysis_orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
const orc_uint8 * ORC_RESTRICT s5, const orc_uint8 * ORC_RESTRICT s6,
@ -707,9 +711,10 @@ orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
OrcProgram *p;
p = orc_program_new ();
orc_program_set_name (p, "orc_same_parity_3_tap_planar_yuv");
orc_program_set_name (p,
"fieldanalysis_orc_same_parity_3_tap_planar_yuv");
orc_program_set_backup_function (p,
_backup_orc_same_parity_3_tap_planar_yuv);
_backup_fieldanalysis_orc_same_parity_3_tap_planar_yuv);
orc_program_add_source (p, 1, "s1");
orc_program_add_source (p, 1, "s2");
orc_program_add_source (p, 1, "s3");
@ -791,10 +796,10 @@ orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
#endif
/* orc_opposite_parity_5_tap_planar_yuv */
/* fieldanalysis_orc_opposite_parity_5_tap_planar_yuv */
#ifdef DISABLE_ORC
void
orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
const orc_uint8 * ORC_RESTRICT s5, int p2, int n)
@ -896,7 +901,8 @@ orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
#else
static void
_backup_orc_opposite_parity_5_tap_planar_yuv (OrcExecutor * ORC_RESTRICT ex)
_backup_fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (OrcExecutor *
ORC_RESTRICT ex)
{
int i;
int n = ex->n;
@ -995,7 +1001,7 @@ _backup_orc_opposite_parity_5_tap_planar_yuv (OrcExecutor * ORC_RESTRICT ex)
}
void
orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
const orc_uint8 * ORC_RESTRICT s5, int p2, int n)
@ -1011,9 +1017,10 @@ orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
OrcProgram *p;
p = orc_program_new ();
orc_program_set_name (p, "orc_opposite_parity_5_tap_planar_yuv");
orc_program_set_name (p,
"fieldanalysis_orc_opposite_parity_5_tap_planar_yuv");
orc_program_set_backup_function (p,
_backup_orc_opposite_parity_5_tap_planar_yuv);
_backup_fieldanalysis_orc_opposite_parity_5_tap_planar_yuv);
orc_program_add_source (p, 1, "s1");
orc_program_add_source (p, 1, "s2");
orc_program_add_source (p, 1, "s3");

View file

@ -67,10 +67,10 @@ typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16
#define ORC_RESTRICT
#endif
#endif
void orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int p2, int n);
void orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int p2, int n);
void orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, const orc_uint8 * ORC_RESTRICT s5, const orc_uint8 * ORC_RESTRICT s6, int p2, int n);
void orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, const orc_uint8 * ORC_RESTRICT s5, int p2, int n);
void fieldanalysis_orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int p2, int n);
void fieldanalysis_orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int p2, int n);
void fieldanalysis_orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, const orc_uint8 * ORC_RESTRICT s5, const orc_uint8 * ORC_RESTRICT s6, int p2, int n);
void fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, const orc_uint8 * ORC_RESTRICT s5, int p2, int n);
#ifdef __cplusplus
}

View file

@ -1,5 +1,5 @@
.function orc_same_parity_sad_planar_yuv
.function fieldanalysis_orc_same_parity_sad_planar_yuv
.accumulator 4 a1 guint32
.source 1 s1
.source 1 s2
@ -20,7 +20,7 @@ andl t3, t3, t4
accl a1, t3
.function orc_same_parity_ssd_planar_yuv
.function fieldanalysis_orc_same_parity_ssd_planar_yuv
.accumulator 4 a1 guint32
.source 1 s1
.source 1 s2
@ -40,7 +40,7 @@ andl t3, t3, t4
accl a1, t3
.function orc_same_parity_3_tap_planar_yuv
.function fieldanalysis_orc_same_parity_3_tap_planar_yuv
.accumulator 4 a1 guint32
.source 1 s1
.source 1 s2
@ -79,7 +79,7 @@ andl t7, t7, t8
accl a1, t7
.function orc_opposite_parity_5_tap_planar_yuv
.function fieldanalysis_orc_opposite_parity_5_tap_planar_yuv
.accumulator 4 a1 guint32
.source 1 s1
.source 1 s2