dfbrown / acl

Animation Compression Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Animation Compression Library

Goals

This library has two primary goals:

  • Implement state of the art and production ready animation compression algorithms
  • Serve as a benchmark to compare various techniques against one another

It is very common for most game engines or animation libraries to implement their own animation compression but the problem is so narrow and focused in scope, that it makes sense for the industry to converge on a single implementation.

Academic papers on the subject often will not compare techniques using the same error metric or raw size function which can skew the results or make them very hard to evaluate. They might also compare against techniques which are not state of the art or even used in production. This library aims to implement as many techniques as possible, side by side, in order to compare them fairly.

Philosophy

Much thought was put into designing the library for it to be as flexible and powerful as possible. To this end, the following decisions were made:

Platforms supported

We aim to support compression and decompression on as many platforms as possible but for now VS2015 on Windows is supported. In the future, SSE, AVX, and Neon will be fully supported as well.

Algorithms supported

  • Uniformly sampled
  • Linear key reduction (TODO)
  • Spline key reduction (TODO)
  • Wavelets (TODO)

Getting up and running

Windows

  1. Install Visual Studio 2015
  2. Install CMake 3.9 or higher
  3. Install Python 3.3 (version 3.3 is required for the FBX SDK by some scripts)
  4. Generate the IDE solution with: python make.py
    The solution is generated under ./build
    Note that if you do not have CMake in your PATH, you should define the ACL_CMAKE_HOME environment variable to something like C:\Program Files\CMake.
  5. Build the IDE solution with: python make.py -build

Reference material

In order to test the algorithm implementations with real world data, we took the Carnegie-Mellon database. It contains over 2500 animation clips. This is the data all graphs and charts shown will be based on. Data available upon request, it is far too large for GitHub.

Performance metrics

MIT License

Copyright (c) 2017 Nicholas Frechette & Animation Compression Library contributors

About

Animation Compression Library

License:MIT License


Languages

Language:C++ 99.0%Language:CMake 0.4%Language:C 0.4%Language:Python 0.2%