Log in

View Full Version : Encoding Settings: CPUID


dixierebel1929
12th March 2018, 15:09
I have been curious about the CPUID # listed in the encoding settings (more commonly seen in HEVC encodes), for quite some time now, as I'm sure some of you have been as well.. So, after having used the full extent of my web-searching capabilities to no avail, I figured I would give in and seek a definitive answer from someone more knowledgeable and experienced with encoding and/or programming. So, does anyone know where the 7 digits listed as the CPUID in an x265 encode come from, (such as a list of CPUs that is referenced), or if it is generated, how they are generated?

Mostly, my desire is that I want to be able to see the 7 digits listed as the CPUID in an encode, and be able to determine exactly what CPU model those 7 digits represent, assuming it's reasonably easy to do.

Here is an example of what I'm referring to by x265 encoder CPUID:
Writing library : x265 2.3+30-c7b7c736696f:[Windows][GCC 6.3.0][64 bit] 10bit
Encoding settings : cpuid=1050111

This CPUID represents a Core I7-2630QM.

Writing library : x265 2.3+30-c7b7c736696f:[Windows][GCC 6.3.0][64 bit] 10bit
Encoding settings : cpuid=1049087

This CPUID represents a Xeon x5660.

Etc.. The CPUID clearly varies with each CPU used for an encode.

nevcairiel
12th March 2018, 16:24
cpuid does not identify the cpu itself, it identifies the instruction sets the CPU has access to.

For example, 1050111, or hex 0x001005FF, would equal:
CMOV (0x1) + MMX (0x2) + MMX2 (0x4) + SSE (0x8) + SSE2 (0x10) + SSE3 (0x20) + SSSE3 (0x40) + SSE4 (0x80) + SSE4.2 (0x100) + AVX (0x400) + SSE2_IS_FAST (0x100000 ) = 0x001005FF or 1050111

The Xeon is short AVX of that list, which then makes up its number.

The values can be found in x265.h for the individual instruction sets.

MeteorRain
19th March 2018, 21:44
It's CPU capability flag list compressed into a decimal number.