世界上最快的VP9视频解码器 As before , I was very excited when Google released VP9 – for one, because I was one of the people involved in creating it back when I worked for Google (I no longer do). How good is it, and how much better can it be? To evaluate that question, Clément Bœsch and I set out to write a VP9 decoder from scratch for FFmpeg. The goals never changed from the original ffvp8 situation (community-developed, fast, free from the beginning). We also wanted to answer new questions: how does a well-written decoder compare, speed-wise, with a well-written decoder for other codecs? TLDR (see rest of post for details): as a codec, VP9 is quite impressive – it beats x264 in many cases. However, the encoder is slow, very slow. At higher speed settings, the quality gain melts away. This seems to be similar to what people report about HEVC (using e.g. x265 as an encoder). single-threaded decoding speed of libvpx isn’t great. FFvp9 beats it by 25-50% on a variety of machines. FFvp9 is somewhat slower than ffvp8, and somewhat faster than ffh264 decoding speed (for files encoded to matching SSIM scores). Multi-threading performance in libvpx is deplorable, it gains virtually nothing from its loopfilter-mt algorithm. FFvp9 multi-threading gains nearly as much as ffh264/ffvp8 multithreading, but there’s a cap (material-, settings- and resolution-dependent, we found it to be around 3 threads in one of our clips although it’s typically higher) after which further threads don’t cause any more gain. The codec itself To start, we did some tests on the encoder itself. The direct goal here was to identify bitrates at which encodings would give matching SSIM-scores so we could do same-quality decoder performance measurements. However, as such, it also allows us to compare encoder performance in itself. We used settings very close to recommended settings forVP8,VP9andx264, optimized for SSIM as a metric. As source clips, we chose Sintel (1920×1080 CGI content, source ), a 2-minute clip from Tears of Steel (1920×800 cinematic content, source ), and a 3-minute clip from Enter the Void (1920×818 high-grain/noise content,screenshot). For each, we encoded at various bitrates and plotted effective bitrate versus SSIM . sintel_ssimtos_ssimetv_ssim You’ll notice that in most cases, VP9 can indeed beat x264, but, there’s some big caveats: VP9 encoding (using libvpx) is horrendously slow – like, 50x slower than VP8/x264 encoding. This means that encoding a 3-minute 1080p clip takes several days on a high-end machine. Higher –cpu-used=X parameters make the quality gains melt away. libvpx’ VP9 encodes miss the target bitrates by a long shot (100% off) for the ETV clip, possibly because of our use of –aq-mode=1. libvpx tends to slowly crumble at higher bitrates for hard content – again, look at the ETV clip, where x264 shows some serious mature killer instinct at the high bitrate end of things. Overall, these results are promising, although the lack-of-speed is a serious issue. Decoder performance For decoding performance measurements, we chose (Sintel)500 (VP9), 1200 (VP8) and 700 (x264) kbps (SSIM=19.8); Tears of Steel4.0 (VP9), 7.9 (VP8) and 6.3 (x264) mbps (SSIM=19.2); and Enter the Void 9.7 (VP9), 16.6 (VP8) and 10.7 (x264) mbps (SSIM=16.2). We used FFmpeg to decode each of these files, either using the built-in decoder (to compare between codecs), or using libvpx-vp9 (to compare ffvp9 versus libvpx). Decoding time was measured in seconds using “time ffmpeg -threads 1 [-c:v libvpx-vp9] -i $file -f null -v 0 -nostats – 2>&1 | grep user”, with this FFmpeg and this libvpx revision (downloaded on Feb 20th, 2014). sintel_archs tos_archsetv_archs A few notes on ffvp9 vs. libvpx-vp9 performance: ffvp9 beats libvpx consistently by 25-50%. In practice, this means that typical middle- to high-end hardware will be able to playback 4K content using ffvp9, but not using libvpx. Low-end hardware will struggle to playback even 720p content using libvpx (but do so fine using ffvp9). on Haswell, the difference is significantly smaller than on sandybridge, likely because libvpx has some AVX2 optimizations (e.g. for MC and loop filtering), whereas ffvp9 doesn’t have that yet; this means this difference might grow over time as ffvp9 gets AVX2 optimizations also. on the Atom, the differences are significantly smaller than on other systems; the reason for this is likely that we haven’t done any significant work on Atom-performance yet. Atom has unusually large latencies between GPRs and XMM registers, which means you need to take special care in ordering your instructions to prevent unnecessary halts – we haven’t done anything in that area yet (for ffvp9). Some users may find that ffvp9 is a lot slower than advertised on 32bit; this is correct, most of our SIMD only works on 64bit machines. If you have 32bit software, port it to 64bit. Can’t port it? Ditch it. Nobody owns 32bit x86 hardware anymore these days. So how does VP9 decoding performance compare to that of other codecs? There’s basically two ways to measure this: same-bitrate (e.g. a 500kbps VP8 file vs. a 500kbps VP9 file, where the VP9 file likely looks much better), or same-quality (e.g. a VP8 file with SSIM=19.2 vs. a VP9 file with SSIM=19.2, where the VP9 file likely has a much lower bitrate). We did same-quality measurements, and found: ffvp9 tends to beat ffh264 by a tiny bit (10%), except on Atom (which is likely because ffh264 has received more Atom-specific attention than ffvp9). ffvp9 tends to be quite a bit slower than ffvp8 (15%), although the massive bitrate differences in Enter the Void actually makes it win for that clip (by about 15%, except on Atom). Given that Google promised VP9 would be no more than 40% more complex than VP8, it seems they kept that promise. we did some same-bitrate comparisons, and found that x264 and ffvp9 are essentially identical in that scenario (with x264 having slightly lower SSIM scores); vp8 tends to be about 50% faster, but looks significantly worse. Multithreading One of the killer-features in FFmpeg is frame-level multithreading, which allows multiple cores to decode different video frames in parallel. Libvpx also supports multithreading. So which is better?
2022-03-25 00:03:10 8.18MB VP9 视频 解码器
1
crc编码代码matlab CRC编码器和解码器 第1部分– CRC校验实现(12个标记)。 您将使用生成多项式g(x)= x5 + x3 + 1,其中(n,k)=(20,15)。 使用MATLAB,Python或您选择的语言,编写以下两个函数: •crc_encode(x):此函数按照类中给出的步骤,使用生成多项式g(x)对x进行编码。 参数x是位{0,1}的长度15矢量。 返回长度为20的CRC编码的矢量{{0,1}}。 •crc_decode(b):给定生成器多项式g(x),此函数确定b是否通过CRC。 参数b是一个长度为20的位{0,1}的向量。 如果b通过CRC,则返回1,否则返回0(即,如果b包含错误,则返回1,否则返回0)。 第2部分– CRC校验模拟(4个标记)。 使用第1部分中的功能,编写两个仿真脚本,如下所示: •sim_single(p,x):该脚本以15位向量x作为输入,并使用第1部分中的CRC编码器对x进行编码。以概率p((请参阅下面的注释;由于这是一个随机过程,因此可能没有翻转位。 运行CRC解码器以确定CRC是否检测到错误。 最后,脚本将以下内容打印到屏幕
2022-03-20 20:52:58 5KB 系统开源
1
DXC-X22歌诗德解码器说明,ESS9038PRO芯片,有7种滤波模式
2022-03-16 22:48:21 1.88MB DAC
1
Matlab代码verilog LDPC_解码器 低密度奇偶校验解码器 这是我为ECEN 654最终项目开发的LDPC解码器。 它目前隐含速率为0.5的代码,但几乎已完全参数化,因此它只需很小的变化即可生成任意H矩阵的解码器。 它由MATLAB仿真组成,用于验证算法并生成Verilog实现的测试数据。 顶级Verilog模块由script_LDPC_v生成,该脚本调用verigen,后者使用打印语句生成LDPC.v。 Verilog生成文件没有经过重构,因此非常麻烦,但是其余的MATLAB仿真文件经过了优化,即使对于高SNR值,也可以快速评估变化。
2022-03-12 15:33:54 115KB 系统开源
1
如果opencv视频不能打开 缺少xvid解码器,XviD解码器为一个PC视频编解码器,而编解码器是为[合作]的缩写明镜,因此描述了一个方案,以数字视频编码和解码的编码视频数据的目的是为了减少流量,这意味着,使其更小更快的通过计算机网络或计算机磁盘上的更多高效的存储传输。
2022-03-08 16:17:00 51.41MB opencv
1
运行http://download.csdn.net/detail/jindou910101/5610803视频播放器之前,先要安装视频解码器
2022-03-08 16:01:16 10.72MB 视频解码器
1
PotPlayer V1.7.21567 添加解码器8K和官网众多皮肤原版播不了的8K视频这个能播.
2022-03-05 17:59:59 89.04MB potplayer
OpenCSD-一个开源CoreSight(tm)跟踪解码库{#mainpage} 该库提供了适合于ARM(r)CoreSight(tm)跟踪流解码的API。 该库将分三个阶段对格式化的跟踪进行解码: 帧解格式化:删除的CoreSight帧从单个跟踪流格式。 数据包处理:将单独的跟踪流分离为离散的数据包。 数据包解码:将数据包转换为完全解码的跟踪,描述内核上的程序流。 该库使用可选的“ C” API在C ++中实现。 库版本控制 从版本0.4开始,库版本控制将使用Major.minor.patch ( Mmp )形式的语义版本控制格式(每个 )。 内部库版本调用,文档和git存储库将继续使用此格式。 如果未引用补丁程序版本或将其引用为.x,则注释将适用于整个发行版。 发行版本将为Mm0,补丁版本将针对错误修正或文档更新进行递增。 发行版将以适当的版本标记显示在git信息库
2022-02-28 10:35:28 12MB C++
1
大多数 MELP 源代码是用 C 编写的。但这个是用 Matlab 编写的。
2022-02-28 09:09:24 612KB matlab
1
本API支持H.264格式视频流式解码,纯解码库,不包含其他功能,调用方式即说明参考博客:https://blog.csdn.net/whf227/article/details/104751816
2022-02-26 23:09:29 17KB ffmpeg h.264 解码器
1