Selur's Little Message Board
Is SVT-AV1 encoder implementation a planned feature? - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html)
+--- Forum: Problems & Questions (https://forum.selur.net/forum-3.html)
+--- Thread: Is SVT-AV1 encoder implementation a planned feature? (/thread-965.html)

Pages: 1 2


Is SVT-AV1 encoder implementation a planned feature? - Execrated - 02.04.2019

If not, if there a limitation that would prevent it from being added?


RE: Is SVT-AV1 encoder implementation a planned feature? - Selur - 02.04.2019

Yes it is planned.
Waiting for builds which support pipe input, since I'm not planning to support it while humongous temporary files are needed.
+ https://github.com/jb-alvarado/media-autobuild_suite/ doesn't support it atm. and there are some issues compiling it.


Cu Selur


RE: Is SVT-AV1 encoder implementation a planned feature? - erjigit17 - 20.04.2020

(02.04.2019, 05:39)Selur Wrote: Yes it is planned.
Waiting for builds which support pipe input, since I'm not planning to support it while humongous temporary files are needed.
+ https://github.com/jb-alvarado/media-autobuild_suite/ doesn't support it atm. and there are some issues compiling it.


Cu Selur

https://github.com/m-ab-s/media-autobuild_suite

already appeared on the list svt av1

looking forward to update


RE: Is SVT-AV1 encoder implementation a planned feature? - Selur - 20.04.2020

Yes, I noticed that a few days ago, it's on my todo list, but I'm too busy atm. fixing bugs.
So once I fix the currently reported problems I'll try to look at it.

Cu Selur


RE: Is SVT-AV1 encoder implementation a planned feature? - Selur - 20.04.2020

Had a quick look at the options:
-------------------------------------------
SVT-AV1 Encoder

Usage: SvtAv1EncApp.exe <options> -b dst_filename -i src_filename

Options:                
             --help                        Show usage options and exit
    -i       --input                      Input filename          
    -b       --output                     Output filename          
             --errlog                      Error filename          
    -o       --recon                      Recon filename          
             --stat-file                   Stat filename            

Encoder Global Options:  
    -w       --width                      Frame width              
    -h       --height                     Frame height            
    -n       --frames                     Stop encoding after n input frames
             --nb                          Buffer n input frames    
             --color-format                Set encoder color format(EB_YUV400, EB_YUV420, EB_YUV422, EB_YUV444)
             --profile                     Bitstream profile number to use(0: main profile[default], 1: high profile, 2: professional profile)
             --fps                         Stream frame rate (rate/scale)
             --fps-num                     Stream frame rate numerator
             --fps-denom                   Stream frame rate denominator
             --input-depth                Bit depth for codec(8 or 10)
             --16bit-pipeline              Bit depth for enc-dec(0: lbd[default], 1: hbd)
             --hierarchical-levels         Set hierarchical levels(3 or 4[default])
             --pred-struct                 Set prediction structure( 0: low delay P, 1: low delay B, 2: random access [default])
             --enable-hdr                 Enable high dynamic range(0: OFF[default], ON: 1)
             --asm                         Assembly instruction set (0: Automatically select lowest assembly instruction set supported, 1: Automatically select highest assembly instruction set supported)
             --lp                          number of logical processors to be used
             --unpin-lp1                   allows the execution of multiple encodes on the CPU without having to pin them to a specific mask( 0: OFF ,1: ON[default])
             --ss                          Specify  which socket the encoder runs on

Rate Control Options:    
             --rc                          Rate control mode(0 = CQP , 1 = VBR , 2 = CVBR)
             --tbr                         Target Bitrate (kbps)    
             --use-q-file                  Overwrite QP assignment using qp values in QP file
             --qpfile                     Path to Qp file          
             --max-qp                      Maximum (worst) quantizer[0-63]
             --min-qp                      Minimum (best) quantizer[0-63]
             --adaptive-quantization       Set adaptive QP level(0: OFF ,1: variance base using segments ,2: Deltaq pred efficiency)
             --vbv-bufsize                 VBV buffer size          

Twopass Options:        
             --output-stat-file            First pass stat file output
             --input-stat-file             Input the first pass output to the second pass
             --enc-mode-2p                 Use Hme/Me settings of the second pass'encoder mode in the first pass

Keyframe Placement Options:
             --keyint                     Intra period interval(frames) (-2: No intra update, -1: default intra period or [0-255])
             --irefresh-type               Intra refresh type (1: CRA (Open GOP)2: IDR (Closed GOP))

AV1 Specific Options:    
             --preset                     Encoder mode/Preset used[0-8]
             --compressed-ten-bit-format    Offline packing of the 2bits: requires two bits packed input (0: OFF[default], 1: ON)
             --tile-rows                   Number of tile rows to use, log2[0-6]
             --tile-columns                Number of tile columns to use, log2[0-6]
    -q       --qp                         Constant/Constrained Quality level
             --lookahead                  When RC is ON , it is best to set this parameter to be equal to the intra period value
             --disable-dlf                Disable loop filter(0: loop filter enabled[default] ,1: loop filter disabled)
             --cdef-mode                   CDEF Mode, 0: OFF, 1-5: ON with 2,4,8,16,64 step refinement, -1: DEFAULT
             --enable-restoration-filtering    Enable the loop restoration filter(0: OFF ,1: ON ,-1:DEFAULT)
             --sg-filter-mode              Self-guided filter mode (0:OFF, 1: step 0, 2: step 1, 3: step 4, 4: step 16, -1: DEFAULT)
             --wn-filter-mode              Wiener filter mode (0:OFF, 1: 3-Tap luma/ 3-Tap chroma, 2: 5-Tap luma/ 5-Tap chroma, 3: 7-Tap luma/ 7-Tap chroma, -1: DEFAULT)
             --enable-mfmv                Enable motion field motion vector( 0: OFF, 1: ON, -1: DEFAULT)
             --enable-redundant-blk       Use the same md results(mode, residual , cost,etc..)as the previously processed identical block(0: OFF, 1: ON, -1: DEFAULT)
             --enable-spatial-sse-fl      Enable spatial sse full loop(0: OFF, 1: ON, -1: DEFAULT)
             --subpel                      Enable subpel(0: OFF, 1: ON, -1: DEFAULT)
             --enable-over-bndry-blk      Enable over boundary block mode (0: OFF, 1: ON, -1: DEFAULT)
             --enable-new-nrst-near-comb    Enable new nearest near comb injection (0: OFF, 1: ON, -1: DEFAULT)
             --enable-prune-unipred-me    Enable prune unipred at me (0: OFF, 1: ON, -1: DEFAULT)
             --enable-prune-ref-rec-part    Enable prune ref frame for rec partitions (0: OFF, 1: ON, -1: DEFAULT)
             --enable-nsq-table-use       Enable nsq table (0: OFF, 1: ON, -1: DEFAULT)
             --enable-framend-cdf-upd-mode    Enable frame end cdf update mode (0: OFF, 1: ON, -1: DEFAULT)
             --chroma-mode                 Select chroma mode([0-3], -1: DEFAULT)
             --disable-cfl                Disable chroma from luma (CFL) flag (0: OFF (do not disable), 1: ON (disable), -1: DEFAULT)
             --enable-local-warp          Enable warped motion use , 0 = OFF, 1 = ON, -1 = DEFAULT
             --enable-global-motion       Enable global motion (0: OFF, 1: ON [default])
             --enable-class-12            Enable combine MD Class1&2 (0: OFF, 1: ON, -1: DEFAULT)
             --enable-intra-edge-skp      Enable intra edge filtering (0: OFF, 1: ON (default))
             --intra-angle-delta           Enable intra angle delta filtering filtering (0: OFF, 1: ON, -1: DEFAULT)
             --enable-interintra-comp     Enable interintra compound (0: OFF, 1: ON (default))
             --enable-paeth               Enable paeth (0: OFF, 1: ON, -1: DEFAULT)
             --enable-smooth              Enable smooth (0: OFF, 1: ON, -1: DEFAULT)
             --obmc                        Enable OBMC(0: OFF, 1: ON[default])
             --enable-rdoq                Enable RDOQ (0: OFF, 1: ON, -1: DEFAULT)
             --enable-filter-intra        Enable filter intra prediction mode (0: OFF, 1: ON [default])
             --enable-intra-edge-filter    Enable intra edge filter (0: OFF, 1: ON, -1: DEFAULT)
             --pic-based-rate-est          Enable picture based rate estimation (0: OFF, 1: ON, -1: DEFAULT)
             --pred-me                     Set predictive motion estimation level(-1: default, [0-5])
             --bipred-3x3                  Set bipred3x3 injection (0: OFF, 1: ON FULL, 2: Reduced set, -1: DEFAULT)
             --compound                    Enable compound mode(0: OFF, 1:ON[AVG/DIST/DIFF], 2: ON[AVG/DIST/DIFF/WEDGE], -1: default)
             --use-default-me-hme          Use default motion estimation/hierarchical motion estimation settings(0: OFF, 1: ON[default])
             --hme                         Enable hierarchical motion estimation(0: OFF, 1: ON)
             --hme-l0                      Enable hierarchical motion estimation Level 0 (0: OFF, 1: ON)
             --hme-l1                      Enable hierarchical motion estimation Level 1 (0: OFF, 1: ON)
             --hme-l2                      Enable hierarchical motion estimation Level 2 (0: OFF, 1: ON)
             --ext-block                   Enable the rectangular and asymetric block (0: OFF, 1: ON)
             --search-w                    Set search area in width[1-256]
             --search-h                    Set search area in height[1-256]
             --num-hme-w                   Set hierarchical motion estimation search region in Width
             --num-hme-h                   Set hierarchical motion estimation search region in height
             --hme-tot-l0-w                Set hierarchical motion estimation level0 total search area in Width
             --hme-tot-l0-h                Set hierarchical motion estimation level0 total search area in height
             --scm                         Set screen content detection level([0-2], 2: DEFAULT)
             --intrabc-mode                Set intraBC mode (0: OFF, 1: ON slow, 2: ON faster, 3: ON fastest, -1: DEFAULT)
             --hbd-md                      Enable high bit depth mode decision(0: OFF, 1: ON partially[default],2: fully ON)
             --palette                     Set palette prediction mode(-1: default or [0-6])
             --umv                         Allow motion vectors to reach outside of the picture boundary(O: OFF, 1: ON[default])
             --inj                         Inject pictures at defined frame rate(0: OFF[default],1: ON)
             --inj-frm-rt                  Set injector frame rate  
             --speed-ctrl                  Enable speed control(0: OFF[default], 1: ON)
             --film-grain                  Enable film grain(0: OFF[default], 1-50: ON, film-grain denoising strength)
             --hme-l0-w                    Set hierarchical motion estimation level0 search area in Width
             --hme-l0-h                    Set hierarchical motion estimation level0 search area in height
             --hme-l1-w                    Set hierarchical motion estimation level1 search area in Width
             --hme-l1-h                    Set hierarchical motion estimation level1 search area in height
             --hme-l2-w                    Set hierarchical motion estimation level2 search area in Width
             --hme-l2-h                    Set hierarchical motion estimation level2 search area in height
             --enable-altrefs              Enable automatic alt reference frames(0: OFF, 1: ON[default])
             --altref-strength             AltRef filter strength([0-6], default: 5)
             --altref-nframes              AltRef max frames([0-10], default: 7)
             --enable-overlays             Enable the insertion of an extra picture called overlayer picture which will be used as an extra reference frame for the base-layer picture(0: OFF[default], 1: ON)
             --sqw                         Determines if HA, HB, VA, VB, H4 and V4 shapes could be skipped based on the cost of SQ, H and V shapes([75-100], default: 100)
             --mds-1-class-th              Set MD Stage 1 prune class threshold[5-200]
             --mds-1-cand-th               Set MD Stage 1 prune candidate threshold[5,150]
             --mds-2-3-class-th            Set MD Stage 2/3 prune class threshold[5,100]
             --mds-2-3-cand-th             Set MD Stage 2/3 prune candidate threshold[5,50]
             --enable-stat-report         Stat Report              
             --enable-intra-angle-delta    CDEF Mode, 0: OFF, 1-5: ON with 2,4,8,16,64 step refinement, -1: DEFAULT
source: SvtAv1EncApp.exe -help
+
https://github.com/OpenVisualCloud/SVT-AV1/blob/master/Docs/svt-av1_encoder_user_guide.md

=> this will take quite a while, especially since there are LOTS of options.

Cu Selur


RE: Is SVT-AV1 encoder implementation a planned feature? - Selur - 23.04.2020

btw. if you want to help, I'm looking for a few sub categories to split the 'AV1 Specific Options' into.
-> so if you (or anyone lese) knows enough about AV1 to sort them into sub categories (like MotionEstimation, RateControl, Partitioning or similar let me know)

Cu Selur


RE: Is SVT-AV1 encoder implementation a planned feature? - Selur - 25.04.2020

Btw. I just added SVT-AV1 support to my dev version with tons of parameters I'm not sure of what they do exactly.
So the general tool-tips will probably not really help much and I'm not sure I categorized each of the ~100 options correctly.

https://github.com/OpenVisualCloud/SVT-AV1/blob/master/Docs/svt-av1_encoder_user_guide.md
and
https://github.com/OpenVisualCloud/SVT-AV1/blob/master/Docs/README.md
are nice, not always in sync with the command line help info, but all in all a great help.

One thing that I noticed is that the encoder is fast, but by default configured for top speed and once you change the presets it gets slow. Tongue

Cu Selur


RE: Is SVT-AV1 encoder implementation a planned feature? - erjigit17 - 29.04.2020

(23.04.2020, 20:43)Selur Wrote: btw. if you want to help, I'm looking for a few sub categories to split the 'AV1 Specific Options' into.
-> so if you (or anyone lese) knows enough about AV1 to sort them into sub categories (like MotionEstimation, RateControl, Partitioning or similar let me know)

Cu Selur


I really like svt hevc

and for me enough toolbox of svt hevc

I use your application exclusively for converting video on a separate PC
my settings for converting: constant quantizer, preset 


I've try gui for svt av1, it was horrible(((


RE: Is SVT-AV1 encoder implementation a planned feature? - Selur - 29.04.2020

send you a link to my current dev version which supports SVT-AV1, haven't had much time to test Smile

Cu Selur


RE: Is SVT-AV1 encoder implementation a planned feature? - erjigit17 - 29.04.2020

(29.04.2020, 15:14)Selur Wrote: send you a link to my current dev version which supports SVT-AV1, haven't had much time to test Smile

Cu Selur
works good,

But  progress bar does not visible for a long time(

I,ve test 
10sec video 1080p
Const quan 55 
Presset 8
Converting time 2-3min
Laptop MacBook Pro 2014 (i7 4770HQ)