dslinux/user/pixil/packages/dvdview/dvdview/libvideogfx/libvideogfx/graphics/motvec Makefile.am Makefile.in blkcmp.hh full.cc full.hh mv.cc mv.hh
amadeus
dslinux_amadeus at user.in-berlin.de
Tue Oct 3 13:25:42 CEST 2006
Update of /cvsroot/dslinux/dslinux/user/pixil/packages/dvdview/dvdview/libvideogfx/libvideogfx/graphics/motvec
In directory antilope:/tmp/cvs-serv11916/packages/dvdview/dvdview/libvideogfx/libvideogfx/graphics/motvec
Added Files:
Makefile.am Makefile.in blkcmp.hh full.cc full.hh mv.cc mv.hh
Log Message:
adding pristine copy of pixil to HEAD so I can branch from it
--- NEW FILE: mv.hh ---
/*********************************************************************
mv.hh
purpose:
notes:
to do:
author(s):
- Dirk Farin, farin at ti.uni-mannheim.de
University Mannheim, Dept. Circuitry and Simulation
B 6,26 EG, room 0.10 / D-68131 Mannheim / Germany
modifications:
25/May/99 - Dirk Farin
- first implementation
*********************************************************************/
#ifndef LIBVIDEOGFX_GRAPHICS_MOTVEC_MV_HH
#define LIBVIDEOGFX_GRAPHICS_MOTVEC_MV_HH
#include "libvideogfx/graphics/basic/bitmap.hh"
struct FullSearchData
{
Bitmap<int> error;
};
struct MotVec
{
int h,v;
};
#endif
--- NEW FILE: full.cc ---
/*
* full.cc
*/
#include <iostream.h>
#include "full.hh"
inline int Abs(int a)
{
if (a<0) return -a; else return a;
}
void CalcFullSearch(const Bitmap<Pixel>& img1,const Bitmap<Pixel>& img2,
Bitmap<FullSearchData>* searchdata,
Bitmap<MotVec>* motiondata,
int hblksize,int vblksize,int hrange,int vrange)
{
assert(img1.AskWidth() == img2.AskWidth());
assert(img1.AskHeight() == img2.AskHeight());
int width = img1.AskWidth();
int height = img1.AskHeight();
int hsize = (img1.AskWidth() +hblksize-1)/hblksize;
int vsize = (img1.AskHeight()+vblksize-1)/vblksize;
FullSearchData*const* fsdptr = NULL;
MotVec*const* mvptr = NULL;
if (searchdata) { searchdata->Create(hsize,vsize); fsdptr = searchdata->AskFrame(); }
if (motiondata) { motiondata->Create(hsize,vsize); mvptr = motiondata->AskFrame(); }
const Pixel*const* i1 = img1.AskFrame_const();
const Pixel*const* i2 = img2.AskFrame_const();
for (int y=0;y<vsize;y++)
{ cout << '.'; cout.flush();
for (int x=0;x<hsize;x++)
{
int*const* fsderr = NULL;
if (fsdptr)
{
FullSearchData& fsd = fsdptr[y][x];
fsd.error.Create(2*hrange+1,2*vrange+1);
fsderr = fsd.error.AskFrame();
}
int x0 = x*hblksize;
int y0 = y*vblksize;
int besterror = 0x7FFFFFFF;
int besth=0,bestv=0;
for (int dy=-vrange;dy<=vrange;dy++)
for (int dx=-hrange;dx<=hrange;dx++)
{
int error;
if (x0+dx < 0 || y0+dy < 0 ||
x0+hblksize+dx > width ||
y0+vblksize+dy > height)
{
error = 0x7FFFFFFF;
}
else
{
error = 0;
for (int yy=0;yy<vblksize;yy++)
for (int xx=0;xx<hblksize;xx++)
error += Abs(i1[y0+yy][x0+xx] - i2[y0+yy+dy][x0+xx+dx]);
}
if ((error<besterror) ||
(error==besterror && Abs(dy)+Abs(dx) < Abs(besth)+Abs(bestv)))
{
besterror = error;
besth = dx;
bestv = dy;
}
if (fsderr) fsderr[dy+vrange][dx+hrange] = error;
}
if (mvptr)
{
mvptr[y][x].h = besth;
mvptr[y][x].v = bestv;
}
}
}
}
--- NEW FILE: Makefile.am ---
## Makefile.am for libvideogfx/libvideogfx/graphics/motvec
noinst_LTLIBRARIES = libvideogfx-graphics-motvec.la
libvideogfx_graphics_motvec_la_SOURCES = \
blkcmp.hh \
full.cc \
full.hh \
mv.cc \
mv.hh
INCLUDES = \
-I$(top_srcdir)
.PHONY: files
files:
@files=`ls $(DISTFILES) 2> /dev/null`; for p in $$files; do \
echo $$p; \
done
--- NEW FILE: full.hh ---
/*********************************************************************
full.hh
purpose:
notes:
to do:
author(s):
- Dirk Farin, farin at ti.uni-mannheim.de
University Mannheim, Dept. Circuitry and Simulation
B 6,26 EG, room 0.10 / D-68131 Mannheim / Germany
modifications:
25/May/99 - Dirk Farin
- first implementation
*********************************************************************/
#ifndef LIBVIDEOGFX_GRAPHICS_MOTVEC_FULL_HH
#define LIBVIDEOGFX_GRAPHICS_MOTVEC_FULL_HH
#include "libvideogfx/graphics/basic/bitmap.hh"
#include "libvideogfx/graphics/motvec/mv.hh"
void CalcFullSearch(const Bitmap<Pixel>& img1,const Bitmap<Pixel>& img2,
Bitmap<FullSearchData>* searchdata,
Bitmap<MotVec>* motiondata,
int hblksize,int vblksize,int hrange,int vrange);
#endif
--- NEW FILE: Makefile.in ---
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../../..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_alias = @build_alias@
build_triplet = @build@
host_alias = @host_alias@
host_triplet = @host@
target_alias = @target_alias@
target_triplet = @target@
AS = @AS@
CC = @CC@
CXX = @CXX@
DLLTOOL = @DLLTOOL@
LIBTOOL = @LIBTOOL@
LIBVIDEOGFX_BINARY_AGE = @LIBVIDEOGFX_BINARY_AGE@
LIBVIDEOGFX_INTERFACE_AGE = @LIBVIDEOGFX_INTERFACE_AGE@
LIBVIDEOGFX_MAJOR_VERSION = @LIBVIDEOGFX_MAJOR_VERSION@
LIBVIDEOGFX_MICRO_VERSION = @LIBVIDEOGFX_MICRO_VERSION@
LIBVIDEOGFX_MINOR_VERSION = @LIBVIDEOGFX_MINOR_VERSION@
LIBVIDEOGFX_VERSION = @LIBVIDEOGFX_VERSION@
LN_S = @LN_S@
LT_AGE = @LT_AGE@
LT_CURRENT = @LT_CURRENT@
LT_RELEASE = @LT_RELEASE@
LT_REVISION = @LT_REVISION@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
X_LDFLAGS = @X_LDFLAGS@
noinst_LTLIBRARIES = libvideogfx-graphics-motvec.la
libvideogfx_graphics_motvec_la_SOURCES = blkcmp.hh full.cc full.hh mv.cc mv.hh
INCLUDES = -I$(top_srcdir)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../../../config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
DEFS = @DEFS@ -I. -I$(srcdir) -I../../..
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
libvideogfx_graphics_motvec_la_LDFLAGS =
libvideogfx_graphics_motvec_la_LIBADD =
libvideogfx_graphics_motvec_la_OBJECTS = full.lo mv.lo
CXXFLAGS = @CXXFLAGS@
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/full.P .deps/mv.P
SOURCES = $(libvideogfx_graphics_motvec_la_SOURCES)
OBJECTS = $(libvideogfx_graphics_motvec_la_OBJECTS)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .cc .lo .o .s
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu libvideogfx/graphics/motvec/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLTLIBRARIES:
clean-noinstLTLIBRARIES:
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
distclean-noinstLTLIBRARIES:
maintainer-clean-noinstLTLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
.s.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
.S.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
maintainer-clean-libtool:
libvideogfx-graphics-motvec.la: $(libvideogfx_graphics_motvec_la_OBJECTS) $(libvideogfx_graphics_motvec_la_DEPENDENCIES)
$(CXXLINK) $(libvideogfx_graphics_motvec_la_LDFLAGS) $(libvideogfx_graphics_motvec_la_OBJECTS) $(libvideogfx_graphics_motvec_la_LIBADD) $(LIBS)
.cc.o:
$(CXXCOMPILE) -c $<
.cc.lo:
$(LTCXXCOMPILE) -c $<
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = libvideogfx/graphics/motvec
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu libvideogfx/graphics/motvec/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
%.o: %.cc
@echo '$(CXXCOMPILE) -c $<'; \
$(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.cc
@echo '$(LTCXXCOMPILE) -c $<'; \
$(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am:
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile $(LTLIBRARIES)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \
mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \
clean-tags clean-depend clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-noinstLTLIBRARIES distclean-compile \
distclean-libtool distclean-tags distclean-depend \
distclean-generic clean-am
-rm -f libtool
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \
clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-libtool distclean-libtool \
clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir \
mostlyclean-depend distclean-depend clean-depend \
maintainer-clean-depend info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
.PHONY: files
files:
@files=`ls $(DISTFILES) 2> /dev/null`; for p in $$files; do \
echo $$p; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
--- NEW FILE: mv.cc ---
/*
* mv.cc
*/
#include "mv.hh"
template class Bitmap<int>;
template class Bitmap<MotVec>;
template class Bitmap<FullSearchData>;
#include "libvideogfx/graphics/basic/bitmap.cc"
--- NEW FILE: blkcmp.hh ---
/*********************************************************************
blkcmp.hh
purpose:
Block-compare code including KNI (MMX2) instruction set optimized
version.
notes:
!!! Don't forget to call EMMS() before using any floating-point
arithmetic when using the MMX-version !!!
to do:
author(s):
- Dirk Farin, farin at ti.uni-mannheim.de
University Mannheim, Dept. Circuitry and Simulation
B 6,26 EG, room 0.10 / D-68131 Mannheim / Germany
modifications:
11/Jul/2000 - Dirk Farin
- first implementation
*********************************************************************/
#ifndef LIBVIDEOGFX_GRAPHICS_MOTVEC_BLKCMP_KNI_HH
#define LIBVIDEOGFX_GRAPHICS_MOTVEC_BLKCMP_KNI_HH
#include "libvideogfx/graphics/basic/bitmap.hh"
#if ENABLE_MMX
inline int ComputeSAD_w16(const Pixel*const* blkrows_1,int h0_1,
const Pixel*const* blkrows_2,int h0_2,
int blk_height,
int max_error_threshold)
{
volatile uint32 error;
__asm__
(
"pxor %mm0,%mm0\n\t"
);
for (int dv=0; dv<blk_height; dv++) {
const Pixel*const p1 = &blkrows_1[dv][h0_1];
const Pixel*const p2 = &blkrows_2[dv][h0_2];
__asm__ __volatile__
(
"movq (%0),%%mm1\n\t"
"psadbw (%1),%%mm1\n\t"
"paddw %%mm1,%%mm0\n\t"
"movq 8(%0),%%mm2\n\t"
"psadbw 8(%1),%%mm2\n\t"
"paddw %%mm2,%%mm0\n\t"
"movd %%mm0,(%2)\n\t"
: : "r" (p1), "r" (p2), "r" (&error)
);
if (error>max_error_threshold)
return error+1;
}
return error;
}
inline void EMMS()
{
__asm__
(
"emms\n\t"
);
}
#else
inline int ComputeSAD_w16(const Pixel*const* blkrows_1,int h0_1,
const Pixel*const* blkrows_2,int h0_2,
int blk_height,
int max_error_threshold)
{
uint32 error=0;
for (int dv=0; dv<blk_height; dv++) {
const Pixel* p1 = &blkrows_1[dv][h0_1];
const Pixel* p2 = &blkrows_2[dv][h0_2];
for (int dh=0; dh<16; dh+=4) {
int diff1 = abs(p1[0]-p2[0]);
int diff2 = abs(p1[1]-p2[1]);
int diff3 = abs(p1[2]-p2[2]);
int diff4 = abs(p1[3]-p2[3]);
diff1 += diff2;
diff3 += diff4;
diff1 += diff3;
error += diff1;
p1 += 4;
p2 += 4;
}
if (error>max_error_threshold)
return error+1;
}
return error;
}
inline void EMMS() { }
#endif
#endif
More information about the dslinux-commit
mailing list