2
stores heavily used copy functions (makes mmx support easier)
3
Copyright (C) 2000 Martin Vogt
5
This program is free software; you can redistribute it and/or modify
6
it under the terms of the GNU Library General Public License as published by
7
the Free Software Foundation.
9
For more information look at the file COPYRIGHT in this package
14
#ifndef __COPYFUNCTIONS_H
15
#define __COPYFUNCTIONS_H
17
#define MAX_NEG_CROP 32768
18
#define NUM_CROP_ENTRIES (2048+2*MAX_NEG_CROP)
21
#include "../util/mmx.h"
27
#include "copyFunctions_mmx.h"
34
unsigned char* cropTbl;
35
CopyFunctions_ASM* copyFunctions_asm;
42
We make sure, that during the whole construcion block
43
we never (!!!) do float operations, thus we move
44
the time consumin emms call really at the end of
45
the whole reconstrucion/motion compensation
48
void startNOFloatSection();
49
void endNOFloatSection();
51
void copy8_byte(unsigned char* source1,
52
unsigned char* dest,int inc);
54
void copy8_word(unsigned short* source1,
55
unsigned short* dest,int inc);
58
void copy8_div2_nocrop(unsigned char* source1,
59
unsigned char* source2,
60
unsigned char* dest,int inc);
62
void copy8_div2_destlinear_nocrop(unsigned char* source1,
63
unsigned char* source2,
64
unsigned char* dest,int inc);
66
void copy16_div2_destlinear_nocrop(unsigned char* source1,
67
unsigned char* source2,
68
unsigned char* dest,int inc);
71
void copy8_div4_nocrop(unsigned char* source1,
72
unsigned char* source2,
73
unsigned char* source3,
74
unsigned char* source4,
75
unsigned char* dest,int inc);
77
void copy8_src1linear_crop(short* source1,unsigned char* dest,int inc);
79
void copy8_src2linear_crop(unsigned char* source1,
81
unsigned char* dest,int inc);
82
void copy8_div2_src3linear_crop(unsigned char* source1,
83
unsigned char* source2,
85
unsigned char* dest,int inc);
87
void copy8_div4_src5linear_crop(unsigned char* source1,
88
unsigned char* source2,
89
unsigned char* source3,
90
unsigned char* source4,
92
unsigned char* dest,int inc);