[Cin] SVT-AV1 0.5

Andrew Randrianasulu randrianasulu at gmail.com
Sun May 19 22:25:25 CEST 2019


Hello, all!!

Just read news at Phoronix:
https://www.phoronix.com/scan.php?page=news_item&px=SVT-AV1-0.5.0-Released
-------
SVT-AV1 0.5 is easily one of the fastest AV1 CPU-based video encoders and has been performing excellent in our tests, including continued daily benchmarks of it in keeping track of its performance. 
 
This open-source AV1 video encoder as of the v0.5 release supports 8/10-bit 4:2:0 encoding up to 4k60p resolutions, various presets, FFmpeg and GStreamer plug-in support, rate control support, various filters, tiling, 4/5 layer prediction structures, multi-reference picture support, and other features. 
--------

so I downloaded their release, and tried  to build and test it on

cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 21
model           : 2
model name      : AMD FX(tm)-4300 Quad-Core Processor
stepping        : 0
microcode       : 0x6000852
cpu MHz         : 1811.199
cache size      : 2048 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 16
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb cpb hw_pstate ssbd vmmcall bmi1 arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass
bogomips        : 7599.47
TLB size        : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro


ffmpeg patch apparently for 4.1 branch, and  whole software failed to build on 32-bit oS, yet it was ok on 64-bit Slackware 14.2
(gcc 5.5.0, yasm 1.3.0, cmake)

root at slax:~/src/SVT-AV1-0.5.0/Bin/Release# ffmpeg -i /home/guest/20160802_185428.MOV -nostdin -f rawvideo -pix_fmt yuv420p - | ./SvtAv1EncApp -i stdin -n 100 -w 1280 -h 720 -b out.ivy
-------------------------------------------
SVT-AV1 Encoder
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.5.0 (GCC)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/doc/ffmpeg-3.2.4/html --mandir=/usr/man --disable-debug --enable-shared --disable-static --enable-gpl --enable-version3 --enable-avresample --arch=x86_64 --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libcaca --enable-libcdio --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-opengl --enable-libopenjpeg --enable-libpulse --enable-libsmbclient --enable-libwavpack --enable-x11grab
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libavresample   3.  1.  0 /  3.  1.  0
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/guest/20160802_185428.MOV':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2016-08-02T18:54:28.000000Z
  Duration: 00:01:17.16, start: 0.000000, bitrate: 9895 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1280x720, 8077 kb/s, 30.02 fps, 30 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2016-08-02T18:54:28.000000Z
      handler_name    : iCat Alias Data Handler
      encoder         : iCatch AVCC
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 44100 Hz, stereo, s16, 1411 kb/s (default)
    Metadata:
      creation_time   : 2016-08-02T18:54:28.000000Z
      handler_name    : iCat Alias Data Handler
[swscaler @ 0xf00de0] deprecated pixel format used, make sure you did set range correctly
Output #0, rawvideo, to 'pipe:':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    encoder         : Lavf57.56.101
    Stream #0:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720, q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
    Metadata:
      creation_time   : 2016-08-02T18:54:28.000000Z
      handler_name    : iCat Alias Data Handler
      encoder         : Lavc57.64.101 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
SVT [version]:  SVT-AV1 Encoder Lib v0.5.0
SVT [build]  :  GCC 5.5.0        64 bit
LIB Build date: May 19 2019 22:58:37
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 72
-------------------------------------------
SVT [config]: Main Profile      Tier (auto)     Level (auto)
SVT [config]: EncoderMode                                                       : 8
SVT [config]: EncoderBitDepth / EncoderColorFormat / CompressedTenBitFormat     : 8 / 1 / 0
SVT [config]: SourceWidth / SourceHeight                                        : 1280 / 720
SVT [config]: FrameRate / Gop Size                                              : 30 / 32
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure          : 4 / 0 / 2
SVT [config]: BRC Mode / QP  / LookaheadDistance / SceneChange                  : CQP / 50 / 33 / 0
-------------------------------------------
      100frame=   99 fps=3.3 q=-0.0 size=  133650kB time=00:00:03.30 bitrate=331776.0kbits/s speed=0.111x    .0675x
SUMMARY --------------------------------- Channel 1  --------------------------------
Total Frames            Frame Rate              Byte Count              Bitrate
         100            30.00 fps                  1205227              2892.54 kbps


Channel 1
Average Speed:          1.451 fps
Total Encoding Time:    68915 ms
Total Execution Time:   69845 ms
Average Latency:        41891 ms
Max Latency:            62157 ms
Encoder finished


Hm, 1.5 fps  for 1280x720 , 30 fps video!
(Note, encoding process really eats your CPU, everything started to lag, sound, mouse ...)

Not bad ...

next, I used ffmpeg-git for copying frames into mp4 container

ffmpeg -i out.ivy -vcodec copy  av1_svt_0.5.mp4

Resulting file was playable in my libdav1d patched Cinelerra-GG :}

Also, libdav1d saw minor release 0.3.1 - featuring 

version for 0.3.1  · May 11, 2019 

  
dav1d 0.3.1 'Sailfish', the fast and small AV1 decoder

This is a small bugfix release fixing a decoding issue on SSSE3 CPU,
when frame-threading is activated.

It also reduces the binary size and gives more optimizations for SSSE3

src: https://code.videolan.org/videolan/dav1d/tags/0.3.1


More information about the Cin mailing list