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 > MPEG-4 AVC / H.264

Reply
 
Thread Tools Search this Thread Display Modes
Old 19th October 2020, 21:09   #1  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
Should x264 be non-deterministic when '--non-deterministic' isn't used?

Over at videohelp, there is someone you get's non deterministic output even when he isn't using '--non-deterministic'.

Some folks say that:
a. x264 is always non-deterministic as soon as multithreading is used.
b. x264 is always non-deterministic as soon as VBV is used.
c. x264 is always non-deterministic as soon as VBV&multithreading are used together.
I though that x264 should be deterministic as long as '--non-deterministic' isn't used and if it isn't there is a bug?
Also when a., b. or c. is correct, what is the use of '--non-deterministic' ?

Can someone knowing the code answer this?


Cu Selur
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 20th October 2020, 04:22   #2  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,406
I always believed a was true. Since the relative performance between threads is non-deterministic the code would need to wait for unencoded blocks it expected to be complete but I don't believe it does.

Of course, I am not someone knowing the code.
__________________
madVR options explained
Asmodian is offline   Reply With Quote
Old 20th October 2020, 04:31   #3  |  Link
Greenhorn
Registered User
 
Join Date: Apr 2018
Posts: 61
According to the x264 mailing list from 2015, vbv+multithreading is intentionally non-deterministic.

https://mailman.videolan.org/piperma...il/011035.html
Greenhorn is offline   Reply With Quote
Old 20th October 2020, 05:09   #4  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,406
There isn't much in the way of why there.

Is it only non-deterministic for case c then?
__________________
madVR options explained
Asmodian is offline   Reply With Quote
Old 20th October 2020, 18:27   #5  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,750
Quote:
Originally Posted by Asmodian View Post
There isn't much in the way of why there.

Is it only non-deterministic for case c then?
Deterministic has a perf hit and doesn't offer any compression efficiency advantage. Non-deterministic really should be the default, with deterministic only used when pixel-exact technical comparisons are being done.

I've done HUGE amounts of x264 tuning over the last 10+ years, and I don't think I've ever had a need to use deterministic mode.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 20th October 2020, 19:05   #6  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
Especially if running witht ou '-non-deterministic' doesn't really make x265 deterministic.
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 20th October 2020, 20:25   #7  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,406
Quote:
Originally Posted by benwaggoner View Post
Deterministic has a perf hit and doesn't offer any compression efficiency advantage. Non-deterministic really should be the default, with deterministic only used when pixel-exact technical comparisons are being done.
So it is only c. and because a. is not true --non-deterministic should always be used to avoid the issue I mentioned?

Quote:
Originally Posted by benwaggoner View Post
I've done HUGE amounts of x264 tuning over the last 10+ years, and I don't think I've ever had a need to use deterministic mode.
I do have --non-deterministic in all my command lines but I am still curious.
__________________
madVR options explained
Asmodian is offline   Reply With Quote
Reply

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 17:19.


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