Recherche avancée

Médias (91)

Autres articles (40)

  • La sauvegarde automatique de canaux SPIP

    1er avril 2010, par

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

  • 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

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (7970)

  • A Complete Guide to Metrics in Google Analytics

    11 janvier 2024, par Erin

    There’s no denying that Google Analytics is the most popular web analytics solution today. Many marketers choose it to understand user behaviour. But when it offers so many different types of metrics, it can be overwhelming to choose which ones to focus on. In this article, we’ll dive into how metrics work in Google Analytics 4 and how to decide which metrics may be most useful to you, depending on your analytics needs.

    However, there are alternative web analytics solutions that can provide more accurate data and supplement GA’s existing features. Keep reading to learn how to overcome Google Analytics limitations so you can get the more out of your web analytics.

    What is a metric in Google Analytics ?

    In Google Analytics, a metric is a quantitative measurement or numerical data that provides insights into specific aspects of user behaviour. Metrics represent the counts or sums of user interactions, events or other data points. You can use GA metrics to better understand how people engage with a website or mobile app. 

    Unlike the previous Universal Analytics (the previous version of GA), GA4 is event-centric and has automated and simplified the event tracking process. Compared to Universal Analytics, GA4 is more user-centric and lets you hone in on individual user journeys. Some examples of common key metrics in GA4 are : 

    • Sessions : A group of user interactions on your website that occur within a specific time period. A session concludes when there is no user activity for 30 minutes.
    • Total Users : The cumulative count of individuals who accessed your site within a specified date range.
    • Engagement Rate : The percentage of visits to your website or app that included engagement (e.g., one more pageview, one or more conversion, etc.), determined by dividing engaged sessions by sessions.
    Main overview dashboard in GA4 displaying metrics

    Metrics are invaluable when it comes to website and conversion optimisation. Whether you’re on the marketing team, creating content or designing web pages, understanding how your users interact with your digital platforms is essential.

    GA4 metrics vs. dimensions

    GA4 uses metrics to discuss quantitative measurements and dimensions as qualitative descriptors that provide additional context to metrics. To make things crystal clear, here are some examples of how metrics and dimensions are used together : 

    • “Session duration” = metric, “device type” = dimension 
      • In this situation, the dimension can segment the data by device type so you can optimise the user experience for different devices.
    • “Bounce rate” = metric, “traffic source/medium” = dimension 
      • Here, the dimension helps you segment by traffic source to understand how different acquisition channels are performing. 
    • “Conversion rate” = metric, “Landing page” = dimension 
      • When the conversion rate data is segmented by landing page, you can better see the most effective landing pages. 

    You can get into the nitty gritty of granular analysis by combining metrics and dimensions to better understand specific user interactions.

    How do Google Analytics metrics work ?

    Before diving into the most important metrics you should track, let’s review how metrics in GA4 work. 

    GA4 overview dashboard of engagement metrics
    1. Tracking code implementation

    The process begins with implementing Google Analytics 4 tracking code into the HTML of web pages. This tracking code is JavaScript added to each website page — it collects data related to user interactions, events and other important tidbits.

    1. Data collection

    As users interact with the website or app, the Google Analytics 4 tracking code captures various data points (i.e., page views, clicks, form submissions, custom events, etc.). This raw data is compiled and sent to Google Analytics servers for processing.

    1. Data processing algorithms

    When the data reaches Google Analytics servers, data processing algorithms come into play. These algorithms analyse the incoming raw data to identify the dataset’s trends, relationships and patterns. This part of the process involves cleaning and organising the data.

    1. Segmentation and customisation

    As discussed in the previous section, Google Analytics 4 allows for segmentation and customisation of data with dimensions. To analyse specific data groups, you can define segments based on various dimensions (e.g., traffic source, device type). Custom events and user properties can also be defined to tailor the tracking to the unique needs of your website or app.

    1. Report generation

    Google Analytics 4 can make comprehensive reports and dashboards based on the processed and segmented data. These reports, often in the form of graphs and charts, help identify patterns and trends in the data.

    What are the most important Google Analytics metrics to track ? 

    In this section, we’ll identify and define key metrics for marketing teams to track in Google Analytics 4. 

    1. Pageviews are the total number of times a specific page or screen on your website or app is viewed by visitors. Pageviews are calculated each time a web page is loaded or reloaded in a browser. You can use this metric to measure the popularity of certain content on your website and what users are interested in. 
    2. Event tracking monitors user interactions with content on a website or app (i.e., clicks, downloads, video views, etc.). Event tracking provides detailed insights into user engagement so you can better understand how users interact with dynamic content. 
    3. Retention rate can be analysed with a pre-made overview report that Google Analytics 4 provides. This user metric measures the percentage of visitors who return to your website or app after their first visit within a specific time period. Retention rate = (users with subsequent visits / total users in the initial cohort) x 100. Use this information to understand how relevant or effective your content, user experience and marketing efforts are in retaining visitors. You probably have more loyal/returning buyers if you have a high retention rate. 
    4. Average session duration calculates the average time users spend on your website or app per session. Average session duration = total duration of all sessions / # of sessions. A high average session duration indicates how interested and engaged users are with your content. 
    5. Site searches and search queries on your website are automatically tracked by Google Analytics 4. These metrics include search terms, number of searches and user engagement post-search. You can use site search metrics to better understand user intent and refine content based on users’ searches. 
    6. Entrance and exit pages show where users first enter and leave your site. This metric is calculated by the percentage of sessions that start or end on a specific page. Knowing where users are entering and leaving your site can help identify places for content optimisation. 
    7. Device and browser info includes data about which devices and browsers websites or apps visitors use. This is another metric that Google Analytics 4 automatically collects and categorises during user sessions. You can use this data to improve the user experience on relevant devices and browsers. 
    8. Bounce rate is the percentage of single-page sessions where users leave your site or app without interacting further. Bounce rate = (# of single-page sessions / total # of sessions) x 100. Bounce rate is useful for determining how effective your landing pages are — pages with high bounce rates can be tweaked and optimised to enhance user engagement.

    Examples of how Matomo can elevate your web analytics

    Although Google Analytics is a powerful tool for understanding user behaviour, it also has privacy concerns, limitations and a list of issues. Another web analytics solution like Matomo can help fill those gaps so you can get the most out of your analytics.

    Examples of how Matomo and GA4 can elevate each other
    1. Cross-verify and validate your observations from Google Analytics by comparing data from Matomo’s Heatmaps and Session Recordings for the same pages. This process grants you access to these advanced features that GA4 does not offer.
    Matomo's heatmaps feature
    1. Matomo provides you with greater accuracy thanks to its privacy-friendly design. Unlike GA4, Matomo can be configured to operate without cookies. This means increased accuracy without intrusive cookie consent screens interrupting the user experience. It’s a win for you and for your users. Matomo also doesn’t apply data sampling so you can rest assured that the data you see is 100% accurate.
    1. Unlike GA4, Matomo offers direct access to customer support so you can save time sifting through community forum threads and online documentation. Gain personalised assistance and guidance for your analytics questions, and resolve issues efficiently.
    Screenshot of the Form Analytics Dashboard, showing data and insights on form usage and performance
    1. Matomo’s Form Analytics and Media Analytics extend your analytics capabilities beyond just pageviews and event tracking.

      Tracking user interactions with forms can tell you which fields users struggle with, common drop-off points, in addition to which parts of the form successfully guide visitors towards submission.

      See first-hand how Concrete CMS 3x their leads using Matomo’s Form Analytics.

      Media Analytics can provide insight into how users interact with image, video, or audio content on your website. You can use this feature to assess the relevance and popularity of specific content by knowing what your audience is engaged by.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    Final thoughts

    Although Google Analytics is a powerful tool on its own, Matomo can elevate your web analytics by offering advanced features, data accuracy and a privacy-friendly design. Don’t play a guessing game with your data — Matomo provides 100% accurate data so you don’t have to rely on AI or machine learning to fill in the gaps. Matomo can be configured cookieless which also provides you with more accurate data and a better user experience. 

    Lastly, Matomo is fully compliant with some of the world’s strictest privacy regulations like GPDR. You won’t have to sacrifice compliance for accurate, high quality data. 

    Start your 21-day free trial of Matomo — no credit card required.

  • FFMPEG = I tried resizing a video, but got different resolution than I wanted [closed]

    10 janvier 2024, par wakanasakai

    I downloaded a video that had some black bars (left & right), so I used the following command in FFmpeg to make various changes to it. I tested it on a 10 second clip to see what the result would look like.

    


    -ss 00:04:44 -to 00:04:54 -vf "crop=1870:20:20:0","scale=640x480:flags=lanczos","eq=gamma=1.5:saturation=1.3:contrast=1.2"

    


    The original video is an mp4, with a resolution of 1920 x 1080. Besides trying to crop it & adjust the gamma, saturation, & contrast, I also tried to resize it to 640 x 480. Instead, it's resulting resolution is 44880 x 480 ! I have a link to it for anybody who wants to examine it directly. (It's only 487 kb.)
text

    


    I've tried using FFmpeg before, & it never did anything so insane. (It cropped it, & adjusted the gamma a saturation (I didn't test the contrast until THIS time), but it did not resize it at all.)

    


    Here is FFmpeg's log file for it. Guesses as to the cause of the insane result, & advice on how to achieve the DESIRED result (in 1 pass, if possible) are requested.

    


    ffmpeg -hwaccel auto -y -i "/storage/emulated/0/bluetooth/Barbie & the Rockers=1080-Out of this world (1987).mp4" -ss 00:04:44 -to 00:04:54 -vf "crop=1870:20:20:0","scale=640x480:flags=lanczos","eq=gamma=1.5:saturation=1.3:contrast=1.2" "/storage/emulated/0/Movies/Barbie.mp4"

ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 4.9.x (GCC) 20150123 (prerelease)
  configuration: --enable-version3 --enable-gpl --enable-nonfree --disable-indev=v4l2 --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libvpx --enable-libvorbis --enable-libtheora --enable-libopus --enable-libfdk-aac --enable-libfreetype --enable-libass --enable-libfribidi --enable-fontconfig --enable-pthreads --enable-libxvid --enable-filters --enable-openssl --enable-librtmp --disable-protocol='udp,udplite' --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-libvo-amrwbenc --enable-libspeex --enable-libsoxr --enable-libwebp --enable-libxml2 --enable-libopenh264 --enable-jni --prefix=/home/silentlexx/AndroidstudioProjects/ffmpeg/ffmpeg/build/arm-api18-r13b --sysroot=/home/silentlexx/Android/android-ndk-r13b/platforms/android-18/arch-arm --arch=arm --disable-shared --enable-static --enable-pic --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffnvcodec --disable-avdevice --disable-debug --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-symver --cross-prefix=/home/silentlexx/Android/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --target-os=android --enable-cross-compile --pkg-config-flags=--static --extra-libs='-lgnustl_static -lm -lpng -l:libz.so -lpthread' --enable-asm --enable-neon --enable-small
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/bluetooth/Barbie & the Rockers=1080-Out of this world (1987).mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 512
    compatible_brands: mp41isomiso2
    creation_time   : 2024-01-04T01:46:07.000000Z
  Duration: 00:45:33.10, start: 0.000000, bitrate: 3404 kb/s
  Stream #0:0[0x1](und): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 3272 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
    Metadata:
      creation_time   : 2023-06-25T13:25:03.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2023-06-25T13:25:03.000000Z
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0xf38cd180] using SAR=561/8
[libx264 @ 0xf38cd180] using cpu capabilities: ARMv6 NEON
[libx264 @ 0xf38cd180] profile High, level 3.0, 4:2:0, 8-bit
[libx264 @ 0xf38cd180] 264 - core 158 r2984 3759fcb - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/storage/emulated/0/Movies/Barbie.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 512
    compatible_brands: mp41isomiso2
    encoder         : Lavf60.3.100
  Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 640x480 [SAR 561:8 DAR 187:2], q=2-31, 30 fps, 15360 tbn (default)
    Metadata:
      creation_time   : 2023-06-25T13:25:03.000000Z
      vendor_id       : [0][0][0][0]
      encoder         : Lavc60.3.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2023-06-25T13:25:03.000000Z
      vendor_id       : [0][0][0][0]
      encoder         : Lavc60.3.100 aac
frame=    0 fps=0.0 q=0.0 size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A    
frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.16 bitrate=   2.4kbits/s speed=0.00197x    
frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.71 bitrate=   0.5kbits/s speed=0.00867x    
frame=   13 fps=0.2 q=29.0 size=       0kB time=00:00:01.48 bitrate=   0.3kbits/s speed=0.0178x    
frame=   45 fps=0.5 q=29.0 size=       0kB time=00:00:02.55 bitrate=   0.2kbits/s speed=0.0304x    
frame=   78 fps=0.9 q=29.0 size=       0kB time=00:00:03.66 bitrate=   0.1kbits/s speed=0.0434x    
frame=  114 fps=1.3 q=29.0 size=       0kB time=00:00:04.85 bitrate=   0.1kbits/s speed=0.057x    
frame=  146 fps=1.7 q=29.0 size=       0kB time=00:00:05.92 bitrate=   0.1kbits/s speed=0.0692x    
frame=  178 fps=2.1 q=29.0 size=       0kB time=00:00:07.03 bitrate=   0.1kbits/s speed=0.0817x    
frame=  209 fps=2.4 q=29.0 size=     256kB time=00:00:08.03 bitrate= 261.1kbits/s speed=0.0928x    
frame=  240 fps=2.8 q=29.0 size=     256kB time=00:00:09.07 bitrate= 231.0kbits/s speed=0.104x    
frame=  300 fps=3.4 q=-1.0 Lsize=     445kB time=00:00:09.98 bitrate= 365.2kbits/s speed=0.114x    
video:275kB audio:159kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.692692%
[libx264 @ 0xf38cd180] frame I:10    Avg QP:20.34  size:  2434
[libx264 @ 0xf38cd180] frame P:129   Avg QP:21.89  size:  1292
[libx264 @ 0xf38cd180] frame B:161   Avg QP:21.69  size:   555
[libx264 @ 0xf38cd180] consecutive B-frames: 20.0% 18.7% 20.0% 41.3%
[libx264 @ 0xf38cd180] mb I  I16..4: 30.2% 66.5%  3.2%
[libx264 @ 0xf38cd180] mb P  I16..4: 14.3% 17.7%  0.2%  P16..4: 12.7%  2.7%  0.4%  0.0%  0.0%    skip:52.1%
[libx264 @ 0xf38cd180] mb B  I16..4:  2.1%  1.1%  0.0%  B16..8: 21.9%  1.7%  0.0%  direct: 1.5%  skip:71.6%  L0:46.0% L1:53.0% BI: 1.0%
[libx264 @ 0xf38cd180] 8x8 transform intra:54.9% inter:98.2%
[libx264 @ 0xf38cd180] coded y,uvDC,uvAC intra: 10.3% 14.9% 1.5% inter: 2.2% 5.4% 0.0%
[libx264 @ 0xf38cd180] i16 v,h,dc,p: 93%  2%  2%  4%
[libx264 @ 0xf38cd180] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 69%  1% 28%  0%  0%  1%  0%  0%  0%
[libx264 @ 0xf38cd180] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 76%  3% 17%  1%  1%  2%  0%  1%  0%
[libx264 @ 0xf38cd180] i8c dc,h,v,p: 45%  2% 53%  1%
[libx264 @ 0xf38cd180] Weighted P-Frames: Y:0.8% UV:0.8%
[libx264 @ 0xf38cd180] ref P L0: 57.0%  8.7% 24.0% 10.4%
[libx264 @ 0xf38cd180] ref B L0: 79.7% 17.3%  3.0%
[libx264 @ 0xf38cd180] ref B L1: 95.6%  4.4%
[libx264 @ 0xf38cd180] kb/s:224.32
[aac @ 0xf38cd880] Qavg: 457.489


    


  • swscale/x86/input.asm : add x86-optimized planer rgb2yuv functions

    24 novembre 2021, par Mark Reid
    swscale/x86/input.asm : add x86-optimized planer rgb2yuv functions
    

    sse2 only operates on 2 lanes per loop for to_y and to_uv functions, due
    to the lack of pmulld instruction. Emulating pmulld with 2 pmuludq and shuffles
    proved too costly and made to_uv functions slower then the c implementation.

    For to_y on sse2 only float functions are generated,
    I was are not able outperform the c implementation on the integer pixel formats.

    For to_a on see4 only the float functions are generated.
    sse2 and sse4 generated nearly identical performing code on integer pixel formats,
    so only sse2/avx2 versions are generated.

    planar_gbrp_to_y_512_c : 1197.5
    planar_gbrp_to_y_512_sse4 : 444.5
    planar_gbrp_to_y_512_avx2 : 287.5
    planar_gbrap_to_y_512_c : 1204.5
    planar_gbrap_to_y_512_sse4 : 447.5
    planar_gbrap_to_y_512_avx2 : 289.5
    planar_gbrp9be_to_y_512_c : 1380.0
    planar_gbrp9be_to_y_512_sse4 : 543.5
    planar_gbrp9be_to_y_512_avx2 : 340.0
    planar_gbrp9le_to_y_512_c : 1200.5
    planar_gbrp9le_to_y_512_sse4 : 442.0
    planar_gbrp9le_to_y_512_avx2 : 282.0
    planar_gbrp10be_to_y_512_c : 1378.5
    planar_gbrp10be_to_y_512_sse4 : 544.0
    planar_gbrp10be_to_y_512_avx2 : 337.5
    planar_gbrp10le_to_y_512_c : 1200.0
    planar_gbrp10le_to_y_512_sse4 : 448.0
    planar_gbrp10le_to_y_512_avx2 : 285.5
    planar_gbrap10be_to_y_512_c : 1380.0
    planar_gbrap10be_to_y_512_sse4 : 542.0
    planar_gbrap10be_to_y_512_avx2 : 340.5
    planar_gbrap10le_to_y_512_c : 1199.0
    planar_gbrap10le_to_y_512_sse4 : 446.0
    planar_gbrap10le_to_y_512_avx2 : 289.5
    planar_gbrp12be_to_y_512_c : 10563.0
    planar_gbrp12be_to_y_512_sse4 : 542.5
    planar_gbrp12be_to_y_512_avx2 : 339.0
    planar_gbrp12le_to_y_512_c : 1201.0
    planar_gbrp12le_to_y_512_sse4 : 440.5
    planar_gbrp12le_to_y_512_avx2 : 286.0
    planar_gbrap12be_to_y_512_c : 1701.5
    planar_gbrap12be_to_y_512_sse4 : 917.0
    planar_gbrap12be_to_y_512_avx2 : 338.5
    planar_gbrap12le_to_y_512_c : 1201.0
    planar_gbrap12le_to_y_512_sse4 : 444.5
    planar_gbrap12le_to_y_512_avx2 : 288.0
    planar_gbrp14be_to_y_512_c : 1370.5
    planar_gbrp14be_to_y_512_sse4 : 545.0
    planar_gbrp14be_to_y_512_avx2 : 338.5
    planar_gbrp14le_to_y_512_c : 1199.0
    planar_gbrp14le_to_y_512_sse4 : 444.0
    planar_gbrp14le_to_y_512_avx2 : 279.5
    planar_gbrp16be_to_y_512_c : 1364.0
    planar_gbrp16be_to_y_512_sse4 : 544.5
    planar_gbrp16be_to_y_512_avx2 : 339.5
    planar_gbrp16le_to_y_512_c : 1201.0
    planar_gbrp16le_to_y_512_sse4 : 445.5
    planar_gbrp16le_to_y_512_avx2 : 280.5
    planar_gbrap16be_to_y_512_c : 1377.0
    planar_gbrap16be_to_y_512_sse4 : 545.0
    planar_gbrap16be_to_y_512_avx2 : 338.5
    planar_gbrap16le_to_y_512_c : 1201.0
    planar_gbrap16le_to_y_512_sse4 : 442.0
    planar_gbrap16le_to_y_512_avx2 : 279.0
    planar_gbrpf32be_to_y_512_c : 4113.0
    planar_gbrpf32be_to_y_512_sse2 : 2438.0
    planar_gbrpf32be_to_y_512_sse4 : 1068.0
    planar_gbrpf32be_to_y_512_avx2 : 904.5
    planar_gbrpf32le_to_y_512_c : 3818.5
    planar_gbrpf32le_to_y_512_sse2 : 2024.5
    planar_gbrpf32le_to_y_512_sse4 : 1241.5
    planar_gbrpf32le_to_y_512_avx2 : 657.0
    planar_gbrapf32be_to_y_512_c : 3707.0
    planar_gbrapf32be_to_y_512_sse2 : 2444.0
    planar_gbrapf32be_to_y_512_sse4 : 1077.0
    planar_gbrapf32be_to_y_512_avx2 : 909.0
    planar_gbrapf32le_to_y_512_c : 3822.0
    planar_gbrapf32le_to_y_512_sse2 : 2024.5
    planar_gbrapf32le_to_y_512_sse4 : 1176.0
    planar_gbrapf32le_to_y_512_avx2 : 658.5

    planar_gbrp_to_uv_512_c : 2325.8
    planar_gbrp_to_uv_512_sse2 : 1726.8
    planar_gbrp_to_uv_512_sse4 : 771.8
    planar_gbrp_to_uv_512_avx2 : 506.8
    planar_gbrap_to_uv_512_c : 2281.8
    planar_gbrap_to_uv_512_sse2 : 1726.3
    planar_gbrap_to_uv_512_sse4 : 768.3
    planar_gbrap_to_uv_512_avx2 : 496.3
    planar_gbrp9be_to_uv_512_c : 2336.8
    planar_gbrp9be_to_uv_512_sse2 : 1924.8
    planar_gbrp9be_to_uv_512_sse4 : 852.3
    planar_gbrp9be_to_uv_512_avx2 : 552.8
    planar_gbrp9le_to_uv_512_c : 2270.3
    planar_gbrp9le_to_uv_512_sse2 : 1512.3
    planar_gbrp9le_to_uv_512_sse4 : 764.3
    planar_gbrp9le_to_uv_512_avx2 : 491.3
    planar_gbrp10be_to_uv_512_c : 2281.8
    planar_gbrp10be_to_uv_512_sse2 : 1917.8
    planar_gbrp10be_to_uv_512_sse4 : 855.3
    planar_gbrp10be_to_uv_512_avx2 : 541.3
    planar_gbrp10le_to_uv_512_c : 2269.8
    planar_gbrp10le_to_uv_512_sse2 : 1515.3
    planar_gbrp10le_to_uv_512_sse4 : 759.8
    planar_gbrp10le_to_uv_512_avx2 : 487.8
    planar_gbrap10be_to_uv_512_c : 2382.3
    planar_gbrap10be_to_uv_512_sse2 : 1924.8
    planar_gbrap10be_to_uv_512_sse4 : 855.3
    planar_gbrap10be_to_uv_512_avx2 : 540.8
    planar_gbrap10le_to_uv_512_c : 2382.3
    planar_gbrap10le_to_uv_512_sse2 : 1512.3
    planar_gbrap10le_to_uv_512_sse4 : 759.3
    planar_gbrap10le_to_uv_512_avx2 : 484.8
    planar_gbrp12be_to_uv_512_c : 2283.8
    planar_gbrp12be_to_uv_512_sse2 : 1936.8
    planar_gbrp12be_to_uv_512_sse4 : 858.3
    planar_gbrp12be_to_uv_512_avx2 : 541.3
    planar_gbrp12le_to_uv_512_c : 2278.8
    planar_gbrp12le_to_uv_512_sse2 : 1507.3
    planar_gbrp12le_to_uv_512_sse4 : 760.3
    planar_gbrp12le_to_uv_512_avx2 : 485.8
    planar_gbrap12be_to_uv_512_c : 2385.3
    planar_gbrap12be_to_uv_512_sse2 : 1927.8
    planar_gbrap12be_to_uv_512_sse4 : 855.3
    planar_gbrap12be_to_uv_512_avx2 : 539.8
    planar_gbrap12le_to_uv_512_c : 2377.3
    planar_gbrap12le_to_uv_512_sse2 : 1516.3
    planar_gbrap12le_to_uv_512_sse4 : 759.3
    planar_gbrap12le_to_uv_512_avx2 : 484.8
    planar_gbrp14be_to_uv_512_c : 2283.8
    planar_gbrp14be_to_uv_512_sse2 : 1935.3
    planar_gbrp14be_to_uv_512_sse4 : 852.3
    planar_gbrp14be_to_uv_512_avx2 : 540.3
    planar_gbrp14le_to_uv_512_c : 2276.8
    planar_gbrp14le_to_uv_512_sse2 : 1514.8
    planar_gbrp14le_to_uv_512_sse4 : 762.3
    planar_gbrp14le_to_uv_512_avx2 : 484.8
    planar_gbrp16be_to_uv_512_c : 2383.3
    planar_gbrp16be_to_uv_512_sse2 : 1881.8
    planar_gbrp16be_to_uv_512_sse4 : 852.3
    planar_gbrp16be_to_uv_512_avx2 : 541.8
    planar_gbrp16le_to_uv_512_c : 2378.3
    planar_gbrp16le_to_uv_512_sse2 : 1476.8
    planar_gbrp16le_to_uv_512_sse4 : 765.3
    planar_gbrp16le_to_uv_512_avx2 : 485.8
    planar_gbrap16be_to_uv_512_c : 2382.3
    planar_gbrap16be_to_uv_512_sse2 : 1886.3
    planar_gbrap16be_to_uv_512_sse4 : 853.8
    planar_gbrap16be_to_uv_512_avx2 : 550.8
    planar_gbrap16le_to_uv_512_c : 2381.8
    planar_gbrap16le_to_uv_512_sse2 : 1488.3
    planar_gbrap16le_to_uv_512_sse4 : 765.3
    planar_gbrap16le_to_uv_512_avx2 : 491.8
    planar_gbrpf32be_to_uv_512_c : 4863.0
    planar_gbrpf32be_to_uv_512_sse2 : 3347.5
    planar_gbrpf32be_to_uv_512_sse4 : 1800.0
    planar_gbrpf32be_to_uv_512_avx2 : 1199.0
    planar_gbrpf32le_to_uv_512_c : 4725.0
    planar_gbrpf32le_to_uv_512_sse2 : 2753.0
    planar_gbrpf32le_to_uv_512_sse4 : 1474.5
    planar_gbrpf32le_to_uv_512_avx2 : 927.5
    planar_gbrapf32be_to_uv_512_c : 4859.0
    planar_gbrapf32be_to_uv_512_sse2 : 3269.0
    planar_gbrapf32be_to_uv_512_sse4 : 1802.0
    planar_gbrapf32be_to_uv_512_avx2 : 1201.5
    planar_gbrapf32le_to_uv_512_c : 6338.0
    planar_gbrapf32le_to_uv_512_sse2 : 2756.5
    planar_gbrapf32le_to_uv_512_sse4 : 1476.0
    planar_gbrapf32le_to_uv_512_avx2 : 908.5

    planar_gbrap_to_a_512_c : 383.3
    planar_gbrap_to_a_512_sse2 : 66.8
    planar_gbrap_to_a_512_avx2 : 43.8
    planar_gbrap10be_to_a_512_c : 601.8
    planar_gbrap10be_to_a_512_sse2 : 86.3
    planar_gbrap10be_to_a_512_avx2 : 34.8
    planar_gbrap10le_to_a_512_c : 602.3
    planar_gbrap10le_to_a_512_sse2 : 48.8
    planar_gbrap10le_to_a_512_avx2 : 31.3
    planar_gbrap12be_to_a_512_c : 601.8
    planar_gbrap12be_to_a_512_sse2 : 111.8
    planar_gbrap12be_to_a_512_avx2 : 41.3
    planar_gbrap12le_to_a_512_c : 385.8
    planar_gbrap12le_to_a_512_sse2 : 75.3
    planar_gbrap12le_to_a_512_avx2 : 39.8
    planar_gbrap16be_to_a_512_c : 386.8
    planar_gbrap16be_to_a_512_sse2 : 79.8
    planar_gbrap16be_to_a_512_avx2 : 31.3
    planar_gbrap16le_to_a_512_c : 600.3
    planar_gbrap16le_to_a_512_sse2 : 40.3
    planar_gbrap16le_to_a_512_avx2 : 30.3
    planar_gbrapf32be_to_a_512_c : 1148.8
    planar_gbrapf32be_to_a_512_sse2 : 611.3
    planar_gbrapf32be_to_a_512_sse4 : 234.8
    planar_gbrapf32be_to_a_512_avx2 : 183.3
    planar_gbrapf32le_to_a_512_c : 851.3
    planar_gbrapf32le_to_a_512_sse2 : 263.3
    planar_gbrapf32le_to_a_512_sse4 : 199.3
    planar_gbrapf32le_to_a_512_avx2 : 156.8

    Reviewed-by : Paul B Mahol <onemda@gmail.com>
    Signed-off-by : James Almer <jamrial@gmail.com>

    • [DH] libswscale/x86/input.asm
    • [DH] libswscale/x86/swscale.c
    • [DH] tests/checkasm/sw_gbrp.c