Recherche avancée

Médias (0)

Mot : - Tags -/utilisateurs

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (47)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (2746)

  • avutil/avstring : Use proper types

    6 mars 2024, par Andreas Rheinhardt
    avutil/avstring : Use proper types
    

    Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@outlook.com>

    • [DH] libavutil/avstring.c
  • Why does the frame time increase over time when decoding video using OpenCV ?

    21 février 2024, par ZeunO8

    I have set up OpenCV in my project. I added the OpenCV github repo as a submodule in my project and included it in my cmake dependencies file like so :

    &#xA;

     set(WITH_FFMPEG ON)&#xA; set(VIDEOIO_PLUGIN_LIST "ffmpeg")&#xA; set(BUILD_PERF_TESTS OFF)&#xA; set(BUILD_TESTS OFF)&#xA; set(INSTALL_TESTS OFF)&#xA; add_subdirectory(${COJE_SRC_DIR}/vendor/opencv build/build_opencv)&#xA;

    &#xA;

    I then set up a Video struct inheriting from IEntity (to get it working with my render drivers draw system) and that looks like :

    &#xA;

    #pragma once&#xA;#include <opencv2></opencv2>opencv.hpp>&#xA;#include <coje></coje>interfaces/IEntity.hpp>&#xA;#include <coje></coje>enums/EFileLocation.hpp>&#xA;#include <coje></coje>String.hpp>&#xA;#include <coje></coje>graphics/Texture.hpp>&#xA;&#xA;namespace coje::entitys&#xA;{&#xA; struct Video : IEntity&#xA; {&#xA;  String filePath;&#xA;  EFileLocation fileLocation;&#xA;  String tempname;&#xA;  glm::vec2 size;&#xA;  UniquePointer videoCapturePointer;&#xA;  cv::Mat frame;&#xA;  cv::Mat frameConverted;&#xA;  Floating64 fps = 0;&#xA;  Floating64 frameCount = 0;&#xA;  Integer64 currentFrameIndex = -1;&#xA;  Video(const String &amp;filePath, const EFileLocation &amp;fileLocation, const glm::vec2 &amp;size, const glm::vec3 &amp;position, const glm::quat &amp;rotation);&#xA;  ~Video();&#xA;  void updateTextureWithFrame(const uInteger64 &amp;frameIndex, UniquePointer<texture> &amp;texturePointer);&#xA;  const Boolean resize(const glm::vec2 &amp;size);&#xA;  Boolean update(const uInteger64 &amp;elapsedTimeMs);&#xA; };&#xA;}&#xA;</texture>

    &#xA;

    The source for Video.cpp is :

    &#xA;

    #include <coje></coje>bullet.hpp>&#xA;#include <coje></coje>Common.hpp>&#xA;#include <coje></coje>Entitys/Video.hpp>&#xA;#include <coje></coje>Logger.hpp>&#xA;#include <coje></coje>Timer.hpp>&#xA;#include <cstdio>&#xA;using namespace coje::entitys;&#xA;/*&#xA; */&#xA;Video::Video(const String &amp;filePath, const EFileLocation &amp;fileLocation, const glm::vec2 &amp;size, const glm::vec3 &amp;position, const glm::quat &amp;rotation) : IEntity(EntityType)&#xA;{&#xA; this->position = position;&#xA; this->rotation = rotation;&#xA; File videoFile(filePath, fileLocation, "r");&#xA; auto videoBytes = videoFile.toBytes();&#xA; tempname = std::tmpnam(0);&#xA; {&#xA;  File tempFile(tempname, EFileLocation::Relative, "w");&#xA;  tempFile &amp; videoBytes;&#xA; }&#xA; videoCapturePointer = {ReleaseType::Delete, new cv::VideoCapture(tempname.c_str(), cv::CAP_FFMPEG), 1};&#xA; auto &amp;videoCapture = *videoCapturePointer.pointer;&#xA; if (!videoCapture.isOpened())&#xA; {&#xA;  Logger(LogType::ERROR, "%s\n", "Error opening video stream from memory");&#xA;  return;&#xA; }&#xA; // videoCapture.set(cv::CAP_PROP_BUFFERSIZE, 100);&#xA; uInteger64 bufferSize = videoCapture.get(cv::CAP_PROP_BUFFERSIZE);&#xA; Logger(LogType::INFO, "BufferSize: %llu\n", bufferSize);&#xA; fps = videoCapture.get(cv::CAP_PROP_FPS);&#xA; frameCount = videoCapture.get(cv::CAP_PROP_FRAME_COUNT);&#xA; uInteger64 frameWidth = videoCapture.get(cv::CAP_PROP_FRAME_WIDTH),&#xA;            frameHeight = videoCapture.get(cv::CAP_PROP_FRAME_HEIGHT);&#xA; resize(size);&#xA; textures.push_back({ReleaseType::Delete, new Texture(frameWidth, frameHeight, ETextureFormat::RGB8, ETextureType::UnsignedByte), 1});&#xA; glm::ivec3 *indices = (glm::ivec3 *)(*this).operator()(IEntity::Quanta::Indice, 2);&#xA; indices[0] = {3, 2, 1}; // front&#xA; indices[1] = {1, 0, 3};&#xA; glm::vec2 *uvs = (glm::vec2 *)(*this).operator()<float>(IEntity::Quanta::UV2, 4);&#xA; auto _uvs = Common::getUVs2DQuad();&#xA; for (int index = 0; index &lt; 4; index&#x2B;&#x2B;)&#xA; {&#xA;  uvs[index] = _uvs._data[index];&#xA; }&#xA; TimerFunctions::addFunction({this, &amp;Video::update}, 0, 1000 / fps);&#xA; return;&#xA;};&#xA;/*&#xA; */&#xA;Video::~Video()&#xA;{&#xA; File tempFile(tempname);&#xA; tempFile.remove();&#xA;};&#xA;/*&#xA; */&#xA;void Video::updateTextureWithFrame(const uInteger64 &amp;frameIndex, UniquePointer<texture> &amp;texturePointer)&#xA;{&#xA; auto start = std::chrono::high_resolution_clock::now();&#xA; auto &amp;videoCapture = *videoCapturePointer.pointer;&#xA; videoCapture.set(cv::CAP_PROP_POS_FRAMES, frameIndex);&#xA; Boolean frameGrabSuccess = videoCapture.grab();&#xA; if (!frameGrabSuccess)&#xA; {&#xA;  Logger(LogType::ERROR, "%s\n", "Failed to grab frame from VideoCapture");&#xA;  return;&#xA; }&#xA; Boolean frameRetrieveSuccess = videoCapture.retrieve(frame);&#xA; if (!frameRetrieveSuccess)&#xA; {&#xA;  Logger(LogType::ERROR, "%s\n", "Failed to retrieve frame from VideoCapture");&#xA;  return;&#xA; }&#xA; auto end = std::chrono::high_resolution_clock::now();&#xA; std::chrono::duration elapsed = end - start;&#xA; std::cout &lt;&lt; "Video::updateTextureWithFrame took " &lt;&lt; elapsed.count() &lt;&lt; "ms\n";&#xA; cv::cvtColor(frame, frameConverted, cv::COLOR_BGR2RGB);&#xA; cv::flip(frameConverted, frameConverted, 0);&#xA; if (texturePointer.pointer)&#xA; {&#xA;  auto &amp;texture = texturePointer.pointer;&#xA;  if (texture->width != frameConverted.cols || texture->height != frameConverted.rows)&#xA;  {&#xA;   goto _newTexture;&#xA;  }&#xA;  else&#xA;  {&#xA;   texture->update(frameConverted.data);&#xA;  }&#xA; }&#xA; else&#xA; {&#xA; _newTexture:&#xA;  texturePointer = {ReleaseType::Delete, new Texture(frameConverted.cols, frameConverted.rows, frameConverted.data, ETextureFormat::RGB8, ETextureType::UnsignedByte), 1};&#xA; }&#xA;};&#xA;/*&#xA; */&#xA;const Boolean Video::resize(const glm::vec2 &amp;_size)&#xA;{&#xA; size = _size;&#xA; glm::vec3 *vertices = (glm::vec3 *)(*this).operator()<float>(IEntity::Quanta::Vertex, 4);&#xA; glm::vec3 topRight = {size.x / 2, size.y / 2, 0};&#xA; glm::vec3 bottomRight = {size.x / 2, -(size.y / 2), 0};&#xA; glm::vec3 bottomLeft = {-(size.x / 2), -(size.y / 2), 0};&#xA; glm::vec3 topLeft = {-(size.x / 2), size.y / 2, 0};&#xA; vertices[0] = topRight;&#xA; vertices[1] = bottomRight;&#xA; vertices[2] = bottomLeft;&#xA; vertices[3] = topLeft;&#xA; *changedPointer = true;&#xA; return true;&#xA;};&#xA;/*&#xA; */&#xA;Boolean Video::update(const uInteger64 &amp;elapsedTimeMs)&#xA;{&#xA; currentFrameIndex&#x2B;&#x2B;;&#xA; Logger(LogType::INFO, "Video-elapsedTime: %llums\n", elapsedTimeMs);&#xA; if (currentFrameIndex == frameCount - 1)&#xA; {&#xA;  return false;&#xA; }&#xA; auto &amp;texturePointer = textures._data[0];&#xA; updateTextureWithFrame(currentFrameIndex, texturePointer);&#xA; return true;&#xA;};&#xA;</float></texture></float></cstdio>

    &#xA;

    When running a simple test video @ 1280x720 the updateTextureWithFrame timer begins at 12ms but gradually over time increases to over 100ms and beyond. Causing video playback to be running at lower than defined frames per second.

    &#xA;

    What is causing this gradual increase in updateTextureWithFrame ?? How can I solve it ?

    &#xA;

    Edit :

    &#xA;

     uInteger64 bufferSize = videoCapture.get(cv::CAP_PROP_BUFFERSIZE);&#xA; Logger(LogType::INFO, "BufferSize: %llu\n", bufferSize);&#xA;

    &#xA;

    prints BufferSize : 0. Indicating setting CAP_PROP_BUFFERSIZE is not supported for ffmpeg

    &#xA;

    Edit2 :&#xA;Some logs of timings

    &#xA;

    Video::updateTextureWithFrame took 16.5161ms&#xA;Video::updateTextureWithFrame took 21.6109ms&#xA;Video::updateTextureWithFrame took 21.1443ms&#xA;Video::updateTextureWithFrame took 20.4253ms&#xA;Video::updateTextureWithFrame took 23.9015ms&#xA;Video::updateTextureWithFrame took 22.1348ms&#xA;Video::updateTextureWithFrame took 21.3723ms&#xA;Video::updateTextureWithFrame took 21.2186ms&#xA;Video::updateTextureWithFrame took 24.0211ms&#xA;Video::updateTextureWithFrame took 24.5907ms&#xA;Video::updateTextureWithFrame took 23.2134ms&#xA;Video::updateTextureWithFrame took 25.6763ms&#xA;Video::updateTextureWithFrame took 25.416ms&#xA;Video::updateTextureWithFrame took 25.2314ms&#xA;Video::updateTextureWithFrame took 26.3919ms&#xA;Video::updateTextureWithFrame took 24.1883ms&#xA;Video::updateTextureWithFrame took 27.7095ms&#xA;Video::updateTextureWithFrame took 26.5594ms&#xA;Video::updateTextureWithFrame took 26.6618ms&#xA;Video::updateTextureWithFrame took 29.496ms&#xA;Video::updateTextureWithFrame took 27.2731ms&#xA;Video::updateTextureWithFrame took 27.5113ms&#xA;Video::updateTextureWithFrame took 30.2855ms&#xA;Video::updateTextureWithFrame took 27.6773ms&#xA;Video::updateTextureWithFrame took 30.5532ms&#xA;Video::updateTextureWithFrame took 32.6858ms&#xA;Video::updateTextureWithFrame took 32.8735ms&#xA;Video::updateTextureWithFrame took 31.7369ms&#xA;Video::updateTextureWithFrame took 31.2453ms&#xA;Video::updateTextureWithFrame took 30.9424ms&#xA;Video::updateTextureWithFrame took 36.7046ms&#xA;Video::updateTextureWithFrame took 33.6224ms&#xA;Video::updateTextureWithFrame took 32.0368ms&#xA;Video::updateTextureWithFrame took 33.0109ms&#xA;Video::updateTextureWithFrame took 32.2155ms&#xA;Video::updateTextureWithFrame took 33.5314ms&#xA;Video::updateTextureWithFrame took 33.576ms&#xA;Video::updateTextureWithFrame took 37.8993ms&#xA;Video::updateTextureWithFrame took 33.9495ms&#xA;Video::updateTextureWithFrame took 35.776ms&#xA;Video::updateTextureWithFrame took 36.2566ms&#xA;Video::updateTextureWithFrame took 36.5887ms&#xA;Video::updateTextureWithFrame took 40.0839ms&#xA;Video::updateTextureWithFrame took 38.5146ms&#xA;Video::updateTextureWithFrame took 40.72ms&#xA;Video::updateTextureWithFrame took 37.8345ms&#xA;Video::updateTextureWithFrame took 37.9925ms&#xA;Video::updateTextureWithFrame took 39.0402ms&#xA;Video::updateTextureWithFrame took 39.8856ms&#xA;Video::updateTextureWithFrame took 41.3421ms&#xA;Video::updateTextureWithFrame took 41.0703ms&#xA;Video::updateTextureWithFrame took 42.9482ms&#xA;Video::updateTextureWithFrame took 42.9199ms&#xA;Video::updateTextureWithFrame took 44.2593ms&#xA;Video::updateTextureWithFrame took 41.2746ms&#xA;Video::updateTextureWithFrame took 45.7017ms&#xA;Video::updateTextureWithFrame took 46.1854ms&#xA;Video::updateTextureWithFrame took 44.154ms&#xA;Video::updateTextureWithFrame took 42.6004ms&#xA;Video::updateTextureWithFrame took 47.2442ms&#xA;Video::updateTextureWithFrame took 43.4156ms&#xA;Video::updateTextureWithFrame took 47.9288ms&#xA;Video::updateTextureWithFrame took 45.3475ms&#xA;Video::updateTextureWithFrame took 46.9646ms&#xA;Video::updateTextureWithFrame took 48.4978ms&#xA;Video::updateTextureWithFrame took 45.1322ms&#xA;Video::updateTextureWithFrame took 48.1365ms&#xA;Video::updateTextureWithFrame took 49.8857ms&#xA;Video::updateTextureWithFrame took 47.4854ms&#xA;Video::updateTextureWithFrame took 48.2378ms&#xA;Video::updateTextureWithFrame took 50.9174ms&#xA;Video::updateTextureWithFrame took 52.347ms&#xA;Video::updateTextureWithFrame took 51.6252ms&#xA;Video::updateTextureWithFrame took 52.2018ms&#xA;Video::updateTextureWithFrame took 49.2384ms&#xA;Video::updateTextureWithFrame took 50.9491ms&#xA;Video::updateTextureWithFrame took 52.2139ms&#xA;Video::updateTextureWithFrame took 53.3229ms&#xA;Video::updateTextureWithFrame took 56.0199ms&#xA;Video::updateTextureWithFrame took 55.582ms&#xA;Video::updateTextureWithFrame took 55.2675ms&#xA;Video::updateTextureWithFrame took 54.9446ms&#xA;Video::updateTextureWithFrame took 54.7955ms&#xA;Video::updateTextureWithFrame took 54.0296ms&#xA;Video::updateTextureWithFrame took 54.0375ms&#xA;Video::updateTextureWithFrame took 57.0916ms&#xA;Video::updateTextureWithFrame took 55.2474ms&#xA;Video::updateTextureWithFrame took 56.8046ms&#xA;Video::updateTextureWithFrame took 57.562ms&#xA;Video::updateTextureWithFrame took 59.9115ms&#xA;Video::updateTextureWithFrame took 59.3991ms&#xA;Video::updateTextureWithFrame took 60.0536ms&#xA;Video::updateTextureWithFrame took 59.9457ms&#xA;Video::updateTextureWithFrame took 57.5088ms&#xA;Video::updateTextureWithFrame took 59.1255ms&#xA;Video::updateTextureWithFrame took 62.2311ms&#xA;Video::updateTextureWithFrame took 59.0422ms&#xA;Video::updateTextureWithFrame took 62.0419ms&#xA;Video::updateTextureWithFrame took 62.0586ms&#xA;Video::updateTextureWithFrame took 64.0988ms&#xA;Video::updateTextureWithFrame took 64.743ms&#xA;Video::updateTextureWithFrame took 63.008ms&#xA;Video::updateTextureWithFrame took 65.1726ms&#xA;Video::updateTextureWithFrame took 63.3618ms&#xA;Video::updateTextureWithFrame took 65.6431ms&#xA;Video::updateTextureWithFrame took 63.8957ms&#xA;Video::updateTextureWithFrame took 65.1142ms&#xA;Video::updateTextureWithFrame took 67.2243ms&#xA;Video::updateTextureWithFrame took 65.1302ms&#xA;Video::updateTextureWithFrame took 66.4947ms&#xA;Video::updateTextureWithFrame took 66.092ms&#xA;Video::updateTextureWithFrame took 68.6997ms&#xA;Video::updateTextureWithFrame took 70.5683ms&#xA;Video::updateTextureWithFrame took 71.9019ms&#xA;Video::updateTextureWithFrame took 68.6088ms&#xA;Video::updateTextureWithFrame took 70.7946ms&#xA;Video::updateTextureWithFrame took 68.263ms&#xA;Video::updateTextureWithFrame took 66.1565ms&#xA;Video::updateTextureWithFrame took 70.6742ms&#xA;Video::updateTextureWithFrame took 70.7035ms&#xA;Video::updateTextureWithFrame took 73.8002ms&#xA;Video::updateTextureWithFrame took 73.1897ms&#xA;Video::updateTextureWithFrame took 74.006ms&#xA;Video::updateTextureWithFrame took 74.1048ms&#xA;Video::updateTextureWithFrame took 72.9378ms&#xA;Video::updateTextureWithFrame took 75.0651ms&#xA;Video::updateTextureWithFrame took 73.5676ms&#xA;Video::updateTextureWithFrame took 73.7706ms&#xA;Video::updateTextureWithFrame took 74.0839ms&#xA;Video::updateTextureWithFrame took 74.6773ms&#xA;Video::updateTextureWithFrame took 75.8827ms&#xA;Video::updateTextureWithFrame took 74.4724ms&#xA;Video::updateTextureWithFrame took 75.2119ms&#xA;Video::updateTextureWithFrame took 83.4102ms&#xA;Video::updateTextureWithFrame took 77.6811ms&#xA;Video::updateTextureWithFrame took 78.7307ms&#xA;Video::updateTextureWithFrame took 80.1705ms&#xA;Video::updateTextureWithFrame took 78.6064ms&#xA;Video::updateTextureWithFrame took 80.803ms&#xA;Video::updateTextureWithFrame took 80.0117ms&#xA;Video::updateTextureWithFrame took 78.2948ms&#xA;Video::updateTextureWithFrame took 81.0375ms&#xA;Video::updateTextureWithFrame took 78.7389ms&#xA;Video::updateTextureWithFrame took 80.2201ms&#xA;Video::updateTextureWithFrame took 82.8578ms&#xA;Video::updateTextureWithFrame took 84.2388ms&#xA;Video::updateTextureWithFrame took 84.6484ms&#xA;Video::updateTextureWithFrame took 87.6683ms&#xA;Video::updateTextureWithFrame took 82.8939ms&#xA;Video::updateTextureWithFrame took 84.015ms&#xA;Video::updateTextureWithFrame took 88.1832ms&#xA;Video::updateTextureWithFrame took 83.3894ms&#xA;Video::updateTextureWithFrame took 86.9088ms&#xA;Video::updateTextureWithFrame took 87.1049ms&#xA;Video::updateTextureWithFrame took 87.6748ms&#xA;Video::updateTextureWithFrame took 87.178ms&#xA;Video::updateTextureWithFrame took 84.7988ms&#xA;Video::updateTextureWithFrame took 89.528ms&#xA;Video::updateTextureWithFrame took 88.7021ms&#xA;Video::updateTextureWithFrame took 90.0357ms&#xA;Video::updateTextureWithFrame took 90.398ms&#xA;Video::updateTextureWithFrame took 87.8047ms&#xA;Video::updateTextureWithFrame took 90.2447ms&#xA;Video::updateTextureWithFrame took 94.6288ms&#xA;Video::updateTextureWithFrame took 88.9265ms&#xA;Video::updateTextureWithFrame took 89.01ms&#xA;Video::updateTextureWithFrame took 87.6294ms&#xA;Video::updateTextureWithFrame took 90.6988ms&#xA;Video::updateTextureWithFrame took 93.0173ms&#xA;Video::updateTextureWithFrame took 92.1651ms&#xA;Video::updateTextureWithFrame took 92.9234ms&#xA;Video::updateTextureWithFrame took 95.4223ms&#xA;Video::updateTextureWithFrame took 99.0941ms&#xA;Video::updateTextureWithFrame took 97.3014ms&#xA;Video::updateTextureWithFrame took 91.8709ms&#xA;Video::updateTextureWithFrame took 96.8951ms&#xA;Video::updateTextureWithFrame took 95.3506ms&#xA;Video::updateTextureWithFrame took 96.5474ms&#xA;Video::updateTextureWithFrame took 92.4739ms&#xA;Video::updateTextureWithFrame took 95.1857ms&#xA;Video::updateTextureWithFrame took 96.6743ms&#xA;Video::updateTextureWithFrame took 99.0657ms&#xA;Video::updateTextureWithFrame took 105.84ms&#xA;Video::updateTextureWithFrame took 99.3163ms&#xA;Video::updateTextureWithFrame took 127.942ms&#xA;Video::updateTextureWithFrame took 101.378ms&#xA;Video::updateTextureWithFrame took 98.6114ms&#xA;Video::updateTextureWithFrame took 101.161ms&#xA;Video::updateTextureWithFrame took 102.271ms&#xA;Video::updateTextureWithFrame took 100.77ms&#xA;Video::updateTextureWithFrame took 100.825ms&#xA;Video::updateTextureWithFrame took 100.64ms&#xA;Video::updateTextureWithFrame took 99.7002ms&#xA;Video::updateTextureWithFrame took 103.207ms&#xA;Video::updateTextureWithFrame took 107.135ms&#xA;Video::updateTextureWithFrame took 100.766ms&#xA;Video::updateTextureWithFrame took 103.321ms&#xA;Video::updateTextureWithFrame took 107.361ms&#xA;Video::updateTextureWithFrame took 104.086ms&#xA;Video::updateTextureWithFrame took 100.975ms&#xA;Video::updateTextureWithFrame took 105.846ms&#xA;Video::updateTextureWithFrame took 104.755ms&#xA;Video::updateTextureWithFrame took 105.893ms&#xA;Video::updateTextureWithFrame took 105.234ms&#xA;Video::updateTextureWithFrame took 109.415ms&#xA;Video::updateTextureWithFrame took 107.942ms&#xA;Video::updateTextureWithFrame took 109.816ms&#xA;Video::updateTextureWithFrame took 109.268ms&#xA;Video::updateTextureWithFrame took 111.918ms&#xA;Video::updateTextureWithFrame took 110.123ms&#xA;Video::updateTextureWithFrame took 109.975ms&#xA;Video::updateTextureWithFrame took 110.105ms&#xA;Video::updateTextureWithFrame took 115.888ms&#xA;Video::updateTextureWithFrame took 112.443ms&#xA;Video::updateTextureWithFrame took 111.795ms&#xA;Video::updateTextureWithFrame took 112.016ms&#xA;Video::updateTextureWithFrame took 115.857ms&#xA;Video::updateTextureWithFrame took 114.762ms&#xA;Video::updateTextureWithFrame took 112.551ms&#xA;Video::updateTextureWithFrame took 116.05ms&#xA;Video::updateTextureWithFrame took 119.133ms&#xA;Video::updateTextureWithFrame took 114.202ms&#xA;Video::updateTextureWithFrame took 119.864ms&#xA;Video::updateTextureWithFrame took 119.743ms&#xA;Video::updateTextureWithFrame took 119.911ms&#xA;Video::updateTextureWithFrame took 120.957ms&#xA;Video::updateTextureWithFrame took 117.611ms&#xA;Video::updateTextureWithFrame took 116.596ms&#xA;Video::updateTextureWithFrame took 116.859ms&#xA;Video::updateTextureWithFrame took 120.355ms&#xA;Video::updateTextureWithFrame took 121.932ms&#xA;Video::updateTextureWithFrame took 117.56ms&#xA;Video::updateTextureWithFrame took 122.747ms&#xA;Video::updateTextureWithFrame took 120.103ms&#xA;Video::updateTextureWithFrame took 123.497ms&#xA;Video::updateTextureWithFrame took 126.391ms&#xA;Video::updateTextureWithFrame took 123.512ms&#xA;Video::updateTextureWithFrame took 121.612ms&#xA;Video::updateTextureWithFrame took 130.169ms&#xA;Video::updateTextureWithFrame took 126.936ms&#xA;Video::updateTextureWithFrame took 122.812ms&#xA;Video::updateTextureWithFrame took 122.843ms&#xA;Video::updateTextureWithFrame took 124.214ms&#xA;Video::updateTextureWithFrame took 125.563ms&#xA;Video::updateTextureWithFrame took 128.024ms&#xA;Video::updateTextureWithFrame took 129.263ms&#xA;Video::updateTextureWithFrame took 130.028ms&#xA;Video::updateTextureWithFrame took 127.493ms&#xA;Video::updateTextureWithFrame took 129.553ms&#xA;Video::updateTextureWithFrame took 130.538ms&#xA;Video::updateTextureWithFrame took 22.6048ms&#xA;Video::updateTextureWithFrame took 20.2454ms&#xA;Video::updateTextureWithFrame took 19.9947ms&#xA;Video::updateTextureWithFrame took 21.2817ms&#xA;Video::updateTextureWithFrame took 22.6694ms&#xA;Video::updateTextureWithFrame took 25.5187ms&#xA;Video::updateTextureWithFrame took 19.8971ms&#xA;Video::updateTextureWithFrame took 22.2975ms&#xA;Video::updateTextureWithFrame took 21.4979ms&#xA;Video::updateTextureWithFrame took 25.6767ms&#xA;Video::updateTextureWithFrame took 23.4276ms&#xA;Video::updateTextureWithFrame took 25.5657ms&#xA;Video::updateTextureWithFrame took 23.2816ms&#xA;Video::updateTextureWithFrame took 26.8515ms&#xA;Video::updateTextureWithFrame took 24.0271ms&#xA;Video::updateTextureWithFrame took 24.4675ms&#xA;Video::updateTextureWithFrame took 25.6897ms&#xA;Video::updateTextureWithFrame took 28.7489ms&#xA;Video::updateTextureWithFrame took 24.6164ms&#xA;Video::updateTextureWithFrame took 29.6739ms&#xA;Video::updateTextureWithFrame took 27.8118ms&#xA;Video::updateTextureWithFrame took 30.3992ms&#xA;Video::updateTextureWithFrame took 28.2943ms&#xA;Video::updateTextureWithFrame took 29.9693ms&#xA;Video::updateTextureWithFrame took 30.6129ms&#xA;

    &#xA;

  • avcodec/x86/vvc : add avg and avg_w AVX2 optimizations

    23 janvier 2024, par Wu Jianhua
    avcodec/x86/vvc : add avg and avg_w AVX2 optimizations
    

    The avg/avg_w is based on dav1d.
    See https://code.videolan.org/videolan/dav1d/-/blob/master/src/x86/mc_avx2.asm

    vvc_avg_8_2x2_c : 71.6
    vvc_avg_8_2x2_avx2 : 26.8
    vvc_avg_8_2x4_c : 140.8
    vvc_avg_8_2x4_avx2 : 34.6
    vvc_avg_8_2x8_c : 410.3
    vvc_avg_8_2x8_avx2 : 41.3
    vvc_avg_8_2x16_c : 769.3
    vvc_avg_8_2x16_avx2 : 60.3
    vvc_avg_8_2x32_c : 1669.6
    vvc_avg_8_2x32_avx2 : 105.1
    vvc_avg_8_2x64_c : 1978.3
    vvc_avg_8_2x64_avx2 : 425.8
    vvc_avg_8_2x128_c : 6536.8
    vvc_avg_8_2x128_avx2 : 1315.1
    vvc_avg_8_4x2_c : 155.6
    vvc_avg_8_4x2_avx2 : 26.1
    vvc_avg_8_4x4_c : 250.3
    vvc_avg_8_4x4_avx2 : 31.3
    vvc_avg_8_4x8_c : 831.8
    vvc_avg_8_4x8_avx2 : 41.3
    vvc_avg_8_4x16_c : 1461.1
    vvc_avg_8_4x16_avx2 : 57.1
    vvc_avg_8_4x32_c : 2821.6
    vvc_avg_8_4x32_avx2 : 105.1
    vvc_avg_8_4x64_c : 3615.8
    vvc_avg_8_4x64_avx2 : 412.6
    vvc_avg_8_4x128_c : 11962.6
    vvc_avg_8_4x128_avx2 : 1274.3
    vvc_avg_8_8x2_c : 215.8
    vvc_avg_8_8x2_avx2 : 29.1
    vvc_avg_8_8x4_c : 430.6
    vvc_avg_8_8x4_avx2 : 37.6
    vvc_avg_8_8x8_c : 1463.3
    vvc_avg_8_8x8_avx2 : 51.8
    vvc_avg_8_8x16_c : 2630.1
    vvc_avg_8_8x16_avx2 : 97.6
    vvc_avg_8_8x32_c : 5813.8
    vvc_avg_8_8x32_avx2 : 196.6
    vvc_avg_8_8x64_c : 6687.3
    vvc_avg_8_8x64_avx2 : 487.8
    vvc_avg_8_8x128_c : 13178.6
    vvc_avg_8_8x128_avx2 : 1290.6
    vvc_avg_8_16x2_c : 443.8
    vvc_avg_8_16x2_avx2 : 28.3
    vvc_avg_8_16x4_c : 1253.3
    vvc_avg_8_16x4_avx2 : 32.1
    vvc_avg_8_16x8_c : 2236.3
    vvc_avg_8_16x8_avx2 : 44.3
    vvc_avg_8_16x16_c : 5127.8
    vvc_avg_8_16x16_avx2 : 63.3
    vvc_avg_8_16x32_c : 6573.3
    vvc_avg_8_16x32_avx2 : 223.6
    vvc_avg_8_16x64_c : 30311.8
    vvc_avg_8_16x64_avx2 : 437.8
    vvc_avg_8_16x128_c : 25693.3
    vvc_avg_8_16x128_avx2 : 1266.8
    vvc_avg_8_32x2_c : 954.6
    vvc_avg_8_32x2_avx2 : 32.1
    vvc_avg_8_32x4_c : 2359.6
    vvc_avg_8_32x4_avx2 : 39.6
    vvc_avg_8_32x8_c : 5703.6
    vvc_avg_8_32x8_avx2 : 57.1
    vvc_avg_8_32x16_c : 9967.6
    vvc_avg_8_32x16_avx2 : 107.1
    vvc_avg_8_32x32_c : 21327.6
    vvc_avg_8_32x32_avx2 : 272.6
    vvc_avg_8_32x64_c : 39240.8
    vvc_avg_8_32x64_avx2 : 529.6
    vvc_avg_8_32x128_c : 52580.8
    vvc_avg_8_32x128_avx2 : 1338.8
    vvc_avg_8_64x2_c : 1647.3
    vvc_avg_8_64x2_avx2 : 38.8
    vvc_avg_8_64x4_c : 5130.1
    vvc_avg_8_64x4_avx2 : 58.8
    vvc_avg_8_64x8_c : 6529.3
    vvc_avg_8_64x8_avx2 : 88.3
    vvc_avg_8_64x16_c : 19913.6
    vvc_avg_8_64x16_avx2 : 162.3
    vvc_avg_8_64x32_c : 39360.8
    vvc_avg_8_64x32_avx2 : 295.8
    vvc_avg_8_64x64_c : 49658.3
    vvc_avg_8_64x64_avx2 : 784.1
    vvc_avg_8_64x128_c : 108513.1
    vvc_avg_8_64x128_avx2 : 1977.1
    vvc_avg_8_128x2_c : 3226.1
    vvc_avg_8_128x2_avx2 : 61.1
    vvc_avg_8_128x4_c : 10280.3
    vvc_avg_8_128x4_avx2 : 94.6
    vvc_avg_8_128x8_c : 18079.3
    vvc_avg_8_128x8_avx2 : 155.3
    vvc_avg_8_128x16_c : 45121.8
    vvc_avg_8_128x16_avx2 : 285.3
    vvc_avg_8_128x32_c : 48651.8
    vvc_avg_8_128x32_avx2 : 581.6
    vvc_avg_8_128x64_c : 165078.6
    vvc_avg_8_128x64_avx2 : 1942.8
    vvc_avg_8_128x128_c : 339103.1
    vvc_avg_8_128x128_avx2 : 4332.6
    vvc_avg_10_2x2_c : 144.3
    vvc_avg_10_2x2_avx2 : 26.8
    vvc_avg_10_2x4_c : 142.6
    vvc_avg_10_2x4_avx2 : 45.3
    vvc_avg_10_2x8_c : 478.1
    vvc_avg_10_2x8_avx2 : 38.1
    vvc_avg_10_2x16_c : 518.3
    vvc_avg_10_2x16_avx2 : 58.1
    vvc_avg_10_2x32_c : 2059.8
    vvc_avg_10_2x32_avx2 : 93.1
    vvc_avg_10_2x64_c : 2383.8
    vvc_avg_10_2x64_avx2 : 714.8
    vvc_avg_10_2x128_c : 4498.3
    vvc_avg_10_2x128_avx2 : 1466.3
    vvc_avg_10_4x2_c : 228.6
    vvc_avg_10_4x2_avx2 : 26.8
    vvc_avg_10_4x4_c : 378.3
    vvc_avg_10_4x4_avx2 : 30.6
    vvc_avg_10_4x8_c : 866.8
    vvc_avg_10_4x8_avx2 : 44.6
    vvc_avg_10_4x16_c : 1018.1
    vvc_avg_10_4x16_avx2 : 58.1
    vvc_avg_10_4x32_c : 3590.8
    vvc_avg_10_4x32_avx2 : 128.8
    vvc_avg_10_4x64_c : 4200.8
    vvc_avg_10_4x64_avx2 : 663.6
    vvc_avg_10_4x128_c : 8450.8
    vvc_avg_10_4x128_avx2 : 1531.8
    vvc_avg_10_8x2_c : 369.3
    vvc_avg_10_8x2_avx2 : 28.3
    vvc_avg_10_8x4_c : 513.8
    vvc_avg_10_8x4_avx2 : 32.1
    vvc_avg_10_8x8_c : 1720.3
    vvc_avg_10_8x8_avx2 : 49.1
    vvc_avg_10_8x16_c : 1894.8
    vvc_avg_10_8x16_avx2 : 71.6
    vvc_avg_10_8x32_c : 3931.3
    vvc_avg_10_8x32_avx2 : 148.1
    vvc_avg_10_8x64_c : 7964.3
    vvc_avg_10_8x64_avx2 : 613.1
    vvc_avg_10_8x128_c : 15540.1
    vvc_avg_10_8x128_avx2 : 1585.1
    vvc_avg_10_16x2_c : 877.3
    vvc_avg_10_16x2_avx2 : 27.6
    vvc_avg_10_16x4_c : 955.8
    vvc_avg_10_16x4_avx2 : 29.8
    vvc_avg_10_16x8_c : 3419.6
    vvc_avg_10_16x8_avx2 : 62.6
    vvc_avg_10_16x16_c : 3826.8
    vvc_avg_10_16x16_avx2 : 54.3
    vvc_avg_10_16x32_c : 7655.3
    vvc_avg_10_16x32_avx2 : 86.3
    vvc_avg_10_16x64_c : 30011.1
    vvc_avg_10_16x64_avx2 : 692.6
    vvc_avg_10_16x128_c : 47894.8
    vvc_avg_10_16x128_avx2 : 1580.3
    vvc_avg_10_32x2_c : 944.3
    vvc_avg_10_32x2_avx2 : 29.8
    vvc_avg_10_32x4_c : 2022.6
    vvc_avg_10_32x4_avx2 : 35.1
    vvc_avg_10_32x8_c : 6148.8
    vvc_avg_10_32x8_avx2 : 51.3
    vvc_avg_10_32x16_c : 12601.6
    vvc_avg_10_32x16_avx2 : 70.8
    vvc_avg_10_32x32_c : 15958.6
    vvc_avg_10_32x32_avx2 : 124.3
    vvc_avg_10_32x64_c : 31784.6
    vvc_avg_10_32x64_avx2 : 757.3
    vvc_avg_10_32x128_c : 63892.8
    vvc_avg_10_32x128_avx2 : 1711.3
    vvc_avg_10_64x2_c : 1890.8
    vvc_avg_10_64x2_avx2 : 34.3
    vvc_avg_10_64x4_c : 6267.3
    vvc_avg_10_64x4_avx2 : 42.6
    vvc_avg_10_64x8_c : 12778.1
    vvc_avg_10_64x8_avx2 : 67.8
    vvc_avg_10_64x16_c : 22304.3
    vvc_avg_10_64x16_avx2 : 116.8
    vvc_avg_10_64x32_c : 30777.1
    vvc_avg_10_64x32_avx2 : 201.1
    vvc_avg_10_64x64_c : 60169.1
    vvc_avg_10_64x64_avx2 : 1454.3
    vvc_avg_10_64x128_c : 124392.8
    vvc_avg_10_64x128_avx2 : 3648.6
    vvc_avg_10_128x2_c : 3650.1
    vvc_avg_10_128x2_avx2 : 41.1
    vvc_avg_10_128x4_c : 22887.8
    vvc_avg_10_128x4_avx2 : 64.1
    vvc_avg_10_128x8_c : 14622.6
    vvc_avg_10_128x8_avx2 : 111.6
    vvc_avg_10_128x16_c : 62207.6
    vvc_avg_10_128x16_avx2 : 186.3
    vvc_avg_10_128x32_c : 59761.3
    vvc_avg_10_128x32_avx2 : 374.6
    vvc_avg_10_128x64_c : 117504.3
    vvc_avg_10_128x64_avx2 : 2684.6
    vvc_avg_10_128x128_c : 236767.6
    vvc_avg_10_128x128_avx2 : 15278.1
    vvc_avg_12_2x2_c : 78.6
    vvc_avg_12_2x2_avx2 : 26.1
    vvc_avg_12_2x4_c : 254.1
    vvc_avg_12_2x4_avx2 : 30.6
    vvc_avg_12_2x8_c : 261.8
    vvc_avg_12_2x8_avx2 : 39.1
    vvc_avg_12_2x16_c : 527.6
    vvc_avg_12_2x16_avx2 : 57.3
    vvc_avg_12_2x32_c : 1089.1
    vvc_avg_12_2x32_avx2 : 93.8
    vvc_avg_12_2x64_c : 2337.6
    vvc_avg_12_2x64_avx2 : 707.1
    vvc_avg_12_2x128_c : 4582.1
    vvc_avg_12_2x128_avx2 : 1414.6
    vvc_avg_12_4x2_c : 129.6
    vvc_avg_12_4x2_avx2 : 26.8
    vvc_avg_12_4x4_c : 427.3
    vvc_avg_12_4x4_avx2 : 30.6
    vvc_avg_12_4x8_c : 529.6
    vvc_avg_12_4x8_avx2 : 36.6
    vvc_avg_12_4x16_c : 1022.1
    vvc_avg_12_4x16_avx2 : 57.3
    vvc_avg_12_4x32_c : 1987.6
    vvc_avg_12_4x32_avx2 : 84.3
    vvc_avg_12_4x64_c : 4147.6
    vvc_avg_12_4x64_avx2 : 706.3
    vvc_avg_12_4x128_c : 8469.3
    vvc_avg_12_4x128_avx2 : 1448.3
    vvc_avg_12_8x2_c : 253.6
    vvc_avg_12_8x2_avx2 : 27.6
    vvc_avg_12_8x4_c : 836.3
    vvc_avg_12_8x4_avx2 : 32.1
    vvc_avg_12_8x8_c : 1074.6
    vvc_avg_12_8x8_avx2 : 45.1
    vvc_avg_12_8x16_c : 3616.8
    vvc_avg_12_8x16_avx2 : 71.6
    vvc_avg_12_8x32_c : 3823.6
    vvc_avg_12_8x32_avx2 : 140.1
    vvc_avg_12_8x64_c : 7764.8
    vvc_avg_12_8x64_avx2 : 656.1
    vvc_avg_12_8x128_c : 15896.1
    vvc_avg_12_8x128_avx2 : 1232.8
    vvc_avg_12_16x2_c : 462.1
    vvc_avg_12_16x2_avx2 : 26.8
    vvc_avg_12_16x4_c : 1732.1
    vvc_avg_12_16x4_avx2 : 29.1
    vvc_avg_12_16x8_c : 2097.6
    vvc_avg_12_16x8_avx2 : 62.6
    vvc_avg_12_16x16_c : 6753.1
    vvc_avg_12_16x16_avx2 : 47.8
    vvc_avg_12_16x32_c : 7373.1
    vvc_avg_12_16x32_avx2 : 80.8
    vvc_avg_12_16x64_c : 15046.3
    vvc_avg_12_16x64_avx2 : 621.1
    vvc_avg_12_16x128_c : 52574.6
    vvc_avg_12_16x128_avx2 : 1417.1
    vvc_avg_12_32x2_c : 1712.1
    vvc_avg_12_32x2_avx2 : 29.8
    vvc_avg_12_32x4_c : 2036.8
    vvc_avg_12_32x4_avx2 : 37.6
    vvc_avg_12_32x8_c : 4017.6
    vvc_avg_12_32x8_avx2 : 44.1
    vvc_avg_12_32x16_c : 8018.6
    vvc_avg_12_32x16_avx2 : 70.8
    vvc_avg_12_32x32_c : 15637.6
    vvc_avg_12_32x32_avx2 : 124.3
    vvc_avg_12_32x64_c : 31143.3
    vvc_avg_12_32x64_avx2 : 830.3
    vvc_avg_12_32x128_c : 75706.8
    vvc_avg_12_32x128_avx2 : 1604.8
    vvc_avg_12_64x2_c : 3230.3
    vvc_avg_12_64x2_avx2 : 33.6
    vvc_avg_12_64x4_c : 4139.6
    vvc_avg_12_64x4_avx2 : 45.1
    vvc_avg_12_64x8_c : 8201.6
    vvc_avg_12_64x8_avx2 : 67.1
    vvc_avg_12_64x16_c : 25632.3
    vvc_avg_12_64x16_avx2 : 110.3
    vvc_avg_12_64x32_c : 30744.3
    vvc_avg_12_64x32_avx2 : 200.3
    vvc_avg_12_64x64_c : 105554.8
    vvc_avg_12_64x64_avx2 : 1325.6
    vvc_avg_12_64x128_c : 235254.3
    vvc_avg_12_64x128_avx2 : 3132.6
    vvc_avg_12_128x2_c : 6194.3
    vvc_avg_12_128x2_avx2 : 55.1
    vvc_avg_12_128x4_c : 7583.8
    vvc_avg_12_128x4_avx2 : 79.3
    vvc_avg_12_128x8_c : 14635.6
    vvc_avg_12_128x8_avx2 : 104.3
    vvc_avg_12_128x16_c : 29270.8
    vvc_avg_12_128x16_avx2 : 194.3
    vvc_avg_12_128x32_c : 60113.6
    vvc_avg_12_128x32_avx2 : 346.3
    vvc_avg_12_128x64_c : 197030.3
    vvc_avg_12_128x64_avx2 : 2779.6
    vvc_avg_12_128x128_c : 432809.6
    vvc_avg_12_128x128_avx2 : 5513.3
    vvc_w_avg_8_2x2_c : 84.3
    vvc_w_avg_8_2x2_avx2 : 42.6
    vvc_w_avg_8_2x4_c : 156.3
    vvc_w_avg_8_2x4_avx2 : 58.8
    vvc_w_avg_8_2x8_c : 310.6
    vvc_w_avg_8_2x8_avx2 : 73.1
    vvc_w_avg_8_2x16_c : 942.1
    vvc_w_avg_8_2x16_avx2 : 113.3
    vvc_w_avg_8_2x32_c : 1098.8
    vvc_w_avg_8_2x32_avx2 : 202.6
    vvc_w_avg_8_2x64_c : 2414.3
    vvc_w_avg_8_2x64_avx2 : 467.6
    vvc_w_avg_8_2x128_c : 4763.8
    vvc_w_avg_8_2x128_avx2 : 1333.1
    vvc_w_avg_8_4x2_c : 140.1
    vvc_w_avg_8_4x2_avx2 : 49.8
    vvc_w_avg_8_4x4_c : 276.3
    vvc_w_avg_8_4x4_avx2 : 58.1
    vvc_w_avg_8_4x8_c : 524.3
    vvc_w_avg_8_4x8_avx2 : 72.3
    vvc_w_avg_8_4x16_c : 1108.1
    vvc_w_avg_8_4x16_avx2 : 111.8
    vvc_w_avg_8_4x32_c : 2149.8
    vvc_w_avg_8_4x32_avx2 : 199.6
    vvc_w_avg_8_4x64_c : 12288.1
    vvc_w_avg_8_4x64_avx2 : 509.3
    vvc_w_avg_8_4x128_c : 8398.6
    vvc_w_avg_8_4x128_avx2 : 1319.6
    vvc_w_avg_8_8x2_c : 271.1
    vvc_w_avg_8_8x2_avx2 : 44.1
    vvc_w_avg_8_8x4_c : 503.3
    vvc_w_avg_8_8x4_avx2 : 61.8
    vvc_w_avg_8_8x8_c : 1031.1
    vvc_w_avg_8_8x8_avx2 : 93.8
    vvc_w_avg_8_8x16_c : 2009.8
    vvc_w_avg_8_8x16_avx2 : 163.1
    vvc_w_avg_8_8x32_c : 4161.3
    vvc_w_avg_8_8x32_avx2 : 292.1
    vvc_w_avg_8_8x64_c : 7940.6
    vvc_w_avg_8_8x64_avx2 : 592.1
    vvc_w_avg_8_8x128_c : 16802.3
    vvc_w_avg_8_8x128_avx2 : 1287.6
    vvc_w_avg_8_16x2_c : 762.6
    vvc_w_avg_8_16x2_avx2 : 53.6
    vvc_w_avg_8_16x4_c : 1486.3
    vvc_w_avg_8_16x4_avx2 : 67.1
    vvc_w_avg_8_16x8_c : 1907.8
    vvc_w_avg_8_16x8_avx2 : 96.8
    vvc_w_avg_8_16x16_c : 3883.6
    vvc_w_avg_8_16x16_avx2 : 151.3
    vvc_w_avg_8_16x32_c : 7974.8
    vvc_w_avg_8_16x32_avx2 : 285.8
    vvc_w_avg_8_16x64_c : 25160.6
    vvc_w_avg_8_16x64_avx2 : 589.8
    vvc_w_avg_8_16x128_c : 58328.1
    vvc_w_avg_8_16x128_avx2 : 1169.8
    vvc_w_avg_8_32x2_c : 1009.1
    vvc_w_avg_8_32x2_avx2 : 65.6
    vvc_w_avg_8_32x4_c : 2091.1
    vvc_w_avg_8_32x4_avx2 : 96.8
    vvc_w_avg_8_32x8_c : 3997.8
    vvc_w_avg_8_32x8_avx2 : 156.3
    vvc_w_avg_8_32x16_c : 8216.8
    vvc_w_avg_8_32x16_avx2 : 269.6
    vvc_w_avg_8_32x32_c : 21746.1
    vvc_w_avg_8_32x32_avx2 : 635.3
    vvc_w_avg_8_32x64_c : 31564.8
    vvc_w_avg_8_32x64_avx2 : 1010.6
    vvc_w_avg_8_32x128_c : 114373.3
    vvc_w_avg_8_32x128_avx2 : 2013.6
    vvc_w_avg_8_64x2_c : 2067.3
    vvc_w_avg_8_64x2_avx2 : 97.6
    vvc_w_avg_8_64x4_c : 3901.1
    vvc_w_avg_8_64x4_avx2 : 154.8
    vvc_w_avg_8_64x8_c : 7911.6
    vvc_w_avg_8_64x8_avx2 : 268.8
    vvc_w_avg_8_64x16_c : 16508.8
    vvc_w_avg_8_64x16_avx2 : 501.8
    vvc_w_avg_8_64x32_c : 38770.3
    vvc_w_avg_8_64x32_avx2 : 1287.6
    vvc_w_avg_8_64x64_c : 110350.6
    vvc_w_avg_8_64x64_avx2 : 1890.8
    vvc_w_avg_8_64x128_c : 141354.6
    vvc_w_avg_8_64x128_avx2 : 3839.6
    vvc_w_avg_8_128x2_c : 7012.1
    vvc_w_avg_8_128x2_avx2 : 159.3
    vvc_w_avg_8_128x4_c : 8146.8
    vvc_w_avg_8_128x4_avx2 : 272.6
    vvc_w_avg_8_128x8_c : 24596.8
    vvc_w_avg_8_128x8_avx2 : 501.1
    vvc_w_avg_8_128x16_c : 35918.1
    vvc_w_avg_8_128x16_avx2 : 948.8
    vvc_w_avg_8_128x32_c : 68799.6
    vvc_w_avg_8_128x32_avx2 : 1963.1
    vvc_w_avg_8_128x64_c : 133862.1
    vvc_w_avg_8_128x64_avx2 : 3833.6
    vvc_w_avg_8_128x128_c : 348427.8
    vvc_w_avg_8_128x128_avx2 : 7682.8
    vvc_w_avg_10_2x2_c : 118.6
    vvc_w_avg_10_2x2_avx2 : 73.1
    vvc_w_avg_10_2x4_c : 189.1
    vvc_w_avg_10_2x4_avx2 : 89.3
    vvc_w_avg_10_2x8_c : 382.8
    vvc_w_avg_10_2x8_avx2 : 179.8
    vvc_w_avg_10_2x16_c : 658.3
    vvc_w_avg_10_2x16_avx2 : 185.1
    vvc_w_avg_10_2x32_c : 1409.3
    vvc_w_avg_10_2x32_avx2 : 290.8
    vvc_w_avg_10_2x64_c : 2906.8
    vvc_w_avg_10_2x64_avx2 : 793.1
    vvc_w_avg_10_2x128_c : 6292.6
    vvc_w_avg_10_2x128_avx2 : 1696.8
    vvc_w_avg_10_4x2_c : 178.8
    vvc_w_avg_10_4x2_avx2 : 80.1
    vvc_w_avg_10_4x4_c : 581.6
    vvc_w_avg_10_4x4_avx2 : 97.6
    vvc_w_avg_10_4x8_c : 693.3
    vvc_w_avg_10_4x8_avx2 : 128.1
    vvc_w_avg_10_4x16_c : 1436.6
    vvc_w_avg_10_4x16_avx2 : 179.8
    vvc_w_avg_10_4x32_c : 2409.1
    vvc_w_avg_10_4x32_avx2 : 292.3
    vvc_w_avg_10_4x64_c : 4925.3
    vvc_w_avg_10_4x64_avx2 : 746.1
    vvc_w_avg_10_4x128_c : 10664.6
    vvc_w_avg_10_4x128_avx2 : 1647.6
    vvc_w_avg_10_8x2_c : 359.3
    vvc_w_avg_10_8x2_avx2 : 80.1
    vvc_w_avg_10_8x4_c : 925.6
    vvc_w_avg_10_8x4_avx2 : 97.6
    vvc_w_avg_10_8x8_c : 1360.6
    vvc_w_avg_10_8x8_avx2 : 121.8
    vvc_w_avg_10_8x16_c : 3490.3
    vvc_w_avg_10_8x16_avx2 : 203.3
    vvc_w_avg_10_8x32_c : 5266.1
    vvc_w_avg_10_8x32_avx2 : 325.8
    vvc_w_avg_10_8x64_c : 11127.1
    vvc_w_avg_10_8x64_avx2 : 747.8
    vvc_w_avg_10_8x128_c : 31058.3
    vvc_w_avg_10_8x128_avx2 : 1424.6
    vvc_w_avg_10_16x2_c : 624.8
    vvc_w_avg_10_16x2_avx2 : 84.6
    vvc_w_avg_10_16x4_c : 1389.6
    vvc_w_avg_10_16x4_avx2 : 109.1
    vvc_w_avg_10_16x8_c : 2688.3
    vvc_w_avg_10_16x8_avx2 : 137.1
    vvc_w_avg_10_16x16_c : 5387.1
    vvc_w_avg_10_16x16_avx2 : 224.6
    vvc_w_avg_10_16x32_c : 10776.3
    vvc_w_avg_10_16x32_avx2 : 312.1
    vvc_w_avg_10_16x64_c : 18069.1
    vvc_w_avg_10_16x64_avx2 : 858.6
    vvc_w_avg_10_16x128_c : 43460.3
    vvc_w_avg_10_16x128_avx2 : 1411.6
    vvc_w_avg_10_32x2_c : 1232.8
    vvc_w_avg_10_32x2_avx2 : 99.1
    vvc_w_avg_10_32x4_c : 4017.6
    vvc_w_avg_10_32x4_avx2 : 134.1
    vvc_w_avg_10_32x8_c : 9306.3
    vvc_w_avg_10_32x8_avx2 : 208.1
    vvc_w_avg_10_32x16_c : 8424.6
    vvc_w_avg_10_32x16_avx2 : 349.3
    vvc_w_avg_10_32x32_c : 20787.8
    vvc_w_avg_10_32x32_avx2 : 655.3
    vvc_w_avg_10_32x64_c : 40972.1
    vvc_w_avg_10_32x64_avx2 : 904.8
    vvc_w_avg_10_32x128_c : 85670.3
    vvc_w_avg_10_32x128_avx2 : 1751.6
    vvc_w_avg_10_64x2_c : 2454.1
    vvc_w_avg_10_64x2_avx2 : 132.6
    vvc_w_avg_10_64x4_c : 5012.6
    vvc_w_avg_10_64x4_avx2 : 215.6
    vvc_w_avg_10_64x8_c : 10811.3
    vvc_w_avg_10_64x8_avx2 : 361.1
    vvc_w_avg_10_64x16_c : 33349.1
    vvc_w_avg_10_64x16_avx2 : 904.1
    vvc_w_avg_10_64x32_c : 41892.3
    vvc_w_avg_10_64x32_avx2 : 1220.6
    vvc_w_avg_10_64x64_c : 66983.3
    vvc_w_avg_10_64x64_avx2 : 2622.1
    vvc_w_avg_10_64x128_c : 246508.8
    vvc_w_avg_10_64x128_avx2 : 3316.8
    vvc_w_avg_10_128x2_c : 7791.6
    vvc_w_avg_10_128x2_avx2 : 198.8
    vvc_w_avg_10_128x4_c : 10534.3
    vvc_w_avg_10_128x4_avx2 : 337.3
    vvc_w_avg_10_128x8_c : 21142.3
    vvc_w_avg_10_128x8_avx2 : 614.8
    vvc_w_avg_10_128x16_c : 40968.6
    vvc_w_avg_10_128x16_avx2 : 1160.6
    vvc_w_avg_10_128x32_c : 113043.3
    vvc_w_avg_10_128x32_avx2 : 1644.6
    vvc_w_avg_10_128x64_c : 230658.3
    vvc_w_avg_10_128x64_avx2 : 5065.3
    vvc_w_avg_10_128x128_c : 335236.3
    vvc_w_avg_10_128x128_avx2 : 6450.3
    vvc_w_avg_12_2x2_c : 185.3
    vvc_w_avg_12_2x2_avx2 : 43.6
    vvc_w_avg_12_2x4_c : 340.3
    vvc_w_avg_12_2x4_avx2 : 55.8
    vvc_w_avg_12_2x8_c : 632.3
    vvc_w_avg_12_2x8_avx2 : 70.1
    vvc_w_avg_12_2x16_c : 728.3
    vvc_w_avg_12_2x16_avx2 : 108.1
    vvc_w_avg_12_2x32_c : 1392.6
    vvc_w_avg_12_2x32_avx2 : 176.8
    vvc_w_avg_12_2x64_c : 2618.3
    vvc_w_avg_12_2x64_avx2 : 757.3
    vvc_w_avg_12_2x128_c : 6408.8
    vvc_w_avg_12_2x128_avx2 : 1435.1
    vvc_w_avg_12_4x2_c : 349.3
    vvc_w_avg_12_4x2_avx2 : 44.3
    vvc_w_avg_12_4x4_c : 607.1
    vvc_w_avg_12_4x4_avx2 : 52.6
    vvc_w_avg_12_4x8_c : 1134.8
    vvc_w_avg_12_4x8_avx2 : 70.1
    vvc_w_avg_12_4x16_c : 1378.1
    vvc_w_avg_12_4x16_avx2 : 115.3
    vvc_w_avg_12_4x32_c : 2599.3
    vvc_w_avg_12_4x32_avx2 : 174.3
    vvc_w_avg_12_4x64_c : 4474.8
    vvc_w_avg_12_4x64_avx2 : 656.1
    vvc_w_avg_12_4x128_c : 11319.6
    vvc_w_avg_12_4x128_avx2 : 1373.1
    vvc_w_avg_12_8x2_c : 595.8
    vvc_w_avg_12_8x2_avx2 : 44.3
    vvc_w_avg_12_8x4_c : 1164.3
    vvc_w_avg_12_8x4_avx2 : 56.6
    vvc_w_avg_12_8x8_c : 2019.6
    vvc_w_avg_12_8x8_avx2 : 80.1
    vvc_w_avg_12_8x16_c : 4071.6
    vvc_w_avg_12_8x16_avx2 : 139.3
    vvc_w_avg_12_8x32_c : 4485.1
    vvc_w_avg_12_8x32_avx2 : 250.6
    vvc_w_avg_12_8x64_c : 8404.8
    vvc_w_avg_12_8x64_avx2 : 735.8
    vvc_w_avg_12_8x128_c : 35679.8
    vvc_w_avg_12_8x128_avx2 : 1252.6
    vvc_w_avg_12_16x2_c : 1114.8
    vvc_w_avg_12_16x2_avx2 : 46.6
    vvc_w_avg_12_16x4_c : 2240.1
    vvc_w_avg_12_16x4_avx2 : 62.6
    vvc_w_avg_12_16x8_c : 13174.6
    vvc_w_avg_12_16x8_avx2 : 88.6
    vvc_w_avg_12_16x16_c : 5334.6
    vvc_w_avg_12_16x16_avx2 : 144.3
    vvc_w_avg_12_16x32_c : 8378.1
    vvc_w_avg_12_16x32_avx2 : 234.6
    vvc_w_avg_12_16x64_c : 21300.8
    vvc_w_avg_12_16x64_avx2 : 761.8
    vvc_w_avg_12_16x128_c : 32786.8
    vvc_w_avg_12_16x128_avx2 : 1432.8
    vvc_w_avg_12_32x2_c : 2154.3
    vvc_w_avg_12_32x2_avx2 : 61.1
    vvc_w_avg_12_32x4_c : 4299.8
    vvc_w_avg_12_32x4_avx2 : 83.1
    vvc_w_avg_12_32x8_c : 7964.8
    vvc_w_avg_12_32x8_avx2 : 132.6
    vvc_w_avg_12_32x16_c : 13321.6
    vvc_w_avg_12_32x16_avx2 : 234.6
    vvc_w_avg_12_32x32_c : 21149.3
    vvc_w_avg_12_32x32_avx2 : 433.3
    vvc_w_avg_12_32x64_c : 43666.6
    vvc_w_avg_12_32x64_avx2 : 876.6
    vvc_w_avg_12_32x128_c : 83189.8
    vvc_w_avg_12_32x128_avx2 : 1756.6
    vvc_w_avg_12_64x2_c : 3829.8
    vvc_w_avg_12_64x2_avx2 : 83.1
    vvc_w_avg_12_64x4_c : 8588.1
    vvc_w_avg_12_64x4_avx2 : 127.1
    vvc_w_avg_12_64x8_c : 17027.6
    vvc_w_avg_12_64x8_avx2 : 310.6
    vvc_w_avg_12_64x16_c : 29797.8
    vvc_w_avg_12_64x16_avx2 : 415.6
    vvc_w_avg_12_64x32_c : 43854.3
    vvc_w_avg_12_64x32_avx2 : 773.3
    vvc_w_avg_12_64x64_c : 137767.3
    vvc_w_avg_12_64x64_avx2 : 1608.6
    vvc_w_avg_12_64x128_c : 316428.3
    vvc_w_avg_12_64x128_avx2 : 3249.8
    vvc_w_avg_12_128x2_c : 8824.6
    vvc_w_avg_12_128x2_avx2 : 130.3
    vvc_w_avg_12_128x4_c : 17173.6
    vvc_w_avg_12_128x4_avx2 : 219.3
    vvc_w_avg_12_128x8_c : 21997.8
    vvc_w_avg_12_128x8_avx2 : 397.3
    vvc_w_avg_12_128x16_c : 43553.8
    vvc_w_avg_12_128x16_avx2 : 790.1
    vvc_w_avg_12_128x32_c : 89792.1
    vvc_w_avg_12_128x32_avx2 : 1497.6
    vvc_w_avg_12_128x64_c : 226573.3
    vvc_w_avg_12_128x64_avx2 : 3153.1
    vvc_w_avg_12_128x128_c : 332090.1
    vvc_w_avg_12_128x128_avx2 : 6499.6

    Signed-off-by : Wu Jianhua <toqsxw@outlook.com>

    • [DH] libavcodec/x86/vvc/Makefile
    • [DH] libavcodec/x86/vvc/vvc_mc.asm
    • [DH] libavcodec/x86/vvc/vvcdsp_init.c