Video Compression

VideoNerd

How Build and Run EVC Codec

How Build and Run EVC Decoder

 

In my opinion one of the reason why scalable video is non-popular in commercial applications – most of hw decoders in GPU cards don’t support scalable video because it’s complex and serial in virtue.

Real-time decoding of scalable video by sw-encoders is challenging, due to the very serial nature of video scalability – to decode (k+1)-the the decoder should complete the k-th layer.

However, recently finalized standard LCEVC facilitates decoding. Notice that LCEVC is a subset of more wider standard EVC.

Because the basic layer of LCEVC can be any stream (h264, hevc, av1 etc.), it makes LCEVC to be more attractive (since internet video traffic is composed from h264, hevc, av1 and even mpeg2 streams).  LCEVC can enhance any base codec: AVC/H.264, HEVC, VP9, AV1, VVC, etc.

In SVC of HEVC and AVC in order to get better inter-layer prediction motion vectors of k-th layer are predicted from those of (k-1)th layer, also residuals of k-th layer are predicted from residuals of (k-1)th etc.

The process of both SVC encoding and decoding is extremely complex and serial in virtue. 

In LCEVC you need from a lower layer only upscaled decoded image (and both decoding of the base layer and the upscaling can be performed in GPU). Inter-layer redundancy is not exlpoited so effictively as in SVC of HEVC and H264, but complexity is significantly reduced.

In LCEVC the basic layer decoding and two upscaling processes can be executed in GPU and CPU tasks  are entropy decoding, inverse quantization, inverse transform and filtering for the first enhancement layer (L-1 Filter).

 

More simplistic two-layered schema (taken from “Enhancing SVT-AV1 with LCEVC to improve quality-cycles trade-offs and enhance sustainability of VOD transcoding”):

Advantages of Scalable Video

  • LCEVC is suitable for bitrate adaptation, although in very limited form since only two spatial enhanced layers are allowed.
  • In case of satellite communications the base layer can be shielded by FEC (forward error correction data). This is relevant for all scalable standards.
  • For secure communication the base layer can be encrypted, there is no sense to encrypt enhancement layers. This is relevant for all scalable standards.
  • When encoding in combination with LCEVC, the overall compression efficiency relies on the efficiency of both the base codec and LCEVC extension.

 

Use case of SVC:
SVC video sequences are uploaded from the ground station to the communication satellite, and then from the satellite to the moving vehicles. According transmission throughput, each terrestrial vehicle receives different number of layers, for most limited throughput only base layer is sent, for best throughput the whole SVC stream (all layers) are transmitted:

How Build and Run EVC Codec

Extra fast MPEG5 EVC encoder xeve can be cloned from here

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

In the root ‘xeve’ folder make sub-folder ‘build’. Go to ‘build’ and create Visual Studio Solution (2019) as follows:

cmake .. -G "Visual Studio 16 2019" -DSET_PROF=BASE

Open the visual studio solution XEVE.sln, build the solution in Release/x64 mode. The exe-file xeveb_app.exe is created in the folder xeve\build\bin\Release

1) Example to run [input format y4m, closed GOP, frame rate 30fps, preset ‘fast’, tune ‘zerolatency’]

xeveb_app.exe -i  akiyo_cif.y4m -z 30 --keyint 30 --closed-gop --preset fast --tune zerolatency -o akiyo.evc


XEVE: eXtra-fast Essential Video Encoder
=== Summary ==================================================================
Bitrate = 59.5104 kbps
Encoded frame count = 300
Total encoding time = 4486.000 msec, 4.486 sec
Average encoding time for a frame = 14.953 msec
Average encoding speed = 66.875 frames/sec
============================================================================

2) Example to run [input format yuv1080p, closed GOP, frame rate 60fps, preset ‘fast’, tune ‘zerolatency’]

xeveb_app.exe -i test_1920x1080.yuv -w 1920 -h 1080 -z 60 --keyint 60 --closed-gop --tune zerolatency --preset fast -o test.evc


XEVE: eXtra-fast Essential Video Encoder
=== Summary ==================================================================
Bitrate = 3403.7160 kbps
Encoded frame count = 320
Total encoding time = 145818.000 msec, 145.818 sec
Average encoding time for a frame = 455.681 msec
Average encoding speed = 2.195 frames/sec
============================================================================

Note: profile ‘main’ is not supported by the encoder, only baseline profile supported

How Build and Run EVC Decoder

MPEG5 EVC decoder xevd can be cloned from here

git clone https://github.com/mpeg5/xevd.git

In the root ‘xevd’ folder make sub-folder ‘build’. Go to ‘build’ and create Visual Studio Solution (2019) as follows:

cmake .. -G "Visual Studio 16 2019"

Open the visual studio solution XEVD.sln, build the solution in Release/x64 mode. The exe-file xevd_app.exe is created in the folder xevd\build\bin\Release

Example – decode to y4m file
xevd_app.exe -i akiyo.evc   -o akiyo.y4m

17 Responses

  1. Hi would you mind letting me know which web host you’re utilizing? I’ve loaded your blog in 3 different internet browsers and I must say this blog loads a lot faster then most. Can you recommend a good web hosting provider at a honest price? Many thanks, I appreciate it!

  2. I’m curious to find out what blog platform you have been working with? I’m having some small security problems with my latest website and I would like to find something more secure. Do you have any recommendations?

  3. Hi there, I found your website via Google while searching for a related topic, your site came up, it looks good. I’ve bookmarked it in my google bookmarks.

  4. Greetings! I know this is kind of off topic but I was wondering which blog platform are you using for this site? I’m getting fed up of WordPress because I’ve had issues with hackers and I’m looking at alternatives for another platform. I would be great if you could point me in the direction of a good platform.

  5. You could certainly see your expertise within the paintings you write. The arena hopes for more passionate writers like you who aren’t afraid to say how they believe. Always go after your heart.

  6. Howdy this is kinda of off topic but I was wanting to know if blogs use WYSIWYG editors or if you have to manually code with HTML. I’m starting a blog soon but have no coding expertise so I wanted to get advice from someone with experience. Any help would be greatly appreciated!

  7. Great beat ! I wish to apprentice while you amend your site, how could i subscribe for a blog web site? The account aided me a acceptable deal. I have been tiny bit acquainted of this your broadcast offered bright clear idea

  8. Hi there, I discovered your web site via Google while searching for a similar topic, your web site came up, it seems to be good. I’ve bookmarked it in my google bookmarks.

  9. Hey there, You’ve done a great job. I will definitely digg it and personally
    suggest to my friends. I’m confident they will be
    benefited from this site.

Leave a Reply

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