
Update the code to call the new convolution functions to do subpixel prediction rather than the existing functions. Remove the old C and assembly code, since it is unused. This causes a 50% performance reduction on the decoder, but that will be resolved when the asm for the new functions is available. There is no consensus for whether 6-tap or 2-tap predictors will be supported in the final codec, so these filters are implemented in terms of the 8-tap code, so that quality testing of these modes can continue. Implementing the lower complexity algorithms is a simple exercise, should it be necessary. This code produces slightly better results in the EIGHTTAP_SMOOTH case, since the filter is now applied in only one direction when the subpel motion is only in one direction. Like the previous code, the filtering is skipped entirely on full-pel MVs. This combination seems to give the best quality gains, but this may be indicative of a bug in the encoder's filter selection, since the encoder could achieve the result of skipping the filtering on full-pel by selecting one of the other filters. This should be revisited. Quality gains on derf positive on almost all clips. The only clip that seemed to be hurt at all datarates was football (-0.115% PSNR average, -0.587% min). Overall averages 0.375% PSNR, 0.347% SSIM. Change-Id: I7d469716091b1d89b4b08adde5863999319d69ff
vpx Multi-Format Codec SDK README - 21 June 2012 Welcome to the WebM VP8 Codec SDK! COMPILING THE APPLICATIONS/LIBRARIES: The build system used is similar to autotools. Building generally consists of "configuring" with your desired build options, then using GNU make to build the application. 1. Prerequisites * All x86 targets require the Yasm[1] assembler be installed. * All Windows builds require that Cygwin[2] be installed. * Building the documentation requires PHP[3] and Doxygen[4]. If you do not have these packages, you must pass --disable-install-docs to the configure script. * Downloading the data for the unit tests requires curl[5] and sha1sum. sha1sum is provided via the GNU coreutils, installed by default on many *nix platforms, as well as MinGW and Cygwin. If coreutils is not available, a compatible version of sha1sum can be built from source[6]. These requirements are optional if not running the unit tests. [1]: http://www.tortall.net/projects/yasm [2]: http://www.cygwin.com [3]: http://php.net [4]: http://www.doxygen.org [5]: http://curl.haxx.se [6]: http://www.microbrew.org/tools/md5sha1sum/ 2. Out-of-tree builds Out of tree builds are a supported method of building the application. For an out of tree build, the source tree is kept separate from the object files produced during compilation. For instance: $ mkdir build $ cd build $ ../libvpx/configure <options> $ make 3. Configuration options The 'configure' script supports a number of options. The --help option can be used to get a list of supported options: $ ../libvpx/configure --help 4. Cross development For cross development, the most notable option is the --target option. The most up-to-date list of supported targets can be found at the bottom of the --help output of the configure script. As of this writing, the list of available targets is: armv5te-android-gcc armv5te-linux-rvct armv5te-linux-gcc armv6-darwin-gcc armv6-linux-rvct armv6-linux-gcc armv7-android-gcc armv7-linux-rvct armv7-linux-gcc mips32-linux-gcc ppc32-darwin8-gcc ppc32-darwin9-gcc ppc64-darwin8-gcc ppc64-darwin9-gcc ppc64-linux-gcc x86-darwin8-gcc x86-darwin8-icc x86-darwin9-gcc x86-darwin9-icc x86-linux-gcc x86-linux-icc x86-solaris-gcc x86-win32-vs7 x86-win32-vs8 x86_64-darwin9-gcc x86_64-linux-gcc x86_64-solaris-gcc x86_64-win64-vs8 universal-darwin8-gcc universal-darwin9-gcc generic-gnu The generic-gnu target, in conjunction with the CROSS environment variable, can be used to cross compile architectures that aren't explicitly listed, if the toolchain is a cross GNU (gcc/binutils) toolchain. Other POSIX toolchains will likely work as well. For instance, to build using the mipsel-linux-uclibc toolchain, the following command could be used (note, POSIX SH syntax, adapt to your shell as necessary): $ CROSS=mipsel-linux-uclibc- ../libvpx/configure In addition, the executables to be invoked can be overridden by specifying the environment variables: CC, AR, LD, AS, STRIP, NM. Additional flags can be passed to these executables with CFLAGS, LDFLAGS, and ASFLAGS. 5. Configuration errors If the configuration step fails, the first step is to look in the error log. This defaults to config.err. This should give a good indication of what went wrong. If not, contact us for support. SUPPORT This library is an open source project supported by its community. Please please email webm-discuss@webmproject.org for help.
Description
Languages
C
80%
C++
9%
Assembly
6.7%
Makefile
1.5%
Shell
1.3%
Other
1.5%