
Recherche avancée
Médias (1)
-
Revolution of Open-source and film making towards open film making
6 octobre 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (4)
-
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ; -
Soumettre améliorations et plugins supplémentaires
10 avril 2011Si vous avez développé une nouvelle extension permettant d’ajouter une ou plusieurs fonctionnalités utiles à MediaSPIP, faites le nous savoir et son intégration dans la distribution officielle sera envisagée.
Vous pouvez utiliser la liste de discussion de développement afin de le faire savoir ou demander de l’aide quant à la réalisation de ce plugin. MediaSPIP étant basé sur SPIP, il est également possible d’utiliser le liste de discussion SPIP-zone de SPIP pour (...) -
Mediabox : ouvrir les images dans l’espace maximal pour l’utilisateur
8 février 2011, parLa visualisation des images est restreinte par la largeur accordée par le design du site (dépendant du thème utilisé). Elles sont donc visibles sous un format réduit. Afin de profiter de l’ensemble de la place disponible sur l’écran de l’utilisateur, il est possible d’ajouter une fonctionnalité d’affichage de l’image dans une boite multimedia apparaissant au dessus du reste du contenu.
Pour ce faire il est nécessaire d’installer le plugin "Mediabox".
Configuration de la boite multimédia
Dès (...)
Sur d’autres sites (3869)
-
Memory and Frame Rate Issues in FFmpeg Video Streaming
15 janvier 2024, par user18490I'm currently working with FFmpeg libraries to generate a video stream for the first time. As a newcomer to this field, I'm still exploring and experimenting with the code. For testing purposes, I've set up Nginx as the server and VLC as the client to view the stream. During these initial tests, I'm loading an image at the start and processing it for each frame, which is then sent for encoding and streaming.


I've encountered a couple of interconnected issues :


- 

-
When I process frames as quickly as possible, I can see the stream playing seemingly in real-time. However, I've noticed that the computer's memory usage skyrockets, rapidly consuming gigabytes of memory within seconds.


-
I suspect that this memory issue is related to the fact that I might be generating frames at a much higher rate than FFmpeg can handle for encoding and streaming. It seems like there may be buffering of data occurring somewhere. To address this, I introduced a 'sleep_for' delay to throttle the frame rate down to approximately 40 frames per second, instead of the 4000 fps I get without throttling. While this does contain memory growth, VLC no longer plays the stream in real-time. Instead, it appears to wait, play for a couple of seconds, go idle, and then resume playing intermittently.








I've tried adjusting the frame rate settings, specifically :


(*codec_context)->time_base = (AVRational){1, 30};



and


frame_yuv->pts = (1.0 / 30) * 90 * frame_count;



Based on my research and information from Stack Overflow, these settings seem correct. They indicate that the stream is meant to be played at 30 frames per second and that I've set the timing accordingly (where 90 represents the sample rate used by FFmpeg).


I would greatly appreciate any assistance or insights into resolving these issues.


extern "C" {
 #include <libavcodec></libavcodec>avcodec.h>
 #include <libavformat></libavformat>avformat.h>
 #include <libavutil></libavutil>imgutils.h>
 #include <libavutil></libavutil>opt.h>
 #include <libswscale></libswscale>swscale.h>
}

#include <iostream>
#include <chrono>
#include <thread>
#include <fstream>

void InitializeFFMPG(AVCodecContext** codec_context, AVFormatContext** format_context, int width, int height) {
 avformat_network_init();
 //av_register_all(); // no longer needed
 
 avformat_alloc_output_context2(format_context, nullptr, "flv", "rtmp://localhost/live/stream"); // RTMP URL
 
 const AVCodec* codec = avcodec_find_encoder(AV_CODEC_ID_H264);
 if (!codec) {
 std::cerr << "avcodec_find_encoder err." << std::endl;
 }
 
 *codec_context = avcodec_alloc_context3(codec);
 if (!*codec_context) {
 std::cerr << "codec_context err." << std::endl;
 }
 
 (*codec_context)->width = width;
 (*codec_context)->height = height;
 (*codec_context)->pix_fmt = AV_PIX_FMT_YUV420P;
 (*codec_context)->time_base = (AVRational){1, 30};
 if (avcodec_open2(*codec_context, codec, nullptr) < 0) {
 std::cerr << "Could not open codec" << std::endl;
 }
 
 AVStream* stream = avformat_new_stream(*format_context, codec);
 if (!stream) {
 std::cerr << "Could not create stream" << std::endl;
 }
 
 avcodec_parameters_from_context(stream->codecpar, *codec_context);
 
 if (avio_open(&(*format_context)->pb, "rtmp://localhost/live/stream", AVIO_FLAG_WRITE) < 0) {
 std::cerr << "Count not open output URL" << std::endl;
 }
 
 if (avformat_write_header(*format_context, nullptr) < 0) {
 std::cerr << "Could not write header" << std::endl;
 }
}

int frame_count = 0;

void ConvertRGBToYUV(AVFrame* frame_rgb, AVFrame* frame_yuv, struct SwsContext* sws_ctx) {
 sws_scale(sws_ctx, frame_rgb->data, frame_rgb->linesize, 0, frame_rgb->height, frame_yuv->data, frame_yuv->linesize);
}

void EncodeAndStreamFrame(AVCodecContext* codec_context, AVFormatContext* format_context, 
 unsigned char** framebuffer, int width, int height, struct SwsContext* sws_ctx) {
 AVFrame* frame_rgb = av_frame_alloc();
 if (!frame_rgb) {
 std::cerr << "Failed to allocate frame_rgb" << std::endl;
 return;
 }

 frame_rgb->format = AV_PIX_FMT_RGB24;
 frame_rgb->width = width;
 frame_rgb->height = height;

 if (av_image_alloc(frame_rgb->data, frame_rgb->linesize, width, height, AV_PIX_FMT_RGB24, 32) < 0) {
 std::cerr << "Failed to allocate RGB image buffer" << std::endl;
 av_frame_free(&frame_rgb);
 return;
 }
 
 memcpy(frame_rgb->data[0], *framebuffer, width * height * 3);
 
 AVFrame* frame_yuv = av_frame_alloc();
 if (!frame_yuv) {
 std::cerr << "Failed to allocate frame_yuv" << std::endl;
 av_frame_free(&frame_rgb);
 return;
 }

 frame_yuv->format = AV_PIX_FMT_YUV420P;
 frame_yuv->width = width;
 frame_yuv->height = height;

 if (av_frame_get_buffer(frame_yuv, 32) < 0) {
 std::cerr << "Failed to allocate YUV frame buffer" << std::endl;
 av_frame_free(&frame_rgb);
 av_frame_free(&frame_yuv);
 return;
 }
 
 frame_yuv->pts = (1.0 / 30) * 90 * frame_count;
 
 ConvertRGBToYUV(frame_rgb, frame_yuv, sws_ctx);

 if (avcodec_send_frame(codec_context, frame_yuv) < 0) {
 std::cerr << "Error sending YUV frame for encoding" << std::endl;
 av_frame_free(&frame_rgb);
 av_frame_free(&frame_yuv);
 return;
 }

 while (1) {
 AVPacket pkt = { 0 };
 av_packet_unref(&pkt);
 pkt.data = NULL;
 pkt.size = 0;

 int ret = avcodec_receive_packet(codec_context, &pkt);
 if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
 break;
 } else if (ret < 0) {
 break;
 }

 if (av_interleaved_write_frame(format_context, &pkt) < 0) {
 av_packet_unref(&pkt);
 break;
 }
 av_packet_unref(&pkt);
 }

 av_frame_free(&frame_rgb);
 av_frame_free(&frame_yuv);
}

void ProcessFrame(const unsigned char* in, unsigned char*& framebuffer, int width, int height) {
 float cosine = std::abs(std::cos(frame_count / 300.f));
 for (uint32_t i = 0; i < width * height * 3; ++i)
 framebuffer[i] = (unsigned char)((float)in[i] * cosine);
}

int main() {
 AVCodecContext *codec_context = nullptr;
 AVFormatContext *format_context = nullptr;
 int width = 320, height = 160;
 InitializeFFMPG(&codec_context, &format_context, width, height);
 
 struct SwsContext* sws_ctx = sws_getContext(width, height, AV_PIX_FMT_RGB24,
 width, height, AV_PIX_FMT_YUV420P,
 0, nullptr, nullptr, nullptr);
 if (!sws_ctx) {
 return 0;
 }

 unsigned char* framebuffer_in = new unsigned char[width*height*3];
 unsigned char* framebuffer = new unsigned char[width*height*3];
 memset(framebuffer, 0x0, width * height * 3);
 std::ifstream ifs("C:/Users/xxx/Downloads/ocean.ppm", std::ios::binary);
 std::string header;
 ifs >> header;
 uint32_t w, h, bpc;
 ifs >> w >> h >> bpc;
 ifs.ignore();
 ifs.read((char*)framebuffer_in, w * h * 3);
 ifs.close();
 
 auto start_time = std::chrono::high_resolution_clock::now();
 while (1) {
 ProcessFrame(framebuffer_in, framebuffer, width, height);
 EncodeAndStreamFrame(codec_context, format_context, &framebuffer, width, height, sws_ctx);
 frame_count++;
 std::chrono::milliseconds frameDelay(20); 
 std::this_thread::sleep_for(frameDelay);
 auto end_time = std::chrono::high_resolution_clock::now();
 auto duration = std::chrono::duration_cast(end_time - start_time);
 double fps = static_cast<double>(frame_count) / duration.count();
 fprintf(stderr, "\r%f fps", fps);
 fflush(stderr);
 }

 // Cleanup
 delete[] framebuffer;
 delete[] framebuffer_in;
 avcodec_close(codec_context);
 avformat_close_input(&format_context);
 avformat_free_context(format_context);
 avcodec_free_context(&codec_context);

 return 0;
}
</double></fstream></thread></chrono></iostream>


-
-
avcodec/x86/vvc/vvc_alf : add alf classify avx2 optimizations
13 mai 2024, par Wu Jianhuaavcodec/x86/vvc/vvc_alf : add alf classify avx2 optimizations
vvc_alf_classify_4x4_8_c : 480.5
vvc_alf_classify_4x4_8_avx2 : 203.0
vvc_alf_classify_4x4_10_c : 439.0
vvc_alf_classify_4x4_10_avx2 : 171.7
vvc_alf_classify_4x8_8_c : 690.0
vvc_alf_classify_4x8_8_avx2 : 267.0
vvc_alf_classify_4x8_10_c : 706.5
vvc_alf_classify_4x8_10_avx2 : 215.7
vvc_alf_classify_4x12_8_c : 935.7
vvc_alf_classify_4x12_8_avx2 : 377.2
vvc_alf_classify_4x12_10_c : 937.2
vvc_alf_classify_4x12_10_avx2 : 330.0
vvc_alf_classify_4x16_8_c : 1216.5
vvc_alf_classify_4x16_8_avx2 : 439.7
vvc_alf_classify_4x16_10_c : 1197.5
vvc_alf_classify_4x16_10_avx2 : 387.0
vvc_alf_classify_4x20_8_c : 1431.0
vvc_alf_classify_4x20_8_avx2 : 556.7
vvc_alf_classify_4x20_10_c : 1401.2
vvc_alf_classify_4x20_10_avx2 : 472.5
vvc_alf_classify_4x24_8_c : 1650.5
vvc_alf_classify_4x24_8_avx2 : 615.5
vvc_alf_classify_4x24_10_c : 1737.7
vvc_alf_classify_4x24_10_avx2 : 534.7
vvc_alf_classify_4x28_8_c : 1879.2
vvc_alf_classify_4x28_8_avx2 : 743.5
vvc_alf_classify_4x28_10_c : 1942.5
vvc_alf_classify_4x28_10_avx2 : 622.2
vvc_alf_classify_4x32_8_c : 2119.0
vvc_alf_classify_4x32_8_avx2 : 890.5
vvc_alf_classify_4x32_10_c : 2139.7
vvc_alf_classify_4x32_10_avx2 : 671.2
vvc_alf_classify_4x36_8_c : 2359.5
vvc_alf_classify_4x36_8_avx2 : 915.7
vvc_alf_classify_4x36_10_c : 2388.5
vvc_alf_classify_4x36_10_avx2 : 774.2
vvc_alf_classify_4x40_8_c : 2601.5
vvc_alf_classify_4x40_8_avx2 : 973.7
vvc_alf_classify_4x40_10_c : 2623.2
vvc_alf_classify_4x40_10_avx2 : 827.0
vvc_alf_classify_4x44_8_c : 2915.5
vvc_alf_classify_4x44_8_avx2 : 1092.2
vvc_alf_classify_4x44_10_c : 2859.2
vvc_alf_classify_4x44_10_avx2 : 924.0
vvc_alf_classify_4x48_8_c : 3260.7
vvc_alf_classify_4x48_8_avx2 : 1157.5
vvc_alf_classify_4x48_10_c : 3225.2
vvc_alf_classify_4x48_10_avx2 : 1326.7
vvc_alf_classify_4x52_8_c : 3332.2
vvc_alf_classify_4x52_8_avx2 : 1267.2
vvc_alf_classify_4x52_10_c : 3385.7
vvc_alf_classify_4x52_10_avx2 : 1075.0
vvc_alf_classify_4x56_8_c : 3591.2
vvc_alf_classify_4x56_8_avx2 : 1330.5
vvc_alf_classify_4x56_10_c : 3636.0
vvc_alf_classify_4x56_10_avx2 : 1198.2
vvc_alf_classify_4x60_8_c : 3944.2
vvc_alf_classify_4x60_8_avx2 : 1453.2
vvc_alf_classify_4x60_10_c : 3858.5
vvc_alf_classify_4x60_10_avx2 : 1276.0
vvc_alf_classify_4x64_8_c : 4062.0
vvc_alf_classify_4x64_8_avx2 : 1509.2
vvc_alf_classify_4x64_10_c : 4095.5
vvc_alf_classify_4x64_10_avx2 : 1321.5
vvc_alf_classify_4x68_8_c : 4323.2
vvc_alf_classify_4x68_8_avx2 : 1624.0
vvc_alf_classify_4x68_10_c : 4357.7
vvc_alf_classify_4x68_10_avx2 : 1422.0
vvc_alf_classify_4x72_8_c : 4555.0
vvc_alf_classify_4x72_8_avx2 : 1693.0
vvc_alf_classify_4x72_10_c : 8527.7
vvc_alf_classify_4x72_10_avx2 : 1465.2
vvc_alf_classify_4x76_8_c : 13716.2
vvc_alf_classify_4x76_8_avx2 : 1858.7
vvc_alf_classify_4x76_10_c : 4832.0
vvc_alf_classify_4x76_10_avx2 : 1575.5
vvc_alf_classify_4x80_8_c : 5030.0
vvc_alf_classify_4x80_8_avx2 : 1869.0
vvc_alf_classify_4x80_10_c : 5097.7
vvc_alf_classify_4x80_10_avx2 : 1620.0
vvc_alf_classify_4x84_8_c : 5273.5
vvc_alf_classify_4x84_8_avx2 : 2048.2
vvc_alf_classify_4x84_10_c : 5301.7
vvc_alf_classify_4x84_10_avx2 : 1787.7
vvc_alf_classify_4x88_8_c : 5522.2
vvc_alf_classify_4x88_8_avx2 : 2118.2
vvc_alf_classify_4x88_10_c : 5568.5
vvc_alf_classify_4x88_10_avx2 : 1822.7
vvc_alf_classify_4x92_8_c : 5768.7
vvc_alf_classify_4x92_8_avx2 : 2230.0
vvc_alf_classify_4x92_10_c : 5964.2
vvc_alf_classify_4x92_10_avx2 : 1929.7
vvc_alf_classify_4x96_8_c : 6020.5
vvc_alf_classify_4x96_8_avx2 : 2291.0
vvc_alf_classify_4x96_10_c : 6758.5
vvc_alf_classify_4x96_10_avx2 : 1979.7
vvc_alf_classify_4x100_8_c : 6269.2
vvc_alf_classify_4x100_8_avx2 : 2470.2
vvc_alf_classify_4x100_10_c : 6335.5
vvc_alf_classify_4x100_10_avx2 : 2081.0
vvc_alf_classify_4x104_8_c : 6509.7
vvc_alf_classify_4x104_8_avx2 : 2468.5
vvc_alf_classify_4x104_10_c : 6553.0
vvc_alf_classify_4x104_10_avx2 : 2134.5
vvc_alf_classify_4x108_8_c : 6760.7
vvc_alf_classify_4x108_8_avx2 : 2661.2
vvc_alf_classify_4x108_10_c : 6983.2
vvc_alf_classify_4x108_10_avx2 : 2229.2
vvc_alf_classify_4x112_8_c : 6998.2
vvc_alf_classify_4x112_8_avx2 : 2650.7
vvc_alf_classify_4x112_10_c : 7041.5
vvc_alf_classify_4x112_10_avx2 : 2285.7
vvc_alf_classify_4x116_8_c : 7236.5
vvc_alf_classify_4x116_8_avx2 : 2833.2
vvc_alf_classify_4x116_10_c : 7470.0
vvc_alf_classify_4x116_10_avx2 : 2381.2
vvc_alf_classify_4x120_8_c : 7477.7
vvc_alf_classify_4x120_8_avx2 : 2827.2
vvc_alf_classify_4x120_10_c : 7524.0
vvc_alf_classify_4x120_10_avx2 : 2418.5
vvc_alf_classify_4x124_8_c : 7708.7
vvc_alf_classify_4x124_8_avx2 : 2947.2
vvc_alf_classify_4x124_10_c : 7818.7
vvc_alf_classify_4x124_10_avx2 : 2525.7
vvc_alf_classify_4x128_8_c : 7938.7
vvc_alf_classify_4x128_8_avx2 : 3009.7
vvc_alf_classify_4x128_10_c : 8016.2
vvc_alf_classify_4x128_10_avx2 : 2580.7
vvc_alf_classify_8x4_8_c : 722.5
vvc_alf_classify_8x4_8_avx2 : 211.7
vvc_alf_classify_8x4_10_c : 638.0
vvc_alf_classify_8x4_10_avx2 : 174.7
vvc_alf_classify_8x8_8_c : 1029.5
vvc_alf_classify_8x8_8_avx2 : 267.7
vvc_alf_classify_8x8_10_c : 1011.7
vvc_alf_classify_8x8_10_avx2 : 221.5
vvc_alf_classify_8x12_8_c : 1435.5
vvc_alf_classify_8x12_8_avx2 : 377.2
vvc_alf_classify_8x12_10_c : 1539.5
vvc_alf_classify_8x12_10_avx2 : 336.2
vvc_alf_classify_8x16_8_c : 3085.0
vvc_alf_classify_8x16_8_avx2 : 436.2
vvc_alf_classify_8x16_10_c : 1800.0
vvc_alf_classify_8x16_10_avx2 : 8534.5
vvc_alf_classify_8x20_8_c : 2208.0
vvc_alf_classify_8x20_8_avx2 : 560.5
vvc_alf_classify_8x20_10_c : 2137.5
vvc_alf_classify_8x20_10_avx2 : 480.7
vvc_alf_classify_8x24_8_c : 2542.0
vvc_alf_classify_8x24_8_avx2 : 620.7
vvc_alf_classify_8x24_10_c : 2485.5
vvc_alf_classify_8x24_10_avx2 : 542.2
vvc_alf_classify_8x28_8_c : 2895.0
vvc_alf_classify_8x28_8_avx2 : 751.7
vvc_alf_classify_8x28_10_c : 2887.5
vvc_alf_classify_8x28_10_avx2 : 634.2
vvc_alf_classify_8x32_8_c : 3297.0
vvc_alf_classify_8x32_8_avx2 : 903.5
vvc_alf_classify_8x32_10_c : 3277.0
vvc_alf_classify_8x32_10_avx2 : 702.2
vvc_alf_classify_8x36_8_c : 3656.7
vvc_alf_classify_8x36_8_avx2 : 919.5
vvc_alf_classify_8x36_10_c : 3621.7
vvc_alf_classify_8x36_10_avx2 : 789.0
vvc_alf_classify_8x40_8_c : 4050.0
vvc_alf_classify_8x40_8_avx2 : 985.0
vvc_alf_classify_8x40_10_c : 4025.5
vvc_alf_classify_8x40_10_avx2 : 833.7
vvc_alf_classify_8x44_8_c : 4403.0
vvc_alf_classify_8x44_8_avx2 : 1138.2
vvc_alf_classify_8x44_10_c : 4495.7
vvc_alf_classify_8x44_10_avx2 : 931.2
vvc_alf_classify_8x48_8_c : 4960.7
vvc_alf_classify_8x48_8_avx2 : 1199.7
vvc_alf_classify_8x48_10_c : 4784.2
vvc_alf_classify_8x48_10_avx2 : 1431.0
vvc_alf_classify_8x52_8_c : 11901.7
vvc_alf_classify_8x52_8_avx2 : 1286.5
vvc_alf_classify_8x52_10_c : 5744.5
vvc_alf_classify_8x52_10_avx2 : 1087.7
vvc_alf_classify_8x56_8_c : 5563.2
vvc_alf_classify_8x56_8_avx2 : 1356.5
vvc_alf_classify_8x56_10_c : 5486.5
vvc_alf_classify_8x56_10_avx2 : 1216.5
vvc_alf_classify_8x60_8_c : 6120.2
vvc_alf_classify_8x60_8_avx2 : 1477.0
vvc_alf_classify_8x60_10_c : 5869.2
vvc_alf_classify_8x60_10_avx2 : 1289.5
vvc_alf_classify_8x64_8_c : 6300.5
vvc_alf_classify_8x64_8_avx2 : 1533.7
vvc_alf_classify_8x64_10_c : 6255.7
vvc_alf_classify_8x64_10_avx2 : 1334.2
vvc_alf_classify_8x68_8_c : 6711.5
vvc_alf_classify_8x68_8_avx2 : 1658.7
vvc_alf_classify_8x68_10_c : 6625.0
vvc_alf_classify_8x68_10_avx2 : 1451.7
vvc_alf_classify_8x72_8_c : 7091.2
vvc_alf_classify_8x72_8_avx2 : 2300.0
vvc_alf_classify_8x72_10_c : 7002.7
vvc_alf_classify_8x72_10_avx2 : 1496.5
vvc_alf_classify_8x76_8_c : 7445.0
vvc_alf_classify_8x76_8_avx2 : 1883.0
vvc_alf_classify_8x76_10_c : 7394.5
vvc_alf_classify_8x76_10_avx2 : 1679.7
vvc_alf_classify_8x80_8_c : 8050.0
vvc_alf_classify_8x80_8_avx2 : 1889.7
vvc_alf_classify_8x80_10_c : 7767.5
vvc_alf_classify_8x80_10_avx2 : 1644.0
vvc_alf_classify_8x84_8_c : 8206.0
vvc_alf_classify_8x84_8_avx2 : 2147.0
vvc_alf_classify_8x84_10_c : 8361.0
vvc_alf_classify_8x84_10_avx2 : 1812.2
vvc_alf_classify_8x88_8_c : 8594.0
vvc_alf_classify_8x88_8_avx2 : 2140.0
vvc_alf_classify_8x88_10_c : 8497.2
vvc_alf_classify_8x88_10_avx2 : 1853.2
vvc_alf_classify_8x92_8_c : 8939.5
vvc_alf_classify_8x92_8_avx2 : 2265.7
vvc_alf_classify_8x92_10_c : 9144.7
vvc_alf_classify_8x92_10_avx2 : 2015.2
vvc_alf_classify_8x96_8_c : 9303.0
vvc_alf_classify_8x96_8_avx2 : 2329.0
vvc_alf_classify_8x96_10_c : 9262.0
vvc_alf_classify_8x96_10_avx2 : 2011.0
vvc_alf_classify_8x100_8_c : 9737.2
vvc_alf_classify_8x100_8_avx2 : 2511.5
vvc_alf_classify_8x100_10_c : 9603.0
vvc_alf_classify_8x100_10_avx2 : 2115.5
vvc_alf_classify_8x104_8_c : 10089.5
vvc_alf_classify_8x104_8_avx2 : 2506.2
vvc_alf_classify_8x104_10_c : 9994.7
vvc_alf_classify_8x104_10_avx2 : 2161.5
vvc_alf_classify_8x108_8_c : 10464.0
vvc_alf_classify_8x108_8_avx2 : 2700.2
vvc_alf_classify_8x108_10_c : 10395.5
vvc_alf_classify_8x108_10_avx2 : 2269.5
vvc_alf_classify_8x112_8_c : 10849.0
vvc_alf_classify_8x112_8_avx2 : 2691.0
vvc_alf_classify_8x112_10_c : 11047.7
vvc_alf_classify_8x112_10_avx2 : 2580.5
vvc_alf_classify_8x116_8_c : 11248.2
vvc_alf_classify_8x116_8_avx2 : 2876.7
vvc_alf_classify_8x116_10_c : 11139.5
vvc_alf_classify_8x116_10_avx2 : 2425.0
vvc_alf_classify_8x120_8_c : 25271.2
vvc_alf_classify_8x120_8_avx2 : 2874.2
vvc_alf_classify_8x120_10_c : 11568.2
vvc_alf_classify_8x120_10_avx2 : 2475.7
vvc_alf_classify_8x124_8_c : 12008.5
vvc_alf_classify_8x124_8_avx2 : 2991.0
vvc_alf_classify_8x124_10_c : 13275.5
vvc_alf_classify_8x124_10_avx2 : 2584.5
vvc_alf_classify_8x128_8_c : 12311.5
vvc_alf_classify_8x128_8_avx2 : 3048.5
vvc_alf_classify_8x128_10_c : 20640.0
vvc_alf_classify_8x128_10_avx2 : 2629.7
vvc_alf_classify_12x4_8_c : 962.5
vvc_alf_classify_12x4_8_avx2 : 208.2
vvc_alf_classify_12x4_10_c : 845.0
vvc_alf_classify_12x4_10_avx2 : 177.0
vvc_alf_classify_12x8_8_c : 1410.5
vvc_alf_classify_12x8_8_avx2 : 273.0
vvc_alf_classify_12x8_10_c : 1349.7
vvc_alf_classify_12x8_10_avx2 : 218.7
vvc_alf_classify_12x12_8_c : 1933.2
vvc_alf_classify_12x12_8_avx2 : 388.5
vvc_alf_classify_12x12_10_c : 1851.7
vvc_alf_classify_12x12_10_avx2 : 344.5
vvc_alf_classify_12x16_8_c : 2472.7
vvc_alf_classify_12x16_8_avx2 : 451.0
vvc_alf_classify_12x16_10_c : 2350.5
vvc_alf_classify_12x16_10_avx2 : 390.0
vvc_alf_classify_12x20_8_c : 2976.5
vvc_alf_classify_12x20_8_avx2 : 576.7
vvc_alf_classify_12x20_10_c : 2851.7
vvc_alf_classify_12x20_10_avx2 : 486.7
vvc_alf_classify_12x24_8_c : 3426.0
vvc_alf_classify_12x24_8_avx2 : 640.0
vvc_alf_classify_12x24_10_c : 3420.0
vvc_alf_classify_12x24_10_avx2 : 553.7
vvc_alf_classify_12x28_8_c : 3935.5
vvc_alf_classify_12x28_8_avx2 : 761.5
vvc_alf_classify_12x28_10_c : 3874.2
vvc_alf_classify_12x28_10_avx2 : 642.5
vvc_alf_classify_12x32_8_c : 4446.2
vvc_alf_classify_12x32_8_avx2 : 915.5
vvc_alf_classify_12x32_10_c : 4394.0
vvc_alf_classify_12x32_10_avx2 : 703.2
vvc_alf_classify_12x36_8_c : 4938.5
vvc_alf_classify_12x36_8_avx2 : 952.0
vvc_alf_classify_12x36_10_c : 4890.7
vvc_alf_classify_12x36_10_avx2 : 807.7
vvc_alf_classify_12x40_8_c : 5444.7
vvc_alf_classify_12x40_8_avx2 : 1011.0
vvc_alf_classify_12x40_10_c : 5397.7
vvc_alf_classify_12x40_10_avx2 : 851.7
vvc_alf_classify_12x44_8_c : 6510.2
vvc_alf_classify_12x44_8_avx2 : 1136.0
vvc_alf_classify_12x44_10_c : 6214.7
vvc_alf_classify_12x44_10_avx2 : 1040.0
vvc_alf_classify_12x48_8_c : 6486.7
vvc_alf_classify_12x48_8_avx2 : 1192.0
vvc_alf_classify_12x48_10_c : 6395.7
vvc_alf_classify_12x48_10_avx2 : 1422.7
vvc_alf_classify_12x52_8_c : 7058.5
vvc_alf_classify_12x52_8_avx2 : 1329.5
vvc_alf_classify_12x52_10_c : 6882.0
vvc_alf_classify_12x52_10_avx2 : 1116.7
vvc_alf_classify_12x56_8_c : 7498.5
vvc_alf_classify_12x56_8_avx2 : 1380.2
vvc_alf_classify_12x56_10_c : 7394.5
vvc_alf_classify_12x56_10_avx2 : 1237.7
vvc_alf_classify_12x60_8_c : 8016.2
vvc_alf_classify_12x60_8_avx2 : 1505.5
vvc_alf_classify_12x60_10_c : 7909.0
vvc_alf_classify_12x60_10_avx2 : 1320.0
vvc_alf_classify_12x64_8_c : 8546.2
vvc_alf_classify_12x64_8_avx2 : 1568.7
vvc_alf_classify_12x64_10_c : 8384.7
vvc_alf_classify_12x64_10_avx2 : 1377.2
vvc_alf_classify_12x68_8_c : 9087.0
vvc_alf_classify_12x68_8_avx2 : 1692.2
vvc_alf_classify_12x68_10_c : 9163.0
vvc_alf_classify_12x68_10_avx2 : 1482.2
vvc_alf_classify_12x72_8_c : 9597.7
vvc_alf_classify_12x72_8_avx2 : 2436.2
vvc_alf_classify_12x72_10_c : 9434.0
vvc_alf_classify_12x72_10_avx2 : 1527.7
vvc_alf_classify_12x76_8_c : 10122.2
vvc_alf_classify_12x76_8_avx2 : 1927.0
vvc_alf_classify_12x76_10_c : 10229.7
vvc_alf_classify_12x76_10_avx2 : 1629.2
vvc_alf_classify_12x80_8_c : 10843.7
vvc_alf_classify_12x80_8_avx2 : 1936.5
vvc_alf_classify_12x80_10_c : 10515.2
vvc_alf_classify_12x80_10_avx2 : 1678.2
vvc_alf_classify_12x84_8_c : 11108.7
vvc_alf_classify_12x84_8_avx2 : 2182.7
vvc_alf_classify_12x84_10_c : 10957.0
vvc_alf_classify_12x84_10_avx2 : 1856.7
vvc_alf_classify_12x88_8_c : 11638.5
vvc_alf_classify_12x88_8_avx2 : 2246.0
vvc_alf_classify_12x88_10_c : 11459.5
vvc_alf_classify_12x88_10_avx2 : 1908.2
vvc_alf_classify_12x92_8_c : 12129.0
vvc_alf_classify_12x92_8_avx2 : 2309.7
vvc_alf_classify_12x92_10_c : 12249.0
vvc_alf_classify_12x92_10_avx2 : 2016.2
vvc_alf_classify_12x96_8_c : 12650.2
vvc_alf_classify_12x96_8_avx2 : 2376.7
vvc_alf_classify_12x96_10_c : 12436.5
vvc_alf_classify_12x96_10_avx2 : 2061.0
vvc_alf_classify_12x100_8_c : 13152.2
vvc_alf_classify_12x100_8_avx2 : 2567.7
vvc_alf_classify_12x100_10_c : 12950.5
vvc_alf_classify_12x100_10_avx2 : 2181.5
vvc_alf_classify_12x104_8_c : 13716.0
vvc_alf_classify_12x104_8_avx2 : 2567.2
vvc_alf_classify_12x104_10_c : 13463.5
vvc_alf_classify_12x104_10_avx2 : 2221.2
vvc_alf_classify_12x108_8_c : 14194.0
vvc_alf_classify_12x108_8_avx2 : 2828.0
vvc_alf_classify_12x108_10_c : 14055.5
vvc_alf_classify_12x108_10_avx2 : 2337.2
vvc_alf_classify_12x112_8_c : 15696.7
vvc_alf_classify_12x112_8_avx2 : 2820.5
vvc_alf_classify_12x112_10_c : 14607.2
vvc_alf_classify_12x112_10_avx2 : 2384.0
vvc_alf_classify_12x116_8_c : 16497.0
vvc_alf_classify_12x116_8_avx2 : 3002.2
vvc_alf_classify_12x116_10_c : 15063.7
vvc_alf_classify_12x116_10_avx2 : 2551.0
vvc_alf_classify_12x120_8_c : 15702.7
vvc_alf_classify_12x120_8_avx2 : 3017.5
vvc_alf_classify_12x120_10_c : 15618.5
vvc_alf_classify_12x120_10_avx2 : 2541.2
vvc_alf_classify_12x124_8_c : 16210.0
vvc_alf_classify_12x124_8_avx2 : 3064.7
vvc_alf_classify_12x124_10_c : 18047.5
vvc_alf_classify_12x124_10_avx2 : 2644.0
vvc_alf_classify_12x128_8_c : 16710.2
vvc_alf_classify_12x128_8_avx2 : 3134.7
vvc_alf_classify_12x128_10_c : 16721.5
vvc_alf_classify_12x128_10_avx2 : 2700.0
vvc_alf_classify_16x4_8_c : 1204.5
vvc_alf_classify_16x4_8_avx2 : 321.5
vvc_alf_classify_16x4_10_c : 1050.5
vvc_alf_classify_16x4_10_avx2 : 299.7
vvc_alf_classify_16x8_8_c : 1731.7
vvc_alf_classify_16x8_8_avx2 : 451.0
vvc_alf_classify_16x8_10_c : 1725.7
vvc_alf_classify_16x8_10_avx2 : 389.2
vvc_alf_classify_16x12_8_c : 2427.0
vvc_alf_classify_16x12_8_avx2 : 621.5
vvc_alf_classify_16x12_10_c : 2338.7
vvc_alf_classify_16x12_10_avx2 : 553.0
vvc_alf_classify_16x16_8_c : 3179.5
vvc_alf_classify_16x16_8_avx2 : 739.2
vvc_alf_classify_16x16_10_c : 3307.5
vvc_alf_classify_16x16_10_avx2 : 644.2
vvc_alf_classify_16x20_8_c : 3763.0
vvc_alf_classify_16x20_8_avx2 : 943.2
vvc_alf_classify_16x20_10_c : 3604.0
vvc_alf_classify_16x20_10_avx2 : 774.2
vvc_alf_classify_16x24_8_c : 4304.0
vvc_alf_classify_16x24_8_avx2 : 1041.5
vvc_alf_classify_16x24_10_c : 4265.2
vvc_alf_classify_16x24_10_avx2 : 866.5
vvc_alf_classify_16x28_8_c : 4966.0
vvc_alf_classify_16x28_8_avx2 : 1224.7
vvc_alf_classify_16x28_10_c : 4861.7
vvc_alf_classify_16x28_10_avx2 : 1016.2
vvc_alf_classify_16x32_8_c : 5595.2
vvc_alf_classify_16x32_8_avx2 : 1496.5
vvc_alf_classify_16x32_10_c : 5515.5
vvc_alf_classify_16x32_10_avx2 : 1113.7
vvc_alf_classify_16x36_8_c : 6278.7
vvc_alf_classify_16x36_8_avx2 : 1526.2
vvc_alf_classify_16x36_10_c : 6150.0
vvc_alf_classify_16x36_10_avx2 : 1256.0
vvc_alf_classify_16x40_8_c : 6906.5
vvc_alf_classify_16x40_8_avx2 : 1644.0
vvc_alf_classify_16x40_10_c : 6783.0
vvc_alf_classify_16x40_10_avx2 : 1346.2
vvc_alf_classify_16x44_8_c : 7524.0
vvc_alf_classify_16x44_8_avx2 : 1830.0
vvc_alf_classify_16x44_10_c : 7604.0
vvc_alf_classify_16x44_10_avx2 : 1537.5
vvc_alf_classify_16x48_8_c : 8212.0
vvc_alf_classify_16x48_8_avx2 : 1948.5
vvc_alf_classify_16x48_10_c : 8035.5
vvc_alf_classify_16x48_10_avx2 : 1674.5
vvc_alf_classify_16x52_8_c : 8819.0
vvc_alf_classify_16x52_8_avx2 : 2127.2
vvc_alf_classify_16x52_10_c : 9160.0
vvc_alf_classify_16x52_10_avx2 : 1748.2
vvc_alf_classify_16x56_8_c : 9491.5
vvc_alf_classify_16x56_8_avx2 : 2246.5
vvc_alf_classify_16x56_10_c : 9312.0
vvc_alf_classify_16x56_10_avx2 : 1967.0
vvc_alf_classify_16x60_8_c : 10170.5
vvc_alf_classify_16x60_8_avx2 : 2431.7
vvc_alf_classify_16x60_10_c : 9949.5
vvc_alf_classify_16x60_10_avx2 : 2040.0
vvc_alf_classify_16x64_8_c : 10769.2
vvc_alf_classify_16x64_8_avx2 : 2551.0
vvc_alf_classify_16x64_10_c : 10593.5
vvc_alf_classify_16x64_10_avx2 : 2119.0
vvc_alf_classify_16x68_8_c : 11420.0
vvc_alf_classify_16x68_8_avx2 : 2729.0
vvc_alf_classify_16x68_10_c : 11266.0
vvc_alf_classify_16x68_10_avx2 : 2262.7
vvc_alf_classify_16x72_8_c : 12090.2
vvc_alf_classify_16x72_8_avx2 : 3826.7
vvc_alf_classify_16x72_10_c : 11893.0
vvc_alf_classify_16x72_10_avx2 : 2354.2
vvc_alf_classify_16x76_8_c : 12741.2
vvc_alf_classify_16x76_8_avx2 : 3121.0
vvc_alf_classify_16x76_10_c : 12523.0
vvc_alf_classify_16x76_10_avx2 : 2502.0
vvc_alf_classify_16x80_8_c : 13354.0
vvc_alf_classify_16x80_8_avx2 : 3150.5
vvc_alf_classify_16x80_10_c : 13220.7
vvc_alf_classify_16x80_10_avx2 : 2664.5
vvc_alf_classify_16x84_8_c : 14040.5
vvc_alf_classify_16x84_8_avx2 : 3428.2
vvc_alf_classify_16x84_10_c : 13776.2
vvc_alf_classify_16x84_10_avx2 : 2737.2
vvc_alf_classify_16x88_8_c : 15866.2
vvc_alf_classify_16x88_8_avx2 : 3458.0
vvc_alf_classify_16x88_10_c : 14792.7
vvc_alf_classify_16x88_10_avx2 : 2834.0
vvc_alf_classify_16x92_8_c : 15316.2
vvc_alf_classify_16x92_8_avx2 : 3641.2
vvc_alf_classify_16x92_10_c : 15020.0
vvc_alf_classify_16x92_10_avx2 : 2982.2
vvc_alf_classify_16x96_8_c : 15976.7
vvc_alf_classify_16x96_8_avx2 : 3743.2
vvc_alf_classify_16x96_10_c : 16119.7
vvc_alf_classify_16x96_10_avx2 : 3075.2
vvc_alf_classify_16x100_8_c : 16591.7
vvc_alf_classify_16x100_8_avx2 : 3945.7
vvc_alf_classify_16x100_10_c : 16393.7
vvc_alf_classify_16x100_10_avx2 : 4552.7
vvc_alf_classify_16x104_8_c : 17254.5
vvc_alf_classify_16x104_8_avx2 : 4063.5
vvc_alf_classify_16x104_10_c : 16997.7
vvc_alf_classify_16x104_10_avx2 : 3310.5
vvc_alf_classify_16x108_8_c : 17893.5
vvc_alf_classify_16x108_8_avx2 : 4472.2
vvc_alf_classify_16x108_10_c : 17676.0
vvc_alf_classify_16x108_10_avx2 : 3453.5
vvc_alf_classify_16x112_8_c : 18530.2
vvc_alf_classify_16x112_8_avx2 : 4479.7
vvc_alf_classify_16x112_10_c : 20518.5
vvc_alf_classify_16x112_10_avx2 : 3548.2
vvc_alf_classify_16x116_8_c : 19234.0
vvc_alf_classify_16x116_8_avx2 : 4740.7
vvc_alf_classify_16x116_10_c : 19553.5
vvc_alf_classify_16x116_10_avx2 : 3803.5
vvc_alf_classify_16x120_8_c : 19873.7
vvc_alf_classify_16x120_8_avx2 : 4833.0
vvc_alf_classify_16x120_10_c : 19662.2
vvc_alf_classify_16x120_10_avx2 : 3785.0
vvc_alf_classify_16x124_8_c : 20402.5
vvc_alf_classify_16x124_8_avx2 : 5014.7
vvc_alf_classify_16x124_10_c : 20388.2
vvc_alf_classify_16x124_10_avx2 : 3945.7
vvc_alf_classify_16x128_8_c : 21121.7
vvc_alf_classify_16x128_8_avx2 : 4991.2
vvc_alf_classify_16x128_10_c : 20953.5
vvc_alf_classify_16x128_10_avx2 : 4071.7
vvc_alf_classify_20x4_8_c : 2303.5
vvc_alf_classify_20x4_8_avx2 : 379.5
vvc_alf_classify_20x4_10_c : 1270.7
vvc_alf_classify_20x4_10_avx2 : 357.7
vvc_alf_classify_20x8_8_c : 2081.0
vvc_alf_classify_20x8_8_avx2 : 512.7
vvc_alf_classify_20x8_10_c : 2029.7
vvc_alf_classify_20x8_10_avx2 : 450.2
vvc_alf_classify_20x12_8_c : 2923.2
vvc_alf_classify_20x12_8_avx2 : 757.0
vvc_alf_classify_20x12_10_c : 2798.2
vvc_alf_classify_20x12_10_avx2 : 665.5
vvc_alf_classify_20x16_8_c : 3747.0
vvc_alf_classify_20x16_8_avx2 : 856.0
vvc_alf_classify_20x16_10_c : 3588.2
vvc_alf_classify_20x16_10_avx2 : 757.7
vvc_alf_classify_20x20_8_c : 4584.2
vvc_alf_classify_20x20_8_avx2 : 1210.5
vvc_alf_classify_20x20_10_c : 4334.5
vvc_alf_classify_20x20_10_avx2 : 941.7
vvc_alf_classify_20x24_8_c : 5207.2
vvc_alf_classify_20x24_8_avx2 : 1212.0
vvc_alf_classify_20x24_10_c : 5119.2
vvc_alf_classify_20x24_10_avx2 : 1039.2
vvc_alf_classify_20x28_8_c : 5985.2
vvc_alf_classify_20x28_8_avx2 : 1524.7
vvc_alf_classify_20x28_10_c : 5864.0
vvc_alf_classify_20x28_10_avx2 : 1244.0
vvc_alf_classify_20x32_8_c : 6794.0
vvc_alf_classify_20x32_8_avx2 : 1748.5
vvc_alf_classify_20x32_10_c : 6626.0
vvc_alf_classify_20x32_10_avx2 : 1338.7
vvc_alf_classify_20x36_8_c : 7551.5
vvc_alf_classify_20x36_8_avx2 : 1878.5
vvc_alf_classify_20x36_10_c : 7401.7
vvc_alf_classify_20x36_10_avx2 : 1570.2
vvc_alf_classify_20x40_8_c : 8537.0
vvc_alf_classify_20x40_8_avx2 : 1953.7
vvc_alf_classify_20x40_10_c : 8165.7
vvc_alf_classify_20x40_10_avx2 : 1662.5
vvc_alf_classify_20x44_8_c : 9092.2
vvc_alf_classify_20x44_8_avx2 : 2210.7
vvc_alf_classify_20x44_10_c : 8920.2
vvc_alf_classify_20x44_10_avx2 : 1905.2
vvc_alf_classify_20x48_8_c : 9863.0
vvc_alf_classify_20x48_8_avx2 : 2335.7
vvc_alf_classify_20x48_10_c : 9667.2
vvc_alf_classify_20x48_10_avx2 : 2215.5
vvc_alf_classify_20x52_8_c : 10678.2
vvc_alf_classify_20x52_8_avx2 : 2580.0
vvc_alf_classify_20x52_10_c : 10486.2
vvc_alf_classify_20x52_10_avx2 : 2196.5
vvc_alf_classify_20x56_8_c : 11472.2
vvc_alf_classify_20x56_8_avx2 : 2705.0
vvc_alf_classify_20x56_10_c : 11825.2
vvc_alf_classify_20x56_10_avx2 : 2319.5
vvc_alf_classify_20x60_8_c : 12260.7
vvc_alf_classify_20x60_8_avx2 : 2943.2
vvc_alf_classify_20x60_10_c : 11970.5
vvc_alf_classify_20x60_10_avx2 : 68760.2
vvc_alf_classify_20x64_8_c : 13000.2
vvc_alf_classify_20x64_8_avx2 : 3070.0
vvc_alf_classify_20x64_10_c : 27692.5
vvc_alf_classify_20x64_10_avx2 : 2627.0
vvc_alf_classify_20x68_8_c : 13793.5
vvc_alf_classify_20x68_8_avx2 : 3290.5
vvc_alf_classify_20x68_10_c : 13531.2
vvc_alf_classify_20x68_10_avx2 : 2829.5
vvc_alf_classify_20x72_8_c : 14586.5
vvc_alf_classify_20x72_8_avx2 : 4231.0
vvc_alf_classify_20x72_10_c : 15078.0
vvc_alf_classify_20x72_10_avx2 : 2921.0
vvc_alf_classify_20x76_8_c : 15346.7
vvc_alf_classify_20x76_8_avx2 : 3761.0
vvc_alf_classify_20x76_10_c : 15429.5
vvc_alf_classify_20x76_10_avx2 : 3128.0
vvc_alf_classify_20x80_8_c : 16605.2
vvc_alf_classify_20x80_8_avx2 : 3785.5
vvc_alf_classify_20x80_10_c : 15812.2
vvc_alf_classify_20x80_10_avx2 : 3219.0
vvc_alf_classify_20x84_8_c : 16956.0
vvc_alf_classify_20x84_8_avx2 : 4115.5
vvc_alf_classify_20x84_10_c : 16612.0
vvc_alf_classify_20x84_10_avx2 : 3420.7
vvc_alf_classify_20x88_8_c : 17691.7
vvc_alf_classify_20x88_8_avx2 : 4129.7
vvc_alf_classify_20x88_10_c : 18300.2
vvc_alf_classify_20x88_10_avx2 : 3516.7
vvc_alf_classify_20x92_8_c : 18534.7
vvc_alf_classify_20x92_8_avx2 : 4375.5
vvc_alf_classify_20x92_10_c : 18152.0
vvc_alf_classify_20x92_10_avx2 : 3730.5
vvc_alf_classify_20x96_8_c : 19260.0
vvc_alf_classify_20x96_8_avx2 : 4496.0
vvc_alf_classify_20x96_10_c : 18926.5
vvc_alf_classify_20x96_10_avx2 : 3823.7
vvc_alf_classify_20x100_8_c : 20001.0
vvc_alf_classify_20x100_8_avx2 : 4727.7
vvc_alf_classify_20x100_10_c : 19691.2
vvc_alf_classify_20x100_10_avx2 : 4021.0
vvc_alf_classify_20x104_8_c : 21388.5
vvc_alf_classify_20x104_8_avx2 : 4853.5
vvc_alf_classify_20x104_10_c : 20421.7
vvc_alf_classify_20x104_10_avx2 : 4124.5
vvc_alf_classify_20x108_8_c : 21618.5
vvc_alf_classify_20x108_8_avx2 : 5084.5
vvc_alf_classify_20x108_10_c : 21230.5
vvc_alf_classify_20x108_10_avx2 : 4326.2
vvc_alf_classify_20x112_8_c : 22346.0
vvc_alf_classify_20x112_8_avx2 : 5341.2
vvc_alf_classify_20x112_10_c : 22014.7
vvc_alf_classify_20x112_10_avx2 : 4400.7
vvc_alf_classify_20x116_8_c : 23122.0
vvc_alf_classify_20x116_8_avx2 : 5622.0
vvc_alf_classify_20x116_10_c : 23385.2
vvc_alf_classify_20x116_10_avx2 : 4616.7
vvc_alf_classify_20x120_8_c : 23936.0
vvc_alf_classify_20x120_8_avx2 : 5596.0
vvc_alf_classify_20x120_10_c : 23615.7
vvc_alf_classify_20x120_10_avx2 : 4709.2
vvc_alf_classify_20x124_8_c : 24638.2
vvc_alf_classify_20x124_8_avx2 : 6028.2
vvc_alf_classify_20x124_10_c : 24440.2
vvc_alf_classify_20x124_10_avx2 : 4924.2
vvc_alf_classify_20x128_8_c : 25533.2
vvc_alf_classify_20x128_8_avx2 : 5952.7
vvc_alf_classify_20x128_10_c : 25189.2
vvc_alf_classify_20x128_10_avx2 : 5058.2
vvc_alf_classify_24x4_8_c : 1684.5
vvc_alf_classify_24x4_8_avx2 : 378.7
vvc_alf_classify_24x4_10_c : 1472.7
vvc_alf_classify_24x4_10_avx2 : 359.2
vvc_alf_classify_24x8_8_c : 2423.7
vvc_alf_classify_24x8_8_avx2 : 512.7
vvc_alf_classify_24x8_10_c : 2370.0
vvc_alf_classify_24x8_10_avx2 : 464.0
vvc_alf_classify_24x12_8_c : 3369.2
vvc_alf_classify_24x12_8_avx2 : 734.0
vvc_alf_classify_24x12_10_c : 3285.2
vvc_alf_classify_24x12_10_avx2 : 667.2
vvc_alf_classify_24x16_8_c : 4503.5
vvc_alf_classify_24x16_8_avx2 : 862.7
vvc_alf_classify_24x16_10_c : 4180.2
vvc_alf_classify_24x16_10_avx2 : 763.0
vvc_alf_classify_24x20_8_c : 5344.2
vvc_alf_classify_24x20_8_avx2 : 1089.2
vvc_alf_classify_24x20_10_c : 5079.2
vvc_alf_classify_24x20_10_avx2 : 975.2
vvc_alf_classify_24x24_8_c : 6094.7
vvc_alf_classify_24x24_8_avx2 : 1218.7
vvc_alf_classify_24x24_10_c : 5966.0
vvc_alf_classify_24x24_10_avx2 : 1046.0
vvc_alf_classify_24x28_8_c : 7034.7
vvc_alf_classify_24x28_8_avx2 : 1454.7
vvc_alf_classify_24x28_10_c : 6845.5
vvc_alf_classify_24x28_10_avx2 : 1253.0
vvc_alf_classify_24x32_8_c : 7949.2
vvc_alf_classify_24x32_8_avx2 : 1756.5
vvc_alf_classify_24x32_10_c : 7941.7
vvc_alf_classify_24x32_10_avx2 : 1343.2
vvc_alf_classify_24x36_8_c : 8846.5
vvc_alf_classify_24x36_8_avx2 : 1846.5
vvc_alf_classify_24x36_10_c : 8630.5
vvc_alf_classify_24x36_10_avx2 : 1578.5
vvc_alf_classify_24x40_8_c : 9820.5
vvc_alf_classify_24x40_8_avx2 : 1965.0
vvc_alf_classify_24x40_10_c : 9551.0
vvc_alf_classify_24x40_10_avx2 : 1675.2
vvc_alf_classify_24x44_8_c : 10639.0
vvc_alf_classify_24x44_8_avx2 : 2233.0
vvc_alf_classify_24x44_10_c : 10417.0
vvc_alf_classify_24x44_10_avx2 : 1959.2
vvc_alf_classify_24x48_8_c : 11574.2
vvc_alf_classify_24x48_8_avx2 : 2348.5
vvc_alf_classify_24x48_10_c : 11366.5
vvc_alf_classify_24x48_10_avx2 : 2229.5
vvc_alf_classify_24x52_8_c : 12551.2
vvc_alf_classify_24x52_8_avx2 : 2592.7
vvc_alf_classify_24x52_10_c : 12260.7
vvc_alf_classify_24x52_10_avx2 : 2334.2
vvc_alf_classify_24x56_8_c : 13440.5
vvc_alf_classify_24x56_8_avx2 : 2719.2
vvc_alf_classify_24x56_10_c : 13476.5
vvc_alf_classify_24x56_10_avx2 : 2329.0
vvc_alf_classify_24x60_8_c : 14334.7
vvc_alf_classify_24x60_8_avx2 : 2955.5
vvc_alf_classify_24x60_10_c : 14063.0
vvc_alf_classify_24x60_10_avx2 : 2620.2
vvc_alf_classify_24x64_8_c : 15261.2
vvc_alf_classify_24x64_8_avx2 : 3079.7
vvc_alf_classify_24x64_10_c : 14927.7
vvc_alf_classify_24x64_10_avx2 : 2645.5
vvc_alf_classify_24x68_8_c : 16150.5
vvc_alf_classify_24x68_8_avx2 : 3318.0
vvc_alf_classify_24x68_10_c : 15804.7
vvc_alf_classify_24x68_10_avx2 : 2854.7
vvc_alf_classify_24x72_8_c : 17098.2
vvc_alf_classify_24x72_8_avx2 : 4557.0
vvc_alf_classify_24x72_10_c : 17138.5
vvc_alf_classify_24x72_10_avx2 : 2950.7
vvc_alf_classify_24x76_8_c : 18070.2
vvc_alf_classify_24x76_8_avx2 : 3680.5
vvc_alf_classify_24x76_10_c : 18125.2
vvc_alf_classify_24x76_10_avx2 : 3144.5
vvc_alf_classify_24x80_8_c : 18916.0
vvc_alf_classify_24x80_8_avx2 : 3808.0
vvc_alf_classify_24x80_10_c : 18548.2
vvc_alf_classify_24x80_10_avx2 : 3236.0
vvc_alf_classify_24x84_8_c : 55244.0
vvc_alf_classify_24x84_8_avx2 : 4039.5
vvc_alf_classify_24x84_10_c : 33735.2
vvc_alf_classify_24x84_10_avx2 : 3452.7
vvc_alf_classify_24x88_8_c : 20739.0
vvc_alf_classify_24x88_8_avx2 : 4172.0
vvc_alf_classify_24x88_10_c : 30171.2
vvc_alf_classify_24x88_10_avx2 : 3534.0
vvc_alf_classify_24x92_8_c : 21650.5
vvc_alf_classify_24x92_8_avx2 : 4388.2
vvc_alf_classify_24x92_10_c : 21769.7
vvc_alf_classify_24x92_10_avx2 : 3764.7
vvc_alf_classify_24x96_8_c : 22539.0
vvc_alf_classify_24x96_8_avx2 : 4520.0
vvc_alf_classify_24x96_10_c : 22151.0
vvc_alf_classify_24x96_10_avx2 : 3952.5
vvc_alf_classify_24x100_8_c : 23469.0
vvc_alf_classify_24x100_8_avx2 : 4764.2
vvc_alf_classify_24x100_10_c : 23026.7
vvc_alf_classify_24x100_10_avx2 : 4053.0
vvc_alf_classify_24x104_8_c : 24381.2
vvc_alf_classify_24x104_8_avx2 : 5019.5
vvc_alf_classify_24x104_10_c : 23956.7
vvc_alf_classify_24x104_10_avx2 : 4158.7
vvc_alf_classify_24x108_8_c : 25321.7
vvc_alf_classify_24x108_8_avx2 : 5124.5
vvc_alf_classify_24x108_10_c : 45315.0
vvc_alf_classify_24x108_10_avx2 : 4353.2
vvc_alf_classify_24x112_8_c : 26200.5
vvc_alf_classify_24x112_8_avx2 : 6552.2
vvc_alf_classify_24x112_10_c : 25795.5
vvc_alf_classify_24x112_10_avx2 : 4445.5
vvc_alf_classify_24x116_8_c : 27166.2
vvc_alf_classify_24x116_8_avx2 : 5660.7
vvc_alf_classify_24x116_10_c : 26805.2
vvc_alf_classify_24x116_10_avx2 : 4668.0
vvc_alf_classify_24x120_8_c : 28112.2
vvc_alf_classify_24x120_8_avx2 : 7519.5
vvc_alf_classify_24x120_10_c : 27617.0
vvc_alf_classify_24x120_10_avx2 : 4751.5
vvc_alf_classify_24x124_8_c : 28968.5
vvc_alf_classify_24x124_8_avx2 : 6042.7
vvc_alf_classify_24x124_10_c : 28515.7
vvc_alf_classify_24x124_10_avx2 : 4961.5
vvc_alf_classify_24x128_8_c : 29832.2
vvc_alf_classify_24x128_8_avx2 : 5998.7
vvc_alf_classify_24x128_10_c : 32860.5
vvc_alf_classify_24x128_10_avx2 : 5109.0
vvc_alf_classify_28x4_8_c : 1933.5
vvc_alf_classify_28x4_8_avx2 : 382.5
vvc_alf_classify_28x4_10_c : 1699.7
vvc_alf_classify_28x4_10_avx2 : 370.2
vvc_alf_classify_28x8_8_c : 2773.0
vvc_alf_classify_28x8_8_avx2 : 518.0
vvc_alf_classify_28x8_10_c : 2774.0
vvc_alf_classify_28x8_10_avx2 : 451.7
vvc_alf_classify_28x12_8_c : 7068.2
vvc_alf_classify_28x12_8_avx2 : 744.5
vvc_alf_classify_28x12_10_c : 3779.7
vvc_alf_classify_28x12_10_avx2 : 674.7
vvc_alf_classify_28x16_8_c : 9153.5
vvc_alf_classify_28x16_8_avx2 : 868.7
vvc_alf_classify_28x16_10_c : 4787.2
vvc_alf_classify_28x16_10_avx2 : 773.7
vvc_alf_classify_28x20_8_c : 6086.0
vvc_alf_classify_28x20_8_avx2 : 1101.2
vvc_alf_classify_28x20_10_c : 5834.2
vvc_alf_classify_28x20_10_avx2 : 964.7
vvc_alf_classify_28x24_8_c : 6961.0
vvc_alf_classify_28x24_8_avx2 : 1225.5
vvc_alf_classify_28x24_10_c : 6852.2
vvc_alf_classify_28x24_10_avx2 : 1052.0
vvc_alf_classify_28x28_8_c : 8025.7
vvc_alf_classify_28x28_8_avx2 : 1469.0
vvc_alf_classify_28x28_10_c : 7865.0
vvc_alf_classify_28x28_10_avx2 : 1260.5
vvc_alf_classify_28x32_8_c : 9313.0
vvc_alf_classify_28x32_8_avx2 : 1773.5
vvc_alf_classify_28x32_10_c : 8909.7
vvc_alf_classify_28x32_10_avx2 : 1427.2
vvc_alf_classify_28x36_8_c : 11260.5
vvc_alf_classify_28x36_8_avx2 : 1869.5
vvc_alf_classify_28x36_10_c : 9922.5
vvc_alf_classify_28x36_10_avx2 : 1604.5
vvc_alf_classify_28x40_8_c : 11209.2
vvc_alf_classify_28x40_8_avx2 : 1987.2
vvc_alf_classify_28x40_10_c : 10948.7
vvc_alf_classify_28x40_10_avx2 : 1694.5
vvc_alf_classify_28x44_8_c : 12237.7
vvc_alf_classify_28x44_8_avx2 : 2263.5
vvc_alf_classify_28x44_10_c : 11968.2
vvc_alf_classify_28x44_10_avx2 : 1927.7
vvc_alf_classify_28x48_8_c : 13301.2
vvc_alf_classify_28x48_8_avx2 : 6656.5
vvc_alf_classify_28x48_10_c : 13011.5
vvc_alf_classify_28x48_10_avx2 : 2074.0
vvc_alf_classify_28x52_8_c : 14360.0
vvc_alf_classify_28x52_8_avx2 : 2616.5
vvc_alf_classify_28x52_10_c : 14040.5
vvc_alf_classify_28x52_10_avx2 : 2304.5
vvc_alf_classify_28x56_8_c : 15431.0
vvc_alf_classify_28x56_8_avx2 : 2746.0
vvc_alf_classify_28x56_10_c : 15093.7
vvc_alf_classify_28x56_10_avx2 : 2367.0
vvc_alf_classify_28x60_8_c : 16449.0
vvc_alf_classify_28x60_8_avx2 : 2977.7
vvc_alf_classify_28x60_10_c : 16139.0
vvc_alf_classify_28x60_10_avx2 : 2647.7
vvc_alf_classify_28x64_8_c : 17493.0
vvc_alf_classify_28x64_8_avx2 : 3110.2
vvc_alf_classify_28x64_10_c : 17088.0
vvc_alf_classify_28x64_10_avx2 : 2815.2
vvc_alf_classify_28x68_8_c : 18554.7
vvc_alf_classify_28x68_8_avx2 : 3348.5
vvc_alf_classify_28x68_10_c : 18119.2
vvc_alf_classify_28x68_10_avx2 : 2891.2
vvc_alf_classify_28x72_8_c : 19574.2
vvc_alf_classify_28x72_8_avx2 : 3470.7
vvc_alf_classify_28x72_10_c : 19206.5
vvc_alf_classify_28x72_10_avx2 : 2971.7
vvc_alf_classify_28x76_8_c : 46253.7
vvc_alf_classify_28x76_8_avx2 : 3709.0
vvc_alf_classify_28x76_10_c : 20747.2
vvc_alf_classify_28x76_10_avx2 : 3190.0
vvc_alf_classify_28x80_8_c : 29286.5
vvc_alf_classify_28x80_8_avx2 : 3876.5
vvc_alf_classify_28x80_10_c : 21226.0
vvc_alf_classify_28x80_10_avx2 : 3277.7
vvc_alf_classify_28x84_8_c : 22761.5
vvc_alf_classify_28x84_8_avx2 : 4076.0
vvc_alf_classify_28x84_10_c : 22905.0
vvc_alf_classify_28x84_10_avx2 : 3495.2
vvc_alf_classify_28x88_8_c : 33349.5
vvc_alf_classify_28x88_8_avx2 : 4195.2
vvc_alf_classify_28x88_10_c : 23983.2
vvc_alf_classify_28x88_10_avx2 : 3576.5
vvc_alf_classify_28x92_8_c : 24845.2
vvc_alf_classify_28x92_8_avx2 : 4450.7
vvc_alf_classify_28x92_10_c : 24362.7
vvc_alf_classify_28x92_10_avx2 : 3812.5
vvc_alf_classify_28x96_8_c : 25837.7
vvc_alf_classify_28x96_8_avx2 : 4562.5
vvc_alf_classify_28x96_10_c : 25472.2
vvc_alf_classify_28x96_10_avx2 : 3890.7
vvc_alf_classify_28x100_8_c : 26931.0
vvc_alf_classify_28x100_8_avx2 : 4819.2
vvc_alf_classify_28x100_10_c : 27242.7
vvc_alf_classify_28x100_10_avx2 : 4109.5
vvc_alf_classify_28x104_8_c : 28027.2
vvc_alf_classify_28x104_8_avx2 : 5160.7
vvc_alf_classify_28x104_10_c : 28308.7
vvc_alf_classify_28x104_10_avx2 : 4199.7
vvc_alf_classify_28x108_8_c : 29042.2
vvc_alf_classify_28x108_8_avx2 : 5175.2
vvc_alf_classify_28x108_10_c : 28589.5
vvc_alf_classify_28x108_10_avx2 : 4410.5
vvc_alf_classify_28x112_8_c : 30102.0
vvc_alf_classify_28x112_8_avx2 : 5437.7
vvc_alf_classify_28x112_10_c : 29659.5
vvc_alf_classify_28x112_10_avx2 : 4493.2
vvc_alf_classify_28x116_8_c : 31242.0
vvc_alf_classify_28x116_8_avx2 : 5874.5
vvc_alf_classify_28x116_10_c : 30746.7
vvc_alf_classify_28x116_10_avx2 : 4715.0
vvc_alf_classify_28x120_8_c : 41923.5
vvc_alf_classify_28x120_8_avx2 : 5698.0
vvc_alf_classify_28x120_10_c : 31763.2
vvc_alf_classify_28x120_10_avx2 : 4803.0
vvc_alf_classify_28x124_8_c : 51929.2
vvc_alf_classify_28x124_8_avx2 : 6393.5
vvc_alf_classify_28x124_10_c : 57978.2
vvc_alf_classify_28x124_10_avx2 : 5017.2
vvc_alf_classify_28x128_8_c : 34202.2
vvc_alf_classify_28x128_8_avx2 : 6063.5
vvc_alf_classify_28x128_10_c : 34803.5
vvc_alf_classify_28x128_10_avx2 : 5146.2
vvc_alf_classify_32x4_8_c : 2185.5
vvc_alf_classify_32x4_8_avx2 : 494.2
vvc_alf_classify_32x4_10_c : 1903.0
vvc_alf_classify_32x4_10_avx2 : 456.5
vvc_alf_classify_32x8_8_c : 3311.2
vvc_alf_classify_32x8_8_avx2 : 719.0
vvc_alf_classify_32x8_10_c : 3055.7
vvc_alf_classify_32x8_10_avx2 : 582.0
vvc_alf_classify_32x12_8_c : 7939.5
vvc_alf_classify_32x12_8_avx2 : 975.2
vvc_alf_classify_32x12_10_c : 4237.7
vvc_alf_classify_32x12_10_avx2 : 853.5
vvc_alf_classify_32x16_8_c : 5815.0
vvc_alf_classify_32x16_8_avx2 : 1152.5
vvc_alf_classify_32x16_10_c : 5389.0
vvc_alf_classify_32x16_10_avx2 : 966.2
vvc_alf_classify_32x20_8_c : 6895.7
vvc_alf_classify_32x20_8_avx2 : 1454.0
vvc_alf_classify_32x20_10_c : 6536.5
vvc_alf_classify_32x20_10_avx2 : 1216.5
vvc_alf_classify_32x24_8_c : 7877.5
vvc_alf_classify_32x24_8_avx2 : 1635.0
vvc_alf_classify_32x24_10_c : 7709.5
vvc_alf_classify_32x24_10_avx2 : 1355.7
vvc_alf_classify_32x28_8_c : 9064.7
vvc_alf_classify_32x28_8_avx2 : 1997.5
vvc_alf_classify_32x28_10_c : 8852.5
vvc_alf_classify_32x28_10_avx2 : 1769.7
vvc_alf_classify_32x32_8_c : 10232.2
vvc_alf_classify_32x32_8_avx2 : 2428.5
vvc_alf_classify_32x32_10_c : 32419.0
vvc_alf_classify_32x32_10_avx2 : 2635.5
vvc_alf_classify_32x36_8_c : 11432.7
vvc_alf_classify_32x36_8_avx2 : 2478.7
vvc_alf_classify_32x36_10_c : 11172.0
vvc_alf_classify_32x36_10_avx2 : 2058.0
vvc_alf_classify_32x40_8_c : 12648.7
vvc_alf_classify_32x40_8_avx2 : 2654.5
vvc_alf_classify_32x40_10_c : 12323.5
vvc_alf_classify_32x40_10_avx2 : 2198.7
vvc_alf_classify_32x44_8_c : 13783.7
vvc_alf_classify_32x44_8_avx2 : 2953.0
vvc_alf_classify_32x44_10_c : 13500.0
vvc_alf_classify_32x44_10_avx2 : 3119.7
vvc_alf_classify_32x48_8_c : 14968.5
vvc_alf_classify_32x48_8_avx2 : 8776.5
vvc_alf_classify_32x48_10_c : 14637.0
vvc_alf_classify_32x48_10_avx2 : 2597.7
vvc_alf_classify_32x52_8_c : 16166.7
vvc_alf_classify_32x52_8_avx2 : 3424.5
vvc_alf_classify_32x52_10_c : 15778.0
vvc_alf_classify_32x52_10_avx2 : 2917.7
vvc_alf_classify_32x56_8_c : 17326.2
vvc_alf_classify_32x56_8_avx2 : 3624.7
vvc_alf_classify_32x56_10_c : 16924.2
vvc_alf_classify_32x56_10_avx2 : 3017.7
vvc_alf_classify_32x60_8_c : 18505.7
vvc_alf_classify_32x60_8_avx2 : 3924.2
vvc_alf_classify_32x60_10_c : 18068.0
vvc_alf_classify_32x60_10_avx2 : 3444.5
vvc_alf_classify_32x64_8_c : 19720.2
vvc_alf_classify_32x64_8_avx2 : 4596.5
vvc_alf_classify_32x64_10_c : 19266.7
vvc_alf_classify_32x64_10_avx2 : 3401.5
vvc_alf_classify_32x68_8_c : 20907.5
vvc_alf_classify_32x68_8_avx2 : 4420.7
vvc_alf_classify_32x68_10_c : 20431.5
vvc_alf_classify_32x68_10_avx2 : 3666.5
vvc_alf_classify_32x72_8_c : 24578.5
vvc_alf_classify_32x72_8_avx2 : 4602.5
vvc_alf_classify_32x72_10_c : 21547.0
vvc_alf_classify_32x72_10_avx2 : 3819.7
vvc_alf_classify_32x76_8_c : 23236.0
vvc_alf_classify_32x76_8_avx2 : 4911.5
vvc_alf_classify_32x76_10_c : 23336.5
vvc_alf_classify_32x76_10_avx2 : 4073.0
vvc_alf_classify_32x80_8_c : 24448.2
vvc_alf_classify_32x80_8_avx2 : 5082.7
vvc_alf_classify_32x80_10_c : 23937.5
vvc_alf_classify_32x80_10_avx2 : 4198.2
vvc_alf_classify_32x84_8_c : 25680.0
vvc_alf_classify_32x84_8_avx2 : 5354.7
vvc_alf_classify_32x84_10_c : 34406.5
vvc_alf_classify_32x84_10_avx2 : 4455.0
vvc_alf_classify_32x88_8_c : 26850.0
vvc_alf_classify_32x88_8_avx2 : 5558.7
vvc_alf_classify_32x88_10_c : 34482.2
vvc_alf_classify_32x88_10_avx2 : 4597.5
vvc_alf_classify_32x92_8_c : 28070.2
vvc_alf_classify_32x92_8_avx2 : 5849.2
vvc_alf_classify_32x92_10_c : 27514.2
vvc_alf_classify_32x92_10_avx2 : 4841.7
vvc_alf_classify_32x96_8_c : 29203.7
vvc_alf_classify_32x96_8_avx2 : 6033.0
vvc_alf_classify_32x96_10_c : 28716.7
vvc_alf_classify_32x96_10_avx2 : 5008.5
vvc_alf_classify_32x100_8_c : 30348.5
vvc_alf_classify_32x100_8_avx2 : 6331.0
vvc_alf_classify_32x100_10_c : 29793.5
vvc_alf_classify_32x100_10_avx2 : 5240.7
vvc_alf_classify_32x104_8_c : 31537.7
vvc_alf_classify_32x104_8_avx2 : 7049.2
vvc_alf_classify_32x104_10_c : 31032.7
vvc_alf_classify_32x104_10_avx2 : 5539.7
vvc_alf_classify_32x108_8_c : 32654.7
vvc_alf_classify_32x108_8_avx2 : 7017.5
vvc_alf_classify_32x108_10_c : 33944.5
vvc_alf_classify_32x108_10_avx2 : 5695.7
vvc_alf_classify_32x112_8_c : 33961.7
vvc_alf_classify_32x112_8_avx2 : 7023.5
vvc_alf_classify_32x112_10_c : 33351.7
vvc_alf_classify_32x112_10_avx2 : 5880.5
vvc_alf_classify_32x116_8_c : 35124.0
vvc_alf_classify_32x116_8_avx2 : 7574.2
vvc_alf_classify_32x116_10_c : 34633.2
vvc_alf_classify_32x116_10_avx2 : 6179.0
vvc_alf_classify_32x120_8_c : 36341.7
vvc_alf_classify_32x120_8_avx2 : 7746.2
vvc_alf_classify_32x120_10_c : 35714.0
vvc_alf_classify_32x120_10_avx2 : 6318.2
vvc_alf_classify_32x124_8_c : 38506.0
vvc_alf_classify_32x124_8_avx2 : 7850.7
vvc_alf_classify_32x124_10_c : 36915.0
vvc_alf_classify_32x124_10_avx2 : 6644.5
vvc_alf_classify_32x128_8_c : 67019.2
vvc_alf_classify_32x128_8_avx2 : 8028.2
vvc_alf_classify_32x128_10_c : 38049.0
vvc_alf_classify_32x128_10_avx2 : 6859.7
vvc_alf_classify_36x4_8_c : 2410.5
vvc_alf_classify_36x4_8_avx2 : 543.5
vvc_alf_classify_36x4_10_c : 2116.0
vvc_alf_classify_36x4_10_avx2 : 501.5
vvc_alf_classify_36x8_8_c : 3724.5
vvc_alf_classify_36x8_8_avx2 : 772.7
vvc_alf_classify_36x8_10_c : 3506.7
vvc_alf_classify_36x8_10_avx2 : 633.5
vvc_alf_classify_36x12_8_c : 4817.7
vvc_alf_classify_36x12_8_avx2 : 1081.7
vvc_alf_classify_36x12_10_c : 4725.2
vvc_alf_classify_36x12_10_avx2 : 964.0
vvc_alf_classify_36x16_8_c : 6283.7
vvc_alf_classify_36x16_8_avx2 : 1264.2
vvc_alf_classify_36x16_10_c : 5963.2
vvc_alf_classify_36x16_10_avx2 : 1076.5
vvc_alf_classify_36x20_8_c : 7663.2
vvc_alf_classify_36x20_8_avx2 : 1609.0
vvc_alf_classify_36x20_10_c : 7244.0
vvc_alf_classify_36x20_10_avx2 : 1383.2
vvc_alf_classify_36x24_8_c : 8761.7
vvc_alf_classify_36x24_8_avx2 : 1790.7
vvc_alf_classify_36x24_10_c : 8529.2
vvc_alf_classify_36x24_10_avx2 : 1521.0
vvc_alf_classify_36x28_8_c : 10089.2
vvc_alf_classify_36x28_8_avx2 : 2214.2
vvc_alf_classify_36x28_10_c : 9837.7
vvc_alf_classify_36x28_10_avx2 : 1937.7
vvc_alf_classify_36x32_8_c : 11397.7
vvc_alf_classify_36x32_8_avx2 : 2668.5
vvc_alf_classify_36x32_10_c : 14978.5
vvc_alf_classify_36x32_10_avx2 : 2916.2
vvc_alf_classify_36x36_8_c : 12735.2
vvc_alf_classify_36x36_8_avx2 : 2749.0
vvc_alf_classify_36x36_10_c : 12434.2
vvc_alf_classify_36x36_10_avx2 : 2336.5
vvc_alf_classify_36x40_8_c : 14084.5
vvc_alf_classify_36x40_8_avx2 : 2933.0
vvc_alf_classify_36x40_10_c : 13740.0
vvc_alf_classify_36x40_10_avx2 : 2475.7
vvc_alf_classify_36x44_8_c : 15419.0
vvc_alf_classify_36x44_8_avx2 : 3363.0
vvc_alf_classify_36x44_10_c : 15023.5
vvc_alf_classify_36x44_10_avx2 : 2781.7
vvc_alf_classify_36x48_8_c : 16695.5
vvc_alf_classify_36x48_8_avx2 : 9654.0
vvc_alf_classify_36x48_10_c : 16299.2
vvc_alf_classify_36x48_10_avx2 : 2927.7
vvc_alf_classify_36x52_8_c : 18018.0
vvc_alf_classify_36x52_8_avx2 : 3806.5
vvc_alf_classify_36x52_10_c : 17572.0
vvc_alf_classify_36x52_10_avx2 : 3301.2
vvc_alf_classify_36x56_8_c : 19315.2
vvc_alf_classify_36x56_8_avx2 : 4000.7
vvc_alf_classify_36x56_10_c : 18855.7
vvc_alf_classify_36x56_10_avx2 : 3398.5
vvc_alf_classify_36x60_8_c : 20690.0
vvc_alf_classify_36x60_8_avx2 : 4368.7
vvc_alf_classify_36x60_10_c : 20216.2
vvc_alf_classify_36x60_10_avx2 : 3792.7
vvc_alf_classify_36x64_8_c : 22015.5
vvc_alf_classify_36x64_8_avx2 : 4555.0
vvc_alf_classify_36x64_10_c : 21487.5
vvc_alf_classify_36x64_10_avx2 : 3849.7
vvc_alf_classify_36x68_8_c : 23267.2
vvc_alf_classify_36x68_8_avx2 : 4905.0
vvc_alf_classify_36x68_10_c : 22714.0
vvc_alf_classify_36x68_10_avx2 : 4169.7
vvc_alf_classify_36x72_8_c : 24612.0
vvc_alf_classify_36x72_8_avx2 : 5092.5
vvc_alf_classify_36x72_10_c : 24062.5
vvc_alf_classify_36x72_10_avx2 : 4315.0
vvc_alf_classify_36x76_8_c : 26001.7
vvc_alf_classify_36x76_8_avx2 : 7126.2
vvc_alf_classify_36x76_10_c : 25349.2
vvc_alf_classify_36x76_10_avx2 : 4625.0
vvc_alf_classify_36x80_8_c : 27225.2
vvc_alf_classify_36x80_8_avx2 : 5617.5
vvc_alf_classify_36x80_10_c : 26705.5
vvc_alf_classify_36x80_10_avx2 : 4766.5
vvc_alf_classify_36x84_8_c : 28567.0
vvc_alf_classify_36x84_8_avx2 : 5972.7
vvc_alf_classify_36x84_10_c : 28726.5
vvc_alf_classify_36x84_10_avx2 : 5063.5
vvc_alf_classify_36x88_8_c : 29915.7
vvc_alf_classify_36x88_8_avx2 : 6155.2
vvc_alf_classify_36x88_10_c : 30048.7
vvc_alf_classify_36x88_10_avx2 : 5210.2
vvc_alf_classify_36x92_8_c : 31168.2
vvc_alf_classify_36x92_8_avx2 : 6854.5
vvc_alf_classify_36x92_10_c : 30626.2
vvc_alf_classify_36x92_10_avx2 : 5526.7
vvc_alf_classify_36x96_8_c : 32525.0
vvc_alf_classify_36x96_8_avx2 : 6683.2
vvc_alf_classify_36x96_10_c : 31923.2
vvc_alf_classify_36x96_10_avx2 : 5685.2
vvc_alf_classify_36x100_8_c : 34694.0
vvc_alf_classify_36x100_8_avx2 : 9107.7
vvc_alf_classify_36x100_10_c : 33254.0
vvc_alf_classify_36x100_10_avx2 : 6504.5
vvc_alf_classify_36x104_8_c : 35172.5
vvc_alf_classify_36x104_8_avx2 : 9890.5
vvc_alf_classify_36x104_10_c : 64638.0
vvc_alf_classify_36x104_10_avx2 : 6124.7
vvc_alf_classify_36x108_8_c : 36582.0
vvc_alf_classify_36x108_8_avx2 : 7629.7
vvc_alf_classify_36x108_10_c : 36721.0
vvc_alf_classify_36x108_10_avx2 : 6473.2
vvc_alf_classify_36x112_8_c : 37802.0
vvc_alf_classify_36x112_8_avx2 : 7798.7
vvc_alf_classify_36x112_10_c : 71670.5
vvc_alf_classify_36x112_10_avx2 : 6648.2
vvc_alf_classify_36x116_8_c : 39173.0
vvc_alf_classify_36x116_8_avx2 : 8202.2
vvc_alf_classify_36x116_10_c : 39524.7
vvc_alf_classify_36x116_10_avx2 : 7047.2
vvc_alf_classify_36x120_8_c : 41516.0
vvc_alf_classify_36x120_8_avx2 : 8604.5
vvc_alf_classify_36x120_10_c : 39835.0
vvc_alf_classify_36x120_10_avx2 : 7417.0
vvc_alf_classify_36x124_8_c : 42846.7
vvc_alf_classify_36x124_8_avx2 : 10122.2
vvc_alf_classify_36x124_10_c : 41129.2
vvc_alf_classify_36x124_10_avx2 : 7602.0
vvc_alf_classify_36x128_8_c : 43040.7
vvc_alf_classify_36x128_8_avx2 : 8924.0
vvc_alf_classify_36x128_10_c : 42391.5
vvc_alf_classify_36x128_10_avx2 : 7787.7
vvc_alf_classify_40x4_8_c : 2649.5
vvc_alf_classify_40x4_8_avx2 : 552.2
vvc_alf_classify_40x4_10_c : 2318.5
vvc_alf_classify_40x4_10_avx2 : 502.2
vvc_alf_classify_40x8_8_c : 3960.2
vvc_alf_classify_40x8_8_avx2 : 733.2
vvc_alf_classify_40x8_10_c : 3741.7
vvc_alf_classify_40x8_10_avx2 : 637.7
vvc_alf_classify_40x12_8_c : 5294.2
vvc_alf_classify_40x12_8_avx2 : 1085.5
vvc_alf_classify_40x12_10_c : 5158.7
vvc_alf_classify_40x12_10_avx2 : 967.7
vvc_alf_classify_40x16_8_c : 6916.0
vvc_alf_classify_40x16_8_avx2 : 1268.0
vvc_alf_classify_40x16_10_c : 6594.5
vvc_alf_classify_40x16_10_avx2 : 1087.5
vvc_alf_classify_40x20_8_c : 8402.7
vvc_alf_classify_40x20_8_avx2 : 1629.0
vvc_alf_classify_40x20_10_c : 8017.7
vvc_alf_classify_40x20_10_avx2 : 1392.2
vvc_alf_classify_40x24_8_c : 9651.5
vvc_alf_classify_40x24_8_avx2 : 1800.2
vvc_alf_classify_40x24_10_c : 9426.0
vvc_alf_classify_40x24_10_avx2 : 1531.5
vvc_alf_classify_40x28_8_c : 11395.2
vvc_alf_classify_40x28_8_avx2 : 2224.7
vvc_alf_classify_40x28_10_c : 10799.0
vvc_alf_classify_40x28_10_avx2 : 1953.7
vvc_alf_classify_40x32_8_c : 12789.5
vvc_alf_classify_40x32_8_avx2 : 2678.5
vvc_alf_classify_40x32_10_c : 16857.5
vvc_alf_classify_40x32_10_avx2 : 2157.0
vvc_alf_classify_40x36_8_c : 14054.7
vvc_alf_classify_40x36_8_avx2 : 2760.2
vvc_alf_classify_40x36_10_c : 13709.2
vvc_alf_classify_40x36_10_avx2 : 2347.0
vvc_alf_classify_40x40_8_c : 15489.0
vvc_alf_classify_40x40_8_avx2 : 2942.5
vvc_alf_classify_40x40_10_c : 15090.7
vvc_alf_classify_40x40_10_avx2 : 2612.0
vvc_alf_classify_40x44_8_c : 16967.2
vvc_alf_classify_40x44_8_avx2 : 3302.2
vvc_alf_classify_40x44_10_c : 16514.5
vvc_alf_classify_40x44_10_avx2 : 2794.5
vvc_alf_classify_40x48_8_c : 26976.5
vvc_alf_classify_40x48_8_avx2 : 9696.5
vvc_alf_classify_40x48_10_c : 17966.7
vvc_alf_classify_40x48_10_avx2 : 3013.0
vvc_alf_classify_40x52_8_c : 19828.2
vvc_alf_classify_40x52_8_avx2 : 3834.0
vvc_alf_classify_40x52_10_c : 19325.7
vvc_alf_classify_40x52_10_avx2 : 3338.5
vvc_alf_classify_40x56_8_c : 21271.5
vvc_alf_classify_40x56_8_avx2 : 4021.7
vvc_alf_classify_40x56_10_c : 21445.0
vvc_alf_classify_40x56_10_avx2 : 3406.7
vvc_alf_classify_40x60_8_c : 22737.7
vvc_alf_classify_40x60_8_avx2 : 4376.2
vvc_alf_classify_40x60_10_c : 22215.7
vvc_alf_classify_40x60_10_avx2 : 4047.0
vvc_alf_classify_40x64_8_c : 24652.5
vvc_alf_classify_40x64_8_avx2 : 4566.2
vvc_alf_classify_40x64_10_c : 23704.2
vvc_alf_classify_40x64_10_avx2 : 3869.0
vvc_alf_classify_40x68_8_c : 26322.2
vvc_alf_classify_40x68_8_avx2 : 4939.0
vvc_alf_classify_40x68_10_c : 25080.5
vvc_alf_classify_40x68_10_avx2 : 4190.7
vvc_alf_classify_40x72_8_c : 27159.7
vvc_alf_classify_40x72_8_avx2 : 5121.5
vvc_alf_classify_40x72_10_c : 26473.7
vvc_alf_classify_40x72_10_avx2 : 4589.0
vvc_alf_classify_40x76_8_c : 28565.5
vvc_alf_classify_40x76_8_avx2 : 6863.5
vvc_alf_classify_40x76_10_c : 27863.5
vvc_alf_classify_40x76_10_avx2 : 4644.2
vvc_alf_classify_40x80_8_c : 30042.5
vvc_alf_classify_40x80_8_avx2 : 5689.0
vvc_alf_classify_40x80_10_c : 29329.7
vvc_alf_classify_40x80_10_avx2 : 4794.0
vvc_alf_classify_40x84_8_c : 31592.0
vvc_alf_classify_40x84_8_avx2 : 5999.0
vvc_alf_classify_40x84_10_c : 32422.5
vvc_alf_classify_40x84_10_avx2 : 5090.5
vvc_alf_classify_40x88_8_c : 32943.7
vvc_alf_classify_40x88_8_avx2 : 6529.7
vvc_alf_classify_40x88_10_c : 33863.0
vvc_alf_classify_40x88_10_avx2 : 5238.5
vvc_alf_classify_40x92_8_c : 34382.5
vvc_alf_classify_40x92_8_avx2 : 6716.7
vvc_alf_classify_40x92_10_c : 33669.7
vvc_alf_classify_40x92_10_avx2 : 5557.2
vvc_alf_classify_40x96_8_c : 35925.2
vvc_alf_classify_40x96_8_avx2 : 6719.0
vvc_alf_classify_40x96_10_c : 36098.0
vvc_alf_classify_40x96_10_avx2 : 5710.7
vvc_alf_classify_40x100_8_c : 37341.0
vvc_alf_classify_40x100_8_avx2 : 7070.5
vvc_alf_classify_40x100_10_c : 37602.0
vvc_alf_classify_40x100_10_avx2 : 6039.0
vvc_alf_classify_40x104_8_c : 38805.7
vvc_alf_classify_40x104_8_avx2 : 7258.7
vvc_alf_classify_40x104_10_c : 39000.5
vvc_alf_classify_40x104_10_avx2 : 6165.7
vvc_alf_classify_40x108_8_c : 40170.7
vvc_alf_classify_40x108_8_avx2 : 7649.0
vvc_alf_classify_40x108_10_c : 39418.0
vvc_alf_classify_40x108_10_avx2 : 6523.0
vvc_alf_classify_40x112_8_c : 41707.0
vvc_alf_classify_40x112_8_avx2 : 7844.7
vvc_alf_classify_40x112_10_c : 92090.5
vvc_alf_classify_40x112_10_avx2 : 6701.2
vvc_alf_classify_40x116_8_c : 48145.5
vvc_alf_classify_40x116_8_avx2 : 8430.5
vvc_alf_classify_40x116_10_c : 43498.7
vvc_alf_classify_40x116_10_avx2 : 7109.0
vvc_alf_classify_40x120_8_c : 44681.2
vvc_alf_classify_40x120_8_avx2 : 8687.5
vvc_alf_classify_40x120_10_c : 69010.7
vvc_alf_classify_40x120_10_avx2 : 7246.2
vvc_alf_classify_40x124_8_c : 95709.0
vvc_alf_classify_40x124_8_avx2 : 8795.7
vvc_alf_classify_40x124_10_c : 46376.5
vvc_alf_classify_40x124_10_avx2 : 7640.7
vvc_alf_classify_40x128_8_c : 47594.5
vvc_alf_classify_40x128_8_avx2 : 9196.5
vvc_alf_classify_40x128_10_c : 46446.2
vvc_alf_classify_40x128_10_avx2 : 7808.5
vvc_alf_classify_44x4_8_c : 4501.5
vvc_alf_classify_44x4_8_avx2 : 556.0
vvc_alf_classify_44x4_10_c : 2544.2
vvc_alf_classify_44x4_10_avx2 : 497.2
vvc_alf_classify_44x8_8_c : 4198.2
vvc_alf_classify_44x8_8_avx2 : 758.5
vvc_alf_classify_44x8_10_c : 4091.0
vvc_alf_classify_44x8_10_avx2 : 637.2
vvc_alf_classify_44x12_8_c : 6121.0
vvc_alf_classify_44x12_8_avx2 : 1093.0
vvc_alf_classify_44x12_10_c : 5634.0
vvc_alf_classify_44x12_10_avx2 : 976.7
vvc_alf_classify_44x16_8_c : 7561.2
vvc_alf_classify_44x16_8_avx2 : 1278.2
vvc_alf_classify_44x16_10_c : 7175.5
vvc_alf_classify_44x16_10_avx2 : 1084.0
vvc_alf_classify_44x20_8_c : 17157.0
vvc_alf_classify_44x20_8_avx2 : 1632.0
vvc_alf_classify_44x20_10_c : 8728.0
vvc_alf_classify_44x20_10_avx2 : 9631.2
vvc_alf_classify_44x24_8_c : 10555.5
vvc_alf_classify_44x24_8_avx2 : 1807.0
vvc_alf_classify_44x24_10_c : 10261.2
vvc_alf_classify_44x24_10_avx2 : 1533.0
vvc_alf_classify_44x28_8_c : 12429.5
vvc_alf_classify_44x28_8_avx2 : 2239.0
vvc_alf_classify_44x28_10_c : 12145.0
vvc_alf_classify_44x28_10_avx2 : 1972.7
vvc_alf_classify_44x32_8_c : 13739.7
vvc_alf_classify_44x32_8_avx2 : 2425.7
vvc_alf_classify_44x32_10_c : 13375.7
vvc_alf_classify_44x32_10_avx2 : 2103.0
vvc_alf_classify_44x36_8_c : 15328.2
vvc_alf_classify_44x36_8_avx2 : 2781.2
vvc_alf_classify_44x36_10_c : 14929.7
vvc_alf_classify_44x36_10_avx2 : 2368.5
vvc_alf_classify_44x40_8_c : 16936.0
vvc_alf_classify_44x40_8_avx2 : 3030.5
vvc_alf_classify_44x40_10_c : 16478.0
vvc_alf_classify_44x40_10_avx2 : 2508.5
vvc_alf_classify_44x44_8_c : 18484.2
vvc_alf_classify_44x44_8_avx2 : 3407.7
vvc_alf_classify_44x44_10_c : 18053.7
vvc_alf_classify_44x44_10_avx2 : 2819.0
vvc_alf_classify_44x48_8_c : 20096.5
vvc_alf_classify_44x48_8_avx2 : 5928.0
vvc_alf_classify_44x48_10_c : 19579.0
vvc_alf_classify_44x48_10_avx2 : 2964.2
vvc_alf_classify_44x52_8_c : 21637.2
vvc_alf_classify_44x52_8_avx2 : 3855.5
vvc_alf_classify_44x52_10_c : 21147.0
vvc_alf_classify_44x52_10_avx2 : 3356.7
vvc_alf_classify_44x56_8_c : 23266.5
vvc_alf_classify_44x56_8_avx2 : 4053.7
vvc_alf_classify_44x56_10_c : 22671.5
vvc_alf_classify_44x56_10_avx2 : 3439.5
vvc_alf_classify_44x60_8_c : 24811.0
vvc_alf_classify_44x60_8_avx2 : 4527.0
vvc_alf_classify_44x60_10_c : 24184.7
vvc_alf_classify_44x60_10_avx2 : 3758.0
vvc_alf_classify_44x64_8_c : 26430.0
vvc_alf_classify_44x64_8_avx2 : 4610.7
vvc_alf_classify_44x64_10_c : 25782.0
vvc_alf_classify_44x64_10_avx2 : 3912.2
vvc_alf_classify_44x68_8_c : 29482.5
vvc_alf_classify_44x68_8_avx2 : 4960.7
vvc_alf_classify_44x68_10_c : 27418.7
vvc_alf_classify_44x68_10_avx2 : 4224.2
vvc_alf_classify_44x72_8_c : 29607.5
vvc_alf_classify_44x72_8_avx2 : 5144.0
vvc_alf_classify_44x72_10_c : 28970.7
vvc_alf_classify_44x72_10_avx2 : 4363.5
vvc_alf_classify_44x76_8_c : 31137.7
vvc_alf_classify_44x76_8_avx2 : 7238.0
vvc_alf_classify_44x76_10_c : 31328.7
vvc_alf_classify_44x76_10_avx2 : 4695.0
vvc_alf_classify_44x80_8_c : 32779.7
vvc_alf_classify_44x80_8_avx2 : 5692.7
vvc_alf_classify_44x80_10_c : 32152.7
vvc_alf_classify_44x80_10_avx2 : 4960.0
vvc_alf_classify_44x84_8_c : 34326.5
vvc_alf_classify_44x84_8_avx2 : 6049.5
vvc_alf_classify_44x84_10_c : 35506.7
vvc_alf_classify_44x84_10_avx2 : 5138.7
vvc_alf_classify_44x88_8_c : 35976.7
vvc_alf_classify_44x88_8_avx2 : 6567.7
vvc_alf_classify_44x88_10_c : 35217.2
vvc_alf_classify_44x88_10_avx2 : 5289.2
vvc_alf_classify_44x92_8_c : 38601.0
vvc_alf_classify_44x92_8_avx2 : 6751.0
vvc_alf_classify_44x92_10_c : 36839.7
vvc_alf_classify_44x92_10_avx2 : 5606.5
vvc_alf_classify_44x96_8_c : 52745.5
vvc_alf_classify_44x96_8_avx2 : 6772.5
vvc_alf_classify_44x96_10_c : 71567.2
vvc_alf_classify_44x96_10_avx2 : 5907.2
vvc_alf_classify_44x100_8_c : 41777.5
vvc_alf_classify_44x100_8_avx2 : 7133.0
vvc_alf_classify_44x100_10_c : 41089.0
vvc_alf_classify_44x100_10_avx2 : 6064.5
vvc_alf_classify_44x104_8_c : 42395.0
vvc_alf_classify_44x104_8_avx2 : 7311.7
vvc_alf_classify_44x104_10_c : 77076.5
vvc_alf_classify_44x104_10_avx2 : 6368.2
vvc_alf_classify_44x108_8_c : 43981.2
vvc_alf_classify_44x108_8_avx2 : 7697.5
vvc_alf_classify_44x108_10_c : 43128.0
vvc_alf_classify_44x108_10_avx2 : 6578.2
vvc_alf_classify_44x112_8_c : 45534.5
vvc_alf_classify_44x112_8_avx2 : 7888.0
vvc_alf_classify_44x112_10_c : 45932.7
vvc_alf_classify_44x112_10_avx2 : 6765.2
vvc_alf_classify_44x116_8_c : 47275.0
vvc_alf_classify_44x116_8_avx2 : 8303.5
vvc_alf_classify_44x116_10_c : 47532.2
vvc_alf_classify_44x116_10_avx2 : 7132.2
vvc_alf_classify_44x120_8_c : 48868.7
vvc_alf_classify_44x120_8_avx2 : 8948.5
vvc_alf_classify_44x120_10_c : 47850.0
vvc_alf_classify_44x120_10_avx2 : 7306.5
vvc_alf_classify_44x124_8_c : 53115.5
vvc_alf_classify_44x124_8_avx2 : 8924.0
vvc_alf_classify_44x124_10_c : 49986.2
vvc_alf_classify_44x124_10_avx2 : 7671.5
vvc_alf_classify_44x128_8_c : 52051.5
vvc_alf_classify_44x128_8_avx2 : 9042.2
vvc_alf_classify_44x128_10_c : 51696.0
vvc_alf_classify_44x128_10_avx2 : 17807.2
vvc_alf_classify_48x4_8_c : 3143.5
vvc_alf_classify_48x4_8_avx2 : 703.2
vvc_alf_classify_48x4_10_c : 2737.7
vvc_alf_classify_48x4_10_avx2 : 586.5
vvc_alf_classify_48x8_8_c : 4549.0
vvc_alf_classify_48x8_8_avx2 : 937.2
vvc_alf_classify_48x8_10_c : 4553.7
vvc_alf_classify_48x8_10_avx2 : 769.0
vvc_alf_classify_48x12_8_c : 6429.2
vvc_alf_classify_48x12_8_avx2 : 1349.0
vvc_alf_classify_48x12_10_c : 6273.2
vvc_alf_classify_48x12_10_avx2 : 1172.5
vvc_alf_classify_48x16_8_c : 8193.0
vvc_alf_classify_48x16_8_avx2 : 1585.2
vvc_alf_classify_48x16_10_c : 7807.0
vvc_alf_classify_48x16_10_avx2 : 1331.2
vvc_alf_classify_48x20_8_c : 10251.0
vvc_alf_classify_48x20_8_avx2 : 2003.5
vvc_alf_classify_48x20_10_c : 9447.5
vvc_alf_classify_48x20_10_avx2 : 9912.5
vvc_alf_classify_48x24_8_c : 11419.5
vvc_alf_classify_48x24_8_avx2 : 2235.2
vvc_alf_classify_48x24_10_c : 11424.2
vvc_alf_classify_48x24_10_avx2 : 1866.5
vvc_alf_classify_48x28_8_c : 13205.7
vvc_alf_classify_48x28_8_avx2 : 2642.7
vvc_alf_classify_48x28_10_c : 12837.2
vvc_alf_classify_48x28_10_avx2 : 2232.2
vvc_alf_classify_48x32_8_c : 26485.7
vvc_alf_classify_48x32_8_avx2 : 2895.0
vvc_alf_classify_48x32_10_c : 14525.2
vvc_alf_classify_48x32_10_avx2 : 2473.5
vvc_alf_classify_48x36_8_c : 16583.0
vvc_alf_classify_48x36_8_avx2 : 3313.5
vvc_alf_classify_48x36_10_c : 23623.7
vvc_alf_classify_48x36_10_avx2 : 3972.5
vvc_alf_classify_48x40_8_c : 18331.5
vvc_alf_classify_48x40_8_avx2 : 3554.2
vvc_alf_classify_48x40_10_c : 17877.2
vvc_alf_classify_48x40_10_avx2 : 3018.2
vvc_alf_classify_48x44_8_c : 20040.5
vvc_alf_classify_48x44_8_avx2 : 3972.5
vvc_alf_classify_48x44_10_c : 19598.2
vvc_alf_classify_48x44_10_avx2 : 3299.5
vvc_alf_classify_48x48_8_c : 21781.0
vvc_alf_classify_48x48_8_avx2 : 7116.0
vvc_alf_classify_48x48_10_c : 21293.2
vvc_alf_classify_48x48_10_avx2 : 3556.2
vvc_alf_classify_48x52_8_c : 23545.7
vvc_alf_classify_48x52_8_avx2 : 4627.2
vvc_alf_classify_48x52_10_c : 22884.5
vvc_alf_classify_48x52_10_avx2 : 3838.5
vvc_alf_classify_48x56_8_c : 25240.7
vvc_alf_classify_48x56_8_avx2 : 4890.7
vvc_alf_classify_48x56_10_c : 24615.2
vvc_alf_classify_48x56_10_avx2 : 4055.2
vvc_alf_classify_48x60_8_c : 26960.2
vvc_alf_classify_48x60_8_avx2 : 5295.0
vvc_alf_classify_48x60_10_c : 26313.7
vvc_alf_classify_48x60_10_avx2 : 4404.5
vvc_alf_classify_48x64_8_c : 28666.0
vvc_alf_classify_48x64_8_avx2 : 5558.7
vvc_alf_classify_48x64_10_c : 27977.2
vvc_alf_classify_48x64_10_avx2 : 4566.7
vvc_alf_classify_48x68_8_c : 30411.0
vvc_alf_classify_48x68_8_avx2 : 5934.7
vvc_alf_classify_48x68_10_c : 29682.7
vvc_alf_classify_48x68_10_avx2 : 4932.5
vvc_alf_classify_48x72_8_c : 40354.7
vvc_alf_classify_48x72_8_avx2 : 6214.7
vvc_alf_classify_48x72_10_c : 31432.7
vvc_alf_classify_48x72_10_avx2 : 5120.7
vvc_alf_classify_48x76_8_c : 33815.5
vvc_alf_classify_48x76_8_avx2 : 6785.2
vvc_alf_classify_48x76_10_c : 33106.7
vvc_alf_classify_48x76_10_avx2 : 5484.2
vvc_alf_classify_48x80_8_c : 35575.2
vvc_alf_classify_48x80_8_avx2 : 6821.0
vvc_alf_classify_48x80_10_c : 34751.0
vvc_alf_classify_48x80_10_avx2 : 5822.0
vvc_alf_classify_48x84_8_c : 37262.0
vvc_alf_classify_48x84_8_avx2 : 7482.2
vvc_alf_classify_48x84_10_c : 52635.5
vvc_alf_classify_48x84_10_avx2 : 6094.0
vvc_alf_classify_48x88_8_c : 39039.5
vvc_alf_classify_48x88_8_avx2 : 7874.7
vvc_alf_classify_48x88_10_c : 39220.5
vvc_alf_classify_48x88_10_avx2 : 6298.2
vvc_alf_classify_48x92_8_c : 40761.2
vvc_alf_classify_48x92_8_avx2 : 7922.5
vvc_alf_classify_48x92_10_c : 41033.7
vvc_alf_classify_48x92_10_avx2 : 6712.2
vvc_alf_classify_48x96_8_c : 42540.2
vvc_alf_classify_48x96_8_avx2 : 8176.2
vvc_alf_classify_48x96_10_c : 52250.7
vvc_alf_classify_48x96_10_avx2 : 14817.2
vvc_alf_classify_48x100_8_c : 44212.7
vvc_alf_classify_48x100_8_avx2 : 9316.2
vvc_alf_classify_48x100_10_c : 44433.7
vvc_alf_classify_48x100_10_avx2 : 7335.5
vvc_alf_classify_48x104_8_c : 45995.7
vvc_alf_classify_48x104_8_avx2 : 9066.5
vvc_alf_classify_48x104_10_c : 44958.2
vvc_alf_classify_48x104_10_avx2 : 7500.7
vvc_alf_classify_48x108_8_c : 47680.0
vvc_alf_classify_48x108_8_avx2 : 9231.5
vvc_alf_classify_48x108_10_c : 47952.0
vvc_alf_classify_48x108_10_avx2 : 7934.2
vvc_alf_classify_48x112_8_c : 49484.5
vvc_alf_classify_48x112_8_avx2 : 9456.2
vvc_alf_classify_48x112_10_c : 49713.5
vvc_alf_classify_48x112_10_avx2 : 8127.2
vvc_alf_classify_48x116_8_c : 51270.2
vvc_alf_classify_48x116_8_avx2 : 9944.2
vvc_alf_classify_48x116_10_c : 51405.7
vvc_alf_classify_48x116_10_avx2 : 8536.0
vvc_alf_classify_48x120_8_c : 52977.7
vvc_alf_classify_48x120_8_avx2 : 10223.2
vvc_alf_classify_48x120_10_c : 51797.5
vvc_alf_classify_48x120_10_avx2 : 8768.2
vvc_alf_classify_48x124_8_c : 56032.0
vvc_alf_classify_48x124_8_avx2 : 10860.5
vvc_alf_classify_48x124_10_c : 53594.5
vvc_alf_classify_48x124_10_avx2 : 9158.5
vvc_alf_classify_48x128_8_c : 56197.7
vvc_alf_classify_48x128_8_avx2 : 10849.7
vvc_alf_classify_48x128_10_c : 55097.7
vvc_alf_classify_48x128_10_avx2 : 9347.0
vvc_alf_classify_52x4_8_c : 4955.5
vvc_alf_classify_52x4_8_avx2 : 742.2
vvc_alf_classify_52x4_10_c : 2937.5
vvc_alf_classify_52x4_10_avx2 : 640.2
vvc_alf_classify_52x8_8_c : 5191.5
vvc_alf_classify_52x8_8_avx2 : 989.5
vvc_alf_classify_52x8_10_c : 4778.2
vvc_alf_classify_52x8_10_avx2 : 830.7
vvc_alf_classify_52x12_8_c : 6754.0
vvc_alf_classify_52x12_8_avx2 : 1461.5
vvc_alf_classify_52x12_10_c : 6577.5
vvc_alf_classify_52x12_10_avx2 : 1283.5
vvc_alf_classify_52x16_8_c : 19243.7
vvc_alf_classify_52x16_8_avx2 : 1700.5
vvc_alf_classify_52x16_10_c : 8391.5
vvc_alf_classify_52x16_10_avx2 : 1446.5
vvc_alf_classify_52x20_8_c : 10467.0
vvc_alf_classify_52x20_8_avx2 : 2224.2
vvc_alf_classify_52x20_10_c : 10221.2
vvc_alf_classify_52x20_10_avx2 : 1905.5
vvc_alf_classify_52x24_8_c : 12339.0
vvc_alf_classify_52x24_8_avx2 : 2491.2
vvc_alf_classify_52x24_10_c : 12622.7
vvc_alf_classify_52x24_10_avx2 : 2095.2
vvc_alf_classify_52x28_8_c : 14197.0
vvc_alf_classify_52x28_8_avx2 : 2936.0
vvc_alf_classify_52x28_10_c : 13860.5
vvc_alf_classify_52x28_10_avx2 : 2513.0
vvc_alf_classify_52x32_8_c : 31290.5
vvc_alf_classify_52x32_8_avx2 : 3186.7
vvc_alf_classify_52x32_10_c : 23000.0
vvc_alf_classify_52x32_10_avx2 : 2685.0
vvc_alf_classify_52x36_8_c : 17915.2
vvc_alf_classify_52x36_8_avx2 : 3651.0
vvc_alf_classify_52x36_10_c : 17448.2
vvc_alf_classify_52x36_10_avx2 : 4415.5
vvc_alf_classify_52x40_8_c : 19768.0
vvc_alf_classify_52x40_8_avx2 : 3899.7
vvc_alf_classify_52x40_10_c : 19243.0
vvc_alf_classify_52x40_10_avx2 : 3287.5
vvc_alf_classify_52x44_8_c : 21639.5
vvc_alf_classify_52x44_8_avx2 : 4371.0
vvc_alf_classify_52x44_10_c : 21100.2
vvc_alf_classify_52x44_10_avx2 : 3687.5
vvc_alf_classify_52x48_8_c : 23510.7
vvc_alf_classify_52x48_8_avx2 : 4614.5
vvc_alf_classify_52x48_10_c : 22895.5
vvc_alf_classify_52x48_10_avx2 : 3876.5
vvc_alf_classify_52x52_8_c : 25365.7
vvc_alf_classify_52x52_8_avx2 : 13366.7
vvc_alf_classify_52x52_10_c : 24681.5
vvc_alf_classify_52x52_10_avx2 : 4296.5
vvc_alf_classify_52x56_8_c : 27864.5
vvc_alf_classify_52x56_8_avx2 : 5337.5
vvc_alf_classify_52x56_10_c : 26472.5
vvc_alf_classify_52x56_10_avx2 : 4518.5
vvc_alf_classify_52x60_8_c : 29038.5
vvc_alf_classify_52x60_8_avx2 : 5818.7
vvc_alf_classify_52x60_10_c : 28356.2
vvc_alf_classify_52x60_10_avx2 : 4917.5
vvc_alf_classify_52x64_8_c : 30848.7
vvc_alf_classify_52x64_8_avx2 : 6059.7
vvc_alf_classify_52x64_10_c : 30126.5
vvc_alf_classify_52x64_10_avx2 : 5084.5
vvc_alf_classify_52x68_8_c : 32760.5
vvc_alf_classify_52x68_8_avx2 : 6517.0
vvc_alf_classify_52x68_10_c : 32049.2
vvc_alf_classify_52x68_10_avx2 : 5516.2
vvc_alf_classify_52x72_8_c : 34608.0
vvc_alf_classify_52x72_8_avx2 : 14938.0
vvc_alf_classify_52x72_10_c : 33837.2
vvc_alf_classify_52x72_10_avx2 : 5722.5
vvc_alf_classify_52x76_8_c : 36504.7
vvc_alf_classify_52x76_8_avx2 : 7409.2
vvc_alf_classify_52x76_10_c : 35682.5
vvc_alf_classify_52x76_10_avx2 : 6141.0
vvc_alf_classify_52x80_8_c : 39394.0
vvc_alf_classify_52x80_8_avx2 : 7482.2
vvc_alf_classify_52x80_10_c : 37561.5
vvc_alf_classify_52x80_10_avx2 : 6672.7
vvc_alf_classify_52x84_8_c : 40214.0
vvc_alf_classify_52x84_8_avx2 : 8228.7
vvc_alf_classify_52x84_10_c : 39395.5
vvc_alf_classify_52x84_10_avx2 : 6864.2
vvc_alf_classify_52x88_8_c : 43282.7
vvc_alf_classify_52x88_8_avx2 : 8458.5
vvc_alf_classify_52x88_10_c : 41324.2
vvc_alf_classify_52x88_10_avx2 : 7058.5
vvc_alf_classify_52x92_8_c : 43975.2
vvc_alf_classify_52x92_8_avx2 : 8942.5
vvc_alf_classify_52x92_10_c : 43035.5
vvc_alf_classify_52x92_10_avx2 : 7503.7
vvc_alf_classify_52x96_8_c : 95769.7
vvc_alf_classify_52x96_8_avx2 : 8966.5
vvc_alf_classify_52x96_10_c : 46109.2
vvc_alf_classify_52x96_10_avx2 : 7730.2
vvc_alf_classify_52x100_8_c : 47693.5
vvc_alf_classify_52x100_8_avx2 : 9698.7
vvc_alf_classify_52x100_10_c : 46808.7
vvc_alf_classify_52x100_10_avx2 : 8168.2
vvc_alf_classify_52x104_8_c : 49524.0
vvc_alf_classify_52x104_8_avx2 : 9676.0
vvc_alf_classify_52x104_10_c : 48575.2
vvc_alf_classify_52x104_10_avx2 : 8846.5
vvc_alf_classify_52x108_8_c : 51498.7
vvc_alf_classify_52x108_8_avx2 : 10391.7
vvc_alf_classify_52x108_10_c : 51799.0
vvc_alf_classify_52x108_10_avx2 : 8842.0
vvc_alf_classify_52x112_8_c : 53450.7
vvc_alf_classify_52x112_8_avx2 : 10373.7
vvc_alf_classify_52x112_10_c : 55156.7
vvc_alf_classify_52x112_10_avx2 : 9064.5
vvc_alf_classify_52x116_8_c : 55332.5
vvc_alf_classify_52x116_8_avx2 : 10907.7
vvc_alf_classify_52x116_10_c : 55580.0
vvc_alf_classify_52x116_10_avx2 : 9549.5
vvc_alf_classify_52x120_8_c : 57152.5
vvc_alf_classify_52x120_8_avx2 : 11123.0
vvc_alf_classify_52x120_10_c : 55924.5
vvc_alf_classify_52x120_10_avx2 : 9758.0
vvc_alf_classify_52x124_8_c : 60613.7
vvc_alf_classify_52x124_8_avx2 : 11901.5
vvc_alf_classify_52x124_10_c : 57656.5
vvc_alf_classify_52x124_10_avx2 : 10189.7
vvc_alf_classify_52x128_8_c : 60976.5
vvc_alf_classify_52x128_8_avx2 : 11867.7
vvc_alf_classify_52x128_10_c : 59470.0
vvc_alf_classify_52x128_10_avx2 : 10417.7
vvc_alf_classify_56x4_8_c : 6350.0
vvc_alf_classify_56x4_8_avx2 : 751.7
vvc_alf_classify_56x4_10_c : 3149.7
vvc_alf_classify_56x4_10_avx2 : 641.0
vvc_alf_classify_56x8_8_c : 5411.2
vvc_alf_classify_56x8_8_avx2 : 994.5
vvc_alf_classify_56x8_10_c : 5112.7
vvc_alf_classify_56x8_10_avx2 : 859.7
vvc_alf_classify_56x12_8_c : 7241.7
vvc_alf_classify_56x12_8_avx2 : 1464.5
vvc_alf_classify_56x12_10_c : 7075.7
vvc_alf_classify_56x12_10_avx2 : 1288.7
vvc_alf_classify_56x16_8_c : 9484.0
vvc_alf_classify_56x16_8_avx2 : 1701.2
vvc_alf_classify_56x16_10_c : 8985.0
vvc_alf_classify_56x16_10_avx2 : 1440.0
vvc_alf_classify_56x20_8_c : 11515.5
vvc_alf_classify_56x20_8_avx2 : 2222.7
vvc_alf_classify_56x20_10_c : 11241.0
vvc_alf_classify_56x20_10_avx2 : 1915.7
vvc_alf_classify_56x24_8_c : 13215.5
vvc_alf_classify_56x24_8_avx2 : 2481.0
vvc_alf_classify_56x24_10_c : 13210.2
vvc_alf_classify_56x24_10_avx2 : 2099.7
vvc_alf_classify_56x28_8_c : 15271.0
vvc_alf_classify_56x28_8_avx2 : 2942.0
vvc_alf_classify_56x28_10_c : 14850.7
vvc_alf_classify_56x28_10_avx2 : 2531.5
vvc_alf_classify_56x32_8_c : 17194.2
vvc_alf_classify_56x32_8_avx2 : 3181.7
vvc_alf_classify_56x32_10_c : 16787.0
vvc_alf_classify_56x32_10_avx2 : 2696.2
vvc_alf_classify_56x36_8_c : 19196.2
vvc_alf_classify_56x36_8_avx2 : 3665.0
vvc_alf_classify_56x36_10_c : 18702.2
vvc_alf_classify_56x36_10_avx2 : 3124.5
vvc_alf_classify_56x40_8_c : 21149.5
vvc_alf_classify_56x40_8_avx2 : 3906.2
vvc_alf_classify_56x40_10_c : 20653.5
vvc_alf_classify_56x40_10_avx2 : 3295.0
vvc_alf_classify_56x44_8_c : 23154.0
vvc_alf_classify_56x44_8_avx2 : 4381.5
vvc_alf_classify_56x44_10_c : 22548.5
vvc_alf_classify_56x44_10_avx2 : 3709.7
vvc_alf_classify_56x48_8_c : 25235.5
vvc_alf_classify_56x48_8_avx2 : 4627.2
vvc_alf_classify_56x48_10_c : 24548.7
vvc_alf_classify_56x48_10_avx2 : 3898.0
vvc_alf_classify_56x52_8_c : 27202.7
vvc_alf_classify_56x52_8_avx2 : 5094.0
vvc_alf_classify_56x52_10_c : 36011.7
vvc_alf_classify_56x52_10_avx2 : 4326.2
vvc_alf_classify_56x56_8_c : 29131.7
vvc_alf_classify_56x56_8_avx2 : 5365.0
vvc_alf_classify_56x56_10_c : 28410.7
vvc_alf_classify_56x56_10_avx2 : 4520.0
vvc_alf_classify_56x60_8_c : 31166.7
vvc_alf_classify_56x60_8_avx2 : 5828.2
vvc_alf_classify_56x60_10_c : 30405.7
vvc_alf_classify_56x60_10_avx2 : 4928.0
vvc_alf_classify_56x64_8_c : 33207.2
vvc_alf_classify_56x64_8_avx2 : 6102.2
vvc_alf_classify_56x64_10_c : 32368.0
vvc_alf_classify_56x64_10_avx2 : 5235.2
vvc_alf_classify_56x68_8_c : 35095.0
vvc_alf_classify_56x68_8_avx2 : 6556.5
vvc_alf_classify_56x68_10_c : 34307.7
vvc_alf_classify_56x68_10_avx2 : 5536.5
vvc_alf_classify_56x72_8_c : 37044.0
vvc_alf_classify_56x72_8_avx2 : 6794.7
vvc_alf_classify_56x72_10_c : 36262.7
vvc_alf_classify_56x72_10_avx2 : 5735.2
vvc_alf_classify_56x76_8_c : 39156.5
vvc_alf_classify_56x76_8_avx2 : 7480.0
vvc_alf_classify_56x76_10_c : 64912.7
vvc_alf_classify_56x76_10_avx2 : 6179.0
vvc_alf_classify_56x80_8_c : 41115.7
vvc_alf_classify_56x80_8_avx2 : 7537.5
vvc_alf_classify_56x80_10_c : 40226.5
vvc_alf_classify_56x80_10_avx2 : 6361.5
vvc_alf_classify_56x84_8_c : 43101.7
vvc_alf_classify_56x84_8_avx2 : 8252.2
vvc_alf_classify_56x84_10_c : 44485.2
vvc_alf_classify_56x84_10_avx2 : 6888.7
vvc_alf_classify_56x88_8_c : 45161.7
vvc_alf_classify_56x88_8_avx2 : 8501.7
vvc_alf_classify_56x88_10_c : 45322.7
vvc_alf_classify_56x88_10_avx2 : 7070.5
vvc_alf_classify_56x92_8_c : 47111.2
vvc_alf_classify_56x92_8_avx2 : 8978.7
vvc_alf_classify_56x92_10_c : 46129.0
vvc_alf_classify_56x92_10_avx2 : 7551.5
vvc_ -
Writing A Dreamcast Media Player
6 janvier 2017, par Multimedia Mike — Sega DreamcastI know I’m not the only person to have the idea to port a media player to the Sega Dreamcast video game console. But I did make significant progress on an implementation. I’m a little surprised to realize that I haven’t written anything about it on this blog yet, given my propensity for publishing my programming misadventures.
This old effort had been on my mind lately due to its architectural similarities to something else I was recently brainstorming.
Early Days
Porting a multimedia player was one of the earliest endeavors that I embarked upon in the multimedia domain. It’s a bit fuzzy for me now, but I’m pretty sure that my first exposure to the MPlayer project in 2001 arose from looking for a multimedia player to port. I fed it through the Dreamcast development toolchain but encountered roadblocks pretty quickly. However, this got me looking at the MPlayer source code and made me wonder how I could contribute, which is how I finally broke into practical open source multimedia hacking after studying the concepts and technology for more than a year at that point.Eventually, I jumped over to the xine project. After hacking on that for awhile, I remembered my DC media player efforts and endeavored to compile xine to the console. The first attempt was to simply compile the codebase using the Dreamcast hobbyist community’s toolchain. This is when I came to fear the multithreaded snake pit in xine’s core. Again, my memories are hazy on the specifics, but I remember the engine having a bunch of threading hacks with comments along the lines of “this code deadlocks sometimes, so on shutdown, monitor this lock and deliberately break it if it has been more than 3 seconds”.
Something Workable
Eventually, I settled on a combination of FFmpeg’s libavcodec library for audio and video decoders, xine’s demuxer library, and xine’s input API, combined with my own engine code to tie it all together along with video and output drivers provided by the KallistiOS hobbyist OS for Dreamcast. Here is a simple diagram of the data movement through this player :
Details and Challenges
This is a rare occasion when I actually got to write the core of a media player engine. I made some mistakes.xine’s internal clock ran at 90000 Hz. At least, its internal timestamps were all in reference to a 90 kHz clock. I got this brilliant idea to trigger timer interrupts at 6000 Hz to drive the engine. Whatever the timer facilities on the Dreamcast, I found that 6 kHz was the greatest common divisor with 90 kHz. This means that if I could have found an even higher GCD frequency, I would have used that instead.
So the idea was that, for a 30 fps video, the engine would know to render a frame on every 200th timer interrupt. I eventually realized that servicing 6000 timer interrupts every second would incur a ridiculous amount of overhead. After that, my engine’s philosophy was to set a timer to fire for the next frame while beginning to process the current frame. I.e., when rendering a frame, set a timer to call back in 1/30th of a second. That worked a lot better.
As I was still keen on 8-bit paletted image codecs at the time (especially since they were simple and small for bootstrapping this project), I got to use output palette images directly thanks to the Dreamcast’s paletted textures. So that was exciting. The engine didn’t need to convert the paletted images to a different colorspace before rendering. However, I seem to recall that the Dreamcast’s PowerVR graphics hardware required that 8-bit textures be twiddled/swizzled. Thus, it was still required to manipulate the 8-bit image before rendering.
I made good progress on this player concept. However, a huge blocker for me was that I didn’t know how to make a proper user interface for the media player. Obviously, programming the Dreamcast occurred at a very low level (at least with the approach I was using), so there were no UI widgets easily available.
This was circa 2003. I assumed there must have been some embedded UI widget libraries with amenable open source licenses that I could leverage. I remember searching and checking out a library named libSTK. I think STK stood for “set-top toolkit” and was positioned specifically for doing things like media player UIs on low-spec embedded computing devices. The domain hosting the project is no longer useful but this appears to be a backup of the core code.
It sounded promising, but the libSTK developers had a different definition of “low-spec embedded” device than I did. I seem to recall that they were targeting something along with likes of a Pentium III clocked at 800 MHz with 128 MB RAM. The Dreamcast, by contrast, has a 200 MHz SH-4 CPU and 16 MB RAM. LibSTK was also authored in C++ and leveraged the Boost library (my first exposure to that code), and this all had the effect of making binaries quite large while I was trying to keep the player in lean C.
Regrettably, I never made any serious progress on a proper user interface. I think that’s when the player effort ran out of steam.
The Code
So, that’s another project that I never got around to finishing or publishing. I was able to find the source code so I decided to toss it up on github, along with 2 old architecture outlines that I was able to dig up. It looks like I was starting small, just porting over a few of the demuxers and decoders that I knew well.I’m wondering if it would still be as straightforward to separate out such components now, more than 13 years later ?
The post Writing A Dreamcast Media Player first appeared on Breaking Eggs And Making Omelettes.