Giter Club home page Giter Club logo

aom-av1-psy's Introduction

README.md {#LREADME}

aom-av1-psy encoding library

Building the library and applications {#building-the-library-and-applications}

Prerequisites {#prerequisites}

  1. CMake. See CMakeLists.txt for the minimum version required.
  2. Git.
  3. Perl.
  4. For x86 targets, yasm, which is preferred, or a recent version of nasm. If you download yasm with the intention to work with Visual Studio, please download win32.exe or win64.exe and rename it into yasm.exe. DO NOT download or use vsyasm.exe.
  5. Building the documentation requires doxygen version 1.8.10 or newer.
  6. Emscripten builds require the portable EMSDK.

Get the code {#get-the-code}

git clone https://github.com/BlueSwordM/aom-av1-psy for the main branch, where the main "psy" changes for aom-av1-psy can be looked at.

git clone https://github.com/BlueSwordM/aom-av1-psy -b full_build-4 for the full_build-4 branch, where most bigger non mainline targeted aom-av1-psy changes go.

git clone https://github.com/BlueSwordM/aom-av1-psy -b full_build-alpha-4 for the full_build-alpha-4 branch, where even more more experimental changes go and what most of us enthusiasts use for encoding.

Viewing the status of uploaded changes {#viewing-the-status-of-uploaded-changes}

To check the status of a change that you uploaded, open Github PRs, sign in, and click Pull Requests.

Support {#support}

This library is an open source project supported by the general AV1 enthusiast encoder community. Please please send pull requests, feature requests and general comments on this repository. Other more miscalleneous discussions, contributions, and talks will be done elsewhere.

Bug reports {#bug-reports}

Bug reports can be filed in the Alliance for Open Media for general aomenc bugs issue tracker.

As for the ones related to aom-av1-psy change themselves, the issues tab can be used here on Github.

Advanced Prerequisites

There are various advanced features that aom-av1-psy can utilize to further boost encoding quality that can be found in the full_build-alpha-4 branch.

These include butteraugli-jxl RD analysis(8-bit only currently), VMAF motion QP analysis(utilizing VMAF motion to enhance rate control in motion considerably, especially in lower luma scenarios), future SSIMULACRA2 RD analysis, and perceptual quality driven RD analysis with a strong VMAF motion QP analysis.

For VMAF, you need to either download/install the appropriate VMAF libraries for your OS to directly take advantage of it, either through your package manager on Linux or macOS, or downloading stuff directly on Windows: https://github.com/Netflix/vmaf

As for those who want to build stuff directly from source like me, this is how I personally do it as an example:

cd vmaf/libvmaf && mkdir build && cd build
meson .. --buildtype=release --default-library=both -Db_lto=true -Dc_args="-march=native" -Dcpp_args="-march=native" && ninja
sudo ninja install
cd .. && cd .. && cd .. && clear

For butteraugli-jxl analysis as well as future ssimulacra RD uses, you will need to download/install/build the appropriate libjxl libraries to get access to all of the required libraries and tools: https://github.com/libjxl/libjxl

As for those who want to build stuff directly from source like me, an example can be seen below as to how I do it:

    cd libjxl && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -march=native" -DCMAKE_C_FLAGS="-O3 -march=native" -DJPEGXL_ENABLE_PLUGINS=ON -DJPEGXL_ENABLE_DEVTOOLS=ON -#DBUILD_TESTING=OFF -DJPEGXL_WARNINGS_AS_ERRORS=OFF -DJPEGXL_ENABLE_SJPEG=OFF  .. && cmake --build . -- -j$(nproc)
    sudo make install
    cd .. && cd .. && clear

Note that these build scripts are made for installing on your machine with maximum optimizations. These are not meant for distribution.

Now that everything's been said, enjoy your time here, and happy encoding!

aom-av1-psy's People

Contributors

jingninghan avatar yaowuxu avatar jzern avatar dmitriykovalev avatar debargha avatar jkoleszar avatar marco99zz avatar punksu avatar paulwilkins avatar tomfinegan avatar jimbankoski avatar wantehchang avatar aconverse avatar rbultje avatar urvangjoshi avatar agrange avatar chengchen-google avatar jeromejj avatar zoeliu37 avatar luctrudeau avatar fkyslov avatar remyaprakasan avatar pengbin87 avatar stemidts avatar venkat-sanampudi avatar gezalore avatar ycho avatar jimdbh avatar jmvalin avatar imgmips1 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.