GithubHelp home page GithubHelp logo

haasn / afgs1-spec Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aomediacodec/afgs1-spec

0.0 1.0 0.0 911 KB

Film grain synthesis algorithm and parameters

Home Page: https://aomediacodec.github.io/afgs1-spec/

License: Other

JavaScript 2.34% Ruby 3.66% CoffeeScript 11.89% CSS 36.85% HTML 15.21% Sass 30.06%

afgs1-spec's Introduction

This document provides instructions for working with the draft standalone AV1 Film Grain Specification.

The specification document is built from plaintext section and subsection Markdown files (more specifically, kramdown files) using the Jekyll static site generator tool.

The document build process employs a common NodeJS-based web development toolchain, requiring Node, npm (the Node package manager), and GruntJS, a Node-based task runner.

Note: As a general rule, the packages described below should be installed in user space, not at the system level -- in other words, do not install them as root or via sudo. An exception is Ruby development headers, which are usually needed to build Ruby and certain Ruby gems. {:.alert .alert-info }

Ruby and rbenv

This project currently depends on Ruby v2.4.1. Because your distro may lack this version -- or installing it may conflict with your system's installed version -- first install rbenv, then install Ruby v2.4.1 within it.

# list all available versions:
$ rbenv install -l
2.2.6
2.3.0-dev
2.3.0-preview1
2.3.0-preview2
2.3.0
2.4.1

# install a Ruby version:
$ rbenv install 2.4.1

Depending on your distro and environment, you may have trouble building a particular Ruby version. The rbenv project site maintains a wiki page with troubleshooting help.

Bundler

Gem dependencies are managed with bundler.

$ gem install bundler

# Filesystem location where gems are installed
$ gem env home
# => ~/.rbenv/versions/<ruby-version>/lib/ruby/gems/...

Clone the Repo

git clone [email protected]:AOMediaCodec/av1-spec.git
cd av1-spec

Set Local Ruby Version (rbenv)

In the directory of your local clone, do:

rbenv local 2.4.1

Regardless of any other Rubies installed on your system, the project environment will now use v2.4.1 and gems appropriate for it.

Install Gem Dependencies with Bundler

In the directory of your local clone, run

bundle install

Bundler will set dependencies and install needed gems as listed in Gemfile.lock.

NodeJS, npm and GruntJS

Follow these instructions for installing NodeJS and npm.

Next -- from the project directory -- update npm, install the grunt package, and install the project's Node dependencies:

## Update npm globally
npm update -g npm

## Install grunt globally
npm install -g grunt-cli

## Go the the project directory
cd av1-spec

## Install the project's Node dependencies
## (uses package.json and Gruntfile)
npm install

Grunt Tasks

Building the document is done via Grunt tasks, configured in the CoffeeScript file Gruntfile.coffee.

There are tasks to

  • clean output directories
  • perform some automated text transformations on the content files
  • build the document with Jekyll
  • copy output files to the correct directories for serving and viewing

These tasks are invoked in turn by the Grunt default task:

$ grunt

There is also a task that starts a local web server, and launches the document in your web browser:

$ grunt connect:local

The document will be viewable at http://127.0.0.1:4000/docs/

If you'd rather not launch a browser window, use:

$ grunt connect:nospawn

PDF

Additionally, there is a task grunt exec for generating the spec as a PDF file. It invokes the commercial tool Prince (formerly PrinceXML), which must first be installed on your system. PDF generation can then be done with:

$ grunt && grunt exec

Note that while we are generating PDF as a convenience format during document development, the canonical spec will likely be served as HTML, not PDF. {:.alert .alert-info }

afgs1-spec's People

Contributors

alexismt73 avatar andrey-norkin avatar asegallamz avatar mrt-amd avatar podborski avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.