Video Compression

VideoNerd

Encoder

Getting and Compilation (in Windows)

      Running MPEG-5 EVC encoder (xeveb_app.exe)

Decoder

     Getting and Compilation of MPEG-5 Decoder (in Windows)

    Running MPEG-5 EVC  Decoder

 

 

Encoder

MPEG-5 EVC is tailored for 8K encoding.

 

Getting and Compilation (in Windows)

Sources of MPEG-5 EVC encoder are free. It’s worth noticing that MPEG-5 EVC consists of two profiles: Baseline and Main. The Baseline profile contains technologies that are older than 20 years and consequently are patent-royalty free.

To get sources of MPEG-5 EVC  are copied in created folder mpeg5-xeve

git clone https://github.com/mpeg5/xeve.git    mpeg5-xeve

Upon getting MPEG-5 EVC you should perform the following steps:

1) go to mpeg5-xeve

2) mkdir build    – create the folder ‘build’

3) go to the folder ‘build’  (‘cd build’)

4) use cmake to get Visual Studio solution (x64, Baseline Profile), i use Visual Studio 2019:

cmake .. -G “Visual Studio 16 2019” -DCMAKE_GENERATOR_PLATFORM=x64 -DSET_PROF=BASE

As result Visual Studio solution ‘XEVE.sln‘ is created in the folder ‘build’, open this solution, set Release mode (by default Debug mode is set) and build the whole solution.

5) The exe-file  xeveb_app.exe is created in the folder  mpeg5-xeve\build\bin\Release

 

 

Running MPEG-5 EVC encoder (xeveb_app.exe)

Selected command-line parameters (to get the full list of parameters run xeveb_app.exe without arguments):

-v   verbose level (default 2)

– 0: no message
– 1: only error message
– 2: simple messages
– 3: frame-level messages

-i   file name of input video (raw YUV or Y4M)

-o  file name of output bitstream

-w  pixel width of input video

-h   pixel height of input video

-q   QP value (0~51), default 32

-z   frame rate

-I   I-picture period, default 0, i.e. no I-pictures

-b   maximum number of B frames (1,3,7,15), default 15.

-m  force to use a specific number of threads, default 1.

--preset  encoder presets [fast, medium, slow, placebo], default medium

--tune  encoder tuning [psnr, zerolatency, none], default none

--aq-mode  use adaptive quantization block qp adaptation, default off

– 0: off
– 1: adaptive quantization

--frames  maximum number of frames to be encoded, if 0 then all frames in the input file are encoded, default 0

 

Example: [yuv420p@60fps, frame-level verbose, GOP size = 60 frames ]

xeveb_app.exe -i  battlefield_384x320.yuv -w 384 -h 320 -v 3 -z 60 -I 60 -b 1 --preset fast --tune zerolatency --aq-mode 1 -o battlefield.evc

=== Stat =======================================================================
POC   Tid     Ftype    QP     PSNR-Y     PSNR-U     PSNR-V       Bits            EncT(ms)
================================================================================
0       0         (I)         31       35.6325      41.7040      43.3383         84472          125
1       0        (P)         39       32.3590      42.2876      44.7300         9048           63
2       0        (P)        39        32.1167      43.0716      45.2677         2560            47
3       0        (P)        39       31.7594      43.3307       45.5910         3040            32
4       0        (P)        39       33.3986      43.4300       45.9359        4984            46
5       0        (P)        39       34.8044      43.7491      45.9404         2608            31
6       0         (P)       39       35.4834     43.9695       46.5258         1400            47
7       0        (P)        39       35.3382     44.0734       46.4045         2088            31
8       0        (P)        39       35.4707     44.1781       46.5278        1096             32

….

 

Decoder

Getting and Compilation of MPEG-5 Decoder (in Windows)

To get sources of MPEG-5 EVC  decoder

git clone https://github.com/mpeg5/xeve.git    mpeg5-decoder

Upon getting MPEG-5 EVC you should perform the following steps:

1) go to mpeg5-decoder

2) mkdir build    – create the folder ‘build’

3) go to the folder ‘build’  (‘cd build’)

4) use cmake to get Visual Studio solution (x64, Baseline Profile), i use Visual Studio 2019:

cmake .. -G “Visual Studio 16 2019” -DCMAKE_GENERATOR_PLATFORM=x64 -DSET_PROF=BASE

As result Visual Studio solution ‘XEVD.sln‘ is created in the folder ‘build’, open this solution, set Release mode (by default Debug mode is set) and build the whole solution.

5) The exe-file  xevdb_app.exe is created in the folder  mpeg5-decoder\build\bin\Release\

 

Running Decoder

you can get output files in two formats raw yuv420p and y4m:

xevdb_app.exe -i  battlefield.evc -o battlefield_384x320.yuv

         xevdb_app.exe -i  battlefield.evc -o battlefield.y4m

 

play yuv-file with ffplay:

ffplay -framerate 60 -s 384×320 battlefield_384x320.yuv

to play y4m there is no sense to specify the resolution and the frame rate, these parameters already hidden in y4m headers.

    ffplay  battlefield.y4m

Leave a Reply

Your email address will not be published. Required fields are marked *