void Benchmark() { Logger::LogInfo("[Benchmark] " + Logger::tr("Starting scaler benchmark ...")); BenchmarkScale(1920, 1080, 1920, 1080); // direct copy BenchmarkScale(1280, 720, 1920, 1080); // upscaling BenchmarkScale(1920, 1080, 1280, 720); // downscaling BenchmarkScale(1920, 1080, 960, 540); // pure mipmap BenchmarkScale(1920, 1080, 640, 360); // mipmap + downscaling Logger::LogInfo("[Benchmark] " + Logger::tr("Starting converter benchmark ...")); #if SSR_USE_X86_ASM BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_YUV444P, "BGRA", "YUV444", NewImageBGRA, NewImageYUV444, Convert_BGRA_YUV444_Fallback , Convert_BGRA_YUV444_SSSE3 ); BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_YUV422P, "BGRA", "YUV422", NewImageBGRA, NewImageYUV422, Convert_BGRA_YUV422_Fallback , Convert_BGRA_YUV422_SSSE3 ); BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_YUV420P, "BGRA", "YUV420", NewImageBGRA, NewImageYUV420, Convert_BGRA_YUV420_Fallback , Convert_BGRA_YUV420_SSSE3 ); BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_NV12 , "BGRA", "NV12 ", NewImageBGRA, NewImageNV12 , Convert_BGRA_NV12_Fallback , Convert_BGRA_NV12_SSSE3 ); BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_BGR24 , "BGRA", "BGR ", NewImageBGRA, NewImageBGR , PlaneWrapper<Convert_BGRA_BGR_Fallback>, PlaneWrapper<Convert_BGRA_BGR_SSSE3>); #else BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_YUV444P, "BGRA", "YUV444", NewImageBGRA, NewImageYUV444, Convert_BGRA_YUV444_Fallback ); BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_YUV422P, "BGRA", "YUV422", NewImageBGRA, NewImageYUV422, Convert_BGRA_YUV422_Fallback ); BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_YUV420P, "BGRA", "YUV420", NewImageBGRA, NewImageYUV420, Convert_BGRA_YUV420_Fallback ); BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_NV12 , "BGRA", "NV12 ", NewImageBGRA, NewImageNV12 , Convert_BGRA_NV12_Fallback ); BenchmarkConvert(1920, 1080, AV_PIX_FMT_BGRA, AV_PIX_FMT_BGR24 , "BGRA", "BGR ", NewImageBGRA, NewImageBGR , PlaneWrapper<Convert_BGRA_BGR_Fallback>); #endif }
void Benchmark() { Logger::LogInfo("[Benchmark] " + Logger::tr("Starting scaler benchmark ...")); BenchmarkScale(1920, 1080, 1920, 1080); // direct copy BenchmarkScale(1280, 720, 1920, 1080); // upscaling BenchmarkScale(1920, 1080, 1280, 720); // downscaling BenchmarkScale(1920, 1080, 960, 540); BenchmarkScale(1920, 1080, 640, 360); Logger::LogInfo("[Benchmark] " + Logger::tr("Starting converter benchmark ...")); BenchmarkConvert(1920, 1080, "BGRA", "YUV444", NewImageBGRA, NewImageYUV444, Convert_BGRA_YUV444_Fallback , Convert_BGRA_YUV444_SSSE3 ); BenchmarkConvert(1920, 1080, "BGRA", "YUV422", NewImageBGRA, NewImageYUV422, Convert_BGRA_YUV422_Fallback , Convert_BGRA_YUV422_SSSE3 ); BenchmarkConvert(1920, 1080, "BGRA", "YUV420", NewImageBGRA, NewImageYUV420, Convert_BGRA_YUV420_Fallback , Convert_BGRA_YUV420_SSSE3 ); BenchmarkConvert(1920, 1080, "BGRA", "BGR" , NewImageBGRA, NewImageBGR , PlaneWrapper<Convert_BGRA_BGR_Fallback>, PlaneWrapper<Convert_BGRA_BGR_SSSE3>); }