Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > VP9 and AV1

Reply
 
Thread Tools Search this Thread Display Modes
Old 9th December 2013, 11:35   #381  |  Link
oibaf
Registered User
 
Join Date: Nov 2008
Posts: 56
1.3.0

1.3.0 was tagged.

But is there an official announcement somewhere other than the git tag? Download section still only has 1.2.0.
oibaf is offline   Reply With Quote
Old 9th December 2013, 11:49   #382  |  Link
Kurtnoise
Swallowed in the Sea
 
Kurtnoise's Avatar
 
Join Date: Oct 2002
Location: Aix-en-Provence, France
Posts: 5,191
From the changelog file...
Kurtnoise is offline   Reply With Quote
Old 9th December 2013, 16:21   #383  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
Compiled vpxenc&vpxdec using https://github.com/jb-alvarado/media-autobuild_suite
but either something is wrong with that build script or vpx is simply broken.

lossless creates a 1byte file
normal vp9 and vp9 encoding produces an output where it looks like that the color space got totally mixed up.

-> Can someone compile and upload current vpxenc so I can check with that and contact jb-alvarado or the vpxenc devs depending on where the problem is.

Code:
mencoder -lavdopts threads=8 -really-quiet -of rawvideo -o - -ovc raw -demuxer lavf -vfm ffmpeg -noskip -vf scale,format=i420 -forcedsubsonly -nosub -nosound -mc 0 "H:\TESTCL~1\test.avi" | vpxenc --codec=vp9 --passes=1 --pass=1 --target-bitrate=1500 --end-usage=vbr --profile=0 --good --cpu-used=3 --undershoot-pct=0 --buf-sz=6 --buf-initial-sz=4 --buf-optimal-sz=5 --drop-frame=0 --resize-allowed=0 --kf-min-dist=0 --kf-max-dist=250 --auto-alt-ref=0 --noise-sensitivity=0 --sharpness=0 --static-thresh=0 --tile-columns=2 --tile-rows=1 --threads=16 --width=640 --height=352 -o "H:\Temp\test_16_23_09_2810_01.vp9" -
works fine with the old 1.2 release, but produces 'broken' output with this release.

Cu Selur
Attached Images
 
__________________
Hybrid here in the forum, homepage

Last edited by Selur; 10th December 2013 at 16:18.
Selur is offline   Reply With Quote
Old 10th December 2013, 00:06   #384  |  Link
Nintendo Maniac 64
Registered User
 
Nintendo Maniac 64's Avatar
 
Join Date: Nov 2009
Location: Northeast Ohio
Posts: 447
Firefox apparently now supports VP9 playback in its development branches:
http://www.phoronix.com/scan.php?pag...tem&px=MTUzODA
Nintendo Maniac 64 is offline   Reply With Quote
Old 10th December 2013, 18:16   #385  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
attached my broken vpxenc versions I build with media-autobuild_suite to a post over at videohelp


Cu Selur
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 10th December 2013, 19:35   #386  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
Code:
LoadCPlugin("G:\avsiynth\avisynthPlugins\ffms2.dll")
# loading source
FFVideoSource("H:\TESTCL~1\test.avi",cachefile="H:\Output\21437943319_16_52_0110.ffindex",fpsnum=25000,fpsden=1000)
Code:
avs2yuv "H:\Output\encodingTempAvisynthSkript_19_16_52_0110.avs" - | vpxenc --codec=vp9 --passes=2 --pass=1 --target-bitrate=1500 --end-usage=vbr --fpf="H:\Output\test_19_16_52_0110_03.stats" --profile=0 --good --cpu-used=3 --bias-pct=70 --minsection-pct=15 --maxsection-pct=10000 --min-q=0 --max-q=63 --lag-in-frames=25 --undershoot-pct=0 --buf-sz=6 --buf-initial-sz=4 --buf-optimal-sz=5 --drop-frame=0 --resize-allowed=0 --kf-min-dist=0 --kf-max-dist=250 --auto-alt-ref=0 --noise-sensitivity=0 --sharpness=0 --static-thresh=0 --tile-columns=2 --tile-rows=1 --threads=16 --width=640 --height=352 -o NUL -

avs2yuv "H:\Output\encodingTempAvisynthSkript_19_16_52_0110.avs" -  | vpxenc --codec=vp9 --good --cpu-used=2 --psnr --threads=0 --profile=0 --lag-in-frames=25 --min-q=0 --max-q=63 --cq-level=20 --end-usage=0 --auto-alt-ref=1 --passes=2 --pass=2 --fpf=file.fpf --kf-max-dist=9999 --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50 --aq-mode=2 --minsection-pct=0 --maxsection-pct=2000 --arnr-maxframes=7 --arnr-strength=5 --arnr-type=3 --sharpness=0 --undershoot-pct=100 --psnr --target-bitrate=275  --width=640 --height=352 - -o "h:\Output\try1.webm"
WORKS!!
Code:
avs2yuv -raw "H:\Output\encodingTempAvisynthSkript_19_16_52_0110.avs" - | vpxenc --codec=vp9 --passes=2 --pass=1 --target-bitrate=1500 --end-usage=vbr --fpf="H:\Output\test_19_16_52_0110_03.stats" --profile=0 --good --cpu-used=3 --bias-pct=70 --minsection-pct=15 --maxsection-pct=10000 --min-q=0 --max-q=63 --lag-in-frames=25 --undershoot-pct=0 --buf-sz=6 --buf-initial-sz=4 --buf-optimal-sz=5 --drop-frame=0 --resize-allowed=0 --kf-min-dist=0 --kf-max-dist=250 --auto-alt-ref=0 --noise-sensitivity=0 --sharpness=0 --static-thresh=0 --tile-columns=2 --tile-rows=1 --threads=16 --width=640 --height=352 -o NUL -

avs2yuv -raw "H:\Output\encodingTempAvisynthSkript_19_16_52_0110.avs" -  | vpxenc --codec=vp9 --good --cpu-used=2 --psnr --threads=0 --profile=0 --lag-in-frames=25 --min-q=0 --max-q=63 --cq-level=20 --end-usage=0 --auto-alt-ref=1 --passes=2 --pass=2 --fpf=file.fpf --kf-max-dist=9999 --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50 --aq-mode=2 --minsection-pct=0 --maxsection-pct=2000 --arnr-maxframes=7 --arnr-strength=5 --arnr-type=3 --sharpness=0 --undershoot-pct=100 --psnr --target-bitrate=275  --width=640 --height=352 - -o "h:\Output\try1.webm"
doesn't.

-> seems like vpxenc now only supports y4m input, despite the fact that the help only states:

Code:
            --yv12                      Input file is YV12
            --i420                      Input file is I420 (default)
-> WTF?!?
(didn't consider testing y4m since the help doesn't mention it)

btw. ffmpeg as decoder works fine too as long as yuv4mpegpipe is used. (using raw i420 or yv12 produces the above problems.)
-> filed a bug report: http://code.google.com/p/webm/issues/detail?id=678
__________________
Hybrid here in the forum, homepage

Last edited by Selur; 10th December 2013 at 20:38.
Selur is offline   Reply With Quote
Old 10th December 2013, 22:08   #387  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
using:
Quote:
vp8 - WebM Project VP8 Encoder v1.3.0-290-ge18eb77
vp9 - WebM Project VP9 Encoder v1.3.0-290-ge18eb77
and
Code:
ffmpeg -v -10 -i "H:\TestClips&Co\test.avi" -an -sn -threads 8 -vsync 0 -r 25 -pix_fmt yuv420p -f yuv4mpegpipe - | vpxenc --codec=vp9 --lossless=1 --end-usage=q --min-q=0 --max-q=0 --width=640 --height=352 -o "H:\Output\test.webm" -
lossless encoding still doesn't work. (only creates a 1kByte file)

Cu Selur
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 10th December 2013, 23:56   #388  |  Link
Leeloo Minaļ
Registered User
 
Join Date: Nov 2007
Posts: 50
I got valid 2-pass encoding but also lossless with this command line and your "broken" 32-bit vpxenc from your videohelp post :

Code:
ffmpeg -i input.avi -an -pix_fmt yuv420p -f yuv4mpegpipe - | vpxenc --codec=vp9 --passes=1 --pass=1 --fpf="test.stats" --lossless=1 --min-q=0 --max-q=0 --end-usage=q --width=224 --height=384 - -o test.webm
Note : your 64-bit "broken" build is really... broken, it does 1st pass but encounters an error at start of 2nd pass.
Leeloo Minaļ is offline   Reply With Quote
Old 11th December 2013, 00:07   #389  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
Compiled a new version (v1.3.0-290-ge18eb77) which works fine with 2pass here.
Seems like the missing '--passes=1 --pass=1' was the problem.
(I even got dvd->vpxenc working by doing a double-pipe: mencoder ... | ffmpeg ... | vpxenc ... )
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 18th December 2013, 23:48   #390  |  Link
o-l-a-v
Registered User
 
Join Date: Feb 2013
Posts: 13
When will they make WebP with VP9, does anyone know? So far I haven't found much on that topic

Last edited by o-l-a-v; 18th December 2013 at 23:54.
o-l-a-v is offline   Reply With Quote
Old 6th January 2014, 22:32   #391  |  Link
Hyral
Digital video researcher
 
Join Date: Mar 2012
Location: Brazil
Posts: 11
Quote:
Originally Posted by Nintendo Maniac 64 View Post
Here's something interesting, apparently new uploads to YouTube have at least their 480p and 1080p resolutions have the video stream seperate from the audio stream.
This might be related to Youtube now using MPEG-DASH, which separates resources down to the streams.
Hyral is offline   Reply With Quote
Old 7th January 2014, 00:05   #392  |  Link
Nintendo Maniac 64
Registered User
 
Nintendo Maniac 64's Avatar
 
Join Date: Nov 2009
Location: Northeast Ohio
Posts: 447
Quote:
Originally Posted by Hyral View Post
This might be related to Youtube now using MPEG-DASH, which separates resources down to the streams.
It is. That post was made before I knew about DASH. :P
Nintendo Maniac 64 is offline   Reply With Quote
Old 14th January 2014, 05:46   #393  |  Link
xooyoozoo
Registered User
 
Join Date: Dec 2012
Posts: 197
Two semi-recent papers on VP9 efficiency.

VP9 intra performance vs HM/JM/VP8. TLDR: VP9 needs 20% less bitrate than VP8. HEVC needs 30% less than JM, 15% less than VP9. Authors suggest 2/3 of HEVC's gains over VP9 due to having more prediction angles + SAO, the rest due to slightly better entropy coding.

VP9 vs HM vs x264 in playback/random-access config. TLDR: The paper found that VP9 needs 80% more bitrate than HEVC, 8% more than x264. Unfortunately, VP9 was ran with min-q=max-q=$QP. If that's what that sounds like, their results for VP9 are almost certainly invalid.

For both papers, I wouldn't expect VP9's results to change more than 1-2% with a recent build. I recall almost all quality commits being for the higher speed presets.

VP9 also now has adaptive quant. Aq-mode 1 seems to improve MS-SSIM bdrate by several percent on a couple 1080p clips I've tried. I'm not particularly sure what aq-mode 2 does, and on testing with crowdrun seq, both subjective viewing and MS-SSIM bdrate showed worse performance compared to aq1.

It'd be nice to do a subjective comparison against x265+AQ, but VP9's wildly off its 2pass target bitrates when AQ is on. That along with how encoding is single-threaded and how cpu-used=0 is roughly as fast as the HM mean I'm not too keen on trial-and-error encodes.

Last edited by xooyoozoo; 14th January 2014 at 05:50.
xooyoozoo is offline   Reply With Quote
Old 26th January 2014, 14:47   #394  |  Link
mzso
Registered User
 
Join Date: Oct 2009
Posts: 930
Looks like now VP9 works in the main ffmpeg builds (except with x64 where it just crashes). Anyone knows a good guide for VP9 options?
Rather liked x264's profile preset features.
mzso is offline   Reply With Quote
Old 27th January 2014, 18:14   #395  |  Link
dapperdan
Registered User
 
Join Date: Aug 2009
Posts: 201
Quote from the mailing list (in the context of encoding):

"Right now VP9 is a lot slower than VP8. We are working hard to correct that. Watch for big speed increases in the couple of months."

Obviously easier said than done, but thought I'd note it anyway.
dapperdan is offline   Reply With Quote
Old 27th January 2014, 18:17   #396  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
hopefully, after that they fix 2pass encoding in a way that it actually hits (near) a specified bitrate.
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 3rd February 2014, 13:04   #397  |  Link
BadFrame
Registered User
 
Join Date: Jun 2013
Posts: 98
Quote:
Originally Posted by mzso View Post
Anyone knows a good guide for VP9 options?
Rather liked x264's profile preset features.
I don't have a guide but the best settings (quality wise) I've gotten from my own tests are as follows:

VBR:

vpxenc --good --end-usage=vbr --target-bitrate=X --cq-level=0 --aq-mode=1 --cpu-used=0 --threads=0 --profile=0 --lag-in-frames=25 --min-q=0 --max-q=63 --auto-alt-ref=1 --passes=2 --kf-max-dist=9999 --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0 --maxsection-pct=2000 --arnr-maxframes=15 --arnr-strength=6 --arnr-type=3 --sharpness=0 --codec=vp9

I noted in VBR that it's best to set the cq-level to 0, else the encoder will be eager to try to save a lot bits in flat areas leading to macro-blocks, of course you may want this and if so increase the cq-level value accordingly.

CQ:

vpxenc --good --end-usage=3 --cq-level=X --aq-mode=1 --cpu-used=0 --threads=0 --profile=0 --lag-in-frames=25 --min-q=0 --max-q=63 --auto-alt-ref=1 --passes=2 --kf-max-dist=9999 --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0 --maxsection-pct=2000 --arnr-maxframes=15 --arnr-strength=6 --arnr-type=3 --sharpness=0 --codec=vp9

The only change in the CQ encode is the -end-usage parameter, you could also experiment with aq-mode=2 which I haven't yet examined. Also I'm using --good here, for the best quality you should use --best but it is REALLY slow so unless you have a lot of time or are doing a comparison between encoders I would use --good

It's been a bunch of weeks since I last did some tests so I hope these settings are still valid.
BadFrame is offline   Reply With Quote
Old 3rd February 2014, 21:35   #398  |  Link
xooyoozoo
Registered User
 
Join Date: Dec 2012
Posts: 197
Some months ago, VP9 defaults in libvpx were changed to match the high-quality suggestions. In the same commit, the developers also recommended against using --best over --good.

IIRC, the only thing you'd need to worry about now is cpu-used, end-usage, aq-mode, kf-max-dist.
xooyoozoo is offline   Reply With Quote
Old 25th February 2014, 19:34   #399  |  Link
x265_Project
Guest
 
Posts: n/a
MulticoreWare accelerates VP9

MulticoreWare, the company behind the x265 project, is working with Google and semiconductor companies to accelerate VP9.

http://www.prweb.com/releases/2014/02/prweb11612574.htm
  Reply With Quote
Old 26th February 2014, 18:02   #400  |  Link
dapperdan
Registered User
 
Join Date: Aug 2009
Posts: 201
There was also a similar project from ittiam for the ARM MALI GPU.

http://malideveloper.arm.com/demo-sh...-using-opencl/

Both seem to have involved collaboration with Google and the use of OpenCL, but I don't know if that means we should expect other chips to have similar solutions.

Also, ffmpeg's VP9 decoder had a blog post from one of the authors, which has some stuff about decoder speed, decoder threading and encoder quality:

http://blogs.gnome.org/rbultje/2014/...decoder-ffvp9/

Last edited by dapperdan; 26th February 2014 at 18:02. Reason: linkify urls
dapperdan is offline   Reply With Quote
Reply

Tags
google, ngov, vp8, vp9, vpx, webm

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 22:44.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.