An open-source encoder of AVS2-P2/IEEE1857.4 video coding standard
Switch branches/tags
Nothing to show
Clone or download
luofalei Split `build/vs2013/libxavs2asm` project to three parts to improve th…
…e efficiency on some platforms.

This can help improve about 100% encoding speed on CPU i7-6950X (encoding preset 2). At the same time, the encoding speed is closer to the `linux subsystem on windows`.

More information could be found for VS `warning C4752`, as
https://stackoverflow.com/questions/7839925/using-avx-cpu-instructions-poor-performance-without-archavx/28356924
Latest commit 2f3f099 Nov 14, 2018

README.md

xavs2

xavs2 is an open-source encoder of AVS2-P2/IEEE1857.4 video coding standard.

A decoder, davs2, can be found at Github or Gitee (mirror in China).

GitHub tag GitHub issues GitHub forks GitHub stars

Build it

Windows

Use VS2013 or later version of visual studio to open the solution file ./build/vs2013/xavs2.sln, then set the xavs2 as the start project and build it.

Notes

  1. A shell executor, i.e. the bash in git for windows, is needed and should be found in PATH variable. For example, the path C:\Program Files\Git\bin can be added if git-for-windows is installed.
  2. vsyasm is needed and 1.2.0 is suggested for windows platform. It can be downloaded through: http://yasm.tortall.net/Download.html . A later version 1.3.0 (unofficial revision, please read the instructions of yasm to build it for your work), can be found in https://github.com/luofalei/yasm/tree/vs2013 . The installation of vsyasm is as follows (if you were using VS2013):
(1) Copy `vsyasm.exe` to the following directory, 
    "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\"
(2)	Copy the other 3 files in `vsyasm` to the `MSBuild template` directorty, as follows, 
    "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\"
(3) Re-open the solution. 

Linux

$ cd build/linux
$ ./configure
$ make

Try it

./xavs2 [-f encoder.cfg [-f seq.cfg]] [-p ParameterName=value] [--ParameterName=value]

Encode with configuration files

./xavs2 -f encoder.cfg -f seq4K.cfg -p InputFile=input.yuv -p FramesToBeEncoded=500 \
  -p preset=0 -p recon=. -p initial_qp=32 -p OutputFile=test.avs

Enocde without configuraton files

./xavs2 -p InputFile=input.yuv --FramesToBeEncoded=500 --FrameRate=6 \
  --SourceWidth=3840 --SourceHeight=2160 --InputSampleBitDepth=8 --SampleBitDepth=8 \
  --thread_frames=1 --thread_rows=1 --preset=0 \
  --recon=. --initial_qp=32 --OutputFile=test.avs

Issue and Pull Request

Issues should be reported here

If you have some bugs or features fixed, and would like to share with the public, please make a Pull Request.

Homepages

PKU-VCL

AVS2-P2/IEEE1857.4 Encoder: xavs2 (Github), xavs2 (mirror in China)

AVS2-P2/IEEE1857.4 Decoder: davs2 (Github), davs2 (mirror in China)