If you were paying attention, I was assuming it was PHYSICAL CORES multiplied by 1.5 and mentioned that several times.
At no point during this entire discussion, except now, did you say it is LOGICAL CORES multiplied by 1.5.
And by the way, I don't appreciate being called dense.
I
did say it, right here:
https://obsproject.com/forum/threads/elgato-hd-60-pro-100-cpu-usage.70062/#post-300379
And Hyperthreading
does result in more logical cores, and logical cores
is what x264 uses to determine how many threads are created. So a 4C / 8 "logical" CPU (because of Hyperthreading) will spawn 12 threads even though (and I agree) that's "too many". I had a previous observation of this here:
https://obsproject.com/forum/threads/for-video-encoding-more-cores-or-more-ghz.10722/#post-60264
I don't know how I could have been more clear. Thus the "are you being purposely dense?" meme-video. I'm sorry you were offended, it wasn't meant as a serious cutdown.
The rest of what I said still stands and is correct.
You are no more better than any of the rest of us who fetching information off another website and presenting it here.
If you would have spent the time to sift through the source code to arrive at this conclusion instead of going to a third party website citing the rationale, I would have given you more credibility.
...not provide me with a forum link from a third party website not the same as VideoLan, the creator of x264.
I really have no idea what you're going on about. The "third party" web site I linked was a discussion of how the word "threads" is commonly misused as a synonym for "logical cores" (which you also claim I never talked about, but I did). It wasn't material to anything except to clear up possible confusion with terminology earlier in the discussion.
The other link is to another discussion from years ago on these forums (not a third party) where I posted about how opening "too many" threads is bad, which only supports your own position that 12 threads would be too many. Not every time I quote someone am I disagreeing with them entirely.
12 threads may be too many, yet that is how many it opens, because the algorithm was written at a time when mere dual cores were advanced and the scaling and hyperthreading of the future couldn't be foreseen. Its a legacy that
mostly still does no harm so we mostly leave it as is... but if you want to really tweak things, using the threads=x can be advantageous to a small degree.
1) max_threads is the height of the video image, rounded up to the next highest divisible of 16, and divided by 2.
2) if there are sliced threads, the number of threads is 2 times the number of processors
3) if there are no sliced threads, the number of threads is 1.5 times the number of processors
4) CPU processors can have nothing to do with the number of threads created if max_threads is the minimum
Further in the encoder source there is a comment discussion of the slice to thread relationship:
/* The slice structure only allows a maximum of 2 threads for 1080i/p and 1 or 5 threads for 720p */
1) This means that 720p output can use a max of 720/16/2 = 22 or 23 threads, depending on how it rounds, if I'm reading that right. That's a sufficiently greater than 12 I think to not be any kind of limitation, and it becomes less and less of a potential limitation as vertical resolution increases.
2) There aren't any sliced threads in OBS unless someone is using custom x264 commands. They're used to help certain players, but if anything are a hindrance to encoding speed, not a help, so aren't used in live video encoding.
3) Important part. The only question left is what makes a "processor" and the answer is "logical core".
4) max_threads was just defined in part 3), so I'd hardly characterize that as "nothing to do with".
What's more, experimentally I've shown (via the OBS-internal link) that 1.5x is how it
actually does work, and explained how you can prove it to yourself. If you can show evidence in the contrary, I'd like to see that a lot more than quotes from the x264 source code which after a lot of reading only support my position anyways.