
Recherche avancée
Médias (1)
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (47)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains 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 ;
-
Publier sur MédiaSpip
13 juin 2013Puis-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 (3518)
-
H.264 muxed to MP4 using libavformat not playing back
14 mai 2015, par Brad MitchellI am trying to mux H.264 data into a MP4 file. There appear to be no errors in saving this H.264 Annex B data out to an MP4 file, but the file fails to playback.
I’ve done a binary comparison on the files and the issue seems to be somewhere in what is being written to the footer (trailer) of the MP4 file.
I suspect it has to be something with the way the stream is being created or something.
Init :
AVOutputFormat* fmt = av_guess_format( 0, "out.mp4", 0 );
oc = avformat_alloc_context();
oc->oformat = fmt;
strcpy(oc->filename, filename);Part of this prototype app I have is creating a png file for each IFrame. So when the first IFrame is encountered, I create the video stream and write the av header etc :
void addVideoStream(AVCodecContext* decoder)
{
videoStream = av_new_stream(oc, 0);
if (!videoStream)
{
cout << "ERROR creating video stream" << endl;
return;
}
vi = videoStream->index;
videoContext = videoStream->codec;
videoContext->codec_type = AVMEDIA_TYPE_VIDEO;
videoContext->codec_id = decoder->codec_id;
videoContext->bit_rate = 512000;
videoContext->width = decoder->width;
videoContext->height = decoder->height;
videoContext->time_base.den = 25;
videoContext->time_base.num = 1;
videoContext->gop_size = decoder->gop_size;
videoContext->pix_fmt = decoder->pix_fmt;
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
videoContext->flags |= CODEC_FLAG_GLOBAL_HEADER;
av_dump_format(oc, 0, filename, 1);
if (!(oc->oformat->flags & AVFMT_NOFILE))
{
if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0) {
cout << "Error opening file" << endl;
}
avformat_write_header(oc, NULL);
}I write packets out :
unsigned char* data = block->getData();
unsigned char videoFrameType = data[4];
int dataLen = block->getDataLen();
// store pps
if (videoFrameType == 0x68)
{
if (ppsFrame != NULL)
{
delete ppsFrame; ppsFrameLength = 0; ppsFrame = NULL;
}
ppsFrameLength = block->getDataLen();
ppsFrame = new unsigned char[ppsFrameLength];
memcpy(ppsFrame, block->getData(), ppsFrameLength);
}
else if (videoFrameType == 0x67)
{
// sps
if (spsFrame != NULL)
{
delete spsFrame; spsFrameLength = 0; spsFrame = NULL;
}
spsFrameLength = block->getDataLen();
spsFrame = new unsigned char[spsFrameLength];
memcpy(spsFrame, block->getData(), spsFrameLength);
}
if (videoFrameType == 0x65 || videoFrameType == 0x41)
{
videoFrameNumber++;
}
if (videoFrameType == 0x65)
{
decodeIFrame(videoFrameNumber, spsFrame, spsFrameLength, ppsFrame, ppsFrameLength, data, dataLen);
}
if (videoStream != NULL)
{
AVPacket pkt = { 0 };
av_init_packet(&pkt);
pkt.stream_index = vi;
pkt.flags = 0;
pkt.pts = pkt.dts = 0;
if (videoFrameType == 0x65)
{
// combine the SPS PPS & I frames together
pkt.flags |= AV_PKT_FLAG_KEY;
unsigned char* videoFrame = new unsigned char[spsFrameLength+ppsFrameLength+dataLen];
memcpy(videoFrame, spsFrame, spsFrameLength);
memcpy(&videoFrame[spsFrameLength], ppsFrame, ppsFrameLength);
memcpy(&videoFrame[spsFrameLength+ppsFrameLength], data, dataLen);
// overwrite the start code (00 00 00 01 with a 32-bit length)
setLength(videoFrame, spsFrameLength-4);
setLength(&videoFrame[spsFrameLength], ppsFrameLength-4);
setLength(&videoFrame[spsFrameLength+ppsFrameLength], dataLen-4);
pkt.size = dataLen + spsFrameLength + ppsFrameLength;
pkt.data = videoFrame;
av_interleaved_write_frame(oc, &pkt);
delete videoFrame; videoFrame = NULL;
}
else if (videoFrameType != 0x67 && videoFrameType != 0x68)
{
// Send other frames except pps & sps which are caught and stored
pkt.size = dataLen;
pkt.data = data;
setLength(data, dataLen-4);
av_interleaved_write_frame(oc, &pkt);
}Finally to close the file off :
av_write_trailer(oc);
int i = 0;
for (i = 0; i < oc->nb_streams; i++)
{
av_freep(&oc->streams[i]->codec);
av_freep(&oc->streams[i]);
}
if (!(oc->oformat->flags & AVFMT_NOFILE))
{
avio_close(oc->pb);
}
av_free(oc);If I take the H.264 data alone and convert it :
ffmpeg -i recording.h264 -vcodec copy recording.mp4
All but the "footer" of the files are the same.
Output from my program :
readrec recording.tcp out.mp4
** START * 01-03-2013 14:26:01 180000
Output #0, mp4, to ’out.mp4’ :
Stream #0:0 : Video : h264, yuv420p, 352x288, q=2-31, 512 kb/s, 90k tbn, 25 tbc
* END ** 01-03-2013 14:27:01 102000
Wrote 1499 video frames.If I try to convert using ffmpeg the MP4 file created using CODE :
ffmpeg -i out.mp4 -vcodec copy out2.mp4
ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
built on Mar 7 2013 12:49:22 with suncc 0x5110
configuration: --extra-cflags=-KPIC -g --disable-mmx
--disable-protocol=udp --disable-encoder=nellymoser --cc=cc --cxx=CC
libavutil 51. 54.100 / 51. 54.100
libavcodec 54. 23.100 / 54. 23.100
libavformat 54. 6.100 / 54. 6.100
libavdevice 54. 0.100 / 54. 0.100
libavfilter 2. 77.100 / 2. 77.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 15.100 / 0. 15.100
h264 @ 12eaac0] no frame!
Last message repeated 1 times
[h264 @ 12eaac0] slice type too large (0) at 0 0
[h264 @ 12eaac0] decode_slice_header error
[h264 @ 12eaac0] no frame!
Last message repeated 23 times
[h264 @ 12eaac0] slice type too large (0) at 0 0
[h264 @ 12eaac0] decode_slice_header error
[h264 @ 12eaac0] no frame!
Last message repeated 74 times
[h264 @ 12eaac0] slice type too large (0) at 0 0
[h264 @ 12eaac0] decode_slice_header error
[h264 @ 12eaac0] no frame!
Last message repeated 64 times
[h264 @ 12eaac0] slice type too large (0) at 0 0
[h264 @ 12eaac0] decode_slice_header error
[h264 @ 12eaac0] no frame!
Last message repeated 34 times
[h264 @ 12eaac0] slice type too large (0) at 0 0
[h264 @ 12eaac0] decode_slice_header error
[h264 @ 12eaac0] no frame!
Last message repeated 49 times
[h264 @ 12eaac0] slice type too large (0) at 0 0
[h264 @ 12eaac0] decode_slice_header error
[h264 @ 12eaac0] no frame!
Last message repeated 24 times
[h264 @ 12eaac0] Partitioned H.264 support is incomplete
[h264 @ 12eaac0] no frame!
Last message repeated 23 times
[h264 @ 12eaac0] sps_id out of range
[h264 @ 12eaac0] no frame!
Last message repeated 148 times
[h264 @ 12eaac0] sps_id (32) out of range
Last message repeated 1 times
[h264 @ 12eaac0] no frame!
Last message repeated 33 times
[h264 @ 12eaac0] slice type too large (0) at 0 0
[h264 @ 12eaac0] decode_slice_header error
[h264 @ 12eaac0] no frame!
Last message repeated 128 times
[h264 @ 12eaac0] sps_id (32) out of range
Last message repeated 1 times
[h264 @ 12eaac0] no frame!
Last message repeated 3 times
[h264 @ 12eaac0] slice type too large (0) at 0 0
[h264 @ 12eaac0] decode_slice_header error
[h264 @ 12eaac0] no frame!
Last message repeated 3 times
[h264 @ 12eaac0] slice type too large (0) at 0 0
[h264 @ 12eaac0] decode_slice_header error
[h264 @ 12eaac0] no frame!
Last message repeated 309 times
[h264 @ 12eaac0] sps_id (32) out of range
Last message repeated 1 times
[h264 @ 12eaac0] no frame!
Last message repeated 192 times
[h264 @ 12eaac0] Partitioned H.264 support is incomplete
[h264 @ 12eaac0] no frame!
Last message repeated 73 times
[h264 @ 12eaac0] sps_id (32) out of range
Last message repeated 1 times
[h264 @ 12eaac0] no frame!
Last message repeated 99 times
[h264 @ 12eaac0] sps_id (32) out of range
Last message repeated 1 times
[h264 @ 12eaac0] no frame!
Last message repeated 197 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 12e3100] decoding for stream 0 failed
[mov,mp4,m4a,3gp,3g2,mj2 @ 12e3100] Could not find codec parameters
(Video: h264 (avc1 / 0x31637661), 393539 kb/s)
out.mp4: could not find codec parametersI really do not know where the issue is, except it has to be something to do with the way the streams are being set up. I’ve looked at bits of code from where other people are doing a similar thing, and tried to use this advice in setting up the streams, but to no avail !
The final code which gave me a H.264/AAC muxed (synced) file is as follows. First a bit of background information. The data is coming from an IP camera. The data is presented via a 3rd party API as video/audio packets. The video packets are presented as the RTP payload data (no header) and consist of NALU’s that are reconstructed and converted to H.264 video in Annex B format. AAC audio is presented as raw AAC and is converted to adts format to enable playback. These packets have been put into a bitstream format that allows the transmission of the timestamp (64 bit milliseconds since Jan 1 1970) along with a few other things.
This is more or less a prototype and is not clean in any respects. It probably leaks bad. I do however, hope this helps anyone else out trying to achieve something similar to what I am.
Globals :
AVFormatContext* oc = NULL;
AVCodecContext* videoContext = NULL;
AVStream* videoStream = NULL;
AVCodecContext* audioContext = NULL;
AVStream* audioStream = NULL;
AVCodec* videoCodec = NULL;
AVCodec* audioCodec = NULL;
int vi = 0; // Video stream
int ai = 1; // Audio stream
uint64_t firstVideoTimeStamp = 0;
uint64_t firstAudioTimeStamp = 0;
int audioStartOffset = 0;
char* filename = NULL;
Boolean first = TRUE;
int videoFrameNumber = 0;
int audioFrameNumber = 0;Main :
int main(int argc, char* argv[])
{
if (argc != 3)
{
cout << argv[0] << " <stream playback="playback" file="file"> <output mp4="mp4" file="file">" << endl;
return 0;
}
char* input_stream_file = argv[1];
filename = argv[2];
av_register_all();
fstream inFile;
inFile.open(input_stream_file, ios::in);
// Used to store the latest pps & sps frames
unsigned char* ppsFrame = NULL;
int ppsFrameLength = 0;
unsigned char* spsFrame = NULL;
int spsFrameLength = 0;
// Setup MP4 output file
AVOutputFormat* fmt = av_guess_format( 0, filename, 0 );
oc = avformat_alloc_context();
oc->oformat = fmt;
strcpy(oc->filename, filename);
// Setup the bitstream filter for AAC in adts format. Could probably also achieve
// this by stripping the first 7 bytes!
AVBitStreamFilterContext* bsfc = av_bitstream_filter_init("aac_adtstoasc");
if (!bsfc)
{
cout << "Error creating adtstoasc filter" << endl;
return -1;
}
while (inFile.good())
{
TcpAVDataBlock* block = new TcpAVDataBlock();
block->readStruct(inFile);
DateTime dt = block->getTimestampAsDateTime();
switch (block->getPacketType())
{
case TCP_PACKET_H264:
{
if (firstVideoTimeStamp == 0)
firstVideoTimeStamp = block->getTimeStamp();
unsigned char* data = block->getData();
unsigned char videoFrameType = data[4];
int dataLen = block->getDataLen();
// pps
if (videoFrameType == 0x68)
{
if (ppsFrame != NULL)
{
delete ppsFrame; ppsFrameLength = 0;
ppsFrame = NULL;
}
ppsFrameLength = block->getDataLen();
ppsFrame = new unsigned char[ppsFrameLength];
memcpy(ppsFrame, block->getData(), ppsFrameLength);
}
else if (videoFrameType == 0x67)
{
// sps
if (spsFrame != NULL)
{
delete spsFrame; spsFrameLength = 0;
spsFrame = NULL;
}
spsFrameLength = block->getDataLen();
spsFrame = new unsigned char[spsFrameLength];
memcpy(spsFrame, block->getData(), spsFrameLength);
}
if (videoFrameType == 0x65 || videoFrameType == 0x41)
{
videoFrameNumber++;
}
// Extract a thumbnail for each I-Frame
if (videoFrameType == 0x65)
{
decodeIFrame(h264, spsFrame, spsFrameLength, ppsFrame, ppsFrameLength, data, dataLen);
}
if (videoStream != NULL)
{
AVPacket pkt = { 0 };
av_init_packet(&pkt);
pkt.stream_index = vi;
pkt.flags = 0;
pkt.pts = videoFrameNumber;
pkt.dts = videoFrameNumber;
if (videoFrameType == 0x65)
{
pkt.flags = 1;
unsigned char* videoFrame = new unsigned char[spsFrameLength+ppsFrameLength+dataLen];
memcpy(videoFrame, spsFrame, spsFrameLength);
memcpy(&videoFrame[spsFrameLength], ppsFrame, ppsFrameLength);
memcpy(&videoFrame[spsFrameLength+ppsFrameLength], data, dataLen);
pkt.data = videoFrame;
av_interleaved_write_frame(oc, &pkt);
delete videoFrame; videoFrame = NULL;
}
else if (videoFrameType != 0x67 && videoFrameType != 0x68)
{
pkt.size = dataLen;
pkt.data = data;
av_interleaved_write_frame(oc, &pkt);
}
}
break;
}
case TCP_PACKET_AAC:
if (firstAudioTimeStamp == 0)
{
firstAudioTimeStamp = block->getTimeStamp();
uint64_t millseconds_difference = firstAudioTimeStamp - firstVideoTimeStamp;
audioStartOffset = millseconds_difference * 16000 / 1000;
cout << "audio offset: " << audioStartOffset << endl;
}
if (audioStream != NULL)
{
AVPacket pkt = { 0 };
av_init_packet(&pkt);
pkt.stream_index = ai;
pkt.flags = 1;
pkt.pts = audioFrameNumber*1024;
pkt.dts = audioFrameNumber*1024;
pkt.data = block->getData();
pkt.size = block->getDataLen();
pkt.duration = 1024;
AVPacket newpacket = pkt;
int rc = av_bitstream_filter_filter(bsfc, audioContext,
NULL,
&newpacket.data, &newpacket.size,
pkt.data, pkt.size,
pkt.flags & AV_PKT_FLAG_KEY);
if (rc >= 0)
{
//cout << "Write audio frame" << endl;
newpacket.pts = audioFrameNumber*1024;
newpacket.dts = audioFrameNumber*1024;
audioFrameNumber++;
newpacket.duration = 1024;
av_interleaved_write_frame(oc, &newpacket);
av_free_packet(&newpacket);
}
else
{
cout << "Error filtering aac packet" << endl;
}
}
break;
case TCP_PACKET_START:
break;
case TCP_PACKET_END:
break;
}
delete block;
}
inFile.close();
av_write_trailer(oc);
int i = 0;
for (i = 0; i < oc->nb_streams; i++)
{
av_freep(&oc->streams[i]->codec);
av_freep(&oc->streams[i]);
}
if (!(oc->oformat->flags & AVFMT_NOFILE))
{
avio_close(oc->pb);
}
av_free(oc);
delete spsFrame; spsFrame = NULL;
delete ppsFrame; ppsFrame = NULL;
cout << "Wrote " << videoFrameNumber << " video frames." << endl;
return 0;
}
</output></stream>The stream stream/codecs are added and the header is created in a function called addVideoAndAudioStream(). This function is called from decodeIFrame() so there are a few assumptions (which aren’t necessarily good)
1. A video packet comes first
2. AAC is presentThe decodeIFrame was kind of a separate prototype by where I was creating a thumbnail for each I Frame. The code to generate thumbnails was from : https://gnunet.org/svn/Extractor/src/plugins/thumbnailffmpeg_extractor.c
The decodeIFrame function passes an AVCodecContext into addVideoAudioStream :
void addVideoAndAudioStream(AVCodecContext* decoder = NULL)
{
videoStream = av_new_stream(oc, 0);
if (!videoStream)
{
cout << "ERROR creating video stream" << endl;
return;
}
vi = videoStream->index;
videoContext = videoStream->codec;
videoContext->codec_type = AVMEDIA_TYPE_VIDEO;
videoContext->codec_id = decoder->codec_id;
videoContext->bit_rate = 512000;
videoContext->width = decoder->width;
videoContext->height = decoder->height;
videoContext->time_base.den = 25;
videoContext->time_base.num = 1;
videoContext->gop_size = decoder->gop_size;
videoContext->pix_fmt = decoder->pix_fmt;
audioStream = av_new_stream(oc, 1);
if (!audioStream)
{
cout << "ERROR creating audio stream" << endl;
return;
}
ai = audioStream->index;
audioContext = audioStream->codec;
audioContext->codec_type = AVMEDIA_TYPE_AUDIO;
audioContext->codec_id = CODEC_ID_AAC;
audioContext->bit_rate = 64000;
audioContext->sample_rate = 16000;
audioContext->channels = 1;
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
{
videoContext->flags |= CODEC_FLAG_GLOBAL_HEADER;
audioContext->flags |= CODEC_FLAG_GLOBAL_HEADER;
}
av_dump_format(oc, 0, filename, 1);
if (!(oc->oformat->flags & AVFMT_NOFILE))
{
if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0) {
cout << "Error opening file" << endl;
}
}
avformat_write_header(oc, NULL);
}As far as I can tell, a number of assumptions didn’t seem to matter, for example :
1. Bit Rate. The actual video bit rate was 262k whereas I specified 512kbit
2. AAC channels. I specified mono, although the actual output was Stereo from memoryYou would still need to know what the frame rate (time base) is for the video & audio.
Contrary to a lot of other examples, when setting pts & dts on the video packets, it was not playable. I needed to know the time base (25fps) and then set the pts & dts according to that time base, i.e. first frame = 0 (PPS, SPS, I), second frame = 1 (intermediate frame, whatever its called ;)).
AAC I also had to make the assumption that it was 16000 hz. 1024 samples per AAC packet (You can also have AAC @ 960 samples I think) to determine the audio "offset". I added this to the pts & dts. So the pts/dts are the sample number that it is to played back at. You also need to make sure that the duration of 1024 is set in the packet before writing also.
—
I have found additionally today that Annex B isn’t really compatible with any other player so AVCC format should really be used.
These URLS helped :
Problem to Decode H264 video over RTP with ffmpeg (libavcodec)
http://aviadr1.blogspot.com.au/2010/05/h264-extradata-partially-explained-for.htmlWhen constructing the video stream, I filled out the extradata & extradata_size :
// Extradata contains PPS & SPS for AVCC format
int extradata_len = 8 + spsFrameLen-4 + 1 + 2 + ppsFrameLen-4;
videoContext->extradata = (uint8_t*)av_mallocz(extradata_len);
videoContext->extradata_size = extradata_len;
videoContext->extradata[0] = 0x01;
videoContext->extradata[1] = spsFrame[4+1];
videoContext->extradata[2] = spsFrame[4+2];
videoContext->extradata[3] = spsFrame[4+3];
videoContext->extradata[4] = 0xFC | 3;
videoContext->extradata[5] = 0xE0 | 1;
int tmp = spsFrameLen - 4;
videoContext->extradata[6] = (tmp >> 8) & 0x00ff;
videoContext->extradata[7] = tmp & 0x00ff;
int i = 0;
for (i=0;iextradata[8+i] = spsFrame[4+i];
videoContext->extradata[8+tmp] = 0x01;
int tmp2 = ppsFrameLen-4;
videoContext->extradata[8+tmp+1] = (tmp2 >> 8) & 0x00ff;
videoContext->extradata[8+tmp+2] = tmp2 & 0x00ff;
for (i=0;iextradata[8+tmp+3+i] = ppsFrame[4+i];When writing out the frames, don’t prepend the SPS & PPS frames, just write out the I Frame & P frames. In addition, replace the Annex B start code contained in the first 4 bytes (0x00 0x00 0x00 0x01) with the size of the I/P frame.
-
No sounds on Apple devices after encoding videos [migrated]
15 décembre 2013, par RicardoI'm having a problem setting up a media server.
Everything works just great except the sound of Apple devices, I'm not sure if that's something with "mute" on iOS or our codecs are just not compatible with iOS.OS :
Ubuntu 12.04
FFMPEG Config :
ffmpeg version 0.10.8-7:0.10.8-1~lucid1 Copyright 2000-2013 the FFmpeg developers
built on Sep 5 2013 19:50:14 with gcc 4.4.3
configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.8-1~lucid1' --libdir=/usr/lib --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib --enable-shared --disable-static
avcodec configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.8-1~lucid1' --libdir=/usr/lib --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib --enable-shared --disable-static --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb
libavutil 51. 35.100 / 51. 35.100
libavcodec 53. 61.100 / 53. 61.100
libavformat 53. 32.100 / 53. 32.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 61.100 / 2. 61.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 52. 0.100 / 52. 0.100
Hyper fast Audio and Video encoderCodecs :
D..... = Decoding supported
.E.... = Encoding supported
..V... = Video codec
..A... = Audio codec
..S... = Subtitle codec
...S.. = Supports draw_horiz_band
....D. = Supports direct rendering method 1
.....T = Supports weird frame truncation
------
D V D 4xm 4X Movie
D V D 8bps QuickTime 8BPS video
D A D 8svx_exp 8SVX exponential
D A D 8svx_fib 8SVX fibonacci
EV a64multi Multicolor charset for Commodore 64
EV a64multi5 Multicolor charset for Commodore 64, extended with 5th color (colram)
DEA D aac Advanced Audio Coding
D A D aac_latm AAC LATM (Advanced Audio Codec LATM syntax)
D V D aasc Autodesk RLE
DEA D ac3 ATSC A/52A (AC-3)
EA ac3_fixed ATSC A/52A (AC-3)
D A D adpcm_4xm ADPCM 4X Movie
DEA D adpcm_adx SEGA CRI ADX ADPCM
D A D adpcm_ct ADPCM Creative Technology
D A D adpcm_ea ADPCM Electronic Arts
D A D adpcm_ea_maxis_xa ADPCM Electronic Arts Maxis CDROM XA
D A D adpcm_ea_r1 ADPCM Electronic Arts R1
D A D adpcm_ea_r2 ADPCM Electronic Arts R2
D A D adpcm_ea_r3 ADPCM Electronic Arts R3
D A D adpcm_ea_xas ADPCM Electronic Arts XAS
D A D adpcm_ima_amv ADPCM IMA AMV
D A D adpcm_ima_apc ADPCM IMA CRYO APC
D A D adpcm_ima_dk3 ADPCM IMA Duck DK3
D A D adpcm_ima_dk4 ADPCM IMA Duck DK4
D A D adpcm_ima_ea_eacs ADPCM IMA Electronic Arts EACS
D A D adpcm_ima_ea_sead ADPCM IMA Electronic Arts SEAD
D A D adpcm_ima_iss ADPCM IMA Funcom ISS
DEA D adpcm_ima_qt ADPCM IMA QuickTime
D A D adpcm_ima_smjpeg ADPCM IMA Loki SDL MJPEG
DEA D adpcm_ima_wav ADPCM IMA WAV
D A D adpcm_ima_ws ADPCM IMA Westwood
DEA D adpcm_ms ADPCM Microsoft
D A D adpcm_sbpro_2 ADPCM Sound Blaster Pro 2-bit
D A D adpcm_sbpro_3 ADPCM Sound Blaster Pro 2.6-bit
D A D adpcm_sbpro_4 ADPCM Sound Blaster Pro 4-bit
DEA D adpcm_swf ADPCM Shockwave Flash
D A D adpcm_thp ADPCM Nintendo Gamecube THP
D A D adpcm_xa ADPCM CDROM XA
DEA D adpcm_yamaha ADPCM Yamaha
DEA D alac ALAC (Apple Lossless Audio Codec)
D A D als MPEG-4 Audio Lossless Coding (ALS)
D A D amrnb Adaptive Multi-Rate NarrowBand
D A D amrwb Adaptive Multi-Rate WideBand
DEV amv AMV Video
D V D anm Deluxe Paint Animation
D V D ansi ASCII/ANSI art
D A D ape Monkey's Audio
DES ass Advanced SubStation Alpha subtitle
DEV D asv1 ASUS V1
DEV D asv2 ASUS V2
D A D atrac1 Atrac 1 (Adaptive TRansform Acoustic Coding)
D A D atrac3 Atrac 3 (Adaptive TRansform Acoustic Coding 3)
D V D aura Auravision AURA
D V D aura2 Auravision Aura 2
DEV D avrp Avid 1:1 10-bit RGB Packer
D V D avs AVS (Audio Video Standard) video
D V D bethsoftvid Bethesda VID video
D V D bfi Brute Force & Ignorance
D A D binkaudio_dct Bink Audio (DCT)
D A D binkaudio_rdft Bink Audio (RDFT)
D V binkvideo Bink video
D V D bintext Binary text
DEV D bmp BMP image
D A D bmv_audio Discworld II BMV audio
D V bmv_video Discworld II BMV video
D V D c93 Interplay C93
D V D camstudio CamStudio
D V D camtasia TechSmith Screen Capture Codec
D V D cavs Chinese AVS video (AVS1-P2, JiZhun profile)
D V D cdgraphics CD Graphics video
D V D cinepak Cinepak
DEV D cljr Cirrus Logic AccuPak
D A D cook COOK
D V D cyuv Creative YUV (CYUV)
DEA D dca DCA (DTS Coherent Acoustics)
D V D dfa Chronomaster DFA
D V dirac BBC Dirac VC-2
DEV D dnxhd VC3/DNxHD
DEV dpx DPX image
D A D dsicinaudio Delphine Software International CIN audio
D V D dsicinvideo Delphine Software International CIN video
DES dvbsub DVB subtitles
DES dvdsub DVD subtitles
DEV D dvvideo DV (Digital Video)
D V D dxa Feeble Files/ScummVM DXA
D V D dxtory Dxtory
DEA D eac3 ATSC A/52 E-AC-3
D V D eacmv Electronic Arts CMV video
D V D eamad Electronic Arts Madcow Video
D V D eatgq Electronic Arts TGQ video
D V eatgv Electronic Arts TGV video
D V D eatqi Electronic Arts TQI Video
D V D escape124 Escape 124
D V D escape130 Escape 130
DEV D ffv1 FFmpeg video codec #1
DEVSD ffvhuff Huffyuv FFmpeg variant
DEA D flac FLAC (Free Lossless Audio Codec)
DEV D flashsv Flash Screen Video
DEV D flashsv2 Flash Screen Video Version 2
D V D flic Autodesk Animator Flic video
DEVSD flv Flash Video (FLV) / Sorenson Spark / Sorenson H.263
D V D fraps Fraps
D V D frwu Forward Uncompressed
DEA D g722 G.722 ADPCM
DEA g723_1 G.723.1
DEA D g726 G.726 ADPCM
D A D g729 G.729
DEV D gif GIF (Graphics Interchange Format)
D A D gsm GSM
D A D gsm_ms GSM Microsoft variant
DEV D h261 H.261
DEVSDT h263 H.263 / H.263-1996
D VSD h263i Intel H.263
EV h263p H.263+ / H.263-1998 / H.263 version 2
D V D h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
D V D h264_vdpau H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)
DEVSD huffyuv Huffyuv / HuffYUV
D V D idcinvideo id Quake II CIN video
D V D idf iCEDraw text
D V D iff_byterun1 IFF ByteRun1
D V D iff_ilbm IFF ILBM
D A D imc IMC (Intel Music Coder)
D V D indeo2 Intel Indeo 2
D V indeo3 Intel Indeo 3
D V indeo4 Intel Indeo Video Interactive 4
D V indeo5 Intel Indeo Video Interactive 5
D A D interplay_dpcm DPCM Interplay
D V D interplayvideo Interplay MVE video
DEV j2k JPEG 2000
DEV D jpegls JPEG-LS
D V D jv Bitmap Brothers JV video
D V kgv1 Kega Game Video
D V D kmvc Karl Morton's video codec
D V D lagarith Lagarith lossless
DEA D libgsm libgsm GSM
DEA D libgsm_ms libgsm GSM Microsoft variant
EA libmp3lame libmp3lame MP3 (MPEG audio layer 3)
DEA D libopencore_amrnb OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band
D A D libopencore_amrwb OpenCORE Adaptive Multi-Rate (AMR) Wide-Band
DEV D libopenjpeg OpenJPEG based JPEG 2000 encoder
DEV libschroedinger libschroedinger Dirac 2.2
DEA D libspeex libspeex Speex
EV libtheora libtheora Theora
EA libvorbis libvorbis Vorbis
DEV libvpx libvpx VP8
EV libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
EV libx264rgb libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB
EV ljpeg Lossless JPEG
D V D loco LOCO
D A D mace3 MACE (Macintosh Audio Compression/Expansion) 3:1
D A D mace6 MACE (Macintosh Audio Compression/Expansion) 6:1
D V D mdec Sony PlayStation MDEC (Motion DECoder)
D V D mimic Mimic
DEV D mjpeg MJPEG (Motion JPEG)
D V D mjpegb Apple MJPEG-B
D A D mlp MLP (Meridian Lossless Packing)
D V D mmvideo American Laser Games MM Video
D V D motionpixels Motion Pixels video
D A D mp1 MP1 (MPEG audio layer 1)
D A D mp1float MP1 (MPEG audio layer 1)
DEA D mp2 MP2 (MPEG audio layer 2)
D A D mp2float MP2 (MPEG audio layer 2)
D A D mp3 MP3 (MPEG audio layer 3)
D A D mp3adu ADU (Application Data Unit) MP3 (MPEG audio layer 3)
D A D mp3adufloat ADU (Application Data Unit) MP3 (MPEG audio layer 3)
D A D mp3float MP3 (MPEG audio layer 3)
D A D mp3on4 MP3onMP4
D A D mp3on4float MP3onMP4
D A D mpc7 Musepack SV7
D A D mpc8 Musepack SV8
DEVSDT mpeg1video MPEG-1 video
D V DT mpeg1video_vdpau MPEG-1 video (VDPAU acceleration)
DEVSDT mpeg2video MPEG-2 video
DEVSDT mpeg4 MPEG-4 part 2
D V DT mpeg4_vdpau MPEG-4 part 2 (VDPAU)
D VSDT mpegvideo MPEG-1 video
D V DT mpegvideo_vdpau MPEG-1/2 video (VDPAU acceleration)
D VSDT mpegvideo_xvmc MPEG-1/2 video XvMC (X-Video Motion Compensation)
DEVSD msmpeg4 MPEG-4 part 2 Microsoft variant version 3
D VSD msmpeg4v1 MPEG-4 part 2 Microsoft variant version 1
DEVSD msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2
D V D msrle Microsoft RLE
DEV D msvideo1 Microsoft Video-1
D V D mszh LCL (LossLess Codec Library) MSZH
D V D mxpeg Mobotix MxPEG video
DEA D nellymoser Nellymoser Asao
D V D nuv NuppelVideo/RTJPEG
DEV D pam PAM (Portable AnyMap) image
DEV D pbm PBM (Portable BitMap) image
DEA D pcm_alaw PCM A-law
D A D pcm_bluray PCM signed 16|20|24-bit big-endian for Blu-ray media
D A D pcm_dvd PCM signed 20|24-bit big-endian
DEA D pcm_f32be PCM 32-bit floating point big-endian
DEA D pcm_f32le PCM 32-bit floating point little-endian
DEA D pcm_f64be PCM 64-bit floating point big-endian
DEA D pcm_f64le PCM 64-bit floating point little-endian
D A D pcm_lxf PCM signed 20-bit little-endian planar
DEA D pcm_mulaw PCM mu-law
DEA D pcm_s16be PCM signed 16-bit big-endian
DEA D pcm_s16le PCM signed 16-bit little-endian
D A D pcm_s16le_planar PCM 16-bit little-endian planar
DEA D pcm_s24be PCM signed 24-bit big-endian
DEA D pcm_s24daud PCM D-Cinema audio signed 24-bit
DEA D pcm_s24le PCM signed 24-bit little-endian
DEA D pcm_s32be PCM signed 32-bit big-endian
DEA D pcm_s32le PCM signed 32-bit little-endian
DEA D pcm_s8 PCM signed 8-bit
D A D pcm_s8_planar PCM signed 8-bit planar
DEA D pcm_u16be PCM unsigned 16-bit big-endian
DEA D pcm_u16le PCM unsigned 16-bit little-endian
DEA D pcm_u24be PCM unsigned 24-bit big-endian
DEA D pcm_u24le PCM unsigned 24-bit little-endian
DEA D pcm_u32be PCM unsigned 32-bit big-endian
DEA D pcm_u32le PCM unsigned 32-bit little-endian
DEA D pcm_u8 PCM unsigned 8-bit
D A D pcm_zork PCM Zork
DEV D pcx PC Paintbrush PCX image
DEV D pgm PGM (Portable GrayMap) image
DEV D pgmyuv PGMYUV (Portable GrayMap YUV) image
D S pgssub HDMV Presentation Graphic Stream subtitles
D V D pictor Pictor/PC Paint
DEV D png PNG image
DEV D ppm PPM (Portable PixelMap) image
DEV D prores Apple ProRes
D V D prores_lgpl Apple ProRes (iCodec Pro)
D V D ptx V.Flash PTX image
D A D qcelp QCELP / PureVoice
D A D qdm2 QDesign Music Codec 2
D V D qdraw Apple QuickDraw
D V D qpeg Q-team QPEG
DEV D qtrle QuickTime Animation (RLE) video
DEV D r10k AJA Kona 10-bit RGB Codec
DEV D r210 Uncompressed RGB 10-bit
DEV rawvideo raw video
DEA D real_144 RealAudio 1.0 (14.4K) encoder
D A D real_288 RealAudio 2.0 (28.8K)
D V D rl2 RL2 video
DEA D roq_dpcm id RoQ DPCM
DEV D roqvideo id RoQ video
D V D rpza QuickTime video (RPZA)
DEV D rv10 RealVideo 1.0
DEV D rv20 RealVideo 2.0
D V D rv30 RealVideo 3.0
D V D rv40 RealVideo 4.0
D A D s302m SMPTE 302M
DEV sgi SGI image
D A D shorten Shorten
D A D sipr RealAudio SIPR / ACELP.NET
D A D smackaud Smacker audio
D V D smackvid Smacker video
D V D smc QuickTime Graphics (SMC)
DEV D snow Snow
D A D sol_dpcm DPCM Sol
DEA D sonic Sonic
EA sonicls Sonic lossless
D V D sp5x Sunplus JPEG (SP5X)
DES srt SubRip subtitle
D V D sunrast Sun Rasterfile image
DEV D svq1 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1
D VSD svq3 Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3
DEV D targa Truevision Targa image
D VSD theora Theora
D V D thp Nintendo Gamecube THP video
D V D tiertexseqvideo Tiertex Limited SEQ video
DEV D tiff TIFF image
D V D tmv 8088flex TMV
D A D truehd TrueHD
D V D truemotion1 Duck TrueMotion 1.0
D V D truemotion2 Duck TrueMotion 2.0
D A D truespeech DSP Group TrueSpeech
D A D tta True Audio (TTA)
D A D twinvq VQF TwinVQ
D V D txd Renderware TXD (TeXture Dictionary) image
D V D ultimotion IBM UltiMotion
D V D utvideo Ut Video
DEV D v210 Uncompressed 4:2:2 10-bit
D V D v210x Uncompressed 4:2:2 10-bit
DEV D v308 Uncompressed packed 4:4:4
DEV D v410 Uncompressed 4:4:4 10-bit
D V vb Beam Software VB
D V D vble VBLE Lossless Codec
D V D vc1 SMPTE VC-1
D V D vc1_vdpau SMPTE VC-1 VDPAU
D V D vc1image Windows Media Video 9 Image v2
D V D vcr1 ATI VCR1
D A D vmdaudio Sierra VMD audio
D V D vmdvideo Sierra VMD video
D V D vmnc VMware Screen Codec / VMware Video
DEA D vorbis Vorbis
D VSD vp3 On2 VP3
D V D vp5 On2 VP5
D V D vp6 On2 VP6
D V D vp6a On2 VP6 (Flash version, with alpha channel)
D V D vp6f On2 VP6 (Flash version)
D V D vp8 On2 VP8
D V D vqavideo Westwood Studios VQA (Vector Quantized Animation) video
D A D wavesynth Wave synthesis pseudo-codec
D A D wavpack WavPack
D A wmalossless Windows Media Audio 9 Lossless
D A D wmapro Windows Media Audio 9 Professional
DEA D wmav1 Windows Media Audio 1
DEA D wmav2 Windows Media Audio 2
D A D wmavoice Windows Media Audio Voice
DEVSD wmv1 Windows Media Video 7
DEVSD wmv2 Windows Media Video 8
D V D wmv3 Windows Media Video 9
D V D wmv3_vdpau Windows Media Video 9 VDPAU
D V D wmv3image Windows Media Video 9 Image
D V D wnv1 Winnov WNV1
D A D ws_snd1 Westwood Audio (SND1)
D A D xan_dpcm DPCM Xan
D V D xan_wc3 Wing Commander III / Xan
D V D xan_wc4 Wing Commander IV / Xxan
D V D xbin eXtended BINary text
D V D xl Miro VideoXL
DES xsub DivX subtitles (XSUB)
DEV D xwd XWD (X Window Dump) image
DEV D y41p Uncompressed YUV 4:1:1 12-bit
D V yop Psygnosis YOP Video
DEV D yuv4 Uncompressed packed 4:2:0
DEV D zlib LCL (LossLess Codec Library) ZLIB
DEV D zmbv Zip Motion Blocks VideoLibrary we use to convert :
public function getAvailableAudioCodecs()
{
return array('libvo_aacenc', 'libfaac', 'libmp3lame');
}By default I use 'libmp3lame' now because 'libfaac' is not supported by ffmpeg
and when Im trying to encode sound by libfaac I'm getting that codec not foundThanks in advance !
-
avcodec/x86/vvc : add avg and avg_w AVX2 optimizations
23 janvier 2024, par Wu Jianhuaavcodec/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.asmvvc_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.6Signed-off-by : Wu Jianhua <toqsxw@outlook.com>